scid-4.3.0.cvs20120311/0000755000175000017500000000000011727223100013421 5ustar oliveroliverscid-4.3.0.cvs20120311/bitmaps/0000755000175000017500000000000011727223076015074 5ustar oliveroliverscid-4.3.0.cvs20120311/bitmaps/MkScidPieces0000755000175000017500000000142211727223076017324 0ustar oliveroliver#!/bin/sh input=$1 target=$2 # input=/opt/chess/stow/Share/share/xboard/src/Themes/Pieces/Merida/ # target=/tmp/scid pieces="B K N P Q R b k n p q r" sizes="25 30 35 40 45 50 55 60 65 70 75 80" for size in $sizes do for pic in $pieces do convert $input/$pic.png -geometry "$size"x"$size>" $target/$pic-$size.png done montage -geometry "$size"x"$size+0+0" -background transparent -tile 6x1 \ $target/P-$size.png $target/N-$size.png $target/B-$size.png \ $target/R-$size.png $target/Q-$size.png $target/K-$size.png $target/black-$size.gif montage -geometry "$size"x"$size+0+0" -background transparent -tile 6x1 \ $target/p-$size.png $target/n-$size.png $target/b-$size.png \ $target/r-$size.png $target/q-$size.png $target/k-$size.png $target/white-$size.gif done scid-4.3.0.cvs20120311/bitmaps/bwb.gif0000644000175000017500000000033711727223076016340 0ustar oliveroliverGIF87a((,((cd/}7~Od֞ld<+-BH&[CfxhrtJ_kP So,ɨ*":Pe%5ISq+ t/bˆ $@g:5Q8?Ze"z'6W58P;scid-4.3.0.cvs20120311/bitmaps/wwb.gif0000644000175000017500000000023311727223076016360 0ustar oliveroliverGIF87a((,((z4K€]I$hyĩ릚3ԤZ i/q(cH$BfWݰnTvo]l#X{wsZbw'xWvu'Q(C8RgyIV;scid-4.3.0.cvs20120311/bitmaps/bbk.gif0000644000175000017500000000036711727223076016327 0ustar oliveroliverGIF87a((,((քrEgv]bGVSR:당mly-"(x3b$f"tgZfdI:l+^{n>ggP(wR!WxGȨtاGI R'&Dz9(XSz;wJ:4zW<պs&[9L̻|d#U\޽Į.o^;scid-4.3.0.cvs20120311/bitmaps/bbr.gif0000644000175000017500000000032411727223076016327 0ustar oliveroliverGIF87a((,((cBj1%cv)ij§s!̱ō6;49UR5{$pbfb 3]֊Es,l/f÷iwN&e5'T(hQ4rɘr2y!aH ٹz"XJ* {ə{I[뢛KUl\9 -=M];scid-4.3.0.cvs20120311/bitmaps/bwk.gif0000644000175000017500000000033711727223076016351 0ustar oliveroliverGIF87a((,((cdRw^mKlY ñ+Zc tN;]9] S4Ci"5C[ +fƍ&Q[{31G!htHEg%GgiU2Y**%Z4ص6Ӧ)Y;ziH"6G )jc D2-=Q;scid-4.3.0.cvs20120311/bitmaps/bbq.gif0000644000175000017500000000035011727223076016325 0ustar oliveroliverGIF87a((,((DŽcBqVfDwuv䧥]b2B\Qcr՜y=.^8.cPY0|_4uÓ@hٲ'Ygy趹Y٤%zIS:ʄ(DGiYBh7)F3KJ;Ӓɬ zk;8L Q;scid-4.3.0.cvs20120311/bitmaps/wbq.gif0000644000175000017500000000031011727223076016346 0ustar oliveroliverGIF87a((,((# TZ۴eFm_鍦6-˱ڊb */@*(ҭvəYRV(ibߛLQ"t mxٖ鹽PGGXh8hب&yP(18Y$:j7z:AIqB7aIJ[z; ,c>\OPpwb22$'%.Q^_Tr;qg-=ci]k,u%WCg3(B9iVGteyV6g*6Iz1&(DxhVCٸy [ql|<;͕l]ܛ}ԭmR;scid-4.3.0.cvs20120311/bitmaps/wbk.gif0000644000175000017500000000027611727223076016353 0ustar oliveroliverGIF87a((,(('һָ#`؍eҦR`B FDWܸALWC"ɭ}U1tT~6Eah(H#)(c) *:J*Y;scid-4.3.0.cvs20120311/bitmaps/bwn.gif0000644000175000017500000000033411727223076016351 0ustar oliveroliverGIF87a((,((cۚsi޲ mV9iAMqʱ*,hAkl+dDw|ԜӵDN]1ĖZvך-Ϊ4I&ޛkjǐ&(76xUv%S97hا$YUy9eV:I7xiiڪJ ڕyJ;+[c|ljWdK]< P;scid-4.3.0.cvs20120311/bitmaps/bwr.gif0000644000175000017500000000031511727223076016354 0ustar oliveroliverGIF87a((,((cۚsNmRXfw>Y^7RnsDmTʒП1T~ْ X+1ԺX&/7 7;׭4צx7(U(Th ht9Z wfwJ@Zz*6X;g;ڻk7lLxS;scid-4.3.0.cvs20120311/bitmaps/bwq.gif0000644000175000017500000000036211727223076016355 0ustar oliveroliverGIF87a((,((фcۚs΅VxuYLH(~%:Pex}!7%յ9rkζ:y{q"8X4"|eʴfJP]:%ev^z_/'%8HXhxP;scid-4.3.0.cvs20120311/scid.ico0000644000175000017500000002016611727223076015060 0ustar oliveroliver  &  (@ ]$[#[#[#X!9`"&x[#[#[#Z#5`"&a"&a"&a"&`!%5b!%a"&a"&a"&a"&9a!&a"&a"&a"&a"&<"a!&a"&a"&a"&a"&7`"&ra"&a"&a"&a"&M ?`"%a"&a"&a"&a"&D) @+G$I'H'&G6%HY&Iz%Fc!%>a"&a"&a"&a"&T#ga#%ga"&a"&a"&a"&<%7 J&D"#F,%FE%Gh&G(H&H'I'H'H'H'H'HU++`!&a"&a"&a"&W!. (C"D@#3Pa"&a"&a"&a"&!$='H&I'H'H'H'H'H'H'H'H'H'H'H'H$I)G]"(a"&a"&a"&L!+%E'G&G'I^"(a"&a"&a"&"#>'H'H'H'H'H'H'H'H'H'H'H'H'H'H(FM&G6$9a"&a"&a"&P",%E'H'H'HK#0a"&a"&a"&)$9'H'H'H'H'H'H'H'H'H'H'H'H'H'H'H'H'E`"'a"&a"&]"(%B'H'H'H1%;a"&a"&a"&1#7'H'H'H'H'H'H'H)J*P.X5_:iIz$Y(H'H'HH$1a"&a"&a"&"#<'H'H'H'F_"&a"&a"&A"1*M0X5`;hW r'k)|,/0000'I'H'H#&Aa"&a"&a"&<#4*N0W5a:kJ3Ga"&a"&X2;/0000000,P0X6`;kM-@a"&a"&X,5.x/0/Z.6a"&a"&4t(0000000 FIa"&a"&S:E4w-QANa"&a"&W5>9p$  F.T*0000009MR__&+a"&Z/5@as(%)+?tX7?a"&a"&DWh+@ D|?Y(&"Gcu^*0a"&]+0Bbt0000>ma#'a"&JM[!E~U7d'4OMZa"&a"&IRa1004a"&a"&8o!G~Cc00JZja"&a"&Adv00 Z18a"&KJX F(?s-01^*0a"&R?I10(\-3a"&9o E~4X!01],2a"&MJV00/a"&a"&a"&a"&T#ga#%ga"&a"&a"&a"&<%7 J&D"#F,%FE%Gh&G(H&H'I'H'H'H'H'HU++`!&a"&a"&a"&W!. (C"D@#3Pa"&a"&a"&a"&!$='H&I'H'H'H'H'H'H'H'H'H'H'H'H$I)G]"(a"&a"&a"&L!+%E'G&G'I^"(a"&a"&a"&"#>'H'H'H'H'H'H'H'H'H'H'H'H'H'H(FM&G6$9a"&a"&a"&P",%E'H'H'HK#0a"&a"&a"&)$9'H'H'H'H'H'H'H'H'H'H'H'H'H'H'H'H'E`"'a"&a"&]"(%B'H'H'H1%;a"&a"&a"&1#7'H'H'H'H'H'H'H)J*P.X5_:iIz$Y(H'H'HH$1a"&a"&a"&"#<'H'H'H'F_"&a"&a"&A"1*M0X5`;hW r'k)|,/0000'I'H'H#&Aa"&a"&a"&<#4*N0W5a:kJ3Ga"&a"&X2;/0000000,P0X6`;kM-@a"&a"&X,5.x/0/Z.6a"&a"&4t(0000000 FIa"&a"&S:E4w-QANa"&a"&W5>9p$  F.T*0000009MR__&+a"&Z/5@as(%)+?tX7?a"&a"&DWh+@ D|?Y(&"Gcu^*0a"&]+0Bbt0000>ma#'a"&JM[!E~U7d'4OMZa"&a"&IRa1004a"&a"&8o!G~Cc00JZja"&a"&Adv00 Z18a"&KJX F(?s-01^*0a"&R?I10(\-3a"&9o E~4X!01],2a"&MJV00/ #include #include #include #include //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // fatalNameError(): // Called if there are too many names of a certain type // in the namebase. Reports the error and exits. void fatalNameError (nameT nt) { fprintf (stderr, "\nERROR: Too many %s names!", NAME_TYPE_STRING [nt]); fprintf (stderr, " The maximum allowable number is %u.\n", NAME_MAX_ID[nt]); fprintf (stderr, "Aborting pgnscid; try using a smaller PGN file.\n"); exit(1); } static void usage (char * pname) { fprintf (stderr, "%s: create a Scid database from a PGN file.\n", pname); fprintf (stderr, " Usage: %s [-f] [-x] filename.pgn [database]\n", pname); fprintf (stderr, " -f: Force overwrite of existing database.\n"); fprintf (stderr, " -x: Ignore comments before games.\n"); fprintf (stderr, " Database name defaults to the PGN filename "); fprintf (stderr, "without the \".pgn\" suffix.\n"); #ifndef NO_ZLIB fprintf (stderr, " Note: A Gzip compressed file (e.g. filename.pgn.gz) can be used.\n"); #endif exit(1); } int main (int argc, char * argv[]) { setbuf(stdout, NULL); // Make stdout unbuffered. gameNumberT gNumber; bool option_ForceReplace = false; bool option_PreGameComments = true; uint pgnFileSize = 0; char *progname = argv[0]; fileNameT fname; fileNameT baseName; uint argsleft = argc - 1; char ** nextArg = argv + 1; // Parse command-line argments: while (argsleft > 0 && nextArg[0][0] == '-') { if (! strCompare (*nextArg, "-f")) { option_ForceReplace = true; } else if (! strCompare (*nextArg, "-x")) { option_PreGameComments = false; } else { usage (progname); } argsleft--; nextArg++; } if (argsleft != 1 && argsleft != 2) { usage (progname); } char * pgnName = *nextArg; MFile * pgnFile = new MFile; pgnFileSize = fileSize (pgnName, ""); // Ensure positive file size counter to avoid division by zero: if (pgnFileSize < 1) { pgnFileSize = 1; } // Make baseName from pgnName if baseName is not provided: if (argsleft == 1) { strCopy (baseName, pgnName); // If a gzip file, remove two suffixes, the first being ".gz": const char * lastSuffix = strFileSuffix (baseName); if (lastSuffix != NULL && strEqual (lastSuffix, GZIP_SUFFIX)) { strTrimFileSuffix (baseName); } // Trim the ".pgn" suffix: strTrimFileSuffix (baseName); } else { strCopy (baseName, nextArg[1]); } // Check for existing database, avoid overwriting it: if (! option_ForceReplace) { if (fileSize (baseName, INDEX_SUFFIX) > 0) { // Scid index file already exists: fprintf (stderr, "%s: database already exists: %s\n", progname, baseName); fprintf (stderr, "You can use: %s -f %s to overwrite" " the existing database.\n", progname, pgnName); exit(1); } } if (pgnFile->Open (pgnName, FMODE_ReadOnly) != OK) { fprintf (stderr, "%s: could not open file %s\n", progname, pgnName); exit(1); } // Try opening the log file: strCopy (fname, baseName); strAppend (fname, ".err"); FILE * logFile = fopen (fname, "w"); if (logFile == NULL) { fprintf (stderr, "%s: could not open log file: %s\n", progname, fname); exit(1); } printf ("Converting file %s to Scid database %s:\n", pgnName, baseName); printf ("Errors/warnings will be written to %s.\n\n", fname); scid_Init(); GFile * gameFile = new GFile; if ((gameFile->Create (baseName, FMODE_WriteOnly)) != OK) { fprintf (stderr, "%s: could not create the file %s%s\n", progname, baseName, GFILE_SUFFIX); fprintf (stderr, "The file may already exist and be read-only, or\n"); fprintf (stderr, "you may not have permission to create this file.\n"); pgnFile->Close(); exit(1); } NameBase * nb = new NameBase; Index * idx = new Index; IndexEntry * ie = new IndexEntry; idx->SetFileName (baseName); idx->CreateIndexFile (FMODE_WriteOnly); Game * game = new Game; ProgBar progBar(stdout); progBar.Start(); ByteBuffer *bbuf = new ByteBuffer; bbuf->SetBufferSize (BBUF_SIZE); // 32768 PgnParser pgnParser (pgnFile); pgnParser.SetErrorFile (logFile); pgnParser.SetPreGameText (option_PreGameComments); // TODO: Add command line option for ignored tags, rather than // just hardcoding PlyCount as the only ignored tag. pgnParser.AddIgnoredTag ("PlyCount"); // Add each game found to the database: while (pgnParser.ParseGame(game) != ERROR_NotFound) { ie->Init(); if (idx->AddGame (&gNumber, ie) != OK) { fprintf (stderr, "\nLimit of %d games reached!\n", MAX_GAMES); exit(1); } // Add the names to the namebase: idNumberT id = 0; if (nb->AddName (NAME_PLAYER, game->GetWhiteStr(), &id) != OK) { fatalNameError (NAME_PLAYER); } nb->IncFrequency (NAME_PLAYER, id, 1); ie->SetWhite (id); if (nb->AddName (NAME_PLAYER, game->GetBlackStr(), &id) != OK) { fatalNameError (NAME_PLAYER); } nb->IncFrequency (NAME_PLAYER, id, 1); ie->SetBlack (id); if (nb->AddName (NAME_EVENT, game->GetEventStr(), &id) != OK) { fatalNameError (NAME_EVENT); } nb->IncFrequency (NAME_EVENT, id, 1); ie->SetEvent (id); if (nb->AddName (NAME_SITE, game->GetSiteStr(), &id) != OK) { fatalNameError (NAME_SITE); } nb->IncFrequency (NAME_SITE, id, 1); ie->SetSite (id); if (nb->AddName (NAME_ROUND, game->GetRoundStr(), &id) != OK) { fatalNameError (NAME_ROUND); } nb->IncFrequency (NAME_ROUND, id, 1); ie->SetRound (id); bbuf->Empty(); if (game->Encode (bbuf, ie) != OK) { fprintf (stderr, "Fatal error encoding game!\n"); abort(); } uint offset = 0; if (gameFile->AddGame (bbuf, &offset) != OK) { fprintf (stderr, "Fatal error writing game file!\n"); abort(); } ie->SetOffset (offset); ie->SetLength (bbuf->GetByteCount()); idx->WriteEntries (ie, gNumber, 1); // Update the progress bar: if (! (gNumber % 100)) { int bytesSeen = pgnParser.BytesUsed(); int percentDone = 1 + ((bytesSeen) * 100 / pgnFileSize); progBar.Update (percentDone); } } uint t = 0; // = time(0); nb->SetTimeStamp(t); nb->SetFileName (baseName); if (nb->WriteNameFile() != OK) { fprintf (stderr, "Fatal error writing name file!\n"); exit(1); } progBar.Finish(); printf ("\nDatabase `%s': %d games, %d players, %d events, %d sites.\n", baseName, idx->GetNumGames(), nb->GetNumNames (NAME_PLAYER), nb->GetNumNames (NAME_EVENT), nb->GetNumNames (NAME_SITE)); fclose (logFile); if (pgnParser.ErrorCount() > 0) { printf ("There were %u errors or warnings; ", pgnParser.ErrorCount()); printf ("examine the file \"%s.err\"\n", baseName); } else { printf ("There were no warnings or errors.\n"); removeFile (baseName, ".err"); } gameFile->Close(); idx->CloseIndexFile(); // If there is a tree cache file for this database, it is out of date: removeFile (baseName, TREEFILE_SUFFIX); #ifdef ASSERTIONS printf("%d asserts were tested\n", numAsserts); #endif pgnFile->Close(); return 0; } ////////////////////////////////////////////////////////////////////// // EOF: pgnscid.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/movelist.cpp0000644000175000017500000001274511727223076016603 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: movelist.cpp // MoveList class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.4 // // Notice: Copyright (c) 2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "movelist.h" #include "misc.h" //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // MoveList::MoveToFront // Promotes a move to the front of the list, pushing // all moves that were ahead of it down one place. void MoveList::MoveToFront (uint index) { ASSERT (index < ListSize); if (index == 0) { return; } simpleMoveT smTemp = Moves[index]; for (int i = index; i > 0; i--) { Moves[i] = Moves[i-1]; } Moves[0] = smTemp; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // MoveList::SwapWithFirst // Swaps the specified move with the move at the start of the list. // All other moves remain in their original location. void MoveList::SwapWithFirst (uint index) { ASSERT (index < ListSize); if (index == 0) { return; } simpleMoveT smTemp = Moves[index]; Moves[index] = Moves[0]; Moves[0] = smTemp; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // MoveList::Find // Searches for a move in the list. // Returns the index of the move with the same from-square, // to-square and promotion-piece values as the specified // move, if it is in the list. If the move is not found, // the value -1 is returned. int MoveList::Find (simpleMoveT * sm) { for (uint i=0; i < ListSize; i++) { simpleMoveT * lsm = &(Moves[i]); if (sm->from == lsm->from && sm->to == lsm->to && sm->promote == lsm->promote) { return (int) i; } } return -1; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // MoveList::SelectBySquare // Restricts the list to only contain moves which // move a piece to or from the specified square. // Returns the new size of the list. uint MoveList::SelectBySquare (squareT sq) { uint index = 0; for (uint i=0; i < ListSize; i++) { simpleMoveT * sm = &(Moves[i]); if (sm->from != sq && sm->to != sq) { // Skip this move, it does not match. continue; } // Copy this move to an earlier index if necesary: if (i != index) { Moves[index] = *sm; } index++; } ListSize = index; return ListSize; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // MoveList::FindBest // Searches the move list from the specified index to the end of // the list to find the move in that range of the list with the // highest score, and swaps the best move found with the move at // the specified index if it is not already there. // The moves earlier in the list (at indices 0 to index-1) are // ignored and are not moved. void MoveList::FindBest (uint index) { ASSERT (index < ListSize); uint bestIndex = index; int bestScore = Moves[index].score; // Search the rest of the list for a better-scoring move: for (uint i = index + 1; i < ListSize; i++) { if (Moves[i].score > bestScore) { bestIndex = i; bestScore = Moves[i].score; } } // Swap if necessary: if (index != bestIndex) { simpleMoveT smTemp = Moves[index]; Moves[index] = Moves[bestIndex]; Moves[bestIndex] = smTemp; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // MoveList::Sort // Sort the move list by the score field in descending order, // with highest scores first. void MoveList::Sort (void) { // Do a simple selection sort, which works fine for small list sizes. for (uint i=0; i < ListSize; i++) { FindBest (i); } } bool MoveList::IsSorted (void) { if (ListSize < 2) { return true; } for (uint i = 0; i < ListSize - 1; i++) { if (Moves[i].score < Moves[i+1].score) { return false; } } return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeSimpleMove, readSimpleMove: // I/O for simpleMoveT structs. // errorT #ifdef WINCE writeSimpleMove (/*FILE **/Tcl_Channel fp, simpleMoveT * sm) #else writeSimpleMove (FILE * fp, simpleMoveT * sm) #endif { errorT err; writeOneByte (fp, sm->pieceNum); writeOneByte (fp, sm->movingPiece); writeOneByte (fp, sm->from); writeOneByte (fp, sm->to); writeOneByte (fp, sm->capturedNum); writeOneByte (fp, sm->capturedPiece); writeOneByte (fp, sm->promote); writeOneByte (fp, 0); // Obsolete unused value writeOneByte (fp, sm->capturedSquare); writeOneByte (fp, sm->castleFlags); writeOneByte (fp, sm->epSquare); err = writeTwoBytes (fp, sm->oldHalfMoveClock); return err; } errorT #ifdef WINCE readSimpleMove (/*FILE **/Tcl_Channel fp, simpleMoveT * sm) #else readSimpleMove (FILE * fp, simpleMoveT * sm) #endif { sm->pieceNum = readOneByte (fp); sm->movingPiece = readOneByte (fp); sm->from = readOneByte (fp); sm->to = readOneByte (fp); sm->capturedNum = readOneByte (fp); sm->capturedPiece = readOneByte (fp); sm->promote = readOneByte (fp); readOneByte (fp); // Obsolete unused value sm->capturedSquare = readOneByte (fp); sm->castleFlags = readOneByte (fp); sm->epSquare = readOneByte (fp); sm->oldHalfMoveClock = readTwoBytes (fp); return OK; } ////////////////////////////////////////////////////////////////////// // EOF: movelist.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/optable.h0000644000175000017500000002257011727223076016031 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: optable.h // OpTable class (for opening reports and theory tables) // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2001-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_OPTABLE_H #define SCID_OPTABLE_H #include "common.h" #include "namebase.h" #include "index.h" #include "game.h" #include "pbook.h" const uint OPTABLE_COLUMNS = 8; const uint OPTABLE_MIN_ROWS = 5; const uint OPTABLE_MAX_ROWS = 20; const uint OPTABLE_DEFAULT_ROWS = 10; const uint OPTABLE_MAX_EXTRA_MOVES = 10; const uint OPLINE_MOVES = (OPTABLE_COLUMNS + OPTABLE_MAX_EXTRA_MOVES) * 2; const uint OPTABLE_MAX_LINES = 2000; const uint OPTABLE_MAX_TABLE_LINES = 5000;//500; const uint OPTABLE_MAX_STARTLINE = 100; const uint OPTABLE_Text = 0; const uint OPTABLE_HTML = 1; const uint OPTABLE_LaTeX = 2; const uint OPTABLE_CText = 3; // Color hypertext. const uint OPTABLE_Compact = 4; // For more compact moves in table. // Positional themes const uint NUM_POSTHEMES = 10; const uint POSTHEME_CastSame = 0; const uint POSTHEME_CastOpp = 1; const uint POSTHEME_QueenSwap = 2; const uint POSTHEME_OneBPair = 3; const uint POSTHEME_Kstorm = 4; const uint POSTHEME_WIQP = 5; const uint POSTHEME_BIQP = 6; const uint POSTHEME_WAdvPawn = 7; const uint POSTHEME_BAdvPawn = 8; const uint POSTHEME_OpenFyle = 9; const uint POSTHEME_THRESHOLD = 4; // Theme must occur this many times. const uint NUM_EGTHEMES = 8; const uint EGTHEME_P = 0; const uint EGTHEME_M = 1; const uint EGTHEME_R = 2; const uint EGTHEME_RM = 3; const uint EGTHEME_Q = 4; const uint EGTHEME_QM = 5; const uint EGTHEME_QR = 6; const uint EGTHEME_QRM = 7; const uint OPTABLE_Line = 0; const uint OPTABLE_All = 1; struct moveOrderT { uint id; // Move Order id number uint count; // Number of times this order has occured char * moves; // String containing the moves in SAN notation }; class OpLine { friend class OpTable; private: char * White; char * Black; char * Site; gameNumberT GameNumber; idNumberT WhiteID; idNumberT BlackID; eloT WhiteElo; // Actual White rating (no estimate) eloT BlackElo; // Actual Black rating eloT AvgElo; // Average Elo (using actual or estimates) dateT Date; resultT Result; uint Length; uint NumMoves; bool ShortGame; // True if all game ends early enough that // this line contains all its moves. ecoT EcoCode; uint MoveOrderID; sanStringT Move [OPLINE_MOVES]; uint NoteMoveNum; // If a note, at what move does it start? uint NoteNumber; // If a note, this stores its footnote number. OpLine * Next; // Linked list used for sorting and footnotes. bool Selected; // For selecting lines by some criteria. uint StartPly; uint Theme [NUM_POSTHEMES]; uint EgTheme; void Init (void); void Init (Game * g, IndexEntry * ie, gameNumberT gameNum, uint maxExtraMoves, uint maxThemeMoveNumber); void Destroy (void); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif OpLine () { Init(); } OpLine (Game * g, IndexEntry * ie, gameNumberT gnum, uint max, uint tm) { Init (g, ie, gnum, max, tm); } ~OpLine() { } void SetPositionalThemes (Position * pos); void Insert (OpLine * subline); void SetMoveOrderID (uint id) { MoveOrderID = id; } uint CommonLength (OpLine * line); static void PrintMove (DString * dstr, const char * move, uint format); void PrintNote (DString * dstr, uint movenum, uint start, uint format); void PrintSummary (DString * dstr, uint format, bool fullDate, bool nmoves); const char * GetMove (uint depth) { return Move[depth]; } }; class OpTable { private: uint NumRows; uint TargetRows; uint NumLines; uint FilterCount; uint NumTableLines; uint MaxTableLines; uint MaxNoteLength; uint MaxThemeMoveNumber; uint NumNotes; uint Format; char * Type; // "opening" or "player" report bool WTM; // whether White is to move in the start position. sanStringT StartLine [OPTABLE_MAX_STARTLINE]; uint StartLength; OpLine * Line [OPTABLE_MAX_LINES]; uint Results [NUM_RESULT_TYPES]; uint TheoryResults [NUM_RESULT_TYPES]; uint TheoryCount; char * EcoStr; sanStringT ExcludeMove; char DecimalChar; // Statistics on material of final positions: uint EndgameCount [2][NUM_EGTHEMES]; // Statistics on move orders to reach the start line: uint NumMoveOrders; moveOrderT MoveOrder [OPTABLE_MAX_LINES]; // Statistics on themes: uint ThemeCount [NUM_POSTHEMES]; // Arrays for making rows out of the lines: OpLine * Row [OPTABLE_MAX_TABLE_LINES]; uint NLines [OPTABLE_MAX_TABLE_LINES]; uint RowScore [OPTABLE_MAX_TABLE_LINES]; void SelectTableLines (void); void SortTableLines (OpLine ** lines, uint nlines, uint depth); bool IsRowMergable (uint rownum); void MergeRow (uint rownum); bool HasNotes (OpLine * line, uint movenum); uint NoteCount (uint note); uint NoteScore (uint note); void PrintNotes (DString * dstr, uint format); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif OpTable (const char * type, Game * g, PBook * ecoBook) { Init (type, g, ecoBook); } OpTable (const char * type, Game * g) { Init (type, g, NULL); } #ifdef WINCE ~OpTable() { Clear(); my_Tcl_Free((char*) Type); } #else ~OpTable() { Clear(); delete[] Type; } #endif void Init (const char * type, Game * g, PBook * ecoBook); void Clear (); void ClearNotes (); void SetFormat (const char * str); void SetDecimalChar (char c) { DecimalChar = c; } uint GetTotalCount() { return FilterCount; } uint GetTheoryCount() { return TheoryCount; } void SetExcludeMove (const char * s) { strCopy (ExcludeMove, s); strStrip (ExcludeMove, '-'); strStrip (ExcludeMove, '='); } const char * GetEco (void) { return (EcoStr != NULL ? EcoStr : ""); } void SetNumRows (uint nrows) { TargetRows = nrows; } void GuessNumRows (void); void SetMaxTableLines (uint nlines) { if (nlines <= OPTABLE_MAX_TABLE_LINES) { MaxTableLines = nlines; } } uint GetMaxTableLines (void) { return MaxTableLines; } void SetMaxExtraMoves (uint nmoves) { MaxNoteLength = (OPTABLE_COLUMNS + nmoves) * 2; } uint GetMaxExtraMoves (void) { return (MaxNoteLength / 2) - OPTABLE_COLUMNS; } uint GetNumLines (void) { return NumLines; } void SetMaxThemeMoveNumber (uint x) { MaxThemeMoveNumber = x; } bool Add (OpLine * line); uint PercentScore (void); uint TheoryPercent (void); uint TheoryScore (void); uint PercentFreq (resultT result); uint AvgLength (resultT result); uint AvgElo (colorT color, uint *count, uint *oppScore, uint *oppPerf); void BestGames (DString * dstr, uint count, const char * rtype); void TopPlayers (DString * dstr, colorT c, uint count); void TopEcoCodes (DString * dstr, uint count); void PrintStemLine (DString * dstr, uint format, bool exclude); void PrintStemLine (DString * dstr) { PrintStemLine (dstr, Format, false); } void MakeRows (void); #ifdef WINCE void DumpLines (/*FILE **/Tcl_Channel fp); #else void DumpLines (FILE * fp); #endif void PrintTable (DString * dstr, const char *title, const char *comment); void PrintLaTeX (DString * dstr,const char *title, const char *comment); void PrintHTML (DString * str, const char *title, const char *comment); void PrintText (DString * str, const char *title, const char *comment, bool htext); static uint FormatFromStr (const char * str); uint AddMoveOrder (Game * g); void PopularMoveOrders (DString * dstr, uint count); void ThemeReport (DString * dstr, uint argc, const char ** argv); void AddEndMaterial (matSigT ms, bool inFilter); void EndMaterialReport (DString * dstr, const char * repGames, const char * allGames); uint * SelectGames (char type, uint number); }; #endif // SCID_OPTABLE_H ////////////////////////////////////////////////////////////////////// // optable.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/pbook.cpp0000644000175000017500000006112711727223076016051 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: pbook.cpp // PBook class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 2.3 // // Notice: Copyright (c) 1999-2000 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // A PBook is a collection of chess positions, each with a textual // comment or description. #include "common.h" #include "error.h" #include "pbook.h" #include "misc.h" #include "mfile.h" #include #include // PBOOK_HASH_BITS: Size of array of hash value counts. static const uint PBOOK_HASH_BITS = 65536; static const uint PBOOK_HASH_BYTES = (PBOOK_HASH_BITS >> 3); #define PBOOK_HASH(pos) ((pos)->HashValue() & (PBOOK_HASH_BITS - 1)) typedef char compactBoardStr [36]; void PBook::SetHashFlag (Position * pos) { uint hash = PBOOK_HASH(pos); uint index = hash >> 3; uint mask = 1 << (hash & 7); if (HashFlags == NULL) { #ifdef WINCE HashFlags = (byte *)my_Tcl_Alloc(sizeof( byte [PBOOK_HASH_BYTES])); #else HashFlags = new byte [PBOOK_HASH_BYTES]; #endif for (uint i=0; i < PBOOK_HASH_BYTES >> 3; i++) { HashFlags[i] = 0; } } HashFlags[index] |= mask; } bool PBook::GetHashFlag (Position * pos) { uint hash = PBOOK_HASH(pos); uint index = hash >> 3; uint mask = 1 << (hash & 7); if (HashFlags == NULL) { return true; } return ((HashFlags[index] & mask) != 0); } void PBook::AddNodeToList (bookNodeT * node) { ASSERT (NodeListCount <= NodeListCapacity); if (NodeListCount >= NodeListCapacity) { NodeListCapacity += NodeListCapacity; #ifdef WINCE bookNodePtrT * newlist = (bookNodePtrT *)my_Tcl_Alloc(sizeof( bookNodePtrT [NodeListCapacity])); #else bookNodePtrT * newlist = new bookNodePtrT [NodeListCapacity]; #endif for (uint i=0; i < NodeListCount; i++) { newlist[i] = NodeList[i]; } #ifdef WINCE my_Tcl_Free((char*) NodeList); #else delete[] NodeList; #endif NodeList = newlist; } NodeList[NodeListCount] = node; node->data.id = NodeListCount; NodeListCount++; } void PBook::Init () { Altered = false; ReadOnly = false; LeastMaterial = PBOOK_MAX_MATERIAL; SkipCount = 0; FileName = NULL; for (uint t=0; t <= PBOOK_MAX_MATERIAL; t++) { Tree[t] = new StrTree; } NextIndex = 0; Stats_PositionBytes = 0; Stats_CommentBytes = 0; for (uint i=0; i <= PBOOK_MAX_MATERIAL; i++) { Stats_Lookups[i] = Stats_Inserts[i] = 0; } Stats_TotalLookups = 0; Stats_TotalInserts = 0; NodeListCapacity = 1000; #ifdef WINCE NodeList = (bookNodeT**)my_Tcl_Alloc(sizeof(bookNodePtrT [NodeListCapacity])); #else NodeList = new bookNodePtrT [NodeListCapacity]; #endif NodeListCount = 0; HashFlags = NULL; } void PBook::Clear () { bookNodeT * node; Altered = false; for (uint i=0; i <= PBOOK_MAX_MATERIAL; i++) { Tree[i]->IterateStart(); while ((node = Tree[i]->Iterate()) != NULL) { #ifdef WINCE my_Tcl_Free((char*) node->data.comment); #else delete[] node->data.comment; #endif } delete Tree[i]; Tree[i] = new StrTree; } NodeListCount = 0; #ifdef WINCE if (FileName) { my_Tcl_Free( FileName ); } #else if (FileName) { delete[] FileName; } #endif FileName = NULL; NextIndex = 0; LeastMaterial = PBOOK_MAX_MATERIAL; Stats_PositionBytes = 0; Stats_CommentBytes = 0; #ifdef WINCE my_Tcl_Free((char*) HashFlags); #else delete[] HashFlags; #endif HashFlags = NULL; } void PBook::SetFileName (const char * fname) { #ifdef WINCE if (FileName) { my_Tcl_Free( FileName ); } #else if (FileName) { delete[] FileName; } #endif if (!fname) { FileName = NULL; return; } // Allocate space for the filename string: FileName = strDuplicate(fname); } inline const char * epd_findOpcode (const char * epdStr, const char * opcode) { const char * s = epdStr; while (*s != 0) { while (*s == ' ' || *s == '\n') { s++; } if (strIsPrefix (opcode, s)) { const char *codeEnd = s + strLength(opcode); if (*codeEnd == ' ') { return codeEnd + 1; } } while (*s != '\n' && *s != 0) { s++; } } return NULL; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::Find(): Find a position and get its comment. errorT PBook::Find (Position * pos, const char ** ptrComment) { // First, check the optimisation of material count: uint material = pos->GetCount(WHITE) + pos->GetCount(BLACK); ASSERT (material <= PBOOK_MAX_MATERIAL); if (Tree[material]->Size() == 0) { SkipCount++; return ERROR_NotFound; } Stats_Lookups[material]++; Stats_TotalLookups++; // Quick check if any boards in the tree start with the first byte // of this board, to save time: byte firstByte = pos->CompactStrFirstByte(); if (Tree[material]->FirstByteSize (firstByte) == 0) { SkipCount++; return ERROR_NotFound; } // Quick check if the hash value of the search position is // not the hash value of any positions in the tree: if (! GetHashFlag (pos)) { SkipCount++; return ERROR_NotFound; } // Generate the compact board string for this position, and lookup: compactBoardStr cboard; pos->PrintCompactStr (cboard); bookNodeT * node = Tree[material]->Lookup (cboard); if (!node) { return ERROR_NotFound; } if (ptrComment) { *ptrComment = node->data.comment; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::FindOpcode(): // Finds a positition and extracts the requested opcode. errorT PBook::FindOpcode (Position * pos, const char * opcode, DString * target) { const char * comment = NULL; errorT err = Find (pos, &comment); if (err != OK) { return ERROR_NotFound; } const char * s = epd_findOpcode (comment, opcode); if (s == NULL) { return ERROR_NotFound; } while (*s != 0 && *s != '\n') { target->AddChar (*s); s++; } return OK; } errorT PBook::FindSummary (Position * pos, DString * target) { const char * comment = NULL; errorT err = Find (pos, &comment); if (err != OK) { return ERROR_NotFound; } const char * s = epd_findOpcode (comment, "ce"); if (s != NULL) { int ce = strGetInteger (s); if (pos->GetToMove() == BLACK) { ce = -ce; } char temp[20]; sprintf (temp, "%+.2f", ((double) ce) / 100.0); target->Append (temp); return OK; } static const char * opcodes[] = { "eco", "nic", "pv", "pm", "bm", "id", NULL }; for (const char ** opcode = opcodes; *opcode != NULL; opcode++) { s = epd_findOpcode (comment, *opcode); if (s != NULL) { while (*s != 0 && *s != '\n') { target->AddChar (*s); s++; } return OK; } } return ERROR_NotFound; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::FindNext(): // Finds the next position in order after the current one, and // sets it. // If the flag is false, the previous position is found // instead. errorT PBook::FindNext (Position * pos, bool forwards) { ASSERT (pos != NULL); uint totalSize = Size(); if (totalSize == 0) { return ERROR_NotFound; } if (forwards) { do { NextIndex++; if (NextIndex >= NodeListCount) { NextIndex = 0; } } while (NodeList[NextIndex] == NULL); } else { do { if (NextIndex == 0) { NextIndex = NodeListCount - 1; } else { NextIndex--; } } while (NodeList[NextIndex] == NULL); } bookNodeT * node = NodeList[NextIndex]; ASSERT (node != NULL); errorT err = pos->ReadFromCompactStr ((const byte *) node->name); if (err != OK) { return err; } pos->SetEPTarget (node->data.enpassant); // Now print to FEN and re-read, to ensure the piece lists are in // the order produced by a FEN specification -- this is necessary // since a game with a specified start position has the piece lists // in the FEN-generated order: char temp[200]; pos->PrintFEN (temp, FEN_CASTLING_EP); err = pos->ReadFromFEN (temp); return err; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::Insert(): Insert a position. Returns OK if a new position // was inserted, or updates the comment and returns ERROR_Exists if // the position was already in the PBook. errorT PBook::Insert (Position * pos, const char * comment) { ASSERT (pos && comment); bookNodeT * node; errorT err; uint material = pos->GetCount(WHITE) + pos->GetCount(BLACK); compactBoardStr cboard; pos->PrintCompactStr (cboard); err = Tree[material]->Insert (cboard, &node); if (err != OK) { // Already exists; we overwrite the old data. #ifdef WINCE my_Tcl_Free((char*) node->data.comment); #else delete[] node->data.comment; #endif } else { SetHashFlag (pos); AddNodeToList (node); } node->data.comment = strDuplicate (comment); node->data.enpassant = pos->GetEPTarget(); Altered = true; if (material < LeastMaterial) { LeastMaterial = material; } Stats_Inserts[material]++; Stats_TotalInserts++; return err; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::Delete(): // Delete a position from the PBook. errorT PBook::Delete (Position * pos) { uint material = pos->GetCount(WHITE) + pos->GetCount(BLACK); compactBoardStr cboard; pos->PrintCompactStr (cboard); bookNodeT * node = Tree[material]->Delete (cboard); if (!node) { return ERROR_NotFound; } NodeList[node->data.id] = NULL; // Delete the comment string: #ifdef WINCE my_Tcl_Free((char*) node->data.comment); my_Tcl_Free((char*) node); #else delete[] node->data.comment; delete node; #endif Altered = true; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::EcoSummary(): // Produce a summary from the PBook for the specified ECO code prefix. void PBook::EcoSummary (const char * ecoPrefix, DString * dstr) { uint depth = strLength (ecoPrefix); const char * prevEcoStr = ""; for (uint i=0; i < NodeListCount; i++) { bookNodeT * node = NodeList[i]; if (node == NULL) { continue; } const char * comment = node->data.comment; const char * ecoStr = epd_findOpcode (comment, "eco"); const char * movesStr = epd_findOpcode (comment, "moves"); if (ecoStr != NULL && strIsPrefix (ecoPrefix, ecoStr)) { if (depth < 3 && strPrefix (ecoStr, prevEcoStr) >= depth+1) { continue; } prevEcoStr = ecoStr; while (*ecoStr != '\n' && *ecoStr != 0) { dstr->AddChar (*ecoStr); ecoStr++; } dstr->Append (" "); while (*movesStr != '\n' && *movesStr != 0) { dstr->AddChar (*movesStr); movesStr++; } dstr->AddChar ('\n'); } } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::StripOpcode: // Strips the specified opcode from every position in the book. // Only the first occurrence of an opcode is removed for any position, // but opcodes are not supposed to occur more than once anyway. // Returns the number of positions where an opcode was removed. uint PBook::StripOpcode (const char * opcode) { #ifdef WINCE char * searchCode = my_Tcl_Alloc(sizeof( char [strLength(opcode) + 2])); #else char * searchCode = new char [strLength(opcode) + 2]; #endif strCopy (searchCode, opcode); strAppend (searchCode, " "); DString dstr; uint countFound = 0; for (uint i=0; i < NodeListCount; i++) { bookNodeT * node = NodeList[i]; if (node == NULL) { continue; } const char * s = node->data.comment; int startIndex = -1; int index = 0; // Look for a line with a matching opcode: while (*s != 0) { while (*s == '\n' || *s == ' ') { s++; index++; } if (strIsPrefix (searchCode, s)) { startIndex = index; countFound++; break; } while (*s != 0 && *s != '\n') { s++; index++; } } if (startIndex > -1) { s = node->data.comment; index = 0; // Add all characters before the line to be stripped: dstr.Clear(); while (index < startIndex) { dstr.AddChar (s[index]); index++; } // Now find the end of this line: s = &(s[startIndex + 1]); while (*s != 0 && *s != '\n') { s++; } if (*s == '\n') { s++; } while (*s != 0) { dstr.AddChar (*s); s++; } #ifdef WINCE my_Tcl_Free((char*) node->data.comment); #else delete[] node->data.comment; #endif node->data.comment = strDuplicate (dstr.Data()); } } #ifdef WINCE my_Tcl_Free((char*)searchCode); #else delete[] searchCode; #endif return countFound; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::ReadEcoFile(): // Read an ECO (not EPD) format file. errorT PBook::ReadEcoFile () { MFile fp; if (fp.Open (FileName, FMODE_ReadOnly) != OK) { return ERROR_FileOpen; } ReadOnly = true; LineCount = 1; // An initial position // Position std_start; std_start.StdStart(); DString text; DString moves; ecoStringT ecoStr; ecoT ecoCode; int ch; errorT err = OK; bool done = false; // Loop to read in and add all positions: while (!done) { // Find the next ECO code: while (true) { ch = fp.ReadOneByte(); if (ch == EOF) { done = true; break; } if (ch == '\n') { LineCount++; } if (ch >= 'A' && ch <= 'E') { break; } if (ch == '#') { while (ch != '\n' && ch != EOF) { ch = fp.ReadOneByte(); } if (ch == EOF) { done = true; } LineCount++; } } if (done) { break; } // Read in the rest of the ECO code: ecoStr[0] = ch; ch = fp.ReadOneByte(); if (ch < '0' || ch > '9') { goto corrupt; } ecoStr[1] = ch; ch = fp.ReadOneByte(); if (ch < '0' || ch > '9') { goto corrupt; } ecoStr[2] = ch; ecoStr[3] = 0; // Now check for optional extra part of code, e.g. "A00a1": ch = fp.ReadOneByte(); if (ch >= 'a' && ch <= 'z') { ecoStr[3] = ch; ecoStr[4] = 0; ch = fp.ReadOneByte(); if (ch >= '1' && ch <= '4') { ecoStr[4] = ch; ecoStr[5] = 0; } } // Now put ecoCode in the text string and read the text in quotes: ecoCode = eco_FromString (ecoStr); eco_ToExtendedString (ecoCode, ecoStr); text.Clear(); text.Append ("eco ", ecoStr, " ["); // Find the start of the text: while ((ch = fp.ReadOneByte()) != '"') { if (ch == EOF) { goto corrupt; } } while ((ch = fp.ReadOneByte()) != '"') { if (ch == EOF) { goto corrupt; } text.AddChar ((char) ch); } text.Append ("]\n"); // Now read the position: moves.Clear(); char prev = 0; while ((ch = fp.ReadOneByte()) != '*') { if (ch == EOF) { goto corrupt; } if (ch == '\n') { ch = ' '; LineCount++; } if (ch != ' ' || prev != ' ') { moves.AddChar ((char) ch); } prev = ch; } // Start from the initial position // Position pos( std_start ); err = pos.ReadLine (moves.Data()); if (err != OK) { goto corrupt; } text.Append ("moves ", strTrimLeft (moves.Data()), "\n"); if (Insert (&pos, text.Data()) != OK) { // Position already exists: just ignore it. } } fp.Close(); return OK; corrupt: fp.Close(); return ERROR_Corrupt; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::ReadFile(): read in a file. errorT PBook::ReadFile () { ASSERT (FileName != NULL); ReadOnly = false; MFile fp; if (fp.Open (FileName, FMODE_Both) != OK) { ReadOnly = true; if (fp.Open (FileName, FMODE_ReadOnly) != OK) { return ERROR_FileOpen; } } LineCount = 1; Position * pos = new Position; DString * line = new DString; fp.ReadLine (line); DString dstr; while (! fp.EndOfFile()) { if (pos->ReadFromFEN (line->Data()) != OK) { fprintf (stderr, "Error reading line: %u\n", LineCount); LineCount++; line->Clear(); fp.ReadLine (line); continue; //exit (1); } char * s = (char *) line->Data(); // Skip over first four fields, which were the position: while (*s == ' ') { s++; } for (uint i=0; i < 4; i++) { while (*s != ' ' && *s != 0) { s++; } while (*s == ' ') { s++; } } // Now process each field in turn: while (*s == ';' || *s == ' ') { s++; } dstr.Clear(); while (*s != 0) { while (*s == ';' || *s == ' ') { s++; } bool seenCode = false; while (*s != ';' && *s != 0) { seenCode = true; char ch = *s; // Check for backslash (escape) character: if (ch == '\\') { s++; ch = *s; // "\s" -> semicolon within a field: if (ch == 's') { ch = ';'; } } dstr.AddChar (ch); s++; } if (seenCode) { dstr.AddChar ('\n'); } } if (Insert (pos, dstr.Data()) != OK) { //fprintf (stderr, "Warning: position already exists! Line %u\n", // LineCount); } LineCount++; line->Clear(); fp.ReadLine (line); } delete pos; delete line; fp.Close(); Altered = false; NextIndex = NodeListCount - 1; return OK; } #ifdef WINCE errorT PBook::WriteFile () { ASSERT (FileName != NULL); bookNodeT * node; //FILE * fp = fopen (FileName, "w"); Tcl_Channel fp = my_Tcl_OpenFileChannel(NULL, FileName, "w", 0666); if (!fp) { return ERROR_FileOpen; } my_Tcl_SetChannelOption(NULL, fp, "-encoding", "binary"); my_Tcl_SetChannelOption(NULL, fp, "-translation", "binary"); Stats_PositionBytes = 0; Stats_CommentBytes = 0; Position * pos = new Position; char tempStr [200]; for (uint i=0; i < NodeListCount; i++) { node = NodeList[i]; if (node == NULL) { continue; } if (pos->ReadFromCompactStr ((const byte *) node->name) != OK) { //fclose (fp); my_Tcl_Close(NULL, fp); delete pos; return ERROR_Corrupt; } pos->SetEPTarget (node->data.enpassant); pos->PrintFEN (tempStr, FEN_CASTLING_EP); //fprintf (fp, "%s", tempStr); my_Tcl_Write(fp, tempStr, strlen(tempStr)); Stats_PositionBytes += strLength (tempStr); bool atCodeStart = true; char * s = node->data.comment; char c; while (*s != 0) { if (*s == '\n') { if (! atCodeStart) { /*fputc (';', fp);*/c =';'; my_Tcl_Write(fp, &c, 1); Stats_CommentBytes++; } atCodeStart = true; s++; while (*s == ' ') { s++; } } else { if (atCodeStart) { /*fputc (' ', fp);*/ c =' '; my_Tcl_Write(fp, &c, 1);Stats_CommentBytes++; } atCodeStart = false; // Encode "\" as "\\" and ";" as "\s": char ch = *s; switch (ch) { case '\\': //fputc ('\\', fp); //fputc ('\\', fp); my_Tcl_Write(fp, &ch, 1); my_Tcl_Write(fp, &ch, 1); Stats_CommentBytes += 2; break; case ';': //fputc ('\\', fp); //fputc ('s', fp); c = '\\'; my_Tcl_Write(fp, &c, 1); c = 's'; my_Tcl_Write(fp, &c, 1); Stats_CommentBytes += 2; break; default: //fputc (ch, fp); my_Tcl_Write(fp, &ch, 1); Stats_CommentBytes++; } s++; } } //fputc ('\n', fp); c = '\n'; my_Tcl_Write(fp, &c, 1); Stats_CommentBytes++; } //fclose(fp); my_Tcl_Close(NULL, fp); delete pos; Altered = false; return OK; } void PBook::DumpStats (/*FILE **/Tcl_Channel fp) { char buf[1024]; //fprintf (fp, "%d\n", LeastMaterial); sprintf (buf, "%d\n", LeastMaterial); my_Tcl_Write(fp, buf, strlen(buf)); for (uint i=LeastMaterial; i <= PBOOK_MAX_MATERIAL; i++) { // fprintf (fp, "%4d %8d (%5.2f%%) ", i, Stats_Lookups[i], // (float)Stats_Lookups[i] * 100.0 / Stats_TotalLookups); sprintf (buf, "%4d %8d (%5.2f%%) ", i, Stats_Lookups[i], (float)Stats_Lookups[i] * 100.0 / Stats_TotalLookups); my_Tcl_Write(fp, buf, strlen(buf)); // fprintf (fp, "%8d (%5.2f%%)\n", Stats_Inserts[i], // (float)Stats_Inserts[i] * 100.0 / Stats_TotalInserts); sprintf (buf, "%8d (%5.2f%%)\n", Stats_Inserts[i], (float)Stats_Inserts[i] * 100.0 / Stats_TotalInserts); my_Tcl_Write(fp, buf, strlen(buf)); } } #else //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PBook::WriteFile(): writes the entire PBook to a file. errorT PBook::WriteFile () { ASSERT (FileName != NULL); bookNodeT * node; FILE * fp = fopen (FileName, "w"); if (!fp) { return ERROR_FileOpen; } Stats_PositionBytes = 0; Stats_CommentBytes = 0; Position * pos = new Position; char tempStr [200]; for (uint i=0; i < NodeListCount; i++) { node = NodeList[i]; if (node == NULL) { continue; } if (pos->ReadFromCompactStr ((const byte *) node->name) != OK) { fclose (fp); delete pos; return ERROR_Corrupt; } pos->SetEPTarget (node->data.enpassant); pos->PrintFEN (tempStr, FEN_CASTLING_EP); fprintf (fp, "%s", tempStr); Stats_PositionBytes += strLength (tempStr); bool atCodeStart = true; char * s = node->data.comment; while (*s != 0) { if (*s == '\n') { if (! atCodeStart) { fputc (';', fp); Stats_CommentBytes++; } atCodeStart = true; s++; while (*s == ' ') { s++; } } else { if (atCodeStart) { fputc (' ', fp); Stats_CommentBytes++; } atCodeStart = false; // Encode "\" as "\\" and ";" as "\s": char ch = *s; switch (ch) { case '\\': fputc ('\\', fp); fputc ('\\', fp); Stats_CommentBytes += 2; break; case ';': fputc ('\\', fp); fputc ('s', fp); Stats_CommentBytes += 2; break; default: fputc (ch, fp); Stats_CommentBytes++; } s++; } } fputc ('\n', fp); Stats_CommentBytes++; } fclose(fp); delete pos; Altered = false; return OK; } void PBook::DumpStats (FILE * fp) { fprintf (fp, "%d\n", LeastMaterial); for (uint i=LeastMaterial; i <= PBOOK_MAX_MATERIAL; i++) { fprintf (fp, "%4d %8d (%5.2f%%) ", i, Stats_Lookups[i], (float)Stats_Lookups[i] * 100.0 / Stats_TotalLookups); fprintf (fp, "%8d (%5.2f%%)\n", Stats_Inserts[i], (float)Stats_Inserts[i] * 100.0 / Stats_TotalInserts); } } #endif ////////////////////////////////////////////////////////////////////// // EOF: pbook.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/engine.h0000644000175000017500000003532411727223076015651 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: engine.h // Engine class // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2002-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // The Engine class provides a simple chess position evaluator // based on negamax with quiescent search and alpha/beta pruning. // It is used in Scid for doing small quick searches to determine // which of the possible legal moves to or from a particular square // to suggest as the best move for faster mouse input. #ifndef SCID_ENGINE_H #define SCID_ENGINE_H #include #include "position.h" #include "timer.h" const uint ENGINE_MAX_PLY = 40; // Maximum search ply. const int ENGINE_MAX_HISTORY = 100000; // Max accumulated history value. const int ENGINE_HASH_SCORE = 100000000; // To order hash moves first. const uint ENGINE_HASH_KB = 32; // Default hash table size in KB. const uint ENGINE_PAWN_KB = 1; // Default pawn table size in KB. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // principalVarT // Stores the principal variation at one search Ply depth. // struct principalVarT { uint length; simpleMoveT move [ENGINE_MAX_PLY]; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // scoreFlagT // Types of transposition table score and endgame recognition score. // typedef byte scoreFlagT; const scoreFlagT SCORE_NONE = 0, // Not a useful score. SCORE_EXACT = 1, // Exact score. SCORE_LOWER = 2, // Lower bound, real score could be higher. SCORE_UPPER = 3; // Upper bound, real score could be lower. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // transTableEntryT // Transposition table entry. // Apart from the type flag, depth and score, it also stores the // hash codes and other position values for safety checks to avoid // a false hit. // The best move is also stored, in a compact format to save space. // struct transTableEntryT { uint hash; // Hash value. uint pawnhash; // Pawn hash value, for extra safety check. short score; // Evaluation score. ushort bestMove; // Best move from/to/promote values. byte depth; // Depth of evaulation. byte flags; // Score type, side to move and castling flags. byte sequence; // Sequence number, for detecting old entries. squareT enpassant; // En passant target square. }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // pawnTableEntryT // Pawn structure score hash table entry. // struct pawnTableEntryT { uint pawnhash; // Pawn hash value for this pawn structure. uint sig; // Safety check value, to avoid false hits. short score; // Positional score for pawn structure. short wLongbShortScore; // Pawn storm score for wk on abc, bk on abc. short wShortbLongScore; // Pawn storm score for wk on fgh, bk on fgh. byte fyleHasPassers[2]; // One bit per file, indicating passed pawns. }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // repeatT // Repetition-detection stack entry. // An entry is pushed onto the stack when a move is made, and // popped off when the move is unmade. // struct repeatT { uint hash; // Position hash code. uint pawnhash; // Position pawn-structure hash code. uint npieces; // Total number of pieces in position. colorT stm; // Side to move. }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine // Class representing a chess engine. // class Engine { private: Position RootPos; // Position at start of search. Position Pos; // Current position in search. uint MaxDepth; // Search depth limit. int SearchTime; // Search time limit in milliseconds. int MinSearchTime; // Minimum search time in milliseconds. int MaxSearchTime; // Maximum search time in milliseconds. uint MinDepthCheckTime; // will not check time before this depth is reached bool Debug; // If true, print debug info to stdout. bool PostInfo; // If true, print post info to stdout. bool XBoardMode; // If true, print info in xboard format. bool Pruning; // If true, do futility pruning. #ifndef WINCE FILE * LogFile; // Output is to stdout and to this file. #endif uint QNodeCount; // Nodes examined in quiescent search. uint NodeCount; // Nodes examined in total. Timer Elapsed; // Timer for interrupting search. bool IsOutOfTime; // Becomes true when search is out of time. uint Ply; // Current ply being examined. bool EasyMove; // True if the search indicates one move is // far better than the others. bool HardMove; // True if failed low at root on current depth. uint InNullMove; // If > 0, in null move search so no PV updates. uint RepStackSize; // Repetition stack size. repeatT RepStack [1024]; // Repetition stack. bool InCheck [ENGINE_MAX_PLY]; // In-check at each ply. principalVarT PV [ENGINE_MAX_PLY]; // Principal variation at each ply. simpleMoveT KillerMove [ENGINE_MAX_PLY][2]; // Two killer moves per ply. int History[16][64]; // Success history of piece-to-square moves. byte TranTableSequence; // Transposition table sequence number. uint TranTableSize; // Number of Transposition table entries. transTableEntryT * TranTable; // Transposition table. uint PawnTableSize; // Number of Pawn structure table entries. pawnTableEntryT * PawnTable; // Pawn structure score hash table. bool (*CallbackFunction)(Engine *, void *); // Periodic callback. void * CallbackData; simpleMoveT * GameMoves [1024]; uint NumGameMoves; private: int PieceValue (pieceT piece); int SearchRoot (int depth, int alpha, int beta, MoveList * mlist); int Search (int depth, int alpha, int beta, bool tryNullMove); int Quiesce (int alpha, int beta); int SEE (squareT from, squareT to); void ScoreMoves (MoveList * mlist); inline void DoMove (simpleMoveT * sm); inline void UndoMove (simpleMoveT * sm); inline void SetPVLength (void); inline void UpdatePV (simpleMoveT * sm); void Output (const char * format, ...); void PrintPV (uint depth, int score) { PrintPV (depth, score, ""); } void PrintPV (uint depth, int score, const char * annotation); inline void PushRepeat (Position * pos); inline void PopRepeat (void); void StoreHash (int depth, scoreFlagT flag, int score, simpleMoveT * bestmove, bool isOnlyMove); scoreFlagT ProbeHash (int depth, int * score, simpleMoveT * bestMove, bool * isOnlyMove); inline void ClearKillerMoves (void); inline void AddKillerMove (simpleMoveT * sm); inline bool IsKillerMove (simpleMoveT * sm); inline void ClearHistoryValues (void); inline void HalveHistoryValues (void); inline void IncHistoryValue (simpleMoveT * sm, int increment); inline int GetHistoryValue (simpleMoveT * sm); int Score (int alpha, int beta); inline int ScoreWhiteMaterial (void); inline int ScoreBlackMaterial (void); void ScorePawnStructure (pawnTableEntryT * pawnEntry); bool IsMatingScore (int score); bool IsGettingMatedScore (int score); bool OutOfTime (void); void AdjustTime (bool easyMove); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif Engine() { MaxDepth = ENGINE_MAX_PLY; // A large default search depth SearchTime = 1000; // Default search time: 1000 ms = one second. MinSearchTime = MaxSearchTime = SearchTime; MinDepthCheckTime = 4; // will not check time until depth is at least of this value #ifndef WINCE LogFile = NULL; #endif Debug = false; PostInfo = false; XBoardMode = false; Pruning = false; RepStackSize = 0; TranTable = NULL; TranTableSize = 0; TranTableSequence = 0; PawnTable = NULL; PawnTableSize = 0; SetHashTableKilobytes (ENGINE_HASH_KB); SetPawnTableKilobytes (ENGINE_PAWN_KB); CallbackFunction = NULL; NumGameMoves = 0; RootPos.StdStart(); Pos.StdStart(); PV[0].length = 0; } #ifdef WINCE ~Engine() { my_Tcl_Free((char*) TranTable); my_Tcl_Free((char*) PawnTable); } #else ~Engine() { delete[] TranTable; delete[] PawnTable; } #endif void SetSearchDepth (uint ply) { if (ply < 1) { ply = 1; } if (ply > ENGINE_MAX_PLY) { ply = ENGINE_MAX_PLY; } MaxDepth = ply; } void SetSearchTime (uint ms) { MinSearchTime = SearchTime = MaxSearchTime = ms; } void SetSearchTime (uint min, uint ms, uint max) { MinSearchTime = min; SearchTime = ms; MaxSearchTime = max; } void SetMinDepthCheckTime(uint depth) { MinDepthCheckTime = depth; } void SetDebug (bool b) { Debug = b; } void SetPostMode (bool b) { PostInfo = b; } bool InPostMode (void) { return PostInfo; } void SetXBoardMode (bool b) { XBoardMode = b; } bool InXBoardMode (void) { return XBoardMode; } void SetPruning (bool b) { Pruning = b; } #ifndef WINCE void SetLogFile (FILE * fp) { LogFile = fp; } #endif void SetHashTableKilobytes (uint sizeKB); void SetPawnTableKilobytes (uint sizeKB); uint NumHashTableEntries (void) { return TranTableSize; } uint NumPawnTableEntries (void) { return PawnTableSize; } void ClearHashTable (void); void ClearPawnTable (void); void ClearHashTables (void) { ClearHashTable(); ClearPawnTable(); } void SetCallbackFunction (bool (*fn)(Engine *, void *), void * data) { CallbackFunction = fn; CallbackData = data; } uint GetNodeCount (void) { return NodeCount; } bool NoMatingMaterial (void); bool FiftyMoveDraw (void); uint RepeatedPosition (void); void SetPosition (Position * pos); Position * GetPosition (void) { return &RootPos; } void PlayMove (simpleMoveT * move); void RetractMove (void); int Score (void); int ScoreMaterial (void); principalVarT * GetPV (void) { return &(PV[0]); } uint PerfTest (uint depth); uint ElapsedTime (void) { return Elapsed.MilliSecs(); } int Think (MoveList * mlist); }; inline void Engine::SetPVLength (void) { if (Ply < ENGINE_MAX_PLY - 1) {PV[Ply].length = Ply; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::UpdatePV // Updates the principal variation at the current Ply to // include the specified move. inline void Engine::UpdatePV (simpleMoveT * sm) { if (Ply >= ENGINE_MAX_PLY - 1) { return; } if (InNullMove > 0) { return; } // if (! Pos.IsLegalMove (sm)) { return; } PV[Ply].move[Ply] = *sm; for (uint j = Ply + 1; j < PV[Ply + 1].length; j++) { PV[Ply].move[j] = PV[Ply+1].move[j]; } PV[Ply].length = PV[Ply+1].length; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Killer moves: // We keep track of two "killer" moves at each ply, moves which // are not captures or promotions (as they get ordered first) but // were good enough to cause a beta cutoff. Killer moves get // ordered after good captures but before non-killer noncaptures, // which are ordered using the history table (see below). // // Only noncaptures and non-promotion moves can be killer moves, but // we make an exception for those that have a negative score (meaning // they lose material according to the static exchange evaluator), // since they would otherwise be searched last after all noncaptures. inline void Engine::ClearKillerMoves (void) { for (uint i=0; i < ENGINE_MAX_PLY; i++) { KillerMove[i][0].from = NULL_SQUARE; KillerMove[i][1].from = NULL_SQUARE; } } inline void Engine::AddKillerMove (simpleMoveT * sm) { if (sm->capturedPiece != EMPTY && sm->score >= 0) { return; } if (sm->promote != EMPTY && sm->score >= 0) { return; } simpleMoveT * killer0 = &(KillerMove[Ply][0]); simpleMoveT * killer1 = &(KillerMove[Ply][1]); if (killer0->from == sm->from && killer0->to == sm->to && killer0->movingPiece == sm->movingPiece) { return; } *killer1 = *killer0; *killer0 = *sm; } inline bool Engine::IsKillerMove (simpleMoveT * sm) { simpleMoveT * killer0 = &(KillerMove[Ply][0]); if (killer0->from == sm->from && killer0->to == sm->to && killer0->movingPiece == sm->movingPiece) { return true; } simpleMoveT * killer1 = &(KillerMove[Ply][1]); if (killer1->from == sm->from && killer1->to == sm->to && killer1->movingPiece == sm->movingPiece) { return true; } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // History table: // This is a table of values indexed by moving piece and // target square, indicating the historical success of each move // as measured by the frequency of "good" (better than alpha) // scores. It is used to order non-capture moves after killers. inline void Engine::ClearHistoryValues (void) { for (pieceT p = WK; p <= BP; p++) { for (squareT to = A1; to <= H8; to++) { History[p][to] = 0; } } } inline void Engine::HalveHistoryValues (void) { // Output("# Halving history values\n"); for (pieceT p = WK; p <= BP; p++) { for (squareT to = A1; to <= H8; to++) { History[p][to] /= 2; } } } inline void Engine::IncHistoryValue (simpleMoveT * sm, int increment) { if (sm->capturedPiece != EMPTY && sm->score >= 0) { return; } if (sm->promote != EMPTY && sm->score >= 0) { return; } pieceT p = sm->movingPiece; squareT to = sm->to; ASSERT (p <= BP && to <= H8); History[p][to] += increment; // Halve all history values if this one gets too large, to avoid // non-capture moves getting searched before captures: if (History[p][to] >= ENGINE_MAX_HISTORY) { HalveHistoryValues(); } } inline int Engine::GetHistoryValue (simpleMoveT * sm) { pieceT p = sm->movingPiece; squareT to = sm->to; ASSERT (p <= BP && to <= H8); return History[p][to]; } #endif // SCID_ENGINE_H ////////////////////////////////////////////////////////////////////// // EOF: engine.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/spellchk.h0000644000175000017500000001024511727223076016204 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: spellchk.h // SpellChecker class // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2001-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef WINCE #ifndef SCID_SPELLCHK_H #define SCID_SPELLCHK_H #include "misc.h" #include "stralloc.h" #include "namebase.h" const uint SPELL_HASH_SIZE = 4096; struct bioNoteT { char * text; bioNoteT * next; }; struct spellCheckNodeT { char * name; // The possibly incorrect spelling of this name. char * correctName; // The correct spelling of this name. char * renderName; // The real (with umlauts, etc) spelling. char * comment; // Extra info, e.g. title/country/elo/date of birth spellCheckNodeT * next; eloT * eloData; // History of FIDE Elo ratings for player. bioNoteT * bioData; // Biography data. bool correction; // Indicates whether this node is a correction. spellCheckNodeT * nextHash; }; struct presuffixNodeT { char * name; char * correctName; int length; presuffixNodeT * next; }; class SpellChecker { private: uint CorrectNameCount; uint IncorrectNameCount; nameT NameType; char * ExcludeChars; bool EloDataSeen; StrAllocator * StrAlloc; spellCheckNodeT * Names [256]; spellCheckNodeT * HashNames [SPELL_HASH_SIZE]; // HashNames[] gives fast access to correct names only. presuffixNodeT * Prefixes; // Prefix substitutions presuffixNodeT * Suffixes; // Suffix substitutions presuffixNodeT * Infixes; // Infix substitutions void Init (void); void Destroy (void); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif SpellChecker () { Init(); } ~SpellChecker () { Destroy(); } void Clear (void); void SetExcludeChars (const char * str); const char * GetExcludeChars (void) { return ExcludeChars; } uint NumCorrectNames (void) { return CorrectNameCount; } uint NumIncorrectNames (void) { return IncorrectNameCount; } void SetNameType (nameT nt) { NameType = nt; } nameT GetNameType (void) { return NameType; } bool HasEloData (void) { return EloDataSeen; } const char * CorrectPrefix (const char * name, int * offset); const char * CorrectSuffix (const char * name, int * offset); const char * CorrectInfix (const char * name, int * offset, int * replacedLength); const char * Correct (const char * name); uint Corrections (const char * name, const char ** corrections, uint maxCorrections); void SetRenderName (spellCheckNodeT * node, const char * name); const char * RenderName (const char * name); const char * GetComment (const char * name); const char * GetCommentExact (const char * name); errorT ReadSpellCheckFile (const char * filename, bool checkPlayerOrder); errorT AddPrefixSuffix (char * str); void AddBioData (spellCheckNodeT * node, const char * str); const bioNoteT * GetBioData (const char * name); void AddEloData (spellCheckNodeT * node, const char * str); void SetElo (spellCheckNodeT * node, uint year, uint quarter, eloT elo); eloT GetElo (const char * name, dateT date, bool exact); static const char * GetTitle (const char * comment); static const char * GetLastCountry (const char * comment); static eloT GetPeakRating (const char * comment); static dateT GetBirthdate (const char * comment); static dateT GetDeathdate (const char * comment); void Dump (FILE * fp); }; #endif // SCID_SPELLCHK_H #endif // WINCE ////////////////////////////////////////////////////////////////////// // EOF: spellchk.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/stored.cpp0000644000175000017500000003162211727223076016234 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: stored.cpp // StoredLine class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.0 // // Notice: Copyright (c) 2001 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "stored.h" #include "pgnparse.h" #include "timer.h" // Stored line codes: used to speed up tree searches. // The basic idea is: keep a fixed dictionary of popular opening lines where // move order is significant (e.g. 1.d4 e6 2.e4 is NOT equal to 1.e4 e6 2.d4). // For each game, the longest sequence of initial moves found in the // dictionary is stored in the index file, as an integer value. // When tree-searching for a position, each stored line is searched // first and if an exact match is found for one (and it has a further // move), all games with that stored line code can be found as matches // without decoding. // Furthermore, if we detect that a line cannot possibly lead to a match // because of its end material value or pawn configuration, all games with // that stored line code can be excluded and skipped without decoding. static const uint nStoredLines = 254; static Game ** storedLineGames = NULL; void StoredLine::FreeStoredLine() { if (storedLineGames == NULL) return; for (uint i = 1; i <= nStoredLines; i++) { delete storedLineGames[i]; } #ifdef WINCE my_Tcl_Free( (char*) storedLineGames ); #else delete[] storedLineGames; #endif storedLineGames = NULL; } bool StoredLine::isInitialized() { return (storedLineGames != NULL); } static const char * storedLineText [nStoredLines + 1] = { "", // index zero is unused "1.b3", "1.c4", "1.c4 c5", "1.c4 c5 2.Nf3", "1.c4 e5", "1.c4 e5 2.Nc3", "1.c4 e5 2.Nc3 Nf6", "1.c4 e6", "1.c4 e6 2.Nf3", "1.c4 g6", "1.c4 Nf6", "1.c4 Nf6 2.Nc3", "1.c4 Nf6 2.Nc3 e6", "1.c4 Nf6 2.Nc3 g6", "1.d4", "1.d4 d5", "1.d4 d5 2.c4", "1.d4 d5 2.c4 c6", "1.d4 d5 2.c4 c6 3.Nc3", "1.d4 d5 2.c4 c6 3.Nc3 Nf6", "1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.Nf3", "1.d4 d5 2.c4 c6 3.Nf3", "1.d4 d5 2.c4 c6 3.Nf3 Nf6", "1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3", "1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 e6", "1.d4 d5 2.c4 dxc4", "1.d4 d5 2.c4 dxc4 3.Nf3", "1.d4 d5 2.c4 dxc4 3.Nf3 Nf6", "1.d4 d5 2.c4 e6", "1.d4 d5 2.c4 e6 3.Nc3", "1.d4 d5 2.c4 e6 3.Nc3 c6", "1.d4 d5 2.c4 e6 3.Nc3 Nf6", "1.d4 d5 2.c4 e6 3.Nf3", "1.d4 d5 2.Nf3", "1.d4 d5 2.Nf3 Nf6", "1.d4 d5 2.Nf3 Nf6 3.c4", "1.d4 d5 2.Nf3 Nf6 3.c4 c6", "1.d4 d5 2.Nf3 Nf6 3.c4 e6", "1.d4 d6", "1.d4 d6 2.Nf3", "1.d4 e6", "1.d4 e6 2.c4", "1.d4 e6 2.c4 Nf6", "1.d4 f5", "1.d4 f5 2.g3 Nf6 3.Bg2", "1.d4 g6", "1.d4 g6 2.c4 Bg7", "1.d4 Nf6", "1.d4 Nf6 2.Bg5", "1.d4 Nf6 2.Bg5 Ne4", "1.d4 Nf6 2.c4", "1.d4 Nf6 2.c4 c5", "1.d4 Nf6 2.c4 c5 3.d5", "1.d4 Nf6 2.c4 c5 3.d5 b5", "1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6", "1.d4 Nf6 2.c4 e6 3.g3", "1.d4 Nf6 2.c4 e6 3.g3 d5", "1.d4 Nf6 2.c4 e6 3.Nc3", "1.d4 Nf6 2.c4 e6 3.Nc3 Bb4", "1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3", "1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O", "1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2", "1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O", "1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3", "1.d4 Nf6 2.c4 e6 3.Nc3 d5", "1.d4 Nf6 2.c4 e6 3.Nf3", "1.d4 Nf6 2.c4 e6 3.Nf3 b6", "1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3", "1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3", "1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6", "1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+", "1.d4 Nf6 2.c4 e6 3.Nf3 d5", "1.d4 Nf6 2.c4 e6 3.Nf3 d5 4.Nc3", "1.d4 Nf6 2.c4 g6", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Nf3", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O", "1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7", "1.d4 Nf6 2.c4 g6 3.Nc3 d5", "1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3", "1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5", "1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7", "1.d4 Nf6 2.Nf3", "1.d4 Nf6 2.Nf3 c5", "1.d4 Nf6 2.Nf3 d5", "1.d4 Nf6 2.Nf3 e6", "1.d4 Nf6 2.Nf3 e6 3.Bg5", "1.d4 Nf6 2.Nf3 e6 3.c4", "1.d4 Nf6 2.Nf3 g6", "1.d4 Nf6 2.Nf3 g6 3.Bg5", "1.d4 Nf6 2.Nf3 g6 3.c4", "1.d4 Nf6 2.Nf3 g6 3.c4 Bg7", "1.d4 Nf6 2.Nf3 g6 3.c4 Bg7 4.Nc3", "1.d4 Nf6 2.Nf3 g6 3.c4 Bg7 4.Nc3 O-O", "1.d4 Nf6 2.Nf3 g6 3.g3", "1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2", "1.e4", "1.e4 c5", "1.e4 c5 2.c3", "1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4", "1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6", "1.e4 c5 2.c3 Nf6 3.e5 Nd5", "1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4", "1.e4 c5 2.d4 cxd4", "1.e4 c5 2.Nc3", "1.e4 c5 2.Nc3 Nc6", "1.e4 c5 2.Nc3 Nc6 3.g3", "1.e4 c5 2.Nc3 Nc6 3.g3 g6", "1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7", "1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3", "1.e4 c5 2.Nf3", "1.e4 c5 2.Nf3 d6", "1.e4 c5 2.Nf3 d6 3.Bb5+", "1.e4 c5 2.Nf3 d6 3.d4", "1.e4 c5 2.Nf3 d6 3.d4 cxd4", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bc4", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5", "1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2", "1.e4 c5 2.Nf3 e6", "1.e4 c5 2.Nf3 e6 3.d3", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3", "1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 d6", "1.e4 c5 2.Nf3 Nc6", "1.e4 c5 2.Nf3 Nc6 3.Bb5", "1.e4 c5 2.Nf3 Nc6 3.Bb5 g6", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 d6", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 d6 6.Bg5", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6", "1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5", "1.e4 c6", "1.e4 c6 2.d4 d5", "1.e4 c6 2.d4 d5 3.e5", "1.e4 c6 2.d4 d5 3.e5 Bf5", "1.e4 c6 2.d4 d5 3.exd5 cxd5", "1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3", "1.e4 c6 2.d4 d5 3.Nc3", "1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4", "1.e4 c6 2.d4 d5 3.Nd2 dxe4 4.Nxe4", "1.e4 d5 2.exd5 Nf6", "1.e4 d5 2.exd5 Qxd5", "1.e4 d5 2.exd5 Qxd5 3.Nc3", "1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5", "1.e4 d6", "1.e4 d6 2.d4", "1.e4 d6 2.d4 Nf6", "1.e4 d6 2.d4 Nf6 3.Nc3", "1.e4 d6 2.d4 Nf6 3.Nc3 g6", "1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3", "1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7", "1.e4 e5", "1.e4 e5 2.f4", "1.e4 e5 2.Nc3", "1.e4 e5 2.Nf3", "1.e4 e5 2.Nf3 Nc6", "1.e4 e5 2.Nf3 Nc6 3.Bb5", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 O-O", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 O-O 9.h3", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 O-O 9.h3 Na5 10.Bc2 c5 11.d4", "1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O", "1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6", "1.e4 e5 2.Nf3 Nc6 3.Bc4", "1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6", "1.e4 e5 2.Nf3 Nc6 3.d4 exd4", "1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4", "1.e4 e5 2.Nf3 Nc6 3.Nc3", "1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6", "1.e4 e5 2.Nf3 Nf6", "1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6", "1.e4 e6", "1.e4 e6 2.d3", "1.e4 e6 2.d4", "1.e4 e6 2.d4 d5", "1.e4 e6 2.d4 d5 3.e5 c5", "1.e4 e6 2.d4 d5 3.e5 c5 4.c3", "1.e4 e6 2.d4 d5 3.Nc3", "1.e4 e6 2.d4 d5 3.Nc3 Bb4", "1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5", "1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5", "1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3", "1.e4 e6 2.d4 d5 3.Nc3 Nf6", "1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5", "1.e4 e6 2.d4 d5 3.Nd2", "1.e4 e6 2.d4 d5 3.Nd2 c5", "1.e4 e6 2.d4 d5 3.Nd2 Nf6", "1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7", "1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2", "1.e4 g6", "1.e4 g6 2.d4", "1.e4 g6 2.d4 Bg7", "1.e4 g6 2.d4 Bg7 3.Nc3", "1.e4 g6 2.d4 Bg7 3.Nc3 d6", "1.e4 Nf6", "1.e4 Nf6 2.e5 Nd5", "1.e4 Nf6 2.e5 Nd5 3.d4 d6", "1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3", "1.f4", "1.g3", "1.Nf3", "1.Nf3 c5", "1.Nf3 c5 2.c4", "1.Nf3 d5", "1.Nf3 d5 2.c4", "1.Nf3 d5 2.d4", "1.Nf3 d5 2.g3", "1.Nf3 g6", "1.Nf3 Nf6", "1.Nf3 Nf6 2.c4", "1.Nf3 Nf6 2.c4 c5", "1.Nf3 Nf6 2.c4 e6", "1.Nf3 Nf6 2.c4 g6", "1.Nf3 Nf6 2.c4 g6 3.Nc3", "1.Nf3 Nf6 2.g3", "1.Nf3 Nf6 2.g3 g6" }; uint StoredLine::Count (void) { return nStoredLines; } const char * StoredLine::GetText (uint code) { if (code > nStoredLines) { return ""; } return storedLineText [code]; } #include "tkscid.h" void StoredLine::Init (void) { ASSERT (storedLineGames == NULL); Timer t; #ifdef WINCE storedLineGames = (Game **)my_Tcl_Alloc (sizeof( Game * [nStoredLines + 1])); #else storedLineGames = new Game * [nStoredLines + 1]; #endif PgnParser parser; char buf [256]; for (uint i = 1; i <= nStoredLines; i++) { // Compile with the following loop to test that every stored // line is unique: #if 0 for (uint j=i+1; j <= nStoredLines; j++) { if (strEqual (storedLineText[i], storedLineText[j])) { fprintf (stderr, "Error: stored lines equal: %u, %u\n", i, j); exit (1); } } #endif #ifdef WINCE storedLineGames[i] = new Game(true); // allocate low memory games #else storedLineGames[i] = new Game; #endif parser.Reset (storedLineText[i]); parser.SetEndOfInputWarnings (false); parser.SetResultWarnings (false); if (parser.ParseMoves (storedLineGames[i], buf, 256) != OK) { // This should never happen: fprintf (stderr, "Fatal error reading stored line %u: %s\n", i, storedLineText[i]); exit (1); } } #if 0 printf ("Init: %u stored lines, %u ms\n", nStoredLines, t.MilliSecs()); #endif } Game * StoredLine::GetGame (uint code) { if (storedLineGames == NULL) { Init(); } if (code < 1 || code > nStoredLines) { return NULL; } return storedLineGames [code]; } StoredLine::StoredLine(Position* pos) { if (storedLineGames == NULL) { Init(); } for (int line = StoredLine::Count(); line > 0; --line) { Game * lineGame = storedLineGames [line]; lineGame->MoveToPly (0); bool never_match = false; storedLineMatches_[line] = 0; if (lineGame->ExactMatch (pos, NULL, &storedLineMoves_[line], &never_match)) { if (storedLineMoves_[line].from != NULL_SQUARE) { storedLineMatches_[line] = lineGame->GetCurrentPly() + 1; } } else if (never_match) storedLineMatches_[line] = -1; } } ////////////////////////////////////////////////////////////////////// // EOF: stored.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/textbuf.cpp0000644000175000017500000001745711727223076016427 0ustar oliveroliver/////////////////////////////////////////////////////////////////////////// // // FILE: textbuf.cpp // TextBuffer class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 2.7 // // Notice: Copyright (c) 1999-2001 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // /////////////////////////////////////////////////////////////////////////// #include "error.h" #include "textbuf.h" #include "misc.h" #include //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::Init(): Initialise the textbuffer. void TextBuffer::Init (void) { BufferSize = Column = IndentColumn = LineCount = ByteCount = 0; LineIsEmpty = 1; Buffer = Current = NULL; WrapColumn = 80; ConvertNewlines = true; HasTranslations = false; PausedTranslations = false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::Free(): Free the TextBuffer. void TextBuffer::Free (void) { if (Buffer != NULL) { #ifdef WINCE my_Tcl_Free( Buffer); #else delete[] Buffer; #endif Buffer = NULL; BufferSize = 0; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::Empty(): Empty the TextBuffer. void TextBuffer::Empty (void) { ASSERT(Buffer != NULL); ByteCount = Column = LineCount = 0; LineIsEmpty = 1; Current = Buffer; *Current = 0; ConvertNewlines = true; HasTranslations = false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // TextBuffer::AddTranslation(): // Adds a translation for a character. // The translation string will be printed in place of that character. void TextBuffer::AddTranslation (char ch, const char * str) { if (! HasTranslations) { HasTranslations = true; for (uint i=0; i < 256; i++) { Translation [i] = NULL; } } Translation [(byte) ch] = str; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::SetBufferSize(): Set the buffer size. void TextBuffer::SetBufferSize (uint length) { #ifdef WINCE if (Buffer != NULL) { my_Tcl_Free( Buffer); } Buffer = my_Tcl_Alloc(sizeof(char[length])); #else if (Buffer != NULL) { delete[] Buffer; } Buffer = new char[length]; #endif BufferSize = length; ByteCount = Column = LineCount = 0; LineIsEmpty = 1; Current = Buffer; *Current = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::NewLine(): Add a newline. errorT TextBuffer::NewLine () { ASSERT (Current != NULL); if (ByteCount >= BufferSize) { return ERROR_BufferFull; } *Current++ = '\n'; LineCount++; ByteCount++; LineIsEmpty = 1; Column = 0; while (Column < IndentColumn) { if (ByteCount >= BufferSize) { return ERROR_BufferFull; } *Current++ = ' '; Column++; ByteCount++; } *Current = 0; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::Indent(): Indent to the current Indentation level.. errorT TextBuffer::Indent () { ASSERT (Current != NULL); if (!LineIsEmpty) { return NewLine(); } else { while (Column < IndentColumn) { if (ByteCount >= BufferSize) { return ERROR_BufferFull; } *Current++ = ' '; Column++; ByteCount++; } *Current = 0; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::PrintLine(): Print a string then newline. Does not // check for the line going past WrapColumn. errorT TextBuffer::PrintLine (const char * str) { ASSERT(Current != NULL); while (*str != 0) { if (ByteCount > BufferSize) { return ERROR_BufferFull; } AddChar (*str); str++; } return NewLine(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::PrintWord(): Prints a word, wrapping if necessary. // It does NOT add a space, since that is left to the caller to // provide in the string. errorT TextBuffer::PrintWord (const char * str) { ASSERT(Current != NULL); uint length = strLength (str); if (Column + length >= WrapColumn) { NewLine(); } if (ByteCount + length >= BufferSize) { return ERROR_BufferFull; } while (*str != 0) { char ch = *str; // Hack to work around Tcl/Tk Unicode system: // It seems to store umlauts, accents etc as the ASCII // decimal code 195, followed by the character code minus 64. if ((byte)ch == 195) { char ch2 = *(str+1); if ((byte)ch > 127) { str++; ch = ch2 + 64; } } AddChar (ch); str++; Column++; } *Current = 0; // add trailing end-of-string to buffer LineIsEmpty = 0; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::PrintSpace(): Prints a space OR a newline character, // but not both. errorT TextBuffer::PrintSpace (void) { if (ByteCount + 1 >= BufferSize) { return ERROR_BufferFull; } if (Column + 1 >= WrapColumn) { NewLine(); } else { *Current = ' '; Current++; ByteCount++; Column++; LineIsEmpty = 0; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::PrintChar(): prints a single char, adding a newline // first if necessary. errorT TextBuffer::PrintChar (char b) { if (Column + 1 >= WrapColumn) { NewLine(); } if (ByteCount + 1 >= BufferSize) { return ERROR_BufferFull; } AddChar (b); Column++; LineIsEmpty = 0; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::PrintString(): Print a string, wrapping at spaces. // Also converts newlines in the string into spaces. errorT TextBuffer::PrintString (const char * str) { errorT err; char currentWord[1024]; // should be long enough for a word while (*str != 0) { char * b = currentWord; *b = 0; // get next word and print it: while (*str != ' ' && *str != '\n' && *str != '\0') { *b = *str; b++; str++; } *b = 0; err = PrintWord (currentWord); if (err != OK) { return err; } if (*str == 0) { return OK; } if (*str == '\n' && !ConvertNewlines) { err = NewLine(); } else { err = PrintSpace(); } if (err != OK) { return err; } str++; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::PrintInt(): Print a decimal number followed by string // as a word (so it appends a space at the end and wraps if // necessary). errorT TextBuffer::PrintInt (uint i, const char * str) { char temp[255]; sprintf(temp, "%d%s", i, str); return PrintWord(temp); } #ifdef WINCE errorT TextBuffer::DumpToFile (/*FILE * */Tcl_Channel fp) { ASSERT (fp != NULL); //uint count = 0; char * b = Buffer; /* while (count < ByteCount) { putc (*b, (FILE *)fp); count++; b++; }*/ my_Tcl_Write(fp, b, ByteCount); return OK; } #else //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //### TextBuffer::DumpToFile(): Output a textbuffer to an open file. errorT TextBuffer::DumpToFile (FILE * fp) { ASSERT (fp != NULL); uint count = 0; char * b = Buffer; while (count < ByteCount) { putc (*b, fp); count++; b++; } return OK; } #endif /////////////////////////////////////////////////////////////////////////// // EOF: textbuf.cpp /////////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/game.cpp0000644000175000017500000040270711727223076015653 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: game.cpp // Game class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2000-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "common.h" #include "error.h" #include "game.h" #include "gfile.h" #include "position.h" #include "pgnparse.h" #include "naglatex.h" #include "nagtext.h" // #include "tkscid.h" #include "bytebuf.h" #include "textbuf.h" #include "stored.h" // Include header file for memcpy(): #ifdef WIN32 # include #else # include #endif // Piece letters translation int language = 0; // default to english // 0 = en, // 1 = fr, 2 = es, 3 = de, 4 = it, 5 = ne, 6 = cz // 7 = hu, 8 = no, 9 = sw, 10 = ca, 11 = fi, 12 = gr // TODO Piece translations for greek const char * langPieces[] = { "", "PPKRQDRTBFNC", "PPKRQDRTBANC", "PBKKQDRTBLNS", "PPKRQDRTBANC", "PpKKQDRTBLNP", "PPKKQDRVBSNJ", "PGKKQVRBBFNH", "PBKKQDRTBLNS", "PBKKQDRTBLNS", "PPKRQDRTBANC", "PSKKQDRTBLNR", "" }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // transPieces(): // Given a string, will translate pieces from english to another language void transPieces(char *s) { if (language == 0) return; char * ptr = s; int i; while (*ptr) { if (*ptr >= 'A' && *ptr <= 'Z') { for (i=0; i<12; i+=2) { if (*ptr == langPieces[language][i]) { *ptr = langPieces[language][i+1]; break; } } } ptr++; } } char transPiecesChar(char c) { char ret = c; if (language == 0) return c; for (int i=0; i<12; i+=2) { if (c == langPieces[language][i]) { ret = langPieces[language][i+1]; break; } } return ret; } // ============ PG : destructor that frees all memory =============== Game::~Game() { #ifdef WINCE if (!LowMem) { while (MoveChunk->next != NULL) { moveChunkT * tempChunk = MoveChunk->next; my_Tcl_Free((char *)MoveChunk); MoveChunk = tempChunk; } my_Tcl_Free((char*)MoveChunk); } else { while (MoveChunkLowMem->next != NULL) { moveChunkLowMemT * tempChunk = MoveChunkLowMem->next; my_Tcl_Free((char *)MoveChunkLowMem); MoveChunkLowMem = tempChunk; } my_Tcl_Free((char*)MoveChunkLowMem); } #else while (MoveChunk->next != NULL) { moveChunkT * tempChunk = MoveChunk->next; delete MoveChunk; MoveChunk = tempChunk; } delete MoveChunk; #endif #ifdef WINCE if (WhiteStr) { my_Tcl_Free( WhiteStr); } if (BlackStr) { my_Tcl_Free( BlackStr); } if (EventStr) { my_Tcl_Free( EventStr); } if (SiteStr) { my_Tcl_Free( SiteStr); } if (RoundStr) { my_Tcl_Free( RoundStr); } #else if (WhiteStr) { delete[] WhiteStr; } if (BlackStr) { delete[] BlackStr; } if (EventStr) { delete[] EventStr; } if (SiteStr) { delete[] SiteStr; } if (RoundStr) { delete[] RoundStr; } #endif // Delete the comment string allocator object: delete StrAlloc; #ifdef WINCE if (!LowMem) delete CurrentPos; #else // Delete the Current position: delete CurrentPos; #endif // Delete the saved position: if (SavedPos) { delete SavedPos; } // Delete the start position: if (StartPos) { delete StartPos; } } // ================================================= // PG : returns the variation number of current move // returns 0 if in main line uint Game::GetVarNumber() { moveT * move; moveT * parent; uint varNumber = 0; ASSERT(CurrentMove != NULL && CurrentMove->prev != NULL); move = CurrentMove; if (VarDepth == 0) { // not in a variation! return 0; } while (move->prev->marker != START_MARKER) { move = move->prev; } move = move->prev; // Now CurrentMove == the start marker. ASSERT (move != NULL); ASSERT (move->varParent != NULL); parent = move->varParent; while (parent->varChild != move) { ASSERT (parent->varChild != NULL); parent = parent->varChild; ASSERT (parent->marker == START_MARKER); varNumber++; } return varNumber; } // =================================================== const char * ratingTypeNames [17] = { "Elo", "Rating", "Rapid", "ICCF", "USCF", "DWZ", "BCF", // Reserved for future use: NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, // End of array marker: NULL }; uint strGetRatingType (const char * name) { uint i = 0; while (ratingTypeNames[i] != NULL) { if (strEqual (name, ratingTypeNames[i])) { return i; } i++; } return 0; } typedef Game * GamePtr; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // printNag(): converts a numeric NAG to its string equivalent. // The parameter should point to a string at least 10 bytes long. // TODO // replace < and > in NAG codes by and void game_printNag (byte nag, char * str, bool asSymbol, gameFormatT format) { ASSERT (str != NULL); if (nag == 0) { *str = 0; return; } if (asSymbol) { if (format == PGN_FORMAT_LaTeX) { strcpy (str, evalNagsLatex[nag]); } else { strcpy (str, evalNagsRegular[nag]); } if (nag == NAG_Diagram) { if (format == PGN_FORMAT_LaTeX) { strcpy (str, evalNagsLatex[nag]); } else if (format == PGN_FORMAT_HTML) { strcpy(str, "(D)"); } else { str[0] = 'D'; str[1] = 0; } } return; } else { sprintf (str, "%s$%d", format == PGN_FORMAT_LaTeX ? "\\" : "", nag); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // game_parseNag(): // Parses an annotation symbol into its numeric equivalent. // Accepts numeric format ($51) or symbols such as // !, ?, +=, -/+, N, etc. // byte game_parseNag (const char * str) { ASSERT (str != NULL); if (*str == '$') { str++; return (byte) strGetUnsigned(str); } if ((*str <= '9' && *str >= '0')) { return (byte) strGetUnsigned(str); } if (*str == '!') { // Must be "!", "!!", "!?", or invalid: str++; if (*str == 0) { return NAG_GoodMove; } // ! $1 if (*str == '!') { return NAG_ExcellentMove; } // !! $3 if (*str == '?') { return NAG_InterestingMove; } // !? $5 return 0; } if (*str == '?') { // Must be "?", "??", "?!", or invalid: str++; if (*str == 0) { return NAG_PoorMove; } // ? $2 if (*str == '?') { return NAG_Blunder; } // ?? $4 if (*str == '!') { return NAG_DubiousMove; } // ?! $6 return 0; } if (*str == '+') { // Must be "+=", "+/=", "+/-", "+-", "+--", "+>" or invalid: str++; if (*str == '=') { return NAG_WhiteSlight; } // += $14 if (*str == '-' && str[1] == 0) { // +- $18 return NAG_WhiteDecisive; } if (*str == '>') { return NAG_WithAttack; } // +> $40 if (*str == '/' && str[1] == '-') { // +/- $16 return NAG_WhiteClear; } if (*str == '/' && str[1] == '=') { // +/= $14 return NAG_WhiteSlight; } if (*str == '-' && str[1] == '-') { // +-- $20 return NAG_WhiteCrushing; } return 0; } if (*str == '=') { // Must be "=" (equal), "=+", "=/+", "=/&" or invalid: str++; if (*str == 0) { return NAG_Equal; } // = $10 if (*str == '+') { return NAG_BlackSlight; } // =+ $15 if (*str == '/' && str[1] == '+') { // =/+ $15 return NAG_BlackSlight; } if (*str == '/' && str[1] == '&') { // =/& $44 return NAG_Compensation; } return 0; } if (*str == '-') { // Must be "-+", "-/+" or "--+", "->": str++; if (*str == '+') { return NAG_BlackDecisive; } // -+ $19 if (*str == '>') { return NAG_WithBlackAttack; } // -> $41 if (*str == '/' && str[1] == '+') { // -/+ $17 return NAG_BlackClear; } if (*str == '-' && str[1] == '+') { // --+ $21 return NAG_BlackCrushing; } if (*str == '-' && str[1] == 0) { // -- $210 return NAG_See; } return 0; } if (*str == '/') { // Must be "/\" or "/" str++; if (*str == 0) { return NAG_Diagonal; } // / $150 if (*str == '\\') { return NAG_WithIdea; } // Tri $140 return 0; } if (*str == 'R') { // Must be "R", "RR" str++; if (*str == 0) { return NAG_VariousMoves; } // R $144 if (*str == 'R') { return NAG_Comment; } // RR $145 return 0; } if (*str == 'z') { // Must be "zz" str++; if (*str == 'z') { return NAG_BlackZugZwang; } // zz $23 return 0; } if (*str == 'Z') { // Must be "ZZ" str++; if (*str == 'Z') { return NAG_ZugZwang; } // ZZ $22 return 0; } if (*str == 'B') { // Must be "BB", "Bb" str++; if (*str == 'B') { return NAG_BishopPair; } // BB $151 if (*str == 'b') { return NAG_OppositeBishops; } // Bb $153 return 0; } if (*str == 'o') { // Must be "BB", "Bb" str++; if (*str == '-' && str[1] == 'o') { // o-o $192 return NAG_SeparatedPawns; } if (*str == 'o' && str[1] == 0) { // [+] $193 return NAG_UnitedPawns; } if (*str == '^' && str[1] == 0) { // o^ $212 return NAG_PassedPawn; } return 0; } if (*str == '(') { // Must be (_) str++; if (*str == '_' && str[1] == ')') { // (_) $142 return NAG_BetterIs; } return 0; } if (*str == '[') { // Must be (_) str++; if (*str == ']' && str[1] == 0) { // [] $8 return NAG_OnlyMove; } if (*str == '+' && str[1] == ']') { // [+] $48 return NAG_SlightCentre; } if (*str == '+' && str[1] == '+' && str[2] == ']') { // [++] $50 return NAG_Centre; } return 0; } if (*str == '_') { // must be _|_ or _| str++; if (*str == '|' && str[1] == '_') { // _|_ $148 return NAG_Ending; } if (*str == '|' && str[1] == 0) { // _| $215 return NAG_Without; } return 0; } if (*str == '|') { // must be ||, |_ str++; if (*str == '|' ) { return NAG_Etc; } // || $190 if (*str == '_') { return NAG_With; } // |_ $214 return 0; } if (*str == '>') { // must be >, >>, >>> str++; if (*str == 0) { return NAG_SlightKingSide; } // > $54 if (*str == '>' && str[1] == 0) { // >> $56 return NAG_ModerateKingSide; } if (*str == '>' && str[1] == '>') { // >>> $58 return NAG_KingSide; } return 0; } if (*str == '<') { // must be <, <<, <<<, <=> str++; if (*str == 0) { return NAG_SlightQueenSide; } // < $60 if (*str == '<' && str[1] == 0) { // << $62 return NAG_ModerateQueenSide; } if (*str == '<' && // <<< $64 str[1] == '<' && str[2] == 0) { return NAG_QueenSide; } if (*str == '=' && // <=> $149 str[1] == '>' && str[2] == 0) { return NAG_File; } if (*str == '+' && // <+> $130 str[1] == '>' && str[2] == 0) { return NAG_SlightCounterPlay; } if (*str == '-' && // <-> $131 str[1] == '>' && str[2] == 0) { return NAG_BlackSlightCounterPlay; } if (*str == '+' && // <++> $132 str[1] == '+' && str[2] == '>' && str[3] == 0) { return NAG_CounterPlay; } if (*str == '-' && // <--> $133 str[1] == '-' && str[2] == '>' && str[3] == 0) { return NAG_BlackCounterPlay; } if (*str == '+' && // <+++> $134 str[1] == '+' && str[2] == '+' && str[3] == '>') { return NAG_DecisiveCounterPlay; } if (*str == '-' && // <---> $135 str[1] == '-' && str[2] == '-' && str[3] == '>') { return NAG_BlackDecisiveCounterPlay; } return 0; } if (*str == '~' && *(str+1) == '=') { // ~= $44 // alternative Compensation symbol: return NAG_Compensation; } if (*str == '~') { // ~ $13 // Unclear symbol: return NAG_Unclear; } if (*str == 'x') { // x $147 return NAG_WeakPoint; } if (str[0] == 'N' && str[1] == 0) { // N $146 // Novelty symbol: return NAG_Novelty; } if (str[0] == 'D' && str[1] == 0) { // D $201 // Diagram symbol: return NAG_Diagram; } return 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::SaveState(): // Save the current game state (location), so that after an // operation that alters the location (e.g. stepping through // all moves printing them) is done, the current move can be // set back to its original location. // void Game::SaveState () { if (!SavedPos) { SavedPos = new Position; } SavedPos->CopyFrom (CurrentPos); SavedMove = CurrentMove; SavedPlyCount = CurrentPlyCount; SavedVarDepth = VarDepth; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::RestoreState(): // Restores the game state to what it was when SaveState() // was called. errorT Game::RestoreState () { if (SavedMove) { ASSERT (SavedPos != NULL); CurrentPos->CopyFrom (SavedPos); CurrentMove = SavedMove; CurrentPlyCount = SavedPlyCount; VarDepth = SavedVarDepth; return OK; } return ERROR; } ////////////////////////////////////////////////////////////////////// // PUBLIC FUNCTIONS ////////////////////////////////////////////////////////////////////// #define MAX_MOVES 5000 // Maximum moves per game. #define MAX_VARS_PER_MOVE 10 // Maximum variations per move. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Move allocation: // moves are allocated in chunks to save memory and for faster // performance. // void Game::AllocateMoreMoves () { #ifdef WINCE if (!LowMem) { moveChunkT * newChunk = (moveChunkT *) my_Tcl_Alloc(sizeof(moveChunkT)); newChunk->numFree = MOVE_CHUNKSIZE; newChunk->next = MoveChunk; MoveChunk = newChunk; } else { moveChunkLowMemT * newChunk = (moveChunkLowMemT *) my_Tcl_Alloc(sizeof(moveChunkLowMemT)); newChunk->numFree = MOVE_CHUNKSIZE_LOWMEM; newChunk->next = MoveChunkLowMem; MoveChunkLowMem = newChunk; } #else moveChunkT * newChunk = new moveChunkT; newChunk->numFree = MOVE_CHUNKSIZE; newChunk->next = MoveChunk; MoveChunk = newChunk; #endif } inline moveT * Game::NewMove () { if (FreeList) { moveT * tempMove = FreeList; FreeList = FreeList->next; return tempMove; } #ifdef WINCE if (!LowMem) { if (MoveChunk == NULL || MoveChunk->numFree == 0) { AllocateMoreMoves(); } MoveChunk->numFree--; return &(MoveChunk->moves[MoveChunk->numFree]); } else { if (MoveChunkLowMem == NULL || MoveChunkLowMem->numFree == 0) { AllocateMoreMoves(); } MoveChunkLowMem->numFree--; return &(MoveChunkLowMem->moves[MoveChunkLowMem->numFree]); } #else if (MoveChunk == NULL || MoveChunk->numFree == 0) { AllocateMoreMoves(); } MoveChunk->numFree--; return &(MoveChunk->moves[MoveChunk->numFree]); #endif } // Freeing a move: it is added to the free list so it can be reused. inline void Game::FreeMove (moveT * move) { move->next = FreeList; FreeList = move; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::Init(): initialise the game object void Game::Init() { // Allocate initial chunk of moves: #ifdef WINCE MoveChunkLowMem = NULL; #endif MoveChunk = NULL; AllocateMoreMoves(); StartPos = NULL; #ifdef WINCE if (!LowMem) CurrentPos = new Position; #else CurrentPos = new Position; #endif KeepDecodedMoves = true; SavedPos = NULL; SavedMove = NULL; SavedPlyCount = 0; SavedVarDepth = VarDepth = 0; NextGame = NULL; Altered = false; NBase = NULL; WhiteStr = BlackStr = EventStr = SiteStr = RoundStr = NULL; Date = ZERO_DATE; EventDate = ZERO_DATE; Result = RESULT_None; EcoCode = 0; WhiteElo = BlackElo = 0; WhiteRatingType = BlackRatingType = RATING_Elo; ScidFlags[0] = 0; // Initialise compact String allocator for game comments: // Allocate space for game comments in chinks of about 8 Kb. StrAlloc = new StrAllocator (8000); NumTags = 0; PgnStyle = PGN_STYLE_TAGS | PGN_STYLE_VARS | PGN_STYLE_COMMENTS; PgnFormat = PGN_FORMAT_Plain; HtmlStyle = 0; PgnLastMovePos = PgnNextMovePos = 0; Clear(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::ClearExtraTags(): clear any nonstandard tags. void Game::ClearExtraTags () { for (uint i=0; i < NumTags; i++) { #ifdef WINCE my_Tcl_Free((char*)TagList[i].tag); my_Tcl_Free((char*)TagList[i].value); #else delete[] TagList[i].tag; delete[] TagList[i].value; #endif } NumTags = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::ClearMoves(): clear all moves. void Game::ClearMoves () { NumHalfMoves = 0; CurrentPlyCount = 0; StartPlyCount = 0; VarDepth = 0; NonStandardStart = false; ToMove = WHITE; PromotionsFlag = false; UnderPromosFlag = false; // Delete any chunks of moves except the first: #ifdef WINCE if (!LowMem) { while (MoveChunk->next != NULL) { moveChunkT * tempChunk = MoveChunk->next; my_Tcl_Free((char*) MoveChunk); MoveChunk = tempChunk; } MoveChunk->numFree = MOVE_CHUNKSIZE; } else { while (MoveChunkLowMem->next != NULL) { moveChunkLowMemT * tempChunk = MoveChunkLowMem->next; my_Tcl_Free((char*) MoveChunkLowMem); MoveChunkLowMem = tempChunk; } MoveChunkLowMem->numFree = MOVE_CHUNKSIZE_LOWMEM; } #else while (MoveChunk->next != NULL) { moveChunkT * tempChunk = MoveChunk->next; delete MoveChunk; MoveChunk = tempChunk; } MoveChunk->numFree = MOVE_CHUNKSIZE; #endif FreeList = NULL; // Delete any comments: StrAlloc->DeleteAll(); // Initialise FirstMove: start and end of movelist markers FirstMove = NewMove(); InitMove (FirstMove); FirstMove->marker = START_MARKER; FirstMove->next = NewMove(); InitMove (FirstMove->next); FirstMove->next->marker = END_MARKER; FirstMove->next->prev = FirstMove; CurrentMove = FirstMove->next; FinalMatSig = MATSIG_StdStart; // Set up standard start CurrentPos->StdStart(); KeepDecodedMoves = true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::Clear(): // Reset the game to its normal empty state. // void Game::Clear() { GameNumber = 0; SavedMove = NULL; KeepDecodedMoves = true; StrAlloc->DeleteAll(); // CommentsFlag = NagsFlag = VarsFlag = 0; PromotionsFlag = false; UnderPromosFlag = false; ClearStandardTags(); ClearExtraTags(); ClearMoves(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::PgnFormatFromString(): // Converts a string to a gameFormatT, returning true on success // or false on error. // The string should be a case-insensitive unique prefix of // "plain" (or "pgn"), "HTML", "LaTeX" or "Color". bool Game::PgnFormatFromString (const char * str, gameFormatT * fmt) { if (strIsCasePrefix (str, "Plain")) { *fmt = PGN_FORMAT_Plain; } else if (strIsCasePrefix (str, "PGN")) { *fmt = PGN_FORMAT_Plain; } else if (strIsCasePrefix (str, "HTML")) { *fmt = PGN_FORMAT_HTML; } else if (strIsCasePrefix (str, "LaTeX")) { *fmt = PGN_FORMAT_LaTeX; } else if (strIsCasePrefix (str, "Color")) { *fmt = PGN_FORMAT_Color; } else { return false; } return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::SetPgnFormatFromString(): // Sets the PgnFormat from the provided string. // Returns true if the PgnFormat was successfully set. bool Game::SetPgnFormatFromString (const char * str) { return PgnFormatFromString (str, &PgnFormat); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::SetStartPos(): // Setup a start position. // void Game::SetStartPos (Position * pos) { // We should not have any moves: if (CurrentMove != FirstMove->next || CurrentMove->marker != END_MARKER) { ClearMoves(); } VarDepth = 0; if (!StartPos) { StartPos = new Position; } StartPos->CopyFrom (pos); CurrentPos->CopyFrom (pos); // Now make the material signature: FinalMatSig = matsig_Make (StartPos->GetMaterial()); NonStandardStart = true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::SetStartFen(): // Setup the start position from a FEN string. // I might remove this, so the only way to set the start position // is with the above method, SetStartPos(). // errorT Game::SetStartFen (const char * fenStr) { // First try to read the position: Position * pos = new Position; errorT err = pos->ReadFromFEN (fenStr); if (err != OK) { delete pos; return err; } // We should not have any moves: if (CurrentMove != FirstMove->next || CurrentMove->marker != END_MARKER) { ClearMoves(); } VarDepth = 0; if (StartPos) { delete StartPos; } StartPos = pos; CurrentPos->CopyFrom (StartPos); // Now make the material signature: FinalMatSig = matsig_Make (StartPos->GetMaterial()); NonStandardStart = true; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::AddPgnTag(): Add a PGN Tag. // void Game::AddPgnTag (const char * tag, const char * value) { ASSERT (NumTags < MAX_TAGS); // First, try to replace an existing tag: for (uint i=0; i < NumTags; i++) { if (strEqual (tag, TagList[i].tag)) { #ifdef WINCE my_Tcl_Free((char*) TagList[i].value); #else delete[] TagList[i].value; #endif TagList[i].value = strDuplicate (value); return; } } // It does not already exist, so add a new tag: TagList[NumTags].tag = strDuplicate (tag); TagList[NumTags].value = strDuplicate (value); if (strlen((char *) TagList[NumTags].tag) > MAX_TAG_LEN) { TagList[NumTags].tag[MAX_TAG_LEN] = '\0'; } NumTags++; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::FindExtraTag(): // Finds and returns an extra PGN tag if it // exists, or NULL if it does not exist. const char * Game::FindExtraTag (const char * tag) { for (uint i=0; i < NumTags; i++) { if (strEqual (tag, TagList[i].tag)) { return TagList[i].value; } } return NULL; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::RemoveExtraTag(): // Remove an extra PGN tag if it exists. bool Game::RemoveExtraTag (const char * tag) { bool removed = false; for (uint i=0; i < NumTags; i++) { if (strEqual (tag, TagList[i].tag)) { // Found the specified tag, so delete it: #ifdef WINCE my_Tcl_Free((char*) TagList[i].tag); my_Tcl_Free((char*) TagList[i].value); #else delete[] TagList[i].tag; delete[] TagList[i].value; #endif NumTags--; for (uint j = i; j < NumTags; j++) { TagList[j].tag = TagList[j+1].tag; TagList[j].value = TagList[j+1].value; } removed = true; } } return removed; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::SetMoveData(): // Sets the move data for a move. Inline for speed. inline void Game::SetMoveData (moveT * m, simpleMoveT * sm) { ASSERT (m != NULL && sm != NULL); // We only copy the fields set in AddLegalMove in position.cpp, since // other fields are meaningless at this stage. simpleMoveT * newsm = &(m->moveData); newsm->pieceNum = sm->pieceNum; newsm->movingPiece = sm->movingPiece; newsm->from = sm->from; newsm->to = sm->to; newsm->capturedPiece = sm->capturedPiece; newsm->promote = sm->promote; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::SetMoveComment(): // Sets the comment for a move. A comment before the game itself // is stored as a comment of FirstMove. // void Game::SetMoveComment (const char * comment) { ASSERT (CurrentMove != NULL && CurrentMove->prev != NULL); moveT * m = CurrentMove->prev; if (m->comment != NULL) { StrAlloc->Delete (m->comment); } if (comment == NULL) { m->comment = NULL; } else { m->comment = StrAlloc->Duplicate (comment); // CommentsFlag = 1; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MoveForward(): // Move current position forward one move. // errorT Game::MoveForward (void) { ASSERT (CurrentMove != NULL); if (CurrentMove->marker == END_MARKER) { return ERROR_EndOfMoveList; } CurrentPos->DoSimpleMove (&(CurrentMove->moveData)); CurrentMove = CurrentMove->next; CurrentPlyCount++; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MoveBackup(): // Backup one move. // errorT Game::MoveBackup (void) { ASSERT (CurrentMove && CurrentMove->prev); if (CurrentMove->prev->marker == START_MARKER) { return ERROR_StartOfMoveList; } CurrentMove = CurrentMove->prev; CurrentPos->UndoSimpleMove (&(CurrentMove->moveData)); CurrentPlyCount--; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MoveToPly(): // Move to a specified mainline ply in the game. // void Game::MoveToPly (ushort hmNumber) { CurrentMove = FirstMove->next; VarDepth = 0; if (NonStandardStart) { CurrentPos->CopyFrom (StartPos); } else { CurrentPos->StdStart(); } CurrentPlyCount = 0; for (ushort i=0; i < hmNumber; i++) { if (CurrentMove->marker != END_MARKER) { MoveForward(); } } return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MoveIntoVariation(): // Move into a subvariation. Variations are numbered from 0. // errorT Game::MoveIntoVariation (uint varNumber) { ASSERT(CurrentMove != NULL); if (CurrentMove->marker == END_MARKER) { return ERROR_EndOfMoveList; } if (varNumber >= CurrentMove->numVariations) { return ERROR_NoVariation; // there is no such variation } // Follow the linked list to the variation: for (uint i=0; i <= varNumber; i++) { ASSERT (CurrentMove->varChild); CurrentMove = CurrentMove->varChild; ASSERT (CurrentMove->marker == START_MARKER); } CurrentMove = CurrentMove->next; // skip the START_MARKER VarDepth++; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MoveExitVariation(): // Move out of a variation, to the parent. // errorT Game::MoveExitVariation (void) { ASSERT (CurrentMove != NULL && CurrentMove->prev != NULL); if (VarDepth == 0) { // not in a variation! return ERROR_NoVariation; } // Algorithm: go back previous moves as far as possible, then // go up to the parent of the variation. while (CurrentMove->prev->marker != START_MARKER) { MoveBackup(); } CurrentMove = CurrentMove->prev; // Now CurrentMove == the start marker. ASSERT (CurrentMove->varParent != NULL); CurrentMove = CurrentMove->varParent; VarDepth--; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::AddMove(): // Add a move at current position and do it. // The parameter 'san' can be NULL. If it is provided, it is stored // with the move to speed up PGN printing. // errorT Game::AddMove (simpleMoveT * sm, char * san) { ASSERT (CurrentMove != NULL && sm != NULL); // We must be at the end of a game/variation to add a move: if (CurrentMove->marker != END_MARKER) { // truncate the game! CurrentMove->numVariations = 0; CurrentMove->marker = END_MARKER; } moveT * newMove = NewMove(); InitMove (newMove); newMove->next = CurrentMove; newMove->prev = CurrentMove->prev; CurrentMove->prev->next = newMove; CurrentMove->prev = newMove; SetMoveData (newMove, sm); if (sm->promote != EMPTY && VarDepth == 0) { // The move is a promotion in the game (not a variation) so // update the promotions flag: PromotionsFlag = true; if (piece_Type(sm->promote) != QUEEN) { UnderPromosFlag = true; } } if (san != NULL) { strcpy (newMove->san, san); } CurrentPos->DoSimpleMove (&(newMove->moveData)); CurrentPlyCount++; if (VarDepth == 0) { NumHalfMoves = CurrentPlyCount; FinalMatSig = matsig_Make(CurrentPos->GetMaterial()); } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::AddVariation(): // Add a variation for the current move. // Also moves into the variation. // errorT Game::AddVariation () { ASSERT (CurrentMove->prev != NULL); moveT * parent = CurrentMove->prev; if (parent->marker == START_MARKER) { return ERROR_StartOfMoveList; } // No longer any limit on number of variations per move: //if (parent->numVariations == MAX_VARS_PER_MOVE) { // return ERROR_VariationLimit; //} // Add the child start marker and end marker: moveT * child = NewMove(); InitMove (child); child->varParent = parent; child->marker = START_MARKER; child->next = NewMove(); InitMove (child->next); child->next->prev = child; child->next->marker = END_MARKER; // VarsFlag = 1; // Update the board representation: CurrentPos->UndoSimpleMove (&(parent->moveData)); CurrentPlyCount--; CurrentMove = child->next; VarDepth++; // Now add to the tail of the list of children of m: moveT * m = parent; for (uint i=0; i < (uint) parent->numVariations; i++) { m = m->varChild; } m->varChild = child; parent->numVariations += 1; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::FirstVariation(): // Promotes a variation to being the first variation of this // move. Variations are numbered from 0. errorT Game::FirstVariation (uint varNumber) { if (varNumber >= CurrentMove->numVariations) { return ERROR_NoVariation; } if (varNumber == 0) { // Already the first variation! Nothing to do: return OK; } moveT * parent = CurrentMove; moveT * firstVar = CurrentMove->varChild; moveT * m = CurrentMove->varChild; // Remove the numbered variation from the linked list: for (uint i=0; i < varNumber; i++) { ASSERT (m->varParent == CurrentMove && m->marker == START_MARKER); parent = m; m = m->varChild; } parent->varChild = m->varChild; // Now reinsert it as the first variation: m->varChild = firstVar; CurrentMove->varChild = m; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MainVariation(): // Like FirstVariation, but promotes the variation to the main line, // demoting the main line to be the first variation. // // This function was implemented by Manuel Hoelss, with a few fixes // added by myself (Shane Hudson). errorT Game::MainVariation (uint varNumber) { if (varNumber >= CurrentMove->numVariations) { return ERROR_NoVariation; } moveT * parent = CurrentMove; moveT * firstVar = CurrentMove->varChild; moveT * m = CurrentMove->varChild; if (varNumber > 0) { // Move the selected variation to the front, as in FirstVariation() // Remove the numbered variation from the linked list: for (uint i=0; i < varNumber; i++) { ASSERT (m->varParent == CurrentMove && m->marker == START_MARKER); parent = m; m = m->varChild; } parent->varChild = m->varChild; // Now reinsert it as the first variation: m->varChild = firstVar; CurrentMove->varChild = m; } // Now exchange the next move of the main line with the // next move of the variation: moveT buffer; buffer.moveData = CurrentMove->moveData; buffer.comment = CurrentMove->comment; buffer.next = CurrentMove->next; buffer.nagCount = CurrentMove->nagCount; memcpy (buffer.san, CurrentMove->san, sizeof buffer.san); memcpy (buffer.nags, CurrentMove->nags, sizeof buffer.nags); m = CurrentMove->varChild->next; // first move in first variation CurrentMove->moveData = m->moveData; CurrentMove->comment = m->comment; CurrentMove->next = m->next; CurrentMove->nagCount = m->nagCount; memcpy (CurrentMove->san, m->san, sizeof CurrentMove->san); memcpy (CurrentMove->nags, m->nags, sizeof CurrentMove->nags); m->moveData = buffer.moveData; m->comment = buffer.comment; m->next = buffer.next; m->nagCount = buffer.nagCount; memcpy (m->san, buffer.san, sizeof m->san); memcpy (m->nags, buffer.nags, sizeof m->nags); CurrentMove->next->prev = CurrentMove; m->next->prev = m; // Now, the information about the material at the end of the // game, pawn promotions, will be wrong if the variation was // promoted to an actual game move, so call MakeHomePawnList() // so go through the game moves and ensure it is correct. SaveState (); MakeHomePawnList (NULL); RestoreState (); return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::DeleteVariation(): // Deletes a variation. Variations are numbered from 0. // Note that for speed and simplicity, freed moves are not // added to the free list. This means that repeatedly adding and // deleting variations will waste memory until the game is cleared. // errorT Game::DeleteVariation (uint varNumber) { if (varNumber >= CurrentMove->numVariations) { return ERROR_NoVariation; } moveT * parent = CurrentMove; moveT * m = CurrentMove->varChild; // Remove the numbered variation from the linked list: for (uint i=0; i < varNumber; i++) { ASSERT (m->varParent == CurrentMove && m->marker == START_MARKER); parent = m; m = m->varChild; } parent->varChild = m->varChild; CurrentMove->numVariations -= 1; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::DeleteVariationAndFree(): // Deletes a variation. Variations are numbered from 0. // Note that for speed and simplicity, moves are // added to the free list. errorT Game::DeleteVariationAndFree (uint varNumber) { if (varNumber >= CurrentMove->numVariations) { return ERROR_NoVariation; } moveT * parent = CurrentMove; moveT * m = CurrentMove->varChild; // Remove the numbered variation from the linked list: for (uint i=0; i < varNumber; i++) { ASSERT (m->varParent == CurrentMove && m->marker == START_MARKER); parent = m; m = m->varChild; } parent->varChild = m->varChild; // free moves starting at m moveT * tmp = NULL; while (m->marker != END_MARKER && m != NULL) { tmp = m->next; FreeMove(m); m = tmp; } if (m != NULL) FreeMove(m); CurrentMove->numVariations -= 1; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::Truncate(): // Truncate game at the current move. // For speed and simplicity, moves and comments are not freed. // So repeatedly adding moves and truncating a game will waste // memory until the game is cleared. // void Game::Truncate (void) { ASSERT (CurrentMove != NULL); CurrentMove->marker = END_MARKER; return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::TruncateAndFree(): // Truncate game at the current move. // and free moves // void Game::TruncateAndFree (void) { ASSERT (CurrentMove != NULL); moveT * move = CurrentMove->next; moveT * tmp = NULL; while (move->marker != END_MARKER && move != NULL) { tmp = move->next; FreeMove(move); move = tmp; } if (move != NULL) FreeMove(move); CurrentMove->marker = END_MARKER; return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::TruncateStart(): // Truncate all moves leading to current position. void Game::TruncateStart (void) { ASSERT (CurrentMove != NULL); while (MoveExitVariation() == OK); // exit variations if (!StartPos) { StartPos = new Position; } StartPos->CopyFrom (CurrentPos); NonStandardStart = true; CurrentMove->prev->marker = END_MARKER; FirstMove->next = CurrentMove; CurrentMove->prev = FirstMove; TextBuffer tb; // 20000 does not seem to be enough with the capacity to handle long games (Scid 4.0) tb.SetBufferSize (TBUF_SIZE); // 20000 tb.SetWrapColumn (TBUF_SIZE); // 20000 gameFormatT gfmt = PgnFormat; SetPgnFormat (PGN_FORMAT_Plain); // we need to switch off short header style or PGN parsing will not work uint old_style = GetPgnStyle (); if (PgnStyle & PGN_STYLE_SHORT_HEADER) SetPgnStyle (PGN_STYLE_SHORT_HEADER, false); WriteToPGN (&tb); Init(); PgnParser parser (tb.GetBuffer()); parser.ParseGame (this); SetPgnFormat (gfmt); MoveToPly(0); if (old_style & PGN_STYLE_SHORT_HEADER) SetPgnStyle (PGN_STYLE_SHORT_HEADER, true); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MakeHomePawnList(): // Is passed an array of 9 bytes and fills it with the game's // home pawn delta information. // This function also ensures that other information about the // game that will be stored in the index file and used to speed // up searches (material at end of game, etc) is up to date. uint Game::MakeHomePawnList (byte * pbPawnList) { // Use a temporary dummy array if none was provided: byte tempPawnList [9]; if (pbPawnList == NULL) { pbPawnList = tempPawnList; } // If nonstandard start, we do not make the list: if (NonStandardStart) { pbPawnList[0] = 0; return 0; } uint count = 0; uint hpOld, hpNew; uint halfByte = 0; errorT err = OK; byte * pbList = pbPawnList; hpOld = HPSIG_StdStart; // All 16 pawns are on their home squares. // We zero out the list first: for (count = 0; count < 9; count++) { *pbList = 0; pbList++; } count = 0; pbList = pbPawnList; pbList++; NumHalfMoves = 0; PromotionsFlag = false; UnderPromosFlag = false; MoveToPly(0); while (err == OK) { hpNew = CurrentPos->GetHPSig(); if (hpNew != hpOld) { byte changeValue = (byte) (log2 (hpOld - hpNew)); if (halfByte == 0) { *pbList = (changeValue << 4); halfByte = 1; } else { *pbList |= (changeValue & 15); pbList++; halfByte = 0; } hpOld = hpNew; count++; } if (CurrentMove->marker != END_MARKER) { if (CurrentMove->moveData.promote != EMPTY) { PromotionsFlag = true; if (piece_Type(CurrentMove->moveData.promote) != QUEEN) { UnderPromosFlag = true; } } } err = MoveForward(); if (err == OK) { NumHalfMoves++; } } FinalMatSig = matsig_Make(CurrentPos->GetMaterial()); // First byte in pawnlist array stores the count: pbPawnList[0] = (byte) count; return count; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // calcHomePawnMask(): // Computes the homePawn mask for a position. // inline int calcHomePawnMask (pieceT pawn, pieceT * board) { ASSERT (pawn == WP || pawn == BP); register pieceT * bd = &(board[ (pawn == WP ? H2 : H7) ]); register int result = 0; if (*bd == pawn) { result |= 128; } bd--; // H-fyle pawn if (*bd == pawn) { result |= 64; } bd--; // G-fyle pawn if (*bd == pawn) { result |= 32; } bd--; // F-fyle pawn if (*bd == pawn) { result |= 16; } bd--; // E-fyle pawn if (*bd == pawn) { result |= 8; } bd--; // D-fyle pawn if (*bd == pawn) { result |= 4; } bd--; // C-fyle pawn if (*bd == pawn) { result |= 2; } bd--; // B-fyle pawn if (*bd == pawn) { result |= 1; } // A-fyle pawn return result; } // updateHomePawnMask: // Clears one fyle from a home pawn mask. // inline uint updateHomePawnMask (uint oldMask, fyleT f) { register uint newMask = oldMask; newMask &= ~((uint) 1 << f); return newMask; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // patternsMatch(): // Used by Game::MaterialMatch() to test patterns. // Returns 1 if all the patterns in the list match, 0 otherwise. // int patternsMatch (Position * pos, patternT * ptn) { pieceT * board = pos->GetBoard(); while (ptn != NULL) { if (ptn->rankMatch == NO_RANK) { if (ptn->fyleMatch == NO_FYLE) { // Nothing to test! } else { // Test this fyle: squareT sq = square_Make (ptn->fyleMatch, RANK_1); int found = 0; for (uint i=0; i < 8; i++, sq += 8) { if (board[sq] == ptn->pieceMatch) { found = 1; break; } } if (found != ptn->flag) { return 0; } } } else { // rankMatch is a rank from 1 to 8: if (ptn->fyleMatch == NO_FYLE) { // Test the whole rank: int found = 0; squareT sq = square_Make (A_FYLE, ptn->rankMatch); for (uint i=0; i < 8; i++, sq++) { if (board[sq] == ptn->pieceMatch) { found = 1; break; } } if (found != ptn->flag) { return 0; } } else { // Just test one square: squareT sq = square_Make(ptn->fyleMatch, ptn->rankMatch); int found = 0; if (board[sq] == ptn->pieceMatch) { found = 1; } if (found != ptn->flag) { return 0; } } } // If we get this far, this pattern matched. Try the next one: ptn = ptn->next; } // If we reach here, all patterns matched: return 1; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::MaterialMatch(): Material search test. // The parameters min and max should each be an array of 15 // counts, to specify the maximum and minimum number of counts // of each type of piece. // bool Game::MaterialMatch (ByteBuffer * buf, byte * min, byte * max, patternT * patterns, int minPly, int maxPly, int matchLength, bool oppBishops, bool sameBishops, int minDiff, int maxDiff) { // If buf is NULL, the game is in memory. Otherwise, Decode only // the necessary moves: errorT err = OK; if (buf == NULL) { MoveToPly(0); } else { Clear(); err = DecodeStart (buf); KeepDecodedMoves = false; } ASSERT (matchLength >= 1); int matchesNeeded = matchLength; int matDiff; uint plyCount = 0; while (err == OK) { bool foundMatch = false; byte wMinor, bMinor; // If current pos has LESS than the minimum of pawns, this // game can never match so return false; if (CurrentPos->PieceCount(WP) < min[WP]) { return false; } if (CurrentPos->PieceCount(BP) < min[BP]) { return false; } // If not in the valid move range, go to the next move or return: if ((int)plyCount > maxPly) { return false; } if ((int)plyCount < minPly) { goto Next_Move; } // For these comparisons, we really could only do half of them each move, // according to which side just moved. // For non-pawns, the count could be increased by promotions: if (CurrentPos->PieceCount(WQ) < min[WQ]) { goto Check_Promotions; } if (CurrentPos->PieceCount(BQ) < min[BQ]) { goto Check_Promotions; } if (CurrentPos->PieceCount(WR) < min[WR]) { goto Check_Promotions; } if (CurrentPos->PieceCount(BR) < min[BR]) { goto Check_Promotions; } if (CurrentPos->PieceCount(WB) < min[WB]) { goto Check_Promotions; } if (CurrentPos->PieceCount(BB) < min[BB]) { goto Check_Promotions; } if (CurrentPos->PieceCount(WN) < min[WN]) { goto Check_Promotions; } if (CurrentPos->PieceCount(BN) < min[BN]) { goto Check_Promotions; } wMinor = CurrentPos->PieceCount(WB) + CurrentPos->PieceCount(WN); bMinor = CurrentPos->PieceCount(BB) + CurrentPos->PieceCount(BN); if (wMinor < min[WM]) { goto Check_Promotions; } if (bMinor < min[BM]) { goto Check_Promotions; } // Now test maximum counts: if (CurrentPos->PieceCount(WQ) > max[WQ]) { goto Next_Move; } if (CurrentPos->PieceCount(BQ) > max[BQ]) { goto Next_Move; } if (CurrentPos->PieceCount(WR) > max[WR]) { goto Next_Move; } if (CurrentPos->PieceCount(BR) > max[BR]) { goto Next_Move; } if (CurrentPos->PieceCount(WB) > max[WB]) { goto Next_Move; } if (CurrentPos->PieceCount(BB) > max[BB]) { goto Next_Move; } if (CurrentPos->PieceCount(WN) > max[WN]) { goto Next_Move; } if (CurrentPos->PieceCount(BN) > max[BN]) { goto Next_Move; } if (CurrentPos->PieceCount(WP) > max[WP]) { goto Next_Move; } if (CurrentPos->PieceCount(BP) > max[BP]) { goto Next_Move; } if (wMinor > max[WM]) { goto Next_Move; } if (bMinor > max[BM]) { goto Next_Move; } // If both sides have ONE bishop, we need to check if the search // was restricted to same-color or opposite-color bishops: if (CurrentPos->PieceCount(WB) == 1 && CurrentPos->PieceCount(BB) == 1) { if (!oppBishops || !sameBishops) { // Check the restriction: colorT whiteBishCol = NOCOLOR; colorT blackBishCol = NOCOLOR; // Search for the white and black bishop, to find their // square color: pieceT * bd = CurrentPos->GetBoard(); for (squareT sq = A1; sq <= H8; sq++) { if (bd[sq] == WB) { whiteBishCol = BOARD_SQUARECOLOR [sq]; } else if (bd[sq] == BB) { blackBishCol = BOARD_SQUARECOLOR [sq]; } } // They should be valid colors: ASSERT (blackBishCol != NOCOLOR && whiteBishCol != NOCOLOR); // If the square colors do not match the restriction, // then this game cannot match: if (oppBishops && blackBishCol == whiteBishCol) { return false; } if (sameBishops && blackBishCol != whiteBishCol) { return false; } } } // Now check if the material difference is in-range: matDiff = (int)CurrentPos->MaterialValue(WHITE) - (int)CurrentPos->MaterialValue(BLACK); if (matDiff < minDiff || matDiff > maxDiff) { goto Next_Move; } // At this point, the Material matches; do the patterns match? if (patterns == NULL || patternsMatch (CurrentPos, patterns)) { foundMatch = true; matchesNeeded--; if (matchesNeeded <= 0) { return true; } } // No? well, keep trying... goto Next_Move; Check_Promotions: // We only continue if this game has promotion moves: if (! PromotionsFlag) { return false; } Next_Move: if (buf == NULL) { MoveForward(); if (CurrentMove->marker == END_MARKER) { err = ERROR_EndOfMoveList; } } else { err = DecodeNextMove (buf, NULL); } plyCount++; if (! foundMatch) { matchesNeeded = matchLength; } } // End of game reached, and no match: return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::ExactMatch(): // Exact position search test. // If sm is not NULL, its from, to, promote etc will be filled with // the next move at the matching position, if there is one. // If neverMatch is non-NULL, the boolean it points to is set to // true if the game could never match even with extra moves. // bool Game::ExactMatch (Position * searchPos, ByteBuffer * buf, simpleMoveT * sm, gameExactMatchT searchType, bool * neverMatch) { // If buf is NULL, the game is in memory. Otherwise, Decode only // the necessary moves: errorT err = OK; if (buf == NULL) { MoveToPly(0); } else { Clear (); err = DecodeStart (buf); KeepDecodedMoves = false; } uint plyCount = 0; //uint skip = 0; // Just for statistics on number of moves skipped. uint search_whiteHPawns = 0; uint search_blackHPawns = 0; uint current_whiteHPawns, current_blackHPawns; bool check_pawnMaskWhite, check_pawnMaskBlack; bool doHomePawnChecks = false; uint wpawnFyle [8] = {0, 0, 0, 0, 0, 0, 0, 0}; uint bpawnFyle [8] = {0, 0, 0, 0, 0, 0, 0, 0};; if (searchType == GAME_EXACT_MATCH_Fyles) { pieceT * board = searchPos->GetBoard(); uint fyle = 0; for (squareT sq = A1; sq <= H8; sq++, board++) { if (*board == WP) { wpawnFyle[fyle]++; } else if (*board == BP) { bpawnFyle[fyle]++; } fyle = (fyle + 1) & 7; } } // If neverMatch is null, point it at a dummy value bool dummy; if (neverMatch == NULL) { neverMatch = &dummy; } *neverMatch = false; if (searchType == GAME_EXACT_MATCH_Exact || searchType == GAME_EXACT_MATCH_Pawns) { doHomePawnChecks = true; search_whiteHPawns = calcHomePawnMask (WP, searchPos->GetBoard()); search_blackHPawns = calcHomePawnMask (BP, searchPos->GetBoard()); } check_pawnMaskWhite = check_pawnMaskBlack = false; while (err == OK) { pieceT * currentBoard = CurrentPos->GetBoard(); pieceT * board = searchPos->GetBoard(); pieceT * b1 = currentBoard; pieceT * b2 = board; bool found = true; // If NO_SPEEDUPS is defined, a slower search is done without // optimisations that detect insufficient material. #ifndef NO_SPEEDUPS // Insufficient material optimisation: if (searchPos->GetCount(WHITE) > CurrentPos->GetCount(WHITE) || searchPos->GetCount(BLACK) > CurrentPos->GetCount(BLACK)) { *neverMatch = true; return false; } // Insufficient pawns optimisation: if (searchPos->PieceCount(WP) > CurrentPos->PieceCount(WP) || searchPos->PieceCount(BP) > CurrentPos->PieceCount(BP)) { *neverMatch = true; return false; } // HomePawn mask optimisation: // If current pos doesn't have a pawn on home rank where // the search pos has one, it can never match. // This happens when (current_xxHPawns & search_xxHPawns) is // not equal to search_xxHPawns. // We do not do this optimisation for a pawn files search, // because the exact pawn squares are not important there. if (searchType != GAME_EXACT_MATCH_Fyles) { if (check_pawnMaskWhite) { current_whiteHPawns = calcHomePawnMask (WP, currentBoard); if ((current_whiteHPawns & search_whiteHPawns) != search_whiteHPawns) { *neverMatch = true; return false; } } if (check_pawnMaskBlack) { current_blackHPawns = calcHomePawnMask (BP, currentBoard); if ((current_blackHPawns & search_blackHPawns) != search_blackHPawns) { *neverMatch = true; return false; } } } #endif // #ifndef NO_SPEEDUPS // Not correct color: skip to next move if (searchPos->GetToMove() != CurrentPos->GetToMove()) { //skip++; goto Move_Forward; } // Extra material: skip to next move if (searchPos->GetCount(WHITE) < CurrentPos->GetCount(WHITE) || searchPos->GetCount(BLACK) < CurrentPos->GetCount(BLACK)) { //skip++; goto Move_Forward; } // Extra pawns/pieces: skip to next move if (searchPos->PieceCount(WP) != CurrentPos->PieceCount(WP) || searchPos->PieceCount(BP) != CurrentPos->PieceCount(BP) || searchPos->PieceCount(WN) != CurrentPos->PieceCount(WN) || searchPos->PieceCount(BN) != CurrentPos->PieceCount(BN) || searchPos->PieceCount(WB) != CurrentPos->PieceCount(WB) || searchPos->PieceCount(BB) != CurrentPos->PieceCount(BB) || searchPos->PieceCount(WR) != CurrentPos->PieceCount(WR) || searchPos->PieceCount(BR) != CurrentPos->PieceCount(BR) || searchPos->PieceCount(WQ) != CurrentPos->PieceCount(WQ) || searchPos->PieceCount(BQ) != CurrentPos->PieceCount(BQ)) { //skip++; goto Move_Forward; } // NOW, compare the actual boards piece-by-piece. if (searchType == GAME_EXACT_MATCH_Exact) { if (searchPos->HashValue() == CurrentPos->HashValue()) { for (squareT sq = A1; sq <= H8; sq++, b1++, b2++) { if (*b1 != *b2) { found = false; break; } } } else { found = false; } } else if (searchType == GAME_EXACT_MATCH_Pawns) { if (searchPos->PawnHashValue() == CurrentPos->PawnHashValue()) { for (squareT sq = A1; sq <= H8; sq++, b1++, b2++) { if (*b1 != *b2 && (*b1 == WP || *b1 == BP)) { found = false; break; } } } else { found = false; } } else if (searchType == GAME_EXACT_MATCH_Fyles) { for (fyleT f = A_FYLE; f <= H_FYLE; f++) { if (searchPos->FyleCount(WP,f) != CurrentPos->FyleCount(WP,f) || searchPos->FyleCount(BP,f) != CurrentPos->FyleCount(BP,f)) { found = false; break; } } } else { // searchType == GAME_EXACT_Match_Material, so do nothing. } if (found) { // Found a match! Set the returned next-move: if (sm) { // We need to decode the next move. if (buf == NULL) { MoveForward(); if (CurrentMove->marker == END_MARKER) { // Position matched at last move in the game. sm->from = sm->to = NULL_SQUARE; sm->promote = EMPTY; } else { *sm = CurrentMove->prev->moveData; MoveBackup(); } } else { err = DecodeNextMove (buf, sm); if (err != OK) { // Position matched at last move in the game. sm->from = sm->to = NULL_SQUARE; sm->promote = EMPTY; } else { // Backup to the matching position: CurrentPos->UndoSimpleMove (sm); CurrentPlyCount--; } } } return true; } Move_Forward: #ifndef NO_SPEEDUPS if (doHomePawnChecks) { check_pawnMaskWhite = false; check_pawnMaskBlack = false; rankT rTo = square_Rank (CurrentMove->moveData.to); rankT rFrom = square_Rank (CurrentMove->moveData.from); // We only re-check the home pawn masks when something moves // to or from the 2nd/7th rank: if (rTo == RANK_2 || rFrom == RANK_2) { check_pawnMaskWhite = true; } if (rTo == RANK_7 || rFrom == RANK_7) { check_pawnMaskBlack = true; } } #endif if (buf == NULL) { MoveForward (); if (CurrentMove->marker == END_MARKER) { err = ERROR_EndOfMoveList; } } else { err = DecodeNextMove (buf, NULL); if (err != OK && err != ERROR_EndOfMoveList) { return false; } } plyCount++; } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::VarExactMatch(): // Like ExactMatch(), but also searches in variations. // This is much slower than ExactMatch(), since it will // search every position until a match is found. bool Game::VarExactMatch (Position * searchPos, gameExactMatchT searchType) { uint wpawnFyle [8] = {0, 0, 0, 0, 0, 0, 0, 0}; uint bpawnFyle [8] = {0, 0, 0, 0, 0, 0, 0, 0};; if (searchType == GAME_EXACT_MATCH_Fyles) { pieceT * board = searchPos->GetBoard(); uint fyle = 0; for (squareT sq = A1; sq <= H8; sq++, board++) { if (*board == WP) { wpawnFyle[fyle]++; } else if (*board == BP) { bpawnFyle[fyle]++; } fyle = (fyle + 1) & 7; } } errorT err = OK; while (err == OK) { // Check if this position matches: bool match = false; if (searchPos->GetToMove() == CurrentPos->GetToMove() && searchPos->GetCount(WHITE) == CurrentPos->GetCount(WHITE) && searchPos->GetCount(BLACK) == CurrentPos->GetCount(BLACK) && searchPos->PieceCount(WP) == CurrentPos->PieceCount(WP) && searchPos->PieceCount(BP) == CurrentPos->PieceCount(BP) && searchPos->PieceCount(WN) == CurrentPos->PieceCount(WN) && searchPos->PieceCount(BN) == CurrentPos->PieceCount(BN) && searchPos->PieceCount(WB) == CurrentPos->PieceCount(WB) && searchPos->PieceCount(BB) == CurrentPos->PieceCount(BB) && searchPos->PieceCount(WR) == CurrentPos->PieceCount(WR) && searchPos->PieceCount(BR) == CurrentPos->PieceCount(BR) && searchPos->PieceCount(WQ) == CurrentPos->PieceCount(WQ) && searchPos->PieceCount(BQ) == CurrentPos->PieceCount(BQ)) { match = true; pieceT * b1 = CurrentPos->GetBoard(); pieceT * b2 = searchPos->GetBoard(); if (searchType == GAME_EXACT_MATCH_Pawns) { for (squareT sq = A1; sq <= H8; sq++, b1++, b2++) { if (*b1 != *b2 && (*b1 == WP || *b1 == BP)) { match = false; break; } } } else if (searchType == GAME_EXACT_MATCH_Fyles) { uint wpf[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; uint bpf[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; uint fyle = 0; for (squareT sq = A1; sq <= H8; sq++, b1++) { if (*b1 == WP) { wpf[fyle]++; if (wpf[fyle] > wpawnFyle[fyle]) { match = false; break; } } else if (*b1 == BP) { bpf[fyle]++; if (bpf[fyle] > bpawnFyle[fyle]) { match = false; break; } } fyle = (fyle + 1) & 7; } } else if (searchType == GAME_EXACT_MATCH_Exact) { if (searchPos->HashValue() == CurrentPos->HashValue()) { for (squareT sq = A1; sq <= H8; sq++, b1++, b2++) { if (*b1 != *b2) { match = false; break; } } } else { match = false; } } else { // searchType == GAME_EXACT_MATCH_Material, so do nothing. } } if (match) { return true; } // Now try searching each variation in turn: for (uint i=0; i < CurrentMove->numVariations; i++) { MoveIntoVariation (i); match = VarExactMatch (searchPos, searchType); MoveExitVariation(); if (match) { return true; } } // Continue down this variation: MoveForward(); if (CurrentMove->marker == END_MARKER) { err = ERROR_EndOfMoveList; } } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::GetPartialMoveList(): // Write the first few moves of a game. // errorT Game::GetPartialMoveList (DString * outStr, uint plyCount) { // First, copy the relevant data so we can leave the game state // unaltered: SaveState (); char temp [80]; for (uint i=0; i < plyCount; i++) { if (CurrentMove->marker == END_MARKER) { break; } if (i != 0) { outStr->Append (" "); } if (i == 0 || CurrentPos->GetToMove() == WHITE) { sprintf (temp, "%d%s", CurrentPos->GetFullMoveCount(), (CurrentPos->GetToMove() == WHITE ? "." : "...")); outStr->Append (temp); } moveT * m = CurrentMove; if (m->san[0] == 0) { CurrentPos->MakeSANString(&(m->moveData), m->san, SAN_CHECKTEST); } // add one space for indenting to work out right outStr->Append (" "); outStr->Append (m->san); MoveForward(); } // Now reconstruct the original game state: RestoreState(); return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::GetSAN(): // Print the SAN representation of the current move to a string. // Prints an empty string ("") if not at a move. void Game::GetSAN (char * str) { ASSERT (str != NULL); moveT * m = CurrentMove; if (m->marker == START_MARKER || m->marker == END_MARKER) { str[0] = 0; return; } if (m->san[0] == 0) { CurrentPos->MakeSANString (&(m->moveData), m->san, SAN_MATETEST); } strcpy (str, m->san); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::GetPrevSAN(): // Print the SAN representation of the current move to a string. // Prints an empty string ("") if not at a move. void Game::GetPrevSAN (char * str) { ASSERT (str != NULL); moveT * m = CurrentMove->prev; if (m->marker == START_MARKER || m->marker == END_MARKER) { str[0] = 0; return; } if (m->san[0] == 0) { MoveBackup(); CurrentPos->MakeSANString (&(m->moveData), m->san, SAN_MATETEST); MoveForward(); } strcpy (str, m->san); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::GetPrevMoveUCI(): // Print the UCI representation of the current move to a string. // Prints an empty string ("") if not at a move. void Game::GetPrevMoveUCI (char * str) { ASSERT (str != NULL); moveT * m = CurrentMove->prev; if (m->marker == START_MARKER || m->marker == END_MARKER) { str[0] = 0; return; } // if (m->san[0] == 0) { MoveBackup(); CurrentPos->MakeUCIString (&(m->moveData), str); MoveForward(); // } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::GetNextMoveUCI(): // Print the UCI representation of the next move to a string. // Prints an empty string ("") if not at a move. void Game::GetNextMoveUCI (char * str) { ASSERT (str != NULL); moveT * m = CurrentMove; if (m->marker == START_MARKER || m->marker == END_MARKER) { str[0] = 0; return; } //MoveBackup(); CurrentPos->MakeUCIString (&(m->moveData), str); //MoveForward(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // commentEmpty: // Called by WriteMoveList to check there is really // something to print given display options. // comment is supposed to be non null bool Game::CommentEmpty ( const char * comment) { char * s = NULL; bool ret = false; if (comment == NULL) return true; if (comment[0] == '\0') return true; if (PgnStyle & PGN_STYLE_STRIP_MARKS) { s = strDuplicate (comment); strTrimMarkCodes (s); char * tmp = s; bool empty = true; while (tmp[0] != 0) { if (tmp[0] != ' ') { empty = false; break; } tmp++; } ret = empty; #ifdef WINCE my_Tcl_Free((char*) s); #else delete[] s; #endif } return ret; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeComment: // Called by WriteMoveList to write a single comment. void Game::WriteComment (TextBuffer * tb, const char * preStr, const char * comment, const char * postStr) { char * s = NULL; if (PgnStyle & PGN_STYLE_STRIP_MARKS) { s = strDuplicate (comment); strTrimMarkCodes (s); } else { s = (char *) comment; } if (s[0] != '\0') { if (IsColorFormat()) { tb->PrintString ("PrintInt (NumMovesPrinted); tb->PrintChar ('>'); } if (IsColorFormat()) { // Translate "<", ">" in comments: tb->AddTranslation ('<', ""); tb->AddTranslation ('>', ""); tb->PrintString (s); tb->ClearTranslation ('<'); tb->ClearTranslation ('>'); } else { tb->PrintString (preStr); tb->PrintString (s); tb->PrintString (postStr); } if (IsColorFormat()) { tb->PrintString (""); } } if (PgnStyle & PGN_STYLE_STRIP_MARKS) { #ifdef WINCE my_Tcl_Free((char*) s); #else delete[] s; #endif } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::WriteMoveList(): // Write the moves, variations and comments in PGN notation. // Recursive; calls itself to write variations. // errorT Game::WriteMoveList (TextBuffer *tb, uint plyCount, moveT * oldCurrentMove, bool printMoveNum, bool inComment) { char tempTrans[10]; const char * preCommentStr = "{"; const char * postCommentStr = "}"; const char * startTable = "\n"; const char * startColumn = "\t"; const char * nextColumn = "\t"; const char * endColumn = "\n"; const char * endTable = "\n"; const char * newline = "\n"; bool printDiagrams = false; if (IsHtmlFormat()) { preCommentStr = ""; postCommentStr = ""; startTable = "\n"; startColumn = "\n \n \n\n"; endTable = "
"; nextColumn = ""; endColumn = "
\n"; newline = "
\n"; printDiagrams = true; } if (IsLatexFormat()) { preCommentStr = "\\begin{nochess}{\\rm "; postCommentStr = "}\\end{nochess}"; startTable = "\n\\begin{tabular}{p{1cm}p{2cm}p{2cm}}\n"; startColumn = ""; nextColumn = "&"; endColumn = "\\\\\n"; endTable = "\\end{tabular}\n\n"; newline = "\n"; printDiagrams = true; } if (IsColorFormat()) { startTable = "
"; newline = "
"; endColumn = "
"; } if (IsHtmlFormat() && VarDepth == 0) { tb->PrintString (""); } if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { tb->PrintString (startTable); } if (IsPlainFormat() && inComment) { preCommentStr = ""; postCommentStr = ""; } moveT * m = CurrentMove; // Print null moves: if ((PgnStyle & PGN_STYLE_NO_NULL_MOVES) && !inComment && IsPlainFormat() && isNullMove(m)) { inComment = true; tb->PrintString(preCommentStr); preCommentStr = ""; postCommentStr = ""; } // If this is a variation and it starts with a comment, print it: if ((VarDepth > 0 || CurrentMove->prev == FirstMove) && CurrentMove->prev->comment != NULL) { if (PgnStyle & PGN_STYLE_COMMENTS) { WriteComment (tb, preCommentStr, CurrentMove->prev->comment, postCommentStr); tb->PrintSpace(); if (!VarDepth) { tb->ClearTranslation ('\n'); tb->NewLine(); if (IsColorFormat() || IsLatexFormat()) { tb->NewLine(); } } } } while (CurrentMove->marker != END_MARKER) { moveT *m = CurrentMove; bool commentLine = false; // If the move being printed is the game's "current move" then // set the current PGN position accordingly: if (m == oldCurrentMove) { PgnNextMovePos = NumMovesPrinted; } // Stop the output if a specified stopLocation was given and has // been reached: if (StopLocation > 0 && NumMovesPrinted >= StopLocation) { return OK; } if (m->san[0] == 0) { CurrentPos->MakeSANString (&(m->moveData), m->san, SAN_MATETEST); } bool printThisMove = true; if (isNullMove(m)) { // Null moves are not printed in LaTeX or HTML: if (IsLatexFormat() || IsHtmlFormat()) { printThisMove = false; printMoveNum = true; } // If Plain PGN format, check whether to convert the // null move and remainder of the line to a comment: if ((PgnStyle & PGN_STYLE_NO_NULL_MOVES) && IsPlainFormat()) { if (!inComment) { // Enter inComment mode to convert rest of line // to a comment: inComment = true; tb->PrintString(preCommentStr); preCommentStr = ""; postCommentStr = ""; } printThisMove = false; printMoveNum = true; } } // #ifdef WINCE int colWidth = 6; // #else // int colWidth = 12; // #endif NumMovesPrinted++; if (printThisMove) { // Print the move number and following dots if necessary: if (IsColorFormat()) { tb->PrintString ("PrintInt (NumMovesPrinted); tb->PrintChar ('>'); } if (printMoveNum || (CurrentPos->GetToMove() == WHITE)) { if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { tb->PrintString (startColumn); char temp [10]; sprintf (temp, "%4u.", CurrentPos->GetFullMoveCount()); tb->PrintString (temp); if (CurrentPos->GetToMove() == BLACK) { tb->PauseTranslations(); tb->PrintString (nextColumn); tb->PrintString ("..."); if (IsPlainFormat() || IsColorFormat()) { tb->PrintString (" "); } tb->ResumeTranslations(); } } else { if (PgnStyle & PGN_STYLE_MOVENUM_SPACE) { tb->PrintInt(CurrentPos->GetFullMoveCount(), (CurrentPos->GetToMove() == WHITE ? "." : ". ...")); } else { tb->PrintInt(CurrentPos->GetFullMoveCount(), (CurrentPos->GetToMove() == WHITE ? "." : "...")); } if (PgnStyle & PGN_STYLE_MOVENUM_SPACE) { if (IsLatexFormat()) { tb->PrintChar ('~'); } else { tb->PrintChar (' '); } } } printMoveNum = false; } if (m == oldCurrentMove->prev) { PgnLastMovePos = NumMovesPrinted; } if (m == oldCurrentMove) { PgnNextMovePos = NumMovesPrinted; } // Now print the move: only regenerate the SAN string if necessary. if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { tb->PauseTranslations(); tb->PrintString (nextColumn); tb->ResumeTranslations(); } // translate pieces strcpy(tempTrans, m->san); transPieces(tempTrans); //tb->PrintWord (m->san); tb->PrintWord (tempTrans); colWidth -= strLength (m->san); if (IsColorFormat()) { tb->PrintString (""); } } bool endedColumn = false; // Print NAGs and comments if the style indicates: if (PgnStyle & PGN_STYLE_COMMENTS) { bool printDiagramHere = false; if (IsColorFormat() && m->nagCount > 0) { tb->PrintString (""); } for (uint i = 0; i < (uint) m->nagCount; i++) { char temp[20]; game_printNag (m->nags[i], temp, PgnStyle & PGN_STYLE_SYMBOLS, PgnFormat); // Do not print a space before the Nag if it is the // first nag and starts with "!" or "?" -- those symbols // look better printed next to the move: if (i > 0 || (temp[0] != '!' && temp[0] != '?')) { tb->PrintSpace(); colWidth--; } if (printDiagrams && m->nags[i] == NAG_Diagram) { printDiagramHere = true; } tb->PrintWord (temp); colWidth -= strLength(temp); } if (IsColorFormat() && m->nagCount > 0) { tb->PrintString (""); } tb->PrintSpace(); colWidth--; if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { if (IsPlainFormat() || IsColorFormat()) { while (colWidth-- > 0) { tb->PrintSpace(); } } } if (printDiagramHere) { if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { if (! endedColumn) { if (CurrentPos->GetToMove() == WHITE) { tb->PauseTranslations (); tb->PrintString (nextColumn); tb->ResumeTranslations (); } tb->PrintString (endColumn); tb->PrintString (endTable); endedColumn = true; } } if (IsHtmlFormat() && VarDepth == 0) { tb->PrintString (""); } if (IsLatexFormat()) { // The commented-out code below will print diagrams // in variations smaller than game diagrams: //if (VarDepth == 0) { // tb->PrintString("\n\\font\\Chess=chess20\n"); //} else { // tb->PrintString("\n\\font\\Chess=chess10\n"); //} tb->PrintString ("\n\\begin{diagram}\n"); } MoveForward (); DString * dstr = new DString; if (IsHtmlFormat()) { CurrentPos->DumpHtmlBoard (dstr, HtmlStyle, NULL); } else { CurrentPos->DumpLatexBoard (dstr); } MoveBackup (); tb->PrintString (dstr->Data()); delete dstr; if (IsHtmlFormat() && VarDepth == 0) { tb->PrintString (""); } if (IsLatexFormat()) { tb->PrintString ("\n\\end{diagram}\n"); } printMoveNum = true; } if (m->comment != NULL && ! CommentEmpty(m->comment) ) { if (!inComment && IsPlainFormat() && (PgnStyle & PGN_STYLE_NO_NULL_MOVES)) { // If this move has no variations, but the next move // is a null move, enter inComment mode: if (isNullMove(m->next) && ((!(PgnStyle & PGN_STYLE_VARS)) || (CurrentMove->next->numVariations == 0))) { inComment = true; tb->PrintString(preCommentStr); preCommentStr = ""; postCommentStr = ""; } } if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { // Code commented to remove extra lines // if (! endedColumn) { // if (CurrentPos->GetToMove() == WHITE) { // tb->PauseTranslations (); // tb->PrintString (nextColumn); // tb->ResumeTranslations (); // } // tb->PrintString (endColumn); // tb->PrintString (endTable); // endedColumn = true; // } } if (IsHtmlFormat() && VarDepth == 0) { tb->PrintString ("
"); } if ((PgnStyle & PGN_STYLE_INDENT_COMMENTS) && VarDepth == 0) { if (IsColorFormat()) { tb->PrintString ("
"); } else { tb->SetIndent (tb->GetIndent() + 4); tb->Indent(); } } WriteComment (tb, preCommentStr, m->comment, postCommentStr); if ((PgnStyle & PGN_STYLE_INDENT_COMMENTS) && VarDepth == 0) { if (IsColorFormat()) { tb->PrintString ("
"); commentLine = true; } else { tb->SetIndent (tb->GetIndent() - 4); tb->Indent(); } } else { tb->PrintSpace(); } if (printDiagrams && strIsPrefix ("#", m->comment)) { if (IsLatexFormat()) { tb->PrintString ("\n\\begin{diagram}\n"); } MoveForward (); DString * dstr = new DString; if (IsHtmlFormat()) { CurrentPos->DumpHtmlBoard (dstr, HtmlStyle, NULL); } else { CurrentPos->DumpLatexBoard (dstr); } MoveBackup (); tb->PrintString (dstr->Data()); if (IsLatexFormat()) { tb->PrintString ("\n\\end{diagram}\n"); } delete dstr; } if (IsHtmlFormat() && VarDepth == 0) { tb->PrintString ("
"); } printMoveNum = true; } } else { tb->PrintSpace(); } if (StopLocation > 0 && NumMovesPrinted >= StopLocation) { MoveForward(); return OK; } // Print any variations if the style indicates: if ((PgnStyle & PGN_STYLE_VARS) && (m->numVariations > 0)) { if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { if (! endedColumn) { if (CurrentPos->GetToMove() == WHITE) { tb->PauseTranslations (); tb->PrintString (nextColumn); tb->ResumeTranslations (); } tb->PrintString (endColumn); tb->PrintString (endTable); endedColumn = true; } } if (IsColorFormat() && VarDepth == 0) { tb->PrintString (""); } if ((PgnStyle & PGN_STYLE_INDENT_VARS) && IsColorFormat()) { if ( !commentLine ) { tb->PrintString ("
"); } } for (uint i=0; i < m->numVariations; i++) { if (PgnStyle & PGN_STYLE_INDENT_VARS) { if (IsColorFormat()) { switch (VarDepth) { case 0: tb->PrintString (""); break; case 1: tb->PrintString (""); break; case 2: tb->PrintString (""); break; case 3: tb->PrintString (""); break; } } else { tb->SetIndent (tb->GetIndent() + 4); tb->Indent(); } } if (IsHtmlFormat()) { if (VarDepth == 0) { tb->PrintString ("
"); } } if (IsLatexFormat() && VarDepth == 0) { if (PgnStyle & PGN_STYLE_INDENT_VARS) { tb->PrintLine ("\\begin{variation}"); } else { tb->PrintString ("{\\rm "); } } if (IsColorFormat()) { tb->PrintString (""); } if (!IsLatexFormat() || VarDepth != 0) { tb->PrintChar ('('); } MoveIntoVariation (i); NumMovesPrinted++; tb->PrintSpace(); // Recursively print the variation: WriteMoveList (tb, plyCount, oldCurrentMove, true, inComment); if (StopLocation > 0 && NumMovesPrinted >= StopLocation) { return OK; } MoveExitVariation(); if (!IsLatexFormat() || VarDepth != 0) { tb->PrintChar (')'); } if (IsColorFormat()) { tb->PrintString (""); } if (IsHtmlFormat()) { if (VarDepth == 0) { tb->PrintString ("
"); } } if (IsLatexFormat() && VarDepth == 0) { if (PgnStyle & PGN_STYLE_INDENT_VARS) { tb->PrintLine ("\\end{variation}"); } else { tb->PrintString ("}"); } } if (PgnStyle & PGN_STYLE_INDENT_VARS) { if (IsColorFormat()) { switch (VarDepth) { case 0: tb->PrintString ("
"); break; case 1: tb->PrintString ("
"); break; case 2: tb->PrintString ("
"); break; case 3: tb->PrintString ("
"); break; } } else { tb->SetIndent (tb->GetIndent() - 4); tb->Indent(); } } else { tb->PrintSpace(); } printMoveNum = true; } if (IsColorFormat() && VarDepth == 0) { tb->PrintString (""); } } if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { if (endedColumn) { tb->PrintString(startTable); } if (!endedColumn && CurrentPos->GetToMove() == BLACK) { tb->PrintString (endColumn); endedColumn = true; } } MoveForward(); plyCount++; if (CurrentMove == oldCurrentMove->prev) { PgnLastMovePos = NumMovesPrinted; } if (CurrentMove == oldCurrentMove) { PgnNextMovePos = NumMovesPrinted; } } if (inComment) { tb->PrintString ("}"); } if (IsHtmlFormat() && VarDepth == 0) { tb->PrintString ("
"); } if ((PgnStyle & PGN_STYLE_COLUMN) && VarDepth == 0) { tb->PrintString(endTable); } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::WritePGN(): // Write a game in PGN to a textbuffer. If stopLocation is // non-zero, it indicates a byte count at which the output should // stop, leaving the game at that position. If it is zero, the // entire game is printed and the game position prior to the // WritePGN() call is restored. So a nonzero stopLocation is used // to move to a position in the game. // errorT Game::WritePGN (TextBuffer * tb, uint stopLocation) { char temp [255]; char dateStr [20]; const char * newline = "\n"; tb->NewlinesToSpaces (false); if (IsHtmlFormat()) { newline = "
\n"; } if (IsLatexFormat()) { newline = "\\\\\n"; tb->AddTranslation ('#', "\\#"); tb->AddTranslation ('%', "\\%"); tb->AddTranslation ('&', "\\&"); tb->AddTranslation ('<', "$<$"); tb->AddTranslation ('>', "$>$"); tb->AddTranslation ('_', "\\_"); // tb->AddTranslation ('[', "$[$"); // tb->AddTranslation (']', "$]$"); } if (IsColorFormat()) { newline = "
"; } if (PgnStyle & PGN_STYLE_COLUMN) { PgnStyle |= PGN_STYLE_INDENT_COMMENTS; PgnStyle |= PGN_STYLE_INDENT_VARS; } // First: is there a pre-game comment? If so, print it: // if (FirstMove->comment != NULL && (PgnStyle & PGN_STYLE_COMMENTS) // && ! strIsAllWhitespace (FirstMove->comment)) { // tb->AddTranslation ('\n', newline); // char * s = FirstMove->comment; // if (PgnStyle & PGN_STYLE_STRIP_MARKS) { // s = strDuplicate (FirstMove->comment); // strTrimMarkCodes (s); // } // if (IsColorFormat()) { // sprintf (temp, "", NumMovesPrinted); // tb->PrintString (temp); // tb->AddTranslation ('<', ""); // tb->AddTranslation ('>', ""); // tb->PrintString (s); // tb->ClearTranslation ('<'); // tb->ClearTranslation ('>'); // tb->PrintLine (""); // } else { // tb->PrintLine (s); // } // if (PgnStyle & PGN_STYLE_STRIP_MARKS) { delete[] s; } // tb->ClearTranslation ('\n'); // tb->NewLine(); // } date_DecodeToString (Date, dateStr); if (IsHtmlFormat()) { tb->PrintLine("

"); } if (IsLatexFormat()) { tb->PrintLine ("{\\bf"); } // if (IsColorFormat()) { // tb->AddTranslation ('<', ""); // tb->AddTranslation ('>', ""); // } if (PgnStyle & PGN_STYLE_SHORT_HEADER) { // Print tags in short, 3-line format: //if (IsHtmlFormat()) { tb->PrintString (""); } if (IsLatexFormat()) { tb->PrintString ("$\\circ$ "); } tb->PrintString (WhiteStr); if (WhiteElo > 0) { sprintf (temp, " (%u)", WhiteElo); tb->PrintString (temp); } switch (PgnFormat) { case PGN_FORMAT_HTML: tb->PrintString ("    --    "); break; case PGN_FORMAT_LaTeX: tb->PrintString (newline); tb->PrintString ("$\\bullet$ "); break; default: tb->PrintString (" -- "); break; } tb->PrintString (BlackStr); if (BlackElo > 0) { sprintf (temp, " (%u)", BlackElo); tb->PrintString (temp); } //if (IsHtmlFormat()) { tb->PrintString (""); } tb->PrintString (newline); tb->PrintString (EventStr); if (!strEqual (RoundStr, "") && !strEqual (RoundStr, "?")) { tb->PrintString (IsHtmlFormat() ? "  (" : " ("); tb->PrintString (RoundStr); tb->PrintString (")"); } tb->PrintString (IsHtmlFormat() ? "   " : " "); if (IsLatexFormat()) { tb->PrintString (newline); } if (!strEqual (SiteStr, "") && !strEqual (SiteStr, "?")) { tb->PrintString (SiteStr); tb->PrintString (newline); } // Remove ".??" or ".??.??" from end of dateStr, then print it: if (dateStr[4] == '.' && dateStr[5] == '?') { dateStr[4] = 0; } if (dateStr[7] == '.' && dateStr[8] == '?') { dateStr[7] = 0; } tb->PrintString (dateStr); // Print ECO code: tb->PrintString (IsHtmlFormat() ? "     " : " "); if (IsLatexFormat()) { tb->PrintString ("\\hfill "); } tb->PrintString (RESULT_LONGSTR[Result]); if (EcoCode != 0) { tb->PrintString (IsHtmlFormat() ? "     " : " "); if (IsLatexFormat()) { tb->PrintString ("\\hfill "); } ecoStringT ecoStr; eco_ToExtendedString (EcoCode, ecoStr); tb->PrintString (ecoStr); } for (uint i=0; i < NumTags; i++) { if( !strcmp(TagList[i].tag, "Annotator")) { sprintf (temp, " (%s)", TagList[i].value); tb->PrintString (temp); } } tb->PrintString (newline); // Print FEN if non-standard start: if (NonStandardStart) { if (IsLatexFormat()) { tb->PrintString ("\n\\begin{diagram}\n"); DString dstr; StartPos->DumpLatexBoard (&dstr); tb->PrintString (dstr.Data()); tb->PrintString ("\n\\end{diagram}\n"); } else if (IsHtmlFormat()) { DString dstr; StartPos->DumpHtmlBoard (&dstr, HtmlStyle, NULL); tb->PrintString (dstr.Data()); } else { char fenStr [256]; StartPos->PrintFEN (fenStr, FEN_ALL_FIELDS); sprintf (temp, "Position: %s%s", fenStr, newline); tb->PrintString (temp); } } } else { // Print tags in standard PGN format, one per line: // Note: we want no line-wrapping when printing PGN tags // so set it to a huge value for now: uint wrapColumn = tb->GetWrapColumn(); tb->SetWrapColumn (99999); if (IsColorFormat()) { tb->PrintString (""); } sprintf (temp, "[Event \"%s\"]%s", EventStr, newline); tb->PrintString (temp); sprintf (temp, "[Site \"%s\"]%s", SiteStr, newline); tb->PrintString (temp); sprintf (temp, "[Date \"%s\"]%s", dateStr, newline); tb->PrintString (temp); sprintf (temp, "[Round \"%s\"]%s", RoundStr, newline); tb->PrintString (temp); sprintf (temp, "[White \"%s\"]%s", WhiteStr, newline); tb->PrintString (temp); sprintf (temp, "[Black \"%s\"]%s", BlackStr, newline); tb->PrintString (temp); sprintf (temp, "[Result \"%s\"]%s", RESULT_LONGSTR[Result], newline); tb->PrintString (temp); // Print all tags, not just the standard seven, if applicable: if (PgnStyle & PGN_STYLE_TAGS) { if (WhiteElo > 0) { sprintf (temp, "[White%s \"%u\"]%s", ratingTypeNames [WhiteRatingType], WhiteElo, newline); tb->PrintString (temp); } if (BlackElo > 0) { sprintf (temp, "[Black%s \"%u\"]%s", ratingTypeNames [BlackRatingType], BlackElo, newline); tb->PrintString (temp); } if (EcoCode != 0) { ecoStringT ecoStr; eco_ToExtendedString (EcoCode, ecoStr); sprintf (temp, "[ECO \"%s\"]%s", ecoStr, newline); tb->PrintString (temp); } if (EventDate != ZERO_DATE) { char edateStr [20]; date_DecodeToString (EventDate, edateStr); sprintf (temp, "[EventDate \"%s\"]%s", edateStr, newline); tb->PrintString (temp); } if (PgnStyle & PGN_STYLE_SCIDFLAGS && *ScidFlags != 0) { sprintf (temp, "[ScidFlags \"%s\"]%s", ScidFlags, newline); tb->PrintString (temp); } // Now print other tags for (uint i=0; i < NumTags; i++) { sprintf (temp, "[%s \"%s\"]%s", TagList[i].tag, TagList[i].value, newline); tb->PrintString (temp); } } // Finally, write the FEN tag if necessary: if (NonStandardStart) { char fenStr [256]; StartPos->PrintFEN (fenStr, FEN_ALL_FIELDS); sprintf (temp, "[FEN \"%s\"]%s", fenStr, newline); tb->PrintString (temp); } if (IsColorFormat()) { tb->PrintString (""); } // Now restore the linewrap column: tb->SetWrapColumn (wrapColumn); } // if (IsColorFormat()) { // tb->ClearTranslation ('<'); // tb->ClearTranslation ('>'); // } if (IsHtmlFormat()) { tb->PrintLine("

"); } if (IsLatexFormat()) { tb->PrintLine ("}\n\\begin{chess}{\\bf "); } else { tb->PrintString (newline); } // Now print the move list. First, we note the current position and // move, so we can reconstruct the game state afterwards: moveT * oldCurrentMove = CurrentMove; if (stopLocation == 0) { SaveState(); } MoveToPly(0); PgnLastMovePos = PgnNextMovePos = 1; if (IsHtmlFormat()) { tb->PrintString ("

"); } NumMovesPrinted = 1; StopLocation = stopLocation; WriteMoveList (tb, StartPlyCount, oldCurrentMove, true, false); if (IsHtmlFormat()) { tb->PrintString (""); } if (IsLatexFormat()) { tb->PrintString ("\n}\\end{chess}\n{\\bf "); } if (IsColorFormat()) { tb->PrintString (""); } tb->PrintWord (RESULT_LONGSTR [Result]); if (IsLatexFormat()) { tb->PrintString ("}\n\\begin{center} \\hrule \\end{center}"); } if (IsHtmlFormat()) { tb->PrintString ("


"); } if (IsColorFormat()) { tb->PrintString (""); } tb->NewLine(); // Now reset the current position and move: if (stopLocation == 0) { RestoreState(); } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::WriteToPGN(): // Just calls Game::WritePGN() with a zero stopLocation (to print // the entire game). // errorT Game::WriteToPGN (TextBuffer * tb) { return WritePGN (tb, 0); } errorT Game::MoveToLocationInPGN (TextBuffer * tb, uint stopLocation) { return WritePGN (tb, stopLocation); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::CopyStandardTags(): // Sets the standard tag values for this game, given another // game to copy the values from. void Game::CopyStandardTags (Game * fromGame) { ASSERT (fromGame != NULL); SetEventStr (fromGame->GetEventStr()); SetSiteStr (fromGame->GetSiteStr()); SetWhiteStr (fromGame->GetWhiteStr()); SetBlackStr (fromGame->GetBlackStr()); SetRoundStr (fromGame->GetRoundStr()); SetDate (fromGame->GetDate()); SetEventDate (fromGame->GetEventDate()); SetWhiteElo (fromGame->GetWhiteElo()); SetBlackElo (fromGame->GetBlackElo()); SetWhiteRatingType (fromGame->GetWhiteRatingType()); SetBlackRatingType (fromGame->GetBlackRatingType()); SetResult (fromGame->GetResult()); SetEco (fromGame->GetEco()); strCopy (ScidFlags, fromGame->ScidFlags); return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::LoadStandardTags(): // Sets the standard tag values for this game, given an // index file entry and a namebase that stores the // player/site/event/round names. // errorT Game::LoadStandardTags (IndexEntry * ie, NameBase * nb) { ASSERT (ie != NULL && nb != NULL); SetEventStr (ie->GetEventName (nb)); SetSiteStr (ie->GetSiteName (nb)); SetWhiteStr (ie->GetWhiteName (nb)); SetBlackStr (ie->GetBlackName (nb)); SetRoundStr (ie->GetRoundName (nb)); SetDate (ie->GetDate()); SetEventDate (ie->GetEventDate()); SetWhiteElo (ie->GetWhiteElo()); SetBlackElo (ie->GetBlackElo()); WhiteEstimateElo = nb->GetElo (ie->GetWhite()); BlackEstimateElo = nb->GetElo (ie->GetBlack()); SetWhiteRatingType (ie->GetWhiteRatingType()); SetBlackRatingType (ie->GetBlackRatingType()); SetResult (ie->GetResult()); SetEco (ie->GetEcoCode()); ie->GetFlagStr (ScidFlags, NULL); return OK; } eloT Game::GetAverageElo () { eloT white = WhiteElo; eloT black = BlackElo; if (white == 0) { white = WhiteEstimateElo; } if (black == 0) { black = BlackEstimateElo; } return (white + black) / 2; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setString(): used to set an event/site/white/black/round string. // static inline void setString (char ** toPtr, const char * from) { #ifdef WINCE if (*toPtr) { my_Tcl_Free( *toPtr); } #else if (*toPtr) { delete[] *toPtr; } #endif *toPtr = strDuplicate (from); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::SetEventStr(), SetSiteStr(), etc: // void Game::SetEventStr (const char * str) { setString ( &EventStr, str); } void Game::SetSiteStr (const char * str) { setString ( &SiteStr, str); } void Game::SetWhiteStr (const char * str) { setString ( &WhiteStr, str); } void Game::SetBlackStr (const char * str) { setString ( &BlackStr, str); } void Game::SetRoundStr (const char * str) { setString ( &RoundStr, str); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::ClearStandardTags(): // Clears all of the standard tags. // void Game::ClearStandardTags () { #ifdef WINCE if (WhiteStr) { my_Tcl_Free( WhiteStr); } WhiteStr = strDuplicate ("?"); if (BlackStr) { my_Tcl_Free( BlackStr); } BlackStr = strDuplicate ("?"); if (EventStr) { my_Tcl_Free( EventStr); } EventStr = strDuplicate ("?"); if (SiteStr) { my_Tcl_Free( SiteStr); } SiteStr = strDuplicate ("?"); if (RoundStr) { my_Tcl_Free( RoundStr); } RoundStr = strDuplicate ("?"); #else if (WhiteStr) { delete[] WhiteStr; } WhiteStr = strDuplicate ("?"); if (BlackStr) { delete[] BlackStr; } BlackStr = strDuplicate ("?"); if (EventStr) { delete[] EventStr; } EventStr = strDuplicate ("?"); if (SiteStr) { delete[] SiteStr; } SiteStr = strDuplicate ("?"); if (RoundStr) { delete[] RoundStr; } RoundStr = strDuplicate ("?"); #endif Date = ZERO_DATE; EventDate = ZERO_DATE; EcoCode = 0; Result = RESULT_None; WhiteElo = BlackElo = 0; WhiteEstimateElo = BlackEstimateElo = 0; WhiteRatingType = BlackRatingType = RATING_Elo; ScidFlags[0] = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::WriteExtraTags(): // Print the nonstandard tags in PGN notation to a file. // #ifdef WINCE errorT Game::WriteExtraTags (/*FILE **/ Tcl_Channel fp) { char buf [1024]; for (uint i=0; i < NumTags; i++) { sprintf (buf, "[%s \"%s\"]\n", TagList[i].tag, TagList[i].value); my_Tcl_Write(fp, buf, strlen(buf) ); //fprintf (fp, "[%s \"%s\"]\n", TagList[i].tag, TagList[i].value); } return OK; } #else errorT Game::WriteExtraTags (FILE * fp) { for (uint i=0; i < NumTags; i++) { fprintf (fp, "[%s \"%s\"]\n", TagList[i].tag, TagList[i].value); } return OK; } #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // makeMoveByte(): inline routine used for encoding most moves. // static inline byte makeMoveByte (byte pieceNum, byte value) { ASSERT (pieceNum <= 15 && value <= 15); return (byte)((pieceNum & 15) << 4) | (byte)(value & 15); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeKing(): encoding of King moves. // static inline void encodeKing (ByteBuffer * buf, simpleMoveT * sm) { // Valid King difference-from-old-square values are: // -9, -8, -7, -1, 1, 7, 8, 9, and -2 and 2 for castling. // To convert this to a val in the range [1-10], we add 9 and // then look up the val[] table. // Coded values 1-8 are one-square moves; 9 and 10 are Castling. ASSERT(sm->pieceNum == 0); // Kings MUST be piece Number zero. int diff = (int) sm->to - (int) sm->from; static const byte val[] = { /* -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 */ 1, 2, 3, 0, 0, 0, 0, 9, 4, 0, 5, 10, 0, 0, 0, 0, 6, 7, 8 }; // If target square is the from square, it is the null move, which // is represented as a king move to its own square and is encoded // as the byte value zero. if (sm->to == sm->from) { buf->PutByte (makeMoveByte (0, 0)); return; } // Verify we have a valid King move: ASSERT(diff >= -9 && diff <= 9 && val[diff+9] != 0); buf->PutByte (makeMoveByte (0, val [diff + 9])); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodeKing(): decoding of King moves. // static inline errorT decodeKing (byte val, simpleMoveT * sm) { static const int sqdiff[] = { 0, -9, -8, -7, -1, 1, 7, 8, 9, -2, 2 }; if (val == 0) { sm->to = sm->from; // Null move return OK; } if (val < 1 || val > 10) { return ERROR_Decode; } sm->to = sm->from + sqdiff[val]; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeKnight(): encoding Knight moves. // static inline void encodeKnight (ByteBuffer * buf, simpleMoveT * sm) { // Valid Knight difference-from-old-square values are: // -17, -15, -10, -6, 6, 10, 15, 17. // To convert this to a value in the range [1-8], we add 17 to // the difference and then look up the val[] table. int diff = (int) sm->to - (int) sm->from; static const byte val[] = { /* -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 */ 1, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, /* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 */ 0, 0, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 7, 0, 8 }; // Verify we have a valid knight move: ASSERT (diff >= -17 && diff <= 17 && val[diff + 17] != 0); buf->PutByte (makeMoveByte (sm->pieceNum, val [diff + 17])); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodeKnight(): decoding Knight moves. // static inline errorT decodeKnight (byte val, simpleMoveT * sm) { static const int sqdiff[] = { 0, -17, -15, -10, -6, 6, 10, 15, 17 }; if (val < 1 || val > 8) { return ERROR_Decode; } sm->to = sm->from + sqdiff[val]; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeRook(): encoding rook moves. // static inline void encodeRook (ByteBuffer * buf, simpleMoveT * sm) { // Valid Rook moves are to same rank, OR to same fyle. // We encode the 8 squares on the same rank 0-8, and the 8 // squares on the same fyle 9-15. This means that for any particular // rook move, two of the values in the range [0-15] will be // meaningless, as they will represent the from-square. ASSERT (sm->from <= H8 && sm->to <= H8); byte val; // Check if the two squares share the same rank: if (square_Rank(sm->from) == square_Rank(sm->to)) { val = square_Fyle(sm->to); } else { val = 8 + square_Rank(sm->to); } buf->PutByte (makeMoveByte (sm->pieceNum, val)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodeRook(): decoding Rook moves. // static inline errorT decodeRook (byte val, simpleMoveT * sm) { if (val >= 8) { // This is a move along a Fyle, to a different rank: sm->to = square_Make (square_Fyle(sm->from), (val - 8)); } else { sm->to = square_Make (val, square_Rank(sm->from)); } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeBishop(): encoding Bishop moves. // static inline void encodeBishop (ByteBuffer * buf, simpleMoveT * sm) { // We encode a Bishop move as the Fyle moved to, plus // a one-bit flag to indicate if the direction was // up-right/down-left or vice versa. ASSERT (sm->to <= H8 && sm->from <= H8); byte val; val = square_Fyle(sm->to); int rankdiff = (int)square_Rank(sm->to) - (int)square_Rank(sm->from); int fylediff = (int)square_Fyle(sm->to) - (int)square_Fyle(sm->from); // If (rankdiff * fylediff) is negative, it's up-left/down-right: if (rankdiff * fylediff < 0) { val += 8; } buf->PutByte (makeMoveByte (sm->pieceNum, val)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodeBishop(): decoding Bishop moves. // static inline errorT decodeBishop (byte val, simpleMoveT * sm) { byte fyle = (val & 7); int fylediff = (int)fyle - (int)square_Fyle(sm->from); if (val >= 8) { // It is an up-left/down-right direction move. sm->to = sm->from - 7 * fylediff; } else { sm->to = sm->from + 9 * fylediff; } if (sm->to > H8) { return ERROR_Decode;} return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeQueen(): encoding Queen moves. // static inline void encodeQueen (ByteBuffer * buf, simpleMoveT * sm) { // We cannot fit all Queen moves in one byte, so Rooklike moves // are in one byte (encoded the same way as Rook moves), // while diagonal moves are in two bytes. ASSERT (sm->to <= H8 && sm->from <= H8); byte val; if (square_Rank(sm->from) == square_Rank(sm->to)) { // Rook-horizontal move: val = square_Fyle(sm->to); buf->PutByte (makeMoveByte (sm->pieceNum, val)); } else if (square_Fyle(sm->from) == square_Fyle(sm->to)) { // Rook-vertical move: val = 8 + square_Rank(sm->to); buf->PutByte (makeMoveByte (sm->pieceNum, val)); } else { // Diagonal move: ASSERT (dirIsDiagonal [sqDir [sm->from][sm->to]]); // First, we put a rook-horizontal move to the from square (which // is illegal of course) to indicate it is NOT a rooklike move: val = square_Fyle(sm->from); buf->PutByte (makeMoveByte (sm->pieceNum, val)); // Now we put the to-square in the next byte. We add a 64 to it // to make sure that it cannot clash with the Special tokens (which // are in the range 0 to 15, since they are special King moves). buf->PutByte (sm->to + 64); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodeQueen(): decoding Queen moves. // static inline errorT decodeQueen (ByteBuffer * buf, byte val, simpleMoveT * sm) { if (val >= 8) { // Rook-vertical move: sm->to = square_Make (square_Fyle(sm->from), (val - 8)); } else if (val != square_Fyle(sm->from)) { // Rook-horizontal move: sm->to = square_Make (val, square_Rank(sm->from)); } else { // Diagonal move: coded in TWO bytes. val = buf->GetByte(); if (val < 64 || val > 127) { return ERROR_Decode; } sm->to = val - 64; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodePawn(): encoding Pawn moves. // static inline void encodePawn (ByteBuffer * buf, simpleMoveT * sm) { // Pawn moves require a promotion encoding. // The pawn moves are: // 0 = capture-left, // 1 = forward, // 2 = capture-right (all no promotion); // 3/4/5 = 0/1/2 with Queen promo; // 6/7/8 = 0/1/2 with Rook promo; // 9/10/11 = 0/1/2 with Bishop promo; // 12/13/14 = 0/1/2 with Knight promo; // 15 = forward TWO squares. byte val; int diff = (int)(sm->to) - (int)(sm->from); if (diff < 0) { diff = -diff; } if (diff == 16) { // Move forward two squares val = 15; ASSERT (sm->promote == EMPTY); } else { if (diff == 7) { val = 0; } else if (diff == 8) { val = 1; } else { // diff is 9: ASSERT (diff == 9); val = 2; } if (sm->promote != EMPTY) { // Handle promotions. // sm->promote must be Queen=2,Rook=3, Bishop=4 or Knight=5. // We add 3 for Queen, 6 for Rook, 9 for Bishop, 12 for Knight. ASSERT (sm->promote >= QUEEN && sm->promote <= KNIGHT); val += 3 * ((sm->promote) - 1); } } buf->PutByte (makeMoveByte (sm->pieceNum, val)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodePawn(): decoding Pawn moves. // static inline errorT decodePawn (byte val, simpleMoveT * sm, colorT toMove) { static const int toSquareDiff [16] = { 7,8,9, 7,8,9, 7,8,9, 7,8,9, 7,8,9, 16 }; static const pieceT promoPieceFromVal [16] = { EMPTY,EMPTY,EMPTY, QUEEN,QUEEN,QUEEN, ROOK,ROOK,ROOK, BISHOP,BISHOP,BISHOP, KNIGHT,KNIGHT,KNIGHT, EMPTY }; if (toMove == WHITE) { sm->to = sm->from + toSquareDiff[val]; } else { sm->to = sm->from - toSquareDiff[val]; } sm->promote = promoPieceFromVal[val]; return OK; } // Special-move tokens: // Since king-move values 1-10 are taken for actual King moves, only // 11-15 (and zero) are available for non-move information. #define ENCODE_NAG 11 #define ENCODE_COMMENT 12 #define ENCODE_START_MARKER 13 #define ENCODE_END_MARKER 14 #define ENCODE_END_GAME 15 #define ENCODE_FIRST 11 #define ENCODE_LAST 15 // The end-game and end-variation tokens could be the same single token, // but having two different tokens allows for detecting corruption, since // a game must end with the end-game token. // The inline routine isSpecialMoveCode() returns true is a byte value // has the value of a special non-move token: inline bool isSpecialMoveCode (byte val) { return (val <= ENCODE_LAST && val >= ENCODE_FIRST); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodeMove(): // Decode a move from a bytebuffer. Assumes the byte val is an // actual move, not the value of a "special" (non-move) token. // This function needs to be passed the bytebuffer because some // moves (only Queen diagonal moves) are encoded in two bytes, so // it may be necessary to read the next byte as well. // static errorT decodeMove (ByteBuffer * buf, simpleMoveT * sm, byte val, Position * pos) { // First, get the moving piece: sm->pieceNum = (val >> 4); squareT * sqList = pos->GetList (pos->GetToMove()); sm->from = sqList[sm->pieceNum]; if (sm->from > H8) { return ERROR_Decode; } pieceT * board = pos->GetBoard(); sm->movingPiece = board[sm->from]; sm->promote = EMPTY; errorT err = OK; pieceT pt = piece_Type (sm->movingPiece); switch (pt) { case PAWN: err = decodePawn (val & 15, sm, pos->GetToMove()); break; case KNIGHT: err = decodeKnight (val & 15, sm); break; case ROOK: err = decodeRook (val & 15, sm); break; case BISHOP: err = decodeBishop (val & 15, sm); break; case KING: err = decodeKing (val & 15, sm); break; // For queen moves: Rook-like moves are in 1 byte, diagonals are in 2. case QUEEN: err = decodeQueen (buf, val & 15, sm); break; default: err = ERROR_Decode; } return err; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::EncodeMove(): // Encode one move and output it to the bytebuffer. // static void encodeMove (ByteBuffer * buf, moveT * m) { simpleMoveT * sm = &(m->moveData); pieceT pt = piece_Type(sm->movingPiece); typedef void encodeFnType (ByteBuffer *, simpleMoveT *); static encodeFnType * encodeFn[] = { NULL /* 0 */, encodeKing /*1=KING*/, encodeQueen /*2=QUEEN*/, encodeRook /*3=ROOK*/, encodeBishop /*4=BISHOP*/, encodeKnight /*5=KNIGHT*/, encodePawn /*6=PAWN*/ }; ASSERT (pt >= KING && pt <= PAWN); (encodeFn[pt]) (buf, sm); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeVariation(): Used by Encode() to encode the game's moves. // Recursive; calls itself to encode subvariations. // static errorT encodeVariation (ByteBuffer * buf, moveT * m, uint * subVarCount, uint * nagCount, uint depth) { ASSERT (m != NULL); // Check if there is a pre-game or start-of-variation comment: if (m->prev->comment != NULL) { buf->PutByte (ENCODE_COMMENT); } while (m->marker != END_MARKER) { encodeMove (buf, m); for (uint i=0; i < (uint) m->nagCount; i++) { buf->PutByte (ENCODE_NAG); buf->PutByte (m->nags[i]); *nagCount += 1; } if (m->comment != NULL) { buf->PutByte (ENCODE_COMMENT); } if (m->numVariations > 0) { moveT * subVar = m->varChild; for (uint i=0; i < m->numVariations; i++) { *subVarCount += 1; buf->PutByte (ENCODE_START_MARKER); encodeVariation (buf, subVar->next, subVarCount, nagCount, depth+1); subVar = subVar->varChild; } } m = m->next; } // At end, we output the end-variation or end-game token. if (depth == 0) { buf->PutByte (ENCODE_END_GAME); } else { buf->PutByte (ENCODE_END_MARKER); } return buf->Status(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // defaultComment is what a move's comment is set to when a comment // is detected. It is changed to the actual comment later when the // comments are decoded. char * defaultComment = (char *) ""; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::DecodeVariation(): // Decodes the game moves. Recursively decodes subvariations. // errorT Game::DecodeVariation (ByteBuffer * buf, byte flags, uint level) { simpleMoveT sm; errorT err; byte b = buf->GetByte (); while (b != ENCODE_END_GAME && b != ENCODE_END_MARKER) { switch (b) { case ENCODE_START_MARKER: err = AddVariation(); if (err != OK) { return err; } err = DecodeVariation (buf, flags, level + 1); if (err != OK) { return err; } err = MoveExitVariation(); if (err != OK) { return err; } err = MoveForward(); if (err != OK) { return err; } break; case ENCODE_NAG: AddNag (buf->GetByte ()); break; case ENCODE_COMMENT: if (flags & GAME_DECODE_COMMENTS) { // Mark this comment as needing to be read CurrentMove->prev->comment = defaultComment; } break; default: // It is a regular move err = decodeMove (buf, &sm, b, CurrentPos); if (err != OK) { return err; } AddMove (&sm, NULL); } b = buf->GetByte (); if (buf->Status() != OK) { return buf->Status(); } } if (level == 0 && b != ENCODE_END_GAME) { return ERROR_Decode; } if (level > 0 && b != ENCODE_END_MARKER) { return ERROR_Decode; } return buf->Status(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Common tags are encoded in one byte, as a value over 240. // This means that the maximum length of a non-common tag is 240 // bytes, and the maximum number of common tags is 15. // const char * commonTags [255 - MAX_TAG_LEN] = { // 241, 242: Country "WhiteCountry", "BlackCountry", // 243: Annotator "Annotator", // 244: PlyCount "PlyCount", // 245: EventDate (plain text encoding) "EventDate", // 246, 247: Opening, Variation "Opening", "Variation", // 248-250: Setup and Source "Setup", "Source", "SetUp", // 252-254: spare for future use NULL, NULL, NULL, NULL, // 255: Reserved for compact EventDate encoding NULL }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeTags(): // Encodes the non-standard tags. // static errorT encodeTags (ByteBuffer * buf, tagT * tagList, uint numTags) { uint length; for (uint i=0; i < numTags; i++) { char * tag = tagList[i].tag; uint tagnum = 1; const char ** common = commonTags; while (*common != NULL) { if (strEqual (tag, *common)) { buf->PutByte ((byte) MAX_TAG_LEN + tagnum); break; } else { common++; tagnum++; } } if (*common == NULL) { // This is not a common tag. length = strLength (tag); buf->PutByte ((byte) length); buf->PutFixedString (tag, length); } length = strLength (tagList[i].value); buf->PutByte ((byte) length); buf->PutFixedString (tagList[i].value, length); } buf->PutByte (0); return buf->Status(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::DecodeTags(): // Decodes the non-standard tags of the game. // errorT Game::DecodeTags (ByteBuffer * buf, bool storeTags) { byte b; char tag [255]; char value [255]; b = buf->GetByte (); while (b != 0 && buf->Status() == OK) { if (b == 255) { // Special binary 3-byte encoding of EventDate: dateT date = 0; b = buf->GetByte(); date = (date << 8) | b; b = buf->GetByte(); date = (date << 8) | b; b = buf->GetByte(); date = (date << 8) | b; SetEventDate (date); //char dateStr[20]; //date_DecodeToString (date, dateStr); //if (storeTags) { AddPgnTag ("EventDate", dateStr); } } else if (b > MAX_TAG_LEN) { // A common tag name, not explicitly stored: char * ctag = (char *) commonTags[b - MAX_TAG_LEN - 1]; b = buf->GetByte (); buf->GetFixedString (value, b); value[b] = '\0'; if (storeTags) { AddPgnTag (ctag, value); } } else { buf->GetFixedString (tag, b); tag[b] = '\0'; b = buf->GetByte (); buf->GetFixedString (value, b); value[b] = '\0'; if (storeTags) { AddPgnTag (tag, value); } } b = buf->GetByte(); } return buf->Status(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // skipTags(): // Called instead of DecodeTags() to skip over the tags of the // game when decoding it. Called from DecodeStart() since the // nonstandard tags are not needed for searches. // static errorT skipTags (ByteBuffer * buf) { byte b; b = buf->GetByte (); while (b != 0 && buf->Status() == OK) { if (b == 255) { // Special 3-byte binary encoding of EventDate: buf->Skip (3); } else { if (b > MAX_TAG_LEN) { // Do nothing. } else { buf->Skip (b); } b = buf->GetByte (); buf->Skip (b); } b = buf->GetByte(); } return buf->Status (); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // encodeComments(): // Encode the comments of the game. Recurses the moves of the game // and writes the comment whenever a move with a comment is found. // static errorT encodeComments (ByteBuffer * buf, moveT * m, uint * commentCounter) { ASSERT(buf != NULL && m != NULL); while (m->marker != END_MARKER) { if (m->comment != 0) { buf->PutTerminatedString (m->comment); *commentCounter += 1; } if (m->numVariations) { moveT * subVar = m->varChild; for (uint i=0; i < m->numVariations; i++) { encodeComments (buf, subVar, commentCounter); subVar = subVar->varChild; } } m = m->next; } return buf->Status(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // decodeComments(): // Decodes the comments of the game. When decoding the moves, the // comment field of each move that has a comment is marked (made // non-NULL), so this function recurses the movelist and subvariations // and allocates each comment to its move. // static errorT decodeComments (StrAllocator * strAlloc, ByteBuffer * buf, moveT * m) { ASSERT (buf != NULL && m != NULL); while (m->marker != END_MARKER) { if (m->comment != 0) { ASSERT (m->comment == defaultComment); char * str; buf->GetTerminatedString(&str); m->comment = strAlloc->Duplicate (str); } if (m->numVariations) { moveT * subVar = m->varChild; for (uint i=0; i < m->numVariations; i++) { decodeComments (strAlloc, buf, subVar); subVar = subVar->varChild; } } m = m->next; } return buf->Status(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::Encode(): Encode the game to a buffer for disk storage. // If passed a NON-null IndexEntry pointer, it will fill in the // following fields of that index entry, which are computed as // the game is encoded: // - result, ecoCode, whiteElo, blackElo // - promotion flag // - nMoves: the number of halfmoves // - finalMatSig: the material signature of the final position. // - homePawnData: the home pawn change list. // errorT Game::Encode (ByteBuffer * buf, IndexEntry * ie) { ASSERT (buf != NULL); errorT err; buf->Empty(); // First, encode info not already stored in the index // This will be the non-STR (non-"seven tag roster") PGN tags. err = encodeTags (buf, TagList, NumTags); if (err != OK) { return err; } // Now the game flags: byte flags = 0; if (NonStandardStart) { flags += 1; } if (PromotionsFlag) { flags += 2; } if (UnderPromosFlag) { flags += 4; } buf->PutByte (flags); // Now encode the startBoard, if there is one. if (NonStandardStart) { char tempStr [256]; StartPos->PrintFEN (tempStr, FEN_ALL_FIELDS); buf->PutTerminatedString (tempStr); } // Now the movelist: uint varCount = 0; uint nagCount = 0; err = encodeVariation (buf, FirstMove->next, &varCount, &nagCount, 0); if (err != OK) { return err; } // Now do the comments uint commentCount = 0; err = encodeComments (buf, FirstMove, &commentCount); // Set the fields in the IndexEntry: if (ie != NULL) { ie->SetDate (Date); ie->SetEventDate (EventDate); ie->SetResult (Result); ie->SetEcoCode (EcoCode); ie->SetWhiteElo (WhiteElo); ie->SetBlackElo (BlackElo); ie->SetWhiteRatingType (WhiteRatingType); ie->SetBlackRatingType (BlackRatingType); ie->SetStartFlag (NonStandardStart); ie->SetCommentCount (commentCount); ie->SetVariationCount (varCount); ie->SetNagCount (nagCount); ie->SetFlagStr (ScidFlags); // Make the home pawn change list: MakeHomePawnList (ie->GetHomePawnData()); // Set other data updated by MakeHomePawnList(): ie->SetPromotionsFlag (PromotionsFlag); ie->SetUnderPromoFlag (UnderPromosFlag); ie->SetFinalMatSig (FinalMatSig); ie->SetNumHalfMoves (NumHalfMoves); // Find the longest matching stored line for this game: ushort storedLineCode = 0; if (!NonStandardStart) { uint longestMatch = 0; uint storedLineCount = StoredLine::Count(); for (ushort i = 1; i <= storedLineCount; i++) { Game * g = StoredLine::GetGame (i); moveT * gameMove = FirstMove->next; moveT * lineMove = g->FirstMove->next; uint matchLength = 0; while (lineMove->marker != END_MARKER) { if (gameMove->marker == END_MARKER || gameMove->moveData.from != lineMove->moveData.from || gameMove->moveData.to != lineMove->moveData.to) { matchLength = 0; break; } gameMove = gameMove->next; lineMove = lineMove->next; matchLength++; } if (matchLength > longestMatch) { longestMatch = matchLength; storedLineCode = i; } } } ie->SetStoredLineCode (storedLineCode); } // as each game entry length is coded on 17 bits, and game must fit in a block // return an error if there is an overflow if (buf->GetByteCount() > MAX_GAME_LENGTH || buf->GetByteCount() > GF_BLOCKSIZE) { err = ERROR_GameFull; } return err; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::DecodeNextMove(): // Decodes one more mainline move of the game from the bytebuffer. // Used in searches for speed, since it is usually possible to // determine if a game matches the search criteria without decoding // all of it. // If the game flag KeepDecodedMoves is true, the move decodes is // added normally. If it is false, only the current position is // updated and the list of moves is not updated -- this is done // in searches for speed. // Returns OK if a move was found, or ERROR_EndOfMoveList if all the // moves have been decoded. Returns ERROR_Game if some corruption was // detected. // errorT Game::DecodeNextMove (ByteBuffer * buf, simpleMoveT * sm) { ASSERT (buf != NULL); errorT err; byte b; while (1) { b = buf->GetByte (); if (buf->Status() != OK) { return ERROR_Game; } switch (b) { case ENCODE_NAG: // We ignore NAGS but have to read it from the buffer b = buf->GetByte(); break; case ENCODE_COMMENT: // We also ignore comments break; case ENCODE_START_MARKER: // Find the end of this variation and its children uint nestCount; nestCount= 1; while (nestCount > 0) { b = buf->GetByte(); if (buf->Status() != OK) { return ERROR_Game; } if (b == ENCODE_NAG) { buf->GetByte(); } else if (b == ENCODE_START_MARKER) { nestCount++; } else if (b == ENCODE_END_MARKER) { nestCount--; } else if (b == ENCODE_END_GAME) { // Open var at end of game: should never happen! return ERROR_Game; } } break; case ENCODE_END_MARKER: // End marker in main game: error! return ERROR_Game; case ENCODE_END_GAME: // We reached the end of the game: return ERROR_EndOfMoveList; default: // It's a move in the game; decode it: simpleMoveT tempMove; if (!sm) { sm = &tempMove; } err = decodeMove (buf, sm, b, CurrentPos); if (err != OK) { return err; } if (KeepDecodedMoves) { AddMove (sm, NULL); } else { CurrentPos->DoSimpleMove (sm); CurrentPlyCount++; } return OK; } } // We never reach here: ASSERT(0); return ERROR_Game; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::DecodeStart(): // Decodes the starting information from the game's on-disk // representation in the bytebuffer. After this is called, // DecodeNextMove() can be called to decode each successive // mainline move. // errorT Game::DecodeStart (ByteBuffer * buf) { ASSERT (buf != NULL); errorT err = buf->Status(); if (err != OK) { return err; } // First the tags: just skip them for speed. //--// removed due to Gerds Hints //--// NumTags = 0; err = skipTags (buf); if (err != OK) { return err; } // Now the flags: byte flags = buf->GetByte(); if (flags & 1) { NonStandardStart = true; } if (flags & 2) { PromotionsFlag = true; } if (flags & 4) { UnderPromosFlag = true; } // Now decode the startBoard, if there is one. if (NonStandardStart) { char * tempStr; buf->GetTerminatedString (&tempStr); if ((err = buf->Status()) != OK) { NonStandardStart = 0; return err; } if (!StartPos) { StartPos = new Position; } err = StartPos->ReadFromFEN (tempStr); if (err != OK) { NonStandardStart = 0; return err; } CurrentPos->CopyFrom (StartPos); } return err; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Game::Decode(): // Decodes a game from its on-disk representation in a bytebuffer. // Decodes all the information: comments, variations, non-standard // tags, etc, or selectively can ignore comments and/or tags for // speed if the argument "flags" indicates. // errorT Game::Decode (ByteBuffer * buf, byte flags) { ASSERT (buf != NULL); errorT err; Clear(); // First the nonstandard tags: decode or skip them. if (flags & GAME_DECODE_TAGS) { err = DecodeTags (buf, true); } else { err = skipTags (buf); } if (err != OK) { return err; } byte gflags = buf->GetByte(); if (gflags & 1) { NonStandardStart = true; } if (gflags & 2) { PromotionsFlag = true; } if (gflags & 4) { UnderPromosFlag = true; } // Now decode the startBoard, if there is one. if (NonStandardStart) { char * tempStr; buf->GetTerminatedString (&tempStr); if ((err = buf->Status()) != OK) { NonStandardStart = 0; return err; } if (!StartPos) { StartPos = new Position; } err = StartPos->ReadFromFEN (tempStr); if (err != OK) { NonStandardStart = 0; return err; } *CurrentPos = *StartPos; } err = DecodeVariation (buf, flags, 0); if (err != OK) { return err; } // Last of all, decode the comments: if (flags & GAME_DECODE_COMMENTS) { err = decodeComments (StrAlloc, buf, FirstMove); if (err != OK) { return err; } } return buf->Status(); } ////////////////////////////////////////////////////////////////////// // EOF: game.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/pgnparse.cpp0000644000175000017500000011225311727223076016553 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: pgnparse.cpp // PgnParser class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2001-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "pgnparse.h" const uint MAX_COMMENT_SIZE = 16000; // ADDCHAR() macro: Adds one character to a buffer and increments the // buffer pointer. // #define ADDCHAR(buf,ch) *(buf) = (ch); (buf)++; *(buf) = 0 void PgnParser::Init () { ErrorBuffer = new DString; Reset(); } void PgnParser::Reset() { UnGetCount = 0; NumErrors = 0; BytesSeen = 0; #ifndef WINCE ErrorFile = NULL; #endif LineCounter = 0; StorePreGameText = true; EndOfInputWarnings = true; ResultWarnings = true; NewlinesToSpaces = true; NumIgnoredTags = 0; } void PgnParser::Init (MFile * infile) { Init(); InFile = infile; InBuffer = InCurrent = NULL; EndChar = EOF; } void PgnParser::Reset (MFile * infile) { Reset(); InFile = infile; InBuffer = InCurrent = NULL; EndChar = EOF; } void PgnParser::Init (const char * inbuffer) { Init(); InFile = NULL; InBuffer = InCurrent = inbuffer; EndChar = 0; } void PgnParser::Reset (const char * inbuffer) { Reset(); InFile = NULL; InBuffer = InCurrent = inbuffer; EndChar = 0; } void PgnParser::AddIgnoredTag (const char * tag) { if (NumIgnoredTags >= MAX_IGNORED_TAGS) { return; } if (tag == NULL || tag[0] == 0) { return; } IgnoredTags [NumIgnoredTags] = strDuplicate (tag); NumIgnoredTags++; } void PgnParser::ClearIgnoredTags () { for (uint i = 0; i < NumIgnoredTags; i++) { #ifdef WINCE my_Tcl_Free( IgnoredTags[i] ); #else delete[] IgnoredTags[i]; #endif } NumIgnoredTags = 0; } bool PgnParser::IsIgnoredTag (const char * tag) { for (uint i = 0; i < NumIgnoredTags; i++) { if (strEqual (tag, IgnoredTags[i])) { return true; } } return false; } void PgnParser::LogError (const char * errMessage, const char * text) { NumErrors++; #ifdef WINCE // if (ErrorFile != NULL) { //fprintf (ErrorFile, "%s%s [line %u]\n", errMessage, text, LineCounter); if (InFile != NULL) { printf ("%s:", InFile->GetFileName()); } printf ("%u: %s%s\n", LineCounter, errMessage, text); return; // } #else if (ErrorFile != NULL) { //fprintf (ErrorFile, "%s%s [line %u]\n", errMessage, text, LineCounter); if (InFile != NULL) { fprintf (ErrorFile, "%s:", InFile->GetFileName()); } fprintf (ErrorFile, "%u: %s%s\n", LineCounter, errMessage, text); return; } #endif if (InFile != NULL) { ErrorBuffer->Append (InFile->GetFileName(), ":"); } ErrorBuffer->Append (LineCounter, ": "); ErrorBuffer->Append (errMessage, text, "\n"); } void PgnParser::GetLine (char * buffer, uint bufSize) { ASSERT (bufSize > 0); while (true) { int ch = GetChar(); if (ch == EndChar || ch == 10) { break; } if (ch == 13) { // Handle ascii-13 followed by ascii-10 as a single newline: ch = GetChar(); if (ch != 10) { UnGetChar (ch); } break; } bufSize--; if (bufSize == 0) { break; } *buffer++ = ch; } *buffer = 0; return; } // If STANDARD_PLAYER_NAMES is defined, then player names are // processed with a simple algorithm before adding to the name base, // to reduce multiple instances of the same player. First, the // number of spaces after a comma is made consistent (the default // is one space; see NUM_SPACES_AFTER_COMMA). Second, a dot (".") at // the END of the name string is removed. #define STANDARD_PLAYER_NAMES // NUM_SPACES_AFTER_COMMA: number of spaces to follow every comma in // a player name, when standardising. Commom values are 0 and 1. #define NUM_SPACES_AFTER_COMMA 1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // standardDutchName(): standardises various combinations of upper // and lower case "v" and "d" in the common Dutch name // prefixes "van der", "van de" and "van den" to a capital // V and small d, for consisitency to avoid multiple names. // static void standardDutchName (char * s) { if (*s != 'v' && *s != 'V') { return; } if (strIsPrefix ("van ", s)) { s[0] = 'V'; } if (strIsPrefix ("Van Der ", s) || strIsPrefix ("Van Den ", s) || strIsPrefix ("Van De ", s)) { s[4] = 'd'; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // standardPlayerName(): standardises player names to reduce the number // of different names referring to the same player. Algorithm: // (1) The number of spaces after a comma is standardised, to // NUM_SPACES_AFTER_COMMA spaces. // (2) Spaces and dots are removed from the END of the name. // So "Anand,V" "Anand, V" and "Anand, V." would all become "Anand, V" // static void standardPlayerName (char * source) { char tempName [1024]; strCopy (tempName, source); char * from = tempName; char * to = source; int afterComma = 0; bool startSpaces = true; while (*from) { if (*from == ',') { *to++ = ','; afterComma = 1; startSpaces = false; } else if (*from == ' ') { if (!afterComma && !startSpaces) { // Not after a ',' or at start of name, so add the space: *to++ = ' '; } } else { // any other character: startSpaces = false; if (afterComma) { // First, insert spaces after the comma: uint x = NUM_SPACES_AFTER_COMMA; while (x > 0) { *to++ = ' '; x--; } } *to = *from; to++; afterComma = 0; } from++; } *to = 0; // Now trim any trailling spaces, tabs : strTrimRight (source, " \t"); // Now standardise the capital letters of Dutch/etc prefix names: standardDutchName(source); return; } errorT PgnParser::ExtractPgnTag (const char * buffer, Game * game) { const uint maxTagLength = 255; char tag [255]; char value [255]; // Skip any initial whitespace: while (charIsSpace(*buffer) && *buffer != 0) { buffer++; } // Skip the '[' character and any whitespace: ASSERT (*buffer == '['); buffer++; while (charIsSpace(*buffer) && *buffer != 0) { buffer++; } // Now at the start of the tag name: uint length = 0; while (!charIsSpace(*buffer) && *buffer != 0) { tag[length] = *buffer++; length++; if (length == maxTagLength) { return ERROR_PGNTag; } } if (*buffer == 0) { return ERROR_PGNTag; } tag[length] = 0; // Find the start of the tag value: while (*buffer != '"' && *buffer != 0) { buffer++; } if (*buffer != '"') { return ERROR_PGNTag; } buffer++; // Find the end of the tag value: it is the last double-quote (") // on this line. length = 0; uint lastQuoteIndex = 0; bool seenEndQuote = false; while (*buffer != 0) { if (*buffer == '"') { lastQuoteIndex = length; seenEndQuote = true; } value[length] = *buffer; buffer++; length++; if (length == maxTagLength) { return ERROR_PGNTag; } } if (! seenEndQuote) { return ERROR_PGNTag; } value[lastQuoteIndex] = 0; // Now decide what to add to the game based on this tag: if (strEqual (tag, "White")) { #ifdef STANDARD_PLAYER_NAMES standardPlayerName (value); #endif // Check for a rating in parentheses at the end of the player name: uint elo = 0; uint len = strLength (value); if (len > 7 && value[len-1] == ')' && isdigit(value[len-2]) && isdigit(value[len-3]) && isdigit(value[len-4]) && isdigit(value[len-5]) && value[len-6] == '(' && value[len-7] == ' ') { value[len-7] = 0; elo = strGetUnsigned (&(value[len-5])); if (elo > MAX_ELO) { LogError ("Warning: rating too large: ", value); elo = MAX_ELO; } game->SetWhiteElo (elo); game->SetWhiteRatingType (RATING_Elo); } game->SetWhiteStr (value); } else if (strEqual (tag, "Black")) { #ifdef STANDARD_PLAYER_NAMES standardPlayerName (value); #endif // Check for a rating in parentheses at the end of the player name: uint elo = 0; uint len = strLength (value); if (len > 7 && value[len-1] == ')' && isdigit(value[len-2]) && isdigit(value[len-3]) && isdigit(value[len-4]) && isdigit(value[len-5]) && value[len-6] == '(' && value[len-7] == ' ') { value[len-7] = 0; elo = strGetUnsigned (&(value[len-5])); if (elo > MAX_ELO) { LogError ("Warning: rating too large: ", value); elo = MAX_ELO; } game->SetBlackElo (elo); game->SetBlackRatingType (RATING_Elo); } game->SetBlackStr (value); } else if (strEqual (tag, "Event")) { game->SetEventStr (value); } else if (strEqual (tag, "Site")) { game->SetSiteStr (value); } else if (strEqual (tag, "Round")) { game->SetRoundStr (value); } else if (strEqual (tag, "Result")) { if (strIsPrefix ("0-1", value)) { game->SetResult (RESULT_Black); } else if (strIsPrefix ("1-0", value)) { game->SetResult (RESULT_White); } else if (strIsPrefix ("1/2", value)) { game->SetResult (RESULT_Draw); } else { game->SetResult (RESULT_None); } } else if (strEqual (tag, "Date")) { game->SetDate (date_EncodeFromString (value)); } else if (strEqual (tag, "EventDate")) { game->SetEventDate (date_EncodeFromString (value)); } else if (strEqual (tag, "ECO")) { game->SetEco (eco_FromString (value)); } else if (strEqual (tag, "ScidFlags")) { game->SetScidFlags (value); } else if (strEqual (tag, "FEN")) { if (game->SetStartFen (value) != OK) { LogError ("Error: Invalid FEN: ", value); return ERROR_InvalidFEN; } } else { // Look for Rating Types: only the first Rating type found for // each player is added as the rating. Any extra ratings are // just added as normal tags. bool isRatingType = false; if (strIsPrefix ("White", tag) && game->GetWhiteElo() == 0) { char * tagSuffix = tag + 5; uint i = 0; while (ratingTypeNames[i] != NULL) { if (strEqual (tagSuffix, ratingTypeNames[i])) { uint elo = strGetUnsigned (value); if (elo > MAX_ELO) { LogError ("Warning: rating too large: ", value); elo = MAX_ELO; } game->SetWhiteElo (elo); game->SetWhiteRatingType (i); isRatingType = true; break; } i++; } } if (strIsPrefix ("Black", tag) && game->GetBlackElo() == 0) { char * tagSuffix = tag + 5; uint i = 0; while (ratingTypeNames[i] != NULL) { if (strEqual (tagSuffix, ratingTypeNames[i])) { uint elo = strGetUnsigned (value); if (elo > MAX_ELO) { LogError ("Warning: rating too large: ", value); elo = MAX_ELO; } game->SetBlackElo (elo); game->SetBlackRatingType (i); isRatingType = true; break; } i++; } } if (! isRatingType && ! IsIgnoredTag (tag)) { game->AddPgnTag (tag, value); } } return OK; } bool PgnParser::EndOfInput() { if (InFile != NULL) { return InFile->EndOfFile(); } int ch = GetChar(); if (ch == EndChar) { return true; } UnGetChar (ch); return false; } void PgnParser::GetComment (char * buffer, uint bufSize) { char * outPtr = buffer; int ch; int startLine = LineCounter; ch = GetChar(); while (ch != EndChar && ch != '}') { if (NewlinesToSpaces && ch == '\n') { ch = ' '; } if (bufSize > 0) { *outPtr++ = (char) ch; bufSize--; } ch = GetChar(); } if (buffer) { *outPtr = 0; } if (ch == EndChar) { char tempStr[80]; sprintf (tempStr, "started on line %u\n", startLine); LogError ("Error: Open Comment at end of input", tempStr); } } void PgnParser::GetRestOfSuffix (char * buffer, char firstChar) { if (firstChar == '!' || firstChar == '?') { int ch = GetChar(); // Only get successive ! or ? characters, so a complex // annotation like "!!+-" can be parsed as two separate // entities, "!!" and "+-": while (ch == '!' || ch == '?') { *buffer++ = ch; ch = GetChar(); } UnGetChar (ch); *buffer = 0; } else { // Some other Suffix like "+/-" so just get rest of word: GetRestOfWord_NoDots (buffer); } } void PgnParser::GetRestOfWord_NoDots (char * buffer) { int ch = GetChar(); while (!charIsSpace (ch) && ch != '.' && ch != ')' && ch != EndChar) { *buffer++ = ch; ch = GetChar(); } UnGetChar (ch); *buffer = 0; } void PgnParser::GetRestOfWord_WithDots (char * buffer) { int ch = GetChar(); while (!charIsSpace (ch) && ch != ')' && ch != EndChar) { *buffer++ = ch; ch = GetChar(); } UnGetChar (ch); *buffer = 0; } void PgnParser::GetRestOfWord_Letters (char * buffer) { int ch = GetChar(); while (isalpha(ch)) { *buffer++ = ch; ch = GetChar(); } UnGetChar (ch); *buffer = 0; } tokenT PgnParser::GetRestOfCastling (char * buffer) { int ch; int numOhsSeen = 1; while (true) { ch = GetChar(); if (ch == 'O' || ch == 'o' || ch == '0') { numOhsSeen++; ADDCHAR (buffer, ch); continue; } if (ch == '-') { // Check for "-+" or "-/+" after the move: int nextCh = GetChar(); UnGetChar (nextCh); if (nextCh == '+' || nextCh == '/') { // Seen "-+" or "-/+", e.g. "O-O-+" UnGetChar (ch); break; } ADDCHAR (buffer, ch); continue; } if (charIsSpace(ch) || ch == '+' || ch == '#' || ch == '=' || ch == '!' || ch == '?' || ch == ')' || ch == EndChar) { UnGetChar (ch); switch (numOhsSeen) { case 2: return TOKEN_Move_Castle_King; case 3: return TOKEN_Move_Castle_Queen; default: return TOKEN_Invalid; } } break; } // If we reach here, it is not a valid castling move: GetRestOfWord_WithDots (buffer); return TOKEN_Invalid; } tokenT PgnParser::GetRestOfMove (char * buffer) { int moveLength = 1; int ch; while (true) { ch = GetChar(); if (charIsSpace(ch)) { UnGetChar (ch); return (moveLength == 1 ? TOKEN_Suffix : TOKEN_Move_Piece); } if ((ch >= '1' && ch <= '8') || (ch >= 'a' && ch <= 'h')) { ADDCHAR (buffer, ch); moveLength++; continue; } if (ch == '-') { // Check for "-+" or "-/+" after the move: int nextCh = GetChar(); UnGetChar (nextCh); if (nextCh == '+' || nextCh == '/') { // Seen "-+" or "-/+", e.g. "Bb5-+" UnGetChar (ch); break; } // Otherwise, just ignore "-" in a move: moveLength++; continue; } if (ch == 'x' || ch == ':') { // We allow ":" as a capture as well as "x". moveLength++; continue; } if (ch == ')' || ch == '+' || ch == '!' || ch == '=' || ch == '?' || ch == '#' || ch == EndChar) { // Put c back into the infile buffer for next token. UnGetChar (ch); return (moveLength == 1 ? TOKEN_Suffix : TOKEN_Move_Piece); } break; } // If we get here, it is an invalid Move character: return TOKEN_Invalid; } tokenT PgnParser::GetRestOfPawnMove (char * buffer) { int ch; bool seenDigit = false; // First, check for "ep" or "e.p." on its own, not a move at all: if (*(buffer-1) == 'e') { ch = GetChar (); UnGetChar (ch); if (ch == 'p' || ch == '.') { GetRestOfWord_WithDots (buffer); return TOKEN_Ignore; } } while (true) { ch = GetChar (); if (charIsSpace (ch)) { UnGetChar (ch); return TOKEN_Move_Pawn; } // Check for "ep" or "e.p." after a digit: if (seenDigit) { if (ch == 'e') { char nextCh = GetChar (); UnGetChar (nextCh); if (nextCh == 'p' || nextCh == 'p') { continue; } } if (ch == 'p' || ch == '.') { continue; } } if (ch >= '1' && ch <= '8') { seenDigit = true; ADDCHAR (buffer, ch); continue; } if (ch >= 'a' && ch <= 'h') { ADDCHAR (buffer, ch); continue; } if (ch == '-') { // Check for "-+" or "-/+" after the move: int nextCh = GetChar(); UnGetChar (nextCh); if (nextCh == '+' || nextCh == '/') { // Seen "-+" or "-/+", e.g. "e4-+" UnGetChar (ch); return TOKEN_Move_Pawn; } // Otherwise, just ignore "-" in a move: continue; } if (ch == 'x' || ch == ':') { // Omit capture symbols, etc: continue; } if (ch == '=') { // A promotion! ch = GetChar(); // Convert "K" for promoted piece from King to Knight: //if (ch == 'K') { ch = 'N'; } if (ch == 'Q' || ch == 'R' || ch == 'B' || ch == 'N') { ADDCHAR (buffer, '='); ADDCHAR (buffer, ch); return TOKEN_Move_Promote; } else { // OK, the "=" is NOT a promotion, but may be part of // a symbol like "e4=" or "e4=+" so put it back: UnGetChar (ch); UnGetChar ('='); return TOKEN_Move_Pawn; } } // Convert "K" for promoted piece from King to Knight: //if (ch == 'K') { ch = 'N'; } if (ch == 'Q' || ch == 'R' || ch == 'B' || ch == 'N') { // Promotion with the "=" sign missing. We insert it. ADDCHAR (buffer, '='); ADDCHAR (buffer, ch); return TOKEN_Move_Promote; } if (ch == ')' || ch == '+' || ch == '!' || ch == '?' || ch == '#' || ch == EndChar) { UnGetChar (ch); return TOKEN_Move_Pawn; } break; } // If we reach here, it is an invalid move: return TOKEN_Invalid; } tokenT PgnParser::GetGameToken (char * buffer, uint bufSize) { char * buf = buffer; int ch = GetChar(); if (ch == EndChar) { return TOKEN_EndOfInput; } // Read past any whitespace, dots and newlines. while ((charIsSpace(ch) || (ch == '.'))) { ch = GetChar(); if (ch == EndChar) { return TOKEN_EndOfInput; } } ADDCHAR (buf, ch); // Now try to figure out what sort of token we have... if (isdigit(ch)) { // MoveNumber, or result, or invalid int allDigits = 1; // Set to zero when a non-digit is found. GetRestOfWord_NoDots (buf); char *temp = buffer; // Verify if token is all digits, or could be a result: while (*temp) { if (! isdigit(*temp)) { allDigits = 0; break; } temp++; } if (allDigits) { // Token was all digits. // We should just return TOKEN_MoveNum now, unless we // want to check for the ugly "00" and "000" (with zeroes) for // castling. PGN input that bad doesn't deserve to get accepted! return TOKEN_MoveNum; } // Now we check each acceptable result string. // Note that we also check for the awful "0-0" (castling with zeroes // instead of big-Ohs) although it is BAD PGN input. if (*buffer == '0') { // token starts with '0' if (strEqual (buffer, "0-1")) { return TOKEN_Result_Black; } if (strEqual (buffer, "0:1")) { return TOKEN_Result_Black; } if (strIsPrefix ("0-0-0", buffer)) { return TOKEN_Move_Castle_Queen; } if (strIsPrefix ("000", buffer)) { return TOKEN_Move_Castle_Queen; } if (strIsPrefix ("0-0", buffer)) { return TOKEN_Move_Castle_King; } if (strIsPrefix ("00", buffer)) { return TOKEN_Move_Castle_King; } } else if (*buffer == '1') { // token starts with '1' if (strEqual (buffer, "1-0")) { return TOKEN_Result_White; } if (strEqual (buffer, "1:0")) { return TOKEN_Result_White; } if (strEqual (buffer, "1/2")) { return TOKEN_Result_Draw; } if (strEqual (buffer, "1/2-1/2")) { return TOKEN_Result_Draw; } if (strEqual (buffer, "1/2:1/2")) { return TOKEN_Result_Draw; } } // If we get here, it must be invalid (Not a move number or a result) return TOKEN_Invalid; } // Now we check for Moves. if (ch >= 'a' && ch <= 'h') { // Pawn move. return GetRestOfPawnMove (buf); } if (ch == 'P') { // Treat "P..." as a pawn move, ignoring the initial "P": buf = buffer; ADDCHAR (buf, GetChar()); return GetRestOfPawnMove (buf); } if (ch == 'N' || ch == 'B' || ch == 'R' || ch == 'Q' || ch == 'K') { return GetRestOfMove (buf); } if (ch == 'O' || ch == 'o') { //letter "O": must be Castling or invalid return GetRestOfCastling (buf); } // Check for null move: if (ch == 'n') { GetRestOfWord_Letters (buf); if (strEqual (buffer, "null")) { return TOKEN_Move_Null; } return TOKEN_Invalid; } // Now we check for other tokens....... if (ch == ';' || ch == '%') { // LineComment. "%" should only mark a comment if at the start of // the line, but we allow it anywhere on a line. GetLine (buf, bufSize-1); return TOKEN_LineComment; } if (ch == '{') { // regular comment. We let caller read until a "}". return TOKEN_Comment; } if (ch == '}') { // Close-brace outside a comment. Should not happen. return TOKEN_CommentEnd; } if (ch == '(') { // variation. We let caller parse it out. return TOKEN_VarStart; } if (ch == ')') { return TOKEN_VarEnd; } if (ch == '!' || ch == '?' || ch == '=' || ch == '-') { // Suffix GetRestOfSuffix (buf, ch); // Treat the sequence "--" as a null move: if (strEqual (buffer, "--")) { return TOKEN_Move_Null; } return TOKEN_Suffix; } if (ch == '$') { // NAG GetRestOfWord_NoDots (buf); return TOKEN_Nag; } if (ch == '+' || ch == '#') { // Check or mate or invalid tokenT t = (ch == '+' ? TOKEN_Check : TOKEN_Mate); // Can be followed by: space, !, ? or $. So peek at next input char char nextc = GetChar(); // If "+" is followed by another "+", treat it as a double-check: if (ch == '+' && nextc == '+') { return t; } UnGetChar (nextc); if (charIsSpace(nextc) || nextc == '!' || nextc == '?' || nextc == '$' || nextc == ')' || nextc == EndChar) { return t; // Token was a valid "+" or "#". } // If we get here, token looks invalid. // It could be a suffix, e.g. "+=", so return as that: GetRestOfSuffix (buf, ch); return TOKEN_Suffix; } if (ch == '*') { // "*" (Result). Must be followed by whitespace. GetRestOfWord_NoDots (buf); if (buf[0] != '\0') { // We have a word with more than just "*" return TOKEN_Invalid; } return TOKEN_Result_Star; } if (ch == '[') { // Tag! This shouldn't happen! But return TOKEN_Tag. // Put the '[' back so it can be read as a tag of the next game: UnGetChar (ch); return TOKEN_Tag; } if (ch == 'D') { // Diagram symbol: GetRestOfWord_NoDots (buf); return TOKEN_Nag; } if (ch == '~') { // "Unclear" annotation symbol: GetRestOfSuffix (buf, ch); return TOKEN_Suffix; } // Convert Z0 to Null Move (thanks to Marcin Kasperski) if (ch == 'Z') { // Z0 - nullmove in CA notation int nextCh = GetChar(); if (nextCh == '0') return TOKEN_Move_Null; UnGetChar(nextCh); } // If we get down this far, the first character of our token is invalid. // Probably a letter like C or z, or punctuation or nonprintable. GetRestOfWord_WithDots (buf); // Any other null-move notations to be checked for here? return TOKEN_Invalid; } static inline char * firstNonBlank (char * s) { register char *x = s; while (*x) { if (! charIsSpace(*x)) { return x; } x++; } return x; } tokenT PgnParser::GetNextToken (char * buffer, uint bufSize) { if (ParseMode == PARSE_Header) { if (EndOfInput()) { return TOKEN_EndOfInput; } // We want to read a while line, but first we need to // peek at the first character of the line to see if // we are past the tags and already at the moves. // If this happens, it means there was no blank line // between the tags and the moves which is not good PGN, // but it is very common we need to accept it. char * buf = buffer; int ch = GetChar(); ADDCHAR (buf,ch); if (ch == EndChar) { return TOKEN_EndOfInput; } // Read past any whitespace, dots and newlines. // but preserve them in buffer. while ((charIsSpace(ch) || (ch == '.'))) { ch = GetChar(); ADDCHAR (buf, ch); if (ch == EndChar) { return TOKEN_EndOfInput; } } if ((ch == '%')||(ch ==';')) { GetLine (buf, bufSize-(buf-buffer)); return TOKEN_LineComment; } if (ch == '[') { GetLine (buf, bufSize-(buf-buffer)); return TOKEN_Tag; } if (ch == '\0') { return TOKEN_TagEnd; } // We've got the start of the moves. UnGetChar (ch); return TOKEN_TagEnd; } // End of Header Mode if (ParseMode == PARSE_Searching) { // Looking for first Header Tag of game. In this mode, nothing is // invalid. Lines without a PGN Header Tag are treated as a Line // Comment, even if they don't start with "%" or ";". if (EndOfInput()) { return TOKEN_EndOfInput; } GetLine (buffer, bufSize); char * s = firstNonBlank (buffer); if (*s == '[') { return TOKEN_Tag; } return TOKEN_LineComment; } // End of Searching mode. // If we reach here, we are in Game mode, the most complex. return GetGameToken (buffer, bufSize); } errorT PgnParser::ParseMoves (Game * game) { #ifdef WINCE char * buffer = my_Tcl_Alloc(sizeof( char [MAX_COMMENT_SIZE])); errorT err = ParseMoves (game, buffer, MAX_COMMENT_SIZE); my_Tcl_Free( buffer ); #else char * buffer = new char [MAX_COMMENT_SIZE]; errorT err = ParseMoves (game, buffer, MAX_COMMENT_SIZE); delete[] buffer; #endif return err; } errorT PgnParser::ParseMoves (Game * game, char * buffer, uint bufSize) { errorT err = OK; uint moveErrorCount = 0; const uint maxMoveErrorsPerGame = 1; uint commentErrorCount = 0; const uint maxCommentErrorsPerGame = 1; simpleMoveT sm; byte nag; // Uncomment next line to allow castling after King or Rook have moved: // game->GetCurrentPos()->SetStrictCastling (false); ParseMode = PARSE_Game; tokenT token = GetNextToken (buffer, bufSize); while (! TOKEN_isResult(token)) { switch (token) { case TOKEN_Move_Pawn: case TOKEN_Move_Promote: case TOKEN_Move_Piece: case TOKEN_Move_Castle_King: case TOKEN_Move_Castle_Queen: case TOKEN_Move_Null: err = game->GetCurrentPos()->ReadMove (&sm, buffer, token); // The most common type of "illegal" move in standard // chess is castling when the king or rook have already // moved. So if a castling move failed, turn off // strict checking of castling rights and try again, // but still print a warning if that succeeded: if (err != OK && (token == TOKEN_Move_Castle_King || token == TOKEN_Move_Castle_Queen)) { bool prevFlag = game->GetCurrentPos()->GetStrictCastling(); game->GetCurrentPos()->SetStrictCastling (false); err = game->GetCurrentPos()->ReadMove (&sm, buffer, token); game->GetCurrentPos()->SetStrictCastling (prevFlag); // If no longer an error, castling without strict checking // worked, but still print a warning about it: if (err == OK) { char tempStr[500]; sprintf (tempStr, "(%s) in game %s - %s, %u", buffer, game->GetWhiteStr(), game->GetBlackStr(), date_GetYear (game->GetDate())); LogError ("Warning: illegal castling ", tempStr); } } if (err == OK && moveErrorCount == 0) { err = game->AddMove (&sm, NULL); } // Report an error if the move could not be added: if (err != OK) { moveErrorCount++; if (moveErrorCount <= maxMoveErrorsPerGame) { char tempStr [500]; // Add an error comment to the game: sprintf (tempStr, "Error reading move: %s", buffer); game->SetMoveComment (tempStr); sprintf (tempStr, "Error reading move in game %s - %s, %u: ", game->GetWhiteStr(), game->GetBlackStr(), date_GetYear (game->GetDate())); LogError (tempStr, buffer); } } break; case TOKEN_Ignore: case TOKEN_MoveNum: case TOKEN_Check: case TOKEN_Mate: break; // Move numbers, check and made symbols: just ignore. case TOKEN_Nag: nag = game_parseNag (buffer); if (moveErrorCount == 0) { game->AddNag (nag); } break; case TOKEN_Suffix: nag = game_parseNag (buffer); if (nag == 0) { LogError ("Warning: Invalid annotation symbol: ", buffer); } else { if (moveErrorCount == 0) { game->AddNag (nag); } } break; case TOKEN_VarStart: if (game->AddVariation() != OK) { LogError ("Error: Unable to add variation", ""); return ERROR_Game; } break; case TOKEN_VarEnd: game->MoveExitVariation(); game->MoveForward(); break; case TOKEN_Comment: GetComment (buffer, MAX_COMMENT_SIZE); strSingleSpace (buffer); game->SetMoveComment (buffer); break; case TOKEN_LineComment: break; // Line comments inside a game are just ignored. case TOKEN_CommentEnd: if (commentErrorCount < maxCommentErrorsPerGame) { char tempStr [500]; snprintf (tempStr, sizeof(tempStr), " in game %s - %s, %u: ", game->GetWhiteStr(), game->GetBlackStr(), date_GetYear (game->GetDate())); LogError ("Warning: \"}\" seen outside a comment", tempStr); commentErrorCount++; } break; case TOKEN_Tag: LogError ("Error: PGN Header tag seen inside a game", ""); return ERROR_Game; case TOKEN_EndOfInput: if (EndOfInputWarnings) { LogError ("Warning: End of input reached in a game", ""); return ERROR_Game; } else { return OK; } default: LogError ("Error: Unexpected symbol: ", buffer); } token = GetNextToken (buffer, bufSize); } // Now the token value is the game result: resultT r = RESULT_None; switch (token) { case TOKEN_Result_White: r = RESULT_White; break; case TOKEN_Result_Black: r = RESULT_Black; break; case TOKEN_Result_Draw: r = RESULT_Draw; break; default: r = RESULT_None; } // Verify the result matches that from the header: if (r != game->GetResult()) { // Use the end-of-game result instead of the header tag result: game->SetResult (r); if (ResultWarnings) { LogError ("Warning: Result did not match the header result", ""); } } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PgnParser::ParseGame(): // Parses the next game from the input source. // Returns: OK if a game was found and free of fatal errors; // ERROR_NotFound if no game was found; // or some other appropriate error code upon error. // errorT PgnParser::ParseGame (Game * game) { #ifdef WINCE char * buffer = my_Tcl_Alloc(sizeof( char [MAX_COMMENT_SIZE])); uint preGameTextLength = 0; char * preGameTextBuffer = my_Tcl_Alloc(sizeof(char [MAX_COMMENT_SIZE])); #else char * buffer = new char [MAX_COMMENT_SIZE]; uint preGameTextLength = 0; char * preGameTextBuffer = new char [MAX_COMMENT_SIZE]; #endif errorT err = ERROR_NotFound; ParseMode = PARSE_Searching; tokenT token = GetNextToken (buffer, MAX_COMMENT_SIZE); while (token != TOKEN_EndOfInput) { if (TOKEN_isTag (token)) { // Found a PGN Header tag, e.g. [Event "..."] if (ParseMode == PARSE_Searching) { // This is the first tag of a new game: game->Clear(); if (StorePreGameText && preGameTextLength > 0 && ! strIsAllWhitespace (preGameTextBuffer)) { // Remove last newline and store pre-game comment: preGameTextBuffer[preGameTextLength-1] = 0; game->SetMoveComment (preGameTextBuffer); } ParseMode = PARSE_Header; } if (ExtractPgnTag (buffer, game) != OK) { LogError ("Error reading tag: ", buffer); } } else if (token == TOKEN_LineComment) { // Add the line to the pre-game text if necessary: if (preGameTextLength > 0 || buffer[0] != 0) { uint len = strLength (buffer); if (preGameTextLength + len < MAX_COMMENT_SIZE) { strCopy (&(preGameTextBuffer[preGameTextLength]), buffer); preGameTextLength += len; preGameTextBuffer[preGameTextLength] = '\n'; preGameTextLength++; } } } else if (token == TOKEN_Comment) { // Get, but ignore, this comment: GetComment (NULL, 0); } else if (token == TOKEN_TagEnd) { // A blank line after the PGN header tags: ParseMode = PARSE_Game; err = ParseMoves (game, buffer, MAX_COMMENT_SIZE); break; } else { // Any other token is invalid here: LogError ("Warning: Invalid text in PGN game header: ", buffer); } token = GetNextToken (buffer, MAX_COMMENT_SIZE); } #ifdef WINCE my_Tcl_Free( buffer ); my_Tcl_Free( preGameTextBuffer ); #else delete[] buffer; delete[] preGameTextBuffer; #endif if (ParseMode == PARSE_Header) { if (EndOfInputWarnings) { LogError ("Warning: End of input in PGN header tags section", ""); err = ERROR_Game; } else { err = OK; } } return err; } ////////////////////////////////////////////////////////////////////// // EOF: pgnparse.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/mtbdata.h0000644000175000017500000076316311727223076016031 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: mtbdata.h // Memory tablebases // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // This file was automatically generated by the program mtbgen.cpp. // It contains selected compressed tablebase data used by the endgame // recognition code in the Scidlet chess engine. #ifndef SCID_MTBDATA_H #define SCID_MTBDATA_H ////////////////////////////////////////////////////////////////////// // // KQK static const byte mtbdata_KQK[5954] = { 1,72,0,159,0,46,16,17,15,13,34,34,0,34,36,34,50,51,35,34,51,76,35,51, 192,1,50,35,208,0,151,1,51,44,51,67,68,5,52,207,0,1,0,85,11,85,69,68, 84,85,0,69,111,1,5,0,101,102,86,101,102,1,86,133,31,1,2,103,102,118, 119,0,103,133,31,1,15,51,23,17,33,18,191,32,10,68,216,226,29,143,32, 5,0,52,227,32,63,5,68,68,98,69,68,146,32,63,5,85,85,86,209,32,62,102, 118,87,15,8,114,15,7,191,56,14,159,0,5,143,33,218,1,34,34,18,144,26, 205,0,98,60,160,29,50,51,79,79,143,64,10,79,12,160,17,66,145,52,148, 21,34,50,147,1,35,34,50,221,162,20,244,2,143,4,2,35,72,128,28,79,13, 51,254,128,32,207,0,0,15,115,132,16,159,0,7,136,20,141,117,125,255, 52,144,1,127,11,143,8,14,143,32,98,143,12,5,150,0,28,191,201,145,31, 2,69,208,1,15,11,143,8,14,15,30,143,32,46,255,60,158,0,143,12,1,242, 2,128,11,79,6,177,178,198,9,251,143,20,14,63,78,143,32,14,63,5,150, 0,31,37,103,226,206,192,31,9,143,8,14,31,81,1,80,0,159,0,79,51,15,13, 67,68,68,216,52,209,0,5,51,183,1,3,85,85,48,69,85,85,224,0,15,2,101, 102,102,22,102,118,119,87,130,1,119,192,0,52,67,118,103,241,2,102,103, 102,119,34,233,0,161,1,228,1,35,120,18,135,136,63,15,83,34,34,161,29, 209,0,29,5,143,32,9,71,229,32,102,199,32,101,86,102,177,30,192,2,114, 98,86,149,1,79,9,127,10,24,17,64,1,18,34,17,18,33,33,34,18,37,80,18, 18,128,1,34,17,192,0,18,215,161,3,5,221,1,33,154,2,34,15,11,143,32, 49,79,200,64,101,160,30,101,85,16,6,31,31,128,195,32,19,40,34,34,68, 51,50,1,50,51,50,35,35,34,50,34,58,128,1,50,35,241,1,194,0,81,35,131, 4,191,34,84,34,80,48,160,2,95,12,1,248,39,143,32,22,184,97,95,13,153, 0,95,43,56,51,14,51,85,68,68,84,174,14,226,14,0,222,53,137,20,15,1, 52,143,4,33,225,13,144,12,127,4,255,69,176,0,196,0,247,31,137,32,68, 111,11,129,128,142,128,129,15,17,72,68,68,193,73,137,74,136,140,63, 102,102,70,131,4,159,0,7,240,20,127,2,198,2,247,47,2,241,23,213,2,143, 8,3,176,60,86,192,0,47,7,126,144,8,86,199,32,143,32,1,225,31,86,241, 29,95,7,63,88,85,85,209,167,152,168,165,8,134,140,206,3,254,241,3,143, 4,13,143,8,14,150,14,31,7,148,8,4,143,20,0,240,118,15,13,139,32,158, 0,5,104,102,102,255,136,240,1,193,0,92,133,200,95,36,21,95,6,192,149, 2,143,12,38,31,49,1,64,0,144,0,68,68,52,68,84,64,69,68,2,85,69,84,85, 69,131,68,209,1,85,84,84,69,85,211,2,4,15,104,84,85,85,85,102,179,1, 100,128,102,225,1,68,68,86,101,68,84,0,100,85,68,100,69,86,68,100,48, 86,100,102,0,244,3,102,84,101,24,102,102,100,70,192,0,162,0,70,118, 12,100,118,102,116,119,64,192,25,85,17,85,117,119,119,0,102,101,86, 4,129,1,117,136,101,134,86,16,103,64,133,136,50,50,51,67,68,52,32,67, 68,36,144,33,36,52,67,52,3,35,52,68,67,36,52,68,192,1,55,223,28,83, 34,34,129,16,240,13,66,127,0,131,4,211,231,33,193,25,135,32,85,34,51, 51,240,55,169,193,3,193,32,69,129,33,100,192,0,70,119,234,128,34,39, 208,31,40,119,32,135,37,137,34,144,0,66,36,34,32,34,50,110,176,0,35, 160,0,0,50,144,16,192,0,112,128,17,98,33,33,18,33,17,18,1,33,34,17, 33,34,34,33,17,111,80,18,0,177,7,34,131,4,160,4,153,1,205,224,2,192, 5,152,0,33,50,163,6,161,0,18,95,161,7,33,192,0,18,161,3,210,8,192,29, 66,22,112,34,66,66,0,36,129,2,162,32,20,34,34,51,51,144,36,85,193,36, 67,65,52,85,128,1,99,85,67,100,52,45,0,69,83,160,27,85,128,32,193,35, 101,229,44,129,66,132,68,47,12,51,51,128,48,52,4,160,12,36,51,51,53, 35,192,13,35,221,51,64,208,42,37,145,11,129,16,240,19,52,7,130,3,51, 35,34,35,50,129,1,198,0,179,144,0,129,4,50,241,1,128,21,35,35,240,39, 254,129,5,36,78,242,43,129,1,19,35,130,28,117,68,35,224,29,176,47,64, 67,80,52,220,129,2,177,30,132,64,84,209,113,99,144,63,68,186,100,192, 1,100,225,62,134,32,13,103,79,22,123,68,68,145,72,193,127,133,77,194, 0,84,160,14,31,132,12,51,51,83,136,4,242,0,92,146,21,254,170,119,227, 21,145,0,95,2,226,25,193,4,79,2,130,16,248,69,96,147,14,134,28,192, 0,192,146,85,84,7,85,100,85,84,101,69,64,176,1,235,144,0,133,128,65, 20,103,16,103,16,231,135,32,27,106,161,11,101,86,144,141,192,0,253, 176,0,158,0,242,11,140,4,137,5,149,149,89,101,255,216,4,127,2,194,4, 79,10,209,3,148,4,79,4,193,0,236,226,12,194,66,129,60,194,60,86,129, 61,160,0,118,28,86,103,101,118,178,62,128,32,208,0,118,76,119,119,193, 0,118,103,64,1,135,6,103,135,118,135,119,134,33,160,7,7,85,117,103, 102,102,119,64,176,0,126,147,0,118,20,48,242,13,241,1,214,3,143,4,20, 127,118,119,31,9,197,8,143,8,7,208,1,148,2,143,16,8,254,147,8,143,20, 16,131,32,176,0,41,192,0,37,242,3,59,119,135,120,225,165,159,0,0,143, 4,99,135,151,2,192,47,8,143,8,14,47,16,1,64,0,144,0,68,68,68,67,85, 40,85,68,84,192,0,68,177,0,69,85,39,68,85,84,16,85,102,16,0,224,132, 4,2,128,1,177,5,68,69,68,84,178,69,224,4,69,227,2,95,75,85,67,178,19, 101,85,85,209,13,208,14,85,84,130,2,69,190,193,2,144,1,85,128,4,163, 19,193,3,128,19,192,0,168,69,112,86,208,19,86,136,20,102,102,3,70,85, 102,102,69,102,100,0,5,161,0,86,100,69,102,103,132,4,36,148,178,8,192, 30,68,86,128,1,70,242,9,68,32,84,84,102,145,13,85,85,51,51,66,35,51, 160,2,51,67,68,66,240,0,0,66,51,68,51,66,67,52,68,112,66,67,128,2,179, 15,159,0,77,35,34,34,154,51,145,16,68,34,144,49,194,0,67,32,205,52, 193,1,130,16,35,34,129,19,228,51,68,209,224,22,208,29,224,24,100,227, 25,68,68,52,212,160,23,131,36,128,32,85,96,85,96,85,15,86,116,69,85, 102,2,129,28,208,26,0,208,4,52,51,86,51,52,68,54,149,68,192,11,85,52, 160,9,52,2,34,168,144,0,208,15,50,192,0,34,176,0,51,36,7,51,34,67,50, 68,34,112,144,17,65,0,17,0,34,34,17,18,33,0,48,18,34,18,17,33,34,18, 61,18,34,34,0,34,160,3,101,18,126,132,1,33,144,1,128,5,34,68,208,4, 224,5,127,33,34,225,0,224,6,128,9,210,8,24,224,52,136,192,0,193,29, 35,34,35,32,52,66,64,35,34,177,35,34,34,35,34,50,144,51,144,24,84,53, 49,68,83,102,0,52,68,52,86,52,68,70,83,21,52,68,86,52,144,3,51,143, 32,5,100,238,21,129,64,133,92,52,84,145,97,59,177,12,0,50,51,85,51, 50,51,53,51,67,50,67,192,1,67,67,85,50,34,193,193,16,128,40,144,0,50, 51,50,34,50,153,208,53,128,1,51,50,208,18,129,19,51,51,254,130,4,146, 1,225,2,32,176,3,112,179,4,38,63,68,67,52,17,129,8,161,8,224,4,113, 128,145,0,132,28,68,52,34,68,84,51,48,34,83,85,128,3,192,0,53,83,51, 247,34,176,19,130,4,129,64,130,100,84,176,0,177,24,124,32,70,192,1, 95,20,160,4,134,128,160,123,85,255,70,160,128,224,104,80,192,0,18,130, 4,130,100,223,241,36,128,108,226,0,68,244,7,193,16,195,7,164,80,255, 197,4,162,118,131,4,222,90,177,135,127,10,193,3,38,222,133,24,177,126, 165,0,69,192,52,131,28,41,163,23,67,69,87,16,84,69,85,87,139,128,172, 129,32,83,118,80,116,5,163,35,85,68,85,101,192,0,102,85,86,160,30,86, 0,101,85,102,86,101,101,119,86,121,101,102,144,0,139,4,195,4,161,0, 85,119,247,193,5,163,71,146,1,90,192,3,102,111,9,81,250,111,10,143, 8,14,2,225,17,163,51,209,1,86,145,2,149,102,224,20,102,85,128,24,87, 192,0,103,193,34,193,162,35,119,119,85,102,117,65,16,85,16,87,133,85, 102,120,140,179,17,162,3,102,102,118,16,176,0,102,207,103,160,0,225, 0,102,136,129,1,211,12,146,1,189,154,0,143,4,49,119,31,10,0,31,11,209, 21,135,123,31,9,104,16,192,0,18,241,56,119,224,9,118,224,28,119,64, 162,0,17,120,55,158,0,29,120,119,119,153,192,0,16,127,7,136,234,79, 13,34,143,8,41,79,15,136,127,41,121,0,0,121,119,1,73,0,159,0,79,51, 68,2,52,51,0,5,68,51,52,68,67,68,52,10,67,52,68,52,52,161,3,85,2,26, 53,68,68,51,176,1,194,5,84,144,1,0,69,69,84,85,85,84,68,68,34,100,85, 102,2,86,102,102,130,5,216,101,192,1,177,2,101,113,208,2,118,118,141, 119,2,103,102,119,162,5,241,1,102,164,145,2,65,103,192,0,135,136,98, 120,100,136,136,130,5,0,119,119,49,135,109,136,119,160,0,79,79,56,151, 31,31,3,67,118,243,35,68,176,33,164,37,27,84,129,29,139,32,219,85,144, 29,145,1,85,145,33,31,143,67,166,29,87,31,12,67,31,46,118,15,35,56, 133,84,144,17,191,147,18,129,21,52,208,84,65,254,21,239,57,13,148,92, 253,217,5,183,25,143,28,3,168,29,128,4,131,96,143,32,8,102,104,31,13, 118,31,32,132,112,69,192,15,51,84,12,84,85,84,69,69,64,128,1,84,255, 69,192,0,130,115,159,24,11,178,120,143,4,21,138,27,161,127,63,247,127, 85,69,193,127,128,14,128,17,128,127,145,1,27,160,2,85,84,85,130,125, 143,128,3,118,124,109,143,64,36,88,133,12,145,42,86,176,0,144,14,86, 231,162,0,242,11,128,3,149,0,101,85,208,3,65,254,143,4,47,163,3,132, 15,143,16,2,144,1,131,8,130,123,146,0,136,87,132,31,102,102,119,226, 28,102,103,255,103,128,29,212,31,131,32,176,3,243,30,231,2,240,28,239, 15,0,242,126,130,3,208,2,88,135,136,192,10,192,11,119,144,42,102,224, 1,177,39,193,0,87,143,4,4,194,3,255,15,42,244,26,15,8,128,3,197,8,6, 136,28,198,28,185,192,24,145,0,104,131,63,209,59,226,28,119,120,254, 241,59,212,31,133,32,129,31,200,0,130,3,167,37,192,9,255,135,177,0, 192,5,161,0,194,6,143,4,75,143,16,15,208,20,255,193,0,131,5,193,26, 176,0,144,55,138,12,134,9,145,90,42,159,0,1,137,153,98,121,131,63,153, 18,8,136,152,153,136,137,144,1,153,136,1,9,0,0,101,85,150,0,53,83,79, 242,0,86,244,1,101,86,200,3,15,81,244,15,62,10,102,102,176,0,0,135, 4,193,1,144,19,0,101,101,102,86,101,86,102,119,40,119,118,119,1,102, 160,1,87,101,2,102,102,86,117,119,119,103,32,43,103,118,118,192,0,103, 177,3,136,65,112,145,1,87,192,3,19,129,2,135,136,119,4,135,119,136, 51,51,85,228,14,83,40,85,53,51,224,1,53,177,0,53,83,63,83,53,85,32, 178,2,79,75,129,15,49,255,161,1,210,13,240,1,176,16,192,29,128,18,208, 16,146,30,236,138,32,162,52,144,51,97,85,160,29,211,26,85,233,85,128, 28,177,3,240,1,87,193,1,117,117,81,192,0,87,31,17,84,228,10,67,68,52, 0,19,84,53,51,52,67,83,53,231,84,112,176,1,159,0,77,68,68,21,131,48, 66,31,26,85,31,49,68,68,85,84,195,10,1,84,85,69,52,67,68,85,69,6,177, 0,69,84,84,69,85,144,1,176,1,224,68,176,20,146,0,128,1,52,67,67,52, 157,67,208,35,68,67,128,2,195,0,201,25,67,124,144,40,67,214,1,209,27, 163,28,226,7,241,7,51,27,67,69,67,52,225,6,161,0,52,161,8,193,176,0, 243,15,128,17,85,53,67,84,85,180,241,1,176,16,85,160,16,192,0,69,137, 32,101,166,54,143,64,16,117,111,30,102,102,144,105,130,12,1,84,85,101, 70,84,102,102,70,94,240,126,69,160,127,70,240,2,192,0,160,19,132,36, 107,68,84,208,33,176,0,85,128,1,69,208,1,239,192,19,96,176,27,143,4, 0,69,161,1,208,39,15,6,118,241,0,68,209,43,1,199,125,69,193,31,197, 0,243,100,131,1,128,29,146,124,145,1,70,84,193,62,95,225,21,86,209, 0,118,1,143,128,46,210,43,163,44,249,208,7,145,8,245,11,157,0,143,4, 57,4,118,103,254,31,1,12,135,28,162,6,192,26,197,24,43,161,5,169,103, 59,135,163,29,135,133,32,135,104,162,193,3,240,1,120,224,2,120,135, 135,192,0,253,120,128,3,149,6,212,7,177,38,25,143,4,9,120,61,127,13, 135,104,15,9,145,0,143,8,6,149,24,120,191,15,1,40,135,65,36,164,2,128, 1,21,62,6,152,153,0,243,9,193,30,195,2,238,4,254,136,210,34,192,0,176, 1,230,10,143,4,133,159,0,3,99,31,152,137,136,136,176,0,118,193,31,33, 128,184,33,42,1,4,80,85,101,87,85,144,0,102,0,102,86,101,85,85,51,85, 101,0,102,85,101,119,85,101,85,87,2,102,101,86,101,119,101,103,128, 3,234,86,129,4,3,34,85,176,0,85,208,2,190,86,144,1,102,15,78,128,13, 130,1,244,15,161,21,68,118,85,224,16,86,85,86,192,0,102,150,101,160, 4,117,119,0,86,161,19,130,4,0,119,119,101,85,117,119,103,85,155,86, 96,103,117,144,24,241,3,119,211,8,130,49,193,1,134,136,103,102,103, 48,99,119,134,192,9,130,28,102,102,70,130,32,160,162,8,16,87,192,32, 85,119,101,86,17,54,51,83,53,131,16,53,85,51,0,144,0,83,85,51,83,86, 51,83,1,51,53,85,83,53,83,85,83,204,183,35,31,71,242,15,102,53,161, 15,18,85,18,85,83,51,83,192,29,53,101,240,21,141,83,133,32,69,68,100, 20,49,117,5,192,32,85,119,102,85,87,16,86,233,18,130,36,227,27,116, 87,192,0,119,117,184,179,57,145,0,69,149,44,100,146,1,86,53,37,51,67, 53,227,14,53,68,100,67,168,176,0,16,67,16,67,239,31,79,69,68,141,52, 192,60,102,102,52,176,16,21,67,93,224,16,69,160,16,69,0,208,23,4,84, 223,129,34,6,225,23,86,63,19,135,64,149,40,41,49,128,11,69,68,144,0, 129,36,102,68,51,0,128,1,68,84,102,68,84,68,70,0,85,84,69,84,102,84, 85,68,49,68,52,67,129,4,3,51,52,67,7,176,0,52,68,52,68,67,192,0,192, 2,234,194,38,154,0,144,25,114,67,144,1,68,209,1,81,67,84,178,91,51, 241,7,51,84,53,167,162,7,161,0,68,128,9,68,52,128,15,130,32,74,128, 17,85,240,15,102,70,160,16,84,193,61,3,68,69,102,86,68,86,100,140,64, 239,211,25,127,25,128,3,136,128,68,62,130,125,134,68,136,208,15,192, 30,119,85,84,128,4,84,86,62,101,102,84,129,116,165,53,240,3,16,192, 3,207,84,128,36,130,1,85,84,194,27,131,57,177,39,252,242,39,224,2,128, 4,176,3,0,104,176,1,68,115,68,86,18,129,8,130,29,85,84,210,31,234,130, 32,193,30,224,20,192,0,102,35,118,130,1,62,102,102,118,133,28,130,2, 128,132,177,2,160,1,173,119,192,124,118,143,128,4,118,193,3,192,0,119, 119,192,7,103,176,4,162,141,144,5,85,128,2,224,131,22,64,104,119,103, 208,3,103,160,7,134,4,231,101,112,162,11,177,0,103,119,209,7,193,11, 255,244,3,5,160,1,193,14,195,3,193,16,166,153,144,20,253,195,153,97, 164,0,241,5,104,147,0,20,118,255,192,0,208,15,242,27,131,24,176,10, 192,22,194,15,224,23,142,225,19,128,28,118,135,136,144,0,139,4,161, 23,71,103,135,113,120,119,119,18,130,9,144,179,18,96,135,136,208,0, 136,120,119,227,120,192,3,160,4,82,103,119,136,224,2,239,161,3,209, 3,209,4,144,1,135,229,3,129,4,165,7,191,210,7,192,0,120,8,133,45,147, 7,192,3,195,5,255,177,1,79,7,20,47,33,160,23,227,16,194,27,134,28,238, 194,26,208,1,201,0,70,134,81,67,152,0,16,153,153,137,137,163,1,120, 135,153,12,153,119,136,152,153,192,2,176,0,137,255,153,176,3,192,0, 212,3,98,146,10,80,16,190,98,160,0,152,167,9,36,144,0,33,50,191,136, 47,11,152,162,4,31,11,231,15,19,99,107,19,137,143,8,1,29,137,192,1, 152,128,25,204,160,25,229,29,193,0,153,152,96,161,0,153,0,136,1,32, 96,102,153,0,84,102,102,70,16,100,102,102,86,184,2,70,84,70,10,68,68, 84,84,85,0,68,4,33,85,69,68,209,2,68,84,69,84,138,225,0,143,4,11,84, 85,101,176,1,101,100,192,84,176,3,2,85,70,68,69,84,0,84,69,85,68,100, 102,118,103,60,102,102,118,178,13,160,3,224,5,140,16,102,152,102,1, 118,119,144,0,34,102,102,195,119,160,6,144,6,118,103,118,119,240,2, 249,224,0,176,2,2,226,5,96,209,5,118,103,12,129,1,118,119,135,136,119, 129,5,103,135,134,152,2,136,136,153,73,143,24,13,79,78,207,192,12,130, 35,135,16,84,85,225,1,192,35,128,1,239,224,39,130,32,147,0,1,69,240, 35,28,128,31,249,50,3,196,32,193,29,241,38,127,13,136,72,255,63,109, 241,13,59,178,32,192,1,192,0,240,18,48,249,230,26,63,70,160,45,147, 16,161,17,192,83,102,86,239,208,2,224,83,163,49,159,0,79,101,192,0, 132,60,128,100,63,182,14,101,102,133,3,163,26,131,96,143,32,13,209, 105,216,89,202,29,95,2,104,129,110,137,128,86,101,63,102,119,87,208, 78,193,112,192,0,129,65,161,81,159,228,35,145,20,69,85,192,83,101,129, 122,232,89,248,240,39,128,39,192,40,146,25,69,143,41,0,86,101,179,86, 144,28,86,128,28,128,14,102,102,227,60,255,241,29,242,1,155,0,209,131, 98,140,4,210,134,163,31,230,243,60,225,1,240,129,148,0,135,120,208, 0,141,32,120,136,104,111,3,131,140,130,40,144,12,118,87,1,102,119,103, 86,103,118,118,87,255,176,2,130,4,200,36,145,16,128,35,133,36,79,6, 194,0,254,128,41,31,3,130,1,208,13,17,136,32,218,30,144,57,111,119, 103,145,54,193,31,118,135,28,192,0,181,28,1,161,28,135,120,135,135, 119,119,120,156,135,60,210,3,136,136,128,3,96,134,32,152,254,153,144, 0,241,36,240,2,91,210,43,133,72,144,1,255,103,160,167,192,167,197,0, 214,143,227,18,177,175,160,4,255,148,13,112,143,4,39,192,26,130,15, 146,22,214,54,149,24,102,193,55,135,162,56,128,2,136,136,131,89,195, 30,190,135,209,3,120,192,3,211,25,152,26,252,61,147,31,56,137,136,152, 129,189,131,32,246,190,153,152,71,137,152,192,0,136,153,137,146,66, 216,66,255,194,10,129,1,176,7,97,143,4,8,35,31,42,146,48,188,31,5,137, 2,136,216,54,136,30,128,24,98,153,235,153,131,28,228,2,209,0,137,49, 153,197,0,224,148,0,242,64,40,1,1,1,0,102,102,119,103,102,102,128,176, 0,145,0,70,101,102,102,85,102,101,118,119,208,2,224,1,103,119,128,3, 85,21,65,86,86,85,18,69,48,85,0,192,4,86,85,119,85,86,102,87,46,102, 86,102,32,101,212,3,130,4,97,173,101,224,2,119,128,1,87,209,1,144,8, 86,161,180,4,128,7,101,52,101,103,85,101,49,160,8,101,86,131,15,147, 0,69,68,100,250,224,0,146,14,111,3,51,27,128,21,118,208,23,219,119, 17,39,119,241,2,128,27,103,224,2,48,129,28,118,136,97,197,3,103,119, 136,22,136,103,119,134,192,0,103,193,2,140,32,200,68,133,11,210,2,119, 68,129,30,70,69,130,68,68,85,85,68,84,101,160,17,15,119,68,69,85,71, 52,79,75,128,18,241,208,15,194,18,163,16,224,17,176,36,69,102,100,92, 192,0,69,133,32,118,118,178,5,8,102,125,102,134,128,4,8,145,0,193,1, 0,102,224,3,180,29,15,3,144,14,101,71,68,68,184,69,135,16,68,224,12, 224,16,128,1,70,85,222,68,134,35,159,0,70,85,240,13,139,32,195,32,97, 236,69,240,18,142,64,63,57,104,225,81,136,92,119,99,119,71,224,0,145, 66,85,85,103,160,1,231,135,95,159,0,75,193,102,132,60,68,102,240,15, 162,105,253,240,2,177,108,177,117,143,32,6,130,28,127,18,135,96,86, 49,143,128,0,102,85,129,12,148,0,86,101,119,254,128,4,225,11,213,38, 133,123,226,3,131,22,209,124,144,123,125,85,102,128,37,130,4,128,3, 114,132,26,86,127,224,2,101,193,40,160,2,128,128,130,126,130,28,242, 4,191,241,2,155,0,118,146,26,134,4,129,22,131,60,149,29,122,128,17, 135,129,28,84,128,2,134,32,135,95,9,173,153,48,152,129,11,120,226,11, 145,0,103,3,128,17,102,119,135,136,119,119,176,0,255,132,3,240,62,119, 161,11,192,4,241,21,196,0,130,34,252,129,7,116,213,22,128,9,193,9,105, 236,26,119,241,118,192,0,146,26,160,146,43,118,103,118,248,241,12,66, 231,15,195,30,243,10,22,119,119,239,135,16,132,28,133,6,136,240,23, 225,24,147,1,56,128,25,152,153,144,0,128,161,136,4,151,153,22,120,119, 120,153,227,1,120,130,8,130,30,253,136,193,9,241,41,195,0,116,130,44, 100,120,255,144,14,128,2,129,5,242,36,6,226,17,4,192,5,223,225,7,195, 2,159,0,0,135,129,13,208,4,114,0,159,135,8,147,26,135,120,192,18,4, 194,9,106,239,226,1,159,0,0,246,18,123,152,192,0,241,31,192,29,56,85, 153,153,240,2,32,129,3,119,137,58,153,153,137,130,36,128,1,161,3,137, 144,6,55,152,137,153,193,3,241,1,119,208,0,131,4,227,226,9,8,162,0, 0,137,136,120,7,127,148,14,137,160,5,160,12,34,133,44,30,225,9,142, 31,19,159,26,0,137,136,137,20,195,5,139,16,250,153,246,23,194,0,148, 0,193,30,136,3,170,129,1,1,0,112,136,119,135,119,119,119,24,136,120, 119,119,176,0,145,0,103,118,0,119,119,102,119,135,136,118,119,245,136, 147,2,18,212,3,16,87,128,4,85,198,110,23,99,119,119,118,200,6,31,9, 92,136,120,129,16,104,208,2,176,0,160,15,102,8,102,118,102,102,85,208, 0,118,119,55,104,119,103,16,128,20,136,177,5,241,4,169,17,65,102,177, 1,135,133,8,136,136,248,129,24,240,0,144,0,83,128,2,192,1,120,136,149, 135,192,0,120,119,64,152,0,153,192,49,195,16,193,3,153,153,120,136, 151,126,153,121,128,12,128,25,177,25,244,21,135,20,33,235,104,130,18, 194,0,36,86,64,85,162,1,0,211,21,85,117,85,85,85,118,86,96,85,85,176, 0,39,101,102,85,85,132,119,129,1,119,101,118,85,128,6,86,112,85,101, 130,4,129,8,84,101,103,85,47,101,85,117,227,25,103,181,12,128,5,130, 32,246,145,0,208,2,209,12,163,0,131,27,119,128,4,226,2,189,103,208, 6,102,194,20,128,32,195,33,82,86,255,161,10,242,35,224,30,176,27,80, 133,36,79,4,149,43,246,143,52,1,226,1,128,28,128,25,192,18,86,47,3, 159,0,79,63,102,86,117,128,34,128,31,65,160,19,211,2,191,224,40,192, 33,102,225,39,146,0,193,24,146,64,135,32,235,129,75,176,0,35,143,64, 1,152,32,135,47,17,188,128,16,128,14,103,0,21,128,18,208,48,86,49,85, 103,85,193,65,159,0,76,86,102,86,175,192,13,129,76,101,60,118,48,195, 2,52,227,132,68,53,85,128,96,119,119,151,117,34,135,29,136,152,50,102, 102,134,144,6,99,103,120,130,127,5,102,103,134,144,78,191,129,112,145, 83,119,144,32,178,84,145,79,160,34,226,112,250,130,84,195,2,159,0,75, 128,49,225,14,135,96,85,130,2,254,103,129,3,160,0,129,1,193,29,135, 4,131,32,0,255,135,224,23,142,132,135,64,4,128,5,145,6,224,1,255,132, 35,194,142,210,39,193,38,128,128,130,126,131,163,130,148,222,176,111, 145,44,241,1,118,224,34,208,120,164,50,132,120,213,87,0,192,3,101,144, 4,101,143,4,2,86,143,128,130,192,8,101,118,118,2,131,12,128,1,255,226, 15,210,175,213,13,159,0,20,130,184,248,1,241,153,130,30,191,197,62, 16,152,149,1,130,33,243,2,196,2,134,32,255,132,4,146,70,160,1,129,38, 193,0,161,17,129,26,128,35,255,195,34,145,37,161,41,132,43,139,4,132, 169,194,179,160,17,255,31,2,153,23,128,80,129,60,130,44,133,32,145, 6,34,255,82,142,116,243,213,208,194,131,25,196,0,230,90,210,60,189, 40,128,125,136,192,157,129,1,145,0,133,2,137,114,2,136,0,131,12,135, 32,135,121,96,21,153,137,153,135,144,6,135,143,4,11,136,167,31,4,129, 40,137,192,3,152,152,19,154,0,95,53,120,128,7,151,129,9,143,8,4,196, 47,101,254,129,2,131,4,73,144,56,32,204,2,176,28,240,28,240,137,227, 29,116,132,30,111,2 }; static MTB * mtb_KQK = NULL; void initMTB_KQK() { mtb_KQK = new MTB ("KQK", 4, 10); mtb_KQK->SetPackedData (mtbdata_KQK); mtb_KQK->Add (A1, WHITE, 277); mtb_KQK->Add (B1, WHITE, 381); mtb_KQK->Add (C1, WHITE, 682); mtb_KQK->Add (D1, WHITE, 787); mtb_KQK->Add (B2, WHITE, 474); mtb_KQK->Add (C2, WHITE, 561); mtb_KQK->Add (D2, WHITE, 816); mtb_KQK->Add (C3, WHITE, 591); mtb_KQK->Add (D3, WHITE, 686); mtb_KQK->Add (D4, WHITE, 699); } ////////////////////////////////////////////////////////////////////// // // KRK static const byte mtbdata_KRK[7112] = { 1,75,0,159,0,46,32,34,2,2,159,4,7,73,208,3,36,195,4,18,17,15,2,65,68, 89,1,36,192,0,52,127,1,16,102,102,33,208,0,100,85,16,102,102,102,86, 130,12,19,101,102,134,103,102,2,224,118,12,17,129,1,134,136,119,136, 215,152,79,1,15,50,24,224,24,1,191,36,16,143,32,5,18,161,32,52,51,35, 111,8,68,84,6,224,101,192,30,203,0,147,0,85,85,133,103,3,102,119,135, 103,102,136,120,60,211,65,128,1,1,135,128,30,151,153,61,123,64,41,193, 20,161,53,47,1,49,16,136,1,218,45,130,28,144,27,33,223,27,6,112,33, 143,32,15,142,51,111,13,85,85,101,99,31,0,80,163,101,2,118,0,118,120, 119,29,134,33,193,35,136,119,119,151,15,6,144,19,255,65,196,24,209, 20,89,130,24,133,28,132,1,73,201,137,4,15,2,145,0,49,50,96,52,51,13, 48,34,34,50,35,11,49,66,131,129,32,208,60,52,84,85,85,53,44,238,50, 128,1,3,32,103,160,1,41,86,207,119,16,193,29,119,121,10,18,192,35,154, 19,1,167,154,7,34,73,128,20,251,67,196,45,159,0,3,140,4,141,52,105, 52,144,1,184,15,7,192,21,53,208,0,142,28,128,32,67,86,59,85,85,69,1, 204,0,101,117,194,31,106,5,117,7,144,0,117,192,2,133,240,28,248,135, 210,29,82,129,31,53,193,34,119,151,166,137,48,153,54,167,154,51,130, 32,219,105,193,15,176,105,70,63,1,145,0,86,137,4,252,147,46,95,7,176, 1,82,130,1,69,18,119,107,119,87,134,3,28,87,16,118,16,181,193,9,163, 26,119,176,2,150,0,117,208,1,117,60,208,27,87,152,192,0,240,25,121, 131,28,85,86,85,149,32,135,128,4,119,32,20,255,121,18,148,0,140,32, 197,32,19,128,67,178,71,225,202,170,8,140,4,194,4,135,136,136,88,183, 192,0,113,104,13,193,19,133,0,245,19,143,9,198,23,153,153,89,213,19, 0,244,52,101,200,27,151,7,16,119,137,128,21,152,247,195,6,196,4,54, 131,26,147,0,121,204,0,83,174,55,95,2,121,128,11,121,130,25,96,132, 17,255,103,132,2,130,168,15,2,145,15,128,3,143,8,6,148,19,159,15,3, 151,0,170,154,201,22,129,28,150,54,98,222,176,52,137,26,94,119,82,202, 25,143,32,3,32,46,187,171,154,198,0,170,128,15,33,16,1,82,0,159,0,79, 51,10,85,53,203,0,10,51,51,67,68,85,224,0,68,0,93,85,69,35,102,40,241, 2,1,119,6,33,86,85,85,136,87,27,0,66,117,102,129,3,119,118,119,153, 17,192,121,27,3,102,119,153,137,119,48,119,170,138,31,0,63,82,51,51, 34,62,34,17,35,15,4,17,141,32,9,147,32,0,68,68,119,85,101,102,119,86, 30,101,102,136,87,11,18,66,192,28,14,119,102,136,153,121,91,1,16,170, 102,16,135,128,30,151,61,153,64,4,102,33,100,102,102,17,31,9,1,103, 0,0,15,6,17,17,33,192,25,1,230,31,5,130,32,207,32,5,33,68,67,132,29, 15,11,190,102,0,102,192,30,203,0,3,192,33,193,28,61,119,102,104,96, 122,241,3,4,136,107,128,30,152,77,101,85,128,24,34,15,2,223,129,20, 133,28,0,33,12,141,4,61,2,119,193,31,37,207,32,4,133,32,193,28,85,144, 30,29,56,145,0,102,86,80,176,61,240,24,102,136,117,103,134,10,35,128, 3,120,192,28,135,54,129,29,102,105,89,103,135,48,34,160,184,41,187, 144,0,119,69,100,119,127,85,84,160,105,47,2,112,129,113,143,4,23,33, 127,77,70,192,24,177,85,192,56,133,22,198,0,81,54,96,119,118,193,27, 53,104,54,131,6,59,68,68,136,81,129,28,2,150,6,150,149,0,133,32,170, 137,2,105,5,194,3,191,136,113,136,192,31,6,64,3,49,47,193,103,136,101, 128,101,101,208,117,93,144,0,179,193,75,201,2,136,143,4,1,137,8,136, 104,208,110,231,128,2,66,146,112,7,136,103,49,64,229,129,1,1,145,0, 192,23,136,118,116,135,119,17,134,139,4,129,24,128,3,153,160,1,129, 25,109,195,0,152,66,117,170,129,28,32,187,187,128,1,68,139,33,102,128, 31,187,33,187,160,2,36,184,2,129,32,193,11,151,224,10,254,128,1,130, 26,193,16,5,145,0,143,4,1,129,18,47,11,179,137,160,0,135,161,21,19, 153,152,35,227,194,3,225,3,196,0,5,170,152,154,2,142,193,2,193,1,170, 136,152,48,96,148,0,16,187,169,154,137,193,8,170,153,154,138,137,113, 187,169,170,0,186,135,4,189,171,132,3,170,101,82,132,32,3,204,105,16, 221,20,192,1,153,16,201,204,64,144,0,170,192,5,170,169,170,170,170, 47,152,170,170,128,25,153,128,13,71,0,69,143,4,6,187,111,14,155,187, 171,224,2,170,46,111,2,170,153,128,2,153,31,1,197,3,33,96,153,185,19, 193,26,186,187,171,187,248,168,128,6,64,194,1,196,0,101,204,187,31, 187,171,204,169,195,2,33,240,58,50,15,70,188,187,171,221,1,80,1,128, 130,6,144,4,1,81,0,144,0,119,1,167,137,136,144,207,0,2,15,80,72,68, 1,85,69,68,54,68,102,70,47,0,0,102,194,1,0,6,118,103,102,102,134,104, 43,3,1,101,102,135,120,102,102,151,137,96,16,153,27,1,119,119,102,102, 5,152,153,120,136,184,155,16,187,128,27,1,104,118,119,119,122,23,12, 136,136,122,23,135,30,15,82,68,0,68,52,51,21,65,68,68,21,60,65,85,85, 29,2,193,35,192,28,118,114,103,101,192,30,27,35,85,85,128,32,189,119, 32,136,112,10,17,36,135,104,32,167,64,90,170,96,102,86,1,136,120,135, 24,136,136,85,21,192,192,13,45,48,102,22,83,102,102,64,22,17,63,7,32, 34,0,0,16,176,17,32,18,15,0,49,19,49,51,48,51,17,17,1,47,4,84,69,51, 3,51,21,81,69,68,21,81,176,14,247,12,131,32,192,16,192,28,112,85,192, 30,106,161,130,20,34,118,32,118,120,151,153,138,75,194,91,119,102,119, 32,119,47,10,160,136,32,88,47,6,54,83,102,85,3,21,51,51,34,18,34,34, 14,51,144,0,84,53,128,24,128,28,18,17,176,2,247,192,2,105,134,4,192, 32,82,33,75,82,114,129,32,97,128,64,47,6,144,0,119,103,0,181,119,129, 29,133,10,81,118,130,3,119,141,64,0,153,119,122,9,51,118,2,52,121,119, 184,187,121,183,9,144,187,16,134,104,48,88,136,136,124,102,86,176,73, 13,130,111,176,44,132,2,119,167,87,143,4,3,85,15,14,119,103,224,48, 1,114,145,0,87,200,0,226,19,131,24,135,104,80,123,136,120,10,58,160, 89,3,151,6,10,147,0,85,85,151,121,176,152,154,6,202,122,5,148,4,119, 153,128,32,185,48,92,185,187,2,183,5,49,224,124,120,94,153,105,192, 157,104,209,129,92,130,104,128,8,51,105,137,120,128,2,50,153,105,131, 1,231,49,134,12,143,4,17,133,3,153,153,195,4,17,39,53,169,122,51,153, 137,1,192,1,193,81,96,6,138,137,120,169,154,153,129,3,64,169,153,70, 29,185,171,100,6,123,1,22,170,153,192,2,153,34,120,201,188,0,204,153, 136,0,224,184,1,129,32,193,10,185,155,170,154,60,153,137,153,176,1, 12,146,0,143,4,32,185,131,139,111,13,187,170,154,185,139,192,2,49,104, 169,154,195,4,193,1,185,155,169,178,64,24,171,19,1,201,172,69,229,202, 23,129,10,192,4,201,188,10,156,37,21,201,204,195,6,217,205,6,170,32, 0,202,204,144,0,169,170,170,154,0,203,188,187,170,203,156,187,170,95, 187,155,7,186,0,17,95,6,1,47,95,10,219,157,95,13,221,15,8,130,2,48, 106,10,172,203,3,10,204,128,10,173,195,2,87,219,205,54,171,74,189,132, 3,128,15,0,21,1,64,0,144,0,102,102,120,119,136,5,153,137,136,136,170, 139,206,0,102,6,6,136,119,102,102,137,30,15,81,204,85,1,241,0,119,136, 31,0,0,117,193,102,193,3,1,153,120,119,119,170,136,60,2,103,119,136, 192,1,136,187,194,122,62,226,3,102,119,119,121,128,32,50,122,170,135, 62,33,85,85,224,31,24,102,113,119,153,31,1,159,32,84,68,68,1,102,17, 101,102,102,17,117,119,144,29,33,102,102,1,103,119,119,61,136,104,136, 29,33,161,28,0,151,84,128,30,167,29,170,32,119,0,119,7,153,153,137, 122,170,151,30,3,234,209,11,193,29,31,2,129,20,65,240,48,17,159,0,7, 0,0,34,2,0,0,17,1,0,96,0,33,31,1,0,68,17,68,68,51,17,17,65,16,15,4, 101,102,129,32,44,176,80,17,118,16,134,27,34,101,67,102,135,192,28, 135,136,104,104,13,161,225,3,84,136,128,30,168,136,187,123,197,10,82, 194,71,153,137,120,15,10,136,64,15,10,68,0,65,68,34,34,33,148,34,127, 0,34,34,129,56,85,128,28,34,181,17,128,2,33,92,134,4,68,35,17,237,144, 2,25,144,0,131,32,103,128,30,176,61,17,205,176,114,89,100,135,136,114, 49,106,178,57,195,3,104,80,144,25,187,138,48,88,139,184,57,187,144, 0,193,24,151,170,2,154,137,151,187,151,137,152,192,30,208,154,56,17, 101,144,40,135,153,119,95,119,135,160,73,119,0,129,1,5,145,0,95,160, 83,102,128,4,103,128,2,78,227,51,193,16,117,31,14,120,32,63,0,27,121, 0,153,129,10,230,147,153,136,103,136,136,137,154,1,208,94,137,106,5, 142,32,204,128,155,240,204,192,31,52,1,192,11,119,152,170,0,154,153, 152,187,152,153,152,170,46,152,153,153,48,154,52,145,0,193,15,75,136, 170,144,132,170,152,54,168,52,183,129,36,134,4,153,128,2,49,136,132, 1,194,1,251,111,1,9,63,3,201,9,57,1,155,20,173,4,53,187,129,2,154,52, 2,139,212,2,147,0,51,187,16,204,192,3,204,92,155,153,96,185,65,129, 32,129,9,170,0,204,171,153,170,204,170,153,170,174,187,67,169,0,171, 0,145,0,130,4,235,187,64,196,3,5,186,79,10,170,131,1,190,15,7,193,13, 171,143,12,10,131,2,11,116,194,21,165,187,112,203,47,0,204,172,21,154, 118,16,156,38,194,6,16,221,192,3,23,96,201,204,144,0,193,21,186,204, 188,187,46,186,221,187,26,187,17,32,143,4,6,185,170,127,13,186,243, 3,15,8,143,8,14,221,189,95,15,9,189,80,204,12,85,193,3,83,192,47,0, 7,17,1,68,0,159,0,77,153,136,68,3,52,0,51,51,85,69,68,68,136,72,34, 68,68,153,201,0,104,86,85,1,193,102,129,4,0,136,88,85,85,153,32,41, 121,119,3,103,102,102,136,14,118,119,119,153,120,32,192,2,5,32,187, 155,136,51,120,118,119,153,14,137,136,136,187,154,4,128,3,1,49,204, 188,153,52,128,2,187,153,153,241,1,34,193,1,32,127,78,85,84,51,230, 86,193,32,130,33,40,136,102,242,31,134,32,209,102,240,33,17,119,20, 153,121,134,79,34,102,144,0,136,118,192,28,129,29,88,115,16,138,143, 32,3,52,192,29,185,187,0,39,95,102,102,100,131,28,68,68,192,31,15,1, 102,31,16,135,242,27,135,64,135,136,201,0,16,219,170,65,24,170,9,28, 169,129,2,69,2,187,3,153,84,152,227,67,84,99,208,12,67,144,18,12,85, 67,84,131,24,211,193,1,183,57,150,0,102,200,25,102,70,129,6,111,75, 136,145,55,1,100,209,0,193,27,240,0,71,56,153,162,59,102,102,119,129, 4,193,31,200,84,241,2,17,153,121,243,91,119,103,89,119,119,131,32,136, 128,31,119,187,155,207,132,24,129,34,18,152,154,57,192,29,241,31,170, 97,144,1,153,81,187,114,187,83,76,153,86,39,102,83,144,29,92,136,94, 86,102,131,80,84,208,17,143,4,18,145,0,72,110,153,103,67,129,28,119, 193,30,81,136,32,150,170,244,119,136,102,192,0,134,213,1,39,56,170, 138,169,132,60,128,30,176,65,170,136,228,153,96,192,2,84,187,171,131, 4,153,134,121,129,25,168,136,187,170,64,88,105,204,188,242,63,128,32, 152,48,169,171,136,129,2,16,219,204,187,18,203,153,134,135,148,85,103, 152,153,119,128,44,109,127,153,134,149,89,192,48,80,131,113,136,4,134, 8,204,115,33,193,21,136,118,35,29,136,201,119,209,57,39,170,152,242, 23,170,170,195,193,6,128,28,240,52,153,170,136,168,192,27,17,209,30, 170,170,204,244,3,170,138,137,227,195,5,241,29,96,197,0,204,187,186, 132,4,4,144,3,154,186,170,204,186,34,171,140,187,36,204,204,186,130, 32,145,7,187,112,187,186,192,31,32,192,2,204,203,186,136,219,32,203, 187,152,242,3,187,187,62,152,170,187,193,21,194,48,177,110,36,136,4, 168,170,41,170,47,14,138,192,18,135,170,223,170,46,196,28,153,192,27, 129,1,176,80,147,0,53,240,58,170,151,195,2,114,137,208,27,137,127,129, 32,204,131,4,176,2,193,9,193,3,240,24,242,1,48,241,30,221,203,20,224, 1,204,171,203,3,187,204,186,204,187,204,202,192,2,140,113,192,0,221, 220,204,148,0,128,35,204,54,203,204,221,160,1,66,203,208,0,1,223,185, 244,3,224,129,187,176,69,240,68,81,6,68,143,4,10,187,31,14,171,187, 187,31,6,187,241,169,193,30,31,4,194,3,241,86,169,218,205,198,128,26, 244,23,128,27,186,203,204,133,32,196,0,11,205,221,204,221,205,164,4, 187,33,164,130,6,33,202,67,238,220,136,4,220,166,220,114,221,192,2, 221,219,128,3,128,5,1,8,224,206,187,170,145,0,154,153,2,153,153,201, 204,187,170,233,128,2,112,217,205,195,0,17,15,78,183,171,90,128,85, 5,119,119,85,85,167,170,16,85,85,183,171,39,184,171,119,128,136,1,119, 87,85,85,120,119,1,119,119,168,170,135,136,184,171,48,39,185,187,242, 3,161,4,119,169,138,28,136,136,185,171,0,192,2,5,218,130,221,131,13, 169,170,136,136,186,240,25,114,218,189,0,64,5,157,201,195,28,166,169, 144,32,155,192,1,155,185,11,159,0,78,39,119,87,88,134,32,102,86,192, 32,128,29,57,105,168,138,144,27,113,5,138,120,230,58,192,28,224,30, 111,11,202,204,80,42,176,205,119,173,209,2,129,64,169,170,170,3,172, 74,187,170,171,74,185,90,37,63,78,135,104,225,26,119,119,193,31,102, 49,16,119,103,208,1,8,168,138,135,250,123,128,2,105,192,28,130,9,132, 32,153,64,196,170,193,2,21,218,221,171,76,171,36,202,218,205,23,187, 123,196,60,122,1,170,170,186,75,187,170,119,71,136,208,12,24,170,74, 151,242,3,153,73,9,151,153,170,74,68,158,0,118,87,75,242,22,102,129, 56,118,71,208,0,69,75,231,211,55,1,136,1,40,153,121,228,55,192,29,100, 129,28,120,240,93,105,169,154,131,4,135,226,104,129,33,195,60,57,185, 187,168,132,32,174,135,128,2,152,0,168,128,31,119,0,214,187,145,0,0, 170,4,203,48,70,83,219,125,242,3,187,1,170,74,240,32,35,12,186,123, 4,89,151,153,205,35,38,33,153,121,131,52,151,89,192,23,143,4,1,226, 169,132,56,66,207,32,1,185,155,137,67,12,121,120,119,120,135,192,4, 240,5,120,140,151,199,0,185,155,169,160,147,144,0,121,4,152,153,153, 137,153,153,129,117,169,88,154,169,54,186,160,27,130,20,153,152,145, 153,209,88,186,171,48,187,169,172,18,53,219,221,172,132,32,168,170, 224,28,0,171,219,189,172,187,219,205,172,146,219,54,141,203,130,4,186, 139,195,64,98,136,120,208,17,56,186,139,186,131,68,112,138,153,198, 3,194,54,12,169,138,153,249,153,15,14,129,24,2,130,26,195,0,202,156, 146,135,144,1,170,138,128,81,155,185,64,152,186,2,203,172,36,160,28, 170,154,14,170,170,187,171,187,194,2,129,1,194,1,128,204,131,56,185, 187,169,153,187,155,10,186,187,203,188,187,5,188,1,120,235,222,208, 1,129,28,160,32,225,0,219,189,10,188,187,235,206,188,192,32,188,128, 32,8,188,219,220,173,203,241,99,204,202,15,172,203,170,187,139,160, 36,128,16,201,0,172,128,4,146,8,186,129,14,139,160,72,132,3,204,128, 140,79,45,204,202,188,204,140,202,224,188,26,128,24,193,3,187,171,186, 187,17,187,171,202,188,129,1,220,189,204,153,147,24,176,19,203,156, 224,0,240,89,204,188,66,161,0,187,192,0,203,188,236,206,135,4,37,204, 172,203,162,3,220,205,0,204,16,51,237,222,221,69,187,204,204,0,203, 188,221,205,220,188,237,206,144,221,128,1,221,204,48,220,237,190,97, 221,205,146,32,128,7,221,189,221,205,194,129,12,41,9,220,189,221,204, 201,3,68,221,173,127,45,221,220,205,31,6,221,7,189,220,205,221,189, 219,31,3,3,31,224,23,189,204,205,192,25,19,160,4,193,26,200,225,30, 128,1,166,0,253,239,119,237,238,224,221,130,6,192,34,195,0,206,221, 221,1,8,160,221,190,170,145,0,136,136,3,170,153,171,187,187,170,171, 128,2,10,201,0,136,221,173,153,1,136,1,56,187,171,153,17,41,15,78,136, 204,64,187,119,3,118,119,136,153,121,17,119,136,204,123,42,153,204, 156,28,131,5,153,118,119,146,1,81,24,186,70,221,172,198,9,186,204,170, 66,25,43,188,204,189,134,32,187,16,187,64,21,9,201,136,171,22,153,192, 4,153,200,49,9,31,78,153,166,226,31,102,102,24,103,102,136,136,193, 32,11,153,204,84,154,154,26,187,240,1,204,7,186,27,221,173,201,204, 144,0,20,169,192,30,68,64,173,54,172,204,189,240,30,187,66,187,155, 131,64,187,172,204,185,58,193,203,197,28,16,170,136,166,153,187,176, 60,31,80,167,130,1,160,32,119,136,119,7,135,136,136,119,151,153,41, 0,186,131,56,23,170,193,2,101,128,30,202,18,140,170,192,33,204,170, 186,129,2,57,187,85,204,188,18,170,128,29,185,128,1,188,140,192,30, 9,170,170,169,130,12,144,17,153,45,170,170,166,144,64,150,208,12,89, 134,83,244,35,134,160,4,102,159,0,0,136,104,135,1,38,224,56,102,135, 43,136,119,162,107,128,27,49,135,136,119,2,91,153,170,152,17,132,12, 135,136,153,192,5,153,119,168,162,208,33,7,170,134,32,151,153,169,128, 5,253,170,16,194,2,4,192,60,130,28,16,170,88,0,187,192,30,203,64,86, 187,204,130,204,3,170,171,170,187,187,192,1,99,204,201,128,31,71,170, 204,185,19,167,193,11,16,170,29,187,137,166,53,192,33,143,144,25,11, 153,187,138,228,3,193,23,192,2,125,1,135,7,139,4,131,33,194,34,68,170, 144,160,19,130,28,170,152,96,137,136,170,222,119,208,1,25,221,67,129, 37,194,53,129,6,36,204,170,172,101,187,221,131,92,170,66,187,155,128, 122,186,187,187,221,128,62,38,221,189,219,53,203,221,132,32,176,0,130, 203,192,33,203,221,201,187,203,128,31,136,204,116,187,204,202,130,4, 169,187,216,186,128,132,131,66,187,194,66,67,186,204,122,186,171,129, 16,224,1,35,193,2,187,143,4,26,225,187,104,147,0,224,20,171,186,187, 186,241,195,0,108,194,3,80,37,202,221,203,131,50,67,186,171,202,204, 203,33,136,208,94,19,203,238,205,132,28,171,170,56,203,221,202,64,192, 28,192,2,203,221,131,205,192,31,205,219,219,238,220,147,36,0,144,0, 203,204,220,188,219,221,218,10,189,203,204,202,188,49,204,129,1,253, 238,147,100,129,15,133,3,49,128,35,195,1,221,235,135,4,193,37,201,4, 63,15,188,63,10,204,195,16,42,56,203,204,241,85,203,128,19,204,199, 0,76,238,205,22,204,221,204,3,64,220,88,238,221,241,127,204,208,128, 81,204,220,36,221,220,204,193,2,220,221,66,220,49,221,255,221,146,0, 192,33,188,221,238,126,144,1,238,224,2,240,2,70,49,132,4,224,1,223, 205,202,3,67,205,129,12,129,22,193,10,48,250,193,4,199,0,127,43,128, 14,111,7,193,17,204,0,249,237,2,194,29,6,193,3,196,0,255,238,208,6, 193,5,115,238,37,221,1,1,208,205,221,221,253,223,221,14,146,0,220,221, 205,188,146,1,192,2,194,0,129,189,49,204,204,237,190,205,204,1,2,188, 204,188,221,189,205,204,128,49,192,1,204,187,203,187,187,236,48,190, 204,188,129,1,83,170,170,220,48,189,204,188,49,165,0,219,221,170,16, 170,203,188,170,18,168,170,102,9,102,219,205,170,170,33,203,204,0,35, 218,205,156,153,218,205,155,134,153,17,152,153,102,102,193,1,33,64, 202,204,19,218,205,187,153,234,224,206,139,4,129,2,133,5,219,205,172, 170,34,235,222,172,130,12,169,170,153,67,96,206,172,192,12,19,236,206, 204,204,100,252,239,243,23,129,14,220,221,67,236,224,222,16,192,3,128, 29,188,235,206,221,159,188,148,24,203,220,64,162,29,226,29,192,27,0, 159,0,77,200,188,108,102,200,188,107,200,102,85,193,28,200,188,199, 0,201,188,16,153,153,217,189,242,31,153,152,121,123,102,102,129,1,193, 2,5,192,26,172,129,42,96,133,32,203,176,33,201,44,220,205,205,220,112, 236,222,131,56,117,129,2,236,206,205,195,204,192,3,144,28,204,204,190, 187,208,2,153,129,4,224,29,188,171,144,31,196,0,187,171,3,239,31,78, 187,187,152,121,121,119,49,224,147,0,128,32,176,1,57,169,170,154,153, 33,201,172,154,122,185,171,153,153,187,193,29,130,30,188,34,146,64, 38,189,195,78,109,17,220,240,28,192,61,220,241,90,87,204,129,192,31, 19,187,139,187,187,205,172,156,83,193,30,170,106,144,9,121,159,0,77, 153,161,137,128,25,138,131,28,136,120,119,119,196,129,2,57,160,4,153, 202,172,133,64,119,189,119,161,5,186,128,32,129,3,1,192,28,204,223, 64,130,24,4,187,0,192,57,99,132,64,48,12,205,220,129,3,81,170,138,170, 36,170,221,157,35,204,156,192,32,107,24,187,187,153,105,208,12,20,136, 104,8,136,136,204,108,201,242,3,187,107,24,185,187,204,108,182,85,146, 0,136,120,25,136,136,153,121,131,20,161,56,153,105,127,208,0,103,87, 131,28,131,4,193,5,193,20,130,6,1,68,170,154,170,170,186,155,186,128, 198,33,240,61,153,186,155,185,170,170,98,154,169,35,144,0,203,188,186, 194,69,8,169,138,169,170,171,128,8,187,171,197,186,160,141,99,203,188, 202,128,32,202,139,130,20,161,64,203,172,186,48,202,192,31,190,195, 0,192,28,221,128,30,242,154,96,144,65,66,227,221,129,3,1,65,237,158, 237,130,4,89,17,187,16,155,24,193,18,220,157,51,20,123,185,202,35,37, 202,156,128,22,95,145,0,122,32,106,27,129,12,25,197,37,2,133,32,186, 155,187,170,202,172,19,98,186,139,208,0,192,30,186,171,186,192,0,203, 185,82,129,31,219,189,212,101,155,128,33,20,204,114,204,188,203,192, 28,203,131,20,187,188,186,131,2,189,80,128,1,193,0,129,185,237,133, 222,131,188,219,221,202,204,224,28,205,129,82,196,188,187,155,187,187, 237,174,60,131,32,220,173,195,64,193,50,197,0,129,4,220,201,173,161, 101,144,0,172,202,198,3,204,156,241,42,131,136,192,47,47,23,224,145, 204,156,203,158,194,140,29,204,172,80,192,13,130,1,160,177,127,220, 189,20,225,177,128,6,228,179,194,0,193,212,15,135,28,187,187,221,189, 176,93,130,215,84,248,144,0,135,220,128,34,224,0,137,32,193,8,254,207, 64,253,238,49,236,206,237,205,204,230,172,129,29,200,0,128,4,237,206, 163,12,192,195,55,204,221,173,160,72,196,3,221,129,38,67,253,131,12, 32,201,7,47,2,138,8,192,17,47,6,221,255,177,118,193,0,130,28,20,240, 21,17,195,3,129,24,252,176,8,130,248,83,177,88,130,32,53,192,0,254, 4,223,238,222,255,223,254,164,36,221,5,221,238,222,237,222,254,128, 2,238,128,160,0,33,1,0,224,238,221,205,237,255,223,64,205,204,144,0, 170,204,204,171,237,98,238,222,128,2,197,0,221,205,221,128,4,199,221, 192,1,51,188,171,221,48,17,128,130,1,192,3,204,204,189,187,204,238, 64,189,187,145,0,169,187,187,171,204,225,221,115,194,0,192,1,185,221, 189,171,67,65,170,32,154,153,153,153,53,24,134,3,221,173,186,65,130, 8,170,138,192,136,5,37,203,238,238,171,203,99,238,206,50,129,4,203, 221,205,2,4,39,222,189,203,255,222,132,16,139,14,136,203,238,221,187, 1,128,3,18,142,220,17,255,223,203,129,24,193,4,48,32,203,220,255,87, 205,238,220,220,8,205,238,222,220,221,144,0,170,170,140,204,112,221, 220,204,16,35,221,1,220,218,221,204,171,170,238,205,252,130,16,50,112, 82,97,193,1,15,77,169,3,221,221,136,169,238,221,136,5,16,193,28,169, 221,141,54,187,221,189,79,188,187,134,48,136,136,146,1,129,2,192,47, 1,1,220,238,205,220,220,255,206,9,241,31,204,187,204,188,48,204,204, 254,192,2,86,241,29,128,57,130,4,129,32,114,24,14,203,170,205,171,219, 128,3,241,10,129,18,227,187,193,1,120,95,79,187,200,153,65,1,145,0, 136,136,137,136,169,170,152,198,128,2,71,192,26,188,187,221,16,89,224, 221,240,1,192,29,130,30,221,205,219,220,51,238,206,219,129,60,131,64, 204,203,128,31,5,51,221,205,203,205,221,224,0,238,25,225,3,221,221, 189,128,26,130,2,221,219,12,54,204,187,202,187,144,39,242,10,187,156, 170,128,92,187,200,224,1,7,159,0,78,170,91,187,185,0,201,194,1,160, 32,153,225,96,128,195,2,83,203,204,188,204,203,221,223,188,130,56,129, 34,203,128,5,129,2,130,3,64,127,224,25,220,128,32,130,92,132,64,0,192, 2,17,176,32,192,60,221,96,146,0,204,187,205,113,187,219,113,128,31, 37,204,204,202,98,160,11,219,131,72,80,204,204,200,128,1,195,184,160, 1,3,170,170,168,170,195,1,234,129,68,113,182,85,132,86,169,128,53,169, 130,56,33,153,153,154,16,168,153,169,170,252,199,0,144,74,209,74,229, 61,243,0,197,2,112,187,183,187,176,131,204,242,131,224,1,169,128,2, 176,0,255,65,84,146,19,243,87,128,148,128,34,193,20,132,2,243,145,0, 225,57,128,32,130,28,2,238,204,32,217,227,60,193,0,83,237,51,144,7, 221,221,173,193,1,60,221,59,204,8,130,17,221,181,225,14,145,0,185,136, 3,136,4,204,99,170,253,160,156,111,0,209,10,25,129,27,129,2,131,28, 203,127,192,3,203,160,51,18,160,116,129,1,229,13,131,18,191,135,32, 129,37,204,224,62,105,193,59,192,186,131,28,28,240,181,237,238,220, 128,2,131,62,145,0,237,13,238,236,221,237,255,20,176,0,237,30,192,33, 237,238,235,194,0,134,33,192,4,130,72,46,221,220,187,195,34,203,176, 12,177,170,193,13,191,219,192,44,220,130,196,208,15,131,16,201,0,131, 4,183,132,20,28,188,31,10,145,0,203,194,3,21,211,224,2,20,136,28,221, 128,216,238,237,130,16,118,131,2,220,209,58,198,0,130,26,255,147,30, 130,32,224,255,128,30,194,28,195,30,238,238,237,238,14,238,255,254, 239,238,144,0,208,1,176,0,170,254,128,2,252,16,236,160,2,236,224,3, 127,237,222,128,8,146,40,160,69,192,10,81,193,70,255,129,101,193,41, 193,9,134,4,129,16,163,1,196,0,111,44,239,129,52,47,6,163,26,131,28, 239,39,130,19,129,6,1,99,254,255,254,238,254,255,255,135,241,27,161, 29,205,238,255,237,128,2,192,28,0,148,0,1,1,224,238,237,238,254,255, 254,46,193,0,239,238,144,0,237,0,194,1,132,2,3,221,238,236,238,237, 255,252,225,4,138,241,1,64,222,221,237,128,6,237,162,0,4,236,238,221, 221,236,221,39,221,11,221,219,221,221,205,192,8,221,224,3,69,133,3, 205,35,220,205,204,144,0,203,211,32,128,4,192,4,237,194,2,221,221,129, 1,248,195,1,31,3,194,9,208,14,160,13,145,0,204,221,174,205,97,222,48, 222,146,2,193,1,128,18,99,238,255,242,19,129,24,205,238,255,211,1,162, 193,21,129,1,255,192,25,255,255,255,133,28,207,221,193,1,195,2,254, 239,177,8,161,25,160,32,69,194,6,204,128,8,254,255,253,164,33,237,126, 224,14,220,192,12,192,32,130,2,128,4,130,28,165,0,125,236,238,193,22, 224,18,192,0,128,5,144,0,203,163,194,26,193,1,220,224,2,204,204,219, 128,2,194,1,129,27,33,188,187,187,187,202,2,40,221,205,220,115,204, 146,8,203,204,118,172,170,44,128,10,48,238,144,31,130,36,124,172,170, 193,1,134,3,148,0,131,46,129,16,173,239,170,37,53,128,25,221,128,36, 198,2,192,59,221,51,130,5,160,54,221,193,41,131,42,224,47,205,165,131, 31,145,0,220,160,0,219,205,224,0,205,253,49,180,24,209,29,131,2,196, 54,79,74,192,36,170,17,194,0,221,204,170,69,203,221,172,212,192,2,99, 193,4,220,161,0,238,132,72,221,125,170,170,161,47,227,47,177,21,193, 32,241,64,222,238,200,66,193,55,165,74,129,32,236,192,31,193,0,81,48, 236,205,238,194,1,163,8,187,187,188,13,187,221,204,219,205,114,130, 4,203,226,240,50,131,2,227,85,159,0,76,187,187,186,160,70,8,186,187, 203,204,202,128,1,187,187,62,170,170,171,128,31,195,2,193,0,131,32, 134,30,252,188,101,183,53,2,179,102,1,50,221,223,237,193,2,15,2,221, 12,197,28,133,92,176,82,87,128,31,202,160,2,202,96,218,198,74,159,0, 70,117,193,30,203,224,32,193,0,3,170,192,1,203,205,213,1,141,32,128, 64,186,187,127,1,12,221,95,8,220,144,33,236,208,3,131,96,241,34,129, 2,253,193,0,195,30,129,36,194,128,164,18,193,2,129,31,218,103,224,12, 202,130,52,130,34,221,218,164,14,193,35,118,182,85,170,130,53,193,55, 136,56,187,8,131,28,254,203,200,26,193,2,43,147,25,168,98,156,0,130, 94,159,238,180,113,238,219,128,2,135,115,135,32,133,164,253,129,33, 88,128,31,209,67,193,192,147,0,161,161,254,248,130,172,128,156,192, 32,128,32,193,31,200,138,221,238,185,234,8,203,131,14,132,148,17,220, 221,251,131,68,195,0,130,4,211,164,134,36,20,188,47,6,199,197,28,131, 1,33,220,238,222,148,26,193,2,255,151,60,224,49,128,194,192,54,179, 91,192,19,128,58,128,2,190,128,3,128,151,221,240,185,131,185,192,158, 243,27,177,195,239,255,195,2,193,28,192,189,255,192,31,162,0,145,0, 191,129,5,227,1,253,144,198,227,188,131,8,193,194,162,39,127,208,41, 253,216,169,193,15,195,40,131,2,241,0,197,2,255,192,74,134,4,133,214, 247,40,11,137,8,195,3,131,223,255,194,27,11,192,8,197,2,150,91,201, 222,196,225,193,3,184,133,221,133,224,238,240,0,37,241,1 }; static MTB * mtb_KRK = NULL; void initMTB_KRK() { mtb_KRK = new MTB ("KRK", 4, 10); mtb_KRK->SetPackedData (mtbdata_KRK); mtb_KRK->Add (A1, WHITE, 554); mtb_KRK->Add (B1, WHITE, 621); mtb_KRK->Add (C1, WHITE, 635); mtb_KRK->Add (D1, WHITE, 606); mtb_KRK->Add (B2, WHITE, 711); mtb_KRK->Add (C2, WHITE, 782); mtb_KRK->Add (D2, WHITE, 718); mtb_KRK->Add (C3, WHITE, 879); mtb_KRK->Add (D3, WHITE, 839); mtb_KRK->Add (D4, WHITE, 767); } ////////////////////////////////////////////////////////////////////// // // KPK static const byte mtbdata_KPK[6552] = { 1,65,255,159,0,109,0,3,3,3,0,130,0,134,2,15,14,15,15,15,144,2,134,31, 1,7,0,0,63,1,160,2,148,127,1,31,31,142,8,1,148,8,1,97,7,7,224,5,128, 1,14,14,14,2,209,49,241,7,96,1,82,15,0,1,201,82,143,8,1,164,16,1,0, 147,8,1,0,223,48,130,1,131,16,1,33,17,33,15,3,255,51,80,50,64,50,64, 48,2,255,17,129,10,17,143,8,2,18,1,17,1,239,17,1,17,0,15,16,130,18, 16,255,143,8,3,16,67,36,16,131,10,36,16,128,131,26,15,0,1,65,255,159, 0,117,0,7,7,7,0,144,0,133,2,3,31,1,0,0,15,132,63,1,15,0,31,127,1,31, 88,31,63,226,3,63,243,0,129,7,14,15,84,15,15,145,7,2,148,8,3,131,2, 3,219,7,240,7,144,2,15,33,160,2,31,33,233,176,2,162,7,16,134,8,15,4, 7,5,34,3,15,11,130,2,3,31,23,132,16,173,47,4,95,4,191,15,0,145,6,2, 252,224,0,97,1,128,2,18,96,18,63,254,63,19,32,164,7,135,8,242,4,146, 20,145,22,242,7,133,2,131,32,160,1,242,7,63,63,99,123,127,127,150,7, 148,0,244,3,245,4,7,140,2,208,128,14,19,116,127,141,47,1,73,255,159, 0,109,60,63,1,0,0,6,133,2,0,14,14,14,0,0,37,145,7,132,4,31,127,1,31, 0,63,16,226,2,63,63,127,130,1,127,127,60,161,62,240,3,62,144,6,28,31, 31,31,82,145,7,4,148,8,7,131,2,7,15,128,4,237,15,128,8,65,160,2,63, 1,176,2,127,153,1,48,60,63,1,144,5,31,29,36,147,6,14,10,35,31,23,130, 2,7,87,63,47,132,16,95,52,191,52,19,239,50,145,4,49,145,6,4,224,0,97, 17,231,128,2,18,128,4,18,127,127,19,64,255,18,48,131,32,144,4,226,0, 146,20,144,0,48,231,132,2,99,160,1,242,7,127,127,115,144,7,239,133, 1,244,2,36,245,4,14,140,2,133,4,245,6,0,150,0,1,81,255,159,0,109,254, 227,0,0,120,127,32,1,0,0,133,3,0,28,28,28,212,0,0,133,2,15,132,4,63, 226,1,63,69,0,127,130,1,127,127,254,145,8,254,80,128,8,124,240,3,124, 144,6,56,62,62,169,62,145,7,8,20,14,131,2,15,31,110,128,4,31,32,97, 63,16,33,176,2,209,254,162,16,129,16,125,130,12,0,62,58,36,147,6,28, 20,35,62,46,130,2,15,95,127,95,116,191,68,35,66,240,21,239,66,145,4, 17,145,6,8,224,0,97,17,254,128,2,18,128,4,18,128,6,18,96,243,7,127, 255,255,131,32,144,4,226,0,144,6,130,1,96,158,132,2,3,127,127,243,7, 144,7,255,41,4,245,2,176,62,68,28,108,254,6,1,64,255,159,0,117,0,7, 7,7,3,130,0,0,14,15,15,7,7,128,1,32,31,31,31,160,1,0,0,63,63,134,63, 49,0,127,127,127,49,142,7,48,0,3,3,97,135,2,15,14,14,247,2,145,9,144, 8,18,32,15,128,8,33,166,176,2,95,0,1,35,0,1,160,16,130,1,63,14,14,14, 50,17,49,18,48,221,18,143,8,1,164,16,1,177,24,2,19,1,255,49,2,17,129, 10,17,143,8,2,19,0,241,18,0,18,0,18,1,0,15,255,16,130,18,16,143,8,3, 16,35,116,0,240,131,10,36,0,131,26,47,0,1,72,255,159,0,109,0,15,0,0, 0,161,0,137,2,7,32,7,31,31,31,8,145,3,7,63,63,63,160,1,0,31,46,127, 127,127,81,63,192,4,81,142,9,54,0,7,7,129,7,54,3,144,8,144,2,111,7, 15,64,144,9,31,65,176,2,162,7,164,16,135,7,14,147,16,0,2,3,0,175,3, 131,2,3,161,16,7,128,8,98,16,210,35,179,7,25,15,36,7,5,35,70,15,11, 130,2,3,31,23,192,6,129,16,219,47,1,240,7,95,1,160,7,191,1,191,59,145, 6,2,161,31,0,17,128,2,18,251,160,16,18,49,17,33,187,31,0,161,19,255, 145,36,131,1,128,8,132,2,129,32,18,242,7,16,128,82,174,39,1,72,255, 159,0,109,62,63,1,0,0,14,0,31,31,31,30,240,0,133,3,129,2,164,15,64, 15,224,3,31,31,128,1,127,77,127,127,160,1,0,63,192,3,1,127,10,226,4, 127,127,0,60,144,4,62,136,7,22,0,14,14,14,137,9,7,128,4,144,9,109,15, 31,144,8,0,63,17,176,2,127,153,17,64,0,60,161,16,16,0,28,146,160,14, 240,0,0,4,3,0,7,131,2,191,7,113,15,128,8,2,96,51,208,1,210,133,16,17, 145,24,29,147,6,14,10,19,70,31,23,130,2,7,63,47,129,4,48,223,95,65, 240,7,191,49,64,50,35,223,49,1,145,6,4,224,0,17,1,128,2,255,2,160,16, 2,161,31,1,178,23,131,28,129,32,255,130,8,242,0,0,130,1,0,132,2,113, 2,224,242,7,32,131,35,4,255,1,80,255,159,0,109,252,226,0,254,0,124, 0,127,127,127,126,126,0,0,0,29,62,62,62,60,240,0,133,4,129,2,30,78, 64,31,48,63,63,128,1,192,2,160,1,66,0,127,226,3,127,127,252,254,241, 7,20,254,0,0,120,144,4,124,136,7,0,42,28,28,28,137,9,15,128,4,31,128, 8,217,63,208,1,144,9,127,145,8,176,2,252,254,230,50,0,161,16,48,0,56, 160,14,240,0,74,0,8,3,0,14,131,2,15,113,252,31,96,2,96,51,128,16,19, 120,105,127,125,192,2,145,24,58,147,6,28,20,35,19,62,46,130,2,15,127, 95,129,4,127,32,191,49,240,7,50,35,128,20,34,223,49,1,145,6,8,224,0, 17,1,128,2,255,2,160,16,2,178,23,131,40,243,7,128,8,242,3,255,96,242, 0,0,130,1,0,132,2,129,32,2,128,131,6,244,7,255,1,64,255,159,0,181,0, 0,7,7,7,65,3,0,0,14,15,15,7,7,16,128,1,31,31,31,160,1,0,0,63,99,63, 63,48,143,7,8,0,3,3,80,15,136,2,15,14,14,2,145,9,144,8,2,94,16,15,143, 8,10,1,18,128,1,160,16,98,63,14,14,14,2,49,1,33,143,8,10,203,115,0, 35,1,0,3,1,97,127,49,15,0,95,11,0,51,84,16,224,131,10,4,16,15,6,1,68, 255,159,0,173,0,0,15,0,0,128,0,138,2,7,0,0,0,7,31,66,31,31,145,3,7, 63,63,63,161,1,24,31,127,127,127,64,143,9,8,0,7,217,7,128,7,39,3,144, 8,144,2,7,15,173,16,192,10,31,17,31,142,8,112,14,29,146,16,0,0,2,18, 144,7,131,2,3,125,161,16,7,96,19,208,1,17,95,1,15,36,4,7,5,3,15,11, 130,2,3,109,31,23,192,6,129,16,47,1,240,7,95,223,32,111,5,129,8,2,164, 31,33,49,33,240,49,33,1,17,14,1,68,255,159,0,173,0,62,63,1,0,1,0,0, 31,31,31,30,0,0,169,134,3,129,2,15,240,2,15,224,3,31,31,23,128,1,127, 127,127,161,1,63,208,3,112,80,135,5,60,144,4,62,136,7,0,14,14,179,14, 137,9,7,128,4,144,9,15,31,144,8,122,192,10,63,177,7,210,0,133,8,161, 16,62,128,7,206,28,224,3,240,0,0,4,146,8,144,7,131,2,191,7,81,15,128, 8,19,208,1,17,137,16,164,1,145,24,29,147,6,14,10,3,31,141,23,130,2, 7,63,47,129,4,16,95,190,33,240,7,191,137,32,3,129,8,1,81,255,4,240, 0,81,65,17,33,17,33,192,17,198,15,145,0,1,72,255,159,0,173,0,252,242, 0,254,0,0,124,127,127,127,126,126,0,0,3,0,62,62,62,60,0,0,134,4,83, 129,2,30,240,2,31,32,63,63,128,1,161,208,2,161,1,127,242,3,127,0,252, 254,10,241,7,254,0,0,120,144,4,124,136,7,21,0,28,28,28,137,9,15,128, 4,31,91,128,8,63,224,1,63,112,145,8,127,17,214,34,16,161,16,124,128, 7,56,160,14,240,0,69,0,8,34,0,0,14,131,2,15,126,97,31,80,35,208,1,133, 16,33,1,210,125,192,2,145,24,58,147,6,28,20,19,70,62,46,130,2,15,127, 95,129,4,32,255,191,97,240,7,33,20,129,8,17,97,191,17,1,8,240,0,1,17, 1,17,224,1,17,1,162,32,1,64,255,159,0,245,0,0,0,7,7,64,7,3,240,0,0, 14,15,15,7,130,7,128,1,31,31,31,15,15,143,7,17,8,0,3,3,3,0,137,2,15, 14,107,14,2,33,144,8,7,143,8,18,1,97,199,33,160,16,18,14,14,14,18,0, 234,127,19,32,19,100,0,20,7,31,16,1,66,255,159,0,237,0,0,0,15,0,161, 0,139,2,7,240,0,7,31,31,31,1,144,3,0,7,63,63,63,31,31,11,143,9,17,0, 7,7,7,89,3,144,8,43,144,9,7,15,112,15,143,7,10,14,145,16,115,144,0, 2,17,145,7,131,2,3,15,16,255,130,17,0,143,8,10,146,24,151,23,117,129, 16,50,128,240,7,15,7,1,66,255,159,0,237,0,0,62,63,1,1,0,0,0,31,31,31, 30,0,169,135,3,129,2,15,240,0,15,224,3,31,31,4,128,1,127,127,127,63, 63,143,8,0,0,161,60,144,4,62,56,0,14,14,14,101,137,9,7,128,4,144,9, 15,31,144,8,31,155,127,5,129,16,0,28,160,14,129,1,4,81,159,145,7,131, 2,7,31,130,4,128,17,32,143,8,10,255,240,5,2,240,0,2,132,2,129,16,2, 240,7,0,46,1,68,255,159,0,237,0,0,252,132,1,124,0,127,127,127,126,126, 0,0,0,13,62,62,62,60,0,135,4,129,2,30,76,240,0,31,32,63,63,16,224,2, 127,170,127,136,8,254,64,254,144,4,120,32,133,124,136,7,0,28,28,28, 137,9,15,92,128,4,31,0,63,240,1,193,0,140,16,0,109,120,126,48,65,56, 160,14,129,1,8,167,145,8,144,0,14,131,2,15,63,130,4,128,17,255,143, 24,3,130,16,130,8,240,5,98,240,0,2,132,2,192,81,2,137,32,1,104,255, 159,0,255,15,36,0,0,7,7,66,7,2,129,1,14,15,15,7,143,7,26,17,0,3,3,3, 138,2,15,14,14,18,143,8,27,1,3,3,51,7,7,50,128,7,111,24,1,107,255,159, 0,255,15,28,0,0,15,0,67,140,2,7,240,0,7,31,31,31,134,3,12,143,9,18, 0,7,7,7,72,240,7,31,184,31,143,16,19,10,130,14,130,8,2,11,15,128,15, 79,22,1,96,255,159,0,255,15,28,0,0,0,62,193,63,0,128,1,0,31,31,31,30, 171,136,3,129,2,15,240,0,15,240,3,31,143,8,9,67,241,7,63,137,7,0,14, 14,14,143,4,6,141,15,6,130,14,29,31,31,5,130,2,23,128,114,79,11,1,96, 255,159,0,255,15,36,0,0,0,124,16,127,127,127,126,128,1,0,62,62,106, 62,60,136,3,129,2,30,240,0,31,128,4,200,63,143,8,9,240,3,127,127,137, 7,0,28,113,28,28,111,6,127,6,130,14,58,62,62,176,53,130,2,46,98,63, 3,1,104,255,159,0,255,15,100,0,1,7,7,163,7,244,1,254,143,7,27,0,3,3, 252,2,0,143,8,23,1,104,255,159,0,255,15,92,0,1,15,15,194,15,143,2,6, 143,9,26,15,10,15,7,143,7,30,1,104,255,159,0,255,15,100,0,1,31,31,194, 31,143,2,6,143,9,26,31,21,31,14,143,6,22,1,104,255,159,0,255,15,108, 0,1,62,62,194,62,143,2,6,143,9,26,62,42,62,28,143,5,14,1,9,3,3,3,0, 145,0,7,7,68,131,1,255,15,37,7,7,7,130,8,14,0,15,14,15,15,15,0,0,28, 64,31,30,18,56,63,63,31,31,0,31,7,0,112,127,127,63,63,0,63,15,15,224, 255,255,127,127,44,127,31,31,133,7,0,151,16,147,8,15,32,14,14,6,17, 29,30,30,14,182,2,0,57,112,177,3,113,32,161,10,234,225,32,80,134,8, 1,36,1,20,17,1,14,14,14,130,1,28,30,30,109,1,1,160,16,161,3,1,80,1, 1,210,80,10,20,1,20,1,0,147,8,127,1,0,80,130,1,81,113,2,16,254,224, 6,138,8,3,16,2,16,2,16,63,28,30,28,18,0,18,144,31,129,8,255,193,7,10, 82,65,49,65,49,65,139,49,1,63,63,56,1,15,16,255,129,8,214,7,85,16,35, 84,0,19,252,160,24,130,11,144,16,33,48,2,24,1,12,7,7,7,0,145,0,133, 1,15,172,15,19,255,15,21,3,132,7,133,2,14,80,15,15,82,31,2,0,0,59,64, 63,63,18,127,127,127,63,63,100,63,15,129,5,176,1,31,31,227,5,63,8,63, 0,3,7,3,154,16,14,15,213,14,149,8,161,9,3,224,6,31,160,3,15,228,81, 192,11,145,7,240,7,31,63,67,63,57,0,2,7,19,128,1,18,2,15,127,3,3,242, 14,240,11,208,4,129,8,1,81,234,1,81,1,18,5,3,2,4,65,2,5,3,3,11,31,31, 28,109,17,23,225,4,16,47,33,16,95,19,34,63,63,191,131,24,2,4,128,7, 98,32,2,161,24,32,2,1,7,18,58,3,3,15,17,128,36,192,5,56,128,8,109,15, 63,16,241,26,127,17,99,255,237,32,160,3,17,131,1,7,98,17,3,149,224, 0,0,3,7,210,21,56,240,7,63,95,0,112,64,127,1,130,24,144,0,147,45,255, 128,7,138,1,146,29,18,241,32,145,8,241,7,1,192,17,1,20,255,1,66,255, 148,0,15,15,14,0,1,78,14,14,131,1,30,30,35,133,4,15,6,130,63,2,0,0, 7,15,15,138,6,49,28,30,30,130,2,69,119,127,127,134,34,176,3,127,127, 127,31,132,5,160,2,196,31,96,145,5,7,15,7,154,16,28,106,30,28,149,8, 129,4,7,224,6,63,176,12,210,31,17,160,6,63,212,15,0,28,132,8,82,4,15, 19,4,20,4,30,19,255,7,242,14,240,11,16,1,17,113,1,10,18,29,31,31,3, 129,6,10,3,144,4,4,4,10,3,7,23,63,91,63,56,17,47,32,1,95,17,88,0,191, 131,24,28,145,16,16,4,8,177,14,18,4,161,24,0,4,2,14,24,2,7,7,31,1,128, 36,63,127,95,127,112,241,29,127,144,7,241,26,18,130,24,126,49,4,224, 0,49,129,1,49,97,49,206,7,0,16,7,15,160,6,16,240,7,191,127,16,224,99, 147,9,160,36,145,18,144,0,251,208,48,130,1,128,8,98,80,147,48,63,241, 32,224,145,8,241,7,65,84,255,1,66,255,156,0,30,30,28,0,1,78,28,28,131, 1,60,60,35,141,5,5,76,123,127,1,0,0,242,0,32,14,70,30,30,138,6,56,60, 60,130,2,133,4,49,239,255,255,2,227,3,63,0,120,66,241,2,124,144,4,63, 63,63,62,145,5,34,14,30,14,154,16,56,60,56,66,41,126,126,126,49,15, 224,6,127,31,214,240,5,242,7,128,8,124,116,56,144,8,129,5,82,8,30,19, 8,20,8,60,19,222,14,16,1,31,128,7,113,49,18,129,125,130,18,0,56,58, 63,63,7,82,129,6,20,35,8,36,8,20,35,11,14,46,126,126,112,17,95,144, 7,84,17,191,131,24,124,145,16,3,16,56,139,62,2,8,16,28,2,8,161,24,17, 0,8,4,28,2,14,14,62,1,1,15,31,31,127,255,255,224,226,241,29,17,131, 24,1,56,62,62,2,253,8,128,1,1,33,1,33,1,14,156,32,16,15,31,224,5,16, 243,7,255,255,192,130,40,161,24,226,0,144,26,130,1,208,48,18,227,128, 8,18,32,18,126,126,15,18,128,160,23,132,52,1,84,255,159,0,45,3,0,0, 0,7,68,7,7,130,1,14,14,15,146,1,28,0,30,31,15,7,7,0,0,56,0,63,63,31, 15,15,7,0,112,16,127,127,63,31,160,1,224,255,255,184,127,176,2,31,141, 9,145,8,129,8,0,14,33,15,14,2,49,28,31,30,6,243,65,0,146,9,0,240,7, 15,0,0,152,112,134,8,0,0,148,16,6,15,14,136,14,130,1,29,30,30,146,9, 57,63,136,63,162,3,113,127,127,33,0,225,84,255,255,10,1,68,1,36,1,135, 14,35,1,28,30,30,82,160,16,110,145,3,1,96,17,1,224,6,26,4,181,1,4,1, 192,32,145,8,1,96,28,223,130,1,112,18,127,32,16,193,7,138,8,254,35, 16,2,16,2,16,2,16,47,63,63,56,17,15,32,129,8,217,39,255,130,4,16,3, 36,16,99,161,24,129,11,240,145,16,112,0,82,8,1,65,255,159,0,45,3,7, 7,7,0,196,0,240,0,130,1,14,15,15,50,28,64,31,31,146,1,63,63,63,31,15, 2,15,0,0,119,127,127,63,176,2,172,0,176,6,127,96,31,193,7,0,63,248, 0,144,8,129,6,133,10,49,129,2,0,31,68,31,31,146,3,59,63,63,145,9,7, 57,127,127,127,17,145,7,240,7,31,63,46,19,63,0,96,3,146,6,148,16,96, 219,14,21,241,0,3,208,4,129,8,15,16,243,81,17,81,1,18,2,7,3,148,128, 1,2,2,15,3,3,3,3,159,7,226,4,7,15,2,225,10,2,208,2,169,2,128,6,5,3, 2,4,2,5,5,3,3,11,31,31,28,129,8,23,182,1,48,47,0,49,95,1,192,2,218, 191,1,128,6,4,128,7,0,2,196,40,99,2,1,192,5,0,3,3,15,1,166,128,36,208, 5,56,192,2,15,63,193,32,144,0,215,127,179,23,129,8,255,130,22,15,130, 7,136,1,103,193,40,3,224,0,160,24,3,7,226,29,0,240,176,6,2,224,8,2, 130,46,1,64,255,159,0,45,3,31,31,31,30,2,0,0,0,7,15,15,14,240,0,98, 0,14,0,129,1,28,30,30,50,8,56,63,63,31,15,48,127,127,0,127,63,31,31, 0,0,239,255,89,255,127,176,2,0,193,7,96,63,0,248,132,8,145,8,241,0, 133,11,33,129,2,0,63,69,63,63,146,3,119,127,127,145,9,15,182,192,3, 1,63,129,8,16,0,81,146,5,59,7,15,7,130,1,148,16,80,28,21,222,242,3, 160,16,129,8,31,144,7,81,17,178,3,148,28,4,4,15,3,4,4,4,167,30,3,7, 3,7,15,0,129,8,225,34,225,10,18,0,29,31,31,3,82,129,6,10,19,4,20,4, 10,19,11,7,23,63,63,56,65,47,1,111,16,95,241,27,16,191,1,16,145,16, 20,32,4,8,14,18,4,196,40,4,70,2,14,18,7,7,31,17,128,36,19,63,127,127, 112,112,31,127,179,23,111,145,16,255,131,24,161,24,4,224,0,193,40,129, 1,217,114,161,43,80,7,96,128,21,7,15,216,160,6,176,32,240,7,127,144, 8,100,255,1,80,255,159,0,45,127,0,126,126,0,0,0,7,63,63,62,60,0,0,9, 0,14,30,30,28,240,0,0,28,136,0,129,1,56,60,60,66,112,126,48,126,62, 30,64,177,6,63,63,0,106,0,223,194,7,144,1,123,128,8,124,144,3,63,63, 63,63,33,145,8,241,0,133,12,81,8,129,2,0,126,126,126,50,239,255,5,255, 63,31,0,0,31,149,9,120,227,144,16,129,8,1,146,5,14,30,14,130,1,182, 68,96,56,37,241,0,15,144,7,129,8,220,63,0,98,124,32,130,5,20,8,165, 30,19,8,20,8,60,19,14,122,19,15,161,15,129,8,50,17,125,35,10,56,58, 63,63,7,129,6,20,35,144,8,36,8,20,35,14,46,126,90,126,112,17,95,1,16, 191,146,9,82,120,124,145,16,3,16,56,62,2,40,8,16,28,2,8,196,40,8,4, 136,28,2,14,14,62,1,15,31,13,31,127,255,255,224,96,81,255,143,131,24, 81,56,62,62,0,128,6,128,1,246,193,40,33,130,8,32,49,14,32,160,24,112, 15,31,224,5,176,32,243,7,255,1,74,255,159,0,109,0,3,0,0,0,34,7,7,7, 130,1,14,14,15,146,1,0,28,30,31,15,7,7,0,0,0,56,63,63,31,15,15,7,0, 3,112,127,127,63,31,31,15,143,9,7,130,145,8,129,8,0,14,15,14,2,49,31, 28,31,30,6,65,96,146,9,32,241,48,143,7,0,161,16,146,7,37,15,14,14,17, 130,1,29,30,30,50,57,63,63,21,162,3,113,127,127,143,8,3,1,20,1,33,20, 1,14,19,1,28,30,30,206,34,160,16,145,3,1,127,0,95,2,36,181,1,36,1,192, 32,65,1,0,28,23,130,1,63,63,63,49,15,16,143,8,3,255,16,51,100,80,3, 146,16,128,11,20,128,32,29,1,64,255,159,0,109,0,3,7,7,7,226,0,0,240, 0,130,1,14,15,15,50,32,28,31,31,146,1,63,63,63,31,1,15,15,0,0,119,127, 127,63,95,176,2,15,192,6,127,96,134,8,145,8,240,4,194,135,2,32,17,0, 31,31,31,146,9,33,59,63,63,113,7,127,127,127,123,240,7,15,161,7,0,135, 6,80,3,146,6,182,148,16,80,14,5,241,0,3,160,16,129,8,243,15,0,65,177, 7,74,2,7,19,148,128,1,18,2,15,19,3,19,3,253,7,16,1,19,208,2,1,121,5, 72,3,2,4,2,5,3,3,11,45,31,31,28,49,23,1,48,47,182,1,16,95,137,40,128, 6,4,132,7,164,24,109,2,1,192,5,17,3,208,5,130,36,31,40,19,15,63,20, 127,23,1,64,255,159,0,109,0,3,31,31,31,1,30,0,0,0,7,15,15,14,49,240, 0,0,14,0,129,1,28,30,30,4,50,56,63,63,31,15,48,127,0,127,127,63,31, 31,0,0,239,44,255,255,127,176,2,31,209,7,96,0,252,0,132,8,145,8,224, 0,134,11,33,241,2,0,33,63,63,63,145,3,0,119,127,127,101,145,9,15,208, 3,240,7,31,63,129,8,63,199,48,81,146,5,7,15,7,130,1,148,16,127,80,28, 21,242,3,160,16,129,8,161,15,81,165,17,162,3,28,4,4,15,3,4,41,4,4,30, 3,7,3,7,15,248,0,129,8,35,208,2,17,1,29,31,84,31,3,129,6,10,19,4,20, 4,130,10,19,7,23,63,63,56,65,218,47,1,16,95,1,16,191,130,29,69,0,28, 148,16,4,8,14,178,32,4,19,164,24,4,2,14,2,7,7,208,5,72,130,36,63,83, 31,127,87,1,72,255,159,0,109,0,127,0,126,126,0,0,0,7,63,63,62,60,0, 4,0,0,14,30,30,28,240,0,0,196,28,0,129,1,56,60,60,66,112,24,126,126, 62,30,64,192,6,127,63,21,63,0,0,223,145,1,127,0,123,71,128,8,124,144, 3,63,63,63,33,145,8,225,243,4,131,12,81,241,2,0,126,126,126,0,49,0, 239,255,255,63,31,0,94,0,31,149,9,120,144,16,129,8,1,146,5,59,14,30, 14,130,1,68,96,56,37,109,241,0,15,144,7,129,8,63,0,98,124,202,32,130, 5,20,8,30,19,8,20,87,8,60,19,14,19,15,161,15,129,8,160,50,17,125,35, 56,58,63,63,169,7,129,6,20,35,8,36,8,20,5,35,14,46,126,126,112,17,95, 164,1,16,191,146,9,120,124,148,16,56,69,56,62,82,8,16,28,178,32,8,17, 164,24,8,4,28,114,14,14,62,12,81,15,31,31,127,51,33,1,69,255,159,0, 173,0,0,3,0,0,17,0,7,7,7,130,1,14,14,15,0,146,1,28,30,31,15,7,7,0,3, 0,56,63,63,31,15,15,143,9,16,130,145,8,129,8,0,14,15,14,2,49,25,28, 31,30,6,65,96,15,7,226,143,7,9,161,16,146,7,37,15,14,14,2,34,29,30, 30,146,9,57,63,63,143,8,11,164,1,36,1,36,1,14,35,1,35,28,30,30,114, 63,63,63,31,11,250,160,16,83,20,192,32,3,20,7,31,8,1,64,255,159,0,173, 0,0,3,7,7,113,7,0,0,240,0,130,1,14,15,15,16,50,28,31,31,146,1,63,63, 63,0,31,15,15,0,0,119,127,127,51,63,31,31,143,8,0,145,8,0,0,136,2,132, 112,97,0,31,31,31,146,9,59,64,63,63,49,7,127,127,127,31,221,15,47,1, 16,3,146,6,148,16,16,14,236,21,242,3,160,16,81,15,16,95,3,2,229,7,19, 128,1,2,2,15,3,3,55,3,3,15,0,113,31,0,111,5,202,131,7,134,1,163,24, 3,15,4,31,2,32,31,31,63,15,0,1,64,255,159,0,173,0,0,3,31,31,0,31,30, 0,0,0,7,15,15,152,14,240,0,0,14,0,129,1,28,30,130,30,50,56,63,63,31, 15,48,0,127,127,127,63,31,31,0,0,5,239,255,255,127,63,63,135,8,0,156, 100,145,8,0,0,136,3,0,241,2,0,33,63,63,63,97,0,119,127,127,78,145,9, 15,224,3,63,31,136,5,1,146,5,59,7,15,7,130,1,148,16,0,28,5,244,242, 3,160,16,129,8,193,7,10,28,68,4,165,15,51,4,52,4,30,51,7,61,51,7,31, 48,33,214,23,29,14,165,161,24,24,14,67,7,31,20,63,16,18,63,63,127,7, 1,68,255,159,0,173,0,0,127,0,126,0,126,0,0,7,63,63,62,60,2,0,0,0,14, 30,30,28,240,0,98,0,28,0,129,1,56,60,60,66,12,112,126,126,62,30,64, 208,6,127,10,63,63,0,0,223,145,1,127,144,2,163,123,128,8,124,64,63, 63,63,33,240,145,8,226,4,132,12,81,241,2,0,126,126,128,126,33,0,239, 255,255,63,31,55,0,0,31,146,9,128,2,120,144,16,33,142,1,146,5,14,30, 14,130,1,84,112,219,56,53,241,0,15,144,7,129,8,63,16,114,114,126,48, 130,5,36,8,30,35,149,8,36,8,60,35,14,35,15,181,145,7,129,8,127,131, 20,39,62,36,28,167,161,24,40,28,99,14,62,36,144,7,64,16,127,17,1,67, 255,159,0,237,0,0,0,3,0,8,240,0,0,7,7,7,130,1,14,14,32,15,7,2,48,28, 30,31,15,225,7,143,9,25,145,8,33,0,14,15,14,7,129,8,0,28,31,30,6,143, 7,18,161,16,136,50,101,15,14,14,50,31,30,170,30,15,19,1,4,1,4,1,4,128, 7,15,16,1,64,255,159,0,237,0,0,0,3,7,88,7,7,240,0,0,16,130,1,14,15, 136,15,50,28,31,31,146,1,63,63,55,63,31,15,143,8,9,145,8,0,137,2,112, 11,33,0,31,31,31,97,7,16,176,63,11,16,3,130,1,148,16,0,15,15,236,14, 34,64,225,2,31,32,95,11,7,169,3,83,2,84,7,3,15,11,192,82,224,8,31,8, 1,64,255,159,0,237,0,0,0,3,31,33,31,31,30,128,1,7,15,15,14,49,240,0, 0,14,0,17,28,30,30,4,18,56,63,63,31,15,16,127,22,127,127,63,31,143, 8,1,0,116,145,8,225,0,137,3,16,241,0,0,63,63,63,104,1,15,16,15,6,31, 146,5,15,15,195,7,130,1,148,16,0,30,30,28,130,4,181,96,225,3,63,64, 127,3,29,116,14,169,32,145,0,4,4,14,19,31,23,192,2,224,8,15,0,1,66, 255,159,0,237,0,0,0,127,0,130,126,128,1,7,63,63,62,60,32,19,14,30,30, 28,240,0,0,28,0,16,33,56,60,60,34,112,126,126,101,62,30,32,224,6,127, 63,136,8,124,15,36,0,63,63,63,33,145,8,209,4,194,133,4,81,241,0,0,126, 126,126,33,214,31,240,2,45,127,113,62,0,146,5,48,30,30,14,130,1,148, 16,0,60,60,237,56,82,96,65,127,143,24,0,67,58,106,68,28,16,145,0,8, 68,28,3,112,62,46,34,224,5,39,1,107,255,159,0,255,15,28,0,0,3,0,8,129, 1,7,7,7,2,65,14,15,92,15,6,244,3,254,143,9,26,145,8,66,15,125,15,14, 143,8,22,130,6,160,16,19,36,7,0,47,24,1,104,255,159,0,255,15,28,0,0, 3,7,113,7,7,129,1,240,0,50,14,15,15,15,50,28,31,31,15,143,8,18,145, 8,138,2,138,0,50,31,31,31,127,19,2,131,15,84,0,5,52,2,68,15,79,16,1, 104,255,159,0,255,15,28,0,0,3,31,66,31,31,129,1,7,15,15,14,49,196,14, 0,49,28,30,30,50,56,47,63,63,31,143,8,10,0,4,145,8,138,3,138,32,98, 63,63,63,15,11,28,4,41,4,15,15,82,10,131,16,0,4,64,100,31,47,8,1,104, 255,159,0,255,15,36,0,0,7,63,66,63,62,129,1,14,30,30,28,49,196,28,0, 49,56,60,60,50,112,33,126,126,62,143,8,10,0,63,63,63,241,50,144,8,138, 3,32,18,126,126,126,69,15,11,62,4,8,30,30,18,20,40,131,16,0,8,100,62, 47,0 }; static MTB * mtb_KPK = NULL; void initMTB_KPK() { mtb_KPK = new MTB ("KPK", 1, 48); mtb_KPK->SetPackedData (mtbdata_KPK); mtb_KPK->Add (A2, WHITE, 137); mtb_KPK->Add (B2, WHITE, 160); mtb_KPK->Add (C2, WHITE, 177); mtb_KPK->Add (D2, WHITE, 173); mtb_KPK->Add (A3, WHITE, 140); mtb_KPK->Add (B3, WHITE, 166); mtb_KPK->Add (C3, WHITE, 193); mtb_KPK->Add (D3, WHITE, 204); mtb_KPK->Add (A4, WHITE, 104); mtb_KPK->Add (B4, WHITE, 130); mtb_KPK->Add (C4, WHITE, 161); mtb_KPK->Add (D4, WHITE, 174); mtb_KPK->Add (A5, WHITE, 76); mtb_KPK->Add (B5, WHITE, 89); mtb_KPK->Add (C5, WHITE, 112); mtb_KPK->Add (D5, WHITE, 124); mtb_KPK->Add (A6, WHITE, 49); mtb_KPK->Add (B6, WHITE, 53); mtb_KPK->Add (C6, WHITE, 66); mtb_KPK->Add (D6, WHITE, 68); mtb_KPK->Add (A7, WHITE, 29); mtb_KPK->Add (B7, WHITE, 27); mtb_KPK->Add (C7, WHITE, 27); mtb_KPK->Add (D7, WHITE, 27); mtb_KPK->Add (A2, BLACK, 204); mtb_KPK->Add (B2, BLACK, 237); mtb_KPK->Add (C2, BLACK, 239); mtb_KPK->Add (D2, BLACK, 249); mtb_KPK->Add (A3, BLACK, 207); mtb_KPK->Add (B3, BLACK, 244); mtb_KPK->Add (C3, BLACK, 249); mtb_KPK->Add (D3, BLACK, 251); mtb_KPK->Add (A4, BLACK, 164); mtb_KPK->Add (B4, BLACK, 181); mtb_KPK->Add (C4, BLACK, 211); mtb_KPK->Add (D4, BLACK, 216); mtb_KPK->Add (A5, BLACK, 118); mtb_KPK->Add (B5, BLACK, 135); mtb_KPK->Add (C5, BLACK, 152); mtb_KPK->Add (D5, BLACK, 174); mtb_KPK->Add (A6, BLACK, 79); mtb_KPK->Add (B6, BLACK, 92); mtb_KPK->Add (C6, BLACK, 113); mtb_KPK->Add (D6, BLACK, 123); mtb_KPK->Add (A7, BLACK, 51); mtb_KPK->Add (B7, BLACK, 56); mtb_KPK->Add (C7, BLACK, 69); mtb_KPK->Add (D7, BLACK, 72); } ////////////////////////////////////////////////////////////////////// // // KQKQ static const byte mtbdata_KQKQ[7580] = { 1,68,85,159,0,157,81,85,80,224,0,68,0,84,69,81,65,69,69,21,69,85,85, 65,131,2,85,32,68,35,90,31,130,4,85,85,69,84,34,80,160,2,15,8,69,81, 69,69,16,192,1,176,5,15,152,0,5,85,20,0,128,3,2,129,6,58,143,16,1,1, 81,129,10,164,0,128,2,5,129,12,223,85,20,80,21,130,14,145,16,3,144, 12,63,18,85,85,3,144,22,0,129,20,162,10,244,139,16,0,49,134,10,128, 28,1,148,15,69,195,85,160,11,157,0,89,85,80,17,177,3,251,208,16,133, 18,208,17,194,19,128,6,130,2,17,20,253,128,32,130,24,131,4,129,12,63, 1,16,128,14,69,187,209,2,69,4,131,42,131,16,128,18,16,130,30,191,132, 4,111,1,4,129,36,160,5,192,28,130,14,129,6,111,128,8,65,130,48,128, 2,65,132,52,162,0,143,16,1,253,83,128,54,132,24,128,8,129,34,129,2, 130,10,64,187,137,4,131,36,68,128,1,129,60,95,3,16,131,54,255,160,16, 192,48,133,8,129,66,160,18,143,16,2,130,28,128,4,255,210,27,136,14, 133,2,131,68,211,71,130,66,133,64,177,2,247,128,18,130,24,161,1,180, 4,45,64,133,72,177,40,255,143,16,1,132,20,129,56,133,14,135,48,133, 2,136,4,129,54,254,132,92,98,4,129,72,6,130,80,161,18,157,0,1,88,85, 159,0,13,81,143,2,77,143,16,15,84,84,0,85,80,0,1,85,64,84,65,0,81,65, 69,65,21,81,85,84,20,85,84,1,85,22,65,17,5,16,85,85,68,85,24,21,85, 85,30,80,84,69,85,18,128,8,176,0,128,6,108,81,81,160,2,51,80,48,16, 81,112,69,69,160,12,208,3,152,0,65,84,4,1,0,21,0,21,85,68,84,69,97, 240,3,69,160,9,11,65,84,80,1,200,240,7,128,4,133,18,80,5,161,8,80,85, 17,69,81,65,5,129,12,80,21,86,144,128,2,128,14,85,69,80,1,17,80,136, 84,16,84,64,81,32,21,69,8,21,1,68,80,80,18,84,65,48,65,65,69,225,33, 141,16,84,0,85,195,0,241,2,3,65,84,64,1,160,2,88,192,24,81,128,22,81, 129,14,139,6,85,80,72,17,80,128,32,64,85,241,25,65,21,27,17,84,80,68, 1,128,28,85,144,2,96,129,18,17,3,128,22,85,81,21,1,207,85,128,4,33, 84,65,129,36,143,16,2,130,14,142,177,47,51,80,4,85,128,46,129,2,48, 141,5,128,18,16,84,4,244,1,130,32,88,206,180,58,243,0,129,6,80,68,161, 1,160,16,129,22,14,84,80,16,84,17,163,21,160,0,129,10,119,65,84,130, 4,130,40,143,16,2,4,129,60,242,2,124,0,97,129,8,128,14,193,24,176,44, 65,64,99,85,16,192,66,147,20,21,65,81,128,36,110,240,8,64,193,7,50, 88,226,11,225,17,193,0,6,65,80,80,16,80,16,129,30,162,18,31,21,81,80, 80,177,31,130,2,49,143,16,1,52,130,14,68,84,242,7,113,64,160,2,85,162, 17,226,70,84,128,32,80,0,84,208,13,229,68,128,50,160,12,128,78,80,1, 129,36,80,139,194,9,128,28,68,64,4,129,8,64,209,4,48,129,14,85,88,226, 31,165,18,65,68,80,159,64,160,24,85,0,128,50,227,22,142,16,112,244, 129,90,208,67,240,83,80,96,84,176,30,81,203,81,129,23,34,0,84,128,1, 69,128,32,87,130,64,1,129,38,68,128,50,65,129,2,129,54,106,96,80,96, 162,18,20,80,16,130,78,240,81,225,13,128,18,209,94,6,1,93,85,159,0, 29,69,143,2,61,143,16,32,160,0,1,2,129,1,84,85,84,84,84,81,162,2,5, 5,21,85,68,85,21,81,81,128,129,4,240,1,85,80,84,20,85,81,32,68,80,21, 18,84,21,85,64,42,84,16,81,240,5,17,18,80,16,12,85,80,81,80,68,129, 8,159,0,12,68,34,85,68,0,129,1,81,85,16,192,10,194,80,130,14,105,4, 81,64,5,0,0,69,16,17,4,65,1,1,0,16,1,68,84,0,161,12,85,68,69,9,20,21, 4,84,5,128,4,0,84,0,161,16,0,17,64,16,16,16,4,8,16,4,84,0,80,97,0,68, 0,0,65,64,64,16,64,68,80,32,8,84,5,64,5,5,21,21,32,69,84,5,142,18,68, 84,1,1,213,69,80,144,8,1,240,7,16,16,84,241,129,32,192,29,208,0,99, 90,4,64,68,0,17,0,21,64,68,16,4,4,24,4,68,16,0,224,15,128,3,85,4,0, 21,68,84,20,81,4,65,0,48,68,5,80,128,4,164,16,4,1,64,97,0,5,160,0,112, 0,17,0,65,129,194,29,138,10,16,0,4,5,1,85,0,22,68,84,65,84,69,4,85, 192,65,128,2,48,69,81,68,85,4,44,65,5,17,161,5,80,0,143,18,1,16,20, 64,16,5,17,65,0,194,32,68,176,64,16,68,129,29,160,18,84,4,81,44,6,84, 2,128,28,21,38,142,16,64,6,0,16,5,4,21,1,240,42,2,3,68,80,64,84,69, 16,69,176,37,128,193,32,224,33,85,1,1,5,65,21,66,17,66,128,2,64,5,16, 17,128,18,56,4,5,4,192,1,164,18,14,64,64,4,64,5,65,5,68,0,84,6,22,16, 10,4,37,160,16,17,84,142,16,70,0,0,240,10,21,4,17,84,114,234,64,128, 31,209,74,128,30,4,192,62,5,16,56,16,17,64,18,128,54,32,21,4,49,66, 68,0,226,48,128,18,16,5,16,193,65,208,0,79,1,6,64,10,16,37,97,160,44, 65,164,16,47,1,0,5,64,21,192,176,71,19,34,0,69,65,69,21,82,68,21,208, 42,85,36,1,4,20,111,4,4,128,54,160,0,16,128,65,1,128,18,14,112,21,16, 66,16,144,12,144,6,80,104,64,5,208,35,17,80,128,2,1,64,85,159,0,162, 1,85,85,81,85,4,81,84,81,81,81,69,130,2,5,53,85,85,21,161,2,16,21,240, 1,21,13,208,0,17,85,85,84,32,19,84,236,131,6,144,4,128,5,48,80,129, 4,129,8,85,3,69,20,85,5,0,5,0,53,134,132,10,152,0,21,85,84,80,240,7, 79,9,239,64,130,1,128,14,130,16,85,100,66,82,226,37,66,136,6,133,22, 1,64,21,0,5,21,81,81,68,81,17,130,8,80,99,129,2,85,209,14,130,12,80, 65,85,113,142,208,7,161,0,85,85,68,132,32,128,28,143,18,4,207,68,83, 128,14,85,85,114,1,20,221,130,16,7,81,65,17,225,13,132,10,64,142,3, 38,80,5,21,0,145,15,131,4,24,66,85,85,4,163,28,193,0,21,85,61,4,81, 21,209,31,130,12,81,142,18,17,253,116,49,128,1,128,16,176,24,130,2, 130,36,65,111,130,14,21,242,9,113,72,83,161,9,192,0,56,128,16,85,21, 2,209,38,130,20,84,85,192,16,228,15,0,21,85,2,81,21,207,65,229,17,129, 18,68,68,129,6,130,50,128,12,95,47,1,69,48,84,133,54,128,16,130,14, 128,2,225,225,18,17,39,114,16,64,21,16,120,112,81,133,4,80,178,56,162, 14,69,21,51,21,0,81,131,8,132,2,85,66,34,189,195,53,130,18,17,80,130, 46,195,6,29,65,198,130,14,130,70,208,16,69,84,8,96,224,6,33,69,69,17, 131,32,16,0,21,64,255,129,22,192,25,210,22,128,16,128,38,131,64,129, 4,115,245,130,96,21,130,32,18,128,2,66,50,65,48,38,68,69,128,10,134, 82,1,88,85,159,0,29,69,143,2,61,143,16,34,84,1,0,85,85,64,84,65,81, 65,69,64,65,21,193,2,84,5,85,85,68,225,85,19,130,4,224,2,80,84,69,85, 97,18,84,16,192,0,64,84,81,81,176,160,2,3,80,0,128,6,81,69,69,0,85, 68,84,4,0,21,0,85,116,85,81,136,10,159,0,26,128,15,5,176,10,85,32,80, 85,69,130,8,68,84,65,21,200,86,48,128,14,85,69,49,85,65,203,84,50,65, 85,69,129,4,80,3,69,65,81,128,16,81,0,84,48,69,212,128,20,63,2,128, 6,1,1,84,0,81,89,69,81,129,8,4,129,32,128,14,85,65,182,160,0,127,1, 68,49,64,85,128,28,97,214,17,51,0,85,128,8,85,128,4,49,129,84,224,7, 69,65,85,68,86,64,252,130,16,160,16,128,12,31,3,130,14,144,0,21,16, 96,84,4,244,1,128,6,70,85,73,65,115,84,17,129,2,224,11,239,59,1,68, 80,16,199,132,4,160,0,129,8,65,84,68,34,129,30,177,134,28,129,51,69, 128,12,13,100,84,97,227,130,14,193,24,176,20,97,64,84,16,129,32,182, 160,16,129,28,85,32,240,32,64,161,10,128,4,29,70,84,73,4,129,6,130, 2,143,36,2,68,241,96,33,128,10,17,133,28,81,84,69,81,224,20,69,143, 16,1,96,130,14,81,85,85,158,225,24,49,0,84,208,11,128,55,176,2,130, 42,254,1,131,50,193,13,130,28,99,209,12,128,2,128,18,251,16,129,8,49, 161,14,143,44,1,130,28,65,129,84,222,223,99,1,128,16,130,14,80,33,128, 4,18,128,38,245,65,128,92,144,90,129,80,82,68,128,50,65,158,67,34,80, 68,227,31,130,12,33,130,64,92,85,85,128,18,64,129,10,33,129,2,1,64, 85,159,0,173,69,5,64,85,80,1,5,16,17,4,65,1,1,0,32,160,0,69,21,128, 2,21,64,68,16,0,4,4,4,1,4,0,4,69,0,85,106,85,80,85,0,17,64,0,16,16, 16,4,16,1,16,69,128,81,32,81,0,68,0,65,64,0,64,16,64,4,64,21,1,64,0, 1,85,85,5,0,17,0,65,1,0,1,1,1,4,85,85,81,0,155,12,1,80,1,84,85,84,0, 68,17,1,240,7,16,16,64,142,16,17,8,64,5,84,85,64,166,16,69,69,13,64, 21,84,85,0,118,128,4,85,234,32,144,8,3,16,81,32,80,5,238,69,129,12, 72,142,16,5,83,21,129,14,128,80,96,80,1,68,4,65,16,128,64,142,18,101, 5,64,69,80,21,204,85,22,128,6,17,80,128,3,5,69,232,65,128,4,176,12, 5,69,128,32,80,1,103,5,0,5,142,16,17,80,1,128,3,153,3,128,8,17,84,8, 80,65,80,113,192,18,85,196,32,142,18,129,16,17,0,84,135,69,80,65,80, 69,0,176,18,67,156,128,56,48,17,0,69,30,224,11,80,102,5,17,38,131,14, 68,4,37,129,24,48,84,65,16,38,128,10,5,80,5,59,64,68,0,196,32,142,18, 129,16,65,160,15,188,20,131,42,65,96,115,143,64,1,128,14,16,199,4,37, 130,38,65,65,16,37,131,40,195,144,33,36,129,16,84,5,16,4,37,248,130, 48,128,31,144,12,194,32,142,72,128,42,80,5,206,1,70,143,80,2,80,65, 177,71,51,131,14,124,64,64,53,131,2,144,87,4,131,32,4,207,4,5,129,16, 84,17,32,4,130,48,192,128,63,176,61,194,32,1,88,85,159,0,29,69,143, 2,61,143,16,31,1,80,0,85,80,1,84,5,1,16,0,72,64,0,0,69,5,16,5,80,9, 17,0,65,0,1,161,0,5,21,0,16,21,80,69,16,4,4,4,4,1,4,0,4,5,84,16,85, 0,80,17,64,16,16,16,4,16,16,1,16,5,80,224,1,81,80,69,0,0,65,64,64,16, 64,4,64,1,4,0,0,1,85,169,85,1,2,146,8,1,1,4,85,85,81,138,14,100,5,1, 224,13,80,17,1,240,7,16,68,16,64,141,18,4,17,64,162,16,16,17,17,4,65, 1,128,16,69,68,64,50,114,64,68,19,128,4,85,90,16,132,0,20,4,68,64,81, 128,2,81,77,0,68,19,69,0,129,12,128,13,0,201,35,142,16,132,4,84,0,35, 4,16,128,128,14,128,2,80,1,68,4,65,16,0,64,64,69,85,64,17,80,5,0,85, 85,64,85,81,81,69,69,0,65,21,4,4,64,69,80,21,38,85,85,0,36,69,16,64, 128,9,217,0,144,8,2,65,16,176,12,0,80,22,3,4,1,64,160,28,85,70,142, 16,193,16,224,43,24,4,64,64,17,84,152,24,128,8,65,80,19,194,32,69,84, 16,96,5,80,69,193,8,64,85,65,44,69,81,21,128,22,17,128,4,70,69,200, 64,128,6,72,4,8,129,16,81,1,232,5,160,15,65,126,64,225,11,81,1,206, 84,160,3,17,132,0,129,14,23,129,24,173,84,160,2,64,85,4,128,36,32,0, 16,196,32,69,80,96,128,16,81,85,64,165,84,162,18,21,0,65,80,32,0,222, 176,18,17,131,42,81,128,64,19,143,48,1,130,28,192,17,20,128,16,1,80, 65,81,17,99,68,4,19,131,40,84,65,16,20,141,33,224,19,5,64,68,19,132, 32,17,130,176,27,0,0,84,69,68,96,96,251,81,160,1,208,0,160,18,129,42, 129,28,65,144,4,206,225,15,143,64,2,161,16,16,4,83,130,16,160,2,103, 65,16,83,115,81,1,176,49,18,13,131,32,84,5,16,4,19,33,84,53,32,64,16, 19,84,65,176,61,68,0,193,32,1,40,81,85,159,0,109,84,192,0,0,85,0,85, 69,84,69,81,69,69,69,129,21,255,7,34,84,5,85,85,68,85,195,131,8,130, 2,224,8,84,84,69,85,66,134,144,2,17,68,84,85,81,160,2,67,224,80,131, 6,144,4,142,10,80,84,21,0,161,21,128,18,68,111,5,84,84,81,65,143,240, 7,143,4,9,1,85,86,18,192,26,98,221,132,2,129,14,129,16,68,21,129,8, 145,6,17,100,131,32,80,128,20,130,22,5,0,129,2,85,33,68,69,17,130,12, 84,1,65,84,192,96,192,22,80,85,17,84,84,65,152,5,176,12,85,84,208,7, 161,0,84,85,225,17,132,32,131,8,142,18,80,1,17,86,92,98,65,16,85,3, 17,131,36,85,59,85,86,129,130,16,160,16,144,4,65,97,199,129,14,241, 66,131,10,84,1,5,176,6,145,0,216,17,128,4,192,4,4,130,2,130,20,86,85, 112,9,81,177,24,128,8,194,0,84,84,17,120,68,84,208,17,193,1,240,11, 143,18,0,68,1,159,69,132,4,81,65,129,16,209,25,130,64,129,38,112,129, 12,5,130,28,145,26,144,2,21,85,68,138,33,129,14,21,84,20,128,2,5,130, 16,56,64,85,16,128,53,176,7,144,20,21,84,8,69,1,81,84,65,245,5,85,21, 22,86,84,9,68,129,20,64,163,16,129,18,127,17,84,128,6,130,50,128,48, 159,72,0,208,13,129,14,156,112,130,52,84,5,130,28,128,6,225,26,21,0, 85,80,33,64,84,16,84,4,64,81,65,130,2,17,20,84,64,0,2,84,64,85,81,68, 68,81,16,173,81,129,42,81,129,8,84,131,32,64,1,246,131,16,128,44,17, 128,18,115,85,208,20,35,252,69,96,130,64,194,38,49,128,6,128,32,81, 242,69,128,57,16,128,14,241,63,69,17,241,3,32,17,0,32,96,84,16,16,4, 68,17,1,130,65,84,65,0,129,52,65,62,84,69,21,145,58,130,32,176,8,131, 64,130,80,188,68,129,10,80,129,60,116,83,50,85,44,86,68,9,130,16,4, 224,3,161,18,1,40,81,85,159,0,44,21,143,2,45,17,81,0,81,85,81,1,85, 85,81,81,26,21,69,21,21,237,3,15,16,17,192,0,0,80,5,84,85,1,81,4,69, 17,5,21,5,85,129,26,80,21,84,192,128,3,19,130,4,85,84,85,65,81,100, 20,85,18,144,4,80,81,129,6,68,24,69,21,85,5,224,3,171,32,17,81,3,17, 0,85,0,85,85,69,132,10,8,143,18,31,68,4,21,80,160,16,64,68,0,16,4,4, 4,1,4,17,17,32,4,85,90,0,0,17,64,16,20,16,16,4,16,128,4,81,128,2,81, 1,0,68,0,65,64,64,16,64,168,128,14,130,32,21,80,85,80,17,1,116,68,1, 50,144,4,240,7,4,142,12,81,50,4,85,80,128,4,192,24,69,81,160,13,8,17, 65,4,17,80,240,20,64,5,13,16,17,4,65,1,160,3,140,6,16,153,64,128,1, 0,84,163,16,16,69,80,35,176,30,0,80,67,17,81,69,130,16,0,160,14,65, 17,5,81,21,17,8,115,0,1,128,12,70,142,10,64,5,128,14,6,50,1,68,4,65, 16,130,18,162,12,0,80,69,16,21,20,85,25,4,11,36,5,80,69,80,144,57,0, 194,32,49,143,8,0,4,65,128,4,102,17,89,1,32,128,16,81,85,176,25,85, 21,5,17,199,21,128,22,224,11,84,1,21,192,48,81,1,141,8,145,0,128,65, 81,17,84,1,54,17,1,5,1,80,65,80,226,240,18,195,32,128,63,128,66,80, 85,16,192,5,132,16,208,10,25,16,36,17,128,20,17,120,0,84,115,143,42, 0,192,70,128,16,17,80,88,21,65,160,14,21,64,128,28,84,1,118,68,0,163, 16,15,1,128,14,81,240,56,67,44,17,1,4,128,54,84,144,33,3,17,39,4,5, 5,80,5,64,144,8,193,32,32,133,36,16,81,162,18,85,25,64,36,178,65,128, 22,65,176,27,160,30,0,80,66,136,5,192,96,80,17,65,241,77,17,0,142,0, 224,25,84,5,4,164,16,79,3,0,110,65,16,3,17,80,0,177,49,1,0,17,4,4,5, 81,5,84,5,76,16,4,3,17,16,128,54,160,0,64,106,16,0,194,32,130,18,65, 66,69,161,18,1,32,81,85,159,0,108,21,84,65,165,0,65,5,17,0,65,0,1,1, 16,1,4,1,16,143,10,46,16,21,0,0,85,64,21,64,68,16,4,4,2,4,1,4,0,4,16, 85,128,2,0,85,0,17,64,16,16,16,4,4,16,1,16,16,85,170,33,68,0,0,65,64, 64,16,64,4,64,67,85,85,171,32,80,4,0,5,224,18,164,144,4,240,7,4,112, 85,69,138,4,84,0,5,64,5,81,85,80,1,68,2,4,65,16,64,64,64,0,142,16,7, 69,0,21,81,85,0,166,16,129,18,118,128,2,84,53,16,81,80,53,192,1,75, 5,65,160,14,5,0,195,32,20,129,12,131,24,141,16,85,85,64,5,80,128,4, 160,21,129,14,64,128,2,64,5,16,17,19,4,65,1,1,141,18,144,21,0,218,128, 1,21,128,6,69,50,116,21,160,7,49,81,5,5,128,25,35,16,5,0,233,32,208, 22,36,142,32,69,224,43,5,80,131,128,3,3,17,85,0,69,80,8,248,130,8,192, 18,160,12,194,32,142,18,129,16,69,0,231,80,69,96,128,32,17,0,69,128, 38,48,48,68,0,69,143,48,1,69,65,21,102,68,4,37,131,14,16,17,37,129, 10,58,80,5,64,144,8,36,129,32,21,144,11,238,84,195,32,141,18,131,16, 65,144,4,19,131,42,118,4,1,5,143,64,2,0,16,5,97,115,65,5,145,33,4,130, 40,16,4,5,90,128,12,21,128,36,16,5,130,48,69,144,45,195,68,195,32,129, 4,65,5,1,1,37,241,128,8,160,44,177,71,35,143,16,3,5,64,64,246,37,131, 14,176,103,4,132,18,4,5,131,32,108,16,16,5,130,54,69,144,87,52,1,64, 85,159,0,29,81,85,84,1,64,4,5,1,16,0,64,0,2,81,0,85,68,5,64,17,0,65, 0,192,1,163,0,128,2,21,64,69,16,4,12,4,4,1,4,0,32,48,85,1,64,17,64, 16,16,16,4,16,64,224,6,16,48,81,64,69,0,65,1,64,64,16,64,4,64,1,64, 144,143,16,30,29,65,5,128,12,5,16,17,36,4,65,1,2,65,21,80,21,64,64, 68,165,16,65,85,100,85,64,72,85,0,86,65,81,64,81,0,192,68,85,143,14, 32,84,1,80,85,80,0,1,68,4,65,16,64,64,64,4,0,65,17,68,5,80,8,65,6,69, 68,21,80,85,0,6,128,4,181,85,112,84,5,64,81,80,80,32,37,65,1,128,42, 1,85,85,5,254,0,210,40,160,1,193,44,136,46,129,14,224,2,144,8,160,1, 240,7,16,142,18,65,84,17,64,64,5,85,166,16,97,5,68,69,64,108,21,85, 70,128,16,17,209,28,69,65,226,65,128,4,144,12,5,65,1,68,128,12,96,5, 0,5,110,17,84,5,80,127,1,84,128,3,3,128,8,128,14,161,18,195,32,104, 143,36,1,5,128,60,6,97,129,16,17,0,215,84,117,128,8,65,128,4,80,21, 128,56,56,128,32,17,0,21,14,128,28,80,5,193,17,70,128,22,65,64,17,68, 4,141,38,128,24,64,65,16,198,32,142,18,17,107,128,36,17,144,11,36,97, 129,16,65,160,15,142,36,129,56,64,1,65,144,4,35,62,3,1,84,65,80,17, 16,4,5,62,131,14,65,16,5,130,2,240,60,5,128,26,143,5,128,17,4,64,68, 195,32,143,54,1,129,16,177,118,131,42,1,86,79,1,1,80,65,251,177,71, 83,131,14,128,55,36,131,2,1,38,48,3,4,4,37,130,64,17,16,16,96,64,16, 195,32,157,0,1,64,85,159,0,29,65,85,84,1,64,4,5,81,17,0,64,0,2,65,0, 85,68,5,80,17,84,65,1,96,1,0,162,0,128,2,21,64,69,80,6,5,8,4,2,4,0, 32,48,0,85,64,17,80,17,16,16,4,10,16,1,16,0,16,48,81,128,4,0,65,64, 64,16,64,4,64,1,192,64,143,16,30,31,126,1,17,68,5,64,4,85,80,5,16,17, 4,194,32,65,128,68,128,32,85,80,21,64,68,16,8,4,4,4,1,4,112,85,106, 2,85,80,85,0,17,64,16,34,33,68,68,81,96,81,0,68,0,32,34,65,0,128,42, 1,85,85,5,4,0,17,0,65,0,1,160,1,85,104,85,81,137,12,64,80,224,2,84, 0,80,17,1,240,7,16,142,16,65,68,17,8,64,5,85,85,64,164,16,1,4,2,68, 69,64,21,85,85,0,116,110,65,16,48,128,5,0,144,8,1,128,6,72,69,64,144, 12,0,80,3,1,1,224,68,129,12,70,142,16,16,84,5,80,76,1,84,22,1,64,129, 14,161,18,80,97,1,68,224,11,141,18,9,4,100,5,164,128,60,22,1,33,17, 80,22,65,49,64,68,65,128,4,22,1,8,68,28,128,32,81,1,5,160,15,17,46, 64,3,84,17,80,5,81,1,84,160,3,46,1,129,0,128,8,17,193,18,3,129,24,50, 64,65,80,198,32,142,18,16,100,129,16,52,17,0,84,51,112,65,128,6,69, 233,0,176,18,49,128,20,5,33,17,0,199,51,143,48,1,224,11,80,5,17,36, 16,12,128,14,81,17,68,4,35,18,1,52,84,65,16,4,48,5,128,36,5,50,64,68, 0,194,32,142,18,64,100,17,227,65,192,31,34,131,42,81,1,65,0,207,227, 15,143,64,1,16,16,4,19,130,16,160,2,206,128,59,98,3,81,1,176,49,50, 3,31,84,5,16,4,51,132,48,160,47,144,12,128,192,32,157,0,1,64,85,159, 0,29,64,85,68,1,64,3,5,81,17,80,65,128,0,161,0,0,128,2,5,80,17,84,65, 81,1,128,0,18,64,85,4,21,64,69,3,80,5,84,5,1,4,0,16,8,32,84,64,17,80, 16,8,16,20,2,16,0,16,32,80,128,4,65,6,80,65,16,64,4,64,240,5,159,0, 31,192,69,95,61,143,32,29,4,68,1,80,85,64,80,1,128,28,16,0,64,0,0,73, 0,17,64,85,80,192,32,0,65,16,66,68,4,21,48,21,80,69,17,16,4,4,4,112, 17,4,84,0,16,85,80,17,64,16,16,16,4,4,16,0,68,4,80,224,1,81,0,80,69, 0,65,64,64,16,64,129,64,208,36,64,1,85,169,85,1,84,146,8,1,193,12,81, 136,14,0,208,8,80,2,1,85,1,84,1,17,1,240,7,130,16,141,18,0,65,4,17, 64,162,16,0,16,17,4,65,1,1,0,4,36,68,68,64,66,64,68,65,64,150,16,128, 4,85,90,64,0,2,128,6,34,68,64,81,128,2,81,0,68,1,16,0,1,68,0,129,12, 85,85,5,249,0,1,142,16,128,20,224,29,128,4,84,0,12,65,0,64,4,16,128, 14,128,2,80,0,1,68,4,65,16,0,1,4,186,65,128,60,5,160,35,50,128,22,4, 96,195,21,160,7,2,0,16,68,16,128,4,228,161,9,144,8,145,30,128,6,69, 80,176,12,0,199,80,65,129,28,64,1,81,54,142,16,24,128,14,80,5,81,54, 128,18,64,64,99,17,84,6,96,1,64,65,128,76,139,4,49,96,5,80,6,0,208, 38,134,130,80,36,0,64,68,64,128,6,39,35,32,4,8,97,81,1,5,192,15,186, 193,0,142,32,64,225,11,32,192,3,84,160,94,12,132,0,64,65,81,38,130, 16,1,180,84,32,64,34,130,32,5,128,66,69,211,0,2,97,96,130,96,0,84,2, 222,224,94,64,48,0,176,18,16,130,42,1,118,17,0,227,15,143,48,1,130, 28,17,18,82,124,1,80,16,144,73,16,35,224,19,65,238,16,18,35,112,5,192, 31,1,133,32,235,17,48,1,16,96,1,65,48,0,64,1,0,1,85,17,84,17,0,85,0, 0,85,1,1,4,1,16,1,64,64,85,159,0,29,1,85,16,5,16,6,17,84,65,85,1,0, 162,0,128,2,0,21,64,68,84,4,84,4,2,96,4,0,16,32,84,0,17,84,0,16,84, 16,4,16,1,16,0,128,16,32,80,0,68,84,65,84,11,64,16,64,4,64,129,14,81, 191,14,30,67,12,21,47,43,1,80,17,84,240,0,72,160,32,65,208,23,1,4,143, 32,31,17,16,0,5,85,85,84,5,84,17,4,72,65,1,81,68,16,144,12,84,21,4, 84,68,16,4,4,4,192,42,17,128,16,128,12,84,84,84,17,64,16,136,16,193, 32,68,16,80,128,2,80,84,26,68,0,65,64,32,141,10,0,208,36,149,21,129, 50,0,68,208,39,4,142,18,1,0,208,8,80,1,84,85,84,1,68,16,4,65,16,64, 142,8,1,4,16,20,68,0,21,86,160,16,64,67,16,28,16,17,0,84,128,2,224, 48,65,1,185,65,128,4,80,96,112,1,1,81,9,132,64,85,5,0,17,193,32,0,16, 177,240,54,33,21,66,129,14,1,1,84,176,0,144,8,1,192,1,208,8,64,4,84, 27,1,85,85,80,18,144,4,65,128,64,72,192,32,64,128,65,4,65,143,22,1, 16,0,88,17,86,32,0,114,128,8,65,0,80,68,86,32,0,98,1,88,17,119,86,129, 130,30,19,129,14,4,65,20,24,65,0,4,85,22,128,20,64,65,192,16,128,76, 4,1,1,18,1,8,113,65,84,6,128,32,160,0,84,68,84,115,224,48,0,192,32, 142,18,192,46,0,65,128,4,237,68,129,64,208,86,128,14,5,66,113,4,119, 224,11,84,225,48,0,17,32,16,5,222,129,36,224,46,160,2,80,66,128,32, 192,0,128,90,65,17,64,50,1,4,18,4,8,239,224,95,128,60,50,65,16,0,208, 44,194,32,221,142,18,129,16,224,11,85,192,31,161,16,129,14,4,196,130, 28,144,8,131,2,0,32,64,128,8,4,203,17,50,130,16,0,84,16,68,18,61,33, 0,1,224,19,224,48,17,129,32,1,32,33,4,64,2,1,16,18,16,240,8,33,112, 225,15,17,16,64,84,80,64,84,80,0,192,32,1,1,1,85,17,80,17,1,81,1,160, 0,1,8,1,32,1,128,85,0,159,0,29,1,85,16,5,16,17,84,24,65,81,1,0,2,128, 2,21,64,1,69,80,5,84,5,1,4,0,144,0,48,84,0,176,12,80,17,8,8,16,2,16, 0,16,48,80,0,0,69,80,65,80,65,16,64,4,6,64,1,64,85,85,81,191,14,30, 28,134,21,63,43,1,64,17,80,160,16,128,32,144,65,208,23,1,4,239,15,30, 0,17,16,1,5,81,85,80,5,80,17,0,136,144,8,160,0,68,16,21,32,21,80,8, 69,16,4,4,4,192,32,17,16,128,84,16,85,80,17,64,16,16,48,16,4,16,128, 4,128,14,80,81,80,6,69,0,65,64,64,16,128,32,171,32,4,0,1,16,0,17,1, 240,42,1,160,68,208,39,4,143,18,32,4,16,68,0,136,21,80,21,64,68,161, 16,0,16,10,16,17,0,85,90,64,0,66,81,0,65,128,4,81,128,2,81,0,68,49, 65,1,65,129,64,48,85,5,0,151,177,24,128,8,1,64,2,21,144,4,240,55,136, 141,12,128,38,0,5,80,128,3,80,1,20,68,4,65,16,128,22,65,128,60,5,38, 85,85,64,128,65,4,65,142,6,193,14,97,17,80,161,1,96,64,16,0,64,72,112, 69,177,46,0,80,161,16,1,68,48,17,81,65,224,47,85,0,32,16,24,8,0,1,84, 86,142,10,0,16,16,64,1,17,84,6,0,65,17,48,81,0,65,128,76,4,2,4,24,5, 4,32,5,80,69,80,240,60,0,152,192,32,143,24,0,16,64,128,6,38,1,96,41, 17,88,1,130,96,5,192,13,5,0,11,128,4,16,0,5,84,16,21,128,2,128,193, 0,155,0,128,0,144,0,128,65,234,81,22,128,32,240,70,84,16,64,18,26,0, 68,17,84,128,36,16,0,18,9,2,16,24,16,32,130,96,0,84,201,193,32,142, 104,128,42,1,5,129,16,17,0,174,1,129,28,0,224,11,84,128,64,239,15,0, 84,77,1,80,96,68,4,65,49,0,25,224,7,84,65,16,66,128,56,4,1,31,224,111, 80,5,64,144,8,193,28,128,54,99,4,2,2,64,24,64,32,32,80,192,65,208,43, 240,50,1,0,65,85,17,5,1,5,65,0,0,1,1,1,4,1,16,1,64,64,85,159,0,29,65, 85,80,5,0,8,21,5,64,1,0,3,65,85,3,16,21,0,69,1,4,0,164,0,0,128,2,85, 0,21,65,16,16,16,4,4,16,1,16,0,16,50,69,1,1,65,64,64,16,64,4,64,100, 129,14,81,191,14,30,15,11,0,21,81,64,12,68,16,4,4,4,226,16,1,85,36, 0,17,64,165,16,85,144,65,68,128,0,53,5,17,5,65,85,5,52,0,17,0,195,32, 15,32,80,128,8,64,0,5,16,17,4,65,1,1,0,7,1,0,69,16,21,65,57,128,18, 119,64,84,21,128,4,49,80,21,193,8,17,169,32,0,5,80,128,50,85,85,21, 218,144,4,240,7,130,18,69,137,46,128,14,64,128,4,3,80,1,68,4,65,16, 64,142,54,25,128,8,69,0,21,129,19,163,16,128,21,236,128,50,129,3,68, 128,16,69,130,2,68,1,88,5,81,128,14,5,176,2,195,32,0,5,240,16,128,12, 177,6,35,141,16,64,69,81,25,21,64,5,81,128,3,3,1,5,240,128,10,160,2, 160,3,194,32,143,36,1,21,0,21,81,0,84,53,128,129,16,69,0,80,140,21, 130,48,5,17,0,21,128,38,5,60,0,5,68,176,6,19,46,128,28,65,22,21,69, 4,80,4,0,128,8,192,26,238,17,5,128,18,64,64,144,8,195,32,126,179,69, 128,36,69,144,11,100,1,21,131,96,134,101,129,56,0,5,4,1,5,143,16,1, 6,5,64,69,65,16,68,4,129,38,113,1,5,144,33,4,130,18,5,16,4,71,37,1, 129,48,21,64,16,144,12,194,32,0,13,1,69,17,21,1,5,1,252,1,21,192,7, 128,42,177,71,99,143,16,3,5,110,65,64,37,49,0,128,8,37,132,18,165,4, 39,17,48,16,16,21,1,48,130,48,64,64,176,61,194,32,1,0,1,85,17,85,1, 5,65,0,5,1,1,1,4,1,16,1,64,64,85,159,0,29,1,85,80,5,0,8,21,68,69,1, 0,3,1,85,0,16,21,64,69,80,5,4,4,48,1,4,0,160,0,128,2,85,0,21,0,64,21, 32,16,8,16,2,16,64,0,16,50,69,64,69,64,64,22,16,64,4,64,129,14,81,191, 14,30,15,59,0,1,0,17,85,65,165,69,5,24,17,0,65,0,193,32,143,10,46,0, 68,0,16,21,0,85,64,21,64,68,80,16,4,2,17,128,30,85,64,85,1,0,17,64, 16,16,16,4,16,35,128,4,85,170,129,2,68,0,65,1,128,193,6,169,32,0,1, 80,5,1,5,58,85,85,21,144,4,240,7,130,18,69,138,22,32,80,5,64,128,4, 80,1,68,4,32,65,16,64,142,54,0,4,16,69,102,0,21,128,1,164,16,0,16,49, 128,2,154,84,3,0,65,80,33,80,3,41,1,1,81,128,64,69,160,10,5,0,240,193, 32,128,8,129,12,102,141,16,0,64,81,19,85,64,5,80,70,1,0,129,14,2,161, 18,64,5,16,17,4,65,141,18,25,32,16,144,21,128,4,70,0,64,100,128,6,69, 130,2,50,1,4,128,48,5,48,81,5,5,208,18,49,0,32,16,14,5,0,5,68,5,209, 22,17,142,16,1,0,80,69,65,21,68,5,80,138,160,19,17,0,2,17,128,74,80, 22,140,1,128,24,0,5,64,198,32,142,18,64,137,144,65,69,0,80,3,1,32,52, 131,96,17,0,3,128,20,21,65,68,244,0,83,31,1,224,11,32,4,35,0,66,2,16, 128,54,68,69,16,17,35,173,0,128,26,0,128,36,64,144,8,1,1,218,129,48, 128,96,176,27,84,193,32,142,80,64,131,16,208,65,144,4,65,0,130,42,68, 5,4,237,1,67,47,3,65,16,3,33,0,241,128,8,176,49,2,129,56,128,18,5,16, 4,85,4,16,112,21,128,36,16,3,1,80,131,48,69,176,61,68,193,32 }; static MTB * mtb_KQKQ = NULL; void initMTB_KQKQ() { mtb_KQKQ = new MTB ("KQKQ", 2, 17); mtb_KQKQ->SetPackedData (mtbdata_KQKQ); mtb_KQKQ->Add (C2, A1, WHITE, 317); mtb_KQKQ->Add (C3, A1, WHITE, 502); mtb_KQKQ->Add (A3, B1, WHITE, 515); mtb_KQKQ->Add (B3, B1, WHITE, 376); mtb_KQKQ->Add (C3, B1, WHITE, 409); mtb_KQKQ->Add (D2, B1, WHITE, 381); mtb_KQKQ->Add (D3, B1, WHITE, 480); mtb_KQKQ->Add (C3, C1, WHITE, 474); mtb_KQKQ->Add (D3, C1, WHITE, 503); mtb_KQKQ->Add (E2, C1, WHITE, 386); mtb_KQKQ->Add (D2, B2, WHITE, 417); mtb_KQKQ->Add (D3, B2, WHITE, 434); mtb_KQKQ->Add (D4, B2, WHITE, 487); mtb_KQKQ->Add (C4, C2, WHITE, 505); mtb_KQKQ->Add (D4, C2, WHITE, 505); mtb_KQKQ->Add (E2, C2, WHITE, 434); mtb_KQKQ->Add (E3, C2, WHITE, 455); } ////////////////////////////////////////////////////////////////////// // // KQKP static const byte mtbdata_KQKP[1662] = { 1,72,255,159,0,23,249,253,1,127,12,3,17,44,68,132,4,4,0,133,1,75,13, 248,143,8,12,255,15,76,252,143,16,28,98,79,49,108,79,28,132,7,255,249, 237,101,223,4,48,1,196,2,128,4,133,5,141,1,56,19,253,229,143,23,2,1, 132,9,68,132,101,7,6,132,3,4,6,2,3,12,168,139,6,63,24,0,20,12,15,14, 1,74,255,159,0,22,7,0,15,28,240,143,8,21,230,248,143,16,45,47,78,143, 31,27,2,2,239,36,29,15,111,1,64,255,159,0,23,7,9,25,49,97,57,193,127, 240,131,1,133,2,255,7,23,63,6,124,131,6,127,20,143,8,30,70,143,16,37, 64,89,218,177,111,34,23,121,15,3,80,48,84,145,55,133,3,101,197,138, 4,33,65,129,20,131,2,33,65,0,129,40,241,141,9,96,186,192,83,103,143, 12,4,70,53,97,51,103,49,225,133,4,132,8,97,199,47,12,70,0,5,193,1,74, 255,159,0,21,7,0,15,28,248,141,8,252,192,175,8,28,46,143,5,21,143,24, 30,47,14,130,7,32,76,64,128,239,23,20,2,2,255,36,29,159,0,111,1,64, 255,159,0,23,15,24,57,113,225,57,193,127,0,131,1,133,2,143,8,30,255, 127,217,63,45,30,63,23,56,63,36,136,6,49,97,84,18,121,141,9,112,20, 119,133,3,229,137,197,138,4,97,193,129,131,2,33,65,146,19,35,57,241, 133,6,224,192,51,237,231,143,20,1,41,5,225,4,142,5,199,192,143,8,12, 38,85,193,1,64,255,159,0,7,249,255,231,207,159,64,63,224,245,1,15,16, 44,68,132,0,5,4,0,8,16,32,64,128,109,1,0,134,1,15,6,240,252,9,143,8, 6,248,176,175,16,8,91,48,95,28,128,14,84,164,69,166,132,32,60,132,7, 12,4,144,0,32,163,96,10,8,128,19,133,5,5,34,60,131,5,44,64,143,13,2, 8,130,28,0,192,253,129,133,3,131,2,143,6,6,63,7,132,9,103,3,128,47, 36,31,41,1,64,255,159,0,7,15,23,36,68,132,64,4,224,228,1,63,0,8,16, 32,42,64,128,0,15,23,240,252,9,7,143,8,5,169,248,143,16,6,127,79,44, 23,133,6,8,0,88,132,1,48,79,3,16,132,5,1,66,130,224,2,138,2,143,30, 26,159,0,165,1,73,255,159,0,38,15,2,2,0,240,156,143,8,45,143,7,30,127, 126,47,44,160,8,47,27,31,0,2,7,27,19,35,67,0,15,58,2,7,11,131,1,51, 117,31,24,183,0,20,6,140,3,130,6,0,147,0,21,0,111,117,1,64,255,150, 0,62,125,236,204,140,88,12,0,15,5,192,151,5,3,0,2,190,1,146,3,254,77, 15,21,133,8,255,7,37,127,20,135,251,31,45,235,255,255,1,132,5,133,1, 152,133,7,79,19,8,8,135,2,159,0,132,1,88,255,150,0,159,183,1,15,19, 31,39,7,100,196,132,4,0,254,255,6,29,141,8,194,255,7,38,79,87,128,5, 212,148,20,0,128,1,49,68,132,4,128,6,133,7,31,39,228,214,4,133,2,6, 192,4,220,143,4,5,140,9,37,100,196,133,76,128,0,51,156,217,143,8,4, 38,6,5,124,52,132,28,0,63,12,132,4,1,64,255,159,0,23,31,48,108,196, 133,42,5,124,248,131,1,252,132,2,0,15,5,142,252,143,8,5,252,127,28, 79,11,143,7,0,5,240,63,106,23,143,22,12,128,5,32,76,132,69,5,4,129, 6,44,68,132,129,2,112,66,142,9,197,91,96,192,129,1,89,210,124,20,101, 108,35,48,236,134,7,239,132,131,3,133,10,133,8,220,143,22,2,16,37,183, 87,132,2,135,68,133,16,141,127,4,22,104,46,7,4,133,24,13,127,12,133, 5,1,64,255,159,0,7,15,31,36,68,132,67,4,248,228,1,7,248,7,0,15,26,240, 133,7,5,143,8,70,141,5,137,6,16,32,64,227,128,54,143,16,6,137,4,2,2, 2,138,2,0,79,209,1,64,255,150,0,30,63,108,204,140,115,12,0,15,5,135, 5,3,0,255,143,3,4,182,15,22,143,8,149,235,37,138,1,128,140,2,15,7,96, 8,8,22,95,133,1,64,255,159,0,39,63,97,228,197,132,160,4,143,8,169,225, 31,20,63,97,255,213,70,181,85,130,1,133,37,69,135,15,63,1,169,199,52, 193,52,221,143,5,5,133,4,75,140,3,133,140,2,128,0,51,156,143,8,4,178, 54,134,9,5,140,4,68,132,28,15,12,0,132,4,1,64,255,159,0,24,63,120,236, 221,141,1,127,248,255,63,112,236,197,133,200,129,2,132,1,239,7,21,0, 60,129,8,255,127,98,0,60,79,35,132,16,255,255,127,79,22,4,63,96,204, 133,5,254,32,88,34,172,93,140,17,56,108,220,64,67,255,127,44,47,88, 172,92,129,4,131,0,130,5,47,88,168,89,168,72,9,134,9,112,172,69,132, 130,3,108,196,44,18,240,237,5,196,19,133,11,224,91,193,129,138,2,252, 132,1,5,236,4,183,135,17,100,199,52,133,8,221,137,21,120,159,5,141, 3,197,135,116,133,16,129,30,143,5,2,0,37,5,1,64,255,159,0,24,47,95, 191,79,143,0,127,8,0,40,83,163,67,131,99,255,15,132,1,15,22,63,0,40, 129,8,224,134,7,63,30,132,16,63,25,47,79,135,7,193,7,161,15,66,255, 255,15,31,63,65,50,104,44,47,80,184,72,136,8,129,1,83,185,73,137,130, 13,187,75,194,139,130,2,132,5,67,131,3,3,65,148,115,100,19,35,3,211, 133,9,160,75,64,128,131,10,65,129,2,167,136,12,158,9,52,83,227,20,4, 128,4,132,8,156,67,67,163,71,79,4,118,4,163,216,195,77,133,2,135,31, 12,118,3,1,64,255,159,0,38,0,0,32,64,128,42,0,0,254,143,8,86,223,132, 1,191,31,29,160,239,31,40,225,209,0,32,0,255,89,54,174,73,136,134,6, 32,0,0,33,241,192,132,2,133,3,31,31,132,9,64,128,1,128,95,44,31,41, 1,73,255,159,0,43,254,254,143,8,212,254,239,0,131,1,222,254,255,191, 255,255,127,52,254,254,190,27,37,252,140,2,254,145,250,36,226,255,161, 2,241,220,242,41,35,252,178,4,114,2,255,253,37,131,3,255,252,4,240, 240,84,250,233,4,131,8,134,4,116,255,21,252,243,184,68,133,7,254,140, 6,29,54,1,75,255,159,0,43,199,254,143,8,44,231,255,7,44,45,31,87,247, 239,139,6,231,132,31,133,2,199,210,141,1,132,4,101,215,51,252,199,147, 6,34,252,199,191,114,228,199,221,143,7,4,92,193,248,67,223,133,3,148, 13,133,5,135,220,159,143,15,5,68,197,132,8,143,4,6,55,1,64,255,159, 0,15,31,47,73,136,8,104,8,192,159,5,16,15,121,247,191,2,0,127,254,189, 127,143,8,24,245,239,3,11,159,9,16,79,12,15,17,253,0,175,37,86,1,64, 255,158,0,124,250,217,152,24,90,24,0,15,5,128,159,6,0,15,145,247,143, 8,45,144,215,79,109,255,223,175,35,70,1,64,255,159,0,15,16,62,73,136, 8,212,8,143,5,16,15,187,247,143,8,109,245,159,29,86,1,64,255,158,0, 60,126,219,153,24,118,24,0,15,5,143,6,0,15,211,215,143,8,173,15,7 }; static MTB * mtb_KQKP = NULL; void initMTB_KQKP() { mtb_KQKP = new MTB ("KQKP", 1, 23); mtb_KQKP->SetPackedData (mtbdata_KQKP); mtb_KQKP->Add (A2, A1, WHITE, 90); mtb_KQKP->Add (A2, B1, WHITE, 31); mtb_KQKP->Add (A2, C1, WHITE, 98); mtb_KQKP->Add (A2, B2, WHITE, 44); mtb_KQKP->Add (A2, C2, WHITE, 88); mtb_KQKP->Add (C2, A1, WHITE, 111); mtb_KQKP->Add (C2, B1, WHITE, 69); mtb_KQKP->Add (C2, C1, WHITE, 61); mtb_KQKP->Add (C2, D1, WHITE, 60); mtb_KQKP->Add (C2, E1, WHITE, 87); mtb_KQKP->Add (C2, A2, WHITE, 117); mtb_KQKP->Add (C2, B2, WHITE, 52); mtb_KQKP->Add (C2, D2, WHITE, 44); mtb_KQKP->Add (C2, E2, WHITE, 74); mtb_KQKP->Add (C2, A3, WHITE, 145); mtb_KQKP->Add (C2, B3, WHITE, 138); mtb_KQKP->Add (C2, C3, WHITE, 63); mtb_KQKP->Add (C2, D3, WHITE, 82); mtb_KQKP->Add (C2, E3, WHITE, 76); mtb_KQKP->Add (D2, C1, WHITE, 46); mtb_KQKP->Add (D2, E1, WHITE, 34); mtb_KQKP->Add (D2, C2, WHITE, 26); mtb_KQKP->Add (D2, E2, WHITE, 26); } ////////////////////////////////////////////////////////////////////// // // KRKP static const byte mtbdata_KRKP[10529] = { 1,71,0,159,0,13,64,85,1,155,2,141,2,8,15,79,64,85,81,85,9,81,85,173, 64,168,0,85,143,18,47,84,234,11,15,2,65,125,140,16,0,31,93,143,32,0, 167,16,31,48,131,9,65,248,134,10,165,1,143,2,8,159,64,93,159,0,255, 63,58,1,74,0,159,0,239,80,85,15,14,64,168,0,54,85,85,5,143,16,61,225, 10,69,136,12,195,1,248,68,36,133,2,63,72,159,0,255,47,219,1,8,0,0,84, 85,159,0,43,1,84,60,85,1,0,167,0,129,10,143,2,28,15,46,84,172,1,140, 12,5,60,21,143,18,14,191,28,15,85,253,17,22,50,143,30,43,47,1,24,131, 14,21,123,43,84,167,16,143,16,67,138,49,67,21,143,12,61,255,63,16,27, 5,31,88,117,55,17,15,90,160,19,41,21,15,79,1,90,0,159,0,49,32,143,2, 45,143,16,47,2,28,204,8,28,156,14,32,128,47,61,31,41,64,7,85,85,85, 64,85,69,192,0,165,0,255,49,23,143,46,66,47,18,201,2,143,14,82,47,0, 231,2,240,143,16,100,143,1,0,143,18,96,173,33,127,64,1,32,84,85,159, 0,44,1,0,0,0,251,1,170,0,143,2,28,15,46,143,16,46,193,24,21,143,32, 105,183,194,8,16,0,4,35,21,194,2,3,253,131,4,6,143,14,45,46,194,24, 135,49,5,149,127,92,129,127,54,15,7,141,58,165,16,53,5,255,143,16,70, 3,25,3,23,3,63,72,195,1,240,89,1,57,1,31,60,1,43,84,85,159,0,2,81,166, 1,65,160,0,128,225,0,167,3,1,0,0,0,8,0,255,68,132,2,208,1,82,11,95, 30,15,8,175,19,0,127,129,16,0,76,15,72,195,33,140,32,192,0,79,86,248, 133,30,139,2,143,40,24,111,84,143,18,255,127,151,1,43,80,85,159,0,2, 69,166,1,64,194,1,47,135,2,5,0,3,5,164,0,15,94,165,14,170,133,18,244, 1,2,252,4,8,60,32,60,248,128,143,17,46,143,16,110,159,0,255,127,255, 15,20,1,45,84,85,159,0,2,1,175,1,1,132,2,0,63,161,6,1,0,167,0,47,44, 15,46,128,10,208,8,95,138,12,5,44,21,44,138,16,255,31,3,111,25,84,114, 1,28,5,44,21,79,14,65,119,85,64,164,0,47,35,143,48,41,65,228,8,149, 0,127,21,21,143,60,53,15,24,134,58,4,165,16,143,16,86,254,83,9,83,111, 88,17,11,17,47,76,1,64,0,159,0,13,64,85,5,0,132,20,168,6,0,4,164,0, 0,128,2,84,183,85,8,1,175,8,14,15,46,64,233,13,0,220,140,16,32,63,48, 1,166,0,35,169,12,5,127,0,20,28,197,33,130,34,47,53,139,16,169,16,248, 129,28,57,143,30,50,63,8,31,255,15,205,1,68,0,159,0,30,85,80,85,11, 0,73,0,4,160,0,84,85,35,85,5,243,175,10,31,15,29,143,16,13,128,2,159, 26,29,85,5,76,7,95,12,64,85,4,85,20,228,13,131,14,227,111,44,145,38, 129,7,37,21,0,20,192,18,111,7,5,224,11,141,30,84,160,16,163,0,143,14, 32,124,15,4,16,100,143,2,6,165,2,15,255,15,173,1,3,0,0,85,85,150,170, 167,0,43,159,0,31,2,0,18,85,21,5,131,2,124,31,24,64,182,7,31,36,140, 16,68,47,24,85,87,85,21,172,10,106,28,20,168,0,128,12,215,90,143,14, 32,47,18,42,174,2,16,84,31,86,224,175,16,0,31,94,95,255,31,67,1,16, 0,0,85,159,0,60,5,85,85,116,4,0,167,0,129,12,143,2,12,80,159,16,61, 85,179,5,140,14,21,143,18,14,15,30,4,84,23,214,50,143,30,27,31,18,10, 28,84,143,12,61,31,16,255,10,160,1,147,0,19,165,16,143,16,86,39,21, 254,35,63,88,37,23,1,63,90,3,25,128,84,143,14,63,1,64,0,159,0,13,84, 85,85,85,165,4,170,166,170,6,0,4,163,0,85,239,5,130,1,129,3,1,1,159, 8,14,15,45,133,13,87,5,69,143,16,93,68,192,12,21,232,16,21,187,165, 0,15,54,1,84,141,31,163,2,20,143,30,81,192,75,111,255,79,197,1,3,20, 85,85,85,150,170,167,0,94,159,0,30,0,31,1,128,143,2,25,240,15,31,43, 143,16,3,183,8,60,32,60,152,16,21,192,8,193,0,255,111,59,15,27,45,207, 10,4,159,0,10,143,14,28,95,36,201,2,254,31,82,47,0,231,2,143,16,100, 143,1,0,143,18,96,173,33,143,12,48,1,6,84,84,85,85,85,193,0,159,0,53, 125,4,0,1,169,0,143,2,12,175,15,56,134,16,5,118,140,14,21,111,31,143, 34,41,143,32,30,4,192,13,79,0,188,0,76,84,143,10,24,79,53,149,0,69, 84,255,2,140,6,29,143,18,63,139,16,167,16,38,29,255,79,63,91,101,120, 13,31,63,43,51,192,74,93,143,14,31,1,40,68,85,159,0,30,69,236,1,5,0, 13,0,0,32,0,4,164,0,3,32,234,132,1,5,143,2,14,15,8,84,142,16,5,15,1, 250,0,12,63,56,15,0,143,32,2,15,72,68,130,12,223,20,134,17,131,14,4, 128,3,143,48,10,159,0,46,129,9,127,137,10,4,160,16,139,2,31,12,143, 60,24,79,84,143,18,255,0,54,1,45,68,85,145,0,64,226,0,15,2,84,26,140, 4,4,85,0,2,133,2,68,82,243,42,211,2,6,95,30,15,24,85,85,177,15,255, 246,15,132,16,15,88,195,33,95,104,141,14,143,48,4,111,110,128,143,18, 255,79,135,1,46,84,85,145,0,21,226,0,15,2,141,4,41,1,85,0,16,20,134, 2,20,0,27,1,2,0,20,164,0,3,2,132,1,245,5,95,8,159,15,7,15,21,143,16, 5,8,140,14,32,119,60,128,111,54,156,27,31,31,20,162,8,229,23,255,133, 24,159,0,30,143,46,24,143,2,4,127,62,63,94,143,32,94,143,14,46,0,63, 120,1,47,84,85,145,0,5,243,0,15,7,135,4,63,173,5,4,0,227,0,167,0,143, 2,28,143,15,12,47,32,55,160,10,5,0,232,13,112,21,76,143,16,78,191,208, 36,140,14,21,143,34,9,227,42,76,167,22,159,0,30,223,143,50,46,53,141, 10,84,15,45,63,32,141,26,165,16,255,143,16,86,67,41,67,95,88,1,123, 1,0,143,14,60,1,72,0,159,0,13,64,85,15,32,17,0,141,16,166,0,0,0,84, 143,2,13,15,30,84,108,255,15,14,5,231,11,130,14,21,60,143,18,0,85,245, 16,38,79,50,143,32,28,15,18,0,12,80,255,143,12,61,15,16,137,48,1,165, 16,143,16,86,55,5,248,51,79,88,53,39,17,15,90,16,0,160,128,44,80,143, 12,47,1,65,0,159,0,30,85,85,85,26,162,55,167,0,170,86,178,2,7,5,175, 10,31,159,16,32,209,10,173,2,143,10,30,21,142,12,16,0,20,177,166,0, 129,2,149,205,14,58,0,0,16,186,40,159,0,54,4,36,127,255,31,235,128, 175,10,63,1,20,0,0,85,159,0,45,65,140,2,0,72,0,16,160,0,81,85,35,85, 21,184,0,15,13,84,143,16,76,16,15,12,21,85,6,17,84,20,84,21,85,35,95, 34,24,16,84,80,84,137,14,31,30,16,0,220,20,6,129,50,16,204,50,143,2, 12,16,0,62,80,85,80,192,16,65,143,14,16,159,0,255,79,235,1,4,0,0,0, 84,85,156,0,82,247,2,167,0,128,4,15,35,214,9,21,191,5,15,142,16,227, 15,44,108,132,2,15,10,81,84,80,166,0,92,161,6,80,172,10,168,28,231, 5,129,6,0,58,85,0,84,55,143,14,17,159,0,33,168,174,2,252,64,20,63,86, 175,16,0,63,94,127,255,15,51,1,16,0,0,85,159,0,76,21,85,85,116,16,0, 167,0,129,14,139,2,84,159,16,77,85,207,21,143,16,12,159,12,48,17,80, 23,49,47,14,77,15,32,40,12,80,1,143,12,60,15,16,40,255,160,1,147,0, 3,165,16,143,16,86,23,5,19,252,47,88,21,7,17,47,90,19,9,80,128,1,143, 12,46,1,74,0,159,0,13,84,85,15,28,17,193,0,94,0,16,168,0,64,143,2,11, 15,30,143,18,14,128,16,223,5,233,13,128,14,21,76,127,27,143,32,78,46, 175,141,8,34,0,44,80,143,6,13,63,41,15,5,255,149,0,5,167,16,143,12, 52,15,16,43,103,31,86,254,35,9,35,31,88,33,91,1,143,12,44,1,64,0,159, 0,29,80,85,85,85,154,128,170,167,0,16,84,21,0,26,0,119,16,0,240,2,2, 193,4,10,204,6,143,2,14,210,15,26,133,13,53,16,192,0,26,2,140,16,175, 8,140,14,32,108,128,63,40,129,32,33,239,58,112,165,0,47,64,64,194,26, 143,2,10,143,14,30,224,143,18,30,143,12,62,143,16,255,47,105,1,0,80, 84,0,0,80,86,80,102,84,85,149,0,160,1,90,170,167,0,15,30,171,0,15,2, 2,143,2,8,81,128,14,82,137,16,171,15,45,127,3,34,92,130,27,81,16,243, 165,0,129,32,194,0,31,58,111,9,0,0,192,6,255,141,2,154,0,207,10,5,79, 10,143,14,11,63,53,201,2,127,82,252,15,0,231,2,143,16,100,143,1,0,143, 18,96,173,33,143,10,31,1,44,84,85,156,0,81,196,0,15,53,16,251,0,17, 169,0,139,2,175,13,56,143,16,7,21,127,47,148,143,34,41,143,32,14,17, 80,95,18,0,60,80,242,1,143,10,6,63,70,149,0,53,80,9,140,6,255,8,143, 18,78,139,16,167,16,22,68,143,34,72,59,255,69,88,18,143,50,74,11,19, 42,16,0,143,12,28,1,45,84,85,159,0,2,81,239,2,3,143,4,18,17,63,227, 0,0,16,166,0,161,12,143,2,8,15,30,143,22,4,55,138,16,5,0,232,13,128, 14,21,108,31,27,170,63,14,143,32,3,5,60,21,31,40,16,226,10,255,1,135, 8,131,48,140,2,136,44,79,29,95,22,134,18,119,4,80,143,12,61,15,16,139, 16,16,166,16,95,86,254,99,41,3,95,88,1,27,1,143,12,44,1,1,80,85,0,85, 85,85,16,175,192,0,147,0,21,226,0,80,134,2,31,4,137,4,136,129,8,55, 16,85,0,16,128,0,223,16,164,0,3,128,132,1,5,125,15,24,43,207,17,0,0, 84,143,16,1,8,12,32,12,246,159,16,39,15,1,143,32,2,15,71,131,12,80, 134,44,131,2,126,144,2,27,143,48,72,159,0,4,127,14,111,142,143,34,232, 1,6,84,85,0,84,85,194,0,147,0,180,21,226,0,1,245,1,30,81,140,4,16,107, 84,0,18,134,2,85,225,1,168,211,2,255,70,127,8,192,9,138,16,47,32,139, 24,83,47,24,223,15,49,196,16,15,36,17,132,40,31,38,141,14,143,48,4, 192,31,110,143,18,255,31,119,1,1,84,85,1,84,85,85,85,233,193,0,153, 0,141,2,22,81,140,4,5,84,72,129,8,81,38,80,0,17,8,0,221,80,164,0,19, 8,132,1,21,103,85,213,143,16,4,31,39,84,8,92,32,12,128,203,15,70,156, 29,15,15,81,84,225,0,88,134,38,255,131,2,229,1,133,24,159,0,30,143, 46,8,127,20,47,62,143,14,126,192,143,16,62,63,110,127,40,1,38,84,85, 159,0,2,21,80,255,2,3,143,4,2,147,81,171,3,17,0,225,0,16,0,167,0,231, 143,2,12,143,13,12,15,48,160,12,21,0,232,15,143,16,97,175,240,37,63, 8,17,146,48,17,140,2,141,4,167,24,231,159,0,30,143,48,14,127,22,141, 10,80,1,95,44,79,32,255,141,26,165,16,143,16,86,19,73,19,47,88,17,192, 75,17,143,12,44,1,83,0,159,0,30,85,15,32,64,0,167,0,232,145,8,139,2, 15,46,255,15,15,21,143,16,12,85,85,189,69,141,4,84,39,255,29,33,143, 32,29,79,2,74,75,76,106,76,0,2,140,8,1,143,12,28,243,79,16,165,16,21, 37,21,0,2,135,48,255,162,3,36,143,16,54,5,55,3,55,5,255,134,8,2,31, 56,3,57,1,57,3,247,120,0,31,58,1,59,106,60,1,64,122,1,143,14,30,1,82, 0,148,0,85,15,41,104,136,167,0,47,170,90,1,203,9,21,165,12,15,12,143, 16,42,176,11,108,85,15,20,168,17,0,21,0,198,1,166,0,161,19,65,0,81, 54,162,21,216,2,189,14,11,65,56,159,0,52,40,0,223,16,20,36,2,159,11, 53,175,16,25,44,111,255,0,15,164,1,4,0,0,0,80,64,160,0,85,196,84,4, 159,0,63,1,0,65,0,69,157,85,3,85,85,160,14,43,143,16,111,65,8,123,84, 69,80,81,143,18,41,5,85,28,65,80,65,81,135,14,15,15,108,85,6,84,64, 0,85,0,81,164,0,128,2,232,85,96,74,111,12,5,16,64,85,120,64,81,83,143, 14,16,15,255,15,219,1,65,0,156,0,85,85,0,80,85,63,12,72,9,167,0,141, 6,15,22,231,9,191,5,15,205,142,16,15,44,127,32,64,81,39,161,6,64,48, 172,10,160,86,139,2,139,6,0,84,0,229,80,39,143,14,17,159,0,33,160,2, 190,2,1,248,116,31,85,175,16,1,31,93,95,255,31,35,1,2,0,0,85,85,64, 0,167,0,198,85,159,0,81,137,14,0,0,84,140,2,143,16,94,39,85,85,65,79, 61,69,64,7,47,2,86,63,48,160,141,4,5,12,32,127,60,15,0,239,160,160, 1,147,0,20,37,140,6,164,16,143,16,70,255,23,118,18,136,2,18,47,72,21, 72,250,16,106,16,15,74,19,42,37,76,128,32,143,10,14,1,86,0,159,0,29, 85,12,80,196,0,15,6,87,64,84,32,0,169,0,0,138,2,15,46,190,191,15,9, 133,16,21,31,58,197,30,127,22,143,32,14,111,4,212,74,103,130,8,106, 108,0,28,64,255,1,28,141,4,143,16,29,169,16,19,103,19,255,149,0,134, 8,6,143,12,20,31,16,5,21,69,255,5,140,16,22,63,54,21,7,19,39,255,60, 4,47,56,3,25,1,25,44,128,50,143,14,28,1,64,0,159,0,45,65,85,85,85,106, 128,170,167,0,65,80,85,0,105,0,119,65,0,240,2,2,193,4,40,204,6,141, 2,192,15,42,133,13,53,65,84,85,85,105,175,8,140,16,32,44,128,47,56, 129,32,193,0,255,42,80,165,0,15,18,143,34,16,170,4,194,26,143,2,10, 255,143,14,30,111,18,201,2,143,12,66,15,16,231,2,143,16,100,143,1,0, 192,143,18,96,173,33,47,48,1,88,0,145,0,8,226,0,2,69,81,3,0,0,64,89, 64,81,85,5,47,160,1,106,169,167,0,170,15,29,167,11,8,163,136,14,1,2, 138,16,85,85,72,57,191,15,45,63,3,136,143,18,8,49,129,32,165,0,17,255, 194,0,15,58,28,139,2,192,6,125,154,0,207,10,5,255,47,10,143,14,11,31, 53,201,2,95,82,31,0,231,2,143,16,100,224,143,1,0,143,18,96,173,33,143, 8,15,1,2,68,64,85,85,64,0,167,0,189,85,157,0,69,196,0,31,53,161,12, 137,14,69,222,143,16,14,31,61,111,2,65,15,30,143,34,41,143,32,14,143, 2,20,183,0,141,4,5,169,24,224,0,32,76,170,28,223,15,50,149,0,86,37, 140,6,166,16,143,16,68,101,255,72,4,134,2,4,127,70,3,26,2,255,56,2, 95,72,131,65,122,0,26,0,0,143,10,12,1,18,64,84,85,144,0,64,0,165,0, 218,80,241,1,14,64,239,2,3,143,4,18,69,140,12,121,64,0,139,2,15,46, 159,19,13,129,16,21,0,239,232,15,47,46,143,14,14,143,32,3,21,47,56, 131,42,167,26,127,132,44,1,140,2,141,4,127,7,63,38,149,0,70,255,166, 16,143,14,68,63,0,92,22,79,86,19,10,248,18,79,88,17,12,16,143,10,28, 1,17,64,84,0,145,0,2,64,0,1,163,0,85,85,1,84,85,85,65,223,192,0,4,162, 1,65,246,1,15,4,137,4,130,8,209,167,3,140,12,52,2,149,1,64,84,1,229, 81,125,63,23,207,17,0,1,80,143,16,1,34,127,44,130,159,13,31,31,24,143, 32,2,31,14,134,34,159,0,30,55,35,64,1,21,132,2,10,59,143,48,8,248,15, 69,29,63,30,143,16,110,143,18,126,31,71,1,19,68,80,0,144,0,160,2,225, 0,13,1,85,85,0,80,195,0,4,84,109,209,0,5,18,15,2,69,18,137,4,1,103, 224,8,1,128,9,67,65,84,139,12,67,61,135,2,69,80,129,6,71,192,9,192, 15,1,251,135,16,31,31,193,7,135,8,67,31,8,69,130,32,255,15,59,192,33, 15,30,137,34,143,6,12,31,14,141,14,143,48,4,192,15,110,143,18,126,15, 232,1,16,68,81,0,144,0,32,0,64,128,1,163,0,85,85,5,80,85,85,123,85, 81,192,0,9,141,2,6,69,142,4,79,129,8,69,70,69,1,139,12,225,1,1,46,85, 69,81,177,2,34,143,16,14,79,39,100,191,32,12,128,7,225,0,15,72,150, 29,122,223,13,135,36,131,2,96,228,1,21,37,133,24,252,111,30,135,46, 31,36,111,62,143,16,94,143,14,142,47,104,1,19,68,80,85,144,0,64,0,165, 0,181,225,1,15,1,64,143,3,5,143,4,0,69,155,3,69,238,162,10,135,12,163, 12,39,69,143,16,20,159,0,55,63,132,223,65,143,18,7,143,2,4,0,118,79, 30,61,15,38,127,142,10,5,79,44,15,32,142,26,164,16,47,86,3,252,138, 4,2,31,88,1,60,0,143,10,28,1,74,0,159,0,13,84,85,15,12,17,192,4,95, 16,0,135,2,1,159,10,14,15,29,143,16,206,143,12,14,110,13,69,60,131, 14,4,166,0,143,28,62,111,78,138,64,192,8,65,85,68,48,69,226,0,171,65, 22,64,28,84,28,4,2,128,95,46,159,0,238,1,93,0,159,0,37,85,4,143,8,38, 15,38,16,251,194,0,229,15,143,16,96,15,62,167,25,31,4,64,232,0,188, 143,30,66,161,11,69,128,12,193,0,163,0,131,2,64,124,85,68,114,7,19, 143,46,174,159,0,254,1,34,80,85,159,0,28,0,85,64,224,0,243,69,135,2, 4,45,15,70,85,85,171,22,245,143,16,96,143,14,4,127,86,143,26,64,129, 58,64,160,58,64,252,162,0,133,2,89,105,143,28,158,159,0,255,44,1,53, 84,85,159,0,46,171,8,0,6,20,220,140,2,15,4,239,10,6,81,143,16,85,143, 20,38,111,120,4,117,0,20,128,5,229,16,15,80,81,194,51,1,112,142,14, 4,162,0,143,2,8,159,0,20,64,85,64,112,85,1,127,25,15,255,15,29,1,32, 80,85,159,0,46,80,85,5,0,29,0,0,5,0,227,1,176,1,4,5,221,162,0,15,14, 239,10,6,69,143,16,85,15,30,127,0,16,252,228,13,31,86,173,17,139,2, 31,78,15,255,15,173,1,65,0,159,0,13,84,85,85,85,69,173,192,0,15,6,65, 16,5,226,4,3,1,191,159,10,14,15,29,68,207,15,9,132,16,176,14,31,72, 167,11,87,87,5,143,32,57,4,192,0,80,160,8,143,28,6,222,205,47,141,14, 131,2,4,166,0,239,28,46,131,24,79,14,220,4,166,2,143,46,58,1,80,159, 0,255,79,77,1,82,0,159,0,29,85,15,13,0,80,192,0,113,0,20,135,2,15,61, 143,16,15,84,85,5,254,95,90,240,29,34,139,14,95,24,143,26,14,79,2,25, 219,64,193,12,46,16,166,0,79,14,16,204,11,48,143,2,18,80,85,136,28, 194,14,16,85,16,254,84,192,0,0,239,42,36,141,22,63,2,229,0,37,224,80, 138,28,143,30,22,159,0,254,1,6,84,85,85,85,0,192,0,159,0,38,171,0,144, 8,0,168,8,0,31,29,21,207,15,41,55,132,14,84,0,152,24,128,2,80,143,16, 26,255,15,45,221,143,30,31,143,32,14,13,20,228,0,165,0,145,22,64,220, 162,46,116,159,0,87,16,34,63,255,63,173,1,41,84,85,159,0,46,65,236, 1,1,0,62,1,4,0,163,11,19,15,40,143,20,16,143,16,240,226,69,127,3,163, 0,239,12,22,1,0,5,18,171,68,160,1,80,136,10,69,143,2,3,5,134,19,111, 133,14,68,143,16,43,129,5,4,18,101,163,2,188,133,8,161,1,20,76,139, 12,143,14,28,159,0,248,1,34,84,85,159,0,44,1,84,0,224,0,172,20,134, 2,0,4,20,164,0,15,14,85,119,85,21,224,6,193,0,15,38,0,176,24,143,16, 42,247,15,46,133,14,143,32,42,239,15,46,15,40,20,160,8,128,40,240,134, 22,133,2,165,24,127,255,95,189,1,35,84,85,159,0,62,65,85,69,224,0,151, 193,0,227,1,1,0,3,4,162,0,13,246,167,5,143,16,100,79,14,143,36,32,15, 222,69,138,14,6,175,80,15,28,4,164,13,69,132,6,133,15,143,2,6,253,13, 37,143,14,8,111,14,139,4,195,1,43,20,224,28,143,12,12,143,46,36,159, 0,94,1,35,84,85,159,0,62,0,85,0,2,139,228,1,15,13,85,85,69,130,5,64, 143,10,7,247,163,20,143,4,8,143,16,44,31,30,143,14,0,68,194,19,135, 20,191,171,5,15,94,68,175,14,63,13,35,151,17,132,2,224,148,73,239,15, 76,159,0,255,111,47,1,34,84,85,159,0,62,0,85,0,0,110,20,0,228,1,6,20, 162,0,13,229,6,255,21,143,10,7,163,20,143,4,8,143,16,52,63,40,173,40, 229,13,187,47,86,171,9,84,134,2,141,14,47,6,20,207,43,25,191,239,15, 8,159,0,38,20,134,38,164,0,6,195,2,95,255,0,47,61,1,95,0,159,0,29,85, 0,210,0,15,5,193,3,221,227,4,132,2,15,61,80,207,15,9,143,16,82,207, 14,3,84,81,31,44,21,200,1,16,194,12,16,0,20,219,164,0,141,30,141,2, 64,140,50,51,16,102,112,159,0,40,4,50,79,255,79,189,1,36,84,85,159, 0,76,0,64,192,0,0,177,80,246,12,0,12,255,15,77,85,0,80,119,143,16,92, 65,20,139,14,95,8,21,192,2,97,237,53,201,1,207,14,26,53,1,193,12,14, 64,133,166,0,63,2,21,85,20,0,21,0,131,156,66,143,2,18,65,85,80,84,80, 193,0,129,16,81,0,85,64,84,64,80,240,96,48,159,14,3,159,0,255,79,104, 1,44,84,85,159,0,0,1,223,2,2,15,21,0,151,80,192,0,84,0,166,8,0,15,13, 158,8,181,207,15,41,132,14,80,233,10,128,2,64,143,16,14,1,222,191,14, 44,61,159,0,27,5,128,30,138,46,141,32,44,155,80,34,80,84,165,0,161, 45,0,162,46,184,68,159,0,87,64,66,15,255,15,157,1,44,80,85,159,0,62, 0,192,0,231,10,0,95,85,0,2,16,164,0,15,46,195,11,239,22,10,209,143, 16,78,143,32,114,57,16,140,34,0,85,21,78,15,57,16,128,8,64,85,129,7, 164,8,132,2,255,80,12,134,12,129,14,192,0,10,143,32,57,159,0,255,0, 127,45,1,42,84,85,159,0,62,1,176,10,81,246,10,190,0,4,80,164,0,13,159, 8,1,193,7,255,18,41,127,1,80,143,16,45,63,45,133,14,31,22,194,21,137, 30,205,191,50,43,158,12,47,13,81,84,193,16,229,19,80,224,143,2,7,165, 24,31,255,31,173,1,40,80,85,159,0,78,0,160,0,85,85,219,16,231,1,4,16, 18,143,6,0,21,226,0,248,143,19,14,143,23,24,143,16,12,63,30,143,32, 62,31,160,16,85,237,64,138,12,131,2,135,50,16,138,14,22,65,247,31,36, 224,9,228,5,164,6,102,80,108,164,0,224,141,12,143,14,7,143,32,36,159, 0,190,1,35,84,85,159,0,78,0,84,0,2,213,228,1,12,143,6,0,21,226,0,1, 143,10,7,81,222,143,4,13,143,16,46,31,46,17,194,19,135,20,171,13,15, 94,199,17,174,14,13,17,84,1,208,64,193,0,45,159,0,36,16,85,209,24,0, 134,8,132,2,80,192,143,30,4,47,255,47,109,1,34,84,85,159,0,78,1,84, 0,0,119,80,0,227,1,193,1,3,80,162,0,255,6,7,127,159,19,7,81,143,4,13, 143,16,53,79,39,132,20,23,228,13,243,31,86,133,12,229,17,139,14,79, 0,81,84,194,41,237,134,42,132,2,239,15,45,159,0,22,81,226,51,229,17, 80,224,95,9,195,2,127,255,79,45,1,84,0,144,0,1,160,0,85,15,41,1,251, 84,207,3,12,233,11,129,14,15,0,207,15,40,65,207,19,17,212,143,16,16, 47,40,223,14,3,80,31,40,1,193,10,0,209,21,194,50,161,0,65,194,12,65, 0,81,219,116,141,30,141,2,1,140,50,131,16,65,22,112,159,0,40,16,18, 127,255,31,173,1,41,84,85,159,0,92,0,2,65,81,189,255,14,93,135,16,64, 193,16,56,145,32,223,32,73,5,191,196,0,143,32,6,5,192,15,1,154,0,143, 18,45,137,14,148,141,12,131,16,0,1,165,0,1,208,1,5,28,0,17,0,16,48, 17,129,2,85,4,84,81,0,85,0,81,18,1,208,80,203,11,95,14,0,0,5,85,64, 114,81,64,49,64,1,0,84,144,9,224,65,148,10,159,0,255,127,108,1,6,4, 80,85,85,0,192,0,159,0,10,205,5,143,4,13,31,10,0,64,129,12,167,12,0, 216,28,193,11,143,16,11,81,207,15,40,132,14,64,0,211,0,138,2,14,1,12, 5,84,207,14,44,197,12,159,0,11,131,32,65,81,64,164,0,21,236,48,138, 46,29,60,64,50,229,7,64,157,81,193,41,0,84,161,46,164,0,159,0,88,1, 192,50,79,255,79,140,1,1,84,85,1,84,85,85,65,235,192,0,159,0,70,130, 12,232,1,0,18,64,164,0,255,132,4,143,16,41,193,11,39,127,32,133,2,143, 32,100,159,0,46,234,207,31,0,193,41,201,2,32,84,31,56,65,129,8,231, 85,129,7,51,133,2,64,1,108,164,0,248,130,14,192,0,106,143,32,57,159, 0,255,95,29,1,0,84,85,5,80,85,85,85,234,81,192,0,159,0,69,129,12,69, 38,0,20,124,64,1,163,0,131,4,143,16,11,193,3,143,20,41,5,241,64,127, 45,79,45,133,14,47,8,5,0,84,249,40,194,21,137,18,207,19,43,69,63,6, 5,80,129,192,0,8,69,81,0,0,85,85,248,229,1,143,2,8,165,6,143,12,14, 63,255,47,125,1,34,84,85,159,0,94,1,84,1,208,14,223,65,159,15,24,162, 5,65,223,4,13,143,4,14,143,16,9,191,32,93,125,109,0,148,0,15,100,229, 15,31,38,161,9,1,250,171,49,130,2,135,50,112,138,30,132,16,4,63,36, 84,65,84,131,1,64,194,0,64,24,64,236,1,28,138,4,165,2,1,12,159,0,238, 1,32,84,85,159,0,94,1,80,1,0,26,0,0,1,0,159,6,23,178,20,5,159,21,7, 231,69,226,0,143,4,8,143,16,14,69,84,193,7,143,8,24,179,159,0,30,141, 12,1,192,15,111,104,69,84,208,15,143,24,160,2,80,5,80,225,34,134,6, 130,2,142,193,0,111,36,65,84,1,192,13,135,10,36,240,64,227,1,235,15, 79,255,47,95,1,32,84,85,159,0,94,5,80,1,0,21,0,0,65,1,255,6,29,81,159, 3,6,69,247,143,4,13,143,16,53,15,39,132,20,71,0,79,92,208,13,204,82, 229,17,133,2,64,1,161,0,160,2,81,111,5,80,225,0,134,22,81,194,41,77, 239,15,45,63,159,0,6,69,81,139,18,37,227,1,47,10,195,2,192,143,12,14, 79,255,60,1,36,84,85,159,0,76,1,0,3,5,252,0,139,2,15,22,143,20,46,143, 16,255,143,12,61,13,5,91,0,4,224,10,4,228,13,95,82,69,196,0,90,46,5, 137,14,4,164,0,125,68,140,8,157,69,136,2,64,85,225,3,143,4,8,87,68, 254,212,27,140,32,160,16,143,16,14,149,0,61,237,5,131,2,224,20,143, 6,13,79,24,21,1,55,80,85,159,0,46,171,8,0,4,141,2,251,15,54,143,16, 240,173,54,143,14,4,95,22,239,60,22,64,134,1,22,161,1,69,85,0,50,64, 143,28,47,163,11,241,69,224,0,193,0,193,1,133,2,64,85,68,252,160,0, 41,53,35,163,16,143,44,62,159,0,222,1,34,80,85,159,0,62,80,85,0,0,119, 5,0,227,1,193,1,3,5,162,0,13,234,255,15,63,143,16,29,31,30,15,17,84, 15,108,16,241,4,191,80,15,74,64,129,11,134,14,173,19,139,2,143,64,18, 31,129,10,64,85,69,192,0,161,1,21,169,0,192,23,159,24,47,159,0,253, 1,32,84,85,159,0,78,84,85,4,0,63,4,0,0,192,0,193,13,144,1,6,129,3,175, 255,15,79,143,16,39,81,127,54,81,15,10,79,14,15,49,175,132,13,15,102, 20,15,79,68,234,1,225,10,135,14,140,141,2,63,14,68,85,64,160,0,193, 63,65,107,85,69,64,41,85,44,5,0,240,169,8,165,13,143,12,6,15,14,159, 0,98,1,34,80,85,159,0,78,80,85,0,2,125,5,0,225,1,195,1,165,2,195,2, 143,16,132,69,125,111,54,81,111,10,31,30,15,33,230,13,15,72,21,81,141, 2,84,199,2,16,15,61,5,0,64,215,192,0,199,17,91,21,200,5,21,162,0,43, 128,127,46,159,0,190,1,40,84,85,159,0,62,81,234,1,65,85,126,1,0,1,133, 13,19,15,24,143,20,32,143,16,238,246,65,127,27,143,64,48,139,30,15, 6,4,164,0,93,174,68,130,4,80,134,6,69,143,2,35,135,25,133,14,187,68, 148,2,1,143,16,13,85,227,3,5,10,188,225,0,121,20,28,137,10,31,14,95, 134,1,41,80,85,159,0,92,0,4,4,0,250,159,15,93,143,16,255,239,8,42,233, 70,193,1,135,2,16,115,215,84,141,14,63,40,16,234,1,21,2,25,185,11,133, 12,16,164,0,79,6,157,0,85,85,141,179,22,31,8,16,0,20,0,137,10,84,192, 28,143,14,26,47,118,1,47,84,85,159,0,62,0,196,0,228,1,4,221,141,2,141, 3,143,16,104,21,111,62,176,42,108,64,123,143,32,74,64,196,0,171,12, 47,40,141,2,20,228,0,95,163,0,0,194,27,64,130,1,2,159,0,45,141,22,29, 103,0,0,20,0,167,22,225,1,20,128,255,13,46,79,255,1,42,84,85,159,0, 80,65,192,0,69,198,1,78,1,0,3,4,0,207,15,82,143,16,255,95,95,170,65, 95,15,81,143,14,65,65,212,11,21,131,2,61,84,65,80,35,229,15,81,161, 0,68,235,162,2,212,3,130,21,47,28,5,36,1,228,25,191,35,145,0,84,146, 2,135,14,111,14,131,18,59,112,141,4,20,174,2,63,10,31,18,1,34,84,85, 159,0,78,0,85,0,0,110,20,0,228,1,6,20,162,0,255,15,79,143,16,17,215, 21,196,0,111,69,81,143,32,92,84,64,10,119,145,0,64,15,72,133,10,143, 2,4,84,118,131,14,120,63,0,20,160,0,73,13,229,5,0,0,223,4,48,79,62, 20,134,12,52,88,226,0,96,136,16,20,95,65,15,110,1,32,84,85,159,0,94, 5,85,65,85,6,5,0,0,0,4,0,207,15,96,143,16,4,165,69,47,92,69,143,32, 109,1,64,47,108,0,22,47,106,69,85,1,42,81,191,13,72,244,27,167,1,192, 13,64,128,1,65,80,227,31,151,0,255,145,4,135,2,243,5,127,24,131,24, 225,11,24,247,1,112,144,0,20,160,0,31,10,97,1,35,84,85,159,0,94,0,85, 0,4,175,191,15,95,143,16,5,69,226,0,64,175,6,7,195,36,143,4,8,87,63, 29,69,143,32,109,1,15,92,68,160,0,193,39,199,133,40,229,15,15,40,84, 85,80,224,0,193,0,13,143,2,2,16,0,16,0,41,139,14,68,163,40,145,0,4, 236,17,81,85,4,196,2,24,161,7,4,0,20,194,1,193,23,0,0,175,21,0,16,88, 80,160,13,89,225,1,252,83,147,0,31,2,45,135,16,31,20,47,62,1,34,84, 85,159,0,94,0,85,0,2,111,20,0,191,15,95,143,16,11,21,175,6,7,195,36, 143,4,8,93,63,29,69,143,32,109,1,63,78,128,38,248,74,84,62,160,0,64, 80,128,1,196,2,227,15,31,56,133,10,211,0,20,139,2,84,247,1,0,84,162, 0,92,151,0,20,194,16,20,80,201,59,59,65,223,85,225,4,227,5,21,65,138, 10,233,1,159,0,36,254,167,8,129,13,197,13,133,2,143,4,10,161,2,233, 25,15,36,1,42,80,85,159,0,78,0,192,0,64,232,1,253,0,2,255,14,79,143, 16,71,175,38,30,143,32,140,35,21,175,243,0,130,3,16,228,0,20,162,0, 143,30,0,143,2,2,219,135,12,141,14,143,16,6,16,68,157,0,16,132,4,255, 161,4,17,133,2,161,21,162,6,135,24,194,24,117,216,133,10,77,142,14, 84,143,16,12,159,0,222,1,54,84,85,159,0,255,15,221,21,196,0,15,42,197, 65,204,1,135,2,64,84,64,225,0,81,100,85,0,4,85,84,84,225,1,21,34,85, 20,0,163,0,85,85,20,191,82,13,224,64,138,4,128,8,16,65,85,80,84,149, 80,193,0,84,64,18,64,129,15,80,46,0,84,64,132,14,64,164,0,149,0,29, 190,4,0,16,80,135,20,127,0,161,2,57,240,80,56,161,9,137,6,159,0,150, 1,46,84,85,159,0,78,1,176,12,193,0,3,243,0,4,255,14,79,143,16,40,191, 34,61,1,80,143,32,92,254,177,11,249,11,139,14,111,1,193,19,201,30,13, 140,2,151,80,2,80,84,163,0,0,32,129,14,215,129,1,34,159,0,29,81,164, 6,80,36,133,2,254,160,12,226,13,39,195,4,37,5,159,0,255,31,29,1,40, 80,85,159,0,94,0,160,0,85,85,253,16,143,15,95,143,16,56,193,38,143, 39,40,143,32,176,63,58,0,171,12,165,2,16,194,0,16,128,2,16,204,21,210, 63,4,135,50,51,64,140,14,0,81,196,55,139,84,50,81,0,65,143,16,4,16, 60,219,39,164,2,40,80,44,162,0,84,166,9,128,12,159,0,132,1,32,84,85, 159,0,94,1,84,0,0,30,1,0,80,0,159,15,95,143,16,24,209,34,159,35,71, 91,1,68,143,32,92,81,160,0,42,0,47,76,214,240,11,146,0,143,2,4,81,54, 80,98,160,2,124,84,81,138,46,52,135,24,12,229,7,0,109,0,16,80,159,0, 46,81,224,65,231,17,80,248,15,11,225,0,7,193,0,143,16,48,95,110,1,39, 80,85,159,0,255,85,21,226,0,175,35,14,149,175,39,255,15,163,16,0,7, 16,160,0,69,149,160,2,195,2,16,0,163,60,16,96,64,233,169,6,143,2,5, 133,66,79,2,0,128,1,0,81,223,67,210,11,113,65,143,16,2,7,227,1,11,188, 225,0,9,80,142,6,153,0,15,14,33,1,37,84,85,159,0,255,85,21,226,0,1, 119,143,4,7,81,47,13,15,255,10,17,160,0,193,39,113,135,40,21,162,46, 227,46,79,34,81,85,65,205,224,0,193,0,143,2,2,64,0,160,0,104,0,171, 54,225,1,4,162,1,1,66,20,114,130,7,225,6,69,85,16,0,16,228,5,186,0, 48,80,182,7,208,0,240,0,64,104,127,64,1,193,13,88,162,0,151,0,95,2, 29,192,99,47,24,31,46,1,59,84,85,159,0,255,5,191,35,7,81,143,4,13,225, 15,254,128,38,180,38,227,1,81,85,1,65,217,128,1,200,2,79,58,0,38,143, 2,2,80,1,8,71,80,1,80,1,128,17,84,81,248,84,194,57,132,58,70,133,22, 26,5,85,39,80,0,80,227,7,0,85,160,10,195,1,255,134,10,232,1,159,0,20, 167,6,129,11,197,11,143,2,6,143,6,10,192,162,2,232,27,31,20,1,43,84, 85,159,0,94,1,176,14,1,239,14,95,64,143,16,72,65,63,45,21,0,0,0,84, 232,0,143,32,102,208,15,10,1,160,0,0,0,43,85,0,21,162,1,1,128,19,65, 129,2,127,224,0,81,2,143,30,0,63,2,137,28,109,143,16,12,35,157,0,65, 84,165,1,64,0,80,80,191,117,161,7,64,80,103,211,10,21,193,3,176,137, 4,21,1,28,159,0,238,1,62,84,85,159,0,255,15,222,177,64,253,64,255,66, 45,197,5,204,1,135,2,0,81,0,225,0,69,0,101,81,0,1,0,0,0,85,16,0,17, 0,16,192,0,17,0,81,185,81,2,84,240,4,176,5,209,5,81,80,34,207,13,12, 1,81,233,1,81,81,0,128,6,15,5,85,64,81,64,17,177,8,128,2,118,210,9, 65,146,10,241,11,145,0,1,164,0,127,5,191,16,192,0,64,0,21,192,8,142, 2,161,2,120,138,4,1,103,161,11,137,6,79,134,1,39,84,85,159,0,94,5,80, 195,0,15,102,87,143,16,31,81,63,61,64,143,32,92,0,176,60,17,253,134, 2,34,139,34,202,28,193,1,13,47,9,64,34,2,64,81,163,0,0,80,0,128,10, 114,0,84,129,1,2,159,0,13,69,81,35,127,64,1,3,127,6,160,12,226,13,119, 195,4,224,37,165,6,143,14,14,159,0,254,1,54,84,85,159,0,255,15,31,65, 196,0,15,164,245,0,4,239,15,108,15,6,165,4,64,34,64,30,128,2,65,84, 65,218,86,31,4,135,50,19,138,1,22,1,84,1,17,68,143,16,20,121,65,84, 11,55,163,2,41,64,1,188,44,129,4,80,165,9,52,38,159,0,116,1,54,84,85, 159,0,255,15,0,81,196,0,15,179,216,69,160,0,15,90,0,4,143,2,6,69,81, 159,69,192,43,21,80,123,135,46,20,135,24,156,28,227,9,64,1,192,0,160, 0,159,0,30,65,151,81,165,1,64,1,1,69,84,227,1,248,79,12,225,0,71,194, 2,143,16,31,159,0,110,1,59,84,85,159,0,255,15,0,210,36,65,223,4,13, 221,143,4,14,15,255,4,0,6,239,15,108,19,64,14,202,1,64,0,21,85,225, 0,228,1,131,61,31,84,65,84,1,137,63,143,2,5,133,66,127,3,63,160,74, 1,68,143,16,18,23,227,1,27,137,6,112,226,3,1,125,203,11,79,0,1,58,84, 85,159,0,255,15,0,210,36,5,191,37,7,255,69,226,0,143,4,8,15,255,143, 44,0,193,39,135,40,141,2,25,111,29,69,85,5,129,50,47,5,0,1,149,160, 0,38,16,0,49,5,226,0,80,176,96,93,80,56,225,6,21,85,64,83,0,64,212, 1,0,160,1,64,1,98,191,192,21,160,2,1,226,11,70,240,6,193,13,71,254, 225,1,67,147,0,11,47,3,99,31,24,47,30,1,53,84,85,159,0,255,15,6,81, 159,3,6,69,246,143,4,13,15,254,128,38,180,38,15,82,0,6,143,2,4,31,69, 81,69,81,194,55,132,56,31,7,229,23,2,26,21,84,64,1,64,1,225,9,6,64, 1,85,1,85,85,195,1,147,0,127,64,5,233,1,31,16,161,9,167,6,35,143,2, 12,208,225,0,143,4,6,162,2,5,207,14,14,1,41,84,85,159,0,221,21,175, 30,109,21,84,141,175,16,108,129,16,21,0,0,207,16,103,63,118,21,96,191, 10,56,69,196,0,143,2,6,5,0,0,0,93,4,0,197,1,4,160,0,7,143,8,12,64,182, 143,12,19,143,14,9,5,129,45,8,21,225,15,137,16,1,35,80,85,159,0,78, 80,85,0,2,244,227,1,195,1,135,2,15,80,143,16,239,84,208,13,64,181,5, 111,103,16,138,14,15,50,64,192,0,69,246,79,7,141,12,75,15,2,131,8,64, 50,73,59,64,85,68,44,165,0,35,0,17,0,159,0,173,1,34,80,85,159,0,94, 80,85,0,2,110,5,0,191,15,95,143,16,244,81,63,109,243,15,63,75,171,21, 141,2,84,199,2,16,63,1,64,140,6,29,115,64,85,68,132,1,49,197,4,69,26, 60,5,0,64,164,58,53,0,24,220,21,228,13,145,0,21,162,0,27,79,110,1,54, 84,85,159,0,255,15,119,81,159,32,238,15,209,55,84,85,80,162,0,169,62, 84,64,203,4,192,143,2,58,225,1,7,1,54,80,85,159,0,255,15,119,69,159, 32,238,15,211,253,64,162,0,169,62,135,2,131,1,101,195,117,69,240,15, 23,227,0,13,135,14,49,1,46,84,85,159,0,96,81,207,14,97,143,16,255,47, 231,139,65,160,0,85,85,69,143,14,87,1,83,82,148,109,21,133,2,80,181, 16,1,0,145,0,212,80,135,6,15,27,69,12,5,4,0,220,0,147,14,8,84,145,47, 229,1,149,0,1,58,80,85,159,0,255,15,255,15,189,21,255,9,60,158,16,160, 0,85,85,135,105,131,2,193,0,100,31,0,16,0,0,112,229,1,149,0,143,17, 38,216,177,7,224,0,36,69,1,50,16,0,248,21,208,2,246,11,0,163,15,15, 12,1,35,84,85,159,0,94,0,85,0,2,175,159,15,95,143,16,135,21,63,92,81, 143,32,94,203,76,227,15,222,63,40,128,40,224,0,64,140,2,247,9,141,12, 63,14,63,85,85,20,204,48,63,12,133,8,160,8,192,8,238,231,1,159,0,36, 143,20,12,141,4,20,170,14,218,17,95,37,1,61,84,85,159,0,255,15,255, 15,255,15,127,81,126,200,1,21,160,0,129,2,197,2,99,192,0,180,125,0, 1,0,0,0,64,85,5,0,64,64,80,225,1,1,55,84,85,159,0,255,15,97,21,196, 0,15,255,24,15,51,84,85,84,248,92,224,1,85,84,206,80,128,1,191,95,37, 20,0,161,0,113,131,2,211,0,70,63,18,84,247,1,0,84,16,247,128,9,18,135, 64,63,15,138,16,20,136,10,129,3,0,159,0,30,1,55,84,85,159,0,255,15, 97,69,159,32,238,15,255,0,15,86,1,53,84,85,159,0,255,15,97,69,226,0, 64,245,143,4,7,227,52,63,8,15,255,15,139,84,160,0,80,219,239,9,59,131, 10,195,10,80,4,133,2,16,2,112,88,0,1,82,240,78,1,55,84,85,159,0,255, 15,103,21,175,3,7,227,52,247,143,4,8,15,255,15,93,237,104,137,2,84, 162,0,15,8,106,95,46,20,18,231,11,0,18,64,192,1,208,64,162,13,39,0, 31,1,1,58,80,85,159,0,255,15,143,207,54,188,0,2,245,21,192,0,143,16, 106,1,133,43,16,64,64,164,168,4,143,2,12,16,47,29,0,84,145,29,0,191, 81,95,0,16,160,0,39,225,1,45,193,36,86,25,80,142,6,16,29,84,31,6,147, 0,1,62,84,85,159,0,255,15,255,15,204,175,96,47,156,8,46,64,84,0,160, 2,64,140,2,193,0,3,156,0,4,85,21,102,141,4,47,41,0,134,84,133,12,64, 0,85,0,231,13,15,6,1,58,84,85,159,0,255,15,112,223,50,205,81,239,9, 59,45,0,84,0,128,38,0,141,2,198,40,0,143,4,95,6,81,84,81,193,5,200, 46,15,28,187,133,10,160,10,1,233,1,127,20,167,6,80,162,0,208,63,12, 143,6,10,162,2,1,143,16,30,1,62,80,85,159,0,255,15,145,225,54,175,55, 255,15,37,95,16,0,161,0,64,128,1,175,42,100,135,16,132,2,198,82,135, 60,31,31,84,16,85,177,9,24,161,84,17,64,26,21,84,0,81,0,225,1,1,62, 84,85,159,0,255,15,114,241,50,191,51,255,15,54,19,81,85,81,81,239,9, 56,80,0,161,0,179,129,1,131,2,0,22,15,20,81,84,97,220,135,62,15,30, 139,16,80,247,11,130,3,31,14,1,55,80,85,159,0,255,15,113,21,226,0,207, 51,14,160,207,55,255,15,169,64,143,14,101,1,53,84,85,159,0,255,15,113, 21,226,0,1,117,143,4,7,81,63,13,15,255,15,217,80,162,0,65,141,160,1, 193,0,85,85,64,116,134,2,84,128,34,52,1,59,84,85,159,0,255,15,120,223, 51,7,81,143,4,13,236,15,255,15,93,132,52,143,2,3,81,162,0,31,72,80, 204,84,1,231,13,0,84,2,192,1,0,96,85,80,0,120,84,80,85,1,52,84,85,159, 0,255,15,159,65,239,23,171,1,28,0,1,0,0,192,0,165,81,131,2,85,246,0, 239,15,84,176,13,10,169,2,64,133,44,176,19,207,1,137,46,95,11,65,84, 95,26,143,16,11,160,0,252,87,225,1,29,137,6,130,4,240,10,75,65,160, 84,28,80,11,1,56,84,85,159,0,255,15,255,15,204,81,0,7,1,0,0,0,85,0, 134,2,159,10,47,15,251,1,0,81,0,80,224,0,61,192,0,52,17,1,80,208,15, 18,16,180,2,0,124,0,1,144,1,1,132,6,143,2,43,135,12,0,48,1,85,1,225, 3,59,1,54,84,85,159,0,255,15,128,81,159,32,238,15,26,31,0,80,0,80,224, 0,150,91,132,2,192,0,199,100,20,5,69,81,69,129,44,198,44,246,13,161, 2,15,26,133,12,160,12,5,233,1,159,0,4,79,69,81,165,1,64,1,161,0,167, 6,127,18,208,225,24,143,4,6,162,2,5,143,16,14,1,55,84,85,159,0,255, 15,161,65,196,0,15,255,101,15,17,0,6,195,97,64,0,161,0,0,249,128,1, 239,15,82,160,13,54,129,15,143,16,0,65,84,194,113,135,60,143,2,31,80, 65,84,1,8,20,64,80,64,80,1,1,226,1,1,55,84,85,159,0,255,15,130,81,196, 0,15,255,59,15,128,64,1,161,0,129,1,131,2,0,6,2,127,4,65,81,69,81,5, 80,135,60,185,69,16,69,136,62,31,30,139,16,64,1,224,135,14,129,3,231, 1,147,0,1,59,84,85,159,0,255,15,130,242,52,65,223,4,13,230,143,4,14, 15,255,140,44,15,100,65,0,161,0,239,15,102,1,58,84,85,159,0,255,15, 130,242,52,5,223,53,7,247,69,226,0,143,4,8,15,255,15,122,0,162,0,193, 55,90,143,56,67,64,2,5,129,68,248,13,0,132,2,1,53,84,85,159,0,255,15, 136,81,159,3,6,69,249,143,4,13,15,255,15,93,132,52,143,2,7,15,74,64, 81,152,161,0,167,15,0,80,18,144,127,0,84,0,64,85 }; static MTB * mtb_KRKP = NULL; void initMTB_KRKP() { mtb_KRKP = new MTB ("KRKP", 2, 134); mtb_KRKP->SetPackedData (mtbdata_KRKP); mtb_KRKP->Add (A2, A1, WHITE, 69); mtb_KRKP->Add (A2, B1, WHITE, 39); mtb_KRKP->Add (A2, C1, WHITE, 85); mtb_KRKP->Add (A2, B2, WHITE, 69); mtb_KRKP->Add (A2, C2, WHITE, 87); mtb_KRKP->Add (A2, A3, WHITE, 69); mtb_KRKP->Add (A2, B3, WHITE, 53); mtb_KRKP->Add (A2, C3, WHITE, 95); mtb_KRKP->Add (B2, A1, WHITE, 75); mtb_KRKP->Add (B2, B1, WHITE, 92); mtb_KRKP->Add (B2, C1, WHITE, 72); mtb_KRKP->Add (B2, D1, WHITE, 84); mtb_KRKP->Add (B2, A2, WHITE, 70); mtb_KRKP->Add (B2, C2, WHITE, 80); mtb_KRKP->Add (B2, D2, WHITE, 88); mtb_KRKP->Add (B2, A3, WHITE, 89); mtb_KRKP->Add (B2, B3, WHITE, 60); mtb_KRKP->Add (B2, C3, WHITE, 89); mtb_KRKP->Add (B2, D3, WHITE, 92); mtb_KRKP->Add (C2, A1, WHITE, 87); mtb_KRKP->Add (C2, B1, WHITE, 66); mtb_KRKP->Add (C2, C1, WHITE, 84); mtb_KRKP->Add (C2, D1, WHITE, 80); mtb_KRKP->Add (C2, E1, WHITE, 82); mtb_KRKP->Add (C2, A2, WHITE, 84); mtb_KRKP->Add (C2, B2, WHITE, 88); mtb_KRKP->Add (C2, D2, WHITE, 100); mtb_KRKP->Add (C2, E2, WHITE, 86); mtb_KRKP->Add (C2, A3, WHITE, 102); mtb_KRKP->Add (C2, B3, WHITE, 94); mtb_KRKP->Add (C2, C3, WHITE, 75); mtb_KRKP->Add (C2, D3, WHITE, 97); mtb_KRKP->Add (C2, E3, WHITE, 97); mtb_KRKP->Add (D2, B1, WHITE, 107); mtb_KRKP->Add (D2, C1, WHITE, 78); mtb_KRKP->Add (D2, D1, WHITE, 87); mtb_KRKP->Add (D2, E1, WHITE, 77); mtb_KRKP->Add (D2, F1, WHITE, 90); mtb_KRKP->Add (D2, B2, WHITE, 106); mtb_KRKP->Add (D2, C2, WHITE, 104); mtb_KRKP->Add (D2, E2, WHITE, 106); mtb_KRKP->Add (D2, F2, WHITE, 98); mtb_KRKP->Add (D2, B3, WHITE, 97); mtb_KRKP->Add (D2, C3, WHITE, 105); mtb_KRKP->Add (D2, D3, WHITE, 100); mtb_KRKP->Add (D2, E3, WHITE, 99); mtb_KRKP->Add (D2, F3, WHITE, 86); mtb_KRKP->Add (A3, A2, WHITE, 70); mtb_KRKP->Add (A3, B2, WHITE, 59); mtb_KRKP->Add (A3, B3, WHITE, 56); mtb_KRKP->Add (A3, A4, WHITE, 67); mtb_KRKP->Add (A3, B4, WHITE, 54); mtb_KRKP->Add (B3, A2, WHITE, 87); mtb_KRKP->Add (B3, B2, WHITE, 93); mtb_KRKP->Add (B3, C2, WHITE, 71); mtb_KRKP->Add (B3, A3, WHITE, 83); mtb_KRKP->Add (B3, C3, WHITE, 68); mtb_KRKP->Add (B3, A4, WHITE, 81); mtb_KRKP->Add (B3, B4, WHITE, 70); mtb_KRKP->Add (B3, C4, WHITE, 78); mtb_KRKP->Add (C3, B2, WHITE, 67); mtb_KRKP->Add (C3, C2, WHITE, 95); mtb_KRKP->Add (C3, D2, WHITE, 82); mtb_KRKP->Add (C3, B3, WHITE, 74); mtb_KRKP->Add (C3, D3, WHITE, 69); mtb_KRKP->Add (C3, B4, WHITE, 83); mtb_KRKP->Add (C3, C4, WHITE, 78); mtb_KRKP->Add (C3, D4, WHITE, 84); mtb_KRKP->Add (D3, C2, WHITE, 81); mtb_KRKP->Add (D3, D2, WHITE, 106); mtb_KRKP->Add (D3, E2, WHITE, 97); mtb_KRKP->Add (D3, C3, WHITE, 84); mtb_KRKP->Add (D3, E3, WHITE, 90); mtb_KRKP->Add (D3, C4, WHITE, 84); mtb_KRKP->Add (D3, D4, WHITE, 93); mtb_KRKP->Add (D3, E4, WHITE, 90); mtb_KRKP->Add (A4, A3, WHITE, 91); mtb_KRKP->Add (A4, B3, WHITE, 72); mtb_KRKP->Add (A4, B4, WHITE, 77); mtb_KRKP->Add (A4, A5, WHITE, 91); mtb_KRKP->Add (A4, B5, WHITE, 72); mtb_KRKP->Add (B4, A3, WHITE, 82); mtb_KRKP->Add (B4, B3, WHITE, 73); mtb_KRKP->Add (B4, C3, WHITE, 76); mtb_KRKP->Add (B4, A4, WHITE, 90); mtb_KRKP->Add (B4, C4, WHITE, 86); mtb_KRKP->Add (B4, A5, WHITE, 88); mtb_KRKP->Add (B4, B5, WHITE, 119); mtb_KRKP->Add (B4, C5, WHITE, 116); mtb_KRKP->Add (C4, B3, WHITE, 90); mtb_KRKP->Add (C4, C3, WHITE, 104); mtb_KRKP->Add (C4, D3, WHITE, 86); mtb_KRKP->Add (C4, B4, WHITE, 85); mtb_KRKP->Add (C4, D4, WHITE, 92); mtb_KRKP->Add (C4, B5, WHITE, 79); mtb_KRKP->Add (C4, C5, WHITE, 107); mtb_KRKP->Add (C4, D5, WHITE, 103); mtb_KRKP->Add (D4, C3, WHITE, 99); mtb_KRKP->Add (D4, D3, WHITE, 122); mtb_KRKP->Add (D4, E3, WHITE, 88); mtb_KRKP->Add (D4, C4, WHITE, 73); mtb_KRKP->Add (D4, E4, WHITE, 78); mtb_KRKP->Add (D4, C5, WHITE, 79); mtb_KRKP->Add (D4, D5, WHITE, 105); mtb_KRKP->Add (D4, E5, WHITE, 92); mtb_KRKP->Add (A5, A4, WHITE, 71); mtb_KRKP->Add (A5, B4, WHITE, 67); mtb_KRKP->Add (A5, B5, WHITE, 73); mtb_KRKP->Add (A5, A6, WHITE, 34); mtb_KRKP->Add (A5, B6, WHITE, 38); mtb_KRKP->Add (B5, A4, WHITE, 64); mtb_KRKP->Add (B5, B4, WHITE, 63); mtb_KRKP->Add (B5, C4, WHITE, 77); mtb_KRKP->Add (B5, A5, WHITE, 43); mtb_KRKP->Add (B5, C5, WHITE, 70); mtb_KRKP->Add (B5, A6, WHITE, 18); mtb_KRKP->Add (B5, B6, WHITE, 50); mtb_KRKP->Add (B5, C6, WHITE, 52); mtb_KRKP->Add (C5, B4, WHITE, 66); mtb_KRKP->Add (C5, C4, WHITE, 51); mtb_KRKP->Add (C5, D4, WHITE, 68); mtb_KRKP->Add (C5, B5, WHITE, 55); mtb_KRKP->Add (C5, D5, WHITE, 54); mtb_KRKP->Add (C5, B6, WHITE, 25); mtb_KRKP->Add (C5, C6, WHITE, 43); mtb_KRKP->Add (C5, D6, WHITE, 51); mtb_KRKP->Add (D5, C4, WHITE, 74); mtb_KRKP->Add (D5, D4, WHITE, 69); mtb_KRKP->Add (D5, E4, WHITE, 80); mtb_KRKP->Add (D5, C5, WHITE, 63); mtb_KRKP->Add (D5, E5, WHITE, 59); mtb_KRKP->Add (D5, C6, WHITE, 32); mtb_KRKP->Add (D5, D6, WHITE, 45); mtb_KRKP->Add (D5, E6, WHITE, 46); } ////////////////////////////////////////////////////////////////////// // // KPKP static const byte mtbdata_KPKP[12152] = { 1,74,0,157,0,80,21,140,2,85,28,196,1,190,6,9,10,0,8,26,42,16,0,40,0, 32,24,170,0,168,98,0,160,192,0,15,6,64,85,21,160,0,77,0,64,21,85,84, 16,143,16,89,85,80,66,21,70,5,79,77,85,85,9,7,85,5,85,5,64,5,133,30, 128,2,136,65,165,16,5,84,1,47,75,42,84,36,41,84,37,137,8,84,9,31,12, 80,203,9,143,14,11,47,31,80,169,16,170,28,87,137,4,41,80,160,28,128, 143,12,7,31,14,1,13,170,2,168,2,160,2,170,214,160,0,56,192,2,168,92, 160,73,192,0,184,128,76,0,77,143,14,6,143,16,0,10,160,110,10,170,162, 0,11,168,5,129,20,0,191,160,12,128,9,129,24,13,146,49,142,28,0,12,1, 1,0,64,5,64,21,64,0,40,166,0,21,80,1,0,6,170,84,8,170,84,21,84,0,6, 170,86,68,170,86,138,2,90,170,90,74,106,49,170,106,149,137,8,145,0, 66,160,66,148,133,12,66,10,168,32,0,114,80,142,85,49,64,85,68,192,0, 63,8,135,4,95,170,86,225,0,0,36,128,2,128,16,32,84,59,106,60,170,60, 170,55,85,87,85,101,224,8,69,15,9,170,130,14,133,4,173,208,13,129,2, 84,5,106,160,16,96,80,85,38,85,34,64,38,86,34,170,123,38,90,34,0,37, 161,10,69,160,0,247,29,133,2,129,20,193,13,21,165,3,162,16,225,2,160, 34,114,5,90,149,106,128,151,38,0,106,149,1,0,12,161,2,110,144,0,106, 160,8,1,5,160,0,131,10,129,2,61,85,85,21,112,23,136,46,32,149,134,69, 130,50,170,86,149,86,228,29,132,66,55,149,90,128,166,16,115,160,38, 132,48,191,134,16,133,10,5,162,0,130,24,129,2,97,130,79,118,35,32,225, 15,133,28,32,160,166,62,51,223,160,166,16,35,160,54,36,54,39,141,51, 133,8,10,80,5,162,0,133,2,8,92,130,97,21,70,40,225,13,131,42,64,168, 119,86,168,29,164,16,131,16,168,160,0,51,124,67,168,80,51,73,17,131, 6,170,23,74,170,74,42,160,113,5,129,52,129,2,93,0,42,128,115,21,122, 132,56,36,170,189,136,14,34,82,44,162,16,131,16,225,0,170,192,2,153, 0,1,1,0,160,90,149,90,0,90,0,160,80,165,0,149,140,2,170,106,170,106, 165,0,1,64,3,170,90,0,88,187,136,4,17,82,139,6,90,145,0,98,229,7,132, 128,8,17,138,138,10,0,20,160,5,86,85,86,85,84,0,164,0,85,28,20,1,85, 17,192,0,31,8,135,4,170,58,90,86,85,128,13,134,8,130,22,64,140,16,169, 170,108,170,103,165,209,8,84,5,82,8,149,192,0,21,15,9,169,86,0,191, 84,133,4,105,48,162,13,37,160,16,2,94,21,86,18,0,136,40,17,161,2,20, 239,106,18,163,16,165,10,21,160,0,29,133,2,51,129,20,1,84,80,36,149, 86,196,13,111,37,90,52,37,106,32,166,16,45,62,128,6,85,170,18,1,224, 27,160,0,18,122,84,21,136,2,192,28,132,20,3,1,134,38,15,169,86,169, 86,0,166,16,129,50,112,185,88,130,66,106,112,4,132,48,170,128,199,4, 128,20,160,0,10,80,5,114,130,22,27,0,8,80,21,2,133,2,32,225,13,185, 133,26,0,128,77,165,16,131,82,90,128,188,22,131,16,128,22,71,19,130, 6,74,12,170,74,42,64,5,162,0,131,8,138,27,90,40,64,21,18,133,2,32,137, 96,99,64,160,225,13,70,170,90,160,193,96,198,9,164,16,131,16,170,106, 160,52,67,55,170,170,160,52,132,4,42,160,0,131,34,118,134,2,168,57, 16,63,15,66,137,14,48,232,74,12,162,16,151,0,168,34,1,0,160,106,165, 106,2,104,0,129,64,165,0,149,106,85,106,168,106,20,135,2,170,106,170, 138,4,170,146,0,10,100,168,0,52,33,170,98,139,6,170,232,74,108,41,49, 138,229,7,0,0,4,160,90,165,74,85,65,136,16,90,5,85,89,85,81,1,80,163, 0,85,3,20,5,84,69,84,5,84,229,1,129,31,0,7,169,106,89,85,1,64,14,135, 8,169,170,168,170,240,12,140,24,135,16,169,165,66,5,71,86,208,8,81, 21,202,73,161,2,15,9,165,90,0,80,133,4,246,165,192,0,0,164,16,0,86, 2,118,88,170,90,13,170,2,37,149,86,227,169,2,35,165,10,85,84,85,30, 155,134,2,128,20,5,80,160,0,21,90,18,188,114,18,106,180,13,9,135,56, 0,170,203,66,1,115,169,86,160,0,82,1,145,97,128,10,86,165,130,32,85, 80,85,108,137,2,85,133,28,67,5,134,38,128,42,90,118,1,88,21,129,50, 128,16,104,23,132,48,204,168,21,50,74,42,50,17,169,140,90,161,0,41, 64,21,34,133,2,33,108,64,85,132,36,67,129,192,13,73,0,95,82,0,11,90, 133,46,129,16,160,16,198,32,223,52,70,130,86,42,160,0,137,90,128,2, 149,36,10,50,106,42,106,160,60,128,61,199,66,224,13,54,170,106,128, 193,96,25,142,164,16,131,16,170,170,128,68,21,144,0,138,2,137,4,170, 170,168,60,160,47,30,176,10,44,42,44,98,1,9,0,64,5,0,154,0,64,21,194, 140,2,251,1,31,15,0,10,0,8,232,1,138,42,160,0,40,0,32,22,170,80,56, 168,0,160,192,0,133,8,140,16,80,21,130,80,169,16,85,80,0,80,85,105, 26,81,0,80,1,47,58,156,0,85,96,186,21,160,0,0,128,15,1,240,1,84,0,222, 64,128,13,2,21,192,2,143,16,82,81,3,192,5,15,75,129,14,9,85,5,85,5, 125,80,5,133,30,128,2,1,163,16,33,1,64,24,1,31,63,42,84,41,84,37,64, 64,5,162,0,0,64,85,85,10,92,84,9,96,21,66,87,23,10,112,80,9,10,139, 14,15,30,42,80,42,90,80,169,80,170,76,137,4,41,128,8,174,160,76,128, 5,64,139,12,141,14,143,16,14,0,170,64,170,2,168,2,160,2,245,170,160, 0,4,129,4,192,2,168,28,160,174,25,192,0,128,28,0,19,141,12,31,13,1, 0,160,106,165,106,170,106,149,64,106,160,160,0,0,64,0,64,149,16,90, 149,90,170,192,0,128,90,0,145,80,1,170,86,0,82,21,82,255,227,1,134, 2,68,80,224,5,90,224,9,128,8,130,23,145,0,106,149,66,160,66,225,11, 66,0,64,18,170,170,10,168,160,0,221,0,80,129,16,165,44,1,38,85,12,161, 14,21,86,0,84,3,34,86,236,149,228,1,128,2,1,90,136,4,1,106,69,149,88, 10,170,170,98,12,138,71,5,85,148,0,64,85,68,192,0,31,8,41,71,170,86, 225,0,0,164,0,106,85,215,1,128,2,117,85,18,106,136,38,146,0,106,22, 90,3,25,101,192,0,69,31,9,247,170,130,14,133,4,208,13,97,84,21,161, 16,118,80,80,22,112,16,64,136,54,17,221,170,22,34,168,32,21,161,10, 69,251,160,0,29,133,2,129,20,193,13,21,165,3,240,162,16,2,160,34,226, 13,5,90,149,106,203,128,36,2,106,149,1,0,12,238,161,2,0,161,8,1,5,160, 0,241,17,131,2,60,85,85,21,112,23,133,46,225,33,170,119,85,149,69,226, 15,128,66,86,68,129,16,255,131,88,164,16,113,130,92,68,134,48,36,130, 22,114,130,10,5,162,0,134,2,17,84,21,86,236,32,225,15,133,28,80,160, 164,16,132,82,86,199,160,52,67,149,90,160,52,68,248,129,92,50,132,80, 130,16,33,135,8,10,80,198,5,160,0,135,2,8,80,21,112,7,142,40,138,14, 168,86,168,13,82,133,16,238,168,16,81,101,168,112,1,27,0,168,170,1, 0,160,106,165,106,170,106,0,8,106,128,106,0,64,161,0,149,106,189,149, 138,2,170,224,1,17,0,19,90,25,0,74,170,72,35,22,64,10,226,5,129,6,9, 145,0,106,170,66,10,4,170,170,10,138,10,0,66,160,0,90,165,90,149,90, 0,90,0,186,80,163,0,149,224,1,25,142,16,86,162,14,199,88,134,4,1,90, 170,82,139,6,72,104,147,0,98,134,22,3,138,133,16,85,85,2,165,86,85, 86,85,84,0,164,0,142,85,4,1,85,17,192,0,15,8,135,4,25,170,90,86,85, 160,13,132,8,170,85,95,130,22,64,134,16,86,147,14,136,38,147,16,71, 42,209,8,84,5,8,149,192,0,21,15,9,87,169,86,0,84,133,4,105,48,194,13, 255,37,160,16,2,21,34,176,13,135,54,17,187,161,2,4,106,2,83,165,10, 21,160,0,204,13,133,2,129,20,1,84,96,52,149,219,86,228,29,53,90,68, 53,106,48,254,164,16,15,0,162,6,2,17,224,27,160,0,2,122,84,21,136,2, 192,28,132,20,19,1,134,38,15,169,86,169,86,0,166,16,225,15,0,243,102, 114,161,50,20,134,48,170,128,18,140,130,20,160,0,10,80,5,2,133,2,8, 110,80,21,2,37,32,225,13,133,26,0,231,128,45,164,16,132,82,90,128,20, 36,248,129,106,18,132,80,130,16,17,132,6,74,170,24,74,42,64,5,160,0, 133,8,138,90,54,40,64,21,48,135,2,32,135,56,98,143,160,138,14,170,90, 160,194,96,8,162,16,26,133,16,170,106,160,66,151,0,160,66,1,32,160, 170,145,0,0,168,0,170,178,0,2,128,140,2,242,1,170,2,44,20,170,170,10, 168,36,106,160,0,42,55,170,34,42,51,37,2,6,145,0,196,13,240,7,5,160, 106,165,96,2,32,104,0,64,99,149,106,149,106,23,85,106,168,106,5,85, 129,10,136,4,89,142,16,90,162,14,98,38,130,6,170,74,209,108,39,147, 0,138,244,15,0,165,90,16,160,0,74,85,65,134,14,85,149,90,5,85,89,85, 81,1,80,51,85,3,20,5,84,69,84,5,84,229,1,129,31,0,135,4,169,106,89, 85,1,64,6,133,8,169,86,169,170,168,193,39,133,16,212,90,147,16,77,5, 71,86,208,8,81,229,21,73,161,2,31,9,165,90,16,80,123,133,4,165,192, 0,16,164,16,16,86,18,238,4,16,2,25,170,18,3,17,227,169,18,3,165,10, 85,84,85,30,155,134,2,128,20,5,80,160,0,21,90,18,190,50,18,106,212, 13,25,132,56,224,15,16,121,170,66,17,49,128,40,160,6,169,82,200,17, 49,128,10,86,165,130,32,85,80,182,85,137,2,85,133,36,35,5,134,38,161, 26,118,1,88,117,192,9,225,73,104,117,134,48,194,168,35,130,18,74,170, 74,42,130,16,17,5,64,169,90,163,0,41,64,21,141,114,133,2,33,64,85,130, 36,21,129,138,192,13,25,0,82,0,27,90,131,46,127,169,106,129,16,160, 16,196,32,133,88,128,106,18,124,132,86,42,160,0,135,104,130,2,147,36, 20,106,43,42,106,160,28,128,29,66,136,96,120,112,128,194,96,24,162, 16,133,16,170,170,128,128,34,1,69,0,159,0,81,10,0,8,232,1,42,16,160, 0,40,0,32,245,1,64,5,64,132,5,217,5,64,21,64,21,56,85,37,64,0,64,249, 3,85,65,140,2,69,225,123,143,16,30,224,15,26,85,85,21,80,224,160,0, 224,2,128,11,64,85,85,85,80,33,0,80,85,9,81,0,80,1,250,7,140,20,143, 32,31,156,0,128,12,64,21,112,111,0,84,113,242,1,84,0,224,16,1,235,129, 20,129,16,130,33,111,75,21,6,5,15,9,226,114,143,14,11,15,12,67,9,85, 5,224,12,250,5,133,30,128,2,33,161,16,35,1,40,224,1,47,29,13,47,0,42, 84,41,84,49,37,80,5,162,0,129,2,10,84,9,227,32,130,65,40,7,10,80,9, 134,64,163,17,143,30,26,170,2,168,0,160,192,0,0,99,42,80,42,80,169, 64,165,118,64,170,161,81,128,76,133,2,168,161,97,116,13,41,64,37,64, 160,132,80,21,128,48,228,15,42,64,143,28,10,143,16,14,1,5,0,64,5,64, 0,160,0,21,137,226,0,128,1,80,21,80,137,2,0,84,128,0,63,9,160,90,160, 90,42,64,128,42,54,168,106,170,106,170,64,40,170,64,149,52,170,145, 0,66,170,8,66,149,66,160,66,54,10,170,19,10,128,10,168,64,0,0,129,16, 157,161,16,133,8,85,85,66,194,0,34,85,224,162,14,135,2,225,1,41,80, 160,90,170,97,90,42,38,130,16,106,170,80,149,250,36,130,14,160,16,106, 16,43,5,38,229,80,34,195,16,161,0,85,85,19,21,70,131,15,84,128,2,84, 168,86,57,81,74,170,90,53,168,85,82,106,86,218,86,21,4,90,21,3,85,150, 0,57,64,85,68,192,0,95,8,135,4,168,86,195,225,0,128,19,160,0,85,85, 106,85,65,207,33,68,162,16,149,106,70,116,6,171,20,9,101,192,0,69,15, 9,170,130,14,223,133,4,208,13,129,2,84,69,161,16,32,194,51,217,224, 15,66,48,64,22,2,160,170,187,22,2,168,0,21,161,10,69,160,0,247,45,133, 2,129,20,225,13,37,165,35,160,16,225,36,160,34,227,67,20,90,149,106, 128,159,2,20,106,149,17,224,61,26,160,2,223,129,10,161,8,17,5,160,0, 135,2,160,81,96,199,119,133,46,225,33,170,85,149,52,130,48,57,160,12, 149,86,52,226,15,128,16,90,128,223,162,16,19,129,34,160,50,136,48,36, 163,22,123,129,10,5,160,0,136,2,4,69,32,4,113,69,160,162,16,0,162,28, 149,86,160,223,18,227,15,113,160,18,83,98,66,128,134,80,18,168,170, 1,91,0,159,0,14,64,160,0,9,80,16,1,143,2,9,128,106,128,106,168,0,168, 46,70,160,170,0,2,17,67,241,1,75,170,10,49,138,10,131,12,5,32,179,226, 12,34,21,34,7,85,85,199,1,122,34,84,162,14,7,225,1,9,64,128,16,96,106, 168,86,114,170,170,66,170,224,66,67,243,1,23,85,85,5,80,49,37,80,21, 227,8,160,0,85,85,21,188,0,39,69,28,128,18,163,16,134,6,0,52,80,160, 90,9,18,106,5,160,216,86,164,14,21,90,53,21,85,85,62,37,84,85,160,0, 128,11,64,113,147,0,56,1,85,17,192,0,15,8,135,4,160,90,207,84,224,16, 133,8,168,85,130,16,164,35,96,233,164,16,6,20,7,165,209,0,84,5,82,8, 149,192,0,21,15,9,169,86,0,191,84,133,4,105,112,226,13,5,160,16,197, 51,246,224,15,100,195,73,82,18,138,161,2,52,247,106,50,17,131,12,161, 10,21,160,0,109,153,133,2,129,20,1,84,48,228,5,149,86,173,132,46,128, 8,170,49,90,229,67,132,16,106,245,80,162,16,95,2,162,6,2,5,2,169,157, 160,0,2,84,21,136,2,162,63,104,1,7,134,38,169,86,169,86,0,164,16,226, 9,126,160,12,0,36,228,15,160,0,128,16,160,14,136,48,112,170,128,128, 2,128,6,163,20,86,10,80,219,5,112,55,8,130,81,55,32,132,14,121,21,128, 29,162,16,16,163,28,90,128,188,82,229,15,170,128,115,1,134,80,130,16, 128,0,170,1,0,32,0,32,0,160,2,160,88,2,0,159,0,38,64,160,0,143,2,10, 170,0,129,170,137,12,128,170,168,170,168,10,219,17,165,2,143,16,12, 85,45,157,2,80,172,14,188,225,1,172,16,160,48,106,50,133,10,37,8,64, 165,66,165,66,132,7,64,85,7,85,21,64,149,64,85,36,129,2,188,199,1,161, 0,21,92,128,18,163,16,134,6,0,52,64,128,106,42,81,170,21,128,228,90, 34,112,133,8,165,82,160,0,66,64,85,65,134,14,85,149,80,85,81,28,85, 81,1,80,113,49,147,0,5,14,84,69,84,5,84,39,61,135,4,4,129,106,81,85, 1,64,133,8,161,125,86,161,129,16,164,35,0,164,16,13,5,78,7,86,208,0, 81,21,9,161,2,47,9,87,165,90,16,80,133,4,165,192,0,16,190,162,16,18, 86,18,98,224,15,20,6,14,90,165,90,170,74,1,17,3,243,169,2,17,132,12, 209,0,84,85,14,155,134,2,128,20,5,80,160,0,5,90,2,0,160,16,85,85,169, 86,169,86,168,212,106,229,67,8,168,5,170,0,170,178,66,1,5,2,161,6,169, 82,1,137,21,2,165,86,165,130,32,85,80,182,160,0,135,2,85,133,36,99, 5,134,38,161,26,107,1,88,163,16,226,9,106,128,16,104,212,81,228,225, 13,146,0,80,48,85,85,162,2,74,36,170,74,42,20,169,90,163,0,41,110,64, 21,80,135,2,33,224,82,80,118,205,129,132,14,37,0,82,160,81,41,90,63, 131,58,169,106,129,16,160,16,194,32,229,15,0,0,18,1,69,0,159,0,99,10, 0,8,175,5,21,85,84,141,2,1,44,5,44,21,143,16,28,85,42,85,5,64,161,0, 1,192,0,0,96,27,85,85,21,64,1,39,85,130,1,95,40,65,44,69,42,140,20, 143,16,22,17,17,132,10,85,21,80,17,5,80,0,176,16,81,85,129,1,89,81, 0,80,251,1,87,139,20,143,16,29,142,46,148,0,21,160,0,175,208,47,245, 1,84,81,0,0,131,20,129,16,251,225,16,63,0,255,47,19,63,21,161,16,147, 0,5,63,9,241,131,15,43,141,12,143,2,8,133,14,9,85,5,235,162,0,103,163, 16,69,1,56,1,63,9,163,243,47,123,42,0,40,0,32,31,3,1,131,12,42,84,41, 84,37,84,5,139,0,19,10,84,9,16,21,0,140,25,135,16,10,80,9,134,64,225, 14,10,81,64,9,15,23,170,98,168,0,160,0,192,0,0,0,1,4,0,64,5,64,0,153, 0,80,90,21,80,138,2,84,160,0,31,10,80,32,96,0,42,32,3,128,106,128,106, 82,170,0,33,128,18,160,170,96,129,2,33,128,2,160,2,0,0,34,241,1,170, 10,33,128,10,168,32,52,80,85,5,161,16,32,21,226,0,85,105,85,21,97,130, 2,1,64,85,85,240,162,14,38,226,1,41,129,16,80,42,64,160,42,37,64,0, 106,170,64,170,96,64,149,18,2,170,170,66,170,3,66,149,66,161,66,1,64, 243,1,95,3,169,160,0,85,2,161,16,5,20,123,192,0,1,112,0,19,128,2,5, 80,129,132,18,9,80,160,90,170,90,42,132,6,98,106,170,80,149,2,160,192, 86,164,14,80,165,66,5,64,170,251,90,165,16,5,161,48,161,0,5,80,2,192, 65,3,21,21,84,69,84,5,143,84,130,2,84,168,86,33,160,21,34,36,1,170, 90,37,168,85,2,106,57,149,80,21,160,9,0,166,16,165,86,158,2,54,169, 90,1,151,0,210,13,127,9,153,69,166,1,168,86,130,37,228,1,106,85,240, 225,10,144,1,226,17,128,16,162,16,149,106,21,48,81,85,85,224,15,22, 165,70,5,198,84,2,20,169,26,169,225,6,146,0,191,101,207,15,13,170,234, 1,246,6,68,81,167,5,243,162,0,49,224,41,52,66,165,170,22,60,34,169, 170,23,171,10,159,0,0,139,20,90,115,85,165,29,162,34,24,90,149,64,47, 24,106,149,17,0,28,244,26,161,8,219,173,26,143,2,10,161,12,149,232, 3,65,149,164,16,247,227,15,128,16,114,5,129,34,165,32,138,48,0,160, 0,1,91,0,159,0,14,64,160,0,9,80,16,176,143,2,10,130,6,168,16,4,170, 0,170,101,170,2,19,241,1,128,170,32,10,36,3,138,10,255,13,1,85,21,138, 2,85,253,85,171,16,80,171,14,225,1,89,225,5,64,248,136,16,96,144,0, 75,84,65,85,85,113,5,64,161,0,131,7,240,1,85,21,64,235,33,135,2,4,34, 5,225,1,84,162,14,112,16,16,128,5,132,18,105,64,128,106,49,168,106, 168,103,35,66,170,66,49,97,128,90,243,1,129,16,154,10,21,4,146,12,5, 80,37,80,21,192,8,64,246,85,240,5,161,16,224,1,23,69,60,118,8,80,21, 81,21,80,18,80,160,244,90,17,176,1,18,34,106,21,160,134,86,164,14,66, 85,84,85,1,166,16,67,154,90,3,85,85,37,84,192,3,180,211,7,152,0,81, 28,13,21,166,1,160,179,90,240,7,85,193,8,1,168,85,129,16,206,149,8, 112,164,16,85,68,192,3,17,36,69,154,26,131,24,85,85,165,206,11,149, 47,207,15,13,169,86,233,1,105,58,64,80,220,21,224,15,68,85,224,29,52, 66,154,248,170,23,246,5,175,10,3,159,0,0,139,20,105,85,170,149,136, 18,170,161,0,90,60,106,32,255,170,224,1,43,132,48,162,6,233,27,16,234, 29,127,143,2,14,86,128,34,166,16,225,15,128,16,84,100,224,160,0,145, 3,23,113,149,170,1,67,0,146,0,160,2,160,2,163,1,112,15,31,64,160,0, 143,2,10,141,12,168,0,168,115,168,10,51,143,4,3,12,85,85,79,15,226, 171,14,225,1,174,16,90,168,168,170,135,16,12,85,85,5,0,32,116,144,7, 85,62,85,85,21,185,9,128,2,151,14,36,168,16,163,21,225,1,80,165,14, 64,0,85,133,18,7,41,0,0,170,160,170,131,12,18,192,129,16,82,19,85,85, 37,64,165,40,66,165,66,209,11,80,34,21,64,60,149,64,85,210,13,51,193, 1,161,0,68,230,85,130,20,140,16,166,16,64,85,147,4,112,90,128,106,212, 21,65,130,2,97,170,53,97,128,90,66,16,85,81,85,1,35,129,4,165,82,161, 0,85,85,84,227,13,59,144,0,149,80,192,3,177,0,58,69,140,2,152,62,150, 8,129,106,194,7,20,161,86,28,161,170,161,170,21,128,16,164,16,85,231, 17,131,4,85,151,0,149,86,206,11,175,2,0,63,26,165,90,234,1,202,3,0, 160,16,85,226,224,15,4,227,31,193,7,165,90,170,138,8,62,149,86,169, 141,12,207,31,14,138,20,224,5,136,10,95,169,86,160,0,106,143,16,1,212, 12,225,15,64,199,168,8,162,6,136,2,165,86,165,139,12,63,14,43,160,26, 85,89,232,9,106,128,16,105,227,1,192,194,13,146,0,0,169,1,85,0,159, 0,141,85,141,2,1,28,5,122,28,21,28,157,8,141,10,92,85,92,255,85,12, 32,170,16,32,10,32,10,212,141,20,143,16,0,80,64,161,0,1,192,0,0,154, 64,97,21,64,49,87,85,128,1,175,0,89,65,28,69,26,139,20,143,16,23,136, 97,132,10,85,21,80,97,5,80,88,0,80,19,85,161,1,25,81,0,125,80,1,23, 139,20,139,16,143,62,30,150,0,21,167,160,0,248,1,84,17,0,84,85,97,235, 225,16,95,0,140,56,95,43,21,230,1,5,31,9,143,129,15,29,10,0,8,130,1, 245,47,133,2,199,149,0,5,135,14,9,85,5,160,0,9,93,139,16,1,104,1,111, 9,243,47,11,42,24,64,40,0,32,230,15,87,1,5,0,64,5,64,0,144,0,42,139, 160,0,2,80,21,80,138,2,84,16,105,63,10,80,16,57,64,16,0,170,100,2,128, 49,144,1,170,2,3,128,10,2,160,2,128,170,144,0,10,3,3,128,10,168,10, 80,85,5,164,16,51,244,7,85,21,116,83,85,85,165,14,239,143,2,4,130,16, 128,6,90,64,88,16,32,221,11,20,1,85,32,18,160,0,21,255,192,0,129,2, 66,40,162,14,38,226,1,41,16,50,42,64,42,5,64,128,106,3,170,106,170, 64,170,64,149,3,0,83,66,170,66,149,66,160,66,127,128,90,243,1,141,16, 17,133,14,20,194,0,240,98,195,14,135,2,19,87,80,160,90,48,170,90,42, 86,50,106,170,80,159,149,2,160,86,164,14,21,102,21,222,193,64,161,0, 21,80,18,195,16,131,18,83,198,21,192,0,132,2,84,168,86,121,17,75,170, 90,5,168,85,18,106,22,31,86,160,66,168,162,5,85,19,151,0,236,244,13, 31,7,244,35,193,12,86,131,19,19,106,243,85,225,10,97,132,16,162,16, 149,106,33,245,224,15,54,38,52,41,101,207,15,13,170,63,136,14,85,85, 208,13,130,33,21,1,161,49,249,163,5,162,0,97,144,22,52,114,160,170, 190,228,15,100,168,209,10,170,10,159,0,8,129,20,89,224,165,93,160,34, 90,90,149,106,128,144,106,8,106,149,15,1,1,93,0,148,0,168,160,0,9,134, 2,64,188,16,57,80,16,63,10,141,6,34,170,200,2,67,147,3,170,10,37,138, 10,34,80,85,5,138,15,64,85,21,122,127,85,85,165,10,102,164,14,15,4, 226,5,128,6,149,143,16,7,176,3,170,170,87,85,92,85,255,144,0,169,16, 129,2,41,50,168,14,228,1,57,255,34,133,16,0,240,15,144,0,36,0,33,221, 20,1,16,64,161,0,131,7,2,64,230,65,135,2,197,10,5,0,84,162,14,224,1, 224,16,3,163,16,7,64,128,106,168,97,106,168,7,146,14,170,66,170,66, 54,1,128,90,243,1,129,16,154,66,96,25,80,37,80,21,192,8,244,13,85,21, 177,224,1,39,69,76,102,80,21,81,26,36,80,160,90,33,244,7,85,50,145, 106,37,160,86,164,14,66,85,84,147,2,70,154,90,165,6,37,84,193,3,233, 150,8,148,0,244,11,15,7,21,166,1,160,90,103,240,7,85,193,8,1,168,85, 129,16,149,8,156,112,164,16,85,68,192,3,17,36,154,169,26,133,8,165, 206,11,149,207,15,13,169,86,126,233,1,105,58,64,80,21,224,15,68,231, 85,128,64,52,66,154,170,23,246,5,197,175,10,3,159,0,0,139,20,105,85, 149,136,18,170,222,161,0,198,43,52,106,48,128,14,228,15,52,1,67,0,148, 0,160,2,160,2,197,1,115,143,2,27,64,160,0,47,10,143,8,3,168,10,51,17, 143,4,0,64,85,21,249,6,0,85,85,241,250,1,47,2,164,14,47,4,143,16,14, 85,85,5,127,122,85,94,59,47,3,8,228,1,25,154,140,12,241,15,168,170, 119,161,16,32,132,4,254,64,66,7,35,151,14,36,8,226,1,240,80,165,14, 131,4,55,68,0,0,170,120,160,170,135,12,130,16,50,133,10,37,64,24,165, 66,165,66,208,47,148,0,21,64,61,149,64,85,192,8,69,193,1,161,0,68,204, 227,3,140,16,166,16,64,85,147,4,16,128,233,106,66,148,0,2,170,69,128, 90,146,2,16,85,81,163,2,165,82,161,0,39,85,85,84,150,14,149,80,193, 3,244,3,115,150,0,69,140,2,126,150,8,129,106,194,7,3,36,161,86,161, 170,161,170,37,153,128,16,164,16,85,17,107,23,149,86,207,206,11,175, 2,0,26,165,90,234,1,202,3,0,228,160,16,85,224,15,4,85,1,197,7,165,71, 90,170,138,8,149,86,169,141,12,207,31,14,202,138,20,224,5,136,10,169, 86,160,0,106,143,16,1,0,169,1,4,0,64,5,64,0,144,0,8,103,0,10,160,0, 0,64,21,140,2,16,118,57,80,16,63,10,130,6,42,52,160,2,38,170,0,170, 176,0,0,168,192,2,97,64,128,170,144,0,10,170,2,168,2,68,170,2,129,3, 0,80,5,80,0,17,64,9,64,10,161,7,64,21,80,222,1,135,2,130,12,84,63,13, 132,6,164,2,0,255,42,52,112,160,16,137,16,241,1,144,0,68,45,16,84,5, 162,0,1,131,9,192,11,21,100,17,85,7,18,85,9,11,84,60,9,80,10,5,130, 1,1,164,2,64,115,128,106,136,16,224,35,128,14,0,168,192,18,193,163, 20,128,15,72,85,85,0,85,5,55,160,0,69,85,131,11,129,2,21,48,128,1,192, 86,49,10,84,168,86,169,86,204,10,164,17,161,16,170,90,134,16,1,64,110, 170,106,80,133,18,80,177,48,192,13,85,243,66,67,132,32,156,0,144,13, 85,64,209,0,252,161,14,130,15,129,2,130,16,133,17,160,0,65,170,134, 86,135,20,10,80,169,90,224,13,132,18,7,42,84,42,64,169,106,16,69,13, 160,16,168,170,42,0,70,80,168,215,81,130,32,145,0,80,192,0,69,160,0, 165,15,245,129,2,169,17,97,129,13,3,64,64,1,204,132,51,132,16,128,52, 170,90,229,51,80,84,247,41,192,32,226,47,225,15,160,0,169,16,128,82, 53,5,66,169,225,64,120,81,18,69,247,132,14,157,0,129,4,133,32,19,65, 138,52,16,230,192,32,133,68,18,32,138,106,129,84,20,182,80,146,95,0, 227,15,64,74,129,2,41,255,64,40,51,43,225,48,42,162,16,24,130,163,81, 23,80,138,106,128,106,24,208,66,162,95,23,10,241,1,1,0,0,80,5,80,0, 0,8,37,0,10,0,148,0,80,21,139,2,84,131,160,0,31,9,160,90,160,90,42, 18,1,163,2,168,106,170,106,170,0,168,160,18,81,170,1,2,168,2,170,48, 2,42,0,33,50,10,168,10,196,170,16,33,0,84,5,16,1,75,64,0,20,21,84,16, 85,39,33,130,14,85,9,11,84,9,64,10,7,5,80,160,90,170,90,1,163,2,50, 130,16,106,169,103,164,16,170,2,36,200,2,3,102,85,5,160,0,69,85,75, 0,80,68,85,21,64,85,24,129,65,26,84,168,86,169,86,10,80,21,84,50,80, 53,0,84,42,165,64,48,106,21,170,80,164,16,66,56,163,2,170,66,119,50, 156,0,85,85,255,64,224,13,49,163,29,129,2,34,116,225,17,33,1,170,86, 135,20,10,80,169,90,125,135,18,42,160,16,2,18,48,96,168,250,145,14, 21,32,1,19,161,13,80,192,0,254,69,193,32,2,99,82,72,131,33,65,176,64, 160,0,1,195,17,132,18,10,85,9,57,80,170,90,193,15,17,128,16,84,41,206, 192,32,224,13,101,80,169,112,128,48,21,107,66,169,34,23,81,18,5,132, 14,223,157,0,129,4,75,65,232,33,50,192,32,227,31,159,52,96,138,106, 225,67,4,226,48,128,64,215,5,66,9,64,2,5,134,14,65,247,163,65,133,2, 12,168,16,2,84,136,48,1,193,160,66,132,64,3,64,170,0,10,170,255,128, 80,8,161,16,132,42,130,10,161,97,136,2,84,238,71,136,48,227,1,87,84, 16,163,16,19,171,80,16,80,24,64,16,64,16,176,128,81,132,48,2,160,80, 144,0,1,2,0,84,5,84,1,0,152,0,32,85,21,85,137,2,170,85,170,85,129,9, 25,86,170,86,9,0,10,12,23,90,170,90,41,16,165,2,170,5,106,170,42,168, 0,170,86,170,106,1,2,161,0,24,10,3,42,130,14,5,5,85,69,85,0,64,5,21, 88,128,16,85,24,0,80,26,84,168,25,86,169,86,10,6,81,169,10,3,39,42, 64,170,106,169,42,33,221,132,18,166,16,36,2,103,34,156,0,64,145,224, 13,33,0,80,163,0,64,85,0,228,225,1,134,2,128,18,16,170,66,135,20,10, 33,80,169,90,7,42,84,42,64,67,16,42,22,80,170,0,168,162,16,24,20,66, 170,2,130,2,20,85,85,175,80,128,12,69,193,32,84,161,0,3,98,193,8,16, 84,64,85,64,85,1,129,161,1,134,18,10,85,9,80,170,74,31,8,84,41,0,12, 194,32,8,100,94,69,81,18,5,132,14,157,0,129,4,27,216,65,193,1,25,85, 138,32,0,42,0,254,138,212,43,4,160,16,134,48,1,82,39,224,64,18,1,133, 2,85,85,21,84,253,21,72,28,136,50,31,4,140,32,161,82,170,246,10,160, 16,1,130,42,130,10,5,162,0,135,2,251,21,2,23,133,66,27,130,16,84,111, 19,229,139,32,32,144,101,144,32,10,84,133,8,5,190,16,137,2,21,16,105, 132,78,15,11,128,16,128,80,63,25,168,1,4,96,85,101,85,0,152,0,64,80, 85,85,138,2,170,29,86,169,86,130,10,25,90,169,10,42,0,167,2,3,170,106, 169,42,170,0,170,23,111,1,2,161,0,24,10,115,137,11,137,16,126,160,14, 64,22,225,1,8,49,197,9,145,0,19,10,80,169,90,169,9,42,64,0,155,160, 16,6,0,168,84,132,2,2,2,83,70,80,128,12,69,160,0,0,80,67,240,1,114, 8,32,6,64,85,1,33,84,0,84,135,18,10,85,9,80,1,26,84,41,0,170,42,138, 42,218,24,196,32,22,2,101,19,81,18,249,5,132,12,244,15,150,0,129,4, 27,65,85,102,28,85,153,41,1,42,0,12,160,16,247,10,180,34,2,68,5,64, 2,67,7,131,2,85,85,21,80,21,56,12,236,136,50,15,4,136,66,19,0,28,160, 16,42,169,168,131,62,1,130,10,5,162,0,0,64,125,133,2,21,98,119,5,29, 128,16,84,211,79,19,21,69,2,67,10,84,139,8,60,63,46,42,80,15,23,143, 6,3,47,62,15,14,1,84,0,159,0,99,42,160,0,40,179,1,64,168,5,16,0,16, 1,16,0,64,255,21,18,135,2,23,127,5,194,8,31,13,162,2,145,25,136,16, 80,5,2,0,80,1,95,0,0,0,21,2,55,5,52,248,227,15,63,14,160,2,52,149,0, 143,16,5,85,85,46,0,84,5,66,1,64,240,1,16,245,21,66,19,54,19,84,31, 7,80,249,20,135,36,43,162,16,47,2,160,14,85,5,7,160,0,21,85,65,85,64, 241,1,156,0,143,192,10,50,85,85,1,160,5,135,2,128,14,253,16,138,36, 139,16,160,16,90,131,51,95,1,85,91,128,15,69,130,1,80,196,14,133,17, 81,99,166,162,0,145,0,65,24,169,86,98,194,15,6,42,80,170,90,169,90, 128,14,20,191,42,112,41,129,30,20,70,143,64,0,156,0,238,5,169,33,7, 135,34,32,0,161,16,6,104,80,169,16,131,64,170,162,0,169,106,175,41, 132,30,170,82,168,166,14,137,2,135,14,234,193,27,149,0,27,131,16,1, 104,42,160,0,217,41,162,16,99,170,33,16,170,90,0,36,66,170,66,169,66, 169,106,80,170,106,224,13,2,3,168,2,168,96,170,170,225,15,135,2,2,170, 0,1,5,0,64,5,64,0,160,0,1,191,0,129,1,21,0,137,2,5,79,11,153,0,170, 77,112,42,48,40,230,1,170,34,145,168,165,2,80,5,32,0,80,1,3,32,0,80, 0,84,21,80,33,247,135,2,192,0,2,22,129,12,80,140,16,29,153,137,20,99, 64,41,70,28,84,5,73,162,0,1,64,0,85,64,84,21,223,66,38,19,84,140,18, 5,70,6,234,21,7,131,32,31,5,85,192,12,5,64,15,21,85,65,85,64,48,157, 0,160,14,63,50,85,85,128,18,56,130,20,17,135,16,245,131,2,135,32,163, 3,135,48,79,5,85,224,14,69,125,194,13,80,196,14,229,16,131,2,226,32, 132,3,80,32,134,18,169,86,135,36,42,80,170,90,111,169,90,128,14,132, 16,42,160,0,130,46,75,250,196,67,140,48,156,0,131,13,137,33,119,0,86, 153,32,80,169,86,160,1,85,80,169,163,160,16,131,68,170,162,0,169,106, 41,163,67,189,139,14,143,32,5,64,224,47,151,0,139,2,131,16,1,171,165, 1,224,15,42,160,0,41,136,48,170,49,96,160,16,160,17,81,66,170,66,169, 10,66,169,106,170,106,224,1,2,99,13,168,2,168,170,170,225,95,135,2, 2,252,113,135,12,165,14,15,8,143,16,4,225,15,65,41,112,80,160,161,16, 82,66,66,170,106,85,168,106,192,13,10,161,0,168,48,170,208,145,0,226, 1,130,2,42,96,2,1,1,0,80,5,80,0,80,1,0,160,0,0,80,0,84,0,84,21,114, 80,21,138,2,224,0,31,0,64,1,0,129,0,1,80,160,90,160,90,0,1,152,0,168, 106,170,106,170,0,40,70,22,170,97,2,168,2,165,2,50,82,10,168,64,170, 147,2,84,5,48,147,1,48,0,85,49,21,84,49,175,39,130,14,84,140,16,84, 55,161,16,128,20,76,21,64,50,106,41,22,34,170,50,170,66,41,27,7,85, 5,160,0,14,21,85,65,85,64,80,159,0,0,194,14,62,84,85,85,70,82,128,20, 130,35,19,102,160,90,52,32,168,80,20,132,2,86,170,66,147,14,42,5,10, 165,16,3,175,85,224,14,69,162,13,80,164,14,229,16,131,2,230,227,32, 131,3,161,2,131,16,169,86,128,36,163,0,6,80,42,80,170,90,169,160,16, 35,1,168,64,170,64,170,106,169,106,207,128,32,101,18,42,0,70,21,249, 54,234,150,0,129,13,137,33,71,0,70,32,64,115,169,86,160,1,130,52,64, 80,169,160,16,134,131,36,224,15,64,170,66,169,32,227,51,77,170,2,160, 0,10,168,243,13,21,42,189,129,2,135,32,64,224,47,151,0,43,19,1,174, 164,1,17,42,160,0,41,129,68,33,16,250,170,17,160,16,129,65,18,160,30, 169,112,255,170,50,225,15,130,78,52,81,16,50,186,147,16,131,12,65,224, 48,161,65,135,2,85,224,66,237,21,120,132,82,139,16,84,225,15,49,41, 135,135,62,51,66,170,106,128,160,16,130,30,239,131,94,162,14,65,82, 42,180,32,136,10,161,97,249,136,2,83,24,44,194,49,47,9,64,128,220,160, 16,40,112,160,144,65,6,18,1,4,0,84,5,84,1,160,0,0,130,85,1,85,85,21, 84,21,138,2,0,0,84,0,84,1,80,1,80,66,0,80,161,1,0,84,168,86,32,24,64, 1,64,0,1,224,2,170,90,48,170,90,41,37,0,170,106,170,10,106,169,0,40, 0,149,0,170,17,16,2,168,2,170,73,10,168,10,16,170,10,170,2,146,2,85, 5,85,14,21,85,65,85,64,0,31,2,193,14,124,85,85,135,16,130,18,160,18, 193,15,5,169,159,90,12,106,41,135,2,147,0,11,160,16,23,5,64,85,69,130, 13,80,132,14,229,16,243,101,227,32,129,3,163,2,33,169,86,128,36,53, 36,42,84,34,135,18,80,44,66,190,164,14,37,10,166,16,131,32,156,0,141, 33,21,173,0,22,32,16,169,224,48,163,0,42,102,160,14,169,160,16,8,82, 169,64,8,77,74,169,11,42,168,196,34,133,14,65,208,40,141,2,1,1,136, 17,42,84,42,114,84,41,129,68,164,0,32,80,169,160,16,195,160,36,16,66, 169,66,169,224,48,123,132,16,74,96,34,209,13,128,2,42,96,215,3,132, 64,129,12,65,224,48,5,160,81,160,10,251,36,3,39,128,1,131,30,143,16, 3,41,135,48,10,115,66,170,106,128,161,16,80,161,61,236,168,129,78,36, 20,42,181,34,134,10,80,223,5,162,0,135,2,21,18,39,224,13,130,62,247, 43,143,16,7,133,48,5,160,16,0,160,14,6,219,52,132,8,194,5,5,160,0,137, 2,21,16,250,41,130,10,41,135,16,39,127,8,2,16,192,170,24,160,16,128, 170,1,81,0,144,0,170,162,0,40,0,42,132,209,1,143,2,13,168,2,168,2,57, 170,181,74,16,2,17,52,106,16,10,108,1,168,51,145,0,42,1,128,7,2,226, 42,35,51,226,4,0,64,5,16,167,42,192,5,40,211,13,64,21,16,105,131,17, 89,168,66,168,82,170,88,119,128,16,90,161,11,6,163,16,0,19,70,146,129, 23,25,10,168,3,80,5,162,0,34,10,64,1,162,13,0,80,21,34,200,0,134,2, 34,84,32,88,168,82,48,168,86,160,88,16,90,42,66,195,41,5,163,16,72, 169,64,42,162,2,107,132,14,34,19,0,2,2,138,132,32,193,128,8,50,132, 10,85,85,0,84,21,60,161,0,85,1,162,15,1,82,122,168,55,86,0,84,24,50, 41,163,21,129,18,113,129,16,106,100,17,227,30,66,170,66,127,82,66,52, 98,131,10,49,192,30,82,123,159,0,0,0,162,0,163,5,132,2,160,1,1,130, 19,148,227,2,129,16,169,90,135,20,42,192,32,169,251,106,134,18,166, 16,4,72,133,12,5,226,30,37,115,85,85,240,32,85,21,160,0,1,94,68,64, 82,85,137,2,80,48,135,20,223,80,130,34,132,18,42,64,80,228,55,80,119, 64,168,208,64,86,0,168,2,134,8,87,34,5,38,64,34,21,255,33,2,132,4,246, 2,133,34,160,0,137,52,0,84,134,66,51,57,80,169,0,16,129,64,19,66,169, 175,178,32,23,1,28,1,24,131,2,12,251,162,16,8,128,65,10,160,81,10,64, 0,160,160,32,6,10,1,1,0,0,64,5,64,42,0,42,37,0,40,0,148,0,64,21,140, 2,0,4,26,168,82,168,82,170,24,170,168,90,160,0,2,24,106,64,10,170,112, 0,168,192,4,18,145,0,42,170,2,96,168,2,225,4,4,170,170,10,168,196,10, 32,128,5,0,80,5,96,10,101,64,1,128,13,97,21,80,1,0,38,54,0,80,0,84, 32,40,160,16,98,86,160,40,81,42,66,41,37,134,64,82,72,169,64,42,227, 1,147,0,171,34,134,16,2,2,138,226,15,10,144,2,73,66,5,135,10,84,21, 161,0,85,1,225,129,15,194,15,34,138,2,168,86,0,84,171,104,162,16,41, 101,80,130,16,106,37,139,16,195,30,66,170,66,130,18,66,4,245,37,128, 10,113,80,162,0,85,158,0,0,247,66,128,1,162,17,130,2,112,1,131,19,66, 41,129,16,169,90,135,20,42,192,32,169,106,237,134,18,166,16,84,24,0, 144,11,225,11,5,197,226,30,160,17,128,12,85,85,64,192,0,21,87,160,0, 1,52,64,130,16,85,137,2,64,175,32,135,20,80,130,34,84,161,3,64,160, 16,247,48,193,55,32,48,64,168,208,64,225,43,189,2,16,168,18,129,30, 130,8,66,5,89,22,64,18,21,223,33,0,20,64,85,246,18,226,5,131,36,131, 50,38,84,132,66,37,57,80,169,0,32,224,45,36,66,169,43,192,32,42,168, 39,1,28,1,24,255,131,2,28,162,16,24,128,65,134,48,33,192,88,247,132, 64,35,224,104,130,98,39,2,0,132,48,255,131,58,3,135,2,163,16,87,136, 66,82,99,183,23,72,80,130,82,71,64,82,71,0,131,114,168,0,168,1,0,0, 80,5,80,10,64,1,65,64,0,164,0,21,80,21,80,0,4,136,2,0,84,0,84,32,24, 168,18,86,168,86,160,24,170,90,0,80,66,41,23,106,0,74,169,64,192,42, 21,145,0,42,168,2,170,2,99,42,0,1,34,170,170,10,65,168,146,2,128,16, 5,89,84,48,85,1,104,80,0,53,80,0,42,168,86,86,0,84,40,80,161,16,41, 231,1,17,197,106,24,163,14,66,170,66,36,2,117,108,84,32,193,30,164, 0,85,156,0,0,219,82,128,1,129,17,84,130,2,0,1,226,1,74,34,84,129,16, 169,90,135,20,42,192,32,91,169,106,134,18,80,165,16,100,66,39,180,50, 160,10,5,193,30,224,9,5,128,10,85,85,85,64,192,0,21,160,0,1,68,64,122, 82,85,137,2,80,48,135,20,80,130,34,247,84,161,7,80,160,16,64,64,160, 2,160,3,135,64,80,168,170,42,170,194,57,17,117,32,168,34,160,4,18,0, 2,5,89,6,64,2,21,189,33,6,64,85,244,2,226,5,131,36,131,50,38,84,132, 66,81,68,0,85,34,80,169,0,32,0,100,0,68,224,37,33,66,169,192,32,42, 59,168,0,16,194,20,130,26,75,1,56,239,131,2,60,162,16,56,84,229,55, 4,192,88,183,162,0,5,64,227,79,8,2,0,96,255,5,225,47,1,135,2,163,16, 87,136,66,82,221,99,23,72,80,130,82,131,62,65,64,245,82,131,96,131, 48,134,98,128,6,80,68,80,255,161,16,137,2,97,121,130,16,24,1,25,222, 132,80,23,35,64,4,66,98,8,1,1,0,84,5,64,1,64,0,1,166,0,21,85,21,85, 1,80,0,24,4,85,85,0,0,137,2,168,86,65,0,84,57,170,90,170,90,41,2,57, 106,170,106,169,64,42,134,10,138,170,145,0,66,170,66,58,10,17,132,0, 115,84,5,80,21,134,8,0,238,85,45,129,16,224,0,84,17,2,128,1,228,1,226, 1,3,81,169,90,71,42,161,64,64,106,5,1,80,170,0,176,163,16,70,2,5,20, 85,5,84,238,21,160,0,128,17,130,10,64,192,0,194,32,20,191,64,18,85, 137,2,16,160,0,135,20,224,12,98,192,13,84,161,7,32,84,42,64,32,225, 64,193,25,130,34,160,16,168,170,42,170,102,160,2,84,193,0,192,33,2, 168,98,160,4,213,0,226,4,130,16,5,86,64,82,21,158,174,33,85,64,85,18, 226,5,137,52,22,88,84,41,195,29,81,161,23,16,80,169,141,0,0,0,0,68, 193,38,193,49,169,14,192,32,42,168,0,16,163,46,129,26,11,251,1,8,131, 2,12,162,16,8,84,229,47,102,4,80,228,45,5,64,42,196,61,6,255,2,0,225, 31,4,225,47,3,133,2,165,16,251,5,136,66,2,21,5,120,80,130,82,190,18, 114,64,2,20,130,48,33,131,2,127,80,42,160,0,131,88,67,119,35,55,253, 99,55,35,55,132,80,23,99,64,235,68,4,32,73,0,136,4,64,97,255,57,33, 57,130,94,56,33,57,225,14,224,26,97,25,143,16,1,1,8,96,85,101,85,145, 0,1,85,248,0,162,0,5,135,2,195,2,143,4,6,5,80,80,5,80,58,64,16,85,5, 85,5,9,84,10,84,0,84,48,0,2,16,36,5,1,168,0,170,17,2,85,5,84,5,168, 5,164,7,251,85,143,16,15,15,12,79,3,160,16,74,0,8,99,161,2,84,9,113, 69,85,1,225,5,175,160,0,143,14,4,0,143,4,7,69,68,54,16,101,192,2,64, 38,19,85,169,47,9,69,239,225,8,140,28,159,0,0,133,4,69,83,192,11,68, 42,162,16,1,80,70,84,2,64,4,62,69,5,16,10,129,2,12,157,0,162,12,123, 84,21,130,8,71,130,32,226,1,5,83,0,133,28,85,69,84,5,80,9,80,85,10, 80,18,84,64,84,66,64,84,6,4,12,4,7,0,146,0,170,38,0,160,2,161,0,170, 2,192,55,130,4,45,64,0,128,128,3,106,133,56,194,4,170,243,129,2,133, 8,192,5,160,0,55,10,170,97,7,55,42,170,42,170,106,16,132,10,165,134, 64,143,16,5,168,82,160,2,135,14,128,82,0,64,134,6,72,140,8,104,0,82, 222,86,136,10,49,90,136,2,162,16,141,14,138,18,140,168,57,170,2,128, 160,0,133,4,72,109,0,26,162,3,7,42,162,8,133,2,40,254,225,1,129,38, 137,12,160,16,10,64,142,16,12,1,8,96,85,101,85,147,0,65,85,236,64,160, 0,7,131,2,0,16,143,4,10,5,216,80,16,226,1,1,160,5,48,64,5,0,0,5,4,1, 1,65,0,40,8,0,42,0,106,85,112,0,5,130,36,24,84,5,168,5,164,23,190,85, 132,16,0,130,8,197,13,143,14,0,143,4,6,82,25,80,85,85,69,39,161,16, 1,69,219,41,137,2,161,2,84,103,161,7,69,143,28,3,248,157,0,131,4,195, 5,136,16,162,16,104,80,5,98,64,69,192,12,138,14,0,5,85,15,8,255,68, 114,133,8,161,9,147,0,143,2,4,192,11,10,72,128,10,84,65,1,80,4,69,5, 47,16,69,21,192,16,21,132,14,0,138,16,128,1,24,4,69,4,16,0,4,11,0,1, 64,0,32,131,4,64,64,94,2,0,135,6,4,209,13,36,130,42,16,36,1,168,2,69, 69,4,160,2,5,65,168,10,133,8,69,4,1,0,65,93,137,16,4,124,4,137,32,155, 0,3,1,88,0,128,160,14,90,133,56,176,63,0,0,228,170,129,2,132,8,49,170, 2,135,10,5,13,0,168,10,170,10,136,12,33,64,240,133,26,136,80,44,240, 10,144,0,162,0,170,107,2,160,162,0,227,13,1,48,128,48,217,131,42,131, 6,129,16,170,136,2,17,170,86,157,40,16,170,90,141,12,46,137,18,168, 7,23,162,2,168,2,128,160,0,131,4,109,129,6,20,162,3,135,8,24,17,136, 2,40,58,192,22,170,2,10,160,16,140,14,21,143,18,14,1,8,96,85,101,85, 147,0,64,85,193,65,192,0,9,81,85,80,85,0,168,160,0,141,4,129,228,3, 65,64,5,64,0,5,16,1,6,1,1,65,0,8,17,0,8,0,90,129,2,0,1,168,4,120,0, 0,36,8,84,5,47,168,1,164,7,101,134,16,131,14,159,0,10,48,133,4,1,84, 3,70,0,5,1,47,69,0,21,21,64,10,17,9,47,160,2,1,84,7,69,162,0,135,10, 197,1,245,133,28,153,0,130,14,134,16,132,32,69,98,0,12,134,12,80,5, 64,65,192,12,90,0,64,5,85,15,6,4,69,0,16,0,27,4,0,1,64,135,24,128,2, 128,96,131,132,38,16,85,4,85,1,85,133,4,184,49,97,1,137,28,161,0,135, 6,65,21,30,5,64,69,21,120,137,16,65,31,3,175,16,22,1,34,0,139,14,144, 65,103,35,17,85,1,6,4,5,0,145,27,2,133,8,65,4,1,0,65,21,135,18,85,1, 4,28,4,29,4,18,0,95,6,1,128,2,128,35,131,56,241,80,35,158,132,8,1,168, 2,39,161,16,138,12,129,32,250,64,135,10,134,80,12,157,0,135,42,128, 160,0,217,64,136,6,113,170,137,2,64,170,86,230,88,75,143,30,5,138,18, 168,90,209,10,144,0,3,162,0,162,2,170,2,128,160,0,253,131,4,131,6,65, 137,8,128,16,138,2,32,2,80,140,12,5,60,21,143,18,14,1,16,16,84,21,160, 0,85,85,0,16,84,1,84,0,0,21,85,21,246,85,145,0,133,2,210,1,56,1,0,143, 4,10,11,16,64,16,64,80,57,0,16,2,128,1,42,80,41,80,0,80,160,2,0,0,0, 168,0,152,0,4,170,3,2,168,2,170,2,170,86,225,15,75,137,16,85,95,13, 85,85,95,33,0,90,247,145,0,6,128,14,12,161,16,21,15,9,81,184,193,1, 47,5,85,81,136,2,33,85,0,168,0,22,80,18,84,27,21,84,188,5,28,21,140, 12,153,0,161,32,7,17,88,85,81,1,80,6,192,32,21,64,82,0,64,6,80,2,0, 40,133,32,179,64,11,17,192,4,160,16,81,21,130,4,75,143,14,2,17,129, 12,85,85,134,18,17,80,102,55,0,192,17,160,7,80,1,3,161,0,3,80,0,64, 42,64,41,64,132,30,172,113,49,0,38,16,39,132,2,4,91,16,1,241,18,74, 160,21,153,0,9,209,0,44,130,4,0,1,177,1,169,38,129,8,168,192,2,130, 2,34,170,10,168,10,170,129,10,135,10,170,42,168,106,170,42,232,104, 147,0,21,81,170,141,16,16,0,243,80,92,43,209,32,133,6,42,1,82,80,135, 12,1,34,90,134,2,2,168,42,30,170,106,170,106,88,146,16,88,138,32,63, 42,1,104,176,1,71,130,38,147,0,130,22,215,131,4,242,3,133,14,0,48,2, 134,2,224,1,120,32,74,138,12,160,16,58,47,1,1,20,16,84,21,160,0,85, 144,0,0,95,85,1,192,0,21,0,19,131,2,23,24,83,1,84,1,226,5,143,4,6,16, 64,35,16,64,0,160,4,4,85,0,160,5,0,80,0,16,0,0,24,0,4,0,4,1,170,0,168, 0,170,85,93,0,0,240,0,152,71,225,15,137,16,85,63,4,0,84,130,8,196,13, 137,4,3,79,6,8,2,64,85,85,20,9,0,16,127,4,20,7,145,0,134,2,15,2,164, 16,140,28,215,45,133,38,28,84,28,80,16,224,16,85,22,80,18,84,23,20, 162,16,21,31,132,6,85,85,17,2,135,2,229,17,135,4,64,161,32,84,52,17, 85,17,84,1,192,80,55,128,16,80,0,64,21,64,213,4,224,48,132,32,64,18, 85,54,64,128,25,130,4,16,16,4,16,1,32,24,0,40,0,42,0,112,16,0,30,4, 0,1,0,4,17,1,137,6,4,0,4,84,1,170,2,136,42,0,16,84,5,170,10,134,12, 16,0,64,9,84,85,170,106,169,7,0,4,123,137,16,16,23,4,16,145,35,74,239, 44,0,27,136,18,0,0,105,135,14,17,2,50,165,115,17,10,135,10,20,0,16, 42,165,40,27,0,128,80,168,170,8,20,111,2,80,134,12,157,0,4,226,0,135, 18,128,24,52,32,169,86,136,2,17,90,40,42,30,168,106,170,106,40,138, 30,47,0,29,249,10,149,1,130,22,131,4,242,3,132,6,106,0,69,0,2,138,10, 10,170,74,138,2,42,0,111,16,1,1,16,84,21,84,6,84,85,1,144,0,68,85,0, 85,65,85,21,173,160,0,3,0,16,1,196,1,3,64,25,128,4,1,84,1,226,5,105, 5,86,0,135,8,16,0,0,64,0,24,0,1,4,4,1,68,0,42,0,104,98,129,2,0,41,224, 1,168,0,152,39,175,21,128,16,5,162,10,84,108,131,14,159,0,10,36,133, 4,5,80,135,8,16,64,0,64,11,16,4,20,1,84,7,0,135,2,45,242,1,0,0,118, 20,86,131,24,17,255,166,16,133,18,149,0,133,36,101,132,4,192,7,131, 16,87,132,32,80,50,0,54,80,224,13,224,16,136,54,129,2,0,0,84,22,0,20, 4,64,5,16,16,4,16,135,22,64,8,21,16,0,4,0,136,4,0,16,54,0,6,0,135,42, 33,4,240,48,40,118,80,5,208,24,23,145,28,0,136,6,129,16,250,85,134, 32,129,4,102,131,8,17,80,138,12,42,0,1,64,140,2,0,29,1,136,42,161,0, 16,5,70,16,0,64,84,143,128,36,88,0,4,85,134,64,49,6,184,52,2,0,56,1, 27,0,0,204,170,137,14,0,170,2,135,4,1,170,150,10,23,20,0,42,4,138,32, 129,18,62,1,68,168,106,16,240,22,206,76,133,14,243,4,241,56,178,0,133, 6,81,168,86,136,2,33,64,168,90,88,21,42,64,105,241,57,138,30,95,2,65, 133,14,0,0,2,254,149,1,130,22,129,4,212,3,134,6,48,209,4,135,2,48,10, 168,74,143,14,26,65 }; static MTB * mtb_KPKP = NULL; void initMTB_KPKP() { mtb_KPKP = new MTB ("KPKP", 2, 38); mtb_KPKP->SetPackedData (mtbdata_KPKP); mtb_KPKP->Add (A2, A3, WHITE, 180); mtb_KPKP->Add (B2, B3, WHITE, 341); mtb_KPKP->Add (C2, C3, WHITE, 335); mtb_KPKP->Add (D2, D3, WHITE, 332); mtb_KPKP->Add (A3, A4, WHITE, 211); mtb_KPKP->Add (B3, B4, WHITE, 359); mtb_KPKP->Add (C3, C4, WHITE, 360); mtb_KPKP->Add (D3, D4, WHITE, 367); mtb_KPKP->Add (A4, A5, WHITE, 229); mtb_KPKP->Add (B4, B5, WHITE, 362); mtb_KPKP->Add (C4, C5, WHITE, 348); mtb_KPKP->Add (D4, D5, WHITE, 358); mtb_KPKP->Add (A5, A6, WHITE, 206); mtb_KPKP->Add (B5, B6, WHITE, 372); mtb_KPKP->Add (C5, C6, WHITE, 322); mtb_KPKP->Add (D5, D6, WHITE, 309); mtb_KPKP->Add (A6, A7, WHITE, 174); mtb_KPKP->Add (B6, B7, WHITE, 317); mtb_KPKP->Add (C6, C7, WHITE, 303); mtb_KPKP->Add (D6, D7, WHITE, 269); mtb_KPKP->Add (A5, B7, WHITE, 392); mtb_KPKP->Add (A4, B6, WHITE, 374); mtb_KPKP->Add (A3, B5, WHITE, 318); mtb_KPKP->Add (A2, B4, WHITE, 239); mtb_KPKP->Add (B5, A7, WHITE, 278); mtb_KPKP->Add (B4, A6, WHITE, 327); mtb_KPKP->Add (B3, A5, WHITE, 384); mtb_KPKP->Add (B2, A4, WHITE, 360); mtb_KPKP->Add (B5, C7, WHITE, 353); mtb_KPKP->Add (B4, C6, WHITE, 378); mtb_KPKP->Add (B3, C5, WHITE, 361); mtb_KPKP->Add (B2, C4, WHITE, 336); mtb_KPKP->Add (A5, B4, WHITE, 310); mtb_KPKP->Add (A6, B3, WHITE, 347); mtb_KPKP->Add (A7, B2, WHITE, 323); mtb_KPKP->Add (B5, C4, WHITE, 333); mtb_KPKP->Add (B6, C3, WHITE, 341); mtb_KPKP->Add (B7, C2, WHITE, 344); } ////////////////////////////////////////////////////////////////////// // // KRPKR static const byte mtbdata_KRPKR[17301] = { 1,0,84,85,1,0,1,0,65,128,85,161,0,1,0,84,85,85,85,6,4,0,4,0,69,85,3, 155,0,0,5,0,0,0,85,85,64,0,180,64,132,6,69,50,240,7,1,131,2,5,228,1, 98,144,8,99,21,4,18,16,92,0,16,20,16,18,0,20,64,219,85,194,14,137,16, 4,160,12,15,10,64,162,16,51,7,0,1,49,7,0,4,49,55,7,0,16,49,7,0,192, 14,11,255,225,14,9,17,15,10,17,9,17,9,255,17,9,17,9,17,7,163,1,131, 1,255,1,133,15,15,6,137,6,33,137,2,17,41,255,17,42,16,42,22,163,2,23, 165,16,255,31,6,131,6,23,3,23,3,23,4,247,22,4,24,161,2,17,68,166,0, 161,16,127,143,48,1,85,37,128,4,128,6,137,2,17,9,255,17,10,16,10,209, 0,156,0,129,64,165,0,248,255,3,1,226,95,37,177,77,17,37,68,85,103,21, 1,248,7,224,15,21,4,113,5,120,128,2,16,24,240,11,175,16,2,159,0,92, 1,8,84,85,1,0,165,0,20,0,0,164,170,85,85,4,0,4,0,128,5,2,84,85,21,0, 0,0,65,80,85,155,0,64,0,64,0,65,28,2,84,0,100,128,6,177,7,35,20,52, 1,164,169,128,2,144,8,1,18,20,33,4,164,166,112,16,0,16,1,13,18,20,16, 164,154,32,0,1,6,18,21,64,165,106,1,224,12,137,16,118,4,0,161,16,9, 27,64,128,4,9,102,0,1,17,7,0,4,17,39,103,0,16,1,23,0,64,1,25,249,7, 19,1,27,9,225,31,85,85,255,25,1,25,1,25,33,9,17,239,11,21,5,195,32, 4,8,23,1,109,115,64,6,51,0,6,51,0,183,6,51,0,6,19,0,8,163,16,255,7, 83,9,85,3,19,7,19,255,7,19,7,19,7,19,9,19,189,7,17,85,10,147,0,5,49, 85,182,8,49,21,8,49,21,8,49,254,21,8,17,1,220,91,159,0,111,135,32,129, 48,236,69,142,4,119,1,4,130,63,165,0,20,103,1,68,66,85,20,4,128,2,38, 192,49,0,152,8,21,64,69,85,1,24,84,85,81,166,0,159,0,4,16,0,80,16,0, 133,4,69,47,1,0,1,0,249,1,137,8,141,10,143,2,12,225,0,143,16,10,16, 0,159,193,0,15,8,0,1,17,95,8,111,16,167,2,255,239,31,6,135,4,47,2,161, 16,79,8,95,18,101,159,0,2,255,11,31,0,141,8,79,36,83,15,8,127,24,47, 38,109,239,79,6,80,166,0,159,0,4,64,6,17,5,210,164,65,239,81,24,31, 138,5,192,0,20,0,3,50,84,85,84,130,2,61,4,1,3,56,68,85,68,128,4,141, 68,31,16,1,80,0,148,0,5,226,0,4,0,80,136,85,163,0,85,85,1,192,1,5,0, 40,84,85,68,34,69,128,2,68,85,168,21,80,20,34,21,80,20,85,160,69,0, 84,146,0,85,84,1,0,20,84,84,5,1,144,1,81,65,85,138,81,0,81,5,4,0,69, 65,69,85,69,0,69,5,16,0,21,130,65,176,9,0,84,21,4,64,143,16,14,111, 68,85,163,16,69,20,0,74,177,15,109,9,81,83,6,69,51,6,21,255,51,15,24, 51,7,19,8,18,8,255,18,8,18,8,18,15,26,17,9,255,17,10,240,15,10,48,10, 48,10,173,48,13,4,15,11,68,130,2,7,20,237,34,8,144,10,10,81,34,23,69, 190,2,23,21,2,16,144,9,154,0,23,255,5,10,139,32,140,48,139,64,139,80, 5,43,187,54,29,82,162,0,161,16,123,68,129,22,106,24,20,130,2,23,84, 1,85,7,170,84,1,85,7,84,1,85,7,152,84,1,85,5,14,159,0,94,1,86,0,148, 0,21,226,0,4,245,1,128,2,36,16,0,24,48,65,85,163,0,85,0,85,16,0,80, 85,21,0,81,81,85,17,82,21,48,16,85,69,36,48,81,84,81,85,84,128,4,84, 100,5,1,0,146,0,85,81,0,81,82,5,4,144,1,69,17,85,69,0,41,69,5,16,0, 21,113,85,21,19,0,21,4,64,143,16,30,17,85,163,16,123,70,84,83,70,177, 15,9,69,83,127,6,21,51,15,40,51,8,50,8,251,18,8,18,8,18,15,18,16,15, 5,255,49,10,32,10,240,15,10,32,26,173,0,29,20,31,27,17,130,2,24,84, 237,130,4,23,144,12,10,69,82,7,21,232,50,143,32,9,149,0,7,0,10,21,85, 254,80,11,107,139,48,139,64,138,80,144,11,154,0,128,89,164,0,81,85, 0,170,90,85,171,5,38,65,32,64,40,17,130,18,51,39,81,84,129,2,39,81, 81,114,55,6,81,69,18,6,81,144,30,16,128,14,159,0,94,1,57,84,85,159, 0,255,15,255,15,152,21,1,48,143,8,44,149,170,15,59,175,38,145,1,60, 84,85,159,0,255,15,255,15,255,15,185,1,57,84,85,159,0,255,15,255,15, 168,21,4,128,175,32,238,15,14,1,8,68,85,1,0,161,0,5,0,0,0,0,10,0,21, 0,69,85,88,4,0,1,5,192,0,129,2,85,85,165,68,2,69,128,5,80,85,49,84, 1,2,85,85,65,0,16,85,85,2,56,1,1,80,84,21,1,8,8,4,80,81,21,4,8,16,80, 96,69,21,176,6,6,64,80,21,21,54,64,1,0,163,16,133,16,4,84,101,255,68, 160,5,9,161,7,9,135,2,3,88,255,2,88,2,24,4,163,16,7,83,127,1,0,2,83, 7,163,8,7,133,2,255,5,102,20,6,20,6,22,161,16,223,17,129,14,227,47, 69,32,55,97,57,255,225,7,57,35,55,4,22,4,22,255,4,24,195,32,23,163, 16,23,33,25,255,139,32,139,48,139,64,136,2,56,103,178,17,152,0,11,37, 5,0,64,85,41,69,192,3,39,43,5,85,27,69,85,27,128,2,242,26,64,26,64, 16,86,85,163,0,13,84,85,129,170,90,221,17,144,0,70,138,34,161,16,129, 170,85,140,32,80,125,171,85,12,85,12,85,12,85,15,0,0,159,0,94,1,43, 84,85,149,0,81,132,1,84,162,0,127,15,8,68,32,129,4,141,6,143,2,38,139, 16,161,3,127,15,10,68,194,0,135,8,103,127,36,15,0,163,4,255,239,31, 10,131,4,93,111,36,127,2,239,47,14,161,16,63,0,253,79,36,95,4,143,32, 12,139,48,139,58,31,30,157,0,86,149,162,0,127,8,64,0,1,80,245,1,0,148, 141,22,111,30,2,0,1,82,160,1,1,11,0,64,85,17,0,31,42,64,143,23,9,179, 15,6,139,50,81,132,32,161,2,1,0,143,36,6,128,137,6,143,64,46,1,33,80, 85,163,0,85,85,5,0,89,225,0,0,148,0,21,0,17,65,85,0,3,85,85,16,0,69, 85,21,21,0,81,85,17,2,21,192,1,21,8,240,5,81,85,81,84,49,85,84,89,21, 0,192,0,1,128,2,146,0,85,81,20,48,81,21,4,144,1,69,17,85,140,69,48, 69,21,16,145,3,113,85,129,21,0,21,21,64,80,85,81,111,143,16,27,17,128, 6,74,84,163,16,70,177,15,111,9,69,115,6,21,51,7,51,255,15,24,51,8,18, 8,18,8,18,255,8,18,9,17,15,26,17,10,16,255,10,240,15,10,48,10,48,11, 143,32,28,222,161,0,144,8,41,84,129,2,40,145,12,41,253,69,50,39,176, 7,15,4,157,0,7,0,252,10,193,15,10,139,32,139,48,139,64,138,80,88,197, 85,161,0,161,16,21,170,90,127,1,73,239,66,81,128,6,106,16,128,2,41, 49,251,41,50,40,50,8,18,64,191,14,1,0,159,0,91,1,16,84,85,68,162,0, 84,85,64,0,0,69,85,85,85,80,85,4,160,0,1,84,0,64,0,85,0,26,84,85,16, 0,1,225,1,96,128,2,45,85,85,69,2,85,131,6,89,1,85,224,0,1,8,4,16,4, 8,16,83,16,16,8,64,16,64,68,160,1,63,137,16,4,0,163,16,21,160,15,34, 21,255,193,4,25,136,2,2,24,2,24,2,255,24,4,163,16,7,19,7,19,7,255,163, 8,7,134,2,4,22,4,22,4,255,22,6,161,16,9,17,9,17,225,1,255,113,229,39, 41,116,22,36,22,36,255,22,36,24,161,16,25,35,23,33,255,25,139,32,139, 48,139,64,136,2,88,13,17,247,195,57,69,133,30,157,0,135,8,0,225,0,9, 95,64,21,8,66,129,2,88,2,24,24,2,64,100,85,161,0,161,16,64,168,212, 90,130,35,155,0,101,84,69,128,4,85,127,85,21,138,32,209,16,57,32,58, 128,2,248,58,0,26,0,192,0,159,0,108,1,22,0,0,85,156,0,69,160,0,2,75, 1,80,138,3,65,0,131,2,68,16,234,161,4,78,132,6,70,4,28,16,28,247,64, 173,15,227,15,195,0,143,16,6,68,98,119,255,40,130,6,40,18,40,18,40, 31,5,255,228,15,31,7,161,8,25,6,20,6,20,255,6,20,6,31,7,143,32,12,163, 8,15,1,22,255,4,22,4,22,4,31,41,139,32,139,48,224,139,64,72,88,15,19, 170,74,85,85,164,0,157,0,64,162,0,65,0,160,3,85,4,69,0,81,0,0,1,113, 65,0,1,85,1,64,85,69,1,81,33,1,0,4,17,65,4,85,4,4,48,4,81,4,0,16,17, 65,35,16,85,16,48,16,81,16,147,8,79,192,15,64,48,64,81,207,16,3,153, 0,227,14,159,129,14,240,6,85,81,136,16,129,32,105,113,253,9,17,9,17, 9,17,15,0,101,141,162,0,161,32,64,168,90,138,34,129,14,65,127,140,2, 81,89,1,89,113,9,17,128,9,17,85,1,59,84,85,159,0,255,15,255,15,122, 69,160,0,192,143,4,42,143,32,178,175,28,58,1,22,0,0,85,159,0,10,1,239, 3,11,15,16,175,5,140,2,17,60,65,143,8,13,143,16,255,111,221,235,239, 83,12,143,22,16,111,46,159,0,13,86,47,78,0,61,64,143,20,28,84,143,2, 15,1,23,0,0,85,159,0,10,5,239,3,11,15,16,93,141,8,17,140,2,65,63,29, 143,16,255,111,77,1,155,111,109,47,110,168,170,28,251,3,86,143,38,14, 64,143,32,109,84,143,2,15,1,61,84,85,159,0,255,15,255,15,136,239,87, 15,4,92,159,12,45,170,15,59,86,143,32,94,141,4,143,2,0,1,58,84,85,159, 0,255,15,255,15,41,4,143,24,173,252,170,13,251,3,239,103,15,143,32, 109,141,20,143,2,0,1,59,84,85,159,0,255,15,255,15,185,16,255,27,204, 128,239,121,14,141,4,84,85,1,35,84,85,154,0,21,0,0,172,2,255,140,4, 223,3,10,15,17,143,8,14,128,16,175,16,11,111,83,127,9,243,15,85,31, 7,15,87,31,5,15,77,81,5,7,171,147,0,156,4,1,143,14,29,5,79,13,69,143, 26,45,83,12,90,63,32,21,169,0,84,1,143,32,14,160,143,4,13,95,13,80, 142,2,1,40,84,85,154,0,21,251,1,85,21,61,0,0,80,188,2,15,27,142,10, 143,6,30,0,247,0,175,16,41,143,16,51,127,41,15,30,5,141,2,3,214,31, 39,141,10,13,69,141,6,21,148,0,177,5,59,84,1,84,70,21,251,5,80,141, 12,205,63,46,31,110,140,20,84,1,141,32,143,34,12,90,94,47,46,1,235, 15,85,122,207,64,32,173,6,143,2,0,1,63,84,85,159,0,255,15,121,239,51, 46,141,8,143,10,30,18,143,6,14,84,1,0,12,21,85,163,0,1,85,85,21,84, 80,5,84,5,158,143,26,60,143,48,111,169,170,111,13,60,140,32,47,15,198, 1,143,2,13,47,27,80,5,80,173,2,110,1,58,84,85,159,0,255,15,255,15,152, 80,143,4,13,101,84,17,143,10,28,238,99,169,170,15,58,90,96,158,14,1, 143,32,76,61,80,85,1,16,84,85,69,162,0,85,85,21,84,0,5,224,0,85,134, 2,20,32,84,8,85,85,84,16,0,1,84,0,0,20,0,164,0,84,1,85,84,84,64,0,1, 84,0,4,33,85,75,69,84,1,85,84,129,6,85,33,12,133,8,4,5,81,85,176,2, 38,16,16,5,69,85,17,40,64,5,21,121,85,65,161,1,137,16,39,3,16,0,191, 163,16,5,64,16,9,160,15,50,37,255,136,8,18,88,18,72,20,163,2,23,255, 69,21,163,16,23,67,23,67,23,255,134,8,20,134,2,20,70,22,225,1,25,255, 67,23,161,16,17,129,14,227,47,33,23,255,65,25,132,8,22,4,22,4,24,255, 139,32,139,48,165,16,25,67,23,65,25,255,43,59,141,64,31,6,129,2,145, 27,155,0,21,76,32,84,26,84,84,209,77,24,86,159,80,27,86,84,27,128,2, 28,225,13,150,137,32,208,42,85,101,164,0,69,4,157,0,102,101,84,81,161, 16,20,168,240,1,136,16,102,0,4,128,18,56,0,16,96,56,88,0,64,96,65,158, 10,159,0,93,1,8,84,85,1,0,163,0,20,0,3,4,0,5,0,85,85,4,128,1,16,161, 1,84,85,5,224,0,0,0,80,144,85,155,0,64,0,1,65,0,84,24,0,68,0,69,128, 6,243,7,1,1,6,20,1,4,1,5,1,128,2,146,8,1,1,4,20,4,4,4,5,4,64,0,16,81, 1,16,20,16,4,48,16,5,16,0,18,1,64,21,91,64,5,48,1,128,13,137,16,4,164, 16,182,7,27,64,128,4,9,0,161,14,8,217,0,97,40,0,1,24,0,64,255,163,16, 23,69,21,69,23,9,193,15,255,227,0,21,5,21,5,21,5,21,255,5,23,3,23,3, 25,7,227,47,255,129,1,23,3,23,3,23,3,23,205,3,25,3,4,170,21,1,85,237, 26,149,0,19,1,85,24,1,21,183,24,1,21,24,1,21,24,1,254,19,220,75,159, 0,111,133,32,129,48,161,32,15,6,17,103,4,85,7,17,68,85,7,17,248,128, 2,54,1,16,38,1,69,85,80,5,64,245,3,20,160,0,164,170,86,253,85,129,1, 3,129,64,203,19,226,113,4,84,54,50,85,85,144,91,34,20,50,128,2,142, 4,19,20,4,84,128,48,48,148,0,52,20,16,84,240,2,48,64,67,20,64,64,85, 226,47,1,8,84,85,1,0,161,0,65,85,37,69,85,85,194,0,4,0,1,69,157,134, 2,157,0,64,0,1,135,6,242,7,1,222,56,146,8,8,16,81,8,18,5,102,1,0,163, 16,5,4,0,115,143,16,6,205,64,128,4,41,0,1,19,6,4,183,19,6,16,19,6,64, 19,71,255,19,71,19,79,8,19,7,19,7,255,19,7,19,7,19,9,17,9,255,17,15, 10,17,9,17,9,17,9,255,17,9,17,11,17,130,2,243,7,20,190,33,151,0,80, 8,17,132,4,148,8,84,221,1,37,52,4,115,1,50,16,250,244,7,112,2,128,1, 155,0,101,4,130,14,233,4,104,83,5,64,160,22,85,0,1,7,0,1,84,85,21,1, 5,36,6,0,4,128,2,4,5,6,0,152,16,96,16,5,38,161,16,21,64,226,5,30,159, 0,94,201,27,20,0,68,136,32,224,4,196,50,143,64,2,161,0,68,0,84,0,195, 5,4,17,4,1,20,1,5,12,17,4,4,20,4,5,17,4,48,16,20,16,5,17,5,64,21,0, 64,69,85,1,8,84,85,1,0,161,0,81,85,9,69,85,5,0,85,144,0,4,0,98,1,85, 134,2,23,5,0,0,160,2,86,64,0,1,65,128,4,69,114,242,7,157,1,129,8,21, 1,50,146,8,50,4,110,50,16,161,0,50,16,2,66,2,125,64,85,224,15,163,16, 133,16,161,15,111,10,64,182,84,5,0,192,14,9,0,48,9,223,0,48,9,0,48, 11,163,16,7,255,51,15,8,51,7,51,7,19,7,255,19,7,19,9,17,9,225,15,15, 10,255,17,9,17,9,17,9,17,9,183,17,11,65,134,14,3,69,15,13,131,6,255, 7,131,2,7,68,6,68,22,4,251,16,157,0,224,10,164,0,129,14,31,0,65,160, 31,239,99,193,5,129,33,35,81,196,4,143,2,30,157,0,30,131,32,4,0,5,192, 0,255,19,1,228,95,81,209,68,146,61,19,17,80,4,1,68,165,160,32,243,7, 17,0,4,4,128,2,4,74,115,17,0,4,16,64,16,211,7,152,17,48,5,64,175,32, 4,159,0,92,1,3,84,85,1,0,81,85,161,0,80,149,0,69,6,5,192,0,85,85,16, 242,0,1,129,4,131,2,29,0,1,1,135,65,134,6,0,4,0,4,137,10,241,7,17,106, 64,0,64,71,1,0,84,230,226,15,69,161,8,137,16,16,0,163,16,31,6,102,0, 1,35,21,0,4,33,135,10,111,0,16,193,0,136,2,64,1,57,69,255,231,31,69, 51,67,63,8,3,23,1,255,25,1,25,1,27,193,1,135,36,155,0,255,227,47,131, 4,31,6,1,134,12,112,3,39,255,3,39,3,41,239,63,0,161,1,133,32,227,31, 255,15,10,232,59,2,27,129,48,9,17,159,0,6,248,231,79,131,14,195,67, 163,20,143,16,8,161,0,84,85,62,5,1,5,160,17,135,6,145,0,143,2,14,95, 110,252,0,82,225,71,131,46,242,39,160,0,139,64,16,119,0,20,64,240,58, 143,32,7,4,66,135,38,128,229,41,143,2,14,1,8,84,85,1,0,161,0,21,0,129, 16,192,0,0,0,85,85,4,0,168,1,131,2,8,48,81,2,85,85,170,21,192,1,17, 56,85,96,65,137,4,27,1,85,85,1,192,0,54,4,48,186,32,54,16,48,32,54, 64,16,55,64,1,0,163,16,133,16,4,52,69,255,161,5,73,23,3,136,4,2,24, 2,255,24,2,24,4,163,16,7,51,7,255,163,6,7,21,5,134,4,4,22,4,255,22, 4,22,6,161,16,9,49,21,255,230,45,8,19,7,132,4,6,20,6,255,20,6,20,8, 163,16,7,51,7,255,139,32,139,48,139,64,136,2,72,123,9,179,25,255,159, 0,8,136,14,112,58,16,41,17,41,254,130,2,40,114,8,18,14,176,30,146,0, 189,1,194,97,1,143,32,111,107,225,18,25,80,128,238,37,143,2,30,1,1, 84,85,1,0,1,0,21,0,160,0,16,0,4,0,0,0,85,106,85,4,128,1,129,2,24,16, 8,32,208,16,160,3,131,4,20,160,5,85,85,64,17,0,64,0,85,0,80,0,68,144, 34,208,0,1,21,0,16,1,4,208,1,18,144,8,21,0,16,4,4,208,4,18,80,21,48, 16,16,4,208,16,66,0,21,16,17,64,5,237,64,193,15,161,16,135,16,4,98, 119,16,243,2,23,80,0,23,0,1,1,51,23,0,4,33,7,0,16,17,63,7,0,64,17,9, 17,9,17,255,135,2,225,31,37,3,17,9,17,89,255,1,25,1,25,1,27,3,23,255, 3,23,3,23,3,23,3,23,255,3,23,3,23,3,25,225,11,131,14,173,157,0,51,21, 160,14,17,57,128,2,81,85,56,21,160,16,17,56,21,0,17,87,24,21,0,17,24, 21,0,19,64,157,0,8,162,0,0,0,21,170,90,110,85,5,176,11,53,21,194,36, 56,128,2,130,69,56,21,1,84,85,5,56,103,21,4,96,8,21,16,16,8,220,161, 16,15,2,159,0,10,84,240,46,127,78,133,32,0,93,170,6,144,25,5,38,225, 0,137,48,80,252,138,64,225,63,121,1,25,1,25,21,64,64,16,20,1,59,84, 85,159,0,255,15,255,15,23,1,159,32,238,0,15,160,1,60,84,85,159,0,255, 15,255,15,255,15,185,1,60,84,85,159,0,255,15,255,15,255,15,185,1,17, 0,0,85,159,0,7,81,85,85,137,230,3,192,1,85,17,0,129,2,81,1,16,163,0, 80,1,81,60,17,1,85,160,1,48,5,67,80,5,17,4,80,85,4,48,17,67,80,17,17, 40,16,85,16,0,65,19,85,65,27,17,64,85,64,239,15,8,143,16,4,81,161,12, 204,88,9,81,81,5,165,16,19,81,255,17,37,19,128,15,36,31,38,165,14,5, 254,135,2,3,117,5,85,5,85,15,20,227,81,224,0,193,15,3,21,0,81,162,0, 60,128,2,0,80,129,1,34,163,16,17,21,48,1,81,4,97,112,4,80,4,6,17,4, 21,4,81,16,65,80,0,16,80,16,17,16,21,16,81,227,64,65,80,192,15,17,64, 21,63,0,155,193,58,130,59,5,0,135,14,161,14,85,30,182,55,161,16,85, 24,33,85,24,33,247,85,24,33,31,5,143,34,11,21,234,85,137,52,254,132, 4,129,17,137,2,97,121,1,25,142,16,75,5,0,161,0,1,0,145,0,85,129,14, 125,86,80,224,3,58,194,32,160,94,4,80,239,192,15,128,16,193,94,82,80, 96,112,1,127,18,80,32,48,193,62,21,63,1,207,30,0,255,21,130,80,138, 2,130,65,137,4,113,105,17,224,41,17,41,224,15,1,38,84,85,151,0,17,0, 216,1,0,255,81,251,1,230,2,163,0,160,1,143,6,13,143,2,30,143,16,18, 255,130,15,31,107,165,16,31,52,198,25,31,25,133,6,31,56,165,163,3,27, 64,128,2,21,0,157,0,64,190,164,0,128,4,0,16,170,6,143,48,46,143,78, 4,95,90,35,149,170,21,192,30,21,0,17,161,29,231,191,4,4,81,160,31,195, 32,85,170,175,14,46,133,48,27,193,31,25,0,16,142,46,153,0,80,194,62, 128,165,0,143,64,52,1,8,84,85,1,0,161,0,5,0,0,0,0,21,0,10,0,85,85,105, 4,0,1,131,2,0,32,16,0,70,1,21,196,0,85,85,84,2,147,0,149,64,44,0,1, 12,4,12,16,27,12,64,1,0,163,16,133,16,4,68,249,85,161,14,89,161,7,25, 139,2,0,1,95,76,4,76,16,76,16,163,16,7,255,19,7,19,7,163,8,7,137,2, 1,255,26,0,26,0,26,2,161,16,133,14,103,227,47,85,86,51,85,85,9,229, 7,255,5,71,3,24,2,24,2,24,255,4,163,16,7,19,129,34,3,19,7,255,139,32, 139,48,139,64,140,2,84,7,182,17,159,0,5,127,69,21,176,5,15,66,176,30, 114,195,11,229,1,240,71,7,131,65,143,32,94,79,78,1,41,84,85,153,0,86, 192,0,4,0,235,161,0,131,2,235,3,3,64,32,80,196,1,125,129,4,84,34,63, 40,139,16,161,15,63,10,64,255,194,0,55,165,10,47,38,63,0,163,16,47, 8,49,239,41,3,31,38,155,0,84,234,47,79,6,81,255,137,10,231,4,15,32, 63,4,69,129,66,15,2,139,32,206,139,44,127,28,159,0,30,64,0,161,0,63, 56,173,34,76,2,0,1,0,0,163,2,143,20,0,66,248,0,1,22,128,5,143,32,92, 159,0,62,1,10,84,85,1,0,161,0,85,2,6,69,0,85,85,4,0,1,131,2,154,5,48, 16,0,1,51,37,48,240,69,2,144,0,193,1,57,1,85,85,221,5,192,0,54,4,48, 64,54,16,209,0,64,6,64,0,64,1,0,255,163,16,133,16,160,15,82,101,112, 2,21,255,161,7,25,136,2,18,120,2,24,2,255,24,4,163,16,7,115,7,19,7, 255,163,8,7,134,2,4,118,4,22,4,255,22,6,161,16,9,113,9,17,85,255,230, 39,8,68,6,68,6,20,6,255,20,8,165,16,5,117,5,21,5,252,139,32,139,48, 139,64,136,2,40,93,97,64,127,0,81,192,0,159,0,14,136,8,129,41,12,26, 250,1,25,1,25,1,24,85,192,32,255,5,143,15,7,130,48,128,4,143,32,62, 148,17,159,0,37,141,22,192,253,9,133,29,143,2,8,1,26,0,0,85,159,0,8, 205,3,5,140,2,171,1,47,13,4,44,16,44,64,207,15,9,87,143,16,112,5,124, 5,12,5,140,14,63,0,86,11,21,12,69,15,3,1,162,0,128,1,89,84,0,16,1,226, 14,129,15,5,84,244,165,1,171,5,135,6,67,103,4,16,5,65,85,17,162,0,85, 85,17,84,16,21,16,17,85,65,34,85,192,0,64,255,32,113,31,2,161,10,9, 18,226,1,168,14,238,173,16,8,129,6,33,4,20,97,17,254,16,20,129,15,17, 175,64,14,159,0,14,15,0,69,107,5,84,163,48,53,17,128,2,17,56,220,197, 32,143,32,6,132,48,0,156,0,136,4,12,84,253,1,160,12,121,161,16,121, 1,25,65,255,128,2,143,32,10,227,42,233,97,75,141,4,13,141,86,192,227, 48,151,0,194,32,1,26,0,0,85,159,0,8,205,3,5,143,2,13,171,1,44,4,44, 16,44,64,207,15,9,232,143,16,255,127,113,141,12,15,66,1,166,0,0,84, 27,168,85,1,0,156,0,185,5,65,173,16,69,225,6,5,54,85,65,4,96,21,20, 6,85,65,16,16,69,6,85,125,65,64,175,32,15,159,0,0,136,12,234,1,32,84, 141,49,139,2,4,85,17,23,48,16,252,208,22,23,175,32,2,135,8,129,32,59, 139,44,5,198,84,235,31,63,14,17,84,17,58,162,16,1,62,84,85,159,0,255, 15,255,15,134,207,87,238,143,32,50,1,26,84,85,81,162,0,147,0,65,192, 0,105,4,0,1,131,2,104,32,16,0,175,1,67,64,33,0,49,135,6,141,8,255,79, 28,161,1,73,161,15,137,16,113,9,17,255,9,141,8,111,32,163,2,7,163,16, 7,19,255,7,19,143,8,6,143,2,34,229,1,37,229,15,129,14,255,233,47,21, 37,143,8,2,143,2,36,139,32,167,16,85,248,27,139,48,141,58,15,44,159, 0,14,63,76,85,85,253,0,4,31,20,229,89,135,8,127,30,11,1,224,245,15, 47,37,129,116,31,28,1,25,84,85,21,162,0,144,0,1,85,58,130,1,4,0,1,224, 1,0,21,192,2,96,16,0,1,132,2,0,85,85,64,222,0,49,3,149,0,138,8,194, 8,4,170,5,192,1,4,8,17,112,16,8,191,65,16,64,161,1,137,16,160,15,162, 16,85,253,96,114,5,16,34,5,140,8,1,255,136,2,50,8,18,8,20,163,2,23, 255,163,16,23,3,23,3,23,138,8,16,255,134,2,20,6,20,6,22,226,1,24,255, 161,16,25,1,25,1,133,2,140,8,18,255,84,22,4,22,4,24,139,32,167,16,255, 21,117,5,21,5,107,139,48,139,64,171,136,2,47,11,84,224,11,84,16,0,159, 0,13,255,136,8,129,43,25,1,25,1,25,1,231,26,193,97,134,32,129,44,85, 21,143,15,7,133,4,248,127,46,148,17,159,0,53,142,22,45,142,2,1,76,0, 154,0,64,85,139,2,5,130,134,170,161,0,2,0,128,170,156,3,140,6,85,64, 84,28,81,28,69,28,21,249,143,16,255,175,15,3,131,1,31,104,163,16,31, 98,128,170,250,165,0,227,1,31,76,159,0,14,143,68,6,47,56,8,120,122, 136,170,47,0,203,5,205,7,43,40,143,2,17,1,32,64,85,167,0,65,85,85,85, 170,0,159,0,3,2,2,40,177,1,85,7,210,1,128,6,128,7,84,5,65,84,130,2, 148,81,37,65,81,2,69,21,65,166,69,2,21,23,0,0,225,14,143,16,43,219, 84,167,16,114,81,7,18,69,7,127,18,21,9,17,7,31,37,6,20,255,6,20,6,20, 8,19,5,31,8,255,147,0,31,7,4,22,4,22,4,22,255,6,21,3,31,41,2,24,2,24, 255,2,24,4,23,225,15,17,153,0,129,2,255,142,84,31,6,96,26,96,26,0,26, 102,0,65,16,159,0,10,128,170,111,0,137,4,237,168,143,36,2,143,2,41, 143,46,0,32,172,2,224,32,0,162,169,0,80,1,106,84,0,4,10,48,80,0,16, 10,250,7,1,64,85,0,85,1,93,0,159,0,3,2,162,0,15,8,131,4,8,184,175,4, 9,1,160,143,2,29,143,16,248,15,5,170,170,228,170,249,1,127,207,128, 14,64,85,167,0,81,47,85,85,85,47,78,8,72,141,30,15,14,103,141,18,168, 143,2,29,94,0,128,63,11,143,32,14,128,141,4,47,2,1,12,84,85,1,0,149, 0,193,1,80,26,85,5,0,4,162,0,129,2,5,192,0,40,17,0,16,34,0,226,0,84, 85,44,65,0,64,34,0,98,192,6,1,191,0,35,0,1,128,2,243,7,145,8,0,235, 64,83,100,0,64,163,0,85,163,1,191,226,14,135,16,4,166,16,115,161,14, 3,19,255,33,3,19,34,24,2,24,2,255,153,24,133,15,22,167,16,19,5,244, 7,6,255,21,5,21,6,20,6,150,8,4,255,52,165,15,23,201,32,179,23,33,119, 35,255,55,35,55,36,54,4,152,8,2,248,22,195,15,19,214,63,159,0,5,213, 55,84,85,239,85,226,32,83,161,16,85,51,228,63,129,2,255,50,116,2,151, 24,80,0,134,16,225,15,255,21,155,0,231,81,123,145,55,73,160,15,74,255, 209,40,9,17,9,114,8,231,48,159,0,2,239,131,64,113,247,7,129,68,17,105, 35,87,254,195,97,87,129,2,25,33,26,99,155,0,40,161,170,162,164,0,170, 192,0,10,0,40,152,170,154,4,170,16,86,85,40,105,170,106,4,170,16,86, 85,34,169,169,170,5,170,170,169,128,2,71,166,170,5,170,170,166,112, 245,7,168,146,8,16,106,5,85,192,1,85,85,1,12,80,85,5,0,163,0,147,0, 85,225,85,148,1,16,193,3,85,85,16,0,66,3,0,226,0,85,85,64,0,3,214,0, 98,128,6,1,84,0,1,128,2,190,4,36,0,1,64,154,8,64,4,29,85,85,5,64,80, 226,12,135,16,4,255,168,16,161,3,161,14,89,1,25,2,24,255,2,24,2,154, 8,165,16,53,37,53,255,39,51,37,53,5,21,6,20,255,6,20,6,150,8,3,55,3, 55,255,201,32,179,23,1,55,3,23,4,22,255,4,22,4,152,8,1,51,231,61,159, 0,20,95,229,63,85,80,69,54,33,128,10,6,255,17,128,2,6,17,80,151,24, 224,15,63,44,219,144,7,58,160,0,84,57,96,80,57,249,161,15,25,133,32, 129,17,159,0,2,146,28,85,5,223,232,97,30,224,54,69,25,225,56,25,129, 2,244,25,97,26,161,16,141,15,170,154,0,10,40,0,154,170,165,0,170,192, 0,106,85,80,106,170,85,170,96,90,85,170,138,169,86,170,170,169,128, 2,166,22,60,170,170,166,32,154,8,32,86,85,64,85,165,0,1,8,0,0,168,170, 165,0,160,170,6,170,170,85,85,166,170,5,145,0,20,85,85,154,170,5,90, 130,2,106,207,170,5,131,4,170,169,8,65,151,8,216,176,8,0,23,154,2,23, 106,85,27,85,168,170,2,166,16,129,16,166,120,109,145,0,154,24,1,106, 24,34,169,255,26,144,8,26,0,26,0,25,129,16,255,23,99,23,3,23,3,23,3, 255,26,146,8,24,2,24,2,23,99,255,21,101,21,5,21,5,21,5,255,24,148,8, 22,4,22,4,21,101,232,19,103,19,145,0,138,164,0,0,0,40,138,170,10,128, 2,34,52,0,0,88,34,170,208,0,0,213,71,164,1,170,170,252,162,51,64,129, 1,150,8,32,49,170,121,170,42,19,32,226,0,231,79,2,0,201,137,16,161, 16,49,20,85,118,0,10,255,128,14,153,0,141,2,1,53,68,151,24,67,211,54, 67,192,0,85,167,0,165,85,159,0,0,239,246,7,210,7,63,0,202,15,2,137, 16,32,193,2,249,153,8,129,2,6,16,65,159,0,29,84,85,17,19,4,0,4,129, 32,85,0,1,91,26,84,234,111,166,176,70,73,154,201,111,0,131,64,1,8,0, 0,168,170,165,0,160,170,6,170,170,85,85,166,170,5,145,0,25,85,85,154, 170,7,129,2,106,170,159,7,65,170,169,9,64,151,8,48,176,0,25,154,0,24, 85,106,168,109,170,2,166,16,129,16,166,120,145,0,154,127,26,170,208, 6,25,32,161,14,25,113,223,9,17,9,106,9,129,16,7,99,255,39,3,25,1,25, 1,28,195,30,255,40,60,225,14,38,19,37,21,37,255,21,7,19,7,19,10,229, 46,24,254,42,131,15,20,5,19,7,19,145,0,145,138,164,0,0,0,225,0,170, 170,42,57,20,0,0,33,0,148,8,0,0,127,164,1,162,19,128,2,115,100,16,35, 211,52,16,225,0,42,231,79,2,0,137,16,255,161,16,41,51,39,51,39,52,229, 14,253,21,37,23,150,8,17,179,8,152,0,85,228,29,135,16,176,7,176,6,84, 85,163,0,4,1,0,4,0,10,0,0,85,0,207,24,128,2,56,170,162,0,134,32,97, 156,0,24,170,42,0,29,159,0,31,0,133,1,71,42,1,0,84,235,111,170,224, 60,80,249,119,128,65,1,8,0,0,168,170,165,0,160,170,6,170,170,0,0,162, 170,5,145,0,25,0,0,138,170,7,129,2,42,170,127,6,168,65,246,7,224,1, 66,151,8,176,8,246,16,42,16,40,225,15,2,166,16,129,16,215,162,24,145, 0,138,26,170,208,6,24,111,161,14,168,24,65,162,26,144,8,26,255,64,25, 227,31,21,131,16,23,35,25,255,33,24,34,24,2,26,146,8,24,255,66,23,229, 47,19,37,21,37,23,255,35,22,36,22,4,24,148,8,22,255,68,21,231,63,17, 39,19,39,21,255,37,20,38,20,6,22,150,8,20,207,70,19,233,79,2,0,41,49, 25,255,35,129,72,159,0,8,240,9,110,151,8,194,1,151,24,200,66,195,12, 15,26,84,85,163,0,4,0,38,4,0,10,223,17,10,0,128,130,18,234,95,245,2, 43,130,2,143,16,41,96,85,143,32,8,128,224,124,162,0,233,15,194,32,1, 8,84,85,1,0,153,0,80,85,48,5,0,4,162,0,3,84,85,17,80,0,16,18,0,226, 0,84,85,65,89,0,64,18,0,66,128,8,1,0,127,19,0,65,128,2,243,7,145,8, 16,32,208,51,68,32,64,163,0,85,85,5,27,64,5,64,1,161,8,136,16,4,166, 16,255,147,0,161,14,83,67,113,3,19,34,255,24,34,24,34,153,24,128,15, 11,171,16,255,177,6,83,5,85,5,21,5,22,255,4,22,4,22,148,8,161,15,11, 25,255,179,23,17,7,19,7,19,7,20,255,6,20,6,20,6,19,3,218,63,131,159, 0,1,213,55,84,85,85,85,21,6,31,17,85,85,69,6,17,128,10,6,255,17,128, 2,6,17,112,6,225,15,3,254,129,1,153,0,235,81,55,145,55,25,160,15,26, 219,8,208,40,25,8,96,25,8,176,7,110,25,9,132,32,133,15,65,129,26,160, 0,159,0,6,239,81,133,5,55,224,52,69,38,129,64,224,54,254,38,81,128, 2,38,1,16,38,165,32,88,169,170,159,0,12,138,166,0,193,1,42,0,40,104, 170,106,4,170,192,0,90,85,34,169,169,170,5,170,170,169,128,2,68,166, 170,5,170,170,166,80,154,138,170,5,170,170,154,80,106,5,32,85,85,165, 48,1,8,84,85,1,0,151,0,32,0,12,80,85,5,0,4,162,0,1,40,6,0,84,85,153, 170,154,18,1,140,42,128,2,65,0,64,17,224,1,106,68,170,98,80,1,1,0,16, 160,140,169,144,2,169,42,1,0,242,7,160,137,166,0,166,42,4,0,16,0,69, 16,160,145,8,154,42,16,48,64,0,113,161,106,85,85,149,106,41,108,64, 1,161,8,136,16,4,166,16,67,152,109,170,86,84,67,64,85,4,0,182,161,14, 8,0,49,8,0,49,8,63,0,64,85,18,7,25,1,21,127,5,154,20,5,20,6,19,7,239, 19,7,19,7,1,18,9,23,254,3,19,7,19,7,18,8,17,219,161,8,17,161,8,17,161, 8,255,17,5,216,63,2,155,0,5,17,128,6,255,38,113,80,22,33,128,4,22,33, 255,128,2,70,1,16,38,1,35,129,1,140,159,0,0,129,48,80,85,21,130,80, 19,149,65,170,106,192,0,102,85,69,0,68,132,162,0,144,23,85,85,0,68, 228,79,0,8,1,168,169,170,86,137,16,168,166,66,170,90,25,168,154,170, 106,25,248,169,132,32,165,14,233,96,159,0,10,227,15,100,170,129,98, 241,49,85,69,85,169,169,170,157,165,0,160,20,41,1,128,15,37,129,2,4, 195,64,37,97,16,168,106,169,4,197,225,14,129,64,145,0,160,170,162,130, 60,2,122,134,30,81,132,1,241,58,87,131,4,69,132,16,221,106,224,50,229, 111,162,130,64,128,2,100,162,222,114,0,20,162,34,0,20,35,0,85,85,1, 10,80,85,5,0,163,0,0,226,0,112,85,85,144,1,148,0,193,1,85,85,16,161, 0,3,0,18,85,85,64,0,84,3,0,192,0,74,193,4,1,84,0,20,0,1,10,1,128,2, 4,36,0,25,0,4,10,4,48,152,8,10,16,195,48,100,161,1,10,64,5,0,165,16, 123,131,16,4,40,17,161,14,57,64,38,109,51,0,97,24,0,33,24,0,255,33, 24,131,15,25,165,16,21,39,19,255,37,21,37,21,6,20,6,20,255,6,20,5,23, 3,23,201,32,179,23,255,1,23,3,23,4,22,4,22,253,4,22,195,15,19,231,61, 159,0,20,229,63,85,255,48,23,161,16,193,16,21,113,1,21,254,33,1,21, 225,15,31,44,144,7,26,160,0,223,84,25,64,80,25,178,39,24,133,32,17, 129,17,85,85,5,64,85,85,37,199,64,159,0,4,243,55,106,85,26,25,224,54, 255,224,0,7,128,2,32,7,65,9,65,139,10,16,64,160,170,165,0,170,194,0, 97,157,0,138,70,193,1,42,0,106,170,66,69,170,80,90,85,170,169,22,40, 170,170,169,128,2,166,22,170,170,163,166,64,154,22,170,170,154,64,64, 150,8,85,192,1,90,85,1,8,84,85,1,0,163,0,0,0,1,21,0,149,0,85,85,20, 0,154,3,147,0,85,85,148,1,32,64,192,1,31,85,85,64,0,3,128,2,0,128,4, 116,242,7,128,145,8,128,1,112,4,1,128,233,4,80,64,80,16,97,128,16,228, 16,0,16,242,7,128,64,163,1,1,219,0,165,16,131,16,20,6,147,0,16,8,255, 17,161,14,25,98,24,2,24,2,255,24,208,8,130,15,23,165,16,5,21,5,255, 23,3,21,5,19,7,19,7,255,19,7,19,9,19,7,19,7,255,202,32,22,7,17,41,1, 25,1,231,25,1,27,1,85,85,17,159,0,31,255,148,8,240,7,163,65,18,1,84, 147,24,112,254,4,244,71,130,2,104,133,32,111,38,177,24,225,0,64,1,4, 165,0,0,80,21,4,21,32,4,1,16,53,0,64,21,16,25,21,16,1,64,53,128,30, 64,21,220,130,17,145,0,145,24,21,213,1,15,1,145,36,64,63,85,16,84,143, 16,9,129,68,134,32,160,0,129,2,248,118,0,17,38,161,32,16,64,168,140, 170,5,170,170,128,192,0,159,0,12,42,40,0,106,170,5,170,17,85,170,128, 169,6,170,170,169,106,85,170,138,166,6,170,170,166,112,154,6,52,170, 170,154,112,150,8,85,192,1,106,0,85,1,12,84,85,169,170,163,0,147,0, 85,32,85,20,0,1,148,0,0,0,7,128,0,170,0,85,85,144,1,194,1,74,17,130, 128,2,64,0,3,0,192,0,164,66,129,4,1,33,128,1,144,2,1,82,130,1,96,4, 33,128,4,64,41,4,130,4,64,16,33,128,16,24,64,16,130,16,16,242,7,128, 64,0,85,85,21,64,130,64,169,170,219,86,164,16,147,0,20,160,10,137,16, 16,68,109,117,64,6,19,0,161,14,24,0,183,65,24,0,65,24,0,128,15,27,255, 165,16,21,67,23,67,23,5,21,255,3,23,3,23,3,23,3,25,255,3,23,1,25,1, 25,3,23,255,1,25,1,25,1,25,1,27,31,1,85,85,149,16,227,61,197,62,250, 1,191,18,155,0,2,20,65,128,10,22,65,252,128,2,22,65,0,22,33,19,149, 197,170,165,0,145,0,22,85,20,116,148,124,129,4,85,144,29,12,156,16, 102,16,84,231,21,225,0,100,112,80,21,1,20,55,32,64,21,2,167,16,21,132, 17,159,0,10,255,142,14,79,8,208,9,58,129,2,57,97,58,218,129,65,244, 62,148,0,2,150,30,145,42,21,22,174,130,164,47,128,212,7,66,161,63,130, 65,195,15,238,130,1,195,97,66,130,1,128,64,229,111,236,130,1,16,37, 130,160,0,129,32,85,0,85,1,33,168,170,155,0,0,0,130,170,237,163,0,133, 2,156,4,15,77,130,166,16,3,138,255,95,93,161,15,83,133,16,31,92,195, 31,17,39,166,207,32,94,159,0,138,0,0,2,170,161,0,176,1,98,168,2,130, 2,224,37,168,170,168,177,2,160,2,227,1,162,33,170,10,0,160,111,2,0, 148,40,1,42,228,0,4,192,42,249,129,1,143,56,67,229,55,128,16,239,29, 45,173,2,20,0,67,65,22,209,29,170,0,168,84,238,117,143,195,31,130,32, 170,0,160,128,8,7,208,73,128,196,30,6,0,0,1,12,84,85,169,170,165,0, 145,0,85,32,85,166,2,5,148,2,0,0,24,85,85,154,170,5,17,0,0,125,42,170, 7,129,6,246,7,178,8,128,2,6,36,37,168,6,129,8,170,18,37,168,162,18, 18,66,37,169,66,85,224,15,205,86,166,16,145,0,166,2,7,129,16,154,180, 160,10,57,42,10,16,169,10,170,102,170,6,7,49,170,18,7,33,255,170,192, 14,43,7,35,23,3,23,255,3,25,1,26,0,23,3,23,255,3,23,5,21,5,21,5,21, 255,5,23,3,24,2,21,5,21,200,5,21,1,136,2,163,0,0,0,141,136,209,59,0, 162,2,115,161,1,128,247,70,83,55,69,144,0,168,19,160,11,255,129,1,52, 67,55,67,55,67,49,148,176,14,149,0,2,128,208,0,20,166,0,16,61,0,148, 85,233,79,193,37,23,161,16,40,95,1,2,87,168,128,22,103,128,6,8,121, 17,169,40,1,17,157,0,162,170,172,167,0,79,19,0,87,40,128,24,23,170, 102,6,104,128,10,23,170,18,130,2,22,40,170,66,105,64,21,116,16,84,25, 16,86,129,84,128,4,40,168,0,197,63,17,132,48,116,2,170,166,74,90,160, 246,39,67,106,73,169,106,85,85,1,12,0,0,168,170,163,0,147,0,0,32,0, 162,10,3,160,10,130,10,153,0,16,138,170,5,131,4,42,170,245,7,129,2, 244,7,212,8,112,2,67,168,219,192,0,129,8,47,12,168,208,0,137,16,162, 192,14,109,9,138,160,10,9,42,170,16,144,0,168,127,90,170,193,10,137, 12,143,2,14,209,6,83,133,16,255,69,85,71,83,9,17,10,16,255,165,12,133, 14,143,2,12,243,6,33,55,35,55,255,37,53,39,51,8,18,163,12,135,14,184, 143,2,10,152,0,2,240,8,126,197,47,0,0,219,136,56,161,16,40,56,65,168, 56,232,162,27,136,14,143,2,8,157,0,20,166,0,16,0,18,149,85,85,85,231, 79,2,0,121,237,42,32,98,61,162,69,128,6,162,252,112,150,8,64,177,40, 86,192,17,192,0,21,128,85,163,0,16,84,17,86,129,84,17,85,85,162,84, 53,161,84,128,217,96,157,0,185,13,169,146,98,53,168,0,255,240,9,134, 28,129,44,95,19,137,10,92,159,0,19,233,111,32,144,73,170,166,167,0, 168,166,170,90,66,170,154,55,168,154,170,106,55,0,169,106,168,106,85, 85,1,8,84,85,169,170,167,0,170,170,20,0,0,162,170,5,130,128,2,85,48, 85,154,170,5,145,0,85,85,106,205,170,6,144,6,85,85,250,7,33,166,250, 24,1,151,8,176,8,0,56,85,224,15,187,86,168,16,170,224,14,7,129,16,154, 8,109,145,0,106,9,145,6,169,8,81,166,255,10,144,8,10,48,9,129,16,9, 113,255,7,19,7,19,8,18,8,18,255,10,146,8,8,50,7,19,7,19,255,5,21,5, 21,6,20,6,20,240,8,148,8,6,52,5,85,85,168,159,170,163,0,2,0,225,0,21, 35,23,166,35,145,0,42,116,0,0,0,144,6,64,138,168,99,0,0,138,168,168, 63,2,0,0,149,8,164,1,144,4,19,128,2,249,129,1,38,96,227,0,156,0,231, 79,0,0,200,137,16,161,16,129,4,80,84,166,0,0,105,17,85,85,85,0,54,2, 0,40,251,215,1,22,85,100,151,24,82,0,226,30,159,165,0,129,14,170,86, 25,144,12,156,0,246,7,207,16,95,2,137,18,168,10,137,16,48,129,36,249, 153,8,128,2,41,129,48,159,0,14,141,6,81,85,17,51,16,0,18,129,32,84, 0,4,17,58,80,168,154,57,170,106,168,0,58,85,85,1,8,0,0,168,170,167, 0,170,170,20,0,0,162,170,5,130,130,2,138,194,170,5,145,0,0,0,42,170, 4,123,168,42,34,216,7,35,151,8,162,2,229,23,176,8,0,22,170,42,225,15, 2,118,168,16,170,176,6,7,129,16,138,8,145,0,205,42,7,50,170,168,6,83, 162,255,10,144,8,10,48,9,227,31,7,129,16,255,7,19,7,19,6,20,6,20,255, 10,146,8,8,50,7,229,47,5,19,255,5,21,5,21,4,22,4,22,255,8,148,8,6,52, 5,231,63,3,21,255,3,23,3,131,60,159,0,6,160,8,140,2,97,252,149,8,164, 1,149,24,164,16,224,0,28,183,55,0,228,168,137,16,80,162,28,80,84,166, 0,1,118,105,85,127,0,141,18,152,8,2,25,64,230,2,137,32,17,129,14,170, 86,24,143,12,1,82,40,170,22,168,97,81,85,19,15,16,0,18,0,40,44,129, 2,233,95,248,240,13,74,49,137,16,181,56,159,0,38,168,1,16,0,84,168, 166,169,0,170,90,168,136,154,57,170,106,168,58,85,85,1,8,0,0,168,170, 167,0,170,170,20,0,0,162,170,5,130,130,2,138,195,170,5,145,0,0,0,42, 170,7,191,33,248,7,160,34,151,8,131,4,23,176,8,215,0,24,225,15,2,168, 16,170,208,6,7,109,129,16,138,8,145,0,42,10,80,168,155,8,48,170,162, 8,81,138,10,255,144,8,9,227,31,7,17,7,19,7,255,19,9,17,8,18,8,18,10, 255,146,8,7,229,47,5,19,5,21,5,255,21,7,19,6,20,6,20,8,255,148,8,5, 231,63,3,21,3,23,3,255,23,5,21,4,22,4,22,6,243,150,8,3,224,0,156,0, 215,71,0,0,57,255,65,41,51,129,74,15,6,160,26,239,2,1,201,63,228,137, 32,161,0,129,14,127,30,81,85,67,16,27,0,18,0,40,223,17,8,129,18,2,17, 58,233,95,170,10,139,16,129,48,79,40,16,209,12,164,84,143,32,9,2,209, 0,168,42,169,0,0,0,0,1,8,84,85,169,42,165,0,165,42,6,0,0,85,85,166, 170,5,145,0,20,85,85,154,42,5,90,130,4,106,195,170,5,33,0,0,170,168, 8,239,128,6,246,7,178,8,128,2,26,87,129,8,22,118,64,85,224,15,167,16, 129,16,166,160,6,41,108,154,42,23,33,106,128,4,41,170,136,168,26,170, 170,166,26,170,170,255,26,25,192,5,192,14,11,23,3,23,255,3,23,3,23, 3,26,0,26,255,0,25,1,25,3,21,5,21,255,5,21,5,21,5,24,2,24,225,2,23, 3,23,85,85,168,42,4,163,0,0,0,168,42,160,224,0,34,192,42,99,160,1,170, 160,2,0,0,111,138,42,3,17,10,70,83,71,31,86,170,170,162,3,128,2,129, 1,68,196,85,53,69,85,85,0,159,0,8,8,161,0,48,81,166,0,64,0,85,86,227, 233,79,160,8,8,100,170,170,10,25,239,192,2,198,63,81,128,2,74,101,32, 192,0,205,137,14,129,30,157,0,138,170,55,15,2,169,95,24,165,145,2,2, 24,128,8,233,95,176,22,202,192,14,56,128,2,1,0,39,5,128,6,64,85,84, 35,64,80,64,88,0,222,82,80,137,10,2,191,16,3,155,0,132,48,68,32,10, 168,154,71,160,154,170,106,160,168,72,160,48,1,9,84,85,41,42,165,0, 1,0,36,145,0,34,42,3,2,42,225,1,85,48,85,154,170,3,19,85,85,106,195, 170,5,17,0,0,42,168,5,119,242,7,0,20,0,132,2,10,5,68,155,118,225,1, 41,42,167,16,129,16,34,224,2,111,41,154,160,14,41,106,24,145,0,225, 14,255,41,17,41,17,41,17,43,167,16,255,3,21,5,21,5,23,3,23,253,229, 31,21,37,21,37,21,2,10,237,161,0,48,224,0,2,10,17,129,1,2,254,130,6, 195,31,33,71,21,37,21,130,12,255,2,161,0,131,1,231,47,133,17,143,2, 0,67,83,160,131,64,155,0,16,164,0,85,85,0,0,162,160,160,10,64,4,85, 85,64,50,127,32,8,3,176,5,136,16,163,16,233,63,163,49,46,63,0,168,170, 69,130,192,0,129,74,150,0,110,8,0,162,8,107,85,6,179,1,246,7,45,168, 42,0,146,8,162,165,0,128,2,162,111,96,138,85,96,138,145,38,5,16,41, 160,48,169,42,7,84,16,85,84,0,3,68,80,84,80,85,82,85,242,85,135,20, 192,95,196,48,153,0,165,10,5,45,149,170,165,145,2,6,8,17,26,179,88, 129,2,74,24,32,41,2,23,34,129,48,36,2,21,20,2,4,176,28,74,170,2,23, 160,2,143,16,0,32,22,137,0,193,39,168,32,162,21,0,162,36,129,38,32, 154,21,0,154,240,56,64,64,32,106,21,0,106,0,64,85,0,85,1,9,0,0,40,170, 164,0,168,0,51,146,0,34,170,4,132,2,10,170,4,9,50,85,85,106,170,4,169, 170,12,16,85,85,170,169,4,18,0,41,0,42,162,4,160,131,6,42,154,20,4, 152,0,16,82,106,4,104,3,0,64,85,85,40,170,2,165,16,109,130,12,34,160, 8,137,16,10,80,41,106,153,160,14,41,170,169,118,146,0,42,162,153,118, 34,42,154,22,34,42,106,255,22,36,22,36,22,4,22,4,255,22,4,22,4,22,4, 22,4,231,22,6,20,130,12,32,170,161,0,130,1,252,70,84,54,68,54,68,146, 0,40,201,162,161,0,224,58,162,40,82,40,154,159,33,128,13,154,40,70, 4,72,2,206,24,2,130,2,8,2,163,0,0,226,65,130,64,100,85,85,64,1,160, 224,2,67,0,1,19,85,85,0,0,82,249,156,0,131,16,114,104,114,2,168,170, 20,53,2,168,168,128,24,162,54,0,81,168,162,128,2,138,54,0,168,10,243, 130,78,150,0,192,14,31,0,167,15,8,0,145,32,112,152,8,2,192,0,144,52, 166,0,2,170,42,106,0,0,213,87,17,86,240,3,164,24,155,85,128,2,168,86, 21,64,86,143,14,0,168,213,99,48,170,129,4,69,52,65,4,47,73,5,161,65, 154,56,129,2,246,103,29,242,56,85,41,2,54,240,40,160,79,2,157,54,226, 24,42,2,54,225,25,158,0,160,4,9,2,0,168,32,6,6,4,6,0,4,0,80,32,154, 6,129,48,48,64,32,106,6,98,1,8,84,85,169,170,167,0,170,170,16,85,85, 166,170,7,170,170,0,41,0,138,170,5,10,130,4,106,170,151,5,145,0,85, 85,248,7,165,130,2,105,114,113,154,40,17,151,8,106,85,224,15,183,86, 168,16,170,208,6,105,170,224,14,7,108,129,16,106,8,146,0,169,8,48,170, 223,166,8,81,154,10,144,8,9,113,255,9,81,9,81,7,19,7,19,255,8,18,8, 18,10,146,8,7,19,255,7,19,7,19,5,21,5,21,255,6,20,6,20,8,148,8,5,21, 19,5,170,170,162,164,0,0,0,225,0,244,21,35,23,35,146,0,168,115,0,130, 0,0,160,170,170,42,162,99,7,0,0,42,162,160,10,224,2,148,8,255,164,1, 144,4,3,128,2,114,199,63,161,16,159,0,0,57,231,79,0,0,137,16,17,129, 4,64,81,2,166,0,1,165,85,85,85,0,38,63,8,0,160,215,1,6,69,83,57,171, 64,128,10,160,168,0,0,145,12,90,9,255,16,156,0,133,32,2,79,1,138,18, 228,30,38,63,128,36,169,10,41,227,46,39,128,6,159,0,13,136,137,22,240, 47,170,69,85,67,65,0,1,73,0,161,0,0,80,0,16,16,58,64,160,106,57,85, 85,1,8,84,85,1,0,161,0,41,0,129,0,224,0,169,0,85,85,20,0,19,3,0,0,84, 0,85,85,144,1,134,148,0,177,1,85,85,64,0,3,196,2,229,85,242,7,33,144, 8,168,1,128,2,4,34,33,40,4,64,4,168,4,64,145,16,33,40,16,64,16,168, 16,144,16,242,7,40,64,161,1,168,64,1,219,0,163,16,133,16,20,86,99,16, 88,123,145,1,64,22,148,0,161,14,8,0,81,111,8,0,81,8,0,130,15,9,163, 16,255,7,85,5,87,3,21,5,22,255,4,19,7,19,7,19,9,17,255,9,19,7,201,32, 195,31,49,7,52,254,6,49,9,49,9,17,11,17,191,85,224,32,169,215,61,159, 0,22,148,8,240,7,192,16,255,69,81,97,69,81,97,69,1,242,43,133,32,47, 38,177,24,33,1,4,163,0,0,41,4,0,80,1,4,169,4,89,1,16,19,169,160,15, 225,0,1,64,119,19,169,160,16,65,9,84,15,1,129,21,183,194,21,130,64, 80,143,4,7,145,32,1,208,40,133,32,254,160,0,145,6,6,16,129,2,6,226, 64,160,32,81,169,170,21,170,192,0,86,170,150,91,22,170,224,1,85,224, 0,153,0,0,140,2,98,96,168,22,193,1,2,170,166,22,138,170,192,0,85,170, 154,22,170,64,40,85,170,106,21,85,33,85,1,12,84,85,1,0,163,0,147,0, 85,42,85,4,0,3,20,224,1,4,128,2,69,16,0,1,18,0,40,64,8,41,64,64,0,5, 0,192,0,85,85,183,244,7,179,8,1,64,149,8,4,81,64,140,83,161,0,0,0,16, 64,244,7,1,3,64,85,85,1,64,1,0,165,16,223,147,0,161,14,137,16,16,68, 117,97,25,251,34,24,34,24,34,24,0,224,14,255,27,165,16,21,69,21,69, 21,7,255,19,8,18,8,148,8,6,18,5,255,23,3,23,3,23,3,23,5,255,21,6,20, 6,150,8,4,20,3,120,20,85,163,0,192,1,196,0,159,0,10,73,85,70,68,0,67, 85,85,65,24,33,219,1,24,33,1,24,33,1,24,224,33,19,173,12,215,71,128, 170,170,170,227,6,228,34,151,0,21,68,0,168,129,18,20,22,0,1,104,128, 2,9,6,0,204,4,18,6,0,16,18,6,0,126,64,105,17,14,167,13,129,46,129,98, 153,0,207,17,88,128,32,85,81,8,241,56,192,32,31,151,24,4,0,80,16,231, 95,192,15,16,149,118,131,32,64,85,165,0,65,192,10,81,112,126,32,20, 227,1,159,0,64,1,12,84,85,1,0,163,0,147,0,85,40,85,4,0,5,0,192,0,85, 85,64,16,0,1,146,170,154,170,170,2,170,138,170,85,85,64,0,9,127,85, 85,244,7,4,128,2,151,8,32,0,226,19,36,0,180,7,1,64,21,192,0,123,1,0, 165,16,147,0,161,14,137,16,16,20,255,69,49,73,50,89,17,41,17,127,41, 64,37,5,37,5,23,3,255,19,7,27,196,30,40,60,3,24,255,37,23,35,23,37, 5,17,9,255,25,230,46,8,26,101,40,3,41,198,4,192,0,245,6,85,85,5,40, 49,219,153,1,136,63,65,8,17,1,8,110,17,1,8,17,1,8,17,3,198,85,156,0, 151,39,80,85,21,130,17,89,44,9,0,68,166,0,84,242,40,167,47,84,76,85, 21,72,0,4,128,2,72,0,242,16,80,72,161,16,15,2,8,0,167,0,59,128,170, 10,228,50,151,0,167,5,89,208,1,169,192,0,38,8,208,9,9,24,8,4,154,128, 2,24,8,16,64,24,9,192,15,218,9,144,24,151,0,64,230,64,143,14,2,81,192, 0,192,65,136,37,47,52,1,12,84,85,1,0,163,0,147,0,85,34,85,4,0,5,0,0, 20,128,2,66,16,0,1,146,170,154,170,17,20,85,85,64,0,5,0,192,0,85,219, 85,244,7,179,8,1,48,153,8,4,32,140,51,97,0,0,16,32,4,1,3,64,85,85,1, 64,1,0,165,16,111,147,0,4,24,129,16,16,20,69,161,14,253,73,114,8,18, 8,18,8,0,255,224,14,11,165,16,5,23,3,19,7,255,23,3,24,2,24,2,24,2,255, 21,7,19,7,21,5,17,9,255,21,5,22,4,22,4,22,4,226,19,9,23,181,39,85,85, 5,8,182,146,128,63,153,8,17,65,8,17,219,1,56,1,1,24,1,1,24,185,1,19, 85,156,0,244,32,6,146,170,87,165,0,86,224,3,169,86,64,160,22,194,16, 249,230,79,129,2,112,6,18,86,0,16,237,18,86,161,16,95,16,40,128,29, 153,0,1,125,72,81,208,101,25,209,40,25,160,0,80,243,9,193,31,9,131, 32,139,14,128,170,141,2,138,157,0,229,15,68,0,72,128,4,168,232,111, 174,8,128,48,104,56,8,64,112,22,232,8,64,112,134,16,9,48,105,85,1,12, 84,85,1,0,163,0,147,0,85,40,85,4,0,5,0,192,0,85,85,80,16,0,5,0,48,85, 85,64,139,0,1,66,0,72,128,2,136,112,255,244,7,36,0,151,8,32,0,71,32, 132,48,67,64,1,64,85,192,0,1,253,0,165,16,147,0,161,14,137,16,97,121, 64,254,68,21,2,41,1,41,1,41,255,64,21,53,21,53,23,51,23,255,51,5,21, 12,195,30,24,12,176,7,241,35,55,19,39,19,132,170,170,255,36,21,37,19, 7,26,229,46,8,252,26,146,8,17,41,4,192,0,245,6,85,109,85,5,134,32,3, 17,24,1,73,182,24,1,1,24,1,1,24,1,238,1,24,1,19,85,156,0,244,32,32, 237,128,128,32,129,82,41,17,152,43,33,8,163,247,5,31,53,8,168,0,0,170, 10,142,16,254,175,7,10,139,18,143,2,30,209,29,229,64,131,17,192,32, 88,160,81,170,17,4,207,31,53,1,12,80,85,5,0,163,0,147,0,85,192,85,148, 1,18,80,85,85,85,16,176,0,1,26,224,1,129,1,85,85,64,173,0,1,74,128, 2,74,96,128,6,1,10,65,10,1,0,0,192,0,1,0,158,4,49,10,4,0,16,80,146, 8,120,10,16,16,0,16,34,10,64,3,85,85,10,64,5,64,5,192,12,95,137,16, 4,170,16,80,224,15,19,5,161,14,253,9,82,8,82,8,18,8,0,255,128,15,11, 165,16,5,121,1,19,7,255,19,7,19,7,19,7,19,7,249,19,9,19,7,25,227,47, 85,85,255,9,17,9,17,9,17,57,1,255,25,1,21,233,61,159,0,18,19,33,193, 16,255,5,17,34,4,17,34,52,65,253,2,149,24,224,15,19,129,1,159,0,10, 133,15,10,237,108,128,32,42,192,15,84,41,80,80,191,41,80,64,9,61,129, 12,231,48,159,0,0,183,15,1,192,32,69,41,128,2,5,25,33,249,25,33,26, 32,143,32,7,149,3,154,170,66,165,0,170,192,0,106,85,106,170,53,132, 170,64,90,85,170,169,54,170,81,170,169,0,166,54,170,170,166,232,0,154, 8,0,54,85,192,1,85,85,1,12,80,85,5,0,161,0,149,0,85,210,85,165,1,161, 3,85,16,16,0,1,165,0,226,0,16,160,2,64,0,1,0,86,98,64,129,6,1,2,0,131, 1,128,2,190,4,2,0,67,80,154,8,0,146,7,11,85,85,5,64,5,64,5,130,13,127, 135,16,4,166,16,99,161,14,9,17,9,255,18,8,18,8,18,154,8,163,16,7,255, 51,7,55,145,0,195,30,73,51,39,255,52,38,52,38,52,152,8,17,5,199,167, 13,159,0,20,229,46,85,85,69,6,17,255,128,10,6,17,128,2,6,17,80,151, 24,246,224,15,63,44,240,6,58,160,0,84,57,96,254,80,57,129,15,25,135, 32,161,17,159,0,0,146,28,31,85,5,85,4,168,49,28,224,54,161,16,255,22, 225,56,25,129,2,25,113,10,49,181,15,0,235,13,2,247,7,178,71,26,100, 106,84,16,96,160,10,74,68,42,48,32,20,1,80,85,10,52,42,48,32,211,4, 16,52,42,144,8,32,16,112,86,4,42,128,15,37,192,0,10,4,241,0,255,69, 232,16,39,57,231,111,133,80,54,68,248,54,68,54,148,8,21,133,48,85,85, 1,8,84,85,169,170,163,0,165,170,134,170,192,0,85,85,166,170,3,147,0, 21,85,85,154,170,3,90,224,1,154,60,128,2,106,170,3,133,4,244,7,33,170, 118,170,169,96,149,8,177,8,166,48,69,232,154,65,48,5,106,193,1,169, 170,222,86,164,16,131,16,166,70,147,0,161,14,89,255,106,70,116,1,24, 2,24,2,255,24,227,14,25,165,16,21,69,21,69,255,21,5,21,8,18,8,18,8, 255,148,8,5,53,3,55,3,55,3,64,51,98,162,0,85,85,98,170,170,63,0,0,0, 19,6,20,6,20,254,6,149,24,4,55,1,57,1,51,68,20,85,163,0,85,85,90,192, 0,16,68,85,80,4,85,85,10,48,42,40,85,0,1,3,85,161,1,0,42,255,1,149, 8,162,16,54,116,6,195,15,226,16,115,159,0,13,138,166,0,227,1,93,16, 1,101,127,176,24,85,135,16,34,193,16,231,79,129,2,54,254,242,56,15, 17,157,0,208,6,52,129,34,193,0,51,175,20,129,32,84,42,166,176,54,41, 193,15,255,41,31,19,15,8,129,48,234,111,128,64,42,16,224,42,16,41,129, 16,85,85,1,8,84,85,169,170,163,0,165,170,134,170,192,0,85,85,166,170, 3,147,0,20,85,85,154,170,5,170,16,85,63,85,106,170,5,131,4,244,7,36, 128,2,254,149,8,18,32,55,16,32,54,177,9,55,169,170,86,164,16,131,16, 166,54,147,0,191,161,14,73,106,56,98,113,25,49,223,25,49,25,106,7,131, 16,5,37,255,5,37,7,35,23,3,28,195,30,255,8,28,129,15,20,37,3,23,3,255, 23,5,21,5,21,10,229,46,24,255,10,163,15,2,23,33,9,17,9,246,19,7,19, 7,20,1,5,20,255,4,5,24,197,47,16,215,24,159,0,8,155,55,161,129,17,21, 90,192,0,106,85,16,1,143,165,0,128,2,1,42,1,167,47,112,134,32,207,97, 16,136,16,170,106,16,95,17,159,0,14,3,229,17,20,85,42,1,0,84,89,250, 209,40,41,209,23,41,228,48,15,13,146,166,0,34,16,0,0,232,31,85,85,74, 217,1,3,85,16,85,0,1,0,1,239,111,26,0,129,48,85,85,1,8,84,85,169,170, 163,0,165,170,134,170,192,0,85,85,166,170,3,147,0,17,85,85,154,170, 5,170,170,90,60,128,2,106,170,5,131,4,244,7,33,170,118,170,169,80,149, 8,177,8,166,32,57,227,154,32,54,193,1,169,170,86,164,16,109,131,16, 166,38,147,0,154,40,49,106,255,40,82,161,14,56,34,56,34,56,255,227, 14,57,165,16,21,37,21,39,19,255,39,19,8,18,8,18,8,18,255,7,21,3,23, 3,23,5,21,255,5,21,6,20,6,20,6,20,255,5,23,1,25,1,25,3,23,255,3,23, 4,22,4,22,4,22,208,195,15,226,16,159,0,13,138,166,0,42,0,0,71,0,10, 215,71,170,90,85,194,20,230,79,153,130,2,134,16,170,166,114,6,170,154, 159,18,6,170,106,18,15,15,157,0,208,6,224,116,129,8,193,0,19,20,85, 0,1,23,0,84,170,1,232,95,166,240,37,136,16,248,194,15,120,143,32,20, 249,7,224,15,143,18,7,16,85,7,42,1,0,0,170,86,26,145,6,128,157,8,27, 85,1,8,84,85,1,0,163,0,0,0,134,42,192,0,85,85,166,0,3,147,0,25,85,85, 16,0,7,129,2,64,0,247,7,81,244,7,212,8,80,4,72,33,215,154,8,32,212, 7,5,192,0,85,224,15,165,16,107,131,16,166,38,147,0,16,42,0,144,7,163, 41,80,1,10,0,0,4,10,255,144,8,10,64,5,133,16,37,5,21,255,5,25,1,25, 1,26,0,26,248,146,8,24,66,19,7,19,0,0,255,10,4,19,7,23,3,23,3,255,24, 2,24,148,8,22,68,17,3,19,151,0,69,85,10,249,1,85,21,8,109,81,21,8,65, 69,8,65,5,183,56,1,5,24,1,5,153,24,160,15,155,29,159,0,4,2,0,165,0, 3,34,22,81,132,2,1,21,80,193,32,0,34,4,206,21,64,128,16,34,16,53,0, 16,98,34,64,37,97,85,85,10,224,46,135,10,228,11,160,170,170,170,244, 10,159,0,3,255,129,68,233,95,129,20,73,130,2,72,114,8,168,18,246,7, 5,226,31,2,164,0,0,85,255,5,192,0,159,0,0,205,16,137,16,128,48,235, 111,144,73,22,74,4,0,80,74,16,217,7,51,1,8,84,85,1,0,163,0,21,0,1,5, 0,0,0,85,85,166,170,50,3,128,170,240,1,128,2,16,0,3,39,0,0,42,50,64, 0,7,49,223,244,7,19,49,4,24,33,149,8,210,8,185,32,88,85,224,15,165, 16,131,16,166,170,182,37,51,16,38,51,64,42,144,0,143,1,10,0,0,4,10, 144,8,10,255,64,9,129,16,37,5,21,5,21,255,5,25,1,26,0,26,146,8,24,251, 66,23,3,19,7,19,128,225,11,143,244,6,17,0,0,32,4,23,35,252,8,18,8,148, 8,6,84,5,85,110,85,65,164,0,145,0,5,226,0,37,242,15,57,0,20,85,19,129, 2,129,16,80,85,255,19,163,16,5,38,4,38,149,24,37,132,117,4,85,85,161, 170,165,0,170,200,170,129,32,159,0,14,84,85,53,0,85,149,106,224,16, 170,169,53,106,193,1,170,214,212,87,0,128,2,166,64,154,5,64,186,154, 64,106,53,0,144,8,66,20,185,64,16,101,230,30,147,0,225,32,40,0,159, 17,161,31,0,0,224,7,160,51,123,233,95,255,130,2,104,114,8,18,10,16, 168,0,127,159,0,2,32,192,15,97,117,233,111,128,48,59,139,144,73,58, 4,0,80,58,16,252,7,0,160,16,1,8,84,85,1,0,153,0,80,85,48,5,0,4,162, 0,3,84,85,17,65,0,16,24,84,85,65,0,64,101,16,72,196,0,128,8,1,0,16, 8,221,84,128,2,242,7,8,4,16,146,7,8,162,4,16,64,161,0,9,64,5,50,223, 1,161,8,136,16,4,166,16,147,0,161,14,73,255,97,65,53,2,40,2,40,2,31, 40,0,64,85,18,7,27,177,6,255,19,5,27,193,31,17,39,19,39,239,19,39,19, 39,1,18,9,25,251,195,47,17,7,25,1,17,73,8,109,17,9,8,17,9,8,17,9,251, 8,17,5,218,63,159,0,1,135,63,21,8,109,17,69,8,17,5,8,17,5,187,8,17, 5,8,17,3,85,159,0,13,220,168,47,194,1,5,72,192,36,193,32,5,8,102,1, 80,98,69,8,4,128,2,24,110,8,16,32,24,9,4,235,95,151,0,63,40,0,32,232, 48,7,55,99,55,254,67,55,67,55,3,23,193,31,135,32,188,81,192,0,69,160, 0,159,0,6,129,4,1,105,65,170,106,120,90,85,169,169,170,153,56,128,2, 166,170,56,80,154,170,168,56,80,106,5,165,192,0,85,85,1,10,84,85,1, 0,145,0,8,192,0,0,40,0,20,0,80,85,5,0,193,4,162,0,195,2,84,85,17,0, 16,81,32,24,18,40,128,2,65,0,64,40,33,170,74,32,66,96,1,1,137,0,0,168, 169,170,0,2,1,137,16,242,7,168,166,170,0,2,4,132,16,81,16,168,154,170, 32,2,160,16,64,64,17,169,106,165,106,118,169,106,160,1,161,8,136,16, 4,166,16,195,2,219,16,116,101,64,21,36,0,161,14,108,40,0,81,40,0,81, 8,0,127,64,85,50,7,51,7,53,5,255,51,7,20,6,19,7,19,7,186,19,7,1,18, 9,17,9,2,247,0,196,47,17,39,1,25,24,2,182,24,1,169,24,1,169,24,1,254, 169,24,1,21,210,63,148,0,17,121,237,8,128,34,3,65,21,8,65,69,182,8, 65,165,56,1,165,24,1,238,165,24,1,19,85,159,0,13,227,83,195,33,172, 8,56,64,192,36,73,224,0,53,168,102,169,90,192,32,55,168,166,128,2,8, 103,168,154,16,8,169,106,113,129,48,13,197,31,32,0,168,170,129,92,231, 14,80,227,192,30,199,33,227,4,131,4,85,85,81,133,20,25,134,16,170,169, 86,225,1,118,170,166,155,128,2,24,170,154,32,24,165,160,16,69,128,1, 170,153,0,150,170,86,136,12,69,93,143,35,9,89,192,0,73,48,131,63,165, 0,106,255,84,101,128,2,82,5,16,224,46,3,0,129,48,105,85,1,10,84,85, 1,0,163,0,85,160,1,153,21,224,0,20,0,3,147,0,85,85,129,148,1,66,64, 85,85,85,64,0,7,1,106,0,170,170,106,32,128,4,6,242,7,42,1,170,170,42, 0,128,2,157,4,113,42,4,64,0,64,16,60,81,42,16,0,48,0,146,8,42,205,64, 0,48,1,0,165,16,131,16,20,174,6,147,0,16,10,64,224,15,3,21,219,0,161, 14,24,0,1,24,0,1,255,24,177,24,27,165,16,21,5,21,9,255,17,3,23,3,23, 3,23,3,255,23,3,25,3,23,3,23,10,63,162,0,85,85,25,1,25,33,9,254,17, 9,17,11,17,3,159,0,24,128,8,127,0,42,4,81,9,65,9,65,216,57,1,27,1,160, 10,31,26,42,0,237,170,192,0,23,128,32,86,25,0,90,191,25,0,106,25,5, 239,27,7,128,28,224,36,95,202,2,40,59,170,225,0,56,129,6,57,254,129, 2,57,1,26,225,48,240,46,146,0,144,40,112,85,21,213,1,111,1,129,4,86, 85,64,57,85,106,170,165,0,128,64,176,8,170,169,1,54,170,170,169,106, 85,170,166,20,54,170,170,166,128,2,154,54,170,96,170,154,0,154,8,106, 85,1,12,84,85,169,170,163,0,147,0,85,32,85,166,0,3,148,0,0,0,4,150, 0,85,85,154,10,3,168,0,10,0,0,170,10,85,85,106,128,2,3,104,2,0,0,106, 2,18,85,85,170,1,3,168,1,128,4,165,1,128,2,4,3,168,4,112,4,74,16,16, 3,168,16,16,16,16,145,64,3,169,64,193,1,169,170,86,183,164,16,147,0, 166,160,14,137,16,154,32,57,254,33,57,34,56,2,24,2,24,238,170,226,14, 25,165,16,170,129,12,48,5,221,20,36,5,40,128,2,33,5,104,219,96,33,5, 40,36,5,40,36,105,5,40,36,53,41,130,1,137,2,4,161,0,84,85,137,2,168, 129,12,2,68,4,0,49,85,85,4,2,20,67,0,16,50,85,85,16,0,1,194,161,14, 165,16,1,64,0,0,1,81,63,85,85,0,2,192,1,146,8,128,2,50,247,96,114,0, 18,32,64,161,0,0,8,18,0,64,5,0,115,84,85,176,129,240,3,168,160,14,35, 85,85,21,55,85,85,85,21,161,16,41,18,242,7,27,32,85,85,105,8,113,41, 8,111,65,41,8,65,41,56,1,19,149,208,12,154,0,162,2,165,0,128,240,5, 130,150,192,60,91,170,2,101,168,194,3,229,79,51,170,1,104,224,7,135, 16,0,4,130,2,49,102,0,16,114,6,0,64,105,183,17,8,149,194,0,167,13,40, 224,65,237,15,246,153,0,128,50,161,16,132,32,130,48,84,137,16,80,222, 80,105,80,64,9,67,244,94,144,0,152,130,208,9,84,85,135,28,130,78,2, 170,254,0,165,0,130,2,56,132,4,54,129,64,160,74,238,6,21,97,32,18,5, 17,32,192,66,5,129,16,85,85,1,12,84,85,169,170,165,0,145,0,85,34,85, 166,0,3,150,0,0,192,0,16,85,85,154,10,3,170,10,0,2,0,170,10,85,85,106, 10,5,38,0,0,106,128,2,170,1,5,128,4,181,1,96,4,37,16,4,16,16,172,37, 16,16,16,64,37,193,1,169,109,170,86,166,16,145,0,166,160,14,137,16, 154,255,160,12,89,65,89,2,24,2,24,255,2,24,227,14,25,167,16,19,37,21, 255,37,21,39,19,7,19,7,19,255,7,19,7,21,5,21,3,23,215,3,23,4,2,16,2, 163,15,3,255,21,5,21,5,21,53,7,19,220,7,17,4,2,163,0,192,5,128,14,170, 127,2,106,116,48,72,51,71,51,250,71,51,7,195,15,195,0,149,0,149,64, 16,169,85,4,84,165,0,21,84,85,101,85,20,64,91,162,10,117,2,208,128, 34,162,14,36,106,224,3,0,1,0,163,4,37,66,129,2,4,0,16,37,30,2,16,0, 64,21,2,136,16,147,0,126,170,2,22,225,11,192,28,111,6,192,3,161,16, 132,1,117,42,1,0,84,137,16,42,45,4,0,80,105,42,193,15,104,42,189,0, 25,129,226,0,135,32,195,31,135,14,42,227,193,14,160,64,165,0,130,2, 10,170,9,37,157,128,16,224,54,170,6,37,80,49,18,216,37,0,17,66,37,1, 85,85,1,10,84,85,169,170,165,0,170,192,0,21,85,85,166,170,3,150,128, 2,150,48,48,154,170,3,147,0,85,85,106,167,170,5,170,16,85,85,246,7, 145,8,254,49,37,82,48,37,82,48,38,3,85,105,170,106,169,170,86,166,16, 111,129,16,166,54,67,154,54,147,0,161,14,63,73,170,169,56,1,17,57,17, 127,57,106,7,35,7,35,5,37,255,5,37,23,3,24,2,28,195,30,255,8,23,37, 5,21,3,23,3,255,23,5,21,6,20,10,229,46,24,255,5,23,35,7,17,9,17,9,246, 19,7,20,6,20,6,5,20,238,18,5,19,9,169,130,30,179,8,159,0,10,131,104, 166,0,168,85,85,169,104,128,17,67,53,104,192,0,169,85,64,4,69,26,128, 2,5,168,4,167,47,176,14,153,135,16,124,170,106,16,74,131,32,159,0,46, 229,17,80,13,84,168,4,0,80,73,160,0,86,218,41,195,32,43,86,228,44,15, 8,72,54,52,64,0,0,176,32,7,41,217,1,85,6,64,84,0,4,0,4,239,111,10,129, 48,0,85,85,1,8,80,85,5,0,161,0,165,170,0,170,170,165,0,149,170,85,85, 129,0,152,0,21,0,85,85,16,0,133,3,19,85,85,64,0,5,96,164,192,0,128, 6,1,1,170,169,1,128,164,169,128,2,4,1,170,166,1,128,201,166,16,242, 7,170,154,1,128,154,128,16,210,7,170,106,149,106,170,106,27,128,106, 5,0,163,16,133,16,4,161,10,121,40,16,22,147,0,161,14,41,0,1,153,19, 5,0,4,19,5,0,16,159,19,5,0,64,19,7,19,7,255,25,1,21,5,23,3,19,7,255, 19,7,19,7,19,9,17,9,255,25,195,31,17,7,21,5,17,9,252,17,9,17,9,17,5, 199,45,128,123,170,160,192,0,233,63,159,0,2,197,47,85,176,20,182,7, 161,16,149,120,1,149,24,1,225,149,24,1,27,160,170,170,0,200,17,159, 0,14,231,79,0,85,9,170,169,204,106,192,32,7,170,166,128,2,8,170,204, 154,96,56,170,106,65,26,170,143,10,140,32,32,0,40,198,1,193,15,160, 6,170,143,36,0,22,170,192,95,170,24,170,32,170,170,24,170,32,170,24, 149,162,16,124,165,170,165,0,128,64,194,12,147,0,144,36,85,59,149,85, 21,245,1,78,129,4,80,192,0,255,131,63,165,0,193,30,57,65,57,128,2,224, 46,128,51,129,48,106,85,1,8,84,85,1,0,161,0,169,2,65,169,170,192,0, 0,85,85,4,0,83,3,84,160,1,84,128,2,80,0,3,52,147,0,85,85,148,1,245, 1,85,242,7,1,14,170,1,170,170,168,224,0,64,18,21,170,4,170,170,192, 0,4,48,16,58,161,0,170,16,48,32,0,64,113,109,170,64,0,16,1,128,13,137, 16,4,183,166,16,115,80,6,147,0,64,11,224,15,182,3,21,0,161,14,24,0, 1,24,127,0,64,67,23,67,23,69,21,255,5,21,10,194,15,1,23,3,23,255,3, 23,3,25,1,25,3,23,231,3,23,10,146,8,85,85,25,1,255,25,33,9,17,11,18, 8,17,199,3,159,0,24,0,0,170,0,149,8,160,12,243,8,114,8,98,42,169,2, 194,32,199,22,36,239,15,24,0,170,2,192,0,22,110,192,15,90,25,0,106, 25,141,32,129,48,35,86,85,169,143,12,8,2,170,170,192,22,127,202,2,160, 27,208,3,26,129,6,25,129,2,236,26,225,48,224,46,168,0,86,192,2,147, 0,5,240,84,208,0,193,0,79,5,129,4,89,85,1,170,85,216,7,170,146,8,166, 166,0,170,96,43,85,170,154,54,170,64,85,224,32,64,53,170,64,85 }; static MTB * mtb_KRPKR = NULL; void initMTB_KRPKR() { mtb_KRPKR = new MTB ("KRPKR", 2, 86); mtb_KRPKR->SetPackedData (mtbdata_KRPKR); mtb_KRPKR->Add (A7, A8, C8, WHITE, 235); mtb_KRPKR->Add (A7, A8, C7, WHITE, 248); mtb_KRPKR->Add (A7, A8, D7, WHITE, 134); mtb_KRPKR->Add (A7, A6, A8, WHITE, 226); mtb_KRPKR->Add (A7, B6, A8, WHITE, 226); mtb_KRPKR->Add (B7, B8, D7, WHITE, 24); mtb_KRPKR->Add (B7, B8, D8, WHITE, 13); mtb_KRPKR->Add (B7, B8, E7, WHITE, 19); mtb_KRPKR->Add (B7, A6, B8, WHITE, 244); mtb_KRPKR->Add (B7, A6, C7, WHITE, 135); mtb_KRPKR->Add (B7, B6, B8, WHITE, 223); mtb_KRPKR->Add (B7, C6, B8, WHITE, 226); mtb_KRPKR->Add (B7, C6, A7, WHITE, 229); mtb_KRPKR->Add (B7, C6, E7, WHITE, 24); mtb_KRPKR->Add (C7, C8, A7, WHITE, 54); mtb_KRPKR->Add (C7, C8, A6, WHITE, 51); mtb_KRPKR->Add (C7, C8, E7, WHITE, 31); mtb_KRPKR->Add (C7, C8, E6, WHITE, 31); mtb_KRPKR->Add (C7, C8, F7, WHITE, 23); mtb_KRPKR->Add (D7, D8, B7, WHITE, 83); mtb_KRPKR->Add (D7, D8, C6, WHITE, 97); mtb_KRPKR->Add (D7, D8, E6, WHITE, 67); mtb_KRPKR->Add (D7, D8, F7, WHITE, 38); mtb_KRPKR->Add (D7, C6, D8, WHITE, 247); mtb_KRPKR->Add (A6, A7, C6, WHITE, 287); mtb_KRPKR->Add (A6, A7, C7, WHITE, 244); mtb_KRPKR->Add (A6, A7, C8, WHITE, 236); mtb_KRPKR->Add (A6, A7, D7, WHITE, 216); mtb_KRPKR->Add (A6, B6, A8, WHITE, 191); mtb_KRPKR->Add (A6, B5, A7, WHITE, 283); mtb_KRPKR->Add (B6, B7, D6, WHITE, 18); mtb_KRPKR->Add (B6, B7, D7, WHITE, 13); mtb_KRPKR->Add (B6, B7, D8, WHITE, 13); mtb_KRPKR->Add (B6, B8, A6, WHITE, 287); mtb_KRPKR->Add (B6, B8, C6, WHITE, 122); mtb_KRPKR->Add (B6, A6, B8, WHITE, 175); mtb_KRPKR->Add (B6, A6, C8, WHITE, 122); mtb_KRPKR->Add (B6, C6, B8, WHITE, 197); mtb_KRPKR->Add (C6, C7, A6, WHITE, 192); mtb_KRPKR->Add (C6, C7, A7, WHITE, 123); mtb_KRPKR->Add (C6, C7, E7, WHITE, 17); mtb_KRPKR->Add (C6, B6, C8, WHITE, 128); mtb_KRPKR->Add (C6, D6, C8, WHITE, 197); mtb_KRPKR->Add (A7, A8, C8, BLACK, 80); mtb_KRPKR->Add (A7, A8, C7, BLACK, 181); mtb_KRPKR->Add (A7, A8, D7, BLACK, 75); mtb_KRPKR->Add (A7, A6, A8, BLACK, 282); mtb_KRPKR->Add (A7, B6, A8, BLACK, 249); mtb_KRPKR->Add (B7, B8, D7, BLACK, 266); mtb_KRPKR->Add (B7, B8, D8, BLACK, 251); mtb_KRPKR->Add (B7, B8, E7, BLACK, 211); mtb_KRPKR->Add (B7, A6, B8, BLACK, 291); mtb_KRPKR->Add (B7, A6, C7, BLACK, 350); mtb_KRPKR->Add (B7, B6, B8, BLACK, 275); mtb_KRPKR->Add (B7, C6, B8, BLACK, 296); mtb_KRPKR->Add (B7, C6, A7, BLACK, 305); mtb_KRPKR->Add (B7, C6, E7, BLACK, 134); mtb_KRPKR->Add (C7, C8, A7, BLACK, 281); mtb_KRPKR->Add (C7, C8, A6, BLACK, 265); mtb_KRPKR->Add (C7, C8, E7, BLACK, 281); mtb_KRPKR->Add (C7, C8, E6, BLACK, 245); mtb_KRPKR->Add (C7, C8, F7, BLACK, 217); mtb_KRPKR->Add (D7, D8, B7, BLACK, 293); mtb_KRPKR->Add (D7, D8, C6, BLACK, 332); mtb_KRPKR->Add (D7, D8, E6, BLACK, 345); mtb_KRPKR->Add (D7, D8, F7, BLACK, 280); mtb_KRPKR->Add (D7, C6, D8, BLACK, 306); mtb_KRPKR->Add (A6, A7, C6, BLACK, 267); mtb_KRPKR->Add (A6, A7, C7, BLACK, 254); mtb_KRPKR->Add (A6, A7, C8, BLACK, 265); mtb_KRPKR->Add (A6, A7, D7, BLACK, 215); mtb_KRPKR->Add (A6, B6, A8, BLACK, 268); mtb_KRPKR->Add (A6, B5, A7, BLACK, 263); mtb_KRPKR->Add (B6, B7, D6, BLACK, 264); mtb_KRPKR->Add (B6, B7, D7, BLACK, 236); mtb_KRPKR->Add (B6, B7, D8, BLACK, 244); mtb_KRPKR->Add (B6, B8, A6, BLACK, 265); mtb_KRPKR->Add (B6, B8, C6, BLACK, 286); mtb_KRPKR->Add (B6, A6, B8, BLACK, 264); mtb_KRPKR->Add (B6, A6, C8, BLACK, 331); mtb_KRPKR->Add (B6, C6, B8, BLACK, 276); mtb_KRPKR->Add (C6, C7, A6, BLACK, 387); mtb_KRPKR->Add (C6, C7, A7, BLACK, 305); mtb_KRPKR->Add (C6, C7, E7, BLACK, 246); mtb_KRPKR->Add (C6, B6, C8, BLACK, 305); mtb_KRPKR->Add (C6, D6, C8, BLACK, 280); } ////////////////////////////////////////////////////////////////////// // // KPPKP static const byte mtbdata_KPPKP[1992] = { 1,32,80,85,147,0,64,85,65,85,244,69,224,0,5,143,2,255,63,77,85,63,45, 0,188,80,143,16,44,69,194,0,137,12,47,0,139,4,1,159,84,107,1,80,143, 32,44,31,2,229,83,231,6,205,57,137,2,1,5,80,15,62,93,0,236,29,192,16, 133,10,1,0,150,22,15,96,65,136,85,15,10,106,85,105,95,3,1,35,80,85, 149,0,64,85,65,192,0,227,7,143,2,255,63,205,15,0,65,85,81,60,148,139, 6,59,0,80,143,16,48,84,143,18,11,85,201,85,231,85,81,1,84,27,1,80,141, 143,32,60,79,14,1,84,0,152,22,17,0,144,152,20,31,94,64,85,31,34,1,32, 80,85,147,0,5,85,21,85,58,1,85,0,228,1,143,2,255,47,79,69,44,151,85, 47,29,5,80,44,64,143,16,28,15,18,197,141,6,123,60,64,21,64,47,32,81, 85,60,84,60,64,43,84,44,80,82,12,64,143,32,60,85,45,84,0,150,20,159, 69,81,80,0,245,105,129,12,1,150,22,64,15,97,85,15,18,1,32,80,85,145, 0,1,84,0,84,155,1,160,0,0,84,242,1,143,2,96,85,63,45,31,143,16,45,69, 85,64,192,10,224,10,35,144,0,171,63,12,142,10,80,44,64,44,0,143,16, 12,85,31,2,65,160,0,64,230,1,0,111,14,80,120,44,64,44,162,16,47,4,195, 64,85,85,255,81,0,159,0,6,161,15,62,135,2,49,160,16,253,58,96,58,0, 143,32,14,253,33,133,18,81,107,164,13,65,198,35,131,8,1,21,85,18,255, 224,48,134,12,17,48,134,2,164,16,143,48,24,139,17,254,197,36,85,128, 66,162,8,70,192,32,225,32,131,2,31,9,84,10,84,66,148,56,34,146,16,253, 40,60,197,27,47,2,1,41,1,65,240,162,16,8,226,48,138,12,54,41,84,42, 112,84,41,98,74,32,1,32,64,85,145,0,0,84,1,84,59,5,84,0,160,0,242,1, 143,2,91,69,143,16,109,75,161,16,5,140,4,21,85,49,1,16,74,51,85,31, 13,0,80,28,64,28,70,0,0,143,18,11,5,84,21,26,159,0,2,241,5,196,0,134, 16,40,16,80,5,84,191,129,25,22,64,16,224,4,22,160,16,15,8,126,159,0, 4,81,140,2,161,53,7,225,36,53,34,103,80,69,230,9,18,64,1,135,4,3,153, 31,29,15,24,64,85,17,135,2,0,85,123,1,17,211,91,131,14,164,16,15,70, 65,225,49,224,86,32,224,37,23,42,84,41,84,255,5,146,16,136,2,31,63, 7,21,117,132,14,16,8,169,84,37,2,1,32,80,85,145,0,5,85,21,84,57,1,84, 0,160,0,242,1,129,2,85,17,143,18,55,85,85,69,228,1,53,193,0,59,52,84, 21,161,7,228,7,19,21,128,4,3,165,4,5,80,21,80,5,84,161,0,111,23,1,113, 4,69,140,16,161,13,57,255,1,197,0,51,227,15,134,12,21,37,20,255,8,18, 15,22,129,7,55,149,0,135,32,231,4,217,133,10,242,0,71,64,41,128,2,0, 0,255,24,34,138,16,159,0,18,31,8,84,200,9,0,135,160,16,72,0,0,0,4,11, 51,245,10,211,24,159,0,34,132,32,91,64,60,0,122,60,0,47,28,207,33,10, 129,66,138,2,84,60,91,80,21,33,0,25,32,0,47,56,247,233,45,132,96,168, 16,2,59,80,224,15,54,254,141,10,143,2,30,63,2,201,32,2,168,16,132,96, 0,1,42,160,170,145,0,0,160,0,2,16,213,0,226,1,143,2,224,10,76,42,143, 8,14,168,81,76,160,76,128,143,16,28,170,170,138,106,12,170,12,30,168, 28,160,28,191,128,143,32,28,42,192,0,27,159,0,0,28,160,16,253,26,64, 26,64,143,32,24,47,20,133,6,128,255,0,80,224,48,134,10,81,96,134,2, 1,151,16,15,70,128,170,2,168,120,1,43,243,105,170,21,160,0,22,1,128, 136,2,222,136,14,77,15,34,130,160,16,58,0,26,174,170,23,85,160,0,86, 160,2,133,8,135,2,1,35,160,170,147,0,2,170,0,194,0,213,5,143,2,255, 63,77,10,60,42,60,170,86,141,8,168,60,160,12,128,143,16,28,159,0,2, 42,130,170,128,47,10,168,44,160,44,175,128,47,32,162,143,18,11,170, 8,34,192,32,252,42,48,42,48,143,32,42,159,0,0,135,6,162,191,170,66, 168,136,10,49,245,105,129,2,49,175,150,22,15,14,162,192,27,138,170, 33,182,9,120,240,139,6,12,194,32,106,15,17,1,32,160,170,145,0,0,168, 10,168,56,0,168,2,192,0,242,1,143,2,79,21,168,53,26,168,21,143,14,89, 143,16,14,10,140,4,42,83,143,12,30,160,60,128,12,0,0,95,12,231,160, 16,105,49,138,8,170,170,44,193,0,95,42,160,28,128,28,80,31,8,159,0, 14,215,16,139,14,31,2,160,28,128,28,194,32,30,31,10,138,170,136,31, 5,225,84,194,16,132,2,128,128,140,18,5,170,10,160,5,160,195,2,64,134, 12,128,21,128,2,48,61,22,0,21,162,16,143,32,20,227,98,151,0,128,239, 192,19,139,16,96,75,170,66,148,7,130,12,254,65,145,21,85,178,32,47, 4,129,10,180,5,79,3,60,149,170,154,192,0,103,19,136,58,170,210,26,32, 60,168,60,168,2,15,1,1,0,160,170,170,170,0,160,2,120,160,0,160,0,225, 0,240,1,143,2,79,5,160,37,6,160,5,56,10,168,139,4,42,107,60,0,63,14, 141,14,128,60,0,225,1,51,136,16,0,4,59,160,0,0,168,224,10,238,192,0, 17,160,16,10,0,194,14,8,143,16,16,236,128,92,18,88,0,9,159,0,4,0,111, 170,2,162,15,15,3,168,15,15,112,10,212,96,26,134,2,128,160,0,138,224, 2,138,124,170,130,160,1,159,0,2,194,68,227,14,18,128,255,170,81,137, 36,142,52,17,226,48,132,20,164,16,199,134,64,81,134,2,160,170,162,164, 13,133,1,124,155,0,128,160,19,32,164,33,164,35,8,5,63,168,6,168,137, 42,130,76,1,192,32,134,2,219,164,16,15,2,143,30,0,162,194,30,105,128, 196,15,224,167,51,92,160,50,5,21,160,22,160,255,21,160,16,225,32,136, 2,146,14,95,2,129,14,229,48,199,89,139,16,39,5,170,6,192,0,224,16,208, 59,226,82,136,12,160,53,85,160,86,88,160,85,160,0,22,132,14,137,2,1, 0,32,170,10,170,0,160,0,108,160,2,160,0,129,1,170,144,0,143,2,78,21, 16,160,21,160,22,52,10,170,42,85,170,10,140,4,42,143,14,46,128,60,0, 81,140,16,0,7,170,128,32,10,160,10,58,11,168,42,74,161,12,138,10,168, 15,15,231,128,12,162,16,8,0,20,72,1,207,17,135,14,159,0,1,168,2,162, 0,36,228,1,255,52,20,1,22,160,16,26,112,10,139,56,159,0,22,34,170,2, 130,1,128,16,25,193,15,138,168,10,3,132,36,2,162,95,4,168,2,128,129, 21,132,20,102,132,64,223,1,134,2,159,0,30,128,160,0,163,31,228,51,48, 135,231,31,128,12,168,21,168,22,129,16,160,16,238,134,78,36,143,2,2, 31,34,130,88,18,32,212,162,192,0,6,168,2,128,81,85,26,160,85,160,86, 164,14,95,2,149,160,0,215,150,136,10,95,30,21,0,22,160,18,161,16,242, 136,16,224,48,106,114,36,161,86,48,128,84,32,1,0,160,170,170,170,0, 168,10,22,160,0,160,2,192,0,0,241,1,129,2,18,168,0,168,2,0,0,168,41, 49,34,170,2,17,36,10,168,138,160,0,34,160,129,8,10,160,42,162,208,42, 19,4,10,132,4,21,128,26,6,128,21,128,2,128,2,192,12,9,203,0,160,0,1, 10,170,139,16,42,160,2,173,26,1,170,225,15,34,24,81,138,151,24,81,42, 162,66,128,2,128,4,62,4,0,16,129,14,160,12,4,35,15,8,108,168,170,139, 32,192,0,160,226,15,53,170,44,170,128,170,60,170,81,52,128,102,10,128, 193,20,136,16,0,21,2,54,255,0,57,159,0,14,49,19,132,2,224,10,19,237, 36,22,36,1,128,229,15,132,14,0,183,161,28,8,0,17,9,138,192,26,255,17, 4,245,194,68,136,2,225,4,163,35,147,0,5,128,40,5,172,196,15,130,12, 168,129,60,10,160,16,132,2,160,190,26,129,14,0,136,64,50,143,32,6,184, 9,68,248,138,138,16,130,66,41,160,29,42,160,26,255,160,34,228,11,130, 78,33,160,16,137,2,49,254,133,12,153,17,79,14,128,30,192,0,140,16,192, 104,58,255,160,49,163,16,132,94,49,242,24,133,2,145,0,56,50,170,26, 192,0,136,24,63,30,168,26,127,168,21,230,61,133,16,224,45,43,162,16, 138,112,0,144,0 }; static MTB * mtb_KPPKP = NULL; void initMTB_KPPKP() { mtb_KPPKP = new MTB ("KPPKP", 2, 12); mtb_KPPKP->SetPackedData (mtbdata_KPPKP); mtb_KPPKP->Add (A6, B5, A7, WHITE, 86); mtb_KPPKP->Add (A5, B6, A7, WHITE, 70); mtb_KPPKP->Add (A5, B5, A7, WHITE, 86); mtb_KPPKP->Add (A4, B5, A7, WHITE, 186); mtb_KPPKP->Add (A5, B4, A6, WHITE, 163); mtb_KPPKP->Add (A4, B4, A6, WHITE, 195); mtb_KPPKP->Add (A6, B5, A7, BLACK, 132); mtb_KPPKP->Add (A5, B6, A7, BLACK, 109); mtb_KPPKP->Add (A5, B5, A7, BLACK, 182); mtb_KPPKP->Add (A4, B5, A7, BLACK, 248); mtb_KPPKP->Add (A5, B4, A6, BLACK, 226); mtb_KPPKP->Add (A4, B4, A6, BLACK, 309); } ////////////////////////////////////////////////////////////////////// static void initMTBs (void) { initMTB_KQK(); initMTB_KRK(); initMTB_KPK(); initMTB_KQKQ(); initMTB_KQKP(); initMTB_KRKP(); initMTB_KPKP(); initMTB_KRPKR(); initMTB_KPPKP(); } #endif // SCID_MTBDATA_H ////////////////////////////////////////////////////////////////////// // EOF: mtbdata.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/engine.cpp0000644000175000017500000025354111727223077016210 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: engine.cpp // Engine class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2002-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "attacks.h" #include "engine.h" #include "recog.h" // The Engine class implements the Scid built-in chess engine. // See engine.h for details. // Evaluation constants: static const int Infinity = 32000; static const int KingValue = 10000; static const int QueenValue = 900; static const int RookValue = 500; static const int BishopValue = 300; static const int KnightValue = 300; static const int PawnValue = 100; // EndgameValue, MiddlegameValue: // If the combined material score of pieces on both sides (excluding // kings and pawns) is less than this value, we are in an endgame. // If it is greater than MiddlegameValue, we use middlegame scoring. // For anything in between, the score will be a weighted average of // the middlegame and endgame scores. // static const int EndgameValue = 2400; static const int MiddlegameValue = 4000; // Bonuses and penalties: // static const int RookHalfOpenFile = 8; static const int RookOpenFile = 20; static const int RookPasserFile = 25; // Rook on passed pawn file. static const int RookOnSeventh = 25; // Rook on its 7th rank. static const int DoubledRooks = 20; // Two rooks on same file. static const int RookEyesKing = 12; // Attacks squares near enemy king. static const int KingTrapsRook = 35; // E.g. King on f1, Rook on h1 static const int DoubledPawn = 8; static const int IsolatedPawn = 16; static const int BackwardPawn = 10; // Pawn at base of pawn chain. static const int DispersedPawn = 10; // Not in pawn chain/duo. (Unused) static const int BlockedHomePawn = 15; // Blocked pawn on d2/e2/d7/e7. static const int BishopPair = 25; // Pair of bishops. static const int BishopEyesKing = 12; // Bishop targets enemy king. static const int BishopTrapped = 120; // E.g. Bxa7? ...b6! static const int KnightOutpost = 15; // 4th/5th/6th rank outpost. static const int KnightBadEndgame = 30; // Enemy pawns on both wings. static const int BadPieceTrade = 80; // Bad trade, e.g. minor for pawns. static const int CanCastle = 10; // Bonus for castling rights. static const int Development = 8; // Moved minor pieces in opening. static const int CentralPawnPair = 15; // For d4/d5 + e4/e5 pawns. static const int CoverPawn = 12; // Pawn cover for king. static const int PassedPawnRank[8] = { // 1 2 3 4 5 6 7 8th rank 0, 10, 15, 25, 50, 80, 120, 0 }; // Bishops (and rooks in endings) need to be mobile to be useful: static const int BishopMobility[16] = { // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -20, -15, -10, -6, -3, 0, 3, 6, 9, 12, 15, 15, 15, 15, 15, 15 }; static const int RookEndgameMobility[16] = { // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -25, -20, -15, -10, -5, 2, 0, 2, 4, 6, 8, 8, 8, 8, 8, 8 }; // Piece distance to enemy king bonuses: 1 2 3 4 5 6 7 static const int KnightKingDist [8] = { 0, 10, 14, 10, 5, 2, 0, 0 }; static const int BishopKingDist [8] = { 0, 8, 6, 4, 2, 1, 0, 0 }; static const int RookKingDist [8] = { 0, 8, 6, 4, 2, 1, 0, 0 }; static const int QueenKingDist [8] = { 0, 15, 12, 9, 6, 3, 0, 0 }; // LazyEvalMargin // A score that is further than this margin outside the current // alpha-beta window after material evaluation is returned as-is. // A larger margin is used for endgames (especially pawn endings) // since positional bonuses can be much larger for them. static const int LazyEvalMargin = 250; static const int LazyEvalEndingMargin = 400; static const int LazyEvalPawnEndingMargin = 800; // NullMoveReduction: // The default reduced depth for a null move search. static const int NullMoveReduction = 2; // AspirationWindow: // The window around the score of the previous depth iteration // when searching at the root. static const int AspirationWindow = 35; // PawnSquare: // Gives bonuses to advanced pawns, especially in the centre. static const int PawnSquare [64] = { 0, 0, 0, 0, 0, 0, 0, 0, // A8 - H8 4, 8, 12, 16, 16, 12, 8, 4, 4, 8, 12, 16, 16, 12, 8, 4, 3, 6, 9, 12, 12, 9, 6, 3, 2, 4, 6, 8, 8, 6, 4, 2, 1, 2, 3, 4, 4, 3, 2, 1, 0, 0, 0, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // A1 - H1 }; // PawnStorm: // Bonus when side is castled queenside and opponent is // castled kingside. Gives a bonus for own sheltering pawns // and a penalty for pawns on the opposing wing to make them // disposable and encourage them to move forwards. static const int PawnStorm [64] = { 0, 0, 0, 0, 0, 0, 0, 0, // A8 - H8 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 4, 2, 2, 2, 0, 0, 0, 4, 6, 0, 0, 0, 4, 4, 4, 4, 4, -4, -4, -4, 8, 8, 8, 0, 0, -8, -8, -8, 12, 12, 12, 0, 0, -12, -12, -12, 0, 0, 0, 0, 0, 0, 0, 0 // A1 - H1 }; // KnightSquare: // Rewards well-placed knights. static const int KnightSquare [64] = { -24, -12, -6, -6, -6, -6, -12, -24, -8, 0, 0, 0, 0, 0, 0, -8, -6, 5, 10, 10, 10, 10, 5, -6, -6, 0, 10, 10, 10, 10, 0, -6, -6, 0, 5, 8, 8, 5, 0, -6, -6, 0, 5, 5, 5, 5, 0, -6, -6, 0, 0, 0, 0, 0, 0, -8, -10, -8, -5, -6, -6, -6, -6, -10 }; // BishopSquare: // Bonus array for bishops. static const int BishopSquare [64] = { -10, -5, 0, 0, 0, 0, -5, -10, -5, 8, 0, 5, 5, 0, 8, -5, 0, 0, 5, 5, 5, 5, 0, 0, 0, 5, 10, 5, 5, 10, 5, 0, 0, 5, 10, 5, 5, 10, 5, 0, 0, 0, 5, 5, 5, 5, 0, 0, -5, 8, 0, 5, 5, 0, 8, -5, -10, -5, -2, -2, -2, -2, -5, -10 }; // RookFile: // Bonus array for Rooks, by file. static const int /* a b c d e f g h */ RookFile [8] = { 0, 0, 4, 8, 8, 4, 0, 0 }; // QueenSquare: // Bonus array for Queens. static const int QueenSquare [64] = { -5, 0, 0, 0, 0, 0, 0, -5, // A8 - H8 -5, 0, 3, 3, 3, 3, 0, -5, 0, 3, 6, 9, 9, 6, 3, 0, 0, 3, 9, 12, 12, 9, 3, 0, -5, 3, 9, 12, 12, 9, 3, -5, -5, 3, 6, 9, 9, 6, 3, -5, -5, 0, 3, 3, 3, 3, 0, -5, -10, -5, 0, 0, 0, 0, -5, -10 // A1 - H1 }; // KingSquare: // Bonus array for kings in the opening and middlegame. static const int KingSquare [64] = { -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -60, -60, -50, -50, -50, -40, -40, -40, -60, -60, -40, -40, -40, -15, -15, -15, -20, -20, -15, -15, -15, 5, 5, 0, 0, 0, 0, 5, 5, 20, 20, 15, 5, 5, 5, 20, 20 }; // EndgameKingSquare: // Rewards King centralisation in endgames. // TODO: Add separate king square tables for endgames where all // pawns are on one side of the board. static const int KingEndgameSquare [64] = { -10, -5, 0, 5, 5, 0, -5, -10, -5, 0, 5, 10, 10, 5, 0, -5, 0, 5, 10, 15, 15, 10, 5, 0, 5, 10, 15, 20, 20, 15, 10, 5, 5, 10, 15, 20, 20, 15, 10, 5, 0, 5, 10, 15, 15, 10, 5, 0, -5, 0, 5, 10, 10, 5, 0, -5, -10, -5, 0, 5, 5, 0, -5, -10 }; static const int pieceValues [8] = { 0, // Invalid KingValue, QueenValue, RookValue, BishopValue, KnightValue, PawnValue, 0 // Empty }; inline int Engine::PieceValue (pieceT piece) { return pieceValues[piece_Type(piece)]; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // isOutpost // Returns true if the square is on the 4th/5th/6th rank (3rd/4th/5th // for Black) and cannot be attacked by an enemy pawn. static bool isOutpost (const pieceT * board, squareT sq, colorT color) { pieceT enemyPawn = piece_Make (color_Flip(color), PAWN); rankT rank = square_Rank(sq); fyleT fyle = square_Fyle(sq); // Build the list of squares to check for enemy pawns: SquareList squares; if (color == WHITE) { if (rank < RANK_4 || rank > RANK_6) { return false; } if (fyle > A_FYLE) { squares.Add(square_Make(fyle-1,RANK_7)); if (rank == RANK_5) { squares.Add(square_Make(fyle-1,RANK_6)); } } if (fyle < H_FYLE) { squares.Add(square_Make(fyle+1,RANK_7)); if (rank == RANK_5) { squares.Add(square_Make(fyle+1,RANK_6)); } } } else { if (rank < RANK_3 || rank > RANK_5) { return false; } if (fyle > A_FYLE) { squares.Add(square_Make(fyle-1,RANK_2)); if (rank == RANK_4) { squares.Add(square_Make(fyle-1,RANK_3)); } } if (fyle < H_FYLE) { squares.Add(square_Make(fyle+1,RANK_2)); if (rank == RANK_4) { squares.Add(square_Make(fyle+1,RANK_3)); } } } // Now check each square for an enemy pawn: for (uint i=0; i < squares.Size(); i++) { if (board[squares.Get(i)] == enemyPawn) { return false; } } return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::Score // Returns a score in centipawns for the current engine position, // from the perspective of the side to move. int Engine::Score (void) { // Look for a recognized ending with an exact score: int recog = Recognizer::Recognize(&Pos); if (recogFlag(recog) == SCORE_EXACT) { return recogScore(recog); } return Score (-Infinity, Infinity); } static uint nScoreCalls = 0; static uint nScoreFull = 0; inline int Engine::ScoreWhiteMaterial (void) { byte * pieceCount = Pos.GetMaterial(); return pieceCount[WQ] * QueenValue + pieceCount[WR] * RookValue + pieceCount[WB] * BishopValue + pieceCount[WN] * KnightValue + pieceCount[WP] * PawnValue; } inline int Engine::ScoreBlackMaterial (void) { byte * pieceCount = Pos.GetMaterial(); return pieceCount[BQ] * QueenValue + pieceCount[BR] * RookValue + pieceCount[BB] * BishopValue + pieceCount[BN] * KnightValue + pieceCount[BP] * PawnValue; } int Engine::ScoreMaterial (void) { int score = ScoreWhiteMaterial() - ScoreBlackMaterial(); return (Pos.GetToMove() == WHITE) ? score : -score; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::Score // Returns a score in centipawns for the current engine position, // from the perspective of the side to move. // Alpha and beta cutoff scores are specified for performance. If // simple material counting produces a score much lower than alpha // or much greater than beta, the score is returned without // slower square-based evaluation. int Engine::Score (int alpha, int beta) { colorT toMove = Pos.GetToMove(); const byte * pieceCount = Pos.GetMaterial(); const pieceT * board = Pos.GetBoard(); int materialScore[2] = {0, 0}; int allscore[2] = {0, 0}; // Scoring in all positions int endscore[2] = {0, 0}; // Scoring in endgames int midscore[2] = {0, 0}; // Scoring in middlegames int nNonPawns[2] = {0, 0}; // Non-pawns on each side, including kings nScoreCalls++; nNonPawns[WHITE] = Pos.NumNonPawns(WHITE); nNonPawns[BLACK] = Pos.NumNonPawns(BLACK); // First compute material scores: allscore[WHITE] = materialScore[WHITE] = ScoreWhiteMaterial(); allscore[BLACK] = materialScore[BLACK] = ScoreBlackMaterial(); int pieceMaterial = (materialScore[WHITE] - pieceCount[WP] * PawnValue) + (materialScore[BLACK] - pieceCount[BP] * PawnValue); bool inEndgame = false; bool inMiddlegame = false; if (pieceMaterial <= EndgameValue) { inEndgame = true; } if (pieceMaterial >= MiddlegameValue) { inMiddlegame = true; } bool inPawnEndgame = Pos.InPawnEnding(); // Look for a bad trade: minor piece for pawns; Q for R+Pawns; etc. // But only do this if both sides have pawns. if (pieceCount[WP] > 0 && pieceCount[BP] > 0) { uint wminors = pieceCount[WB] + pieceCount[WN]; uint bminors = pieceCount[BB] + pieceCount[BN]; uint wmajors = pieceCount[WR] + (2 * pieceCount[WQ]); uint bmajors = pieceCount[BR] + (2 * pieceCount[BQ]); if (wmajors == bmajors) { if (wminors < bminors) { allscore[WHITE] -= BadPieceTrade; } if (wminors > bminors) { allscore[BLACK] -= BadPieceTrade; } } else if (wminors == bminors) { if (wmajors < bmajors) { allscore[WHITE] -= BadPieceTrade; } if (wmajors > bmajors) { allscore[BLACK] -= BadPieceTrade; } } } // Add the Bishop-pair bonus now, because it is fast and easy: if (pieceCount[WB] >= 2) { allscore[WHITE] += BishopPair; } if (pieceCount[BB] >= 2) { allscore[BLACK] += BishopPair; } // If there are no pawns, a material advantage of only one minor // piece is worth very little so reduce the material score. if (pieceCount[WP] + pieceCount[BP] == 0) { int materialDiff = materialScore[WHITE] - materialScore[BLACK]; if (materialDiff < 0) { materialDiff = -materialDiff; } if (materialDiff == BishopValue || materialDiff == KnightValue) { allscore[WHITE] /= 4; allscore[BLACK] /= 4; } } // Look for a trapped bishop on a7/h7/a2/h2: if (Pos.RankCount (WB, RANK_7) > 0) { if (board[A7] == WB && board[B6] == BP) { allscore[WHITE] -= BishopTrapped; } if (board[H7] == WB && board[G6] == BP) { allscore[WHITE] -= BishopTrapped; } } if (Pos.RankCount (BB, RANK_2) > 0) { if (board[A2] == BB && board[B3] == WP) { allscore[BLACK] -= BishopTrapped; } if (board[H2] == BB && board[G6] == WP) { allscore[BLACK] -= BishopTrapped; } } // Check for a score much worse than alpha or better than beta // which can be returned immediately on the assumption that // a full evaluation could not get inside the alpha-beta range. // If we are in a pawn ending, a much larger margin is used since // huge bonuses can be added for passed pawns in such endgames. int lazyMargin = LazyEvalMargin; if (inEndgame) { lazyMargin = LazyEvalEndingMargin; } if (inPawnEndgame) { lazyMargin = LazyEvalPawnEndingMargin; } int fastScore = allscore[WHITE] - allscore[BLACK]; if (toMove == BLACK) { fastScore = -fastScore; } if (fastScore - lazyMargin > beta) { return fastScore; } if (fastScore + lazyMargin < alpha) { return fastScore; } // Get the pawn structure score next, because it is usually fast: pawnTableEntryT pawnEntry; ScorePawnStructure (&pawnEntry); // Penalise d-file and e-file pawns blocked on their home squares: if (board[D2] == WP && board[D3] != EMPTY) { allscore[WHITE] -= BlockedHomePawn; } if (board[E2] == WP && board[E3] != EMPTY) { allscore[WHITE] -= BlockedHomePawn; } if (board[D7] == BP && board[D6] != EMPTY) { allscore[BLACK] -= BlockedHomePawn; } if (board[E7] == BP && board[E6] != EMPTY) { allscore[BLACK] -= BlockedHomePawn; } // Incentive for side ahead in material to trade nonpawn pieces and // for side behind in material to avoid trades: if (materialScore[WHITE] > materialScore[BLACK]) { int bonus = (5 - nNonPawns[BLACK]) * 5; allscore[WHITE] += bonus; } else if (materialScore[BLACK] > materialScore[WHITE]) { int bonus = (5 - nNonPawns[WHITE]) * 5; allscore[BLACK] += bonus; } // Check again for a score outside the alpha-beta range, using a // smaller fixed margin of error since the pawn structure score // has been added: fastScore = (allscore[WHITE] - allscore[BLACK]) + pawnEntry.score; if (toMove == BLACK) { fastScore = -fastScore; } if (fastScore > beta + 200) { return fastScore; } if (fastScore < alpha - 200) { return fastScore; } nScoreFull++; // Now refine the score with piece-square bonuses: squareT wk = Pos.GetKingSquare(WHITE); squareT bk = Pos.GetKingSquare(BLACK); fyleT wkFyle = square_Fyle(wk); fyleT bkFyle = square_Fyle(bk); // Check if each side should be storming the enemy king: if (!inEndgame) { if (wkFyle <= C_FYLE && bkFyle >= F_FYLE) { midscore[WHITE] += pawnEntry.wLongbShortScore; } else if (wkFyle >= F_FYLE && bkFyle <= C_FYLE) { midscore[WHITE] += pawnEntry.wShortbLongScore; } } // Iterate over the piece for each color: for (colorT c = WHITE; c <= BLACK; c++) { colorT enemy = color_Flip(c); // squareT ownKing = Pos.GetKingSquare(c); squareT enemyKing = Pos.GetKingSquare(enemy); uint npieces = Pos.GetCount(c); squareT * sqlist = Pos.GetList(c); int mscore = 0; // Middlegame score adjustments int escore = 0; // Endgame score adjustments int ascore = 0; // All-position adjustments (middle and endgame) for (uint i = 0; i < npieces; i++) { squareT sq = sqlist[i]; pieceT p = board[sq]; pieceT ptype = piece_Type(p); ASSERT (p != EMPTY && piece_Color(p) == c); squareT bonusSq = (c == WHITE) ? square_FlipRank(sq) : sq; uint rank = RANK_1 + RANK_8 - square_Rank(bonusSq); // Piece-specific bonuses. The use of if-else instead of // a switch statement was observed to be faster since // the most common piece types are handled first. if (ptype == PAWN) { // Most pawn-specific bonuses are in ScorePawnStructure(). // Kings should be close to pawns in endgames: // if (!inMiddlegame) { // escore += 3 * square_Distance (sq, enemyKing) // - 2 * square_Distance (sq, ownKing); // } } else if (ptype == ROOK) { ascore += RookFile[square_Fyle(sq)]; if (rank == RANK_7) { ascore += RookOnSeventh; // Even bigger bonus if rook traps king on 8th rank: bool kingOn8th = (p == WR) ? (bk >= A8) : (wk <= H1); if (kingOn8th) { ascore += RookOnSeventh; } } if (!inEndgame) { mscore += RookKingDist[square_Distance(sq, enemyKing)]; } if (!inMiddlegame) { uint mobility = Pos.Mobility (ROOK, c, sq); escore += RookEndgameMobility [mobility]; } } else if (ptype == KING) { if (Pos.GetCount(c) == 1) { // Forcing a lone king to a corner: ascore += 5 * KingEndgameSquare[bonusSq] - 150; } else { mscore += KingSquare[bonusSq]; escore += KingEndgameSquare[bonusSq]; } } else if (ptype == BISHOP) { ascore += BishopSquare[bonusSq]; ascore += BishopMobility [Pos.Mobility (BISHOP, c, sq)]; // Middlegame bonus for diagonal close to enemy king: if (! inEndgame) { mscore += BishopKingDist[square_Distance(sq, enemyKing)]; // Reward a bishop attacking the enemy king vicinity: int leftdiff = (int)square_LeftDiag(sq) - (int)square_LeftDiag(enemyKing); int rightdiff = (int)square_RightDiag(sq) - (int)square_RightDiag(enemyKing); if ((leftdiff >= -2 && leftdiff <= 2) || (rightdiff >= -2 && rightdiff <= 2)) { mscore += BishopEyesKing; } } } else if (ptype == KNIGHT) { ascore += KnightSquare[bonusSq]; if (!inEndgame) { mscore += KnightKingDist[square_Distance(sq, enemyKing)]; // Bonus for a useful outpost: if (rank >= RANK_4 && !square_IsEdgeSquare(sq) && isOutpost(board, sq, c)) { mscore += KnightOutpost; } } if (!inMiddlegame) { // Penalty for knight in an endgame with enemy // pawns on both wings. pieceT enemyPawn = piece_Make (enemy, PAWN); uint qsidePawns = Pos.FyleCount(enemyPawn, A_FYLE) + Pos.FyleCount(enemyPawn, B_FYLE) + Pos.FyleCount(enemyPawn, C_FYLE); uint ksidePawns = Pos.FyleCount(enemyPawn, F_FYLE) + Pos.FyleCount(enemyPawn, G_FYLE) + Pos.FyleCount(enemyPawn, H_FYLE); if (ksidePawns > 0 && qsidePawns > 0) { escore -= KnightBadEndgame; } } } else /* (ptype == QUEEN) */ { ASSERT (ptype == QUEEN); ascore += QueenSquare[bonusSq]; ascore += QueenKingDist[square_Distance(sq, enemyKing)]; } } allscore[c] += ascore; midscore[c] += mscore; endscore[c] += escore; } // Now reward rooks on open files or behind passed pawns: byte passedPawnFyles = pawnEntry.fyleHasPassers[WHITE] | pawnEntry.fyleHasPassers[BLACK]; for (colorT color = WHITE; color <= BLACK; color++) { pieceT rook = piece_Make (color, ROOK); if (pieceCount[rook] == 0) { continue; } colorT enemy = color_Flip (color); pieceT ownPawn = piece_Make (color, PAWN); pieceT enemyPawn = piece_Make (enemy, PAWN); fyleT enemyKingFyle = square_Fyle (Pos.GetKingSquare(enemy)); int bonus = 0; for (fyleT fyle = A_FYLE; fyle <= H_FYLE; fyle++) { uint nRooks = Pos.FyleCount (rook, fyle); if (nRooks == 0) { continue; } if (nRooks > 1) { bonus += DoubledRooks; } uint passedPawnsOnFyle = passedPawnFyles & (1 << fyle); if (passedPawnsOnFyle != 0) { // Rook is on same file as a passed pawn. // TODO: make bonus bigger when rook is *behind* the pawn. bonus += RookPasserFile; } else if (Pos.FyleCount (ownPawn, fyle) == 0) { // Rook on open or half-open file: if (Pos.FyleCount (enemyPawn, fyle) == 0) { bonus += RookOpenFile; } else { bonus += RookHalfOpenFile; } // If this open/half-open file leads to a square adjacent // to the enemy king, give a further bonus: int fdiff = (int)fyle - (int)enemyKingFyle; if (fdiff >= -1 && fdiff < 1) { bonus += RookEyesKing; } } } allscore[color] += bonus; } // King safety: if (! inEndgame) { if (pieceCount[BQ] > 0) { if (Pos.GetCastling(WHITE,KSIDE)) { midscore[WHITE] += CanCastle; } if (Pos.GetCastling(WHITE,QSIDE)) { midscore[WHITE] += CanCastle; } } if (pieceCount[WQ] > 0) { if (Pos.GetCastling(BLACK,KSIDE)) { midscore[BLACK] += CanCastle; } if (Pos.GetCastling(BLACK,QSIDE)) { midscore[BLACK] += CanCastle; } } // Bonus for pawn cover in front of a castled king. Actually we // also include bishops because they are important for defence. if (square_Rank(wk) == RANK_1 && wk != D1 && wk != E1) { uint nCoverPawns = 0; pieceT p = board[square_Move (wk, UP_LEFT)]; if (p == WP || p == WB) { nCoverPawns++; } p = board[square_Move (wk, UP)]; if (p == WP || p == WB) { nCoverPawns++; } p = board[square_Move (wk, UP_RIGHT)]; if (p == WP || p == WB) { nCoverPawns++; } midscore[WHITE] += CoverPawn * nCoverPawns; if ((wk == F1 || wk == G1) && (board[G1] == WR || board[H1] == WR || board[H2] == WR)) { midscore[WHITE] -= KingTrapsRook; } if ((wk == C1 || wk == B1) && (board[B1] == WR || board[A1] == WR || board[A2] == WR)) { midscore[WHITE] -= KingTrapsRook; } } if (square_Rank(bk) == RANK_8 && bk != D8 && bk != E8) { uint nCoverPawns = 0; pieceT p = board[square_Move (bk, DOWN_LEFT)]; if (p == BP || p == BB) { nCoverPawns++; } p = board[square_Move (bk, DOWN)]; if (p == BP || p == BB) { nCoverPawns++; } p = board[square_Move (bk, DOWN_RIGHT)]; if (p == BP || p == BB) { nCoverPawns++; } midscore[BLACK] += CoverPawn * nCoverPawns; if ((bk == F8 || bk == G8) && (board[G8] == BR || board[H8] == BR || board[H7] == BR)) { midscore[BLACK] -= KingTrapsRook; } if ((bk == C8 || bk == B8) && (board[B8] == BR || board[A8] == BR || board[A7] == BR)) { midscore[BLACK] -= KingTrapsRook; } } // Pawn centre: if ((board[D4] == WP || board[D5] == WP) && (board[E4] == WP || board[E5] == WP)) { midscore[WHITE] += CentralPawnPair; } if ((board[D4] == BP || board[D5] == BP) && (board[E4] == BP || board[E5] == BP)) { midscore[BLACK] += CentralPawnPair; } // Minor pieces developed: if (board[B1] != WN) { midscore[WHITE] += Development; } if (board[C1] != WB) { midscore[WHITE] += Development; } if (board[F1] != WB) { midscore[WHITE] += Development; } if (board[G1] != WN) { midscore[WHITE] += Development; } if (board[B8] != BN) { midscore[BLACK] += Development; } if (board[C8] != BB) { midscore[BLACK] += Development; } if (board[F8] != BB) { midscore[BLACK] += Development; } if (board[G8] != BN) { midscore[BLACK] += Development; } } // Work out the middlegame and endgame scores including pawn structure // evaluation, with a larger pawn structure weight in endgames: int baseScore = allscore[WHITE] - allscore[BLACK]; int mgScore = baseScore + midscore[WHITE] - midscore[BLACK]; int egScore = baseScore + endscore[WHITE] - endscore[BLACK]; mgScore += pawnEntry.score; egScore += (pawnEntry.score * 5) / 4; // Scale down the endgame score for bishops of opposite colors, if both // sides have the same non-pawn material: if (pieceCount[WB] == 1 && pieceCount[BB] == 1) { if (Pos.SquareColorCount(WB,WHITE) != Pos.SquareColorCount(BB,WHITE)) { if (pieceCount[WQ] == pieceCount[BQ] && pieceCount[WR] == pieceCount[BR] && pieceCount[WN] == pieceCount[BN]) { egScore = egScore * 5 / 8; } } } // Negate scores for Black to move: if (toMove == BLACK) { mgScore = -mgScore; egScore = -egScore; } // Determine the final score from the middlegame and endgame scores: int finalScore = 0; if (inMiddlegame) { finalScore = mgScore; // Use the middlegame score only. } else if (inEndgame) { finalScore = egScore; // Use the endgame score only. } else { // The final score is a weighted mean of the two scores: int midpart = (pieceMaterial - EndgameValue) * mgScore; int endpart = (MiddlegameValue - pieceMaterial) * egScore; finalScore = (endpart + midpart) / (MiddlegameValue - EndgameValue); } return finalScore; } static uint nPawnHashProbes = 0; static uint nPawnHashHits = 0; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::ScorePawnStructure // Fill in the provided pawnTableEntryT structure with pawn structure // scoring information, using the pawn hash table wherever possible. void Engine::ScorePawnStructure (pawnTableEntryT * pawnEntry) { nPawnHashProbes++; uint pawnhash = Pos.PawnHashValue(); // We only use 32-bit hash values, so without further safety checks // the rate of false hits in the pawn hash table could be high. // To reduce the chance of false hits, we compute an extra signature. uint sig = (Pos.SquareColorCount(WP,WHITE) << 12) | (Pos.SquareColorCount(BP,BLACK) << 8) | (Pos.PieceCount(WP) << 4) | Pos.PieceCount(BP); pawnEntry->pawnhash = pawnhash; pawnEntry->sig = sig; pawnEntry->fyleHasPassers[WHITE] = 0; pawnEntry->fyleHasPassers[BLACK] = 0; bool inPawnEndgame = (Pos.NumNonPawns(WHITE) == 1 && Pos.NumNonPawns(BLACK) == 1); pawnTableEntryT * hashEntry = NULL; // Check for a pawn hash table hit, but not in pawn endings: if (!inPawnEndgame) { uint hashSlot = pawnhash % PawnTableSize; hashEntry = &(PawnTable[hashSlot]); if (pawnhash == hashEntry->pawnhash && sig == hashEntry->sig) { nPawnHashHits++; *pawnEntry = *hashEntry; return; } } // The pawnFiles array contains the number of pawns of each color on // each file. Indexes 1-8 are used while 0 and 9 are empty dummy files // added so that even the a and h files have two adjacent files, making // isolated/passed pawn calculation easier. uint pawnFiles[2][10] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} }; // firstRank stores the rank of the leading pawn on each file. uint firstRank[2][10] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} }; // lastRank stores the rank of the rearmost pawn on each file. uint lastRank[2][10] = { {7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7} }; int pawnScore[2] = {0, 0}; int longVsShortScore[2] = {0, 0}; // Pawn storm bonuses, O-O-O vs O-O int shortVsLongScore[2] = {0, 0}; // Pawn storm bonuses, O-O vs O-O-O rankT bestRacingPawn[2] = {RANK_1, RANK_1}; for (fyleT f = A_FYLE; f <= H_FYLE; f++) { pawnFiles[WHITE][f+1] = Pos.FyleCount (WP, f); pawnFiles[BLACK][f+1] = Pos.FyleCount (BP, f); } for (colorT c = WHITE; c <= BLACK; c++) { pieceT pawn = piece_Make (c, PAWN); uint npawns = Pos.PieceCount(pawn); SquareList sqlist; Pos.GetSquares (pawn, &sqlist); for (uint i = 0; i < npawns; i++) { squareT sq = sqlist.Get(i); squareT wsq = (c == WHITE) ? sq : square_FlipRank(sq); squareT bonusSq = square_FlipRank(wsq); pawnScore[c] += PawnSquare[bonusSq]; longVsShortScore[c] += PawnStorm[bonusSq]; shortVsLongScore[c] += PawnStorm[square_FlipFyle(bonusSq)]; uint fyle = square_Fyle(wsq) + 1; uint rank = square_Rank(wsq); if (rank > firstRank[c][fyle]) { firstRank[c][fyle] = rank; } if (rank < lastRank[c][fyle]) { lastRank[c][fyle] = rank; } } } byte fyleHasPassers[2] = {0, 0}; for (colorT color = WHITE; color <= BLACK; color++) { if (Pos.PieceCount(piece_Make(color,PAWN)) == 0) { continue; } colorT enemy = color_Flip(color); for (uint fyle=1; fyle <= 8; fyle++) { uint pawnCount = pawnFiles[color][fyle]; if (pawnCount == 0) { continue; } uint pawnRank = firstRank[color][fyle]; // Doubled pawn penalty: if (pawnCount > 1) { pawnScore[color] -= DoubledPawn * pawnCount; } // Isolated pawn penalty: bool isolated = false; if (pawnFiles[color][fyle-1] == 0 && pawnFiles[color][fyle+1] == 0) { isolated = true; pawnScore[color] -= IsolatedPawn * pawnCount; // Extra penalty for isolated on half-open file: if (pawnFiles[enemy][fyle] == 0) { pawnScore[color] -= IsolatedPawn * pawnCount / 2; } } else if (lastRank[color][fyle-1] > lastRank[color][fyle] && lastRank[color][fyle+1] > lastRank[color][fyle]) { // Not isolated, but backward: pawnScore[color] -= BackwardPawn; // Extra penalty for backward on half-open file: if (pawnFiles[enemy][fyle] == 0) { pawnScore[color] -= BackwardPawn; } } // Passed pawn bonus: if (pawnRank >= 7 - lastRank[enemy][fyle] && pawnRank >= 7 - lastRank[enemy][fyle-1] && pawnRank >= 7 - lastRank[enemy][fyle+1]) { int bonus = PassedPawnRank[pawnRank]; // Smaller bonus for rook-file or isolated passed pawns: if (fyle == 1 || fyle == 8 || isolated) { bonus = bonus * 3 / 4; } // Bigger bonus for a passed pawn protected by another pawn: if (!isolated) { if (pawnRank == firstRank[color][fyle-1] + 1 || pawnRank == firstRank[color][fyle+1] + 1) { bonus = (bonus * 3) / 2; } } pawnScore[color] += bonus; // Update the passed-pawn-files bitmap: fyleHasPassers[color] |= (1 << (fyle-1)); // Give a big bonus for a connected passed pawn on // the 6th or 7th rank. if (pawnRank >= RANK_6 && pawnFiles[color][fyle-1] > 0 && firstRank[color][fyle-1] >= RANK_6) { // pawnScore[color] += some_bonus...; } // Check for passed pawn races in pawn endgames: if (inPawnEndgame) { // Check if the enemy king is outside the square: squareT kingSq = Pos.GetKingSquare(color_Flip(color)); squareT pawnSq = square_Make(fyle-1, pawnRank); squareT promoSq = square_Make(fyle-1, RANK_8); if (color == BLACK) { pawnSq = square_FlipRank(pawnSq); promoSq = square_FlipRank(promoSq); } uint kingDist = square_Distance(kingSq, promoSq); uint pawnDist = square_Distance(pawnSq, promoSq); if (color != Pos.GetToMove()) { pawnDist++; } if (pawnDist < kingDist) { bestRacingPawn[color] = pawnRank; } } } } } int score = pawnScore[WHITE] - pawnScore[BLACK]; pawnEntry->score = score; pawnEntry->fyleHasPassers[WHITE] = fyleHasPassers[WHITE]; pawnEntry->fyleHasPassers[BLACK] = fyleHasPassers[BLACK]; pawnEntry->wLongbShortScore = longVsShortScore[WHITE] - shortVsLongScore[BLACK]; pawnEntry->wShortbLongScore = shortVsLongScore[WHITE] - longVsShortScore[BLACK]; // If not a pawn endgame, store the score in the pawn hash table: if (!inPawnEndgame) { *hashEntry = *pawnEntry; return; } // This is a pawn endgame, so we cannot store the score in the // pawn hash table since we include king positions as a factor. // If one side has a pawn that clearly queens before the best // enemy pawn in a race (where kings cannot catch the pawns), // give a huge bonus since it almost certainly wins: if (bestRacingPawn[WHITE] > bestRacingPawn[BLACK] + 1) { pawnEntry->score += RookValue; } else if (bestRacingPawn[BLACK] > bestRacingPawn[WHITE] + 1) { pawnEntry->score -= RookValue; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::IsMatingScore // Returns true if the score indicates the side to move will checkmate. inline bool Engine::IsMatingScore (int score) { return (score > (Infinity - (int)ENGINE_MAX_PLY)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::IsGettingMatedScore // Returns true if the score indicates the side to move will be checkmated. inline bool Engine::IsGettingMatedScore (int score) { return (score < (-Infinity + (int)ENGINE_MAX_PLY)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::PlayMove // Play the specified move, not in a search. void Engine::PlayMove (simpleMoveT * sm) { PushRepeat(&RootPos); RootPos.DoSimpleMove(sm); Pos.DoSimpleMove(sm); #ifdef WINCE simpleMoveT * newMove = (simpleMoveT *) my_Tcl_Alloc(sizeof(simpleMoveT)); #else simpleMoveT * newMove = new simpleMoveT; #endif *newMove = *sm; GameMoves[NumGameMoves] = newMove; NumGameMoves++; // Change the transposition table sequence number: TranTableSequence++; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::RetractMove // Take back a move played in the game. void Engine::RetractMove (void) { if (NumGameMoves == 0) { return; } PopRepeat(); NumGameMoves--; RootPos.UndoSimpleMove(GameMoves[NumGameMoves]); Pos.UndoSimpleMove(GameMoves[NumGameMoves]); #ifdef WINCE my_Tcl_Free((char *)GameMoves); #else delete GameMoves[NumGameMoves]; #endif TranTableSequence--; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::DoMove // Make the specified move in a search. inline void Engine::DoMove (simpleMoveT * sm) { PushRepeat(&Pos); Pos.DoSimpleMove(sm); Ply++; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::UndoMove // Take back the specified move in a search. inline void Engine::UndoMove (simpleMoveT * sm) { PopRepeat(); Pos.UndoSimpleMove(sm); Ply--; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::PushRepeat // Remember the current position on the repetition stack. inline void Engine::PushRepeat (Position * pos) { repeatT * rep = &(RepStack[RepStackSize]); rep->hash = pos->HashValue(); rep->pawnhash = pos->PawnHashValue(); rep->npieces = pos->TotalMaterial(); rep->stm = pos->GetToMove(); RepStackSize++; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::PopRepeat // Pops the last entry off the repetition stack. inline void Engine::PopRepeat (void) { ASSERT (RepStackSize > 0); RepStackSize--; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::NoMatingMaterial // Returns true if the position is a certain draw through neither // side having mating material. bool Engine::NoMatingMaterial (void) { uint npieces = Pos.TotalMaterial(); // Check for K vs K, K+N vs K, and K+B vs K: if (npieces <= 2) { return true; } if (npieces == 3) { byte * material = Pos.GetMaterial(); if (material[WB] == 1 || material[WN] == 1) { return true; } if (material[BB] == 1 || material[BN] == 1) { return true; } } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::FiftyMoveDraw // Returns true if a draw has been reached through fifty full // moves since the last capture or pawn move. bool Engine::FiftyMoveDraw (void) { if (RepStackSize < 100) { return false; } uint pawnhash = Pos.PawnHashValue(); uint npieces = Pos.TotalMaterial(); // Go back through the stack of hash values: uint plycount = 0; for (uint i = RepStackSize; i > 0; i--) { repeatT * rep = &(RepStack[i-1]); // Stop at an irreversible move: if (npieces != rep->npieces) { break; } if (pawnhash != rep->pawnhash) { break; } plycount++; } if (plycount >= 100) { return true; } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::RepeatedPosition // Returns the number if times the current position has been reached, // with the same side to move, castling and en passant settings. // The current occurrence is included in the returned count. uint Engine::RepeatedPosition (void) { uint hash = Pos.HashValue(); uint pawnhash = Pos.PawnHashValue(); uint npieces = Pos.TotalMaterial(); colorT stm = Pos.GetToMove(); // Go back through the stack of hash values detecting repetition: uint ntimes = 1; for (uint i = RepStackSize; i > 0; i--) { repeatT * rep = &(RepStack[i-1]); // Stop at an irreversible move: if (npieces != rep->npieces) { break; } if (pawnhash != rep->pawnhash) { break; } // Look for repetition: if (hash == rep->hash && stm == rep->stm) { ntimes++; } } return ntimes; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::SetHashTableKilobytes // Set the transposition table size in kilobytes. void Engine::SetHashTableKilobytes (uint size) { // Compute the number of entries, which must be even: uint bytes = size * 1024; if(TranTableSize != bytes / sizeof(transTableEntryT)) { TranTableSize = bytes / sizeof(transTableEntryT); if ((TranTableSize % 2) == 1) { TranTableSize--; } #ifdef WINCE if (TranTable != NULL) { my_Tcl_Free((char *) TranTable); } TranTable = (transTableEntryT*)my_Tcl_Alloc(sizeof ( transTableEntryT [TranTableSize])); #else if (TranTable != NULL) { delete[] TranTable; } TranTable = new transTableEntryT [TranTableSize]; #endif } ClearHashTable(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::SetPawnTableKilobytes // Set the pawn structure hash table size in kilobytes. void Engine::SetPawnTableKilobytes (uint size) { // Compute the number of entries: uint bytes = size * 1024; if(PawnTableSize != bytes / sizeof(pawnTableEntryT)) { PawnTableSize = bytes / sizeof(pawnTableEntryT); #ifdef WINCE if (PawnTable != NULL) { my_Tcl_Free((char *) PawnTable); } PawnTable = (pawnTableEntryT*)my_Tcl_Alloc(sizeof (pawnTableEntryT [PawnTableSize]) ); #else if (PawnTable != NULL) { delete[] PawnTable; } PawnTable = new pawnTableEntryT [PawnTableSize]; #endif } ClearPawnTable(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::ClearHashTable // Clear the transposition table. void Engine::ClearHashTable (void) { for (uint i = 0; i < TranTableSize; i++) { TranTable[i].flags = SCORE_NONE; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::ClearPawnTable // Clear the pawn structure hash table. void Engine::ClearPawnTable (void) { for (uint i = 0; i < PawnTableSize; i++) { PawnTable[i].pawnhash = 0; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // tte_Get/Set functions // Helpers for packing/extracting transposition table entry fields. inline void tte_SetFlags (transTableEntryT * tte, scoreFlagT sflag, colorT stm, byte castling, bool isOnlyMove) { tte->flags = (castling << 4) | (stm << 3) | (isOnlyMove ? 4 : 0) | sflag; } inline scoreFlagT tte_ScoreFlag (transTableEntryT * tte) { return (tte->flags & 7); } inline colorT tte_SideToMove (transTableEntryT * tte) { return ((tte->flags >> 3) & 1); } inline byte tte_Castling (transTableEntryT * tte) { return (tte->flags >> 4); } inline bool tte_IsOnlyMove (transTableEntryT * tte) { return (((tte->flags >> 2) & 1) == 1); } inline void tte_SetBestMove (transTableEntryT * tte, simpleMoveT * bestMove) { ASSERT (bestMove->from <= H8 && bestMove->to <= H8); ushort bm = bestMove->from; bm <<= 6; bm |= bestMove->to; bm <<= 4; bm |= bestMove->promote; tte->bestMove = bm; } inline void tte_GetBestMove (transTableEntryT * tte, simpleMoveT * bestMove) { ushort bm = tte->bestMove; bestMove->promote = bm & 15; bm >>= 4; bestMove->to = bm & 63; bm >>= 6; bestMove->from = bm & 63; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::StoreHash // Store the score for the current position in the transposition table. void Engine::StoreHash (int depth, scoreFlagT ttFlag, int score, simpleMoveT * bestMove, bool isOnlyMove) { if (TranTableSize == 0) { return; } ASSERT (ttFlag <= SCORE_UPPER); uint hash = Pos.HashValue(); uint pawnhash = Pos.PawnHashValue(); colorT stm = Pos.GetToMove(); if (stm == BLACK) { hash = ~hash; } // Find the least useful (lowest depth) of two entries to replace // but replace the previous entry for this position if it exists // and use an empty hash table entry if possible: uint ttSlot = (hash % TranTableSize) & 0xFFFFFFFEU; ASSERT (ttSlot < TranTableSize - 1); transTableEntryT * ttEntry1 = &(TranTable[ttSlot]); transTableEntryT * ttEntry2 = &(TranTable[ttSlot + 1]); bool replacingSameEntry = false; transTableEntryT * ttEntry; if (ttEntry1->hash == hash && ttEntry1->pawnhash == pawnhash) { ttEntry = ttEntry1; // Replace this existing entry. replacingSameEntry = true; } else if (ttEntry2->hash == hash && ttEntry2->pawnhash == pawnhash) { ttEntry = ttEntry2; // Replace this existing entry. replacingSameEntry = true; } else if (tte_ScoreFlag(ttEntry1) == SCORE_NONE) { ttEntry = ttEntry1; // Use this empty entry. } else if (tte_ScoreFlag(ttEntry2) == SCORE_NONE) { ttEntry = ttEntry2; // Use this empty entry. } else { // Replace the entry with the shallower depth, unless the deeper // entry has an old sequence number: transTableEntryT * ttDeeper = ttEntry1; transTableEntryT * ttShallower = ttEntry2; if (ttEntry1->depth < ttEntry2->depth) { ttDeeper = ttEntry2; ttShallower = ttEntry1; } if (ttShallower->sequence != TranTableSequence) { ttEntry = ttShallower; // Replace this old entry } else if (ttDeeper->sequence != TranTableSequence) { ttEntry = ttDeeper; // Replace this old entry } else { ttEntry = ttShallower; // Replace this shallow entry } } if (replacingSameEntry) { if (depth < ttEntry->depth) { // Do not overwrite an existing better entry for the same // position; but if there was no move, add one: if (ttEntry->bestMove == 0 && bestMove != NULL) { tte_SetBestMove (ttEntry, bestMove); } return; } if (depth == ttEntry->depth) { // Do not replace an exact score entry of the same depth for // the same position with an inexact entry: if (tte_ScoreFlag(ttEntry) == SCORE_EXACT && ttFlag != SCORE_EXACT) { return; } } } // Convert mating scores to include the current Ply count: if (IsMatingScore(score)) { score += Ply; } if (IsGettingMatedScore(score)) { score -= Ply; } // Fill in the hash entry fields: ttEntry->hash = hash; ttEntry->pawnhash = pawnhash; ttEntry->depth = depth; ttEntry->score = score; tte_SetFlags (ttEntry, ttFlag, stm, Pos.GetCastlingFlags(), isOnlyMove); ttEntry->sequence = TranTableSequence; ttEntry->bestMove = 0; if (bestMove != NULL) { ASSERT (bestMove->movingPiece != EMPTY); ASSERT (piece_Color(bestMove->movingPiece) == stm); ASSERT (bestMove->from <= H8); tte_SetBestMove (ttEntry, bestMove); } ttEntry->enpassant = Pos.GetEPTarget(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::ProbeHash // Probe the transposition table for the current position. // scoreFlagT Engine::ProbeHash (int depth, int * score, simpleMoveT * bestMove, bool * isOnlyMove) { // Clear the best move: if (bestMove != NULL) { bestMove->from = bestMove->to = NULL_SQUARE; } if (TranTableSize == 0) { return SCORE_NONE; } uint hash = Pos.HashValue(); colorT stm = Pos.GetToMove(); if (stm == BLACK) { hash = ~hash; } // Examine the corresponding pair of table entries: uint ttSlot = (hash % TranTableSize) & 0xFFFFFFFEU; ASSERT (ttSlot+1 < TranTableSize); transTableEntryT * ttEntry = &(TranTable[ttSlot]); if (ttEntry->hash != hash) { ttEntry++; } if (ttEntry->hash != hash) { return SCORE_NONE; } if (tte_ScoreFlag(ttEntry) == SCORE_NONE) { return SCORE_NONE; } uint pawnhash = Pos.PawnHashValue(); if (ttEntry->pawnhash != pawnhash) { return SCORE_NONE; } if (tte_SideToMove(ttEntry) != stm) { return SCORE_NONE; } if (tte_Castling(ttEntry) != Pos.GetCastlingFlags()) { return SCORE_NONE; } if (ttEntry->enpassant != Pos.GetEPTarget()) { return SCORE_NONE; } // If a hash move is stored, we return it even if the depth is not // sufficient, because it will be useful for move ordering anyway. if (bestMove != NULL && ttEntry->bestMove != 0) { tte_GetBestMove (ttEntry, bestMove); pieceT * board = Pos.GetBoard(); bestMove->movingPiece = board[bestMove->from]; } if (isOnlyMove != NULL) { *isOnlyMove = tte_IsOnlyMove (ttEntry); } // Only return an exact or bounded score if the stored depth is at // least as large as the requested depth: if (ttEntry->depth < depth) { return SCORE_NONE; } if (score != NULL) { *score = ttEntry->score; // Convert mating scores to exclude the current Ply count: if (IsMatingScore(*score)) { *score -= Ply; } if (IsGettingMatedScore(*score)) { *score += Ply; } } return tte_ScoreFlag(ttEntry); } static uint nFailHigh = 0; static uint nFailHighFirstMove = 0; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::SetPosition // Set the current position. If the new position parameter // is NULL, the standard starting position is used. void Engine::SetPosition (Position * newpos) { // Delete old game moves: for (uint i=0; i < NumGameMoves; i++) { #ifdef WINCE my_Tcl_Free((char *) GameMoves[i]); #else delete GameMoves[i]; #endif } NumGameMoves = 0; // Set the position: if (newpos == NULL) { RootPos.StdStart(); Pos.StdStart(); } else { RootPos.CopyFrom (newpos); Pos.CopyFrom (newpos); } // Clear the repetition stack: RepStackSize = 0; // Clear the PV: PV[0].length = 0; // Change the tranposition table sequence number so existing // entries can be detected as old ones: TranTableSequence++; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::Think // Initiate a search from the current position. If the supplied // move list is NULL, generate and examine all legal moves at the // root position. However, if the move list is not NULL, it // contains a subset of the legal moves to be analyzed. // // Returns the score (in centipawns, for the side to move) and // reorders the move list (if supplied) so the best move is at // the start of the list. int Engine::Think (MoveList * mlist) { Elapsed.Reset(); NodeCount = 0; QNodeCount = 0; Ply = 0; IsOutOfTime = false; EasyMove = false; HardMove = false; InNullMove = 0; SetPVLength(); ClearKillerMoves(); ClearHistoryValues(); // If no legal move list was specified, generate and search all moves: if (mlist == NULL) { Pos.GenerateMoves(mlist); } // No legal moves? Return 0 for stalemate, -Infinity for checkmate. if (mlist->Size() == 0) { return (Pos.IsKingInCheck() ? -Infinity : 0); } // Sort the root move list by quiescent evaluation to get a // reasonably good initial move order: for (uint i=0; i < mlist->Size(); i++) { simpleMoveT * sm = mlist->Get(i); DoMove(sm); sm->score = -Quiesce (-Infinity, Infinity); UndoMove(sm); } mlist->Sort(); // Check for an easy move, one that scores more than two pawns // better than any alternative: if (mlist->Size() > 1) { int margin = mlist->Get(0)->score - mlist->Get(1)->score; if (margin > (2 * PawnValue)) { // Output ("Easy move: margin = %d\n", margin); EasyMove = true; } } int bestScore = -Infinity; // Do iterative deepening starting at depth 1, until out of // time or the maximum depth is reached: for (uint depth = 1; depth <= MaxDepth; depth++) { HardMove = false; // If we have searched at least a few ply, and there is less // than 30% of the recommended search time remaining, then // continuing the search is unlikely to be useful since it // will probably spend all remaining time on the first move: if (depth > MinDepthCheckTime) { // was 4. or will think too long when trying to check if a move is obvious double used = (double)Elapsed.MilliSecs() / (double)SearchTime; if (used > 0.7) { break; } } // Set up the alpha-beta range. For all but the first depth, // use a small aspiration window around the previous score // since we do not expect the score to change much: int alpha = -Infinity - 1; int beta = Infinity + 1; if (depth > 1) { alpha = bestScore - AspirationWindow; beta = bestScore + AspirationWindow; } int score = SearchRoot (depth, alpha, beta, mlist); if (OutOfTime()) { break; } if (score >= beta) { // Aspiration window fail-high: PrintPV (depth, score, "++"); alpha = score - 1; beta = Infinity + 1; score = SearchRoot (depth, alpha, beta, mlist); } else if (score <= alpha) { // Aspiration window fail-low: PrintPV (depth, score, "--"); EasyMove = false; HardMove = true; alpha = -Infinity - 1; beta = score + 1; score = SearchRoot (depth, alpha, beta, mlist); } if (OutOfTime()) { break; } // If the 2nd search failed, try again with an infinite window. // This is rare, but can happen with hashing/null-move effects. if (score < alpha || score > beta) { alpha = -Infinity; beta = Infinity; EasyMove = false; HardMove = true; score = SearchRoot (depth, alpha, beta, mlist); } if (OutOfTime()) { break; } bestScore = score; PrintPV (depth, bestScore, ">>>"); // Stop if checkmate has been found, but not too soon: if (depth >= 5 && IsMatingScore (bestScore)) { break; } // Make sure the first move in the list remains there by // giving it a huge node count for its move ordering score: mlist->Get(0)->score = 1 << 30; // Sort the move list based on node counts from this iteration: mlist->Sort(); } return bestScore; } int Engine::SearchRoot (int depth, int alpha, int beta, MoveList * mlist) { ASSERT (depth >= 1); // If no legal move list was specified, generate and search all moves: if (mlist == NULL) { Pos.GenerateMoves(mlist); } // No legal moves to search? Just return an equal score for // stalemate or -Infinity for checkmate. if (mlist->Size() == 0) { return (Pos.IsKingInCheck() ? -Infinity : 0); } bool isOnlyMove = (mlist->Size() == 1); int bestScore = -Infinity - 1; for (uint movenum=0; movenum < mlist->Size(); movenum++) { simpleMoveT * sm = mlist->Get(movenum); uint oldNodeCount = NodeCount; // Make this move and search it: DoMove (sm); InCheck[Ply] = Pos.IsKingInCheck (sm); #define PVS_SEARCH #ifdef PVS_SEARCH int score = alpha; if (movenum == 0) { score = -Search (depth - 1, -beta, -alpha, true); } else { // Do a minimal window search first, to try and quickly // identify the common case of a move not being good // enough to improve alpha: score = -Search (depth - 1, -alpha - 1, -alpha, true); if (score > alpha && score < beta) { // This move is good enough to search with the proper // window; use the score it returned as the lower bound: score = -Search (depth - 1, -beta, -score, true); } } #else int score = -Search (depth - 1, -beta, -alpha, true); #endif UndoMove (sm); if (OutOfTime()) { break; } // Set the move ordering score of this move to be the number of // nodes spent on it, so interesting moves of this iteration are // searched first at the next iteration depth: sm->score = NodeCount - oldNodeCount; // If this is the first move searched at this depth or // a new best move, update the best score and promote // the move to be first in the list: if (movenum == 0 || score > bestScore) { bestScore = score; alpha = score; UpdatePV (sm); PrintPV (depth, bestScore); StoreHash (depth, SCORE_EXACT, score, sm, isOnlyMove); mlist->MoveToFront (movenum); if (movenum > 0) { EasyMove = false; } } } return bestScore; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::Search // Internal Search routine, used at every depth except // the root position. int Engine::Search (int depth, int alpha, int beta, bool tryNullMove) { SetPVLength(); // If there is no remaining depth, return a qiuescent evaluation: if (depth <= 0) { return Quiesce (alpha, beta); } // Check that the absolute depth limit is not exceeded: if (Ply >= ENGINE_MAX_PLY - 1) { return alpha; } // Check for a drawn position (no mating material, repetition, etc): if (NoMatingMaterial()) { return 0; } if (FiftyMoveDraw()) { return 0; } uint repeats = RepeatedPosition(); if (repeats >= 3 || (repeats == 2 && Ply > 2)) { return 0; } colorT toMove = Pos.GetToMove(); NodeCount++; // Stop now if we ran out of time: if (OutOfTime()) { return alpha; } // Check for a recognized endgame score: if (Pos.TotalMaterial() <= Recognizer::MaxPieces()) { int recog = Recognizer::Recognize(&Pos); int rscore = recogScore(recog); scoreFlagT rflag = recogFlag(recog); if (rflag == SCORE_EXACT) { return rscore; } else if (rflag == SCORE_LOWER) { if (rscore >= beta) { return rscore; } if (rscore < alpha) { alpha = rscore; } } else if (rflag == SCORE_UPPER) { if (rscore <= alpha) { return rscore; } if (rscore > beta) { beta = rscore; } } } // Probe the hash table: int hashscore = alpha; simpleMoveT hashmove; bool isOnlyMove = 0; scoreFlagT hashflag = ProbeHash (depth, &hashscore, &hashmove, &isOnlyMove); switch (hashflag) { case SCORE_NONE: break; case SCORE_LOWER: if (hashscore >= beta) { return hashscore; } if (hashscore > alpha) { alpha = hashscore; } break; case SCORE_UPPER: if (hashscore <= alpha) { return hashscore; } if (hashscore < beta) { beta = hashscore; } break; case SCORE_EXACT: if (hashscore > alpha && hashscore < beta) { UpdatePV (&hashmove); } return hashscore; } int baseExtensions = 0; bool inCheck = InCheck[Ply]; // Null move pruning: // If the side to move has at least a few pieces (to reduce the risk // of zugzwang) and is not in check, and a null move was not made to // reach this point in the search, try making a null move now. The // idea is to pass on our move and see (with a shallow search) if // if the enemy has any move that can score better than the beta // cutoff. If they have no such move, it means our position is good // enough to cut off the search without even considering our own // possible moves. if (inCheck || depth < 2 || Pos.NumNonPawns(toMove) < 3) { tryNullMove = false; } if (tryNullMove) { Pos.SetToMove (color_Flip(toMove)); squareT oldEPTarget = Pos.GetEPTarget(); Pos.SetEPTarget (NULL_SQUARE); // We keep track of whether we are in a null move search or // not, to avoid updating the PV. InNullMove++; // Do an R=2 or R=3 nullmove search, depending on remaining depth: int nulldepth = depth - NullMoveReduction; if (depth > 6) { nulldepth--; // An R=3 null move search. } int nullscore = -Search (nulldepth - 1, -beta, -beta + 1, false); InNullMove--; Pos.SetEPTarget (oldEPTarget); Pos.SetToMove (toMove); // If the null-move score is better than beta, cut the search: if (nullscore >= beta) { return beta; } // If the null-move score indicates that making a null move // would lead to us getting mated, extend the search another // ply to try and avoid the mate threats: if (IsGettingMatedScore (nullscore)) { baseExtensions++; } } // In-check extension: search one ply deeper if we are in check. if (inCheck) { baseExtensions++; } // Now we want to generate all legal moves and order them. But if // we got a move from the hash table, it is worth trying that move // first, and only generating and scoring the rest of the moves if // the hash move does not cause a beta cutoff. // Note that we already know whether the side to move is in check, // so we pass this information to GenerateMoves to speed it up. MoveList mlist; bool gotHashMove; if (Pos.IsLegalMove (&hashmove)) { gotHashMove = true; // For now, we only add the hash move to the move list. mlist.Add (&hashmove); mlist.Get(0)->score = ENGINE_HASH_SCORE; } else { // No hash table move, so generate and score all the moves now. gotHashMove = false; Pos.GenerateMoves (&mlist, EMPTY, GEN_ALL_MOVES, InCheck[Ply]); ScoreMoves (&mlist); isOnlyMove = (mlist.Size() == 1); } // If there is only one legal move, extend the search: if (isOnlyMove) { baseExtensions++; } // Remember the original alpha score: int oldAlpha = alpha; int bestMoveIndex = -1; // Search each move: for (uint movenum = 0; movenum < mlist.Size(); movenum++) { // Find the highest-scoring remaining move: mlist.FindBest (movenum); simpleMoveT * sm = mlist.Get (movenum); // Move-specific extensions: int extensions = baseExtensions; // If moving a pawn to the 7th or 8th rank, extend the search: if (piece_Type(sm->movingPiece) == PAWN) { rankT rank = square_Rank(sm->to); if (rank <= RANK_2 || rank >= RANK_7) { extensions++; } } // Reduce extensions if the search is deep: if (extensions > 0 && (int)Ply >= depth + depth) { extensions /= 2; } // Limit extensions to one ply (only if deep enough?): if (extensions > 1 /*&& (int)Ply >= depth*/) { extensions = 1; } // Make this move and remember if it gives check: DoMove (sm); InCheck[Ply] = Pos.IsKingInCheck (sm); // Simple futility pruning. Note that pruning with depth of two // remaining is risky, but seems to work well enough in practise. // We only prune when: // (1) there are no extensions, // (2) we are at ply 3 or deeper, // (3) the move made does not give check, // (4) the score does not indicate mate, // (5) the move is not the only legal move, and // (6) we are not in a pawn ending. if (Pruning && extensions == 0 && Ply > 2 && depth <= 2 && !InCheck[Ply] && !IsMatingScore (alpha) && !isOnlyMove && Pos.NumNonPawns(WHITE) > 1 && Pos.NumNonPawns(BLACK) > 1) { int mscore = -ScoreMaterial(); bool futile = false; if (depth == 1) { // Futility pruning, when 2 pawns below alpha: futile = ((mscore + (PawnValue * 2)) < alpha); } else if (depth == 2) { // Extended futility pruning, when a rook below alpha: futile = ((mscore + RookValue) < alpha); } // Skip this move if it is futile: if (futile) { UndoMove(sm); continue; } } #define PVS_SEARCH #ifdef PVS_SEARCH // We do a normal search for the first move, but for all other // moves we try a minimal window search first to save time: int score = alpha; if (movenum == 0) { score = -Search (depth + extensions - 1, -beta, -alpha, true); } else { score = -Search (depth + extensions - 1, -alpha - 1, -alpha, true); if (score > alpha && score < beta) { // This move is good enough to search with the proper // window; use the score it returned as the lower bound: score = -Search (depth + extensions - 1, -beta, -score, true); } } #else // No PVS, just do a regular search at every move: int score = -Search (depth + extensions - 1, -beta, -alpha, true); #endif UndoMove (sm); // If this move scored at least as good as beta, we have // "failed high" so there is no need to continue searching // for an even better move: if (score >= beta) { IncHistoryValue (sm, depth * depth); AddKillerMove (sm); StoreHash (depth, SCORE_LOWER, score, sm, isOnlyMove); // Fail-high-first-move stats: nFailHigh++; if (movenum == 0) { nFailHighFirstMove++; } return beta; } // If this move is better than the alpha score, it is a new // best move at this point in the search tree. Update the PV // (and boost the history value of the move a little? - no): if (score > alpha) { alpha = score; bestMoveIndex = movenum; UpdatePV (sm); // IncHistoryValue (sm, depth); } // All done with that move. If it was the first move in the list and // it was the move from the hashtable, then the remaining moves have // not been generated and scored for move ordering. We do that now, // ensuring that the hash table move we just examined is moved to // the start of the list so it does not get searched again. if (movenum == 0 && gotHashMove && !isOnlyMove) { mlist.Clear(); Pos.GenerateMoves (&mlist, EMPTY, GEN_ALL_MOVES, InCheck[Ply]); ScoreMoves (&mlist); int hashIndex = mlist.Find (&hashmove); if (hashIndex >= 0) { mlist.SwapWithFirst (hashIndex); } else { // The hash table move was legal, but not found in the // move list -- Bizzare! Output ("# Yikes! Hash table move not in move list! Bug?\n"); } } } if (mlist.Size() == 0) { // No legal moves? Must be checkmate or stalemate: return (InCheck[Ply] ? (-Infinity + Ply) : 0); } // If alpha did not get improved, we "failed low"; every move // scored worse than our lower bound. // Store alpha in the transposition table as an upper bound on // the true score of this position, with no best move. if (alpha == oldAlpha) { ASSERT (bestMoveIndex < 0); StoreHash (depth, SCORE_UPPER, alpha, NULL, isOnlyMove); } else { // Update the transposition table with the best move: ASSERT (bestMoveIndex >= 0); simpleMoveT * bestMove = mlist.Get(bestMoveIndex); IncHistoryValue (bestMove, depth * depth); // Should we also add this as a killer move? Possibly not, // since it was not good enough to cause a beta cutoff. // It seems to make little difference. AddKillerMove (bestMove); StoreHash (depth, SCORE_EXACT, alpha, bestMove, isOnlyMove); } return alpha; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::Quiesce // Search only captures until a stable position is reached // that can be evaluated. int Engine::Quiesce (int alpha, int beta) { NodeCount++; QNodeCount++; // Check that the absolute depth limit is not exceeded: if (Ply >= ENGINE_MAX_PLY - 1) { return alpha; } SetPVLength(); // Stop now if we are out of time: if (OutOfTime()) { return alpha; } // Check for a recognized endgame score: if (Pos.TotalMaterial() <= Recognizer::MaxPieces()) { int recog = Recognizer::Recognize(&Pos); int rscore = recogScore(recog); scoreFlagT rflag = recogFlag(recog); if (rflag == SCORE_EXACT) { return rscore; } else if (rflag == SCORE_LOWER) { if (rscore >= beta) { return rscore; } if (rscore < alpha) { alpha = rscore; } } else if (rflag == SCORE_UPPER) { if (rscore <= alpha) { return rscore; } if (rscore > beta) { beta = rscore; } } } // Find the static evaluation of this position, to either cause // a beta cutoff or improve the alpha score: int staticScore = Score (alpha, beta); if (staticScore >= beta) { return beta; } if (staticScore > alpha) { alpha = staticScore; } // Check for a static score so far below alpha that no capture // is going to be good enough anyway: int margin = PawnValue; if (staticScore + QueenValue + margin < alpha) { return alpha; } // Generate and score the list of captures: MoveList mlist; Pos.GenerateMoves (&mlist, GEN_CAPTURES); for (uint m=0; m < mlist.Size(); m++) { simpleMoveT * sm = mlist.Get(m); sm->score = SEE (sm->from, sm->to); } // Iterate through each quiescent move to find a beta cutoff or // improve the alpha score: for (uint i = 0; i < mlist.Size(); i++) { // Find the highest-scoring remaining move, make it and search: mlist.FindBest(i); simpleMoveT * sm = mlist.Get(i); pieceT promote = piece_Type(sm->promote); // Skip underpromotions: if (promote != EMPTY && promote != QUEEN) { continue; } // Stop if the capture gain is negative or is so small that it // will (very likely) not improve alpha: if (sm->score < 0) { break; } if ((sm->score + staticScore + margin) < alpha) { break; } // Make the move and evaluate it: DoMove (sm); int score = -Quiesce (-beta, -alpha); UndoMove (sm); // Check for a score so good it causes a beta cutoff: if (score >= beta) { return score; } // See if we have a new best move: if (score > alpha) { alpha = score; UpdatePV (sm); } } return alpha; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::SEE // Static Exchange Evaluator. // Evaluates the approximate material result of moving the piece // from the from square (which must not be empty) to the target // square (which may be empty or may hold an enemy piece). int Engine::SEE (squareT from, squareT target) { const pieceT * board = Pos.GetBoard(); SquareList attackers[2]; pieceT mover = piece_Type(board[from]); ASSERT (mover != EMPTY); colorT stm = piece_Color_NotEmpty(board[from]); #define SEE_ADD(c,sq) attackers[(c)].Add(sq) // Currently the SEE method is only called for legal moves, so if // the moving piece is a king then it clearly cannot be captured. // If potentially illegal king moves are to be passed to this // method, the following optimisation should be removed. if (mover == KING) { return PieceValue(board[target]); } // Find the estimated result assuming one recapture: int fastResult = PieceValue(board[target]) - PieceValue(mover); // We can do quick estimation for a big gain, but have to be // careful since move ordering is very sensitive to positive SEE // scores. Only return a fast estimate for PxQ, NxQ, BxQ and PxR: if (fastResult > KnightValue && mover != ROOK) { return fastResult; } // Add attacking pawns to the attackers list: squareT pawnSq = square_Move (target, DOWN_LEFT); if (board[pawnSq] == WP && pawnSq != from) { SEE_ADD (WHITE, pawnSq); } pawnSq = square_Move (target, DOWN_RIGHT); if (board[pawnSq] == WP && pawnSq != from) { SEE_ADD (WHITE, pawnSq); } pawnSq = square_Move (target, UP_LEFT); if (board[pawnSq] == BP && pawnSq != from) { SEE_ADD (BLACK, pawnSq); } pawnSq = square_Move (target, UP_RIGHT); if (board[pawnSq] == BP && pawnSq != from) { SEE_ADD (BLACK, pawnSq); } // Quick estimation for a nonpawn capturing a lesser-valued piece (or // moving to an empty square) which is defended by an enemy pawn. if (fastResult < -PawnValue && attackers[color_Flip(stm)].Size() > 0) { return fastResult; } // Add attacking knights. Only bother searching for them if there // are any knights on the appropriate square color. colorT knightSquareColor = color_Flip(square_Color(target)); uint nEligibleKnights = Pos.SquareColorCount(WN, knightSquareColor) + Pos.SquareColorCount(BN, knightSquareColor); if (nEligibleKnights > 0) { const squareT * nextKnightSq = knightAttacks[target]; while (true) { squareT dest = *nextKnightSq; if (dest == NULL_SQUARE) { break; } nextKnightSq++; pieceT p = board[dest]; if (piece_Type(p) != KNIGHT) { continue; } if (dest == from) { continue; } // Quick estimate when this recapture ensures a negative result: colorT knightColor = piece_Color_NotEmpty(p); if (fastResult < -KnightValue && knightColor != stm) { return fastResult + KnightValue / 2; } SEE_ADD (knightColor, dest); } } // Add the first sliding attackers in each direction. Others // may appear later as appropriate, when the piece in front // of them takes part in the capture sequence. // First make an array containing all the directions that contain // potential sliding attackers, to avoid searching useless directions. rankT rank = square_Rank(target); fyleT fyle = square_Fyle(target); leftDiagT ul = square_LeftDiag(target); rightDiagT ur = square_RightDiag(target); uint rankCount = Pos.RankCount(WQ,rank) + Pos.RankCount(BQ,rank) + Pos.RankCount(WR,rank) + Pos.RankCount(BR,rank); uint fyleCount = Pos.FyleCount(WQ,fyle) + Pos.FyleCount(BQ,fyle) + Pos.FyleCount(WR,fyle) + Pos.FyleCount(BR,fyle); uint upLeftCount = Pos.LeftDiagCount(WQ,ul) + Pos.LeftDiagCount(BQ,ul) + Pos.LeftDiagCount(WB,ul) + Pos.LeftDiagCount(BB,ul); uint upRightCount = Pos.RightDiagCount(WQ,ur) + Pos.RightDiagCount(BQ,ur) + Pos.RightDiagCount(WB,ur) + Pos.RightDiagCount(BB,ur); // If the moving piece is a slider, it is worth removing it from the // rank/file/diagonal counts because we will avoid searching two // directions if it is the only slider on its rank/file/diagonal. if (piece_IsSlider(mover)) { if (square_Rank(from) == square_Rank(target)) { rankCount--; } else if (square_Fyle(from) == square_Fyle(target)) { fyleCount--; } else if (square_LeftDiag(from) == square_LeftDiag(target)) { upLeftCount--; } else { ASSERT (square_RightDiag(from) == square_RightDiag(target)); upRightCount--; } } // Build the list of directions with potential sliding capturers: uint nDirs = 0; directionT sliderDir[8]; if (rankCount > 0) { sliderDir[nDirs++] = LEFT; sliderDir[nDirs++] = RIGHT; } if (fyleCount > 0) { sliderDir[nDirs++] = UP; sliderDir[nDirs++] = DOWN; } if (upLeftCount > 0) { sliderDir[nDirs++] = UP_LEFT; sliderDir[nDirs++] = DOWN_RIGHT; } if (upRightCount > 0) { sliderDir[nDirs++] = UP_RIGHT; sliderDir[nDirs++] = DOWN_LEFT; } // Iterate over each direction, looking for an attacking slider: for (uint dirIndex = 0; dirIndex < nDirs; dirIndex++) { directionT dir = sliderDir[dirIndex]; squareT dest = target; squareT last = square_Last (target, dir); int delta = direction_Delta (dir); uint distance = 0; while (dest != last) { dest += delta; distance++; pieceT p = board[dest]; if (p == EMPTY) { continue; } if (dest == from) { continue; } pieceT ptype = piece_Type(p); if (ptype == PAWN) { // Look through this pawn if it was also a capturer. if (distance != 1) { break; } if (p == WP) { if (dir == DOWN_LEFT || dir == DOWN_RIGHT) { continue; } } else { if (dir == UP_LEFT || dir == UP_RIGHT) { continue; } } break; } if (! piece_IsSlider(ptype)) { break; } if (ptype == ROOK && direction_IsDiagonal(dir)) { break; } if (ptype == BISHOP && !direction_IsDiagonal(dir)) { break; } colorT c = piece_Color_NotEmpty(p); // Quick estimate when this recapture ensures a negative result: if (fastResult < -BishopValue && ptype == BISHOP) { if (c != stm) { return fastResult + BishopValue / 2; } } else if (fastResult < -RookValue && ptype == ROOK) { if (c != stm) { return fastResult + RookValue / 2; } } // OK, we have a sliding attacker. Add it: SEE_ADD (c, dest); break; } } // Add one capturing king if the other king cannot capture: squareT wk = Pos.GetKingSquare (WHITE); squareT bk = Pos.GetKingSquare (BLACK); if (wk != from && bk != from) { bool wkAttacks = square_Adjacent (target, wk); bool bkAttacks = square_Adjacent (target, bk); if (wkAttacks && !bkAttacks) { SEE_ADD (WHITE, wk); } else if (bkAttacks && !wkAttacks) { SEE_ADD (BLACK, bk); } } // Now go through the attack lists (which may get hidden sliders added // as sliding pieces make captures) finding the best capture sequence. bool targetIsPromoSquare = (target <= H1 || target >= A8); int swaplist[32]; uint nswaps = 1; swaplist[0] = PieceValue (board[target]); int attackedVal = PieceValue (mover); // Adjust the swap value for a promotion: if (targetIsPromoSquare && attackedVal == PawnValue) { swaplist[0] += QueenValue - PawnValue; attackedVal = QueenValue; } // Add as many captures to the sequence as possible, using // lowest-valued pieces first: while (true) { // Switch to the other side: stm = color_Flip(stm); SquareList * attackList = &(attackers[stm]); uint attackCount = attackList->Size(); // Has this side run out of pieces to capture with? if (attackCount == 0) { break; } // Find the best (lowest-valued) piece to capture with: uint bestIndex = 0; squareT attackSquare = attackList->Get(0); int attackValue = PieceValue(board[attackSquare]); for (uint i = 1; i < attackCount; i++) { if (attackValue == PawnValue) { break; } squareT newSquare = attackList->Get(i); int newValue = PieceValue(board[newSquare]); if (newValue < attackValue) { attackSquare = newSquare; attackValue = newValue; bestIndex = i; } } pieceT attackPiece = piece_Type(board[attackSquare]); // Update the swap list: swaplist[nswaps] = -swaplist[nswaps-1] + attackedVal; nswaps++; attackedVal = attackValue; // Fudge the value for a promotion, turning the pawn into a queen: if (targetIsPromoSquare && attackValue == PawnValue) { swaplist[nswaps-1] += QueenValue - PawnValue; attackedVal = QueenValue; } // Remove the chosen attacker from the list: attackList->Remove(bestIndex); // If the attacker is a slider, look for another slider behind it: if (piece_IsSlider (attackPiece)) { directionT dir = sqDir[target][attackSquare]; ASSERT (dir != NULL_DIR); squareT dest = attackSquare; squareT last = square_Last (dest, dir); int delta = direction_Delta (dir); while (dest != last) { dest += delta; pieceT p = board[dest]; if (p == EMPTY) { continue; } pieceT pt = piece_Type(p); if (! piece_IsSlider(pt)) { break; } if (pt == ROOK && direction_IsDiagonal(dir)) { break; } if (pt == BISHOP && !direction_IsDiagonal(dir)) { break; } // OK, we have another sliding attacker. Add it: SEE_ADD (piece_Color_NotEmpty(p), dest); break; } } } // Finally, go backwards through the swap list and determine when one // side would stop because further exchanges would be useless: nswaps--; while (nswaps > 0) { uint prev = nswaps - 1; if (swaplist[nswaps] > -swaplist[prev]) { swaplist[prev] = -swaplist[nswaps]; } nswaps--; } return swaplist[0]; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::ScoreMoves // Gives each move in the specified move list a score for move // ordering. Captures are scored using static exchange evaluation // while non-capture scores are based on killer move and history // heuristic information. Promotions are treated as captures. // The ordering has four basic categories: // (1) Non-losing captures (ordered by SEE value, score >= EMH * 2); // (2) Non-capture killer moves (EMH <= score < 2 * EMH); // (3) Other non-captures (by history heuristic, 0 <= score < EMH); // (4) Losing captures (ordered by SEE value, score < 0). // where EMH = ENGINE_MAX_HISTORY is the history value threshold. void Engine::ScoreMoves (MoveList * mlist) { for (uint i = 0; i < mlist->Size(); i++) { simpleMoveT * sm = mlist->Get(i); if (sm->capturedPiece != EMPTY || sm->promote != EMPTY) { int see = SEE (sm->from, sm->to); if (see >= 0) { sm->score = ENGINE_MAX_HISTORY * 2 + see; } else { sm->score = see; } } else { // Non-capture; just use the history/killer value for this move. sm->score = GetHistoryValue (sm); if (IsKillerMove (sm)) { sm->score += ENGINE_MAX_HISTORY; } } } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::Output // Prints a formatted string (as passed to printf) to standard output // and the the log file if one is being used. void Engine::Output (const char * format, ...) { #ifndef WINCE va_list ap; va_start (ap, format); vprintf (format, ap); if (LogFile != NULL) { vfprintf (LogFile, format, ap); } va_end (ap); #endif } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::PrintPV // Print the current depth, score and principal variation. void Engine::PrintPV (uint depth, int score, const char * note) { if (! PostInfo) { return; } uint ms = Elapsed.MilliSecs(); if (XBoardMode && ms < 50 && Ply < 6) { return; } if (XBoardMode) { Output (" %2u %6d %5u %9u ", depth, score, ms / 10, NodeCount); } else { Output (" %2u %-3s %+6d %5u %9u ", depth, note, score, ms, NodeCount); } principalVarT * pv = &(PV[0]); uint i; if (Pos.GetToMove() == BLACK) { Output ("%u...", Pos.GetFullMoveCount()); } // Make and print each PV move: for (i = 0; i < pv->length; i++) { simpleMoveT * sm = &(pv->move[i]); // Check for legality, to protect against hash table // false hits and bugs in PV updating: if (! Pos.IsLegalMove (sm)) { Output (" "); break; } if (i > 0) { Output (" "); } if (Pos.GetToMove() == WHITE) { Output ("%u.", Pos.GetFullMoveCount()); } char s[10]; Pos.MakeSANString (sm, s, SAN_MATETEST); Output ("%s", s); Pos.DoSimpleMove (sm); } Output ("\n"); // Undo each PV move that was made: for (; i > 0; i--) { Pos.UndoSimpleMove (&(pv->move[i-1])); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::OutOfTime // Returns true if the search time limit has been reached. // "Out Of Time" is also the name of a great R.E.M. album. :-) bool Engine::OutOfTime () { if (IsOutOfTime) { return true; } // Only check the time approximately every 1000 nodes for speed: if ((NodeCount & 1023) != 0) { return false; } int ms = Elapsed.MilliSecs(); if (EasyMove) { IsOutOfTime = (ms > MinSearchTime); } else if (HardMove) { IsOutOfTime = (ms > MaxSearchTime); } else { IsOutOfTime = (ms > SearchTime); } if (!IsOutOfTime && CallbackFunction != NULL) { IsOutOfTime = CallbackFunction (this, CallbackData); } return IsOutOfTime; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Engine::PerfTest // Returns the number of leaf node moves when generating, making and // unmaking every move to the specified depth from the current position. uint Engine::PerfTest (uint depth) { if (depth <= 0) { return 1; } MoveList mlist; Pos.GenerateMoves (&mlist); uint nmoves = 0; for (uint i = 0; i < mlist.Size(); i++) { simpleMoveT * sm = mlist.Get(i); Pos.DoSimpleMove (sm); nmoves += PerfTest (depth-1); Pos.UndoSimpleMove (sm); } return nmoves; } ////////////////////////////////////////////////////////////////////// // EOF: engine.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/mtb.h0000644000175000017500000003405711727223077015171 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: mtb.h // Memory tablebases // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // This file provides classes for compressed in-memory tablebases. // A memory tablebase (MTB) differs from a regular TB in several ways: // // (1) Its data is contained within the program, not read from a file. // // (2) It may only contain data for a selected portion of an endgame // material configuration, with less useful parts excluded to // reduce memory requirements. // // (3) Each result may be stored in 1, 2, 4, or 8 bits. A memory // tablebase with 4- or 8-bit results will store a distance to // mate, while 1- and 2-bit tablebases only store a flag indicating // the theoretical result (win/draw/loss). // // (4) Each block of 64*64=4096 results is stored as static compressed // data, and decompressed when needed. Decompression is very fast, // since a simple byte-oriented sliding window algorithm is used. // // (5) Indexing is not standard across all tablebases; each material // configuration uses an index that suits it best. This increases // the number of stored broken positions, but keeps things simple. // // (6) For each broken position in an MTB, the value is undefined. // This allows the value for each broken position to be set to any // value that will minimise compression. For most MTBs, each broken // position value is set to be the same as the previous value in // the tablebase. #ifndef SCID_MTB_H #define SCID_MTB_H #include "common.h" #include "bytepack.h" #include "hash.h" #include "misc.h" static BytePacker * bytePacker = new BytePacker(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ResultGrid // A ResultGrid contains 64*64=4096 chess results using 1, 2, 4 or 8 // bits per result. It can be stored in a compressed format and // uncompressed when required. // class ResultGrid { private: uint BitsPerResult; // Should be 1, 2, or 8 bits per result static const uint NumPieces = 2; static const uint NumResults = 64 * 64; uint NumResultBytes; bool HasBeenPacked; // True if the ResultGrid has been compressed byte * Data; // = NumResults * BitsPerResult bits. byte * PackedData; uint PackedDataLength; uint TotalResults; uint TotalUnpackedBytes; uint TotalPackedBytes; bool isValidBitsPerResult (uint bits) { return (bits == 1 || bits == 2 || bits == 4 || bits == 8); } public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif ResultGrid (uint bitsPerResult) { ASSERT (isValidBitsPerResult(bitsPerResult)); BitsPerResult = bitsPerResult; HasBeenPacked = false; NumResultBytes = NumResults * BitsPerResult / 8; #ifdef WINCE Data = (byte*) my_Tcl_Alloc(sizeof( byte[NumResultBytes])); #else Data = new byte[NumResultBytes]; #endif PackedData = NULL; ClearStats(); } ResultGrid (uint bitsPerResult, const byte * packedData, uint packedDataLength) { ASSERT (isValidBitsPerResult(bitsPerResult)); BitsPerResult = bitsPerResult; HasBeenPacked = false; NumResultBytes = NumResults * BitsPerResult / 8; Data = NULL; PackedData = (byte *) packedData; PackedDataLength = packedDataLength; ClearStats(); } ~ResultGrid() { #ifdef WINCE if (Data != NULL) { my_Tcl_Free((char*) Data); } if (HasBeenPacked) { my_Tcl_Free((char*) PackedData); } #else if (Data != NULL) { delete[] Data; } if (HasBeenPacked) { delete[] PackedData; } #endif } uint GetBitsPerResult() { return BitsPerResult; } uint GetPackedDataLength() { return PackedDataLength; } const byte * GetPackedData() { return PackedData; } void Clear() { for (uint i=0; i < NumResultBytes; i++) { Data[i] = 0xFF; } if (HasBeenPacked) { #ifdef WINCE my_Tcl_Free((char*) PackedData); #else delete[] PackedData; #endif PackedData = NULL; PackedDataLength = 0; } } uint ResultCount (uint result) { uint resultCount = 0; for (uint i=0; i < NumResults; i++) { if (GetResult(i) == result) { resultCount++; } } return resultCount; } void SetResult (uint result, uint sq1, uint sq2) { SetResult (result, 64 * sq1 + sq2); } void SetResult (uint result, uint index) { ASSERT(result < (1 << BitsPerResult)); ASSERT(index < NumResults); if (BitsPerResult == 1) { uint byteIndex = index >> 3; uint bitIndex = index & 7; byte value = Data[byteIndex]; value &= (0xFF - (1 << bitIndex)); value |= (result << bitIndex); Data[byteIndex] = value; } else if (BitsPerResult == 2) { uint byteIndex = index >> 2; uint bitIndex = (index & 3) << 1; byte value = Data[byteIndex]; value &= (0xFF - (3 << bitIndex)); value |= (result << bitIndex); Data[byteIndex] = value; } else if (BitsPerResult == 4) { uint byteIndex = index >> 1; uint bitIndex = (index & 1) << 2; byte value = Data[byteIndex]; value &= (0xFF - (15 << bitIndex)); value |= (result << bitIndex); Data[byteIndex] = value; } else if (BitsPerResult == 8) { Data[index] = result; } else { ASSERT(0); // Should not happen! } ASSERT(result == GetResult(index)); } uint GetResult (uint sq1, uint sq2) { return GetResult (64 * sq1 + sq2); } uint GetResult (uint index) { ASSERT(index < NumResults); if (Data == NULL) { Unpack(); } uint result = 0; if (BitsPerResult == 1) { uint byteIndex = index >> 3; uint bitIndex = index & 7; byte value = Data[byteIndex]; result = (value >> bitIndex) & 1; } else if (BitsPerResult == 2) { uint byteIndex = index >> 2; uint bitIndex = (index & 3) << 1; byte value = Data[byteIndex]; result = (value >> bitIndex) & 3; } else if (BitsPerResult == 4) { uint byteIndex = index >> 1; uint bitIndex = (index & 1) << 2; byte value = Data[byteIndex]; result = (value >> bitIndex) & 15; } else if (BitsPerResult == 8) { result = Data[index]; } else { ASSERT(0); } return result; } bool Equals (ResultGrid * rg) { if (BitsPerResult != rg->GetBitsPerResult()) { return false; } for (uint i=0; i < NumResults; i++) { if (GetResult(i) != rg->GetResult(i)) { printf("Result %u: %u != %u\n", i, GetResult(i), rg->GetResult(i)); return false; } } return true; } bool Verify() { Pack(); ResultGrid * tempGrid = new ResultGrid(BitsPerResult, PackedData, PackedDataLength); bool isVerified = Equals(tempGrid); delete tempGrid; return isVerified; } // Compress a ResultGrid uint Pack() { if (PackedData != NULL) { return PackedDataLength; } #ifdef WINCE byte * cblock = (byte*) my_Tcl_Alloc(sizeof( byte[NumResultBytes + BytePacker::OverflowBytes])); uint csize = bytePacker->Pack(Data, cblock, NumResultBytes); PackedData = (byte*) my_Tcl_Alloc(sizeof(byte[csize])); #else byte * cblock = new byte[NumResultBytes + BytePacker::OverflowBytes]; uint csize = bytePacker->Pack(Data, cblock, NumResultBytes); PackedData = new byte[csize]; #endif PackedDataLength = csize; for (uint i=0; i < csize; i++) { PackedData[i] = cblock[i]; } HasBeenPacked = true; return csize; } // Decompress a ResultGrid that was constructed from compressed data uint Unpack() { if (Data != NULL) { return 0; } #ifdef WINCE Data = (byte*) my_Tcl_Alloc(sizeof( byte[NumResultBytes])); #else Data = new byte[NumResultBytes]; #endif if (bytePacker->Unpack(PackedData, Data, PackedDataLength, NumResultBytes) != OK) { fprintf(stderr, "Unpacking error\n"); exit(1); } return 0; } void ClearStats (void) { TotalResults = 0; TotalPackedBytes = 0; TotalUnpackedBytes = 0; } void UpdateStats (void) { TotalResults += NumResults; TotalUnpackedBytes += NumResultBytes; TotalPackedBytes += PackedDataLength; } void PrintStats (FILE * fp, const char * title) { if (title != NULL) { fprintf (fp, "%-6s ", title); } fprintf (fp, "%7u * %u-bit, %7u bytes -> %6u bytes, %5.2f%%, %4.2f bits/result\n", TotalResults, BitsPerResult, TotalUnpackedBytes, TotalPackedBytes, (double)TotalPackedBytes * 100.0 / (double)TotalUnpackedBytes, (double)TotalPackedBytes * 8.0 / (double)TotalResults); } }; ////////////////////////////////////////////////////////////////////// struct mtbEntryT { uint hash; ResultGrid * grid; mtbEntryT * next; }; typedef mtbEntryT * mtbEntryPtr; class MTB { private: const char * Name; const byte * PackedData; uint BitsPerResult; uint CapacityBits; uint Capacity; uint BucketMask; mtbEntryT ** Table; public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif MTB (const char * name, uint bitsPerResult, uint minCapacity) { Name = strDuplicate(name); BitsPerResult = bitsPerResult; CapacityBits = 1; while (true) { Capacity = 1 << CapacityBits; if (Capacity >= minCapacity) { break; } CapacityBits++; } BucketMask = Capacity - 1; #ifdef WINCE Table = (mtbEntryPtr*) my_Tcl_Alloc(sizeof( mtbEntryPtr [Capacity])); #else Table = new mtbEntryPtr [Capacity]; #endif for (uint i=0; i < Capacity; i++) { Table[i] = NULL; } } ~MTB() { #ifdef WINCE my_Tcl_Free( Name ); my_Tcl_Free( (char*) Table); #else delete Name; delete[] Table; #endif } const char * GetName() { return Name; } void SetPackedData (const byte * packedData) { PackedData = packedData; } uint Hash (squareT sq1, colorT stm) { return goodHashValues[sq1] ^ stm; } uint Hash (squareT sq1, squareT sq2, colorT stm) { return goodHashValues[sq1] ^ goodHashValues[sq2+64] ^ stm; } uint Hash (squareT sq1, squareT sq2, squareT sq3, colorT stm) { return goodHashValues[sq1] ^ goodHashValues[sq2+64] ^ goodHashValues[sq3+128] ^ stm; } void Add (squareT sq1, colorT stm, uint packedLength) { Add (Hash(sq1,stm), packedLength); } void Add (squareT sq1, squareT sq2, colorT stm, uint packedLength) { Add (Hash(sq1,sq2,stm), packedLength); } void Add (squareT sq1, squareT sq2, squareT sq3, colorT stm, uint packedLength) { Add (Hash(sq1,sq2,sq3,stm), packedLength); } void Add (uint hash, uint packedDataLength) { if (Find(hash) != NULL) { printf("Hash collision in MTB: %s\n", Name); return; } ResultGrid * grid = new ResultGrid (BitsPerResult, PackedData, packedDataLength); // To unpack all compressed memory tablebases at startup, // uncomment the grid->Unpack() call below. // grid->Unpack(); PackedData += packedDataLength; uint bucket = hash & BucketMask; #ifdef WINCE mtbEntryT * entry = (mtbEntryT * ) my_Tcl_Alloc(sizeof( mtbEntryT)); #else mtbEntryT * entry = new mtbEntryT; #endif entry->hash = hash; entry->grid = grid; entry->next = Table[bucket]; Table[bucket] = entry; } ResultGrid * Find (squareT sq1, colorT stm) { return Find (Hash(sq1,stm)); } ResultGrid * Find (squareT sq1, squareT sq2, colorT stm) { return Find (Hash(sq1,sq2,stm)); } ResultGrid * Find (squareT sq1, squareT sq2, squareT sq3, colorT stm) { return Find (Hash(sq1,sq2,sq3,stm)); } ResultGrid * Find (uint hash) { uint bucket = hash & BucketMask; mtbEntryT * entry = Table[bucket]; while (entry != NULL) { if (entry->hash == hash) { return entry->grid; } entry = entry->next; } return NULL; } uint LongestChainLength() { uint longest = 0; for (uint i=0; i < Capacity; i++) { uint length = 0; mtbEntryT * entry = Table[i]; while (entry != NULL) { length++; entry = entry->next; } if (length > longest) { longest = length; } } return longest; } }; #endif // SCID_MTB_H ////////////////////////////////////////////////////////////////////// // EOF: mtb.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/stralloc.h0000644000175000017500000001104411727223077016221 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: stralloc.h // String Allocator class // // Part of: Scid (Shane's Chess Information Database) // Version: 0.3 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_STRALLOC_H #define SCID_STRALLOC_H #include "common.h" // StrAllocator: a fast, space-efficient string allocation class. // Designed for allocating mostly short strings, but in large quantity, // where the usual deletion strategy is to delete all strings at once. // In Scid, this is most useful for the NameBase class, since the space // wasted by allocating many thousands of short strings can be huge, // especially in environments where new[] or malloc() rounds the // requested size to a multiple of 4 or 8 bytes and allocates an extra // 8 or so bytes for its own information, which is common. // In a StrAllocator object, no individual string is ever deleted, unless // it was the last one allocated. The space used is only freed when the // whole StrAlloc is cleared. // // The StrAllocator allocates memory in large chunks called buckets. The // default bucket size is 32000 bytes. To allow strings of any size, a // list is kept of all super-large strings (that exceed the bucket size) // which are allocated in the usual way. #define MIN_BUCKET_SIZE 100 // A sensible minimum bucket size. #define DEFAULT_BUCKET_SIZE 32000 #define DEFAULT_ALIGNMENT 1 struct largeStrT { uint size; char * data; largeStrT * next; }; struct bucketT { uint bytesFree; char * data; bucketT * next; }; class StrAllocator { private: uint BucketSize; bucketT * FirstBucket; largeStrT * LargeList; // We note last alloc details to avoid wasting space when the last // thing allocated is deleted and re-allocated (as happens often). char * LastAllocAddress; uint LastAllocSize; void NewBucket(); char * NewLarge (uint size); // When size is too big for a bucket. public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif StrAllocator () { BucketSize = DEFAULT_BUCKET_SIZE; FirstBucket = NULL; LargeList = NULL; LastAllocAddress = NULL; }; StrAllocator (uint bucketSize) { ASSERT (bucketSize >= MIN_BUCKET_SIZE); BucketSize = bucketSize; FirstBucket = NULL; LargeList = NULL; LastAllocAddress = NULL; } ~StrAllocator() { DeleteAll(); } inline void SetBucketSize (uint size); void DeleteAll(); // Deletes all strings. inline void Delete (const char * str); // Deletes one string. inline char * New (uint numBytes); // Allocates a new string. char * Duplicate (const char * original); // Duplicates a string. uint MemoryUsed (); // Returns total allocated memory. }; inline void StrAllocator::SetBucketSize (uint size) { ASSERT (size >= MIN_BUCKET_SIZE); // Assert a sensible bucket size. // We can ONLY change the bucket size when nothing has been allocated. if (FirstBucket || LargeList) { return; } BucketSize = size; } // Deleting an individual string: its space only becomes immediately free // if it was the most recent string allocated. inline void StrAllocator::Delete (const char * str) { ASSERT (str != NULL); if (str == LastAllocAddress) { ASSERT (FirstBucket != NULL); FirstBucket->bytesFree += LastAllocSize; LastAllocAddress = NULL; LastAllocSize = 0; } } inline char * StrAllocator::New (uint size) { if (size > BucketSize) { return NewLarge (size); } if (FirstBucket == NULL || FirstBucket->bytesFree < size) { NewBucket(); } LastAllocAddress = &(FirstBucket->data[BucketSize - FirstBucket->bytesFree]); LastAllocSize = size; FirstBucket->bytesFree -= size; return LastAllocAddress; } #endif // #ifndef SCID_STRALLOC_H ////////////////////////////////////////////////////////////////////// // EOF: stralloc.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/dstring.h0000644000175000017500000000543011727223077016052 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: dstring.h // Dynamic String class // // Part of: Scid (Shane's Chess Information Database) // Version: 2.2 // // Notice: Copyright (c) 2000 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // A DString is a string that can extend its allocated space when necessary // and is efficient for append operations since the end of the string is // remembered. // The allocated space for the string is doubled whenever necessary, so it // grows efficiently (at the cost of some wasted space) even for very large // strings. #ifndef SCID_DSTRING_H #define SCID_DSTRING_H #include "common.h" const uint DSTRING_MinCapacity = 64; class DString { private: char * Start; uint Len; uint Capacity; void Init (uint capacity); void Extend (uint neededLength); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif DString() { Init (DSTRING_MinCapacity); } DString (uint size) { Init (size); } ~DString() { #ifdef WINCE my_Tcl_Free( Start); #else delete[] Start; #endif } void Clear (void) { Start[0] = 0; Len = 0; } const char * Data (void) { return (const char *) Start; } uint Length (void) { return Len; } void AddChar (char ch); void AppendUint (uint i); void AppendInt (int i); void Append (const char * str); void Append (uint i); void Append (const char * s1, const char * s2); void Append (const char * s1, uint i2); void Append (uint i1, const char * s2); void Append (uint i1, uint i2); void Append (const char * s1, const char * s2, const char * s3); void Append (const char * s1, const char * s2, uint i3); void Append (const char * s1, uint i2, const char * s3); void Append (uint i1, const char * s2, const char * s3); void Append (const char * s1, const char * s2, const char * s3, const char * s4); void Append (const char * s1, const char * s2, const char * s3, uint i4); void Append (const char * s1, const char * s2, uint i3, const char * s4); void Append (const char * s1, uint i2, const char * s3, const char * s4); void Append (uint i1, const char * s2, const char * s3, const char * s4); void Append (const char * s1, const char * s2, const char * s3, const char * s4, const char * s5); }; #endif // SCID_DSTRING_H scid-4.3.0.cvs20120311/src/filter.h0000644000175000017500000001257611727223077015676 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: filter.h // Filter and CompressedFilter Classes // // Part of: Scid (Shane's Chess Information Database) // Version: 1.4 // // Notice: Copyright (c) 2000 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_FILTER_H #define SCID_FILTER_H #include "common.h" #include "misc.h" ////////////////////////////////////////////////////////////////////// // // Filter class: // // Holds the results of a database search: one byte per game, // indicating whether that game is included in the filter or not. // A value of 0 indicates the game is excluded, or 1-255 indicates // the game is included, and what position to show when the game // is loaded: 1 means ths start position, 2 means the position after // Whites first move, etc. class Filter { private: uint FilterSize; // Number of values in filter. uint FilterCount; // Number of nonzero values in filter. uint Capacity; // Number of bytes allocated for Data[]. byte * Data; // The actual filter data. #ifndef WINCE byte * oldDataTree; // keeps filter data to speed Tree searches (fastMode) #endif uint CachedFilteredCount; // These members cache the most recent uint CachedIndex; // filteteredCount to index translation. void Allocate(); void Free(); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif Filter () { Init (0); } Filter (uint size) { Init (size); } ~Filter () { Free(); } void Init (uint size); uint Size (void) { return FilterSize; } uint Count (void) { return FilterCount; } void Set (uint index, byte value); // Sets the value at index. byte Get (uint index); // Gets the value at index. void Fill (byte value); // Sets all values. void Append (byte value); // Appends one value. void SetCapacity (uint size); void Merge (Filter *src1, Filter *src2); uint IndexToFilteredCount (uint index); uint FilteredCountToIndex (uint filteredCount); const byte * GetData () { return (const byte *) Data; } // Used by CompressedFilter class. #ifndef WINCE // declarations for "fastmode" tree search (should be made private with getters/setters ?) const byte * GetOldDataTree () { return (const byte *) oldDataTree; } // Used by Tree in fast mode bool isValidOldDataTree; // true if the filter was saved from cache or calculated from all games ushort oldDataTreePly; void saveFilterForFastMode(uint ply); #endif }; inline void Filter::Set (uint index, byte value) { ASSERT (index < FilterSize); CachedFilteredCount = 0; if (Get(index) != 0) { FilterCount--; } if (value != 0) { FilterCount++; } if (Data == NULL){ if (value == 1) return; Allocate(); } Data[index] = value; } inline byte Filter::Get (uint index) { ASSERT (index < FilterSize); return ( Data == NULL ? 1 : Data[index]); } ////////////////////////////////////////////////////////////////////// // // CompressedFilter class: // Holds the same data as a filter, in compressed format. // Random access to individual values is not possible. // A CompressedFilter is created from, or restored to, a regular // filter with the methods CompressFrom() and UncompressTo(). class CompressedFilter { private: uint CFilterSize; uint CFilterCount; uint CompressedLength; byte * CompressedData; public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif CompressedFilter (void) { Init(); } ~CompressedFilter (void) { Clear(); } inline void Init(); inline void Clear(); uint Size() { return CFilterSize; } uint Count() { return CFilterCount; } errorT Verify (Filter * filter); void CompressFrom (Filter * filter); errorT UncompressTo (Filter * filter); #ifdef WINCE errorT WriteToFile (/*FILE **/Tcl_Channel fp); errorT ReadFromFile (/*FILE **/Tcl_Channel fp); #else errorT WriteToFile (FILE * fp); errorT ReadFromFile (FILE * fp); #endif }; inline void CompressedFilter::Init () { CFilterSize = 0; CFilterCount = 0; CompressedLength = 0; CompressedData = NULL; } inline void CompressedFilter::Clear () { #ifdef WINCE if (CompressedData != NULL) { my_Tcl_Free((char*) CompressedData); } #else if (CompressedData != NULL) { delete[] CompressedData; } #endif Init(); } #endif // #ifndef SCID_FILTER_H ////////////////////////////////////////////////////////////////////// // EOF: filter.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/misc.h0000644000175000017500000003722111727223077015336 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: misc.h // Miscellaneous routines (File I/O, etc) // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2001-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_MISC_H #define SCID_MISC_H #include "common.h" #include "error.h" #include // For isspace(), etc #include #ifndef _CURRENT_TCL_INTERP_ extern Tcl_Interp * currentTclInterp; #define _CURRENT_TCL_INTERP_ #endif // Scid initialisation routine: this MUST be called before such things as // computing chess moves are done, since it sets up piece movement tables. // void scid_Init (); // ECO string routines // void eco_ToString (ecoT ecoCode, char * ecoStr, bool extensions = true); inline void eco_ToBasicString (ecoT ecoCode, char * ecoStr) { eco_ToString (ecoCode, ecoStr, false); } inline void eco_ToExtendedString (ecoT ecoCode, char * ecoStr) { eco_ToString (ecoCode, ecoStr, true); } ecoT eco_FromString (const char * ecoStr); ecoT eco_LastSubCode (ecoT ecoCode); ecoT eco_BasicCode (ecoT ecoCode); // String routines. Some are identical to ANSI standard functions, but // I have included them: // (a) to keep nice consistent naming comventions, e.g. strCopy. // (b) so stats can easily be kept by modifying the functions. // (c) so some can be made inline for speed if necessary. // // Currently, strLength() and strPrefix() are inline. // strCompare_INLINE() is an inline equivalent of strCompare(). // charIsSpace: // Return true if the char is whitespace, including ASCII-160 (a // non-breaking space, = 240 octal or A0 hex). inline bool charIsSpace (byte ch) { return (isspace(ch) || ch == 160); } char * strDuplicate (const char * str); int strCompare (const char * s1, const char * s2); int strCaseCompare (const char * s1, const char * s2); int strCompareRound (const char * sleft, const char * sright); inline bool strEqual (const char * s1, const char * s2) { return (strCompare (s1, s2) == 0); } inline bool strCaseEqual (const char * s1, const char * s2) { return (strCaseCompare (s1, s2) == 0); } void strCopy (char * target, const char * original); void strCopyExclude (char * target, const char * original, const char * excludeChars); char * strAppend (char * target, const char * extra); char * strAppend (char * target, uint u); char * strAppend (char * target, int i); char * strAppend (char * target, const char * s1, const char * s2); char * strAppend (char * target, const char * s1, const char * s2); char * strAppend (char * target, const char * s1, const char * s2, const char * s3); char * strAppend (char * target, const char * s1, const char * s2, const char * s4); uint strPrefix (const char * s1, const char * s2); uint strPad (char * target, const char * orig, int length, char pad); const char * strFirstChar (const char * target, char matchChar); const char * strLastChar (const char * target, char matchChar); void strStrip (char * str, char ch); static const char WHITESPACE[6] = " \t\r\n"; const char * strTrimLeft (const char * target, const char * trimChars); inline const char * strTrimLeft (const char * target) { return strTrimLeft (target, WHITESPACE); } uint strTrimRight (char * target, const char * trimChars); inline uint strTrimRight (char * target) { return strTrimRight (target, WHITESPACE); } uint strTrimSuffix (char * target, char suffixChar); void strTrimDate (char * str); void strTrimMarkCodes (char * str); void strTrimMarkup (char * str); void strTrimSurname (char * str, uint initials); inline void strTrimSurname (char * str) { strTrimSurname (str, 0); } const char * strFirstWord (const char * str); const char * strNextWord (const char * str); // strPlural: // Returns the empty string if its parameter is 1, or "s" otherwise. inline const char * strPlural (uint x) { return (x == 1 ? "" : "s"); } uint strSingleSpace (char * str); bool strIsAllWhitespace (const char * str); bool strIsUnknownName (const char * str); // strIsPrefix: returns true if prefix is a prefix of longStr. bool strIsPrefix (const char * prefix, const char * longStr); // strIsCasePrefix: like strIsPrefix, but case-insensitive. bool strIsCasePrefix (const char * prefix, const char * longStr); // strIsAlphaPrefix: like strIsPrefix, but case-insensitive and space // characters are ignored. bool strIsAlphaPrefix (const char * prefix, const char * longStr); // strIsSurnameOnly: returns true if a string appears to only // contain a surname. bool strIsSurnameOnly (const char * name); // strAlphaContains: returns true if longStr contains keyStr, // case-insensitive and ignoring spaces. strContains is similar but // is case-sensitive and does not ignore spaces. bool strAlphaContains (const char * longStr, const char * keyStr); bool strContains (const char * longStr, const char * keyStr); int strContainsIndex (const char * longStr, const char * keyStr); bool strGetBoolean (const char * str); int strGetInteger (const char * str); uint strGetUnsigned (const char * str); void strGetIntegers (const char * str, int * results, uint nResults); void strGetUnsigneds (const char * str, uint * results, uint nResults); void strGetBooleans (const char * str, bool * results, uint nResults); resultT strGetResult (const char * str); typedef uint flagT; const flagT FLAG_EMPTY = 0; const flagT FLAG_YES = 1; const flagT FLAG_NO = 2; const flagT FLAG_BOTH = 3; inline bool flag_Yes (flagT t) { return (t & FLAG_YES); } inline bool flag_No (flagT t) { return (t & FLAG_NO); } flagT strGetFlag (const char * str); squareT strGetSquare (const char * str); inline uint strTrimFileSuffix (char * target) { return strTrimSuffix (target, '.'); } inline const char * strFileSuffix (const char * target) { return strLastChar (target, '.'); } int strUniqueExactMatch (const char * keyStr, const char ** strTable, bool exact); inline int strUniqueMatch (const char * keyStr, const char ** strTable) { return strUniqueExactMatch (keyStr, strTable, false); } inline int strExactMatch (const char * keyStr, const char ** strTable) { return strUniqueExactMatch (keyStr, strTable, true); } inline bool strContainsChar (const char * str, char ch) { while (*str) { if (*str == ch) { return true; } str++; } return false; } inline int strCompare_INLINE (const char *s1, const char *s2) { while (1) { if (*s1 != *s2) { return ((int) *s1) - ((int) *s2); } if (*s1 == 0) break; s1++; s2++; } return 0; } inline uint strLength (const char * str) { ASSERT(str != NULL); uint len = 0; while (*str != 0) { len++; str++; } return len; } ////////////////////////////////////////////////////////////////////// // MATH functions //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // log2(): Returns logarithm (base 2) of the integer x. // log2(0 or 1) = 0, log2(2 or 3) = 1, // log2(4/5/6/7) = 2, etc. // inline uint log2 (uint x) { uint result = 0; x = x >> 1; while (x) { result++; x = x >> 1; } return result; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // isPowerOf2(): // Fast test for a power of two. Returns true (nonzero) only // if x is a power of two (0, 1, 2, 4, 8, 16, etc). // inline uint isPowerOf2 (uint x) { return ((x & (x-1)) == 0); } ////////////////////////////////////////////////////////////////////// // FILE I/O Routines. uint fileSize (const char * name, const char * suffix); uint rawFileSize (const char * name); uint gzipFileSize (const char * name); // bool fileExists (const char * fname, const char * suffix); errorT renameFile (const char * oldName, const char * newName, const char * suffix); errorT removeFile (const char * fname, const char * suffix); errorT createFile (const char * fname, const char * suffix); #ifdef WINCE errorT writeString (/*FILE * */Tcl_Channel fp, char * str, uint length); errorT readString (/*FILE * */Tcl_Channel fp, char * str, uint length); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeOneByte(), readOneByte() inline errorT writeOneByte (/*FILE * */Tcl_Channel fp, byte value) { ASSERT(fp != NULL); return (/*putc(value, fp)*/my_Tcl_Write(fp, (char *)&value, 1) == -1) ? ERROR_FileWrite : OK; } inline byte readOneByte (/*FILE * */Tcl_Channel fp) { ASSERT(fp != NULL); byte b; my_Tcl_Read(fp, (char *)&b,1); //byte b = getc(fp); return b;//getc(fp); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeTwoBytes(), readTwoBytes() inline errorT writeTwoBytes (/*FILE * */Tcl_Channel fp, uint value) { ASSERT(fp != NULL); int result; //int v = (value >> 8) & 255; putc(v, fp); char v = (value >> 8) & 255; my_Tcl_Write(fp, &v, 1); //v = value & 255; putc(v, fp); v = value & 255; result = my_Tcl_Write(fp, &v, 1); return (result == -1 ? ERROR_FileWrite : OK); } inline uint readTwoBytes (/*FILE * */Tcl_Channel fp) { ASSERT(fp != NULL); byte b; my_Tcl_Read(fp, (char *)&b,1); uint v = b;//getc(fp); v = v << 8; my_Tcl_Read(fp, (char *)&b,1); v += b; //v += getc(fp); return v; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!! // writeThreeBytes(), readThreeBytes() inline errorT writeThreeBytes (/*FILE * */Tcl_Channel fp, uint value) { ASSERT(fp != NULL); int result; // int v = (value >> 16) & 255; putc(v, fp); // v = (value >> 8) & 255; putc(v, fp); // v = value & 255; putc(v, fp); char v = (value >> 16) & 255; my_Tcl_Write(fp, &v, 1); v = (value >> 8) & 255; my_Tcl_Write(fp, &v, 1); v = value & 255; result = my_Tcl_Write(fp, &v, 1); return (result == -1 ? ERROR_FileWrite : OK); } inline uint readThreeBytes (/*FILE * */Tcl_Channel fp) { ASSERT(fp != NULL); byte b; //uint v = getc(fp); my_Tcl_Read(fp, (char *)&b,1); uint v = (uint)b; v = v << 8; my_Tcl_Read(fp, (char *)&b,1); v += (uint)b;//v += (uint) getc(fp); v = v << 8; my_Tcl_Read(fp, (char *)&b,1); v += (uint)b; //v += (uint) getc(fp); return v; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeFourBytes(), readFourBytes() inline errorT writeFourBytes (/*FILE * */Tcl_Channel fp, uint value) { ASSERT(fp != NULL); int result; // uint v = (value >> 24) & 255; my_Tcl_Write(fp, (char*)&v, 1);//putc(v, fp); // v = (value >> 16) & 255; my_Tcl_Write(fp, (char*)&v, 1);//putc(v, fp); // v = (value >> 8) & 255; my_Tcl_Write(fp, (char*)&v, 1);//putc(v, fp); // v = value & 255; result = my_Tcl_Write(fp, (char*)&v, 1);//result = putc(v, fp); char v = (value >> 24) & 255; my_Tcl_Write(fp, &v, 1); v = (value >> 16) & 255; my_Tcl_Write(fp, &v, 1); v = (value >> 8) & 255; my_Tcl_Write(fp, &v, 1); v = value & 255; result = my_Tcl_Write(fp, &v, 1); return (result == -1 ? ERROR_FileWrite : OK); } inline uint readFourBytes (/*FILE * */Tcl_Channel fp) { ASSERT(fp != NULL); byte b; my_Tcl_Read(fp, (char *)&b,1); uint v = b; //getc(fp); v = v << 8; my_Tcl_Read(fp, (char *)&b,1); v += (uint)b;//v += (uint) getc(fp); v = v << 8; my_Tcl_Read(fp, (char *)&b,1); v += (uint)b;//v += (uint) getc(fp); v = v << 8; my_Tcl_Read(fp, (char *)&b,1); v += (uint)b;//v += (uint) getc(fp); return v; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // readCompactUint, writeCompactUint: // Read/write an unsigned int using a variable number // of bytes: 1 for 0-127, 2 for 128-16383, etc. inline errorT writeCompactUint (/*FILE * */Tcl_Channel fp, uint value) { ASSERT (fp != NULL); int result; char c; while (true) { if (value < 128) { result = my_Tcl_Write(fp, (char*)&value, 1);//putc (value, fp); break; } c = (value & 127) | 128; my_Tcl_Write(fp, &c, 1); //putc ((value & 127) | 128, fp); value = value >> 7; } return (result == -1 ? ERROR_FileWrite : OK); } inline uint readCompactUint (/*FILE * */Tcl_Channel fp) { ASSERT (fp != NULL); uint v = 0; uint bitIndex = 0; byte c; while (true) { //uint b = (uint) getc(fp); my_Tcl_Read(fp, (char *)&c,1); uint b = (uint) c; v = v | ((b & 127) << bitIndex); if (! (b & 128)) { break; } bitIndex += 7; } return v; } #else errorT writeString (FILE * fp, char * str, uint length); errorT readString (FILE * fp, char * str, uint length); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeOneByte(), readOneByte() inline errorT writeOneByte (FILE * fp, byte value) { ASSERT(fp != NULL); return (putc(value, fp) == EOF) ? ERROR_FileWrite : OK; } inline byte readOneByte (FILE * fp) { ASSERT(fp != NULL); return (byte) getc(fp); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeTwoBytes(), readTwoBytes() inline errorT writeTwoBytes (FILE * fp, uint value) { ASSERT(fp != NULL); int result; int v = (value >> 8) & 255; putc(v, fp); v = value & 255; result = putc(v, fp); return (result == EOF ? ERROR_FileWrite : OK); } inline uint readTwoBytes (FILE *fp) { ASSERT(fp != NULL); uint v = getc(fp); v = v << 8; v += getc(fp); return v; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!! // writeThreeBytes(), readThreeBytes() inline errorT writeThreeBytes (FILE * fp, uint value) { ASSERT(fp != NULL); int result; int v = (value >> 16) & 255; putc(v, fp); v = (value >> 8) & 255; putc(v, fp); v = value & 255; result = putc(v, fp); return (result == EOF ? ERROR_FileWrite : OK); } inline uint readThreeBytes (FILE * fp) { ASSERT(fp != NULL); uint v = getc(fp); v = v << 8; v += (uint) getc(fp); v = v << 8; v += (uint) getc(fp); return v; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // writeFourBytes(), readFourBytes() inline errorT writeFourBytes (FILE * fp, uint value) { ASSERT(fp != NULL); int result; uint v = (value >> 24) & 255; putc(v, fp); v = (value >> 16) & 255; putc(v, fp); v = (value >> 8) & 255; putc(v, fp); v = value & 255; result = putc(v, fp); return (result == EOF ? ERROR_FileWrite : OK); } inline uint readFourBytes (FILE * fp) { ASSERT(fp != NULL); uint v = getc(fp); v = v << 8; v += (uint) getc(fp); v = v << 8; v += (uint) getc(fp); v = v << 8; v += (uint) getc(fp); return v; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // readCompactUint, writeCompactUint: // Read/write an unsigned int using a variable number // of bytes: 1 for 0-127, 2 for 128-16383, etc. inline errorT writeCompactUint (FILE * fp, uint value) { ASSERT (fp != NULL); int result; while (true) { if (value < 128) { result = putc (value, fp); break; } putc ((value & 127) | 128, fp); value = value >> 7; } return (result == EOF ? ERROR_FileWrite : OK); } inline uint readCompactUint (FILE * fp) { ASSERT (fp != NULL); uint v = 0; uint bitIndex = 0; while (true) { uint b = (uint) getc(fp); v = v | ((b & 127) << bitIndex); if (! (b & 128)) { break; } bitIndex += 7; } return v; } #endif // WINCE #endif // #ifdef SCID_MISC_H ////////////////////////////////////////////////////////////////////// // EOF: misc.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/probe.cpp0000644000175000017500000002674111727223077016052 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: probe.cpp // Scid interface to Nalimov Tablebase decoder // // Part of: Scid (Shane's Chess Information Database) // Version: 3.4 // // Notice: Copyright (c) 2000-2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include #include "matsig.h" #include "probe.h" #ifdef SCID_USE_TB #define NEW #define XX 127 // Invalid EP square. Can be any value greater than 63, // which represents H8. #define C_PIECES 3 // Maximum number of pieces of one color and type. // PROBE_MAX_PER_SIDE = Maximum number of pieces per side, including Kings. // It will be 3, unless T41_INCLUDE is defines which allows use of the // 3-plus-king vs lone king bases. #ifdef T41_INCLUDE #define PROBE_MAX_PER_SIDE 4 #else #define PROBE_MAX_PER_SIDE 3 #endif typedef unsigned int INDEX; typedef unsigned int square; #define SqFindKing(psq) (psq[C_PIECES * (x_pieceKing - 1)]) #define SqFindOne(psq,pce) (psq[C_PIECES * (pce - 1)]) #define SqFindFirst(psq,pce) (psq[C_PIECES * (pce - 1)]) #define SqFindSecond(psq,pce) (psq[C_PIECES * (pce - 1) + 1]) #define SqFindThird(psq,pce) (psq[C_PIECES * (pce - 1) + 2]) #include "egtb/tbindex.cpp" // Default, minimum and maximum Tablebase cache size: static const uint EGTB_CACHE_SIZE_MIN = 512 * 1024; // 0.5 MB static const uint EGTB_CACHE_SIZE_DEFAULT = 512 * 1024; // 0.5 MB static const uint EGTB_CACHE_SIZE_MAX = 128 * 1024 * 1024; // 128 MB static void * EGTB_cache = NULL; static uint EGTB_maxpieces = 0; static uint EGTB_cachesize = EGTB_CACHE_SIZE_DEFAULT; // scid_TB_compiled: // Returns true if Tablebase support has been compiled, false otherwise. bool scid_TB_compiled (void) { return true; } // scid_TB_MaxPieces: // Returns the largest number of pieces in any registered tablebase, // including kings and pawns (e.g. kpkp tablebase has 4 pieces). uint scid_TB_MaxPieces (void) { return EGTB_maxpieces; } uint scid_TB_CacheSize (void) { return EGTB_cachesize; } void scid_TB_SetCacheSize (uint cachesize) { EGTB_cachesize = cachesize; if (cachesize < EGTB_CACHE_SIZE_MIN) { EGTB_cachesize = EGTB_CACHE_SIZE_MIN; } if (cachesize > EGTB_CACHE_SIZE_MAX) { EGTB_cachesize = EGTB_CACHE_SIZE_MAX; } } // scid_TB_init: // Initialises the tablebases given a directory string. All the tables // to be used must be in the directory; subdirectories are not // scanned. However, the directory string may have more than one // dircetory in it, separated by commas (,) or semicolons (;). // Returns the same value as scid_TB_MaxPieces(). uint scid_TB_Init (const char * egtb_path) { EGTB_maxpieces = (uint) IInitializeTb ((char *) egtb_path); #ifdef WINCE if (EGTB_cache != NULL) { my_Tcl_Free( (char *) EGTB_cache); } EGTB_cache = (byte *)my_Tcl_Alloc(sizeof(byte [EGTB_cachesize])); #else if (EGTB_cache != NULL) { delete[] (byte *) EGTB_cache; } EGTB_cache = new byte [EGTB_cachesize]; #endif FTbSetCacheSize (EGTB_cache, EGTB_cachesize); return EGTB_maxpieces; } // scid_TB_Available: // Given a material configuration, returns a boolean indicating // if the tablebase for that material is registered for use. // Note: there are actually TWO tablebases for any material // combination, one for each side to move (file suffixes .nbw.emd // and .nbb.emd); this function returns true if EITHER one is // registered (since having only one of the two is usually good // enough to solve the endgame). bool scid_TB_Available (matSigT matsig) { if (EGTB_maxpieces == 0) { return 0; } int counts [10]; counts [0] = matsig_getCount (matsig, WP); counts [1] = matsig_getCount (matsig, WN); counts [2] = matsig_getCount (matsig, WB); counts [3] = matsig_getCount (matsig, WR); counts [4] = matsig_getCount (matsig, WQ); counts [5] = matsig_getCount (matsig, BP); counts [6] = matsig_getCount (matsig, BN); counts [7] = matsig_getCount (matsig, BB); counts [8] = matsig_getCount (matsig, BR); counts [9] = matsig_getCount (matsig, BQ); // Quickly check that there is not too much material: uint wc = 1 + counts[0] + counts[1] + counts[2] + counts[3] + counts[4]; uint bc = 1 + counts[5] + counts[6] + counts[7] + counts[8] + counts[9]; uint bothc = wc + bc; if (bothc > EGTB_maxpieces || wc > PROBE_MAX_PER_SIDE || bc > PROBE_MAX_PER_SIDE) { return false; } // If two lone Kings, just return true: if (bothc == 2) { return true; } // If KB-K or KN-K, return true because they are all-drawn tablebases: if (bothc == 3) { if (counts[1] == 1 || counts[2] == 1 || counts[6] == 1 || counts[7] == 1) { return true; } } int iTb = IDescFindFromCounters (counts); if (iTb == 0) { return false; } if (iTb < 0) { iTb = -iTb; } // Return true if either of the two TBs for this material is available: if (FRegistered (iTb, 0)) { return true; } if (FRegistered (iTb, 1)) { return true; } return false; } // scid_TB_Probe: // Given a position, probes the appropriate tablebase and puts the // result in the integer pointed to by . // Returns OK if the probe was successful, or ERROR_NotFound otherwise. // // The value placed in score is as follows, where STM is the side to move: // 3 STM mates in 3, etc. // 2 STM mates in 2. // 1 STM mates in 1. // 0 Draw. // -1 STM is checkmated. // -2 STM mated in 1. // -3 STM mated in 2, etc. // errorT scid_TB_Probe (Position * pos, int * score) { int pieceCounts [10]; uint wSquares [C_PIECES * 6], bSquares [C_PIECES * 6]; uint * wSqs, * bSqs; int iTb, color, flip; uint npieces = pos->GetCount(WHITE) + pos->GetCount(BLACK); // Check that position has few enough pieces on each side: if (npieces > EGTB_maxpieces) { return ERROR_NotFound; } if (pos->GetCount(WHITE) > PROBE_MAX_PER_SIDE) { return ERROR_NotFound; } if (pos->GetCount(BLACK) > PROBE_MAX_PER_SIDE) { return ERROR_NotFound; } // If just two Kings, return "draw" now: if (npieces <= 2) { *score = 0; return OK; } // If just a lone bishop or knight and kings, return draw now: if (npieces == 3) { if (pos->PieceCount(WB) == 1 || pos->PieceCount(BB) == 1 || pos->PieceCount(WN) == 1 || pos->PieceCount(WN) == 1) { *score = 0; return OK; } } // Fill in array of piece counts and find if the tablebase for this // material configuration and side to move is registered: pieceCounts [0] = pos->PieceCount(WP); pieceCounts [1] = pos->PieceCount(WN); pieceCounts [2] = pos->PieceCount(WB); pieceCounts [3] = pos->PieceCount(WR); pieceCounts [4] = pos->PieceCount(WQ); pieceCounts [5] = pos->PieceCount(BP); pieceCounts [6] = pos->PieceCount(BN); pieceCounts [7] = pos->PieceCount(BB); pieceCounts [8] = pos->PieceCount(BR); pieceCounts [9] = pos->PieceCount(BQ); iTb = IDescFindFromCounters (pieceCounts); if (iTb == 0) { return ERROR_NotFound; } if (iTb > 0) { color = (pos->GetToMove() == WHITE) ? 0 : 1; flip = 0; wSqs = wSquares; bSqs = bSquares; } else { color = (pos->GetToMove() == WHITE) ? 1 : 0; flip = 1; wSqs = bSquares; bSqs = wSquares; iTb = - iTb; } if (! FRegistered (iTb, color)) { return ERROR_NotFound; } // Now we know the tablebase is registered. Fill in the array of // square values for each piece: uint * firstSq[16]; firstSq[EMPTY] = NULL; firstSq[WK] = &(wSquares [C_PIECES * (x_pieceKing - 1) ]); firstSq[BK] = &(bSquares [C_PIECES * (x_pieceKing - 1) ]); firstSq[WQ] = &(wSquares [C_PIECES * (x_pieceQueen - 1) ]); firstSq[BQ] = &(bSquares [C_PIECES * (x_pieceQueen - 1) ]); firstSq[WR] = &(wSquares [C_PIECES * (x_pieceRook - 1) ]); firstSq[BR] = &(bSquares [C_PIECES * (x_pieceRook - 1) ]); firstSq[WB] = &(wSquares [C_PIECES * (x_pieceBishop - 1) ]); firstSq[BB] = &(bSquares [C_PIECES * (x_pieceBishop - 1) ]); firstSq[WN] = &(wSquares [C_PIECES * (x_pieceKnight - 1) ]); firstSq[BN] = &(bSquares [C_PIECES * (x_pieceKnight - 1) ]); firstSq[WP] = &(wSquares [C_PIECES * (x_piecePawn - 1) ]); firstSq[BP] = &(bSquares [C_PIECES * (x_piecePawn - 1) ]); pieceT * board = pos->GetBoard(); for (squareT sq = A1; sq <= H8; sq++) { pieceT pce = board[sq]; if (pce != EMPTY) { *(firstSq[pce]) = (int) sq; firstSq[pce]++; } } // Set En Passant square it should only be a value other than XX if // there is an EP target square, AND there is a possible EP capture. // Specifying a target EP square (since a pawn has just moved two // squares) when there is no enemy pawn actually able to capture // en passant was able to cause the tablebase to give incorrect // results in testing, so that is why we must check here whether an // EP capture is possible. squareT enPassant = pos->GetEPTarget(); if (enPassant != NULL_SQUARE) { bool possibleEP = false; if (pos->GetToMove() == BLACK) { // White just made a 2-square pawn move: squareT left = square_Move (enPassant, UP_LEFT); if (left != NULL_SQUARE && board[left] == BP) { possibleEP = true; } squareT right = square_Move (enPassant, UP_RIGHT); if (right != NULL_SQUARE && board[right] == BP) { possibleEP = true; } } else { // BLACK just made a 2-square pawn move: squareT left = square_Move (enPassant, DOWN_LEFT); if (left != NULL_SQUARE && board[left] == WP) { possibleEP = true; } squareT right = square_Move (enPassant, DOWN_RIGHT); if (right != NULL_SQUARE && board[right] == WP) { possibleEP = true; } } if (! possibleEP) { enPassant = NULL_SQUARE; } } int epTarget = (int) enPassant; if (enPassant == NULL_SQUARE) { epTarget = XX; } // Now probe the tablebase: INDEX index = PfnIndCalc(iTb,color) (wSqs, bSqs, epTarget, flip); int tbscore = L_TbtProbeTable (iTb, color, index); if (tbscore == bev_broken) { return ERROR_NotFound; } // Convert the tablebase score to the format we want and return it: int distance = tbscore; if (tbscore > 0) { distance = 32767 - tbscore; } else if (tbscore < 0) { distance = -32767 - tbscore; } *score = distance; return OK; } #else //////////////////////////////////////////////////////////// // // SCID_USE_TB is not defined, so compile empty functions: bool scid_TB_compiled (void) { return false; } uint scid_TB_MaxPieces (void) { return 0; } uint scid_TB_CacheSize (void) { return 0; } void scid_TB_SetCacheSize (uint cachesize) { return; } uint scid_TB_Init (const char * egtb_path) { return 0; } bool scid_TB_Available (matSigT matsig) { return false; } errorT scid_TB_Probe (Position * pos, int * score) { return ERROR_NotFound; } #endif ////////////////////////////////////////////////////////////////////// /// END of probe.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/bytebuf.cpp0000644000175000017500000002227611727223077016402 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: bytebuf.cpp // ByteBuffer class for Scid. // // Part of: Scid (Shane's Chess Information Database) // Version: 0.3 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "error.h" #include "bytebuf.h" #include #include //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::Init(): // Initialises the ByteBuffer. // void ByteBuffer::Init() { BufferSize = ReadPos = ByteCount = 0; Buffer = Current = NULL; AllocatedBuffer = NULL; ExternalBuffer = NULL; Err = OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::Empty(): // Empties the ByteBuffer. // void ByteBuffer::Empty() { ReadPos = ByteCount = 0; ExternalBuffer = NULL; Buffer = AllocatedBuffer; Current = Buffer; Err = OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::SetBufferSize(): // Sets the ByteBuffer's allocated buffer size. // void ByteBuffer::SetBufferSize (uint length) { #ifdef WINCE if (AllocatedBuffer) { my_Tcl_Free((char*) AllocatedBuffer); } AllocatedBuffer = (byte*)my_Tcl_Alloc(sizeof( byte[length])); #else if (AllocatedBuffer) { delete[] AllocatedBuffer; } AllocatedBuffer = new byte[length]; #endif Buffer = AllocatedBuffer; Current = Buffer; ReadPos = ByteCount = 0; BufferSize = length; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::BackToStart(): // Sets the ByteBuffer's read position back to the buffer start. // void ByteBuffer::BackToStart() { ReadPos = 0; Current = Buffer; Err = OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::ProvideExternal(): // Provides an external buffer to use instead of the allocated // buffer. This is used when the buffer is only going to be read // and it would waste time (and degrade performance) to copy the // data to the buffer's allocated space first. // void ByteBuffer::ProvideExternal (byte * data, uint length) { ExternalBuffer = data; ByteCount = length; ReadPos = 0; Current = Buffer = ExternalBuffer; Err = OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::RemoveExternal(): // Removes the external buffer previously provided. // void ByteBuffer::RemoveExternal () { Empty(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::Get2Bytes(), Put2Bytes(), // Get3Bytes(), Put3Bytes(), Get4Bytes(), Put4Bytes(): uint ByteBuffer::Get2Bytes () { ASSERT(Current != NULL); if (ReadPos + 2 > ByteCount) { Err = ERROR_BufferRead; return 0; } uint val; val = *Current; Current++; val = val << 8; val += *Current; Current++; ReadPos += 2; return val; } void ByteBuffer::Put2Bytes (uint value) { ASSERT(Current != NULL); *Current = ((value >> 8) & 255); Current++; *Current = (value & 255); Current++; ByteCount += 2; } void ByteBuffer::Put3Bytes (uint value) { ASSERT(Current != NULL); *Current = (value & 255); Current++; *Current = ((value >> 8) & 255); Current++; *Current = ((value >> 16) & 255); Current++; ByteCount += 3; } void ByteBuffer::Put4Bytes (uint value) { ASSERT(Current != NULL); *Current = (value & 255); Current++; *Current = ((value >> 8) & 255); Current++; *Current = ((value >> 16) & 255); Current++; *Current = ((value >> 24) & 255); Current++; ByteCount += 4; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::Skip(): // Skips over a specified number of bytes. void ByteBuffer::Skip (uint length) { ASSERT (Current != NULL); if (ReadPos + length > ByteCount) { Err = ERROR_BufferRead; return; } ReadPos += length; Current += length; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::GetFixedString(): // Reads a fixed-length string from the buffer. A terminating // null character is not added. void ByteBuffer::GetFixedString (char * str, uint length) { ASSERT(Current != NULL && str != NULL); if (Err != OK) { return; } if (ReadPos + length > ByteCount) { Err = ERROR_BufferRead; return; } ReadPos += length; while (length > 0) { *str = *Current; Current++; str++; length--; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::PutFixedString(): // Writes a fixed-length string to the buffer. A terminating null // character is not written, unless it was part of the string. void ByteBuffer::PutFixedString (const char * str, uint length) { ASSERT(Current != NULL && str != NULL); if (ByteCount + length > BufferSize) { Err = ERROR_BufferFull; return; } ByteCount += length; while (length > 0) { *Current = *str; Current++; str++; length--; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::GetTerminatedString(): // Get a null-terminated string. // Just sets str to point to current, and then moves current // to the end of the string, so the calling function can to // duplicate the string itself if it needs to. // The length returned does not include the trailing '\0'. uint ByteBuffer::GetTerminatedString (char ** str) { ASSERT(Current != NULL && str != NULL); uint length = 0; *str = (char *) Current; while (*Current) { Current++; length++; ReadPos++; } Current++; length++; ReadPos++; if (ReadPos > ByteCount) { Err = ERROR_BufferRead; } return length; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::PutTerminatedString(): // Writes a null-terminated string to the buffer, including // the null character. void ByteBuffer::PutTerminatedString (const char * str) { ASSERT(Current != NULL && str != NULL); while (*str) { if (ByteCount >= BufferSize) { Err = ERROR_BufferFull; return; } *Current = *str; Current++; str++; ByteCount++; } *Current = 0; Current++; ByteCount++; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::CopyTo(): // Write the buffer to an area of memory. void ByteBuffer::CopyTo (byte * target) { ASSERT (Current != NULL && target != NULL); // register byte * from, * to; // register uint i = ByteCount; // from = Buffer; // to = target; memcpy( target , Buffer, ByteCount); // while (i) { // *to++ = *from++; // i--; // } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::CopyFrom(): // Read the buffer from an area of memory. void ByteBuffer::CopyFrom (byte * source, uint length) { ASSERT (Current != NULL && source != NULL); ASSERT (BufferSize >= length); Current = Buffer; ReadPos = 0; // register byte * from, * to; // register uint i = length; // from = source; to = Buffer; memcpy( Buffer , source, ByteCount); // while (i) { // *to++ = *from++; // i--; // } ByteCount = length; Err = OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::CopyFrom(): // Read the buffer from an area of memory. // offset is the place where to start copying data void ByteBuffer::CopyFrom (byte * source, uint length, uint offset) { ASSERT (Current != NULL && source != NULL); ASSERT (BufferSize >= length+offset); Current = Buffer; ReadPos = 0; register byte * from, * to; register uint i = length; from = source; to = Buffer+offset; while (i) { *to++ = *from++; i--; } ByteCount = length+offset; Err = OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::DumpToFile(): // Writes the buffer to an open file. // #ifdef WINCE void ByteBuffer::DumpToFile (/*FILE * */Tcl_Channel fp) { ASSERT (Current != NULL && fp != NULL); byte *b = Buffer; my_Tcl_Write(fp, (char *)b, ByteCount); /*for (uint count = 0; count < ByteCount; count++) { putc (*b, fp); b++; }*/ } #else void ByteBuffer::DumpToFile (FILE * fp) { ASSERT (Current != NULL && fp != NULL); byte *b = Buffer; for (uint count = 0; count < ByteCount; count++) { putc (*b, fp); b++; } } #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ByteBuffer::ReadFromFile(): // Reads the buffer from an open file, overwriting the existing // contents of the buffer. // #ifdef WINCE void ByteBuffer::ReadFromFile (/*FILE * */Tcl_Channel fp, uint length) { ASSERT (Current != NULL && fp != NULL); Err = OK; Current = Buffer; //byte * b = Current; ReadPos = 0; ByteCount = 0; my_Tcl_Read(fp, (char * )Buffer, length); /*for (uint count = 0; count < length; count++) { *b = getc (fp); b++; ByteCount++; }*/ } #else void ByteBuffer::ReadFromFile (FILE * fp, uint length) { ASSERT (Current != NULL && fp != NULL); Err = OK; Current = Buffer; byte * b = Current; ReadPos = 0; ByteCount = 0; for (uint count = 0; count < length; count++) { *b = getc (fp); b++; ByteCount++; } } #endif ////////////////////////////////////////////////////////////////////// // EOF: bytebuf.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/matsig.cpp0000644000175000017500000001655011727223077016224 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: matsig.cpp // Material signature routines // // Part of: Scid (Shane's Chess Information Database) // Version: 3.3 // // Notice: Copyright (c) 1999-2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // A matsig (material signature) is a count of material by piece type, // compacted into three bytes. Because it is compacted, there are limits // that a game with an unusual number of promotions might break. // The maximum count for a non-pawn piece is three. #include "matsig.h" //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // matsig_makeString(): Make a string representation of a matsig. // Example: "12228.12228" for the starting position. void matsig_makeString (char * s, matSigT m) { *s++ = (char) MATSIG_Count_WQ(m) + '0'; *s++ = (char) MATSIG_Count_WR(m) + '0'; *s++ = (char) MATSIG_Count_WB(m) + '0'; *s++ = (char) MATSIG_Count_WN(m) + '0'; *s++ = (char) MATSIG_Count_WP(m) + '0'; *s++ = '.'; *s++ = (char) MATSIG_Count_BQ(m) + '0'; *s++ = (char) MATSIG_Count_BR(m) + '0'; *s++ = (char) MATSIG_Count_BB(m) + '0'; *s++ = (char) MATSIG_Count_BN(m) + '0'; *s++ = (char) MATSIG_Count_BP(m) + '0'; *s = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // matsig_isReachable(): // Return 1 if start could transform into target with // captures and (maybe) promotions. This is used to exclude games // from a material or position search without needing to decode // them, by checking each game's final position matsig. // bool matsig_isReachable (matSigT mStart, matSigT mTarget, bool promos, bool upromo) { if (MATSIG_Count_WP(mStart) < MATSIG_Count_WP(mTarget)) { return false; } if (MATSIG_Count_BP(mStart) < MATSIG_Count_BP(mTarget)) { return false; } // If there are underpromotions, we can only check pawn counts: if (upromo) { return true; } // No underpromotions, so check non-queen piece counts: if (MATSIG_Count_WR(mStart) < MATSIG_Count_WR(mTarget)) { return false; } if (MATSIG_Count_BR(mStart) < MATSIG_Count_BR(mTarget)) { return false; } if (MATSIG_Count_WB(mStart) < MATSIG_Count_WB(mTarget)) { return false; } if (MATSIG_Count_BB(mStart) < MATSIG_Count_BB(mTarget)) { return false; } if (MATSIG_Count_WN(mStart) < MATSIG_Count_WN(mTarget)) { return false; } if (MATSIG_Count_BN(mStart) < MATSIG_Count_BN(mTarget)) { return false; } // If there were promotions we cannot check queen counts: if (promos) { return true; } // Check queen counts: if (MATSIG_Count_WQ(mStart) < MATSIG_Count_WQ(mTarget)) { return false; } if (MATSIG_Count_BQ(mStart) < MATSIG_Count_BQ(mTarget)) { return false; } return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // matsig_Make(): // Make a material sig, given an array of material counts as // stored in a Position. // inline static uint min(uint a, uint b) { return a < b ? a : b; } matSigT matsig_Make (byte * materialCounts) { register matSigT m = 0; // Avoid overflow, except for pawns m |= ::min(3, static_cast(materialCounts[WQ])) << SHIFT_WQ; m |= ::min(3, static_cast(materialCounts[WR])) << SHIFT_WR; m |= ::min(3, static_cast(materialCounts[WB])) << SHIFT_WB; m |= ::min(3, static_cast(materialCounts[WN])) << SHIFT_WN; m |= ((uint)materialCounts[WP]) << SHIFT_WP; m |= ::min(3, static_cast(materialCounts[BQ])) << SHIFT_BQ; m |= ::min(3, static_cast(materialCounts[BR])) << SHIFT_BR; m |= ::min(3, static_cast(materialCounts[BB])) << SHIFT_BB; m |= ::min(3, static_cast(materialCounts[BN])) << SHIFT_BN; m |= ((uint)materialCounts[BP]) << SHIFT_BP; return m; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // hpSig_PossibleMatch(): // Returns 1 if a game could match the home pawn signature in hpSig. // The argument changeList is the ordered list of pawns that leave // their home rank (by moving or being captured). // // Used to exclude games in exact position searches. For example, // If we are looking for the position after "1.d4 d5 2.c4", the // target hpSig looks like "1100111111101111" (the c2, d2 and d7 // pawns are gone from the home ranks). // // The first byte of a changeList is the length (in halfbytes) of the // list, which can be any value from 0 to 16 inclusive. // bool hpSig_PossibleMatch (uint hpSig, const byte * changeList) { // First, the starting sig (all pawns home) can match any game: if (hpSig == HPSIG_StdStart) { return true; } uint hpCurrent = HPSIG_StdStart; uint count = (uint) changeList[0]; changeList++; uint halfByte = 0; byte change; for (uint i=0; i < count; i++) { if (halfByte == 0) { change = (*changeList) >> 4; halfByte = 1; } else { change = (*changeList) & 15; halfByte = 0; changeList++; } hpCurrent &= ~(1 << change); if (hpCurrent == hpSig) { return true; } // Here is an optimisation: If the target HP sig contains a home // pawn not in the current HP sig, it could never match since pawns // cannot reappear on their home rank! This test is easy and fast: if ((hpCurrent & hpSig) != hpSig) { return false; } } // Loop finished, no match was found. return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // hpSig_Prefix(): // Returns true if one of the changeLists provided is a prefix // of the other or if they are the same. // Used to quickly test if one game is possibly a truncated version // of another game. // bool hpSig_Prefix (const byte * changeListA, const byte * changeListB) { uint countA = changeListA[0]; uint countB = changeListB[0]; changeListA++; changeListB++; bool halfByte = false; byte changeA; byte changeB; // Use the shorter changeList length: uint count = (countA < countB ? countA : countB); // Check each corresponding value in the lists: for (uint i=0; i < count; i++) { if (halfByte) { changeA = *changeListA & 15; changeB = *changeListB & 15; changeListA++; changeListB++; halfByte = false; } else { changeA = *changeListA >> 4; changeB = *changeListB >> 4; halfByte = true; } if (changeA != changeB) { return false; } } return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // hpSig_Final(): // Returns the final home pawn signature value of a changeList. // uint hpSig_Final (const byte * changeList) { uint hpSig = HPSIG_StdStart; uint count = (uint) changeList[0]; changeList++; bool halfByte = false; byte change; for (uint i=0; i < count; i++) { if (halfByte == false) { change = (*changeList) >> 4; halfByte = true; } else { change = (*changeList) & 15; halfByte = false; changeList++; } hpSig -= (1 << change); } return hpSig; } ////////////////////////////////////////////////////////////////////// // EOF: matsig.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/crosstab.cpp0000644000175000017500000011144611727223077016560 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: crosstab.cpp // Crosstable class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.3 // // Notice: Copyright (c) 2001 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef WINCE #include "crosstab.h" // Expected differences in rating according to performance // from 50% to 100%: const uint perf_elodiff [51] = { /* 50 - 59 */ 0, 7, 14, 21, 29, 36, 43, 50, 57, 65, /* 60 - 69 */ 72, 80, 87, 95, 102, 110, 117, 125, 133, 141, /* 70 - 79 */ 149, 158, 166, 175, 184, 193, 202, 211, 220, 230, /* 80 - 89 */ 240, 251, 262, 273, 284, 296, 309, 322, 336, 351, /* 90 - 99 */ 366, 383, 401, 422, 444, 470, 501, 538, 589, 677, /* 100 */ 999 }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::Performance(): // Given an average of opponents ratings and a percentage score, // returns the performance rating. uint Crosstable::Performance (uint oppAvg, uint percentage) { if (percentage > 100) { percentage = 100; } uint performance = oppAvg; if (percentage < 50) { performance -= perf_elodiff [50 - percentage]; } else { performance += perf_elodiff [percentage - 50]; } return performance; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::RatingChange(): // Calculates rating change, given current rating, average rating // and score int Crosstable::RatingChange (eloT player, uint oppAvg, uint percentage, uint games) { uint diff = (player > oppAvg) ? player - oppAvg : oppAvg - player; int i; for (i=0; i<50 ; i++) if (diff <= perf_elodiff[i]) break; uint expected = i; if (player > oppAvg) expected += 50; else expected = 50 - expected; int cutoff = (percentage > expected) ? 5 : -5; return (((int)percentage - (int)expected) * (int)games + cutoff) / 10; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::FideCategory() // Given an average Elo rating for an all-play-all tournament, // returns the FIDE Category of the tournament. // Ratings under 2251 have no category. // 2251-2275 = Cat. 1, 2276-2300 = Cat. 2, etc in blocks of 25. uint Crosstable::FideCategory (eloT rating) { if (rating <= 2250) { return 0; } return 1 + ((rating - 2251) / 25); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::OpponentElo(): // Strips ELO rating if difference is bigger than 350 eloT Crosstable::OpponentElo (eloT player, eloT opponent) { const eloT Margin = 350; if (!player) return opponent; else if (player - opponent > Margin) return player - Margin; else if (opponent - player > Margin) return player + Margin; else return opponent; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // comparePlayerData(): // Compares two playerDataT structs based on their tournament score. int comparePlayerData (playerDataT * p1, playerDataT * p2, crosstableSortT option) { int result = 0; switch (option) { case CROSSTABLE_SortScore: // Sort by highest score, then fewest games: result = p2->score - p1->score; if (result == 0) { result = p1->gameCount - p2->gameCount; } if (result == 0) { result = p2->tiebreak - p1->tiebreak; } break; case CROSSTABLE_SortName: result = strCompare(p1->name, p2->name); break; case CROSSTABLE_SortElo: result = p2->elo - p1->elo; break; } return result; } void Crosstable::Init () { for (uint pcount=0; pcount < CROSSTABLE_MaxPlayers; pcount++) { PlayerData[pcount] = NULL; } GameCount = 0; PlayerCount = 0; MaxClashes = 0; MaxRound = 0; FirstDate = ZERO_DATE; for (resultT r = 0; r < NUM_RESULT_TYPES; r++) { ResultCount[r] = 0; } SpellCheck = NULL; ShowTitles = ShowElos = ShowCountries = SwissColors = ShowAges = true; ShowTiebreaks = false; SortOption = CROSSTABLE_SortScore; OutputFormat = CROSSTABLE_Plain; DecimalPointChar = '.'; APAColumnNums = false; } void Crosstable::Destroy () { for (uint player=0; player < PlayerCount; player++) { playerDataT * pdata = PlayerData[player]; ASSERT (pdata != NULL); #ifdef WINCE my_Tcl_Free((char*)pdata->name); #else delete[] pdata->name; #endif for (uint opp = 0; opp < PlayerCount; opp++) { clashT * clash = pdata->firstClash[opp]; while (clash != NULL) { clashT * temp = clash->next; #ifdef WINCE my_Tcl_Free((char*)clash); #else delete clash; #endif clash = temp; } } #ifdef WINCE my_Tcl_Free((char*)pdata); #else delete pdata; #endif } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::AddPlayer() // Adds a player to the crosstable, if that player is not // already listed. errorT Crosstable::AddPlayer (idNumberT id, const char * name, eloT elo) { for (uint i = 0; i < PlayerCount; i++) { if (PlayerData[i]->id == id) { // The player already exists in the crosstable, but // check the elo rating and keep the largest value: if (elo > PlayerData[i]->elo) { PlayerData[i]->elo = elo; } return OK; } } if (PlayerCount == CROSSTABLE_MaxPlayers) { return ERROR_Full; } #ifdef WINCE playerDataT * pdata = (playerDataT *) my_Tcl_Alloc(sizeof( playerDataT)); #else playerDataT * pdata = new playerDataT; #endif PlayerData[PlayerCount] = pdata; pdata->id = id; pdata->name = strDuplicate (name); pdata->elo = elo; pdata->score = 0; pdata->gameCount = 0; pdata->tiebreak = 0; pdata->oppEloCount = 0; pdata->oppEloTotal = 0; pdata->oppEloScore = 0; pdata->title[0] = 0; pdata->country[0] = 0; pdata->birthdate = ZERO_DATE; pdata->ageInYears = 0; for (uint opp = 0; opp < CROSSTABLE_MaxPlayers; opp++) { pdata->firstClash[opp] = pdata->lastClash[opp] = NULL; pdata->clashCount[opp] = 0; } for (uint round = 1; round < CROSSTABLE_MaxRounds; round++) { pdata->roundClash[round] = NULL; } // Find this players title and country if the SpellChecker is defined: if (SpellCheck != NULL && !strIsSurnameOnly (name)) { const char * comment = SpellCheck->GetCommentExact (name); if (comment != NULL) { strCopy (pdata->title, SpellChecker::GetTitle (comment)); strCopy (pdata->country, SpellChecker::GetLastCountry (comment)); pdata->birthdate = SpellChecker::GetBirthdate (comment); if (strEqual (pdata->title, "w")) { strCopy (pdata->title, "w "); } } } PlayerCount++; return OK; } uint max(int a, int b) {return aid == white) { whiteIdx = i; break; } } for (i=0; i < PlayerCount; i++) { if (PlayerData[i]->id == black) { blackIdx = i; break; } } // Both players must exist in the crosstable: if (whiteIdx < 0 || blackIdx < 0) { return ERROR_NotFound; } // The two players must actually be different: if (whiteIdx == blackIdx) { return ERROR_Corrupt; } playerDataT * pwhite = PlayerData[whiteIdx]; playerDataT * pblack = PlayerData[blackIdx]; // The number of prior encounters must be consistent: ASSERT (pwhite->clashCount[blackIdx] == pblack->clashCount[whiteIdx]); #ifdef WINCE clashT * whiteClash = (clashT *) my_Tcl_Alloc(sizeof( clashT)); #else clashT * whiteClash = new clashT; #endif if (pwhite->firstClash[blackIdx] == NULL) { // New head of list: pwhite->firstClash[blackIdx] = whiteClash; } else { pwhite->lastClash[blackIdx]->next = whiteClash; } whiteClash->next = NULL; pwhite->lastClash[blackIdx] = whiteClash; #ifdef WINCE clashT * blackClash = (clashT *) my_Tcl_Alloc(sizeof( clashT)); #else clashT * blackClash = new clashT; #endif if (pblack->firstClash[whiteIdx] == NULL) { // New head of list: pblack->firstClash[whiteIdx] = blackClash; } else { pblack->lastClash[whiteIdx]->next = blackClash; } blackClash->next = NULL; pblack->lastClash[whiteIdx] = blackClash; whiteClash->result = result; blackClash->result = RESULT_OPPOSITE[result]; whiteClash->gameNum = gameNumber; blackClash->gameNum = gameNumber; whiteClash->opponent = blackIdx; blackClash->opponent = whiteIdx; whiteClash->color = WHITE; blackClash->color = BLACK; whiteClash->round = round; blackClash->round = round; if (round > 0 && round < CROSSTABLE_MaxRounds) { pwhite->roundClash[round] = whiteClash; pblack->roundClash[round] = blackClash; if (round > MaxRound) { MaxRound = round; } } pwhite->clashCount[blackIdx]++; pblack->clashCount[whiteIdx]++; if (pwhite->clashCount[blackIdx] > MaxClashes) { MaxClashes = pwhite->clashCount[blackIdx]; } pwhite->gameCount++; pblack->gameCount++; // Update averages of opponents ratings for performance stats: if (result && pblack->elo > 0) { pwhite->oppEloCount++; pwhite->oppEloTotal += OpponentElo(pwhite->elo, pblack->elo); } if (result && pwhite->elo > 0) { pblack->oppEloCount++; pblack->oppEloTotal += OpponentElo(pblack->elo, pwhite->elo); } if (FirstDate == ZERO_DATE) { FirstDate = date; } if (date != ZERO_DATE && date < FirstDate) { FirstDate = date; } switch (result) { case RESULT_White: pwhite->score += 2; if (pblack->elo > 0) { pwhite->oppEloScore += 2; } break; case RESULT_Black: pblack->score += 2; if (pwhite->elo > 0) { pblack->oppEloScore += 2; } break; case RESULT_Draw: pwhite->score++; pblack->score++; if (pblack->elo > 0) { pwhite->oppEloScore ++; } if (pwhite->elo > 0) { pblack->oppEloScore ++; } break; default: break; // Nothing. } ResultCount[result]++; GameCount++; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::Tiebreaks() // Computes the tiebreak score for all players. void Crosstable::Tiebreaks (crosstableModeT mode) { uint player; for (player = 0; player < PlayerCount; player++) { playerDataT * pd = PlayerData[player]; pd->tiebreak = 0; uint tb = 0; // Tiebreaks are meaningless for Knockout tables: if (mode == CROSSTABLE_Knockout) { continue; } for (uint opp = 0; opp < PlayerCount; opp++) { if (opp == player) { continue; } clashT * clash = pd->firstClash[opp]; while (clash != NULL) { uint oppScore = PlayerData[opp]->score; if (mode == CROSSTABLE_Swiss) { // For Swiss, just do sum of opponent scores: tb += PlayerData[opp]->score; } else { // AllPlayAll mode: do Sonneborn-Berger: if (clash->result == RESULT_White) { tb += oppScore + oppScore; } else if (clash->result == RESULT_Draw) { tb += oppScore; } } clash = clash->next; } } pd->tiebreak = tb; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::BestMode(): // Returns the best mode of table to use for this tournament: // All-play-all, Swiss or Knockout. // XXX Currently never chooses Knockout, fix this sometime... crosstableModeT Crosstable::BestMode (void) { // If 12 players of less, use all-play-all: if (PlayerCount <= 12) { return CROSSTABLE_AllPlayAll; } // If more than 30 players, use Swiss: if (PlayerCount > 30) { return CROSSTABLE_Swiss; } // If less than 5 games per player on average, use Swiss: if ((GameCount / PlayerCount) < 5) { return CROSSTABLE_Swiss; } // If less than half the number of games in a complete all-play-all // tournament, use Swiss: uint completeAllPlayAll = (PlayerCount * (PlayerCount - 1)) / 2; if (GameCount < completeAllPlayAll / 2) { return CROSSTABLE_Swiss; } // Otherwise, use all-play-all: return CROSSTABLE_AllPlayAll; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::AvgRating() // Returns the average Elo rating of all players in the // tournament who have a rating. Players with no rating // are ignored. eloT Crosstable::AvgRating () { uint count = 0; uint total = 0; for (uint i=0; i < PlayerCount; i++) { if (PlayerData[i]->elo > 0) { total += PlayerData[i]->elo; count++; } } if (count == 0) { return 0; } return (eloT) (total / count); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Crosstable::PrintTable() // Prints the crosstable to a self-extending DString. // The format can be plain text or hypertext with player and game tags, // depending on the value of the OutputFormat member variable. void Crosstable::PrintTable (DString * dstr, crosstableModeT mode, uint playerLimit) { if (playerLimit == 0 || playerLimit > PlayerCount) { playerLimit = PlayerCount; } if (playerLimit < 2) { return; } if (mode == CROSSTABLE_Auto) { mode = BestMode(); } // Sort the players by score, name or rating: Tiebreaks (mode); uint player; for (player=0; player < PlayerCount; player++) { SortedIndex[player] = player; InvertedIndex[player] = player; } for (uint first=0; first < PlayerCount-1; first++) { for (uint second = first+1; second < PlayerCount; second++) { if (comparePlayerData (PlayerData[SortedIndex[first]], PlayerData[SortedIndex[second]], SortOption) > 0) { uint temp = SortedIndex[first]; SortedIndex[first] = SortedIndex[second]; SortedIndex[second] = temp; } } } for (player=0; player < PlayerCount; player++) { InvertedIndex[SortedIndex[player]] = player; } PlayerNumWidth = 2; if (playerLimit > 99) { PlayerNumWidth = 3; } // Determine the longest player name: LongestNameLen = 0; for (player = 0; player < PlayerCount; player++) { uint len = strLength (PlayerData[player]->name); if (len > LongestNameLen) { LongestNameLen = len; } } // Determine if any players have elo rating, title, country: PrintRatings = false; PrintTitles = false; PrintCountries = false; PrintAges = false; PrintTiebreaks = true; for (player = 0; player < PlayerCount; player++) { playerDataT * pd = PlayerData[player]; if (pd->elo > 0) { PrintRatings = true; } if (pd->title[0] != 0) { PrintTitles = true; } if (pd->country[0] != 0) { PrintCountries = true; } if (pd->birthdate != ZERO_DATE) { PrintAges = true; int age = (int) date_GetYear(FirstDate); age -= (int) date_GetYear (pd->birthdate); if (date_GetMonth(pd->birthdate) > date_GetMonth(FirstDate)) { age--; } pd->ageInYears = age; } } if (! ShowElos) { PrintRatings = false; } if (! ShowTitles) { PrintTitles = false; } if (! ShowCountries) { PrintCountries = false; } if (! ShowAges) { PrintAges = false; } if (! ShowTiebreaks) { PrintTiebreaks = false; } if (mode == CROSSTABLE_Knockout) { PrintTiebreaks = false; } // Print the table header: StartTable = ""; EndTable = ""; StartRow = ""; EndRow = ""; NewLine = "\n"; BlankRowLine = "\n"; StartCol = ""; EndCol = ""; StartRightCol = ""; EndRightCol = ""; StartBoldCol = ""; EndBoldCol = ""; if (OutputFormat == CROSSTABLE_Hypertext) { NewLine = BlankRowLine = "
"; } if (OutputFormat == CROSSTABLE_Html) { StartTable = "\n

\n"; EndTable = "

\n"; StartRow = ""; EndRow = ""; NewLine = "\n"; BlankRowLine = "\n"; StartCol = ""; EndCol = ""; StartRightCol = ""; EndRightCol = ""; StartBoldCol = ""; EndBoldCol = ""; } if (OutputFormat == CROSSTABLE_LaTeX) { StartTable = ""; EndTable = "\\end{tabular}\n\n"; StartRow = ""; EndRow = " \\\\"; NewLine = "\n"; BlankRowLine = "\\\\\n"; StartCol = ""; EndCol = " &"; StartRightCol = ""; EndRightCol = " &"; StartBoldCol = "\\bf "; EndBoldCol = " &"; } // LineWidth is used to determine length of line of dashes to print. LineWidth = LongestNameLen; if (PrintRatings) { LineWidth += 16; } if (PrintTitles) { LineWidth += 4; } if (PrintCountries) { LineWidth += 4; } if (PrintAges) { LineWidth += 3; } if (mode == CROSSTABLE_Swiss) { LineWidth += 16 + PlayerNumWidth; LineWidth += (PlayerNumWidth + (SwissColors ? 3 : 2)) * MaxRound; if (PrintTiebreaks) { LineWidth += 5; } } else if (mode == CROSSTABLE_AllPlayAll) { LineWidth += 16 + PlayerNumWidth; if (playerLimit == 2) { LineWidth += (MaxClashes + 1); } else { LineWidth += (playerLimit * (MaxClashes + 1)); } if (PrintTiebreaks) { LineWidth += 7; } } else { // Knockout LineWidth = (LongestNameLen * 2) + 17 + MaxClashes; if (PrintRatings) { LineWidth += 10; } if (PrintTitles) { LineWidth += 8; } if (PrintCountries) { LineWidth += 8; } if (PrintAges) { LineWidth += 6; } } switch (mode) { case CROSSTABLE_AllPlayAll: PrintAllPlayAll (dstr, playerLimit); break; case CROSSTABLE_Knockout: PrintKnockout (dstr, playerLimit); break; case CROSSTABLE_Swiss: case CROSSTABLE_Auto: PrintSwiss (dstr, playerLimit); break; } char stemp [100]; if (GameCount > 1) { sprintf (stemp, "%u game%s: %s%u %s%u %s%u", GameCount, strPlural (GameCount), OutputFormat == CROSSTABLE_LaTeX ? "{\\tt +}" : "+", ResultCount[RESULT_White], OutputFormat == CROSSTABLE_LaTeX ? "{\\tt =}" : "=", ResultCount[RESULT_Draw], OutputFormat == CROSSTABLE_LaTeX ? "{\\tt -}" : "-", ResultCount[RESULT_Black]); dstr->Append (stemp); if (ResultCount[RESULT_None] > 0) { sprintf (stemp, " %s%u", OutputFormat == CROSSTABLE_LaTeX ? "{\\tt *}" : "*", ResultCount[RESULT_None]); dstr->Append (stemp); } dstr->Append (NewLine); } return; } void Crosstable::PrintDashesLine (DString * dstr) { // Print line of dashes, if not in HTML or LaTeX: if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append ("\\hline\n"); return; } if (OutputFormat == CROSSTABLE_Html) { return; } for (uint i=0; i < LineWidth; i++) { dstr->AddChar ('-'); } dstr->Append (NewLine); } void Crosstable::PrintPlayer (DString * dstr, playerDataT * pdata) { char stemp[1000]; if (OutputFormat == CROSSTABLE_Hypertext) { sprintf (stemp, "", pdata->name); dstr->Append (stemp); } sprintf (stemp, "%-*s ", LongestNameLen, pdata->name); dstr->Append (StartCol, stemp, EndCol); if (PrintRatings) { if (pdata->elo) { sprintf (stemp, "%4u ", pdata->elo); } else { strcpy (stemp, " "); } dstr->Append (StartRightCol, stemp, EndRightCol); } if (PrintTitles) { sprintf (stemp, "%3s ", pdata->title); dstr->Append (StartCol, stemp, EndCol); } if (PrintAges) { if (pdata->ageInYears == 0) { strCopy (stemp, " "); } else { sprintf (stemp, "%2d ", pdata->ageInYears); } dstr->Append (StartCol, stemp, EndCol); } if (PrintCountries) { sprintf (stemp, "%-3s ", pdata->country); dstr->Append (StartCol, stemp, EndCol); } if (OutputFormat == CROSSTABLE_Hypertext) { dstr->Append (""); } } void Crosstable::PrintPerformance (DString * dstr, playerDataT * pdata) { if (!PrintRatings) { return; } if (!pdata->oppEloCount) { return; } int oppAvgRating = pdata->oppEloTotal / pdata->oppEloCount; int percentage = pdata->oppEloScore * 50 + pdata->oppEloCount/2; percentage = percentage / pdata->oppEloCount; int performance = Performance(oppAvgRating, percentage); if (performance > 0 && performance < 5000) { char stemp [20]; if (pdata->elo) { int change = RatingChange (pdata->elo, oppAvgRating, percentage, pdata->oppEloCount); sprintf (stemp, "%4d %+3d", performance, change); } else { sprintf (stemp, "%4d", performance); } dstr->Append (" ", StartRightCol, stemp, EndRightCol); } } void Crosstable::PrintAllPlayAll (DString * dstr, uint playerLimit) { char stemp [1000]; uint player; dstr->Append (StartTable); if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append ("\\begin{tabular}{rl"); if (PrintRatings) { dstr->Append ("r"); } if (PrintTitles) { dstr->Append ("r"); } if (PrintAges) { dstr->Append ("r"); } if (PrintCountries) { dstr->Append ("l"); } dstr->Append ("r@{ / }r"); if (PrintTiebreaks) { dstr->Append ("r"); } for (uint i=0; i < playerLimit; i++) { dstr->Append ("c"); if (i < playerLimit-1) { dstr->Append ("@{ }"); } } if (PrintRatings) { dstr->Append ("r"); } dstr->Append ("r}\n"); } dstr->Append (StartRow); if (OutputFormat == CROSSTABLE_Html) { dstr->Append (" Player "); } else if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append (" & \\bf Player & "); } else { strPad (stemp, "", LongestNameLen + 2 + PlayerNumWidth, ' '); dstr->Append (stemp); } if (PrintRatings) { dstr->Append (StartBoldCol, " Rtng", EndBoldCol); } if (PrintTitles) { dstr->Append (StartBoldCol, " ", EndBoldCol); } if (PrintAges) { dstr->Append (StartBoldCol, "Age", EndBoldCol); } if (PrintCountries) { dstr->Append (StartBoldCol, " Nat", EndBoldCol); } if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append (" \\multicolumn{2}{c}{\\bf Score} & "); } else { dstr->Append (" ", StartBoldCol, " Score ", EndBoldCol, " "); } if (PrintTiebreaks) { dstr->Append (StartBoldCol, " SB ", EndBoldCol); } for (player = 0; player < playerLimit; player++) { strPad (stemp, PlayerData[SortedIndex[player]]->name, MaxClashes, ' '); if (APAColumnNums) { // Print numbers instead of names over columns: strPad (stemp, "", MaxClashes, ' '); uint pnum = player + 1; stemp[MaxClashes-1] = (pnum % 10) + '0'; if (MaxClashes >= 2 && pnum >= 10) { stemp[MaxClashes-2] = ((pnum / 10) % 10) + '0'; } if (MaxClashes >= 3 && pnum >= 100) { stemp[MaxClashes-3] = ((pnum / 10) % 10) + '0'; } } if (playerLimit == 2) { // Make two-player crosstable look better: player = 1; strPad (stemp, "12345678901234567890123456789012345678901234567890", MaxClashes, ' '); } if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append (" \\tt ", stemp, " &"); } else { dstr->Append (" ", StartBoldCol, stemp, EndBoldCol); } } if (PrintRatings) { dstr->Append (" ", StartBoldCol, "Perf Chg", EndBoldCol); } dstr->Append (EndRow, NewLine); PrintDashesLine (dstr); // Print the rows of players and results: uint previousScore = 0; for (player = 0; player < playerLimit; player++) { uint index = SortedIndex[player]; playerDataT * pdata = PlayerData[index]; // Print a blank line if we are at a new score group: if (SeparateScoreGroups && SortOption == CROSSTABLE_SortScore) { if (player > 0 && pdata->score != previousScore) { dstr->Append (BlankRowLine); } } previousScore = pdata->score; sprintf (stemp, "%*u: ", PlayerNumWidth, player+1); dstr->Append (StartRow, StartRightCol, stemp, EndRightCol); PrintPlayer (dstr, pdata); if (OutputFormat == CROSSTABLE_LaTeX) { sprintf (stemp, " %2u%c%c ", pdata->score / 2, DecimalPointChar, (pdata->score & 1 ? '5' : '0')); dstr->Append (StartRightCol, stemp, EndRightCol); sprintf (stemp, " %2u ", pdata->gameCount); dstr->Append (StartRightCol, stemp, EndRightCol); } else { sprintf (stemp, " %2u%c%c / %2u ", pdata->score / 2, DecimalPointChar, (pdata->score & 1 ? '5' : '0'), pdata->gameCount); dstr->Append (StartRightCol, stemp, EndRightCol); } if (PrintTiebreaks) { sprintf (stemp, "%3u%c%02u ", pdata->tiebreak / 4, DecimalPointChar, (pdata->tiebreak % 4) * 25); dstr->Append (StartRightCol, stemp, EndRightCol); } for (uint oppCount = 0; oppCount < playerLimit; oppCount++) { if (playerLimit == 2 && oppCount == player) { continue; } uint opp = SortedIndex[oppCount]; dstr->AddChar (' '); dstr->Append (StartCol); clashT * clash = pdata->firstClash[opp]; for (uint count = 0; count < MaxClashes; count++) { if (clash != NULL) { if (OutputFormat == CROSSTABLE_Hypertext) { sprintf (stemp, "%c", clash->gameNum, RESULT_CHAR[clash->result]); dstr->Append (stemp); } else { dstr->AddChar (RESULT_CHAR[clash->result]); } clash = clash->next; } else { dstr->AddChar (index == opp ? 'X' : '.'); } } dstr->Append (EndCol); } PrintPerformance (dstr, pdata); dstr->Append (EndRow, NewLine); } PrintDashesLine (dstr); dstr->Append (EndTable); } void Crosstable::PrintSwiss (DString * dstr, uint playerLimit) { char stemp [1000]; uint player; const char * resultStr [NUM_RESULT_TYPES]; if (OutputFormat == CROSSTABLE_LaTeX) { resultStr[RESULT_White] = "{\\tt +}"; resultStr[RESULT_Draw] = "{\\tt =}"; resultStr[RESULT_Black] = "{\\tt -}"; resultStr[RESULT_None] = "{\\tt *}"; } else { resultStr[RESULT_White] = "+"; resultStr[RESULT_Draw] = "="; resultStr[RESULT_Black] = "-"; resultStr[RESULT_None] = "*"; } dstr->Append (StartTable); if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append ("\\begin{tabular}{rl"); if (PrintRatings) { dstr->Append ("r"); } if (PrintTitles) { dstr->Append ("r"); } if (PrintAges) { dstr->Append ("r"); } if (PrintCountries) { dstr->Append ("l"); } dstr->Append ("r@{ / }r"); if (PrintTiebreaks) { dstr->Append ("r"); } for (uint i=0; i < MaxRound; i++) { dstr->Append ("r"); if (i < MaxRound-1) { dstr->Append ("@{ }"); } } if (PrintRatings) { dstr->Append ("r"); } dstr->Append ("r}\n"); } dstr->Append (StartRow); if (OutputFormat == CROSSTABLE_Html) { dstr->Append (" Player "); } else if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append (" & \\bf Player & "); } else { strPad (stemp, "", LongestNameLen + 2 + PlayerNumWidth, ' '); dstr->Append (stemp); } if (PrintRatings) { dstr->Append (StartBoldCol, " Rtng", EndBoldCol); } if (PrintTitles) { dstr->Append (StartBoldCol, " ", EndBoldCol); } if (PrintAges) { dstr->Append (StartBoldCol, "Age", EndBoldCol); } if (PrintCountries) { dstr->Append (StartBoldCol, " Nat", EndBoldCol); } if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append (" \\multicolumn{2}{c}{\\bf Score} & "); } else { dstr->Append (" ", StartBoldCol, " Score ", EndBoldCol, " "); } if (PrintTiebreaks) { dstr->Append (StartBoldCol, " SOP ", EndBoldCol); } for (uint round = 1; round <= MaxRound; round++) { if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append (" \\multicolumn{1}{c}{\\bf ", round, "} & "); } else { sprintf (stemp, " %s%*d ", SwissColors ? " " : "", PlayerNumWidth, round); dstr->Append (StartBoldCol, stemp, EndBoldCol); } } if (PrintRatings) { dstr->Append (" ", StartBoldCol, "Perf Chg", EndBoldCol); } dstr->Append (EndRow, NewLine); PrintDashesLine (dstr); // Print the rows of players and results: uint previousScore = 0; for (player = 0; player < playerLimit; player++) { uint index = SortedIndex[player]; playerDataT * pdata = PlayerData[index]; // Print a blank line if we are at a new score group: if (SeparateScoreGroups && SortOption == CROSSTABLE_SortScore) { if (player > 0 && pdata->score != previousScore) { dstr->Append (BlankRowLine); } } previousScore = pdata->score; sprintf (stemp, "%*u: ", PlayerNumWidth, player+1); dstr->Append (StartRow, StartRightCol, stemp, EndRightCol); PrintPlayer (dstr, pdata); if (OutputFormat == CROSSTABLE_LaTeX) { sprintf (stemp, " %2u%c%c ", pdata->score / 2, DecimalPointChar, (pdata->score & 1 ? '5' : '0')); dstr->Append (StartRightCol, stemp, EndRightCol); sprintf (stemp, " %2u ", pdata->gameCount); dstr->Append (StartRightCol, stemp, EndRightCol); } else { sprintf (stemp, " %2u%c%c / %2u ", pdata->score / 2, DecimalPointChar, (pdata->score & 1 ? '5' : '0'), pdata->gameCount); dstr->Append (StartRightCol, stemp, EndRightCol); } if (PrintTiebreaks) { sprintf (stemp, "%2u%c%c ", pdata->tiebreak / 2, DecimalPointChar, (pdata->tiebreak & 1 ? '5' : '0')); dstr->Append (StartRightCol, stemp, EndRightCol); } for (uint round = 1; round <= MaxRound; round++) { clashT * clash = pdata->roundClash[round]; dstr->AddChar (' '); dstr->Append (StartCol); if (clash == NULL) { dstr->Append ("..."); if (PlayerNumWidth == 3) { dstr->AddChar ('.'); } if (SwissColors) { dstr->AddChar ('.'); } } else { if (OutputFormat == CROSSTABLE_Hypertext) { sprintf (stemp, "", clash->gameNum); dstr->Append (stemp); } if (SwissColors) { sprintf (stemp, "%*d%c%s", PlayerNumWidth, InvertedIndex[clash->opponent] + 1, clash->color == WHITE ? 'w' : 'b', resultStr[clash->result]); } else { sprintf (stemp, "%*d%s", PlayerNumWidth, InvertedIndex[clash->opponent] + 1, resultStr[clash->result]); } dstr->Append (stemp); if (OutputFormat == CROSSTABLE_Hypertext) { dstr->Append (""); } } dstr->Append (EndCol); } PrintPerformance (dstr, pdata); dstr->Append (EndRow, NewLine); } PrintDashesLine (dstr); dstr->Append (EndTable); } void Crosstable::PrintKnockout (DString * dstr, uint playerLimit) { char stemp [1000]; uint player; for (uint round = 1; round <= MaxRound; round++) { if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append ("\n\n", round, ":\n\n"); } else { dstr->Append (round, ":", NewLine); } dstr->Append (StartTable); if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append ("\\begin{tabular}{l"); if (PrintRatings) { dstr->Append ("r"); } if (PrintTitles) { dstr->Append ("r"); } if (PrintAges) { dstr->Append ("r"); } if (PrintCountries) { dstr->Append ("l"); } dstr->Append ("@{\\hspace{4ex}}lr@{ / }r@{\\hspace{4ex}}l"); if (PrintRatings) { dstr->Append ("r"); } if (PrintTitles) { dstr->Append ("r"); } if (PrintAges) { dstr->Append ("r"); } if (PrintCountries) { dstr->Append ("l"); } dstr->Append ("r}\n"); } PrintDashesLine (dstr); for (player = 0; player < playerLimit; player++) { PlayerData[player]->printed = false; } for (player = 0; player < playerLimit; player++) { uint index = SortedIndex[player]; playerDataT * pdata = PlayerData[index]; clashT * clash = pdata->roundClash[round]; if (clash == NULL) { continue; } if (pdata->printed) { continue; } uint opponent = clash->opponent; uint score = 0; uint nGames = 0; clash = pdata->firstClash[opponent]; while (clash != 0) { if (clash->round == round) { score += RESULT_SCORE[clash->result]; nGames++; } clash = clash->next; } if (score < nGames) { continue; } dstr->Append (StartRow); PrintPlayer (dstr, pdata); dstr->Append (StartCol, " "); if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append ("{\\tt "); } clash = pdata->firstClash[opponent]; for (uint count = 0; count < MaxClashes; count++) { while (clash != NULL && clash->round != round) { clash = clash->next; } if (clash != NULL) { if (OutputFormat == CROSSTABLE_Hypertext) { sprintf (stemp, "%c", clash->gameNum, RESULT_CHAR[clash->result]); dstr->Append (stemp); } else { dstr->AddChar (RESULT_CHAR[clash->result]); } clash = clash->next; } else { dstr->AddChar (' '); } } if (OutputFormat == CROSSTABLE_LaTeX) { dstr->Append ("}"); } dstr->Append (" ", EndCol); if (OutputFormat == CROSSTABLE_LaTeX) { sprintf (stemp, " %2u%c%c ", score / 2, DecimalPointChar, (score & 1 ? '5' : '0')); dstr->Append (StartRightCol, stemp, EndRightCol); sprintf (stemp, " %2u ", nGames); dstr->Append (StartRightCol, stemp, EndRightCol); } else { sprintf (stemp, "%2u%c%c / %2u ", score / 2, DecimalPointChar, (score & 1 ? '5' : '0'), nGames); dstr->Append (StartRightCol, stemp, EndRightCol); } PrintPlayer (dstr, PlayerData[opponent]); dstr->Append (EndRow, NewLine); pdata->printed = true; PlayerData[opponent]->printed = true; } PrintDashesLine (dstr); dstr->Append (EndTable, NewLine); } } #endif // WINCE ////////////////////////////////////////////////////////////////////// // EOF: crosstab.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/position.h0000644000175000017500000003211111727223077016240 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: position.h // Position class // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 1999-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_POSITION_H #define SCID_POSITION_H #include "common.h" #include "dstring.h" #include "misc.h" #include "movelist.h" #include "sqlist.h" #include "sqset.h" #include "tokens.h" ////////////////////////////////////////////////////////////////////// // Position: Constants const byte WQ_CASTLE = 1, WK_CASTLE = 2, BQ_CASTLE = 4, BK_CASTLE = 8; // SANFlag: since checking if a move is check (to add the "+" to its // SAN string) takes time, and checking for mate takes even // longer, we specify whether we want this done with a flag. typedef byte sanFlagT; const sanFlagT SAN_NO_CHECKTEST = 0, SAN_CHECKTEST = 1, SAN_MATETEST = 2; // Flags that Position::PrintFEN() recognises: // const uint FEN_COMPACT = 0, FEN_BOARD = 1, FEN_CASTLING_EP = 2, FEN_ALL_FIELDS = 3; // Flags that Position::GenerateMoves() recognises: // typedef uint genMovesT; const genMovesT GEN_CAPTURES = 1, GEN_NON_CAPS = 2, GEN_ALL_MOVES = (GEN_CAPTURES | GEN_NON_CAPS); // SANList: list of legal move strings in SAN. // struct sanListT { bool current; ushort num; sanStringT list [MAX_LEGAL_MOVES]; }; /////////////////////////////////////////////////////////////////////////// // Position: Class definition class Position { private: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position: Data structures pieceT Board[66]; // the actual board + a color square // and a NULL square. uint Count[2]; // count of pieces & pawns each byte Material[16]; // count of each type of piece byte ListPos[64]; // ListPos stores the position in // List[][] for the piece on // square x. squareT List[2][16]; // list of piece squares for each side byte NumOnRank[16][8]; byte NumOnFyle[16][8]; byte NumOnLeftDiag[16][16]; // Num Queens/Bishops byte NumOnRightDiag[16][16]; byte NumOnSquareColor[16][2]; directionT Pinned[16]; // For each List[ToMove][x], stores // whether piece is pinned to its // own king and dir from king. squareT EPTarget; // square pawns can EP capture to colorT ToMove; ushort HalfMoveClock; // Count of halfmoves since last capture // or pawn move. ushort PlyCounter; byte Castling; // castling flags bool StrictCastling; // If false, allow castling after moving // the King or Rook. uint Hash; // Hash value. uint PawnHash; // Pawn structure hash value. MoveList LegalMoves; // list of legal moves //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position: Private Functions inline void AddHash (pieceT p, squareT sq); inline void UnHash (pieceT p, squareT sq); inline void AddToBoard (pieceT p, squareT sq); inline void RemoveFromBoard (pieceT p, squareT sq); void CalcPinsDir (directionT dir, pieceT attacker); void GenSliderMoves (MoveList * mlist, colorT c, squareT sq, directionT dir, SquareSet * sqset, bool capturesOnly); void GenKnightMoves (MoveList * mlist, colorT c, squareT sq, SquareSet * sqset, bool capturesOnly); void AddLegalMove (MoveList * mlist, squareT from, squareT to, pieceT promo); void GenCastling (MoveList * mlist); void GenKingMoves (MoveList * mlist, genMovesT genType, bool castling); void AddPromotions (MoveList * mlist, squareT from, squareT dest); bool IsValidEnPassant (squareT from, squareT to); void GenPawnMoves (MoveList * mlist, squareT from, directionT dir, SquareSet * sqset, genMovesT genType); errorT AssertPos (); // Checks for errors in board etc. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position: Public Functions public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif Position() { Init(); } Position(const Position& p); ~Position() {} void Init(); void Clear(); // No pieces on board void StdStart(); // Standard chess starting position bool IsStdStart(); errorT AddPiece (pieceT p, squareT sq); // Set and Get attributes -- one-liners byte PieceCount (pieceT p) { return Material[p]; } byte * GetMaterial () { return Material; } void SetEPTarget (squareT s) { EPTarget = s; LegalMoves.Clear();} squareT GetEPTarget () { return EPTarget; } bool GetEPFlag () { return (EPTarget != NS); } void SetToMove (colorT c) { ToMove = c; } colorT GetToMove () { return ToMove; } void SetPlyCounter (ushort x) { PlyCounter = x; } ushort GetPlyCounter () { return PlyCounter; } ushort GetFullMoveCount () { return PlyCounter / 2 + 1; } // Methods to get the Board or piece lists -- used in game.cpp to // decode moves: squareT * GetList (colorT c) { return List[c]; } uint GetCount (colorT c) { return Count[c]; } uint TotalMaterial () { return Count[WHITE] + Count[BLACK]; } uint NumNonPawns (colorT c) { return Count[c] - Material[piece_Make(c,PAWN)]; } bool InPawnEnding () { return (NumNonPawns(WHITE) == 1 && NumNonPawns(BLACK) == 1); } uint MaterialValue (colorT c); inline uint FyleCount (pieceT p, fyleT f) { return NumOnFyle[p][f]; } inline uint RankCount (pieceT p, rankT r) { return NumOnRank[p][r]; } inline uint LeftDiagCount (pieceT p, leftDiagT diag) { return NumOnLeftDiag[p][diag]; } inline uint RightDiagCount (pieceT p, rightDiagT diag) { return NumOnRightDiag[p][diag]; } inline uint SquareColorCount (pieceT p, colorT sqColor) { return NumOnSquareColor[p][sqColor]; } uint GetSquares (pieceT p, SquareList * sqlist); pieceT * GetBoard () { Board[COLOR_SQUARE] = COLOR_CHAR[ToMove]; return Board; } // Other one-line methods squareT GetKingSquare (colorT c) { return List[c][0]; } squareT GetKingSquare () { return List[ToMove][0]; } squareT GetEnemyKingSquare () { return List[1-ToMove][0]; } // Castling flags inline void SetCastling (colorT c, castleDirT dir, bool flag); bool GetCastling (colorT c, castleDirT dir); inline bool CastlingPossible () { return (Castling ? true : false); } byte GetCastlingFlags () { return Castling; } void SetCastlingFlags (byte b) { Castling = b; LegalMoves.Clear(); } void SetStrictCastling (bool b) { StrictCastling = b; LegalMoves.Clear(); } bool GetStrictCastling (void) { return StrictCastling; } // Hashing inline uint HashValue (void) { return Hash; } inline uint PawnHashValue (void) { return PawnHash; } uint GetHPSig (); // Move generation and execution void CalcPins(); void GenPieceMoves (MoveList * mlist, squareT sq, SquareSet * sqset, bool capturesOnly); // Generate all legal moves: void GenerateMoves (MoveList * mlist, pieceT mask, genMovesT genType, bool maybeInCheck); void GenerateMoves () { GenerateMoves (NULL, EMPTY, GEN_ALL_MOVES, true); } void GenerateMoves (MoveList * mlist) { GenerateMoves (mlist, EMPTY, GEN_ALL_MOVES, true); } void GenerateMoves (MoveList * mlist, pieceT mask) { GenerateMoves (mlist, mask, GEN_ALL_MOVES, true); } void GenerateMoves (MoveList * mlist, genMovesT genType) { GenerateMoves (mlist, EMPTY, genType, true); } void GenerateCaptures (MoveList * mlist) { GenerateMoves (mlist, EMPTY, GEN_CAPTURES, true); } bool IsLegalMove (simpleMoveT * sm); void GenCheckEvasions (MoveList * mlist, pieceT mask, genMovesT genType, SquareList * checkSquares); void MatchLegalMove (MoveList * mlist, pieceT mask, squareT target); errorT MatchPawnMove (MoveList * mlist, fyleT fromFyle, squareT to, pieceT promote); errorT MatchKingMove (MoveList * mlist, squareT target); uint CalcAttacks (colorT toMove, squareT kingSq, SquareList * squares); uint CalcNumChecks () { return CalcAttacks (1-ToMove, GetKingSquare(), NULL); } uint CalcNumChecks (squareT kingSq) { return CalcAttacks (1-ToMove, kingSq, NULL); } uint CalcNumChecks (squareT kingSq, SquareList * checkSquares) { return CalcAttacks (1-ToMove, kingSq, checkSquares); } uint Mobility (pieceT p, colorT color, squareT from); pieceT SmallestDefender (colorT color, squareT target); bool IsKingInCheck () { return (CalcNumChecks() > 0); } bool IsKingInCheckDir (directionT dir); bool IsKingInCheck (simpleMoveT * sm); bool IsKingInMate (); bool IsLegal (); bool IsPromoMove (squareT from, squareT to); void DoSimpleMove (simpleMoveT * sm); // move execution ... void UndoSimpleMove (simpleMoveT * sm); // ... and taking back errorT RelocatePiece (squareT fromSq, squareT toSq); void MakeSANString (simpleMoveT * sm, char * s, sanFlagT flag); void MakeUCIString (simpleMoveT * sm, char * s); void CalcSANStrings (sanListT *sanList, sanFlagT flag); errorT ReadCoordMove (simpleMoveT * m, const char * s, bool reverse); errorT ReadMove (simpleMoveT * m, const char * s, tokenT t); errorT ParseMove (simpleMoveT * sm, const char * s); errorT ReadLine (const char * s); // Board I/O void MakeLongStr (char * str); #if defined (WINCE) || defined (POCKET) void DumpBoard (/*FILE * */Tcl_Channel fp); void DumpLists (/*FILE * */Tcl_Channel fp); #else void DumpBoard (FILE * fp); void DumpLists (FILE * fp); #endif errorT ReadFromLongStr (const char * str); errorT ReadFromCompactStr (const byte * str); errorT ReadFromFEN (const char * s); void PrintCompactStr (char * cboard); void PrintCompactStrFlipped (char * cboard); byte CompactStrFirstByte () { return (Board[0] << 4) | Board[1]; } void PrintFEN (char * str, uint flags); void DumpLatexBoard (DString * dstr, bool flip); void DumpLatexBoard (DString * dstr) { DumpLatexBoard (dstr, false); } void DumpHtmlBoard (DString * dstr, uint style, const char * dir, bool flip); void DumpHtmlBoard (DString * dstr, uint style, const char * dir) { DumpHtmlBoard (dstr, style, dir, false); } // Copy, compare positions int Compare (Position * p); void CopyFrom (Position * src); // Set up a random position: errorT Random (const char * material); }; ////////////////////////////////////////////////////////////////////// // Position: Public Inline Functions //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::SetCastling(): // Set a castling flag. // inline void Position::SetCastling (colorT c, castleDirT dir, bool flag) { register byte b = (c==WHITE ? 1 : 4); if (dir == KSIDE) b += b; // Now b = 1 or 2 (white flags), or 4 or 8 (black flags) if (flag) { Castling |= b; } else { Castling &= (255-b); } return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GetCastling(): // Get a castling flag. // inline bool Position::GetCastling (colorT c, castleDirT dir) { register byte b = (c==WHITE ? 1 : 4); if (dir == KSIDE) b += b; // Now b == 1 or 2 (white flags), or 4 or 8 (black flags) if (Castling & b) { return true; } else { return false; } } #endif // SCID_POSITION_H ////////////////////////////////////////////////////////////////////// // EOF: position.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/zlib/0000755000175000017500000000000011727223100015150 5ustar oliveroliverscid-4.3.0.cvs20120311/src/movelist.h0000644000175000017500000000677311727223077016255 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: movelist.h // MoveList class // // Part of: Scid (Shane's Chess Information Database) // Version: 3.4 // // Notice: Copyright (c) 1999-2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_MOVELIST_H #define SCID_MOVELIST_H #include "common.h" ////////////////////////////////////////////////////////////////////// // MoveList: Constants const uint MAX_LEGAL_MOVES = 256; // max. length of the moves list /////////////////////////////////////////////////////////////////////////// // MoveList: Data Structures // *** SimpleMove: less expensive to store than a full move as defined // in game.h, but still fully undoable. // struct simpleMoveT { byte pieceNum; pieceT movingPiece; squareT from; squareT to; byte capturedNum; pieceT capturedPiece; pieceT promote; squareT capturedSquare; // ONLY different to "to" field if this capture // is an en passant capture. byte castleFlags; // pre-move information squareT epSquare; // pre-move information ushort oldHalfMoveClock; int score; // used for alpha/beta ordering. }; inline bool isNullMove (simpleMoveT * sm) { return (sm->from == sm->to && sm->from != NULL_SQUARE && piece_Type(sm->movingPiece) == KING); } #ifdef WINCE errorT writeSimpleMove (/*FILE **/Tcl_Channel fp, simpleMoveT * sm); errorT readSimpleMove (/*FILE **/Tcl_Channel fp, simpleMoveT * sm); #else errorT writeSimpleMove (FILE * fp, simpleMoveT * sm); errorT readSimpleMove (FILE * fp, simpleMoveT * sm); #endif class MoveList { private: uint ListSize; simpleMoveT Moves [MAX_LEGAL_MOVES]; public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif MoveList() { ListSize = 0; } ~MoveList() {} inline uint Size() { return ListSize; } inline void Clear() { ListSize = 0; } inline void Add (simpleMoveT * sm); inline simpleMoveT * Add (); inline simpleMoveT * Get (uint index); inline void Remove (uint index); void MoveToFront (uint index); void SwapWithFirst (uint index); int Find (simpleMoveT * sm); void FindBest (uint index); void Sort (void); bool IsSorted (void); uint SelectBySquare (squareT sq); }; inline void MoveList::Add (simpleMoveT * sm) { ASSERT (sm != NULL); ASSERT (ListSize < MAX_LEGAL_MOVES); Moves[ListSize++] = *sm; } inline simpleMoveT * MoveList::Add (void) { ASSERT (ListSize < MAX_LEGAL_MOVES); simpleMoveT * sm = &(Moves[ListSize]); ListSize++; return sm; } inline simpleMoveT * MoveList::Get (uint index) { ASSERT (index < ListSize); return &(Moves[index]); } inline void MoveList::Remove (uint index) { ASSERT (index < ListSize); ListSize--; if (index != ListSize) { Moves[index] = Moves[ListSize]; } } #endif // SCID_MOVELIST_H ////////////////////////////////////////////////////////////////////// // EOF: movelist.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/tclmy.h0000644000175000017500000000411111727223077015523 0ustar oliveroliver#ifndef __TCLMY_H__ #define __TCLMY_H__ #ifdef POCKET #define PRINT_MEM(x) ; #else #include #define PRINT_MEM(x) { int pid = getpid(); fprintf(stderr, "======== " x "\t"); \ char cmd[256]; \ sprintf(cmd, "more /proc/%d/status | grep VmData", pid); \ system(cmd);} #endif #ifdef POCKET // typedef long DWORD; // typedef int BOOL; // typedef int HANDLE; // typedef short WORD; // typedef unsigned short wchar_t; // typedef wchar_t WCHAR; // # define WINAPI // typedef const WCHAR* LPCWSTR; // typedef WCHAR* LPWSTR; // typedef void * LPVOID; // typedef void * PVOID; // typedef int * LPDWORD; // typedef unsigned long ULONG; #define FALSE 0 #define TRUE 1 // #include "msgqueue.h" #endif extern int logMemory; #ifdef WINCE #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef POCKET // bool CeSetThreadPriority(int hThread, int nPriority); int getPocketAvailPhys(); int getPocketAvailVirtual(); void getPocketMem(char * buf); // int getPriority(); int my_stat(const char *path, struct stat *buf); // int lowPrio(int prio); int setPriority(int prio); int my_sc_msg_init(char * eng , char bread); #endif #ifdef WINCE char * my_Tcl_Alloc(int size); char * my_Tcl_Realloc(char * ptr, int size); char * my_Tcl_AttemptAlloc(int size); void my_Tcl_Free(char * ptr); #endif Tcl_Channel my_Tcl_OpenFileChannel (Tcl_Interp * interp, CONST char * fileName, CONST char * modeString, int permissions); Tcl_Channel mySilent_Tcl_OpenFileChannel (Tcl_Interp * interp, CONST char * fileName, CONST char * modeString, int permissions); int my_Tcl_Close (Tcl_Interp * interp, Tcl_Channel chan); int my_Tcl_Read (Tcl_Channel chan, char * bufPtr, int toRead); int my_Tcl_Write (Tcl_Channel chan, CONST char * s, int slen); int my_Tcl_Flush (Tcl_Channel chan); Tcl_WideInt my_Tcl_Seek (Tcl_Channel chan, Tcl_WideInt offset, int mode); Tcl_WideInt my_Tcl_Tell (Tcl_Channel chan); int my_Tcl_SetChannelOption ( Tcl_Interp * interp, Tcl_Channel chan, CONST char * optionName, CONST char * newValue); int my_Tcl_Eof (Tcl_Channel chan); #ifdef __cplusplus } #endif #endif #endif scid-4.3.0.cvs20120311/src/tokens.h0000644000175000017500000000466611727223077015715 0ustar oliveroliver/////////////////////////////////////////////////////////////////////////// // // FILE: tokens.h // Tokens used for scanning PGN. // // Part of: Scid (Shane's Chess Information Database) // Version: 3.4 // // Notice: Copyright (c) 1999-2001 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // /////////////////////////////////////////////////////////////////////////// #ifndef SCID_TOKENS_H #define SCID_TOKENS_H // // TOKENS used by PGN scanner // typedef uint tokenT; #define MAX_TOKEN 58; const tokenT TOKEN_EndOfInput = 0, // No more characters to read from input source TOKEN_Invalid = 1, // Unknown token TOKEN_MoveNum = 3, // Move Number. e.g. "1." or "2..." TOKEN_Ignore = 4; // Anything ignored, like "e.p." const tokenT TOKEN_Move_Pawn = 5, // Excludes Promotions TOKEN_Move_Promote = 6, // Promotions TOKEN_Move_Piece = 7, // Includes ambiguous moves and captures TOKEN_Move_Castle_King = 8, TOKEN_Move_Castle_Queen = 9, TOKEN_Move_Null = 10; inline bool TOKEN_isMove (tokenT token) { return (token >= TOKEN_Move_Pawn && token <= TOKEN_Move_Null); } inline bool TOKEN_isPawnMove (tokenT token) { return (token == TOKEN_Move_Pawn || token == TOKEN_Move_Promote); } // Tags: currently only TOKEN_Tag. Maybe eventually have TOKEN_Tag_Event, etc. const tokenT TOKEN_Tag = 20, TOKEN_TagEnd = 21; #define TOKEN_isTag(x) ((x) == TOKEN_Tag) // Results const tokenT TOKEN_Result_White = 41, // White wins TOKEN_Result_Black = 42, // Black wins TOKEN_Result_Draw = 43, // Draw TOKEN_Result_Star = 44; // Incomplete/unknown ("*") #define TOKEN_isResult(x) (((x) >= 41) && ((x) <= 44)) // Comments, Variations const tokenT TOKEN_Nag = 51, // $xxx example: $12 TOKEN_Suffix = 52, // !, ?, !!, ??, !?, ?! TOKEN_Check = 53, // "+" TOKEN_Mate = 54, // "#" TOKEN_Comment = 55, // { .... } TOKEN_LineComment = 56, // "%" or ";" until end of line TOKEN_VarStart = 57, // "(" .... TOKEN_VarEnd = 58, // .... ")" TOKEN_CommentEnd = 59; // "}" outside of comment, should not happen #endif // SCID_TOKENS_H /////////////////////////////////////////////////////////////////////////// // EOF: tokens.h /////////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/strtree.h0000644000175000017500000006030111727223077016066 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: strtree.h // String tree template class // // Part of: Scid (Shane's Chess Information Database) // Version: 1.0 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // String tree template class: // Binary search tree for strings, with periodic rebalancing. // Templatised for adding other data to nodes. // A StrTree operates in two modes: Tree and List mode. // Tree mode: // First and Last are unused. // Each Root[b] contains the binary search tree for all the nodes // with a string starting with the character b, or NULL if no // strings starting with b are in the tree. // List mode: // First is the first node in the ordered linked list, and Last // is the last node. // Each Root[b] points to the first node in the linked list with // a string starting with the character b, or NULL if no such node // exists. // The methods Lookup(), Insert(), GetFirstMatches() convert the StrTree // to Tree mode if necessary. // The methods AddLast(), IterateStart() and LongestPrefix() convert // to List mode if necessary. // When converting to Tree mode, the trees created are perfectly balanced. // Converting between List and Tree modes takes linear time, but the // current algorithm uses recursive function calls. The stack should // not grow very deep, since each starting character has its own tree // and trees are perfectly balanced when first created (by adding all the // nodes in order with AddLast() instead of Insert()). // Advantages of the two modes: // -- When adding data known to be in alphabetical order, AddLast() // can be used for constant-time updates. Then, when the first // insertion or lookup is done, the StrTree will get converted in // linear time to a perfectly balanced tree for each starting // character b. // -- Iterating through all the nodes of a StrTree in alphabetical order // is easy, by putting the StrTree in List mode first. #ifndef SCID_STRTREE_H #define SCID_STRTREE_H #include #include #include "error.h" #include "misc.h" // nodeT template: a StrTree node. template struct nodeT { char * name; // The string for this node. C data; // Template-specific information. nodeT * left; nodeT * right; }; // There is one tree for each possible starting byte in a string: const uint NUM_StrTrees = 256; template class StrTree { private: uint TreeSize [NUM_StrTrees]; uint TotalSize; uint TreeHeight; bool TreeMode; // false for list layout, true for tree layout. bool AllocateStrings; // If false, caller will allocate strings. // Statistics: uint Stat_InsertsNew; uint Stat_InsertsFound; uint Stat_Lookups; uint Stat_LookupsFound; uint Stat_StrCompares; uint Stat_Rebalances; uint SearchCharCount [NUM_StrTrees]; // For statistics, a count of how // many search strings start with each char. protected: nodeT * Root [NUM_StrTrees]; nodeT * First; nodeT * Last; nodeT * Iterator; private: void MakeSubList (nodeT * node); nodeT * MakeSubTree (int size, uint depth); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif StrTree(); ~StrTree(); void DestroyTree (nodeT * node); void DestroyList (); // SetAllocateStrings(): sets the allocation mode. A true value means // the StrTree explicitly allocates copies of names when inserting; // false means it leaves the caller to set the name pointer. // The mode can ONLY be changed for an empty tree! void SetAllocateStrings (bool b) { if (TotalSize > 0) { AllocateStrings = b; } } bool GetAllocateStrings () { return AllocateStrings; } uint Size () { return TotalSize; } uint LogSize () { return log2 (TotalSize); } uint Height() { return TreeHeight; } uint FirstByteSize (byte b) { return TreeSize[b]; } void IterateStart() { Iterator = NULL; } inline nodeT * Iterate (); void MakeList (); void MakeTree (); void Rebalance () { MakeList(); MakeTree(); } nodeT * Lookup (const char * str); errorT Insert (const char * str, nodeT ** returnNode); errorT AddLast (const char * str, nodeT ** returnNode); nodeT * LongestPrefix (const char * str); nodeT * Delete (const char * str); void FindMatches (const char * str, int strLen, nodeT * node, uint * matches, uint maxMatches, nodeT ** array); uint GetFirstMatches (const char * str, uint max, nodeT ** results); void DumpStats (FILE * fp); void DumpRecurse (FILE * fp, const nodeT * node, int height); void DumpTree (FILE * fp); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree Constructor. // template StrTree::StrTree() { TotalSize = 0; TreeHeight = 0; First = Last = Iterator = NULL; TreeMode = true; // By default, the StrTree allocates strings itself: AllocateStrings = 1; Stat_InsertsNew = Stat_InsertsFound = Stat_Lookups = 0; Stat_LookupsFound = Stat_StrCompares = Stat_Rebalances = 0; for (uint i=0; i < NUM_StrTrees; i++) { TreeSize[i] = 0; Root[i] = NULL; SearchCharCount[i] = 0; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree Destructor // template StrTree::~StrTree() { if (TreeMode) { for (uint i=0; i < NUM_StrTrees; i++) { DestroyTree (Root[i]); } } else { DestroyList(); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::DestroyTree(): recursively frees all nodes. // template void StrTree::DestroyTree (nodeT * node) { if (node == NULL) { return; } DestroyTree (node->left); DestroyTree (node->right); #ifdef WINCE if (AllocateStrings) { my_Tcl_Free((char*) node->name); } my_Tcl_Free((char*) node); #else if (AllocateStrings) { delete[] node->name; } delete node; #endif } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::DestroyList(): destroys the tree when in list form. // template void StrTree::DestroyList () { ASSERT (TreeMode == 0); nodeT * node = First; nodeT * temp; while (node != NULL) { temp = node->right; #ifdef WINCE if (AllocateStrings) { my_Tcl_Free((char*) node->name); } my_Tcl_Free((char*) node); #else if (AllocateStrings) { delete[] node->name; } delete node; #endif node = temp; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::Iterate(): used to successively grab each node in order. // template inline nodeT * StrTree::Iterate () { if (TreeMode) { MakeList(); } if (Iterator == NULL) { Iterator = First; } else { Iterator = Iterator->right; } return Iterator; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::MakeSubList(): recursively converts tree to list. // template void StrTree::MakeSubList (nodeT * node) { ASSERT (node != NULL); if (node->left != NULL) { MakeSubList (node->left); } if (Last == NULL) { Last = First = node; } else { Last->right = node; Last = node; } if (node->right != NULL) { MakeSubList (node->right); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::MakeList(): Converts the tree to list format, so that it // can be rebalanced with MakeTree() or iterated. // Pre: tree structures, with Root[i] as the root of each tree of // strings starting with i. // Post: ordered linked list, with First as the 1st node, and Last as // the last node. Root[i] points to the first node in the list // whose string starts with i. // template void StrTree::MakeList () { if (! TreeMode) { return; } // already have a List. First = Last = NULL; for (uint i=0; i < NUM_StrTrees; i++) { if (Root[i] != NULL) { MakeSubList (Root[i]); } Root[i] = NULL; } if (Last != NULL) { Last->right = NULL; } // Now set each Root[i] to be the first node starting with 'i': nodeT * node = First; while (node != NULL) { byte b = (byte) node->name[0]; if (Root[b] == NULL) { Root[b] = node; } node = node->right; } Iterator = NULL; TreeHeight = 0; TreeMode = false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::MakeSubTree(): recursively converts list to tree. // template nodeT * StrTree::MakeSubTree (int size, uint depth) { if (size == 0) { return NULL; } int nLeft, nRight, mid; nLeft = (size - 1) / 2; nRight = size - nLeft - 1; mid = nLeft + 1; nodeT * leftNode; nodeT * root; leftNode = MakeSubTree (nLeft, depth + 1); ASSERT (First != NULL); root = First; First = First->right; root->left = leftNode; root->right = MakeSubTree (nRight, depth + 1); // Set TreeHeight if a new depth is reached: if (depth > TreeHeight) { TreeHeight = depth; } return root; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::MakeTree(): Converts from list to tree structure. // Pre: First is 1st node, right pointer of each node points to // next node in the list. // Post: Each Root[b] is the root of a prefectly balanced tree of // all the nodes with string starting with the character 'b'. // template void StrTree::MakeTree () { if (TreeMode) { return; } // already have a Tree. for (uint i=0; i < NUM_StrTrees; i++) { if (TreeSize[i] == 0) { Root[i] = NULL; } else { Root[i] = MakeSubTree (TreeSize[i], 1); // Assert that this tree has nodes that start with the // correct character: ASSERT ((byte)(Root[i]->name[0]) == i); } } First = Last = Iterator = NULL; Stat_Rebalances++; TreeMode = true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::Lookup(): // Returns a pointer to the located node, or NULL. // template nodeT * StrTree::Lookup (const char * str) { if (! TreeMode) { MakeTree(); } Stat_Lookups++; SearchCharCount[(byte) *str]++; nodeT * node; node = Root [(byte) *str]; while (node != NULL) { Stat_StrCompares++; int result = strCompare_INLINE (str, node->name); if (result < 0) { node = node->left; } else if (result > 0) { node = node->right; } else { Stat_LookupsFound++; return node; } } return NULL; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::Insert() // Inserts a string. Returns OK if it was not in the tree, or // returns ERROR_Exists if the string is already in the tree. // In either case, *returnNode is set to the found or inserted node. // template errorT StrTree::Insert (const char * str, nodeT ** returnNode) { if (! TreeMode) { MakeTree(); } uint treeNumber = (byte) *str; nodeT * parent = NULL; nodeT * node = Root [treeNumber]; uint height = 1; enum {SIDE_Left, SIDE_Right} side = SIDE_Left; // Find the node or the place in the tree to insert it: while (node != NULL) { height++; Stat_StrCompares++; int res = strCompare_INLINE (str, node->name); if (res < 0) { // Go into left subtree: side = SIDE_Left; parent = node; node = node->left; } else if (res > 0) { // Go into right subtree: side = SIDE_Right; parent = node; node = node->right; } else { // Match! Stat_InsertsFound++; if (returnNode != NULL) { *returnNode = node; } return ERROR_Exists; } } // If we reach here, we must add a new node: Stat_InsertsNew++; #ifdef WINCE node = (nodeT *) my_Tcl_Alloc(sizeof( nodeT)); #else node = new nodeT; #endif if (AllocateStrings) { // Allocate memory for the name string: node->name = strDuplicate (str); } else { // Leave it to the caller to set the name string: node->name = NULL; } node->left = node->right = NULL; if (parent) { if (side == SIDE_Left) { parent->left = node; } else { parent->right = node; } } else { Root [treeNumber] = node; } TreeSize [treeNumber]++; TotalSize++; // Set new maximum tree height: if (height > TreeHeight) { // It should only have grown by 1 at most! // ASSERT (height == TreeHeight + 1); TreeHeight = height; } if (returnNode != NULL) { *returnNode = node; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::AddLast(): // Adds a new node to the tree, assuming that it will be the // LAST node in alphabetical order. // If not already stored as a list, the tree will be converted // to a list before adding the node. // Returns: OK if successful, or ERROR_Corrupt if the name was // not greater alphabetically than the existing last node. // template errorT StrTree::AddLast (const char * str, nodeT ** returnNode) { if (TreeMode) { MakeList(); } if (TotalSize > 0) { // Make sure this string is larger than the previous string added: // Only do this if the string starts with the same character as the // previous string, to avoid problems with the string comparison // of characters clashing with the order of the root nodes (string // comparison uses signed chars, but the Root[] array is of unsigned // chars). if (*str == *(Last->name) && strCompare_INLINE (str, Last->name) <= 0) { return ERROR_Corrupt; } } #ifdef WINCE nodeT * node = (nodeT *) my_Tcl_Alloc(sizeof(nodeT)); #else nodeT * node = new nodeT; #endif if (AllocateStrings) { // Allocate memory for the name string: node->name = strDuplicate (str); } else { // Leave it to the caller to set the name string: node->name = NULL; } node->right = NULL; if (TotalSize == 0) { First = Last = node; } else { Last->right = node; Last = node; } byte b = (byte) *str; if (Root[b] == NULL) { Root[b] = node; } TreeSize[b]++; TotalSize++; if (returnNode) { *returnNode = node; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::FindMatches(): // Finds the first 'maxMatches' matching nodes for the string 'str' // which has length 'strLen', and places them in the node array // 'array'. Recursively calls itself for subtrees. // template void StrTree::FindMatches (const char * str, int strLen, nodeT * node, uint * matches, uint maxMatches, nodeT ** array) { if (node == NULL) return; if (*matches >= maxMatches) return; int result = strncmp (str, node->name, strLen); if (result > 0) { // str is bigger than this node, we must move to the right: FindMatches (str, strLen, node->right, matches, maxMatches, array); } else if (result < 0) { // Move to the left: FindMatches (str, strLen, node->left, matches, maxMatches, array); } else { // Match! // First, look for more matches in the left subtree: FindMatches (str, strLen, node->left, matches, maxMatches, array); // Now, is there room for this match to be added? if (*matches >= maxMatches) { return; } array[*matches] = node; *matches += 1; // Now look for more in the right subtree, if appropriate: if (*matches >= maxMatches) { return; } FindMatches (str, strLen, node->right, matches, maxMatches, array); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::GetFirstMatches(): // Finds the first 'maxMatches' string matches for 'str' and // places them in the node array 'array'. // Calls FindMatches() with the appropriate Root node, which // recurses through that tree. // Returns the number of matches found, which will be in the // range [0 .. maxMatches]. // template uint StrTree::GetFirstMatches (const char * str, uint maxMatches, nodeT ** array) { ASSERT (array != NULL && maxMatches > 0); if (! TreeMode) { MakeTree(); } uint matches = 0; nodeT * root = Root[(byte) *str]; FindMatches (str, strlen(str), root, &matches, maxMatches, array); return matches; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::LongestPrefix(): // Finds the longest string in the tree that is a prefix // of the input string. // // Example: if the input string starts "therein ..." and // both "the" and "there" are in the tree, then the node // for "there" will be returned. // // Returns NULL if no prefix string exists in the tree. // template nodeT * StrTree::LongestPrefix (const char * str) { if (TreeMode) { MakeList(); } nodeT * longestMatch = NULL; nodeT * node; node = Root [(byte) *str]; while (node != NULL) { if (node->name[0] != *str) { break; } if (strIsPrefix (node->name, str)) { longestMatch = node; } node = node->right; } return longestMatch; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::Delete(): // Deletes the node matching the key string. // Returns: the node (if the key was deleted), or NULL // if the key was not in the tree. // // The reason it returns the node that is extracted from the tree // instead of deleting it, is so the caller can free any memory // in the node's data field first. So it is the caller's // responsibility to actually delete the node returned. // The only memory this function deletes is the name, if it was // allocated by the StrTree at insertion (that is, if AllocateStrings // is true). // // This function takes O(log N) time, and guarantees to keep the // tree height the same or decrease it -- some naive implementations // of deletion in a binary search tree can actually increase the // height. // template nodeT * StrTree::Delete (const char * key) { ASSERT (key != NULL); nodeT ** parentPtr; // Address of the parent pointer. nodeT * toDelete; // Node that will be deleted. nodeT * child; // Node that will replace toDelete in the tree. if (! TreeMode) { MakeTree(); } // First, find the node to be deleted, and the address of the parent // pointer that points to it, so that can be changed: parentPtr = &(Root[(byte) *key]); toDelete = Root[(byte) *key]; while (toDelete) { Stat_StrCompares++; int result = strCompare (key, toDelete->name); if (result < 0) { // Move into left subtree: parentPtr = &(toDelete->left); toDelete = toDelete->left; } else if (result > 0) { // Move into right subtree: parentPtr = &(toDelete->right); toDelete = toDelete->right; } else { // Found the node to be deleted: break; } } if (toDelete == NULL) { return NULL; } // Now, we need to find a candidate child node that will move to // the place in the tree where toDelete is. // First we check simple cases: if toDelete has an empty subtree // pointer, the other subtree (which may/may not be empty) is the // child to replace toDelete. // // The next simple case is, if toDelete->right has no left subtree, // then toDelete->right is the candidate to replace toDelete. // // If none of these simple cases works, we find the next node after // toDelete in its right subtree (by going right once then left as // far as possible) and that node (which may be a leaf node, or may // have a right subtree, but obviously cannot have a left subtree) // is the candidate to replace toDelete. // First the three easy cases: see the comment above. if (toDelete->left == NULL) { child = toDelete->right; } else if (toDelete->right == NULL) { child = toDelete->left; } else if (toDelete->right->left == NULL) { child = toDelete->right; child->left = toDelete->left; } else { // Now the last case which involves finding the closest // successor of toDelete in its right subtree: ASSERT (toDelete->right->left); // searchNode is set to the parent of the successor of toDelete // so searchNode->left is the actual successor. This is so we // can snip searchNode->left (making it searchNode->left->right) // to remove the candidate from that part of the tree. nodeT * searchNode; searchNode = toDelete->right; while (searchNode->left->left) { searchNode = searchNode->left; } ASSERT (searchNode->left); child = searchNode->left; searchNode->left = searchNode->left->right; // child will replace toDelete, so it needs toDelete's children as // its children: child->left = toDelete->left; child->right = toDelete->right; } // Finally, we can delete toDelete and set the parent pointer to // the child that replaces toDelete. // Note that child could be NULL here. *parentPtr = child; TotalSize--; TreeSize[(byte) *key]--; // We only delete toDelete->name if we allocated it, otherwise it // was set explicitly by the caller when it was inserted. if (AllocateStrings) { #ifdef WINCE my_Tcl_Free(toDelete->name); #else delete[] toDelete->name; #endif toDelete->name = NULL; } // Finally, we return the deleted node, setting its children nodes // to NULL just for safety. The caller can do what it needs with // the node data and then delete the node itself. toDelete->left = toDelete->right = NULL; return toDelete; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::DumpTree(): // Dumps a visual representation of the tree to an open file. // template void StrTree::DumpRecurse (FILE * fp, const nodeT * node, int height) { if (node != NULL) { DumpRecurse (fp, node->right, height + 2); for (int i=0; i < height; i++) { putc (' ', fp); } fprintf (fp, "%s\n", node->name); DumpRecurse (fp, node->left, height + 2); } } template void StrTree::DumpTree (FILE * fp) { ASSERT (fp != NULL); if (! TreeMode) { MakeTree(); } fprintf (fp, "Height: %u\n", TreeHeight); for (uint i=0; i < NUM_StrTrees; i++) { DumpRecurse (fp, Root[i], 0); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // StrTree::DumpStats(): // Dump statistics to an open file. // template void StrTree::DumpStats (FILE * fp) { fprintf (fp, "Insertions: %u found, %u new, %u total\n", Stat_InsertsFound, Stat_InsertsNew, Stat_InsertsFound + Stat_InsertsNew); fprintf (fp, "Lookups: %u, of which %u were successfull\n", Stat_Lookups, Stat_LookupsFound); fprintf (fp, "Rebalances: %u\n", Stat_Rebalances); fprintf (fp, "String comparisons: %u\n", Stat_StrCompares); fprintf (fp, "First chars: actual / searched\n"); for (int i=0; i < 256; i++) { if (TreeSize[i] || SearchCharCount[i]) { fprintf (fp, " %c %7u %7u\n", i, TreeSize[i], SearchCharCount[i]); } } } #endif // ifndef SCID_STRTREE_H ////////////////////////////////////////////////////////////////////// // EOF: strtree.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/date.cpp0000644000175000017500000001023411727223077015646 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: date.cpp // Date functions. // // Part of: Scid (Shane's Chess Information Database) // Version: 1.9 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "common.h" #include "date.h" #include "misc.h" //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // date_DecodeToString(): convert date to PGN tag string. void date_DecodeToString (dateT date, char * str) { ASSERT(str != NULL); uint year, month, day; year = date_GetYear (date); month = date_GetMonth (date); day = date_GetDay (date); if (year == 0) { *str++ = '?'; *str++ = '?'; *str++ = '?'; *str++ = '?'; } else { *str++ = '0' + (year / 1000); *str++ = '0' + (year % 1000) / 100; *str++ = '0' + (year % 100) / 10; *str++ = '0' + (year % 10); } *str++ = '.'; if (month == 0) { *str++ = '?'; *str++ = '?'; } else { *str++ = '0' + (month / 10); *str++ = '0' + (month % 10); } *str++ = '.'; if (day == 0) { *str++ = '?'; *str++ = '?'; } else { *str++ = '0' + (day / 10); *str++ = '0' + (day % 10); } *str = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // date_EncodeFromString(): convert PGN tag string to date. // The date string format is: "yyyy.mm.dd". dateT date_EncodeFromString (const char * str) { // Do checks on str's validity as a date string: ASSERT(str != NULL); dateT date; uint year, month, day; // convert year: year = strGetUnsigned (str); if (year > YEAR_MAX) { year = 0; } date = year << YEAR_SHIFT; while (*str != 0 && *str != '.') { str++; } if (*str == '.') { str++; } // convert month: month = strGetUnsigned (str); if (month > 12) { return date; } date |= (month << MONTH_SHIFT); while (*str != 0 && *str != '.') { str++; } if (*str == '.') { str++; } // convert day: day = strGetUnsigned (str); if (day > 31) { return date; } date |= (day << DAY_SHIFT); return date; } bool date_ValidString (const char * str) { uint maxValues[3] = { YEAR_MAX, 12, 31 }; // Check year, then month, then day: for (uint i=0; i < 3; i++) { uint maxValue = maxValues[i]; bool seenQuestion, seenDigit, seenOther; seenQuestion = seenDigit = seenOther = false; const char * start = str; while (*str != 0 && *str != '.') { char ch = *str; if (ch >= '0' && ch <= '9') { seenDigit = true; } else if (ch == '?') { seenQuestion = true; } else { seenOther = true; } str++; } // Here, we should have seen question marks or digits, not both: if (seenOther) { return false; } if (seenQuestion && seenDigit) { return false; } if (seenDigit) { // Check that the value is not too large: uint value = strGetUnsigned (start); if (value > maxValue) { return false; } } if (*str == 0) { return true; } else { str++; } } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // date_AddMonths: // Returns the date incremented by the specified number of months. // dateT date_AddMonths (dateT date, int numMonths) { uint year = date_GetYear (date); uint month = date_GetMonth (date); uint day = date_GetDay (date); while (numMonths < 0) { if (month == 0 || month == 1) { year--; month = 12; } else { month--; } numMonths++; } while (numMonths > 0) { month++; if (month > 12) { year++; month = 1; } numMonths--; } return ((year << YEAR_SHIFT) | (month << MONTH_SHIFT) | day); } ////////////////////////////////////////////////////////////////////// // EOF: date.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/myassert.cpp0000644000175000017500000000161311727223077016601 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: myassert.cpp // Function to handle failed ASSERTs // // Part of: Scid (Shane's Chess Information Database) // Version: 0.3 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include #include #include "myassert.h" int numAsserts = 0; void _MyAssert(char *filename, unsigned linenum) { fflush (NULL); // Flush all buffers first. fprintf (stderr, "\nASSERT FAILED!!: %s, line %u\n", filename, linenum); fflush (stderr); abort (); } ////////////////////////////////////////////////////////////////////// // EOF: myassert.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/index.h0000644000175000017500000007543211727223077015520 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: index.h // Index File Class // // Part of: Scid (Shane's Chess Information Database) // Version: 4.0 // // Notice: Copyright (c) 1999-2002 Shane Hudson. all rights reserved. // Notice: Copyright (c) 2006-2009 Pascal Georges. all rights reserved. // // Authors: Shane Hudson (sgh@users.sourceforge.net) // Pascal Georges ////////////////////////////////////////////////////////////////////// #ifndef SCID_INDEX_H #define SCID_INDEX_H #include "common.h" #include "error.h" #include "matsig.h" #include "namebase.h" #include "date.h" #include "mfile.h" #include "sortcache.h" #include // Length is encoded as unsigned short #define MAX_GAME_LENGTH 131072 class SortCache; ////////////////////////////////////////////////////////////////////// // Index: Constants const char INDEX_SUFFIX[] = ".si4"; const char OLD_INDEX_SUFFIX[] = ".si3"; const char INDEX_MAGIC[8] = "Scid.si"; const gameNumberT MAX_GAMES = 16000000; // max. # of games in file // Descriptions can be up to 107 bytes long. const uint SCID_DESC_LENGTH = 107; const uint CUSTOM_FLAG_DESC_LENGTH = 8; const uint CUSTOM_FLAG_MAX = 6; const uint MAX_ELO = 4000; // Since we store Elo Ratings in 12 bits // each in the index file. // Struct indexHeader: one at the start of the index file. // struct indexHeaderT { char magic[9]; // 8-byte identifier for Scid index files. versionT version; // version number. 2 bytes. uint baseType; // Type, e.g. tournament, theory, etc. gameNumberT numGames; // number of games in file. gameNumberT autoLoad; // game number to autoload: 0=1st, 1=none, 2=1st, // 3=2nd, 4=3rd, etc. Note that 0=1st for // backwards compatibility: bases with this // unset will load game 1. // description is a fixed-length string describing the database. char description [SCID_DESC_LENGTH + 1]; // short description (8 chars) for the CUSTOM_FLAG_MAX bits for CUSTOM flags char customFlagDesc [CUSTOM_FLAG_MAX][CUSTOM_FLAG_DESC_LENGTH+1] ; }; // Header on-disk size: magic=8, version=2, numGames=3, baseType=4, autoLoad=3 // Description length = 111 bytes including trailing '\0'. // Custom flag desc length = 9 bytes including trailing '\0'. // So total is 128 bytes + 9*6 = 182 bytes for the whole header. const uint INDEX_HEADER_SIZE = 8 + 2 + 3 + 4 + 3 + SCID_DESC_LENGTH + 1 + (CUSTOM_FLAG_DESC_LENGTH+1) * CUSTOM_FLAG_MAX; const uint OLD_INDEX_HEADER_SIZE = INDEX_HEADER_SIZE - (CUSTOM_FLAG_DESC_LENGTH+1) * CUSTOM_FLAG_MAX; // INDEX_MaxSortCriteria is the maximum number of fields allowed in // a sorting criteria list. const uint INDEX_MaxSortCriteria = 16; // HPSIG_SIZE = size of HomePawnData array in an IndexEntry. // It is nine bytes: the first byte contains the number of valid entries // in the array, and the next 8 bytes contain up to 16 half-byte entries. const uint HPSIG_SIZE = 9; // IndexEntry Flag types: #define IDX_NUM_FLAGS 22 #define IDX_FLAG_START 0 // Game has own start position. #define IDX_FLAG_PROMO 1 // Game contains promotion(s). #define IDX_FLAG_UPROMO 2 // Game contains promotion(s). #define IDX_FLAG_DELETE 3 // Game marked for deletion. #define IDX_FLAG_WHITE_OP 4 // White openings flag. #define IDX_FLAG_BLACK_OP 5 // Black openings flag. #define IDX_FLAG_MIDDLEGAME 6 // Middlegames flag. #define IDX_FLAG_ENDGAME 7 // Endgames flag. #define IDX_FLAG_NOVELTY 8 // Novelty flag. #define IDX_FLAG_PAWN 9 // Pawn structure flag. #define IDX_FLAG_TACTICS 10 // Tactics flag. #define IDX_FLAG_KSIDE 11 // Kingside play flag. #define IDX_FLAG_QSIDE 12 // Queenside play flag. #define IDX_FLAG_BRILLIANCY 13 // Brilliancy or good play. #define IDX_FLAG_BLUNDER 14 // Blunder or bad play. #define IDX_FLAG_USER 15 // User-defined flag. #define IDX_FLAG_CUSTOM1 16 // Custom flag. #define IDX_FLAG_CUSTOM2 17 // Custom flag. #define IDX_FLAG_CUSTOM3 18 // Custom flag. #define IDX_FLAG_CUSTOM4 19 // Custom flag. #define IDX_FLAG_CUSTOM5 20 // Custom flag. #define IDX_FLAG_CUSTOM6 21 // Custom flag. #define IDX_MASK_START (1 << IDX_FLAG_START) #define IDX_MASK_PROMO (1 << IDX_FLAG_PROMO) #define IDX_MASK_UPROMO (1 << IDX_FLAG_UPROMO) #define IDX_MASK_DELETE (1 << IDX_FLAG_DELETE) #define IDX_MASK_WHITE_OP (1 << IDX_FLAG_WHITE_OP) #define IDX_MASK_BLACK_OP (1 << IDX_FLAG_BLACK_OP) #define IDX_MASK_MIDDLEGAME (1 << IDX_FLAG_MIDDLEGAME) #define IDX_MASK_ENDGAME (1 << IDX_FLAG_ENDGAME) #define IDX_MASK_NOVELTY (1 << IDX_FLAG_NOVELTY) #define IDX_MASK_PAWN (1 << IDX_FLAG_PAWN) #define IDX_MASK_TACTICS (1 << IDX_FLAG_TACTICS) #define IDX_MASK_KSIDE (1 << IDX_FLAG_KSIDE) #define IDX_MASK_QSIDE (1 << IDX_FLAG_QSIDE) #define IDX_MASK_BRILLIANCY (1 << IDX_FLAG_BRILLIANCY) #define IDX_MASK_BLUNDER (1 << IDX_FLAG_BLUNDER) #define IDX_MASK_USER (1 << IDX_FLAG_USER) const byte CUSTOM_FLAG_MASK[] = { 1, 1 << 1, 1 << 2, 1 << 3, 1 << 4, 1 << 5 }; // Bitmask functions for index entry decoding: inline byte u32_high_8( uint x ) { return (byte)(x >> 24); } inline uint u32_low_24( uint x ) { return x & 0x00FFFFFF; } inline uint u32_high_12( uint x ) { return x >> 20; } inline uint u32_low_20( uint x ) { return x & 0x000FFFFF; } inline byte u16_high_4( ushort x ) { return (byte)(x >> 12); } inline ushort u16_low_12( ushort x ) { return x & 0x0FFF; } inline byte u8_high_4( byte x ) { return x >> 4; } inline byte u8_low_4( byte x ) { return x & 0x0F; } inline byte u8_high_3( byte x ) { return x >> 5; } inline byte u8_low_5( byte x ) { return x & 0x1F; } inline uint u32_set_high_8( uint u, byte x ) { return u32_low_24(u) | ((uint)x << 24); } inline uint u32_set_low_24( uint u, uint x ) { return (u & 0xFF000000) | (x & 0x00FFFFFF); } inline uint u32_set_high_12( uint u, uint x ) { return u32_low_20(u) | (x << 20); } inline uint u32_set_low_20( uint u, uint x ) { return (u & 0xFFF00000) | (x & 0x000FFFFF); } inline ushort u16_set_high_4( ushort u, byte x ) { return u16_low_12(u) | ((ushort)x << 12); } inline ushort u16_set_low_12( ushort u, ushort x ) { return (u & 0xF000) | (x & 0x0FFF); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class IndexEntry: one of these per game in the index file. // // It contains more than just the location of the game data in the main // data file. For fast searching, it also store some other important // values: players, event, site, date, result, eco, gamelength. // // It takes 48 bytes, assuming sizeof(uint) == 4 and sizeof(ushort) == 2. class IndexEntry { private: uint Offset; // Start of gamefile record for this game. // Name ID values are packed into 12 bytes, saving 8 bytes over the // simpler method of just storing each as a 4-byte idNumberT. ushort WhiteID_Low; // Lower 16 bits of White ID. ushort BlackID_Low; // Lower 16 bits of Black ID. ushort EventID_Low; // Lower 16 bits of Site. ushort SiteID_Low; // Lower 16 bits of Site ID. ushort RoundID_Low; // Lower 16 bits of Round ID. byte WhiteBlack_High; // High bits of White, Black. byte EventSiteRnd_High; // High bits of Event, Site, Round. ecoT EcoCode; // ECO code dateT Dates; // Date and EventDate fields. eloT WhiteElo; eloT BlackElo; matSigT FinalMatSig; // material of the final position in the game, // and the StoredLineCode in the top 8 bits. ushort Flags; ushort VarCounts; // Counters for comments, variations, etc. // VarCounts also stores the result. ushort NumHalfMoves; byte HomePawnData [HPSIG_SIZE]; // homePawnSig data. // Length of gamefile record for this game. 17 bits are used so the max length is // 128 ko (131071). So 7 bits are usable for custom flags or other. ushort Length_Low; byte Length_High; // LxFFFFFF ( L = length for long games, x = spare, F = custom flags) public: #ifdef WINCE void* operator new (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete (void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif IndexEntry() {} ~IndexEntry() {} void Init(); errorT Verify (NameBase * nb); // Get() methods: inline uint GetLength () { return (Length_Low + ((Length_High & 0x80) << 9)); } inline uint GetOffset () { return Offset; } inline idNumberT GetWhite (); inline idNumberT GetBlack (); inline idNumberT GetEvent (); inline idNumberT GetSite (); inline idNumberT GetRound (); inline char * GetWhiteName (NameBase * nb); inline char * GetBlackName (NameBase * nb); inline char * GetEventName (NameBase * nb); inline char * GetSiteName (NameBase * nb); inline char * GetRoundName (NameBase * nb); inline dateT GetDate () { return u32_low_20(Dates); } inline uint GetYear () { return date_GetYear (GetDate()); } inline uint GetMonth () { return date_GetMonth (GetDate()); } inline uint GetDay () { return date_GetDay (GetDate()); } dateT GetEventDate (); inline resultT GetResult () { return (VarCounts >> 12); } inline eloT GetWhiteElo () { return u16_low_12(WhiteElo); } inline eloT GetBlackElo () { return u16_low_12(BlackElo); } inline byte GetWhiteRatingType () { return u16_high_4 (WhiteElo); } inline byte GetBlackRatingType () { return u16_high_4 (BlackElo); } inline ecoT GetEcoCode () { return EcoCode; } inline ushort GetNumHalfMoves () { return NumHalfMoves; } inline byte GetRating(NameBase* nb); // inline uint GetFlags () { return Flags; } inline bool GetFlag (uint mask) { if (mask & 0xFFFF) return Flags & mask; else return Length_High & ( mask >> 16 ) ; } inline bool GetStartFlag () { return Flags & IDX_MASK_START; } inline bool GetPromotionsFlag () { return Flags & IDX_MASK_PROMO; } inline bool GetUnderPromoFlag() { return Flags & IDX_MASK_UPROMO; } inline bool GetCommentsFlag () { return (GetCommentCount() > 0); } inline bool GetVariationsFlag () { return (GetVariationCount() > 0); } inline bool GetNagsFlag () { return (GetNagCount() > 0); } inline bool GetDeleteFlag () { return Flags & IDX_MASK_DELETE; } inline bool GetWhiteOpFlag () { return Flags & IDX_MASK_WHITE_OP; } inline bool GetBlackOpFlag () { return Flags & IDX_MASK_BLACK_OP; } inline bool GetMiddlegameFlag () { return Flags & IDX_MASK_MIDDLEGAME; } inline bool GetEndgameFlag () { return Flags & IDX_MASK_ENDGAME; } inline bool GetNoveltyFlag () { return Flags & IDX_MASK_NOVELTY; } inline bool GetPawnStructFlag () { return Flags & IDX_MASK_PAWN; } inline bool GetTacticsFlag () { return Flags & IDX_MASK_TACTICS; } inline bool GetKingsideFlag () { return Flags & IDX_MASK_KSIDE; } inline bool GetQueensideFlag () { return Flags & IDX_MASK_QSIDE; } inline bool GetBrilliancyFlag () { return Flags & IDX_MASK_BRILLIANCY; } inline bool GetBlunderFlag () { return Flags & IDX_MASK_BLUNDER; } inline bool GetUserFlag () { return Flags & IDX_MASK_USER; } // Custom flags are bits numbered from 1 to 6 from left to right inline bool GetCustomFlag (byte c) { return (Length_High & CUSTOM_FLAG_MASK[c-1]) ; } static uint CharToFlag (char ch); uint GetFlagStr (char * str, const char * flags); void SetFlagStr (const char * flags); inline static uint EncodeCount (uint x) { if (x <= 10) { return x; } if (x <= 12) { return 10; } if (x <= 17) { return 11; } // 11 indicates 15 (13-17) if (x <= 24) { return 12; } // 12 indicates 20 (18-24) if (x <= 34) { return 13; } // 13 indicates 30 (25-34) if (x <= 44) { return 14; } // 14 indicates 40 (35-44) return 15; // 15 indicates 50 or more } inline static uint DecodeCount (uint x) { static uint countCodes[16] = {0,1,2,3,4,5,6,7,8,9,10,15,20,30,40,50}; return countCodes[x & 15]; } inline uint GetVariationCount () { return DecodeCount(VarCounts & 15); } inline uint GetCommentCount () { return DecodeCount((VarCounts >> 4) & 15); } inline uint GetNagCount () { return DecodeCount((VarCounts >> 8) & 15); } inline matSigT GetFinalMatSig () { return u32_low_24 (FinalMatSig); } inline byte GetStoredLineCode () { return u32_high_8 (FinalMatSig); } inline byte * GetHomePawnData () { return HomePawnData; } // Set() Methods: inline void SetOffset (uint offset) { Offset = offset; } inline void SetLength (uint length) { ASSERT(length >= 0 && length < 131072); Length_Low = (unsigned short) (length & 0xFFFF); // preserve the last 7 bits Length_High = ( Length_High & 0x7F ) | (byte) ( (length >> 16) << 7 ); } inline void SetWhite (idNumberT id); inline void SetBlack (idNumberT id); inline void SetEvent (idNumberT id); inline void SetSite (idNumberT id); inline void SetRound (idNumberT id); inline void SetDate (dateT date) { Dates = u32_set_low_20 (Dates, date); } void SetEventDate (dateT date); bool ValidEventDate (dateT date); inline void SetResult (resultT res) { VarCounts = (VarCounts & 0x0FFF) | (((ushort)res) << 12); } inline void SetWhiteElo (eloT elo) { WhiteElo = u16_set_low_12(WhiteElo, elo); } inline void SetBlackElo (eloT elo) { BlackElo = u16_set_low_12 (BlackElo, elo); } inline void SetWhiteRatingType (byte b) { WhiteElo = u16_set_high_4 (WhiteElo, b); } inline void SetBlackRatingType (byte b) { BlackElo = u16_set_high_4 (BlackElo, b); } inline void SetEcoCode (ecoT eco) { EcoCode = eco; } inline void SetNumHalfMoves (ushort b) { NumHalfMoves = b; } // inline void SetFlags (uint flags) { Flags = flags; } inline void SetFlag (uint flagMask, bool b) { if (flagMask & 0xFFFF) { if (b) { Flags |= flagMask; } else { Flags &= ~flagMask; } } else { if (b) { Length_High |= (flagMask >> 16); } else { Length_High &= ~ (flagMask >> 16); } } } inline void SetStartFlag (bool b) { SetFlag (IDX_MASK_START, b); } inline void SetPromotionsFlag (bool b) { SetFlag (IDX_MASK_PROMO, b); } inline void SetUnderPromoFlag (bool b) { SetFlag (IDX_MASK_UPROMO, b); } inline void SetDeleteFlag (bool b) { SetFlag (IDX_MASK_DELETE, b); } inline void SetUserFlag (bool b) { SetFlag (IDX_MASK_USER, b); } inline void SetBlackOpFlag (bool b) { SetFlag (IDX_MASK_BLACK_OP, b); } inline void SetMiddlegameFlag (bool b) { SetFlag (IDX_MASK_MIDDLEGAME, b); } inline void SetEndgameFlag (bool b) { SetFlag (IDX_MASK_ENDGAME, b); } inline void SetNoveltyFlag (bool b) { SetFlag (IDX_MASK_NOVELTY, b); } inline void SetPawnStructFlag (bool b) { SetFlag (IDX_MASK_PAWN, b); } inline void SetTacticsFlag (bool b) { SetFlag (IDX_MASK_TACTICS, b); } inline void SetKingsideFlag (bool b) { SetFlag (IDX_MASK_KSIDE, b); } inline void SetQueensideFlag (bool b) { SetFlag (IDX_MASK_QSIDE, b); } inline void SetBrilliancyFlag (bool b) { SetFlag (IDX_MASK_BRILLIANCY, b); } inline void SetBlunderFlag (bool b) { SetFlag (IDX_MASK_BLUNDER, b); } inline void SetWhiteOpFlag (bool b) { SetFlag (IDX_MASK_WHITE_OP, b); } inline void SetVariationCount (uint x) { VarCounts = (VarCounts & 0xFFF0U) | EncodeCount(x); } inline void SetCommentCount (uint x) { VarCounts = (VarCounts & 0xFF0FU) | (EncodeCount(x) << 4); } inline void SetNagCount (uint x) { VarCounts = (VarCounts & 0xF0FFU) | (EncodeCount(x) << 8); } inline void SetFinalMatSig (matSigT ms) { FinalMatSig = u32_set_low_24 (FinalMatSig, ms); } inline void SetStoredLineCode (byte b) { FinalMatSig = u32_set_high_8 (FinalMatSig, b); } inline void SetHomePawnData (byte * hpData) { for (uint i=0; i < HPSIG_SIZE; i++) { HomePawnData[i] = hpData[i]; } } // Other IndexEntry methods: errorT Read (MFile * fp, versionT version); errorT Write (MFile * fp, versionT version); void PrintGameInfo (char * outStr, gameNumberT gnFiltered, gameNumberT gnReal, NameBase * nb, const char * format); int Compare (IndexEntry * ie, int * fields, NameBase * nb); }; inline char * IndexEntry::GetWhiteName (NameBase * nb) { return nb->GetName (NAME_PLAYER, GetWhite()); } inline char * IndexEntry::GetBlackName (NameBase * nb) { return nb->GetName (NAME_PLAYER, GetBlack()); } inline char * IndexEntry::GetEventName (NameBase * nb) { return nb->GetName (NAME_EVENT, GetEvent()); } inline char * IndexEntry::GetSiteName (NameBase * nb) { return nb->GetName (NAME_SITE, GetSite()); } inline char * IndexEntry::GetRoundName (NameBase * nb) { return nb->GetName (NAME_ROUND, GetRound()); } // Name Get and Set routines: // // WhiteID and BlackID are 20-bit values, EventID and SiteID are // 19-bit values, and RoundID is an 18-bit value. // // WhiteID high 4 bits = bits 4-7 of WhiteBlack_High. // BlackID high 4 bits = bits 0-3 of WhiteBlack_High. // EventID high 3 bits = bits 5-7 of EventSiteRnd_high. // SiteID high 3 bits = bits 2-4 of EventSiteRnd_high. // RoundID high 2 bits = bits 0-1 of EventSiteRnd_high. inline idNumberT IndexEntry::GetWhite () { idNumberT id = (idNumberT) WhiteBlack_High; id = id >> 4; // High 4 bits = bits 4-7 of WhiteBlack_High. id <<= 16; id |= (idNumberT) WhiteID_Low; return id; } inline void IndexEntry::SetWhite (idNumberT id) { WhiteID_Low = id & 0xFFFF; WhiteBlack_High = WhiteBlack_High & 0x0F; // Clear bits 4-7. WhiteBlack_High |= ((id >> 16) << 4); // Set bits 4-7. } inline idNumberT IndexEntry::GetBlack () { idNumberT id = (idNumberT) WhiteBlack_High; id = id & 0xF; // High 4 bits = bits 0-3 of WhiteBlack_High. id <<= 16; id |= (idNumberT) BlackID_Low; return id; } inline void IndexEntry::SetBlack (idNumberT id) { BlackID_Low = id & 0xFFFF; WhiteBlack_High = WhiteBlack_High & 0xF0; // Clear bits 0-3. WhiteBlack_High |= (id >> 16); // Set bits 0-3. } inline idNumberT IndexEntry::GetEvent () { uint id = (idNumberT) EventSiteRnd_High; id >>= 5; // High 3 bits = bits 5-7 of EventSiteRnd_High. id <<= 16; id |= (idNumberT) EventID_Low; return id; } inline void IndexEntry::SetEvent (idNumberT id) { EventID_Low = id & 0xFFFF; // Clear bits 2-4 of EventSiteRnd_high: 31 = 00011111 binary. EventSiteRnd_High = EventSiteRnd_High & 31; EventSiteRnd_High |= ((id >> 16) << 5); } inline idNumberT IndexEntry::GetSite () { uint id = (idNumberT) EventSiteRnd_High; id = (id >> 2) & 7; // High 3 bits = bits 2-5 of EventSiteRnd_High. id <<= 16; id |= (idNumberT) SiteID_Low; return id; } inline void IndexEntry::SetSite (idNumberT id) { SiteID_Low = id & 0xFFFF; // Clear bits 2-4 of EventSiteRnd_high: 227 = 11100011 binary. EventSiteRnd_High = EventSiteRnd_High & 227; EventSiteRnd_High |= ((id >> 16) << 2); } inline idNumberT IndexEntry::GetRound () { uint id = (idNumberT) EventSiteRnd_High; id &= 3; // High 2 bits = bits 0-1 of EventSiteRnd_High. id <<= 16; id |= (idNumberT) RoundID_Low; return id; } inline void IndexEntry::SetRound (idNumberT id) { RoundID_Low = id & 0xFFFF; // Clear bits 0-1 of EventSiteRnd_high: 252 = 11111100 binary. EventSiteRnd_High = EventSiteRnd_High & 252; EventSiteRnd_High |= (id >> 16); } // Total on-disk size per index entry: currently 46 bytes. const uint INDEX_ENTRY_SIZE = 47; const uint OLD_INDEX_ENTRY_SIZE = 46; typedef IndexEntry * IndexEntryPtr; // INDEX_ENTRY_CHUNKSIZE is the number of index entries allocated as // one chunk. INDEX_ENTRY_CHUNKSHIFT is the base-2 logarithm of this. // The SHIFT and MASK constants are used to avoid mods and divs. // const uint INDEX_ENTRY_CHUNKSHIFT = 10; // 2^10 => chunks of 1024 entries. const uint INDEX_ENTRY_CHUNKSIZE = (1 << INDEX_ENTRY_CHUNKSHIFT); const uint INDEX_ENTRY_CHUNKMASK = (INDEX_ENTRY_CHUNKSIZE - 1); const uint SORTING_CACHE_MAX = 8; ////////////////////////////////////////////////////////////////////// // Index: Class Definition class Index { private: //---------------------------------- // Index: Data structures //---------------------------------- fileNameT Fname; indexHeaderT Header; // Num games in file, baseType etc. MFile * FilePtr; // filehandle for opened index file. uint FilePos; // current byte position in index file. fileModeT FileMode; // Mode: e.g. FILE_WRITEONLY bool InMemory; // If nonzero, whole file is in memory IndexEntry ** Entries; // A two-level array of the entire index. int Dirty; // If true, Header needs rewriting to disk. char * ErrorMsg; uint IndexEntrySize; // Used for sorting: uint * EntriesHeap; int SortCriteria [INDEX_MaxSortCriteria]; void FreeEntries(); uint NumChunksRequired() { return 1 + (GetNumGames() >> INDEX_ENTRY_CHUNKSHIFT); } SortCache * sortingCaches[SORTING_CACHE_MAX]; bool filter_changed_; //---------------------------------- // Index: Public Functions //---------------------------------- public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif Index() { Init(); } ~Index() { Clear(); } void Init (); void Clear (); void InitEntries (IndexEntry * ie, uint count); // CalcIndexEntrySize: useful if the index entry size needs to grow in // a future version of Scid. Currently, all versions use same size. inline void CalcIndexEntrySize (void) { if (Header.version < 300) { IndexEntrySize = OLD_INDEX_ENTRY_SIZE; } else { IndexEntrySize = INDEX_ENTRY_SIZE; } } char * ErrorMessage() { return ErrorMsg; } void SetFileName (const char *s) { strCopy (Fname, s); } char * GetFileName () { return Fname; } void SetType (uint t) { Header.baseType = t; } uint GetType () { return Header.baseType; } versionT GetVersion () { return Header.version; } void SetVersion (versionT v) { Header.version = v; } void SetDescription (const char *s); const char * GetDescription () { return Header.description; } // fill param str with custom flag description. Number is 1..6 void GetCustomFlagDesc (char * str, byte c) { strcpy(str, Header.customFlagDesc[c-1] ); } void SetCustomFlagDesc (const char * str, byte c) { strncpy( Header.customFlagDesc[c-1], str, CUSTOM_FLAG_DESC_LENGTH ); Header.customFlagDesc[c-1][CUSTOM_FLAG_DESC_LENGTH] = 0; WriteHeader (); } void SetAutoLoad (gameNumberT gnum) { Header.autoLoad = gnum + 1; } gameNumberT GetAutoLoad () { return ((Header.autoLoad == 0) ? 1 : (Header.autoLoad - 1)); } errorT Open (fileModeT, bool old); errorT OpenIndexFile (fileModeT m) { return Open (m, false); } errorT OpenOldIndexFile (fileModeT m) { return Open (m, true); } errorT CreateIndexFile (fileModeT); errorT CreateMemoryOnly (); errorT WriteHeader (); errorT CloseIndexFile (bool NoHeader = false); errorT SetReadOnly (); errorT ReadEntries (IndexEntry * ie, gameNumberT start, uint count); errorT WriteEntries (IndexEntry * ie, gameNumberT start, uint count); errorT ReadEntireFile (int reportFrequency, void (*progressFn)(void * data, uint progress, uint total), void * progressData); inline errorT ReadEntireFile () { return ReadEntireFile (0, NULL, NULL); } MFile * GetMFile() { return FilePtr; } uint VerifyFile (NameBase * nb); bool AllInMemory() { return InMemory; } inline IndexEntry * FetchEntry (gameNumberT g); std::string FetchInfo (gameNumberT g, NameBase* nb); gameNumberT GetNumGames () { return Header.numGames; } errorT AddGame (gameNumberT * g, IndexEntry * ie, bool initIE = false); public: /* CreateSortingCache * Create a SortCache that requires 4 byte for each game * A SortCache will greatly speedup the GetRange* functions that use the same criteria * nbase: pointer to the NameBase where to get data from. * criteria: string that identify the sort order, composed by a letter (see sortcache.cpp for a list of valid values) * and + (ascending) or - (descending). * For example: "i-d-" means sort by rating desc, date desc * Return: a pointer to the newly created SortCache * 0 in case of error */ SortCache* CreateSortingCache (NameBase *nbase, const char *criteria); /* FreeCache * Release the memory of a SortCache (previously created by CreateSortingCache) * criteria: string that identify the sort order */ void FreeCache(const char* criteria); /* GetRange * Get a list of ordered game indexes sorted by criteria * nbase: pointer to the NameBase where to get data from. * criteria: string that identify the sort order * idx: get result after position idx (0 to get the first games) * count: number of results wanted * filter: include only the game where filter->Get() > 0 * result: pointer to an array of uint where the sorted list will be stored * *result* array must have size >= count * if there aren't enough result to reach count: result[last_result + 1] = IDX_NOT_FOUND */ errorT GetRange( NameBase *nbase, const char *criteria, uint idx, uint count, Filter *filter, uint *result); /* GetRangeLocation * Find the location of a game into a sorted Range. * The result of the functions and param gnumber are index by base 1. * I.E. if GetRangeLocation(... gnumber=10 ...) = 40 then GetRange (... idx=39 ...) will return result[0] = 9; * gnumber: index of the game to search * text: search any game that contains *text* into white name or black name or site name or event name (case insensitive) * start: start the search after position *start* if forward =true, else search games before *start* * Return: the position of the searched game (first game = 1) * 0 if not found */ uint GetRangeLocation (NameBase *nbase, const char *criteria, Filter *filter, uint gnumber); uint GetRangeLocation (NameBase *nbase, const char *criteria, Filter *filter, const char* text, uint start, bool forward =true); errorT IndexUpdated( uint gnum); void FilterChanged(); public: errorT CreateSortingCache( NameBase *nbase, const char *criteria, int *handle); errorT DoFullSort(int cache, int reportFrequency, void (*progressFn)(void * data, uint progress, uint total), void * progressData); errorT GetRange( int cache, uint idx, uint count, Filter *filter, uint *result); uint IndexToFilteredCount( uint gnumber, int cache, Filter *filter); void FreeCache( int cache); errorT WriteSortCacheToFile (int handle); errorT ReadSortCacheFromFile(NameBase* nbase, int* handle); // Old sorting related methods. Should become obsolete private: void Sort_AdjustHeap (int heapSize, int root, NameBase * nb); errorT VerifySort (void); public: errorT Sort (NameBase * nb, int reportFrequency, void (*progressFn)(void * data, uint progress, uint total), void * progressData); errorT WriteSorted (int reportFrequency, void (*progressFn)(void * data, uint progress, uint total), void * progressData); errorT WriteSorted () { return WriteSorted (0, NULL, NULL); } errorT ParseSortCriteria (const char * inputStr); errorT GetSortingCrit( char *crit, int handle); bool CanLoad(); }; inline IndexEntry * Index::FetchEntry (gameNumberT g) { // Returns a ptr to a particular entry, or NULL if file is not // all in memory. if (g >= Header.numGames) { ASSERT(0); return NULL; } if (InMemory == 0) { ReadEntireFile(); } IndexEntry * chunk = Entries[g >> INDEX_ENTRY_CHUNKSHIFT]; return &(chunk[g & INDEX_ENTRY_CHUNKMASK]); } // inline produce smaller code inline byte IndexEntry::GetRating(NameBase* nb) { eloT welo = GetWhiteElo(); eloT belo = GetBlackElo(); if (welo == 0) { welo = nb->GetElo (GetWhite()); } if (belo == 0) { belo = nb->GetElo (GetBlack()); } int rating = static_cast(welo + belo) / 140; // Bonus for comments or Nags if (GetCommentsFlag() > 2 || GetNagCount() > 2) { if (rating < 21) { // Missing elo rating = 40; } else { rating += 6; } } // Early draw penalty if (GetResult() == RESULT_Draw) { uint moves = GetNumHalfMoves(); if (moves < 80) { rating -= 3; if (moves < 60) { rating -= 2; if (moves < 40) rating -= 2; } } } if (rating < 0) return 0; else return static_cast (rating); } #endif // #ifdef SCID_INDEX_H ////////////////////////////////////////////////////////////////////// // EOF: index.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/spellchk.cpp0000644000175000017500000006504611727223077016551 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: spellchk.cpp // SpellChecker class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2001-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef WINCE #include "spellchk.h" #include "date.h" #include "mfile.h" #include inline uint spellHash (const char * str) { uint hash = (byte) *str; if (*str == 0) { return hash; } str++; hash = (hash << 8 | hash) + (byte)*str; if (*str == 0) { return hash; } str++; hash = (hash << 8 | hash) + (byte)*str; if (*str == 0) { return hash; } str++; hash = (hash << 8 | hash) + (byte)*str; return hash; } void SpellChecker::Init (void) { ExcludeChars = strDuplicate (""); StrAlloc = new StrAllocator; EloDataSeen = false; CorrectNameCount = 0; IncorrectNameCount = 0; for (uint i=0; i < 256; i++) { Names[i] = NULL; } for (uint h=0; h < SPELL_HASH_SIZE; h++) { HashNames[h] = NULL; } Prefixes = NULL; Suffixes = NULL; Infixes = NULL; } void SpellChecker::Clear (void) { Destroy(); Init(); } void SpellChecker::Destroy (void) { #ifdef WINCE my_Tcl_Free( ExcludeChars ); #else delete[] ExcludeChars; #endif delete StrAlloc; StrAlloc = NULL; for (uint i=0; i < 256; i++) { spellCheckNodeT * node = Names[i]; while (node != NULL) { spellCheckNodeT * next = node->next; if (node->eloData != NULL) { #ifdef WINCE my_Tcl_Free((char*) node->eloData); } if (node->renderName != NULL) { my_Tcl_Free((char*) node->renderName); } #else delete[] node->eloData; } if (node->renderName != NULL) { delete[] node->renderName; } #endif while (node->bioData != NULL) { bioNoteT * next = node->bioData->next; #ifdef WINCE my_Tcl_Free((char*) node->bioData->text); my_Tcl_Free((char*) node->bioData); #else delete[] node->bioData->text; delete[] node->bioData; #endif node->bioData = next; } #ifdef WINCE my_Tcl_Free((char*) node); #else delete node; #endif node = next; } } while (Prefixes != NULL) { presuffixNodeT * next = Prefixes->next; #ifdef WINCE my_Tcl_Free((char*) Prefixes->name); my_Tcl_Free((char*) Prefixes->correctName); my_Tcl_Free((char*) Prefixes); #else delete[] Prefixes->name; delete[] Prefixes->correctName; delete Prefixes; #endif Prefixes = next; } while (Suffixes != NULL) { presuffixNodeT * next = Suffixes->next; #ifdef WINCE my_Tcl_Free((char*) Suffixes->name); my_Tcl_Free((char*) Suffixes->correctName); my_Tcl_Free((char*) Suffixes); #else delete[] Suffixes->name; delete[] Suffixes->correctName; delete Suffixes; #endif Suffixes = next; } while (Infixes != NULL) { presuffixNodeT * next = Infixes->next; #ifdef WINCE my_Tcl_Free((char*) Infixes->name); my_Tcl_Free((char*) Infixes->correctName); my_Tcl_Free((char*) Infixes); #else delete[] Infixes->name; delete[] Infixes->correctName; delete Infixes; #endif Infixes = next; } } void SpellChecker::SetExcludeChars (const char * str) { #ifdef WINCE my_Tcl_Free((char*) ExcludeChars); #else delete[] ExcludeChars; #endif ExcludeChars = strDuplicate (str); } void SpellChecker::SetRenderName (spellCheckNodeT * node, const char * name) { ASSERT (node != NULL && name != NULL); // Skip over any initial spaces: while (*name == ' ') { name++; } #ifdef WINCE if (node->renderName != NULL) { my_Tcl_Free((char*) node->renderName); } #else if (node->renderName != NULL) { delete[] node->renderName; } #endif node->renderName = strDuplicate (name); } const char * SpellChecker::RenderName (const char * name) { char searchName [512]; strCopyExclude (searchName, name, ExcludeChars); spellCheckNodeT * node = Names[(byte) *searchName]; while (node != NULL) { if (strEqual (name, node->correctName)) { if (node->renderName != NULL) { return node->renderName; } break; } node = node->next; } // Render spelling not found, so just return the original name: return name; } const char * SpellChecker::GetComment (const char * name) { const char * returnStr = NULL; char searchName [1024]; strCopyExclude (searchName, name, ExcludeChars); spellCheckNodeT * node = Names[(byte) *searchName]; while (node != NULL) { if (strIsPrefix (searchName, node->name)) { returnStr = node->comment; } // If the match is exact, return immediately: if (strEqual (searchName, node->name)) { break; } node = node->next; } return returnStr; } const char * SpellChecker::GetCommentExact (const char * name) { uint hash = spellHash(name) % SPELL_HASH_SIZE; spellCheckNodeT * node = HashNames[hash]; while (node != NULL) { if (strEqual (name, node->correctName)) { return node->comment; } node = node->nextHash; } return NULL; } const char * SpellChecker::CorrectPrefix (const char * name, int * offset) { int len = strLength (name); presuffixNodeT * node = Prefixes; while (node != NULL) { if (len >= node->length) { if (strIsPrefix (node->name, name)) { *offset = node->length; return node->correctName; } } node = node->next; } return NULL; } const char * SpellChecker::CorrectSuffix (const char * name, int * offset) { int len = strLength (name); presuffixNodeT * node = Suffixes; while (node != NULL) { int preLength = len - node->length; if (preLength >= 0) { const char * s = &(name[preLength]); if (strEqual (s, node->name)) { *offset = preLength; return node->correctName; } } node = node->next; } return NULL; } const char * SpellChecker::CorrectInfix (const char * name, int * offset, int * replacedLength) { presuffixNodeT * node = Infixes; while (node != NULL) { int index = strContainsIndex (name, node->name); if (index >= 0) { *offset = index; *replacedLength = strLength (node->name); return node->correctName; } node = node->next; } return NULL; } const char * SpellChecker::Correct (const char * name) { const char * returnStr = NULL; char searchName [1024]; strCopyExclude (searchName, name, ExcludeChars); spellCheckNodeT * node = Names[(byte) *searchName]; while (node != NULL) { if (strIsPrefix (searchName, node->name)) { // Found a correction: returnStr = node->correctName; // If the correction is exact, return immediately: if (strEqual (searchName, node->name)) { break; } } node = node->next; } return returnStr; } uint SpellChecker::Corrections (const char * name, const char ** corrections, uint maxCorrections) { ASSERT (maxCorrections > 0); char searchName [1024]; const char * prevCorrection = ""; uint correctionCount = 0; strCopyExclude (searchName, name, ExcludeChars); spellCheckNodeT * node = Names[(byte) *searchName]; while (node != NULL) { if (strIsPrefix (searchName, node->name)) { // Found a correction: if (! strEqual (prevCorrection, node->correctName)) { if (correctionCount < maxCorrections) { corrections[correctionCount] = node->correctName; correctionCount++; } prevCorrection = node->correctName; } // If the correction is exact, return *only* this correction: if (strEqual (searchName, node->name)) { corrections[0] = node->correctName; return 1; } } node = node->next; } return correctionCount; } static void getNameAndComment (char * line, char ** name, char ** comment) { char * s = line; // Find the first comment char (#) and make it the end-of-string, while (*s != 0) { if (*s == '#') { *comment = s+1; *s = 0; break; } else { s++; *comment = s; } } // Strip leading spaces and trailling newline, tab and space chars: s = line; s = (char *) strTrimLeft(s); strTrimRight (s); strTrimRight (*comment); *name = s; } errorT SpellChecker::ReadSpellCheckFile (const char * filename, bool checkPlayerOrder) { char line [1024]; char strippedName [1024]; spellCheckNodeT * lastCorrectNode = NULL; char * prevCorrectName = NULL; char * lastCorrectName = NULL; char * lastRenderName = NULL; char * lastComment = NULL; nameT nameType = NAME_INVALID; MFile fp; if (fp.Open (filename, FMODE_ReadOnly) != OK) { return ERROR_FileOpen; } while (1) { fp.ReadLine (line, 1024); if (fp.EndOfFile()) { break; } char * name = NULL; char * comment = NULL; getNameAndComment (line, &name, &comment); // Now s contains just the name, no extra space or comment. if (*name == 0) { // Empty or comment-only line; do nothing. } else if (*name == '>') { // Old biography line: do nothing with it. } else if (*name == '%') { // Elo data, biography or other unknown info line: if (lastCorrectNode != NULL && strIsPrefix ("%Elo ", name)) { EloDataSeen = true; AddEloData (lastCorrectNode, name); } if (lastCorrectNode != NULL && strIsPrefix ("%Bio ", name)) { AddBioData (lastCorrectNode, name+5); } if (lastCorrectNode != NULL && strIsPrefix ("%Render ", name)) { SetRenderName (lastCorrectNode, name+8); } // Prefix or Suffix correction: if (nameType == NameType) { if (strIsPrefix ("%Prefix ", name)) { AddPrefixSuffix (name); } if (strIsPrefix ("%Suffix ", name)) { AddPrefixSuffix (name); } if (strIsPrefix ("%Infix ", name)) { AddPrefixSuffix (name); } } } else if (*name == '@') { // Name type line: "@PLAYER", "@SITE", "@EVENT" or "@ROUND" nameType = NameBase::NameTypeFromString (name+1); if (! NameBase::IsValidNameType(NameType)) { return ERROR_Corrupt; } if (nameType == NameType) { // Now check if there is a list of characters to exclude from // comparisons, e.g: @PLAYER ", .-" // would indicate to exclude dots, commas, spaces and dashes. char * start = strchr (name, '"'); if (start != NULL) { char * end = strchr (start + 1, '"'); if (end != NULL) { *end = 0; SetExcludeChars (start + 1); } else { return ERROR_Corrupt; } } } } else if (*name == '=' && nameType == NameType) { // Incorrect spelling of name. Skip over "=" and spaces: name++; while (*name == ' ') { name++; } if (lastCorrectName != NULL) { #ifdef WINCE spellCheckNodeT * node = (spellCheckNodeT *)my_Tcl_Alloc(sizeof( spellCheckNodeT)); #else spellCheckNodeT * node = new spellCheckNodeT; #endif strCopyExclude (strippedName, name, ExcludeChars); node->name = StrAlloc->Duplicate (strippedName); node->correctName = lastCorrectName; node->comment = lastComment; node->correction = true; node->nextHash = NULL; node->eloData = NULL; node->bioData = NULL; node->renderName = lastRenderName; byte b = (byte) *strippedName; node->next = Names[b]; Names[b] = node; IncorrectNameCount++; } } else if (nameType == NameType) { // Correctly spelt name; add to the list: #ifdef WINCE spellCheckNodeT * node = (spellCheckNodeT *)my_Tcl_Alloc(sizeof( spellCheckNodeT)); #else spellCheckNodeT * node = new spellCheckNodeT; #endif strCopyExclude (strippedName, name, ExcludeChars); node->correctName = StrAlloc->Duplicate (name); node->name = StrAlloc->Duplicate (strippedName); node->comment = StrAlloc->Duplicate (comment); node->renderName = NULL; node->correction = false; uint hash = spellHash(name) % SPELL_HASH_SIZE; node->nextHash = HashNames[hash]; HashNames[hash] = node; prevCorrectName = lastCorrectName; lastCorrectName = node->correctName; lastRenderName = node->renderName; lastCorrectNode = node; lastComment = node->comment; node->eloData = NULL; node->bioData = NULL; byte b = (byte) *strippedName; node->next = Names[b]; Names[b] = node; CorrectNameCount++; // If requested, verify that player names are in correct order: if (NameType == NAME_PLAYER && checkPlayerOrder && prevCorrectName != NULL && strCompare (prevCorrectName, lastCorrectName) > 0) { printf ("\"%s\" is out of place.\n", lastCorrectName); } } } fp.Close(); return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SpellChecker::AddPrefixSuffix: // Adds a general prefix or suffix correction given a spellcheck file // line in the form: // %Suffix "wrong suffix" "correct suffix" errorT SpellChecker::AddPrefixSuffix (char * str) { char *q1, *q2, *q3, *q4; q1 = q2 = q3 = q4 = NULL; // Find first 4 quote characters: q1 = (char *) strFirstChar (str, '"'); if (q1 == NULL) { return ERROR; } q1++; q2 = (char *) strFirstChar (q1 + 1, '"'); if (q2 == NULL) { return ERROR; } q3 = (char *) strFirstChar (q2 + 1, '"'); if (q3 == NULL) { return ERROR; } q3++; q4 = (char *) strFirstChar (q3 + 1, '"'); if (q4 == NULL) { return ERROR; } *q2 = 0; *q4 = 0; #ifdef WINCE presuffixNodeT * node = (presuffixNodeT *) my_Tcl_Alloc(sizeof( presuffixNodeT)); #else presuffixNodeT * node = new presuffixNodeT; #endif if (strIsPrefix ("%Suffix", str)) { node->next = Suffixes; Suffixes = node; } else if (strIsPrefix ("%Prefix", str)) { node->next = Prefixes; Prefixes = node; } else if (strIsPrefix ("%Infix", str)) { node->next = Infixes; Infixes = node; } else { return ERROR; } node->name = strDuplicate (q1); node->length = strLength (q1); node->correctName = strDuplicate (q3); return OK; } void SpellChecker::AddBioData (spellCheckNodeT * node, const char * str) { ASSERT (node != NULL && str != NULL); #ifdef WINCE bioNoteT * note = (bioNoteT *) my_Tcl_Alloc(sizeof(bioNoteT)); #else bioNoteT * note = new bioNoteT; #endif note->text = strDuplicate (str); note->next = NULL; if (node->bioData == NULL) { node->bioData = note; return; } bioNoteT * last = node->bioData; while (last->next != NULL) { last = last->next; } last->next = note; } const bioNoteT * SpellChecker::GetBioData (const char * name) { const bioNoteT * note = NULL; char searchName [1024]; strCopyExclude (searchName, name, ExcludeChars); spellCheckNodeT * node = Names[(byte) *searchName]; while (node != NULL) { if (strIsPrefix (searchName, node->name)) { note = node->bioData; } // If the match is exact, return immediately: if (strEqual (searchName, node->name)) { break; } node = node->next; } return note; } static const uint ELO_YEAR_LAST = 2015; // end of current ELO scheme, could be increased in case the rating period does not change static const uint ELO_YEAR_FIRST = 1970; static const uint ELO_YEAR_RANGE = ELO_YEAR_LAST + 1 - ELO_YEAR_FIRST; static const uint ELO_RATINGS_PER_YEAR = 6; static const uint ELO_ARRAY_SIZE = ELO_YEAR_RANGE * ELO_RATINGS_PER_YEAR; // Half-year lists static const uint ELO_MONTH_TO_SEMESTER[13] = { 0, 0, 0, 0, 0, 0, 0, // Jan - Jun 1, 1, 1, 1, 1, 1 // Jul - Dec }; // Start of years with quarterly lists static const uint ELO_FIRST_QUARTERLY_YEAR = 2001; // Quarterly lists static const uint ELO_MONTH_TO_QUARTER[13] = { 0, // Unknown month 0, 0, 0, // Jan, Feb, Mar 1, 1, 1, // Apr, May, Jun 2, 2, 2, // Jul, Aug, Sep 3, 3, 3 // Oct, Nov, Dec }; // Year of 3 quarters and 2 bi-monthlies static const uint ELO_TRANSITIONAL_YEAR = 2009; // Transitional period static const uint ELO_MONTH_TO_TRANSITIONAL[13] = { 0, // Unknown month 0, 0, 0, // Jan, Feb, Mar 1, 1, 1, // Apr, May, Jun 2, 2, // Jul, Aug 3, 3, // Sep, Oct 4, 4 // Nov, Dec }; // Start of years with bi-monthly lists static const uint ELO_FIRST_BIMONTHLY_YEAR = 2010; // Bi-monthly lists static const uint ELO_MONTH_TO_BIMONTHLY[13] = { 0, // Unknown month 0, 0, // Jan, Feb 1, 1, // Mar, Apr 2, 2, // May, Jun 3, 3, // Jul, Aug 4, 4, // Sep, Oct 5, 5 // Nov, Dec }; // Retrieve the list of Rating figures for given player (aka node) from the given (ssp) string // The string is formatted as: // [%Elo ]:<|?>,...,<|?> [:<|?>,...,<|?>...] // // The ratings are stored in a rating array for this player, in the order of appearance // and without any assumption on the period that the rating refers to. // This is accomplished by assuming that for all years the same number of rating figures // could be given (see ELO_RATINGS_PER_YEAR above). // // The (external) algorithm to map ratings to actual periods must be able to cope with // the holes that - as a consequence - will appear in the rating graph constructed here! // void SpellChecker::AddEloData (spellCheckNodeT * node, const char * str) { ASSERT (node != NULL && str != NULL); if (node->eloData == NULL) { #ifdef WINCE node->eloData = (eloT*)my_Tcl_Alloc(sizeof( eloT [ELO_ARRAY_SIZE])); #else node->eloData = new eloT [ELO_ARRAY_SIZE]; #endif for (uint i=0; i < ELO_ARRAY_SIZE; i++) { node->eloData[i] = 0; } } // Skip the %Elo prefix. TODO: Apparently it may or may not be there.... // if (strIsPrefix ("%Elo ", str)) { str += 4; } while (1) { // Get the year in which the rating figures to follow were published // str = strTrimLeft (str); if (! isdigit (*str)) { break; } uint year = strGetUnsigned (str); str += 4; if (*str != ':') { break; } str++; // Now read all the ratings for this year: // uint yIndex = 0; uint elo = 0; while (1) { if (isdigit (*str)) { elo = strGetUnsigned (str); str += 4; } else if (*str == '?') { elo = 0; str++; } else if (*str == ' ') { break; } else { // Invalid data seen: return; } SetElo (node, year, yIndex, elo); yIndex++; if (*str == ',') { str++; } } } } void SpellChecker::SetElo (spellCheckNodeT * node, uint year, uint yIndex, eloT elo) { // Monitor array bounds // if ( year < ELO_YEAR_FIRST || year > ELO_YEAR_LAST ) { return; } if ( yIndex >= ELO_RATINGS_PER_YEAR ) { return; } uint index = (year - ELO_YEAR_FIRST) * ELO_RATINGS_PER_YEAR; index += yIndex; ASSERT (index < ELO_ARRAY_SIZE); node->eloData[index] = elo; } // Find the rating for given player name applicable to given date // Main purpose of the function is to map this date on the (assumed) // release schedule of the ratings // // The release schedule hard-coded implemented here is the schedule // that FIDE has applied over the years for the ELO rating. // eloT SpellChecker::GetElo (const char * name, dateT date, bool exact) { uint year = date_GetYear (date); uint month = date_GetMonth (date); // Month overflow protection. TODO: Should it be mapped to "no month" (zero)? if ( month > 12 ) { month = 1; } // Year overflow protection // if ( year < ELO_YEAR_FIRST || year > ELO_YEAR_LAST ) { return 0; } // Now find the index for the given year // It depends on the year itself uint yIndex; if ( year >= ELO_FIRST_BIMONTHLY_YEAR ) { yIndex = ELO_MONTH_TO_BIMONTHLY[month]; } else if ( year >= ELO_TRANSITIONAL_YEAR ) { yIndex = ELO_MONTH_TO_TRANSITIONAL[month]; } else if ( year >= ELO_FIRST_QUARTERLY_YEAR ) { yIndex = ELO_MONTH_TO_QUARTER[month]; } else { yIndex = ELO_MONTH_TO_SEMESTER[month]; } uint index = (year - ELO_YEAR_FIRST) * ELO_RATINGS_PER_YEAR; uint indexStartOfYear = index; index += yIndex; ASSERT (index < ELO_ARRAY_SIZE); char searchName [512]; strCopyExclude (searchName, name, ExcludeChars); spellCheckNodeT * node = Names[(byte) *searchName]; while (node != NULL) { // If the match is exact, return Elo data: if (strEqual (name, node->correctName)) { eloT * eloArray = node->eloData; if (eloArray != NULL) { eloT elo = eloArray[index]; if (elo == 0) { elo = eloArray[indexStartOfYear]; } if (elo == 0 && month == 0 && !exact) { // The month was not known, so we may as well try all // other quarters of this year to find a nonzero Elo: for (uint i=1; i < ELO_RATINGS_PER_YEAR; i++) { elo = eloArray[indexStartOfYear + i]; if (elo != 0) { break; } } } return elo; } } node = node->next; } // If we reach here, no exact name match with Elo data was found: return 0; } void SpellChecker::Dump (FILE * fp) { for (uint i=0; i < 256; i++) { spellCheckNodeT * node = Names[i]; while (node != NULL) { fprintf (fp, "%s: %s (%s)\n", node->name, node->correctName, node->comment); node = node->next; } } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SpellChecker::GetTitle: // Extract the first title appearing in the player // comment, and return it. const char * SpellChecker::GetTitle (const char * comment) { static const char * titles[] = { "gm", "im", "fm", "wgm", "wim", "wfm", "w", "cgm", "cim", "hgm", NULL }; const char ** titlePtr = titles; if (comment == NULL) { return ""; } while (*titlePtr != NULL) { if (strIsPrefix (*titlePtr, comment)) { return *titlePtr; } titlePtr++; } return ""; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SpellChecker::GetLastCountry: // Scan the player comment string for the country field (which // is the second field, after the title), then return the // last three letters in the country field, or the empty string // if the country field is less than 3 characters long. const char * SpellChecker::GetLastCountry (const char * comment) { static char country[4]; country[0] = 0; if (comment == NULL) { return country; } const char * start = comment; // Skip over the title field: while (*start != ' ' && *start != 0) { start++; } while (*start == ' ') { start++; } const char * end = start; int length = 0; while (*end != ' ' && *end != 0) { end++; length++; } // Return the final three characters of the country field: if (length >= 3) { for (int i=0; i < 3; i++) { country[i] = start[length-3 + i]; } country[3] = 0; } return country; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SpellChecker::GetPeakRating: // Scan the player comment string for the peak rating // field (which is contained in brackets), convert it // to an unsigned integer, and return it. eloT SpellChecker::GetPeakRating (const char * comment) { if (comment == NULL) { return 0; } const char * s = comment; while (*s != '[' && *s != 0) { s++; } if (*s != '[') { return 0; } s++; return strGetUnsigned (s); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SpellChecker::GetBirthdate: // Scan the player comment string for the birthdate // field, convert it to a date, and return it. dateT SpellChecker::GetBirthdate (const char * comment) { if (comment == NULL) { return ZERO_DATE; } const char * s = comment; // Find the end-bracket character after the rating: while (*s != ']' && *s != 0) { s++; } if (*s != ']') { return ZERO_DATE; } s++; // Now skip over any spaces: while (*s == ' ') { s++; } if (*s == 0) { return ZERO_DATE; } return date_EncodeFromString (s); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SpellChecker::GetDeathdate: // Scan the player comment string for the deathdate // field, convert it to a date, and return it. dateT SpellChecker::GetDeathdate (const char * comment) { if (comment == NULL) { return ZERO_DATE; } const char * s = comment; // Find the end-bracket character after the rating: while (*s != ']' && *s != 0) { s++; } if (*s != ']') { return ZERO_DATE; } s++; // Now skip over any spaces: while (*s == ' ') { s++; } // Now skip over the birthdate and dashes: while (*s != 0 && *s != '-') { s++; } while (*s == '-') { s++; } if (*s == 0) { return ZERO_DATE; } return date_EncodeFromString (s); } #endif ////////////////////////////////////////////////////////////////////// // EOF: spellchk.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/eco2epd.cpp0000644000175000017500000001721511727223077016260 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: eco2epd.cpp // eco2epd: Converts Scid Eco file from Text to EPD format. // // Part of: Scid (Shane's Chess Information Database) // Version: 2.0 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "common.h" #include "error.h" #include "position.h" #include "pbook.h" #include "misc.h" #include #include #include #ifndef WIN32 #include #endif // Globals for input file line count and program name: static int lineCount = 1; static char * progname; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // corrupt(): // Report corrupt data error at the current line and exit. // void corrupt () { fprintf (stderr, "ERROR: Corrupt data at line %d\n", lineCount); exit (1); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // getC(): // Get a character from the file "fp". Increments lineCount if // a newline is seen. This function expects to return a valid // character, so reaching the end of the file here indicates // corrupt data. // int getC (FILE * fp) { int c = getc(fp); if (c == '\n') { lineCount++; } if (c == EOF) { corrupt(); } return c; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // usage(): // Prints the usage message and exits the program. // void usage () { fprintf (stderr, "%s converts a Scid ECO code file from text to Book (%s) format.\n", progname, PBOOK_SUFFIX); fprintf (stderr, "Usage: %s [options] eco-file [scid-book-file]\n", progname); fprintf (stderr, "Example: %s scid.eco\n", progname); fprintf (stderr, " will convert scid.eco to a file named scid%s\n", PBOOK_SUFFIX); fprintf (stderr, "Options: -b: basic ECO codes (no extensions).\n"); fprintf (stderr, " -n: ECO codes only (no opening names).\n"); fprintf (stderr, " -v: verbose summary (default).\n"); fprintf (stderr, " -q: quiet, no summary.\n"); exit (1); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // main(): // Program function for eco2book. Parses the text file, adds all chess // opening lines found, and writes the Book-format file. // int main (int argc, char * argv[]) { char textStr [1000]; char tempStr [1000]; int c, done = 0; errorT err; Position * pos; FILE * in; PBook * book; // Command line options: int basicCodes = 0; int omitNames = 0; int verbose = 1; progname = argv[0]; scid_Init(); book = new PBook; pos = new Position; if (argc < 2) { usage(); } // Parse options: int argsLeft = argc - 1; char ** nextArg = argv + 1; while (argsLeft > 0 && nextArg[0][0] == '-') { char * s = *nextArg; s++; while (*s) { switch (*s) { case 'b': // option "-b": Basic ECO codes only basicCodes = 1; break; case 'n': // option "-n": No Names, only ECO codes omitNames = 1; break; case 'v': // verbose output verbose = 1; break; case 'q': // quiet output verbose = 0; break; default: usage(); } s++; } argsLeft--; nextArg++; } if (argsLeft != 1 && argsLeft != 2) { usage(); } char * textFileName = nextArg[0]; fileNameT bookFileName; // Make book file name from textFileName if it is not provided: if (argsLeft == 1) { strCopy (bookFileName, textFileName); strTrimSuffix (bookFileName, '.'); } else { strCopy (bookFileName, nextArg[1]); strTrimSuffix (bookFileName, '.'); } strAppend (bookFileName, PBOOK_SUFFIX); in = fopen (textFileName, "r"); if (!in) { fprintf (stderr, "Error opening file: %s\n", textFileName); fprintf (stderr, "Check that the file exists and is readable.\n"); exit (1); } // Loop to read in and add all positions: while (!done) { // Find the next ECO code: while (1) { c = getc (in); if (c == EOF) { done = 1; break; } if (c == '\n') { lineCount++; } if (c >= 'A' && c <= 'E') { break; } // Skip over comment lines: if (c == '#') { fgets (tempStr, 1000, in); lineCount++; } } if (done) { break; } // Read in the rest of the ECO code: tempStr[0] = c; c = getC (in); if (!isdigit(c)) { corrupt(); } tempStr[1] = c; c = getC (in); if (!isdigit(c)) { corrupt(); } tempStr[2] = c; tempStr[3] = 0; // Check for optional extra part of code, e.g. "A00a1": c=getc(in); if (c >= 'a' && c <= 'z') { tempStr[3] = c; tempStr[4] = 0; c = getc(in); if (c >= '1' && c <= '4') { tempStr[4] = c; tempStr[5] = 0; } } // Convert to a basic code if -b option is set: if (basicCodes) { tempStr[3] = 0; } // Now put the ecoCode in the textStr and read the text in quotes: ecoT ecoCode = eco_FromString (tempStr); ecoStringT ecoStr; eco_ToExtendedString (ecoCode, ecoStr); sprintf (textStr, "eco %s", ecoStr); if (!omitNames) { strcat (textStr, " "); } char * s = textStr; // Set s to end of text string: while (*s) { s++; } // Find the start of the text: while ((c = getC(in)) != '"') {} // Read the text: while ((c = getC(in)) != '"') { // Only add the text to the string if omitNames is not set: if (!omitNames) { *s++ = (char) c; } } *s++ = '\n'; *s = 0; // add end-of-string to the text string // Now read in the position: s = tempStr; while ((c = getC(in)) != '*') { *s++ = (char) c; } *s = 0; pos->StdStart(); err = pos->ReadLine (tempStr); if (err != OK) { pos->DumpBoard(stdout); corrupt(); } const char * oldStr; if (book->Find (pos, &oldStr) == OK) { fprintf (stderr, "Previous ECO: %s\n", oldStr); } if (book->Insert (pos, textStr) != OK) { fprintf (stderr, "ERROR: position already exists!\n"); pos->DumpBoard(stderr); corrupt(); } } book->SetFileName (bookFileName); if (book->WriteFile() != OK) { fprintf (stderr, "Error writing Scid book file: %s\n", bookFileName); fprintf (stderr, "Check that you have write access for this file.\n"); exit(1); } if (verbose) { fprintf (stderr, "Successfully wrote %u positions to %s\n", book->Size(), bookFileName); fprintf (stderr, "Bytes in book file for positions: %7u ", book->NumPositionBytes()); fprintf (stderr, " (%.2f per position)\n", (float) book->NumPositionBytes() / (float) book->Size()); fprintf (stderr, "Bytes in book file for comments: %7u ", book->NumCommentBytes()); fprintf (stderr, " (%.2f per position)\n", (float) book->NumCommentBytes() / (float) book->Size()); //book->DumpStats (stderr); } return 0; } ////////////////////////////////////////////////////////////////////// // EOF: eco2epd.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/cutil.c0000644000175000017500000000402011727223077015505 0ustar oliveroliver#include #include #include #ifdef POCKET #include #include "msgqueue.h" #endif #include #include #include "tclmy.h" #ifndef _CURRENT_TCL_INTERP_ extern Tcl_Interp * currentTclInterp; #define _CURRENT_TCL_INTERP_ #endif //HANDLE GetProcessHeap(VOID); #ifdef POCKET // ============================================================== void AnsiToUnicode(LPCSTR pszA, LPWSTR* ppszW) { ULONG cCharacters; cCharacters = strlen(pszA)+1; *ppszW = (LPWSTR) my_Tcl_Alloc(cCharacters*2); MultiByteToWideChar(CP_ACP, 0, pszA, cCharacters, *ppszW, cCharacters); } // ============================================================== int my_sc_msg_init(char * eng , char bread) { MSGQUEUEOPTIONS opt; char s[50]; HANDLE h; opt.dwSize = sizeof(MSGQUEUEOPTIONS); opt.dwFlags = MSGQUEUE_NOPRECOMMIT | MSGQUEUE_ALLOW_BROKEN; opt.dwMaxMessages = 0; opt.cbMaxMessage = 1024; opt.bReadAccess = bread; if (bread == 1) { sprintf(s, "%s2scid", eng); } else { sprintf(s, "scid2%s", eng); } LPWSTR sunicode; AnsiToUnicode(s, &sunicode); h = CreateMsgQueue( (LPCWSTR) sunicode, &opt ); my_Tcl_Free(sunicode); if ( ! h ) return 0; return (int) h; } // ============================================================== int getPocketAvailPhys() { MEMORYSTATUS stat; GlobalMemoryStatus (&stat); return (int)stat.dwAvailPhys; } int getPocketAvailVirtual() { MEMORYSTATUS stat; GlobalMemoryStatus (&stat); return (int)stat.dwAvailVirtual; } void getPocketMem(char * buf) { MEMORYSTATUS stat; GlobalMemoryStatus (&stat); sprintf(buf, "load %d %%\navail phys %d kB\ntotal %d kB\navail virt %d kB\n", (int)stat.dwMemoryLoad, (int)(stat.dwAvailPhys/1024), (int)(stat.dwTotalPhys/1024), (int)(stat.dwAvailVirtual/1024)); } int setPriority(int prio) { return (int) CeSetThreadPriority(GetCurrentThread(), prio); } // int getPriority() { // return CeGetThreadPriority( GetCurrentThread() ); // } #endif scid-4.3.0.cvs20120311/src/scidlet.cpp0000644000175000017500000010517611727223077016372 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: scidlet.cpp // Scidlet, a WinBoard chess engine // // Part of: Scid (Shane's Chess Information Database) // Version: 3.4 // // Notice: Copyright (c) 2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // This program is a WinBoard-compatible wrapper for the simple // chess engine built into Scid. #include "engine.h" #include #include #include #include #ifndef WIN32 # include #endif #ifdef WIN32 # define WIN32_LEAN_AND_MEAN 1 # include # undef WIN32_LEAN_AND_MEAN #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // unfinishedCommand // Stores a command input line not yet processed. // static char unfinishedCommand[512] = {0}; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // inputReady // Check if another line of input is available. bool inputReady (void) { if (unfinishedCommand[0] != 0) { return true; } #ifdef WIN32 static int init = 0, pipe; static HANDLE inh; DWORD dw; if (!init) { init = 1; inh = GetStdHandle (STD_INPUT_HANDLE); pipe = !GetConsoleMode (inh, &dw); if (!pipe) { SetConsoleMode(inh, dw & ~(ENABLE_MOUSE_INPUT|ENABLE_WINDOW_INPUT)); FlushConsoleInputBuffer (inh); } } if (pipe) { if (!PeekNamedPipe (inh, NULL, 0, NULL, &dw, NULL)) { return true; } return (dw != 0); } GetNumberOfConsoleInputEvents (inh, &dw); return (dw > 1); #else fd_set fd; struct timeval tv; tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&fd); FD_SET(0, &fd); return (select(1, &fd, NULL, NULL, &tv) > 0); #endif } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Output and logging: static FILE * logFile = NULL; bool isLogging (void) { return (logFile != NULL); } void startLogging (const char * filename) { if (! isLogging()) { logFile = fopen (filename, "w"); } } void stopLogging (void) { if (isLogging()) { fclose (logFile); } } void output (const char * format, ...) { va_list ap; va_start (ap, format); vprintf (format, ap); if (logFile != NULL) { vfprintf (logFile, format, ap); fflush (logFile); } va_end (ap); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // timeControlT // Used to keep track of time conrtol information. // struct timeControlT { uint movesPerControl; uint minutesPerControl; uint centiSecondsLeft; uint oppCentiSecondsLeft; uint incrementSeconds; bool fixedTimeControl; }; enum stateT { waiting, thinking, pondering }; struct modeT { bool force; // Force mode, do not think or ponder. bool ponder; // Ponder a reply during opponent move. bool analyze; // Analyze mode, not implemented yet. stateT state; // Current engine state. bool drawOffered; // Opponent has offered a draw since our last move. uint drawnScores; // Number of successive drawn scores. }; struct ponderT { simpleMoveT move; // Ponder move, best expected opponent move. simpleMoveT reply; // Best move in reply to the ponder move. int score; // Score for the reply to the ponder move. bool guessed; // True if the opponent made the ponder move. }; timeControlT tc; modeT mode; ponderT ponder; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setSearchTime // Computes and sets the amount of time (in milliseconds) to spend on // the next move. void setSearchTime (Engine * engine) { int msLeft = tc.centiSecondsLeft * 10; int msThisMove = msLeft; if (tc.fixedTimeControl) { msThisMove = msLeft; } else if (tc.movesPerControl > 0) { // "XX moves in YY minutes" time control: int moveNumber = engine->GetPosition()->GetFullMoveCount(); int movesToMake = tc.movesPerControl - ((moveNumber-1) % tc.movesPerControl); // Keep a bit of time spare: if (msLeft < 4000) { msLeft /= 2; // Under 4 seconds left? Just use half of it. } else if (msLeft < 20000) { msLeft -= 2000; // Under 20 seconds left? Keep two seconds spare. } else { msLeft -= 5000; // Keep five seconds spare. } msThisMove = msLeft / movesToMake; } else if (tc.incrementSeconds > 0) { // "Whole game in YY minutes" time control (with increment): int msInc = tc.incrementSeconds * 1000; // Subtract 0.5s for a safety buffer, but assume at least 0.1s: msLeft -= 500; if (msLeft < 100) { msLeft = 100; } // If time remaining is greater than the increment, use the // whole increment plus 1/30th of the remaining time. if (msLeft > msInc) { msThisMove = msLeft / 30 + msInc; } else { // Time on clock less is than the increment, so just use // some of what is available to try and gain time: msThisMove = msLeft * 8 / 10; } } else { // No increment; just use 1/30th of remaining time. msThisMove = msLeft / 30; } // Set the recommended, minimum and maximum search times: int msMin = msThisMove / 4; int msMax = msThisMove * 4; // Make sure the maximum search time will not lose on time: int msMaxLimit = tc.centiSecondsLeft * 10; if (msMax + 100 > msMaxLimit) { msMax = msMaxLimit - 100; } if (tc.fixedTimeControl) { msMin = msThisMove; msMax = msThisMove; } engine->SetSearchTime (msMin, msThisMove, msMax); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Configuration options: // struct configT { char * bookFileName; // Opening book file name. char * logFileName; // Log file name. uint hashTableMB; // Transposition table size in megabytes. uint pawnTableMB; // Pawn hash table size in magabytes. bool pruning; // Should the engine do futility pruning? bool resign; // Should the engine consider resigning? bool draw; // Should the engine offer and accept draws? bool log; // Should the engine log output? }; const configT defaultConfig = { (char *) "scidlet.sbk", // bookFileName (char *) "scidlet.log", // logFileName 16, // hashTableMB 1, // pawnTableMB false, // pruning flag true, // resign flag true, // draw flag false // log flag }; configT config = defaultConfig; static const char * configFileName = "scidlet.ini"; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // readConfigLine // Processes a single command from the command line parameters // or the configuration file. // Returns true if the command was valid, or false on error. bool readConfigLine (const char * line, configT * config) { // Split the line into an option and value with spare whitespace // stripped out: char temp[512]; strCopy (temp, line); char * option = (char *) strTrimLeft (temp); char * value = (char *) strFirstChar(temp, '='); if (value == NULL) { return false; } *value = 0; value++; value = (char *) strTrimLeft (value); strTrimRight(option); strTrimRight(value); if (strCaseEqual (option, "bookfile")) { config->bookFileName = strDuplicate (value); } else if (strCaseEqual (option, "logfile")) { config->logFileName = strDuplicate (value); } else if (strCaseEqual (option, "hash")) { config->hashTableMB = strGetUnsigned(value); } else if (strCaseEqual (option, "pawnhash")) { config->pawnTableMB = strGetUnsigned(value); } else if (strCaseEqual (option, "pruning")) { config->pruning = strGetBoolean(value); } else if (strCaseEqual (option, "resign")) { config->resign = strGetBoolean(value); } else if (strCaseEqual (option, "draw")) { config->draw = strGetBoolean(value); } else if (strCaseEqual (option, "log")) { config->log = strGetBoolean(value); } else { return false; } return true; } bool readConfigFile (configT * config) { FILE * fp = fopen (configFileName, "r"); if (fp == NULL) { return false; } uint lineNum = 0; while (true) { char line[512]; fgets (line, 512, fp); if (feof(fp)) { break; } lineNum++; const char * s = strTrimLeft(line); if (s[0] == '#' || s[0] == '[' || s[0] == 0) { continue; } if (!readConfigLine (s, config)) { output ("# Bad line in %s: line %u: %s\n", configFileName, lineNum, line); } } fclose (fp); return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Opening book globals and data structure: // struct bookEntryT { uint hash; // Board hash value uint pawnhash; // Pawn hash value uint freq; // Frequency, with side to move in lowest bit. bookEntryT * next; }; static const uint BOOK_SIZE = 65536; static uint nBookEntries = 0; static bookEntryT * book [BOOK_SIZE]; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // compareBookEntries // Compares two opening book entries, for sorting by pawn hash value // to reduce the binary file size. int compareBookEntries (const void * v1, const void * v2) { bookEntryT * b1 = (bookEntryT *) v1; bookEntryT * b2 = (bookEntryT *) v2; if (b1->pawnhash < b2->pawnhash) { return -1; } if (b1->pawnhash > b2->pawnhash) { return 1; } if (b1->hash < b2->hash) { return -1; } if (b1->hash > b2->hash) { return 1; } return (int)b1->freq - (int)b2->freq; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // makeBook // Creates Scidlet opening book (SBK) file from a text file. // Does not affect the current opening book data in memory. // The text file should have one position per line, in the // format " ", e.g. "1234 1.e4 c5 2.Nf3". void makeBook (const char * infile) { uint nPositions = 0; const char * suffix = strFileSuffix (infile); if (suffix != NULL && strCaseEqual (suffix, "sbk")) { output ("# The input file is already in \"sbk\" format."); return; } FILE * in = fopen (infile, "r"); if (in == NULL) { output ("# Error opening file: %s\n", infile); return; } const uint maxPositions = 1024 * 1024; bookEntryT * positions = new bookEntryT [maxPositions]; Position * pos = new Position(); uint lineNumber = 0; while (true) { char line [512]; fgets (line, 512, in); lineNumber++; if (feof(in)) { break; } pos->StdStart(); const char * str = strTrimLeft(line); if (*str == '#' || *str == 0) { continue; } uint freq = strGetUnsigned(str); if (freq < 1) { continue; } while (isdigit(*str)) { str++; } if (pos->ReadLine (str) != OK) { output ("# Error parsing line %u: %s\n", lineNumber, line); continue; } bookEntryT * entry = &(positions[nPositions]); uint hash = pos->HashValue(); if (pos->GetToMove() == BLACK) { hash = ~hash; } entry->hash = hash; entry->pawnhash = pos->PawnHashValue(); entry->freq = freq; nPositions++; } fclose (in); output ("# Read %u positions from %s\n", nPositions, infile); delete pos; // Sort the positions for a more compact binary encoding: qsort (positions, nPositions, sizeof(bookEntryT), compareBookEntries); // Write the positions: char outfile [512]; strCopy (outfile, infile); strTrimFileSuffix (outfile); strAppend (outfile, ".sbk"); FILE * out = fopen (outfile, "wb"); if (out == NULL) { output ("# Error opening file for writing: %s\n", outfile); return; } writeString (out, (char *)"SBK", 4); writeFourBytes (out, nPositions); uint prevPawnHash = 0; for (uint i=0; i < nPositions; i++) { bookEntryT * entry = &(positions[i]); uint pawnhash = entry->pawnhash - prevPawnHash; writeCompactUint (out, pawnhash); prevPawnHash = entry->pawnhash; writeFourBytes (out, entry->hash); writeCompactUint (out, entry->freq); } fclose (out); output ("# Wrote %u positions to %s\n", nPositions, outfile); delete[] positions; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // readBook // Reads the opening book file. uint readBook (const char * filename) { for (uint x=0; x < BOOK_SIZE; x++) { book[x] = NULL; } nBookEntries = 0; FILE * fp = fopen (filename, "rb"); if (fp == NULL) { return 0; } // Check header for correct ID value: char header[4]; readString (fp, header, 4); if (!strEqual (header, "SBK")) { output ("# Opening book file (%s) has a corrupt header.\n", filename); fclose (fp); return 0; } // Read the number of book entries and allocate them in one chunk: uint nEntries = readFourBytes (fp); bookEntryT * entries = new bookEntryT [nEntries]; // Read each entry and add it to the hash table: uint prevPawnHash = 0; for (uint i = 0; i < nEntries; i++) { uint pawnhash = readCompactUint (fp); pawnhash += prevPawnHash; prevPawnHash = pawnhash; if (feof(fp)) { output ("# Opening book file (%s) has corrupt data.\n", filename); break; } uint hash = readFourBytes (fp); uint freq = readCompactUint (fp); // Insert this entry in the hash table: bookEntryT * bk = &(entries[i]); bk->hash = hash; bk->pawnhash = pawnhash; bk->freq = freq; uint slot = hash % BOOK_SIZE; bk->next = book[slot]; book[slot] = bk; nBookEntries++; } fclose (fp); srandom32 (time(NULL)); return nBookEntries; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // lookupBook // Searches the opening book for the provided position // and movelist. Returns an index number into the move // list if a book move was selected, or -1 if no book // move was found. int lookupBook (Position * pos, MoveList * mlist) { if (nBookEntries == 0) { return -1; } // If past move 30, do not bother checking the opening book: if (pos->GetFullMoveCount() > 30) { return -1; } // Set up an array of freqencies per move, allocating // from the heap if the list is unusually long: uint sumfreq = 0; const uint maxMoves = 100; uint freqs [maxMoves]; uint * freq = freqs; if (mlist->Size() > maxMoves) { freq = new uint [mlist->Size()]; } for (uint i=0; i < mlist->Size(); i++) { freq[i] = 0; pos->DoSimpleMove (mlist->Get(i)); uint hash = pos->HashValue(); if (pos->GetToMove() == BLACK) { hash = ~hash; } uint pawnhash = pos->PawnHashValue(); pos->UndoSimpleMove (mlist->Get(i)); bookEntryT * bk = book[hash % BOOK_SIZE]; while (bk != NULL) { if (hash == bk->hash && pawnhash == bk->pawnhash) { freq[i] = bk->freq; break; } bk = bk->next; } sumfreq += freq[i]; } int bookmove = -1; if (sumfreq > 0) { // Select a move at random based on its fequency: uint r = random32() % sumfreq; sumfreq = 0; for (uint j=0; j < mlist->Size(); j++) { sumfreq += freq[j]; if (sumfreq > r) { bookmove = j; break; } } } if (mlist->Size() > maxMoves) { delete[] freq; } return bookmove; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // readInput // Read a line of input and process it. // Returns true if the engine should make a reply. bool readInput (Engine * engine) { // Print prompt if appropriate, but not to the log file. if (! engine->InXBoardMode()) { printf ("scidlet> "); } char newCommand [512]; // Get the next command, checking if there is an unfinished one. if (unfinishedCommand[0] == 0) { fgets (newCommand, 512, stdin); strTrimRight (newCommand, "\n"); if (isLogging()) { fprintf (logFile, "scidlet> %s\n", newCommand); } } else { strCopy (newCommand, unfinishedCommand); unfinishedCommand[0] = 0; } // Split the input line into a command and parameters: char command [512]; strCopy (command, strTrimLeft (newCommand)); const char * parameters = NULL; char * firstSpace = (char *) strFirstChar (command, ' '); if (firstSpace == NULL) { parameters = ""; } else { *firstSpace = 0; // Terminate the command string. parameters = firstSpace + 1; } // Ignore empty command lines if (strEqual (command, "")) { return false; } // When pondering, there are a few commands we can process on the // fly but the others must be handled outside of the search. if (mode.state == pondering) { if (strEqual (command, ".")) { // Ignore } else if (strEqual (command, "draw")) { mode.drawOffered = true; } else if (strEqual (command, "hint")) { // Ignore } else if (strEqual (command, "otim")) { int centiSecs; if (sscanf (parameters, "%d", ¢iSecs) == 1) { tc.oppCentiSecondsLeft = centiSecs; } } else if (strEqual (command, "ping")) { output ("pong %s\n", parameters); } else if (strEqual (command, "time")) { int centiSecs; if (sscanf (parameters, "%d", ¢iSecs) == 1) { tc.centiSecondsLeft = centiSecs; } } else { // See if the pondered move was made and if so, convert // the pondering into a real search. Position * pos = engine->GetPosition(); // Temporarily undo the ponder move to get the right // position for parsing this command as an opponent move: simpleMoveT * ponderMove = &(ponder.move); pos->UndoSimpleMove (ponderMove); simpleMoveT sm; errorT err = pos->ParseMove (&sm, newCommand); pos->DoSimpleMove (ponderMove); if (err == OK && sm.from == ponder.move.from && sm.to == ponder.move.to && sm.promote == ponder.move.promote) { // The opponent made the ponder move. ponder.guessed = true; setSearchTime (engine); mode.state = thinking; return false; } // Stop pondering so we can process this command. strCopy (unfinishedCommand, newCommand); return true; } return false; } // We are not pondering but may be thinking. Most commands can // be processed while thinking, but a few require interruption // of the search. if (strEqual (command, "?")) { // Move now if thinking, otherwise ignore. if (mode.state == thinking) { return true; } } else if (strEqual (command, ".")) { // Ignore } else if (strEqual (command, "accepted")) { // Ignore protocol accepted/rejected } else if (strEqual (command, "bk")) { // XBoard protocol wants indented text terminated by a blank line: output (" No book information.\n\n"); } else if (strEqual (command, "computer")) { // Ignore } else if (strEqual (command, "draw")) { mode.drawOffered = true; } else if (strEqual (command, "easy")) { mode.ponder = false; } else if (strEqual (command, "force")) { mode.force = true; } else if (strEqual (command, "go")) { mode.force = false; return true; } else if (strEqual (command, "hard")) { mode.ponder = true; } else if (strEqual (command, "hint")) { // Ignore } else if (strEqual (command, "level")) { int nmoves, base, inc; if (sscanf (parameters, "%d%d%d", &nmoves, &base, &inc) == 3) { tc.movesPerControl = nmoves; tc.minutesPerControl = base; tc.centiSecondsLeft = base * 60 * 100; tc.incrementSeconds = inc; tc.fixedTimeControl = false; } } else if (strEqual (command, "makebook")) { if (*parameters == 0) { output ("Usage: makebook file.txt\n"); } else { makeBook (parameters); } } else if (strEqual (command, "modes")) { output ("# Force: %d\n", mode.force); output ("# Ponder: %d\n", mode.ponder); } else if (strEqual (command, "new")) { // If we were searching, quit before processing this command: if (mode.state == thinking) { strCopy (unfinishedCommand, newCommand); return true; } engine->SetPosition(NULL); mode.drawOffered = false; mode.drawnScores = 0; } else if (strEqual (command, "nopost")) { engine->SetPostMode(false); } else if (strEqual (command, "otim")) { int centiSecs; if (sscanf (parameters, "%d", ¢iSecs) == 1) { tc.oppCentiSecondsLeft = centiSecs; } } else if (strEqual (command, "perft")) { // If we were searching, quit before processing this command: if (mode.state == thinking) { strCopy (unfinishedCommand, newCommand); return true; } uint depth; if (sscanf (parameters, "%u", &depth) == 1) { Timer timer; uint nmoves = engine->PerfTest (depth); uint t = timer.CentiSecs(); output ("Moves: %u Time: %u.%02u s\n", nmoves, t / 100, t % 100); } else { output ("Usage: perft \n"); } } else if (strEqual (command, "ping")) { output ("pong %s\n", parameters); } else if (strEqual (command, "playother")) { mode.force = false; } else if (strEqual (command, "post")) { engine->SetPostMode(true); } else if (strEqual (command, "printboard")) { engine->GetPosition()->DumpBoard (stdout); } else if (strEqual (command, "protover")) { output ("feature myname=\"Scidlet %s\"\n", SCID_VERSION_STRING); output ("feature san=1 analyze=0 time=1 draw=1\n"); output ("feature ping=1 setboard=1 playother=1 sigint=0\n"); output ("feature colors=0 done=1\n"); } else if (strEqual (command, "quit")) { stopLogging(); exit (0); } else if (strEqual (command, "random")) { // Ignore } else if (strEqual (command, "rejected")) { // Ignore protocol accepted/rejected } else if (strEqual (command, "remove")) { // If we were searching, quit before processing this command: if (mode.state == thinking) { strCopy (unfinishedCommand, newCommand); return true; } engine->RetractMove(); engine->RetractMove(); } else if (strEqual (command, "result")) { // Ignore result command } else if (strEqual (command, "sd")) { uint depth; if (sscanf (parameters, "%u", &depth) == 1) { engine->SetSearchDepth (depth); } } else if (strEqual (command, "setboard")) { if (mode.state == thinking) { strCopy (unfinishedCommand, newCommand); return true; } Position * tmpPos = new Position(); errorT err = tmpPos->ReadFromFEN (parameters); if (err == OK) { engine->SetPosition (tmpPos); } else { if (engine->InXBoardMode()) { output ("tellusererror Illegal FEN position.\n"); } else { output ("Illegal FEN position.\n"); } } delete tmpPos; } else if (strEqual (command, "st")) { int seconds; if (sscanf (parameters, "%d", &seconds) == 1) { tc.centiSecondsLeft = seconds * 100; tc.fixedTimeControl = true; } } else if (strEqual (command, "time")) { int centiSecs; if (sscanf (parameters, "%d", ¢iSecs) == 1) { tc.centiSecondsLeft = centiSecs; } } else if (strEqual (command, "undo")) { // If we were searching, quit before processing this command: if (mode.state == thinking) { strCopy (unfinishedCommand, newCommand); return true; } engine->RetractMove(); } else if (strEqual (command, "xboard")) { engine->SetXBoardMode(true); // Print newline to clear the prompt line: puts (""); } else { // Parse a move or unknown command: Position * pos = engine->GetPosition(); simpleMoveT sm; errorT err = pos->ParseMove (&sm, newCommand); if (err != OK) { output ("Error (unknown command): %s\n", newCommand); return false; } // It is a legal move. Do not accept it if the engine is thinking: if (mode.state == thinking) { output ("Error (move input while thinking): %s\n", newCommand); return false; } engine->PlayMove(&sm); return true; } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // callback // Called periodically from the chess engine to check // for user input. Returns true if the search should // terminate early. bool callback (Engine * engine, void * data) { if (! inputReady()) { return false; } return readInput (engine); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // selectPonderMove // Selects the best move for the opponent, which will be pondered // for a reply while the opponent is thinking. bool selectPonderMove (Engine * engine, simpleMoveT * selected) { Position * pos = engine->GetPosition(); // Do not ponder on the standard starting position: if (pos->IsStdStart()) { return false; } // Generate the list of opponent moves, make sure it is not empty: MoveList mlist; pos->GenerateMoves (&mlist); if (mlist.Size() == 0) { return false; } // Try to find the ponder move from the principal variation: bool pvMoveFound = false; principalVarT * pv = engine->GetPV(); if (pv->length >= 2) { simpleMoveT * pvMove = &(pv->move[1]); int index = mlist.Find (pvMove); if (index >= 0) { mlist.MoveToFront (index); pvMoveFound = true; } } if (!pvMoveFound && mlist.Size() > 1) { // Do a very short search to find the move to ponder: engine->SetCallbackFunction (NULL, NULL); // Disable callback. engine->SetSearchTime (10); // Do a 10 ms search. engine->Think (&mlist); engine->SetCallbackFunction (callback, NULL); // Re-enable callback. } // Find the first move in the list for which there is no opening // book reply, and select it as the move to ponder: for (uint i=0; i < mlist.Size(); i++) { simpleMoveT * sm = mlist.Get(i); pos->DoSimpleMove (sm); MoveList replyList; pos->GenerateMoves (&replyList); int index = lookupBook (pos, &replyList); pos->UndoSimpleMove (sm); if (index < 0) { *selected = *sm; return true; } } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // startPondering // Makes the specified move for the opponent, and ponders a reply // until interrupted by input. void startPondering (Engine * engine, simpleMoveT * ponderMove) { Position * pos = engine->GetPosition(); if (engine->InPostMode()) { char san[20]; pos->MakeSANString (ponderMove, san, SAN_MATETEST); output ("# Pondering: %s\n", san); } ponder.guessed = false; mode.state = pondering; ponder.move = *ponderMove; engine->PlayMove (ponderMove); engine->SetSearchTime (1 << 30); MoveList mlist; engine->GetPosition()->GenerateMoves (&mlist); ponder.score = engine->Think (&mlist); ponder.reply = *(mlist.Get(0)); engine->RetractMove (); mode.state = waiting; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // makeReply // Given a move list and score, prints and makes the best move // and checks for draws etc. void makeReply (Engine * engine, MoveList * mlist, int score) { Position * pos = engine->GetPosition(); if (mlist->Size() == 0) { // It must be stalemate or checkmate: if (score == 0) { output ("1/2-1/2 {Stalemate}\n"); } else { if (pos->GetToMove() == WHITE) { output ("0-1 {Black mates}\n"); } else { output ("1-0 {White mates}\n"); } } return; } // Look for forced draws, unless there is only one move to make: if (mlist->Size() != 1) { if (config.draw && mode.drawOffered) { // The opponent offered a draw. Accept it if we score // the position as exactly zero (drawn) and we are not // ahead on material, or if the score is bad for us // by half a pawn or so. int mscore = engine->ScoreMaterial(); if (score < -50 || (score == 0 && mscore <= 0)) { output ("offer draw\n"); } } // Should we offer a draw? if (score != 0) { mode.drawnScores = 0; } else { mode.drawnScores++; // Offer a draw every 4 moves when the last few scores // have all been zero (drawn), but only if the material // score is equal or worse for us, since the oppponent // should prove they can draw if behind on material. if (config.draw && mode.drawnScores >= 4) { int mscore = engine->ScoreMaterial(); if (mscore <= 0) { output ("offer draw\n"); mode.drawnScores = 0; } } } // If we are hopelessly lost and the opponent has at // least 20 seconds remaining, resign now. if (config.resign && score < -800 && tc.oppCentiSecondsLeft > 2000) { if (pos->GetToMove() == WHITE) { output ("0-1 {White resigns}\n"); } else { output ("1-0 {Black resigns}\n"); } engine->SetPosition(NULL); mode.drawOffered = false; mode.drawnScores = 0; return; } } // Print and play the best move: char san[20]; pos->MakeSANString (mlist->Get(0), san, SAN_MATETEST); engine->PlayMove (mlist->Get(0)); output ("move %s\n", san); pos = engine->GetPosition(); if (pos->IsKingInMate()) { if (pos->GetToMove() == WHITE) { output ("0-1 {Black mates}\n"); } else { output ("1-0 {White mates}\n"); } } mode.drawOffered = false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // main // The main Scidlet routine. int main (int argc, char ** argv) { setbuf (stdin, NULL); setbuf (stdout, NULL); tc.movesPerControl = 0; tc.minutesPerControl = 0; tc.centiSecondsLeft = 4000; tc.oppCentiSecondsLeft = 4000; tc.incrementSeconds = 0; tc.fixedTimeControl = false; mode.force = false; mode.ponder = false; mode.analyze = false; mode.state = waiting; mode.drawOffered = false; Engine * engine = new Engine(); engine->SetXBoardMode (false); engine->SetCallbackFunction (callback, NULL); // Read configuration file: bool configLoaded = readConfigFile(&config); // Parse command-line override arguments: for (int i=1; i < argc; i++) { const char * s = argv[i]; while (s[0] == '/' || s[0] == '-') { s++; } if (! readConfigLine (s, &config)) { output ("Unrecognised command-line parameter: %s\n", argv[i]); } } engine->SetHashTableKilobytes (config.hashTableMB * 1024); engine->SetPawnTableKilobytes (config.pawnTableMB * 1024); engine->SetPruning (config.pruning); if (config.log) { startLogging(config.logFileName); engine->SetLogFile (logFile); } output ("# Scidlet %s %s\n", SCID_VERSION_STRING, SCID_WEBSITE); output ("# Configuration file (%s) was %s.\n", configFileName, configLoaded ? "loaded" : "not loaded"); output ("# Log file (%s): %s.\n", config.logFileName, isLogging() ? "on" : "off"); output ("# Futility pruning: %s.\n", config.pruning ? "on" : "off"); // output ("# Resign flag: %s. Draw flag: %s.\n", // config.resign ? "on" : "off", config.draw ? "on" : "off"); output ("# Main hash table size: %3u MB = %8u entries.\n", config.hashTableMB, engine->NumHashTableEntries()); output ("# Pawn hash table size: %3u MB = %8u entries.\n", config.pawnTableMB, engine->NumPawnTableEntries()); uint booksize = readBook (config.bookFileName); output ("# Opening book (%s): %u positions.\n", config.bookFileName, booksize); while (true) { ponder.guessed = false; if (mode.ponder && !mode.force && !inputReady()) { // Ponder until interrupted by input: simpleMoveT ponderMove; if (selectPonderMove (engine, &ponderMove)) { startPondering (engine, &ponderMove); } } if (ponder.guessed) { engine->PlayMove (&ponder.move); } else { bool reply = readInput (engine); if (!reply) { continue; } } if (mode.force) { continue; } // Check for certain draws: if (engine->NoMatingMaterial()) { output ("1/2-1/2 {No mating material}\n"); continue; } if (engine->FiftyMoveDraw()) { output ("1/2-1/2 {Draw by 50 move rule}\n"); continue; } if (engine->RepeatedPosition() >= 3) { output ("1/2-1/2 {Draw by repetition}\n"); continue; } char san[20]; MoveList mlist; Position * pos = engine->GetPosition(); pos->GenerateMoves (&mlist); int score = 0; if (ponder.guessed) { int index = mlist.Find (&ponder.reply); if (index >= 0) { mlist.MoveToFront (index); } makeReply (engine, &mlist, ponder.score); continue; } if (mlist.Size() != 1) { int bookmove = lookupBook (pos, &mlist); if (bookmove >= 0) { pos->MakeSANString (mlist.Get(bookmove), san, SAN_MATETEST); engine->PlayMove (mlist.Get(bookmove)); if (engine->InXBoardMode() && engine->InPostMode()) { output (" 0 0 0 0 %s\n", san); } output ("move %s\n", san); continue; } // Set the search time for this move: setSearchTime (engine); // Search for the best move to play: mode.state = thinking; score = engine->Think (&mlist); mode.state = waiting; } makeReply (engine, &mlist, score); } return 0; } scid-4.3.0.cvs20120311/src/hash.h0000644000175000017500000002533011727223077015324 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: hash.h // Pre-generated random hash values // // Part of: Scid (Shane's Chess Information Database) // Version: 3.4 // // Notice: Copyright (c) 2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_HASH_H #define SCID_HASH_H // goodHashValues // This is a table of 12 (pieces) * 64 (squares) = 768 pre-generated // "good" 32-bit hash values, to be used for Zobrist hashing. // The values were generated using a threshold of 10, meaning that // (a) every value has at least 10 and at most 32-10=22 bits set; // (b) every value differs from every other value by at least 10 // bits and at most 32-10=22 bits. // const uint goodHashValues [12 * 64] = { 0x039B11BFu,0x4890D6A4u,0x37539B8Au,0xA7E3A104u,0x8B263019u,0xEB71AE0Bu, 0x87099341u,0x32EF9CD4u,0x698B8BC1u,0x823FEACEu,0x8E607A5Au,0x7241E921u, 0x8E94A4B6u,0x2670B742u,0xD721044Cu,0xD1FC122Du,0xBD0CE70Eu,0xA4159629u, 0xAE24AD63u,0xAB5DA9E9u,0x83D1C843u,0x32E60A29u,0xABF131AAu,0x3C3CF99Du, 0x5553E1FDu,0xD8328308u,0x9B2FC0D4u,0x4EDC83D2u,0x852D84B3u,0x068D4A5Fu, 0x35CE432Fu,0xE4843746u,0x2B67AF9Eu,0xABCCC099u,0x217F1CAAu,0x7BF4C414u, 0x7C24E036u,0x29E3C6EAu,0x1053B4CCu,0x8D96DDA0u,0x4505DA02u,0x47EFD3ECu, 0x32B9D1EDu,0x4F688C67u,0x1FFD9115u,0xBC0156DBu,0x28BD842Eu,0xECE11B80u, 0x2088BE1Fu,0x3384DFE4u,0x05AAE96Eu,0xE697A8F5u,0x02E84551u,0x6E0B75ABu, 0xC8EE1CA1u,0x5387CC68u,0xB0991EB4u,0x332AD23Eu,0x7063DDB8u,0x844141B4u, 0x3D49AAA0u,0xB73790D3u,0x2009A159u,0x43BCD4B9u,0x3E47B851u,0x992161E6u, 0x5C73DE21u,0xA7185F26u,0xEAF78BCFu,0x9F46F244u,0x90E2E582u,0x2752602Au, 0x8D75AA38u,0x4429875Eu,0xDAB54C3Bu,0x15F07D87u,0x24936E7Du,0xD26AF16Au, 0xF0C1BAA7u,0x3A34F2E0u,0x0A86593Eu,0xBB870177u,0xF1BCB046u,0x91B63283u, 0x881BA73Au,0x7FB62D0Cu,0x9F06ED35u,0x4CF4B1ACu,0x24A21F70u,0x509421A2u, 0xE492FD51u,0x9DE1F22Fu,0xFCEADB75u,0x1244A7B5u,0x9ACABF60u,0xA32479B2u, 0x0396C362u,0x0CEF72D2u,0x9B9D27A1u,0x3306A989u,0x516008FCu,0xE544EA8Du, 0xC33DBE2Cu,0xE80D5B56u,0xDC6FC86Fu,0x4A3F3D4Du,0xAE160A34u,0x00512AA9u, 0xE6B8170Du,0x419DE2C5u,0x6B2E2517u,0x89D27208u,0x92847C09u,0x38E38217u, 0x2821286Fu,0x8AE2AAD5u,0x30FDAE11u,0x543C234Bu,0xE3A2FF38u,0x10194DDEu, 0x657AACB5u,0x9B7A5005u,0xE4F5DD9Eu,0x43C4B54Cu,0x7FB1E299u,0xBA0FBFADu, 0x6650C485u,0xA93F6201u,0x0D27DBDFu,0x03415B76u,0x6BB1E5F7u,0xFD2A98F8u, 0x3DB93342u,0xE14B1091u,0xBF290710u,0xF23142FCu,0xAB80B2CBu,0xFB60F74Du, 0x21F3BB77u,0x3888CAADu,0x8A9ADBEFu,0x789090FFu,0x9D730E8Du,0x49B24A39u, 0xD7910113u,0xD106D4B2u,0xD2EE43B5u,0x6D341063u,0xB61EDC4Eu,0x9550B69Bu, 0xB31BF6E6u,0xA77E70C6u,0xD5A2839Fu,0x36B5397Fu,0xB9ECCD6Au,0x5748A700u, 0xE55FD773u,0x05B1D3B3u,0x02C832FCu,0x44475068u,0x5A3FA331u,0x7E98673Fu, 0x019BD400u,0x2B500871u,0x1B11BBD3u,0xD9A16849u,0x3D28C47Du,0x5B5A17F8u, 0x11A56BBFu,0x7A49A7EAu,0x827A948Bu,0x9CFCA8F3u,0xD0139857u,0x66934246u, 0x010B6D83u,0x640E91CBu,0x14F7F949u,0x22E1DBDBu,0xFE39F428u,0xC1EFF01Du, 0xB7FBAA70u,0x24D621C8u,0x3E8CB46Cu,0x799C9A30u,0x9101AA6Au,0x50057267u, 0x4ABB8084u,0x96A69B26u,0x64430CE7u,0x29104757u,0xF895CE65u,0xACE8C5A7u, 0x8C311979u,0xC50D43F9u,0x74E82B12u,0x7DD3F51Au,0x024CB893u,0x1082235Au, 0x267DE6F9u,0xF07D4A07u,0x2269E0C4u,0x58CD4E12u,0xA5BECEC3u,0x548B6301u, 0x1DAD51A9u,0xEDD5C126u,0x82F2633Bu,0xC03AA07Cu,0xEF54151Fu,0xAA6B4422u, 0x065BC9E0u,0xC35692CEu,0xA1D7DB4Cu,0xD8633DF3u,0x7298EB8Au,0xFF0A0ACFu, 0x0DA1A674u,0x6DE7B4C7u,0xE761833Au,0xF9FF6F50u,0x84BC2B8Cu,0xE799B3BCu, 0x16161665u,0xF8F95501u,0x576662B2u,0x16C9842Au,0xB200D414u,0xF0B5A23Au, 0xDE336B9Eu,0x6E2C4FCEu,0x0DD75B71u,0xDA5F5B65u,0x10305BF5u,0x25459D34u, 0x9024995Au,0x9A35CB81u,0xB04481ECu,0x852EADD4u,0x3979197Eu,0x758912F3u, 0xC73CDAF6u,0xDF52A76Eu,0xC7340794u,0x6C5684BBu,0x9FA057F2u,0xD740B832u, 0xB7AF5E98u,0x0BB2995Du,0xB58AB9B7u,0xFE0BD190u,0xB992ECC8u,0x9FD77CDCu, 0xCD786AFDu,0x9D06944Bu,0x94DB6416u,0xF7086164u,0x06BA82F7u,0x897BFB24u, 0xA3F57351u,0x73087E2Bu,0x05857541u,0xA0BE3365u,0x4FB89F40u,0xCC8BF6FDu, 0xB6F359A4u,0x7FFAF82Du,0xFF05C5DDu,0x41C88B7Au,0xD94586E9u,0x8ECBE977u, 0xC02DB501u,0x085DD109u,0xE167E374u,0xE22877E1u,0xFC504828u,0x5A593E86u, 0xB82D503Cu,0x0E23B9A4u,0x1DA667E5u,0xD6E88E31u,0x87B13CBDu,0x73A7CB92u, 0x1176EFD8u,0x805EC39Fu,0x0FAA9AAAu,0xB2F707B2u,0xB67AE203u,0x8BCC0DAFu, 0xE1D2659Cu,0x481CC9B6u,0x4EA7AE2Du,0x3F0E1BB1u,0xA0EFE34Bu,0xFB8D54E2u, 0xEEE20096u,0x20F49785u,0xA059722Eu,0xF54885FBu,0xBB655656u,0xD674D353u, 0x1C2249E8u,0xA4718FF5u,0x61A84E05u,0xA3126E85u,0x61D9AD54u,0x07198C19u, 0xB972FB1Bu,0x5238CA6Fu,0xA1BFB910u,0x8645AEC8u,0xE6C48940u,0xAB771F63u, 0x17E50DB8u,0x2D864432u,0x1D832682u,0x90B555C4u,0xF57533F8u,0xD7CD623Cu, 0x30F276B1u,0x968A4BC2u,0x43D75E3Fu,0x232BD8E3u,0x09D8EEF6u,0xE43898C5u, 0x590FF714u,0x578FB433u,0x7CA18ACEu,0x5E8BBA1Eu,0x9377431Cu,0x352D8B78u, 0x5D64CBE6u,0xAC0E4DFBu,0x8CC6D71Au,0x357E5A72u,0xE52B7EC4u,0x8BA3C715u, 0x637A16E7u,0xE53DE860u,0x5D8D3992u,0x69FA014Cu,0xA741FD99u,0x1D446311u, 0xD1B7AD7Du,0xB09D684Au,0x2AB52F38u,0x115A6A4Eu,0x70FA8C72u,0x280593A6u, 0x90E51413u,0x40D69014u,0xFE54E992u,0x80B0DF0Bu,0xADCEAA5Cu,0x2CE5D77Du, 0xC848DD13u,0x1816469Cu,0xF29F0F0Eu,0x5267A846u,0x9519EB95u,0x36A0F7ABu, 0x47286387u,0x1FDDB6CAu,0xBCDB9881u,0xC2D197BBu,0x6EAEE818u,0x283E0B1Bu, 0xF2E87D37u,0x210662D0u,0x093BAE47u,0x7A2307D6u,0x79876ECFu,0x19DD55B6u, 0xC8903A3Eu,0x00A6B10Fu,0xF9C00FD4u,0x494BB0A6u,0x97FF861Bu,0x70BD145Du, 0x7F46D4ACu,0xE6F63ECCu,0x707613DFu,0x89A9805Fu,0x98035A70u,0xE941DB3Du, 0x84E3C899u,0x4E8CFB84u,0xB51B01EEu,0xBFF2D163u,0xC3A8202Bu,0x18BB798Au, 0x12DF54DBu,0xD10B9FFEu,0xCEB08E5Fu,0xA2250D9Du,0x0E5C8F05u,0x3BCB935Cu, 0x1BD051C9u,0x46214EF2u,0xDDF5D4D1u,0x37A19E57u,0x16DE6F73u,0x25AFB2B9u, 0xDD2E7E69u,0x082894FAu,0x1535FCF4u,0x7EECD60Fu,0x6E9FCEAAu,0x96D6D08Du, 0x79C709AAu,0x1CA5070Fu,0xB8A7AED2u,0x80684E96u,0xC7D6497Cu,0xB93DD3FBu, 0xFA20C05Bu,0xF55A0330u,0x6D226F9Bu,0x66A532A2u,0x73FD3ABBu,0xC77B9A07u, 0xCDC921ECu,0xB68E327Bu,0xB7F9555Cu,0x30BA9B4Eu,0x4C879967u,0xC9A75320u, 0xFC83700Cu,0x4027063Bu,0x1B630D64u,0x587C3550u,0x1CFC5B44u,0xA5AD192Eu, 0xFBE9177Bu,0x1EABD059u,0xAA4468C7u,0x76AA58BBu,0xB4B08556u,0x71EE9F17u, 0xB3F5AC8Cu,0xE6D8DBA1u,0x8B0AF89Eu,0xD36C2B70u,0x128D3DEAu,0x3D460CD8u, 0x16215910u,0xCC0F0785u,0x68CC3BCFu,0xDEB2B9C7u,0x6B633805u,0x780E1005u, 0x09E49837u,0x39E80ADBu,0x012CEA31u,0x3478872Cu,0x413C1D1Eu,0x233D57C2u, 0x4DED8698u,0x2812F838u,0xF3A213C0u,0xDB90565Cu,0x7B5BCA04u,0x085A189Du, 0xD3B15A8Au,0xCE88155Au,0xC6583EF3u,0x68BAE790u,0x2B1EB054u,0x71910CC2u, 0xD0D88984u,0x210634A7u,0x6A8140B0u,0xD61986A7u,0x777843EAu,0x6D565FEFu, 0x243864EEu,0xA5EB42F5u,0xF06EFA92u,0x37214225u,0x7FD632D3u,0x5270689Bu, 0x17D003A4u,0xBFA3F882u,0x3ABF601Fu,0x9462B2F6u,0x95506548u,0xDFE5AA96u, 0x6014EF4Cu,0x95AA0C22u,0x5AA2452Du,0x537E00C9u,0xF1DA7E65u,0xB35E0497u, 0xC000C9C9u,0xC9041E45u,0x43327CAEu,0x5E1EC5E3u,0x34618D4Bu,0x19EAD6D5u, 0x2EFD99E6u,0x670EBE60u,0x9308BC47u,0x8C167E0Fu,0xE79510C8u,0x7B6872B5u, 0x3E26A6CFu,0x15C2DC3Bu,0x2D58DB58u,0xF146A05Au,0x6FED31D9u,0xB72E86A4u, 0x4C41B38Bu,0xDBD4DBFAu,0x1EC10AD0u,0x4E58E234u,0xAB4167FCu,0x6B7E733Au, 0x097C2AC0u,0x8B071EBAu,0x776CFD58u,0x6C9B3130u,0x775F8863u,0x30ACC2D6u, 0xF2E16ED1u,0x7E7B4DDBu,0xE3BE881Fu,0xD50608E1u,0x5BEEA67Cu,0x2A6FDB10u, 0x532ACD1Bu,0xEF979FD2u,0xA7076C1Eu,0xE5ED7E0Bu,0xE0C08618u,0x0A419EE5u, 0xE8A39152u,0xF8049773u,0x60E262CDu,0xB64DCB36u,0x5BC10B4Fu,0x79ED7826u, 0xBDB0D600u,0xA73B4945u,0x15D99DF1u,0x2EB2322Fu,0x905CB323u,0x8E9D7BBAu, 0xF589DA5Cu,0x3239EC36u,0xBD1A727Cu,0x9A2B964Eu,0x2738E521u,0x3D32ADFEu, 0x7CCB6CC0u,0x9408173Fu,0x314D2743u,0xE07F1718u,0x07A67FCAu,0x9A96EA79u, 0x2C83A39Cu,0x553EFFB3u,0xC45666F4u,0xE870F6FBu,0x60578B32u,0x773C8652u, 0x05210BC4u,0xF8D963F3u,0xD93511B5u,0xF1719F52u,0x2B20CE90u,0x9995F672u, 0x6C198588u,0x38759A4Du,0xDFBB53D5u,0xD7685FBCu,0x77513427u,0x6180D195u, 0xAEC6B98Eu,0x92BD89BEu,0x9225B0FDu,0x5739B0FAu,0xA9033F59u,0x141F2599u, 0xC36254D4u,0x604A7F95u,0x9E6C065Du,0x31FBCC0Fu,0x5B9ADD8Cu,0xDFFA3B0Au, 0x0DFBFC78u,0xF9CA5EBAu,0x2ADB0F37u,0xDDCCB685u,0x8A5B515Eu,0x41C144ADu, 0x34657B2Cu,0x0D450F6Au,0x826FAC71u,0x9EC05C75u,0x74DDC8D9u,0x64C7389Bu, 0x09331092u,0x3EFEA384u,0x704FB6F1u,0x6B4FEF67u,0xCE61D945u,0x9EE52925u, 0xE5A82DC9u,0x0B78A412u,0xDFCBC5A9u,0x30DEC518u,0x1F783F75u,0x4E77188Eu, 0x40A76D52u,0x38B18960u,0x09891862u,0x459A5AA7u,0x42001B9Au,0x0831CA1Eu, 0xF49286E0u,0x877982DCu,0x3B5CC623u,0x807D7FFFu,0x55540A37u,0x6227F496u, 0x8A2A89B3u,0x795F2B97u,0xF63D1ECBu,0x1124A560u,0x4580D76Fu,0xD6D5BC5Bu, 0xB116155Cu,0x52AD63D8u,0x9845DC86u,0x6689C793u,0x7EE16506u,0xDC0190E2u, 0xC37420F7u,0xE598CC3Au,0x8DC81014u,0xB6812BB9u,0xE9F50AF2u,0x0F41261Fu, 0x0466D7E3u,0xDD946A80u,0x4E326865u,0x6E005C19u,0x4146B339u,0xC60EDF2Bu, 0xE0307009u,0x0E646DF4u,0x2654FA27u,0xF81D24FEu,0xC44C94DCu,0x339B61D1u, 0x7D771304u,0x61FF6433u,0x7CDCFC56u,0x76702E78u,0x4E461F5Cu,0x4F5E4893u, 0x41521503u,0x7D997DEDu,0x2F39368Cu,0xC2A0ABE2u,0xD8ABC763u,0x0B196104u, 0x209549ACu,0x34D15315u,0x0357D995u,0x40138F8Fu,0xDC525599u,0xF629FB1Bu, 0x6A62B298u,0x3C1A805Au,0xEE1674DAu,0xBA19460Du,0x3C72676Bu,0xC34DD53Eu, 0x8DD03D72u,0xADAA7B0Du,0xFA0949AEu,0x98DD7A1Du,0x3A545F3Du,0xF4AB0851u, 0xAA1C51A5u,0xC4FEEB56u,0x7E15A604u,0x61459EDFu,0xA64B7A31u,0xDC4DBA74u, 0x57277D9Du,0x0D694801u,0xBB4B34DAu,0xECBF05E2u,0x5C192BF8u,0xDF88AED8u, 0x10D59F2Eu,0x1F4CD1FFu,0x13C17092u,0x34E8D820u,0x8D0F4AE6u,0xC22A9F84u, 0x4F757B90u,0xF647C64Bu,0xB8D5F5EFu,0x4EF2ED32u,0x08CFE621u,0x6282A765u, 0xBB3B1A28u,0x7A00FEDEu,0x7EE74E77u,0x0E72CEC6u,0x7096E317u,0xC53A15F1u, 0xA36CBB05u,0x752139ABu,0x2B28AD4Cu,0x1AA3F3FEu,0xA67D4188u,0x9CB3B791u, 0x5130A6B6u,0xF38FF94Fu,0x4B18839Du,0x92741FE8u,0xA53A3E3Bu,0x5AA03303u, 0x88E42368u,0x7A62DB87u,0xCB918AECu,0x3FE0BBBCu,0x5ED7B7A7u,0x56148AA8u, 0x5B33902Fu,0x8EF7172Cu,0x5D756F5Fu,0x67D49CA2u,0xE5F2F3CAu,0x45B9AA3Fu, 0x35B6D0AAu,0xB086D241u,0xF561EC77u,0x817289AEu,0x4ABC59C3u,0x7171D0E6u, 0xAD03F121u,0x4FB6B316u,0x2F94FD3Bu,0xAB9B2D42u,0x9C39B806u,0x139BDA75u, 0xBCFDFFA0u,0xDE2D7D42u,0xC314E010u,0x91F7D7A9u,0x961D52D0u,0x4EEBB554u, 0x8E833C6Eu,0xEC7FD2C9u,0xACD9AE8Eu,0xD31873FFu,0x7E1551F6u,0x809C8D31u, 0x8873E4B5u,0x3221744Au,0xEB3B4FBDu,0xB17E5F84u,0xEFD0E469u,0xD08C2EC3u }; #endif // SCID_HASH_H ////////////////////////////////////////////////////////////////////// // EOF: hash.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/common.h0000644000175000017500000004774711727223077015711 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: common.h // Common macros, structures and constants. // // Part of: Scid (Shane's Chess Information Database) // Version: 3.6.6 // // Notice: Copyright (c) 2000-2004 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // Copyright (c) 2006-2007 Pascal Georges // ////////////////////////////////////////////////////////////////////// #ifndef SCID_COMMON_H #define SCID_COMMON_H //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // HEADER FILES: #include #include #if defined (WINCE) || defined (POCKET) #include #endif #include "tclmy.h" #include "myassert.h" #include "error.h" // Include the zlib header file if it is being compiled with Scid: #ifndef NO_ZLIB # ifdef ZLIB # include "zlib/zlib.h" # else # include # endif #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CONSTANTS: // Buffer sizes #ifdef WINCE #define BBUF_SIZE 30000 #define TBUF_SIZE 100000 #else #define BBUF_SIZE 256000 //120000 #define TBUF_SIZE 1280000 //160000 #endif typedef unsigned short versionT; // Version: div by 100 for major number, modulo 100 for minor number // so 109 = 1.9, 110 = 1.10, etc. const versionT SCID_VERSION = 400; // Current file format version = 4.0 const versionT SCID_OLDEST_VERSION = 400; // Oldest compatible format: 4.0 const char SCID_VERSION_STRING[] = "4.3"; // Current Scid version const char SCID_VERSION_DATE[] = "February 2011"; const char SCID_WEBSITE[] = "http://scid.sourceforge.net/"; const char TREEFILE_SUFFIX[] = ".stc"; const char GZIP_SUFFIX[] = ".gz"; const char ZIP_SUFFIX[] = ".zip"; const char PGN_SUFFIX[] = ".pgn"; // If the zlib compression library is NOT used, create dummy inline // functions to replace those used in zlib, which saves wrapping every // zlib function call with #ifndef conditions. #ifdef NO_ZLIB typedef void * gzFile; inline gzFile gzopen (const char * name, const char * mode) { return NULL; } inline int gzputc (gzFile fp, int c) { return c; } inline int gzgetc (gzFile fp) { return -1; } inline int gzread (gzFile fp, char * buffer, int length) { return 0; } inline int gzeof (gzFile fp) { return 1; } inline int gzseek (gzFile fp, int offset, int where) { return 0; } inline int gzclose (gzFile fp) { return 0; } #endif // Bit Manipulations #define BIT_7(x) ((x) & 128) #define BIT_6(x) ((x) & 64) #define BIT_5(x) ((x) & 32) #define BIT_4(x) ((x) & 16) #define BIT_3(x) ((x) & 8) #define BIT_2(x) ((x) & 4) #define BIT_1(x) ((x) & 2) #define BIT_0(x) ((x) & 1) // Upper or lower 4 bits of a byte, in the range 0..15 #define UPPER_4_BITS(x) (((x) & 240) >> 4) // 240 is (15 * 16) #define LOWER_4_BITS(x) ((x) & 15) // Upper or lower 12 bits of an integer, in the range 0..4095 // #define UPPER_12_BITS(x) (((x) & (4096 * 4095)) >> 12) #define LOWER_12_BITS(x) ((x) & 4095) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // TYPE DEFINITIONS // General types typedef unsigned char byte; // 8 bit unsigned typedef unsigned short ushort; // 16 bit unsigned typedef unsigned int uint; // 32 bit unsigned typedef signed int sint; // 32 bit signed typedef unsigned long ulong; // compareT: comparison type typedef signed int compareT; const compareT LESS_THAN = -1, EQUAL_TO = 0, GREATER_THAN = 1; // Chess Types typedef byte pieceT; // e.g ROOK or WK typedef byte colorT; // WHITE or BLACK typedef byte squareT; // e.g. A3 typedef byte directionT; // e.g. UP_LEFT typedef byte rankT; // Chess board rank typedef byte fyleT; // Chess board file typedef byte leftDiagT; // Up-left diagonals typedef byte rightDiagT; // Up-right diagonals // boardT: 64 squares plus two extra squares: one for storing the side // to move as a byte and one for the string terminator, so boards can // be compared using regular string functions: typedef pieceT boardT [66]; typedef byte smallBoardT [32]; // A more densely packed board, 2 squares // per byte. typedef byte castleDirT; // LEFT or RIGHT // Other Small Types typedef ushort statusT; // Fixed String Types typedef char sanStringT [ 10]; // SAN Move Notation // File-related Types typedef char fileNameT [512]; typedef uint fileLengthT; enum fileModeT { FMODE_None = 0, FMODE_ReadOnly, FMODE_WriteOnly, FMODE_Both }; // Date type: see date.h and date.cpp typedef uint dateT; // Game Information types typedef uint gameNumberT; // Used in Index class typedef ushort eloT; typedef ushort ecoT; typedef char ecoStringT [6]; /* "A00j1" */ const ecoT ECO_None = 0; // Rating types: const byte RATING_Elo = 0; const byte RATING_Rating = 1; const byte RATING_Rapid = 2; const byte RATING_ICCF = 3; const byte RATING_USCF = 4; const byte RATING_DWZ = 5; const byte RATING_BCF = 6; extern const char * ratingTypeNames [17]; // Defined in game.cpp // NameBase types: see namebase.h and namebase.cpp typedef uint idNumberT; typedef uint nameT; // Result Type const uint NUM_RESULT_TYPES = 4; typedef byte resultT; const resultT RESULT_None = 0, RESULT_White = 1, RESULT_Black = 2, RESULT_Draw = 3; const uint RESULT_SCORE[4] = { 1, 2, 0, 1 }; const char RESULT_CHAR [4] = { '*', '1', '0', '=' }; const char RESULT_STR [4][4] = { "*", "1-0", "0-1", "=-=" }; const char RESULT_LONGSTR [4][8] = { "*", "1-0", "0-1", "1/2-1/2" }; const resultT RESULT_OPPOSITE [4] = { RESULT_None, RESULT_Black, RESULT_White, RESULT_Draw }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHESS PIECES, COLORS AND THEIR MACROS const uint NUM_COLOR_TYPES = 2; const colorT WHITE = 0, BLACK = 1, NOCOLOR = 2; const char COLOR_CHAR [3] = {'W', 'B', '_' }; inline colorT color_Flip (colorT c) { return 1 - c; } inline char color_Char(colorT c) { return COLOR_CHAR[c]; } const castleDirT QSIDE = 0, KSIDE = 1; // PIECE TYPES (without color; same value as a white piece) const pieceT KING = 1, QUEEN = 2, ROOK = 3, BISHOP = 4, KNIGHT = 5, PAWN = 6; // PIECES: // Note that color(x) == ((x & 0x8) >> 3) and type(x) == (x & 0x7) // EMPTY is deliberately nonzero, and END_OF_BOARD is zero, so that // a board can be used as a regular 0-terminated string, provided // that board[NULL_SQUARE] == END_OF_BOARD, as it always should be. const pieceT EMPTY = 7; const pieceT END_OF_BOARD = 0; const pieceT WK = 1, WQ = 2, WR = 3, WB = 4, WN = 5, WP = 6; const pieceT BK = 9, BQ = 10, BR = 11, BB = 12, BN = 13, BP = 14; // Minor piece definitions, used for searching by material only: const pieceT WM = 16, BM = 17; const uint MAX_PIECE_TYPES = 18; // PIECE_CHAR[]: array of piece characters, capitals for White pieces. const char PIECE_CHAR [] = "xKQRBNP.xkqrbnpxMm"; // PIECE_FLIP[]: array of pieces, with colors reversed. const pieceT PIECE_FLIP [MAX_PIECE_TYPES] = { END_OF_BOARD, BK, BQ, BR, BB, BN, BP, EMPTY, EMPTY, WK, WQ, WR, WB, WN, WP, EMPTY, BM, WM }; const bool PIECE_IS_SLIDER [8] = { false, false, true, true, true, false, false, false, }; // PIECE_VALUE: Piece values, K=1000, Q=9, R=5, B=N=3, P=1 const int PIECE_VALUE [MAX_PIECE_TYPES] = { 0, 100, 9, 5, 3, 3, 1, 0, 0, -100, -9, -5, -3, -3, -1, 0, 3, -3 }; // // INLINE FUNCTIONS for pieces // inline colorT piece_Color(pieceT p) { return (p == EMPTY) ? NOCOLOR : ((p & 8) >> 3); } // Slightly faster piece_Color when we are sure the piece is not empty: inline colorT piece_Color_NotEmpty(pieceT p) { return (p & 8) >> 3; } inline pieceT piece_Type(pieceT p) { return (p & 7); } inline pieceT piece_Make(colorT c, pieceT p) { return ((c << 3) | (p & 7)); } inline bool piece_IsWhite(pieceT p) { return (p>=WK && p<=WP); } inline bool piece_IsBlack(pieceT p) { return (p>=BK && p<=BP); } inline bool piece_IsKing(pieceT p) { return (piece_Type(p) == KING); } inline bool piece_IsQueen(pieceT p) { return (piece_Type(p) == QUEEN); } inline bool piece_IsRook(pieceT p) { return (piece_Type(p) == ROOK); } inline bool piece_IsBishop(pieceT p) { return (piece_Type(p) == BISHOP); } inline bool piece_IsKnight(pieceT p) { return (piece_Type(p) == KNIGHT); } inline bool piece_IsPawn(pieceT p) { return (piece_Type(p) == PAWN); } inline bool piece_IsSlider(pieceT p) { return PIECE_IS_SLIDER[piece_Type(p)]; } inline char piece_Char(pieceT p) { return PIECE_CHAR[piece_Type(p)]; } inline pieceT piece_FromChar(char x) { switch (x) { case 'K': return KING; case 'Q': return QUEEN; case 'R': return ROOK; case 'N': return KNIGHT; case 'B': return BISHOP; default: return EMPTY; } } inline int piece_Value (pieceT p) { return PIECE_VALUE[p]; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SQUARES AND SQUARE MACROS const squareT A1 = 0, B1 = 1, C1 = 2, D1 = 3, E1 = 4, F1 = 5, G1 = 6, H1 = 7, A2 = 8, B2 = 9, C2 =10, D2 =11, E2 =12, F2 =13, G2 =14, H2 =15, A3 =16, B3 =17, C3 =18, D3 =19, E3 =20, F3 =21, G3 =22, H3 =23, A4 =24, B4 =25, C4 =26, D4 =27, E4 =28, F4 =29, G4 =30, H4 =31, A5 =32, B5 =33, C5 =34, D5 =35, E5 =36, F5 =37, G5 =38, H5 =39, A6 =40, B6 =41, C6 =42, D6 =43, E6 =44, F6 =45, G6 =46, H6 =47, A7 =48, B7 =49, C7 =50, D7 =51, E7 =52, F7 =53, G7 =54, H7 =55, A8 =56, B8 =57, C8 =58, D8 =59, E8 =60, F8 =61, G8 =62, H8 =63, COLOR_SQUARE = 64, NULL_SQUARE = 65, NS = 65; // NS is abbreviation for NULL_SQUARE. const rankT RANK_1 = 0, RANK_2 = 1, RANK_3 = 2, RANK_4 = 3, RANK_5 = 4, RANK_6 = 5, RANK_7 = 6, RANK_8 = 7, NO_RANK = 64; const fyleT // we use "fyle" instead of "file" to avoid confusion with disk files. A_FYLE = 0, B_FYLE = 1, C_FYLE = 2, D_FYLE = 3, E_FYLE = 4, F_FYLE = 5, G_FYLE = 6, H_FYLE = 7, NO_FYLE = 64; inline rankT rank_FromChar(char c) { if (c < '1' || c > '8') { return NO_RANK; } else return (c - '1'); } inline fyleT fyle_FromChar(char c) { if (c < 'a' || c > 'h') { return NO_FYLE; } else return (c - 'a'); } inline squareT square_Make(fyleT f, rankT r) { ASSERT (f <= H_FYLE && r <= RANK_8); return ((r << 3) | f); } inline fyleT square_Fyle(squareT sq) { return (sq & 0x7); } inline rankT square_Rank(squareT sq) { return ((sq >> 3) & 0x7); } inline leftDiagT square_LeftDiag (squareT sq) { return square_Rank(sq) + square_Fyle(sq); } inline rightDiagT square_RightDiag (squareT sq) { return (7 + square_Rank(sq) - square_Fyle(sq)); } // square_Color: // Return WHITE for a light square, BLACK for a dark square. inline colorT square_Color (squareT sq) { return 1 - (square_LeftDiag(sq) & 1); } // square_FlipFyle: // Return the square with its file flipped: a1 <-> h1, b1 <-> g1, etc. inline squareT square_FlipFyle (squareT sq) { return square_Make (A_FYLE + H_FYLE - square_Fyle(sq), square_Rank(sq)); } // square_FlipRank: // Return the square with its rank flipped: a1 <-> a8, a2 <-> a7, etc. inline squareT square_FlipRank (squareT sq) { return square_Make (square_Fyle(sq), RANK_1 + RANK_8 - square_Rank(sq)); } // square_FlipDiag: // Return the square flipped along the a1-h8 diagonal. inline squareT square_FlipDiag (squareT sq) { return square_Make (square_Rank(sq), square_Fyle(sq)); } const uint rankFyleDist[64] = { 0, 1, 2, 3, 4, 5, 6, 7, 1, 0, 1, 2, 3, 4, 5, 6, 2, 1, 0, 1, 2, 3, 4, 5, 3, 2, 1, 0, 1, 2, 3, 4, 4, 3, 2, 1, 0, 1, 2, 3, 5, 4, 3, 2, 1, 0, 1, 2, 6, 5, 4, 3, 2, 1, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0 }; // square_Distance: // Return the distance in king moves between two squares. inline uint square_Distance (squareT from, squareT to) { ASSERT (from <= H8 && to <= H8); uint rankd = rankFyleDist[(square_Rank(from) << 3) | square_Rank(to)]; uint fyled = rankFyleDist[(square_Fyle(from) << 3) | square_Fyle(to)]; return (rankd > fyled) ? rankd : fyled; } // square_NearestCorner: // Return the corner (A1/H1/A8/H8) closest to the specified square. inline squareT square_NearestCorner (squareT sq) { if (square_Rank(sq) <= RANK_4) { return (square_Fyle(sq) <= D_FYLE)? A1 : H1; } else { return (square_Fyle(sq) <= D_FYLE)? A8 : H8; } } inline bool square_IsCornerSquare (squareT sq) { return (sq == A1 || sq == H1 || sq == A8 || sq == H8); } inline bool square_IsEdgeSquare (squareT sq) { rankT rank = square_Rank(sq); if (rank == RANK_1 || rank == RANK_8) { return true; } fyleT fyle = square_Fyle(sq); if (fyle == A_FYLE || fyle == H_FYLE) { return true; } return false; } const int edgeDist[66] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 2, 2, 2, 2, 1, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, 1, 2, 2, 2, 2, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1 }; inline int square_EdgeDistance (squareT sq) { return edgeDist[sq]; } inline bool square_IsKnightHop (squareT from, squareT to) { ASSERT (from <= H8 && to <= H8); uint rdist = rankFyleDist [(square_Rank(from) << 3) | square_Rank(to)]; uint fdist = rankFyleDist [(square_Fyle(from) << 3) | square_Fyle(to)]; // It is a knight hop only if one distance is two squares and the // other is one square -- that is, only if their product equals two. return ((rdist * fdist) == 2); } inline char square_FyleChar (squareT sq) { return square_Fyle(sq) + 'a'; } inline char square_RankChar (squareT sq) { return square_Rank(sq) + '1'; } inline void square_Print (squareT sq, char * str) { if (sq <= H8) { str[0] = square_FyleChar(sq); str[1] = square_RankChar(sq); str[2] = 0; } else if (sq == NULL_SQUARE) { str[0] = 'N'; str[1] = 'S'; str[2] = 0; } else { str[0] = 'X'; str[1] = 'X'; str[2] = 0; } return; } // Directions: // Up = 1, Down = 2, Left = 4, Right = 8, UpLeft = 5, UpRight = 9, // DownLeft = 6, DownRight = 10 const directionT NULL_DIR = 0, UP = 1, DOWN = 2, LEFT = 4, RIGHT = 8, UP_LEFT = (UP | LEFT), UP_RIGHT = (UP | RIGHT), DOWN_LEFT = (DOWN | LEFT), DOWN_RIGHT = (DOWN | RIGHT); const directionT dirOpposite[11] = { NULL_DIR, DOWN, // opposite of UP (1) UP, // opposite of DOWN (2) NULL_DIR, RIGHT, // opposite of LEFT (4) DOWN_RIGHT, // opposite of UP_LEFT (5) UP_RIGHT, // opposite of DOWN_LEFT (6) NULL_DIR, LEFT, // opposite of RIGHT (8) DOWN_LEFT, // opposite of UP_RIGHT (9) UP_LEFT // opposite of DOWN_RIGHT (10) }; // direction_Opposite(): return the opposite direction to d inline directionT direction_Opposite (directionT d) { return dirOpposite[d]; } // dirIsDiagonal[]: array listing the diagonal directions, for fast // lookup of whether a direction is a diagonal. const bool dirIsDiagonal [11] = { false, // 0 = NULL_DIR false, // 1 = UP false, // 2 = DOWN false, // 3 = Invalid false, // 4 = LEFT true, // 5 = UP_LEFT true, // 6 = DOWN_LEFT false, // 7 = Invalid false, // 8 = RIGHT true, // 9 = UP_RIGHT true // 10 = DOWN_RIGHT }; inline bool direction_IsDiagonal (directionT dir) { return dirIsDiagonal[dir]; } // dirDelta: // Array giving the board delta of moving to the next square // in that direction. const int dirDelta[11] = { 0, // NULL_DIR 8, // UP -8, // DOWN 0, // Invalid -1, // LEFT 7, // UP_LEFT -9, // DOWN_LEFT 0, // Invalid 1, // RIGHT 9, // UP_RIGHT -7 // DOWN_RIGHT }; inline int direction_Delta (directionT dir) { return dirDelta[dir]; } // sqDir[][]: Array listing the direction between any two squares. // For example, sqDir[A1][B2] == UP_RIGHT, and sqDir[A1][C2] == NULL_DIR. // It is initialised with the function scid_Init() in misc.cpp extern directionT sqDir[66][66]; // sqMove[66][11]: a table of the square resulting from a move in a // certain direction from a square. // For example, sqMove[A1][UP] == A2; sqMove[A1][DOWN] == NULL_SQUARE. #include "sqmove.h" // square_Move(): Return the new square resulting from moving in // direction d from x. inline squareT square_Move(squareT sq, directionT dir) { return sqMove[sq][dir]; } // square_Last(): // Return the last square reached by moving as far as possible in // the direction d from the square sq. If sq is a valid on-board // square and d is a valid direction, the result will always be // a valid on-board square; the result will be the same as the // input square if moving in the specified direction would end // up off the board. inline squareT square_Last (squareT sq, directionT dir) { return sqLast[sq][dir]; } // The starting Board // const boardT START_BOARD = { WR, WN, WB, WQ, WK, WB, WN, WR, // A1--H1 WP, WP, WP, WP, WP, WP, WP, WP, // A2--H2 EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, BP, BP, BP, BP, BP, BP, BP, BP, BR, BN, BB, BQ, BK, BB, BN, BR, EMPTY, // COLOR_SQUARE END_OF_BOARD // NULL_SQUARE }; // Square colors for the standard chess board: // const colorT BOARD_SQUARECOLOR[66] = { BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, // a1-h1 WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, // a2-h2 BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, // a3-h3 WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, // a4-h4 BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, // a5-h5 WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, // a6-h6 BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, // a7-h7 WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, // a8-h8 NOCOLOR, NOCOLOR // Color square and Null square }; inline int board_Compare (const pieceT * b1, const pieceT * b2) { for (uint i=0; i < 64; i++) { if (*b1 < *b2) { return -1; } if (*b1 > *b2) { return 1; } b1++; b2++; } return 0; } // square_Adjacent: returns 1 if the two squares are adjacent. Note that // diagonal adjacency is included: a1 and b2 are adjacent. // Also note that a square is adjacent to itself. inline bool square_Adjacent (squareT from, squareT to) { ASSERT (from <= H8 && to <= H8); rankT fromRank = square_Rank(from); rankT toRank = square_Rank(to); int rdist = (int)fromRank - (int)toRank; if (rdist < -1 || rdist > 1) { return false; } fyleT fromFyle = square_Fyle(from); fyleT toFyle = square_Fyle(to); int fdist = (int)fromFyle - (int)toFyle; if (fdist < -1 || fdist > 1) { return false; } return true; } // Random values: // To ensure good bit distributions, we take three random values // and mix the bits around. inline void srandom32(uint seed) { #ifdef WINCE srand (seed); #else #ifdef WIN32 srand (seed); #else srandom (seed); #endif #endif } inline uint random32() { #if defined (WINCE) || defined (POCKET) return rand() ^ (rand() << 16) ^ (rand() >> 16); #else #ifdef WIN32 return rand() ^ (rand() << 16) ^ (rand() >> 16); #else return random() ^ (random() << 16) ^ (random() >> 16); #endif #endif } #endif // #ifdef SCID_COMMON_H ////////////////////////////////////////////////////////////////////// // EOF: common.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/recog.cpp0000644000175000017500000013442011727223077016034 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: recog.cpp // Endgame knowledge recognition methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2002-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "engine.h" #include "recog.h" // The Recognizer class provides score bound information for chess // endgames. static const int DRAW = recogValue (SCORE_EXACT, 0); static const int UNKNOWN = recogValue (SCORE_NONE, 0); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::Recognize // Checks the current position for a recognized endgame. // Returns a recognition value, which contains a regular score // for the position and a score flag indicating if the score // is exact, an upper bound, a lower bound, or useless. int Recognizer::Recognize (Position * pos) { uint npieces = pos->TotalMaterial(); byte * material = pos->GetMaterial(); if (npieces > 6) { return UNKNOWN; } // TODO: Speed up this code which selects the appropriate recognizer. // TODO: We should maintain a material signature (or hash code) in // TODO: the position and then we could use a small lookup table here // TODO: find the appropriate recognizer quickly. if (npieces == 3) { if (material[WB] == 1 || material[BB] == 1) { return DRAW; } if (material[WN] == 1 || material[BN] == 1) { return DRAW; } if (material[WP] == 1 || material[BP] == 1) { return KPK(pos); } return UNKNOWN; } if (npieces == 5) { // KRP-KR: if (material[WR] == 1 && material[WP] == 1 && material[BR] == 1) { return KRPKR(pos); } if (material[BR] == 1 && material[BP] == 1 && material[WR] == 1) { return KRPKR(pos); } // Bishop and 2 pawns on same rook file with bishop of wrong color: if (material[WB] == 1 && material[WP] == 2) { return KBPK(pos); } if (material[BB] == 1 && material[BP] == 2) { return KBPK(pos); } return UNKNOWN; } if (npieces == 6) { // Bishop and 3 pawns on same rook file with bishop of wrong color: if (material[WB] == 1 && material[WP] == 3) { return KBPK(pos); } if (material[BB] == 1 && material[BP] == 3) { return KBPK(pos); } return UNKNOWN; } if (npieces <= 2) { return DRAW; } // Lone kings. // If we get here, there are four pieces (including kings and pawns) ASSERT (npieces == 4); // Positions with pawns: if (material[WP] == 1) { if (material[BQ] == 1) { return KQKP(pos); } if (material[BR] == 1) { return KRKP(pos); } if (material[BB] == 1 || material[BN] == 1) { return KMKP(pos); } if (material[WB] == 1) { return KBPK(pos); } return UNKNOWN; } if (material[BP] == 1) { if (material[WQ] == 1) { return KQKP(pos); } if (material[WR] == 1) { return KRKP(pos); } if (material[WB] == 1 || material[WN] == 1) { return KMKP(pos); } if (material[BB] == 1) { return KBPK(pos); } return UNKNOWN; } if (material[WB] == 2 || material[BB] == 2) { return KBBK(pos); } if (material[WB] == 1 && material[WN] == 1) { return KBNK(pos); } if (material[BB] == 1 && material[BN] == 1) { return KBNK(pos); } if (material[WR] == 1 && material[BB] == 1) { return KRKB(pos); } if (material[BR] == 1 && material[WB] == 1) { return KRKB(pos); } if (material[WR] == 1 && material[BN] == 1) { return KRKN(pos); } if (material[BR] == 1 && material[WN] == 1) { return KRKN(pos); } // KBKB, KBKN, KNKN and KNNK are all draws, but may have a // trivial mate-in-one if the non-side-to-move king is in a corner: if (material[WN] == 2 || material[BN] == 2 || (material[WB] == 1 && material[BB] == 1) || (material[WB] == 1 && material[BN] == 1) || (material[WN] == 1 && material[BB] == 1) || (material[WN] == 1 && material[BN] == 1)) { squareT wk = pos->GetKingSquare(WHITE); squareT bk = pos->GetKingSquare(BLACK); colorT stm = pos->GetToMove(); if (stm == WHITE && square_IsCornerSquare(bk)) { return UNKNOWN; } if (stm == BLACK && square_IsCornerSquare(wk)) { return UNKNOWN; } return DRAW; } return UNKNOWN; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KPK // Returns a recognition score for King and one Pawn vs King. int Recognizer::KPK (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk, wp; colorT stm = pos->GetToMove(); // Find piece squares with White having the pawn: if (material[WP] == 1) { wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wp = sqlist[1]; } else { ASSERT (material[BP] == 1); wk = square_FlipRank(pos->GetKingSquare(BLACK)); bk = square_FlipRank(pos->GetKingSquare(WHITE)); squareT * sqlist = pos->GetList(BLACK); wp = square_FlipRank(sqlist[1]); stm = color_Flip(stm); } // Find pawn, king and enemy king rank and file values: rankT wpRank = square_Rank(wp); fyleT wpFyle = square_Fyle(wp); rankT wkRank = square_Rank(wk); rankT wkFyle = square_Fyle(wk); rankT bkRank = square_Rank(bk); rankT bkFyle = square_Fyle(bk); // Find value to use if it is a win: int winScore = 500 + 5 * wpRank; int winValue = recogValue (SCORE_LOWER, winScore); int lossValue = recogValue (SCORE_UPPER, -winScore); // If the enemy king is behind or equal to the pawn rank: win or unknown if (bkRank <= wpRank) { if ((stm == WHITE && wpRank > bkRank) || (stm == BLACK && wpRank > bkRank + 1)) { // Runaway pawn wins: return (stm == WHITE) ? winValue : lossValue; } // Cannot easily determine the result of this position: return UNKNOWN; } // Black king is clearly the closest king to the pawn: draw uint wdist = square_Distance (wk, wp); uint bdist = square_Distance (bk, wp); if (stm == WHITE) { bdist++; } // TODO: check if the "+ 2" below can safely be "+ 1". if (bdist + 2 < wdist) { return DRAW; } // Black king in front of a rook pawn: safe draw. if ((wpFyle == A_FYLE || wpFyle == H_FYLE) && wpFyle == bkFyle) { return DRAW; } // King the two squares in front of any pawn before the 6th rank: draw if (wpRank < RANK_6 && wpFyle == bkFyle && (wpRank + 1 == bkRank || wpRank + 2 == bkRank)) { return DRAW; } // Pawn on 6th rank, enemy king blocking it on 7th: draw if (wpRank == RANK_6 && wpFyle == bkFyle && wpRank + 1 == bkRank) { return DRAW; } // White king two ranks in front of the pawn, on the same file or an // adjacent file: win if (wpRank + 2 == wkRank) { int fileDiff = (int)wpFyle - (int)wkFyle; if (fileDiff >= -1 && fileDiff < 1) { return (stm == WHITE) ? winValue : lossValue; } } // Pawn-King-space-EnemyKing formation, draw if pawn is before 5th rank // and side with the pawn is to move; otherwise a win. if (wpFyle == wkFyle && wpFyle == bkFyle && wpRank+1 == wkRank && wpRank+3 == bkRank) { if (wpRank < RANK_5 && stm == WHITE) { return DRAW; } return (stm == WHITE) ? winValue : lossValue; } // No key KPK position was found: return UNKNOWN; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KBBK // Returns a recognition score for King and two Bishops vs King. int Recognizer::KBBK (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk, wb1, wb2; colorT stm = pos->GetToMove(); // Set up piece squares so that White has the bishops: if (material[WB] == 2) { wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wb1 = sqlist[1]; wb2 = sqlist[2]; } else { ASSERT (material[BB] == 2); wk = square_FlipRank(pos->GetKingSquare(BLACK)); bk = square_FlipRank(pos->GetKingSquare(WHITE)); squareT * sqlist = pos->GetList(BLACK); wb1 = square_FlipRank(sqlist[1]); wb2 = square_FlipRank(sqlist[2]); stm = color_Flip(stm); } // If the bishops are of the same square color, it is a draw: if (square_Color(wb1) == square_Color(wb2)) { return DRAW; } // If the lone king is to move and is next to a bishop, or on the // edge of the board with the enemy king nearby, it may be a draw // by capturing a bishop or by stalemate: if (stm == BLACK) { if (square_Adjacent (bk, wb1)) { return UNKNOWN; } if (square_Adjacent (bk, wb2)) { return UNKNOWN; } if (square_IsEdgeSquare(bk) && square_Distance(wk, bk) == 2) { return UNKNOWN; } } // Compute the lone king distances used for scoring: int bkCorner = square_Distance (bk, square_NearestCorner (bk)); int kingDist = square_Distance (bk, wk); // Return a suitable winning score: int score = 900 + (25 * bkCorner) - (10 * kingDist); int winValue = recogValue (SCORE_LOWER, score); int lossValue = recogValue (SCORE_UPPER, -score); return (stm == WHITE) ? winValue : lossValue; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KBNK // Returns a recognition score for King, Bishop and Knight vs King. int Recognizer::KBNK (Position * pos) { byte * material = pos->GetMaterial(); pieceT * board = pos->GetBoard(); squareT wk, bk, wb, wn; colorT stm = pos->GetToMove(); // Set up piece squares so that White has the bishop and knight: if (material[WB] == 1) { wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wb = sqlist[1]; wn = sqlist[2]; if (board[wb] != WB) { squareT temp = wb; wb = wn; wn = temp; } } else { ASSERT (material[BB] == 1 && material[BN] == 1); wk = square_FlipRank(pos->GetKingSquare(BLACK)); bk = square_FlipRank(pos->GetKingSquare(WHITE)); squareT * sqlist = pos->GetList(BLACK); wb = sqlist[1]; wn = sqlist[2]; if (board[wb] != BB) { squareT temp = wb; wb = wn; wn = temp; } wb = square_FlipRank(wb); wn = square_FlipRank(wn); stm = color_Flip(stm); } // If the lone king attacks a piece, the result is unclear: if (square_Adjacent (wb, bk) || square_Adjacent (wn, bk)) { return UNKNOWN; } // If the lone king is to move and possible stalemate, unclear result: if (stm == BLACK && square_IsEdgeSquare(bk) && square_Distance (wk, bk) == 2) { return UNKNOWN; } // Find lone king distance from the appropriate corner squareT corner1 = A1; squareT corner2 = H8; if (square_Color(wb) == WHITE) { corner1 = H1; corner2 = A8; } int cornerDist = square_Distance (bk, corner1); int cornerDist2 = square_Distance (bk, corner2); if (cornerDist2 < cornerDist) { cornerDist = cornerDist2; } int kingDist = square_Distance (wk, bk); // Return an appropriate winning or losing score: int winScore = 700 - 25 * cornerDist - 10 * kingDist; int winValue = recogValue (SCORE_LOWER, winScore); int lossValue = recogValue (SCORE_UPPER, -winScore); return (stm == WHITE) ? winValue : lossValue; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KBPK // Returns a recognition score for King, Bishop and Pawn(s) vs King. // Recognizes draws with wrong-color bishop for rook pawn(s). int Recognizer::KBPK (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk; fyleT wrongFile = A_FYLE; // Wrong-color bishop rook-pawn file. // Set up piece squares so that White has the bishop and pawn(s), // and make sure all pawns are on the wrong rook-pawn file: if (material[WB] == 1) { wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); if (pos->SquareColorCount(WB,WHITE) == 1) { wrongFile = H_FYLE; } if (pos->FyleCount(WP, wrongFile) != material[WP]) { return UNKNOWN; } } else { ASSERT (material[BB] == 1); wk = square_FlipRank(pos->GetKingSquare(BLACK)); bk = square_FlipRank(pos->GetKingSquare(WHITE)); if (pos->SquareColorCount(BB,BLACK) == 1) { wrongFile = H_FYLE; } if (pos->FyleCount(BP, wrongFile) != material[BP]) { return UNKNOWN; } } // OK, we have it set up so white has the bishop and pawns, and we // know all pawns are on the wrong rook-pawn file. So recognise a // draw if the black king controls the queening square: squareT promoSq = square_Make (wrongFile, RANK_8); if (bk == promoSq || square_Adjacent (bk, promoSq)) { return DRAW; } // The black king does not control the queening square, so no draw yet: return UNKNOWN; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KRKB // Returns a recognition score for King and Rook vs King and Bishop. // Contains simple rules covering many drawn positions, which were // checked using tablebases. int Recognizer::KRKB (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk, wr, bb; colorT stm = pos->GetToMove(); // Find piece squares with White having the rook: wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wr = sqlist[1]; sqlist = pos->GetList(BLACK); bb = sqlist[1]; if (material[WB] == 1) { squareT t = wk; wk = square_FlipRank(bk); bk = square_FlipRank(t); t = wr; wr = square_FlipRank(bb); bb = square_FlipRank(t); stm = color_Flip(stm); } // Flip board so the black king is in the 10-square a1-d1-d4 triangle: if (square_Rank(bk) >= RANK_5) { wk = square_FlipRank(wk); wr = square_FlipRank(wr); bk = square_FlipRank(bk); bb = square_FlipRank(bb); } if (square_Fyle(bk) >= E_FYLE) { wk = square_FlipFyle(wk); wr = square_FlipFyle(wr); bk = square_FlipFyle(bk); bb = square_FlipFyle(bb); } if (bk == A2 || bk == A3 || bk == A4 || bk == B3 || bk == B4 || bk == C4) { wk = square_FlipDiag(wk); wr = square_FlipDiag(wr); bk = square_FlipDiag(bk); bb = square_FlipDiag(bb); } int kingsDist = square_Distance(wk, bk); if (stm == WHITE) { // Black king on c2/c3/d3/d4, black bishop adjacent, // white king more than 2 squares away: draw. if (kingsDist > 2 && square_Adjacent(bk,bb) && (bk == C2 || bk == C3 || bk == D3 || bk == D4)) { return DRAW; } } else { // Black king anywhere but a1 or b1, black bishop adjacent, // white king more than 2 squares away: draw. if (kingsDist > 2 && square_Adjacent(bk,bb) && bk != A1 && bk != B1) { return DRAW; } // Black king not on edge or b2, not sharing a rank or file with // the white rook; white king more than 2 squares away: draw. if (kingsDist > 2 && !square_IsEdgeSquare(bk) && bk != B2 && square_Rank(bk) != square_Rank(wr) && square_Fyle(bk) != square_Fyle(wr)) { return DRAW; } } return UNKNOWN; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KRKN // Returns a recognition score for King and Rook vs King and Knight. // Contains simple rules covering many drawn positions, which were // checked using tablebases. int Recognizer::KRKN (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk, wr, bn; colorT stm = pos->GetToMove(); // Find piece squares with White having the rook: wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wr = sqlist[1]; sqlist = pos->GetList(BLACK); bn = sqlist[1]; if (material[WN] == 1) { squareT t = wk; wk = square_FlipRank(bk); bk = square_FlipRank(t); t = wr; wr = square_FlipRank(bn); bn = square_FlipRank(t); stm = color_Flip(stm); } // Flip board so the black king is in the 10-square a1-d1-d4 triangle: if (square_Rank(bk) >= RANK_5) { wk = square_FlipRank(wk); wr = square_FlipRank(wr); bk = square_FlipRank(bk); bn = square_FlipRank(bn); } if (square_Fyle(bk) >= E_FYLE) { wk = square_FlipFyle(wk); wr = square_FlipFyle(wr); bk = square_FlipFyle(bk); bn = square_FlipFyle(bn); } if (bk == A2 || bk == A3 || bk == A4 || bk == B3 || bk == B4 || bk == C4) { wk = square_FlipDiag(wk); wr = square_FlipDiag(wr); bk = square_FlipDiag(bk); bn = square_FlipDiag(bn); } int kingsDist = square_Distance(wk, bk); if (stm == WHITE) { // Black king not on edge or b2, adjacent to black knight, // not sharing a rank or file with the white rook; white king // more than 2 squares away: draw. if (kingsDist > 2 && !square_IsEdgeSquare(bk) && bk != B2 && square_Adjacent (bk, bn) && square_Rank(bk) != square_Rank(wr) && square_Fyle(bk) != square_Fyle(wr)) { return DRAW; } } else { // Black king anywhere but a1 or b1, adjacent to the knight, // white king more than 2 squares away: draw. if (bk != A1 && bk != B1 && kingsDist > 2 && square_Adjacent (bk, bn)) { return DRAW; } // Black king not on edge or b2, adjacent to black knight, // not sharing a rank/file with the white rook: draw. if (!square_IsEdgeSquare(bk) && bk != B2 && square_Adjacent (bk, bn) && square_Rank(bk) != square_Rank(wr) && square_Fyle(bk) != square_Fyle(wr)) { return DRAW; } // Black king anywhere but a1/b1/c1/b2, adjacent to the black // knight, not sharing a rank/file with the rook; white king // not adjacent to the knight: draw. if (bk != A1 && bk != B1 && bk != C1 && bk != B2 && !square_Adjacent(wk,bn) && square_Adjacent(bk,bn) && square_Rank(bk) != square_Rank(wr) && square_Fyle(bk) != square_Fyle(wr)) { return DRAW; } } return UNKNOWN; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KMKP // Returns a recognition score for King and Minor Piece vs King and Pawn. int Recognizer::KMKP (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk, wm, bp; colorT stm = pos->GetToMove(); // Find piece squares with White having the minor piece: wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wm = sqlist[1]; sqlist = pos->GetList(BLACK); bp = sqlist[1]; if (material[WP] == 1) { squareT t = wk; wk = square_FlipRank(bk); bk = square_FlipRank(t); t = wm; wm = square_FlipRank(bp); bp = square_FlipRank(t); stm = color_Flip(stm); } // Black (the side with the pawn) can only lose to trivial mates // in a corner trapped by the pawn: if (stm == WHITE && square_IsCornerSquare(bk) && square_Adjacent(bk, bp) && square_Distance(bk, wk) == 2) { return UNKNOWN; } // Black has at least a draw: return recogValue ((stm == BLACK) ? SCORE_LOWER : SCORE_UPPER, 0); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KQKP // Returns a recognition score for King and Queen vs King and Pawn. // Contains rules for many draws with Queen vs a2 or c2 pawn, // checked using tablebases. int Recognizer::KQKP (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk, wq, bp; colorT stm = pos->GetToMove(); // Find piece squares with White having the queen: wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wq = sqlist[1]; sqlist = pos->GetList(BLACK); bp = sqlist[1]; if (material[WQ] != 1) { squareT t = wk; wk = square_FlipRank(bk); bk = square_FlipRank(t); t = wq; wq = square_FlipRank(bp); bp = square_FlipRank(t); stm = color_Flip(stm); } // There are only recognizable draws with a pawn on its 7th rank, // defended by its king: if (square_Rank(bp) != RANK_2 || ! square_Adjacent (bk, bp)) { return UNKNOWN; } // Make sure the pawn is on the queenside: if (square_Fyle(bp) >= E_FYLE) { wk = square_FlipFyle(wk); wq = square_FlipFyle(wq); bk = square_FlipFyle(bk); bp = square_FlipFyle(bp); } // Lists of squares for each (black king, black pawn) pair listing // the white king squares for which white to move only draws // regardless of where the white queen is: static const squareT drawSquares_None [] = { NULL_SQUARE }; static const squareT drawSquares_BPa2_BKb1 [] = { G1,H1,F2,G2,H2,G3,H3,F4,G4,H4,E5,F5,G5,H5, A6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7, A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa2_BKb2 [] = { F1,G1,H1,G2,H2,F3,G3,H3,F4,G4,H4,F5,G5,H5, A6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7, A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc2_BKc1 [] = { H6,A7,B7,C7,D7,E7,F7,G7,H7, A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc2_BKd1 [] = { F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7, A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc2_BKd2 [] = { F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7, A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; const squareT * drawSquares = drawSquares_None; if (bp == A2) { if (bk == B1) { drawSquares = drawSquares_BPa2_BKb1; } if (bk == B2) { drawSquares = drawSquares_BPa2_BKb2; } } else if (bp == C2) { if (bk == C1) { drawSquares = drawSquares_BPc2_BKc1; } if (bk == D1) { drawSquares = drawSquares_BPc2_BKd1; } if (bk == D2) { drawSquares = drawSquares_BPc2_BKd2; } } // Scan the list of drawn squares for the white king square: while (*drawSquares != NULL_SQUARE) { if (wk == *drawSquares) { return DRAW; } drawSquares++; } return UNKNOWN; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KRKP // Returns a recognition score for King and Rook vs King and Pawn. // Contains rules for many draws, checked using tablebases. int Recognizer::KRKP (Position * pos) { byte * material = pos->GetMaterial(); squareT wk, bk, wr, bp; colorT stm = pos->GetToMove(); // Find piece squares with White having the rook: wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wr = sqlist[1]; sqlist = pos->GetList(BLACK); bp = sqlist[1]; if (material[WR] != 1) { squareT t = wk; wk = square_FlipRank(bk); bk = square_FlipRank(t); t = wr; wr = square_FlipRank(bp); bp = square_FlipRank(t); stm = color_Flip(stm); } // There are only recognized draws when the pawn is defended by its king: if (! square_Adjacent (bk, bp)) { return UNKNOWN; } // Make sure the pawn is on the queenside: if (square_Fyle(bp) >= E_FYLE) { wk = square_FlipFyle(wk); wr = square_FlipFyle(wr); bk = square_FlipFyle(bk); bp = square_FlipFyle(bp); } // Lists of squares for each (black king, black pawn) pair listing // the white king squares for which white to move only draws // regardless of where the white rook is: static const squareT drawSquares_None [] = { NULL_SQUARE }; static const squareT drawSquares_BPa2_BKb2 [] = { D1,D2,D3,C4, NULL_SQUARE }; static const squareT drawSquares_BPa2_BKb3 [] = { E1,F1,G1,H1,D4,E4,F4,G4,H4,A5,B5,C5,D5,E5,F5,G5,H5,A6,B6,C6, D6,E6,F6,G6,H6,A7,B7, NULL_SQUARE }; static const squareT drawSquares_BPa3_BKb2 [] = { E1,F1,G1,H1,E2,F2,G2,H2,D3,E3,F3,G3,H3,D4,E4,F4,G4,H4,D5,E5, F5,G5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8, B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa3_BKb3 [] = { F1,G1,H1,F2,G2,H2,F3,G3,H3,D4,E4,F4,G4,H4,D5,E5,F5,G5,H5,A6, B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8, F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa3_BKb4 [] = { G1,H1,G2,H2,G3,H3,G4,H4,D5,E5,F5,G5,H5,A6,B6,C6,D6,E6,F6,G6, H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa4_BKa3 [] = { H1,H2,H3,H4,H5,H6,H7,H8, NULL_SQUARE }; static const squareT drawSquares_BPa4_BKa5 [] = { A7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa4_BKb3 [] = { G1,H1,G2,H2,G3,H3,G4,H4,E5,F5,G5,H5,E6,F6,G6,H6,A7,B7,C7,D7, E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa4_BKb4 [] = { H1,H2,H3,H4,H5,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8, C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa4_BKb5 [] = { A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa5_BKb4 [] = { E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPa5_BKb5 [] = { A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb2_BKa2 [] = { E1,F1,G1,H1,E2,F2,G2,H2,E3,F3,G3,H3,D4,E4,F4,G4,H4,B5,C5,D5, E5,F5,G5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7, A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb2_BKa3 [] = { F2,G2,H2,F3,G3,H3,F4,G4,H4,A5,E5,G5,H5,A6,B6,C6,D6,E6,F6,H6, A7,B7,C7,D7,E7,F7,G7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb2_BKb3 [] = { F2,G2,H2,F3,G3,H3,F4,G4,H4,A5,B5,C5,D5,E5,G5,H5,A6,B6,C6,D6, E6,F6,H6,A7,B7,C7,D7,E7,F7,G7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb2_BKc1 [] = { F1,G1,H1,F2,G2,H2,E3,F3,G3,H3,A4,D4,E4,F4,G4,H4,A5,C5,D5,E5, F5,G5,H5,A6,C6,D6,E6,F6,G6,H6,A7,C7,D7,E7,F7,G7,H7,A8,C8,D8, E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb2_BKc2 [] = { E1,E2,E3,C4,D4, NULL_SQUARE }; static const squareT drawSquares_BPb2_BKc3 [] = { E3,A5,B5,C5,D5,E5,A6,B6,C6,D6,A7,B7,C7,A8,B8,C8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKa2 [] = { F1,G1,H1,F2,G2,H2,F3,G3,H3,F4,G4,H4,E5,F5,G5,H5,B6,C6,D6,E6, F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKa3 [] = { G1,H1,G2,H2,G3,H3,G4,H4,G5,H5,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7, H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKa4 [] = { H1,H2,H3,H4,H5,H6,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKb2 [] = { G1,H1,G2,H2,G3,H3,G4,H4,F5,G5,H5,F6,G6,H6,A7,B7,C7,D7,E7,F7, G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKb4 [] = { G1,H1,G2,H2,G3,H3,G4,H4,F5,G5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7, B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKc2 [] = { F1,G1,H1,G2,H2,E3,F3,G3,H3,E4,F4,G4,H4,A5,B5,D5,E5,F5,G5,H5, A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8, E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKc3 [] = { G1,H1,G2,H2,G3,H3,E4,F4,G4,H4,C5,D5,E5,F5,G5,H5,A6,B6,C6,D6, E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb3_BKc4 [] = { H1,H2,H3,H4,E5,F5,G5,H5,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7, G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb4_BKa3 [] = { H1,H2,H3,H4,H5,H6,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb4_BKa4 [] = { G7,H7,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb4_BKa5 [] = { H8, NULL_SQUARE }; static const squareT drawSquares_BPb4_BKb3 [] = { H6,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb4_BKc3 [] = { H1,H2,H3,H4,E5,F5,G5,H5,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7, H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb4_BKc4 [] = { D6,E6,F6,G6,H6,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb4_BKc5 [] = { E7,F7,G7,H7,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb5_BKc4 [] = { E7,F7,G7,H7,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPb5_BKc5 [] = { F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc2_BKb2 [] = { A4,B4,B5,B6,B7,B8, NULL_SQUARE }; static const squareT drawSquares_BPc2_BKb3 [] = { A5,B5,C5,D5,A6,B6,C6,D6,B7,C7,D7,E7,B8,C8,D8,E8, NULL_SQUARE }; static const squareT drawSquares_BPc2_BKd1 [] = { G1,H1,G2,H2,F3,G3,H3,A4,B4,E4,F4,G4,H4,A5,B5,D5,E5,F5,G5,H5, A6,B6,D6,E6,F6,G6,H6,A7,B7,D7,E7,F7,G7,H7,A8,B8,D8,E8,F8,G8, H8, NULL_SQUARE }; static const squareT drawSquares_BPc2_BKd3 [] = { F3,B5,C5,D5,E5,F5,A6,B6,C6,D6,E6,A7,B7,C7,D7,A8,B8,C8,D8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKb2 [] = { G1,H1,G2,H2,G3,H3,G4,H4,A5,C5,D5,E5,F5,G5,H5,A6,B6,C6,D6,E6, F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKb3 [] = { H1,H2,H3,H4,A5,B5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7, F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKb4 [] = { A6,B6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKc2 [] = { H1,H2,H3,H4,G5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7, G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKc4 [] = { H1,H2,H3,H4,G5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7, G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKd2 [] = { G1,H1,H2,F3,G3,H3,F4,G4,H4,A5,B5,C5,E5,F5,G5,H5,A6,B6,C6,D6, E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKd3 [] = { H1,H2,H3,F4,G4,H4,D5,E5,F5,G5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7, B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc3_BKd4 [] = { F5,G5,H5,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8, E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc4_BKb3 [] = { A6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc4_BKb4 [] = { A6,A7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc4_BKc3 [] = { F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc4_BKd3 [] = { F5,G5,H5,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8, F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc4_BKd4 [] = { E6,F6,G6,H6,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPc4_BKd5 [] = { F7,G7,H7,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd2_BKc1 [] = { G1,H1,G2,H2,A3,G3,H3,A4,B4,E4,F4,G4,H4,A5,B5,E5,F5,G5,H5,A6, B6,E6,F6,G6,H6,A7,B7,E7,F7,G7,H7,A8,B8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd2_BKc3 [] = { A3,A5,B5,C5,D5,E5,B6,C6,D6,E6,C7,D7,E7,F7,C8,D8,E8,F8, NULL_SQUARE }; static const squareT drawSquares_BPd2_BKd1 [] = { H1,H2,H3,A4,G4,H4,A5,B5,C5,D5,E5,F5,G5,H5,A6,B6,C6,D6,E6,F6, G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd2_BKd3 [] = { H2,H3,H4,A5,B5,C5,D5,E5,F5,G5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7, C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd2_BKe1 [] = { A1,H1,A2,H2,A3,G3,H3,A4,B4,C4,F4,G4,H4,A5,B5,C5,E5,F5,G5,H5, A6,B6,C6,E6,F6,G6,H6,A7,B7,C7,E7,F7,G7,H7,A8,B8,C8,E8,F8,G8, H8, NULL_SQUARE }; static const squareT drawSquares_BPd2_BKe3 [] = { G3,C5,D5,E5,F5,G5,C6,D6,E6,F6,B7,C7,D7,E7,B8,C8,D8,E8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKc2 [] = { H1,H2,A3,H3,A4,H4,A5,B5,D5,E5,F5,G5,H5,A6,B6,C6,D6,E6,F6,G6, H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKc3 [] = { A4,A5,B5,C5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7, A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKc4 [] = { A5,A6,B6,C6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKd2 [] = { H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8, D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKd4 [] = { H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8, D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKe2 [] = { H1,H2,G3,H3,G4,H4,A5,B5,C5,D5,F5,G5,H5,A6,B6,C6,D6,E6,F6,G6, H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKe3 [] = { G4,H4,E5,F5,G5,H5,A6,B6,C6,D6,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7, G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd3_BKe4 [] = { G5,H5,E6,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8, G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKc3 [] = { A5,A6,B6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKc4 [] = { A6,B6,A7,B7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKc5 [] = { A7,A8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKd3 [] = { A7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKd5 [] = { A8,B8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKe3 [] = { G5,H5,F6,G6,H6,A7,B7,C7,D7,E7,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8, H8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKe4 [] = { F6,G6,H6,F7,G7,H7,A8,B8,C8,D8,E8,F8,G8,H8, NULL_SQUARE }; static const squareT drawSquares_BPd4_BKe5 [] = { G7,H7,G8,H8, NULL_SQUARE }; const squareT * drawSquares = drawSquares_None; if (bp == A2) { if (bk == B2) { drawSquares = drawSquares_BPa2_BKb2; } else if (bk == B3) { drawSquares = drawSquares_BPa2_BKb3; } } else if (bp == A3) { if (bk == B2) { drawSquares = drawSquares_BPa3_BKb2; } else if (bk == B3) { drawSquares = drawSquares_BPa3_BKb3; } else if (bk == B4) { drawSquares = drawSquares_BPa3_BKb4; } } else if (bp == A4) { if (bk == A3) { drawSquares = drawSquares_BPa4_BKa3; } else if (bk == A5) { drawSquares = drawSquares_BPa4_BKa5; } else if (bk == B3) { drawSquares = drawSquares_BPa4_BKb3; } else if (bk == B4) { drawSquares = drawSquares_BPa4_BKb4; } else if (bk == B5) { drawSquares = drawSquares_BPa4_BKb5; } } else if (bp == A5) { if (bk == B4) { drawSquares = drawSquares_BPa5_BKb4; } else if (bk == B5) { drawSquares = drawSquares_BPa5_BKb5; } } else if (bp == B2) { if (bk == A2) { drawSquares = drawSquares_BPb2_BKa2; } else if (bk == A3) { drawSquares = drawSquares_BPb2_BKa3; } else if (bk == B3) { drawSquares = drawSquares_BPb2_BKb3; } else if (bk == C1) { drawSquares = drawSquares_BPb2_BKc1; } else if (bk == C2) { drawSquares = drawSquares_BPb2_BKc2; } else if (bk == C3) { drawSquares = drawSquares_BPb2_BKc3; } } else if (bp == B3) { if (bk == A2) { drawSquares = drawSquares_BPb3_BKa2; } else if (bk == A3) { drawSquares = drawSquares_BPb3_BKa3; } else if (bk == A4) { drawSquares = drawSquares_BPb3_BKa4; } else if (bk == B2) { drawSquares = drawSquares_BPb3_BKb2; } else if (bk == B4) { drawSquares = drawSquares_BPb3_BKb4; } else if (bk == C2) { drawSquares = drawSquares_BPb3_BKc2; } else if (bk == C3) { drawSquares = drawSquares_BPb3_BKc3; } else if (bk == C4) { drawSquares = drawSquares_BPb3_BKc4; } } else if (bp == B4) { if (bk == A3) { drawSquares = drawSquares_BPb4_BKa3; } else if (bk == A4) { drawSquares = drawSquares_BPb4_BKa4; } else if (bk == A5) { drawSquares = drawSquares_BPb4_BKa5; } else if (bk == B3) { drawSquares = drawSquares_BPb4_BKb3; } else if (bk == C3) { drawSquares = drawSquares_BPb4_BKc3; } else if (bk == C4) { drawSquares = drawSquares_BPb4_BKc4; } else if (bk == C5) { drawSquares = drawSquares_BPb4_BKc5; } } else if (bp == B5) { if (bk == C4) { drawSquares = drawSquares_BPb5_BKc4; } else if (bk == C5) { drawSquares = drawSquares_BPb5_BKc5; } } else if (bp == C2) { if (bk == B2) { drawSquares = drawSquares_BPc2_BKb2; } else if (bk == B3) { drawSquares = drawSquares_BPc2_BKb3; } else if (bk == D1) { drawSquares = drawSquares_BPc2_BKd1; } else if (bk == D3) { drawSquares = drawSquares_BPc2_BKd3; } } else if (bp == C3) { if (bk == B2) { drawSquares = drawSquares_BPc3_BKb2; } else if (bk == B3) { drawSquares = drawSquares_BPc3_BKb3; } else if (bk == B4) { drawSquares = drawSquares_BPc3_BKb4; } else if (bk == C2) { drawSquares = drawSquares_BPc3_BKc2; } else if (bk == C4) { drawSquares = drawSquares_BPc3_BKc4; } else if (bk == D2) { drawSquares = drawSquares_BPc3_BKd2; } else if (bk == D3) { drawSquares = drawSquares_BPc3_BKd3; } else if (bk == D4) { drawSquares = drawSquares_BPc3_BKd4; } } else if (bp == C4) { if (bk == B3) { drawSquares = drawSquares_BPc4_BKb3; } else if (bk == B4) { drawSquares = drawSquares_BPc4_BKb4; } else if (bk == C3) { drawSquares = drawSquares_BPc4_BKc3; } else if (bk == D3) { drawSquares = drawSquares_BPc4_BKd3; } else if (bk == D4) { drawSquares = drawSquares_BPc4_BKd4; } else if (bk == D5) { drawSquares = drawSquares_BPc4_BKd5; } } else if (bp == D2) { if (bk == C1) { drawSquares = drawSquares_BPd2_BKc1; } else if (bk == C3) { drawSquares = drawSquares_BPd2_BKc3; } else if (bk == D1) { drawSquares = drawSquares_BPd2_BKd1; } else if (bk == D3) { drawSquares = drawSquares_BPd2_BKd3; } else if (bk == E1) { drawSquares = drawSquares_BPd2_BKe1; } else if (bk == E3) { drawSquares = drawSquares_BPd2_BKe3; } } else if (bp == D3) { if (bk == C2) { drawSquares = drawSquares_BPd3_BKc2; } else if (bk == C3) { drawSquares = drawSquares_BPd3_BKc3; } else if (bk == C4) { drawSquares = drawSquares_BPd3_BKc4; } else if (bk == D2) { drawSquares = drawSquares_BPd3_BKd2; } else if (bk == D4) { drawSquares = drawSquares_BPd3_BKd4; } else if (bk == E2) { drawSquares = drawSquares_BPd3_BKe2; } else if (bk == E3) { drawSquares = drawSquares_BPd3_BKe3; } else if (bk == E4) { drawSquares = drawSquares_BPd3_BKe4; } } else if (bp == D4) { if (bk == C3) { drawSquares = drawSquares_BPd4_BKc3; } else if (bk == C4) { drawSquares = drawSquares_BPd4_BKc4; } else if (bk == C5) { drawSquares = drawSquares_BPd4_BKc5; } else if (bk == D3) { drawSquares = drawSquares_BPd4_BKd3; } else if (bk == D5) { drawSquares = drawSquares_BPd4_BKd5; } else if (bk == E3) { drawSquares = drawSquares_BPd4_BKe3; } else if (bk == E4) { drawSquares = drawSquares_BPd4_BKe4; } else if (bk == E5) { drawSquares = drawSquares_BPd4_BKe5; } } // Scan the list of drawn squares for the white king square: while (*drawSquares != NULL_SQUARE) { if (wk == *drawSquares) { return DRAW; } drawSquares++; } return UNKNOWN; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Recognizer::KRPKR // Returns a recognition score for King, Rook and Pawn vs King and Rook. // Contains rules for some draws, checked using tablebases. int Recognizer::KRPKR (Position * pos) { // XXX INCOMPLETE XXX return UNKNOWN; /* byte * material = pos->GetMaterial(); pieceT * board = pos->GetBoard(); squareT wk, bk, wr, wp, br; colorT stm = pos->GetToMove(); // Set up piece squares so that White has the pawn: if (material[WP] == 1) { wk = pos->GetKingSquare(WHITE); bk = pos->GetKingSquare(BLACK); squareT * sqlist = pos->GetList(WHITE); wr = sqlist[1]; wp = sqlist[2]; if (board[wr] != WR) { squareT temp = wr; wr = wp; wp = temp; } sqlist = pos->GetList(BLACK); br = sqlist[1]; } else { wk = square_FlipRank(pos->GetKingSquare(BLACK)); bk = square_FlipRank(pos->GetKingSquare(WHITE)); squareT * sqlist = pos->GetList(BLACK); wr = sqlist[1]; wp = sqlist[2]; if (board[wr] != BR) { squareT temp = wr; wr = wp; wp = temp; } wr = square_FlipRank(wr); wp = square_FlipRank(wp); sqlist = pos->GetList(WHITE); br = square_FlipRank(sqlist[1]); stm = color_Flip(stm); } // Make sure the pawn is on the queenside: if (square_Fyle(wp) >= E_FYLE) { wk = square_FlipFyle(wk); wr = square_FlipFyle(wr); wp = square_FlipFyle(wp); bk = square_FlipFyle(bk); br = square_FlipFyle(br); } // Get ranks and files of piece squares: int wkRank = square_Rank(wk); int wkFyle = square_Fyle(wk); int wrRank = square_Rank(wr); int wrFyle = square_Fyle(wr); int wpRank = square_Rank(wp); int wpFyle = square_Fyle(wp); int bkRank = square_Rank(bk); int bkFyle = square_Fyle(bk); int brRank = square_Rank(br); int brFyle = square_Fyle(br); // No draws recognized if the black king is behind the pawn: if (bkRank < wpRank) { return UNKNOWN; } // We cannot recognize draws if the rooks share a rank or file: if (wrRank == brRank || wrFyle == brFyle) { return UNKNOWN; } // Designate side-to-move king,rook as sk and sr, enemy as ek and er squareT sk, sr, ek, er; int skRank, srRank, ekRank, erRank; int skFyle, srFyle, ekFyle, erFyle; if (stm == WHITE) { sk = wk; sr = wr; ek = bk; er = br; skRank = wkRank; skFyle = wkFyle; srRank = wrRank; srFyle = wrFyle; ekRank = bkRank; ekFyle = bkFyle; erRank = brRank; erFyle = brFyle; } else { sk = bk; sr = br; ek = wk; er = wr; skRank = bkRank; skFyle = bkFyle; srRank = brRank; srFyle = brFyle; ekRank = wkRank; ekFyle = wkFyle; erRank = wrRank; erFyle = wrFyle; } uint kingDist = square_Distance (wk, bk); // No recognition if the king and rook of the side NOT to move share // a rank or file, since there may be a pin or skewer. if (ekRank == erRank || ekFyle == erFyle) { return UNKNOWN; } // No draws if the side NOT to move king and rook nearly share a // rank or file (that is, are on adjacent ranks or files) and the // king is on an edge, or the enemy king is only 2 squares away. // This can lead to loss of a rook, e.g. WK=d1 WR=a2 and ...Rh1+ // or BK=d6 BR=h7 WK=d4 and Ra6+ wins the rook. if (square_IsEdgeSquare(ek) || kingDist == 2) { int rankDiff = (int)ekRank - (int)erRank; if (rankDiff >= -1 && rankDiff <= 1) { return UNKNOWN; } int fyleDiff = (int)ekFyle - (int)erFyle; if (fyleDiff >= -1 && fyleDiff <= 1) { return UNKNOWN; } } // No recognition if either king attacks the enemy rook: if (square_Adjacent (wk, br)) { return UNKNOWN; } if (square_Adjacent (bk, wr)) { return UNKNOWN; } // No recognition if the white pawn attacks the black rook: if (square_Move (wp, UP_LEFT) == br) { return UNKNOWN; } if (square_Move (wp, UP_RIGHT) == br) { return UNKNOWN; } // Philidor draw: // white pawn and king are on 5th rank or lower, on any file; // black king is on the pawn file and on the 7th/8th rank; // black rook is anywhere on the 6th rank. // Drawn for white or black to move. if (wpRank <= RANK_5 && wkRank <= RANK_5 && bkFyle == wpFyle && bkRank >= RANK_7 && brRank == RANK_6) { // Only exception: WK=a1, WP=b2, WR=b1; White may be checkmated. if (wk == A1 && wp == B2 && wr == B1) { return UNKNOWN; } return DRAW; } // Sixth-rank pawn draws: // white pawn on 6th rank; black king on pawn file on 7th/8th rank; // black rook anywhere on 1st rank; white king on 6th rank or less; // white rook and black king are not on same rank. if (wpRank == RANK_6 && bkFyle == wpFyle && bkRank >= RANK_7 && brRank == RANK_1 && wkRank <= RANK_6 && wrRank != bkRank) { // Black to move: draw if (stm == BLACK) { return DRAW; } // White to move: draw if the kings are > 2 squares apart, and // the white king and black rook do not share a rank or file. if (wkRank != brRank && wkFyle != brFyle && square_Distance(wk,bk) > 2) { return DRAW; } } // TODO: Common a-pawn draws. if (wpFyle == A_FYLE) { // .... } return UNKNOWN; */ } ////////////////////////////////////////////////////////////////////// // EOF: recog.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/error.h0000644000175000017500000000400211727223077015523 0ustar oliveroliver/////////////////////////////////////////////////////////////////////////// // // FILE: error.h // Error codes // // Part of: Scid (Shane's Chess Information Database) // Version: 1.6 // // Notice: Copyright (c) 1999 Shane Hudson. all rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // /////////////////////////////////////////////////////////////////////////// #ifndef SCID_ERROR_H #define SCID_ERROR_H typedef unsigned short errorT; const errorT OK = 0, // General Error: ERROR = 1, // File I/O ERROR_FileOpen = 101, ERROR_FileWrite = 102, ERROR_FileRead = 103, ERROR_FileSeek = 104, ERROR_BadMagic = 105, ERROR_FileNotOpen = 106, ERROR_FileInUse = 107, ERROR_FileMode = 108, ERROR_FileVersion = 109, ERROR_OldScidVersion = 110, // Memory Allocation, corrupt data ERROR_MallocFailed = 151, ERROR_CorruptData = 152, ERROR_Corrupt = 152, // NameBase, Index errors ERROR_NameBaseFull = 201, ERROR_Full = 201, ERROR_NameNotFound = 202, ERROR_NotFound = 202, ERROR_NameExists = 203, ERROR_Exists = 203, ERROR_NameBaseEmpty = 204, ERROR_Empty = 204, ERROR_NoMatchFound = 205, ERROR_IndexFull = 251, // Position errors ERROR_InvalidFEN = 301, ERROR_InvalidMove = 302, ERROR_PieceCount = 303, // Game Errors ERROR_Game = 400, ERROR_EndOfMoveList = 401, ERROR_StartOfMoveList = 402, ERROR_NoVariation = 403, ERROR_EmptyVariation = 404, ERROR_VariationLimit = 405, ERROR_Decode = 406, ERROR_GameFull = 407, // Scan Errors ERROR_PGNTag = 501, // Buffer errors ERROR_BufferFull = 601, ERROR_BufferRead = 602; #endif // #ifdef SCID_ERROR_H /////////////////////////////////////////////////////////////////////////// // EOF: error.h /////////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/bytebuf.h0000644000175000017500000000732511727223077016045 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: bytebuf.h // ByteBuffer class. // // Part of: Scid (Shane's Chess Information Database) // Version: 0.2 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // The ByteBuffer class is used to read and write binary buffers. // It is primarily used in Scid for storing in-memory the contents of // a game as it is represented on-disk in the gamedata file (gfile). #ifndef SCID_BYTEBUF_H #define SCID_BYTEBUF_H #include "error.h" #include "common.h" class ByteBuffer { private: //---------------------------------- // TextBuffer: Data Structures //---------------------------------- uint ReadPos; uint ByteCount; uint BufferSize; byte * Buffer; byte * Current; byte * AllocatedBuffer; byte * ExternalBuffer; byte ReadOnly; // True if Buffer set to an existing byte array. errorT Err; //---------------------------------- // TextBuffer: Public Functions //---------------------------------- public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif ByteBuffer() { Init(); } ~ByteBuffer() { #ifdef WINCE if (AllocatedBuffer) { my_Tcl_Free((char*) AllocatedBuffer); } #else if (AllocatedBuffer) { delete[] AllocatedBuffer; } #endif } void Init (); void Free (); void Empty (); void BackToStart (); errorT Status () { return Err; } void ResetStatus() { Err = OK; } void SetBufferSize (uint length); uint GetBufferSize() { return BufferSize; } uint GetByteCount() { return ByteCount; } byte * GetBuffer () { return Buffer; } void ProvideExternal (byte * data, uint length); void RemoveExternal (); byte GetByte () { ASSERT(Current != NULL); if (ReadPos >= ByteCount) { Err = ERROR_BufferRead; return 0; } byte b = *Current; Current++; ReadPos++; return b; } void PutByte (byte value) { ASSERT(Current != NULL); if (Buffer == AllocatedBuffer && ByteCount >= BufferSize) { Err = ERROR_BufferFull; return; } *Current = value; Current++; ByteCount++; } uint Get2Bytes (); void Put2Bytes (uint value); void Put3Bytes (uint value); void Put4Bytes (uint value); void Skip (uint value); void GetFixedString (char *str, uint length); void PutFixedString (const char *str, uint length); uint GetTerminatedString (char **str); void PutTerminatedString (const char *str); void CopyTo (byte * target); void CopyFrom (byte * source, uint length); void CopyFrom (byte * source, uint length, uint offset); #ifdef WINCE void DumpToFile (/*FILE * */Tcl_Channel fp); void ReadFromFile (/*FILE * */Tcl_Channel fp, uint length); #else void DumpToFile (FILE * fp); void ReadFromFile (FILE * fp, uint length); #endif }; #endif // #ifndef SCID_BYTEBUF_H ////////////////////////////////////////////////////////////////////// // EOF: bytebuf.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/pgnparse.h0000644000175000017500000001142611727223077016221 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: pgnparse.h // PgnParser class // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2001-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // // PgnParser: // This class implements a PGN-format Parser which can read PGN text // from an open file or from a zero-terminated string, and convert // it into a Scid Game object. // #ifndef SCID_PGNPARSE_H #define SCID_PGNPARSE_H #include "common.h" #include "tokens.h" #include "game.h" #include "dstring.h" #define MAX_UNGETCHARS 16 static const uint MAX_IGNORED_TAGS = 16; class PgnParser { private: MFile * InFile; const char * InBuffer; const char * InCurrent; uint LineCounter; int EndChar; uint BytesSeen; #ifndef WINCE FILE * ErrorFile; #endif DString * ErrorBuffer; uint NumErrors; enum { PARSE_Searching, PARSE_Header, PARSE_Game } ParseMode; bool StorePreGameText; bool EndOfInputWarnings; bool ResultWarnings; bool NewlinesToSpaces; // Whether to convert newlines in comments uint NumIgnoredTags; char * IgnoredTags [MAX_IGNORED_TAGS]; uint UnGetCount; int UnGetCh [MAX_UNGETCHARS]; inline int GetChar(); inline void UnGetChar (int ch); void Init(); void Reset(); void LogError (const char * errMessage, const char * text); void GetLine (char * buffer, uint bufSize); void GetComment (char * buffer, uint bufSize); void GetRestOfSuffix (char * buffer, char firstChar); void GetRestOfWord_NoDots (char * buffer); void GetRestOfWord_WithDots (char * buffer); void GetRestOfWord_Letters (char * buffer); errorT ExtractPgnTag (const char * buffer, Game * game); bool EndOfInput(); tokenT GetRestOfCastling (char * buffer); tokenT GetRestOfMove (char * buffer); tokenT GetRestOfPawnMove (char * buffer); tokenT GetGameToken (char * buffer, uint bufSize); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif // Constructors: PgnParser is initialised with a file pointer or // a pointer to a buffer, or it defaults to an empty buffer. PgnParser (void) { Init ((const char *) ""); } PgnParser (MFile * infile) { Init (infile); } PgnParser (const char * inbuffer) { Init (inbuffer); } ~PgnParser() { delete ErrorBuffer; ClearIgnoredTags(); } void Init (MFile * infile); void Init (const char * inbuffer); void Reset (MFile * infile); void Reset (const char * inbuffer); uint BytesUsed (void) { return BytesSeen; } uint ErrorCount() { return NumErrors; } const char * ErrorMessages() { return ErrorBuffer->Data(); } void ClearErrors(); #ifndef WINCE void SetErrorFile (FILE * fp) { ErrorFile = fp; } #endif void KeepPreGameText() { StorePreGameText = true; } void IgnorePreGameText() { StorePreGameText = false; } void SetPreGameText (bool b) { StorePreGameText = b; } void SetEndOfInputWarnings (bool b) { EndOfInputWarnings = b; } void SetResultWarnings (bool b) { ResultWarnings = b; } void SetNewlinesToSpaces (bool b) { NewlinesToSpaces = b; } void AddIgnoredTag (const char * tag); void ClearIgnoredTags (); bool IsIgnoredTag (const char * tag); tokenT GetNextToken (char * buffer, uint bufSize); errorT ParseGame (Game * game); errorT ParseMoves (Game * game); errorT ParseMoves (Game * game, char * buffer, uint bufSize); }; inline int PgnParser::GetChar () { int ch = 0; BytesSeen++; if (UnGetCount > 0) { UnGetCount--; ch = UnGetCh[UnGetCount]; } else if (InFile != NULL) { ch = InFile->ReadOneByte(); } else { ch = *InCurrent; if (ch != 0) { InCurrent++; } } if (ch == '\n') { LineCounter++; } return ch; } inline void PgnParser::UnGetChar (int ch) { if (UnGetCount == MAX_UNGETCHARS) { return; } UnGetCh[UnGetCount] = ch; UnGetCount++; BytesSeen--; if (ch == '\n') { LineCounter--; } } inline void PgnParser::ClearErrors (void) { ErrorBuffer->Clear(); NumErrors = 0; } #endif // idndef SCID_PGNPARSE_H ////////////////////////////////////////////////////////////////////// // EOF: pgnparse.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/mfile.cpp0000644000175000017500000002616211727223077016034 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: mfile.cpp // MFile class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 2.0 // // Notice: Copyright (c) 2000 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "common.h" #include "mfile.h" #include "misc.h" // GZ_BUFFER_SIZE: number of bytes read from a Gzip file at a time. const uint GZ_BUFFER_SIZE = 1024; void MFile::Init () { Handle = NULL; GzHandle = NULL; GzBuffer = NULL; FileMode = FMODE_Both; Type = MFILE_MEMORY; Capacity = 0; Location = 0; Data = NULL; CurrentPtr = NULL; FileBuffer = NULL; FileName = NULL; } void MFile::Extend () { ASSERT (Type == MFILE_MEMORY); // Double Capacity, starting with at least 8 Kb: uint oldCapacity = Capacity; Capacity += Capacity; if (Capacity < 8192) { Capacity = 8192; } byte * oldData = Data; #ifdef WINCE Data = (byte*)my_Tcl_Alloc(sizeof( byte [Capacity])); #else Data = new byte [Capacity]; #endif // Copy data to new array: for (uint i=0; i < oldCapacity; i++) { Data[i] = oldData[i]; } #ifdef WINCE if (oldCapacity > 0) { my_Tcl_Free((char*)oldData); } #else if (oldCapacity > 0) { delete[] oldData; } #endif CurrentPtr = &(Data[Location]); } void MFile::SetBufferSize (uint bufsize) { if (Type != MFILE_REGULAR) { return; } if (FileBuffer != NULL) { return; } #ifdef WINCE FileBuffer = my_Tcl_Alloc(sizeof( char [bufsize])); #else FileBuffer = new char [bufsize]; #endif #ifdef WINCE my_Tcl_SetChannelOption(NULL, Handle, "-buffering", "full"); char str[32]; sprintf(str, "%u", bufsize); my_Tcl_SetChannelOption(NULL, Handle, "-buffersize", (const char *) str); #else setvbuf (Handle, FileBuffer, _IOFBF, bufsize); #endif } errorT MFile::Seek (uint position) { if (Type == MFILE_MEMORY) { while (position >= Capacity) { Extend(); } CurrentPtr = &(Data[position]); Location = position; return OK; } // We do not need to seek if FileMode is not FMODE_Both and we are // already at the position: if (FileMode != FMODE_Both && Location == position) { return OK; } int result; if (Type == MFILE_GZIP) { result = gzseek (GzHandle, position, 0); GzBuffer_Avail = 0; } else { #ifdef WINCE result = my_Tcl_Seek(Handle, position, 0); } if (result == -1) { return ERROR_FileSeek; } #else result = fseek (Handle, position, 0); } if (result != 0) { return ERROR_FileSeek; } #endif Location = position; return OK; } errorT MFile::Flush () { if (Type != MFILE_REGULAR || FileMode == FMODE_ReadOnly) { return OK; } #ifdef WINCE if (my_Tcl_Flush(Handle) == TCL_OK) return OK; else return ERROR_FileWrite; #else return (fflush (Handle) == 0 ? OK : ERROR_FileWrite); #endif } errorT MFile::Open (const char * name, fileModeT fmode) { ASSERT (Handle == NULL && GzHandle == NULL); char * modeStr = NULL; switch (fmode) { #ifdef WINCE case FMODE_ReadOnly: modeStr = (char *) "r"/*"rb"*/; break; case FMODE_WriteOnly: modeStr = (char *) "w"/*"wb"*/; break; case FMODE_Both: modeStr = (char *) "r+"/*"r+b"*/; break; #else case FMODE_ReadOnly: modeStr = (char *) "rb"; break; case FMODE_WriteOnly: modeStr = (char *) "wb"; break; case FMODE_Both: modeStr = (char *) "r+b"; break; #endif default: return ERROR_FileMode; } const char * suffix = strFileSuffix (name); if (suffix != NULL && strEqual (suffix, GZIP_SUFFIX)) { // We can only open GZip files read-only for now: if (fmode != FMODE_ReadOnly) { return ERROR_FileOpen; } #ifdef WINCE GzHandle = gzopen (name, "r"); #else GzHandle = gzopen (name, "rb"); #endif if (GzHandle == NULL) { return ERROR_FileOpen; } Type = MFILE_GZIP; #ifdef WINCE GzBuffer = (byte *) my_Tcl_Alloc(sizeof(byte [GZ_BUFFER_SIZE])); #else GzBuffer = new byte [GZ_BUFFER_SIZE]; #endif GzBuffer_Current = GzBuffer; GzBuffer_Avail = 0; } else { #ifdef WINCE Handle = mySilent_Tcl_OpenFileChannel(NULL, name, modeStr, 0666);//fopen (name, modeStr); if (Handle == NULL) { return ERROR_FileOpen; } my_Tcl_SetChannelOption(NULL, Handle, "-encoding", "binary"); my_Tcl_SetChannelOption(NULL, Handle, "-translation", "binary"); #else Handle = fopen (name, modeStr); if (Handle == NULL) { return ERROR_FileOpen; } #endif Type = MFILE_REGULAR; } FileMode = fmode; FileName = strDuplicate (name); Location = 0; return OK; } errorT MFile::Create (const char * name, fileModeT fmode) { ASSERT (Handle == NULL && GzHandle == NULL); char * modeStr = NULL; switch (fmode) { #ifdef WINCE case FMODE_WriteOnly: modeStr = "w"/*"wb"*/; break; case FMODE_Both: modeStr = "w+"/*"w+b"*/; break; default: return ERROR_FileMode; } if ((Handle = my_Tcl_OpenFileChannel(NULL, name, modeStr, 0666)/*fopen (name, modeStr)*/) == NULL) { return ERROR_FileOpen; } my_Tcl_SetChannelOption(NULL, Handle, "-encoding", "binary"); my_Tcl_SetChannelOption(NULL, Handle, "-translation", "binary"); #else case FMODE_WriteOnly: modeStr = (char *) "wb"; break; case FMODE_Both: modeStr = (char *) "w+b"; break; default: return ERROR_FileMode; } if ((Handle = fopen (name, modeStr)) == NULL) { return ERROR_FileOpen; } FileMode = fmode; #endif FileName = strDuplicate (name); Location = 0; Type = MFILE_REGULAR; return OK; } errorT MFile::Close () { if (Type == MFILE_MEMORY) { #ifdef WINCE if (Data != NULL) { my_Tcl_Free( (char*) Data ); } #else if (Data != NULL) { delete[] Data; } #endif Init(); return OK; } int result; if (Type == MFILE_GZIP) { if (GzBuffer != NULL) { #ifdef WINCE my_Tcl_Free( (char *) GzBuffer ); #else delete[] GzBuffer; #endif GzBuffer = GzBuffer_Current = NULL; GzBuffer_Avail = 0; } result = gzclose (GzHandle); } else { #ifdef WINCE result = my_Tcl_Close(NULL, Handle);//fclose (Handle); #else result = fclose (Handle); #endif } if (FileBuffer != NULL) { #ifdef WINCE my_Tcl_Free( FileBuffer ); #else delete[] FileBuffer; #endif FileBuffer = NULL; } if (FileName != NULL) { #ifdef WINCE my_Tcl_Free( FileName ); #else delete[] FileName; #endif FileName = NULL; } Init(); return (result == 0 ? OK : ERROR); } errorT MFile::WriteNBytes (const char * str, uint length) { ASSERT (FileMode != FMODE_ReadOnly); errorT err = OK; // while (length-- > 0) { // err = WriteOneByte (*str); // str++; // } // return err; if (Type == MFILE_MEMORY) { while (length-- > 0) { if (Location >= Capacity) { Extend(); } *CurrentPtr++ = *str; Location++; str++; } return OK; } Location += length; if (Type == MFILE_GZIP) { err = OK; while (length-- > 0 && err == OK) { err = (gzputc(GzHandle, *str) == EOF) ? ERROR_FileWrite : OK; str++; } return err; } #ifdef WINCE return (my_Tcl_Write(Handle, (const char *)str, length) == -1 ) ? ERROR_FileWrite : OK; #else return (fwrite( str, length, 1, Handle) != 1) ? ERROR_FileWrite : OK; #endif } errorT MFile::ReadNBytes (char * str, uint length) { ASSERT (FileMode != FMODE_WriteOnly); if (Type != MFILE_REGULAR) { while (length-- > 0) { *str++ = ReadOneByte (); } } else { // Optimization: if FREAD_OPTIMIZE is set, // We read the bytes with fread instead of a getc() loop. // This makes tree/material/etc searches go faster. #ifdef WINCE Location += my_Tcl_Read (Handle, str, length); #else #define FREAD_OPTIMIZE #ifdef FREAD_OPTIMIZE Location += fread (str, 1, length, Handle); #else while (length-- > 0) { *str++ = getc(Handle); } Location++; #endif #endif } return OK; } errorT MFile::ReadLine (char * str, uint maxLength) { ASSERT (FileMode != FMODE_WriteOnly); if (Type != MFILE_REGULAR) { while (1) { if (maxLength == 0) { break; } maxLength--; char ch = ReadOneByte (); *str++ = ch; if (ch == '\n') { break; } } *str = 0; } else { #ifdef WINCE while (1) { if (maxLength == 0) { break; } maxLength--; char ch = ReadOneByte (); *str++ = ch; if (ch == '\n') { break; } } *str = 0; Location = my_Tcl_Tell(Handle); #else fgets (str, (int) maxLength, Handle); Location = ftell (Handle); #endif } return OK; } errorT MFile::ReadLine (DString * dstr) { int ch = ReadOneByte(); while (ch != '\n' && ch != EOF) { if (ch != '\r') { dstr->AddChar (ch); } ch = ReadOneByte(); } return OK; } errorT MFile::WriteTwoBytes (uint value) { ASSERT (FileMode != FMODE_ReadOnly); WriteOneByte ((value >> 8) & 255); return WriteOneByte (value & 255); } uint MFile::ReadTwoBytes () { uint result = 0; ASSERT (FileMode != FMODE_WriteOnly); result = ReadOneByte(); result <<= 8; result += ReadOneByte(); return result; } errorT MFile::WriteThreeBytes (uint value) { ASSERT (FileMode != FMODE_ReadOnly); WriteOneByte ((value >> 16) & 255); WriteOneByte ((value >> 8) & 255); return WriteOneByte (value & 255); } uint MFile::ReadThreeBytes () { uint result = 0; ASSERT (FileMode != FMODE_WriteOnly); result = ReadOneByte(); result <<= 8; result += ReadOneByte(); result <<= 8; result += ReadOneByte(); return result; } errorT MFile::WriteFourBytes (uint value) { ASSERT (FileMode != FMODE_ReadOnly); WriteOneByte ((value >> 24) & 255); WriteOneByte ((value >> 16) & 255); WriteOneByte ((value >> 8) & 255); return WriteOneByte (value & 255); } uint MFile::ReadFourBytes () { uint result = 0; ASSERT (FileMode != FMODE_WriteOnly); result = ReadOneByte(); result <<= 8; result += ReadOneByte(); result <<= 8; result += ReadOneByte(); result <<= 8; result += ReadOneByte(); return result; } int MFile::FillGzBuffer () { ASSERT (Type == MFILE_GZIP && GzBuffer != NULL && GzBuffer_Avail <= 0); int bytesread = gzread (GzHandle, GzBuffer, GZ_BUFFER_SIZE); if (bytesread <= 0) { return EOF; } GzBuffer_Avail = bytesread - 1; GzBuffer_Current = &(GzBuffer[1]); return GzBuffer[0]; } ////////////////////////////////////////////////////////////////////// // End of file: mfile.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/sqmove.h0000644000175000017500000002264111727223077015715 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: sqmove.h // Square movement lookup table // // Part of: Scid (Shane's Chess Information Database) // Version: 3.4 // // Notice: Copyright (c) 1999-2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_SQMOVE_H #define SCID_SQMOVE_H //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sqMove // Array indexed by square value and direction, giving the square // obtained by moving from the square in that direction. const squareT sqMove[66][11] = { /* UP DOWN LEFT UL DL RIGHT UR DR */ { /* A1 */ NS, A2, NS, NS, NS, NS, NS, NS, B1, B2, NS }, { /* B1 */ NS, B2, NS, NS, A1, A2, NS, NS, C1, C2, NS }, { /* C1 */ NS, C2, NS, NS, B1, B2, NS, NS, D1, D2, NS }, { /* D1 */ NS, D2, NS, NS, C1, C2, NS, NS, E1, E2, NS }, { /* E1 */ NS, E2, NS, NS, D1, D2, NS, NS, F1, F2, NS }, { /* F1 */ NS, F2, NS, NS, E1, E2, NS, NS, G1, G2, NS }, { /* G1 */ NS, G2, NS, NS, F1, F2, NS, NS, H1, H2, NS }, { /* H1 */ NS, H2, NS, NS, G1, G2, NS, NS, NS, NS, NS }, { /* A2 */ NS, A3, A1, NS, NS, NS, NS, NS, B2, B3, B1 }, { /* B2 */ NS, B3, B1, NS, A2, A3, A1, NS, C2, C3, C1 }, { /* C2 */ NS, C3, C1, NS, B2, B3, B1, NS, D2, D3, D1 }, { /* D2 */ NS, D3, D1, NS, C2, C3, C1, NS, E2, E3, E1 }, { /* E2 */ NS, E3, E1, NS, D2, D3, D1, NS, F2, F3, F1 }, { /* F2 */ NS, F3, F1, NS, E2, E3, E1, NS, G2, G3, G1 }, { /* G2 */ NS, G3, G1, NS, F2, F3, F1, NS, H2, H3, H1 }, { /* H2 */ NS, H3, H1, NS, G2, G3, G1, NS, NS, NS, NS }, { /* A3 */ NS, A4, A2, NS, NS, NS, NS, NS, B3, B4, B2 }, { /* B3 */ NS, B4, B2, NS, A3, A4, A2, NS, C3, C4, C2 }, { /* C3 */ NS, C4, C2, NS, B3, B4, B2, NS, D3, D4, D2 }, { /* D3 */ NS, D4, D2, NS, C3, C4, C2, NS, E3, E4, E2 }, { /* E3 */ NS, E4, E2, NS, D3, D4, D2, NS, F3, F4, F2 }, { /* F3 */ NS, F4, F2, NS, E3, E4, E2, NS, G3, G4, G2 }, { /* G3 */ NS, G4, G2, NS, F3, F4, F2, NS, H3, H4, H2 }, { /* H3 */ NS, H4, H2, NS, G3, G4, G2, NS, NS, NS, NS }, { /* A4 */ NS, A5, A3, NS, NS, NS, NS, NS, B4, B5, B3 }, { /* B4 */ NS, B5, B3, NS, A4, A5, A3, NS, C4, C5, C3 }, { /* C4 */ NS, C5, C3, NS, B4, B5, B3, NS, D4, D5, D3 }, { /* D4 */ NS, D5, D3, NS, C4, C5, C3, NS, E4, E5, E3 }, { /* E4 */ NS, E5, E3, NS, D4, D5, D3, NS, F4, F5, F3 }, { /* F4 */ NS, F5, F3, NS, E4, E5, E3, NS, G4, G5, G3 }, { /* G4 */ NS, G5, G3, NS, F4, F5, F3, NS, H4, H5, H3 }, { /* H4 */ NS, H5, H3, NS, G4, G5, G3, NS, NS, NS, NS }, { /* A5 */ NS, A6, A4, NS, NS, NS, NS, NS, B5, B6, B4 }, { /* B5 */ NS, B6, B4, NS, A5, A6, A4, NS, C5, C6, C4 }, { /* C5 */ NS, C6, C4, NS, B5, B6, B4, NS, D5, D6, D4 }, { /* D5 */ NS, D6, D4, NS, C5, C6, C4, NS, E5, E6, E4 }, { /* E5 */ NS, E6, E4, NS, D5, D6, D4, NS, F5, F6, F4 }, { /* F5 */ NS, F6, F4, NS, E5, E6, E4, NS, G5, G6, G4 }, { /* G5 */ NS, G6, G4, NS, F5, F6, F4, NS, H5, H6, H4 }, { /* H5 */ NS, H6, H4, NS, G5, G6, G4, NS, NS, NS, NS }, { /* A6 */ NS, A7, A5, NS, NS, NS, NS, NS, B6, B7, B5 }, { /* B6 */ NS, B7, B5, NS, A6, A7, A5, NS, C6, C7, C5 }, { /* C6 */ NS, C7, C5, NS, B6, B7, B5, NS, D6, D7, D5 }, { /* D6 */ NS, D7, D5, NS, C6, C7, C5, NS, E6, E7, E5 }, { /* E6 */ NS, E7, E5, NS, D6, D7, D5, NS, F6, F7, F5 }, { /* F6 */ NS, F7, F5, NS, E6, E7, E5, NS, G6, G7, G5 }, { /* G6 */ NS, G7, G5, NS, F6, F7, F5, NS, H6, H7, H5 }, { /* H6 */ NS, H7, H5, NS, G6, G7, G5, NS, NS, NS, NS }, { /* A7 */ NS, A8, A6, NS, NS, NS, NS, NS, B7, B8, B6 }, { /* B7 */ NS, B8, B6, NS, A7, A8, A6, NS, C7, C8, C6 }, { /* C7 */ NS, C8, C6, NS, B7, B8, B6, NS, D7, D8, D6 }, { /* D7 */ NS, D8, D6, NS, C7, C8, C6, NS, E7, E8, E6 }, { /* E7 */ NS, E8, E6, NS, D7, D8, D6, NS, F7, F8, F6 }, { /* F7 */ NS, F8, F6, NS, E7, E8, E6, NS, G7, G8, G6 }, { /* G7 */ NS, G8, G6, NS, F7, F8, F6, NS, H7, H8, H6 }, { /* H7 */ NS, H8, H6, NS, G7, G8, G6, NS, NS, NS, NS }, { /* A8 */ NS, NS, A7, NS, NS, NS, NS, NS, B8, NS, B7 }, { /* B8 */ NS, NS, B7, NS, A8, NS, A7, NS, C8, NS, C7 }, { /* C8 */ NS, NS, C7, NS, B8, NS, B7, NS, D8, NS, D7 }, { /* D8 */ NS, NS, D7, NS, C8, NS, C7, NS, E8, NS, E7 }, { /* E8 */ NS, NS, E7, NS, D8, NS, D7, NS, F8, NS, F7 }, { /* F8 */ NS, NS, F7, NS, E8, NS, E7, NS, G8, NS, G7 }, { /* G8 */ NS, NS, G7, NS, F8, NS, F7, NS, H8, NS, H7 }, { /* H8 */ NS, NS, H7, NS, G8, NS, G7, NS, NS, NS, NS }, { /* NS */ NS, NS, NS, NS, NS, NS, NS, NS, NS, NS, NS }, { /* NS */ NS, NS, NS, NS, NS, NS, NS, NS, NS, NS, NS } }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sqLast // Array indexed by square value and direction, giving the last // square reached by moving from the square in that direction. // The last square is the same as the original square if moving // in the specified direction would move off the board. const squareT sqLast[66][11] = { /* UP DOWN LEFT UL DL RIGHT UR DR */ { /* A1 */ NS, A8, A1, NS, A1, A1, A1, NS, H1, H8, A1 }, { /* B1 */ NS, B8, B1, NS, A1, A2, B1, NS, H1, H7, B1 }, { /* C1 */ NS, C8, C1, NS, A1, A3, C1, NS, H1, H6, C1 }, { /* D1 */ NS, D8, D1, NS, A1, A4, D1, NS, H1, H5, D1 }, { /* E1 */ NS, E8, E1, NS, A1, A5, E1, NS, H1, H4, E1 }, { /* F1 */ NS, F8, F1, NS, A1, A6, F1, NS, H1, H3, F1 }, { /* G1 */ NS, G8, G1, NS, A1, A7, G1, NS, H1, H2, G1 }, { /* H1 */ NS, H8, H1, NS, A1, A8, H1, NS, H1, H1, H1 }, { /* A2 */ NS, A8, A1, NS, A2, A2, A2, NS, H2, G8, B1 }, { /* B2 */ NS, B8, B1, NS, A2, A3, A1, NS, H2, H8, C1 }, { /* C2 */ NS, C8, C1, NS, A2, A4, B1, NS, H2, H7, D1 }, { /* D2 */ NS, D8, D1, NS, A2, A5, C1, NS, H2, H6, E1 }, { /* E2 */ NS, E8, E1, NS, A2, A6, D1, NS, H2, H5, F1 }, { /* F2 */ NS, F8, F1, NS, A2, A7, E1, NS, H2, H4, G1 }, { /* G2 */ NS, G8, G1, NS, A2, A8, F1, NS, H2, H3, H1 }, { /* H2 */ NS, H8, H1, NS, A2, B8, G1, NS, H2, H2, H2 }, { /* A3 */ NS, A8, A1, NS, A3, A3, A3, NS, H3, F8, C1 }, { /* B3 */ NS, B8, B1, NS, A3, A4, A2, NS, H3, G8, D1 }, { /* C3 */ NS, C8, C1, NS, A3, A5, A1, NS, H3, H8, E1 }, { /* D3 */ NS, D8, D1, NS, A3, A6, B1, NS, H3, H7, F1 }, { /* E3 */ NS, E8, E1, NS, A3, A7, C1, NS, H3, H6, G1 }, { /* F3 */ NS, F8, F1, NS, A3, A8, D1, NS, H3, H5, H1 }, { /* G3 */ NS, G8, G1, NS, A3, B8, E1, NS, H3, H4, H2 }, { /* H3 */ NS, H8, H1, NS, A3, C8, F1, NS, H3, H3, H3 }, { /* A4 */ NS, A8, A1, NS, A4, A4, A4, NS, H4, E8, D1 }, { /* B4 */ NS, B8, B1, NS, A4, A5, A3, NS, H4, F8, E1 }, { /* C4 */ NS, C8, C1, NS, A4, A6, A2, NS, H4, G8, F1 }, { /* D4 */ NS, D8, D1, NS, A4, A7, A1, NS, H4, H8, G1 }, { /* E4 */ NS, E8, E1, NS, A4, A8, B1, NS, H4, H7, H1 }, { /* F4 */ NS, F8, F1, NS, A4, B8, C1, NS, H4, H6, H2 }, { /* G4 */ NS, G8, G1, NS, A4, C8, D1, NS, H4, H5, H3 }, { /* H4 */ NS, H8, H1, NS, A4, D8, E1, NS, H4, H4, H4 }, { /* A5 */ NS, A8, A1, NS, A5, A5, A5, NS, H5, D8, E1 }, { /* B5 */ NS, B8, B1, NS, A5, A6, A4, NS, H5, E8, F1 }, { /* C5 */ NS, C8, C1, NS, A5, A7, A3, NS, H5, F8, G1 }, { /* D5 */ NS, D8, D1, NS, A5, A8, A2, NS, H5, G8, H1 }, { /* E5 */ NS, E8, E1, NS, A5, B8, A1, NS, H5, H8, H2 }, { /* F5 */ NS, F8, F1, NS, A5, C8, B1, NS, H5, H7, H3 }, { /* G5 */ NS, G8, G1, NS, A5, D8, C1, NS, H5, H6, H4 }, { /* H5 */ NS, H8, H1, NS, A5, E8, D1, NS, H5, H5, H5 }, { /* A6 */ NS, A8, A1, NS, A6, A6, A6, NS, H6, C8, F1 }, { /* B6 */ NS, B8, B1, NS, A6, A7, A5, NS, H6, D8, G1 }, { /* C6 */ NS, C8, C1, NS, A6, A8, A4, NS, H6, E8, H1 }, { /* D6 */ NS, D8, D1, NS, A6, B8, A3, NS, H6, F8, H2 }, { /* E6 */ NS, E8, E1, NS, A6, C8, A2, NS, H6, G8, H3 }, { /* F6 */ NS, F8, F1, NS, A6, D8, A1, NS, H6, H8, H4 }, { /* G6 */ NS, G8, G1, NS, A6, E8, B1, NS, H6, H7, H5 }, { /* H6 */ NS, H8, H1, NS, A6, F8, C1, NS, H6, H6, H6 }, { /* A7 */ NS, A8, A1, NS, A7, A7, A7, NS, H7, B8, G1 }, { /* B7 */ NS, B8, B1, NS, A7, A8, A6, NS, H7, C8, H1 }, { /* C7 */ NS, C8, C1, NS, A7, B8, A5, NS, H7, D8, H2 }, { /* D7 */ NS, D8, D1, NS, A7, C8, A4, NS, H7, E8, H3 }, { /* E7 */ NS, E8, E1, NS, A7, D8, A3, NS, H7, F8, H4 }, { /* F7 */ NS, F8, F1, NS, A7, E8, A2, NS, H7, G8, H5 }, { /* G7 */ NS, G8, G1, NS, A7, F8, A1, NS, H7, H8, H6 }, { /* H7 */ NS, H8, H1, NS, A7, G8, B1, NS, H7, H7, H7 }, { /* A8 */ NS, A8, A1, NS, A8, A8, A8, NS, H8, A8, H1 }, { /* B8 */ NS, B8, B1, NS, A8, B8, A7, NS, H8, B8, H2 }, { /* C8 */ NS, C8, C1, NS, A8, C8, A6, NS, H8, C8, H3 }, { /* D8 */ NS, D8, D1, NS, A8, D8, A5, NS, H8, D8, H4 }, { /* E8 */ NS, E8, E1, NS, A8, E8, A4, NS, H8, E8, H5 }, { /* F8 */ NS, F8, F1, NS, A8, F8, A3, NS, H8, F8, H6 }, { /* G8 */ NS, G8, G1, NS, A8, G8, A2, NS, H8, G8, H7 }, { /* H8 */ NS, H8, H1, NS, A8, H8, A1, NS, H8, H8, H8 }, { /* NS */ NS, NS, NS, NS, NS, NS, NS, NS, NS, NS, NS }, { /* NS */ NS, NS, NS, NS, NS, NS, NS, NS, NS, NS, NS } }; #endif ////////////////////////////////////////////////////////////////////// // EOF: sqmove.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/tree.h0000644000175000017500000001042711727223077015341 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: tree.h // Tree and Tree Cache management. // // Part of: Scid (Shane's Chess Information Database) // Version: 2.4 // // Notice: Copyright (c) 1999 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #ifndef SCID_TREE_H #define SCID_TREE_H #include "common.h" #include "filter.h" #include // // Our tree structures: // // MAX_TREE_NODES: Fixed maximum number of moves a treeT can store. // The number of played legal moves in a position rarely is over // 20, so 60 is a sane limit. // #ifdef WINCE #define MAX_TREE_NODES 20 #else #define MAX_TREE_NODES 60 #endif // treeNodeT: // Stores the move data, frequency, score, results by result type, // and eco code of a single move played from a position. // struct treeNodeT { simpleMoveT sm; char san[8]; uint freq [NUM_RESULT_TYPES]; uint total; // Total count uint score; // Score for white, in points per 1000 games, so // 55.1% would be a score of 551. ecoT ecoCode; uint eloCount; // Count of games with an Elo. uint eloSum; // Sum of Elos. uint perfCount; // Count of games with an opponent Elo. uint perfSum; // Sum of opponent Elos. unsigned long long yearCount; // Count of games with year != 0. unsigned long long yearSum; // Sum of years. }; void initTreeNode (treeNodeT * tnode); // treeT: // Stores an array of tree nodes (each has a move, its frequency, // score and ECO code) for a certain position. // struct treeT { treeNodeT node [MAX_TREE_NODES]; uint moveCount; uint totalCount; }; // cachedTreeT: // Stores a board position and its associated tree of all moves // played at that position. // struct cachedTreeT { squareT board[64]; colorT toMove; treeT tree; CompressedFilter * cfilter; }; // treeCachePolicyT: // Cache replacement policy. Smallest (the node with the lowest // observed frequency) is used for a main disk-file cache, while // Oldest is used for a backup memory-only cache. // enum treeCachePolicyT { TREECACHE_Smallest, TREECACHE_Oldest }; // A TreeCache object stores a fixed number of positions and their // tree data. The idea is that the common positions (the starting // position, the basic opening positions like 1.e4, 1.d4, etc) will // be have their tree information stored in a cache to save doing a // position search. class TreeCache { private: uint CacheSize; cachedTreeT * Cache; uint NumInUse; treeCachePolicyT Policy; uint MostRecentIndex; // Index of most recently added item. uint LowestTotal; // The lowest total of all cached trees. uint LowestTotalIndex; // Index of the tree with the lowest totalCount. // It will be the next tree evicted. void AddTree (uint index, Position * pos, treeT * tree, Filter * filter); public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif TreeCache() { Init(); } ~TreeCache() { Delete(); } void Init(); void Delete(); void SetCacheSize (uint size); void CacheResize (uint size); uint Size() { return CacheSize; } uint UsedSize() { return NumInUse; } void Clear(); void SetPolicy (treeCachePolicyT policy) { Policy = policy; } treeCachePolicyT GetPolicy() { return Policy; } cachedTreeT * Lookup (Position * pos); int LookupIndex (Position * pos); bool Add (Position * pos, treeT * tree, Filter * filter); errorT WriteFile (const char * fname); errorT ReadFile (const char * fname); }; #endif ////////////////////////////////////////////////////////////////////// // EOF: tree.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/progbar.h0000644000175000017500000000421511727223077016034 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: progbar.h // Text-based progress bar for Scid utilities // // Part of: Scid (Shane's Chess Information Database) // Version: 3.2 // // Notice: Copyright (c) 2001-2002 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include const uint PROGBAR_WIDTH = 50; class ProgBar { private: uint PercentShown; uint PercentDone; FILE * FilePtr; char ProgressChar; public: #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif ProgBar (FILE * fp) { FilePtr = fp; setbuf (FilePtr, NULL); // Make the file unbuffered. PercentDone = PercentShown = 0; ProgressChar = '.'; } ~ProgBar() {} inline void Start (void); inline void Update (uint percent); inline void Finish (void); }; inline void ProgBar::Start (void) { fputs (" [0% 10 20 30 40 50 60 70 80 90 100]\n [", FilePtr); PercentDone = PercentShown = 0; } inline void ProgBar::Update (uint percent) { // Internally, PercentDone is in range 0..50 since the progress // bar is 50 characters wide. PercentDone = percent * PROGBAR_WIDTH / 100; if (PercentDone > PROGBAR_WIDTH) { PercentDone = PROGBAR_WIDTH; } while (PercentDone > PercentShown) { putc ('.', FilePtr); PercentShown++; } } inline void ProgBar::Finish (void) { PercentDone = PROGBAR_WIDTH; while (PercentShown < PROGBAR_WIDTH) { putc (ProgressChar, FilePtr); PercentShown++; } fputs ("]\n", FilePtr); } ////////////////////////////////////////////////////////////////////// // EOF: progbar.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/gfile.cpp0000644000175000017500000002151611727223077016024 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: gfile.cpp // GFile class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 2.3 // // Notice: Copyright (c) 2001 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include #include #include "common.h" #include "error.h" #include "gfile.h" #include "misc.h" typedef gfBlockT * gfBlockPtrT; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // clearBlockData(): inline routine to clear a block. // inline void clearBlockData (gfBlockT * blk) { blk->length = 0; register byte * b = blk->data; memset( b, 0, GF_BLOCKSIZE ); // for (register uint i = GF_BLOCKSIZE; i > 0; i--, b++) { *b = 0; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::Init(): Initialise the GFile. // void GFile::Init () { Handle = NULL; #ifdef WINCE Cache = (gfBlockPtrT*) my_Tcl_Alloc(sizeof( gfBlockPtrT[1] )); #else Cache = new gfBlockPtrT [1]; #endif CacheSize = 1; Offset = 0; NumBlocks = 0; #ifdef WINCE Cache[0] = (gfBlockPtrT) my_Tcl_Alloc(sizeof( gfBlockT )); #else Cache[0] = new gfBlockT; #endif Cache[0]->blockNum = -1; Cache[0]->dirty = 0; Cache[0]->length = 0; CurrentBlock = Cache[0]; FileMode = FMODE_None; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::GetFileSize(): returns the current file size in bytes. uint GFile::GetFileSize() { if (NumBlocks == 0) { return 0; } return (NumBlocks - 1) * GF_BLOCKSIZE + LastBlockSize; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::Close(): close the GFile. errorT GFile::Close () { if (Handle == NULL) { return ERROR_FileNotOpen; } if (CurrentBlock->dirty && FileMode != FMODE_ReadOnly) { if (Flush (CurrentBlock) != OK) { return ERROR_FileWrite; } } errorT result = Handle->Close (); delete Handle; Handle = NULL; FileMode = FMODE_None; for (uint i=0; i < CacheSize; i++) { #ifdef WINCE my_Tcl_Free( (char*)Cache[i]); } my_Tcl_Free( (char*) Cache); #else delete Cache[i]; } delete[] Cache; #endif Init(); return result; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::Create(): // Create a new gfile. The parameter "fmode" can be writeonly or // both, but it makes no sense for it to be readonly. // errorT GFile::Create (const char * filename, fileModeT fmode) { if (Handle != NULL) { return ERROR_FileInUse; } sprintf (FileName, "%s%s", filename, GFILE_SUFFIX); FileMode = fmode; Handle = new MFile; if (Handle->Create (FileName, fmode) != OK) { delete Handle; Handle = NULL; return ERROR_FileOpen; } CurrentBlock->blockNum = -1; Offset = 0; NumBlocks = 0; LastBlockSize = 0; return OK; } errorT GFile::CreateMemoryOnly () { if (Handle != NULL) { return ERROR_FileInUse; } FileMode = FMODE_Both; Handle = new MFile; CurrentBlock->blockNum = -1; Offset = 0; NumBlocks = 0; LastBlockSize = 0; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::Open(): // Open a gfile for reading, writing, or both. // errorT GFile::Open (const char * filename, fileModeT fmode, const char * suffix) { if (Handle != NULL) { return ERROR_FileInUse; } FileMode = fmode; sprintf (FileName, "%s%s", filename, suffix); Handle = new MFile; if (Handle->Open (FileName, fmode) != OK) { delete Handle; Handle = NULL; return ERROR_FileOpen; } // Set the buffer size for buffered I/O on this file to be // GF_BLOCKSIZE for efficiency. // This seems to make tree or position searches on large databases // a little faster (maybe up to 10%) from my observations. Handle->SetBufferSize (GF_BLOCKSIZE); CurrentBlock->blockNum = -1; Offset = 0; uint fsize = fileSize (filename, suffix); NumBlocks = (fsize + GF_BLOCKSIZE - 1) / GF_BLOCKSIZE; if (NumBlocks > 0) { LastBlockSize = (fsize % GF_BLOCKSIZE); if (LastBlockSize == 0) { LastBlockSize = GF_BLOCKSIZE; } } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::Flush(): // Flush any blocks that have been modified to the disk. // errorT GFile::Flush (gfBlockT * blk) { if (Handle == NULL) { return ERROR_FileNotOpen; } if (FileMode == FMODE_ReadOnly) { return ERROR_FileMode; } if (blk->dirty == 0) { // File is clean, no need to write anything. return OK; } if (blk->blockNum == -1) { // No blocks in the file yet. return OK; } uint filePos = blk->blockNum * GF_BLOCKSIZE; if (FileMode == FMODE_Both || Offset != filePos) { if (Handle->Seek(filePos) != OK) { return ERROR_FileSeek; } Offset = filePos; } uint numBytes = GF_BLOCKSIZE; if (blk->blockNum == (int)NumBlocks - 1) { // Last block, so only write "length" bytes. numBytes = blk->length; } if (Handle->WriteNBytes ((const char *)blk->data, numBytes) != OK) { return ERROR_FileWrite; } if (FileMode == FMODE_Both) { Handle->Flush(); } Writes++; Offset += numBytes; blk->dirty = 0; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::Fetch(): // Fetch a single block from the file. // errorT GFile::Fetch (gfBlockT * blk, uint blkNum) { if (Handle == NULL) { return ERROR_FileNotOpen; } if (blk->dirty && FileMode != FMODE_ReadOnly) { Flush(blk); } uint filePos = blkNum * GF_BLOCKSIZE; if (Offset != filePos) { if (Handle->Seek(filePos) != OK) { return ERROR_FileSeek; } Offset = filePos; } uint numBytes = GF_BLOCKSIZE; if (blkNum == (NumBlocks - 1)) { // Last block, so its size is LastBlockSize numBytes = LastBlockSize; } if (Handle->ReadNBytes ((char *)blk->data, numBytes) != OK) { return ERROR_FileRead; } Reads++; Offset += numBytes; blk->dirty = 0; blk->blockNum = blkNum; blk->length = numBytes; return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::ReadGame(): // Fetches the appropriate block to read a specified game from // the file, and sets the ByteBuffer bb's pointer to the start // of the data for that game. So the data for the game is not // actually copied into the bytebuffer, which would be slower // and a waste of time if the bytebuffer is not going to be // modified. errorT GFile::ReadGame (ByteBuffer * bb, uint offset, uint length) { ASSERT (bb != NULL); if (Handle == NULL) { return ERROR_FileNotOpen; } int blockNum = (offset / GF_BLOCKSIZE); int endBlockNum = (offset + length - 1) / GF_BLOCKSIZE; if (endBlockNum != blockNum || (uint)blockNum >= NumBlocks) { return ERROR_CorruptData; } if (CurrentBlock->blockNum != blockNum) { if (Fetch (CurrentBlock, blockNum) != OK) { return ERROR_FileRead; } } bb->ProvideExternal (&(CurrentBlock->data[offset % GF_BLOCKSIZE]), length); return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GFile::AddGame(): // Add a game record to the file. It is added to the end of the // last block, or a new block is added if the record will not // fit in the last block. // errorT GFile::AddGame (ByteBuffer * bb, uint * offset) { *offset = 0; if (Handle == NULL) { return ERROR_FileNotOpen; } if (FileMode == FMODE_ReadOnly) { return ERROR_FileMode; } if (NumBlocks == 0) { // First block for this file CurrentBlock->blockNum = 0; NumBlocks++; clearBlockData (CurrentBlock); } else { // Either add to the last block, or make a new block: if (LastBlockSize + bb->GetByteCount() > GF_BLOCKSIZE) { // Need a new block! if (Flush(CurrentBlock) != OK) { return ERROR_FileWrite; } NumBlocks++; CurrentBlock->blockNum = NumBlocks - 1; clearBlockData (CurrentBlock); } else { // It will fit in the last block. Fetch it: if (CurrentBlock->blockNum != (int) NumBlocks - 1) { Fetch (CurrentBlock, NumBlocks - 1); } } } // Now, CurrentBlock contains the block the game will be added to. ASSERT (CurrentBlock->length + bb->GetByteCount() <= GF_BLOCKSIZE); bb->CopyTo (&(CurrentBlock->data[CurrentBlock->length])); *offset = CurrentBlock->blockNum * GF_BLOCKSIZE + CurrentBlock->length; CurrentBlock->length += bb->GetByteCount(); LastBlockSize = CurrentBlock->length; CurrentBlock->dirty = 1; return OK; } ////////////////////////////////////////////////////////////////////// // EOF: gfile.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/scmerge.cpp0000644000175000017500000001777611727223077016400 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: scmerge.cpp // Merge utility for Scid databases // // Part of: Scid (Shane's Chess Information Database) // Version: 3.1 // // Notice: Copyright (c) 1999-2001 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// // scmerge: Scid database merge tool // Usage: scmerge newfile oldfile1 [oldfile2 ....] // Or: scmerge newfile - // (and the list of old files to be given on stdin line per line) #include "common.h" #include "index.h" #include "namebase.h" #include "gfile.h" #include "misc.h" #include // // Globals // char * progName; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Usage() // void usage (void) { fprintf(stderr, "Usage: %s newfile oldfile1 [oldfile2 ...]\n", progName); fprintf(stderr, " Or: %s newfile - (will take file names on stdin separated by newlines)\n", progName); fprintf(stderr, " For example : find . -name '*.si4' | sed s/\\.si4// | scmerge newbase -\n"); exit(1); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // fileError() // inline void fileError (const char * operation, const char * name, const char * suffix) { fprintf(stderr, "ERROR %s file: %s%s\n", operation, name, suffix); exit(1); } uint gamesCount = 0; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // mergeFile inline uint mergeFile(Index * targetIndex, NameBase * targetNameBase, GFile * targetGFile, const char * targetFileName, Index * sourceIndex, NameBase * sourceNameBase, GFile * sourceGFile, const char * sourceFileName, ByteBuffer * bbuf) { errorT err = 0; // uint gamesCount = 0; sourceIndex->SetFileName (sourceFileName); sourceNameBase->SetFileName (sourceFileName); if (sourceIndex->OpenIndexFile(FMODE_ReadOnly) != OK) { fileError ("opening", sourceFileName, INDEX_SUFFIX); } if (sourceNameBase->ReadNameFile() != OK) { fileError ("opening/reading", sourceFileName, NAMEBASE_SUFFIX); } if (sourceGFile->Open (sourceFileName, FMODE_ReadOnly) != OK) { fileError ("opening", sourceFileName, GFILE_SUFFIX); } for (uint gCount = 0; gCount < sourceIndex->GetNumGames(); gCount++) { IndexEntry iE; err = sourceIndex->ReadEntries (&iE, gCount, 1); if (err != OK) { fileError ("reading", sourceFileName, INDEX_SUFFIX); } // Now, the following fields may change: offset, whiteID, blackID, // eventID, siteID, roundID. All others will be unchanged. // We add each name to the new namebase and update the IDs: uint newID; err = targetNameBase->AddName (NAME_PLAYER, iE.GetWhiteName (sourceNameBase), &newID); targetNameBase->IncFrequency (NAME_PLAYER, newID, 1); iE.SetWhite (newID); err = targetNameBase->AddName (NAME_PLAYER, iE.GetBlackName (sourceNameBase), &newID); targetNameBase->IncFrequency (NAME_PLAYER, newID, 1); iE.SetBlack (newID); err = targetNameBase->AddName (NAME_EVENT, iE.GetEventName (sourceNameBase), &newID); targetNameBase->IncFrequency (NAME_EVENT, newID, 1); iE.SetEvent (newID); err = targetNameBase->AddName (NAME_SITE, iE.GetSiteName (sourceNameBase), &newID); targetNameBase->IncFrequency (NAME_SITE, newID, 1); iE.SetSite (newID); err = targetNameBase->AddName (NAME_ROUND, iE.GetRoundName (sourceNameBase), &newID); targetNameBase->IncFrequency (NAME_ROUND, newID, 1); iE.SetRound (newID); // Now, we add the game record to the gfile: bbuf->Empty(); err = sourceGFile->ReadGame (bbuf, iE.GetOffset(), iE.GetLength()); if (err != OK) { fileError ("reading", sourceFileName, GFILE_SUFFIX); } uint newOffset = 0; err = targetGFile->AddGame (bbuf, &newOffset); if (err != OK) { fileError ("writing", targetFileName, GFILE_SUFFIX); } iE.SetOffset (newOffset); // Last of all, we write the new index record: err = targetIndex->WriteEntries (&iE, gamesCount, 1); gamesCount++; if (err != OK) { fileError ("writing", targetFileName, INDEX_SUFFIX); } } // Now we must close and clear the old files: sourceIndex->CloseIndexFile(); sourceNameBase->Clear(); sourceGFile->Close(); return gamesCount; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // main() // int main (int argc, char ** argv) { progName = argv[0]; if (argc < 3) { usage(); } char * targetFileName = argv[1]; Index * targetIndex = new Index; NameBase * targetNameBase = new NameBase; GFile * targetGFile = new GFile; Index * sourceIndex = new Index; NameBase * sourceNameBase = new NameBase; GFile * sourceGFile = new GFile; ByteBuffer * bbuf = new ByteBuffer; bbuf->SetBufferSize (BBUF_SIZE); //32000 targetIndex->SetFileName (targetFileName); targetNameBase->SetFileName (targetFileName); // Check that the target database does not already exist: Index * tempIndex = new Index; tempIndex->SetFileName (targetFileName); if (tempIndex->OpenIndexFile(FMODE_ReadOnly) == OK) { tempIndex->CloseIndexFile(); fprintf (stderr, "Error: the database %s already exists.\n", targetFileName); usage(); } // Open the target files: if (targetIndex->CreateIndexFile(FMODE_WriteOnly) != OK) { fileError ("creating", targetFileName, INDEX_SUFFIX); } if (targetGFile->Create (targetFileName, FMODE_WriteOnly) != OK) { fileError ("creating", targetFileName, GFILE_SUFFIX); } uint totalCount = 0; uint totalFilesCount = 0; // Now execute the merge process once for each existing file: for (int i=2; i < argc; i++) { char * sourceFileName = argv[i]; if (strlen(sourceFileName) == 1 && sourceFileName[0] == '-') { char thisFile[1024] = ""; while( fgets(thisFile, sizeof(thisFile), stdin) ) { int l = strlen(thisFile); if( l <= 1) continue; if( thisFile[l-1] != '\n') { fprintf(stderr, "File name too long (max: %lu chars)\n", (unsigned long) sizeof(thisFile)); exit(1); } thisFile[l-1] = 0; // throw away \n if( l > 2 && thisFile[l-2] == '\r') { thisFile[l-2] = 0; // throw away \r (if happened) } totalCount += mergeFile(targetIndex, targetNameBase, targetGFile, targetFileName, sourceIndex, sourceNameBase, sourceGFile, thisFile, bbuf); ++ totalFilesCount; } } else { totalCount += mergeFile(targetIndex, targetNameBase, targetGFile, targetFileName, sourceIndex, sourceNameBase, sourceGFile, sourceFileName, bbuf); ++ totalFilesCount; } } // Now all files have been read. All we need do is close the new base: targetIndex->CloseIndexFile(); if (targetNameBase->WriteNameFile() != OK) { fileError ("writing", targetFileName, NAMEBASE_SUFFIX); } if (targetGFile->Close() != OK) { fileError ("closing", targetFileName, GFILE_SUFFIX); } // Remove any treefile for this database: removeFile (targetFileName, TREEFILE_SUFFIX); // All done!! fprintf (stderr, "Successfully merged %u files, of %u games.\n", totalFilesCount, targetIndex->GetNumGames()); return 0; } ////////////////////////////////////////////////////////////////////// // EOF: scmerge.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/egtb/0000755000175000017500000000000011727223077015146 5ustar oliveroliverscid-4.3.0.cvs20120311/src/egtb/tbdecode.c0000644000175000017500000000000111727223100017035 0ustar oliveroliver scid-4.3.0.cvs20120311/src/egtb/tbindex.cpp0000644000175000017500000000000111727223100017261 0ustar oliveroliver scid-4.3.0.cvs20120311/src/egtb/probe.txt0000644000175000017500000000000111727223100016770 0ustar oliveroliver scid-4.3.0.cvs20120311/src/egtb/URL0000644000175000017500000000000111727223100015505 0ustar oliveroliver scid-4.3.0.cvs20120311/src/tkscid.h0000644000175000017500000004047411727223077015670 0ustar oliveroliver///////////////////////////////////////////////////////////////////// // // FILE: tkscid.h // Scid extensions to Tcl/Tk interpreter // // Part of: Scid (Shane's Chess Information Database) // Version: 3.6.4 // // Notice: Copyright (c) 1999-2004 Shane Hudson. All rights reserved. // Copyright (c) 2006-2007 Pascal Georges // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "common.h" #include "index.h" #include "position.h" #include "engine.h" #include "game.h" #include "gfile.h" #include "namebase.h" #include "tree.h" #include "pbook.h" #include "pgnparse.h" #include "timer.h" #include "crosstab.h" #include "spellchk.h" #include "probe.h" #include "optable.h" #include "stored.h" #include "polyglot.h" #include "tclmy.h" #include // Include header files for finding directory of executable program // in Windows if necessary. // Note: I have no idea what the WIN32_LEAN_AND_MEAN definition when // including windows.h does, but lots of other source code I have seen // does it -- although "lean Windows" sure is an oxymoron! #ifdef WIN32 # define WIN32_LEAN_AND_MEAN 1 # include # undef WIN32_LEAN_AND_MEAN # include #else # include // For getpriority() and setpriority(). #endif #include #include #include #include #ifndef TCL_ONLY # include #endif // Some character pointer arguments (like "char ***" to Tcl_SplitList) // changed const-ness from Tcl/Tk 8.3 to 8.4 and g++ cannot handle // implicit (char ***) <-> (const char ***) conversions, so CONST84 // is "const" if set from tcl.h, otherwise it is nothing: #ifndef CONST84 # define CONST84 #endif #ifdef WINCE #include "tclmy.h" #endif // Filter operations: typedef uint filterOpT; const filterOpT FILTEROP_AND = 0; const filterOpT FILTEROP_OR = 1; const filterOpT FILTEROP_RESET = 2; // Tablebase probe modes: #define PROBE_NONE 0 #define PROBE_RESULT 1 #define PROBE_SUMMARY 2 #define PROBE_REPORT 3 #define PROBE_OPTIMAL 4 #ifdef WINCE const uint SCID_TreeCacheSize = 50; const uint SCID_BackupCacheSize = 20; #else // TreeCache size for each open database: const uint SCID_TreeCacheSize = 1000; //250 // Secondary (memory only) TreeCache size: const uint SCID_BackupCacheSize = 100; #endif // Number of undo levels #define UNDO_MAX 10 ////////////////////////////////////////////////////////////////////// // // Data structures for Scid Tcl/Tk extensions: // //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Progress Bar struct: // struct progressBarT { bool state; int height; int width; bool interrupt; Timer timer; char * canvName; char * rectName; char * timeName; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Scid database stats structure: // This is maintained and recalculated each time a game in the // database is modified to save time updating the file stats window. // struct ecoStatsT { uint count; uint results [NUM_RESULT_TYPES]; }; struct scidStatsT { uint flagCount [IDX_NUM_FLAGS]; // Num of games with each flag set. dateT minDate; dateT maxDate; unsigned long long nYears; unsigned long long sumYears; uint nResults [NUM_RESULT_TYPES]; uint nRatings; unsigned long long sumRatings; uint minRating; uint maxRating; #ifndef WINCE ecoStatsT ecoCount0 [1]; ecoStatsT ecoCount1 [5]; ecoStatsT ecoCount2 [50]; ecoStatsT ecoCount3 [500]; ecoStatsT ecoCount4 [500*26]; #endif }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Scid database structure: // struct scidBaseT { Index * idx; // the Index file in memory for this base. NameBase * nb; // the NameBase file in memory. Game * game; // the active game for this base. Game * undoGame[UNDO_MAX]; // array of games kept for undos int undoIndex; int gameNumber; // game number of active game. bool gameAltered; // true if game is modified bool inUse; // true if the database is open (in use). uint numGames; bool memoryOnly; scidStatsT stats; // Counts of flags, average rating, etc. treeT tree; TreeCache * treeCache; TreeCache * backupCache; uint treeSearchTime; fileNameT fileName; // File name without ".si" suffix fileNameT realFileName; // File name including ".si" suffix fileModeT fileMode; // Read-only, write-only, or both. GFile * gfile; ByteBuffer * bbuf; TextBuffer * tbuf; Filter * filter; Filter * dbFilter; Filter * treeFilter; uint * duplicates; // For each game: idx of duplicate game + 1, // or 0 if there is no duplicate. }; ////////////////////////////////////////////////////////////////////// // // Inline routines for setting Tcl result strings: // //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setResult(): // Inline function to set the Tcl interpreter result to a // constant string. inline int setResult (Tcl_Interp * ti, const char * str) { Tcl_SetResult (ti, (char *) str, TCL_STATIC); return TCL_OK; } //~~~~~~~~~~~~~~~~~~ // errorResult(): // Same as setResult, but returns TCL_ERROR so callers can simply: // return errorResult (ti, "error message"); // instead of: // Tcl_SetResult (ti, "error message"); // return TCL_ERROR; inline int errorResult (Tcl_Interp * ti, const char * str) { Tcl_SetResult (ti, (char *) str, TCL_STATIC); return TCL_ERROR; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setBoolResult(): // Inline function to set the Tcl interpreter result to a // boolean value. inline int setBoolResult (Tcl_Interp * ti, bool b) { Tcl_SetResult (ti, b ? (char *) "1" : (char *) "0", TCL_STATIC); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setIntResult(): // Inline function to set the Tcl interpreter result to a // signed integer value. inline int setIntResult (Tcl_Interp * ti, int i) { char temp [20]; sprintf (temp, "%d", i); Tcl_SetResult (ti, temp, TCL_VOLATILE); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setUintResult(): // Inline function to set the Tcl interpreter result to an // unsigned integer value. inline int setUintResult (Tcl_Interp * ti, uint i) { char temp [20]; sprintf (temp, "%u", i); Tcl_SetResult (ti, temp, TCL_VOLATILE); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // appendIntResult: // Inline function to append the specified signed value to the // Tcl interpreter result. inline int appendIntResult (Tcl_Interp * ti, int i) { char temp [20]; sprintf (temp, "%d", i); Tcl_AppendResult (ti, temp, NULL); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // appendUintResult: // Inline function to append the specified unsigned value to the // Tcl interpreter result. inline int appendUintResult (Tcl_Interp * ti, uint i) { char temp [20]; sprintf (temp, "%u", i); Tcl_AppendResult (ti, temp, NULL); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // appendUintElement: // Inline function to append the specified unsigned value to the // Tcl interpreter list result. inline uint appendUintElement (Tcl_Interp * ti, uint i) { char temp[20]; sprintf (temp, "%u", i); Tcl_AppendElement (ti, temp); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setUintWidthResult(): // Inline function to set the Tcl interpreter result to an // unsigned integer value, with zeroes to pad to the desired width. inline int setUintWidthResult (Tcl_Interp * ti, uint i, uint width) { char temp [20]; sprintf (temp, "%0*u", width, i); Tcl_SetResult (ti, temp, TCL_VOLATILE); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // setCharResult(): // Inline function to set the Tcl interpreter result to a character value. inline int setCharResult (Tcl_Interp * ti, char ch) { char tempStr [4]; tempStr[0] = ch; tempStr[1] = 0; Tcl_SetResult (ti, tempStr, TCL_VOLATILE); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // appendCharResult: // Inline function to append the specified character value to the // Tcl interpreter result. inline int appendCharResult (Tcl_Interp * ti, char ch) { char tempStr [4]; tempStr[0] = ch; tempStr[1] = 0; Tcl_AppendResult (ti, tempStr, NULL); return TCL_OK; } void transPieces(char *s); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // translate: // Return the translation for a phrase. // inline const char * translate (Tcl_Interp * ti, const char * name, const char * defaultText) { #ifdef WINCE return name; #else const char * str = Tcl_GetVar2 (ti, "tr", (char *) name, TCL_GLOBAL_ONLY); if (str == NULL) { str = defaultText; } return str; #endif } inline const char * translate (Tcl_Interp * ti, const char * name) { #ifdef WINCE return name; #else return translate (ti, name, name); #endif } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // filter help functions // void updateMainFilter( scidBaseT * dbase); void clearFilter( scidBaseT * dbase, uint size); void initFilter( scidBaseT * dbase, byte value); void initDbFilter( scidBaseT * dbase, byte value); void filter_reset (scidBaseT * base, byte value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // manage undo functions // void sc_game_save_for_undo (); void sc_game_undo_reset(); ////////////////////////////////////////////////////////////////////// // Declarations for Scid application-specific Tcl commands // // Macro TCL_ARGS expands to the argument-type list that any // Tcl command function takes. #define TCL_ARGS ClientData cd, Tcl_Interp * ti, int argc, const char ** argv int str_is_prefix (TCL_ARGS); int str_prefix_len (TCL_ARGS); #ifdef POCKET int sc_msg (TCL_ARGS); int sc_msg_init (TCL_ARGS); int sc_msg_close (TCL_ARGS); int sc_msg_send (TCL_ARGS); int sc_msg_recv (TCL_ARGS); int sc_msg_info (TCL_ARGS); #endif int sc_base (TCL_ARGS); int sc_base_autoload (TCL_ARGS); int sc_base_filename (TCL_ARGS); int sc_base_inUse (TCL_ARGS); int sc_base_duplicates (TCL_ARGS); int sc_base_open (TCL_ARGS); int sc_base_check (TCL_ARGS); int sc_createbase (Tcl_Interp * ti, const char * filename, scidBaseT * base, bool memoryOnly); int sc_base_create (TCL_ARGS); int sc_base_close (TCL_ARGS); int sc_base_count (TCL_ARGS); int sc_base_description (TCL_ARGS); int sc_base_export (TCL_ARGS); int sc_base_import (TCL_ARGS); int sc_base_numGames (TCL_ARGS); int sc_base_slot (TCL_ARGS); int sc_base_stats (TCL_ARGS); int sc_base_ecoStats (TCL_ARGS); int sc_base_piecetrack (TCL_ARGS); int sc_base_sort (TCL_ARGS); int sc_base_switch (TCL_ARGS); int sc_base_tag (TCL_ARGS); int sc_base_tournaments (TCL_ARGS); int sc_base_type (TCL_ARGS); int sc_base_upgrade (TCL_ARGS); int sc_base_fix_corrupted (TCL_ARGS); int sc_epd (TCL_ARGS); int sc_epd_deepest (Tcl_Interp * ti, int epdID); int sc_epd_moves (Tcl_Interp * ti, int epdID); int sc_epd_next (Tcl_Interp * ti, int epdID, bool forwards); int sc_epd_open (Tcl_Interp * ti, int argc, const char ** argv, bool create); int sc_epd_set (Tcl_Interp * ti, int epdID, const char * text); int sc_epd_write (Tcl_Interp * ti, int epdID); // int sc_epd_load (Tcl_Interp * ti, int epdID, int from, int to); int sc_clipbase (TCL_ARGS); int sc_clipbase_clear (Tcl_Interp * ti); int sc_clipbase_copy (TCL_ARGS); int sc_clipbase_paste (TCL_ARGS); int sc_compact (TCL_ARGS); int sc_compact_games (TCL_ARGS); int sc_compact_names (TCL_ARGS); int sc_compact_stats (TCL_ARGS); int sc_eco (TCL_ARGS); int sc_eco_base (TCL_ARGS); int sc_eco_game (TCL_ARGS); int sc_eco_read (TCL_ARGS); int sc_eco_summary (TCL_ARGS); int sc_eco_translate (TCL_ARGS); int sc_filter (TCL_ARGS); int sc_filter_count (TCL_ARGS); int sc_filter_copy (TCL_ARGS); int sc_filter_first (TCL_ARGS); int sc_filter_freq (TCL_ARGS); int sc_filter_index (TCL_ARGS); int sc_filter_last (TCL_ARGS); int sc_filter_locate (TCL_ARGS); int sc_filter_negate (TCL_ARGS); int sc_filter_next (TCL_ARGS); int sc_filter_prev (TCL_ARGS); int sc_filter_remove (TCL_ARGS); int sc_filter_reset (TCL_ARGS); int sc_filter_stats (TCL_ARGS); int sc_filter_textfind (TCL_ARGS); int sc_filter_value (TCL_ARGS); int sc_filter_clear (TCL_ARGS); int sc_game (TCL_ARGS); int sc_game_crosstable (TCL_ARGS); int sc_game_find (TCL_ARGS); int sc_game_firstMoves (TCL_ARGS); int sc_game_flag (TCL_ARGS); int sc_game_import (TCL_ARGS); int sc_game_info (TCL_ARGS); int sc_game_load (TCL_ARGS); int sc_game_merge (TCL_ARGS); int sc_game_moves (TCL_ARGS); int sc_game_novelty (TCL_ARGS); int sc_game_new (TCL_ARGS); int sc_game_pgn (TCL_ARGS); int sc_game_pop (TCL_ARGS); int sc_game_push (TCL_ARGS); int sc_savegame (Tcl_Interp *, Game * game, gameNumberT, scidBaseT *); int sc_savegame (Tcl_Interp * ti, scidBaseT * sourceBase, ByteBuffer * bbuf, IndexEntry * srcIe, scidBaseT * base); int sc_game_save (TCL_ARGS); int sc_game_scores (TCL_ARGS); int sc_game_startBoard (TCL_ARGS); int sc_game_strip (TCL_ARGS); int sc_game_summary (TCL_ARGS); int sc_game_tags (TCL_ARGS); int sc_game_tags_get (TCL_ARGS); int sc_game_tags_set (TCL_ARGS); int sc_game_tags_reload (TCL_ARGS); int sc_game_tags_share (TCL_ARGS); int sc_info (TCL_ARGS); int sc_info_fsize (TCL_ARGS); int sc_info_limit (TCL_ARGS); int sc_info_priority (TCL_ARGS); int sc_info_suffix (TCL_ARGS); int sc_info_tb (TCL_ARGS); int sc_move (TCL_ARGS); int sc_move_add (TCL_ARGS); int sc_move_addSan (TCL_ARGS); int sc_move_addUCI (TCL_ARGS); int sc_move_back (TCL_ARGS); int sc_move_forward (TCL_ARGS); int sc_move_pgn (TCL_ARGS); int sc_name (TCL_ARGS); int sc_name_correct (TCL_ARGS); int sc_name_edit (TCL_ARGS); int sc_name_info (TCL_ARGS); int sc_name_match (TCL_ARGS); int sc_name_plist (TCL_ARGS); int sc_name_ratings (TCL_ARGS); int sc_name_read (TCL_ARGS); int sc_name_spellcheck (TCL_ARGS); int sc_name_retrievename (TCL_ARGS); int sc_report (TCL_ARGS); int sc_report_create (TCL_ARGS); int sc_report_select (TCL_ARGS); int sc_pos (TCL_ARGS); int sc_pos_addNag (TCL_ARGS); int sc_pos_analyze (TCL_ARGS); int sc_pos_bestSquare (TCL_ARGS); int sc_pos_getNags (TCL_ARGS); int sc_pos_hash (TCL_ARGS); int sc_pos_html (TCL_ARGS); int sc_pos_isAt (TCL_ARGS); int sc_pos_isLegal (TCL_ARGS); int sc_pos_isPromo (TCL_ARGS); int sc_pos_matchMoves (TCL_ARGS); int sc_pos_moves (TCL_ARGS); int sc_pos_pgnBoard (TCL_ARGS); int sc_pos_probe (TCL_ARGS); int sc_pos_probe_board (TCL_ARGS); int sc_pos_setComment (TCL_ARGS); int sc_progressBar (TCL_ARGS); int sc_sort (TCL_ARGS); int sc_sort_list (TCL_ARGS); int sc_sort_sort (TCL_ARGS); int sc_sort_crit (TCL_ARGS); int sc_sort_store (TCL_ARGS); int sc_sort_load (TCL_ARGS); int sc_sort_testload (TCL_ARGS); int sc_tree (TCL_ARGS); int sc_tree_best (TCL_ARGS); int sc_tree_move (TCL_ARGS); int sc_tree_search (TCL_ARGS); int sc_tree_time (TCL_ARGS); int sc_tree_write (TCL_ARGS); int sc_tree_free (TCL_ARGS); int sc_tree_cachesize (TCL_ARGS); int sc_tree_cacheinfo (TCL_ARGS); int sc_tree_clean (TCL_ARGS); int sc_var (TCL_ARGS); int sc_var_delete (TCL_ARGS); int sc_var_delete_free(TCL_ARGS); int sc_var_enter (TCL_ARGS); int sc_var_first (TCL_ARGS); int sc_var_list (TCL_ARGS); int sc_var_promote (TCL_ARGS); int sc_search (TCL_ARGS); int sc_search_board (TCL_ARGS); int sc_search_material (TCL_ARGS); int sc_search_header (TCL_ARGS); int sc_search_repertoire (TCL_ARGS); int sc_search_rep_add (TCL_ARGS); int sc_search_rep_go (TCL_ARGS); int sc_book (TCL_ARGS); int sc_book_load (TCL_ARGS); int sc_book_close (TCL_ARGS); int sc_book_moves (TCL_ARGS); int sc_book_positions (TCL_ARGS); int sc_book_update (TCL_ARGS); int sc_book_movesupdate (TCL_ARGS); ////////////////////////////////////////////////////////////////////// /// END of tkscid.h ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/optable.cpp0000644000175000017500000022270711727223077016371 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: optable.cpp // OpTable and OpLine class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 2001-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "optable.h" #include "crosstab.h" uint endgameTheme (matSigT msig) { bool queens = MATSIG_HasQueens (msig); bool rooks = MATSIG_HasRooks (msig); bool minors = MATSIG_HasBishops (msig) || MATSIG_HasKnights (msig); uint idx = EGTHEME_P; if (queens) { if (rooks) { if (minors) { idx = EGTHEME_QRM; } else { idx = EGTHEME_QR; } } else { if (minors) { idx = EGTHEME_QM; } else { idx = EGTHEME_Q; } } } else { if (rooks) { if (minors) { idx = EGTHEME_RM; } else { idx = EGTHEME_R; } } else { if (minors) { idx = EGTHEME_M; } else { idx = EGTHEME_P; } } } return idx; } inline bool posHasIQP (Position * pos, colorT c) { pieceT p = piece_Make (c, PAWN); return (pos->FyleCount (p,C_FYLE) == 0 && pos->FyleCount (p,E_FYLE) == 0 && pos->FyleCount (p, D_FYLE) > 0); } inline bool posHasAdvancedPawn (Position * pos, colorT c) { if (c == WHITE) { return (pos->RankCount (WP,RANK_5) > 0 || pos->RankCount (WP,RANK_6) > 0 || pos->RankCount (WP,RANK_7) > 0); } return (pos->RankCount (BP,RANK_4) > 0 || pos->RankCount (BP,RANK_3) > 0 || pos->RankCount (BP,RANK_2) > 0); } inline bool posHasKPawnStorm (Position * pos, colorT c) { pieceT * bd = pos->GetBoard(); // A kingside pawn storm by White is defined to be a situation // where there is no longer any white pawn on h2, g2, h3 or g3, // but there is a white pawn on the g or h file. if (c == WHITE) { return (bd[G2] != WP && bd[H2] != WP && bd[G3] != WP && bd[H3] != WP && (pos->FyleCount (WP, G_FYLE) > 0 || pos->FyleCount (WP,H_FYLE) > 0)); } return (bd[G7] != BP && bd[H7] != BP && bd[G6] != BP && bd[H6] != BP && (pos->FyleCount (BP, G_FYLE) > 0 || pos->FyleCount (BP,H_FYLE) > 0)); } inline bool posHasOpenFyle (Position * pos, fyleT f) { return (pos->FyleCount (WP, f) == 0 && pos->FyleCount (BP, f) == 0); } void OpLine::Init (void) { GameNumber = 0; White = strDuplicate(""); Black = strDuplicate(""); Site = strDuplicate(""); WhiteID = BlackID = 0; WhiteElo = BlackElo = 0; AvgElo = 0; Date = ZERO_DATE; Result = RESULT_None; Length = 0; StartPly = 0; NumMoves = 0; ShortGame = false; NoteNumber = NoteMoveNum = 0; for (uint i=0; i < OPLINE_MOVES; i++) { Move[i][0] = 0; } for (uint t=0; t < NUM_POSTHEMES; t++) { Theme[t] = 0; } EgTheme = NUM_EGTHEMES; } void OpLine::Init (Game * g, IndexEntry * ie, gameNumberT gameNum, uint maxExtraMoves, uint maxThemeMoveNumber) { White = strDuplicate (g->GetWhiteStr()); Black = strDuplicate (g->GetBlackStr()); Site = strDuplicate (g->GetSiteStr()); WhiteID = ie->GetWhite(); BlackID = ie->GetBlack(); GameNumber = gameNum; Date = g->GetDate(); Result = g->GetResult(); NumMoves = (g->GetNumHalfMoves() + 1) / 2; EcoCode = g->GetEco(); WhiteElo = g->GetWhiteElo(); BlackElo = g->GetBlackElo(); AvgElo = g->GetAverageElo(); Length = 0; StartPly = g->GetCurrentPly(); g->SaveState(); if (g->GetCurrentPos()->GetToMove() == BLACK) { g->MoveBackup(); } NoteNumber = NoteMoveNum = 0; uint columnMoves = OPTABLE_COLUMNS * 2; uint maxLineMoves = (OPTABLE_COLUMNS + maxExtraMoves) * 2; if (maxLineMoves > OPLINE_MOVES) { maxLineMoves = OPLINE_MOVES; } EgTheme = endgameTheme (ie->GetFinalMatSig()); // First read in just the moves that will appear in table columns: uint i = 0; ShortGame = false; while (i < columnMoves) { simpleMoveT * sm = g->GetCurrentMove(); if (sm == NULL) { Move[i][0] = 0; ShortGame = true; } else { Length++; g->GetCurrentPos()->MakeSANString (sm, Move[i], SAN_CHECKTEST); strStrip (Move[i], '-'); strStrip (Move[i], '='); g->MoveForward(); } i++; } // Now read in all the extra note moves: while (i < maxLineMoves) { simpleMoveT * sm = g->GetCurrentMove(); if (sm == NULL) { Move[i][0] = 0; ShortGame = true; } else { Length++; g->GetCurrentPos()->MakeSANString (sm, Move[i], SAN_CHECKTEST); strStrip (Move[i], '-'); strStrip (Move[i], '='); g->MoveForward(); } i++; } if (g->GetCurrentMove() == NULL) { ShortGame = true; } // Now set positional themes: uint maxThemePly = maxThemeMoveNumber * 2; for (i=0; i < NUM_POSTHEMES; i++) { Theme[i] = 0; } g->MoveToPly (0); for (i=0; i < maxThemePly; i++) { if (g->MoveForward() != OK) { break; } SetPositionalThemes (g->GetCurrentPos()); } g->RestoreState(); } void OpLine::Destroy (void) { #ifdef WINCE my_Tcl_Free((char*) White); my_Tcl_Free((char*) Black); my_Tcl_Free((char*) Site); #else delete[] White; delete[] Black; delete[] Site; #endif } void OpLine::SetPositionalThemes (Position * pos) { squareT wk = pos->GetKingSquare (WHITE); squareT bk = pos->GetKingSquare (BLACK); fyleT wkf = square_Fyle (wk); fyleT bkf = square_Fyle (bk); if ((wkf <= C_FYLE && bkf <= C_FYLE) || (wkf >= G_FYLE && bkf >= G_FYLE)) { Theme[POSTHEME_CastSame]++; } if ((wkf <= C_FYLE && bkf >= G_FYLE) || (wkf >= G_FYLE && bkf <= C_FYLE)) { Theme[POSTHEME_CastOpp]++; } if (pos->PieceCount(WQ) == 0 && pos->PieceCount(BQ) == 0) { Theme[POSTHEME_QueenSwap]++; } bool wBPair = (pos->PieceCount (WB) >= 2); bool bBPair = (pos->PieceCount (BB) >= 2); if ((wBPair && !bBPair) || (!wBPair && bBPair)) { Theme[POSTHEME_OneBPair]++; } if (posHasKPawnStorm (pos, WHITE) || posHasKPawnStorm (pos, BLACK)) { Theme[POSTHEME_Kstorm]++; } if (posHasIQP (pos, WHITE)) { Theme[POSTHEME_WIQP]++; } if (posHasIQP (pos, BLACK)) { Theme[POSTHEME_BIQP]++; } if (posHasAdvancedPawn (pos, WHITE)) { Theme[POSTHEME_WAdvPawn]++; } if (posHasAdvancedPawn (pos, BLACK)) { Theme[POSTHEME_BAdvPawn]++; } if (posHasOpenFyle (pos, C_FYLE) || posHasOpenFyle (pos, D_FYLE) || posHasOpenFyle (pos, E_FYLE)) { Theme[POSTHEME_OpenFyle]++; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpLine::Insert: // Inserts subline as a note of this line. // The final order of notes (linked by the Next field) will be: // (a) subline's notes, (b) subline, (c) this line's original notes. void OpLine::Insert (OpLine * subline) { OpLine * subsub = subline->Next; subline->Next = Next; if (subsub != NULL) { OpLine * subtail = subsub; while (subtail->Next != NULL) { subtail = subtail->Next; } subtail->Next = subline; Next = subsub; } else { Next = subline; } } uint OpLine::CommonLength (OpLine * line) { uint length = 0; for (length=0; length < OPLINE_MOVES; length++) { if (! strEqual (Move[length], line->Move[length])) { break; } if (strEqual (Move[length], "")) { break; } } return length; } void OpLine::PrintMove (DString * dstr, const char * move, uint format) { char tempTrans[5000]; if (format == OPTABLE_Compact) { strcpy(tempTrans, move); transPieces(tempTrans); char *ptr = tempTrans; char ch = *ptr; //*move; while (ch != 0) { if (ch != '+' && ch != 'x') { dstr->AddChar (ch); } ptr++;//move++; ch = *ptr;//*move; } return; } if (format != OPTABLE_LaTeX) { strcpy(tempTrans, move); transPieces(tempTrans); dstr->Append(tempTrans);//(move); return; } // LaTeX format: K,Q,R,B,N are translated to {\K} etc. char ch = *move; while (ch != 0) { switch (ch) { case 'K': case 'Q': case 'R': case 'B': case 'N': dstr->Append ("{\\"); dstr->AddChar (ch); dstr->AddChar ('}'); break; default: dstr->AddChar (ch); break; } move++; ch = *move; } } void OpLine::PrintNote (DString * dstr, uint movenum, uint start, uint format) { bool wtm = true; const char * preFirstMove = ""; const char * postFirstMove = ""; if (format == OPTABLE_LaTeX) { preFirstMove = "\\textbf{"; postFirstMove = "}"; } else if (format == OPTABLE_HTML || format == OPTABLE_CText) { preFirstMove = ""; postFirstMove = ""; } for (uint i=0; i < Length; i++) { if (i < start) { // do nothing } else { if (i == start) { dstr->Append (preFirstMove, movenum, wtm ? "." : "..."); } else if (wtm) { dstr->Append (" ", movenum, "."); } else { dstr->Append (" "); } PrintMove (dstr, Move[i], format); if (i == start) { dstr->Append (postFirstMove); } } if (wtm) { wtm = false; } else { wtm = true; movenum++; } } dstr->Append (" "); PrintSummary (dstr, format, false, false); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpLine::PrintSummary(): // Prints the summary for this line. If fullDate is true, the // full date is printed (not just the year). If nmoves is true // or the game continues after the last stored line move, the // number of moves in the game is printed after the result. void OpLine::PrintSummary (DString * dstr, uint format, bool fullDate, bool nmoves) { if (format == OPTABLE_CText && GameNumber > 0) { dstr->Append (""); } const char * resultStr = RESULT_STR[Result]; if (format == OPTABLE_LaTeX) { switch (Result) { case RESULT_White: resultStr = "{\\win}"; break; case RESULT_Black: resultStr = "{\\loss}"; break; case RESULT_Draw: resultStr = "{\\draw}"; break; default: resultStr = "*"; break; } } dstr->Append (resultStr); if (nmoves || !ShortGame) { dstr->Append ("(", NumMoves, ")"); } const char * preName = ""; const char * postName = ""; if (format == OPTABLE_CText) { preName = ""; postName = ""; } else if (format == OPTABLE_HTML) { preName = ""; postName = ""; } dstr->Append (" ", preName); const char * s = White; while (*s != 0 && *s != ',') { if (format == OPTABLE_LaTeX) { if (*s == '_' || *s == '$' || *s == '%') { dstr->AddChar ('\\'); } } dstr->AddChar (*s); s++; } dstr->Append (postName); const char * preElo = " "; const char * postElo = ""; const char * sep = " - "; if (format == OPTABLE_LaTeX) { preElo = " \\emph{"; postElo = "}"; sep = " -- "; } else if (format == OPTABLE_HTML) { preElo = " "; postElo = ""; sep = " -- "; } else if (format == OPTABLE_CText) { preElo = " "; postElo = ""; } if (WhiteElo > 0) { dstr->Append (preElo, WhiteElo, postElo); } dstr->Append (sep, preName); s = Black; while (*s != 0 && *s != ',') { if (format == OPTABLE_LaTeX) { switch (*s) { case '_': case '$': case '%': case '&': case '#': dstr->AddChar ('\\'); break; } } dstr->AddChar (*s); s++; } dstr->Append (postName); if (BlackElo > 0) { dstr->Append (preElo, BlackElo, postElo); } dstr->Append (", ", Site, " "); if (fullDate) { char dateStr [16]; date_DecodeToString (Date, dateStr); // Remove any unknown date fields: char * s = (char *) strFirstChar (dateStr+4, '?'); if (s != NULL) { s--; *s = 0; } dstr->Append (dateStr); } else { dstr->Append (date_GetYear (Date)); } if (format == OPTABLE_CText && GameNumber > 0) { dstr->Append (""); } } //////////////////////////////////////////////////////////// void OpTable::Init (const char * type, Game * g, PBook * ebook) { Type = strDuplicate (type); TargetRows = OPTABLE_DEFAULT_ROWS; MaxTableLines = OPTABLE_MAX_TABLE_LINES; NumRows = 0; NumLines = NumTableLines = 0; SetMaxExtraMoves (1); FilterCount = TheoryCount = 0; NumMoveOrders = 0; Format = OPTABLE_Text; StartLength = 0; WTM = (g->GetCurrentPos()->GetToMove() == WHITE ? true : false); DecimalChar = '.'; Results[RESULT_White] = Results[RESULT_Black] = 0; Results[RESULT_Draw] = Results[RESULT_None] = 0; TheoryResults[RESULT_White] = TheoryResults[RESULT_Black] = 0; TheoryResults[RESULT_Draw] = TheoryResults[RESULT_None] = 0; EcoStr = NULL; ExcludeMove[0] = 0; uint i; for (i=0; i < NUM_POSTHEMES; i++) { ThemeCount[i] = 0; } for (i=0; i < NUM_EGTHEMES; i++) { EndgameCount[OPTABLE_Line][i] = EndgameCount[OPTABLE_All][i] = 0; } // Generate the text for each move up to the current position: g->SaveState(); while (! g->AtStart()) { if (g->AtVarStart()) { g->MoveExitVariation(); continue; } if (ebook != NULL && EcoStr == NULL) { DString dstr; if (ebook->FindOpcode (g->GetCurrentPos(), "eco", &dstr) == OK) { EcoStr = strDuplicate (dstr.Data()); } } g->MoveBackup(); simpleMoveT * sm = g->GetCurrentMove(); if (sm == NULL) { break; } g->GetCurrentPos()->MakeSANString (sm, StartLine[StartLength], SAN_CHECKTEST); StartLength++; if (StartLength >= OPTABLE_MAX_STARTLINE) { break; } } g->RestoreState(); // Now the moves are in the StartLine[] array, in reverse order. } void OpTable::Clear (void) { uint i; for (i=0; i < NumLines; i++) { delete Line[i]; } for (i=0; i < NumMoveOrders; i++) { #ifdef WINCE my_Tcl_Free((char*) MoveOrder[i].moves); #else delete MoveOrder[i].moves; #endif } NumLines = NumTableLines = 0; NumMoveOrders = 0; FilterCount = TheoryCount = 0; Results[RESULT_White] = Results[RESULT_Black] = 0; Results[RESULT_Draw] = Results[RESULT_None] = 0; TheoryResults[RESULT_White] = TheoryResults[RESULT_Black] = 0; TheoryResults[RESULT_Draw] = TheoryResults[RESULT_None] = 0; if (EcoStr != NULL) { #ifdef WINCE my_Tcl_Free((char*) EcoStr); #else delete[] EcoStr; #endif EcoStr = NULL; } ExcludeMove[0] = 0; } void OpTable::ClearNotes (void) { // Clear all notes: for (uint i=0; i < NumTableLines; i++) { Row[i] = Line[i]; NLines[i] = 1; RowScore[i] = RESULT_SCORE[Line[i]->Result]; Line[i]->Next = NULL; Line[i]->NoteMoveNum = 0; Line[i]->NoteNumber = 0; } NumNotes = 0; } uint OpTable::FormatFromStr (const char * str) { switch (str[0]) { case 'H': case 'h': return OPTABLE_HTML; case 'L': case 'l': return OPTABLE_LaTeX; case 'T': case 't': return OPTABLE_Text; case 'C': case 'c': return OPTABLE_CText; } return OPTABLE_Text; } void OpTable::SetFormat (const char * str) { Format = FormatFromStr (str); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::PercentScore(): // Returns the percentage score for White across all // games that have been added to the database. // The integer value returned is the percentage * 10, // e.g. "573" for 57.3% uint OpTable::PercentScore (void) { uint percent = Results[RESULT_White] * 2; percent += Results[RESULT_Draw]; percent = percent * 500; uint total = Results[RESULT_White] + Results[RESULT_Draw] + Results[RESULT_Black]; if (total > 0) { percent = percent / total; } return percent; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::TheoryPercent(): // Returns the percentage score for White across all // games except those excluded from the theory table. uint OpTable::TheoryPercent (void) { uint percent = TheoryResults[RESULT_White] * 2; percent += TheoryResults[RESULT_Draw]; percent = percent * 500; uint total = TheoryResults[RESULT_White] + TheoryResults[RESULT_Draw] + TheoryResults[RESULT_Black]; if (total > 0) { percent = percent / total; } return percent; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::TheoryScore: // Returns the score for White (multiplied by 2 to be an // integer value) for all games except those excluded // from the theory table. uint OpTable::TheoryScore (void) { return TheoryResults[RESULT_White] * 2 + TheoryResults[RESULT_Draw]; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::PercentFreq(): // Returns the frequency of a particular result as a percentage. // The integer value returned is the percentage * 10. uint OpTable::PercentFreq (resultT result) { uint percent = Results[result] * 1000; uint total = Results[RESULT_White] + Results[RESULT_Draw] + Results[RESULT_Black] + Results[RESULT_None]; if (total > 0) { percent = percent / total; } return percent; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::Add(): // Adds the line to the table if possible. If the table is not // yet full, the line is added and no line is deleted. If the // table is full, either the specified line, or an existing // line in the table it replaces, will be deleted. bool OpTable::Add (OpLine * line) { if (! WTM) { strCopy (line->Move[0], StartLine[0]); strStrip (line->Move[0], '-'); strStrip (line->Move[0], '='); } for (uint theme=0; theme < NUM_POSTHEMES; theme++) { if (line->Theme[theme] >= POSTHEME_THRESHOLD) { ThemeCount[theme]++; } } Results[line->Result]++; FilterCount++; // Stop here if this line is excluded from the theory table: if (WTM && strEqual (line->Move[0], ExcludeMove)) { return OK; } if (!WTM && strEqual (line->Move[1], ExcludeMove)) { return OK; } TheoryCount++; TheoryResults[line->Result]++; if (NumLines < OPTABLE_MAX_LINES) { Line[NumLines] = line; NumLines++; if (NumTableLines < MaxTableLines) { NumTableLines++; } return OK; } // The table is full, so if this line is to be added, it must // evict an existing line with a smaller average Elo rating. eloT evictElo = line->AvgElo; int evictIndex = -1; for (uint i=0; i < NumLines; i++) { eloT elo = Line[i]->AvgElo; if (elo < evictElo) { evictElo = elo; evictIndex = i; } } if (evictIndex < 0) { delete line; return false; } delete Line[evictIndex]; Line[evictIndex] = line; return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // int_sqrt(): Integer square root. // Used by OpTable::GuessNumRows(). static uint int_sqrt (uint val) { uint guess=0; uint bit; for (bit = 1 << 15; bit != 0; bit >>= 1) { guess ^= bit; /* Can set this bit without going over sqrt(val)? */ if (guess * guess > val) { guess ^= bit; } } return guess; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::GuessNumRows(): // Sets the target number of rows according to the // number of lines, hopefully choosing a nice value. // The formula is sqrt(NumTableLines*0.75) + 3. void OpTable::GuessNumRows (void) { SetNumRows (int_sqrt((NumTableLines * 3) / 4) + 3); } #ifdef WINCE void OpTable::DumpLines (/*FILE * */ Tcl_Channel fp) { MakeRows(); DString * dstr = new DString; char buf[1024]; for (uint i=0; i < NumRows; i++) { bool first = true; OpLine * line = Row[i]; OpLine * prevLine = NULL; while (line != NULL) { dstr->Clear(); if (first) { first = false; line->PrintNote (dstr, (StartLength + 2) / 2, 0, OPTABLE_Text); //fprintf (fp, "ROW %u[%u]: ", i+1, NLines[i]); sprintf (buf, "ROW %u[%u]: ", i+1, NLines[i]); my_Tcl_Write(fp,buf,strlen(buf)); } else { //fprintf (fp, " %u-NOTE: ", i+1); sprintf (buf, " %u-NOTE: ", i+1); my_Tcl_Write(fp,buf,strlen(buf)); line->PrintNote (dstr, (StartLength + 2) / 2, line->CommonLength(prevLine), OPTABLE_Text); } //fprintf (fp, "%s\n", dstr->Data()); sprintf (buf, "%s\n", dstr->Data()); my_Tcl_Write(fp,buf,strlen(buf)); prevLine = line; line = line->Next; } } delete dstr; } #else void OpTable::DumpLines (FILE * fp) { MakeRows(); DString * dstr = new DString; for (uint i=0; i < NumRows; i++) { bool first = true; OpLine * line = Row[i]; OpLine * prevLine = NULL; while (line != NULL) { dstr->Clear(); if (first) { first = false; line->PrintNote (dstr, (StartLength + 2) / 2, 0, OPTABLE_Text); fprintf (fp, "ROW %u[%u]: ", i+1, NLines[i]); } else { fprintf (fp, " %u-NOTE: ", i+1); line->PrintNote (dstr, (StartLength + 2) / 2, line->CommonLength(prevLine), OPTABLE_Text); } fprintf (fp, "%s\n", dstr->Data()); prevLine = line; line = line->Next; } } delete dstr; } #endif bool OpTable::IsRowMergable (uint rownum) { ASSERT (rownum > 0 && rownum < NumRows-1); uint prevLength = Row[rownum]->CommonLength (Row[rownum-1]); uint nextLength = Row[rownum]->CommonLength (Row[rownum+1]); return (nextLength > prevLength); } void OpTable::MergeRow (uint rownum) { ASSERT (rownum < NumRows-1); Row[rownum+1]->Insert (Row[rownum]); NLines[rownum+1] += NLines[rownum]; RowScore[rownum+1] += RowScore[rownum]; for (uint i=rownum; i < NumRows-1; i++) { NLines[i] = NLines[i+1]; Row[i] = Row[i+1]; RowScore[i] = RowScore[i+1]; } NumRows--; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::SelectTableLines(): // Select the NumTableLines highest-rated lines and // move them to the start of the array of lines. void OpTable::SelectTableLines (void) { uint i, j; if (NumLines == NumTableLines) { return; } ASSERT (NumTableLines < NumLines); for (i=0; i < NumTableLines; i++) { uint bestIndex = i; uint bestAvgElo = Line[i]->AvgElo; for (j = i+1; j < NumLines; j++) { if (Line[j]->AvgElo >= bestAvgElo) { bestIndex = j; bestAvgElo = Line[j]->AvgElo; } } if (bestIndex != i) { OpLine * temp = Line[i]; Line[i] = Line[bestIndex]; Line[bestIndex] = temp; } } } void OpTable::MakeRows (void) { uint i; if (NumLines == 0) { return; } // Select the NumTableLines highest-rated lines and // make them the first lines in the list: SelectTableLines (); // Sort the table lines: SortTableLines (Line, NumTableLines, 0); // Clear all notes: ClearNotes(); NumRows = NumTableLines; if (TargetRows < OPTABLE_MIN_ROWS) { TargetRows = OPTABLE_MIN_ROWS; } if (TargetRows > OPTABLE_MAX_ROWS) { TargetRows = OPTABLE_MAX_ROWS; } // Need to merge all rows with CommonLength >= 2*OPTABLE_COLUMNS here, // and also merge all rows that are complete prefixes of other // rows (that is, where row N+1 contains all the moves of row N and // perhaps extra moves as well). for (i=0; i < NumRows-1;) { uint clength = Row[i]->CommonLength (Row[i+1]); if (clength >= 2*OPTABLE_COLUMNS) { MergeRow (i); } else if (clength == Row[i]->Length) { MergeRow (i); } else { i++; } } // While the number of rows left is greater than the requested number, // keep picking a row and merging it into its successor: while (NumRows > TargetRows) { // Find the best row to merge with the row below it. // The first row can always be merged, other rows might not be // elegible for merging. Given rows N-1, N and N+1, row N can // only be merged into N+1 if CommonLength(N,N+1) is greater // than CommonLength(N-1,N). uint bestcost = NLines[0] + NLines[1]; uint bestrow = 0; for (i=1; i < NumRows-1; i++) { if (IsRowMergable (i)) { uint cost = NLines[i] + NLines[i+1]; if (cost < bestcost) { bestcost = cost; bestrow = i; } } } MergeRow (bestrow); } // Now go through all note lines and find the move at which they // differ from the main row line: for (i=0; i < NumRows; i++) { OpLine * rowline = Row[i]; OpLine * subline = Row[i]->Next; while (subline != NULL) { subline->NoteMoveNum = subline->CommonLength(rowline); subline = subline->Next; } } } // opSortT: // Structure used in OpTable::SortTableLines to keep track of // the frequency of a particular move, and the list of lines // that contain each unique move. // struct opSortT { const char * move; int count; OpLine * lineList; }; void OpTable::SortTableLines (OpLine ** lines, uint nlines, uint depth) { uint i, j, nUnique = 0; if (nlines < 2) { return; } if (depth >= OPLINE_MOVES) { return; } #ifdef WINCE opSortT * moves = (opSortT *) my_Tcl_Alloc(sizeof( opSortT [nlines])); #else opSortT * moves = new opSortT [nlines]; #endif for (i=0; i < nlines; i++) { bool newMove = true; for (j=0; j < nUnique; j++) { if (strEqual (lines[i]->GetMove(depth), moves[j].move)) { newMove = false; moves[j].count++; lines[i]->Next = moves[j].lineList; moves[j].lineList = lines[i]; } } if (newMove) { moves[nUnique].count = 1; moves[nUnique].move = lines[i]->GetMove(depth); lines[i]->Next = NULL; moves[nUnique].lineList = lines[i]; nUnique++; } } // Now moves[] stores the number of times each unique next move appears. // Sort moves[]: for (i=0; i < nUnique-1; i++) { for (j=i+1; j < nUnique; j++) { int result = moves[i].count - moves[j].count; // If both moves have one line, sort by average elo: if (result == 0 && moves[i].count == 1) { result = moves[i].lineList->AvgElo - moves[j].lineList->AvgElo; } // If still equal, sort by move notation: if (result == 0) { result = strCompare (moves[i].move, moves[j].move); } // Ensure short lines (with no more moves) come first: if (strEqual (moves[i].move, "")) { result = -1; } if (strEqual (moves[j].move, "")) { result = 1; } // Swap if necessary: if (result > 0) { opSortT temp = moves[i]; moves[i] = moves[j]; moves[j] = temp; } } } // Now rearrange the lines according to the order of moves: uint count = 0; for (i=0; i < nUnique; i++) { OpLine * line = moves[i].lineList; while (line != NULL) { lines[count] = line; count++; line = line->Next; } } // Now recursively sort each block of unique moves: count = 0; for (i=0; i < nUnique; i++) { SortTableLines (lines, moves[i].count, depth+1); lines += moves[i].count; } // Delete the moves array: #ifdef WINCE my_Tcl_Free((char*)moves); #else delete[] moves; #endif } void OpTable::PrintStemLine (DString * dstr, uint format, bool exclude) { for (uint i=0; i < StartLength; i++) { dstr->Append (" "); if (i % 2 == 0) { dstr->Append ((i+2)/2, "."); } OpLine::PrintMove (dstr, StartLine[StartLength-1-i], format); } if (exclude && ExcludeMove[0] != 0) { dstr->Append (" (X "); dstr->Append ((StartLength+2)/2, StartLength % 2 == 0 ? "." : "..."); OpLine::PrintMove (dstr, ExcludeMove, format); dstr->Append (")"); } } void OpTable::PrintTable (DString * dstr, const char * title, const char * comment) { ASSERT (title != NULL && comment != NULL); switch (Format) { case OPTABLE_LaTeX: PrintLaTeX (dstr, title, comment); break; case OPTABLE_HTML: PrintHTML (dstr, title, comment); break; case OPTABLE_Text: PrintText (dstr, title, comment, false); break; case OPTABLE_CText: PrintText (dstr, title, comment, true); break; } } void OpTable::PrintLaTeX (DString * dstr, const char * title, const char * comment) { uint i; MakeRows(); NumNotes = 0; // Increasing arraystretch above 1.0 adds more whitespace between // rows making the table more readable: dstr->Append ("\\renewcommand{\\arraystretch}{1.15}\n"); dstr->Append ("\\twocolumn[\n"); dstr->Append (title); dstr->Append ("\\begin{center}\n"); dstr->Append ("\\begin{tabular}{r*{", OPTABLE_COLUMNS); dstr->Append ("}{p{1.15cm}}r@{: }l}\n\\hline\n"); dstr->Append ("\\multicolumn{11}{p{13cm}}{\\textbf{"); PrintStemLine (dstr, OPTABLE_LaTeX, true); dstr->Append ("}: \\mbox{"); dstr->Append (" +", TheoryResults[RESULT_White]); dstr->Append (" =", TheoryResults[RESULT_Draw]); dstr->Append (" --", TheoryResults[RESULT_Black]); uint score = TheoryScore(); dstr->Append (" (", score/2); if (score % 2) { dstr->AddChar (DecimalChar); dstr->AddChar ('5'); } dstr->Append ("/", TheoryCount, ": "); dstr->Append ((TheoryPercent() + 5) / 10, "\\%)}"); dstr->Append ("} \\\\\n\\hline\n"); for (i=0; i < OPTABLE_COLUMNS; i++) { dstr->Append (" & ", i + ((StartLength + 2) / 2)); } dstr->Append (" & \\multicolumn{2}{c}{} \\\\\n"); //dstr->Append ("\\hline\n"); // Print each row: for (uint row=0; row < NumRows; row++) { uint lastNote = 0; dstr->Append ("\\textbf{", row+1, "}"); uint nSameMoves = 0; if (row > 0) { nSameMoves = Row[row]->CommonLength(Row[row-1]); } for (uint j=0; j < 2*OPTABLE_COLUMNS; j++) { //dstr->Append (j % 2 == 0 ? " & " : " \\newline "); if (j % 2 == 0) { dstr->Append (" & "); } else if (*(Row[row]->Move[j-1]) != '\0') { dstr->Append (" \\newline "); } if (j < nSameMoves) { dstr->Append ("..."); } else { OpLine::PrintMove (dstr, Row[row]->Move[j], OPTABLE_LaTeX); } // Check for a footnote: if (HasNotes (Row[row], j)) { dstr->Append ("$^{", NumNotes, "}"); // Compile following section to indicate number of games // and score in each note: #if 0 uint ncount = NoteCount(NumNotes); uint nscore = NoteScore(NumNotes); dstr->Append ("_{\\mbox{\\tiny ", ncount, ":"); if (ncount == 1) { switch (nscore) { case 100: dstr->Append ("+"); break; case 50: dstr->Append ("="); break; case 0: dstr->Append ("--"); break; } } else { dstr->Append (nscore, "\\%"); } dstr->Append ("}}"); #endif dstr->Append ("$"); lastNote = NumNotes; } else { lastNote = 0; } } // Print number of games in this row, and White percentage score: dstr->Append (" & ", NLines[row], " & "); uint score = 0; if (NLines[row] > 0) { score = (RowScore[row] * 50 + (NLines[row]/2)) / NLines[row]; } dstr->Append (score, "\\% \\\\\n"); } dstr->Append ("\\hline\n"); if (! strEqual (comment, "")) { dstr->Append ("\\multicolumn{11}{r}{\\em ", comment, "}\n"); } dstr->Append ("\\end{tabular}\n\\end{center}\n]\n"); PrintNotes (dstr, OPTABLE_LaTeX); } void OpTable::PrintHTML (DString * dstr, const char * title, const char * comment) { uint i; MakeRows(); NumNotes = 0; dstr->Append (title); dstr->Append ("
"); PrintStemLine (dstr, OPTABLE_HTML, true); dstr->Append (": "); dstr->Append (" +", TheoryResults[RESULT_White]); dstr->Append (" =", TheoryResults[RESULT_Draw]); dstr->Append (" -", TheoryResults[RESULT_Black]); uint score = TheoryScore(); dstr->Append (" (", score/2); if (score % 2) { dstr->AddChar (DecimalChar); dstr->AddChar ('5'); } dstr->Append ("/", TheoryCount, ": "); dstr->Append ((TheoryPercent() + 5) / 10, "%)\n"); dstr->Append ("\n"); dstr->Append (""); for (i=0; i < OPTABLE_COLUMNS; i++) { dstr->Append (""); } dstr->Append ("\n"); // Print each row: for (uint row=0; row < NumRows; row++) { dstr->Append ("\n"); uint nSameMoves = 0; if (row > 0) { nSameMoves = Row[row]->CommonLength(Row[row-1]); } for (uint j=0; j < 2*OPTABLE_COLUMNS; j++) { dstr->Append (j % 2 == 0 ? " \n"); } } // Print number of games in this row, and White percentage score: dstr->Append (" "); dstr->Append ("\n"); } dstr->Append ("
", i + ((StartLength + 2) / 2), "
", row+1, " " : "
"); if (j < nSameMoves) { dstr->Append ("..."); } else { OpLine::PrintMove (dstr, Row[row]->Move[j], OPTABLE_HTML); } // Check for a footnote: if (HasNotes (Row[row], j)) { dstr->Append ("Append ("\">", NumNotes, ""); } if (j % 2 != 0) { dstr->Append ("
", NLines[row], ": "); uint score = 0; if (NLines[row] > 0) { score = (RowScore[row] * 50 + (NLines[row]/2)) / NLines[row]; } dstr->Append (score, "%
"); if (! strEqual (comment, "")) { dstr->Append (comment, "\n"); } dstr->Append ("
"); PrintNotes (dstr, OPTABLE_HTML); } void OpTable::PrintText (DString * dstr, const char * title, const char * comment, bool ctext) { uint i; MakeRows(); NumNotes = 0; const uint cellBytes = 9; char cell [16]; const char * hrule = "-------------------------------------------------------------------------------\n"; DString * dtemp = new DString; dstr->Append (title, "\n"); if (ctext) { dstr->Append (""); } dstr->Append (hrule, " "); if (StartLength > 0) { if (ctext) { dstr->Append ("Append ("}>"); } PrintStemLine (dstr, OPTABLE_Text, true); if (ctext) { dstr->Append (""); } dstr->Append (":"); } dstr->Append (" +", TheoryResults[RESULT_White]); dstr->Append (" =", TheoryResults[RESULT_Draw]); dstr->Append (" -", TheoryResults[RESULT_Black]); uint score = TheoryScore(); dstr->Append (" (", score/2); if (score % 2) { dstr->AddChar (DecimalChar); dstr->AddChar ('5'); } dstr->Append ("/", TheoryCount, ": "); dstr->Append ((TheoryPercent() + 5) / 10, "%)\n"); dstr->Append (hrule, " "); for (i=0; i < OPTABLE_COLUMNS; i++) { sprintf (cell, " %3u ", i + ((StartLength + 2) / 2)); dstr->Append (cell); } dstr->Append ("\n", hrule); DString * wstr = new DString; DString * bstr = new DString; // Print each row: for (uint row=0; row < NumRows; row++) { wstr->Clear(); bstr->Clear(); bool wtm = true; char tempStr [8]; sprintf (tempStr, "%2u ", row+1); wstr->Append (tempStr); bstr->Append (" "); uint nSameMoves = 0; if (row > 0) { nSameMoves = Row[row]->CommonLength(Row[row-1]); } for (uint j=0; j < 2*OPTABLE_COLUMNS; j++) { uint width = 0; dtemp->Clear(); if (j < nSameMoves) { dtemp->Append ("..."); width += 3; } else { if (ctext && j >= nSameMoves) { dtemp->Append ("Append (" "); OpLine::PrintMove (dtemp, Row[row]->Move[x], OPTABLE_Compact); } dtemp->Append ("}>"); } uint oldwidth = dtemp->Length(); OpLine::PrintMove (dtemp, Row[row]->Move[j], OPTABLE_Compact); width += dtemp->Length() - oldwidth; if (ctext && j >= nSameMoves) { dtemp->Append (""); } } // Check for a footnote: if (HasNotes (Row[row], j)) { if (ctext) { dtemp->Append (""); dtemp->Append (""); } uint oldwidth = dtemp->Length(); dtemp->Append ("[", NumNotes, "]"); width += dtemp->Length() - oldwidth; if (ctext) { dtemp->Append (""); } } // Pad width to full cell width: while (width < cellBytes) { dtemp->AddChar (' '); width++; } if (wtm) { wtm = false; wstr->Append (dtemp->Data()); } else { wtm = true; bstr->Append (dtemp->Data()); } } // Print number of games in this row, and White percentage score: sprintf (cell, "%2u:", NLines[row]); wstr->Append (cell); uint score = 0; if (NLines[row] > 0) { score = (RowScore[row] * 50 + (NLines[row]/2)) / NLines[row]; } sprintf (cell, "%2u%%", score); bstr->Append (cell); dstr->Append (wstr->Data(), "\n", bstr->Data(), "\n\n"); } dstr->Append (hrule); if (! strEqual (comment, "")) { dstr->Append (comment, "\n"); } dstr->Append ("\n"); delete dtemp; if (ctext) { dstr->Append (""); } PrintNotes (dstr, ctext ? OPTABLE_CText : OPTABLE_Text); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::HasNotes(): // Determines if a particular move number of a main row line has // any footnotes. If it does, the NumNotes counter is incremented, // all footnote lines for the new footnote have their NoteMoveNum // set to the new footnote number, and true is returned. bool OpTable::HasNotes (OpLine * line, uint movenum) { // Check for a footnote: there will be one if this is the last // move on the row that will appear in the table, or if there // is a subline that diverges at this move. OpLine * subline = line->Next; bool noteSeen = false; bool lastMoveInRow = false; if (movenum == line->Length-1) { lastMoveInRow = true; } if ((movenum == 2*OPTABLE_COLUMNS - 1) && (movenum < line->Length)) { lastMoveInRow = true; } if (lastMoveInRow) { noteSeen = true; NumNotes++; line->NoteMoveNum = movenum+1; line->NoteNumber = NumNotes; } while (subline != NULL) { if (subline->NoteMoveNum == movenum) { if (! noteSeen) { noteSeen = true; NumNotes++; } subline->NoteNumber = NumNotes; } if (subline->NoteNumber == 0 && lastMoveInRow) { subline->NoteNumber = NumNotes; subline->NoteMoveNum = movenum+1; } subline = subline->Next; } return noteSeen; } uint OpTable::NoteCount (uint note) { uint count = 0; for (uint n = 0; n < NumTableLines; n++) { if (Line[n]->NoteNumber == note) { count++; } } return count; } uint OpTable::NoteScore (uint note) { uint count = 0; uint score = 0; for (uint n = 0; n < NumTableLines; n++) { if (Line[n]->NoteNumber == note) { count++; score += RESULT_SCORE[Line[n]->Result]; } } if (count > 0) { score = (score * 50 + (count/2)) / count; } return score; } void OpTable::PrintNotes (DString * dstr, uint format) { if (NumNotes == 0) { return; } const char * preNotesList = "\n"; const char * postNotesList = "\n"; const char * para = "\n "; const char * endNote = "\n\n"; const char * nextGame = ";\n "; if (format == OPTABLE_LaTeX) { para = "\n\n"; nextGame = ";\n"; } else if (format == OPTABLE_HTML) { preNotesList = "\n\n
    \n"; postNotesList = "
\n"; para = "
\n"; nextGame = ";\n"; endNote = "

\n"; } else if (format == OPTABLE_CText) { nextGame = "; "; endNote = "\n\n"; para = "\n "; } dstr->Append (preNotesList); for (uint note=1; note <= NumNotes; note++) { if (format == OPTABLE_LaTeX) { dstr->Append ("\\notenum{", note, "}\n"); } else if (format == OPTABLE_HTML) { //dstr->Append ("

  • ", note, " "); dstr->Append ("
  • "); } else if (format == OPTABLE_CText) { dstr->Append (""); dstr->Append (""); dstr->Append ("[", note, "]"); dstr->Append (" "); } else { dstr->Append ("[*", note, "*] "); } OpLine * prevLine = NULL; for (int n = NumTableLines-1; n >= 0; n--) { if (Line[n]->NoteNumber == note) { uint mnum = Line[n]->NoteMoveNum; if (prevLine != NULL) { mnum = Line[n]->CommonLength(prevLine); if (mnum <= Line[n]->NoteMoveNum && prevLine->Length > mnum) { dstr->Append (".", para); } else { dstr->Append (nextGame); } } Line[n]->PrintNote (dstr, (StartLength+2) / 2, mnum, format); prevLine = Line[n]; } } dstr->Append (".", endNote); } dstr->Append (postNotesList); } void OpTable::BestGames (DString * dstr, uint count, const char * rtype) { enum { BEST_White, BEST_Black, BEST_AvgElo, BEST_Oldest, BEST_Newest }; int rt = BEST_AvgElo; switch (rtype[0]) { case 'W': case 'w': // Fastest White wins, ties resolved by AvgElo rt = BEST_White; break; case 'B': case 'b': // Fastest Black wins, ties resolved by AvgElo rt = BEST_Black; break; case 'A': case 'a': // Highest average rating rt = BEST_AvgElo; break; case 'O': case 'o': // Oldest games rt = BEST_Oldest; break; case 'N': case 'n': // Newest games rt = BEST_Newest; break; default: return; } const char * preNum = " "; const char * postNum = ": "; const char * endLine = "\n"; const char * preList = ""; const char * postList = ""; if (Format == OPTABLE_LaTeX) { preNum = "\\textbf{"; postNum = ":} "; endLine = "\\\\\n"; } else if (Format == OPTABLE_HTML) { preNum = ""; postNum = ": "; endLine = "
    \n"; } uint i; for (i=0; i < NumLines; i++) { Line[i]->Selected = false; } dstr->Append (preList); bool printFullDate = (rt == BEST_Oldest || rt == BEST_Newest); for (uint c=1; c <= count; c++) { uint bestValue = 0; int bestIndex = -1; for (i=0; i < NumLines; i++) { if (Line[i]->Selected) { continue; } uint v = 0; switch (rt) { case BEST_White: if (Line[i]->Result != RESULT_White) { continue; } v = 1000 - Line[i]->NumMoves; v = (v << 12) + Line[i]->AvgElo; break; case BEST_Black: if (Line[i]->Result != RESULT_Black) { continue; } v = 1000 - Line[i]->NumMoves; v = (v << 12) + Line[i]->AvgElo; break; case BEST_AvgElo: v = Line[i]->AvgElo; break; case BEST_Oldest: v = DATE_MAKE(YEAR_MAX,12,31) - Line[i]->Date; if (Line[i]->Date == ZERO_DATE) { v = 0; } break; case BEST_Newest: v = Line[i]->Date; break; default: ASSERT(0); break; } if (v >= bestValue) { bestValue = v; bestIndex = i; } } if (bestIndex < 0) { break; } char tempStr [10]; sprintf (tempStr, "%2u", c); dstr->Append (preNum, tempStr, postNum); Line[bestIndex]->PrintSummary (dstr, Format, printFullDate, true); if (Line[bestIndex]->NoteNumber != 0) { if (Format == OPTABLE_LaTeX) { dstr->Append (" $^{", Line[bestIndex]->NoteNumber, "}$"); } else if (Format == OPTABLE_HTML) { dstr->Append (" [NoteNumber); dstr->Append ("\">", Line[bestIndex]->NoteNumber, "]"); } else if (Format == OPTABLE_CText) { dstr->Append (" NoteNumber); dstr->Append (">[", Line[bestIndex]->NoteNumber, "]"); } else { dstr->Append (" [", Line[bestIndex]->NoteNumber, "]"); } } dstr->Append (endLine); Line[bestIndex]->Selected = true; } dstr->Append (postList); } // playerFreqT: // Used in OpTable::TopPlayers() to find the most // frequent players of a particular color. // #define PLAYERFREQ_MAXNOTES 8 struct playerFreqT { const char * name; uint frequency; eloT minElo; eloT maxElo; uint minYear; uint maxYear; uint score; uint oppEloSum; // Sum of opponent Elos. uint oppEloCount; // Number of games where opponent has Elo rating. uint oppEloScore; // Score in games where opponent has Elo rating. uint noteNumber [PLAYERFREQ_MAXNOTES + 1]; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::TopPlayers: // Returns (through dstr) a list of the most frequent players // of the report line, as White or Black. void OpTable::TopPlayers (DString * dstr, colorT c, uint count) { uint i; // Set up zero-filled array of player frequencies: uint largestPlayerID = 0; for (i=0; i < NumLines; i++) { uint id = (c == WHITE ? Line[i]->WhiteID : Line[i]->BlackID); if (id > largestPlayerID) { largestPlayerID = id; } } #ifdef WINCE playerFreqT * pf = (playerFreqT *) my_Tcl_Alloc(sizeof(playerFreqT [largestPlayerID + 1])); #else playerFreqT * pf = new playerFreqT [largestPlayerID + 1]; #endif for (i=0; i <= largestPlayerID; i++) { pf[i].name = NULL; pf[i].frequency = 0; pf[i].minElo = pf[i].maxElo = 0; pf[i].score = 0; pf[i].minYear = pf[i].maxYear = 0; pf[i].oppEloSum = pf[i].oppEloCount = pf[i].oppEloScore = 0; for (uint n=0; n <= PLAYERFREQ_MAXNOTES; n++) { pf[i].noteNumber[n] = 0; } } // Fill in the player frequencies array: for (i=0; i < NumLines; i++) { uint id = 0; eloT elo = 0; eloT oppElo = 0; const char * name = NULL; uint score = 0; uint year = date_GetYear (Line[i]->Date); OpLine * line = Line[i]; if (c == WHITE) { id = line->WhiteID; elo = line->WhiteElo; oppElo = line->BlackElo; name = line->White; score = RESULT_SCORE[line->Result]; } else { id = line->BlackID; elo = line->BlackElo; oppElo = line->WhiteElo; name = line->Black; score = RESULT_SCORE[ RESULT_OPPOSITE[line->Result] ]; } ASSERT (id <= largestPlayerID); pf[id].frequency++; pf[id].name = name; pf[id].score += score; if (elo != 0) { if (pf[id].minElo == 0) { pf[id].minElo = elo; } if (elo < pf[id].minElo) { pf[id].minElo = elo; } if (elo > pf[id].maxElo) { pf[id].maxElo = elo; } } if (oppElo != 0) { pf[id].oppEloCount++; pf[id].oppEloSum += oppElo; pf[id].oppEloScore += score; } if (year != 0) { if (pf[id].minYear == 0) { pf[id].minYear = year; } if (year < pf[id].minYear) { pf[id].minYear = year; } if (year > pf[id].maxYear) { pf[id].maxYear = year; } } if (Line[i]->NoteNumber != 0) { for (uint n=0; n <= PLAYERFREQ_MAXNOTES; n++) { if (pf[id].noteNumber[n] == Line[i]->NoteNumber) { break; } if (pf[id].noteNumber[n] == 0) { pf[id].noteNumber[n] = Line[i]->NoteNumber; break; } } } } const char * preNum = " "; const char * postNum = ":"; const char * preElo = ""; const char * postElo = ""; const char * inRange = "-"; const char * percentStr = "%"; const char * startTable = ""; const char * endTable = ""; const char * startRow = ""; const char * endRow = "\n"; const char * startName = ""; const char * endName = ""; const char * nextCell = " "; const char * startNotes = " ["; const char * endNotes = "]"; if (Format == OPTABLE_HTML) { startTable = "\n"; endTable = "
    \n"; startRow = ""; endRow = "\n"; nextCell = ""; // startTable = "
    \n"; endTable = "
    \n"; } if (Format == OPTABLE_CText) { startRow = ""; startName = ""; startNotes = " ["; endNotes = "]"; } if (Format == OPTABLE_LaTeX) { startTable = "\n\\begin{tabular}{rrrrrl}\n"; endTable = "\\end{tabular}\n"; startRow = " "; endRow = " \\\\ \n"; nextCell = " & "; percentStr = "\\%"; preNum = "\\textbf{"; postNum = ":}"; preElo = " \\emph{"; postElo = "}"; inRange = "--"; startNotes = " $^{"; endNotes = "}$"; } dstr->Append (startTable); // Now find the "count" most frequent players: for (uint n=1; n <= count; n++) { uint maxFreq = 0; uint maxElo = 0; int index = 0; bool found = false; for (uint id=0; id <= largestPlayerID; id++) { uint freq = pf[id].frequency; uint elo = pf[id].maxElo; if (freq == 0) { continue; } if ((freq > maxFreq) || (freq == maxFreq && elo > maxElo)) { found = true; index = id; maxFreq = freq; maxElo = elo; } } if (found) { char tempStr [100]; sprintf (tempStr, "%2u", n); dstr->Append (startRow, preNum, tempStr, postNum); uint freq = pf[index].frequency; ASSERT (freq > 0); ASSERT (pf[index].name != NULL); sprintf (tempStr, "%3u", freq); dstr->Append (nextCell, tempStr); // Print the year range in which the player played this line: uint minYear = pf[index].minYear; uint maxYear = pf[index].maxYear; if (maxYear == 0) { strCopy (tempStr, " "); } else if (minYear == maxYear) { sprintf (tempStr, " %4u", minYear); } else { sprintf (tempStr, "%4u%s%4u", minYear, inRange, maxYear); } dstr->Append (nextCell, " ", tempStr); // Print the score with this line: uint score = (50 * pf[index].score + (freq / 2)) / freq; sprintf (tempStr, "%3u%s", score, percentStr); dstr->Append (nextCell, tempStr); // Print peak Elo while playing this line: uint maxElo = pf[index].maxElo; if (maxElo == 0) { sprintf (tempStr, "%s %s", preElo, postElo); } else { sprintf (tempStr, "%s%4u%s", preElo, maxElo, postElo); } dstr->Append (nextCell, " ", tempStr); dstr->Append (nextCell, " ", startName); if (Format == OPTABLE_CText) { dstr->Append (""); } dstr->Append (pf[index].name); if (Format == OPTABLE_CText) { dstr->Append (""); } dstr->Append (endName); // Print the note numbers containing games by this player: if (pf[index].noteNumber[0] != 0) { dstr->Append (startNotes); for (uint n=0; n < PLAYERFREQ_MAXNOTES; n++) { if (pf[index].noteNumber[n] == 0) { break; } if (n > 0) { dstr->Append (","); } if (Format == OPTABLE_CText) { dstr->Append ("Append (">", pf[index].noteNumber[n], ""); } else { dstr->Append (pf[index].noteNumber[n]); } } if (pf[index].noteNumber[PLAYERFREQ_MAXNOTES] != 0) { dstr->Append (",..."); } dstr->Append (endNotes); } dstr->Append (endRow); pf[index].frequency = 0; } } dstr->Append (endTable); // Delete temporary player frequency data: #ifdef WINCE my_Tcl_Free((char*)pf); #else delete[] pf; #endif } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::TopEcoCodes: // Returns (through dstr) a list of the most frequent ECO code // sections of the report games. // This is generally only useful for a Player report. void OpTable::TopEcoCodes (DString * dstr, uint count) { uint ecoCount [50]; uint ecoScore [50]; uint ecoSubCount[50][10]; for (uint ecoGroup=0; ecoGroup < 50; ecoGroup++) { ecoCount[ecoGroup] = 0; ecoScore[ecoGroup] = 0; for (uint subCode = 0; subCode < 10; subCode++) { ecoSubCount[ecoGroup][subCode] = 0; } } // Fill in the ECO frequencies array: for (uint i=0; i < NumLines; i++) { int ecoClass = -1; int ecoSubCode = -1; ecoT ecoCode = Line[i]->EcoCode; if (ecoCode != ECO_None) { ecoStringT ecoStr; eco_ToBasicString (ecoCode, ecoStr); if (ecoStr[0] != 0) { ecoClass = ((ecoStr[0] - 'A') * 10) + (ecoStr[1] - '0'); if (ecoClass < 0 || ecoClass >= 50) { ecoClass = -1; } ecoSubCode = (ecoStr[2] - '0'); } } if (ecoClass >= 0) { ecoCount[ecoClass]++; ecoScore[ecoClass] += RESULT_SCORE[Line[i]->Result]; ecoSubCount[ecoClass][ecoSubCode]++; } } const char * preNum = " "; const char * postNum = ":"; const char * inRange = "-"; const char * percentStr = "%"; const char * startTable = ""; const char * endTable = ""; const char * startRow = ""; const char * endRow = "\n"; const char * nextCell = " "; if (Format == OPTABLE_HTML) { startTable = "\n"; endTable = "
    \n"; startRow = ""; endRow = "\n"; nextCell = ""; // startTable = "
    \n"; endTable = "
    \n"; } if (Format == OPTABLE_CText) { startTable = ""; endTable = ""; } if (Format == OPTABLE_LaTeX) { startTable = "\n\\begin{tabular}{rlrr}\n"; endTable = "\\end{tabular}\n"; startRow = " "; endRow = " \\\\ \n"; nextCell = " & "; percentStr = "\\%"; preNum = "\\textbf{"; postNum = ":}"; inRange = "--"; } dstr->Append (startTable); // Now find the "count" most frequent ECO groups: for (uint n=1; n <= count; n++) { uint maxFreq = 0; uint ecoClass = 0; for (uint i=0; i < 50; i++) { if (ecoCount[i] > maxFreq) { ecoClass = i; maxFreq = ecoCount[i]; } } if (maxFreq > 0) { char ecoStr[4]; strCopy (ecoStr, "A00-E99"); ecoStr[0] = (ecoClass / 10) + 'A'; ecoStr[1] = (ecoClass % 10) + '0'; ecoStr[2] = '0'; ecoStr[3] = 0; char tempStr [100]; sprintf (tempStr, "%2u", n); dstr->Append (startRow, preNum, tempStr, postNum); dstr->Append (nextCell, ecoStr); ecoStr[2] = '9'; dstr->Append (inRange, ecoStr); sprintf (tempStr, "%3u", maxFreq); dstr->Append (nextCell, tempStr); uint score = (50 * ecoScore[ecoClass] + (maxFreq / 2)) / maxFreq; sprintf (tempStr, "%3u%s", score, percentStr); dstr->Append (nextCell, tempStr); dstr->Append (endRow); ecoCount[ecoClass] = 0; } } dstr->Append (endTable); } uint OpTable::AvgLength (resultT result) { uint n = 0; uint sum = 0; for (uint i=0; i < NumLines; i++) { if (Line[i]->Result == result) { n++; sum += Line[i]->NumMoves; } } if (n == 0) { return 0; } return (sum / n); } uint OpTable::AvgElo (colorT color, uint * count, uint * oppScore, uint * oppPerf) { uint n = 0; uint sum = 0; uint score = 0; for (uint i=0; i < NumLines; i++) { eloT elo = (color == WHITE ? Line[i]->WhiteElo : Line[i]->BlackElo); if (elo > 0) { n++; sum += elo; resultT r = Line[i]->Result; if (color == WHITE) { r = RESULT_OPPOSITE[r]; } if (r == RESULT_White) { score += 2; } else if (r == RESULT_Draw || r == RESULT_None) { score++; } } } if (count != NULL) { *count = n; } if (n == 0) { if (oppScore != NULL) { *oppScore = 0; } if (oppPerf != NULL) { *oppPerf = 0; } return 0; } uint avgElo = (sum + (n/2)) / n; uint percent = ((score * 50) + (n/2)) / n; if (percent > 100) { percent = 100; } if (oppScore != NULL) { *oppScore = percent; } if (oppPerf != NULL) { #ifndef WINCE *oppPerf = Crosstable::Performance (avgElo, percent); #endif } return (avgElo); } uint OpTable::AddMoveOrder (Game * g) { uint id = 0; int index = -1; g->MoveToPly(0); DString * dstr = new DString; g->GetPartialMoveList (dstr, g->GetCurrentPly()); // Search for this move order in the current list: for (uint i=0; i < NumMoveOrders; i++) { if (strEqual (dstr->Data(), MoveOrder[i].moves)) { index = i; MoveOrder[i].count++; id = MoveOrder[i].id; break; } } // Add as a new move order if it was not found: if (index < 0) { if (NumMoveOrders == OPTABLE_MAX_LINES) { return 0; } MoveOrder[NumMoveOrders].count = 1; MoveOrder[NumMoveOrders].moves = strDuplicate (dstr->Data()); MoveOrder[NumMoveOrders].id = NumMoveOrders + 1; id = MoveOrder[NumMoveOrders].id; index = NumMoveOrders; NumMoveOrders++; } delete dstr; // Keep the array in sorted order, to avoid needing to sort it later: // The list is sorted by count (highest first), with tied counts // sorted alphabetically by the move string. while (1) { ASSERT (index >= 0); if (index <= 0) { break; } if (MoveOrder[index].count < MoveOrder[index-1].count) { break; } if (MoveOrder[index].count == MoveOrder[index-1].count && strCompare(MoveOrder[index].moves, MoveOrder[index-1].moves) > 0) { break; } // Move the record for the current move order up one slot by // swapping it with the record before it: char * tempMoves = MoveOrder[index].moves; MoveOrder[index].moves = MoveOrder[index-1].moves; MoveOrder[index-1].moves = tempMoves; uint tempCount = MoveOrder[index].count; MoveOrder[index].count = MoveOrder[index-1].count; MoveOrder[index-1].count = tempCount; uint tempID = MoveOrder[index].id; MoveOrder[index].id = MoveOrder[index-1].id; MoveOrder[index-1].id = tempID; index--; } return id; } void OpTable::PopularMoveOrders (DString * dstr, uint count) { const char * preNum = " "; const char * postNum = ": "; const char * endLine = "\n"; const char * preList = ""; const char * postList = ""; const char * preCount = " ("; const char * postCount = ")"; if (Format == OPTABLE_LaTeX) { preNum = "\\textbf{"; postNum = ":} "; endLine = "\\\\\n"; preCount = " \\textbf{("; postCount = ")}"; } else if (Format == OPTABLE_HTML) { preNum = ""; postNum = ": "; endLine = "
    \n"; } if (count == 0) { // Just return number of move orders counted, as a string: dstr->Append (NumMoveOrders); return; } dstr->Append (preList); for (uint i=0; i < count; i++) { if (i == NumMoveOrders) { break; } char tempStr [10]; sprintf (tempStr, "%2u", i+1); dstr->Append (preNum, tempStr, postNum); if (Format == OPTABLE_CText) { dstr->Append (""); dstr->Append ("Append (MoveOrder[i].id, "; ::windows::stats::Refresh>"); } OpLine::PrintMove (dstr, MoveOrder[i].moves, Format); dstr->Append (preCount, MoveOrder[i].count, postCount); if (Format == OPTABLE_CText) { dstr->Append (""); } dstr->Append (endLine); } dstr->Append (postList); } void OpTable::ThemeReport (DString * dstr, uint argc, const char ** argv) { const char * endLine = "\n"; const char * percentStr = "%"; const char * startTable = ""; const char * endTable = ""; const char * startRow = " "; const char * endRow = "\n"; const char * nextCell = " "; const char * nextCellRight = " "; if (argc != (NUM_POSTHEMES + 1)) { return; } if (Format == OPTABLE_HTML) { endLine = "
    \n"; startTable = "\n"; endTable = "
    \n"; startRow = ""; endRow = "\n"; nextCell = ""; nextCellRight = ""; //startTable = "
    \n"; endTable = "
    \n"; } if (Format == OPTABLE_CText) { startTable = ""; endTable = ""; } if (Format == OPTABLE_LaTeX) { percentStr = "\\%"; startTable = "\n\\begin{tabular}{lrlr}\n"; endTable = "\\end{tabular}\n"; startRow = ""; endRow = " \\\\ \n"; nextCell = " & "; nextCellRight = nextCell; } const char * themeName [NUM_POSTHEMES] = {NULL}; themeName [POSTHEME_CastSame] = "Same-side castling: "; themeName [POSTHEME_CastOpp] = "Opposite castling: "; themeName [POSTHEME_QueenSwap] = "Queens exchanged: "; themeName [POSTHEME_OneBPair] = "Only 1 side has Bishop pair:"; themeName [POSTHEME_Kstorm] = "Kingside pawn storm: "; themeName [POSTHEME_WIQP] = "White Isolated Queen Pawn: "; themeName [POSTHEME_BIQP] = "Black Isolated Queen Pawn: "; themeName [POSTHEME_WAdvPawn] = "White Pawn on 5/6/7th rank: "; themeName [POSTHEME_BAdvPawn] = "Black Pawn on 2/3/4th rank: "; themeName [POSTHEME_OpenFyle] = "Open c/d/e file: "; char tempStr [250]; //sprintf (tempStr, argv[0], (StartLength + (OPTABLE_COLUMNS * 2)) / 2); sprintf (tempStr, argv[0], MaxThemeMoveNumber); dstr->Append (tempStr, endLine); argc--; argv++; dstr->Append (startTable); uint leftcol = (NUM_POSTHEMES + 1) / 2; uint longestLength = 0; for (uint i=0; i < NUM_POSTHEMES; i++) { uint len = strLength (argv[i]); if (len > longestLength) { longestLength = len; } } uint theme = 0; while (true) { dstr->Append (theme < leftcol ? startRow : nextCell); strPad (tempStr, argv[theme], longestLength, ' '); if (Format == OPTABLE_CText) { dstr->Append ("Append (theme, "; ::windows::stats::Refresh>"); } dstr->Append (" ", tempStr); if (Format == OPTABLE_CText) { dstr->Append (""); } dstr->Append (nextCellRight); uint percent = 0; if (FilterCount > 0) { percent = ((100 * ThemeCount[theme]) + (FilterCount/2)) / FilterCount; } char rstr [16]; sprintf (rstr, "%3u", percent); dstr->Append (rstr, percentStr); if (theme < leftcol) { dstr->Append (" "); } else { dstr->Append (endRow); } if (theme == NUM_POSTHEMES - 1) { break; } if (theme < leftcol) { theme += leftcol; } else { theme -= leftcol; theme++; } } if (NUM_POSTHEMES % 2 == 1) { dstr->Append (endRow); } dstr->Append (endTable); } void OpTable::AddEndMaterial (matSigT msig, bool inFilter) { uint idx = endgameTheme (msig); EndgameCount [OPTABLE_All][idx]++; if (inFilter) { EndgameCount [OPTABLE_Line][idx]++; } } void OpTable::EndMaterialReport (DString * dstr, const char * repGames, const char * allGames) { const char * startTable = ""; const char * endTable = ""; const char * startRow = ""; const char * endRow = "\n"; const char * nextCell = " "; const char * percentStr = "%"; const char * preNum = ""; const char * postNum = ""; if (Format == OPTABLE_HTML) { startTable = "\n"; endTable = "
    \n"; startRow = ""; endRow = "\n"; nextCell = ""; // startTable = "
    \n"; endTable = "
    \n"; } if (Format == OPTABLE_CText) { startTable = ""; endTable = ""; } if (Format == OPTABLE_LaTeX) { startTable = "\n\\begin{tabular}{l*{8}{p{0.8cm}}}\n\\hline\n"; endTable = "\\hline\n\\end{tabular}\n"; startRow = ""; endRow = " \\\\ \n"; nextCell = " & "; percentStr = "\\%"; preNum = "\\multicolumn{1}{r}{"; postNum = "}"; } char numStr [16]; dstr->Append (startTable); uint length[2]; length[OPTABLE_Line] = strLength (repGames); length[OPTABLE_All] = strLength (allGames); if (Format == OPTABLE_LaTeX) { const char * q = " & \\hspace*{\\fill}{\\F Q}\\hspace*{\\fill}"; const char * r = " & \\hspace*{\\fill}{\\F R}\\hspace*{\\fill}"; const char * qr = " & \\hspace*{\\fill}{\\F QR}\\hspace*{\\fill}"; const char * bn = " & \\hspace*{\\fill}{\\F BN}\\hspace*{\\fill}"; const char * p = " & \\hspace*{\\fill}{{\\F p}}\\hspace*{\\fill}"; const char * x = " & "; dstr->Append (startRow); dstr->Append (x, x, x, r); dstr->Append (x, q, x, qr); dstr->Append (endRow, startRow); dstr->Append (p, bn, r, bn); dstr->Append (q, bn, qr, bn); dstr->Append (endRow, "\\hline\n"); } else { dstr->Append(startRow); uint len = length[OPTABLE_Line]; if (length[OPTABLE_All] > len) { len = length[OPTABLE_All]; } len++; for (uint space=0; space < len; space++) { dstr->AddChar (' '); } char t1[10]; char t2[10]; strcpy(t1, " P"); strcpy(t2, " BN"); transPieces(t1); transPieces(t2); dstr->Append (nextCell, t1, nextCell, t2); strcpy(t1, " R"); strcpy(t2, " R,BN"); transPieces(t1); transPieces(t2); dstr->Append (nextCell, t1, nextCell, t2); strcpy(t1, " Q"); strcpy(t2, " Q,BN"); transPieces(t1); transPieces(t2); dstr->Append (nextCell, t1, nextCell, t2); strcpy(t1, " Q,R"); strcpy(t2, "Q,R,BN"); transPieces(t1); transPieces(t2); dstr->Append (nextCell, t1, nextCell, t2); // dstr->Append (nextCell, " P", nextCell, " BN"); // dstr->Append (nextCell, " R", nextCell, " R,BN"); // dstr->Append (nextCell, " Q", nextCell, " Q,BN"); // dstr->Append (nextCell, " Q,R", nextCell, "Q,R,BN"); dstr->Append (endRow); } const char * rowName [2] = { repGames, allGames }; for (uint t = OPTABLE_Line; t <= OPTABLE_All; t++) { dstr->AddChar (' '); dstr->Append (startRow, rowName[t]); int diff = length[1-t] - length[t]; while (diff > 0) { dstr->AddChar (' '); diff--; } uint i, sum = 0; for (i=0; i < NUM_EGTHEMES; i++) { sum += EndgameCount[t][i]; } for (i=0; i < NUM_EGTHEMES; i++) { uint pc = 0; if (sum > 0) { pc = ((100 * EndgameCount[t][i]) + (sum/2)) / sum; } sprintf (numStr, "%5u", pc); dstr->Append (nextCell); if (Format == OPTABLE_CText && t == OPTABLE_Line) { dstr->Append ("Append (" select end ", i, "; ::windows::stats::Refresh>"); } dstr->Append (preNum, numStr, percentStr, postNum); if (Format == OPTABLE_CText && t == OPTABLE_Line) { dstr->Append (""); } } dstr->Append (endRow); } dstr->Append (endTable); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // OpTable::SelectGames: // Given an endgame or opening theme number or note // number, returns an array with two integer elements // for every game in the opening report that matches the // specified theme or note. The type is specified by // the character 'e' for endgame theme, 'o' for opening // theme, or 'n' for note number. // Each pair of elements contains the game number, and // its start ply. The caller is responsible for deleting // the allocated array, which ends with a (0,0) pair. uint * OpTable::SelectGames (char type, uint number) { #ifdef WINCE uint * matches = (uint *) my_Tcl_Alloc(sizeof( uint [NumLines * 2 + 2])); #else uint * matches = new uint [NumLines * 2 + 2]; #endif uint * match = matches; for (uint i=0; i < NumLines; i++) { OpLine * line = Line[i]; if (line == NULL) { continue; } if (line->GameNumber == 0) { continue; } bool selected = false; if (type == 'e') { // Only games from one endgame classification: if (line->EgTheme == number) { selected = true; } } else if (type == 't') { // Only games from one positional theme: if (number < NUM_POSTHEMES && line->Theme[number] >= POSTHEME_THRESHOLD) { selected = true; } } else if (type == 'n') { // Only games from one note number: if (line->NoteNumber == number) { selected = true; } } else if (type == 'm') { // Only games from one move order: if (line->MoveOrderID == number) { selected = true; } } else if (type == 'a') { // All games: selected = true; } if (selected) { *match++ = line->GameNumber; *match++ = line->StartPly; } } *match++ = 0; *match++ = 0; return matches; } ////////////////////////////////////////////////////////////////////// // End of: optable.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/position.cpp0000644000175000017500000033225111727223077016603 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: position.cpp // Position class methods // // Part of: Scid (Shane's Chess Information Database) // Version: 3.5 // // Notice: Copyright (c) 1999-2003 Shane Hudson. All rights reserved. // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "common.h" #include "position.h" #include "attacks.h" #include "misc.h" #include "sqlist.h" #include "sqset.h" #include "hash.h" #include #include #include static uint hashVal [16][64]; static uint stdStartHash = 0; static uint stdStartPawnHash = 0; // HASH and UNHASH are identical: XOR the hash value for a (piece,square). #define HASH(h,p,sq) (h) ^= hashVal[(p)][(sq)] #define UNHASH(h,p,sq) (h) ^= hashVal[(p)][(sq)] Position::Position(const Position& p) { memcpy (this, &p, sizeof(Position)); } inline void Position::AddHash (pieceT p, squareT sq) { HASH (Hash, p, sq); if (piece_Type(p) == PAWN) { HASH (PawnHash, p, sq); } } inline void Position::UnHash (pieceT p, squareT sq) { UNHASH (Hash, p, sq); if (piece_Type(p) == PAWN) { UNHASH (PawnHash, p, sq); } } inline void Position::AddToBoard (pieceT p, squareT sq) { ASSERT (Board[sq] == EMPTY); Board[sq] = p; NumOnRank[p][square_Rank(sq)]++; NumOnFyle[p][square_Fyle(sq)]++; NumOnLeftDiag[p][square_LeftDiag(sq)]++; NumOnRightDiag[p][square_RightDiag(sq)]++; NumOnSquareColor[p][square_Color(sq)]++; AddHash (p, sq); } inline void Position::RemoveFromBoard (pieceT p, squareT sq) { ASSERT (Board[sq] == p); Board[sq] = EMPTY; NumOnRank[p][square_Rank(sq)]--; NumOnFyle[p][square_Fyle(sq)]--; NumOnLeftDiag[p][square_LeftDiag(sq)]--; NumOnRightDiag[p][square_RightDiag(sq)]--; NumOnSquareColor[p][square_Color(sq)]--; UnHash (p, sq); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // initHashValues: // Initialises the table of Zobrist hash values. void initHashValues (void) { // Ensure we set up the hash values only once: static int firstCall = 1; if (! firstCall) { return; } firstCall = 0; // First, set all values to 0: uint sq; for (uint p = 0; p < 16; p++) { for (sq = A1; sq <= H8; sq++) { hashVal[p][sq] = 0; } } // Fill in the hash values for each valid [piece][square] index, // using a table of pre-generated good values: const unsigned int * hash = goodHashValues; for (sq=A1; sq <= H8; sq++) { hashVal[WK][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[WQ][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[WR][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[WB][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[WN][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[WP][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[BK][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[BQ][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[BR][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[BB][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[BN][sq] = *hash; hash++; } for (sq=A1; sq <= H8; sq++) { hashVal[BP][sq] = *hash; hash++; } // Compute the hash values for the standard starting position: uint h = 0; // First the pawns: HASH (h,WP,A2); HASH (h,WP,B2); HASH (h,WP,C2); HASH (h,WP,D2); HASH (h,WP,E2); HASH (h,WP,F2); HASH (h,WP,G2); HASH (h,WP,H2); HASH (h,BP,A7); HASH (h,BP,B7); HASH (h,BP,C7); HASH (h,BP,D7); HASH (h,BP,E7); HASH (h,BP,F7); HASH (h,BP,G7); HASH (h,BP,H7); stdStartPawnHash = h; // Now the nonpawns: HASH (h,WR,A1); HASH (h,WN,B1); HASH (h,WB,C1); HASH (h,WQ,D1); HASH (h,WK,E1); HASH (h,WB,F1); HASH (h,WN,G1); HASH (h,WR,H1); HASH (h,BR,A8); HASH (h,BN,B8); HASH (h,BB,C8); HASH (h,BQ,D8); HASH (h,BK,E8); HASH (h,BB,F8); HASH (h,BN,G8); HASH (h,BR,H8); stdStartHash = h; } /////////////////////////////////////////////////////////////////////////// // PRIVATE FUNCTIONS -- small ones are inline for speed //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::AssertPos(): // Does a slow, thorough check of the integrity of the // data structures, ensuring everything is valid. // errorT Position::AssertPos () { byte mat[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; for (colorT c = WHITE; c <= BLACK; c++) { for (uint i=0; i < Count[c]; i++) { if (ListPos[List[c][i]] != i || piece_Color(Board[List[c][i]]) != c) { #if !defined (WINCE) && !defined (POCKET) DumpBoard (stderr); DumpLists (stderr); #endif return ERROR; } mat[Board[List[c][i]]]++; } } for (uint i=WK; i < BP; i++) { if (mat[i] != Material[i]) { #if !defined (WINCE) && !defined (POCKET) DumpBoard (stderr); DumpLists (stderr); #endif return ERROR; } } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::CalcPinsDir(): // Look for a pinned piece in the direction 'dir' relative to // the position of the king to move. // inline void Position::CalcPinsDir (directionT dir, pieceT attacker) { // Two pieces can pin along any path. A queen is always one, // the other is a bishop or rook. To save calculating it here, the // appropriate piece (BISHOP) or (ROOK) is passed along with the // direction. squareT king = GetKingSquare (ToMove); squareT friendly = NULL_SQUARE; squareT x = king; squareT last = square_Last (king, dir); int delta = direction_Delta (dir); while (x != last) { x += delta; pieceT p = Board[x]; if (p == EMPTY) { // Empty square, so keep searching. } else if (piece_Color_NotEmpty(p) == ToMove) { // Found a friendly piece. if (friendly == NULL_SQUARE) { // Found first friendly in this direction friendly = x; } else { // Found second friendly in this direction, so stop. return; } } else { // Found an enemy piece if (friendly != NULL_SQUARE) { // Potential pin: pieceT ptype = piece_Type(p); if (ptype == QUEEN || ptype == attacker) { Pinned[ListPos[friendly]] = dir; } } return; // found an enemy piece, so end search } } return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::AddLegalMove(): // Add a legal move to the move list. // inline void Position::AddLegalMove (MoveList * mlist, squareT from, squareT to, pieceT promo) { ASSERT (mlist != NULL); simpleMoveT * sm = mlist->Add(); // We do NOT set the pre-move castling/ep flags, or the captured // piece info, here since that is ONLY needed if the move is // going to be executed with DoSimpleMove() and then undone. sm->from = from; sm->to = to; sm->promote = promo; sm->movingPiece = Board[from]; sm->capturedPiece = Board[to]; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenSliderMoves(): // Generate slider moves along a direction, for a sliding // piece of the specified color from the specified square. // If sqset != NULL, moves must be to a square in sqset. inline void Position::GenSliderMoves (MoveList * mlist, colorT color, squareT fromSq, directionT dir, SquareSet * sqset, bool capturesOnly) { squareT dest = fromSq; squareT last = square_Last (fromSq, dir); int delta = direction_Delta (dir); while (dest != last) { dest += delta; pieceT p = Board[dest]; if (p == EMPTY) { if (! capturesOnly) { if (sqset == NULL || sqset->Contains(dest)) { AddLegalMove (mlist, fromSq, dest, EMPTY); } } continue; } // We have reached a piece. Add the capture if it is an enemy. if (piece_Color_NotEmpty(p) != color) { if (sqset == NULL || sqset->Contains(dest)) { AddLegalMove (mlist, fromSq, dest, EMPTY); } } break; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenKnightMoves(): // Generate knight moves. // If sqset != NULL, moves must be to a square in sqset. inline void Position::GenKnightMoves (MoveList * mlist, colorT c, squareT fromSq, SquareSet * sqset, bool capturesOnly) { const squareT * destPtr = knightAttacks[fromSq]; while (true) { squareT dest = *destPtr; if (dest == NULL_SQUARE) { break; } destPtr++; pieceT p = Board[dest]; if (capturesOnly && p == EMPTY) { continue; } if (piece_Color(p) != c) { if (sqset == NULL || sqset->Contains(dest)) { AddLegalMove (mlist, fromSq, dest, EMPTY); } } } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenCastling(): // Generate the legal castling moves. // Assumes the side to move is NOT in check, so the caller // should verify this first. // void Position::GenCastling (MoveList * mlist) { ASSERT (! IsKingInCheck()); squareT from = GetKingSquare(ToMove); if (from != (ToMove == WHITE ? E1 : E8)) { return; } squareT enemyKingSq = GetEnemyKingSquare(); squareT target, skip, rookSq; pieceT rookPiece; // Queenside Castling: if (!StrictCastling || GetCastling (ToMove, QSIDE)) { if (ToMove == WHITE) { target = C1; skip = D1; rookSq = A1; rookPiece = WR; } else { target = C8; skip = D8; rookSq = A8; rookPiece = BR; } if (Board[target] == EMPTY && Board[skip] == EMPTY && Board[rookSq] == rookPiece && Board[target - 1] == EMPTY // B1 or B8 must be empty too! && CalcNumChecks (target) == 0 && CalcNumChecks (skip) == 0 && ! square_Adjacent (target, enemyKingSq)) { AddLegalMove (mlist, from, target, EMPTY); } } // Kingside Castling: if (!StrictCastling || GetCastling (ToMove, KSIDE)) { if (ToMove == WHITE) { target = G1; skip = F1; rookSq = H1; rookPiece = WR; } else { target = G8; skip = F8; rookSq = H8; rookPiece = BR; } if (Board[target] == EMPTY && Board[skip] == EMPTY && Board[rookSq] == rookPiece && CalcNumChecks (target) == 0 && CalcNumChecks (skip) == 0 && ! square_Adjacent (target, enemyKingSq)) { AddLegalMove (mlist, from, target, EMPTY); } } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenKingMoves(): // Generate the legal King moves. Castling is generated as well, if // the specified flag is true. // void Position::GenKingMoves (MoveList * mlist, genMovesT genType, bool castling) { squareT kingSq = GetKingSquare(); squareT enemyKingSq = GetEnemyKingSquare(); colorT enemy = color_Flip(ToMove); const squareT * destPtr; pieceT king = piece_Make (ToMove, KING); bool genNonCaptures = (genType & GEN_NON_CAPS); ASSERT (Board[kingSq] == king); destPtr = kingAttacks[kingSq]; while (*destPtr != NULL_SQUARE) { // Try this move and see if it legal: squareT destSq = *destPtr; bool addThisMove = false; // Only try this move if the target square has an enemy piece, // or if it is empty and noncaptures are to be generated: if ( (genNonCaptures && Board[destSq] == EMPTY) || piece_Color (Board[destSq]) == enemy) { // Empty or enemy piece there, so try the move: pieceT captured = Board[destSq]; Board[destSq] = king; Board[kingSq] = EMPTY; // It is legal if the two kings will not be adjacent and the // moving king will not be in check on its new square: if (! square_Adjacent (destSq, enemyKingSq)) { if (CalcNumChecks (destSq) == 0) { addThisMove = true; } } Board[kingSq] = king; Board[destSq] = captured; } if (addThisMove) { AddLegalMove (mlist, kingSq, destSq, EMPTY); } destPtr++; } // Now generate castling moves, if possible: if (genNonCaptures && castling) { GenCastling (mlist); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::AddPromotions(): // Add promotion moves. // Called by GenPawnMoves() when a pawn can be promoted. // inline void Position::AddPromotions (MoveList * mlist, squareT from, squareT dest) { ASSERT (piece_Type (Board[from]) == PAWN); ASSERT (square_Rank (dest) == RANK_1 || square_Rank (dest) == RANK_8); AddLegalMove (mlist, from, dest, QUEEN); AddLegalMove (mlist, from, dest, ROOK); AddLegalMove (mlist, from, dest, BISHOP); AddLegalMove (mlist, from, dest, KNIGHT); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsValidEnPassant // Used to verify that an en passant pawn capture is valid. // This is needed because illegal en passant captures can appear // legal according to calculations of pinned pieces. For example, // consider WK d5, WP e5, BP f5 (just moved there), BR h5 and // the en passant capture exf6 would be illegal. inline bool Position::IsValidEnPassant (squareT from, squareT to) { ASSERT (from <= H8 && to <= H8); ASSERT (to == EPTarget); // Check that this en passant capture is legal: pieceT ownPawn = piece_Make(ToMove, PAWN); pieceT enemyPawn = piece_Make (color_Flip(ToMove), PAWN); squareT enemyPawnSq = (ToMove == WHITE) ? to - 8 : to + 8; ASSERT (Board[from] == ownPawn); ASSERT (Board[enemyPawnSq] == enemyPawn); Board[from] = EMPTY; // PG Board[to] = ownPawn; Board[enemyPawnSq] = EMPTY; bool isValid = ! IsKingInCheck(); //PG Board[to] = EMPTY; Board[from] = ownPawn; Board[enemyPawnSq] = enemyPawn; return isValid; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenPawnMoves(): // Generate legal pawn moves. // If dir != NULL_DIR, pawn MUST move in direction dir or its opposite. // If sqset != NULL, pawn MUST move to a square in sqset. // The dir and sq parameters are for pinned pawns and check evasions. void Position::GenPawnMoves (MoveList * mlist, squareT from, directionT dir, SquareSet * sqset, genMovesT genType) { bool genNonCaptures = (genType & GEN_NON_CAPS); directionT oppdir = direction_Opposite(dir); directionT forward; rankT promoRank; rankT secondRank; if (ToMove == WHITE) { forward = UP; promoRank = RANK_8; secondRank = RANK_2; } else { forward = DOWN; promoRank = RANK_1; secondRank = RANK_7; } squareT dest; ASSERT (Board[from] == piece_Make (ToMove, PAWN)); if (genNonCaptures && (dir == NULL_DIR || dir == forward || oppdir == forward)) { dest = square_Move (from, forward); if (Board[dest]==EMPTY && (sqset==NULL || sqset->Contains(dest))) { if (square_Rank(dest) == promoRank) { AddPromotions (mlist, from, dest); } else { AddLegalMove (mlist, from, dest, EMPTY); } } if (square_Rank(from) == secondRank && Board[dest] == EMPTY) { dest = square_Move (dest, forward); if (Board[dest]==EMPTY && (sqset==NULL || sqset->Contains(dest))) { AddLegalMove (mlist, from, dest, EMPTY); } } } // Now do captures: left, then right // To be a possible capture, dest square must be EPTarget or hold // an enemy piece. #define POSSIBLE_CAPTURE(d) ((d != NULL_SQUARE) \ && ((piece_Color (Board[d]) == (color_Flip(ToMove))) \ || (d == EPTarget && IsValidEnPassant(from,d)))) directionT capdir = forward | LEFT; if (dir == NULL_DIR || dir == capdir || oppdir == capdir) { dest = square_Move (from, capdir); if (POSSIBLE_CAPTURE(dest) && (sqset==NULL || sqset->Contains(dest))) { if (square_Rank(dest) == promoRank) { AddPromotions (mlist, from, dest); } else { AddLegalMove (mlist, from, dest, EMPTY); } } } capdir = forward | RIGHT; if (dir == NULL_DIR || dir == capdir || oppdir == capdir) { dest = square_Move (from, capdir); if (POSSIBLE_CAPTURE(dest) && (sqset==NULL || sqset->Contains(dest))) { if (square_Rank(dest) == promoRank) { AddPromotions (mlist, from, dest); } else { AddLegalMove (mlist, from, dest, EMPTY); } } } return; } ////////////////////////////////////////////////////////////////////// // PUBLIC FUNCTIONS //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GetHPSig(): // Return the position's home pawn signature. // uint Position::GetHPSig (void) { uint hpSig = 0; pieceT * b = &(Board[A2]); if (*b == WP) { hpSig |= 0x8000; } b++; /* a2 */ if (*b == WP) { hpSig |= 0x4000; } b++; /* b2 */ if (*b == WP) { hpSig |= 0x2000; } b++; /* c2 */ if (*b == WP) { hpSig |= 0x1000; } b++; /* d2 */ if (*b == WP) { hpSig |= 0x0800; } b++; /* e2 */ if (*b == WP) { hpSig |= 0x0400; } b++; /* f2 */ if (*b == WP) { hpSig |= 0x0200; } b++; /* g2 */ if (*b == WP) { hpSig |= 0x0100; } /* h2 */ b = &(Board[A7]); if (*b == BP) { hpSig |= 0x0080; } b++; /* a7 */ if (*b == BP) { hpSig |= 0x0040; } b++; /* b7 */ if (*b == BP) { hpSig |= 0x0020; } b++; /* c7 */ if (*b == BP) { hpSig |= 0x0010; } b++; /* d7 */ if (*b == BP) { hpSig |= 0x0008; } b++; /* e7 */ if (*b == BP) { hpSig |= 0x0004; } b++; /* f7 */ if (*b == BP) { hpSig |= 0x0002; } b++; /* g7 */ if (*b == BP) { hpSig |= 0x0001; } /* h7 */ return hpSig; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::Init(): // Initialise the position after it is constructed. // void Position::Init (void) { // Setting up a valid board is left to StdStart() or Clear(). Board [COLOR_SQUARE] = EMPTY; Board [NULL_SQUARE] = END_OF_BOARD; LegalMoves.Clear(); StrictCastling = true; // Make sure all tables used for move generation, hashing, // square tests, etc have been computed: scid_Init(); initHashValues(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::Clear(): // Clear the board and associated structures. // void Position::Clear (void) { int i; for (i=A1; i <= H8; i++) { Board[i] = EMPTY; } for (i=WK; i <= BP; i++) { Material[i] = 0; for (uint j=0; j < 8; j++) { NumOnRank[i][j] = NumOnFyle[i][j] = 0; } for (uint d=0; d < 15; d++) { NumOnLeftDiag[i][d] = NumOnRightDiag[i][d] = 0; } NumOnSquareColor[i][WHITE] = NumOnSquareColor[i][BLACK] = 0; } Count[WHITE] = Count[BLACK] = 0; EPTarget = NULL_SQUARE; Castling = 0; Board [NULL_SQUARE] = END_OF_BOARD; PlyCounter = 0; HalfMoveClock = 0; Hash = 0; PawnHash = 0; LegalMoves.Clear(); return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::StdStart(): // Set up the standard chess starting position. For performance the data is copied from a // template. // static Position *startPositionTemplate = NULL; void Position::StdStart (void) { if( this == startPositionTemplate){ Clear(); Material[WK] = Material[BK] = 1; Material[WQ] = Material[BQ] = 1; Material[WR] = Material[BR] = 2; Material[WB] = Material[BB] = 2; Material[WN] = Material[BN] = 2; Material[WP] = Material[BP] = 8; Count[WHITE] = Count[BLACK] = 16; AddToBoard(WK, E1); List[WHITE][0] = E1; ListPos[E1] = 0; AddToBoard(BK, E8); List[BLACK][0] = E8; ListPos[E8] = 0; AddToBoard(WR, A1); List[WHITE][1] = A1; ListPos[A1] = 1; AddToBoard(BR, A8); List[BLACK][1] = A8; ListPos[A8] = 1; AddToBoard(WN, B1); List[WHITE][2] = B1; ListPos[B1] = 2; AddToBoard(BN, B8); List[BLACK][2] = B8; ListPos[B8] = 2; AddToBoard(WB, C1); List[WHITE][3] = C1; ListPos[C1] = 3; AddToBoard(BB, C8); List[BLACK][3] = C8; ListPos[C8] = 3; AddToBoard(WQ, D1); List[WHITE][4] = D1; ListPos[D1] = 4; AddToBoard(BQ, D8); List[BLACK][4] = D8; ListPos[D8] = 4; AddToBoard(WB, F1); List[WHITE][5] = F1; ListPos[F1] = 5; AddToBoard(BB, F8); List[BLACK][5] = F8; ListPos[F8] = 5; AddToBoard(WN, G1); List[WHITE][6] = G1; ListPos[G1] = 6; AddToBoard(BN, G8); List[BLACK][6] = G8; ListPos[G8] = 6; AddToBoard(WR, H1); List[WHITE][7] = H1; ListPos[H1] = 7; AddToBoard(BR, H8); List[BLACK][7] = H8; ListPos[H8] = 7; for (uint i=0; i < 8; i++) { AddToBoard(WP, A2+i); List[WHITE][i+8] = A2+i; ListPos[A2+i] = i+8; AddToBoard(BP, A7+i); List[BLACK][i+8] = A7+i; ListPos[A7+i] = i+8; } Castling = 0; SetCastling (WHITE, QSIDE, true); SetCastling (WHITE, KSIDE, true); SetCastling (BLACK, QSIDE, true); SetCastling (BLACK, KSIDE, true); EPTarget = NULL_SQUARE; ToMove = WHITE; PlyCounter = 0; HalfMoveClock = 0; Board [NULL_SQUARE] = END_OF_BOARD; Hash = stdStartHash; PawnHash = stdStartPawnHash; } else { if (startPositionTemplate == NULL){ startPositionTemplate = new Position(); startPositionTemplate->StdStart(); } memcpy (this, startPositionTemplate, sizeof(Position)); } return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsStdStart // Returns true if the position is the standard starting position. bool Position::IsStdStart () { if (ToMove != WHITE || Hash != stdStartHash || PawnHash != stdStartPawnHash || GetCount(WHITE) != 16 || GetCount(BLACK) != 16 || RankCount(WP,RANK_2) != 8 || RankCount(BP,RANK_7) != 8 || RankCount(WN,RANK_1) != 2 || RankCount(BN,RANK_8) != 2 || !GetCastling(WHITE,KSIDE) || !GetCastling(WHITE,QSIDE) || !GetCastling(BLACK,KSIDE) || !GetCastling(BLACK,QSIDE)) { return false; } return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::AddPiece(): // Add a piece to the board and piecelist. // Checks that a side cannot have more than 16 pieces or more // than one king. // errorT Position::AddPiece (pieceT p, squareT sq) { ASSERT (p != EMPTY); colorT c = piece_Color(p); if (Count[c] == 16) { return ERROR_PieceCount; } ASSERT(Count[c] <= 15); if (piece_Type(p) == KING) { // Check there is not already a King: if (Material[p] > 0) { return ERROR_PieceCount; } // King is always at the start of the piecelist, so move the piece // already at location 0 if there is one: if (Count[c] > 0) { squareT oldsq = List[c][0]; List[c][Count[c]] = oldsq; ListPos[oldsq] = Count[c]; } List[c][0] = sq; ListPos[sq] = 0; } else { ListPos[sq] = Count[c]; List[c][Count[c]] = sq; } Count[c]++; Material[p]++; AddToBoard (p, sq); return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::CalcPins(): // Calculate the pieces for the side to move that are // pinned to their king. The array Pinned[] stores, for // each piece, the direction in which it is pinned. // // For example WK on e1, WQ on e2, BQ on e7 on the e-fyle // means the WQ is Pinned in the direction UP. // void Position::CalcPins (void) { Pinned[ 0] = Pinned[ 1] = Pinned[ 2] = Pinned[ 3] = Pinned[ 4] = Pinned[ 5] = Pinned[ 6] = Pinned[ 7] = Pinned[ 8] = Pinned[ 9] = Pinned[10] = Pinned[11] = Pinned[12] = Pinned[13] = Pinned[14] = Pinned[15] = NULL_DIR; squareT kingSq = GetKingSquare (ToMove); colorT enemy = color_Flip (ToMove); pieceT enemyQueen = piece_Make (enemy, QUEEN); pieceT enemyRook = piece_Make (enemy, ROOK); pieceT enemyBishop = piece_Make (enemy, BISHOP); // Pins and checks from Bishops/Queens/Rooks: fyleT fyle = square_Fyle (kingSq); if (FyleCount(enemyQueen,fyle) + FyleCount(enemyRook,fyle) > 0) { CalcPinsDir (UP, ROOK); CalcPinsDir (DOWN, ROOK); } rankT rank = square_Rank (kingSq); if (RankCount(enemyQueen,rank) + RankCount(enemyRook,rank) > 0) { CalcPinsDir (LEFT, ROOK); CalcPinsDir (RIGHT, ROOK); } leftDiagT ld = square_LeftDiag (kingSq); if (LeftDiagCount(enemyQueen,ld) + LeftDiagCount(enemyBishop,ld) > 0) { CalcPinsDir (UP_LEFT, BISHOP); CalcPinsDir (DOWN_RIGHT, BISHOP); } rightDiagT rd = square_RightDiag (kingSq); if (RightDiagCount(enemyQueen,rd) + RightDiagCount(enemyBishop,rd) > 0) { CalcPinsDir (UP_RIGHT, BISHOP); CalcPinsDir (DOWN_LEFT, BISHOP); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenPieceMoves(): // Generates moves for a nonpawn, nonking piece. // If sqset != NULL, moves must be to a square in sqset.< void Position::GenPieceMoves (MoveList * mlist, squareT fromSq, SquareSet * sqset, bool capturesOnly) { colorT c = ToMove; pieceT p = Board[fromSq]; pieceT ptype = piece_Type(p); ASSERT (p != EMPTY && ptype != KING && ptype != PAWN); if (ptype == KNIGHT) { GenKnightMoves (mlist, c, fromSq, sqset, capturesOnly); return; } if (ptype != BISHOP) { GenSliderMoves (mlist, c, fromSq, UP, sqset, capturesOnly); GenSliderMoves (mlist, c, fromSq, DOWN, sqset, capturesOnly); GenSliderMoves (mlist, c, fromSq, LEFT, sqset, capturesOnly); GenSliderMoves (mlist, c, fromSq, RIGHT, sqset, capturesOnly); } if (ptype != ROOK) { GenSliderMoves (mlist, c, fromSq, UP_LEFT, sqset, capturesOnly); GenSliderMoves (mlist, c, fromSq, DOWN_LEFT, sqset, capturesOnly); GenSliderMoves (mlist, c, fromSq, UP_RIGHT, sqset, capturesOnly); GenSliderMoves (mlist, c, fromSq, DOWN_RIGHT, sqset, capturesOnly); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenerateMoves // Generate the legal moves list. // If the specified pieceType is not EMPTY, then only legal // moves for that type of piece are generated. void Position::GenerateMoves (MoveList * mlist, pieceT pieceType, genMovesT genType, bool maybeInCheck) { bool genNonCaptures = (genType & GEN_NON_CAPS); bool capturesOnly = !genNonCaptures; if (LegalMoves.Size() > 0 && pieceType == EMPTY && genType == GEN_ALL_MOVES) { if(mlist != NULL) memcpy (mlist, &LegalMoves, sizeof(MoveList)); return; } uint mask = 0; if (pieceType != EMPTY) { mask = 1 << pieceType; } else { mask = (1 << KING) | (1 << QUEEN) | (1 << ROOK) | (1 << BISHOP) | (1 << KNIGHT) | (1 << PAWN); } // Use the objects own move list if none was provided: if( mlist == NULL) mlist = &LegalMoves; mlist->Clear(); // Compute which pieces of the side to move are pinned to the king: CalcPins(); // Determine if the side to move is in check and find where the // checking pieces are, unless the caller has passed maybeInCheck=false // indicating it is CERTAIN the side to move is not in check here. uint numChecks = 0; if (maybeInCheck) { SquareList checkSquares; numChecks = CalcNumChecks (GetKingSquare(ToMove), &checkSquares); if (numChecks > 0) { // The side to move IS in check: GenCheckEvasions (mlist, pieceType, genType, &checkSquares); return; } } // The side to move is NOT in check. Iterate over each non-king // piece, and then generate King moves last of all: uint npieces = Count[ToMove]; for (uint x = 1; x < npieces; x++) { squareT sq = List[ToMove][x]; pieceT p = Board[sq]; pieceT ptype = piece_Type(p); if (! (mask & (1 << ptype))) { continue; } directionT pinned = Pinned[x]; // If Pinned[x] == dir (not NULL_DIR), x can ONLY move along // that direction or its opposite. if (pinned != NULL_DIR) { // piece x is pinned to king if (ptype == PAWN) { GenPawnMoves (mlist, sq, pinned, NULL, genType); } else if (ptype == KNIGHT) { // do nothing -- pinned knights cannot move } else { // Piece is a pinned Queen/Rook/Bishop. Only generate // moves along the pinned direction and its opposite: if (ptype == QUEEN || (ptype == ROOK && !direction_IsDiagonal(pinned)) || (ptype == BISHOP && direction_IsDiagonal(pinned))) { GenSliderMoves (mlist, ToMove, sq, pinned, NULL, capturesOnly); GenSliderMoves (mlist, ToMove, sq, dirOpposite[pinned], NULL, capturesOnly); } } } else { // This piece is free to move anywhere if (ptype == PAWN) { GenPawnMoves (mlist, sq, NULL_DIR, NULL, genType); } else { // Knight/Queen/Bishop/Rook: GenPieceMoves (mlist, sq, NULL, capturesOnly); } } } // Lastly, king moves... if (mask & (1 << KING)) { bool castling = !numChecks; GenKingMoves (mlist, genType, castling); } if (pieceType == EMPTY && genType == GEN_ALL_MOVES && mlist != NULL) memcpy (&LegalMoves, mlist, sizeof(MoveList)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsLegalMove // Determines whether the specified move is legal in this position, // without requiring move generation (except for castling moves). bool Position::IsLegalMove (simpleMoveT * sm) { squareT from = sm->from; squareT to = sm->to; if (from > H8 || to > H8) { return false; } if (from == to) { return false; } pieceT mover = Board[from]; pieceT captured = Board[to]; if (piece_Color(mover) != ToMove) { return false; } if (piece_Color(captured) == ToMove) { return false; } if (sm->movingPiece != mover) { return false; } mover = piece_Type (mover); if (sm->promote != EMPTY && mover != PAWN) { return false; } if (mover == PAWN) { rankT rfrom = square_Rank(from); rankT rto = square_Rank(to); if (ToMove == BLACK) { rfrom = RANK_8 - rfrom; rto = RANK_8 - rto; } int rdiff = (int)rto - (int)rfrom; int fdiff = (int)square_Fyle(to) - (int)square_Fyle(from); if (rdiff < 1 || rdiff > 2) { return false; } if (fdiff < -1 || fdiff > 1) { return false; } if (fdiff == 0) { // Pawn push: if (captured != EMPTY) { return false; } if (rdiff == 2) { // Two-square push: if (rfrom != RANK_2) { return false; } // Make sure the square in between is empty: squareT midsquare = from + ((to - from) / 2); if (Board[midsquare] != EMPTY) { return false; } } } else { // Pawn capture: if (rdiff != 1) { return false; } if (captured == EMPTY) { // It must be en passant, or illegal if (to != EPTarget) { return false; } } } // Check the promotion piece: if (rto == RANK_8) { pieceT p = sm->promote; if (p != QUEEN && p != ROOK && p != BISHOP && p != KNIGHT) { return false; } } else { if (sm->promote != EMPTY) { return false; } } } else if (piece_IsSlider(mover)) { // Make sure the direction is valid: directionT dir = sqDir[from][to]; if (dir == NULL_DIR) { return false; } if (mover == ROOK && direction_IsDiagonal(dir)) { return false; } if (mover == BISHOP && !direction_IsDiagonal(dir)) { return false; } int delta = direction_Delta (dir); // Make sure all the in-between squares are empty: squareT dest = from + delta; while (dest != to) { if (Board[dest] != EMPTY) { return false; } dest += delta; } } else if (mover == KNIGHT) { if (! square_IsKnightHop (from, to)) { return false; } } else /* (mover == KING) */ { colorT enemy = color_Flip(ToMove); if (square_Adjacent (to, GetKingSquare(enemy))) { return false; } if (! square_Adjacent (from, to)) { // The move must be castling, or illegal. if (IsKingInCheck()) { return false; } MoveList mlist; GenCastling (&mlist); return (mlist.Find(sm) >= 0); } } // The move looks good, but does it leave the king in check? squareT kingSq = (mover == KING) ? to : GetKingSquare(ToMove); colorT enemy = color_Flip(ToMove); DoSimpleMove (sm); uint nchecks = CalcAttacks (enemy, kingSq, NULL); UndoSimpleMove (sm); return (nchecks == 0); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::MatchLegalMove(): // Sets the LegalMoves list to contain all the moves of pieces // of type "mask" that move to the square "target". // The type must be QUEEN, ROOK, BISHOP, or KNIGHT. // Pawn and King moves are handled in separate functions, // MatchKingMove() and MatchPawnMove(). // void Position::MatchLegalMove (MoveList * mlist, pieceT mask, squareT target) { uint x; // This function isn't for Pawn or King moves! ASSERT (mask != PAWN && mask != KING); if (mlist == NULL) { mlist = &LegalMoves; } mlist->Clear(); uint count = 0; uint total = Material[piece_Make(ToMove, mask)]; pieceT p, pt, captured; squareT kingSq = GetKingSquare(ToMove); directionT dir; uint tryMove = 0; // First, verify that the target square is empty or contains // an enemy piece: p = Board[target]; if (p != EMPTY && piece_Color(p) == ToMove) { return; } // Loop through looking for pieces of type "mask". We start at 1 // since the King is always the piece at position 0 in the list. squareT * sqPtr = &(List[ToMove][1]); for (x=1; x < Count[ToMove] && count < total; x++, sqPtr++) { p = Board[*sqPtr]; pt = piece_Type(p); if (pt == mask) { // Increment count so we stop when we've seen all the // Material[p] pieces of this type. tryMove = 0; count++; squareT sq; switch (pt) { case KNIGHT: if (square_IsKnightHop (*sqPtr, target)) { tryMove = 1; } break; case ROOK: dir = sqDir[*sqPtr][target]; if (dir != NULL_DIR && !direction_IsDiagonal(dir)) { sq = square_Move (*sqPtr, dir); tryMove = 1; while (sq != target) { if (Board[sq] != EMPTY) { // oops, piece in the way tryMove = 0; break; } sq = square_Move (sq, dir); } } break; case BISHOP: dir = sqDir[*sqPtr][target]; if (direction_IsDiagonal(dir)) { sq = square_Move (*sqPtr, dir); tryMove = 1; while (sq != target) { if (Board[sq] != EMPTY) { // oops, piece in the way tryMove = 0; break; } sq = square_Move (sq, dir); } } break; case QUEEN: dir = sqDir[*sqPtr][target]; if (dir != NULL_DIR) { // Try the move! sq = square_Move (*sqPtr, dir); tryMove = 1; while (sq != target) { if (Board[sq] != EMPTY) { // oops, piece in the way tryMove = 0; break; } sq = square_Move (sq, dir); } } break; default: // Should never happen ASSERT(0); } // Now, if tryMove is 1, the piece can get to target. We need // to see if the move is legal or leaves the king in check. if (tryMove == 1) { captured = Board[target]; Board[target] = p; Board[*sqPtr] = EMPTY; if (CalcNumChecks (kingSq) > 0) { tryMove = 0; } Board[*sqPtr] = p; Board[target] = captured; if (tryMove == 1) { AddLegalMove (mlist, *sqPtr, target, EMPTY); } } } } // Ok, we've searched all the pieces. return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::MatchPawnMove(): // Sets the LegalMoves list to contain the matching pawn move, // if there is one. // errorT Position::MatchPawnMove (MoveList * mlist, fyleT fromFyle, squareT to, pieceT promote) { mlist->Clear(); sint diff = (int)square_Fyle(to) - (int)fromFyle; if (diff < -1 || diff > 1) { return ERROR_InvalidMove; } pieceT pawn; rankT toRank = square_Rank(to); fyleT toFyle = square_Fyle(to); rankT promoteRank = (ToMove == WHITE ? RANK_8 : RANK_1); // from is the from square; backup is the alternative from square // for a pawn move two squares forward. squareT from, backup = NS; if (ToMove == WHITE) { pawn = WP; promoteRank = RANK_8; if (toRank < RANK_3) { return ERROR_InvalidMove; } from = square_Make(fromFyle, toRank - 1); if (toRank == RANK_4 && fromFyle == toFyle) { backup = to - 16; } } else { pawn = BP; promoteRank = RANK_1; if (toRank > RANK_6) { return ERROR_InvalidMove; } from = square_Make(fromFyle, toRank + 1); if (toRank == RANK_5 && fromFyle == toFyle) { backup = to + 16; } } // See if the promotion piece is valid: if (toRank == promoteRank) { if (promote == EMPTY) { return ERROR_InvalidMove; } } else { if (promote != EMPTY) { return ERROR_InvalidMove; } } if (Board[from] != pawn) { // No match; but it could be a foward-two-squares move: if (backup == NS || Board[from] != EMPTY || Board[backup] != pawn) { // A forward-two-squares move is impossible. return ERROR_InvalidMove; } from = backup; } // OK, now 'from' is the only possible from-square. Is the move legal? // We make the move on the board and see if the King is in check. uint legal = 0; if (fromFyle == toFyle) { // Not a capture: if (Board[to] != EMPTY) { return ERROR_InvalidMove; } Board[to] = pawn; Board[from] = EMPTY; if (CalcNumChecks (GetKingSquare()) == 0) { legal = 1; } Board[to] = EMPTY; Board[from] = pawn; } else { // It is a capture -- is it legal? pieceT captured = Board[to]; if (captured == EMPTY) { // Must be an en passant or illegal move. if (to != EPTarget) { return ERROR_InvalidMove; } squareT epSquare = square_Make(toFyle, square_Rank(from)); pieceT enemyPawn = piece_Make (color_Flip(ToMove), PAWN); // If following assert fails, eptarget was corrupt ASSERT (Board[epSquare] == enemyPawn); Board[to] = pawn; Board[from] = EMPTY; Board[epSquare] = EMPTY; Material[enemyPawn] --; if (CalcNumChecks (GetKingSquare()) == 0) { legal = 1; } Board[epSquare] = enemyPawn; Board[to] = EMPTY; Board[from] = pawn; Material[enemyPawn]++; } else { if (piece_Color(captured) == ToMove) { // Capturing a friendly! return ERROR_InvalidMove; } else { // A regular capture. See if it leaves King in check: Board[to] = pawn; Board[from] = EMPTY; Material[captured]--; if (CalcNumChecks (GetKingSquare()) == 0) { legal = 1; } Material[captured]++; Board[to] = captured; Board[from] = pawn; } } } if (legal == 1) { AddLegalMove (mlist, from, to, promote); return OK; } return ERROR_InvalidMove; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::MatchKingMove(): // Sets the LegalMoves list to contain the matching king move, // if there is one. // errorT Position::MatchKingMove (MoveList * mlist, squareT target) { mlist->Clear(); squareT kingSq = GetKingSquare(ToMove); sint diff = (int)target - (int) kingSq; // Valid diffs are: -9, -8, -7, -2, -1, 1, 2, 7, 8, 9. (-2,2: Castling) if (diff < -9 || diff > 9) { return ERROR_InvalidMove; } if (diff > -7 && diff < -2) { return ERROR_InvalidMove; } if (diff > 2 && diff < 7) { return ERROR_InvalidMove; } if (diff == 0) { return ERROR_InvalidMove; } if (diff == 2) { // KingSide Castling if (kingSq != (ToMove == WHITE ? E1 : E8)) { return ERROR_InvalidMove; } if (StrictCastling && ! GetCastling (ToMove, KSIDE)) { return ERROR_InvalidMove; } // XXX We also need to verify that the target square does not // lie adjacent to the location of the enemy king! if (Board[kingSq + 1] != EMPTY || Board[kingSq + 2] != EMPTY || CalcNumChecks(kingSq) > 0 || CalcNumChecks(kingSq + 1) > 0 || CalcNumChecks(kingSq + 2) > 0) { return ERROR_InvalidMove; } AddLegalMove (mlist, kingSq, target, EMPTY); return OK; } if (diff == -2) { // Queenside Castling if (kingSq != (ToMove == WHITE ? E1 : E8)) { return ERROR_InvalidMove; } if (StrictCastling && ! GetCastling (ToMove, QSIDE)) { return ERROR_InvalidMove; } if (Board[kingSq - 1] != EMPTY || Board[kingSq - 2] != EMPTY || Board[kingSq - 3] != EMPTY || CalcNumChecks(kingSq) > 0 || CalcNumChecks(kingSq - 1) > 0 || CalcNumChecks(kingSq - 2) > 0) { return ERROR_InvalidMove; } AddLegalMove (mlist, kingSq, target, EMPTY); return OK; } pieceT captured = Board[target]; if (piece_Color(captured) == ToMove) { // Capturing a friendly piece! return ERROR_InvalidMove; } // Now make the move on the Board and Material lists, and see if it // leaves the King in check: // XXX We should also check for adjacency to enemy King!! Board[target] = piece_Make(ToMove, KING); Board[kingSq] = EMPTY; if (captured != EMPTY) { Material[captured]--; } uint legal = 0; if (CalcNumChecks(target) == 0) { legal = 1; } if (captured != EMPTY) { Material[captured]++; } Board[target] = captured; Board[kingSq] = piece_Make(ToMove, KING); if (legal == 1) { AddLegalMove (mlist, kingSq, target, EMPTY); return OK; } return ERROR_InvalidMove; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GenCheckEvasions(): // Generate legal moves for the side to move when the // King is in check. // void Position::GenCheckEvasions (MoveList * mlist, pieceT mask, genMovesT genType, SquareList * checkSquares) { uint numChecks = checkSquares->Size(); // Assert that king IS actually in check: ASSERT (numChecks > 0); bool genNonCaptures = (genType & GEN_NON_CAPS); bool capturesOnly = !genNonCaptures; mlist->Clear(); squareT king = GetKingSquare (ToMove); // if it's double check, we can ONLY move the king if (numChecks == 1) { // OK, it is NOT a double check // Try to block piece/capture piece. Remember en passant! // First, generate a list of targets: squares between the king // and attacker to block, and the attacker's square. squareT attackSq = checkSquares->Get(0); directionT dir = sqDir[king][attackSq]; SquareSet targets; // Set of blocking/capturing squares. targets.Add(attackSq); // Now add squares we can might be able to block on. if (dir != NULL_DIR) { squareT sq = square_Move (king, dir); while (sq != attackSq) { if (Board[sq] == EMPTY) { targets.Add(sq); } sq = square_Move (sq, dir); } } // Try each non-King piece in turn. If a piece is pinned to // the king, don't bother since it cannot possibly block or // capture the piece that is giving check! uint numPieces = Count[ToMove]; for (uint p2 = 1; p2 < numPieces; p2++) { squareT from = List[ToMove][p2]; pieceT p2piece = Board[from]; if (Pinned[p2] != NULL_DIR) { continue; } if (mask == EMPTY || mask == piece_Type(p2piece)) { if (piece_Type(p2piece) == PAWN) { GenPawnMoves (mlist, from, NULL_DIR, &targets, genType); // Capturing a pawn en passant will only get out // of check if the pawn that moved two squares // is doing the checking. If it is not, that means // a discovered check with the last pawn move so // taking en passant cannot get out of check. if (EPTarget != NULL_SQUARE) { squareT pawnSq = (ToMove == WHITE ? EPTarget - 8 : EPTarget + 8); if (pawnSq == attackSq) { SquareSet epset; epset.Add(EPTarget); GenPawnMoves (mlist, from, NULL_DIR, &epset, genType); } } } else { GenPieceMoves (mlist, from, &targets, capturesOnly); } } } // end of search for captures/blocks } // Now king moves -- just compute them normally: if (mask == EMPTY || mask == KING) { GenKingMoves(mlist, genType, false); } return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::CalcAttacks(): // Calculate the number of attacks by a side on a square. // This function also puts a list of the attacking piece squares // in the fromSqs parameter if it is non-NULL. // // It ONLY uses the Board[] and Material[] lists of the Position, and // ASSUMES they are correct with respect to each other, but it does // NOT use the List[] or ListPos[] information. // This allows us to move pieces quickly (altering only Board[] and // Material[]) and detect whether they leave the king in check, // without having to update other information. uint Position::CalcAttacks (colorT side, squareT target, SquareList * fromSquares) { // If squares is NULL, caller doesn't want a list of the squares of // attacking pieces. To avoid comparing fromSquares with NULL every time // we find a check, we set up a local array to use instead if fromSquares // is NULL. SquareList fromSqs; if (fromSquares == NULL) { fromSquares = &fromSqs; } fromSquares->Clear(); squareT sq; // Bishop/Queen/Rook attacks: look at each of the 8 directions pieceT queen, rook, bishop, knight; if (side == WHITE) { queen = WQ; rook = WR; bishop = WB; knight = WN; } else { queen = BQ; rook = BR; bishop = BB; knight = BN; } uint numQueensRooks = Material[queen] + Material[rook]; uint numQueensBishops = Material[queen] + Material[bishop]; // We only bother if there are any sliding pieces of each type: if (numQueensRooks > 0) { fyleT fyle = square_Fyle (target); rankT rank = square_Rank (target); directionT dirs[4]; uint ndirs = 0; if (FyleCount(queen,fyle) + FyleCount(rook,fyle) > 0) { dirs[ndirs++] = UP; dirs[ndirs++] = DOWN; } if (RankCount(queen,rank) + RankCount(rook,rank) > 0) { dirs[ndirs++] = LEFT; dirs[ndirs++] = RIGHT; } for (uint i = 0; i < ndirs; i++) { directionT dir = dirs[i]; int delta = direction_Delta (dir); squareT dest = target; squareT last = square_Last (target, dir); while (dest != last) { dest += delta; pieceT p = Board[dest]; if (p == EMPTY) { // empty square: keep searching } else if (p == queen || p == rook) { // Found an attacking piece fromSquares->Add(dest); break; } else { // Found a piece, but not a queen or rook break; } } } } // Now diagonal sliders: Queens/Bishops: if (numQueensBishops > 0) { leftDiagT left = square_LeftDiag (target); rightDiagT right = square_RightDiag (target); directionT dirs[4]; uint ndirs = 0; if (LeftDiagCount(queen,left) + LeftDiagCount(bishop,left) > 0) { dirs[ndirs++] = UP_LEFT; dirs[ndirs++] = DOWN_RIGHT; } if (RightDiagCount(queen,right) + RightDiagCount(bishop,right) > 0) { dirs[ndirs++] = UP_RIGHT; dirs[ndirs++] = DOWN_LEFT; } for (uint i = 0; i < ndirs; i++) { directionT dir = dirs[i]; int delta = direction_Delta (dir); squareT dest = target; squareT last = square_Last (target, dir); while (dest != last) { dest += delta; pieceT p = Board[dest]; if (p == EMPTY) { // empty square: keep searching } else if (p == queen || p == bishop) { // Found an attacking piece fromSquares->Add(dest); break; } else { // Found a piece, but not an enemy queen or bishop break; } } } } // Now knight checks: we only bother if there is a knight on the // opposite square color of the target square color. if (Material[knight] > 0 && SquareColorCount(knight, color_Flip(square_Color(target))) > 0) { const squareT * destPtr = knightAttacks[target]; while (true) { squareT dest = *destPtr; if (dest == NULL_SQUARE) { break; } if (Board[dest] == knight) { fromSquares->Add(dest); } destPtr++; } } // Now pawn attacks: if (side == WHITE) { if (square_Rank(target) != RANK_1) { //if (Material[WP] > 0) { sq = square_Move (target, DOWN_LEFT); if (Board[sq] == WP) { fromSquares->Add(sq); } sq = square_Move (target, DOWN_RIGHT); if (Board[sq] == WP) { fromSquares->Add(sq); } } } else { if (square_Rank(target) != RANK_8) { //if (Material[BP] > 0) { sq = square_Move (target, UP_LEFT); if (Board[sq] == BP) { fromSquares->Add(sq); } sq = square_Move (target, UP_RIGHT); if (Board[sq] == BP) { fromSquares->Add(sq); } } } return fromSquares->Size(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsKingInCheckDir // Returns true if the King of the side to move is attacked // by an enemy sliding piece (Queen/Rook/Bishop) from the // specified direction. bool Position::IsKingInCheckDir (directionT dir) { ASSERT (dir != NULL_DIR); squareT kingSq = GetKingSquare(ToMove); colorT enemy = color_Flip(ToMove); bool isDiagonal = direction_IsDiagonal(dir); pieceT queen = piece_Make (enemy, QUEEN); pieceT slider = piece_Make (enemy, (isDiagonal ? BISHOP : ROOK)); // First, make sure the enemy has sliding pieces that could give check: uint nSliders = PieceCount(queen) + PieceCount(slider); if (nSliders == 0) { return false; } // Now make sure the enemy has a sliding piece on the appropriate // rank, file or diagonal: fyleT fyle = square_Fyle (kingSq); rankT rank = square_Rank (kingSq); leftDiagT ldiag = square_LeftDiag (kingSq); rightDiagT rdiag = square_RightDiag (kingSq); switch (dir) { case UP: case DOWN: nSliders = FyleCount(queen,fyle) + FyleCount(slider,fyle); break; case LEFT: case RIGHT: nSliders = RankCount(queen,rank) + RankCount(slider,rank); break; case UP_LEFT: case DOWN_RIGHT: nSliders = LeftDiagCount(queen,ldiag) + LeftDiagCount(slider,ldiag); break; case UP_RIGHT: case DOWN_LEFT: nSliders = RightDiagCount(queen,rdiag) + RightDiagCount(slider,rdiag); break; } if (nSliders == 0) { return false; } // Now move along the specified direction looking for a checking piece: squareT dest = kingSq; squareT last = square_Last (kingSq, dir); int delta = direction_Delta (dir); while (dest != last) { dest += delta; pieceT p = Board[dest]; if (p == EMPTY) { // empty square: keep searching } else if (p == queen || p == slider) { // Found an checking slider piece return true; } else { // Found a piece, but not an enemy queen or rook/bishop break; } } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsKingInCheck // Returns true if the king of the side to move is in check. // If the specified move is not NULL, it must be the legal move // that the opponent played to reach this position. This will // be used as a speed optimization, by skipping cases where the // move could not have left the king in check. // bool Position::IsKingInCheck (simpleMoveT * sm) { if (sm == NULL) { return IsKingInCheck(); } squareT kingSq = GetKingSquare(ToMove); pieceT p = piece_Type (sm->movingPiece); if (sm->promote != EMPTY) { p = piece_Type(sm->promote); } // No optimization of the last move was castling: if (p == KING && square_Fyle(sm->from) == E_FYLE) { fyleT toFyle = square_Fyle(sm->to); if (toFyle == C_FYLE || toFyle == G_FYLE) { return IsKingInCheck(); } } // No optimization for en passant capture: if (p == PAWN && piece_Type(sm->capturedPiece) == PAWN) { rankT fromRank = square_Rank(sm->from); rankT capturedRank = square_Rank(sm->capturedSquare); if (fromRank == capturedRank) { return IsKingInCheck(); } } if (p == PAWN) { if (ToMove == WHITE) { if (Material[BP] > 0) { squareT sq = square_Move (kingSq, UP_LEFT); if (Board[sq] == BP) { return true; } sq = square_Move (kingSq, UP_RIGHT); if (Board[sq] == BP) { return true; } } } else { if (Material[WP] > 0) { squareT sq = square_Move (kingSq, DOWN_LEFT); if (Board[sq] == WP) { return true; } sq = square_Move (kingSq, DOWN_RIGHT); if (Board[sq] == WP) { return true; } } } } else if (p == KNIGHT) { if (square_IsKnightHop (kingSq, sm->to)) { return true; } } else if (p == KING) { // A king cannot directly check its adversary. } else { // A sliding piece: directionT toDir = sqDir[kingSq][sm->to]; if (toDir != NULL_DIR && IsKingInCheckDir(toDir)) { return true; } } // Now look for a discovered check from a sliding piece: directionT dir = sqDir[kingSq][sm->from]; if (dir != NULL_DIR && IsKingInCheckDir(dir)) { return true; } ASSERT (IsKingInCheck() == false); return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::Mobility // Returns the number of squares a rook or bishop of the specified // color would attack from the specified square. uint Position::Mobility (pieceT p, colorT color, squareT from) { ASSERT (p == ROOK || p == BISHOP); uint mobility = 0; directionT rookDirs[4] = { UP, DOWN, LEFT, RIGHT }; directionT bishopDirs[4] = { UP_LEFT, UP_RIGHT, DOWN_LEFT, DOWN_RIGHT }; directionT * dirPtr = (p == ROOK ? rookDirs : bishopDirs); for (uint i=0; i < 4; i++) { directionT dir = dirPtr[i]; int delta = direction_Delta (dir); squareT dest = from; squareT last = square_Last (from, dir); while (dest != last) { dest += delta; pieceT p = Board[dest]; if (p == EMPTY) { // Empty square mobility++; } else if (piece_Color(p) == color) { // Friendly piece break; // Finished with this direction. } else { // Enemy piece mobility++; break; // Finished with this direction. } } } return mobility; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::SmallestDefender() // Returns the type of the lowest-valued piece of the specified // color that could capture to the specified square. Pins to the // king are ignored. Checks pieces in the order Pawn, Knight, // Bishop, Rook, Queen then King. If the specified square is // undefended, EMPTY is returned. // pieceT Position::SmallestDefender (colorT color, squareT target) { SquareList defenderSquares; pieceT defenders [16]; uint numDefenders = CalcAttacks (color, target, &defenderSquares); // If the square is undefended, just return EMPTY: if (numDefenders == 0) { return EMPTY; } uint i; for (i=0; i < numDefenders; i++) { defenders[i] = Board[defenderSquares.Get(i)]; } // Look for pawns first: for (i=0; i < numDefenders; i++) { if (piece_Type (defenders[i]) == PAWN) { return PAWN; } } // Look for knights then bishops: for (i=0; i < numDefenders; i++) { if (piece_Type (defenders[i]) == KNIGHT) { return KNIGHT; } } for (i=0; i < numDefenders; i++) { if (piece_Type (defenders[i]) == BISHOP) { return BISHOP; } } // Look for rooks then queens: for (i=0; i < numDefenders; i++) { if (piece_Type (defenders[i]) == ROOK) { return ROOK; } } for (i=0; i < numDefenders; i++) { if (piece_Type (defenders[i]) == QUEEN) { return QUEEN; } } // If we get here, it must be defended only by the king: ASSERT (numDefenders == 1 && piece_Type(defenders[i]) == KING); return KING; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsKingInMate(): // Quick check if king is in mate. // bool Position::IsKingInMate (void) { SquareList checkSquares; uint numChecks = CalcNumChecks (GetKingSquare(ToMove), &checkSquares); if (numChecks == 0) { return false; } CalcPins (); MoveList mlist; GenCheckEvasions (&mlist, EMPTY, GEN_ALL_MOVES, &checkSquares); if (mlist.Size() == 0) { return true; } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsLegal() // Verifies the position as being legal. // Returns false for any of the following: // - if the two kings are adjacent; // - if there are any pawns on the 1st/8th rank; // - if the side to move is already checking the enemy king. bool Position::IsLegal (void) { squareT stmKing = GetKingSquare(); squareT enemyKing = GetEnemyKingSquare(); if (square_Adjacent (stmKing, enemyKing)) { printf ("Kings adjacent\n"); return false; } if (RankCount (WP, RANK_1) != 0) { return false; } if (RankCount (WP, RANK_8) != 0) { return false; } if (RankCount (BP, RANK_1) != 0) { return false; } if (RankCount (BP, RANK_8) != 0) { return false; } if (CalcAttacks (ToMove, enemyKing, NULL) > 0) { return false; } return true; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::IsPromoMove(): // Returns true if the move is a promotion move. // NOTE that the move may not actually be legal! // The arguments 'from' and 'to' can be in either order. bool Position::IsPromoMove (squareT from, squareT to) { rankT seventh, eighth; pieceT pawn; if (ToMove == WHITE) { seventh = RANK_7; eighth = RANK_8; pawn = WP; } else { seventh = RANK_2; eighth = RANK_1; pawn = BP; } rankT fromR, toR; fromR = square_Rank(from); toR = square_Rank(to); if ( (fromR == seventh && toR == eighth && Board[from] == pawn) || (toR == seventh && fromR == eighth && Board[to] == pawn) ) { return 1; } return 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::DoSimpleMove(): // Make the move on the board and update all the necessary // fields in the simpleMove structure so it can be undone. // void Position::DoSimpleMove (simpleMoveT * sm) { ASSERT (sm != NULL); squareT from = sm->from; squareT to = sm->to; pieceT p = Board[from]; pieceT ptype = piece_Type(p); colorT enemy = color_Flip(ToMove); ASSERT (p != EMPTY); // update move fields that (maybe) have not yet been set: sm->pieceNum = ListPos[from]; sm->capturedPiece = Board[to]; sm->capturedSquare = to; sm->castleFlags = Castling; sm->epSquare = EPTarget; sm->oldHalfMoveClock = HalfMoveClock; HalfMoveClock++; PlyCounter++; LegalMoves.Clear(); // Check for a null (empty) move: if (isNullMove(sm)) { ToMove = enemy; EPTarget = NULL_SQUARE; return; } // Handle en passant capture: if (ptype == PAWN && sm->capturedPiece == EMPTY && square_Fyle(from) != square_Fyle(to)) { // This was an EP capture. We do not need to check it was a capture // since if a pawn lands on EPTarget it must capture to get there. pieceT enemyPawn = piece_Make(enemy, PAWN); sm->capturedSquare = (ToMove == WHITE ? (to - 8) : (to + 8)); ASSERT (Board[sm->capturedSquare] == enemyPawn); sm->capturedPiece = enemyPawn; } // handle captures: if (sm->capturedPiece != EMPTY) { ASSERT (piece_Type(sm->capturedPiece) != KING); sm->capturedNum = ListPos[sm->capturedSquare]; // update opponents List of pieces Count[enemy]--; ListPos[List[enemy][Count[enemy]]] = sm->capturedNum; List[enemy][sm->capturedNum] = List[enemy][Count[enemy]]; Material[sm->capturedPiece]--; HalfMoveClock = 0; RemoveFromBoard (sm->capturedPiece, sm->capturedSquare); } // handle promotion: if (sm->promote != EMPTY) { ASSERT (p == piece_Make(ToMove, PAWN)); Material[p]--; RemoveFromBoard (p, from); p = piece_Make(ToMove, sm->promote); Material[p]++; AddToBoard (p, from); } // now make the move: List[ToMove][sm->pieceNum] = to; ListPos[to] = sm->pieceNum; RemoveFromBoard (p, from); AddToBoard (p, to); // handle Castling: if (ptype == KING && square_Fyle(from) == E_FYLE && (square_Fyle(to) == C_FYLE || square_Fyle(to) == G_FYLE)) { squareT rookfrom, rookto; pieceT rook = piece_Make (ToMove, ROOK); if (square_Fyle(to) == C_FYLE) { rookfrom = to - 2; rookto = to + 1; } else { rookfrom = to + 1; rookto = to - 1; } ListPos[rookto] = ListPos[rookfrom]; List[ToMove][ListPos[rookto]] = rookto; RemoveFromBoard (rook, rookfrom); AddToBoard (rook, rookto); } // Handle clearing of castling flags: if (Castling) { if (ptype == KING) { // The king moved. SetCastling (ToMove, QSIDE, false); SetCastling (ToMove, KSIDE, false); } // See if a rook moved or was captured: if (ToMove == WHITE) { if (from == A1) { SetCastling (WHITE, QSIDE, false); } if (from == H1) { SetCastling (WHITE, KSIDE, false); } if (to == A8) { SetCastling (BLACK, QSIDE, false); } if (to == H8) { SetCastling (BLACK, KSIDE, false); } } else { if (from == A8) { SetCastling (BLACK, QSIDE, false); } if (from == H8) { SetCastling (BLACK, KSIDE, false); } if (to == A1) { SetCastling (WHITE, QSIDE, false); } if (to == H1) { SetCastling (WHITE, KSIDE, false); } } } // Set the EPTarget square, if a pawn advanced two squares and an // enemy pawn is on a square where en passant may be possible. EPTarget = NULL_SQUARE; if (ptype == PAWN) { rankT fromRank = square_Rank(from); rankT toRank = square_Rank(to); if (fromRank == RANK_2 && toRank == RANK_4 && (Board[square_Move(to,LEFT)] == BP || Board[square_Move(to,RIGHT)] == BP)) { EPTarget = square_Move(from, UP); } if (fromRank == RANK_7 && toRank == RANK_5 && (Board[square_Move(to,LEFT)] == WP || Board[square_Move(to,RIGHT)] == WP)) { EPTarget = square_Move(from, DOWN); } HalfMoveClock = 0; // 50-move clock resets on pawn moves. } ToMove = enemy; #ifdef ASSERTIONS // Do a SLOW, careful check for corruption: if (AssertPos() != OK) { abort(); } #endif return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::UndoSimpleMove(): // Take back a simple move that has been made with DoSimpleMove(). // void Position::UndoSimpleMove (simpleMoveT * m) { ASSERT (m != NULL); squareT from = m->from; squareT to = m->to; pieceT p = Board[to]; EPTarget = m->epSquare; Castling = m->castleFlags; HalfMoveClock = m->oldHalfMoveClock; PlyCounter--; ToMove = color_Flip(ToMove); m->pieceNum = ListPos[to]; LegalMoves.Clear(); // Check for a null move: if (isNullMove(m)) { return; } // Handle a capture: insert piece back into piecelist. // This works for EP captures too, since the square of the captured // piece is in the "capturedSquare" field rather than assuming the // value of the "to" field. The only time these two fields are // different is for an en passant move. if (m->capturedPiece != EMPTY) { colorT c = color_Flip(ToMove); ListPos[List[c][m->capturedNum]] = Count[c]; ListPos[m->capturedSquare] = m->capturedNum; List[c][Count[c]] = List[c][m->capturedNum]; List[c][m->capturedNum] = m->capturedSquare; Material[m->capturedPiece]++; Count[c]++; } // handle promotion: if (m->promote != EMPTY) { Material[p]--; RemoveFromBoard (p, to); p = piece_Make(ToMove, PAWN); Material[p]++; AddToBoard (p, to); } // now make the move: List[ToMove][m->pieceNum] = from; ListPos[from] = m->pieceNum; RemoveFromBoard (p, to); AddToBoard (p, from); if (m->capturedPiece != EMPTY) { AddToBoard (m->capturedPiece, m->capturedSquare); } // handle Castling: if ((piece_Type(p) == KING) && square_Fyle(from) == E_FYLE && (square_Fyle(to) == C_FYLE || square_Fyle(to) == G_FYLE)) { squareT rookfrom, rookto; pieceT rook = (ToMove == WHITE? WR : BR); if (square_Fyle(to) == C_FYLE) { rookfrom = to - 2; rookto = to + 1; } else { rookfrom = to + 1; rookto = to - 1; } ListPos[rookfrom] = ListPos[rookto]; List[ToMove][ListPos[rookto]] = rookfrom; RemoveFromBoard (rook, rookto); AddToBoard (rook, rookfrom); } #ifdef ASSERTIONS if (AssertPos() != OK) { abort(); } #endif return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::RelocatePiece(): // Given a from-square and to-square, modifies the position so // the piece on the from-square is relocated to the to-square. // Returns an error if the from square is empty, or the target // square is not empty, or the relocation would otherwise // produce an illegal position (e.g. pawn on the 1st or 8th rank // or a King in check). // errorT Position::RelocatePiece (squareT fromSq, squareT toSq) { // Must have on-board squares: if (fromSq == NS || toSq == NS) { return ERROR; } // If squares are identical, just return success: if (fromSq == toSq) { return OK; } LegalMoves.Clear(); pieceT piece = Board[fromSq]; pieceT ptype = piece_Type(piece); colorT pcolor = piece_Color(piece); // Must be relocating a nonempty piece to an empty square: if (piece == EMPTY || Board[toSq] != EMPTY) { return ERROR; } // Pawns cannot relocate to the first or last rank: if (ptype == PAWN) { rankT toRank = square_Rank(toSq); if (toRank == RANK_1 || toRank == RANK_8) { return ERROR; } } // Locate the piece index in the appropriate list of pieces: uint index = ListPos[fromSq]; ASSERT(List[pcolor][index] == fromSq); // Relocate the piece: List[pcolor][index] = toSq; ListPos[toSq] = index; RemoveFromBoard (piece, fromSq); AddToBoard (piece, toSq); // Check for adjacent kings or side to move giving check: if (! IsLegal()) { // Undo the relocation and return error: List[pcolor][index] = fromSq; RemoveFromBoard (piece, toSq); AddToBoard (piece, fromSq); return ERROR; } // Relocation successful: return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::MaterialValue(): // Returns the sum value of material for a particular side, // where piece values are: // King: 0 (since both sides always have one) // Queen: 9 // Rook: 5 // Bishop, Knight: 3 each // Pawn: 1 uint Position::MaterialValue (colorT c) { ASSERT (c == WHITE || c == BLACK); uint value = 0; if (c == WHITE) { value += 9 * PieceCount(WQ); value += 5 * PieceCount(WR); value += 3 * PieceCount(WB); value += 3 * PieceCount(WN); value += 1 * PieceCount(WP); } else { value += 9 * PieceCount(BQ); value += 5 * PieceCount(BR); value += 3 * PieceCount(BB); value += 3 * PieceCount(BN); value += 1 * PieceCount(BP); } return value; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::MakeSANString(): // Make the SAN string for a simpleMove. // The parameter 'sanFlag' indicates whether '+' and '#' symbols // should be added to checking or mating moves. // void Position::MakeSANString (simpleMoveT * m, char * s, sanFlagT flag) { ASSERT (m != NULL && s != NULL); // Make sure m->pieceNum is updated: m->pieceNum = ListPos[m->from]; pieceT p = piece_Type (Board[List[ToMove][m->pieceNum]]); squareT from = List[ToMove][m->pieceNum]; squareT to = m->to; char * c = s; if (p == PAWN) { if (square_Fyle(from) != square_Fyle(to)) { // pawn capture *c++ = square_FyleChar(from); *c++ = 'x'; } *c++ = square_FyleChar(to); *c++ = square_RankChar(to); if ((square_Rank(to)==RANK_1) || (square_Rank(to)==RANK_8)) { *c++ = '='; *c++ = piece_Char(m->promote); } } else if (p == KING) { if (isNullMove(m)) { //*c++ = 'n'; *c++ = 'u'; *c++ = 'l'; *c++ = 'l'; *c++ = '-'; *c++ = '-'; } else if ((square_Fyle(from)==E_FYLE) && (square_Fyle(to)==G_FYLE)) { *c++ = 'O'; *c++ = '-'; *c++ = 'O'; } else if ((square_Fyle(from)==E_FYLE) && (square_Fyle(to)==C_FYLE)) { *c++ = 'O'; *c++ = '-'; *c++ = 'O'; *c++ = '-'; *c++ = 'O'; } else { // regular King move *c++ = 'K'; if (Board[to] != EMPTY) *c++ = 'x'; *c++ = square_FyleChar(to); *c++ = square_RankChar(to); } } else { // Queen/Rook/Bishop/Knight *c++ = piece_Char(p); // We only need to calculate legal moves to disambiguate if there // are more than one of this type of piece. if (Material[Board[m->from]] < 2) { if (Board[to] != EMPTY) { *c++ = 'x'; } *c++ = square_FyleChar(to); *c++ = square_RankChar(to); } else { // disambiguate moves here: // SHOULD handle 3-way ambiguity! Looks like it does ok. bool ambiguous_fyle = false; bool ambiguous_rank = false; char r, f, f2; f = square_FyleChar(from); r = square_RankChar(from); MoveList mlist; MatchLegalMove (&mlist, p, to); for (uint i=0; i < mlist.Size(); i++) { simpleMoveT * m2 = mlist.Get(i); squareT from2 = m2->from; pieceT p2 = piece_Type(Board[from2]); if ((to == m2->to) && (from != from2) && (p2 == p)) { /* we have an ambiguity */ f2 = square_FyleChar (from2); if (f == f2) { // ambiguous fyle, so print rank ambiguous_fyle = true; } else { // ambiguous rank, so print fyle ambiguous_rank = true; } } } if (ambiguous_rank) { *c++ = f; } // print from-fyle if (ambiguous_fyle) { *c++ = r; } // print from-rank if (Board[to] != EMPTY) { *c++ = 'x'; } *c++ = square_FyleChar (to); *c++ = square_RankChar (to); } } // Now do the check or mate symbol: if (flag != SAN_NO_CHECKTEST) { // Now we make the move to test for check: MoveList backup = LegalMoves; DoSimpleMove (m); if (CalcNumChecks (GetKingSquare()) > 0) { char ch = '+'; if (flag == SAN_MATETEST) { MoveList mlist; GenerateMoves (&mlist); if (mlist.Size() == 0) { ch = '#'; } } *c++ = ch; } UndoSimpleMove (m); LegalMoves = backup; } *c = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::MakeUCIString(): // Make the UCI string for a simpleMove. // void Position::MakeUCIString (simpleMoveT * m, char * s) { ASSERT (m != NULL && s != NULL); // Make sure m->pieceNum is updated: m->pieceNum = ListPos[m->from]; pieceT p = piece_Type (Board[List[ToMove][m->pieceNum]]); squareT from = List[ToMove][m->pieceNum]; squareT to = m->to; char * c = s; *c++ = square_FyleChar(from); *c++ = square_RankChar(from); *c++ = square_FyleChar(to); *c++ = square_RankChar(to); if (p == PAWN) { if ((square_Rank(to)==RANK_1) || (square_Rank(to)==RANK_8)) { *c++ = piece_Char(m->promote); } } *c = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::ReadCoordMove(): // Given a non-promotion move in coordinate notation, // e.g. "e2e4" or "g1f3", generates the legal move it represents. // Returns: OK or ERROR_InvalidMove. // If "reverse" is true, coordinates in reverse order are acceptable, // e.g. "f3g1" for 1.Nf3. // errorT Position::ReadCoordMove (simpleMoveT * m, const char * str, bool reverse) { ASSERT (m != NULL && str != NULL); fyleT fromFyle, toFyle; rankT fromRank, toRank; squareT from, to; pieceT promo = EMPTY; uint slen = strLength(str); if (slen == 5) { promo = piece_FromChar(toupper(str[4])); } else if (slen != 4) { return ERROR_InvalidMove; } fromFyle = fyle_FromChar (str[0]); fromRank = rank_FromChar (str[1]); from = square_Make (fromFyle, fromRank); if (from == NS) { return ERROR_InvalidMove; } toFyle = fyle_FromChar (str[2]); toRank = rank_FromChar (str[3]); to = square_Make (toFyle, toRank); if (to == NS) { return ERROR_InvalidMove; } GenerateMoves(); for (uint i=0; i < LegalMoves.Size(); i++) { simpleMoveT * sm = LegalMoves.Get(i); if (sm->promote == promo) { if (sm->from == from && sm->to == to) { *m = *sm; return OK; } if (reverse && sm->to == from && sm->from == to) { *m = *sm; return OK; } } } return ERROR_InvalidMove; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::ReadMove(): // Given a move in (possibly sloppy) PGN notation, // generates the legal move it corresponds to. // Returns: OK or ERROR_InvalidMove. // errorT Position::ReadMove (simpleMoveT * m, const char * str, tokenT token) { ASSERT (m != NULL && str != NULL); const char * s = str; char mStr [255]; pieceT p; squareT from = NS; squareT to = NS; rankT frRank, toRank; fyleT frFyle, toFyle; MoveList mlist; mlist.Clear(); // Check for a null move: if (token == TOKEN_Move_Null) { m->pieceNum = 0; m->from = GetKingSquare (ToMove); m->to = m->from; m->movingPiece = Board[m->from]; m->promote = EMPTY; return OK; } // Strip out 'x', '-', etc leaving just pieces, files and ranks: char * s2 = mStr; uint slen = 0; while (!isspace(*s) && *s != '\0') { if ((isalpha(*s) && (*s != 'x')) || isdigit(*s) || *s == '=') { *s2 = *s; s2++; slen++; } s++; } if (slen < 2) return ERROR_InvalidMove; *s2 = '\0'; s = mStr; // Pawn moves: if (token == TOKEN_Move_Pawn || token == TOKEN_Move_Promote) { pieceT promo = EMPTY; if (token == TOKEN_Move_Promote) { // Last char must be Q/R/B/N. // Accept the move even if it is of the form "a8Q" not "a8=Q": // if (s[slen-2] != '=') { return ERROR_InvalidMove; } promo = piece_FromChar(toupper(s[slen-1])); if (promo != QUEEN && promo != ROOK && promo != KNIGHT && promo != BISHOP) { return ERROR_InvalidMove; } slen--; if (s[slen-1] == '=') { slen--; } } else { // Check if it is a coordinates-style move, in which case it // could be any piece: if (slen >= 4 && islower(s[0]) && isdigit(s[1]) && islower(s[slen-2]) && isdigit(s[slen-1])) { return ReadCoordMove (m, str, false); } } // First char MUST be a fyle: if (*s < 'a' || *s > 'h') { return ERROR_InvalidMove; } frFyle = fyle_FromChar (s[0]); // Check for the compact form of capture with no rank, // e.g. "ed" or "de=Q": if (slen == 2 && (s[1] >= 'a' && s[1] <= 'h')) { toFyle = fyle_FromChar (s[1]); // Check each rank in turn, looking for the capture: for (rankT r = RANK_1; r <= RANK_8; r++) { to = square_Make (toFyle, r); if (MatchPawnMove (&mlist, frFyle, to, promo) == OK) { *m = *(mlist.Get(0)); return OK; } } // It is NOT a valid capture with no rank: return ERROR_InvalidMove; } toFyle = fyle_FromChar (s[slen-2]); toRank = rank_FromChar (s[slen-1]); to = square_Make (toFyle, toRank); if (to == NS) { return ERROR_InvalidMove; } if (MatchPawnMove (&mlist, frFyle, to, promo) != OK) { return ERROR_InvalidMove; } else { *m = *(mlist.Get(0)); return OK; } } // Here we handle piece moves, including castling if (token != TOKEN_Move_Piece) { // Must be castling move ASSERT (token == TOKEN_Move_Castle_King || token == TOKEN_Move_Castle_Queen); from = (ToMove == WHITE ? E1 : E8); if (GetKingSquare(ToMove) != from) { return ERROR_InvalidMove; } to = (token == TOKEN_Move_Castle_King ? (from + 2) : (from - 2)); if (MatchKingMove (&mlist, to) != OK) { return ERROR_InvalidMove; } else { *m = *(mlist.Get(0)); return OK; } } // If we reach here, it is a (non-castling, non-pawn) piece move. ASSERT (token == TOKEN_Move_Piece); p = piece_FromChar(*s); if (p == EMPTY) { return ERROR_InvalidMove; } if (slen < 3 || slen > 5) { return ERROR_InvalidMove; } toRank = rank_FromChar(s[slen-1]); toFyle = fyle_FromChar(s[slen-2]); to = square_Make(toFyle, toRank); if (to == NS) { return ERROR_InvalidMove; } frRank = NO_RANK; frFyle = NO_FYLE; if (slen > 3) { // There is some ambiguity information in the input string. for (uint i=1; i < slen-2; i++) { // For each extra char: if (isdigit(s[i])) { frRank = rank_FromChar(s[i]); } else if (s[i] >= 'a' && s[i] <= 'h') { frFyle = fyle_FromChar(s[i]); } } } // Calculate the matching legal move(s): if (p == KING) { if (MatchKingMove(&mlist, to) != OK) { return ERROR_InvalidMove; } else { *m = *(mlist.Get(0)); return OK; } } else { // A Queen/Rook/Bishop/Knight move MatchLegalMove (&mlist, p, to); } uint i; uint matchCount = 0; for (i=0; i < mlist.Size(); i++) { // We need to check: (a) that to-square matches, and // (b), that from-square matches any ambiguity indicator. simpleMoveT * thisMove = mlist.Get(i); if (to == thisMove->to && (frFyle==NO_FYLE || frFyle == square_Fyle(thisMove->from)) && (frRank==NO_RANK || frRank == square_Rank(thisMove->from))) { // We have a match!! *m = *thisMove; matchCount++; } } if (matchCount == 1) { return OK; } // No match, or too many (ambiguous) moves match: return ERROR_InvalidMove; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::ParseMove(): // Parse a single move from SAN-style notation. // errorT Position::ParseMove (simpleMoveT * sm, const char * line) { const char * s; char * s2; char mStr [255]; uint length = 0; tokenT token = TOKEN_Invalid; errorT err = OK; s = line; ASSERT (line != NULL); // First, strip the move string down to its raw form with no // 'x' (capture symbols), etc: while (*s != 0 && !isalpha(*s)) { s++; } if (*s == '\0') { return ERROR_InvalidMove; } s2 = mStr; length = 0; while (!isspace(*s) && *s != '\0') { if ((isalpha(*s) && (*s != 'x')) || isdigit(*s) || *s == '=') { *s2 = *s; s2++; length++; if (length >= 10) { return ERROR_InvalidMove; } } s++; } if (length == 0 || length > 10) { return ERROR_InvalidMove; } *s2 = '\0'; if (mStr[0] == 'O') { if (mStr[1] == 'O' && mStr[2] == 'O' && mStr[3] == 0) { token = TOKEN_Move_Castle_Queen; } else if (mStr[1] == 'O' && mStr[2] == 0) { token = TOKEN_Move_Castle_King; } else { return ERROR_InvalidMove; } } else if (mStr[0] == 'K' || mStr[0] == 'Q' || mStr[0] == 'R' || mStr[0] == 'B' || mStr[0] == 'N' || mStr[0] == 'r' || mStr[0] == 'k' || mStr[0] == 'q' || mStr[0] == 'n') { mStr[0] = toupper(mStr[0]); token = TOKEN_Move_Piece; } else if (mStr[0] >= 'a' && mStr[0] <= 'h') { token = TOKEN_Move_Pawn; if (!isdigit (mStr[length - 1])) { token = TOKEN_Move_Promote; } } else { return ERROR_InvalidMove; } err = ReadMove (sm, mStr, token); // If not successful, and the move started with a lower case letter, // try treating it as a piece move instead. This only affects Bishop // moves where a lower-case 'b' is used instead of 'B'. if (err != OK && token == TOKEN_Move_Pawn) { mStr[0] = toupper(mStr[0]); token = TOKEN_Move_Piece; err = ReadMove (sm, mStr, token); } if (err != OK) { return ERROR_InvalidMove; } return err; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::ReadLine(): // Parse a sequence of moves separated by whitespace and // move numbers, e.g. "1.e4 e5 2.Nf3" or "e4 e5 Nf3". // errorT Position::ReadLine (const char * line) { const char * s = line; char mStr[255]; char * s2; uint length = 0; simpleMoveT sm; tokenT token = TOKEN_Invalid; errorT err; while (1) { while (*s != 0 && !isalpha(*s)) { s++; } if (*s == '\0') { return OK; } s2 = mStr; length = 0; while (!isspace(*s) && *s != '\0') { if (isalpha(*s) || isdigit(*s) || *s == '=') { *s2 = *s; s2++; length++; } s++; } *s2 = '\0'; if (*mStr == 'O') { if (mStr[1] == 'O' && mStr[2] == 'O' && mStr[3] == 0) { token = TOKEN_Move_Castle_Queen; } else if (mStr[1] == 'O' && mStr[2] == 0) { token = TOKEN_Move_Castle_King; } } else if (*mStr == 'K' || *mStr == 'Q' || *mStr == 'R' || *mStr == 'B' || *mStr == 'N' || *mStr == 'r' || *mStr == 'k' || *mStr == 'q' || *mStr == 'n') { *mStr = toupper(*mStr); token = TOKEN_Move_Piece; } else if (*mStr >= 'a' && *mStr <= 'h') { token = TOKEN_Move_Pawn; if (!isdigit (mStr[length - 1])) { token = TOKEN_Move_Promote; } } else { return ERROR_InvalidMove; } err = ReadMove (&sm, mStr, token); if (err != OK) { return err; } DoSimpleMove (&sm); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::CalcSANStrings(): // Calculate the SAN string for each move in the legal moves list. // void Position::CalcSANStrings (sanListT *sanList, sanFlagT flag) { if( LegalMoves.Size() == 0) { GenerateMoves(); } for (ushort i=0; i < LegalMoves.Size(); i++) { MakeSANString (LegalMoves.Get(i), sanList->list[i], flag); } sanList->num = LegalMoves.Size(); sanList->current = true; } errorT Position::ReadFromLongStr (const char * str) { pieceT pieceFromByte [256] = {EMPTY}; pieceFromByte [(int) 'K'] = WK; pieceFromByte [(int) 'k'] = BK; pieceFromByte [(int) 'Q'] = WQ; pieceFromByte [(int) 'q'] = BQ; pieceFromByte [(int) 'R'] = WR; pieceFromByte [(int) 'r'] = BR; pieceFromByte [(int) 'B'] = WB; pieceFromByte [(int) 'b'] = BB; pieceFromByte [(int) 'N'] = WN; pieceFromByte [(int) 'n'] = BN; pieceFromByte [(int) 'P'] = WP; pieceFromByte [(int) 'p'] = BP; Clear(); for (squareT sq=A1; sq <= H8; sq++) { if (str[sq] == '.') { continue; } pieceT p = pieceFromByte [(byte) str[sq]]; if (p == EMPTY) { return ERROR_Corrupt; } if (AddPiece (p,sq) != OK) { return ERROR_Corrupt; } } switch (str[65]) { case 'w': SetToMove (WHITE); break; case 'b': SetToMove (BLACK); break; default: return ERROR_Corrupt; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::MakeLongStr(): // Make a string representing the board. It will be 66 characters // long, encoding the 64 squares (in the order a1,b1,...,g8,h8 // with white pieces in upper case, black pieces in lower case, // and empty squares as dots) then a space, and finally "w" or "b" // indicating the side to move. Example for the starting position: // "RNBQKBNRPPPPPPPP................................pppppppprbnqkbnr w" // void Position::MakeLongStr (char * str) { ASSERT (str != NULL); char * s = str; for (squareT sq = A1; sq <= H8; sq++) { *s++ = PIECE_CHAR[Board[sq]]; } *s++ = ' '; *s++ = (ToMove == WHITE ? 'w' : 'b'); *s = 0; } #if defined (WINCE) || defined (POCKET) void Position::DumpBoard (/*FILE * */Tcl_Channel fp) { // ASSERT (fp != NULL); // squareT s; // char space = ' '; // char cr = '\n'; // char c; // for (int i=7; i>=0; i--) { // fputs (" ", fp); // for (int j=0; j<8; j++) { // s = (i*8) + j; // c = PIECE_CHAR[Board[s]]; my_Tcl_Write(fp, &c, 1); // putc (PIECE_CHAR[Board[s]], fp); // my_Tcl_Write(fp, &space,1); // putc (' ', fp); // } // my_Tcl_Write(fp, &cr,1); // putc ('\n', fp); // } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::DumpLists(): // Dump the piece lists to an open file. // void Position::DumpLists (/*FILE * */Tcl_Channel fp) { // ASSERT (fp != NULL); // uint i; // char c; // char buf[64]; // for (colorT c = WHITE; c <= BLACK; c++) { // for (i=0; i < Count[c]; i++) { // pieceT p = Board[List[c][i]]; // fprintf (fp, "%2d:", ListPos[List[c][i]]); // sprintf(buf, "%2d:", ListPos[List[c][i]]); // my_Tcl_Write(fp, buf, -1); // putc (PIECE_CHAR[p], fp); // c = PIECE_CHAR[p]; my_Tcl_Write(fp, &c, 1); // putc (square_FyleChar (List[c][i]), fp); // c = square_FyleChar (List[c][i]); my_Tcl_Write(fp, &c, 1); // putc (square_RankChar (List[c][i]), fp); // c = square_RankChar (List[c][i]); my_Tcl_Write(fp, &c, 1); // putc (' ', fp); // c = ' '; my_Tcl_Write(fp, &c, 1); // } // putc ('\n', fp); // c = '\n'; my_Tcl_Write(fp, &c, 1); // } } #else //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::DumpBoard(): // Dump the board to an open file. // void Position::DumpBoard (FILE * fp) { ASSERT (fp != NULL); squareT s; for (int i=7; i>=0; i--) { fputs (" ", fp); for (int j=0; j<8; j++) { s = (i*8) + j; putc (PIECE_CHAR[Board[s]], fp); putc (' ', fp); } putc ('\n', fp); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::DumpLists(): // Dump the piece lists to an open file. // void Position::DumpLists (FILE * fp) { ASSERT (fp != NULL); uint i; for (colorT c = WHITE; c <= BLACK; c++) { for (i=0; i < Count[c]; i++) { pieceT p = Board[List[c][i]]; fprintf (fp, "%2d:", ListPos[List[c][i]]); putc (PIECE_CHAR[p], fp); putc (square_FyleChar (List[c][i]), fp); putc (square_RankChar (List[c][i]), fp); putc (' ', fp); } putc ('\n', fp); } } #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::ReadFromCompactStr(): // Sets the position from the provided Null-terminated 33-byte // compact string. // The first 32 bytes contain the square valued, 4 bits per value, // for the square order A1, B1, ...., G8, H8. // The next byte contains the side to move, 1 for White or 2 for Black. // The final two bytes contain castling and en passant rights. // To ensure no bytes within the staring are zero-valued (so it // can be used as a regular null-terminated string), the value 1 // is added to the color, castling and en passant fields. errorT Position::ReadFromCompactStr (const byte * str) { Clear(); for (uint i=0; i < 32; i++) { pieceT p = str[i] >> 4; if (p != EMPTY) { if (AddPiece (p, i * 2) != OK) { return ERROR_Corrupt; } } p = str[i] & 15; if (p != EMPTY) { if (AddPiece (p, i * 2 + 1) != OK) { return ERROR_Corrupt; } } } colorT toMove = str[32] - 1; if (toMove != WHITE && toMove != BLACK) { return ERROR_Corrupt; } ToMove = toMove; Castling = str[33] - 1; EPTarget = str[34] - 1; return OK; } void Position::PrintCompactStr (char * cboard) { for (uint i=0; i < 32; i++) { uint i2 = i << 1; cboard[i] = (byte)(Board[i2] << 4) | Board[i2+1]; } cboard[32] = 1 + ToMove; cboard[33] = 1 + Castling; // Check that there really is an enemy pawn that might // be able to capture to the en passant square. For example, // if the EP square is c6 but there is no white pawn on // b5 or d5, then en passant should be ignored. squareT ep = EPTarget; if (ToMove == WHITE) { if (Board[square_Move (ep, DOWN_LEFT)] != WP && Board[square_Move (ep, DOWN_RIGHT)] != WP) { ep = NULL_SQUARE; } } else { if (Board[square_Move (ep, UP_LEFT)] != BP && Board[square_Move (ep, UP_RIGHT)] != BP) { ep = NULL_SQUARE; } } cboard[34] = 1 + ep; cboard[35] = 0; } void Position::PrintCompactStrFlipped (char * cboard) { for (uint i=0; i < 32; i++) { uint i2 = i << 1; // Flip 1st rank to 8th, etc: i2 = ((7 - (i2)/8) * 8 + ((i2) % 8)); cboard[i] = (byte)(PIECE_FLIP[Board[i2]] << 4) | (byte)(PIECE_FLIP[Board[i2+1]]); } cboard[32] = 1 + color_Flip(ToMove); cboard[33] = 1 + Castling; cboard[34] = 1 + EPTarget; cboard[35] = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::ReadFromFEN(): // Setup the position from a FEN string. // Note: the slashes usually found in Fen strings to mark the start // of a new row do not need to be present, but if they are, they must // appear at the actual start of a new row or the string will be // considered corrupt. // // IMPORTANT: the shortcut of having a two-digit number to represent // a number of empty rows (e.g. "/24/" instead of "/8/8/8/") is NOT // accepted by this function. // // It is not considered an error for the halfmove clock or fullmove // counter to be invalid, so this routine can also read positions // from EPD lines (which only share the first four fields with FEN). errorT Position::ReadFromFEN (const char * str) { // pieceFromByte[] converts a character to its piece, e.g. 'k' -> BK. static pieceT pieceFromByte [256]; // fenSqToRealSquare[] converts a fen square (0 to 63) to its real // square. E.g: [0] -> A8, [1] -> B8, .... [63] -> H1. static squareT fenSqToRealSquare [64]; // Note the first Call to set up the static arrays only once: static int firstCall = 1; ASSERT (str != NULL); const char * s = str; int count = 0; if (firstCall) { firstCall = 0; // Set up pieceFromByte[]: for (int i=0; i < 256; i++) { pieceFromByte[i] = EMPTY; } pieceFromByte [(int) 'K'] = WK; pieceFromByte [(int) 'k'] = BK; pieceFromByte [(int) 'Q'] = WQ; pieceFromByte [(int) 'q'] = BQ; pieceFromByte [(int) 'R'] = WR; pieceFromByte [(int) 'r'] = BR; pieceFromByte [(int) 'B'] = WB; pieceFromByte [(int) 'b'] = BB; pieceFromByte [(int) 'N'] = WN; pieceFromByte [(int) 'n'] = BN; pieceFromByte [(int) 'P'] = WP; pieceFromByte [(int) 'p'] = BP; // Set up fenSqToRealSq[]: for (int sq=0; sq < 64; sq++) { fenSqToRealSquare [sq] = (squareT)((7 - (sq)/8) * 8 + ((sq) % 8)); } } Clear (); while (count < 64) { if (*s == '/') { // A FEN string does not have to contain '/'s but if one // appears anywhere except the start of a row, it is an error: if (count % 8) { return ERROR_InvalidFEN; } } else if (*s > '0' && *s < '9') { count += (*s - '0'); } else { pieceT p = pieceFromByte [(byte) *s]; if (p == EMPTY) { return ERROR_InvalidFEN; } if (AddPiece (p, fenSqToRealSquare[count]) != OK) { return ERROR_InvalidFEN; } count++; } s++; } if (Material[WK] != 1 || Material[BK] != 1) { return ERROR_InvalidFEN; } // Now the side to move: while (isspace(*s)) { s++; } switch (*s) { case 'w': SetToMove (WHITE); break; case 'b': SetToMove (BLACK); break; default: return ERROR_InvalidFEN; } s++; if (! IsLegal()) { return ERROR_InvalidFEN; } // Now the castling flags: while (isspace(*s)) { s++; } if (*s == '-') { s++; // do nothing } else if (*s == 0) { // The FEN has no castling field, so just guess that // castling is possible whenever a king and rook are // still on their starting squares: if (Board[E1] == WK) { if (Board[A1] == WR) { SetCastling (WHITE, QSIDE, true); } if (Board[H1] == WR) { SetCastling (WHITE, KSIDE, true); } } if (Board[E8] == BK) { if (Board[A8] == BR) { SetCastling (BLACK, QSIDE, true); } if (Board[H8] == BR) { SetCastling (BLACK, KSIDE, true); } } } else { while (!isspace(*s) && *s != 0) { switch (*s) { case 'Q': SetCastling (WHITE, QSIDE, true); break; case 'q': SetCastling (BLACK, QSIDE, true); break; case 'K': SetCastling (WHITE, KSIDE, true); break; case 'k': SetCastling (BLACK, KSIDE, true); break; default: return ERROR_InvalidFEN; } s++; } } // Now the EP target: while (isspace(*s)) { s++; } if (*s == 0) { // do nothing } else if (*s == '-') { EPTarget = NULL_SQUARE; s++; // No EP target } else { char fylec = *s; s++; if (fylec < 'a' || fylec > 'h') { return ERROR_InvalidFEN; } char rankc = *s; s++; if (rankc != '3' && rankc != '6') { return ERROR_InvalidFEN; } EPTarget = square_Make(fyle_FromChar(fylec), rank_FromChar(rankc)); } // Now the capture/pawn halfmove clock: while (isspace(*s)) { s++; } if (*s) { HalfMoveClock = (ushort) atoi(s); } while (!isspace(*s) && *s != 0) { s++; } // Finally, the fullmove counter: while (isspace(*s)) { s++; } if (*s) { int i = atoi(s); if (i >= 1) { PlyCounter = (i - 1) * 2; } } if (ToMove == BLACK) { PlyCounter++; } return OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::PrintFEN(): // Print the FEN representation of the position. // If flags == FEN_COMPACT, only the board and side-to-move fields // are printed, in compact form (no slashes between rows). // If flags == FEN_BOARD, only the board and side-to-move fields // are printed. // If flags == FEN_CASTLING_EP, the castling and en passant fields // are also printed. // If flags == FEN_ALL_FIELDS, all fields are printed including // the halfmove clock and ply counter. // void Position::PrintFEN (char * str, uint flags) { ASSERT (str != NULL); uint emptyRun, iRank, iFyle; pieceT * pBoard = Board; for (iRank = 0; iRank < 8; iRank++) { pBoard = &(Board[(7 - iRank) * 8]); emptyRun = 0; if (iRank > 0 && flags > FEN_COMPACT) { *str++ = '/'; } for (iFyle = 0; iFyle < 8; iFyle++, pBoard++) { if (*pBoard != EMPTY) { if (emptyRun) { *str++ = (byte) emptyRun + '0'; } emptyRun = 0; *str++ = PIECE_CHAR[*pBoard]; } else { emptyRun++; } } if (emptyRun) { *str++ = (byte) emptyRun + '0'; } } if (flags > FEN_COMPACT) { *str++ = ' '; } *str++ = (ToMove == WHITE ? 'w' : 'b'); *str = 0; if (flags >= FEN_CASTLING_EP) { // Add the castling flags and EP flag as well: *str++ = ' '; if (Castling == 0) { *str++ = '-'; } else { if (GetCastling (WHITE, KSIDE)) { *str++ = 'K'; } if (GetCastling (WHITE, QSIDE)) { *str++ = 'Q'; } if (GetCastling (BLACK, KSIDE)) { *str++ = 'k'; } if (GetCastling (BLACK, QSIDE)) { *str++ = 'q'; } } *str++ = ' '; // Now the EP target square: if (EPTarget == NULL_SQUARE) { *str++ = '-'; } else { *str++ = square_FyleChar (EPTarget); *str++ = square_RankChar (EPTarget); } *str = 0; if (flags >= FEN_ALL_FIELDS) { // Also print the Halfmove and ply counters: *str++ = ' '; sprintf (str, "%d %d", HalfMoveClock, (PlyCounter / 2) + 1); } } return; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::DumpHtmlBoard(): // Prints the board in a format for use in HTML documents. // Assumes that the HTML document will be in a directory that // has a subdirectory bitmapsDir with files "bwr.gif", etc. // The numeric arguments are the pixel width and height for each // square -- if zero, then the bitmaps are not scaled. // The following values define the available HTML styles. // Style 0 has 40x40 non-transparent images in the "bitmaps" directory. // Style 1 has 36x35 non-transparent images in the "bitmaps2" directory. struct htmlStyleT { const char * dir; // directory containing images. uint width; // width value specified in tag. uint height; // height value specified in tag. bool transparent; // True if the style uses transparent images, // with square colors set by "bgcolor". }; void Position::DumpHtmlBoard (DString * dstr, uint style, const char * dir, bool flip) { const uint HTML_DIAG_STYLES = 2; htmlStyleT hs [HTML_DIAG_STYLES]; hs[0].dir = "bitmaps"; hs[0].width = 40; hs[0].height = 40; hs[1].dir = "bitmaps2"; hs[1].width = 36; hs[1].height = 35; if (style >= HTML_DIAG_STYLES) { style = 0; } uint width = hs[style].width; uint height = hs[style].height; uint iRank, iFyle; pieceT * pBoard; if (dir == NULL) { dir = hs[style].dir; } dstr->Append ("

    \n"); dstr->Append ("\n"); for (iRank = 0; iRank < 8; iRank++) { dstr->Append ("\n"); pBoard = &(Board[(7 - iRank) * 8]); for (iFyle = 0; iFyle < 8; iFyle++, pBoard++) { pieceT piece = *pBoard; if (flip) { piece = Board[iRank * 8 + (7 - iFyle)]; } dstr->Append (" \n"); } dstr->Append ("\n"); } dstr->Append ("
    0) { char temp[40]; sprintf (temp, "width=%u ", width); dstr->Append (temp); } if (height > 0) { char temp[40]; sprintf (temp, "height=%u ", height); dstr->Append (temp); } dstr->Append ("src=\""); dstr->Append (dir); dstr->AddChar ('/'); bool lightSq = ((iRank % 2) == (iFyle % 2)); if (lightSq) { dstr->AddChar ('w'); } else { dstr->AddChar ('b'); } if (piece == EMPTY) { dstr->Append ("sq.gif"); } else { colorT c = piece_Color(piece); dstr->AddChar (c == WHITE ? 'w' : 'b'); dstr->AddChar (tolower (PIECE_CHAR[piece])); dstr->Append (".gif"); } dstr->Append ("\" alt=\""); if (piece == EMPTY) { if (! lightSq) { dstr->Append ("::"); } } else { colorT c = piece_Color(piece); dstr->AddChar (c == WHITE ? 'W' : 'B'); dstr->AddChar (toupper (PIECE_CHAR[piece])); } dstr->Append ("\">
    \n"); //if (ToMove == WHITE) { // dstr->Append ("
    White to move.\n"); //} else { // dstr->Append ("
    Black to move.\n"); //} dstr->Append("

    "); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::DumpLatexBoard(): // Prints the board in a format used by a chess package that is // available for the LaTeX or TeX typesetting language. void Position::DumpLatexBoard (DString * dstr, bool flip) { uint iRank, iFyle; pieceT * pBoard; dstr->Append ("\\board{"); for (iRank = 0; iRank < 8; iRank++) { pBoard = &(Board[(7 - iRank) * 8]); for (iFyle = 0; iFyle < 8; iFyle++, pBoard++) { pieceT piece = *pBoard; if (flip) { piece = Board[iRank * 8 + (7 - iFyle)]; } if (piece != EMPTY) { dstr->AddChar (PIECE_CHAR[piece]); } else { // put a space or a '*': dstr->AddChar (((iRank % 2) == (iFyle % 2)) ? ' ' : '*'); } } if (iRank < 7) { dstr->Append ("}\n {"); } else { dstr->AddChar ('}'); } } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::Compare(): // Compare another position with this one. // sint Position::Compare (Position * p) { int i = 32; byte *p1, *p2; p1 = Board; p2 = p->Board; while (i && *p1 == *p2) { i--; p1++; p2++; } if (p1 < p2) { return -1; } if (p1 > p2) { return 1; } return (ToMove - p->GetToMove()); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::CopyFrom(): // Copy another position to this one. // void Position::CopyFrom (Position * src) { memcpy (this, src, sizeof(Position)); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::GetSquares // Adds to the provided square list all squares containing the specified // piece, and return the number of pieces of that type on the board. uint Position::GetSquares (pieceT piece, SquareList * sqlist) { colorT color = piece_Color(piece); squareT * squares = GetList(color); uint npieces = GetCount(color); for (uint i=0; i < npieces; i++) { squareT sq = squares[i]; pieceT p = Board[sq]; if (p == piece) { sqlist->Add (sq); } } return Material[piece]; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Position::Random // Given a string such as "KRPKR" or "KRP-kr", sets up a // random position with that material configuration. inline squareT randomSquare (void) { return random32() % 64; } inline squareT randomPawnSquare (void) { return (random32() % 48) + A2; } errorT Position::Random (const char * material) { pieceT pieces [32]; // List of pieces excluding kings uint nPieces[2] = {0, 0}; // Number of pieces per side excluding kings. uint total = 0; // Total number of pieces excluding kings. LegalMoves.Clear(); colorT side = WHITE; // The material string must start with a king: if (toupper(*material) != 'K') { return ERROR_Corrupt; } material++; // Read the material string: while (1) { char ch = toupper(*material); if (ch == 0) { break; } switch (ch) { case 'K': if (side == BLACK) { return ERROR_Corrupt; } // Seen third king! side = BLACK; break; case 'Q': case 'R': case 'B': case 'N': case 'P': if (nPieces[side] >= 15) { return ERROR_Corrupt; } nPieces[side]++; if (ch == 'P') { pieces[total] = piece_Make (side, PAWN); } else { pieces[total] = piece_Make (side, piece_FromChar(ch)); } total++; break; case ' ': case '-': case '.': case ',': case ':': // Ignore spaces, commas, etc: break; default: return ERROR_Corrupt; } material++; } if (side != BLACK) { return ERROR_Corrupt; } // Never saw Black king! // Generate two non-adjacent king squares: squareT wk = randomSquare(); squareT bk = randomSquare(); while (wk == bk || square_Adjacent (wk, bk)) { bk = randomSquare(); } // Now add all other pieces to empty squares, looping until a legal // position is found: while (1) { Clear(); ToMove = (random32() % 2) ? WHITE : BLACK; AddPiece (WK, wk); AddPiece (BK, bk); for (uint i=0; i < total; i++) { squareT sq; pieceT p = pieces[i]; bool isPawn = (piece_Type(p) == PAWN); while (1) { sq = isPawn ? randomPawnSquare() : randomSquare(); if (Board[sq] == EMPTY) { break; } } // Add this piece on the random empty square: AddPiece (p, sq); } // Generated a random position with kings not adjacent and // every piece on its own square. We can stop at this // attempt if the enemy king is not in check: squareT enemyKing = (ToMove == WHITE) ? bk : wk; if (CalcAttacks (ToMove, enemyKing, NULL) == 0) { break; } } return OK; } ////////////////////////////////////////////////////////////////////// // EOF: position.cpp ////////////////////////////////////////////////////////////////////// scid-4.3.0.cvs20120311/src/tkscid.cpp0000644000175000017500000212267711727223077016233 0ustar oliveroliver////////////////////////////////////////////////////////////////////// // // FILE: tkscid.cpp // Scid extensions to Tcl/Tk interpreter // // Part of: Scid (Shane's Chess Information Database) // Version: 3.6.4 // // Notice: Copyright (c) 1999-2004 Shane Hudson. All rights reserved. // Copyright (c) 2006-2007 Pascal Georges // // Author: Shane Hudson (sgh@users.sourceforge.net) // ////////////////////////////////////////////////////////////////////// #include "tkscid.h" #include #include #include //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Global variables: static scidBaseT * db = NULL; // current database. static scidBaseT * clipbase = NULL; // clipbase database. static scidBaseT * dbList = NULL; // array of database slots. static int currentBase = 0; static Position * scratchPos = NULL; // temporary "scratch" position. static Game * scratchGame = NULL; // "scratch" game for searches, etc. static PBook * ecoBook = NULL; // eco classification pbook. #ifndef WINCE static SpellChecker * spellChecker [NUM_NAME_TYPES] = {NULL}; // Name correction. #endif static PBook * repertoire = NULL; static progressBarT progBar; static char * preMoveCommand = NULL; // Tcl command to execute before any // action that changes board state. static OpTable * reports[2] = {NULL, NULL}; static const char * reportTypeName[2] = { "opening", "player" }; static const uint REPORT_OPENING = 0; static const uint REPORT_PLAYER = 1; static char decimalPointChar = '.'; static uint htmlDiagStyle = 0; // Default maximum number of games in the clipbase database: #ifdef WINCE const uint CLIPBASE_MAX_GAMES = 10000; #else const uint CLIPBASE_MAX_GAMES = 1000000; #endif // Actual current maximum number of games in the clipbase database: static uint clipbaseMaxGames = CLIPBASE_MAX_GAMES; // MAX_BASES is the maximum number of databases that can be open, // including the clipbase database. #ifdef WINCE const int MAX_BASES = 3; #else const int MAX_BASES = 9; #endif const int CLIPBASE_NUM = MAX_BASES - 1; // MAX_EPD is the maximum number of EPD files that can be open. #ifdef WINCE const int MAX_EPD = 0; #else const int MAX_EPD = 4; #endif static PBook * pbooks [MAX_EPD]; // Declare scid_InitTclTk, to initialise the Tcl interpreter: #ifdef WINCE extern "C" int Tkscid_Init (Tcl_Interp * interp); #else int scid_InitTclTk (Tcl_Interp * interp); #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // InvalidCommand(): // Given a Tcl Interpreter, a major command name (e.g. "sc_base") and // a null-terminated array of minor commands, this function sets // the interpreter's result to a useful error message listing the // available subcommands. // Returns TCL_ERROR, so caller can simply: // return InvalidCommand (...); // instead of: // InvalidCommand (...); // return TCL_ERROR; int InvalidCommand (Tcl_Interp * ti, const char * majorCmd, const char ** minorCmds) { ASSERT (majorCmd != NULL); Tcl_AppendResult (ti, "Invalid command: ", majorCmd, " has the following minor commands:\n", NULL); while (*minorCmds != NULL) { Tcl_AppendResult (ti, " ", *minorCmds, "\n", NULL); minorCmds++; } return TCL_ERROR; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PreMoveCommand(): // Executes the Tcl pre-move command, which can be set by // the Tcl program to automatically store the contents of // the Comment editor window, EPD windows, etc. // // Called by any commands that alter the board state. void PreMoveCommand (Tcl_Interp * ti) { if (preMoveCommand[0] == 0) { return; } Tcl_Eval (ti, preMoveCommand); Tcl_ResetResult (ti); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Progress Bar update routine: // static void updateProgressBar (Tcl_Interp * ti, uint done, uint total, bool update_idletasks_only = false) { char tempStr [250]; uint width = progBar.width; if (total > 0) { double w = (double)width * (double)done / (double)total; width = (int) w; } sprintf (tempStr, "%s coords %s 0 0 %u %u", progBar.canvName, progBar.rectName, width + 1, progBar.height + 1); Tcl_Eval (ti, tempStr); if (progBar.timeName[0] != 0) { int elapsed = progBar.timer.CentiSecs(); int estimated = elapsed; if (done != 0) { // Estimated total time = elapsed * total / done, but we do // the calculation using double-precision floating point because // if total and elapsed are large, we can get overflow. double d = (double)elapsed * (double)total / (double)done; estimated = (int) d; } elapsed /= 100; estimated /= 100; sprintf (tempStr, "%s itemconfigure %s -text \"%d:%02d / %d:%02d\"", progBar.canvName, progBar.timeName, elapsed / 60, elapsed % 60, estimated / 60, estimated % 60); Tcl_Eval (ti, tempStr); } if (update_idletasks_only) Tcl_Eval (ti, "update idletasks"); else Tcl_Eval (ti, "update"); } static bool startProgressBar (void) { progBar.interrupt = false; if (progBar.state == false) { return false; } progBar.state = false; progBar.timer.Reset(); return true; } static void restartProgressBar (Tcl_Interp * ti) { progBar.timer.Reset(); updateProgressBar (ti, 0, 1); } static inline bool interruptedProgress () { return (progBar.interrupt); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // recalcFlagCounts: // Updates all precomputed stats about the database: flag counts, // average rating, date range, etc. void recalcFlagCounts (scidBaseT * basePtr) { scidStatsT * stats = &(basePtr->stats); uint i; // Zero out all stats: for (i = 0; i < IDX_NUM_FLAGS; i++) { stats->flagCount[i] = 0; } stats->nRatings = 0; stats->sumRatings = 0; stats->minRating = 0; stats->maxRating = 0; stats->minDate = ZERO_DATE; stats->maxDate = ZERO_DATE; stats->nYears = 0; stats->sumYears = 0; for (i=0; i < NUM_RESULT_TYPES; i++) { stats->nResults[i] = 0; } #ifndef WINCE for (i=0; i < 1; i++) { stats->ecoCount0[i].count = 0; stats->ecoCount0[i].results[RESULT_White] = 0; stats->ecoCount0[i].results[RESULT_Black] = 0; stats->ecoCount0[i].results[RESULT_Draw] = 0; stats->ecoCount0[i].results[RESULT_None] = 0; } for (i=0; i < 5; i++) { stats->ecoCount1[i].count = 0; stats->ecoCount1[i].results[RESULT_White] = 0; stats->ecoCount1[i].results[RESULT_Black] = 0; stats->ecoCount1[i].results[RESULT_Draw] = 0; stats->ecoCount1[i].results[RESULT_None] = 0; } for (i=0; i < 50; i++) { stats->ecoCount2[i].count = 0; stats->ecoCount2[i].results[RESULT_White] = 0; stats->ecoCount2[i].results[RESULT_Black] = 0; stats->ecoCount2[i].results[RESULT_Draw] = 0; stats->ecoCount2[i].results[RESULT_None] = 0; } for (i=0; i < 500; i++) { stats->ecoCount3[i].count = 0; stats->ecoCount3[i].results[RESULT_White] = 0; stats->ecoCount3[i].results[RESULT_Black] = 0; stats->ecoCount3[i].results[RESULT_Draw] = 0; stats->ecoCount3[i].results[RESULT_None] = 0; } for (i=0; i < 500*26; i++) { stats->ecoCount4[i].count = 0; stats->ecoCount4[i].results[RESULT_White] = 0; stats->ecoCount4[i].results[RESULT_Black] = 0; stats->ecoCount4[i].results[RESULT_Draw] = 0; stats->ecoCount4[i].results[RESULT_None] = 0; } #endif // Read stats from index entry of each game: for (uint gnum=0; gnum < basePtr->numGames; gnum++) { IndexEntry * ie = basePtr->idx->FetchEntry (gnum); stats->nResults[ie->GetResult()]++; eloT elo = ie->GetWhiteElo(); if (elo > 0) { stats->nRatings++; stats->sumRatings += elo; if (stats->minRating == 0) { stats->minRating = elo; } if (elo < stats->minRating) { stats->minRating = elo; } if (elo > stats->maxRating) { stats->maxRating = elo; } basePtr->nb->AddElo (ie->GetWhite(), elo); } elo = ie->GetBlackElo(); if (elo > 0) { stats->nRatings++; stats->sumRatings += elo; if (stats->minRating == 0) { stats->minRating = elo; } if (elo < stats->minRating) { stats->minRating = elo; } if (elo > stats->maxRating) { stats->maxRating = elo; } basePtr->nb->AddElo (ie->GetBlack(), elo); } dateT date = ie->GetDate(); if (gnum == 0) { stats->maxDate = stats->minDate = date; } if (date_GetYear(date) > 0) { if (date < stats->minDate) { stats->minDate = date; } if (date > stats->maxDate) { stats->maxDate = date; } stats->nYears++; stats->sumYears += date_GetYear (date); basePtr->nb->AddDate (ie->GetWhite(), date); basePtr->nb->AddDate (ie->GetBlack(), date); } for (uint flag = 0; flag < IDX_NUM_FLAGS; flag++) { bool value = ie->GetFlag (1 << flag); if (value) { stats->flagCount[flag]++; } } ecoT eco = ie->GetEcoCode(); ecoStringT ecoStr; eco_ToExtendedString (eco, ecoStr); #ifndef WINCE uint length = strLength (ecoStr); resultT result = ie->GetResult(); if (length >= 3) { uint code = 0; stats->ecoCount0[code].count++; stats->ecoCount0[code].results[result]++; code = ecoStr[0] - 'A'; stats->ecoCount1[code].count++; stats->ecoCount1[code].results[result]++; code = (code * 10) + (ecoStr[1] - '0'); stats->ecoCount2[code].count++; stats->ecoCount2[code].results[result]++; code = (code * 10) + (ecoStr[2] - '0'); stats->ecoCount3[code].count++; stats->ecoCount3[code].results[result]++; if (length >= 4) { code = (code * 26) + (ecoStr[3] - 'a'); stats->ecoCount4[code].count++; stats->ecoCount4[code].results[result]++; } } #endif } } void recalcEstimatedRatings (NameBase * nb) { #ifndef WINCE // Update estimated ratings from spellcheck file if available: if (spellChecker[NAME_PLAYER] == NULL) { return; } for (idNumberT id=0; id < nb->GetNumNames(NAME_PLAYER); id++) { if (nb->GetElo(id) == 0 && nb->GetFrequency(NAME_PLAYER, id) > 0) { const char * name = nb->GetName (NAME_PLAYER, id); if (! strIsSurnameOnly (name)) { const char * text = \ spellChecker[NAME_PLAYER]->GetCommentExact (name); if (text != NULL) { nb->SetElo (id, SpellChecker::GetPeakRating (text)); } } } } #endif } void recalcNameFrequencies (NameBase * nb, Index * idx) { for (nameT nt = NAME_FIRST; nt <= NAME_LAST; nt++) { nb->ZeroAllFrequencies (nt); } IndexEntry iE; for (uint i=0; i < idx->GetNumGames(); i++) { idx->ReadEntries (&iE, i, 1); nb->IncFrequency (NAME_PLAYER, iE.GetWhite(), 1); nb->IncFrequency (NAME_PLAYER, iE.GetBlack(), 1); nb->IncFrequency (NAME_EVENT, iE.GetEvent(), 1); nb->IncFrequency (NAME_SITE, iE.GetSite(), 1); nb->IncFrequency (NAME_ROUND, iE.GetRound(), 1); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Standard error messages: // const char * errMsgNotOpen (Tcl_Interp * ti) { return translate (ti, "ErrNotOpen", "This is not an open database."); } const char * errMsgReadOnly (Tcl_Interp * ti) { return translate (ti, "ErrReadOnly", "This database is read-only; it cannot be altered."); } const char * errMsgSearchInterrupted (Tcl_Interp * ti) { return translate (ti, "ErrSearchInterrupted", "[Interrupted search; results are incomplete]"); } #ifndef POCKET //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Main procedure // int main (int argc, char * argv[]) { scid_Init(); // If SOURCE_TCL_FILE is provided, we need to insert it (with the // directory of the executable file prepended) as the first argument: int newArgc = argc; char ** newArgv = argv; #ifdef WIN32 # ifdef SOURCE_TCL_FILE newArgc++; #ifdef WINCE newArgv = (char **) my_Tcl_Alloc (sizeof (char *) * newArgc); #else newArgv = (char **) malloc (sizeof (char *) * newArgc); #endif newArgv[0] = argv[0]; for (int i = 1; i < argc; i++) { newArgv[i+1] = argv[i]; } // Now generate the full path and name of the file to source: char sourceFileName [MAX_PATH]; sourceFileName[0] = 0; HMODULE hModule = GetModuleHandle (NULL); GetModuleFileNameA (hModule, sourceFileName, MAX_PATH); char * end = strrchr (sourceFileName, '\\'); if (end != NULL) { strCopy (end + 1, SOURCE_TCL_FILE); } newArgv[1] = sourceFileName; # endif // ifdef SOURCE_TCL_FILE #endif // ifdef WIN32 #ifndef WINCE #ifdef TCL_ONLY Tcl_Main (newArgc, newArgv, scid_InitTclTk); #else Tk_Main (newArgc, newArgv, scid_InitTclTk); #endif #endif exit(0); return 0; } #endif // ifndef POCKET #ifdef WINCE int Tkscid_Init (Tcl_Interp * ti) { //lowPrio(253); // ============================================================== int code; // currentTclInterp = ti; if (Tcl_InitStubs(ti, TCL_VERSION, 0) == NULL) { return TCL_ERROR; } code = Tcl_PkgProvide(ti, "Tkscid", "1.0"); if (code != TCL_OK) { return code; } // ============================================================== #else int scid_InitTclTk (Tcl_Interp * ti) { #endif if (Tcl_Init (ti) == TCL_ERROR) { return TCL_ERROR; } #ifndef TCL_ONLY if (Tk_Init (ti) == TCL_ERROR) { return TCL_ERROR; } #endif // Register Scid application-specific commands: // CREATE_CMD() is a macro to reduce the clutter of the final two args // to Tcl_CreateCommand(). #define CREATE_CMD(ip,name,cmd) \ Tcl_CreateCommand ((ip), (name), (Tcl_CmdProc *)(cmd), \ (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL) currentTclInterp = ti; //////////////////// /// Scid-specific Tcl/Tk commands: CREATE_CMD (ti, "strIsPrefix", str_is_prefix); CREATE_CMD (ti, "strPrefixLen", str_prefix_len); #ifdef POCKET CREATE_CMD (ti, "sc_msg", sc_msg); #endif CREATE_CMD (ti, "sc_base", sc_base); // CREATE_CMD (ti, "sc_book", sc_epd); // sc_epd used to be sc_book : Pascal Georges : not used any longer, so reused CREATE_CMD (ti, "sc_book", sc_book); CREATE_CMD (ti, "sc_epd", sc_epd); CREATE_CMD (ti, "sc_clipbase", sc_clipbase); CREATE_CMD (ti, "sc_compact", sc_compact); CREATE_CMD (ti, "sc_eco", sc_eco); CREATE_CMD (ti, "sc_filter", sc_filter); CREATE_CMD (ti, "sc_game", sc_game); CREATE_CMD (ti, "sc_info", sc_info); CREATE_CMD (ti, "sc_move", sc_move); CREATE_CMD (ti, "sc_name", sc_name); CREATE_CMD (ti, "sc_report", sc_report); CREATE_CMD (ti, "sc_pos", sc_pos); CREATE_CMD (ti, "sc_progressBar", sc_progressBar); CREATE_CMD (ti, "sc_sort", sc_sort); CREATE_CMD (ti, "sc_search", sc_search); CREATE_CMD (ti, "sc_tree", sc_tree); CREATE_CMD (ti, "sc_var", sc_var); // Initialise array of EPD slots: for (int epdID=0; epdID < MAX_EPD; epdID++) { pbooks[epdID] = NULL; } // Initialise global Scid database variables: #ifdef WINCE dbList = (scidBaseT * ) my_Tcl_Alloc( sizeof(scidBaseT [MAX_BASES])); #else dbList = new scidBaseT [MAX_BASES]; #endif for (int base=0; base < MAX_BASES; base++) { db = &(dbList[base]); db->idx = new Index; db->nb = new NameBase; db->game = new Game; for (int u = 0; u < UNDO_MAX; u++) db->undoGame[u] = NULL; db->undoIndex = -1; db->gameNumber = -1; db->gameAltered = false; db->gfile = new GFile; // TODO: Bases should be able to share common buffers!!! db->bbuf = new ByteBuffer; db->bbuf->SetBufferSize (BBUF_SIZE); db->tbuf = new TextBuffer; db->tbuf->SetBufferSize (TBUF_SIZE); strCopy (db->fileName, ""); strCopy (db->realFileName, ""); db->fileMode = FMODE_Both; db->inUse = false; db->filter = new Filter(0); db->dbFilter = new Filter(0); db->treeFilter = new Filter(0); db->numGames = 0; db->memoryOnly = false; db->duplicates = NULL; db->idx->SetDescription (errMsgNotOpen(ti)); recalcFlagCounts (db); db->tree.moveCount = db->tree.totalCount = 0; db->treeCache = NULL; db->treeSearchTime = 0; } // Initialise the progress bar: progBar.state = false; progBar.interrupt = false; progBar.canvName = strDuplicate (""); progBar.rectName = strDuplicate (""); progBar.timeName = strDuplicate (""); // Initialise the clipbase database: clipbase = &(dbList[CLIPBASE_NUM]); clipbase->gfile->CreateMemoryOnly(); clipbase->idx->CreateMemoryOnly(); clipbase->idx->SetType (2); clipbase->idx->SetDescription ("Temporary database, not kept on disk."); clipbase->inUse = true; clipbase->memoryOnly = true; clipbase->treeCache = new TreeCache; clipbase->treeCache->SetCacheSize (SCID_TreeCacheSize); clipbase->backupCache = new TreeCache; clipbase->backupCache->SetCacheSize (SCID_BackupCacheSize); clipbase->backupCache->SetPolicy (TREECACHE_Oldest); currentBase = 0; scratchPos = new Position; scratchGame = new Game; db = &(dbList[currentBase]); // Set preMoveCommand to empty command: preMoveCommand = strDuplicate (""); return TCL_OK; } ///////////////////////////////////////////////////////////////////// // MISC functions ///////////////////////////////////////////////////////////////////// //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // findEmptyBase: // returns a number from 0 to MAX_BASES - 1 if an empty // database slot exists; or returns -1 if a maximum number of bases // are already in use. int findEmptyBase (void) { for (int i=0; i < MAX_BASES; i++) { if (! dbList[i].inUse) { return i; } } return -1; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // str_is_prefix: // Provides a fast Tcl command "strIsPrefix" for checking if the // first string provided is a prefix of the second string, without // needing the standard slower [string match] or [string range] // routines. int str_is_prefix (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 3) { return errorResult (ti, "Usage: strIsPrefix "); } return setBoolResult (ti, strIsPrefix (argv[1], argv[2])); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // str_prefix_len: // Tcl command that returns the length of the common text at the start // of two strings. int str_prefix_len (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 3) { return errorResult (ti, "Usage: strPrefixLen "); } return setUintResult (ti, strPrefix (argv[1], argv[2])); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // strGetFilterOp: // Converts a string value to a filter operation value. filterOpT strGetFilterOp (const char * str) { switch (*str) { // AND: case 'A': case 'a': case '0': return FILTEROP_AND; // OR: case 'O': case 'o': case '1': return FILTEROP_OR; // RESET: case 'R': case 'r': case '2': return FILTEROP_RESET; } // Default is RESET. return FILTEROP_RESET; } ///////////////////////////////////////////////////////////////////// /// DATABASE functions //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // base_opened: // Returns a slot number if the named database is already // opened in Scid, or -1 if it is not open. int base_opened (const char * filename) { for (int i=0; i < CLIPBASE_NUM; i++) { if (dbList[i].inUse && strEqual (dbList[i].realFileName, filename)) { return i; } } // OK, An exact same file name was not found, but we may have compared // absolute path (e.g. from a File Open dialog) with a relative one // (e.g. from a command-line argument). // To check further, return true if two names have the same tail // (part after the last "/"), device and inode number: const char * tail = strLastChar (filename, '/'); if (tail == NULL) { tail = filename; } else { tail++; } for (int j=0; j < CLIPBASE_NUM; j++) { if (! dbList[j].inUse) { continue; } const char * ftail = strLastChar (dbList[j].realFileName, '/'); if (ftail == NULL) { ftail = dbList[j].realFileName; } else { ftail++; } if (strEqual (ftail, tail)) { struct stat s1; struct stat s2; if (stat (ftail, &s1) != 0) { continue; } if (stat (tail, &s2) != 0) { continue; } if (s1.st_dev == s2.st_dev && s1.st_ino == s2.st_ino) { return j; } } } return -1; } #ifdef POCKET typedef long DWORD; typedef int BOOL; typedef int HANDLE; typedef short WORD; // typedef unsigned short wchar_t; typedef unsigned short WCHAR; # define WINAPI typedef const WCHAR* LPCWSTR; typedef WCHAR* LPWSTR; typedef void * LPVOID; typedef void * PVOID; typedef int * LPDWORD; typedef unsigned long ULONG; #include "msgqueue.h" extern "C" DWORD WINAPI GetLastError(void); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_msg: msg queue for IPC with engines on PPC. static HANDLE hw[2], hr[2]; // those go here to avoid struct alignment problems (see option -mstructure-size-boundary=n which // seems to be a workaround but in fact should not be one) int bt = 0; int sc_msg (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { static const char * options [] = { "init", "close", "send", "recv", "info", NULL }; enum { MSG_INIT, MSG_CLOSE, MSG_SEND, MSG_RECV, MSG_INFO, BT_INIT, BT_SEND, BT_RECV }; int index = -1; if (argc > 1) { index = strUniqueMatch (argv[1], options); } switch (index) { case MSG_INIT: return sc_msg_init(cd, ti, argc, argv); case MSG_CLOSE: return sc_msg_close(cd, ti, argc, argv); case MSG_SEND: return sc_msg_send(cd, ti, argc, argv); case MSG_RECV: return sc_msg_recv(cd, ti, argc, argv); case MSG_INFO: return sc_msg_info(cd, ti, argc, argv); default: return InvalidCommand (ti, "sc_msg", options); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_msg_init: // sc_msg_init <1|2> int sc_msg_init (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 4) { return errorResult (ti, "Usage: sc_msg init <1|2> "); } uint slot = strGetUnsigned(argv[2]) - 1; hw[slot] = my_sc_msg_init((char*)argv[3], 0); if (hw[slot] == 0) return errorResult (ti, "CreateMsgQueue w failed"); hr[slot] = my_sc_msg_init((char*)argv[3], 1); if (hr[slot] == 0) return errorResult (ti, "CreateMsgQueue r failed"); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_msg_close: // int sc_msg_close (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 3) { return errorResult (ti, "Usage: sc_msg close <1|2>"); } uint slot = strGetUnsigned(argv[2]) - 1; if (!CloseMsgQueue(hw[slot]) || !CloseMsgQueue(hr[slot])) { return errorResult (ti, "CloseMsgQueue error"); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_msg_send: // int sc_msg_send (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 4) { return errorResult (ti, "Usage: sc_msg send <1|2> "); } uint slot = strGetUnsigned(argv[2]) - 1; if ( ! WriteMsgQueue( hw[slot], (void *) argv[3], strlen(argv[3]), 0, 0) ) { int err = GetLastError(); char string[100]; sprintf(string , "msg send error %d", err); return errorResult (ti, string); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_msg_recv: // returns the message read int sc_msg_recv (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 3) { return errorResult (ti, "Usage: sc_msg recv <1|2>"); } uint slot = strGetUnsigned(argv[2]) - 1; char buf[1024]; int read; int dwFlags = 0; if ( ! ReadMsgQueue( hr[slot], (LPVOID) buf, 1024, (LPDWORD) &read, 0, (DWORD *) &dwFlags ) ) read = 0; buf[read] = '\0'; Tcl_AppendResult (ti, buf, NULL); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_msg_info <1|2> : // int sc_msg_info (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { MSGQUEUEINFO qinfo; char buf[1024]; if (argc != 4) { return errorResult (ti, "Usage: sc_msg info <1|2> "); } uint slot = strGetUnsigned(argv[2]) - 1; HANDLE h = hr[slot]; static const char * options [] = { "read", "write" }; enum { OPT_READ, OPT_WRITE }; int optionMode = OPT_READ; optionMode = strUniqueMatch (argv[3], options); if (optionMode < OPT_READ) { return errorResult (ti, "Usage: sc_msg info <1|2> [read|write]"); } if (optionMode == OPT_READ) { h = hr[slot]; } if (optionMode == OPT_WRITE) { h = hw[slot]; } qinfo.dwSize = sizeof(MSGQUEUEINFO); if (! GetMsgQueueInfo( h, (LPMSGQUEUEINFO) &qinfo) ) { int err = GetLastError(); char string[100]; sprintf(string , "-1 -1 -1 -1 %d", err); Tcl_AppendResult (ti, string, NULL); return TCL_OK; } sprintf(buf, "%d %d %d %d", (int)qinfo.dwCurrentMessages, (int)qinfo.dwMaxQueueMessages, (int)qinfo.wNumReaders, (int)qinfo.wNumWriters); Tcl_AppendResult (ti, buf, NULL); return TCL_OK; } #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_gamelocation: // For all game numbers parameter 1 represent the first game // If gnumber = 0 and are provided perfom a text search int sc_base_gamelocation (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { const char* usage = "Usage: sc_base gamelocation [ ]"; if (argc != 6 && argc != 9) return errorResult (ti, usage); int dbNumber = strGetInteger(argv[2]) - 1; scidBaseT *cdb = &(dbList[dbNumber]); if (! cdb->inUse) { return TCL_OK; } Filter* filter = 0; if (strCompare("dbfilter", argv[3]) == 0) filter = cdb->dbFilter; else if (strCompare("tree", argv[3]) == 0) filter = cdb->treeFilter; const char* sort = argv[4]; uint gnumber = strGetUnsigned (argv[5]); uint location = 0; if (gnumber == 0) { if (argc != 9) return errorResult (ti, usage); const char* txt = argv[6]; uint st = strGetUnsigned (argv[7]); bool fw = strGetBoolean (argv[8]); location = cdb->idx->GetRangeLocation (cdb->nb, sort, filter, txt, st, fw); } else { if (gnumber > cdb->idx->GetNumGames()) return TCL_OK; if (filter && filter->Get(gnumber) == 0) return TCL_OK; location = cdb->idx->GetRangeLocation (cdb->nb, sort, filter, gnumber); } if (location == 0) return TCL_OK; //Not found return setUintResult (ti, location); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_sortcache: int sc_base_sortcache (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 5) { return errorResult (ti, "Usage: sc_base sortcache "); } int dbNumber = strGetInteger(argv[2]) - 1; scidBaseT *cdb = &(dbList[dbNumber]); if (! cdb->inUse) { return TCL_OK; } if (strCompare("create", argv[3]) == 0) { cdb->idx->CreateSortingCache (cdb->nb, argv[4]); } else { cdb->idx->FreeCache(argv[4]); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_gameslist: int sc_base_gameslist (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 6 && argc != 7) { return errorResult (ti, "Usage: sc_base gameslist []"); } int dbNumber = strGetInteger(argv[2]) - 1; scidBaseT *cdb = &(dbList[dbNumber]); if (! cdb->inUse) { return TCL_OK; } uint start = strGetUnsigned (argv[3]); uint count = strGetUnsigned (argv[4]); Filter* filter = 0; if (strCompare("dbfilter", argv[5]) == 0) filter = cdb->dbFilter; else if (strCompare("tree", argv[5]) == 0) filter = cdb->treeFilter; const char* sort = "N+"; if (argc == 7) sort = argv[6]; uint* idxList = new uint[count]; if (strlen(sort) == 2 && sort[0] == 'N') { uint i=0; if (sort[1] == '+') { for(uint gnum=0; gnum < cdb->idx->GetNumGames() && i < count; gnum++) { if(filter && filter->Get(gnum) == 0) continue; if (start == 0) idxList[i++] = gnum; else start--; } } else { for(uint gnum=cdb->idx->GetNumGames(); gnum > 0 && i < count; gnum--) { if(filter && filter->Get(gnum -1) == 0) continue; if (start == 0) idxList[i++] = gnum -1; else start--; } } if (i != count) idxList[i] = IDX_NOT_FOUND; } else { cdb->idx->GetRange(cdb->nb, sort, start, count, filter, idxList); } for (uint i = 0; i < count; ++i) { uint idx = idxList[i]; if (idx == IDX_NOT_FOUND) break; uint ply = 0; if (filter && strCompare("tree", argv[5]) == 0) ply = filter->Get(idx) -1; std::string info = cdb->idx->FetchInfo (idx, cdb->nb); info.append (" \""); IndexEntry * ie = cdb->idx->FetchEntry (idx); if (ply == 0) { info.append(StoredLine::GetText(ie->GetStoredLineCode())); } else { cdb->bbuf->Empty(); cdb->gfile->ReadGame (cdb->bbuf, ie->GetOffset(), ie->GetLength() ); Game* g = scratchGame; g->Clear(); g->Decode (cdb->bbuf, GAME_DECODE_NONE); g->MoveToPly(ply); DString moves; g->GetPartialMoveList (&moves, 20); info.append(moves.Data()); } info.append ("\""); char idx_ply [20]; snprintf(idx_ply, sizeof(idx_ply), "%d_%d", idx +1, ply); Tcl_AppendElement (ti, idx_ply); Tcl_AppendElement (ti, info.c_str()); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base: database commands. int sc_base (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { static const char * options [] = { "autoload", "check", "close", "count", "create", "current", "description", "duplicates", "ecoStats", "export", "filename", "import", "inUse", "isReadOnly", "numGames", "open", "piecetrack", "slot", "sort", "stats", "switch", "tag", "tournaments", "type", "upgrade", "fixCorrupted", "gameslist", "sortcache", "gamelocation", NULL }; enum { BASE_AUTOLOAD, BASE_CHECK, BASE_CLOSE, BASE_COUNT, BASE_CREATE, BASE_CURRENT, BASE_DESCRIPTION, BASE_DUPLICATES, BASE_ECOSTATS, BASE_EXPORT, BASE_FILENAME, BASE_IMPORT, BASE_INUSE, BASE_ISREADONLY, BASE_NUMGAMES, BASE_OPEN, BASE_PTRACK, BASE_SLOT, BASE_SORT, BASE_STATS, BASE_SWITCH, BASE_TAG, BASE_TOURNAMENTS, BASE_TYPE, BASE_UPGRADE, BASE_FIX_CORRUPTED, BASE_GAMESLIST, BASE_SORTCACHE, BASE_GAMELOCATION }; int index = -1; if (argc > 1) { index = strUniqueMatch (argv[1], options); } switch (index) { case BASE_AUTOLOAD: return sc_base_autoload (cd, ti, argc, argv); case BASE_CHECK: return sc_base_check (cd, ti, argc, argv); case BASE_CLOSE: return sc_base_close (cd, ti, argc, argv); case BASE_COUNT: return sc_base_count (cd, ti, argc, argv); case BASE_CREATE: return sc_base_create (cd, ti, argc, argv); case BASE_CURRENT: return setIntResult (ti, currentBase + 1); case BASE_DESCRIPTION: return sc_base_description (cd, ti, argc, argv); case BASE_DUPLICATES: return sc_base_duplicates (cd, ti, argc, argv); case BASE_ECOSTATS: return sc_base_ecoStats (cd, ti, argc, argv); case BASE_EXPORT: return sc_base_export (cd, ti, argc, argv); case BASE_FILENAME: return sc_base_filename (cd, ti, argc, argv); case BASE_IMPORT: return sc_base_import (cd, ti, argc, argv); case BASE_INUSE: return sc_base_inUse (cd, ti, argc, argv); case BASE_ISREADONLY: if (argc == 3 && strEqual (argv[2], "set")) { if (! db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } if (db->fileMode == FMODE_ReadOnly) { return errorResult (ti, "This database is already read-only."); } if (db->idx->SetReadOnly () != OK) { return errorResult (ti, "Unable to make this database read-only."); } db->fileMode = FMODE_ReadOnly; return TCL_OK; } return setBoolResult (ti, db->inUse && db->fileMode==FMODE_ReadOnly); case BASE_NUMGAMES: return sc_base_numGames (cd, ti, argc, argv); case BASE_OPEN: return sc_base_open (cd, ti, argc, argv); case BASE_PTRACK: return sc_base_piecetrack (cd, ti, argc, argv); case BASE_SLOT: return sc_base_slot (cd, ti, argc, argv); case BASE_SORT: return sc_base_sort (cd, ti, argc, argv); case BASE_STATS: return sc_base_stats (cd, ti, argc, argv); case BASE_SWITCH: return sc_base_switch (cd, ti, argc, argv); case BASE_TAG: return sc_base_tag (cd, ti, argc, argv); case BASE_TOURNAMENTS: return sc_base_tournaments (cd, ti, argc, argv); case BASE_TYPE: return sc_base_type (cd, ti, argc, argv); case BASE_UPGRADE: return sc_base_upgrade (cd, ti, argc, argv); case BASE_FIX_CORRUPTED: return sc_base_fix_corrupted (cd, ti, argc, argv); case BASE_GAMESLIST: return sc_base_gameslist (cd, ti, argc, argv); case BASE_GAMELOCATION: return sc_base_gamelocation (cd, ti, argc, argv); case BASE_SORTCACHE: return sc_base_sortcache (cd, ti, argc, argv); default: return InvalidCommand (ti, "sc_base", options); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_autoload: // Sets or returns the autoload number of the database, which // is the game to load when opening the base. int sc_base_autoload (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc == 2) { return setUintResult (ti, db->idx->GetAutoLoad()); } if (! db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } if (db->fileMode == FMODE_ReadOnly) { return errorResult (ti, errMsgReadOnly(ti)); } uint gnum = strGetUnsigned (argv[2]); db->idx->SetAutoLoad (gnum); db->idx->WriteHeader(); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_numGames: // Takes optional database number and returns number of games. int sc_base_numGames (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { scidBaseT * basePtr = db; if (argc > 2) { int baseNum = strGetInteger (argv[2]); if (baseNum < 1 || baseNum > MAX_BASES) { return errorResult (ti, "Invalid database number."); } basePtr = &(dbList[baseNum - 1]); } return setUintResult (ti, basePtr->inUse ? basePtr->numGames : 0); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_filename: get the name of the current database file. // Returns "[empty]" for an empty base, "[clipbase]" for the clipbase. int sc_base_filename (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { scidBaseT * basePtr = db; if (argc > 2) { int baseNum = strGetInteger (argv[2]); if (baseNum < 1 || baseNum > MAX_BASES) { return errorResult (ti, "Invalid database number."); } basePtr = &(dbList[baseNum - 1]); } if (! basePtr->inUse) { Tcl_AppendResult (ti, "[", translate (ti, "empty"), "]", NULL); } else if (basePtr == clipbase) { Tcl_AppendResult (ti, "[", translate (ti, "clipbase"), "]", NULL); } else { Tcl_AppendResult (ti, basePtr->fileName, NULL); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_inUse // Returns 1 if the database slot is in use; 0 otherwise. int sc_base_inUse (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { scidBaseT * basePtr = db; if (argc > 2) { int baseNum = strGetInteger (argv[2]); if (baseNum < 1 || baseNum > MAX_BASES) { return errorResult (ti, "Invalid database number."); } basePtr = &(dbList[baseNum - 1]); } return setBoolResult (ti, basePtr->inUse); } void base_progress (void * data, uint count, uint total) { updateProgressBar ((Tcl_Interp *)data, count, total); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_slot: takes a database (.si3 or .pgn file) name and returns // the slot number it is using if it is already opened, or 0 if // it is not loaded yet. int sc_base_slot (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 3) { return errorResult (ti, "Usage: sc_base slot "); } fileNameT fname; strCopy (fname, argv[2]); const char * suffix = strFileSuffix (fname); if (suffix == NULL || (!strEqual (suffix, INDEX_SUFFIX) && !strEqual (suffix, GZIP_SUFFIX) && !strEqual (suffix, PGN_SUFFIX))) { // Need to add Index file suffix: strAppend (fname, INDEX_SUFFIX); } return setIntResult (ti, base_opened (fname) + 1); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_open_failure: if the opening of a base fails, // clean up db entry void base_open_failure( int oldBaseNum ) { currentBase = oldBaseNum; db = &(dbList[currentBase]); db->idx->CloseIndexFile(); db->idx->Clear(); db->nb->Clear(); db->gfile->Close(); db->inUse = false; db->gameNumber = -1; db->numGames = 0; strCopy (db->fileName, ""); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_open: takes a database name and opens the database. // If either the index file or game file cannot be opened for // reading and writing, then the database is opened read-only // and will not be alterable. #include "gfile.h" int sc_base_open (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { bool showProgress = 0; showProgress = startProgressBar(); bool readOnly = false; // Open database read-only. #ifdef WINCE bool fastOpen = true; // Fast open (no flag counts, etc) #else bool fastOpen = true; // Fast open (no flag counts, etc) #endif const char * usage = "Usage: sc_base open [-readonly] [-fast] "; // Check options: const char * options[] = { "-fast", "-readonly", NULL }; enum { OPT_FAST, OPT_READONLY }; int baseArg = 2; while (baseArg+1 < argc) { int index = strUniqueMatch (argv[baseArg], options); switch (index) { case OPT_FAST: fastOpen = true; break; case OPT_READONLY: readOnly = true; break; default: return errorResult (ti, usage); } baseArg++; } if (baseArg+1 != argc) { return errorResult (ti, usage); } const char * filename = argv[baseArg]; // Check that this base is not already opened: fileNameT realFileName; strCopy (realFileName, filename); strAppend (realFileName, INDEX_SUFFIX); if (base_opened (realFileName) >= 0) { return errorResult (ti, "The database you selected is already opened."); } #ifdef POCKET // Check if there is enough memory left with a good margin if ( getPocketAvailPhys() < 1000*1024 || getPocketAvailVirtual() < 1000*1024 ) { return errorResult (ti, "Not enough free memory."); } #endif // Find an empty database slot to use: int oldBaseNum = currentBase; if (db->inUse) { int newBaseNum = findEmptyBase(); if (newBaseNum == -1) { return errorResult (ti, "Too many databases are open; close one first."); } currentBase = newBaseNum; db = &(dbList[currentBase]); } db->idx->SetFileName (filename); db->nb->SetFileName (filename); db->memoryOnly = false; db->fileMode = FMODE_Both; if (readOnly) { db->fileMode = FMODE_ReadOnly; } errorT err; err = db->idx->OpenIndexFile (db->fileMode); if (err == ERROR_FileOpen && db->fileMode == FMODE_Both) { // Try opening read-only: db->fileMode = FMODE_ReadOnly; err = db->idx->OpenIndexFile (db->fileMode); } if (err != OK) { currentBase = oldBaseNum; db = &(dbList[currentBase]); setResult (ti, "Error opening index file"); if (err == ERROR_FileVersion) { setResult (ti, "Old format Scid file, now out of date."); } if (err == ERROR_OldScidVersion) { setResult (ti, "Database version newer than Scid; please upgrade Scid."); } return TCL_ERROR; } #ifdef POCKET // check enough memory to open name file int memoryNeeded = db->nb->GetNumNames(NAME_PLAYER) * 100 + 1024*1000; if ( memoryNeeded > getPocketAvailPhys() || memoryNeeded > getPocketAvailVirtual() ) { base_open_failure( oldBaseNum ); return errorResult (ti, "Not enough free memory for names."); } #endif if (db->nb->ReadNameFile() != OK) { base_open_failure( oldBaseNum ); return errorResult (ti, "Error opening name file."); } err = db->gfile->Open (filename, db->fileMode); if (err == ERROR_FileOpen && db->fileMode == FMODE_Both) { // Try opening read-only: db->fileMode = FMODE_ReadOnly; err = db->gfile->Open (filename, db->fileMode); } if (err != OK) { base_open_failure( oldBaseNum ); return errorResult (ti, "Error opening game file."); } #ifdef POCKET // check enough memory to open index file. Each IndexEntry is 48 bytes, but allocation overhead // is at least 8 bytes (see Tcl sources). So take a small margin with 64 bytes per entry. memoryNeeded = db->idx->GetNumGames() * 64 + 1024*1000; if ( memoryNeeded > getPocketAvailPhys() || memoryNeeded > getPocketAvailVirtual() ) { base_open_failure( oldBaseNum ); return errorResult (ti, "Not enough free memory for index."); } #endif // Read entire index, showing progress every 20,000 games if applicable: #ifdef WINCE if (db->idx->ReadEntireFile (2000, base_progress, (void *) ti) != OK) { // If the database is the clipbase, do not close it, just clear it: if (db == clipbase) { sc_clipbase_clear (ti); } else { db->idx->CloseIndexFile(); db->idx->Clear(); db->nb->Clear(); db->gfile->Close(); db->idx->SetDescription (errMsgNotOpen(ti)); clearFilter (db, 0); if (db->duplicates != NULL) { my_Tcl_Free((char*) db->duplicates); db->duplicates = NULL; } db->inUse = false; db->gameNumber = -1; db->numGames = 0; recalcFlagCounts (db); strCopy (db->fileName, ""); return errorResult (ti, "Error: base too big"); } } #else if (showProgress) { db->idx->ReadEntireFile (20000, base_progress, (void *) ti); } else { db->idx->ReadEntireFile (); } #endif if (db->idx->VerifyFile (db->nb) != OK) { db->idx->CloseIndexFile(); return errorResult (ti, "Error: name corruption in index file.\nRun \"scidt -N\" on this database to fix it."); } db->numGames = db->idx->GetNumGames(); // Compute name frequencies, flag counts, etc unless a fast open // was requested: if (! fastOpen) { recalcNameFrequencies (db->nb, db->idx); recalcFlagCounts (db); recalcEstimatedRatings (db->nb); } // Initialise the filter: all games match at move 1 by default. clearFilter (db, db->numGames); strCopy (db->fileName, filename); strCopy (db->realFileName, realFileName); db->inUse = true; db->gameNumber = -1; if (db->treeCache == NULL) { db->treeCache = new TreeCache; db->treeCache->SetCacheSize (SCID_TreeCacheSize); db->backupCache = new TreeCache; db->backupCache->SetCacheSize (SCID_BackupCacheSize); db->backupCache->SetPolicy (TREECACHE_Oldest); } db->treeCache->Clear(); db->backupCache->Clear(); return setIntResult (ti, currentBase + 1); } int sc_createbase (Tcl_Interp * ti, const char * filename, scidBaseT * base, bool memoryOnly) { if (base->inUse) { return TCL_ERROR; } base->idx->SetFileName (filename); base->idx->SetDescription (""); base->nb->Clear(); base->nb->SetFileName (filename); base->fileMode = FMODE_Both; base->memoryOnly = false; if (memoryOnly) { base->memoryOnly = true; base->gfile->CreateMemoryOnly(); base->idx->CreateMemoryOnly(); base->idx->SetDescription (errMsgReadOnly(ti)); base->fileMode = FMODE_ReadOnly; } else { if (base->idx->CreateIndexFile (FMODE_Both) != OK) { return errorResult (ti, "Error creating index file."); } base->idx->WriteHeader(); if (base->nb->WriteNameFile() != OK) { return errorResult (ti, "Error creating name file."); } base->idx->ReadEntireFile(); if (base->gfile->Create (filename, FMODE_Both) != OK) { return errorResult (ti, "Error creating game file."); } } // Initialise the filter: base->numGames = base->idx->GetNumGames(); clearFilter (base, base->numGames); strCopy (base->fileName, filename); base->inUse = true; base->gameNumber = -1; if (base->treeCache == NULL) { base->treeCache = new TreeCache; base->treeCache->SetCacheSize (SCID_TreeCacheSize); base->backupCache = new TreeCache; base->backupCache->SetCacheSize (SCID_BackupCacheSize); base->backupCache->SetPolicy (TREECACHE_Oldest); } base->treeCache->Clear(); base->backupCache->Clear(); recalcFlagCounts (base); // Ensure an old treefile is not still around: if (!memoryOnly) { removeFile (base->fileName, TREEFILE_SUFFIX); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_create: // Creates a new empty database. int sc_base_create (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { // argc should be 3 or 4, e.g. "sc_base create []" if (argc != 3 && argc != 4) { return errorResult (ti, "No file selected"); } bool memoryOnly = false; if (argc == 4) { memoryOnly = strGetBoolean (argv[3]); } // Check that this base is not already opened: if (base_opened (argv[2]) >= 0) { return errorResult (ti, "The database you selected is already opened; close it first."); } // Find another slot if current slot is used: int newBaseNum = currentBase; if (db->inUse) { newBaseNum = findEmptyBase(); if (newBaseNum == -1) { return errorResult (ti, "You have too many open databases; close one first."); } } scidBaseT * baseptr = &(dbList[newBaseNum]); if (sc_createbase (ti, argv[2], baseptr, memoryOnly) != TCL_OK) { return TCL_ERROR; } currentBase = newBaseNum; db = baseptr; return setIntResult (ti, newBaseNum + 1); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_close: // Closes the current or specified database. int sc_base_close (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { scidBaseT * basePtr = db; if (argc > 2) { int baseNum = strGetInteger (argv[2]); if (baseNum < 1 || baseNum > MAX_BASES) { return errorResult (ti, "Invalid database number."); } basePtr = &(dbList[baseNum - 1]); } if (!basePtr->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } // reset undo data basePtr->undoIndex = -1; for (int u = 0; u < UNDO_MAX; u++) { if ( basePtr->undoGame[u] != NULL ) { delete basePtr->undoGame[u]; basePtr->undoGame[u] = NULL; } } // If the database is the clipbase, do not close it, just clear it: if (basePtr == clipbase) { return sc_clipbase_clear (ti); } basePtr->idx->CloseIndexFile(); basePtr->idx->Clear(); basePtr->nb->Clear(); basePtr->gfile->Close(); basePtr->idx->SetDescription (errMsgNotOpen(ti)); clearFilter (basePtr, 0); if (basePtr->duplicates != NULL) { #ifdef WINCE my_Tcl_Free((char *) basePtr->duplicates); #else delete[] basePtr->duplicates; #endif basePtr->duplicates = NULL; } basePtr->inUse = false; basePtr->gameNumber = -1; basePtr->numGames = 0; recalcFlagCounts (basePtr); strCopy (basePtr->fileName, ""); basePtr->treeCache->Clear(); basePtr->backupCache->Clear(); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_count: // Return count of free/used/total base slots. int sc_base_count (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { static const char * options [] = { "free", "used", "total" }; enum { OPT_FREE, OPT_USED, OPT_TOTAL }; int optionMode = OPT_USED; if (argc > 2) { optionMode = strUniqueMatch (argv[2], options); if (optionMode < OPT_FREE || argc > 3) { return errorResult (ti, "Usage: sc_base count [free|used|total]"); } } if (optionMode == OPT_TOTAL) { return setUintResult (ti, MAX_BASES); } int numUsed = 0, numFree = 0; for (int i=0; i < MAX_BASES; i++) { if (dbList[i].inUse) { numUsed++; } else { numFree++; } } return setIntResult (ti, optionMode == OPT_USED ? numUsed : numFree); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_description: // Sets or gets the description for the database. int sc_base_description (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc < 2 || argc > 3) { return errorResult (ti, "Usage: sc_base description []"); } if (argc == 2) { // Get description: Tcl_AppendResult (ti, db->idx->GetDescription(), NULL); return TCL_OK; } if (! db->inUse) { return setResult (ti, errMsgNotOpen(ti)); } if (db->fileMode == FMODE_ReadOnly) { return setResult (ti, errMsgReadOnly(ti)); } // Edit the description and return it: db->idx->SetDescription (argv[2]); db->idx->WriteHeader (); Tcl_AppendResult (ti, db->idx->GetDescription(), NULL); return TCL_OK; } int sc_base_check (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { bool showProgress = startProgressBar(); uint update = 5000; uint updateStart = 5000; IndexEntry *ie = NULL; Game *g = new Game(); char gameNumber[16]; bool limitToFilter = false; if (argc != 3) { return errorResult (ti, "Usage: sc_base check "); } if (argv[2][0] == 'f') limitToFilter = true; if (! db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } DString *ErrorBuffer = new DString; for (uint gameNum=0; gameNum < db->numGames; gameNum++) { if (showProgress) { update--; if (update == 0) { update = updateStart; updateProgressBar (ti, gameNum, db->numGames); if (interruptedProgress()) { break; } } } if (limitToFilter && db->filter->Get(gameNum) == 0) { continue; } ie = db->idx->FetchEntry (gameNum); if (ie->GetLength() == 0) { sprintf( gameNumber, "%d", gameNum + 1); ErrorBuffer->Append ("Game ", gameNumber, ": Unable to fetch index entry.\n"); continue; } if (db->gfile->ReadGame (db->bbuf, ie->GetOffset(), ie->GetLength()) != OK) { sprintf( gameNumber, "%d", gameNum + 1); ErrorBuffer->Append ("Game ", gameNumber, ": Unable to read game buffer.\n"); continue; } errorT ret = g->Decode (db->bbuf, GAME_DECODE_ALL); if( ret != OK){ sprintf( gameNumber, "%d", gameNum + 1); ErrorBuffer->Append ("Game ", gameNumber, ": Unable to decode game.\n"); continue; } } if (showProgress) { updateProgressBar (ti, 1, 1); } if (ErrorBuffer->Length() > 0) { Tcl_AppendElement (ti, ErrorBuffer->Data()); } return (ErrorBuffer->Length() == 0) ? TCL_OK : TCL_ERROR; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // exportGame: // Called by sc_base_export() to export a single game. void #ifdef WINCE exportGame (Game * g, /* FILE * */Tcl_Channel exportFile, gameFormatT format, uint pgnStyle) #else exportGame (Game * g, FILE * exportFile, gameFormatT format, uint pgnStyle) #endif { char old_language = language; db->tbuf->Empty(); g->ResetPgnStyle (pgnStyle); g->SetPgnFormat (format); // Format-specific settings: switch (format) { case PGN_FORMAT_HTML: case PGN_FORMAT_LaTeX: db->tbuf->NewlinesToSpaces (false); g->AddPgnStyle (PGN_STYLE_SHORT_HEADER); break; default: language = 0; break; } g->SetHtmlStyle (htmlDiagStyle); g->WriteToPGN (db->tbuf); db->tbuf->NewLine(); db->tbuf->DumpToFile (exportFile); language = old_language; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_export: // Exports the current game or all filter games in the database // to a PGN, HTML or LaTeX file. int sc_base_export (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { bool showProgress = startProgressBar(); #ifdef WINCE /* FILE * */ Tcl_Channel exportFile = NULL; #else FILE * exportFile = NULL; #endif bool exportFilter = false; bool appendToFile = false; gameFormatT outputFormat = PGN_FORMAT_Plain; const char * startText = ""; const char * endText = ""; const char * usage = "Usage: sc_base export current|filter PGN|HTML|LaTeX options..."; uint pgnStyle = PGN_STYLE_TAGS; const char * options[] = { "-append", "-starttext", "-endtext", "-comments", "-variations", "-spaces", "-symbols", "-indentComments", "-indentVariations", "-column", "-noMarkCodes", "-convertNullMoves", NULL }; enum { OPT_APPEND, OPT_STARTTEXT, OPT_ENDTEXT, OPT_COMMENTS, OPT_VARIATIONS, OPT_SPACES, OPT_SYMBOLS, OPT_INDENTC, OPT_INDENTV, OPT_COLUMN, OPT_NOMARKS, OPT_CONVERTNULL }; if (argc < 5) { return errorResult (ti, usage); } if (strIsPrefix (argv[2], "current")) { exportFilter = false; } else if (strIsPrefix (argv[2], "filter")) { exportFilter = true; } else { return errorResult (ti, usage); } if (! Game::PgnFormatFromString (argv[3], &outputFormat)) { return errorResult (ti, usage); } if (exportFilter && !db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } const char * exportFileName = argv[4]; // Check for an even number of optional parameters: if ((argc % 2) != 1) { return errorResult (ti, usage); } // Parse all optional parameters: for (int arg = 5; arg < argc; arg += 2) { const char * value = argv[arg+1]; bool flag = strGetBoolean (value); int option = strUniqueMatch (argv[arg], options); switch (option) { case OPT_APPEND: appendToFile = flag; break; case OPT_STARTTEXT: startText = value; break; case OPT_ENDTEXT: endText = value; break; case OPT_COMMENTS: if (flag) { pgnStyle |= PGN_STYLE_COMMENTS; } break; case OPT_VARIATIONS: if (flag) { pgnStyle |= PGN_STYLE_VARS; } break; case OPT_SPACES: if (flag) { pgnStyle |= PGN_STYLE_MOVENUM_SPACE; } break; case OPT_SYMBOLS: if (flag) { pgnStyle |= PGN_STYLE_SYMBOLS; } break; case OPT_INDENTC: if (flag) { pgnStyle |= PGN_STYLE_INDENT_COMMENTS; } break; case OPT_INDENTV: if (flag) { pgnStyle |= PGN_STYLE_INDENT_VARS; } break; case OPT_COLUMN: if (flag) { pgnStyle |= PGN_STYLE_COLUMN; } break; case OPT_NOMARKS: if (flag) { pgnStyle |= PGN_STYLE_STRIP_MARKS; } break; case OPT_CONVERTNULL: if (flag) { pgnStyle |= PGN_STYLE_NO_NULL_MOVES; } break; default: return InvalidCommand (ti, "sc_base export", options); } } #ifdef WINCE exportFile = my_Tcl_OpenFileChannel(NULL, exportFileName, (appendToFile ? "r+" : "w"), 0666); #else exportFile = fopen (exportFileName, (appendToFile ? "r+" : "w")); #endif if (exportFile == NULL) { return errorResult (ti, "Error opening file for exporting games."); } #ifdef WINCE my_Tcl_SetChannelOption(NULL, exportFile, "-encoding", "binary"); my_Tcl_SetChannelOption(NULL, exportFile, "-translation", "binary"); #endif // Write start text or find the place in the file to append games: if (appendToFile) { if (outputFormat == PGN_FORMAT_Plain) { #ifdef WINCE my_Tcl_Seek(exportFile, 0, SEEK_END); } else { /*fseek*/my_Tcl_Seek(exportFile, 0, SEEK_SET); #else fseek (exportFile, 0, SEEK_END); } else { fseek (exportFile, 0, SEEK_SET); #endif const char * endMarker = ""; if (outputFormat == PGN_FORMAT_HTML) { endMarker = ""; } else if (outputFormat == PGN_FORMAT_LaTeX) { endMarker = "\\end{document}"; } char line [1024]; uint pos = 0; while (1) { #ifdef WINCE //fgets (line, 1024, exportFile); char c; int i; for (i=0; i<1024; i++) { if (my_Tcl_Read(exportFile, &c, 1) != 1) break; line[i] = c; if (c == '\n') break; } line[i+1] = '\0'; if (/*feof*/ my_Tcl_Eof(exportFile)) { break; } const char * s = strTrimLeft (line, " "); if (strIsCasePrefix (endMarker, s)) { // We have seen the line to stop at, so break out break; } pos = /*ftell */my_Tcl_Tell(exportFile); } /*fseek */my_Tcl_Seek(exportFile, pos, SEEK_SET); #else fgets (line, 1024, exportFile); if (feof (exportFile)) { break; } const char * s = strTrimLeft (line, " "); if (strIsCasePrefix (endMarker, s)) { // We have seen the line to stop at, so break out break; } pos = ftell (exportFile); } fseek (exportFile, pos, SEEK_SET); #endif } } else { #ifdef WINCE my_Tcl_Write(exportFile, startText, strlen(startText)); #else fputs (startText, exportFile); #endif } if (!exportFilter) { // Only export the current game: exportGame (db->game, exportFile, outputFormat, pgnStyle); #ifdef WINCE my_Tcl_Write(exportFile, endText, strlen(endText)); //fclose (exportFile); my_Tcl_Close(NULL, exportFile); #else fputs (endText, exportFile); fclose (exportFile); #endif if (showProgress) { updateProgressBar (ti, 1, 1); } return TCL_OK; } Game * g = scratchGame; IndexEntry * ie; uint updateStart, update; updateStart = update = 10; // Update progress bar every 10 games uint numSeen = 0; uint numToExport = exportFilter ? db->filter->Count() : 1; db->tbuf->SetWrapColumn (75); for (uint i=0; i < db->numGames; i++) { if (db->filter->Get(i)) { // Export this game: numSeen++; if (showProgress) { // Update the percentage done bar: update--; if (update == 0) { update = updateStart; updateProgressBar (ti, numSeen, numToExport); if (interruptedProgress()) { break; } } } // Print the game, skipping any corrupt games: ie = db->idx->FetchEntry (i); if (ie->GetLength() == 0) { continue; } db->bbuf->Empty(); if (db->gfile->ReadGame (db->bbuf, ie->GetOffset(), ie->GetLength()) != OK) { continue; } if (g->Decode (db->bbuf, GAME_DECODE_ALL) != OK) { continue; } g->LoadStandardTags (ie, db->nb); exportGame (g, exportFile, outputFormat, pgnStyle); } } #ifdef WINCE //fputs (endText, exportFile); my_Tcl_Write(exportFile, endText, strlen(endText)); //fclose (exportFile); my_Tcl_Close(NULL, exportFile); #else fputs (endText, exportFile); fclose (exportFile); #endif if (showProgress) { updateProgressBar (ti, 1, 1); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_import: // Imports games from a PGN file to the current base. // Returns an error message if there was any file error. // On success, returns a list of two elements: the number of // games imported, and a string containing an PGN import errors // or warnings. int sc_base_import (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { const char * usage = "Usage: sc_base import file|data "; static const char * options[] = { "data", "file", NULL }; enum { IMPORT_OPT_DATA, IMPORT_OPT_FILE }; bool showProgress = startProgressBar(); if (argc != 4) { return errorResult (ti, usage); } if (! db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } // Cannot import into a read-only database unless it is memory-only: if (db->fileMode == FMODE_ReadOnly && !(db->memoryOnly)) { return errorResult (ti, errMsgReadOnly(ti)); } MFile pgnFile; uint inputLength = 0; PgnParser parser; int index = strUniqueMatch (argv[2], options); if (index == IMPORT_OPT_FILE) { if (pgnFile.Open (argv[3], FMODE_ReadOnly) != OK) { return errorResult (ti, "Error opening PGN file."); } parser.Reset (&pgnFile); inputLength = fileSize (argv[3], ""); } else if (index == IMPORT_OPT_DATA) { parser.Reset ((const char *) argv[3]); inputLength = strLength (argv[3]); } else { return errorResult (ti, usage); } if (inputLength < 1) { inputLength = 1; } parser.IgnorePreGameText(); uint gamesSeen = 0; while (parser.ParseGame (scratchGame) != ERROR_NotFound) { if (sc_savegame (ti, scratchGame, 0, db) != TCL_OK) { pgnFile.Close(); return errorResult (ti, "Error saving game in database.\n"); } // Update the progress bar: gamesSeen++; if (showProgress && (gamesSeen % 100) == 0) { if (interruptedProgress()) { break; } updateProgressBar (ti, parser.BytesUsed(), inputLength); } } db->gfile->FlushAll(); pgnFile.Close(); // Now write the Index file header and the name file: if (db->idx->WriteHeader() != OK) { return errorResult (ti, "Error writing index file."); } if (! db->memoryOnly) { if (db->nb->WriteNameFile() != OK) { return errorResult (ti, "Error writing name file."); } } if (showProgress) { updateProgressBar (ti, 1, 1); } recalcFlagCounts (db); if (! db->memoryOnly) { removeFile (db->fileName, TREEFILE_SUFFIX); } appendUintElement (ti, gamesSeen); if (parser.ErrorCount() > 0) { Tcl_AppendElement (ti, parser.ErrorMessages()); } else { Tcl_AppendElement (ti, ""); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_piecetrack: // Examines games in the filter of the current database and // returns a list of 64 integers indicating how frequently // the specified piece moves to each square. int sc_base_piecetrack (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { bool showProgress = startProgressBar(); const char * usage = "Usage: sc_base piecetrack [-g|-t] "; if (argc < 5) { return errorResult (ti, usage); } // Check for optional mode parameter: bool timeOnSquareMode = false; int arg = 2; if (argv[arg][0] == '-') { if (argv[arg][1] == 'g' && strIsPrefix (argv[arg], "-games")) { timeOnSquareMode = false; arg++; } else if (argv[arg][1] == 't' && strIsPrefix (argv[arg], "-time")) { timeOnSquareMode = true; arg++; } else { return errorResult (ti, usage); } } // Read the two move-number parameters: uint minPly = strGetUnsigned(argv[arg]) * 2; arg++; uint maxPly = strGetUnsigned(argv[arg]) * 2; arg++; // Convert moves to plycounts, e.g. "5-10" -> "9-20" if (minPly < 2) { minPly=2; } if (maxPly < minPly) { maxPly = minPly; } minPly--; // Parse the variable number of tracked square arguments: uint sqFreq[64] = {0}; bool trackSquare[64] = { false }; int nTrackSquares = 0; for (int a=arg; a < argc; a++) { squareT sq = strGetSquare (argv[a]); if (sq == NULL_SQUARE) { return errorResult (ti, usage); } if (!trackSquare[sq]) { // Seen another starting square to track. trackSquare[sq] = true; nTrackSquares++; } } // If current base is unused, filter is empty, or no track // squares specified, then just return a zero-filled list: if (! db->inUse || db->filter->Count() == 0 || nTrackSquares == 0) { for (uint i=0; i < 64; i++) { appendUintElement (ti, 0); } return TCL_OK; } // Examine every filter game and track the selected pieces: uint updateStart = 1000; // Update progress bar every 1000 filter games. uint update = updateStart; uint filterCount = db->filter->Count(); uint filterSeen = 0; for (uint gnum = 0; gnum < db->numGames; gnum++) { // Skip over non-filter games: if (!db->filter->Get(gnum)) { continue; } // Update progress bar: if (showProgress) { update--; filterSeen++; if (update == 0) { update = updateStart; if (interruptedProgress()) { break; } updateProgressBar (ti, filterSeen, filterCount); } } IndexEntry * ie = db->idx->FetchEntry (gnum); // Skip games with non-standard start or no moves: if (ie->GetStartFlag()) { continue; } if (ie->GetLength() == 0) { continue; } // Skip games too short to be useful: if (ie->GetNumHalfMoves() < minPly) { continue; } // Set up piece tracking for this game: bool movedTo[64] = { false }; bool track[64]; int ntrack = nTrackSquares; for (uint sq=0; sq < 64; sq++) { track[sq] = trackSquare[sq]; } Game * g = scratchGame; if (db->gfile->ReadGame (db->bbuf, ie->GetOffset(), ie->GetLength()) != OK) { continue; } db->bbuf->BackToStart(); g->Clear(); if (g->DecodeStart (db->bbuf) != OK) { continue; } uint plyCount = 0; simpleMoveT sm; // Process each game move until the maximum ply or end of // the game is reached: while (plyCount < maxPly) { if (g->DecodeNextMove (db->bbuf, &sm) != OK) { break; } plyCount++; squareT toSquare = sm.to; squareT fromSquare = sm.from; // Special hack for castling: if (piece_Type(sm.movingPiece) == KING) { if (fromSquare == E1) { if (toSquare == G1 && track[H1]) { fromSquare = H1; toSquare = F1; } if (toSquare == C1 && track[A1]) { fromSquare = A1; toSquare = D1; } } if (fromSquare == E8) { if (toSquare == G8 && track[H8]) { fromSquare = H8; toSquare = F8; } if (toSquare == C8 && track[A8]) { fromSquare = A8; toSquare = D8; } } } // TODO: Special hack for en-passant capture? if (track[toSquare]) { // A tracked piece has been captured: track[toSquare] = false; ntrack--; if (ntrack <= 0) { break; } } else if (track[fromSquare]) { // A tracked piece is moving: track[fromSquare] = false; track[toSquare] = true; if (plyCount >= minPly) { // If not time-on-square mode, and this // new target square has not been moved to // already by a tracked piece in this game, // increase its frequency now: if (!timeOnSquareMode && !movedTo[toSquare]) { sqFreq[toSquare]++; } movedTo[toSquare] = true; } } if (timeOnSquareMode && plyCount >= minPly) { // Time-on-square mode: find all tracked squares // (there are ntrack of them) and increment the // frequency of each. int nleft = ntrack; for (uint i=0; i < 64; i++) { if (track[i]) { sqFreq[i]++; nleft--; // We can stop early when all tracked // squares have been found: if (nleft <= 0) { break; } } } } } // while (plyCount < maxPly) } // for (uint gnum = 0; gnum < db->numGames; gnum++) if (showProgress) { updateProgressBar (ti, 1, 1); } // Now return the 64-integer list: if in time-on-square mode, // the value for each square is the number of plies when a // tracked piece was on it, so halve it to convert to moves: for (uint i=0; i < 64; i++) { appendUintElement (ti, timeOnSquareMode ? sqFreq[i] / 2 : sqFreq[i]); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_sort: // Sorts the games in a database. int sc_base_sort (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { bool showProgress = startProgressBar(); if (argc <= 3) { return errorResult (ti, "Usage: sc_base sort "); } if (db->idx->ParseSortCriteria (argv[2]) != OK) { return errorResult (ti, "Invalid sorting criteria."); } if (! db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } if (db->numGames < 2) { return errorResult (ti, "This database has less than two games."); } if (showProgress) { db->idx->Sort (db->nb, 5000, base_progress, (void *) ti); } else { db->idx->Sort (db->nb, 0, NULL, NULL); } if (showProgress) { updateProgressBar (ti, 1, 1); } initFilter (db, 1); db->gameNumber = -1; //Re-order and write the index, showing progress if applicable: if (argc >= 4 && showProgress) { Tcl_Eval (ti, (char *) argv[3]); restartProgressBar (ti); db->idx->WriteSorted (20000, base_progress, (void *) ti); updateProgressBar (ti, 1, 1); } else { db->idx->WriteSorted (); } // The tree cache will now be out of date: db->treeCache->Clear(); db->backupCache->Clear(); if ((! db->memoryOnly) && (db->fileMode == FMODE_Both)) { removeFile (db->fileName, TREEFILE_SUFFIX); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_stats: // Return statistics about the current database. int sc_base_stats (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { const char * options[] = { "flags", "dates", "ratings", "results", NULL }; enum { OPT_FLAGS, OPT_DATE, OPT_RATING, OPT_RESULTS }; int option = -1; if (argc > 2) { option = strUniqueMatch (argv[2], options); } scidBaseT * basePtr = db; if (argc > 3) { int baseNum = strGetInteger (argv[3]); if (baseNum < 1 || baseNum > MAX_BASES) { return errorResult (ti, "Invalid database number."); } basePtr = &(dbList[baseNum - 1]); } if (option == OPT_FLAGS) { appendUintElement (ti, basePtr->stats.flagCount [IDX_FLAG_DELETE]); appendUintElement (ti, basePtr->stats.flagCount [IDX_FLAG_WHITE_OP]); appendUintElement (ti, basePtr->stats.flagCount [IDX_FLAG_BLACK_OP]); } else if (option == OPT_DATE) { // Date information: minimum year, maximum year, and mean year: appendUintElement (ti, date_GetYear (basePtr->stats.minDate)); appendUintElement (ti, date_GetYear (basePtr->stats.maxDate)); unsigned long long avgYear = 0; if (basePtr->stats.nYears > 0) { avgYear = basePtr->stats.sumYears / basePtr->stats.nYears; } appendUintElement (ti, avgYear); } else if (option == OPT_RATING) { // Rating information: minimum, maximum, and mean rating: appendUintElement (ti, basePtr->stats.minRating); appendUintElement (ti, basePtr->stats.maxRating); uint avgRating = 0; if (basePtr->stats.nRatings > 0) { avgRating = basePtr->stats.sumRatings / basePtr->stats.nRatings; } appendUintElement (ti, avgRating); } else if (option == OPT_RESULTS) { // Result frequencies: 1-0, =-=, 0-1, * appendUintElement (ti, basePtr->stats.nResults[RESULT_White]); appendUintElement (ti, basePtr->stats.nResults[RESULT_Draw]); appendUintElement (ti, basePtr->stats.nResults[RESULT_Black]); appendUintElement (ti, basePtr->stats.nResults[RESULT_None]); } else if (strIsPrefix ("flag:", argv[2])) { uint flag = IndexEntry::CharToFlag (argv[2][5]); appendUintElement (ti, basePtr->stats.flagCount [flag]); } else { return InvalidCommand (ti, "sc_base stats", options); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_ecoStats: // Return ECO opening code statistics about the current database. int sc_base_ecoStats (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { #ifndef WINCE if (argc != 3) { return errorResult (ti, "Usage: sc_base ecoStats "); } const char * eco = argv[2]; uint length = strLength (eco); bool invalid = false; int index = 0; if (length > 5) { invalid = true; } if (length >= 1) { if (eco[0] < 'A' || eco[0] > 'E') { invalid = true; } index = eco[0] - 'A'; } if (length >= 2) { char ch = eco[1]; if (ch < '0' || ch > '9') { invalid = true; } else { index = index * 10 + ch - '0'; } } if (length >= 3) { char ch = eco[2]; if (ch < '0' || ch > '9') { invalid = true; } else { index = index * 10 + ch - '0'; } } if (length >= 4) { char ch = eco[3]; if (ch < 'a' || ch > 'z') { invalid = true; } else { index = index * 26 + ch - 'a'; } } if (invalid) { return errorResult (ti, "Invalid ECO prefix"); } ecoStatsT * result = NULL; switch (length) { case 0: result = &(db->stats.ecoCount0[0]); break; case 1: result = &(db->stats.ecoCount1[index]); break; case 2: result = &(db->stats.ecoCount2[index]); break; case 3: result = &(db->stats.ecoCount3[index]); break; case 4: case 5: result = &(db->stats.ecoCount4[index]); break; } ASSERT (result != NULL); appendUintElement (ti, result->count); appendUintElement (ti, result->results[RESULT_White]); appendUintElement (ti, result->results[RESULT_Draw]); appendUintElement (ti, result->results[RESULT_Black]); appendUintElement (ti, result->results[RESULT_None]); if (result->count > 0) { uint score = result->results[RESULT_White] * 2 + result->results[RESULT_Draw] + result->results[RESULT_None]; score = score * 500 / result->count; char str[10]; sprintf (str, "%u.%u", score / 10, score % 10); Tcl_AppendElement (ti, str); } else { Tcl_AppendElement (ti, "0.0"); } #endif return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_switch: // Switch to a different database slot. int sc_base_switch (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 3) { return errorResult (ti, "Usage: sc_base switch "); } int baseNum = strGetInteger (argv[2]); if (tolower(argv[2][0]) == 'c' && strIsCasePrefix (argv[2], "clipbase")) { baseNum = CLIPBASE_NUM + 1; } if (baseNum < 1 || baseNum > MAX_BASES) { return errorResult (ti, "sc_base switch: Invalid base number."); } currentBase = baseNum - 1; db = &(dbList[currentBase]); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_type: // Get or set the "type" of the database: clipbase, temporary, openings, // tournament, etc. // The type can be set for a read-only or memory-only database, but the // change will only be temporary since the index will not be altered // on-disk. int sc_base_type (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { if (argc != 3 && argc != 4) { return errorResult (ti, "Usage: sc_base type []"); } int baseNum = strGetInteger (argv[2]); if (baseNum < 1 || baseNum > MAX_BASES) { return errorResult (ti, "Invalid database number."); } scidBaseT * basePtr = &(dbList[baseNum - 1]); if (argc == 3) { return setUintResult (ti, basePtr->idx->GetType()); } if (! basePtr->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } uint basetype = strGetUnsigned (argv[3]); basePtr->idx->SetType (basetype); if ((basePtr->fileMode != FMODE_ReadOnly) && (! basePtr->memoryOnly)) { // Update the index header on disk: basePtr->idx->WriteHeader(); } return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_duplicates: // Finds duplicate games and marks them deleted. // A pair of games are considered duplicates if the Event, Site, // White, Black, and Round values all match identically, and the // Date matches to within 2 days (that is, the same year, the same // month, and the days of month differ by 2 at most). // // Furthermore, the moves of one game should, after truncating, be the // same as the moves of the other game, for them to be duplicates. // We do not check this, but do check that their home pawn change // lists are the same (for the length of the shorter change list) which // is an approximation but is *much* faster to check. // // All the data needed for detecting dupicates is in the Index file, // so no games need to be decoded. struct gNumListT { uint gNumber; uint white; uint black; gNumListT * next; }; typedef gNumListT * gNumListPtrT; struct dupCriteriaT { bool exactNames; bool sameColors; bool sameEvent; bool sameSite; bool sameRound; bool sameResult; bool sameYear; bool sameMonth; bool sameDay; bool sameEcoCode; bool sameMoves; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // hashName: // Returns a hash value based on the first n letters of a string. uint hashName (const char * name, uint n) { uint h = 0; while (n > 0 && *name != 0) { h = (h << 7) + (*name); name++; n--; } return h; } bool gamesHaveSameMoves (scidBaseT * base, IndexEntry * ieA, IndexEntry * ieB) { const uint MAX_SAME_MOVES = 120; // Only check up to 60 moves each side. simpleMoveT movesA [MAX_SAME_MOVES]; simpleMoveT movesB [MAX_SAME_MOVES]; // Start with the shorter game first: uint lenA = ieA->GetNumHalfMoves(); uint lenB = ieB->GetNumHalfMoves(); if (lenB < lenA) { // Swap the order of the two games: uint temp = lenA; lenA = lenB; lenB = temp; IndexEntry * ie = ieA; ieA = ieB; ieB = ie; } // Now load up to MAX_SAME_MOVES of the first game: Game * g = scratchGame; if (base->gfile->ReadGame (base->bbuf, ieA->GetOffset(), ieA->GetLength()) != OK) { return false; } base->bbuf->BackToStart(); g->Clear(); if (g->DecodeStart (base->bbuf) != OK) { return false; } simpleMoveT * smA = &(movesA[0]); uint countA = 0; while (countA < MAX_SAME_MOVES) { if (g->DecodeNextMove (base->bbuf, smA) != OK) { break; } countA++; smA++; } // Now read the same number of moves in the longer game, stopping when // a different move is found: if (base->gfile->ReadGame (base->bbuf, ieB->GetOffset(), ieB->GetLength()) != OK) { return false; } base->bbuf->BackToStart(); g->Clear(); if (g->DecodeStart (base->bbuf) != OK) { return false; } smA = &(movesA[0]); simpleMoveT * smB = &(movesB[0]); uint countB = 0; while (countB < countA) { if (g->DecodeNextMove (base->bbuf, smB) != OK) { return false; } if (smA->from != smB->from || smA->to != smB->to || smA->promote != smB->promote) { return false; } countB++; smA++; smB++; } // If we reach here, the games are identical for all moves in the // shorter game. return true; } bool checkDuplicate (scidBaseT * base, IndexEntry * ie1, IndexEntry * ie2, gNumListT * g1, gNumListT * g2, dupCriteriaT * cr) { if (ie1->GetDeleteFlag() || ie2->GetDeleteFlag()) { return false; } if (cr->sameColors) { if (g1->white != g2->white) { return false; } if (g1->black != g2->black) { return false; } } else { bool colorsOK = false; uint w1 = g1->white; uint b1 = g1->black; uint w2 = g2->white; uint b2 = g2->black; if (w1 == w2 && b1 == b2) { colorsOK = true; } if (w1 == b2 && b1 == w2) { colorsOK = true; } if (! colorsOK) { return false; } } if (cr->sameEvent) { if (ie1->GetEvent() != ie2->GetEvent()) { return false; } } if (cr->sameSite) { if (ie1->GetSite() != ie2->GetSite()) { return false; } } if (cr->sameRound) { if (ie1->GetRound() != ie2->GetRound()) { return false; } } if (cr->sameYear) { if (ie1->GetYear() != ie2->GetYear()) { return false; } } if (cr->sameMonth) { if (ie1->GetMonth() != ie2->GetMonth()) { return false; } } if (cr->sameDay) { if (ie1->GetDay() != ie2->GetDay()) { return false; } } if (cr->sameResult) { if (ie1->GetResult() != ie2->GetResult()) { return false; } } if (cr->sameEcoCode) { ecoStringT a; ecoStringT b; eco_ToBasicString (ie1->GetEcoCode(), a); eco_ToBasicString (ie2->GetEcoCode(), b); if (a[0] != b[0] || a[1] != b[1] || a[2] != b[2]) { return false; } } // There are a lot of "place-holding" games in some database, that have // just one (usually wrong) move and a result, that are then replaced by // the full version of the game. Therefore, if we reach here and one // of the games (or both) have only one move or no moves, return true // as long as they have the same year, site and round: if (ie1->GetNumHalfMoves() <= 2 || ie2->GetNumHalfMoves() <= 2) { if (ie1->GetYear() == ie2->GetYear() && ie1->GetSite() == ie2->GetSite() && ie1->GetRound() == ie2->GetRound()) { return true; } } // Now check that the games contain the same moves, up to the length // of the shorter game: if (cr->sameMoves) { const byte * hpData1 = ie1->GetHomePawnData(); const byte * hpData2 = ie2->GetHomePawnData(); if (! hpSig_Prefix (hpData1, hpData2)) { return false; } // Now we have to check the actual moves of the games: return gamesHaveSameMoves (base, ie1, ie2); } return true; } int sc_base_duplicates (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { bool showProgress = startProgressBar(); if ((argc % 2) != 0) { return errorResult (ti, "Usage: sc_base duplicates [-option value ...]"); } if (! db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } if (db->fileMode == FMODE_ReadOnly) { return errorResult (ti, errMsgReadOnly(ti)); } uint deletedCount = 0; const uint GLIST_HASH_SIZE = 32768; #ifdef WINCE gNumListPtrT * gHashTable = (gNumListPtrT *)my_Tcl_Alloc(sizeof(gNumListPtrT [GLIST_HASH_SIZE])); gNumListT * gNumList = (gNumListT * )my_Tcl_Alloc(sizeof( gNumListT [db->numGames])); #else gNumListPtrT * gHashTable = new gNumListPtrT [GLIST_HASH_SIZE]; gNumListT * gNumList = new gNumListT [db->numGames]; #endif dupCriteriaT criteria; criteria.exactNames = false; criteria.sameColors = true; criteria.sameEvent = true; criteria.sameSite = true; criteria.sameRound = true; criteria.sameYear = true; criteria.sameMonth = true; criteria.sameDay = false; criteria.sameResult = false; criteria.sameEcoCode = false; criteria.sameMoves = true; bool skipShortGames = false; bool keepAllCommentedGames = true; bool keepAllGamesWithVars = true; bool setFilterToDups = false; bool onlyFilterGames = false; bool copyRatings = false; // Deletion strategy: delete the shorter game, the game with the // smaller game number, or the game with the larger game number. enum deleteStrategyT { DELETE_SHORTER, DELETE_OLDER, DELETE_NEWER }; deleteStrategyT deleteStrategy = DELETE_SHORTER; // Parse command options in pairs of arguments: const char * options[] = { "-players", "-colors", "-event", "-site", "-round", "-year", "-month", "-day", "-result", "-eco", "-moves", "-skipshort", "-comments", "-variations", "-setfilter", "-usefilter", "-copyratings", "-delete", NULL }; enum { OPT_PLAYERS, OPT_COLORS, OPT_EVENT, OPT_SITE, OPT_ROUND, OPT_YEAR, OPT_MONTH, OPT_DAY, OPT_RESULT, OPT_ECO, OPT_MOVES, OPT_SKIPSHORT, OPT_COMMENTS, OPT_VARIATIONS, OPT_SETFILTER, OPT_USEFILTER, OPT_COPYRATINGS, OPT_DELETE }; for (int arg = 2; arg < argc; arg += 2) { const char * optStr = argv[arg]; const char * valueStr = argv[arg + 1]; bool b = strGetBoolean (valueStr); int index = strUniqueMatch (optStr, options); switch (index) { case OPT_PLAYERS: criteria.exactNames = b; break; case OPT_COLORS: criteria.sameColors = b; break; case OPT_EVENT: criteria.sameEvent = b; break; case OPT_SITE: criteria.sameSite = b; break; case OPT_ROUND: criteria.sameRound = b; break; case OPT_YEAR: criteria.sameYear = b; break; case OPT_MONTH: criteria.sameMonth = b; break; case OPT_DAY: criteria.sameDay = b; break; case OPT_RESULT: criteria.sameResult = b; break; case OPT_ECO: criteria.sameEcoCode = b; break; case OPT_MOVES: criteria.sameMoves = b; break; case OPT_SKIPSHORT: skipShortGames = b; break; case OPT_COMMENTS: keepAllCommentedGames = b; break; case OPT_VARIATIONS: keepAllGamesWithVars = b; break; case OPT_SETFILTER: setFilterToDups = b; break; case OPT_USEFILTER: onlyFilterGames = b; break; case OPT_COPYRATINGS: copyRatings = b; break; case OPT_DELETE: if (strIsCasePrefix (valueStr, "shorter")) { deleteStrategy = DELETE_SHORTER; } else if (strIsCasePrefix (valueStr, "older")) { deleteStrategy = DELETE_OLDER; } else if (strIsCasePrefix (valueStr, "newer")) { deleteStrategy = DELETE_NEWER; } else { return errorResult (ti, "Invalid option."); } break; default: return InvalidCommand (ti, "sc_base duplicates", options); } } // Setup duplicates array: if (db->duplicates == NULL) { #ifdef WINCE db->duplicates = (uint*)my_Tcl_Alloc(sizeof( uint [db->numGames])); #else db->duplicates = new uint [db->numGames]; #endif } for (uint d=0; d < db->numGames; d++) { db->duplicates[d] = 0; } // We use a hashtable to limit duplicate game comparisons; each game // is only compared to others that hash to the same value. // Set up the linked-list hashtable of games with same hashed names: for (uint h=0; h < GLIST_HASH_SIZE; h++) { gHashTable[h] = NULL; } for (uint i=0; i < db->numGames; i++) { IndexEntry * ie = db->idx->FetchEntry (i); if (! ie->GetDeleteFlag() /* && !ie->GetStartFlag() */ && (!skipShortGames || ie->GetNumHalfMoves() >= 10) && (!onlyFilterGames || db->filter->Get(i) > 0)) { uint white, black; if (criteria.exactNames) { white = ie->GetWhite(); black = ie->GetBlack(); } else { white = hashName (ie->GetWhiteName(db->nb), 4); black = hashName (ie->GetBlackName(db->nb), 4); } uint hash = (white + black) % GLIST_HASH_SIZE; gNumListT * node = &(gNumList[i]); node->white = white; node->black = black; node->gNumber = i; node->next = gHashTable[hash]; gHashTable[hash] = node; } } if (setFilterToDups) { initDbFilter( db, 0); } if (showProgress) { restartProgressBar (ti); } // Now check each list of same-hash games for duplicates: for (uint hash=0; hash < GLIST_HASH_SIZE; hash++) { if (showProgress && ((hash & 255) == 0)) { if (interruptedProgress()) { break; } updateProgressBar (ti, hash, GLIST_HASH_SIZE); } gNumListT * head = gHashTable[hash]; while (head != NULL) { IndexEntry * ieHead = db->idx->FetchEntry (head->gNumber); gNumListT * compare = head->next; while (compare != NULL) { IndexEntry * ieComp = db->idx->FetchEntry (compare->gNumber); if (checkDuplicate (db, ieHead, ieComp, head, compare, &criteria)) { db->duplicates[head->gNumber] = compare->gNumber + 1; db->duplicates[compare->gNumber] = head->gNumber + 1; // Found a duplicate! Decide which one to delete: bool headImmune = false; bool compImmune = false; bool doDeletion = false; bool copiedRatings = false; gameNumberT gnumKeep, gnumDelete; IndexEntry * ieDelete, * ieKeep; if (keepAllCommentedGames) { if (ieHead->GetCommentsFlag()) { headImmune = true; } if (ieComp->GetCommentsFlag()) { compImmune = true; } } if (keepAllGamesWithVars) { if (ieHead->GetVariationsFlag()) { headImmune = true; } if (ieComp->GetVariationsFlag()) { compImmune = true; } } // Decide which game should get deleted: bool deleteHead = false; if (deleteStrategy == DELETE_OLDER) { deleteHead = (head->gNumber < compare->gNumber); } else if (deleteStrategy == DELETE_NEWER) { deleteHead = (head->gNumber > compare->gNumber); } else { ASSERT (deleteStrategy == DELETE_SHORTER); deleteHead = (ieHead->GetNumHalfMoves() < ieComp->GetNumHalfMoves()); } if (deleteHead) { ieDelete = ieHead; ieKeep = ieComp; gnumDelete = head->gNumber; gnumKeep = compare->gNumber; doDeletion = ! headImmune; } else { ieDelete = ieComp; ieKeep = ieHead; gnumDelete = compare->gNumber; gnumKeep = head->gNumber; doDeletion = ! compImmune; } // Delete whichever game is to be deleted: if (doDeletion) { deletedCount++; ieDelete->SetDeleteFlag (true); if (copyRatings && ieKeep->GetWhiteElo() == 0) { eloT elo = ieDelete->GetWhiteElo(); byte rtype = ieDelete->GetWhiteRatingType(); if (elo != 0) { ieKeep->SetWhiteElo (elo); ieKeep->SetWhiteRatingType (rtype); copiedRatings = true; } } if (copyRatings && ieKeep->GetBlackElo() == 0) { eloT elo = ieDelete->GetBlackElo(); byte rtype = ieDelete->GetBlackRatingType(); if (elo != 0) { ieKeep->SetBlackElo (elo); ieKeep->SetBlackRatingType (rtype); copiedRatings = true; } } db->idx->WriteEntries (ieDelete, gnumDelete, 1); if (copiedRatings) { db->idx->WriteEntries (ieKeep, gnumKeep, 1); } if (setFilterToDups) { db->dbFilter->Set (gnumDelete, 1); } } } compare = compare->next; } head = head->next; } } db->idx->WriteHeader(); recalcFlagCounts (db); if (showProgress) { updateProgressBar (ti, 1, 1); } #ifdef WINCE my_Tcl_Free((char*)gHashTable); my_Tcl_Free((char*) gNumList); #else delete[] gHashTable; delete[] gNumList; #endif updateMainFilter (db); return setUintResult (ti, deletedCount); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_tag: // Produce a list of PGN tags used in the database, // or strip an unwanted non-essential tag from the // database. It cannot be used for in-index tags // such as ratings, ECO or EventDate, or the FEN // or Setup tags. // The command has three subcommands: // find : set the filter to contain all games // that have the specified tag. // list: return a even-sized list, where each pair // of elements is a tag name and its frequency, // for all non-standard tags stored as Extra // tags in the game file of the database. // strip : Remove all occurences of the // specified tag from the database. int sc_base_tag (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { const char * usage = "Usage: sc_base tag [filter | list | strip ]"; const char * options[] = { "find", "list", "strip", NULL }; enum { TAG_FIND, TAG_LIST, TAG_STRIP }; bool showProgress = startProgressBar(); const char * tag = NULL; // For "find" or "strip" commands NameBase * tagnb = NULL; // For "list" command; tags are collected // as if they were player names. if (! db->inUse) { return errorResult (ti, errMsgNotOpen(ti)); } int cmd = -1; if (argc >= 3) { cmd = strUniqueMatch (argv[2], options); } switch (cmd) { case TAG_LIST: if (argc != 3) { return errorResult (ti, usage); } tagnb = new NameBase; break; case TAG_FIND: // Same extra parameter as TAG_STRIP case TAG_STRIP: if (argc != 4) { return errorResult (ti,usage); } tag = argv[3]; break; default: return errorResult (ti, usage); }; // If stripping a tag, make sure we have a writable database: if (cmd == TAG_STRIP && db->fileMode == FMODE_ReadOnly) { return errorResult (ti, errMsgReadOnly(ti)); } // If setting filter, clear it now: if (cmd == TAG_FIND) { initDbFilter (db, 0); } // Process each game in the database: uint updateStart = 1000; // Update progress bar every 1000 filter games. uint update = updateStart; Game * g = scratchGame; uint nEditedGames = 0; for (uint gnum = 0; gnum < db->numGames; gnum++) { // Update progress bar: if (showProgress) { update--; if (update == 0) { update = updateStart; if (interruptedProgress()) { break; } updateProgressBar (ti, gnum, db->numGames); } } IndexEntry * ie = db->idx->FetchEntry (gnum); if (ie->GetLength() == 0) { continue; } db->bbuf->Empty(); if (db->gfile->ReadGame (db->bbuf, ie->GetOffset(), ie->GetLength()) != OK) { continue; } if (g->Decode (db->bbuf, GAME_DECODE_ALL) != OK) { continue; } if (cmd == TAG_FIND) { if (g->FindExtraTag (tag) != NULL) { // Found the tag, so add this game to the filter: db->dbFilter->Set (gnum, 1); } } else if (cmd == TAG_STRIP) { if (g->RemoveExtraTag (tag)) { // The tag was found and stripped. Re-save the game, // remembering to load its standard tags first: g->LoadStandardTags (ie, db->nb); if (sc_savegame (ti, g, gnum+1, db) != OK) { return TCL_ERROR; } nEditedGames++; } } else { ASSERT (cmd == TAG_LIST); uint numtags = g->GetNumExtraTags(); tagT * taglist = g->GetExtraTags(); // Increment frequency for each extra tag: while (numtags > 0) { idNumberT id; if (tagnb->AddName (NAME_PLAYER, taglist->tag, &id) == OK) { tagnb->IncFrequency (NAME_PLAYER, id, 1); } numtags--; taglist++; } } } // Done searching through all games. // If necessary, update index and name files: if (cmd == TAG_STRIP && nEditedGames > 0) { db->gfile->FlushAll(); if (db->idx->WriteHeader() != OK) { return errorResult (ti, "Error writing index file."); } if (! db->memoryOnly && db->nb->WriteNameFile() != OK) { return errorResult (ti, "Error writing name file."); } } if (cmd == TAG_STRIP) { setUintResult (ti, nEditedGames); } // If listing extra tags, generate the list now: if (cmd == TAG_LIST) { for (idNumberT id=0; id < tagnb->GetNumNames(NAME_PLAYER); id++) { uint freq = tagnb->GetFrequency(NAME_PLAYER, id); const char * name = tagnb->GetName (NAME_PLAYER, id); if (freq > 0 && !strEqual (name, "SetUp")) { Tcl_AppendElement (ti, name); appendUintElement (ti, freq); } } delete tagnb; } updateMainFilter (db); return TCL_OK; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Tourney: // Class for tournament data. Used by sc_base_tournaments. // struct tourneyPlayerT { idNumberT id; uint elo; int score; tourneyPlayerT * next; }; class Tourney { public: idNumberT SiteID; idNumberT EventID; NameBase * NB; dateT StartDate; dateT EndDate; dateT MinDate; dateT MaxDate; uint NumGames; uint NumPlayers; tourneyPlayerT * PlayerList; unsigned long long EloSum; unsigned long long EloCount; gameNumberT FirstGame; Tourney * Next; Tourney(IndexEntry * ie, NameBase * nb); ~Tourney(); #ifdef WINCE void* operator new(size_t sz) { void* m = my_Tcl_Alloc(sz); return m; } void operator delete(void* m) { my_Tcl_Free((char*)m); } void* operator new [] (size_t sz) { void* m = my_Tcl_AttemptAlloc(sz); return m; } void operator delete [] (void* m) { my_Tcl_Free((char*)m); } #endif void AddGame (IndexEntry * ie, gameNumberT g); void Dump (Tcl_DString * ds); uint MeanElo() { return (EloCount == 0 ? 0 : (EloSum + EloCount/2) / EloCount); }; bool HasPlayer (const char * playerStr); }; typedef Tourney * tourneyPtrT; Tourney::Tourney (IndexEntry * ie, NameBase * nb) { SiteID = ie->GetSite(); EventID = ie->GetEvent(); NB = nb; StartDate = EndDate = ie->GetDate(); MinDate = date_AddMonths (StartDate, -3); MaxDate = date_AddMonths (StartDate, 3); NumGames = NumPlayers = 0; PlayerList = NULL; EloSum = EloCount = 0; Next = NULL; } Tourney::~Tourney() { tourneyPlayerT *p, *next; p = PlayerList; while (p != NULL) { next = p->next; #ifdef WINCE my_Tcl_Free((char*)p); #else free(p); #endif p = next; } } void Tourney::AddGame (IndexEntry * ie, gameNumberT g) { idNumberT whiteID = ie->GetWhite(); idNumberT blackID = ie->GetBlack(); uint wElo = ie->GetWhiteElo(); uint bElo = ie->GetBlackElo(); resultT result = ie->GetResult(); uint wScore = 1; uint bScore = 1; if (result == RESULT_White) { wScore = 2; bScore = 0; } if (result == RESULT_Black) { wScore = 0; bScore = 2; } tourneyPlayerT * p = PlayerList; bool playerFound = false; while (p != NULL) { if (p->id == whiteID) { playerFound = true; if (wElo > p->elo) { p->elo = wElo; } p->score += wScore; break; } p = p->next; } if (! playerFound) { #ifdef WINCE p = (tourneyPlayerT*)my_Tcl_Alloc(sizeof( tourneyPlayerT)); #else p = new tourneyPlayerT; #endif p->id = whiteID; p->elo = wElo; p->score = wScore; p->next = PlayerList; PlayerList = p; NumPlayers++; } p = PlayerList; playerFound = false; while (p != NULL) { if (p->id == blackID) { playerFound = true; if (bElo > p->elo) { p->elo = bElo; } p->score += bScore; break; } p = p->next; } if (! playerFound) { #ifdef WINCE p = (tourneyPlayerT*)my_Tcl_Alloc(sizeof( tourneyPlayerT)); #else p = new tourneyPlayerT; #endif p->id = blackID; p->elo = bElo; p->score = bScore; p->next = PlayerList; PlayerList = p; NumPlayers++; } if (wElo != 0) { EloSum += wElo; EloCount++; } if (bElo != 0) { EloSum += bElo; EloCount++; } dateT date = ie->GetDate(); if (NumGames == 0 || date < StartDate) { StartDate = date; FirstGame = g; } NumGames++; } void Tourney::Dump (Tcl_DString * ds) { char str [16]; Tcl_DStringStartSublist (ds); date_DecodeToString (StartDate, str); strTrimDate (str); Tcl_DStringAppendElement (ds, str); Tcl_DStringAppendElement (ds, NB->GetName (NAME_SITE, SiteID)); Tcl_DStringAppendElement (ds, NB->GetName (NAME_EVENT, EventID)); sprintf (str, "%u", NumPlayers); Tcl_DStringAppendElement (ds, str); sprintf (str, "%u", NumGames); Tcl_DStringAppendElement (ds, str); sprintf (str, "%u", MeanElo()); Tcl_DStringAppendElement (ds, str); sprintf (str, "%u", FirstGame+1); Tcl_DStringAppendElement (ds, str); // Append the name, rating and score for the top two players: for (uint i=0; i < 2; i++) { uint bestElo = 0; int bestScore = -1; tourneyPlayerT * best = NULL; tourneyPlayerT * p = PlayerList; while (p != NULL) { if (p->score > bestScore || (p->score == bestScore && p->elo > bestElo)) { best = p; bestScore = p->score; bestElo = p->elo; } p = p->next; } if (best != NULL) { best->score = -1; Tcl_DStringAppendElement (ds, NB->GetName (NAME_PLAYER, best->id)); sprintf (str, "%u", bestElo); Tcl_DStringAppendElement (ds, str); sprintf (str, "%d", bestScore/2); if (bestScore & 1) { strAppend (str, ".5"); } Tcl_DStringAppendElement (ds, str); } else { Tcl_DStringAppendElement (ds, ""); Tcl_DStringAppendElement (ds, "0"); Tcl_DStringAppendElement (ds, "0"); } } Tcl_DStringEndSublist (ds); } bool Tourney::HasPlayer (const char * playerStr) { if (playerStr == NULL) { return true; } tourneyPlayerT *p = PlayerList; while (p != NULL) { if (strAlphaContains (NB->GetName (NAME_PLAYER, p->id), playerStr)) { return true; } p = p->next; } return false; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // sc_base_tournaments: // Returns information on tournaments in the current database. int sc_base_tournaments (ClientData cd, Tcl_Interp * ti, int argc, const char ** argv) { const char * usage = "Usage: sc_base tournaments [-
    • E0 1.d4 Nf6 2.c4 e6: Catalan, etc
    • E1 1.d4 Nf6 2.c4 e6 3.Nf3 (b6): Queen's Indian, etc
    • E2 1.d4 Nf6 2.c4 e6 3.Nc3 (Bb4): Nimzo-Indian, etc
    • E3 E2 + 4.Bg5 or 4.Qc2: Nimzo-Indian
    • E4 E2 + 4.e3: Nimzo-Indian, Rubinstein
    • E5 E4 + 4...O-O 5.Nf3: Nimzo-Indian, main line
    • E6 1.d4 Nf6 2.c4 g6: King's Indian
    • E7 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4: King's Indian
    • E8 E7 + 4...d6 5.f3: King's Indian, Samisch
    • E9 E7 + 4...d6 5.Nf3: King's Indian, main lines

    (Updated: Scid 2.5, June 2001)

    scid-4.3.0.cvs20120311/help/Author.html0000644000175000017500000000370011727223077016516 0ustar oliveroliver Scid Help: Contact information

    Contact Information

    The Scid web page is located at:
    http://scid.sourceforge.net/

    It has downloads of the latest version of Scid and any extra files that are available.

    Please send any comments, questions, suggestions or bug reports to the author of Scid, Shane Hudson, at the email address:
    sgh@users.sourceforge.net

    Related Links

    If you enjoy using Scid, you may find the following websites interesting:

    • http://www.tim_mann.org/chess.html -- Home page of Tim Mann's xboard & winboard program which is a PGN reader and an interface for Internet chess servers. His site also has good information on Crafty, GNUchess and other free chess programs.
    • ftp://ftp.cis.uab.edu/pub/hyatt/ -- the strong chess-playing program Crafty. The subdirectory there named TB has many Nalimov-format tablebase files that you can use in several chess programs and in Scid.
    • http://www.chesscenter.com/twic/ -- TWIC (the week in chess), an excellent weekly bulletin of international chess games in available in PGN format.
    • http://scid.sourceforge.net/doc/standard.txt -- the PGN Standard, created by Steven J. Edwards in 1994. This text file explains the PGN and EPD formats in detail.

    (Updated: Scid 2.6, August 2001)

    scid-4.3.0.cvs20120311/help/PList.html0000644000175000017500000000226311727223077016312 0ustar oliveroliver Scid Help: Player Finder window

    The Player Finder window

    The Player Finder window displays a list of names of players in the current database. Selecting a player will open the Player Info window to display more detailed information about that player.

    Five columns are displayed showing each player's name, peak Elo rating, number of games played and the year of their oldest and newest game. Click on any column title at the top of the list to sort the list by that column.

    The controls below the list allow you to filter the list contents. You can alter the maximum list size, enter a case-insensitive player name prefix (such as "ada" to search for "Adams"), and restrict the ranges of Elo rating and number of games played.

    (Updated: Scid 3.4, July 2002)

    scid-4.3.0.cvs20120311/help/MainWindow.html0000644000175000017500000000745711727223077017345 0ustar oliveroliver Scid Help: Scid main window

    Scid main window

    The main window in Scid displays the current board position of the active game and information about the current game and database. Separate help pages describe the menus and ways to enter chess moves.

    Game navigation buttons

    The navigation buttons above the board have the following meanings, from left to right:

    • Move to the start of the game.
    • Move back one move.
    • Move forward one move.
    • Move to the end of the game.
    • Move into a variation.
    • Move out of the current variation.
    • Add a new variation.
    • Start/stop autoplay mode (see below).
    • Start/stop trial mode.
    • Rotate the board 180 degrees.
    • Show/hide board coordinates.

    Autoplay mode

    In autoplay mode, Scid automatically plays the moves in the current game, moving forward until the end of the game. The time delay between moves can be set from the [Options: Moves] menu, and is saved to your options file when you save options.

    The shortcut key Control+Z starts or stops autoplay mode, and you can also exit autoplay mode by pressing the Escape key.

    If you start autoplay mode when the analysis window is open, the game is annotated: the score and analysis for each position are added to the game as a new variation just before each move is made. See the analysis window help page for details.

    The game information area

    The area below the chessboard showing information about the game is called the game information area. Its first three lines show information such as the players, result, date, and site. The fourth line indicates the current position in the game, and what the next move is.

    The fifth line shows the ECO (Encyclopedia of Chess Openings) code for the current position, if the position appears in the ECO file being used.

    The game information area has a menu activated with the right mouse button, with options to hide the next move (useful if you are training using a game and want to guess each move) and to delete or undelete the current game. You can also activate this menu without using the mouse, by pressing the [F9] function key.

    Tablebases

    The game information area also displays tablebase results whenever the displayed position reaches a material configuration found in a tablebase file. See the tablebases help page for details.

    The status bar

    The status bar shows information about the current database. The first field indicates the game status: XX means it has been altered and not yet saved, while -- means it is unchanged, and %% indicates the database is read-only (not alterable).

    If you want a database to be opened read-only, just set the permissions of its Scid files, or at least its index file, for example: chmod a-w myfile.si3 as a shell command, and it will be opened read-only by Scid.

    The status bar also shows how many games are currently in the filter.

    (Updated: Scid 3.1, December 2001)

    scid-4.3.0.cvs20120311/help/Formats.html0000644000175000017500000000637611727223077016703 0ustar oliveroliver Scid Help: File Formats

    Scid File Formats

    Scid databases consist of three essential files: an Index file, a Name file and a Game file. All have a two-letter suffix starting with "s": ".si" for index files, ".sn" for name files, and ".sg" for game files.

    The Index (.si) file

    This file contains a description for the database and a small fixed-size entry for each game. The current size is 41 bytes per game. Of this, about 28 bytes is essential information such as the result, date, player/event/site name ID numbers (the actual names are in the Name file), etc.

    The remaining 13 bytes contain redundant but useful information about the game that is used to speed up position, material and pattern searches. See the section Fast searches below for more information.

    The Name (.sn) file

    This file contains all player, event, site and round names used in the database. Each name is stored only once even if it occurs in many games. The name file is usually the smallest of the three essential files in a database.

    The Game (.sg) file

    This file contains the actual moves, variations and comments of each game. The move encoding format is very compact: most moves take only one byte of storage.

    When a game is replaced, its new version is saved to the end of the game file, so wasted space can accumulate over time. You can restore a database to its minimal size by compacting it.

    Other Scid files

    An EPD file (suffix: ".epd") contains a number of chess positions, each with a text comment. The EPD file format is described in the PGN standard.

    An email (suffix: ".sem") file for a database stores details of the opponents you send email messages to.

    A SearchOptions (suffix: ".sso") file contains Scid header or material/pattern search settings.

    Fast searches in Scid

    As mentioned above, the index file stores some redundant but useful information about each game to speed up position or material searches.

    For example, the material of the final position is stored. If you search for rook and pawn endings, then all games that end with a queen, bishop or knight on the board (and have no pawn promotions) will be quickly skipped over.

    Another useful piece of information stored is the order in which pawns leave their home squares (by moving, or by being captured). This is used to speed up tree or exact position searches, especially for opening positions. For example, when searching for the starting position of the French defence (1.e4 e6), every game starts with 1.e4 c5, or 1.d4, etc, will be skipped, but games starting with 1.e4 e5 will still need to be searched.

    (Updated: Scid 2.5, June 2001)

    scid-4.3.0.cvs20120311/help/TB.html0000644000175000017500000001273211727223077015566 0ustar oliveroliver Scid Help: Tablebases

    Tablebases

    A tablebase is a file containing the perfect result information about all positions of a particular material setup, such as King and Rook versus King and Pawn. Tablebases for all material situations up to five men (including the Kings) have been generated, and some simple 6-men tablebases are also available.

    Scid can use Nalimov-format tablebases that are used by many modern chess engines. These often end with the file suffix .nbw.emd or .nbb.emd. All 3-, 4- and 5-men Nalimov tablebases can be used in Scid.

    Using tablebases in Scid

    To use tablebase files in Scid, simply set their directories by selecting Tablebase directory... from the [Options] menu. You can select up to 4 directories where your tablebase files are stored. You can press a ... button to the right of an entry to choose a file, to specify that the directory of that file should be used.

    When a position found in a tablebase file is reached, the game information area (below the chessboard) will show tablebase information. You can configure the amount of information shown by clicking the right-mouse button in that area or selecting Game information from the [Options] menu. Selecting the "result and best moves" option gives the most useful information, but is much often slower than the "result only" option.

    The Tablebase window

    You can get even more tablebase information about the current position by opening the Tablebase window ([Windows] menu, shortcut: Ctrl+Shift+=). This window shows the result with perfect play of all legal moves from the current position.

    The window has two main parts. The summary frame (on the left) shows which tablebases Scid found on your computer and a summary for each tablebase. The results frame (on the right) shows optimal results for all moves from the current position displayed in the main window.

    The summary frame

    The top part of the summary frame lets you select a particular tablebase. Those you have available are shown in blue and unavailable tablebases are shown in gray, but you can select any tablebase. The lower part of the summary frame shows summary information for the selected tablebase. (Not all tablebases have a summary recorded in Scid yet.)

    The summary includes the frequency (how many games per million reach a position with this material, computed from a database of more than 600,000 master-level games), a longest mate for either side, and the number of mutual (or "reciprocal") zugzwangs. A mutual zugwang is a position where white to move draws and black to move loses, or where white to move loses and black to move draws, or where whoever moves loses.

    For some tablebases with mutual zugzwangs, the summary also includes a list of all of the zugwang positions or a selection of them. A full list for every tablebase is not feasible since some tablebases have thousands of mutual zugzwangs.

    You can set up a random position from the selected tablebase by pressing the Random button.

    The results frame

    The results frame is updated whenever the chessboard in the main window changes. The first line shows how many moves win (+), draw (=), lose (-), or have an unknown result (?). The rest of the frame gives a more detailed list of results, ranking them from shortest to longest mates, then draws, then longest to shortest losses. All distances are to checkmate.

    The results board

    In a tablebase position, it is often useful what the tablebase results would be if all the pieces in the current position were on their current squares but one particular piece was moved somewhere else. For example, you may want to determine how close a king has to be to a passed pawn to win or draw a particular position. In endgame books this information is often called the winning zone or drawing zone of a piece in a position.

    You can find this information in Scid by pressing the button with an image of a chessboard, to show the results board in the tablebase window. When you press the left mouse button on any piece in this board, a symbol is drawn in each empty square showing what the tablebase result would be (with the same side to move as the current main window position) if the selected piece was on that square.

    There are five different symbols a square can have: a white # means White wins; a black # means Black wins; a blue = means the position is drawn; a red X means the position is illegal (because the kings are adjacent or the side to move is giving check); and a red ? means the result is unknown because the necessary tablebase file is not available.

    Obtaining Tablebase files

    See the related links section for help on finding tablebase files on the Internet.

    (Updated: Scid 3.4, September 2002)

    scid-4.3.0.cvs20120311/help/Email.html0000644000175000017500000000467511727223077016317 0ustar oliveroliver Scid Help: Email window

    The Email window

    Scids email manager window provides a way for you to manage correspondence chess games played by email. If you do not play email chess, this will be of no interest to you. But if you play correspondence chess by email, you can send your email messages directly from Scid!

    To use the email manager:

    • 1) Create the game(s) for your opponent in the database.
    • 2) In the email manager window, select Add and enter your opponents details: name, email address, and the game numbers in the database.
    • 3) Select Send email in the email window each time you have added moves to the game(s) and want to send a message.

    When you send an email message, Scid generates the message with the games in PGN format without any comments, annotations or variations, since you would not usually want your opponent to see your analysis. You can edit the message before sending it to add conditional moves or other text.

    For each opponent, you may have any number of games; one or two is most common. Note that Scid does not check if game numbers change, so after setting up the details of your opponents, be careful to avoid deleting games or sorting your database of email games, since this will rearrange games and the game numbers for each opponent will be incorrect.

    Limitations

    Scid does not have any capability to check your email folder yet, so you still need to add your opponents moves to the games manually.

    Configuration

    A copy of each email message sent by Scid is stored in the file ~/.scid/scidmail.log. If you want them to be stored in a different file, you will need to edit the file tcl/start.tcl and recompile Scid.

    Scid can send email messages using an SMTP server or sendmail. User the Settings button in the Email Manager to specify which you want to use.

    Scid stores the opponent details for a database in a file with the same name as the database and the suffix ".sem".

    (Updated: Scid 3.0, November 2001)

    scid-4.3.0.cvs20120311/help/Export.html0000644000175000017500000000464711727223077016550 0ustar oliveroliver Scid Help: Exporting games

    Exporting games

    You can use commands under the [Tools] menu to export the current game or all games in the current filter to a text file.

    Three text file formats are available: PGN (portable game notation), HTML (for web pages) and LaTeX (a popular typesetting system).

    When exporting, you can choose to create a new file, or add the games to an existing file of games exported by Scid.

    Diagrams

    When exporting in HTML or LaTeX format, Scid will automatically add a diagram wherever a diagram nag ("D") or a comment that starts with the character "#" appears in the game.

    Null moves in PGN Export

    Scid allows null (empty) moves to be stored in games, as they can be helpful when annotating games using variations. However, the PGN standard has no null move concept. So if you export Scid games with null moves to a PGN file, other PGN-reading software will not be able to read the null moves.

    To solve this problem, Scid provides an extra option, Convert null moves to comments, when exporting games in PGN format. If you want to create a PGN file that other software can use, turn this option on and variations containing null moves will be converted to comments. However, if you want to create a PGN file that can be imported back into Scid later with null moves preserved, leave the option off.

    HTML Export

    Scid can export games to an HTML file. For diagrams to appear, you will need the diagram images (distributed with Scid in the directory "bitmaps/") to be in a subdirectory bitmaps/ under the directory the HTML file is in.

    LaTeX Export

    Scid can export games to a LaTeX file. Games be printed two columns to a page and moves are in figurine algebraic notation.

    See the Using LaTeX with Scid help page for more information.

    (Updated: Scid 3.4, July 2002)

    scid-4.3.0.cvs20120311/help/CorrChess.html0000644000175000017500000003504611727223077017157 0ustar oliveroliver Scid Help: Correspondence Chess

    Correspondence Chess

    To use the correspondence chess features described here a database of the type "Correspondence" has to be opend before calling any menu items or buttons. Otherwise scid will issue an error message complaining that none is open. However, do not open more than one database fo this type as scid then can not recognise the one to use.

    Configuration

    Correspondence Chess within scid is based upon a normal scid database that holds the games and some helpers external to scid that handle the "non-chess-parts". To access the configuration dialog choose [Play / Correspondence Chess / Configure] from the menue. A dialog will open presenting the follwoing choices:

    • Default Database: From the Correspondence Chess menue one can choose Open Database. The database opend is set in this entry. The advantage of this method is, that this database does not show up in the recent databases lists.
    • Inbox (path): In this directory scid will look for PGN files containing the games that are used to synchronise the correspondence chess database. Generally, scid does not care how the games come to this directory. It will just work through all PGN files located there. This offers the possibility to use some external tools to fetch games to this location. Additionally, in eMail chess one should just save the PGN files received from the opponent into this directory.

      Scid will not read a mailbox of whatever sort, it just handles all PGN files placed in that directory. Also note, that it will synchronise games with the current database. However, if a game from this directory does not yet exist in the database it is treated as new game and appended to the database.

    • Outbox (path): The inverse of the Inbox. Scid places here PGN files of the outgoing games. For eMail chess this essential as the PGN files have to be attached to an eMail message. For Xfcc, where only the move is sent, this would not be necessary, however the Outbox directory offers a convenient way to link up to your PDA or for any other usage.
    • Fetch Tool: This program is called to automatically retrieve correspondence chess games. This helper just has to fetch the games from whatever source it likes, generate a proper PGN file containing the necessary PGN header. Tools for fetching games from Xfcc-servers exist as external programs and these are the natural tools to set up here. For future protocols one could easily generate an external fetch tool that handles this protocol. Also automatisation is possible if this functionality is done externally.

      Note: This tool is not called for eMail chess!

    • Send Tool: This is the inverse of the fetch tool, primarily also ment for Xfcc support or any future protocol that might come up. The send tool, however, is called from scid with several parameters:
         SendTool Outbox Name GameID MoveCount Move "Comment" resign claimDraw offerDraw acceptDraw
         
      The meaning of the parameters is as follows:
      • Outbox: The path set in this dialog. The send tool is meant to generate a correctly formatted PGN file there.
      • Name: The name of the player to move as stated in the PGN header. For Xfcc this would be the login name.
      • MoveCount: The move number to send.
      • Move: The actual move in SAN
      • "Comment": A comment sent to the opponent. Scid inserts here comments that are placed after the last move. That is these comments are treated as comments to the opponent. Note that the comment is quoted, so multiline comments should be possible.
      • resign: 0 or 1, specifying wether the user wants to resign.
      • claimDraw: 0 or 1, specifying wether the user wants to claim a draw.
      • offerDraw: 0 or 1, specifying wether the user wants to offer a draw.
      • acceptDraw: 0 or 1, specifying wether the user wants to accept a draw offered by the opponent.

      Note: This tool is not called for eMail chess!

    • Mail program: give the path to your prefered eMail program. This program is called for eMail chess.
    • (B)CC Address: A copy of the outgoing message is sent to this address as blind copy. Note however, that if a GUI mailer is used it has normally its own outgoing mail handling. Hence, setting this address might duplicate messages. It can be used to transfer a game to another address though.
    • Mode: Unfortunatley there exists a wide range of mail clients and they use very different calling conventions. Some common conventiones, and examples of programs that use them, are listed here. The mailprogram will be called with the convention selected here. In case it is not known which convention is used one of those offered might match and do the trick.

      Hint 1: mailx or one of its many clones should be available as a command line application on almost any platform as an easy to set up version. In case none of the conventions work with your preferred client or this client can not handle mails with attachements by calls from the command line, installing mailx would be an option.

      Hint 2: mutt uses the systems mail transport (aka sendmail/exim/postfix). To hook up with those (arguably) not easily to set up tools mutt is a perfect option.

    • Attachement parameter: This parameter is used to specify an attachement. It is only used in mailx mode.
    • Subject parameter: This parameter is used to specify the subject of the mail message. It is only used in mailx mode.

    Stepping through games

    After games are retrieved they are loaded to scids clipboard database. By the two arrow icons in the button bar one can step through all games in the Inbox easily in either direction. This is not dependent wether the games are eMail games or use another protocol like Xfcc. Alternatively one can select Next Game or Previous Game form the menue.

    Note that if you set up your player names correctly scid will rotate the board for your to play always upwards. You can have multiple player names.

    eMail Chess

    Scid can handle eMail correspondence chess games almost automatically. The way how this is done is kept compatible to the cmail utility that comes with xboard on Un*x systems. (Having said this implies that you can play against an opponent using cmail/xboard.) It works by sending the games as whole PGN files too and fro while the header contains certain tags that allows them to be recognised and sorted together. For this reason the user has to be carefull with editing the header fields. Note that fields with explicit values have to be set to exactly this value for eMail chess. Starting a game with scid will do this automatically, but you must not overwrite them!

    Essential header fields are:

    • Event: "Email correspondence game"
    • Site: "NET"
    • Mode: "EM"
    • WhiteNA: contains the eMail address of the white player. Note that only the bare address is stored there in the form user@host.org.
    • BlackNA: contains the eMail address of the black player similar to WhiteNA.
    • CmailGameName: Contains a unique identifier for the game.

      While scid could use some database index this is not possible for non-DB-based tools. For this reason this parameter is user suppied. It must be unique! The easiest way is something of the form xx-yy-yyyymmdd where xx is a shortcut for the white player, yy one for the black player, and yyyymmdd the current date.

      For Xfcc-based games this field has also to be set to a unique identifier but there the server name and the unique game number on the server ist used, that is this identifier is of the form MyXfccServer-12345.

    Start a new game

    This opens a dialog for the input of the own and the opponents name as they should appear in the header as well as the eMail addresses of both parties. Additionally a unique game ID has to be inserted. The easiest way for this ID is something of the form xx-yy-yyyymmdd where xx is a shortcut for the white player, yy one for the black player, and yyyymmdd the current date. This id is a text and it is important to identify the games uniquely. Users of cmail will also know this ID as game name.

    After the dialog is quit by pressing the [Ok] button a new game is appended to the currently loaded correspondence chess database and the headers are set properly. Just make your move and send it.

    Retrieve games

    scid does not handle your mailbox automatically as this would, considering the wide range of possible mail setups these days, involve a huge ammount of code. For this reason just use your normal mail program that will retrieve your eMail anyway. To get a game into scid just save the attached PGN file to scid's inbox and process the inbox by either Retrieve Games (the same is accomplished by the left small envelope with an arrow pointing down in the button bar) or Process Inbox. The difference between the two is that the first one will also call the external fetch tool and populate the Inbox also with games from another source (say Xfcc).

    Send the response

    After making your move send it by either the Mail Move item from the menue or the right envelope icon with a small arrow pointing upwards. The latter will scid have to recognise the game as eMail correspondence and send it by mail.

    Of course scid strips the the game bare of any comments and variatoins before sending it to the opponent. If a GUI-mailer is used, the usual compose window is opend. It is prefilled with a properly attached PGN file from scids Outbox. The address of your opponent is filled in as well as a generic subject containing the game id for easy filtering and the bcc address if specified. The mail body is set to contain the FEN of the final position and a list of moves that lead to this position. This way the opponent can quickly look up your move without processing the attachement. Of course the mail body can be edited.

    When using mailx compatible tools no window is opened and the mail is sent invisibly by invoking the tool specified in the background. In this case the generated mail contains the PGN also in the mail body.

    Note that as eMail chess works by sending the whole PGN file you must not add more than your half move. Scid does not checking here wether more then one hlaf move was added to the mainline, simply as scid does not know which move it is, when you send yours.

    Xfcc Servers

    Start a new game

    Xfcc does not allow to start a new game itself. Searching for an opponent and starting a game is instead handled by the Xfcc chess server via login on their web site. Once the game is started however, scid can be used to retrieve the moves of the opponent, add them to the internal database, analyse and so on. All features of scid are to the users disposal though certain modes of play may not allow them (e.g. normal games usually do not permit the usage of chess engines for analysis).

    Retrieve games

    Open a database that holds correspondence chess games. This database has to be of type "Correspondence Chess".

    Notes:
    • If scid does not find a correspondence chess database it will silently quit and do nothing
    • If the database does not hold the games that are fetchted from the server they are treated as new games and added to the database
    • scid will use the first database of type "Correspondence Chess" that is currently open. For this reason only one such DB should be opened at a time.

    Xfcc always retrieves all games hosted on a specified server at once. To retrieve the games just press the "retrieve games" icon or select Retrieve Games from the [Correspondence Chess] menue. As a server connection is required to fetch new games be sure that the system has network access. Additionally it may take some time to retrieve the answer.

    Note that the Fetch tool is called without any parameter. It is thought to work through all your Xfcc-accounts and place properly formatted PGN files in scids inbox.

    Once the games are retrieved their counterpart is searched within the Correspondence Chess DB and new moves are added accordingly. As Xfcc servers may offer various ways to insert moves it might well be that scid will have to add half of the game to the DB. This poses no problem. scid will just add all moves till the current position is reached.

    Note that if other sources have placed games in your inbox (e.g. from your eMail correspondence chess) they are also synchronised in this step into the database. Games that are not yet found in the database are treated as new games and appended to the database.

    Analyse and make a move

    All analysis features can be used for Xfcc games. Adding variations, annotations etc. can be added just like in normal game analysis. Once finished scid will take the last half move added to the game and treat it as the current move to send. No checking wether only half a move was made or which side to move is done here, hence, only one half move to the mainline must be added! Additionally scid sends the last comment added to the game to the server as a message for the opponent.

    (Updated: Scid 3.6.23, February 2008)

    scid-4.3.0.cvs20120311/help/PInfo.html0000644000175000017500000000253511727223077016274 0ustar oliveroliver Scid Help: Player Info window

    The Player Info window

    The Player Information window is produced or updated whenever you click the left mouse button on a player name in the game information area (below the chessboard) or in the crosstable window.

    It displays (hopefully) useful information about the player, including their success with White and Black, favorite openings (by ECO code), and rating history.

    All percentages displayed are an expected score (success rate), from the player's perspective -- so higher is always better for the player, whether they are White or Black.

    You can see the player's rating history in a graph by pressing the Rating graph button.

    Any number printed in red can be clicked with the left mouse button to set the filter to the games it represents.

    (Updated: Scid 2.5, June 2001)

    scid-4.3.0.cvs20120311/help/Switcher.html0000644000175000017500000000317711727223077017054 0ustar oliveroliver Scid Help: Database Switcher

    The Database Switcher window

    The Database Switcher window provides a view which makes it easy to switch between databases or copy games between databases. The name, filter state and graphic type icon of each database is displayed, and the active database is highlighted with a yellow background.

    You can open the database switcher window from the [Windows] menu, or by its shortcut key: Control+D.

    To copy all the filtered games in one database to another, drag with the left mouse button from the source base to the target base. You will then see a confirmation dialog (if the target database is not the clipbase) if the games can be copied, or an error message if the games cannot be copied (for example, if a selected database is not open).

    Pressing right mouse button over a database produces a popup menu applying to that database, from which you can change the database type icon or reset its filter. You can also use this menu to change the orientation of the window (to arrange the database slots vertically or horizontally) which is useful for smaller screens.

    (Updated: Scid 3.1, December 2001)

    scid-4.3.0.cvs20120311/scripts/0000755000175000017500000000000011727223077015125 5ustar oliveroliverscid-4.3.0.cvs20120311/scripts/sc_spell.tcl0000644000175000017500000000261711727223077017443 0ustar oliveroliver#!/bin/sh # sc_spell: # Clean a Scid database by applying all player, event, site and round # name corrections, then flagging all duplicate games as deleted. # # Usage: sc_spell # The next line restarts using tcscid: \ exec tcscid "$0" "$@" set args [llength $argv] if {$args != 2} { puts stderr "Usage: sc_spell " exit 1 } # Open the spellcheck file: set spellfile [lindex $argv 1] if {[catch {sc_name read $spellfile} result]} { puts stderr "Error reading spellcheck file: $result" exit 1 } # Open the database: set basename [lindex $argv 0] if {[catch {sc_base open $basename} result]} { puts stderr "Error opening database \"$basename\": $result" exit 1 } if {[sc_base isReadOnly]} { puts stderr "Error: database \"$basename\" is read-only." exit 1 } puts "Spellchecking names..." foreach nameType {player event site round} { # Now do each name correction: if {![catch {sc_name spellcheck $nameType} corrections]} { if {[catch {sc_name correct $nameType $corrections} result]} { puts stderr "Error correcting $nameType names" exit 1 } puts " $result" } else { puts " 0 $nameType names were corrected." } } puts "Checking for duplicate games..." set result [sc_base duplicates] puts " Found $result duplicate games." sc_base close scid-4.3.0.cvs20120311/scripts/CB-Mega/0000755000175000017500000000000011727223077016260 5ustar oliveroliverscid-4.3.0.cvs20120311/scripts/CB-Mega/mega-historic.xml.gz0000644000175000017500000000202111727223077022147 0ustar oliveroliverImega-historic.xmlOo8ͧroH$$M7qm/ln=Q@JvOV{oF?kyeͧF`vLfcdOO>L0]-U#Zi5az:YM:'|VӉ6ZnsյdrW禘0e[t=j]F72gt"K0,keЙ}`AA7Ek hNl@Ax(_5>hTrAA_`]RoS:B0 VIE9XEg~WU)7M'"\kTv.N0sm)ZҼ4KZ1|4s m[† z咧"M)=Ho#D0y}QEN2)dZģl-vP =i Ic {ذFc*4\;Sc'ΨYHFð!!_*Wr!Iw+ Ekuҍ\i1Faq?HQC4tl.%]a`>4p9o+e|zNm9Z.s}3)kZMZr0TԲ\Ex<9bOji鞾8FGLq:~tk4#i |a,j#Hfj8Yi]Sn;ZFD,)=N%EmKt<uQڍm*[= x4 ?CxCmLjQ&b*puу'cc.BZ?CZ W]!W+UkńP@R^FbH|+=JN, e Ψ?o&ܗ`QX[w:UpC#@q重p-[\F1x ښ[^-Y*ފ8ϝyKgp@l"&Z{rꊭ9 | k_j.(bC$~Ʉ|76Hiscid-4.3.0.cvs20120311/scripts/CB-Mega/Mega2Scid.pl0000755000175000017500000001023111727223077020353 0ustar oliveroliver#!/usr/bin/perl -w #========================================================================= # # Mega2Scid.pl # # Convert photos from ChessBase Mega Database to scids internal # photo format. # # $Id: Mega2Scid.pl,v 4.3 2011/02/13 18:12:00 arwagner Exp $ # Last change: # Author : Alexander Wagner # Language : Perl # #------------------------------------------------------------------------- # # Copyright (C) 2008 by Alexander Wagner # # This is free software; you can redistribute it and/or modify it # under the terms of the GNU Genereal Public License as published # by the Free Software Foundation; either version 2, or (at your # option) any later version. # # This program is distributed in the hope that it will be usefull, # 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 recieved 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. # #========================================================================= use XML::XPath; use IO::Handle; my @megaxml = ("mega-2006.xml", "mega-historic.xml", "mega-2007-addon.xml", "mega-2008-addon.xml"); my $prefix = "/media/cdrom/playbase"; my $indextool= "spf2spi.tcl"; my $geometry = "80x100>"; # Use the ramdisk /dev/shm to speed up my $outimg = "/dev/shm/tmp.gif"; my $outmime = "/dev/shm/out.mime64"; #====================================================================== foreach $xmlfile (@megaxml) { my $output = $xmlfile; $output =~ s/xml$/spf/; open (OUT, ">$output") or die "Can't open $output: $!\n"; print "Processing $xmlfile...\n"; # *OUT->autoflush(1); *STDOUT->autoflush(1); print OUT "# $output\n"; print OUT "#\n"; print OUT "# This file contains photos of players from ChessBase Playerbase.\n"; print OUT "# These photos are converted from jpg to gif and resized to \n"; print OUT "# around 80x100 pixels each and stored as base64-encoded image.\n"; print OUT "#\n"; print OUT "# Copyright Note: These photos may be copyright by ChessBase.\n"; print OUT "# They are used legally only if you own a ChessBase MegaBase\n"; print OUT "# and have converted them from this collection yourself.\n"; print OUT "#\n\n\n"; my $xp = XML::XPath->new(filename=>$xmlfile); my $nodes = $xp->find('/cb/p'); my $names = (); my $dublett = 0; print "Scanning names...\n"; my $counter = 0; # uniquify names foreach $player ($nodes->get_nodelist) { $counter++; $lastname = $player->find('l'); $firstname = $player->find('f'); $imagefile = lc($player->find('i')); $index = "$lastname, $firstname"; if (exists ($names{$index})) { $dublett++; } else { $names{$index} = $imagefile; } } print "Found $counter players, $dublett dublett namings...\n"; print "Starting conversion...\n"; $counter = 0; for my $name (sort keys %names) { $counter++; my ($lastname, $firstname) = split(/, /, $name); $imagefile = $names{$name}; # print "$lastname, $firstname: $imagefile\n"; if ($counter % 100 == 0) { print "o"; } else { print "."; } print OUT "photo \"$lastname, $firstname\" {\n"; $inimg = "$prefix/$imagefile"; # Convert images to about 80x100px height system ("convert -geometry \"$geometry\" $inimg $outimg"); system ("rm $outmime"); # encode it using mpack system ("mpack -s none -o $outmime $outimg"); open (IN, "<$outmime") or die "Can't open $outmime: $!\n"; for (my $i=0; $i<14; $i++) { $line = ; } while ($line = ) { next if $line =~ m/^\n/; next if $line =~ m/^-----\n/; print OUT $line; } close(IN); print OUT "}\n\n"; } close(OUT); sleep(5); print "Generating index...\n"; my $outfile = $xmlfile; $outfile =~ s/xml$/spf/; my $indexfile = $xmlfile; $indexfile =~ s/xml$/spi/; system("$indextool $outfile > $indexfile"); print "\n\n$counter photos converted to $outfile.\n"; } scid-4.3.0.cvs20120311/scripts/CB-Mega/mega-2006.xml.gz0000644000175000017500000041766111727223077020736 0ustar oliveroliver_Gmega-2006.xml][sƒ~N~6O ^S(JYGrJޚa8 9nЩsu]l}mDW<)Rv2mtl6?׻w?V[kWJߔ򑅍"Y䬊sT*vUWՑѥ2o?@~5 UUgP B}v>ZPÊ ߽C֫?a|L!ه7v?~@woge gm& y?;g*N6,Nh`e<O xV'A[_C^Nfz<3M *YLv<`Ts`ţpƣZXzs$Khc4+t'ecjjЋRYtl$j9IH`2p(],69cN~sMZ @h- ]"F3 @=4:Id6NNEE믜㕕0MqV:Z(kU%Td2ՒE<ԧ!g ?i9x'Rpz]Bl2pCQ h*x"yW~3/HAym?9 hL oncic9TD/Hf(6=',ٮC~wh8څp糘ZDG2ZEnpshVz;=/]c`<3I3\ qcFx =[QWM9!U,`W! a2:rrƜ,PKuqMqjWkNeb)pڣ"ҙ1uQBĘ:b_Sk }ģG I%•ʴrpUU:O5&39b=tikC|>*71Juq󳲵R]BD=0 {rB y6xȵ5]r`o5uR>gesb]2Mt6T{О72Ck 9ɈIr؀ѡ=| -$P9 l-pË$H !>h4㊲9檝Iw8r'K2 ؎n RPe #iSF{ Z E($D#+v+{pNe:S:ȩuk-=qbiB昂8x.uS<69 .\o^*GQs*}v2 c',K>gbx43nڭt%x83VkI4 9]oc=7,T^hl<ќkh[ǃ9Dz4eN]?Fʐ敪z R%YH]f%ŦzIYTh*SLJp/VRuPx>[V~CL?XBBL,9Cm/+~k;S\ J '7*IS@:$WPJ+a kyLU&@W;aEtPP-de^@ ;ׯ)(%ct>!'$V8̀v:a_zTR&ޥq6<Ϩ9s>N㝯YLXz2'0+b"Pߨ-dxd0fj]!*j+wgrz>Y<'G0}5pwN%w5G7ԑ 7jn9m[DrB~E/kNmJs`[d oXɨe_P]UŊ$`;Җ1w)pܱUYh:jFI9$ *N]UYme;sr Ǹ%!%>_K_$mMϘ$OQnIhJ orZQV TIGP Ͻ"̹*$M?iy>H.-bkB8SQBCnLoYǧW25TDE_\Zx>67gD7cN-5I1?K85]H,^SKWBLdj^O W_bz]?CZ--7X`Q 5Kj1o.-:f) ᨅЧoTsնtYX}t#Di[:J!3µCKY ,lnWRcɆv;Rʧ,N+PucZNH,}\E = nyVQDuޑ]{~'AV}C{I[( VP6hZsp=F{)tY"+e:ɈA9b[%ۅlj i4Xp0[~\V̒O_z:{ #QJ%m?<d/kg4ņ~-h:?#5LiDI^6 ]6KI}},>BVڐ:epK)v'Q~W၆e<\XmVa cO^>#v#4lۭԕ{Y#z$ "ڪsvl$iesjLhWKۿm7#n_Q$.}Pl'Y;` EAB.PXﱺW#kf@gPaS&/U nhjhJ1wջPSCVx?zvi;!21.{eEݸyGJj?p\m}R~2R'P[o~v蒷_Ζ1>jNT]Q &?hEӃ)JL$+C̹3VRͥQq$1l:vg][MC()mЉr缅wo䭺OAS!U_ku6;=D1 lIhQɜxh PT$ [;ɮlN r)j &4= 2DtLx(Sbds3ȥ.#^ ʖ!<~;  6aDQ}oXv*h+3-)UgN\2;'o]h %L3W: ,!*OOHw| ރl0gS.RyACT &va[ Bbi)!rޟKeu̴("KIXy'JuoH.Rg#r!޳dߴ[Iq *j߯aՁʧDk:צ]FJb `(+nL '#rTޙAB`Z ܻ NY8g?Y(rIpM.cf\^ػMȡԋSuY#K`SNOQ4˨Jifiʃh%EU_|\bQ* הu$ʜ\Dqˆ-+V&W=4B]FlrEe#ʕ/f-5vSR J(>2$۬t)|ix#*)VCJW3vADB_w$v*+5^u5 -[pR2>@ ,Y5˹~(i*?=|gfF6EZb/j4h*-|^ژ^bޯTvr-L%ʺJ_x]ѿOˮ|>{WY?{98^.ǼҼ9A$Ʃfb/VKSMo -Zo>tx¤s|^UYȲo̥IB n9{=oGO\v+?9x|U󽗖L Pl +j2 2..㽟 `ۀ >g1r\ց!jWi z$Z) :O4w!ֺAnIΐN%{'!:8k;Tk#uaaZ\LҰ>\G6\:Y>ℙڻypd,>Bll޳-ۮ2p9SЀe PϘ=B,өϧ\@?w*_AGQ܂NRD 7Fx. S;–. a)/T *~Q7-^jdG??@ iߒ94^lψ[g3𖟦XdP=wr ٙMZcM:V^cBƱ9ݣF<=9XBnri&JnSS깚563g|:DDO{g-+zK/~Dq-rud2~pz jj DLaaޞf^x䥆f)i6K|񋟭^wDauOٺGO2ti8^DX-$8@C79,%ew?.EH""fr5XH툐̀,qI_JdAoV|V,Q=IЇ.c$s|*q^ :.sELK9.a3[-qqi6Jro'Fxp\MxF *a[᝺pI#h%PD@x839kbjdT[z".f[DX3D@Ao:=N}.# ݗbn H՗FOHrn)QA:aC :gR}QdKa eD<\,e/ IQ}VO|`b?> lyԋc+g\*.UUz` *] EV?jhePyH\G%yN`VMuaR̎ڴA"z5pU7ˠPM0>GG'smDWEMݴK:@/Sm%7C :@U4w[LS!D;Zϵ䜮Krw/mx!a(̙\'b(C$K;.眯N&A5b''P,7|Ьt;G1c@\N&dx:[Ԩgb,i7E$wK!Jm¥7`"1ԽI gLHL" <f1UJv`mŠ.{}ATr`~ smnxI)9Ql]`AXȋ,נG~mqi6n=/JauNQx1⸙{-y:c'y9F1QQгO#"1k:ڃSXt*۔C ݽXT:X}=9 B>Y('RTyK0}Aw۾ɳx4}pI+;5n+'! .MŋVUcyСzѽ5OI\WgAT)&c6OOF t2ۻϤpwJ,hb*;B L;HJMlW<=UjP *5_@4K+ 2"@`H%!"~0)Em6G]k&p>hX\~ LIwni,]o/nC;MI Y:Ѫps= Y0$'Clkkq3?,NUl۬.l-'W9s>@7 8#2)6\(EF| dUXC@ˆ 9mL=e w 2ꒉInt*(T^Ng̻\OE1=V+'̶cKpxD+܎.YDt0USJi} ghj =8}BdDmzUz8!⡋h23ux!z o;A6q"iz-lcϋ()kftex|49bfkGbuEDaCc7OD^di& 6C3y 2wR3³^͓>| cN< ڞwEw; %-Ǫ:q{5KRpH}si OޙQKW~/hrc^#5wXt3؇x߂xCy68Ej{V Y.t>jQsC R4or΃]Jsm$4"AFAHF[x ]\Q/'nj  YZ^8B!{Tߍ>p_m='}vGd7+?LGY6@M7X/bt)8 B̴j%_AL gņ\tnYIȊȯVDx]WY|>{q74459jR'Iw[7Q=Σ]*y b1U}tzz7U|v~ s^jO؍m,$#m<D]RN+Fw8&*s#ekd%]BT/1* J.dU9\sGN>@=kc"p%Ag4۪%"NAFm")A0={4/N8S`^-KpadP@ԲkE VFM oBk- 뤺mc>Adm<_95gOtvt5['kmyC|lg++6 $*X$̵.RųstvNY'dKLjclrIAxWSTcnwngzح=ّ8WC`/^1ajowDvꗱ>ɕ8/BC+H)*+SX|FUx Ǜr+v,C0˂;QT8;NNԶͲ[vŬS_V0 =(̊{+_(H` "!S D{3p&qtN]6`Ĺ}L8Ŵ(BIE'}fa=ȟ̕&F {j+Ϡp=+LO|y1nW6 "1cE*]}ڵ}|+`b<4Ut B\eϼCh52曕 行%ˈ4/ӭh4T!Y%Go+e+b&Iռ0\))Vб˹IT1H2Y/,&2zg3ijC><`IyfD&p6l=y.Z1?8쬭^'*_ov$2B&Lko&DbIo9偬y:|-JM,3CS J/Tp1@ǨK&UbcAIε2lZxsנ|_F޻3MOq@ [CuMV0p /=t'x?\xnB/9!-*Z2jSvp-Z ٧+}=bH΄Nܜ"*g3FϜ^(Lt2^zs~s2LL,5";&!g})|7h[fܝs_xi%P'v25 "tӍC D']5͙/ <WdOoJmM } g3 ,/37:1,I9؝@_$L#䋝3o#8[?%J/(nxmO*YpuMY%$ p|>e mdLv@h &Et"p, lY<L7<eM8S-TN`)' /;=X6tȧ X7gEVZ<'LL'')ܘ+օBzÑ@BgZe(7VԴ GvIX+QPqG9rtgb홣s)2uTx%nR؁lbJt"mmʹ7JNb/ʦTqFE@&} v{גZZCqk3TJ_f:y!c 5]گT" 7dm!sdDt4)$$cbW|8oٿRӁ`Ujso'9=gn4ser=WscfVOG114.RZ9㤷O]ciE!mlz yRwl_6 E^KFP}bO0tH~QZ.?ET{(" ]9xI9׳I.P!nu=PW/) Uu<=F-ƊΫʔRЄ]%3ƃ*$Iyc2ɆjxQ86Ȍ zk<(`L vi# w ff]>HJ^7ORQ6}j۪͕VG946/%]З$&Ak%K"fPDf~3ul#vLd梏 }.Yc*!V/2"SN9C&uj\mv!«K'DJaɱA{ CjVx iX^9$E{+]u '? []m,#]Z̪yb/HEMJT@b4t[hs%^D3SL'ѹASPGOW#8P1O(YFס<[ϠCGoNL T/&H>.Gh ]46V/K<}V^L<״ɦOjفt7J!ep.H/S]Ho%Ict7O/2<*5YV姊@&ᓃv'R5s-$h")w'0}oy!";f祐ﲦ-E}D{Bҋ!i __U>ܭgP@=e0KggDKOدLjN5ۨo\Ynd'䉗=cּ]ƈt #{-6{Sc?9tH[Ij H FGݴMJLpqN*$s`Y4cp黙<mK|>$g?zۛ(υu߮kis Xdę|p|ĵM0ڝxj%F#@etr-e ѭAOU%=TA<-N)/jkWUc,2",K-D(å//c\>Ĩ %!열Ωw]¿;tGmLӶ]F^Nqm )آ?ZJThFb [ڛ!ܛ^4Q:|lJJtIxPBc1 ,9وtu"_isD4T6?^\92!>9Z֔{3^'fEBGJ`[s [-TUSx`gN s<zUE;BN!yZb0+#y#V5ՈpAe"j[񋁎>nXY邬;Ӳ"`voȽNAػW[ӜSyGL/]L@)zȠs籴{ .ua筱Sid-&ܜE|] WSS_ D|*>&M%q LKf?82[{͞tTU⤥YH5o5§ MWXv]W!fˎQ tcJV+vgFȲx1^\0TN`v4:sk=f-* %2ǰ(MpQƈ&xt9F|kӐUCG9zkr.F-Y9!02ϸ\o>"W/[xHUVy֮U]a7rLY:ۍVdatE ?)O"w&;<[J5ayt#؋dJKp9zgxG',|u8Cz:ƙ;2_ yG^g*ۻRnjԞzC"I'ܪ~$I-WVTڒ<T㸥ef%7V `48U[ CR H7s`~pYM!><{?yn3jDx[fjsY hk2u$;im3SAԲjъ ˭eԓ#DrivCh mPL7.(Ldi{3hM4cd}`hýo_/|"3w"1I/*(&ȥkMs9Qu 0S4{PXۯn.zg @/nA^9Ek{ tιJ[?B{"Am~./G'}Vvw L@ϱʖ#Ѕ uDڭuf<|-^9`xv_z& $MW=zh+tH'{T{%t0d)1\}oGݔ\j%>LD}=.[ O;h%#_ѱ\Jn%!:5=\D+F y>䉣͸))[LRxlT}>޽κDzϐ2TAԡWB$caAY\윿>ۖh&Hd$of a)홲|쑟{!|>4"{hј:8E=͢|VR똷ݛՅP3]c{otCo똨ˆlE熎:bK-HOM=p_s(汔Z=B˨$;^hq'4U]La \݃Bl^Ɩm](5lCY=gF1 Q24DZҭuY|:R7svt=ڊTgҞ 2AUainթ T%a&Iz w$ wiRЙx*:D?W' w_;m*FQ'p_+Z-@^[>LݨD|l,QӃ;Y.U{73?٤D%+Ⱥ`xv~]43$|`72]."a!@oR3Y,K!Zb'ipٽӥ0Xk ݔޥgP9&83s97A('QzT/ $10|FEJE=oh8J \j|jPО1St47Ŏ;V@~MՄW&Ѯ,;\㸀cBh49Y8V11&Td1 6vy=Ij$.It!<`z^`7{̈́u!ZJs$Lֈ;mlş)z6c*p&g^S&[g`燃QycRI kx>\E&#>M¾rZA^60dk;Y좭 `tv(-GGP))IH3cջ2< G$"մ\-X;IO~Z.q* 9\Gڳ5Q͕w 2i5 V\9K@o9SYnW}ڍqG +?fٻ벰=nc= `oV85rȢiQ`1ڎ:4_-b07R<]w8BI:*+g$1/8 :TZC6RTPV+6vq-}S2's䮼g-G\-lG Zw(;)G´g#^M P$faGhd T}dG 4P@=f-*G{ҕ眄j~9J qpMgy9I!5u|cZ#ё{M3:9}{Wت<ޣJq :̡LʩwnrCeolWͫL^ʻDKRC[8jɤFʿA 7^Ҕ ek \ޝ4*eH{Sp!5Jk^FzF@LUmQuǼXBxE&b7(q xJ(ک!c@\<߂QF;jCDfJĮ]<^xN~VU?B^#)DEKXX8!I;G GŐ~"AluBĵ:fR>oF }:n$e)́`1,et*b12H2wĤԠ!yQې*KKZS^2KS0|pRt n- ޠhmHʼn~g3Mʻ5<9c|v=dy+L?|4Va\Ym[^]M/h L^/b6e|Nx8gtbӌ4^ hQ9 .dTI6DɎ{4>b_|`A3хZʺ(7+;?0K#x졈J4t!P+/(.V*Ks_ܲˋv}<[ \ REٻB;ch=a;)CG[ߔ%"C)SW6z 3ܔ'뾃%<Ƈht9n3%JM$p' ^Į5kHYf A6D^Ɠ8Fᓗjy[#A}*mTE}vz'V'TB;mO(X3$Э. s5ctm\BG:Ԫ#/rҡhW*0_ C.r`2,搒8grjm;KYO_UnnGt'wǛ.U}5jgmJ jtF,Tl㥳%j3)DT6u'(O&EOٝ_/6{}G(Dܽ\#R1j7w7[5W؝uԎΐ;{EYQLx|~|x_crЪqwwXFq[^WtU]pH16 -ᢣ~bק^1l}B~]gܼf`*Z.HlU~o{ a$g)R^"W-z+w0@W UEN 6{Ĵbͻb-ҜmFFT& ])B]ieI'3CM¼7r 7mbe&_I]Qǚ ϴx&c=ɚcl1uҹ/wT"h@Qz8RS51 4dBLr1])gGPL-%e.أ1SC} GCm tn ?:b}#**jIL.?[M*r9#&zm|FjJl}>&o10WqHR%fVXaUt;K)&(*LK)ꄙ( 5`̘!.؃Gp?L,+ xphm/Y+6s5裕F jY[r1s?b޵+?w鎬Fo~`<;D] 7t׭)#Hͤt}g`҅q]1ޥBхEm?̒tmGwLZ W'̭3GkzۑȱSr9ܝOv^|,} S3g蹰ZcCX+xy>աz3^o>s.TZI?CéLWn[.1&pB;1\ʉxCW@0עbG`sӈCW;~, 0~#/pӼMDpl "sa쐘z%av3̚ TZ4kvt+Ԃ=?ZJ8Jn Y.;I޻m>îDχwiԱ[l@xT&40r.n('2Iܝ-no.Hˣ8$K Nvz 2d%O8 4>\CDbaL[[N^Z tB*ڨytmwu6/rt8sGnX&|O sa89)g({jViPIb!4#'8%1K"+a͜ArO꾪7l4U%/8wb!1OPhpF]r,-.Ax W(7ȴ9e.(!kVJI "S8P4KVԾ Nm1W78!srQx꯴9y(ӑ2Qc/DIGj$g=ab@&WTz@U\ N|RsYE7>FS@/ljč&-zGoo>h35R-lh6Z=iRr?y;>BgL-#d:-/՘E[FP1ǧr=2>yޚ6XS݉7udٻ"EisieY21Ir RȭӚO;esRZOd ~$y]<:вn!#GҹKj=R7w-De(oW:`.+N=*9H0hfW E()hWnF3UN}MK}zdbkU&قtJ.}ͽRpA3X Q#"Xkܭ&Tw`zIF7e  ڇ[@evx POϭѱm.R!iޫO.!Y Y5NU-j+K-U_<1$%4O}~Ǫ\d(@/ 7uc Oc^HgiLn@]$ V mpCHGUc{Ref̵NW\wXZQeEF A9 @w2cP-:/-gEF4%9nyJM^& %!-niTEDnQ"  ' W]K/c(,~Rn^N-+TNSsXaӘ ͼɿ̃6o~Y+E.&Ab)[DOiWq9\%/"ڭ!J|mګA&۞~ΖGbe|MFlpw"A4=O?Ұ T9* 0\(%"y"< lm:hy%=cv*zb _O)݁6<=@n}JA1fX+*Q[_q \TL 1E+BCGF+=tLI,'x񕆎 !Oy<]UDOZbBwGHwv넱\˅lܭiURE<97NMop::ŀ@D<Db|6ĩUK)dQAxߥF\g>b3-(#AQޣ(rw8fAhNٿUH#3۱AiHZE *v oX^tLrc@*ӨD&qzK@;Htm cPlxs6o*^0 e 6nuܲS:bBpg_(io׭ˏW 9*yEjH"!QoCÁZHzs(}o̖un'6ɵ8mAn#^~ZJr:-&ekN\rT3 e 3sV%mڦnJFpqW]"¡ 欪LDF4F_Y"0u}la"\зQo2w!ޒM;gaGӿnc̵z~VgX <}laSKJvoKf)+֘5nZIAx5Ļ DλʔمkHtF[rs uBޥ X>R|Ĕ涽>3:UbFw0PVlAn1*Xj٪yv3ի1$$"P34ɼֆK^[K"p:LEq&Km&!2zJOL,٪W$/Ff4VqЈc2 @6p|F>B[ J;D($"vS&Vlen[YZCp 9:wĈחQ3y/O;q|3&ЩF֔t*hi˿.oHHyM:hnR!>'@mjnz&&`6TS~b*6jʽHP,?LeL'iNŵ6 LPD,E7ypM qd xyR FbQ`i2^+g}e,iKn^]+)Dz޳֡ҵ 1up5U,Ze@T* (Ƣus m┧\Ma!cDFGsfjqJ%PR2Z̃9*<' ]ҀeH$f$"}{AȼuzVd!Aji}oȚCZhoe7J EC``.n5^",<Նisd.gb /gxRYOBi&ryt wM͡ v#6~]q+Q:ш K9?l"J6'bfT?$'KZfAL_Z1U4r=UChOUMLoI!q@ߥ,Λ[s790p# ,(t!w>id[W>_X@.өkZ8y8bVM\|Ż%ܟ*@c_Vpq#ct˃C2e~If }Hvۂ{^uyA*Mxe:xZmpˮ f|P!$+_< arnkD_m"hmbȣ!'G Ո%z1>T|h-T3g5U\9MoIߌvN|^hX R-BW#*>d0D9Si?oK]R I~.U'ya-7{x.ɜ %_*nzGXJF-Қ%G;s& z8d8ɭ&c 9c^M!Ter%j w=C)X_}'Z;Ӂڵ/ݥ=qiݛy"90M] \f'(BO㧏$*𸙴;1ڢ1[p"3ޢ=z1qmgV(9\j=O]"Ro huufu2ZP+(dup{ 5|2Rozۻ}J.]q8z :9McDg(64j^.n>$@2]ܪњ VFWLÁv~J" HcO r2Z}KFߝgJO~uH<ĢLhUٱ5]*̍T|@tޣMe"W,pFo3^@X1mUƖ(5YjSe誾X3 ,"7澁<%u^UrWBmN&cL[/Bޚ1I% . ф4rrf ȪYQ:X;T Utx :D&ƯvqdDLrOBS#PF,߻lMErԵD=<3U>"_)+Z8)`Zfe)^Ii+_Qr&@T#8ǥ)߈5W+2vcݱ@#FIK5p(}뛫ރuQɰ0ʙb4@l=n0Z_9:<6u-Ihx/n1Ak8@D cf OeߴdVD0%9bY)|Ȼ!mÙbWMyXNXFbD<s=z޻R+3u=b+3ӡ~W'㌰躰m/69%7s:Nb5l!>֧| " (ۘ5*++䢎vq;KxO\ؠG dԖuiLġ_V4. w SEtF 2DHt[;z铳>[/ؒܝ "::E;-GwdRER4tsX0o'>Et7ޥQWJ\UӅmy$"CHEϬ\='%=]0Fo;AMtfW]8nm8m0.<%ejM}VkLtΫA/]}+;h}6Dx~i%D" Pd@qTu*t%Y6^l:5VgbVQ=̪HAy=ѩ\U-ߞL#A /O)Npb&L>7MO*{'^Ͷ_Csͦ38dB#n(Pr}X-2@pxrP>4=\/ο L3tļW_@,CnIo>,7X$KmM4̬XTޮn|Y2\FVaqK],tʪyaϞӴ{0o zwkMqK/{SoxIP>D<=y ȇK3KzWM)f N5#QMK!dm+S͈@Qc:)|0C~e{N2^f˯m>̷ukf NFMcѝ)Ѵ!7B:;h_:VFz*fΩ tW-j٭l`%-|bD7,&d{8)Qjy`h|NH0j LTltDgjrW)dnZҊvG]pc`(S2EHQK1S-™GD Y(Sל/ySۄmϵ{76ޕBFӭYu QA^4AES|]b8)CRr%5pe-Ld=RZhmEOnMlQ"ޒ$)3S>\MYwx_g<:v @Ї+'Іr`m_:_ (}ABun}hONPHR }) h&9 ;x GoUoڔ>| s始/3ݟ1 1oxA>%\obB!~:vޖZbI@l=URA?7܈ڦDQIHW::<$;:Lm ,3.BĤd B6Uu xV:?J%^gZڠ "R/RźYI;фK¤k- U1_|##B]Sʴӟr ʦLr"DBS>1L5RYLQpҽLrjJ/ "}g=MIГD$nIFt%KXk=>̄T-ڀAܼF32Mk?ȦH9|HZ.dGؽ0']u&MmkMiJӘ;&SOv]8.:P.fYKN!lVOȀ.2P厊""Z^2G] FGUPXfE Fk֕ľScC^ъuጜْ_I$hY#hm ,M~\KbO/Fs.Xw ǓZt~$CMͮZ{#{1 +F~0.s5Ct%! tj[ 4Ď6)fGҩ*9@gVB" P۩ٳwYcZ*B:N'H} (6X3T"k&wKZX1.9/z|@OhXԑpGZJ8F Rփt 5S֧X» NQd\ ߎ!qwe? Vj)WO"@c2猊ZOen.#EeN.|r21|R x io DwXC.7OI^\Sv񑨳3*3mJ&[ɒ|mFZ?¦#NӾpE D%[e$6 ѴRkAfA:4I(받 v-ux Z .$x-8p~[‰;.B t?fjs%Uvr_ջZbt%A>|_LUWZNL?/@T[-G t3uV}ٻP,! |D=-:?7DroJ /yh!]\?^O"#XG~-4{ٔd{ [qn5YhL*%!SH#ھK-dYگ ? OY}Ƃi)ׯ_J +Of@z-0sW0Uj󵊷: xkH'3)jO^[6yҦҿ 'S%R:]m O(\<Iħ.>54t>i<.(qzon LѮf;x@M=R_`8u6MQ !mf6ra_)yPfeW7k$DZ +j^ij(vlRueT.LE6>lے W7(DQRDϿX1]Wv$,i % #ēCHۚb(qX8sl% /,H[' ^چ)p@~ !WjnʖћY,}MM&׾W֩ғI ]F]^40f?oɨs=1 rRc"һ$EPqx, XE:k^E`!C`yPm -we Kx03Xx0ÑVƘYd:BSAnѬ{f:g3E<2>}Fʫ}Y\q#hC}ԍw[e`D.4T&7CD&OYw}>F~Fd,l N-J3 'lfV_jSo. BFL~w $Go)K T@U~z" ?hyͱ;8q`KW-N67 VX'.*ȥ$"@0!rqu|b$D>ณOZ/9А);nێheUlEljx~p@ְV:2&:P^4>e6ʉ&R>pfNaO\{G~!<5 :-.ڥGըm<ܖӺP |ђYV</y*ڎߎ{Xn tDQ#ィE"M{N7>W%}6o >8 tH$+D6EF'*F[>U|0 |:j%t:ho&uOxO \* t_[qk5BtٚDCˉ>{iB~E<Ilb5h]X!!B2go=;֠kldy4Y~;y[a.}}p xDZBs-v}(絿r*H3*M2DN6zg3ٴFg|QSBnWֿ~A3V& ]6us:Xqu<#le="5VY =0 PrFlLTP_ix8 ]"溟,g PhÉ#xhW*FTK8Qxa>k *7 v3:Txhl O/j!-=QE ^H? XcIDl_oj 8MHںs?oj: r<4M}SU~3,u6@=mXm%fRȬlz@mI-;/f=M)i1pKe$澩_P"@7v;oW@+R?N7.tfGGKEԌy h I6c uKgE׆m@ q --(_,2[ˮ^pS/IಣCMӲQy7+ؘpX6{%*Ȝ*ip$φreZ3ը}`|SR/"E:~ etGc=,kX-F#p8u2ކ."(>Ӆo^:%7=#LvW0tFLDK=ݖP?4MY0;Ai'ЪԜ97l:BDaDOGNWYkth F;MB#u\=;aL5mMfwk{vmcı}_â11Ը2T޹ȏv){CsO{7܄`B"RϿ9ʘuϧ&6+gFgHS,%u(;Pcai 7mP^s #<'f#sw{'R̀YZF: ջw~; OxVqxwZÐW >]*k23g"lw4;EF&yp` %pb>#Zz(l[$ `sԘT '654`Q@h%K*?Ư8#J S)j=Yyh=kŻZI)S%eIrNNQ?ŗcQvP c'D3F<9)\k,k(#$:Cdvu1|s^^Ƚ܌b$j+7cEI938ʔx21c>g}Df00&Y2H1kξ닄JKz5G4Y|l1(b`nd!sw#%J fFקz~"ݡZB>H)F1C07СYPh&4p5pW( 7=xEcVNe'(Έ*]Jwqtem/4b^ 1E2(WԹ 'v̖ܩ5OZ Kk{OS/]]м!dwWd].{UH']j#Px݃oD@n;$ ^X,D>WJIZPqpۿ/B]|/(5Je_MvAD&ڤ +S'ŷjTtNWdJ MN뎏lJH!\^249E1bU&FHtېļ..fhz|'uc+"#.s[f45&<{LjLxذat@i]F+|U}NK33Ot\ iAȕI|aR$MWׁ݉JZ .Ldy #51:blu$pm&u n}Lb/@"ĕ:] ,^[[.⼞#gc!Mbnѕ3Zi$!?U׭=[!j]=or#dYDF3Cf||(v߼"Sy z5Bmޚь'b3E͠?Hk7!Je:uz>] e 0&h-y@ ^˧\xK\bx.՛tŹݖ ZZ%<9B%^&!'GO`F<'.8ߴf^L%9ˑzYL1Ta>x~x:؈ 'wC|vGmݑyۡ{W«N{__t&bZoE<~bEJPo~gQAa~h]wLlG#tahݒR V9)=YTz 90QܩIzuo^GxwtɝqtnZtF|µV^@CrCdL rQ _{o;]/փvMhzϘHF7F!yԆc ÷:3uCg= RN \r"6C73J^i8!pW<>~$v)V2(׳ |{>VѰ -髿x1xkwI%Ņ .\ N{Gk)=W{'eL+5ӶwAeK!';c0OzG5_?_utU|+' -0 E%mϕz{lx47qJH@J 8*k M 蜃mD.gٯr{Z49zb-zxW]F!ǞޙI .39+GF,1綬Zy<FZ&Dg&Rq˅]6Zj%4ׯ ;. !D Lhٴ>t|, B8@%l3x^cXlD+5w|My'_|df-3 D wnn{h0*(4)wT w"4jZ)4nMO[M"?³׊_^ZzNYO4^%O)E$D={z|QIJĠ h9c4OSGp$Z*cGDz$F'gV1@DRy'p *l8ʻ=/r!FeR/t֨}غRhT?Xɣ} nv| ۯZ|hD*))'đ(PHhR7J2C[:F9#ן~(ה)RkLyQb^Y>fi4(jxxju6UMD5` 剑+^}J*КoqqGoMZ+ƒp-kĽ@;B$;;%hvldT'v94"sG_cy8%F\IN7Z@.VI^ayD\hKBςi¬5x;+Tgp󇟋˱ p5s=Ni{?;@4X !jaRY}fYE$ve)L\[ZVx><M5e3}YW?M=pEoX)+ՐS K)] x Ԛ-ڔ5]Y1s&Jll]!1 {9?hs`Eu`r9""℘Z#ٖ\Â5oөQWDg_0|~&=Gϐx>6)RYO(]1 M3;afGGP oTmDo&js]X1 aDٛuz"7Ӄ>SEZ[5BZ?I=ﭩa>ij%FR!=k&kfF"jU-<& (whR(jrg! yBMU)2d7 SNz9iT+OPk4!λ~ׄ;s-%\/)u1f/xtyK't*sCGof.Ixު`w ^D[RmyupQP^[ST_އwho4?7HL$E3E"PExTEK" Z'PQ86eIAI1 ]!5m8)X4hV xE]p<F"#TÈtl|Jzl6Vreq P45w]rdGtSFF.u.oI oeR5h̄y +2ـFBwl=r*SsijvF,9:$ rf"m$2zy=ܕ PHt;C6U6l(0B(;[h|z{3ϕ ~b^f iba.R AR1ˎPйi*5RΎQeCM!s1n/z#H|y}}usGdff q2\BcޅPъD'b/RaV4)[gǰ٤v"t:' syjkv&s>h{Vm9iQsM|~OR[<uv2wˈ)9q1m5[se!U~'ӑNJ1jH >yXF '7j6:M] 92s-MIZWt:%lW/}ۘy|VNnDb<3N!DrkS@JdLؒBEpVQ:rՎ9[̊xmtJBT8C-5W.hK>:0G6k5yBȧ !ܟ,AJV#ʼnvؒoM y`ZESw&vLuڥ:ٮx=ׅt2'EֆP4~&t::%&ʵ]T$9̜BV7M%޶`6VF4/~3g{gV]1Mp:7IڂDq[QBO|ڭ۱mAhaJ ^[1+~r@逢 a^aBAX֒]=]9:;ܛ"ToHkǛ4@E /+;KM:&lHYO1/c7Bm.'2`\,O;ؚgz)(f:w=^:m!CBoNd]FϺx)yP^"ADyݫdH՜VZHa16Tlхl+ӶItaaۯ^I7zhR*wd/׵$BFzZl?;C: ?nɌQACjI"ڐתV-􎩌6Rֺtj2KOSXSEK%4?3\AN7˳|#E0I?o5|d=/O܈Ӟt3Q꿅v/7I1w1"M7^)H:!$]y$ί]pw oGi B6\l''С=ub dPA${]nGG̺4O_<ZT.m`2Hoϴz0R֠nzXq O/ U["u>2$:~3u{@RL!a cZ_GwN8H0LX?3+,Qj)d@|N09-]gzNkCv|=5Z5O$#i{>yRJ}v*K$Ɲ&mHI:B#xC|&h3 `,`Pհ`Gxt,\ x(Mx`<;4Ә( I/!H٫aHA]UjrR )3'զ㶣> 8I](uk;S85!v3&hlbsr=Ffi/XL5iS$MPqN+!59@&3<\K%5&RΌlvax1cS+::ݧȰtKZ@bNzkك qykl;%vw#cA~ ^B̲!r-Vr<(<.䚴L̿?o>]VA//7՘]eʔ:W;%Ɋl6Ȼnm\}k ـܧ&Kⁿ"D]I ScfxF!-bd6ҘyBcv/͝a^Ut@ Td8i%&luN;̘S/Gp"{<<Iu'@SN9)$NG1V|HN*C, ҇Q2a6煮 3[I> i='!{CWCS^K;D1En !]0ޠQߪR5Ou:?ȊaMjt|Zl~{fV}<:("GP(zzCN[.͎q_y;lU\9;]Ͻ2OrVGkT. &ACQxi%TlÖN8tm/+YjĽD̟;C{}E笭Ҏ쎥t0bH:r۲F6l3t,= M!ʰ毛g8Ф`y w2";wȫ]*Zpc[}J|T5&a$Jn;]޵-$#TRF bY꽷Kdlsr -x,J\W1gacõHHJa˖JsΪ*‹靍ۗFbΪ\!jE{8@`5]':WXt;8t=׀hۏ֒ykQQ\,s+6RGqd;aZ?K ! oܰAv[9wb OUd꿶)7ڵkƥ"=\ubB1G^eG(UxW»K%/WHVJtp=Yza Ygz<X']Y 3oVrU(\Sߡ`uvzZ BWBC(uh Ky f !NtHqYUn dI̸\lIN>s=/\~6=4ϪX30yU2܁ǺMN$02|Si;y2@l}mt9egʷffs)zEx(Pild''(M!*W"ДkwCE.zc28Hm֠OBu-G|T7Ŭ'1 {WX74h8vV'P씫&">r7<LLo $= ,RI28*/-K/A¢ Q`?[4b]#SmHɹr1Q<|(2"\饬:t+ ;,;vEĢ/ [bn]E;n!jY_"-z](1^9K ߁^Z/z=䋲ޔF ~$G+I' j}rtP[+S`)ja@$~0:Ũ˺y }l?,3?`5>Id+tnAPLs\x)[V4:^G#LPcwgSm"%!B_rLb/9Ṗ6+&Iu\Ŭ[b}u^Xg^Rh j}6㩒H^_HHx#fc {p&M";@NVuKyY+bUn%NX_71>ĉgp=f/ܻyRį/1joh3zf#T=sɴIj.l?z[Z4LUűE8 5*:M^t)СܤpʹvkHX vf0{[ޚQ`R}XJ׭f/-%#>|J~1 +`&;YeߡE畊y1+;~ټNcƺeC߫w<N_O~%tk 7(# U;#5Eh>E;*럂keRwb p7sbsq@ٚG{mV|a5 -"bKju0;hF_w]͋k|ߋXJ&z1,-ˈeY)I?N5̣׉h1I=GGAV6οT[PDxq G˗c׮D{/"%F}t.7 c.?SCc8gCD}8SsU ]F`tF\oXxSaTz8^y;H^3-3Yj !CגDR#}k~Gzm5kgylF@t#WOn y ެ8y}ܬxy Sԥ.Ӓݷa:6NrF˫A~N [Tl;51JK}gTQgS nXrh2Ԋ޽a5\nxy+m`9X Aj|5GiZC qvCɣ\Ѐi2"#J(yՏɯiaZmM!TaGDtȋ޸]QћX, |B.cݭvv! FC\JoCXғQLSf9:8Dt{" 7h%_ $w5v9[޹i -;`9< "uwywRBSKl5VQ^kfU;ǩ'sCc-l "r(d2v!ykL5HdX1B,A6zAxp 7/pmO/^/bFB0Dp@-Z~=DdRUnwG1tؽUk /JǠRwxF[:yC?%c`G%ܝKxWe+KL(@rkNA7G%G|cpaXC]r5-1䧩car\Gѥ*bϝ)pnW6NBݾj\䃔揓AOޞ*B=AVU2 sʕoh:4ŪDY[,~=|ېcKUwWk6 œwBŴ1RW &^28fJ(ء"\;7Zr &g܃^{SB{CpsU ڕPB{jIF%73 ('3Uzuy5S˥[kƏ<)vҟJ<ARM$1Z蓙s%U`0Ղ|>j m^z7۶&8^"@"ӺRD6u >{ɲSrѣk zsȳyZ6)A< C$>KKư NAi ?lC>;]p{jb31Rb\ E$u7dE0: Wѩt2U f|e&?J46VZt!'ajfi/fe]θaNf1B|)߇ :IMF#E[WO7.nQ~6k4kGeCĈvܯU}&kǏ0䜝nta؆֦we?Zk`T,L2%@V`B:W|էlոyQ/A:nHL݆&<3^ ӨgrNNt(M([ ӿ"{՝G _KE$ f3D_hW\,U̇{ޝtKNS t)t, Ky^ 령8g4bLjoca9y}7$杶<ZX8QS!"Ggs.b)2tV;"RU4}1Yo[۪˝AŢڴfG<[Hbv]cDN6 ` >8AB<f)_<;9&S6v3吴% ެ=Egxob LV.yTͭR j|]ϣ{CJʹaBMT ӆ|^0m}ի1t>s~LtuLGW/P .A/ g̲L̢QdG\2dUH#= (di,yAա17%[cù R,2 [Ԫ,Bqk@V*ݢf ͌ѓV}#X\zi.Օb]4w̿=T=_\!=^{rp &)]H:IS t5*ZJ4# {Q1 [L@u ;-?#c:OJgZH7A.q\J ǨWZrڐmBQ*brK3:X7lIgm[DRaX 6+5XBT熭 -x'PgD3j3' XC@DKl,^yI~8>׀ k+]dAfi YIE_1 Pc+psR3d! a|ɨNZl8 Ѫb{;8=TxڎyЉ3]U΄еr}'_H9ua';ũvu]A&\:GO Cvi<l,C]J/$D\̝oҾPb9n)/9l[uDt,}@2 jvTeg߰ <;mNlO<%L'F+-El{ax9H OQ!F.U ~' /"RX|l[֚'B"Ud%rFRkWt1% uٮBw8D%8t0e5}ԭfWi"|ɧ-eѻS޳-,yE?;N}h;TȂ"UT,Rͥ l X/? al\ qvI؏\X*iS MpM)dp2uDv6S+ܷU/ ۀ`N"oD:%Vlz!׆B"F hj`]ek`̴ ?fO0y]ۈ\ ac $Q S'vI [򋅎dYX#9*Jg RMʔRS3};`MyMP>QwloMGDnΏ_o4<=DlO5vVJ%v˔%lhW`-s0ցy~al?MYnʔ;~.ԇ8$M+"uvr۵uK?ҷZ"`Q2fEdk)g/[)$Vįɦ#2G;ܟ?^ vV8n (tٔts=Ѯx)O~.7nd(0 Eg#4pDS 2%~{YJV[,7'^*;a WBB˩ 3AWe,xW}TFZKfx_Mc+ݡ-=hA(zwݡFs$ok~6 r}VBeWL $m-kRׯtQtORueīw]$,fs%;Dt&ce`g\\k"$sbzzhwM77ʪ۽&̥x)0Q9ox"gBNT5/)GTH;nlk(mи@&;:@=jb5E+`pB>ގ+7KEy5.y"ؑgGRM${鰐)mSBvy|dXntHD0JNW=abHi@39G%eTUgfKBB=߾,|53i ԥ(rb'kgphܣdW/Rj`$$I2b`(ו JBB<U W.IY.gskP$vK'(IcLN=~J_| ;5|~PMn6\f7LxSR # qxGDe'PKۻXJkb@ޔ]k#oT/<ާ'N!̈́HJ&[td+\DfKO"'I"0]rfW34˨w _7c^ahJ#u3I7GU"$/Xӛy$#!9[4P+ݻR&]:&w,=Gl G*P nǣDu 9OJ`!ɼ )?UV7BEn6)Nz@$"fg,DO+R Ҧ,MQd :ɻ>'67U.[΀H=UVk 3CD?Y|fX`iOҍ,3;dȾv[2eR˗xfC")A*LjU.``d8d,U t`a؞rε-Z()zVlOxMUs dZk^LpUk *U?^.ۋJ{N$2e >mr?Dӻ\G YK,6((J]iLⳕ)|޻7܍Q w|0hab\&j]M/0UɀoRXuhq֟"nYԱw&8ARw_s'v^ЄyC/,=9!gr58+yuEH` d[!4׈ۭjYvD[c ]ەy9*Y/M, p #).?4̐7kKC:Bkf@O1 6 ٕLMf?L gxs|9xœ$FghzVi rbluz/|X<,ve9[L_k#xNfk8@?h7K[2t$)-cF 8+)xnnkx9cy{nɲ\ϥSs{4Ȟa/ϫIKVaMKb]&= [|8G9]\LK ̈́=y~"dv F;C2;V]7gy < "(!DیuSm</zgqpnvB*Pl¾ 9m&.oԫ^8JY =@nudi CuAD7ۦMI4җ xɀd4L{M!0`dǭzulyޛ7#Ho +b!h!v5-gG3Uvtʷj\]y:DA1.U>O2@U<$Yރ-*ĮJ>7 pVێZkN!Gp姊}JF 6[T2>*Yz4.8>Y] y_Z2]GEHPq?ruhYsV E!f/F3WA4&!ϖM p8jޑYnzAGVbR庇"o,}>héTE<Q$\xW)`B!@'~us""5d.jf&;%H{e/l/cKotXG}~b܌"<bLC$FF@Gud}$(@^"\(vY/*PBz("ŲI}k W7G[bFwPnANt! UX,iܤ>{e uMu@/Zaש@ߍ"2fuaJm AC؁P/`.፽rJӘ"=¡{{y٪u4Ls:d:^GG,[էxip6c2٘@zߪrid '>_,$%5 \ f8?wIq rf&0̄t{;2hDEE>+`#DKCv)iytsyy |?FVݧYϘdy H"9H ArC纞 w\-nwn Հ7hVcU^ r-+ĭ`[3]Qs+St:N38'LJ9gNpzJ3gͽ0L^C^Ҙf9v?83Gvѩ3UYa]wr  20-&9-L \4qc pR 5a[|-XH2⹨HƌFdAҸ]| +Lu7&Ku9ٴϸa}5.ХP`B\ %#D[TRKE}Wޭf'@3n5Kʟg1”d'!]Nǜ%O6$16]HUѰ\8n~f IL@;sfxLXھÉ n>/T!l;Qс7Ћ?`A[}!)dVjD`%4#Ф?lWNo{?VfY.E> rxzW/u֫%5Ǎo_x:훏:hr1ڰ=ZJ4xM_H+h"ք՛+@%c,4ąZ wo'~N\``oFL]Gbe{f4yzrf 8aث@q[3n@`mqlWdI+[λiS\I26qE?ɗW[+Y$4 hf'En|q+w.*!eL?9ƟvdaZFe?R { >Q"wq%(fwcN(xw@Ö:ʓ2zy?#}$K?zh6g\d0봱9cG |u$}J1'ݟWNM+!%q*3$BS5h'L;qfe')πbH_\{e<uf 'vQ5&;sRn,[g^[ [F;R]t0{`c@A|5,#JYNLv볇mjk筹 }eǨ5r\+8<9N՝ҩaqG0S4*+#G:M33{ª}# ,/r^![aw^;5gm#0WxwU ,k)ǾK)"ENTHkꮲ9DƸ WG *T4#$*<:~FLģGLOLNZwl,8jNuBߕ-HE> ݒS`DthHݔ}#xM7>N Xng=w)c2Y0&˜?ZGL97!͈vNsp310$ςŐIݩ-.b{C&$7,i"B)}8뒎b"k( 8w GDJ'5/Wm_ /)ʌdr~%9;[k!gX^T1Q4fإYQ9!M|x`=dv-l&Sy_)etKOG1/[s* }fU%P>3(RwZS5Dt8ױ}NNѐCLqexvuoFL+b'uNH*n:@BIPiz%Y&:֙Ozk[`13|;Čv5x G>MnhlNbDFsj2aoX22So҇u:b94Ϣ0QnCpoMH2~JX,2 3ޭvz7YT U ;o87&pX'sBg0 4S|(^@mb͏M< f2'7͙!|mL>s Ή$Sp&3٤{LJZ ]?BL(UUbh1CWeo,l]iScV^"iXDN~+!(ecV4!*65rf!CPT>Oد#&}VPl*K/fj]˶`[Ϫv?8 ֫Vh. R[fNR^;&J )G}Q^K膻PwƐLM ˊJk;)r̀0ʲuTnAjv6g*kHv7Mt?;Ǡ͘?U ټeI?°C^ǛB)lUܝOfTE(bf5szt)ع ;:ʼ5|*N+<9D{Zw@dQ(Jn yՖ0(ܝCŢ?F0XnNUe2= 10%({8dW[U-]/Qx6!7N 0PoP]72.?UmURUTȋj4!*AP%^czݵKS;QR6ReLfE=j;.'C_^+\D+-fz*Fo{fWFKu3/1` \Rc3/'H\)Ҳ5ᝊv GV) xfcEh2Tzȹ* V2iWj~sȯ.]g!dp bWՠg}0@rpt~ȸ {+cšTHV0[~0,Q2IS&9<#WJ\WlTMd5m#wdSK*9AtMws4GZ9kT&N!̌^*LJy+w?щ 6J[Vh[6ݜ\c?F1<_8_`omp T(ȕ]rr /Nëul/wtA$"?TQcXL"y%O*Z9ُy9Qy?-X(D1욶AK?&#'"(So{?IPI`hUhC=:n `s>ej[/iodDwB$O(ץL^)`XRXɰS;Y^\=]m7KƵRA[|2λ!0Ŝ]Ny;i6@8 .5yk:6Mrf42q%LUwiTx(,mN-_7A9~QK})ۥ1*0xLcsVxB9wfG͢ZN" <?_uGsXr u` 땆cv 佗c m4 8mZPC[Mߙ])^I!LWqCjTNՋKjXF{$8O H,qcU"O,+ֆ RKo196!‘ErYuq6 j}|Zr&; Q) ZXUMJEТ:Aswact9Ý 4XYZՆ3e8W +z/Xr6B`dueъ?ҞP3s  &wׯQ닼*eWF'c*8CRX94zleV \r pcˎH y)bȔbtrzhަ9"c[0\Hr`iX 7!g0H(0x;x,߆Fvo$b`!ys -.ܓtd 18`,^TeJvd D!,[5D&D ZUfɓe OqxnDYUEXC&摥CVUԤ}LǨ˼/yM!c HdQ`z_,L ̣eRq)@ 1vřz MÛrё');B!sE"q=Rl۩u璇X⊝ΧyDWڛ ,Mu$"166|3ι\cXf B̈́" SpeSg 1EϨTNh݇r [)7,$4*=p@oOc}|l%!VnIN`_LKuTL93n:2ǀEMRnq5O+Zn(,WeR#TOhBL7 SBN}C~;uqfZ@p5lcvz-2%p=]0"8Q~>3 e;#+E"u>/c qۍ TBރ#@?J%5XK b$Mj8p&t#aր,Fb{U섊= <-@I}R; 2D7eD6{x4ƀ6WJ<*E)%tm eP܊[dԿjQPIOώ5ֹ.]I0Xwhu&$~?t2$eNΨb"VggTR/$ad].x6Nԓfg/':=]t(ob fRM9‚ks'^;?4kT" i6mzB V5 ڏXﮞoR_R}"ft]d%eI]&d!,*P˓PJ7qz&}X19*#m6ygj.C@']**v3ZJ BZ|hS|b˳ Dd \w-r- |P:tZ+ !ZI 5&zvأ(Bo+g,=&TCڲ;GʽR~ ii) $}| ou8M >e;AÞ bL$ٴMK-Vr/Zx&Ƞ-{L|ZS!ĝjDXBlB[2j(.k!S2Vt(֖D-$뗶LN!As#xzFװ zS/֭ND!艕ܩҙodf;XТ D\F#^V#V2k8`a)O5m]sFDWd{QI򰞷%H~lU_]j'uN-mgAnTH)?-;H5:V zkPN2;sQ+yTQ:֘f@r=nv!5%0,i{KRb+ӁPn/dD@ H'kD8jyhήQ  #eiE`f~/ZiFiJ]u͛Vswi%H: W5VB C-ڱ !{nZ+ODW!hyV51_j*n%lWIâ'?JS =—9WCIC!p?98nou!Eo(^p#oRKnsJ$ b@_8ޤnB$<}]vn\/%5 Pتl`ɾ⍁aorS ^C kPE >%WN-TS|չƀ+p𫗱AdȤdԼ۲4Se:8zHy+ZA^Lt 〬B=RnP;':\”ADV|3\^1\2_B}_ C#d;8@ONPx(̮P E V5٤DnT;Ə,vy{JȬDa O,)o0+,mL (z*S4ܞ2t BCc̔ sZMF}D ly11 R"̵9h<3&Xr؁ s%^؊Yhn0/:U h ,Weu^D߽]TbhIBW%uC\U47r;:B-Y۶B?3;Lj-(yUFޖN;~(GT4CZzcO/K' |ݖ5s*& G7Y_,iy|h!a3%1 z&6W3X ^GtpZyR%-KYЧ϶kb>j1)Q7Oju@5‡A꼚H)#WZ9OǨg/V~G!OdO6(j*~:"?c@q  JV̸suji-##ZM)w_b{YJ T= &< i|L7j@t?u^ ŖG0@mզ5B>z`SIW5"U7Ej O8UBNɛ2nFjv:MA>&=0_}zO#r,Uy;ġ^y:~pK EcTtZe;2B3U Pj(^e9o ]XͬmYȏk}z-*9;Cc|Zx*;@Q D\(dD8c[C =yO˪ QQW]r|068W9C#WQ }wJ`#h;Ůl*2{7(5R/ɘ c@z"n$-`F;֮*X7'D!tcHlܱ Zyk ϰ&}'_~YYF۲o'f>G㽶_M1^T?$Aji}y-dO('sͬµ܊S^nؐΝejBDLU5J>v.om\^v=?&ўC+sf&׀Pr@J N`5:ZH]|,ȼ9fm{~2m$p< /?*8AC7b ݼP$$g&d5l7L7N{]D۾k1d.9E3nʹ;0H&#Z5= ]?_\ɾa'o"[TjM9`y;+mp_t6*97Nx%ͣH%ˍN"/rcSȅiO#sEOj"MlcbITȿa1̋ekKT!5.o7.=UHǹOIUxh~mW^< дboϽmٜj f?g  anUZ@!ཚ*WiEB .g`2Tq m516/;PfջV|yx-qI-8@jjilI -CCP0QV~A"A͢h')1W.ZYhy9"А5 YueB~2=5aXq0jGp,Z.dȟ9БJamkiW/! _E1lܫwĕ9=H)}?,f@M1( HgI4t'<*+Mty+j k }yYI_ A@=QFѮIw*N?Є%Ayъ.6LPN䭺4Z'UBa*>ir m 'i2*z*UhjU/olC%{eiz ByoI  p|l.uet&omx(./BlS:GI* tR'K&GGgYp/Sa4,cn36it]XdgxljPI-&wc`&M*2/$iڙΌ_82.O#2`mk8 z3W2s%R=Y_ҍ9SCyߑ| .2ǣl>}Lq*"8m{?ů&=V{Apw!c!a@h=dq;ABɓ",|dDFY YOlΝd6\ZuqsAO~ j YP1|YWcGjSx,*7^7:*0gµ{M|`im,"5<68`BM'B8To%]{ñ^Ltm\aTEYPuVK6ku_Xomf3&P&I7Ҳ0`Z32!2QbG\P3 3A|0 \ڜ\/z/n28˺H7Xƥz9' ~O*#po\rv4q.'.քU|Ei?dѻpXhTffTϹ >٪q&d)ߤ(g)|pwj߂#}3"==@Zn2#PfXXH-\,4Z q#)Sϴ9dJjNS@%AЭGKb!ONྦྷq5?%m==ef#95 <-v֐HI6H9 1)5kd]ܰ͂jJ y<vڔmqf- IcBJ #PPjɔmv=ޅO2C,;2ryG{-xюZ~D9B\€LƚmF6KCtdp-GրhV-PQ$G ;+e:5RRQb//_1:׫i{E+t Q5Šk C2ɧb&j)Z" px MuPfC ;tƈ09#rd^xs"LX?xI?wE6R;/>u}XmΓ3XON̲B;nF"9ON:b]ܝ!DrUYLGn߆]|a/1ho'T],( 34xHؼwm6zE&c|hDz'>7 2PGDW;"cN'(B{OQqVZo" ^*(FlraC!m^#Jj r/¶'{p zݦ39Ip!\)t}2|r\oA176IQ=ҽ*ȓ)fvY[ֲ0q >E,-SgtixԲخL& ]NhMa`w}A{DEa80ڳI/ kVx M'x':6"aAKZ<-P%H/mFd'إ8Z,[TϧiexS Os%$VՈGĺ} N32gc1/6dv@2&wTn{;ɴMRczn*|M.8ee٩58fBO[PL3dSvr)BYo4SSt@C&#Tjfjۊ0!f%ޏ[hr#7@]L4: !V>CSOcDC2V 0oD|dF)|\!SXADN:V8 ϙO> ټH'<|4:<`hȉc<3fCM`b7AE!͞JdQCL"Ȩpѥh/'i!χ˙1yuI]D/rt)i)QZެ۞' P˜Id|Z~CN}ƶm\Qq0?gv 2:uѻ\4,Dz{^dtTk*R2T2DChJ*{2]``؝Et~&;.a T_R-x8S]x=&PS̠<`]V*qћx}Tg J51Q'Ԗ|92"cΡDzoxk#4î*PŃOr^{ΕkTݤ)ҍɢ7vŃ *%en;NPo:2u zl  Dg*G1]OQCd@s+Y:Ra^BGq RPlL!>=@Y ʩYC\%fMDֽ.Tl1vz~KrZqOH0)"&n]('[8A)*$*m2oGEzE#vEmLrm885e n~?Gq`9OJr6L`/(ي"74EHǨM[iBSLx"TŸ^plӽڜ:+҈FG|+Zo,)FGb#h_6#tbCeṖnysHπ'ԇ[u]4>IA,$Pb[W5mHkٻ~jr;Œo$!*ug2XlVMy V3M>`K^ݫHSv]$j ~2[DL7Mq I5_2oI "լfq`s>xOK䎈o6[MViA1ı45,Ese,+Վ`j]_m &,kH6ILr pR NRܿޱhX\2iK"PWt8^^X'ָH!.Bph="r۪dpcd@}"zj57ݑ$ >:z}} Yq[-+b}ljZ>Hz,U$~6/#6$ː uM;wu5k9{L;'T8gB`38wsP ZP܌?$-ٕ3k9GC֨TAX:pئýƥn@[*e OŏP` PUx6-9X_m&8rCEAL5_R *ңsD4a>Y> \&ULCgLKVE!26~ef4.jQ#B ^'cO kMf @g'J/?L->߹6]ytҦ4f*d³9%(3]ӠS5B}5-^+@O삔ATr.&VV11-I*! JWok@bL'zT:gT*DD/3.{23* faWzu0Yo$TJHM!lO3[ܔIБOÃuG66j/#n8 9FAyXD=ivҩB{Opx-(@ȱ >V6]49>c2VbnX; x;_'&<᪐ߒBv4Y]|&*ǬC&9CUeׂ Y3d@9 SԈ!^F~4KS޷{TG+"ZTNŶG'!Pi>$i wYA;: u302}'9>t, `Cg2d߇/-]h}]e^EsL" {sMkӻӰmeO8:vۀvdYkaObz 9|Ho;2ܷlXKFGD귍Ho 0kHxifpox=$:e=Zzf-E8VGt'm[$%٥2KqzB}ezWu0@ (;5!QZ%gP@B-SKYuB3W˯T=?򇣭UI9?xE>]~dxx0T. :I0Cf_*iA΃oo͞,>$HV*wWI;ު ahrvK~nvd* )a/ gz@ CffYTf#VV O,0!&E~OBAF\hRRͬ |/gFb!\V+ϑYmVbgg(;4q#6; <8xy@x,?*2 |X1HQ-V,-jo3v`œB%M >ُ7IBo* $#F #[7gP+Y<'ya{W&X;MRš- _X±Ru{,[ƾw],@XW?\)W =uü~Nn)~9y\,ܘ[5W40jX,@/EKƊ%B3+|:Hq61b\y$RG -Q~֌HAa aL-i`^Wtt4*39 5f͓4"Z2~Wo T>`f& _%Bre^:D3||KR>|re/8Հ8W.&{;&~덢=&P?Iq2>YCתxyn+"ғD?* <9AP,ABfzjvH'Z.tWB~jFD>Zf׺ԏ:4?-;٧텁`܇\ 7u"3mb4Fəo=we<%CJPٚ촨 T/֟/UYg@ yvphKJ]%A;>*z[-˅S<;@F๘5qF۲ t)b%%ؗZɽfzFֹYB^E{z4JtIyr* 'ʺy7 Sd.~BTX?@'c*h/lV8B?m{IR<>D$Bڠ7Vە{h)<:;ۅre+uy'pIp)1jzLrY@xCA;ri=#B!:Kp̔ #U%vM\~ޖRVny]5C\&ڒSK`޷C#_ˮ32j0w* KCL{3(̛k.O$YF}K @"ûc;wgGKp&/9ڡe vE=$\8͒6=Lw<V+á̸Fb|md}!ueLLhaо>>r-)L,>Z u2 B [7x]_ 6a7w(9&ʣ*z٥_g4vdُ9C7֠^kݫMz\Xp Uy3B ] 3z\jwz &'f]~#WJث-Oa[ņ<*{@tZ])V.?V+5uxPL 8K'}xy[Xde7|v*A(aȺD#6\ .hj"<2tp r>_F;!=I`k"*N /L /OQlp)9haT̋]۾pt)p qSZ]n]XYV l7'1mI !4M[ ed e#dIut߂Q^ r R !Ry!)3`5 m0Fx'F/顕rGDt=5Hvz7,6vvܱ .2 VJ8Q(9ݫhۄN]NKjvfn% 9qtmfuhZ*N"lCZER3YIy7nnL wD{G7ϡ&-. =O Ws'#D7{NMu |{{~o/PjV$g#O+JIYx"<"zLӾlU5-?2+ѵ41liĵP3VH~H~%p%|mRj5$yW7ϓ ʽE'H:USOj!$sNSl&)xB)%*ye4˩q*|K4bռvP邞o ҥ!uE`5T)O. 9yӭ?VV} u/A%":< k]}tABb2<&UQ.QE"UVpy$Ϯq]*k:Pçq+oSxiPֆs᤾' Qpf!ox އO"R e4$#FW]gmn:<8|N=:摩߆kE]]tM.zAGCFjAņ#"+M;͉_tJ`,/{#_e=1%vҺDo^)Fay/EyA ݗdմaUtkŴs]l>Tb Β!SoW0:4?L+nW[h߲*v zYba5?B ٙދ3n%ZTfETBp ËWJfo'SXoe/( =!ױPeƷ,!0ۙt7I\{32YM#o5#7e|H5$z/HGƤFd3Ī{TX (Cp6~2 Fڔ>,e:R ;t^'Cv٩ykH"#$d}R%"vޅKtH~Vyb?TB6R7 2J Ɨ1#л 41a/>َެޕg9!B-ٺ4qZ]̪5Ob1rĵKk{oWsF8_M'}xڰv'|9bjFHiTG;SFJmߔ@EO4'8ڜC@} :&LZ^[o <8K1y}|:WP+Lkn3"℘ϭk0hUR㢲Fl]l!RXh4莓 kH:)dA!bߋh$g'!#[U\ztr:v̋?{QϓYxQBx#Vfc{J5Sn>M I>si>;aɂI z>f87׼ zGg ٬="ԸO5K)tiRTzj!7ɇN(Rb8=j "AƏ r}<2>˞--% м,U2R >^HKaz6;B&SK6X71eE铿Yi;"ݹ挖+PUiϥzcU 1T|a{{AmiD1 P !G'6[^|PsIN@&1_!w5t)Ϳ,F#&{&=Бw*V?x̃o^/\%DBڪ9:wJzH}PyP嗂gA҅JJc%\~ΘWdyYi,BF`L0[ еq*7#&g"$UN uQ98߉b̍xm1[3azj?@W ZGTE% דYz)ݮVȱ2Er6ǽ څ*^KF;˭ ꤎj@Ml?M7IY ?m^ۢ)5< R3l"CZBt1|-m? 7@Bש]t9; uAyfDIG(dء-c11\.*gF9u;$S)6EA3$ga\J{3fh^O #yICJi*{39|ϰn h2m3pG@ XcM }I* x9:!s:Q7\+ҭv`iQt]f>Bmr]y8a#Q!oRh?6쥂'_A%R* scYFK2U0YaRʜ>oE7b(*X\]J`KBǭX%͜b|s-FCJjLx"&8\j@xD#`,)#£Du@D#HQ£Y={@:q0]̗3>0)6Nwr4hѹ,"ym >]|iBkqVO]\v^3NKb,VZL'xc ?3r;z̻>@+g!Zȝ"7 `M|΅fo};:fcU|aဢbyӂz` j)&b2BiUj"!UЪl tMU;4`^2a#P [{ _8Y;3" ; *JH6j08]XyM/~xUU&Jp`;̀H9 ò:F' k~Lx9y jKL||g ZP7tiITS={!CH;Yq fj;ta= ʔq|/}>J #xh=m9w*NMAث>RS-~xNheS4M)ITikf:3.RgB'Z7, rsZ1(=St<"KɘJ"9O _r0wĩRLz ]m!}̈"|vza.](>}6<+~Bc*譚IC+xOPZr1pEG#Ճ?+k] x F:ھ+_OlcuJP^',:6nSo<}m 8J᥃V!ÙpLgȂ霢dcHbҪ  K5UagK~e/U.3SS ct#8ڦ*|;E0`PA1fjk2_p,[5@HaD0A3n;K}?+ҋ΀ӄѻQGjA'Ci{/ċ%dIц{F2Mh\^w!!.pl\(N(Oڀ6M^@Ag7:HWϺ`ITΐyDBB[4-8ntUzhUCw%]:>ׯ] _C=^;h' M*|TBr,9?ȀC~^G H'áIV ɖG#Cgp zT}boÏVU3W!?|gB$$`[7BSՒg] q6/Y#x6#&Wle{wDzR2fX R ^d۹55Ի3!@ޝT.\H)rI( ˵73P)YMѲ}1 {T̬t^oux>aIP;NZ2 >ExeET$#Hhi{P$F-&H:zTK{``yl @t_YQ'zѲEZoœCGF~"+B3Wʈ{7D AZs[R~ &'ۻ۪K3B])Do z<"0v܉Tu+38\5BSAzAvdɂGVe/ԛyQV bOmVD7-ItFQVRl8j;sR gEN]^N!cIc/6'1-˜shi5%cs2/d9*ΨUKj PP5Avj[~HzLzw݅a/\?`ha:OFl uBY5!@LKl=@C^KHi5=IX43&/yHf(ў-{V Hr/F/a9̱g)_Gu#Ho xv&/@Gﮬ0+}&^<@ADWĂB.ԽᑵWsoILK P;[,<~X{VbH,wJ-g4f ,B1KQb,ZWK6zRrWzG o펎#j ߌ6yId'zmWQe7Z,"yS |,̠׏{%LnB׹E=r+U%交^jVi ?]zT zq! ]FU2:s 9Z;!v- O}y5iPv!ra],V*>d(|Dق!Z-h={mR{L^Qx=&Ue|aRF-k2B:F*d!|w֢5⹿Uy"7U`3ДC+Bw#ũW=S_onښ|OTc+ƈ);1@`c#9C}t Ȣk$sjC RܭYҴB)LոG&WfH/3+ DJ"/$5($A-֟|â"7PT>S K4wiî898]R)J$IPXr7w zhcܵYrv@nuQź&ֱIǢܱɊ%àI oIպ\pFsmjg?ڋ7H!2LC.zfy?݈E-"ù3Nw-㺊6s 75#T*.S%~|^ r6&\`Et3zbddEI’GZ`M.oaqR0ㅎ7; &o7N7ap"Wb1V-Cu<|:g! SZ18vB[~8L؝}4N \ v4pQibv|H,#hQB{7G֞]?V21>=m) 'ˊ 'y%5:Y۞D0j@tyvM9 !b機%R[NZ(-is킆yLpElCg߂x.9ݺ\[lôo} N;O,ELLIQ,x\p9k%J(IQ@c#"Ɖ`tW>tVF~GhA~Z;ʼj)(cʃZF0Hl NGQ an>6O8E!T.O]Qdn F"E}fnZNwfgHdp5AH<}F ,#܇ Ÿ =ni&pۥ<["vnlBamg2dyτO9Cٞ^ KT.Xp/%RkS3E'!u[Tj8:#&c-}ʈ^qδYY;-;&k=$|C} AU]`d-d+hCȸ[y ҪJb^ϳ!8UQLU՚iS_A' wUk%|xU Ҭ:/v%d~$֔5a!f习m4'et ߯Z?lEZ |MF鿾91&p_O]ph+4̩9cB!CxC MWI_ng6(wYĐ>5& @4=w:+o?8ѷo{sݻR٧ l1!2I|wIZkj(`Z 5l!Xcg4NC6+9:A[Y8ݻċ[ZR%xRe2?s\`&\Urퟭ'ڛf< ϭv﭂LP[˨Ē#. q_zΐyF;4$bIVУ?M Q rO3c4Y)^L\VE⛙Ҍ Nl[Լ=;<=ylXOs:/p !~g歙t*7қ7YZd:Do`:3C(v g':9F5ދ2fL%~qO pl/"*`_AU@x|<-IpWϛ_k~ɀK 99ؐ驧e+ߥsXM\2+-ؕmq;_@iG8] t$}{9&{1ALjPj 5iv6S'W 3<.susU9{h36shKɱḳ!8TcGf1^RԙV:J~1}&&چ4Z:A) ~ϵ;d#^I7y+bxw:995YB0F:.joN~'E$c@˰b\CNk%%oN8x- ǹt*Ri=m;!}4y[u0A@SpjjP/30[}G~p{#]6 Fz""mopDŽ{K~GV'Ēv5h!` @J)u[' 6'r4=k e$Ux*>VxGmx 'hVݮ< 9ۅb<;rUUWa?W&h-0W*WU/kl`0nE&g{Ansf̗j\)&c\g )kN0]v8ڠ' ͱafW$ ]1"&-5PIh%TdL+#׃8#ʌ(n VCn77[C.* hy!^np(VgƷD5;m3'rMrt@`l򀞬|QwJ| ז B?݋#4! \;JiW̠ Wb7t{@pr\k(RzǗ,86.P>-6MD3;¸\/ ԻEQ0 Aee\ u]6kԂ"gIYR>xU< ΐAd?o.`Fs)o{sޕAn6 .n4{W< ,TB³Q[0lKcLBqovv\5* eEm"^-AIȫEg݀v|KB6 !/r%4~r+H '\!»j 0ПGAFt>UJ;gS?cd7V3rLXJzyG.h/&x?9[Yo` An(;bk\% lQ1`֐Y@f ) kՊR(~D:/[ 0/e (sk8n[݋I0!pg[g3DD54±>A+\{;JHW{^0rn| ,M(VuBH! UjnY$+͝2 tW:aZMFz{}eDrU*F3_,ǧM5vNnq0zwTA}ÌѮƋ$&P@'QNv:ᤰ׊lo 7m?JHC >g;vV``<;6#kT)'5hdgMQ}8LEˮQ]5s#f4=_ sY"oa]0?_BKhzo-Mh6 j|h[ 8BS=`xf^8u/ǰ"`Y0 {L ??XWˆ i۰ǐl;AAށ@*tn` |6<@P%V.DU}29>pj mȠvu'SPǀ;6:,߱^DfA߬ӐcFMqmc5`֍W[wU_fp<\Kf:9;&<p *9eErv ֈ̆;9 *::ztOQa&cpMB ^[^Dt2.y .TN"74c72R>G>=g'e9^G #纗޳YKk̨yT˜43\KqKyfdp\yB˴=ֈt ÖiEϨĎP۳e:]U> #UE$z.]۔ '4izdTD@lʅdZ|sq:\ľ0m{1bfL[^"'4~]Yb$uI j[Dp"*~3ypACWm`vFЦ>gcAxm(EZM[">y[Yg{Fw DX#B"+̓ ZV{¸H`L pQar-*}=z7Y*{ .JK@t9ݛ%=*D tgełVw!"hLfZ~|P0L/]&zVy0䞊, QޮxkWҕ^֑aL24%HV̢d0d4Ϫyý7I׀=32ͺMxl#nj~#!K'b!8=8*=vPQEa3ø'Z\yE ;L􆚊&Z -])&˵SmV;럞Au,J$U [ e/\5_ ZUjHl8E]|QhW݁*ݚ1scOf.z6,ߪ7SйѯTjX-a$[kL+r_j02 .7Wq}R{U**?FE;q6pP3Ko)z=nbr9`xETӷj%fLƆI 1fp"V͞s o**MH .헔VTBphwü]"tFǾpiǬqĺP g=2L),6M 0[lhw@Fpڇk4iJ?@UfRކ'"wHeKL",u ;UYOz@s>afְI>\-q9Rn3o ,V},G`VS/sF'^ O쒃$H!RxD\J=c 2\W&z-r@/$([ ;Kޛةz{ L"IB pi^^%{\"]%.NFh4³n1: 7]IhG} "?րN$hfoXF`kPTZ̺xI*<'g!b7Mq`G:6l`Y$:\ ;h^sRQ#bYIհ@Y;`Q0OYh!kR'z33[l|jnZ܃Eo'iсj.O=I{# BxmscjĻ|!I#T4PphY:̜xc:@s5I^GԗOxelTʖ . cw N3f ǟ93ڡʯyײDVYkg((^|2}Hסvyݯc'h7qMu6W}g,GYVp-$b°҂ܙV-0]ȷz{ 54؅B) ~Adj#.y< _EpU.!L;acNZɷ O?Gp cSlsd]ɷ<=}g)zrK`*n0Vx6C2v3;,* |?rJ৫l;l5/NTÊhi;HTSMrCt+s xC0HGTr99:@Q9_p&\x^fya u9GG#]TjӢD%En\Ze30/㬥^̛ޠiHCY%yɫ^2NU%͞;vI\Ed v #RMa =tKjj=,~5[іz38Uߥ1.[:9Vriҩ% !# Ҵm*x8ێUVͤg-(luN6W0l^0TfryLA,5ֈ(~8Q!Aj$0b.,R}q:)IPhBp;)\)A+ TlzquNS&h,$S>c%yC>EHx;$ȪNo6 (Ƣ;5MOoʊM0YB`PU`3v0`RR*/zξcd`Qb7+$I޺@œ7ޒcT0`hۀ'b3W4ZwmTq*dQLLBKA<o,{#ӵVU)7~`<< eXG$ 5;Ǯ1r mr6VΗk#?_%ǧa?2j&O8>& Qo 1Mq+} aޙG]RG-QZ]O Tt!Vh=LCFڵvf!,Bz<l\›-Cs'R89[林mq*Y!ɒ&r}m Q<DŽ-?U&^>Tk]4|:¡Y1 = kQUojE4&=\ Cb2W=-|^-?NjA 7/̉sg4ׇƆbU NKG j7kCVl/m 0gN5۵u4bօ1MZr)'ߩ'KCHEt#E',#?sfYH$OANXBE}MzDϥjX&/E)OHƱC/{'boG8*.w}->Nͨ=f p&]<,h.I&Lj ɒA gw 2뗙 <|= Mk~yN^&uZIb"\Hl}=4YEPkZ=wxVe*=4}BƅCp `1=vjUNͶ*wǨƒW,quld2\r 7QZ<Ԫt+NŢwr} ,TK@ ڇ"UT*G)|a aPXkePpAֵh4J-_zœj&L}z/Fmvc#ژ\|ɈlaR:ӄRrc)ZOֱ(MEBq2:&{`&vnb.HR@xdQ%8A/:ɡTKzV+١p=&F1?r˶ jn3xqSm{I6 [DSe1 ^jr$ %OFVbdbmF5,tֻ>iMϘ?s0b&3V`XJ޵mӷSH{tc og.mr6@mJU'SXG4EwQS1/rƀg?^] : jLxJߝNjL*U*B^:6iި齉G ))d<; @sHs%!u@-Ca55*( ^Ҙ 7)sK6Z3`#̽/tI_YE.1䂠k?2}=mcϖD3ef &L5ݒP3jΐZ: Һ6 `6=y|Cߌjx]ܸm[gwi DkZvaQݙ,GgP}=d/F1)fJ+2%GԨpSUq$ȍHTCGUXc¥CoO!p ?BR2깓I\8eR`ʋrl"S{ޛm(,P赅5fμ]b#Yts\Ff"a=AV2ḛ mx:vZQOt8B 1筢feLw(v2Zv?bgu޽Bn]F57tD.9+^5sΒ#[ =߷ͥJbci##&#՜\)n.K!ov+Os> Ց3 {7 :<רw1B(*[$2+rtBklV*fAGg"srҁG=C#|Rkr "lԉ`U?nvYz|1 /^I;=_qy}pջT5M,@׆X)0h5wӶbDN;gAN֥Uf^KdV@TZR$]W3^Ipy~0wAOhbg<o=(nWtxإ|]K*B_Je}~3d\ 4 2 LН\se}Wg9ilc>>WCt۟LN*)U9o :k̲NP:9IPr*j_>}!eJEZY bUnͤP똳<\b9E- "Ap|ʂ.&%FpsE/dj#2KiE>b .O,qx2!l2E?<#ꑞL $ÁmD9=) "~wF^obV-2WK9 VD .l5 .$ z' 6@!827[\:gC=uL?VQz{v"|0̯< N n/&YjsXt9RD,7T߉q+/p̚΅utC Vޅ͋R m.@Y_npeXPU8d.gY!D;>rEIFT`iJUfKDjNK^s4-I̔%'#0V*(w?}4||S @XSEvaN\`!v,WŮҪeaBP3c J1/-LUrv_=|+K[np[Y5񄎺zO'vkJO vϽy̍iEPȈ7Pz<ܞ*=_?׽~2ӻyƦ=n| 5FG6}`p*Cd9ƫ [yΆdЪ& mi?t93'q12Tf]p#FAߩ(6wGbE|Q,2J,iozFp$v G Rt${ OA_pRw}IĽf8/ne[x{H + >_Fml_vI: ?ӪTQWhjÙukH@OX ,%}9rXX9-?s79 ;ې[}5\RRⅥS4Q_~XCqF46 jki&Ii2@=< ̰hcֵ]'4.vmCHl {RxZHoxFm"p CjcL,&[ .V=hI z\: ,:IE+V-Dw`W0icp#(D!oJa*! 31* S<L-9냉-)$ /SKG0AXA8VYH-ߌ:GB6WK9@GKĂJ{M- HGRoO2 J_yK]Ōp݁,G'8T̓#8t9涘]*o?wU5, iO;#9!Z9}X% 4y7QMiǮBol kO=rT>$ 7u]p wehoɥ@;6x@@oBZkagTp+w{o1]j),)P:v<9.1'SB8{A8:$K:;IZ=9S=fn317\?NHtkVUە($irvB:2|\XyDwVbiityٲȄP5g$#@0 K A﫥TP/"{uowxHr$oy>*zSjW Py= IܠvHX8Cro Rc~R9+E@?gJXO6 ڛ=-#T͢J$T$i!B}6 3 |[,f 3R9$̚B;z mZ'lLuIg=l\Mx&s:wsmZD=B| }%Nal7 =_vQ*GfZ&6EPýOQ 7p ]YԂ{<t]ZaY!t»I t-ؕPs3/cኌ/ Wp6[e{*r@+ o"d^Q}_P }Bui(IѐbXȩ0}1ֹ K_>p$`T.Gքv#\4eD;ыW| ~?9ˬpBY>:9ERzޔ(Ht mrԍ G 5'cv>yL^_@KLۍ?UۜixS$W?S`YD?HP͐><", 9Ih!b'kB cXŌ.NZH^E4Jf2\'LdtT*&jɢ& -j OPBPtì1(X>|T~*f|J=G JXzTc8nM8'gX],e1rM2UoEB+z57(d@xrOx%ȤG5vL晎4gh02ྤvڊjS@"_?&!v3 B1Sr[obYox !'`B2'@ipT!=x4kTo\o3-RVY9$4-QyU2`p .9K MH"eb-hCk5N"I`!b{6I.pm(H8Hl&!sX#[sXSIigV4}ViCJbk3.NNG^$1I,>ak@ɈYVt S Tr*mjhGRx NPrM}HNnSӘW"Z]e/ɿܘ B:6~㷃7QjqC iX"ҡm{dW 6|Yf87R<[2.#H#n~֥@;~g)s@=mO\rch]F5qpx|[6=+m|E#W#Q4a.s|H!!HSBn -ȫG}Nl#g朠SbI4铏e3[HU/mJ.fXM?.D..~_B~׹VX%XRɭQKAy~%aTY_lc-ͅ {B^}&% %zAL19VSdõ0wOBO~lf3_bpݡI:+>=ϹD ?W7NJ¹'Y;B"g-SFg6nN0tIOE=[x$E%wrC^-Z:1?=A[ޅ`uAb"5e?Ϧ8$&'-Ý.BeKxPX.SXI1vG{db_C-;ks \~xh#Ϛ=ICZs'=׈KiJEzNH2JWrnC M5 r?Bh|zZM*qU2K0&:J/l踸d'N̋UC;1UXvEL鄾.Ś~fn,ZUh.5H~J`к3qΓ 6{mրBc.R9O+֥r/A{GZQE*^Tkt{.8uoIWwgvߴO5tUc(׹K.US;.7W 7vY~D8d+*rgixɾj`1ڧR*xgH;24SߍɄi{ϕ Y+a2:i5x?LiV8.י]@b5-x]V :"Q)'^$X[ςUnU7iurV TVCɵ K^BDR͵{?hl5,fqi'C*{y20WJsc:-k؇ca]7]ƚ׀i0Z0qފGB(e? C/O*fn9b&z{%_lHѸDWj`]= REMnU.ܕNNPA\E(#AR,he>6;Rޥ2 bqej lGͮz*cT9W,Z`_oxUJ&h"`NHUR:GP|؟`TlX}0Q ڳ%b4;pZ7AK'RI>0<9jy$@D;S`z%>3 :BTو쒯$Nt 9+)Q&O޽Wخ*F};LQ 4XIUA#J0cI$݆LIח?D?A ;븪dv6%3=hʒf:'8Tͱ%ku(!_!屋 ~WI=[`eі,V_tx`vepJ8D!UB iố\w]} WpT,?k 1t^orTT,ImB=eRc^k˩QA,_ʕA貤aTAxwݍoFZEzݩEeAWxMV]t ܥjVΙ"$4*ώe g֐(grE<"7[@n` F%m Sm Jd^W*Шp o9ڡ2[%v2-C"m . #B}\\zKyR'vb`K;KLNаuAPFA8$*[PTq3BdFlN]e?9F[k297 X=Ƹ@L@7BF piY@ZUI<(l.LO-R OFg[y83hZO>x78=L lfD'}F7nsx~n|#GpwxGP1dN0#p10nﱰh pSljDžl^jENᎇ 0r4ɐ.#T:c4`Woog@TD"md<:0u`b¼f.j ×!ofޕ!yoy{$ 5n?x-x-ѝYi4$KjEjʘWU{kVpjxoȰ`M:Ѽ"*].\!LjmXhU!Ӱ"џhzWᣎlzMlU|!H԰W1{d<ڬb{-E޻\QS*3H1β?rU$:yooטZ4g2D/|@;jn=\Oa2uuq^ZDVx)3ridt>4Ue6 z{XgTp=3*PdC' 5-O+hUqKSttΏ&]ff~Q xU<2k;z?xpE!apY1mL|,@K{@'PRz O%ƎAb^G'Џgc#K ADJՃ<ï˜ac<_םU"5Rvu?fLsȺ &5ꦧ;_]O֐#40ք(،O`\(|؃Pă׏ '5g˅:V|)U#6څ/z{b`NXƕ/VpP(CzyAmkG1D4^gʴ 0l 1e+& ZfeBn:Yh])W2X1*dD 3K3~9&z]wtZhŧ0bv80tB?.Lɏf͹K-߈caȗ*k; r^kBf+\<)f*CÒJVlJ~8vnHc{ ),hn| yWYVe69&ۣ:hL8&\EYOhzC@a8[~dֵNWH+7U_!C:F=[ &>U ^]<ό]-įr:j^%+S>8Zt$,:O_D?͞V~3? eI6ۚ54N?BXV"YDt\,@IE' 9b_WznM7Oy6`⯋ףdsVrPIW2<9wWS5 ?Ug8ֻBtʢZI KQ1>(!㈕O`t lm!ۨ0Kzk0Xtò/2D&W 2 QlBP<.U%o-T-+0A pN-Zo'D@|2,~|ؑbSj7K$U|){+W>-:>j档Z%2ƦClZ dWS,ˈveȱ^SZMHmMKc!֬GU69CDNC3=BZ:b0o }pJQ舶R!mޢ6+S:$!!g<"me9ӥɿX^ ,-zT`VNh*f)!wG|\c1=$TFyHd4|?!Y5dJH--1 C;Gܚ3cï5y>AptlB\# E5HINn_*J}B &0je/o^φӄ^ Buq$" i&{xe7>djR1dr2jzĘܔ.xXiըBݰ~_x|b@A[3I0FLN+#Ո$3㙼;DuJ8Yh7j/Qdt,Ʉ jW1L?eAp5P^Ay8Nqd1K@,j< "nb̩҃BB\~oVl;uqnY0 &@n6'T[!~guH\sՉQQ[8̪+;,)TJ!tFgA?{`v= 㴋(.g$gHTI>`>D%vcmZ](-^*`8(c/"$̙)T Vq5nqPS`gt?QN*Oکʅxpҕʂс* WшȺ#'T<.⑟oڀiI#! ]*{݈C=X#BBf>w+9BN f}(M V Q{])vOc9@g1FۨϪz?tfAVTzZe3;ߙk%bibXܞn 82eϢ'އ` [Ԑs<ٲ[\e$VX֯i6,\Ҁ81ːfdH5l] 3ՂCN0,Ɍgxݵ`1nެ%Q̋TM5fw9!$gȄzmuBw)st-75X-Xqe+SљhbǷdj7BD Iy_A 󨗥4.pL"7zsh7T5cl6t70iޟ'Y]73|ž+6 ǃ- d>H5$|xs2* +˜љ3A'خLrX>rXݤ}\V0.x 1pOkSקW^9 "h<+3=-!Dta4#PR2ѫjE8?G-Cu*}>[j+L406aq!SL2؋?g#8> 48~7uSSNp'HޔȲ~#eެ^$Eu z}$ZVw}1Ep Jltl^E1Dx޴Yg !MU^b"if&̖{poٓF78dxx3̬=8:& {RtZ]X#DqvTfv V24R7q)= RrIlUK 5Ό1;E!d'Gy 9zZ-u-zeaM处3o3gZB|^ю9k..Pjk]%wdl݁Z0M^:ߕ Vm$eTȪk@[&sBv{)'"?!Q9xlϿpI9ZYŌ,097?緼W}VnJpC֋-~K8ARm!kfZ%T᫪rrySN়V.Z7zryJt[q4orڤOm4B<5g}8=12c}6+YOgDQn]] ?0&/瀇]{qJ耇abK9'=$4)`^ Lf@ӌ9 rY%ko)H7|Ѯ4qL[ zu,Y($ SC#yn\ʫrL)E# +HD"bZhXVoJviF Ϋ_@oM'շ̟B_/+(­t ΋cҰahz8hu6Ҁt8~.g &RbS%# @0ނ#Lz'q5 RKkXz;I،52+Z~ZRޘܫș/7IPoN3Ҩړ2Ў"Tc(I] 8WYq4XE G-d^in'K-3ۤ;{fP@ꑨ*p?6g€5?@a;r }@O/\#OB@$.?KVCiRp^BbdVah`!X"h0):Df^pv,2| %t" KyaP (f_uӘ_#t;sv@x$ͪ60 mM_@+x"gujr]ʟ'OP,aGYJCtHy)DKs`/Px$Q]yآ'Lw8(b^3f5B޹#X$9r:"(bɲ^!;"߉%|U̚oQcde dN05{\e'Q8fg:$b5*IW=dg]L(yLPi9>55,{UOTx䬧Уs_bTD1E~pt?6qѬ9*iff-h >¡9{jtgzD< l]73HXztRrdE)0_Raс"+O 뎔'Ō|SQI̳kndGj.C k:Gdzy<A\tg3${RkH|Цd>HMYL^1٨{~-R֤$6Rb%@"%ҷ&ELXvySRoxBD6z$%-`y59[lqDwt wd9'äJA[bHE%ES@n: .U+PV^l !:,;VMbKdc":|ֈۿ]k:C0-ͺ8 Y6*wWJՕi&7aQ`u;7" |uM_5uy8YQ@7fϽH8#[Y.8+cD]Up!biQ{'&c4cN;)@c,~uoQ?PHj׏"? |P .(b/iִԥG2ҁD{}U Y'@Xğ8Eb³sEu'&9APh_/K, V@4~$rWӍ=&W^a4W+|P3!1“/d>b`EOhE@XR^GgmeSͤ'>Pϯ/zϽeZ.MVjɵHu1xbu:gs[A&VHM'DŽlVJD< ʖ]ڊQŶmuF {Tp~NoxC4]Ic <"tƼ$ xK)8du?|GqSoU5hAep˟6s(:'㽥B lf[\ w85%Û+FV묂sA;-~۪*eYuv;M_~upbj+~3%wn{%VHc!9 PqO5E.MJuDG}YI2j6OZͤAM-,#gZ4U|sU'vv0"Y/E mpj +'իtAmʷ}FN9N-u**,,i KDޅ~ λFג8}v~QD]"nt_T_\JnU/(KO h7J\q=$x SpeLo6/Q-Nm$b39(O=]ONPYկ`Dt^L:eH/U[e`V^g3YQ]NpX$,1vTת U+hpbC#u_ SjwXK\lėHe@Iv֚ff[ի1[K ls]b{tvQ<v7Oھ{#Z9Zs/!Zo^.SyuȬlNPhK;cSN7z-ׯ!xDCqS)*kH_>TRC#&|'m/ƲEQֺ8Dhȝajzp㣐V#T\ߦ&[ >3>BWkӕM(QT̘~;R5ge%Q#6E281hv+BfY>dxa1#C=<ݫ]x܆#a 5ۼJKtSoނ9̊c$q8:GgQz W MaNXPVG_CYQm\@+iB}MTO68'i/L&Ȃ4i7DgÎzZ3ݔGЁLpԆNzc 1 $dR~ J_<!<\ /tVMn&gGA j#=qRصݫRymB8a J.L+I1:_cT+!u<@okFD?O|Ďرٲ=?JմZMmvSO[M2;:``RKT12FIYzϘ:܏}@ՑS&a'y@8. bDѾPXEDBz&R.LRT/Ro󍴰_c'نPyx'aCө6k =mxR kyK5U]cR8?𸺥u{"vGJ/U|{.ҸG;D e,L > KDE2 G_vW~g3P؋0?:uS/Ӳ,Yї"'Hs^ jt!Oc(㭑9a!GwQ:;)6Œ-<,!: .4 aKm>n&vEj&9bYL#-u9%\(VNBXꪌcSD[ꥉ+a"Ddi8t.dFLtrbʗd-MBK#K52"<1발 'fXݡMWR O}#lZ | hQ6c}@ZʄD4tQ:gV0ME4+'а 0C.b|}lv~ ~=zhtbnJC9}dyPJtH9^SKI *;?T%&jۅ||m=@9_#T~8O̾tpNTp%2fPϤ 9T.n!Dl?$K,}T JJ8R .gIg<Ip:ѲNcydNb˥ͭ(!u,T4pjbm){'ܙN*SH7!# O鮝T!+U- } ::M aaVDr8?)4+i *}/RDe&U䩘, pDkE.Nղ^KAZE' rIZN*` V{ "p1>4Bժh W0*?BI:F7+ JA.SH,'GNASTToj6ڔH3 P=_|”>djҮeY NMrXDE5}1̅1oP2}ž;u ׆J# x8]>^}DnhTغeDU}_lPɐ+Mb"ޞ6yrE턄I[T!4W&zYJx] i\ڇ:=FFaxc`:Ei 8KVw+%ᛳ z]e J l*UusvV*c%vZŇZ<\CJx21~(Aei"L z~" )11X.20ލi(?DIkF@9,K^L4+oL!=ʒAZQ-**tr?@;TqtE5Y:HtTP[66%ݩ ?8..,!δ+@(>-1ntqpb*u)GK /[Ha:'26} 1 Jf7u#i\-2FLFq grU-1Z6wΔ?}`(_uc,:E0Wxo 2SO\:tJ^\?H/R+#6>ۦߍQ[`#l*q-HGX|+7Bv:mb[@S jk&10$H#bnWULX<*@q}@m?vƖa #sUF8&g>£zz37)yũA (#qB =IB)?N7Mb Y. ۖ_qqPAJ^&^I:}v!ѣ4uIS W= TS1еSHBgōM,@$JۇC+tsj]+CB=< Tco3;$<:_#i"y XStΥd[IvE5-?L=4N#bJy *t!2<=28)}ٹhӫ2Z 6xHUu2'jy!p(C5ީ|͙ $g\T7dvEFam HB%sAD7q IFc: Ғ0Vj Eh>D/Zc 1^nok?ٔD$hc+z$"wcaH| =\q]=竕Y+]*S[͎`L]Zrd옇%5\q}EiOΣaA,V:$ erx\ӧ" \BkU'y0?Ua/#>O[9+x>DM|'Fz_y!vM|: P첫ȁ7g̻LZ {])8i[6,pzaSGܽSLt1pӏ{8R 6}B4WV؀FT#g΅afQ!ː:1m'7#]𗣛u@4]tzwՆ)VPyCkFF;zIJCFY}{l /xc>ٗΎK?<)&z8Nޘ8C!MzWCz1Nc5E>C7 ?cXe%|cAa,o 16i%3ݳ|hwzNe `n||P"gGmJ_NIᚷ'jtv)yzAVgʼa pQV-&T<ڬݞb^LR|-(:kƳ.<swiDz͕}z}ك <jU5xSgf^'\(+U1mE, #/HM?xq'%и%c⌷WE=g - 03Zک z$u:A>g!lf3Uo:;D{>+c8[A(,)xXxW{Dx qJ1.,tCysfDh3 Hhh:,цi:VF,aȈK{OmEw r0hoΫ_|VLyʁ>uin^XqܢrDoHɖpU2#-|LuF\$,cYp;QlQ3Y|ίF£! xu ʐ1f}@v2.&:L\ ҉[gLr|ȑJ6fpkҷoa">9|2;?w_րsKuYܴpPOpVF0!-[n{g̎)U ^c<zfFLbÓU [|dLN7|7|fTrȜZ|P^l+v3s&&Y .fj=@T#^^'ޖz5Wn @qO3P4FNDF.sfOg͠ 5 lf-4ܺ jS%\KY.q$f7zFOGBVy*y j=-Q8"@hJnRo6Imy$x%3^2gYoPV*s !QX`5ÃOnqj^ u뵄g%ړǾ|%ABt;!? n#慅 &5N&Ձ1?czLu:u~3s''8z4l//vԼ38q!$J(gsIޝx-2 15@RݨՂrG\T/<54eVDL: ާ<5Hiԥ[ogXM,cр#,bk(mb5J<|/䞥I~j!_XeGH = _j-&֯It! Yg'rW1v;M<1#X!uUv%>> 6AJ|LHj+XOK"<" c $?!oi7>;EF^Rg?Z^}dB+ x272זk3n~,Gl^lKm ER:d!5kMمS3!h¨3mvƊ8"ʩcװ#(>9fus]:^CmpuF_Y=(PUC  ޑP:4 PH'`& r0\ilCbeC{ơ[_|EKjts*+݄'Eػ4]#DC|gXwj-_HJ*iN=%kR AD ~Xfm]НDDغͺ:av&풙e{~dE6߽3E=Gduf ~s\v桙Ҧ\ 4#j*vM1`|܏eZUb 6fPv׷)zgkA]`@$ Gu,753tiW .2zxyZQ4ĭ\ʕ{("J9AF+]Gz3W-l #}挖sM/Ñ:yo.غ6 ZPk#-3n N]@R{mTp9h#Mޟ=xē[D% nWAK{iMo@ў/P=ߕ4gn.賱Xـn+Y>VQmsBi1`͚Mq3## lڹrC"k0v1o\f-Ⅎ+[a>*32%;Ԅ- D2Eg҉p[pu-:EM zZlQ.ʍ0«j3 !$$Lt2 y mVxU0.Zj-N(K.2 Vh_Kon@;F5v1IDFQA*rky\;S*[.*. AH-d17 `dv!.@jh=Ԭb5GwMiݯPޖ Jt! ag_DoNRѶun:~J'5]AjWba:-*!>8sohG."9sLcU!uVn9rmu]kj@'#n鞃w(ܝBBCZDpbpl!u8Ox8`խmOqb%y:bؒs8ǯScͿY",GÁʔmPpmf1q[e9taD{7ȉÊ܆d5 Je`<AұQqHZ-GtcSy2GIo̶r%cP85NW_4])p/CGYmzr#3AT!yR3p,%RkݧszjuD;0z{~>9i8)ol{ x Ie 2v^WJ ĉ3ΔMs7֬&\:1q<|=*Qqꞥ>֔,b˛b~/G{yAѱ),BHi=1"RI=ci͞YsZ;Bn I-@1 q@F<=D>!ON6DHf|@GȮ2̰`[Ef'{[xcZL `zE?LQ.f5rz/ uzL伍Wa,A!%Xr-q>p:4vmZϪZᘛ^]pJ͔SHrrVD&GP_M99O,^EQ8ދp;oCǯ,40+m"˳5#Ȩ(K \Nt?m|x!Qq !ѝ0F(ʼLJyfr{t\͌GY-%Ƌj{`"+nޡ""S-'Ղ<lI}O|BQÛZw[ιJ'6iQZ^<nlSގSgǰߗƦp[gT$ 拁kny7IFj!Vʙ[F.veJu?FZ,˟s=N|[۶0a.+;\E2C0NR|9+kWҨ!z}Gnajj; a6'xomY ڠ≧X|1W_~L&1 Bu™2;OiIʠ }9g~34SXDȦA0xW]ƙjVjp)h]oўSalc`kFZ,.iXNvUvN*c֣tI EW =-zLǣeAz. , NbI 9~l;f0Nzc*Uw@ AR3B;)~,%{L. AܘK=ݽRMsz~#'eI74h";tzgG, e8sth4>sTN_)XC̀!żҭLe%`a*PH>hbOE0L6_~r Kfbߎ{əq%Oh5Xo ၷƥi||$AısInSE $*2'r4 )Rɏ|SbE?ywQγ#4#Däy$8}kf΋PE<=u翞Ͼ^=i(ݪ/n^ #Ů< ?R3AROb/IF@[r mob 0/rzS .j24rpoctƙ% j@2>AS Z (mCU^Uo9F\ӓctnLՙe |vI9xVӴ+K؍p DpGM|ܘ-/^)}x‰*JIWM[sƳgIς޿g~I:H1`1<@9X .U[)XF8n-)@Iw Z$G:t@ܩz?! ˉQfnto9@gHDzZ%cV]I/j”IF1a =Ab+'<Ɠg=J^|o98F(ȧꃋ,)](itr#*Kj0W|v2Z;i#W(l5 ur;U؞349 jog3/@PeWjѩL.=4cY-bEL?XJ kkg$1~ ><: Zҥ-b&jB>P] )[Yeh O@TWڙI#QӒ % ;WIQQ/b64B A1yn}Y 1$_%<8/AحQM~Rd{4=PZ.u+sr#ŋzi1 >J qM5暆cUzMO-ʚ wZL=Onu!tםU<M,^ Kuc9y3蠕[:Υb6zi8ݤ4KQh?[5G{[>/~v }6R;١mES9]w\Aa?`>IS7ZDd1GZ7 sw|Y()ӑ)>Ruʠ cO@VA_>7m+ǪEJH/Jb*YOc]|ԘC3"kŬ-:eL~*x|#o2T/<壢ՏU5ᒿW뢧j@a8:ws8 (#g]7/Q'e].;B]{{ :|1T 2gVZ 1Xv2ed5Z 9oDv3 E4Ԙ!֐|eH`JRb 94mI֔{0|Ӡޚrڱ&0I^9⒫cYLCHFv4Vf醸jfv*/[ܟE{i}T|k*ž}d6cv {[)bi7tQzGΑz&A";Lj0'N jb"|+$ڸ<2\>Vh[^JL~s5𷣇Er&q3 L @d±[ m?!BaOf>[>7\c] R;Fv>Qde Vw Z -$Y8*+#БHDUIC`y>zyHGB?"!Pse/5Gu_#6Pt558=2K% DtՅ0^3B_70.=Bi-i6:LSB>)%~n6PUk=ɡڇnmpItEسN/㳈#}Q@9q|ĀTWK]wH2> Rq/3 與nEjN7|iZI b4f1ݐ#N%buЬc@fF'1 x48!w|?s"iMACr;Q}Fe7! dJD|wz3UX)r-RSX3ñC2hHv6Nx9ʎNrz餲 !lvi&.$|`)<ʍ0ݸ=9yi;~#w钇2G.8r .8Z/N]wN5Hm6Ek:&$ ;Ґ&llLYjr ho2ˆwʴ1xGa^ZZk ۝Ti[ >|0=J^ƛ,;h}Tǐ]vﶄoCa#yG :="O0*@'"ޥluJ35u«m.c9>P哙Lj#ъ̲CT2 PxR׉^Lr\sd ǠZpKw@𬙏hnq NrS oIý = IdXH&uvGV t$,ԖPq{s4A̧ P*Lm]#Pf/km[WB5؀q2H T'T7(,3OBvP!R,Iزspui7Ճ8>Gw6{9t ^;WaDf@wf̚. Jύ$1LjຜIik*z87S})9$tcQDCaE7i|T-_s ȘDl@t1l#^2/"|Hv 7~|!b_)$ J:$(_l\rJO*6vwr&&gUqfhWX"*52ȓl<=-ϊu!G+!Ȉavs~rS5% Le8gv3r׏OHUkھU(̍ozIAUmHzyM <n5y>u\4/ 0զSAJtХ3p1;ib᝙KE yKLem1> Wz>C~.cjxpj*g(AmiwP)0C4%! @rBUUwmGq=㈨\N-|W#X=4S7lkU.)om$+݃t`)z^6zgJhDj=`1iG߁,kEDّ8X*ast$l:?W, +;V;yQ {I, b4xu.4/6\ͅf۵!$w@"{wp/t{| @Z6syKiKǤ^2x,"Φw*fb&br$H*1|+Լ-,N٪@``G|#t|)Zo`e!&l7blb1F=B ܣ(*";XsF\LH}XLH;}'=*e!~l\JKQTfe)*/l9%GҾEv>l䱜Q)I᧷ądADFJш@\b˪h -:>ߑ(B_.}*+[֠\:S] +R%i,~gfFd% I⃠|ܼE}Œ4(J*Ot)gNi:iHVA[)H#6&Mz߳蠺rv=9Rٱr+벓Ch8ۙvuк_CqqGj)XbH$--i&het &X]q.B;򝱢$?+}8*G;HrO ɺe@,]y# ~a2HxyGvptZ~SӦB]u9U$uyPza8j}]]i:O,sڔ @[N>jd\2꬐_ϳC\ש~aPब[m֘'!""u58NsȐय+;I#\ պ"yQ wvT8y}cA_"9}!B_R5A2S)~Rt8ȃFE ȧ$Rq@Yy]1H9 'B?F_vYxa }' h ǺaiƖ"Ĉyv0o6#᫯hcB6}HXC "zpr3nKx\ DܣB ~V;>|ŹD禘l吱:%,,u8&y:ӠX YRSMD8sIކ`7~P2c&VYQ0H 5V;6F >"q\v,PhjyPGPxċNc,K(h!4HE&CP yuIA)BE?l:[e#DJ3 [#ʼE=]@nu!YACAAQBduj#=@ ar-ޟ+/8-Bޑ g[.´3'rZWZbf߹/*5?WrQ(%DT|ʰN@ jKdJm/o2gb68-#.D'r.S4k`b~-CE \-?\ŀv|GmGn&F[fabCRΜ4$ѻ|BuV8<i1z 22#!`]F6lj%c B.E{j~e1r5Q2|ED4+We n N=_j펈h[:_sF{FLa㸌Z P`DNvG":>ΔO?8V:)R/P+JoH=0:@ld E m %!tyVvhBZD@GZc7{PK9HGh Vu'h>u@8MhY!,G s<{=< de,KP::N|&b0Ag)4ɥ0%s "+wn1ĎHsu %8 :+ xp&-Ũ|g0Y\j3ǭM XDБ P ATƧ6d#kyUl`YF4,4hgȲB1"U2oC}0ѥ6N6./l{SP_ꘄalΩ XsR˚"Bˍ4W(@68%) FW]9=A3+vDJ7A-G=={^> #z2olQY~1RBFYg4/cߡjndYLkzi[Cj굘!˾$rݶ"$!(X(7&4571Hb,+hO@K[*evhM6mȕ4 ?mHMh3%u{4\鑕Oƚc=բ"1Cg(E |E *YlAhfɭt,T^A#8 s 5C ][Oid#v2( LdE4z K%+ 6ƴ7\ \||VqL/CWʹVDA,L&][cdF( d*>"Z㙝#@N`O}5Z*Xunq*igA/fᣀFq:[o=.3Pn-%-wc4O1^X&\L5SJI?T pA7)F}15o] ߟMCW\{3^ղQhk,1Wګ~<l*~`C4d)cqQ竚֒V2 A_F,`K}Uʴ5phaWP3Sѓ Z-8<}Qwݳ*(*=D' ;Iz38JK[n`ÃCG|妒Mse#Xz0Dh;BY繁aa<@ro;!&aaƼW< Y+: IfN})GW iax}QiZti*E2_v| u2BH E̬zm$'kaSB|nU7DF{qb`2e Q-A);FF'ӗK1Z@ݭgU\`W0B:@^0'@@4bK߾)@2'|eB ^b2aR^l_.vu .x _}1>=TW.Ȋ\;Vk;đw\EL* ڙVΆ> ySfP p`l XX؇X>;Dmi;*ljzW{47 ʥwVl{팉u*cVR_d@4$[: e~S3HiT'pl:B/Q$oQ#jFHo(tzrݽ0?H^)nΈyEaZ?WdEoϳPTRa*㭇&yt/uY*Ͼφu.VOȐY,GqF}g?` "ϦJm<:*CrmR-~9baU| mUe>HW9J"s+|Ǣvϣ%UIZCE=)n HnL9W Uh͠ > *u?.4J?L\2 Rkγ!3c=&Hz˒SDu~n-)ȧŸ3S$95D 0b]e2poLv| LIbɮ>u݈&@eKj4'Ui:Jpx#] λ6ya8Vn;!M' 1?9OpdK ON:?אgxHiox 4 r?li<08,;lPbA 2c?|8[f4Nkb] LP?\8ޭ%@|5\i Y'4{Pui{᡽$L "fȚ}t:]@f ;|_̻\ Dˆov&Ou$+f ^mJp#~U[PvS6?\\%pZOP8!' KIFfr,xxt[qp<ҹ!u__ ̎QvH1᷅D]ou\Ǡ7h65ΐA[ $Q"dz qFxQ͉&Ⱥ{:[H!82ug*7@IѳdIq).>E  4f@g'3KCpܳ_zSDfɥnW^h {|\w!ĵ13xl\GStU+As__Ҧ8:9wÆgOGU%`@u.|*^K5?:EO!GC{אS!.RPnLZw>HU92Χ]lS-B fv#GLΕ]1su\ߌ!(a, -vQܿ-x"5N9l{'ΑCGTk}A|+#Ttg %Nzr?_wF~b ,xbzl.FTl ujb{TрS=s"/3,P+݉eʄ~yJd>9xkmQr\FA:f{8c z^]w۬ nm34ti)5tڲV;\)ޛu5a4ocMcMLv G IӨv8aV%1H/01@[U[Um5 q~Nє\kt'O] JA|B#™+/~:030]83lJSg8|J {Uƿg=(t1,?AQO[[#D.Djt}g<:% -ͨpr5 mJr}gcƕ{ȝD@OFzTvb(DCT>FS T^khK*d; * Xg6vPq*vACL |9?w1Qmq')Q|kezn:7"3I.mU<,cHY̶*|)ݨJ{eS |U$fo  s scid-4.3.0.cvs20120311/scripts/CB-Mega/README0000644000175000017500000000340111727223077017136 0ustar oliveroliverThis directory contains metadata for using ChessBase Player Base Photos from the Mega DB 2006 + some additional metadata for new players. Naming follows FIDE players_list.txt as of 02/2009. Content: ~~~~~~~~ * mega-historic.xml.gz : mainly historic players * mega-2006.xml.gz : meta data for player photos delivered with Mega 2006 as a simple XML structure associating the player name with the proper image file. * mega-2007-addon.xml.gz: meta data for files that might be available on newer Mega DB's. Could be merged with mega2006.xml.gz, state: additions in 2007. * mega-2008-addon.xml.gz: additions in 2008. * Mega2Scid.pl : very simple perl-hack using ImageMagick and mpack to convert the original JPG images to GIF files while scaling them down appropriately. After conversion they are recoded to base64 for usage with scid and a proper spf-files are generated for all files listed at the beginning of the file. For further config see the script itself. Note: to speed up conversion /dev/shm is used as temporary dir, which is the RAM disk on Linux systems. This script was tested on Linux only, but should also give a general idea how to proceed on another OS. Note: The images themselves might be copyrighted by ChessBase or any other authority, therefore they are NOT part of this distribution. scid-4.3.0.cvs20120311/scripts/CB-Mega/mega-2008-addon.xml.gz0000644000175000017500000005436011727223077022014 0ustar oliveroliverqImega-2008-addon.xmls6w NvЕ3XI +%r>G&K'\o{GjeͿ~bҟiPf~y:e?oۿ7Y>y߾{!*޼FhNUU")gf כRlWdSKU8>@S6F mZFoMZJsN~H4Mep! '", ?p(P,Xp ВglAU.Jt˼>WkOG)Qc1J_$ Qk9~/pIurCei  Խ(KCDeV^i+8QuCʃLp7DbJtvlvWIcGijdɭhT"~qNvlr)ljZSYX"ǀ>PɩBY|'Guɇl@S:(˲bY ZC(}Q)-ȴnu'*F]uu^0*R5#1C(ĒMò)V8Z~;ke(s G3B'ެpq3|׹Y"@oqpG5XxªI-2D2gp}mP! %dHUe&re\\cqD4/[2A4T3G*v+Jv>/) )6`]$2D;"NO')vAk+UP$KNJk6&/3!6*Y@g JD-29t4QM֨UOH `-F:['wvAE'cwa %ZH%c&61CO%n)C"əeGBGSu}`p/˫;!{б cB-KI9 >&]>]‘եr!a|9z+lm +Y xW:@PPp]:6#ȇEU<2>Ay!UJ>Q)L~eMp[zQo W&7xf 5`j6cITQ"-D+B0Xk& FC3\"-K>7R[ꑱ vc3)4h}z i ?#&WP)0jIx&+PQW} 5Bq&;*+K>"Y]Bz$%H QK8驋^#yؐ@\Icl\y9Rޑɲd[OA]gؘE*_uvn#ŝϨ7*Pjdú2}PctjV.2DD'!cJ!r+^IPB.:J'.U ;ˬwz4N#Tn;a#l?Qn$~Iφ#RZ {$1DdPEHXpUJSilra6"?H9(bw{8Chjٕ liy%NbLI-LD[ޠ" %8Rǖ)VPnSMIp6Dg r]{8G{Xe0XsbLB`±lG ;󶸙 M@`^:GDQ {;.kri5f˼O>)(eGAl_,m/W{60h],~zMiAxRR*# L_˃2akd)r+Vյ5|*x6aԵDDPkW;kb u;h5˦XSƗ#U` 3C \sxZ3@'ifvx&MwbяHl!8:㣇z$%j벯X}W$5gU t;= ,Ճz( '$>CR**D=hzUy1k}h`.>ӂp9XDm2o'8ϐ)yRvJP'k:iߝlSns ƣ =@'i A|4:}?_BCn٧XR q'`dLKtP&Lke @풔kѸ6'l<"{w,P v)s@];YEZN1a1'^&lW}K6ki{b]Q_!*AJD9o@0C3]YlB&q륈>Jr826֍[VJm Ds.qwU (Cs(яmyH$[DBI{@aHCVr8222[q/`[\!qV7dx :ߢS"BvtYJV{A aeLM&9 ?L UDD1gܶ.5'H5Zwx[*%u`jH`>"9moDrYʦt5!{9sa'W 6bUe$|H@!_=p:@M5“=pZq/ vx( 0G\rN.&)V oa$\;+}S' qx;v xXz)meڔ幎/5MH ,Sc Xa$2) 1;vV1,ӱqѝ׽#;4Nak[}3, 3Ds']hJk 6qP'x2CtC$: ;Rg,cQ1g'EdwY^/ҧ3a5@!591:CT ::A^}bl 7eei>@SMT;13߬_ Ax@V|4BʻyD$DYKh@ՑBa+Q2 gXg\* }QRJ8)8&%8H[ldK5wuX|@%"D4=V|V"eCwF2k]j2̻#bdtTT6͐_B%=2KU@7Y %ᖐrBZ3SXLP>:"Y!_X +7[mIC4R?p )|`=m$E҆!uW =#rX-MSdfOMמԥ!k}\|'{hbFz 1Vm,@tMً7%:V2B|-W+!F:μ( _A˜s  >$?F0Dl5!p1Tx.\ ߉IX =^(Wb6Yu(`}ΠZ DȻJ/:J0>Df<ϫRdl,_6pfTQ79` `;uwV}|S 7ct棨w/UVu")=%2Dvt[.lN7+># G^k!RDJ/Die}{Q!u cp3ߚ`N fC[bXÅoYun%xE`Ұ h|QodUPdܸ-S"s2w_x"ecv'ߴd =K/  ]r)ROc'!N`[s㶒ǿ6pjDbsliy%XE /rOݠ P59Ԧ6yK*3EF_}gA?O4`j^=lm&bA4[ ;h<q,R_bpa1~J''1k~Ho0B_eP?$h4GxMsY&ZQ43UfU+Ljf(r6壪:xL@)usc'`95hT/ 6?k"Dكww愂{CGFEP9'nHi FL&K_D Suk>| }ZopVJ5 byZ )c*ɦO! hf~9]fCtp:RACYL]$-BKȽ$Ri,뙏j-,qxUavE=Nm96K$r gBfqn)gϯtMvC!LFr6Z;d.Bw| A(c_@i3򧠋ρw *u/ D~J0lxÍ1$ٴ"պPM=-i74\X 00Fd^ hzCKֵpѴGSviܤ8x:̅nO:7*M l+<$Fn8ų)?\hUBWQsP I ⯝G`PVͿy~kUAM/*& ꐼ喌 W_2RG1(LZUw#,,FVUX9<a=y+C<\HZTf' Ci8*`&Sx$Co5S4]?I"c4<<_|o^xM*X8-솻}'wwGFCT >ۈثV{HDZ(`o'gֶe.̼)Z}j(̬=YX ߶ٖJ+dF_̯YX %I).lQQh >^{.8P4L+ Fu= 2 EŀV $8lӛ|F?<;&#Pۂiq##NSU*ΤkX&i]*Um\H<:@r;OR[abUêk(L6`Bႜ`[CtspCa1g:BMg|$EsʔV~ѷ`"x ~ǹnjyN%p#p6h)a@W.o3AEhQ`Ys @U58 |*xFmUsE]M9i^5mLYoLAt1iG#nn8IJS١ʠrd>zŗPzeUn-z@ch5WC5Ҳɶ[+1J;{'bUyݽD+ȋdc*h|Lٕ7F7;gBUhw.Ye#G!H.Un|A"\ɹ0D'16d((ijt3¡fs̤8Sk92֟) pD^b#c Dߴ8ltP $T/tD/UiNWҵ Ҥ=[d /(`y Ǡ2i aU70xX"2Sx>^_T>KZ2 TUHU_&&ZIL臃,R5IwMۉ= =* &߇H}4NCl b1M\>q&U3:6ZO%5Kd~Q*#M4PPgv ?udz5}^{K鈠΋*xH4'♰! 0]+7:dE~0|`jfOTU=t1=/(xISvA&22*)Uj|\U9ژW&( {51Dr/VJ\Et\ark dNPrU ptw۝*3C5L**}vT0Yǣ|*&1Vyrqb! /pT< ~& T_ݭM6am@!f*5[-8vp졔?c(JTXĒ(🮎u QyTbŤC[X J{~<*,qh6?۩IQų h?iT"(ب\yDG:]Q8#2%)19YT{ [~ݫ;t½rcť6)L0qCDrv|La.G_&5tp ecbOLꚋGCe`N. Jgh1?'/MM)V}m Lh[VXżx8:7tJ&Su²_uQ:W _x8zy'1WJ4,/clC;f\xLY .zfk1hx:Ehv|; c^['h>>xe U_۰??0/h;&f-q CүmY׶JrK_fgZMɖx-`i{{F!!ygdٻ&!wG6 G+WU}A3,ApC&u//m5e#=*4/B-US[-v؈Gc'1b*CUy+3Rsi$؛I1}&_#4:L!XX} '2=h xrӰf}h-mS ájkiYe/'s7fSH9.rʞm*<3| ژF*lJa]6zDyҸlal,C^3p?D<1\?0-b Rs,?1׵jpc3 #ژ][hk4@MSkti4&bP[MS>p2N ~6oxc;ӎ<zZWqQ $ &տ6މX+]Kh6aΰ~ = |!  vi ^3Bځ-=X[ի/ x'H enRl r: !>b7:[\%#e#PMü.l6 o!ٺdViEZF>cKit#ʂ;UcT KWWu- H-%d 1\2@L(7{; Ǵ[%WjU#1i2ZSPAֵWy\ȏǦJL]<<]0}ZʉL饵f8B@Pw9\1rNEx0$/f5n3щ;nVMoG{ ykDn'1Hv0f딇/5}:9.ST1I`ums%e2Ѿ$kk`!9ЇTvFf~'׉J& ަL[uhE-mC˼qp,LvHvy!dE$I.Yh3ӻvX3xa4Qg޵N콗ޟ,B(x3ConRc_knxYMKrE[/{iY y`,69v6fגDBlXUUdwi"J|DK N/lU 3ŕPrN,zoK~;,`/,)H{9[sFQD21ݰ$o9n2==.C]v,t!t뵹M]N TvjJ8сMBl3-= =hWq@9vR^"_ƚG¸7H3U\{ ګH>t.b{#mc'Ӆ19{IqrLƠPpWҋk/^*ѓWF8,v]!7w#SNf63N gQ.mZd5|܏JALglBKIxj!hz]J(1.b,/ {1zuq\??B}gtɓ֩ߣo =a0TWbkFHF;B0?$q}E,b/Yq8~\lB ϵ% USG Z;tHϡ4'P\"gJKvp&_&xYΠNk(8ZE;o*QLWO/b˔:O7o_y-3ޭU>v9?T7'*LY$Qt_Hra^:ťQ=2lV9+yHk]N̔K$4lƠZ+pke8OW4m*P_PAWjR+B(N]fݓ?U<_b:Zp pBţQks]Zg|_V>Lj肦R B, -A!lDU\#@]k}p_Bj.-ke W/b#E\b u0 Ztdh1wF[GFD;aBkfJYp9JM%KJma"pjk5`4QI.l榕4 # .\>]KPvoKZe<ͧM"Gy+ZbKc:,3'Hq^ޗ(WePɊp2zQ p 9ϫ]m]X܀EwHMWvI wL"ǿႲVe\=@G>Tё٦|xjԨryRjL'0N|L8%1O`z^2̕ij?cD@7ՖX0@jWZTe`}s.\{ȐUþp&a?N-"w~oԳ=σh 2÷Bƹ2nE}{ #4wb۴"yP ~6bzab٘L0 GBp̴.|-q:쏐CFz]:$OIG`9>(,/%¿8R-<'0mnN UХG0r[ܦQ55 Rջ$G`3fhOPb<+ucҽ31 tǗ5I,ޤkF5<@W~d9 A5q|x$K2/ _;4@*4+9xi*%YW_KC'0+r˅EE(!A >1y3r d2*22mXumOyw6?~B>O8a郂$Z<-wOuXMm PKw=\TubM( `^Q15%T8B-ӄo ptCe@ '42&9^0F)k*_v[W+ @Ҝ+mZ=*,?Efۃ#vMDnс_HQP'!x:0g3Zoy k;;)⣺ Sx=|'zz@]54V݅AQ1ME 죬O0X&;V(oD(]qmz%ƙ3Bi#x4'tKʩA\7N+*'5c? F ntUCg~!Jz+0&tAJm-E . p)./qym:!Hfy]J[fa2zOD'I WER.Xt2,KZ-Lᙱ`O2)? U_TH7VMjauu*Qj GV QL`:N5'r81ašج@:7Pt$Ac6 :W@<&+51sHgK$D-H],Qڧv^%&WwL+.[k/ $I"mZ^{7x*\NjJ`8 4y[CVc).JgύaRC_D_`v!>%[4oo:FɔjWi)}^{km垉ɑ%ݢgd-,2(ډ[(@Bio},J3Fc*uMh4vWR!߅[lԪ!G(1D dCCZwFS6~p@$^X4th[q}$,@TV>3>y9 iPw؝Ia䇙E*> .EnD5O >[^ny{mY-m|NM]My Il 8[xS)4k-->KW&G|{A4j{2{]}h@ [7ٛrY+3cg8g-u[@9&`ΙrZg8N@QsӺ\t؝a6M E26}gVG%Lhw%Ib2Ox;UӴꅷNjV:Big&XGDT.1B &}GUXUH5SmV-n ,^yF  T'P1Tm4ByQӡ=CO {(=N)(f.ᑢ'iuZ]ܽv`n?XQ?ZQCP{ܸ} )_թSe8f3S#$!"LЂO7hT6ZoڻL.~2(iΜ[ϘK Ljfم&CN'X/}## -:C@QLl~Z`<:k 55jCAfvf+i. N>\ C"v{ rݯ![YA.C z՗R>Í+nިЗo_A a"ٳ&T#t2PEt pe"؎63Rh_fOnKcۺb8gD@GvN#nPůG&TPEj%K%):yR:8.jm1W3y&lc8>'Pw[>>$)0p#;*GV;'ߢ#*oc7^m+] (GϋGr9ؙ̖d|{T=p8GMN˹<31@S8(#e{ěQBZ3-dj1ûl~F[kL<Լ/lO@v&XӖSjB%=#hclدBJUX w~6xUTN>KTrcji4Mik.O2HPBO,s.IR[gs .KUժ!K]󱌂tXh!h+zp/vmFItiJrݫr{DYz{' ÖmWUT{byK4:->P='T7N>+߷c ӵd*eyOv!=Nc8K gXjEgr=EtQ T?8v|Qi,&=O 8bKdGҖ=a<}5iXnZ@ke7 0VJ#<±Vl%cjWYt tO_˅+fBB%F)iQrW1|NiN(WG_T]gbqJ MR=sȯ\pnpư&]1t3컧=[W1NQ֏UBղ*9^^-A}[E?8S&UD 7ς=>jݭh"0@'>*v]{"-?#RvKeWj \<@15ftv+nzpߪ\l=* sUZ uW69[@_7ΨXQy$zb $zwg H򘡐[g8Lje:֟%nmц~8eg)3ש TTބ jnO.Bf^ "3|YqY-NͶd@@N wgLPkצrF3t:iS("gcMIH]JPn32]S &,׭U'٥3t=tk ? tҊ3l}rU}IO]ıȜ [Sou_DMN䙣ү~࣭ja7p>8sxW|*R`NHxOQYy,tK[g5XCZA߃E2[WPL~1qdޭs=311]#2B)Dn ;!h9A _G;ڠIrF,t=$ސ1wyoE)lIfBGڌ%ȡFwqgrab1DynPbAAʭfg | *o]Smx)emYG[fGuh2eEsmJ+ʦ9H6ϗ#d!R}-mg:CɃ^!ۼk&MQ:nv Sw4eTM2Ohcn+yn1(2i&!JB?Ds+:_~Y`0A:ce|[-xwe ƥz;2BH FҞ0arI^0Lnx,#Jq [rmѻjc;?Ug?-z.e-)-0|X1OrC=%\SkZE]5k݃7z&XAQRQW/q/JF3Jћ>By<Co| CBʢ/vpUMV+rRJ64yk3Cǹ5LDFg@E WV;aoj N8ptU}:S:4Yp _U9ǯǦ7bU&,oy<&T1*.dwe~T^2{`:c;H^( "&#pDN_&^%O\n7roFoV|zk0V2Af'3&w}Boa N{/#ls A{gܔ'`~ jԻekQgMiͣQô #Y}cuICf}i L) lMw+XFQ;/ Qm ϳ9yHvǻvRլo LE2 HҬM&hq p:=+DH}.%c|N&c}{3,52Z?S$7FSf)<2>QACKc~qQ}- <Ёi=P:~@*M@ݽ&řij6"I.;ʯ>:5@&%w )l|P)‹M*YHܑ+][$ʬ:W0Ͱy%Z' -%^hm6;zX,`_wFTNAPT%2U9˃V(fSB>2Xj;ci8Kb]A|"3H =drlWCLS03k]kv?l!s{ymQh@ UOX`&IQRlNwf"3Y?4e3:Ce$C߭WeZEscid-4.3.0.cvs20120311/scripts/CB-Mega/mega-2007-addon.xml.gz0000644000175000017500000003355311727223077022014 0ustar oliveroliverGmega-2007-addon.xmlms۶_'W3Xm=tr{Ƕl%id$wG$L $H~ϡDP;ÝNg p?K/R*/LΦooǛ7_׵M55uP͓RU4V.TuBUJ%>i , :Mb2ׯNjmM~|Wb{mTBN%W7*dF -Vp0%MMR LU*K- 5_]?z~ӯI4_ަM#;]REo?~n۷|m#}-{§T/1+4 y&?)T[}ۊoߥ~JГv0|,j8LO>,s<_L˃Ý-OR{4n.F~8==Hm襮(7NEL΢Tَf&7t\  _PW7L&qjnC/QG3tThTXst|gꞴ.F {x>歌@:;;2T:AT;ߩq i8GU=yN:O-t*sq!c:9_tܰhQ)6\G1`ǾpirPD&N'hmk^І|QlN\*XF:VFoe6'KꥊJ=Ċ=MӨpn4 1ڌRЏlrIp3L 6H ey./UQhckޏ}wT<^);H:p1),bA">舐1w!($XFv1ؕR)}X.U,c# Un;:X@d:EOH=Fp~8"t^UGUk#J[U0yGy]'2վ " R,O@@]o4ߑ%(q`Qg_>E@o!omf}D@ F>՜?i-P5n#H=+4 ֪TUGPMAU,o@gA'gt^ UG 2GZ+jl&g7=6 [wP K!yBнNa(Wַ[ _ɹCW$G|5}d_RE< ͆}Zc! Lrg49PYDu6᳹#i'!Y-gx|ش]TPG\s9t%:"A?q9Eb)8a'~AqGV9RBj8:!Z'R~AKLLĆv9'uT9>==w.m3X!~l fF%Y[z<AOOUg)]==5n;Cy;R%qdؼ8\֬/Yary\\9;#Jla}Se;)Tn?V;@=RQ?tg(ӥvQt@/CMȏ^ D@-u6㽗BtٺU݋\lpr Mkve\WWٓFec9BN@:x/"~ @eB๾EHHvC}$Ң)H۷s"v"MZ?" utg>89C+),2ѐ2}T (O| AFu+rO1w`n)6sv6-umh6pͽPoGD`/mAYf}m_׸-Ԃ 8]Hj`*"B4Rgd+mx`a%KBnmAˈn3m ^*R2nFzĥ"'m]8ZbGMOQmuџ5,Z|)ֳJ7a5Qc4i"-|)tbV9Fҹ"Fz6A'H9G mPc:#)rss^/lL8UUʻ Ey:%f{bN0TN;6҉D΋D{GKSb#0p!v'}æjyy?8TLn耘h ױlYdN,i[b( MF- *ZN|/|Br?Y&AWrQa46%#/QJa͹>19y%-en( l#cptz2S7* mEҥP9GgLS15F:Nm'mɜAI!+$Ue%*y'նbt{ˎ9^8IʙNG/:s<<;/ٰsn Kz8*.OਔaI j*erN1Pz濤yŎ ,oXlC1 ~tzbdEWYk[%3d:2Y>̘l"djs4fLL6}U6t˖\J=ٍ%߬kgbcxpJ>$G O 5WUʗǠ2`u`Za+2g! H90ہ'h-`V֕nҮsbZEL3s' MSP]<&"&z74tYv]hS`Q _?1weV#D/KD].-MC)u3wVNe@e`αō |(x@$¦6ŊO>ȳ,Sh^[5 2T R†E:y*CotsC9loin?\\K?fG@CM7:rZIϫĦ)-40qi_Y;ucAOh^P^d#~V`/-Cl}{|Y>#Cw8 о xCo>l 1:&x[-﫝KQ(^5O} >Տklo)bL ]*\)|{9QΩ\.*BҌ tVj̎2*8z:Rpq`Rxr hVԵ*}Y_)4r[tjƇ-ഉ2Lƪ8 _ AmbG3w5jD LC'G6#b2ԬäLogf?kb:_Ezu2YzXz8=Wqg*p~݉'ʼn&2#e): -%DO͹/U%RCɵ(+C]s.b sΆwfjozF 1JY#}Uo2>{.{Ӻ6?Z2b)1xBr[˱(kK`siڬ CR.56a|F Fc Z]4> Sҹ"i /` (6إpK뒍FPf#I-%6f+72q./eaL !!fSgPnŲ̖٘9O%s s&#zW2}bӖ f.gKx庒|&D"4(d̜y,f`a/ ٙqƔg~V"ygQ=w_/:'C2\#T%FH D]B:{ x[KzKy;ҫEe<2$_ED4u-+eS8|sx#=U+]3|yRlHN+*[94bDPa2]v|G b++Ye+VvA.oC p֩6Xf*HZKA. qԖee>s¶NnH^t㋑^fT1"?0Ҡ Uajƺ;K&n8<kΨʤIrzunt @O܊82:W\ӊ\AOe)`%rhpXؙz*⎉֪uܭ  G9 y*0MnZW;;&μ .\ZuOsꌵ\2uZ<%ۄ m+0Rޒ8א =5Уa۾e#",[vf?ȖYrdRGI FO$$`t(HK?"vFZ; 9ȓ]f$K;gXڇ\ZX%gqXM2LҘsV$QNSPbs_-&c{pfbvoT7hBU!"؛}"x/[yXdVjhucͩW:Hd{\ڲO+.Te/`.xݹtB~68A%hcN ˰~,["KMbވ#Ou<κpJ I֏W]в5b۱Z6}M` sN"5FF[aBeA ]ZET 4ēL b=\1[KԪ8QUrL$MҮ) ͣc7ϫ͸is]y32nZ Tw]ƭBPPjg^r+<%8=e*&of5b0F(GpĮA l)o߸4Hoe6ez;vIJN,#X!Yr˿~"*1Z[!h(Vj_>=c|*G 9|-㑡,h5K2aeAɻl=u0׾EԻٷ![?OEF ZRw[S[+&d-m$׾NJBeU4jh VwSlʳJՖ8pAN[Iw2]8CxYʡ #Tk8 pcB@+w]-?]N9 8H~j{%kC+ \N&Bsghʻ'&Zm?Xz)M8(АPoH #&L|jDcgTu(L+^Á;W"c̃cDJR$.E~ߠ|~&M n$?]78 ψslHob߮@*Bt1U|$f:†gȞjGOz;'BW@|GhydG8ju2kK)ffᓇ-mCSW_G[eAA8м$Ԣ"d#s}ͳ? Ю_]犾R#@!j+"O^+t>ȇb6$2kj! 1C;)QP#vZ[;'6̬l YzG[pQ)CQY+Vgix>"WNbCo@ri*){<|v`wDal[b"R>$2aarn7bHr`giPlobKf*d/&/۵}{[RIEB"C_zԐ L'ai0:hl3΃!a;RL,ȗzJAes`YʟaR߰eQJ̋=!56)ˡۊEj;M!@sY,eXŞ f R:5f%c,ƐeK䘄f' =^+՜gX07a(;uj2#mٵlsֈDɆe}$`pA`yk0QyN̊{33T$aٟH}{Ns$).f?׿ {21ҳS Rhdj.{, -lZEL5?AY@3u3ޛn|t׼-Dk-.>]ٙǣv7L[n uxfns(-7-ˤloKї(=2u>bU5fZ|{l/9 tYbFαe^0T[0֛>WCbЎBˡ!ȮS,D@}=lSy; yėMhG/C#SC  6_`RU "u0Z1xZ":!yog>6 z`^H*?xoDLb4)**SGb 4Qvm˸/d PD>ESuw_'"xb9v-g,ST4{?{G?H1uH A`)X9, 6#<Z`9"}, o?w%x)> {}G!_;ҧBYe /}>\dӜ(5~$ˋKsTB]Bd}>Wf!B~~8vFjs]Vξ~b0;ga(R5O@BխX 𪌌-*-'k̢UwBN79 k^f8WU&,>rāUZK/&e#ˎܭMd&nR,~G@y×=F.lݒiLn;Rb `.99~-n,\fH{ r M%y]GaeiD9/NI'>֪YC3 嶌mMϳ 9 d牥S,D=s*D8%`##&.4x WĆSc[15e䋹O?[ bc\h>FHpkS4 jqamLy?]u+_rnzW K߹gbޝBG|%'HtX 6WlC{5sSqV0jͷ#pdH|׉p<9d^yVԝ>pf#7A:SFмʝ4 p[H(Բ' ֨;?lp'4Íj ar HaV]g tod&#S r]"YOMIԃ r/i FL}ǾIiGm5-[^dԃ}(T5haa.e*?[m$nŲIFE5CE2&zT-R÷⃷ձ)m!oޕG͐VĠȖ97"ţoς cԇޡ:#Ϸ51n3ڏ!-*mJ_Խ;?g$ɦ }g߳@s [^_;܄^t8)Z=||}+k0g)Q1ǖ0Q)X޻7/i.*b@ő<5f姓&xvk2>'b%=<"F/+pނ!tZg鎆Sص@cռ&ވM\6R[OG*֦r4xNB/,1e<AФIGңQ! &06MTGtr<&%cZo-گG[b꧜?1KIDI o@f1n8l7CJ{\haYΗ^N/欖: i/At|='Si?_Y땛ԏTlisDAPu/M5 /IXE>^A@)ƛSi"R3Biji"g%C"(nO cb;(Ext)dpBFԉ=dƻAV+?>Ezv$O|$!G0[ymv.z ֘JPV=)ɂkEn$ib41ӣ|9^̷MO5f࡭} x3x@6|\ 8H\wK|#߾#P7qkM3\T)AIA"cie%-ͻzl.>(5(s*iZEVc}hxIJi869V&GʊbmMQC;[ǗyPI}d5zxYph[>#e\Fޮ9O@֩g(4V824 3 9|g rQdfڳ{Gfl+Sa%fKxo X/aX?f-$"0BёloPE _#PcLdę㤍ROl#3`xnML!s˽E{KcviCtmTyOĻۢ3^Km1ɷ Qu"fqž ՙxpvS\]N7Hlq# uۢ0څ?&0v3Eڦߦʻ_o DvEYg}Ǔɂ3ɛ_qB\bEŠ񖏡c"kGا$uE®J~! 5|A1|@f$&Pc%N bP0}W牶0Hbakq\0@tݒ60 ыe뫢SSP剷^`U*!.rih 3$2#"5f}rM~ 儛`Ȯe@cvFH| mvZS6H^y^^ƍnV ւܷ1(- nی>|LRT5`쉙e-N$(>1m_ TMLV8Woy߫\x۵~`eֳ;|ՏdYH@Su)b˯DL7FN_|13 8j\C7Dͪxqɟ6 TQs"E=ȡ?YO ~ʼn!Jx"bĞ8N'f]bҞ kl YԖQ:ŞJ_wKb r4ٱP2[bY!36_"OVO.&K,cMПE^MB |O=;9Q+xf/jidDvzX2gQi01᜔OE4+H75%SI6 DI yd WxIY^,>G̲S7 Yh2uӤyrlWHnr aY>ƻ" =xd>\ǀWv#*/}+A>h#a-R_tI%# k$ } i FPN @u6EPa6B "D޼?%IfŚ#˓MMgteV, ÄKrp8S(⸷<XNT\cuUSKP(!?ܭB2TջxJX`d"1Uo}S1J 'S +x8~ av>Wx OóM}DW`7Y7\U)3-fAN7E8Hx{GO&GjgQ}1nQI( \1Lσ7R$ܭsGmI0+R#eu|BѭZj%I?Ү9/ $&lˢjDy*y,{#!/h9 2YWgfyJj;/A%I 1ץ]@]EΉu%ȰE7\KvO=za6iGʁ A)kIeb$E~5e^ďO@_Ņ #П|Ddʩ ؔlJO;fZ\blҦGl}xuHLVgỲHL?< *?S鋙|:ͤx3K܋OJoFs@ŝ'dQY|L/6ruXgB5ՙp@o_$dp8_pQNs+PIުHtqrNI,پɬ"p_-g[>rh#@~ҟuM|j5V, (L7 Q`.P[H^[QhS6doܸJū*3, l =ha9p$B2&v; X7ttRMS.H{wH_r{;yø×wS,z7ftR~^H)W)ת(wS :ISMFkf U7߻PXh? (ADvF3ZvN^bi/=]&h.͡B,vNoй #q@MG9z0x8w)kS$3 z ^#A]8ayֿ$6=f8?ԑkIv);ix  Z!؀b4/p1*%-y?y/+icO}fݢ3h43gr# з̟-%}u-\-b@o? dl'-?]K` nEuOrZYRӡ%}?8\viçOxK:xҋ3L}Iod()F >rZaVd6?O'kscid-4.3.0.cvs20120311/scripts/sc_remote_changelog.txt0000644000175000017500000000603311727223077021657 0ustar oliveroliver RCS file: /home/oakden/cvsroot/scripts/sc_remote/sc_remote,v Working file: sc_remote head: 1.10 branch: locks: strict access list: symbolic names: start: 1.1.1.1 mno: 1.1.1 keyword substitution: kv total revisions: 11; selected revisions: 11 description: ---------------------------- revision 1.10 date: 2002/03/24 15:51:19; author: oakden; state: Exp; lines: +175 -11 Modified Shane's fullname function to add extensions to absolute pathnames too. Added status window, and an option to turn it off. Tweaked smallTime parameter again (400ms). Added usage message if called with no arguments. ---------------------------- revision 1.9 date: 2002/03/23 07:55:08; author: oakden; state: Exp; lines: +50 -8 Added isBusy checking before [send]ing any switchBase command. Any interpreters found busy are added to a deferredSwitch array which is processed at the end with timeouts/retries as is done when opening bases. The smallTime parameter was changed to 300ms to make for a maximum wait of approx 3 seconds for a Scid to become un-busy. Changed default for debugging to 0 (as I was doing manually for release) ---------------------------- revision 1.8 date: 2002/03/23 07:10:21; author: oakden; state: Exp; lines: +40 -24 Merged changes from Shane Hudson:- "I've tweaked a few comments (adding a reference to the Scid website and changing SCID to Scid, which is how I spell it even though the name originated as an ancronym), and also added code to the fullname proc adding a suffix, so typing "sc_remote mybase" will look for mybase.si3, or mybase.pgn, etc, adding the first Scid-recognised suffix for which it finds a valid file name." ---------------------------- revision 1.7 date: 2002/03/19 20:55:35; author: oakden; state: Exp; lines: +47 -12 Added command line parsing for scid args. Added small pause to allow new scid to register before rebuilding lists. Fixed bug - isBusy now checks if SCID has finished starting up as well as querying the cursor status. ---------------------------- revision 1.6 date: 2002/03/17 23:25:16; author: oakden; state: Exp; lines: +2 -3 corrected < to <= in for statement in case clipbase isn't highest numbered slot ---------------------------- revision 1.5 date: 2002/03/17 20:07:11; author: oakden; state: Exp; lines: +2 -3 *** empty log message *** ---------------------------- revision 1.4 date: 2002/03/17 20:04:43; author: oakden; state: Exp; lines: +28 -17 debugging function dputs added ---------------------------- revision 1.3 date: 2002/03/17 19:38:21; author: oakden; state: Exp; lines: +1 -1 changed Header tag to Id tag ---------------------------- revision 1.2 date: 2002/03/17 19:37:23; author: oakden; state: Exp; lines: +2 -0 added header tag ---------------------------- revision 1.1 date: 2002/03/17 19:29:42; author: oakden; state: Exp; branches: 1.1.1; Initial revision ---------------------------- revision 1.1.1.1 date: 2002/03/17 19:29:42; author: oakden; state: Exp; lines: +0 -0 Initial import of sc_remote ============================================================================= scid-4.3.0.cvs20120311/scripts/sc_epgn.tcl0000644000175000017500000000173311727223077017253 0ustar oliveroliver#!/bin/sh # sc_epgn: prints the PGN representation of selected games in a # Scid database, with no comments, variations or nonstandard tags, # making it useful for email correspondence chess since you don't # want to send your opponent your notes and analysis. # The "\" at the end of the comment line below is necessary! It means # that the "exec" line is a comment to Tcl but not to /bin/sh. # The next line restarts using tcscid, the Scid Tcl interpreter: \ exec tcscid "$0" "$@" if {$argc < 2} { puts "Usage: sc_epgn database game-number(s)" puts "Example: sc_epgn mybase 1 2 3" exit 1 } set baseName [ lindex $argv 0 ] if [catch { sc_base open -readonly $baseName }] { puts "Error: could not open database" exit 1 } foreach i [lrange $argv 1 end] { if [catch { sc_game load $i }] { puts -nonewline "Error: could not load game number " puts $i exit 1 } puts [sc_game pgn -tags 0 -comments 0 -var 0 -width 70] } scid-4.3.0.cvs20120311/scripts/sc_upgrade.tcl0000644000175000017500000000123411727223077017745 0ustar oliveroliver#!/bin/sh # sc_upgrade: # Upgrades all the Scid databases specified on the command line # from version 2 to version 3. # The "\" at the end of the comment line below is necessary! It means # that the "exec" line is a comment to Tcl but not to /bin/sh. # The next line restarts using tcscid, the Scid Tcl interpreter: \ exec tcscid "$0" "$@" set arg 0 set argc [llength $argv] while {$arg < $argc} { set baseName [file rootname [ lindex $argv $arg ] ] puts "Upgrading: $baseName..." set err [catch {sc_base upgrade $baseName} result] if {$err} { puts "Unable to upgrade $baseName: $result" } else { puts "$baseName was upgraded." } incr arg } scid-4.3.0.cvs20120311/scripts/spliteco.tcl0000644000175000017500000000633611727223077017463 0ustar oliveroliver#!/bin/sh # \ exec tcscid "$0" "$@" # spliteco: # Takes a Scid-format database and produces a number of smaller # databases containing the games grouped according to ECO code. # It can produce 5 (A-E), 50 (A0-E9) or 500 (A00-E99) databases. # Games with no ECO code are not copied. # # Usage: # spliteco [-v] 5|50|500 # # Author: Shane Hudson # Last updated: May 2002 # Scid website: http://scid.sourceforge.net set verbose 0 proc main {} { global argv verbose # Look for optional "-v" argument: if {[string range [lindex $argv 0] 0 1] == "-v"} { set argv [lrange $argv 1 end] set verbose 1 } # Check for two required arguments: if {[llength $argv] != 2} { usage } set basename [lindex $argv 0] set ngroups [lindex $argv 1] if {$ngroups != 5 && $ngroups != 50 && $ngroups != 500} { usage } # Strip suffix if necessary: set suffix [file extension $basename] if {$suffix == ".si3" || $suffix == ".sn3" || $suffix == ".sg3"} { set basename [file rootname $basename] } # Try to open the database: if {[catch {sc_base open -fast -readonly $basename} frombase]} { err "Error opening database \"$basename\": $frombase" exit 1 } switch $ngroups { 5 {split5 $basename $frombase} 50 {split50 $basename $frombase} 500 {split500 $basename $frombase} } sc_base close $frombase } proc err {s} { puts stderr $s } proc log {s} { global verbose if {$verbose} { puts -nonewline stdout $s flush stdout } } proc usage {} { err "spliteco:" err " Splits a Scid-format database into 5, 50 or 500 smaller databases" err " grouped by ECO code. Games with no ECO code are not copied." err " For progress feedback, add the \"-v\" (verbose) option." err "Usage: spliteco \[-v\] 5|50|500" exit 1 } proc split5 {basename frombase} { foreach major {A B C D E} { log "ECO range $major: " set ngames [split $frombase ${basename}_$major ${major}00 ${major}99] log " copied [format %6d $ngames] games to 1 database\n" } } proc split50 {basename frombase} { foreach major {A B C D E} { log "ECO range $major: " set ngames 0 foreach minor {0 1 2 3 4 5 6 7 8 9} { set code $major$minor incr ngames [split $frombase ${basename}_$code ${code}0 ${code}9] log "." } log " copied [format %6d $ngames] games to 10 databases\n" } } proc split500 {basename frombase} { foreach major {A B C D E} { log "ECO range $major: " set ngames 0 foreach minor {0 1 2 3 4 5 6 7 8 9} { foreach subcode {0 1 2 3 4 5 6 7 8 9} { set code $major$minor$subcode incr ngames [split $frombase ${basename}_$code $code $code] } log "." } log " copied [format %6d $ngames] games to 100 databases\n" } } proc split {frombase newbasename startECO endECO} { if {[catch {sc_base create $newbasename} tobase]} { err "Error creating database \"$newbasename\": $tobase" exit 1 } sc_base switch $frombase sc_filter reset sc_search header -eco [list $startECO $endECO] set ngames [sc_filter size] if {[catch {sc_filter copy $frombase $tobase} err]} { err "Error copying games to \"$newbasename\": $err" exit 1 } sc_base close $tobase return $ngames } main scid-4.3.0.cvs20120311/scripts/pgnfix.py0000644000175000017500000001551611727223077017002 0ustar oliveroliver#!/usr/bin/env python # pgnfix, by John Wiegley # version 1.2, 2001.08.28 # # This script will take a PGN file (typically gigantic), and perform # as many normalizations and spelling corrections on the player's # names as possible. If there is embedded rating information in the # player's name, it will be extracted and moved to the correct field. # If you have a scid spelling.ssp file, spelling corrections will also # take place. It will even extract dates that have been mistakenly # put in the Site or Event field, and move them to the Date field. import sys import string import re if len(sys.argv) < 2: sys.stderr.write("usage: pgnfix file.pgn [spelling.ssp]\n") sys.stderr.write("pgnfix cleans up a PGN file, writing clean games\n") sys.stderr.write("to stdout and games with errors to stderr.\n") sys.exit(1) # If a field matches one of these values, discard the field altogether bogus = { "Round": "[?-]", "Date": "\?\?\?\?\.\?\?\.\?\?", "Site": "\?", "Event": "\?", } # The preferred ordering for the known fields order = [ "Event", "Site", "Date", "Round", "White", "WhiteElo", "Black", "BlackElo", "TimeControl", "Result", "FEN", "ECO", "Opening", "Variation", ] headers = {} specials = {} # Grab all the spelling names spelling = {} if len(sys.argv) == 3: spell = open(sys.argv[2], "r") in_player = 0 while 1: line = spell.readline() if not line: break if re.match("@PLAYER", line): in_player = 1 elif re.match("### END OF PLAYER SECTION", line): break elif in_player: match = re.match("^([A-Z][^,#]+)([^#]*)", line) if match: full = match.group(0) last, first = match.groups() first = string.strip(first) full = string.strip(full) last = string.strip(last) if first: for name in (full, last, last + " " + first, last + ", " + first[0], last + " " + first[0]): name = string.lower(name) if spelling.has_key(name): del spelling[name] else: spelling[name] = full fd = open(sys.argv[1], "r") current = [] bad_lines = [] in_body = 0 error = 0 while 1: line = fd.readline() if not line: break if not in_body and re.match("\s*$", line): in_body = 1 if in_body: if line[0] == '[': in_body = 0 # We've seen a header line; output whichever game was seen # last if current: out = sys.stdout if error: out = sys.stderr error = 0 out.write(string.join(current, "")) current = [] bad_lines = [] else: if headers: for field, value in specials.items(): if not headers.has_key(field): headers[field] = value for field in order: if headers.has_key(field): current.append('[%s "%s"]\n' % (field, headers[field])) del headers[field] for field, value in headers.items(): current.append('[%s "%s"]\n' % (field, value)) current.extend(bad_lines) headers = {} specials = {} current.append(line) continue # See whether we have a broken header line if line[0] == '[' and line[-2] != ']': next = fd.readline() if line[0] != '[' and line[-2] == ']': line = line[:-1] + next else: # Just skip both error = 1 bad_lines.append(line) bad_lines.append(next) continue match = re.match('\[(\S+)\s+"(.*)"\]', line) if not match: error = 1 bad_lines.append(line) continue field, value = match.groups() if value: if field in ("Event", "Site"): match = re.search("\(?([0-9]{4})\.([0-9]+)\.([0-9]+)\)?", value) if match: year = int(match.group(3)) month = int(match.group(2)) day = int(match.group(1)) specials["Date"] = "%04d.%02d.%02d" % (year, month, day) value = re.sub("\(?([0-9]{4})\.([0-9]+)\.([0-9]+)\)?", "", value) match = re.search("\(?([0-9]+)/([0-9]+)/([0-9]+)\)?", value) if match: year = int(match.group(3)) day = int(match.group(2)) month = int(match.group(1)) if month > 12: t = day day = month month = t if year < 100 and year > 20: year = 1900 + year if year < 10: year = 2000 + year specials["Date"] = "%04d.%02d.%02d" % (year, month, day) value = re.sub("\(?([0-9]+)/([0-9]+)/([0-9]+)\)?", "", value) value = string.strip(value) if field in ("White", "Black"): name = re.sub("[MW][0-9]{5}", "", value) # Extract any embedded Elo rating match = re.search("(^|[, {(])([1-9][0-9]{3})($|[, })])", name) if match: specials[field + "Elo"] = match.group(2) name = re.sub("(^|[ {(])([1-9][0-9]{3})($|[ })])", "", name) name = re.sub("(.+?),\s*(.+?)&", "\\2 & \\1", name) if not re.search("[A-Z]{4}", name): match = re.search("[-A-Za-z.'` _]+" "(,\s*[-A-Za-z.'` _]+)?(\s*[1-3])?", name) if match: name = match.group(0) name = re.sub("_", " ", name) name = re.sub("\.", "", name) name = re.sub("([A-Za-z])([0-9])", "\\1 \\2", name) name = string.strip(name) name = re.sub("^([A-Z]+?)\s*([A-Z][a-z].+)", "\\2, \\1", name) name = re.sub(",\s*([GI]M)?$", "", name) name = string.strip(name) t = string.lower(name) if spelling.has_key(t): name = spelling[t] headers[field] = name elif not bogus.has_key(field) or not re.search(bogus[field], value): headers[field] = value if current: out = sys.stdout if error: out = sys.stderr error = 0 out.write(string.join(current, "")) current = [] bad_lines = [] fd.close() print scid-4.3.0.cvs20120311/scripts/sc_eco.tcl0000644000175000017500000000146011727223077017065 0ustar oliveroliver#!/bin/sh # sc_eco: # Reclassify the ECO code of all games in a Scid database. # # Usage: sc_spell # The next line restarts using tcscid: \ exec tcscid "$0" "$@" set args [llength $argv] if {$args != 2} { puts stderr "Usage: sc_eco " exit 1 } # Open the ECO file: set ecofile [lindex $argv 1] if {[catch {sc_eco read $ecofile} result]} { puts stderr "Error reading ECO file: $result" exit 1 } # Open the database: set basename [lindex $argv 0] if {[catch {sc_base open $basename} result]} { puts stderr "Error opening database \"$basename\": $result" exit 1 } if {[sc_base isReadOnly]} { puts stderr "Error: database \"$basename\" is read-only." exit 1 } puts "Classifying games..." puts [sc_eco base 1 1] sc_base close scid-4.3.0.cvs20120311/scripts/sc_remote.tk0000644000175000017500000004235511727223077017456 0ustar oliveroliver#!/bin/sh # Emacs please open me in -*-Tcl-*- mode # the next line restarts using wish if it is in the path \ exec wish "$0" ${1+"$@"} # ############################################################################### # # # Copyright (C) 2002 Mark Norman Oakden. # # 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. # ############################################################################### # # sc_remote: Load a scid databases in an existing Scid instances # # usage: sc_remote [-nostatus] [ [ [DB ... ] DB ] DB ] # # Scid is a free chess database app. For more information, # visit the Scid website: http://scid.sourceforge.net/ # # ############################################################################### # # We are running in wish but don't need the Tk window (although we have to # use wish to get the winfo and send commands). # wm withdraw . # set debugging 0 # # showStatus determines whether a status window is displayed or not # set showStatus 0 # # msgWidth is the width of status messages in the status window # set msgWidth 25 # # textFont should be a fixed width font for the status window # set textFont [list fixed 11 normal roman] # # debug proc # proc dputs { args } { global debugging if {$debugging} { eval puts $args } } # # we will wait for smallTime between retries of a busy interpreter # set smallTime 400 ;# in milliseconds 1000 == 1 second # # we will retry a maximum of maxRetries times for a busy interpreter to # become unbusy # set maxRetries 10 # ############################################################################### # # Functions: # proc usage {} { set me [file tail [info script]] puts stdout "Usage: $me \[-nostatus|-status\] \[\] \[DB \[DB ...\]\]" exit } proc dismissStatusWin {} { global statusWinDismissed wm withdraw . set statusWinDismissed 1 } proc makeStatusWindow { {lines 4} } { global showStatus msgWidth textFont if { ! $showStatus } { return } dputs "making status window height=$lines" wm protocol . WM_DELETE_WINDOW dismissStatusWin label .name -text "sc_remote Status" text .t -wrap none -width [expr $msgWidth + 32] -height $lines \ -font $textFont -background \#ffffff \ -xscrollcommand [list .x set] \ -yscrollcommand [list .y set] scrollbar .x -orient horizontal -command [list .t xview] scrollbar .y -command [list .t yview] grid .name - grid .y -row 1 -column 1 -sticky ns grid .x -row 2 -column 0 -sticky ew grid .t -row 1 -column 0 -sticky news button .close -command dismissStatusWin -text "Dismiss" grid .close - grid columnconfigure . 0 -weight 1 grid columnconfigure . 1 -weight 0 grid rowconfigure . 1 -weight 1 grid rowconfigure . 2 -weight 0 # tags for message colours .t tag configure green -foreground \#228b22 .t tag configure amber -foreground \#ff8c00 .t tag configure red -foreground \#8b0000 # .t configure -state disabled centreWin . update } proc setStringWidth { str {width 12} {padchar " "} } { # padchar is assumed of length 1 later so ensure it is now if { [string length $padchar] != 1 } { set padchar " " } if { [set l [string length $str]] == $width } { return $str } if { $l > $width } { return [string range $str 0 [expr $width - 1]] } else { # use a for loop rather than string repeat for back compatibility # in Tcl/Tk versions for { set i $l } { $i < $width } { incr i } { append str $padchar } return $str } } # tag shold be one of the tags defined in the makeStatusWindow function proc updateStatus { file mesg {tag amber} } { global showStatus msgWidth if { ! $showStatus } { return } set mesg [setStringWidth $mesg $msgWidth] set t .t $t configure -state normal if { [set ind [$t search $file 1.0 end]] != "" } { # update the existing line for $file set l [lindex [split $ind .] 0] $t delete $l.0 $l.$msgWidth $t insert $l.0 $mesg $tag #$t see $l.0 } else { # add a new line for $file $t insert end $mesg $tag $t insert end " " $t insert end $file $t insert end "\n" #$t see end } $t configure -state disabled raise . update } # # centreWin is borrowed from Scid source (misc.tcl) # and is Copyright (C) Shane Hudson # # centreWin: # Centers a window on the screen. # proc centreWin {w} { wm withdraw $w update idletasks set x [expr {[winfo screenwidth $w]/2 - [winfo reqwidth $w]/2 \ - [winfo vrootx .]}] set y [expr {[winfo screenheight $w]/2 - [winfo reqheight $w]/2 \ - [winfo vrooty .]}] wm geom $w +$x+$y wm deiconify $w } # # getScidList returns a list of Scid interpreters on the current display # proc getScidList {} { set ret [list] foreach i [winfo interps] { if { [validScidInterp $i] } { lappend ret $i } } dputs "Found the following list of scid interpreters /$ret/" return $ret } # # validScidInterp tests that an interpreter found on the display is # indeed a contactable Scid. First the name is matched against the # pattern "scid*", then a send is tried with the "sc_info version" # command. Finally, a variable (scidExeDir) which is set within the # scid script is tested for existance. If all three of these tests # succeed we assume we have a Scid. # proc validScidInterp { scid } { if { ! [string match "scid*" $scid] } { return 0 # we "catch" the first [send] since we don't yet know if [send] # works } elseif { [catch {send $scid sc_info version} res] } { return 0 } elseif { ! [send $scid info exists scidExeDir] } { return 0 } else { return 1 } } # # querySlotStatus interrogates a scid interpreter for the list of files # loaded in its slots. # # It will return a list of 2*N elements, where N is the number of non- # clipbase slots, in the form (where $scid is the name of the interp) # # $scid,1 filename1 $scid,2 - $scid,3 filename2 $scid,4 - # # i.e in a suitable form for array set... # proc querySlotStatus { scid } { set ret [list] set cb [send $scid sc_info clipbase] set max [send $scid sc_base count total] for { set i 1 } { $i <= $max } { incr i } { if { $i == $cb } { continue } lappend ret $scid,$i set f [send $scid sc_base filename $i] # [] is assumed to be [empty] or a translation since # we shouldn't see [clipbase] (or translation thereof) here if { [string match {\[*\]} $f] } { set f "-" } lappend ret $f } return $ret } # # fillSlotTable fills up a slots array with all slot info for Scids # on this display # # note that [array set] will add to an existing array, overwriting # elements if necessary # proc fillSlotTable { arrName } { upvar $arrName arr foreach scid [getScidList] { array set arr [querySlotStatus $scid] } } # # index slot table creates an array having keys which are the # values in the slots array and whose values are lists of the # indexes in the slots array with that value # proc indexSlotTable { slotArrName indexArrName } { upvar $slotArrName slots upvar $indexArrName index foreach {key val} [array get slots] { lappend index($val) $key } } # # isBusy tests a Scid interp for busy status (assumed busy if cursor of . # is "watch") - actually this isn't quite sufficient since scid may be # busy starting up - we also need to check the startup window for the # "Startup completed" message... # proc isBusy { interp } { set ret 0 if { [send $interp winfo exists .splash.t] } { # splash screen text widget exists see if startup is finished set cmd [list .splash.t search "Startup complete" 1.0 end] if { "[send $interp $cmd]" == "" } { # startup isn't complete yet - assume busy dputs "isBusy: no \"Startup complete\" message - assume busy" return 1 } } else { # there was no splash screen yet - assume busy dputs "isBusy: no splash screen text widget - assume busy" return 1 } # if we got here then there is a splash screen and it contains # "Startup complete". Now we go by the cursor status dputs "isBusy - using cursor status to determine busy status" return [expr { "watch" == "[send $interp . cget -cursor]" }] } # # ldelete removes all occurences of an item from a list # proc ldelete { li el } { upvar $li l while { [set indx [lsearch -exact $l $el]] != -1 } { set l [lreplace $l $indx $indx] } return } # # The fullname function is stolen from Scid source (end.tcl) # and is Copyright (C) Shane Hudson # # fullname: # Given a file name, returns its absolute name. # proc fullname {fname} { # modified MNO - don't immediately return on absolute pathname # - try to add suffix in that case too. if { [file pathtype $fname] != "absolute"} { set old [pwd] if {[catch {cd [file dirname $fname]}]} { return $fname } set fname [file join [pwd] [file tail $fname]] catch {cd $old} } # Try adding a suffix like ".si3" or ".pgn" to the filename if # it has no extension, by checking if a file by that name with # a known Scid-readable extension exists: if {[file extension $fname] == ""} { foreach suffix [list si3 si pgn PGN pgn.gz epd EPD epd.gz sor] { if {[file exists "$fname.$suffix"]} { dputs "Assuming suffix \".$suffix\" for \"$fname\"" append fname ".$suffix" break } } } return $fname } # ############################################################################### # # find which databases are in which slots and store in slots array:- # the slots array and slotIndex array are assumed not to pre-exist! # array set slots {} array set slotIndex {} fillSlotTable slots indexSlotTable slots slotIndex # # create the to-open list from our command line args. Filter off any # arguments which start with a "-" into scidArgs list which will be # passed to any new Scid we invoke. If we see a "-nostatus" argument # switch off the status Window and don't pass this arg to Scid. # if { $argc == 0 } { usage } # set toOpen [list] set scidArgs [list] foreach arg $argv { if { [string match "-*" $arg] } { if { "-nostatus" == $arg } { set showStatus 0 } elseif { "-status" == $arg } { set showStatus 1 } else { lappend scidArgs $arg } } else { set f [fullname $arg] lappend toOpen $f } } # # make a statusWindow if one is required # makeStatusWindow [llength $toOpen] # # initialise status window # # updateStatus already tests $showStatus and exits if it is 0 however, # I'll check it again here for speed... # if { $showStatus } { foreach db $toOpen { updateStatus $db "Testing..." amber } } # # for each database DB in the to-open list, If DB is already open # and the Scid is not open, we switch the active slot to that with DB, # raise the Scid instance and remove the DB from to-open list. If # the instance was busy, we add an entry to the deferredSwitch array # to indicate a slot to try to switch in that Scid after all other # operations are complete. # # the deferredSwitch array will contain one entry per Scid interpreter # that was found to be busy at this stage, whose value is set to the # slot number to switch to. We only store one slot per interp since # it doesn't make sense to switch to more than one slot. # catch {unset deferredSwitch} array set deferredSwitch {} dputs "Checking if the requested databases are already open in a Scid" foreach db $toOpen { # if the file is .s? or .s?3, strip the extension before comparing # since Scid reports these without extensions in if { [string match "*.s?*" $db] } { set cdb [file rootname $db] } else { set cdb $db } if { [info exists slotIndex($cdb)] } { updateStatus $db "Already open..." amber dputs "The database $db is open..." foreach {interp slot} [split [lindex $slotIndex($cdb) 0] \,] \ {break} dputs " ... in $interp slot $slot, attempting to switch to it" if { [isBusy $interp] } { updateStatus $db "Scid busy..." amber dputs " ... interp $interp is busy - deferring switch to end" set deferredSwitch($interp) $slot } else { #send $interp sc_base switch $slot send $interp ::file::SwitchToBase $slot send $interp ::tree::refresh send $interp ::windows::stats::Refresh send $interp ::windows::switcher::Refresh send $interp wm deiconify . send $interp update send $interp raise . updateStatus $db "Done (Displayed)" green } ldelete toOpen $db } } # # while the to-open list is not empty, if there are entries in the # free slot list, load first DB in to-open list in that Scid instance # and delete it from the to-open list. If no slots are available exec # a new Scid instance with DB as command line arg. After each DB # update the slot listings and indexes # while { [llength $toOpen] > 0 } { dputs "Dealing with remaining non-open databases /$toOpen/ ..." set next [lindex $toOpen 0] dputs " next database is $next" ldelete toOpen $next # if there are free slots - use one... if { [info exists slotIndex(-) ] } { foreach {interp slot} [split [lindex $slotIndex(-) 0] \,] { # test each interp for busy status, once per free slot # until we get a non-busy interp if { [isBusy $interp] } { dputs "skipping interpreter $interp - it was busy (first pass)" continue } else { dputs "using interpreter $interp - it isn't busy (first pass)" break } } # if we got here, either interp is a non-busy interp # or *all* interps were busy when we checked before. for # safety, test for busy status. set iterations 0 dputs "(Re-)Checking busy status of $interp" while { [isBusy $interp] && ( $iterations < $maxRetries ) } { dputs "$interp is busy, waiting - iteration number $iterations" after $smallTime incr iterations } # If interp is still busy now, give up and open a new scid # otherwise open $next in $interp if { [isBusy $interp] } { # The bracketing and eval is required because:- # 1. scidArgs may be a list and # 2. $next may contain spaces. updateStatus $next "Done (Open new Scid)" green dputs "Gave up waiting for interp $interp exec a new one for $next" eval {exec nohup scid} $scidArgs {$next} & # wait a short time for the new Scid to startup so that it # will show up in the updated slot list dputs "waiting 250ms" after 250 } else { dputs "$interp is not busy - opening new db $next in it" updateStatus $next "Done (Open existing Scid)" green send $interp wm deiconify . send $interp ::file::Open $next send $interp raise . } } else { # no interps with free slots were available so background # execute scid to open $next. dputs "Couldn't find any free slots, start a new interp for $next" updateStatus $next "Done (Open new Scid)" green eval {exec nohup scid} $scidArgs {$next} & # wait a short time for the new Scid to startup so that it # will show up in the updated slot list dputs "waiting 250ms" after 250 } # update the slot list/index dputs "Updating lists" catch {unset slots} array set slots {} fillSlotTable slots # catch {unset slotIndex} array set slotIndex {} indexSlotTable slots slotIndex } # # Try the deferred switches again, this time with delays/retries # (Multiple consecutive close brackets hold no fear for lisp hackers!) # while { [llength [set l [array names deferredSwitch]]] > 0 } { dputs "Processing deferred switch operations" set interp [lindex $l 0] set slot $deferredSwitch($interp) set iterations 0 dputs "Checking busy status of $interp" while { [isBusy $interp] && ( $iterations < $maxRetries ) } { dputs "$interp is busy, waiting - iteration number $iterations" updateStatus $slots($interp,$slot) "Scid busy - Waiting..." amber after $smallTime incr iterations } # If interp is still busy now, give up, otherwise execute a switchBase # in the interp. if { ! [isBusy $interp] } { dputs "inter $interp is now not busy - switching it to slot $slot" updateStatus $slots($interp,$slot) "Done (Deferred Display)" green send $interp ::file::SwitchToBase $slot send $interp ::tree::refresh send $interp ::windows::stats::Refresh send $interp ::windows::switcher::Refresh send $interp wm deiconify . send $interp update send $interp raise . } else { updateStatus $slots($interp,$slot) "Gave up - Scid still busy" red dputs "interp $interp still busy - giving up on switching slots" } unset deferredSwitch($interp) } # # check if the status window was intially displayed and has now been # dismissed, and if not, wait until it is if { ! [info exists statusWinDismissed] && $showStatus } { # don't exit until statusWin is dismissed raise . vwait statusWinDismissed } after 500 exit # ############################################################################### scid-4.3.0.cvs20120311/scripts/scidpgn.tcl0000644000175000017500000000152311727223077017261 0ustar oliveroliver#!/bin/sh # scidpgn: prints the PGN representation of all games in a # Scid database, with all comments and variations. # The "\" at the end of the comment line below is necessary! It means # that the "exec" line is a comment to Tcl but not to /bin/sh. # The next line restarts using tcscid, the Scid Tcl interpreter: \ exec tcscid "$0" "$@" if {$argc != 1} { puts "Usage: scidpgn database" puts "Example: scidpgn mybase" exit 1 } set baseName [file rootname [ lindex $argv 0 ]] if {[catch { sc_base open -fast -readonly $baseName } err]} { puts "Error: could not open database: $err" exit 1 } for {set i 1} {$i <= [sc_base numGames]} {incr i} { if {[catch { sc_game load $i }]} { puts "Error: could not load game number $i" exit 1 } puts [sc_game pgn -tags 1 -comments 1 -var 1 -width 75] } scid-4.3.0.cvs20120311/scripts/eco2pgn.py0000644000175000017500000000232511727223077017036 0ustar oliveroliver#!/usr/bin/env python # # eco2pgn # This file converts the Scid openings classification file (scid.eco) # and converts it into a PGN file. The main advantage of having it as # a PGN file is the ability to explore it with the Tree window in Scid. # # Usage: eco2pgn scid.eco > scideco.pgn # # Contributed by John Wiegley, 2001.08.13 # import re import sys if len(sys.argv) < 2: sys.stderr.write("usage: eco2pgn file.eco > file.pgn\n") sys.stderr.write("eco2pgn takes a Scid openings classification file,\n") sys.stderr.write("and writes it in PGN format to standard output.\n") sys.exit(1) fd = open(sys.argv[1], "r") while 1: line = fd.readline() if not line: break line = line[:-1] if re.match("\s*(#|$)", line): continue match = re.match("(\S+)\s+\"([^\"]+)\"(\s+.+)?$", line) if match: eco, variation, cont = match.groups() if not cont: cont = '' while not cont or cont[-1] != '*': cont = cont + ' ' + fd.readline()[:-1] if cont[-1] == '*' and cont[-2] != ' ': cont = cont[:-1] + ' *' print '[ECO "%s"]' % eco print '[Variation "%s"]' % variation print '[Result "*"]' print print cont print scid-4.3.0.cvs20120311/scripts/sc_addmove.tcl0000644000175000017500000000256111727223077017741 0ustar oliveroliver#!/bin/sh # sc_addmove: # Tcl script to add moves to a game in a Scid chess game database. # Usage: sc_addmove database-name game-number moves... # This is Tcl code. # The "\" at the end of the comment line below is necessary! It means # that the "exec" line is a comment to Tcl but not to /bin/sh. # The next line restarts using tcscid, the Scid Tcl interpreter: \ exec tcscid "$0" "$@" if {$argc < 3} { puts "Usage: sc_addmove database gameNumber move(s)" puts "Example: sc_addmove mybase 1 Nxe4 Bxe4" exit } set baseName [ lindex $argv 0 ] set gameNumber [ lindex $argv 1 ] set moveStr [ join [lrange $argv 2 end ] ] # Open the database and load the specified game: if [catch { sc_base open $baseName }] { puts "Error: could not open the Scid database: $baseName" exit } if [catch { sc_game load $gameNumber }] { puts "Error: could not load game number $gameNumber" exit 1 } # Try to add each move to the end of the game:: sc_move end foreach i [lrange $argv 2 end] { if [catch { sc_move addSan $i }] { puts "Error: could not add the move: $i" exit 1 } } # Save the game and close the database: if [catch { sc_game save $gameNumber }] { puts "Error: could not save the game" exit 1 } if [catch {sc_base close}] { puts "Error: could not close the game file" exit 1 } puts "Moves successfully added." scid-4.3.0.cvs20120311/scripts/spf2spi.tcl0000644000175000017500000000313011727223077017214 0ustar oliveroliver#!/bin/sh # # spf2spi: # Generate SPI (Scid Photo Index) file from the SPF file. # SPI file should be placed in the same directory as SPF file. # # Usage: spf2spi filename.spf > filename.spi # Example: spf2spi historic.spf > historic.spi # \ exec tclsh "$0" "$@" proc trimString {data} { #convert names tolower case and strip the first two blanks. set data [string tolower $data] set strindex [string first "\ " $data] set data [string replace $data $strindex $strindex] set strindex [string first "\ " $data] set data [string replace $data $strindex $strindex] return $data } if {$argc != 1} { puts stderr "ERROR! spf2spi called with wrong number of arguments!" puts stderr "" puts stderr " spf2spi:" puts stderr " Generate SPI (Scid Photo Index) file from the SPF file." puts stderr " SPI file should be placed in the same directory as SPF file." puts stderr "" puts stderr " Usage: spf2spi filename.spf > filename.spi" puts stderr " Example: spf2spi historic.spf > historic.spi" exit 1 } set fd [open "$argv"] while {[gets $fd line] >= 0} { if { [regexp {^photo \"(.*)\" \{$} $line -> name] } { set begin [tell $fd] while {1} { set end [tell $fd] gets $fd line if {[regexp {.*\}.*} $line ]} {break} } set photobegin($name) $begin set photosize($name) [expr $end - $begin ] } } foreach { name } [array names photobegin] { puts "set \"photobegin([trimString $name ])\" $photobegin($name)" puts "set \"photosize([trimString $name ])\" $photosize($name)" puts "set \"spffile([trimString $name ])\" \"\$fname\"" } scid-4.3.0.cvs20120311/scripts/sc_comment.tcl0000644000175000017500000000263211727223077017763 0ustar oliveroliver#!/bin/sh # sc_comment: # Tcl script to add comment to a game in a Scid chess game database. # Usage: sc_addmove database-name game-number comment # This is Tcl code. # The "\" at the end of the comment line below is necessary! It means # that the "exec" line is a comment to Tcl but not to /bin/sh. # The next line restarts using tcscid, the Scid Tcl interpreter: \ exec tcscid "$0" "$@" if {$argc != 3} { puts "Usage: sc_addmove database gameNumber comment" puts "Example: sc_addmove mybase 1 \"Comment ...\"" exit } set baseName [ lindex $argv 0 ] set gameNumber [ lindex $argv 1 ] set commStr [ join [lrange $argv 2 end ] ] # Open the database and load the specified game: if [catch { sc_base open $baseName }] { puts "Error: could not open the Scid database: $baseName" exit } if [catch { sc_game load $gameNumber }] { puts "Error: could not load game number $gameNumber" exit 1 } # Try to add each move to the end of the game:: sc_move end sc_pos setComment $commStr #foreach i [lrange $argv 2 end] { # if [catch { sc_move addSan $i }] { # puts "Error: could not add the move: $i" # exit 1 # } #} # Save the game and close the database: if [catch { sc_game save $gameNumber }] { puts "Error: could not save the game" exit 1 } if [catch {sc_base close}] { puts "Error: could not close the game file" exit 1 } puts "Moves successfully added." scid-4.3.0.cvs20120311/scripts/sc_maketree.tcl0000644000175000017500000001116711727223077020121 0ustar oliveroliver#!/bin/sh # sc_maketree: # This program takes a database name as its parameter and executes # tree searches for many common positions, then saves the contents # of the tree cache to the appropriate file (with a .stc suffix). # # This can take a long time, but saves time when searching for any # of the standard positions searched for here. This script is # probably most useful as part of a batch job that automatically # rebuilds a large database of games periodically. # The "\" at the end of the comment line below is necessary! It means # that the "exec" line is a comment to Tcl but not to /bin/sh. # The next line restarts using tcscid, the Scid Tcl interpreter: \ exec tcscid "$0" "$@" # Here is the list of standard positions searched for: set standardLines { {} {1.c4} {1.c4 c5} {1.c4 c5 2.Nf3} {1.c4 e5} {1.c4 Nf6} {1.c4 Nf6 2.Nc3} {1.d4} {1.d4 d5} {1.d4 d5 2.c4} {1.d4 d5 2.c4 c6} {1.d4 d5 2.c4 c6 3.Nf3} {1.d4 d5 2.c4 c6 3.Nf3 Nf6} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 e6} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 e6 5.e3} {1.d4 d5 2.c4 e6} {1.d4 d5 2.c4 e6 3.Nc3} {1.d4 d5 2.c4 e6 3.Nc3 Nf6} {1.d4 d5 2.c4 e6 3.Nf3} {1.d4 d5 2.c4 dxc4} {1.d4 d5 2.c4 dxc4 3.Nf3} {1.d4 d5 2.c4 dxc4 3.Nf3 Nf6} {1.d4 d5 2.Nf3} {1.d4 d5 2.Nf3 Nf6} {1.d4 d5 2.Nf3 Nf6 3.c4} {1.d4 d6} {1.d4 d6 2.c4} {1.d4 Nf6} {1.d4 Nf6 2.c4} {1.d4 Nf6 2.c4 c5} {1.d4 Nf6 2.c4 d6} {1.d4 Nf6 2.c4 e6} {1.d4 Nf6 2.c4 e6 3.Nc3} {1.d4 Nf6 2.c4 e6 3.Nc3 Bb4} {1.d4 Nf6 2.c4 e6 3.Nf3} {1.d4 Nf6 2.c4 g6} {1.d4 Nf6 2.c4 g6 3.Nc3} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2} {1.d4 Nf6 2.c4 g6 3.Nf3} {1.d4 Nf6 2.Bg5} {1.d4 Nf6 2.Bg5 Ne4} {1.d4 Nf6 2.Nf3} {1.d4 Nf6 2.Nf3 e6} {1.d4 Nf6 2.Nf3 g6} {1.e4} {1.e4 c5} {1.e4 c5 2.c3} {1.e4 c5 2.Nc3} {1.e4 c5 2.Nc3 Nc6} {1.e4 c5 2.Nf3} {1.e4 c5 2.Nf3 d6} {1.e4 c5 2.Nf3 d6 3.d4} {1.e4 c5 2.Nf3 d6 3.d4 cxd4} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6} {1.e4 c5 2.Nf3 d6 3.Bb5+} {1.e4 c5 2.Nf3 e6} {1.e4 c5 2.Nf3 Nc6} {1.e4 c5 2.Nf3 Nc6 3.d4} {1.e4 c5 2.Nf3 Nc6 3.Bb5} {1.e4 c6} {1.e4 c6 2.d4} {1.e4 c6 2.d4 d5} {1.e4 c6 2.d4 d5 3.e5} {1.e4 c6 2.d4 d5 3.Nc3} {1.e4 c6 2.d4 d5 3.Nd2} {1.e4 d5} {1.e4 d6} {1.e4 d6 2.d4} {1.e4 d6 2.d4 Nf6} {1.e4 d6 2.d4 Nf6 3.Nc3} {1.e4 e5} {1.e4 e5 2.Nf3} {1.e4 e5 2.Nf3 Nc6} {1.e4 e5 2.Nf3 Nc6 3.d4} {1.e4 e5 2.Nf3 Nc6 3.Bb5} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O} {1.e4 e5 2.Nf3 Nc6 3.Bc4} {1.e4 e5 2.Nf3 Nf6} {1.e4 e6} {1.e4 e6 2.d4} {1.e4 e6 2.d4 d5} {1.e4 e6 2.d4 d5 3.Nc3} {1.e4 e6 2.d4 d5 3.Nc3 Bb4} {1.e4 e6 2.d4 d5 3.Nc3 Nf6} {1.e4 e6 2.d4 d5 3.Nd2} {1.e4 e6 2.d4 d5 3.Nd2 c5} {1.e4 e6 2.d4 d5 3.Nd2 Nf6} {1.e4 Nf6} {1.e4 Nf6 2.e5} {1.e4 Nf6 2.e5 Nd5} {1.Nf3} {1.Nf3 Nf6} } if {$argc < 1} { puts "Usage: sc_maketree database" puts "Example: sc_maketree mybase" exit } set baseName [ lindex $argv 0 ] if [catch {set baseNum [sc_base open -readonly $baseName]}] { puts "Error: could not open database" exit } # file delete -- "${baseName}.stc" puts "Adding common positions to the tree cache:" puts "" foreach line $standardLines { sc_game new if {[llength $line] > 0} { foreach move $line {sc_move addSan $move} puts -nonewline "$line: " } else { puts -nonewline "(Starting position): " } sc_tree search puts "[sc_filter count] games" } if {[catch {sc_tree write} result]} { puts "Error writing cache file: $result" } else { puts -nonewline "$baseName.stc: [sc_tree positions] positions, " puts -nonewline "$result bytes: " set pergame [expr double($result) / double([sc_base numGames])] puts -nonewline [format "%.2f" $pergame] puts " bytes per game" } sc_base close $baseNum scid-4.3.0.cvs20120311/scripts/sc_tree.tcl0000644000175000017500000000243011727223077017254 0ustar oliveroliver#!/bin/sh # \ exec tcscid "$0" "$@" proc usage {} { puts stderr {Usage: sc_tree [-eco ] [-pgn ] [moves...]} puts stderr {Example: sc_tree -pgn out.pgn mygames 1.e4 e6} exit 1 } set ecoFile "" set pgnFile "" if {[llength $argv] == 0} { usage } while {[lindex $argv 0] == "-eco" || [lindex $argv 0] == "-pgn"} { if {[llength $argv] < 3} { usage } if {[lindex $argv 0] == "-eco"} { set ecoFile [lindex $argv 1] } else { set pgnFile [lindex $argv 1] } set argv [lrange $argv 2 end] } set base [lindex $argv 0] set argv [lrange $argv 1 end] if {[llength $argv] > 0 && [catch {eval sc_move addSan $argv} err]} { puts stderr "Error in move list: $err" exit 1 } if {$ecoFile != ""} { if {[catch {sc_eco read $ecoFile} err]} { puts stderr "Unable to read ECO file: $ecoFile" exit 1 } } if {[catch {sc_base open -fast -readonly $base} err]} { puts stderr "Error opening database \"$base\": $err" exit 1 } puts [sc_tree search] if {$pgnFile != ""} { puts "" if {[file exists $pgnFile]} { puts "Output file \"[file tail $pgnFile]\" already exists! It was not altered." } else { sc_base export filter PGN $pgnFile -comments 1 -variations 1 puts "Wrote [sc_filter count] games to $pgnFile" } } sc_base close scid-4.3.0.cvs20120311/scripts/twic2scid.py0000644000175000017500000000641411727223077017377 0ustar oliveroliver#!/usr/bin/env python # The following script will automatically download the current week's # TWIC games. Be sure to edit the setting of scid_database and # scid_spelling, near the top of the script. # This version fixes a few bugs, and will use lftp if you have it # installed, wget if not. If neither of those work, it will attempt to # download the URL directly, using Python's urllib.py module (which # doesn't do regetting, retrying, etc). # By John Wiegley # NOTE: This program comes with absolutely NO WARRANTY. If anything # goes wrong, it may delete your database entirely instead of adding # to it! I recommend backing up your database, trying it out, and # then adding a "last week rollback" type of copy command to your # cronjob, just to make sure. import glob import urllib import zipfile import tempfile import string import sys import re import os os.environ['PATH'] = os.environ['PATH'] + ":/usr/local/bin" if len(sys.argv) > 1: scid_database = sys.argv[1] else: scid_database = "/home/johnw/scid/twic" if len(sys.argv) > 2: scid_spelling = sys.argv[2] else: scid_spelling = "/home/johnw/src/scid/spelling.ssp" print "Downloading the Week in Chess main page..." url = urllib.urlopen("http://www.chesscenter.com/twic/twic.html") archive = None found = 0 for line in url.readlines(): match = re.search("http://[^\"]+", line) if match: archive = match.group(0) else: match = re.search(">PGN<", line) if match: found = 1 break if not found: print "Could not find PGN zipfile name in twic.html!" sys.exit(1) # I prefer to use lftp here, since it does all the retrying and status # display for me print "Getting PGN archive \"%s\"..." % archive afile = tempfile.mktemp(".zip") if os.path.isfile("/usr/bin/lftp"): status = os.system("lftp -c 'get %s -o %s; quit'" % (archive, afile)) else: status = os.system("wget -O %s %s" % (afile, archive)) if status != 0: print "lftp or wget not working, retrying directly..." fd = open(afile, "wb") fd.write(urllib.urlretrieve(archive)) fd.close() zip = zipfile.ZipFile(afile) databases = [] print "Unzipping and converting to scid databases..." for file in zip.namelist(): if re.search("\.pgn$", file): output = tempfile.mktemp(".pgn") outfd = open(output, "wb") outfd.write(zip.read(file)) outfd.close() database = tempfile.mktemp() os.system("pgnscid -f %s %s" % (output, database)) databases.append(database) os.unlink(output) zip.close() os.unlink(afile) print "Merging databases into %s.new..." % scid_database if databases: status = os.system("scmerge %s %s %s" % (scid_database + ".new", scid_database, string.join(databases, " "))) for file in databases: map(os.unlink, glob.glob("%s.s*" % file)) if status == 0: print "Moving new database to %s..." % scid_database map(os.unlink, glob.glob("%s.s*" % scid_database)) os.system("scmerge %s %s" % (scid_database, scid_database + ".new")) map(os.unlink, glob.glob("%s.s*" % (scid_database + ".new"))) print "Spell checking the new database..." os.system("sc_spell %s %s" % (scid_database, scid_spelling)) scid-4.3.0.cvs20120311/scripts/sc_import.tcl0000644000175000017500000000214511727223077017632 0ustar oliveroliver#!/bin/sh # sc_import: # Import PGN files of games into an existing Scid database. # # Usage: sc_import # The next line restarts using tcscid: \ exec tcscid "$0" "$@" set args [llength $argv] if {$args < 1} { puts stderr "Usage: sc_import " exit 1 } # Open the database: set basename [lindex $argv 0] if {[catch {sc_base open $basename} result]} { puts stderr "Error opening database \"$basename\": $result" exit 1 } if {[sc_base isReadOnly]} { puts stderr "Error: database \"$basename\" is read-only." exit 1 } for {set i 1} {$i < $args} {incr i} { set pgnfile [lindex $argv $i] if {[catch {sc_base import file $pgnfile} result]} { puts stderr "Error importing \"$pgnfile\": $result" exit 1 } set numImported [lindex $result 0] set warnings [lindex $result 1] puts "Imported $numImported games from $pgnfile" if {$warnings == ""} { puts "There were no PGN errors or warnings." } else { puts "PGN errors/warnings:" puts $warnings } } sc_base close scid-4.3.0.cvs20120311/scripts/wmtest.tk0000644000175000017500000000274611727223077017021 0ustar oliveroliver#!/usr/bin/env wish # wmtest: # Test if your currently-running Unix/Linux window manager has # a bug which causes window raising to be very slow in Tcl/Tk. # # Usage: # wmtest # wish wmtest # wish8.3 wmtest # etc... package require Tk set start [clock seconds] set count 0 set speed 0 label .t -font {Helvetica 12 bold} -anchor w -justify left \ -text "Window raises per second: wait..." label .desc -font {Helvetica 10} -anchor w -justify left -text { This program tries to raise a window 10 times per second, to test for a bug that causes window raising to be very slow in Tcl/Tk with some window managers. If your window manager does not have the bug, you should see the rate approach the range 8-10 after several seconds and this window should raise itself whenever other windows obscure it. If your window manager has the bug, you will see a much lower value (maybe in the range 0-3) and it may be sensitive to the window being moved or partially obscured. } label .ver -font {Helvetica 10} -anchor w -justify left \ -text "Tcl/Tk version: $tk_version. Patch level: $tk_patchLevel" button .quit -text "Exit" -command {destroy .; exit} pack .t .desc .ver .quit -side top -fill x proc do_raise {} { global count speed start raise . incr count set now [clock seconds] if {($now - $start) > 2} { set speed [format "%.2f" [expr $count / double($now - $start)]] .t configure -text "Window raises per second: $speed" } after 100 do_raise } after 100 do_raise scid-4.3.0.cvs20120311/scripts/tbstats.tcl0000644000175000017500000002241611727223077017322 0ustar oliveroliver#!/bin/sh # tbstats.tcl: # Scid script to show the number of times each material configuration # covered by an endgame tablebase occurs in a given Scid database. # Usage: tbstats database-name # or: tcscid tbstats.tcl database-name # The "\" at the end of this line is necessary: \ exec tcscid "$0" "$@" array set p {0 q 1 r 2 b 3 n 4 p} set pieces {0 1 2 3 4} set nopawns {0 1 2 3} proc search {str} { array set w {Q 0 R 0 N 0 B 0 P 0} array set b {Q 0 R 0 N 0 B 0 P 0} set side w set arglist [split $str {}] foreach i $arglist { if {$i == "-"} { set side b } else { set i [string toupper $i] if {$side == "w"} { catch {incr w($i) }} else { catch {incr b($i)} } } } sc_search material -wq $w(Q) -bq $b(Q) -wr $w(R) -br $b(R) \ -wb $w(B) -bb $b(B) -wn $w(N) -bn $b(N) -wp $w(P) -bp $b(P) -flip 1 return [sc_filter count] } proc section {w b {type pawns}} { global mode set str "" if {$mode != "raw"} { append str "\n" } if {$mode == "html"} { append str {

    } append str "" } else { append str "# " } if {$type == "pawns"} { append str "$w-$b" } else { append str "$w-$b (no pawns)" } if {$mode == "html"} { append str "

    \n
    " }
      puts $str
    }
    
    proc endsection {} {
      global mode
      if {$mode == "html"} {
        puts "
    " } } proc startrow {} { global mode } proc endrow {} { global mode newline } proc newline {} { global mode if {$mode != "raw"} { puts "" } } proc indent {} { global mode if {$mode != "raw"} { puts -nonewline " " } } proc tbstats {str} { global mode perMillion set str [string toupper $str] set count [search $str] if {$perMillion} { set count [expr double($count) * 1000000.0 / double([sc_base numGames])] set count [expr round($count)] } puts -nonewline [format " %8s %5d" $str $count] if {$mode == "raw"} { puts "" } } proc tb11 {} { global p pieces section 1 1 startrow tbstats "k-k" endrow endsection } proc tb21 {} { global p pieces section 2 1 startrow foreach w $pieces { tbstats "k$p($w)-k" } endrow endsection } proc tb22 {} { global p pieces section 2 2 foreach w $pieces { startrow foreach b $pieces { if {$b < $w} { indent } else { tbstats "k$p($w)-k$p($b)" } } endrow } endsection } proc tb31 {} { global p pieces section 3 1 foreach w1 $pieces { startrow foreach w2 $pieces { if {$w2 < $w1} { indent } else { tbstats "k$p($w1)$p($w2)-k" } } endrow } endsection } proc tb32 {} { global p pieces section 3 2 foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } startrow foreach b $pieces { tbstats "k$p($w1)$p($w2)-k$p($b)" } endrow } } endsection } proc tb41 {} { global p pieces section 4 1 foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } startrow foreach w3 $pieces { if {$w3 < $w1 || $w3 < $w2} { indent } else { tbstats "k$p($w1)$p($w2)$p($w3)-k" } } endrow } } endsection } proc tb33 {{type pawns}} { global p if {$type == "pawns"} { set pieces $::pieces } else { set pieces $::nopawns } section 3 3 $type foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } foreach b1 $pieces { if {$b1 < $w1} { continue } startrow foreach b2 $pieces { if {$b2 < $b1 || $b2 < $w1 || $b2 < $w2} { indent } else { tbstats "k$p($w1)$p($w2)-k$p($b1)$p($b2)" } } endrow } } } endsection } proc tb42 {{type pawns}} { global p if {$type == "pawns"} { set pieces $::pieces } else { set pieces $::nopawns } section 4 2 $type foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } foreach w3 $pieces { if {$w3 < $w1 || $w3 < $w2} { continue } startrow foreach b $pieces { tbstats "k$p($w1)$p($w2)$p($w3)-k$p($b)" } endrow } } } endsection } proc tb51 {{type pawns}} { global p if {$type == "pawns"} { set pieces $::pieces } else { set pieces $::nopawns } section 5 1 $type foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } foreach w3 $pieces { if {$w3 < $w1 || $w3 < $w2} { continue } startrow foreach w4 $pieces { if {$w4 < $w1 || $w4 < $w2 || $w4 < $w3} { indent } else { tbstats "k$p($w1)$p($w2)$p($w3)$p($w4)-k" } } endrow } } } endsection } proc tb43 {{type pawns}} { global p if {$type == "pawns"} { set pieces $::pieces } else { set pieces $::nopawns } section 4 3 $type foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } foreach w3 $pieces { if {$w3 < $w1 || $w3 < $w2} { continue } foreach b1 $pieces { startrow foreach b2 $pieces { if {$b2 < $b1} { indent } else { tbstats "k$p($w1)$p($w2)$p($w3)-k$p($b1)$p($b2)" } } endrow } } } } endsection } proc tb52 {{type pawns}} { global p if {$type == "pawns"} { set pieces $::pieces } else { set pieces $::nopawns } section 5 2 $type foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } foreach w3 $pieces { if {$w3 < $w1 || $w3 < $w2} { continue } foreach w4 $pieces { if {$w4 < $w1 || $w4 < $w2 || $w4 < $w3} { continue } startrow foreach b1 $pieces { tbstats "k$p($w1)$p($w2)$p($w3)$p($w4)-k$p($b1)" } endrow } } } } } proc tb61 {{type pawns}} { global p if {$type == "pawns"} { set pieces $::pieces } else { set pieces $::nopawns } section 6 1 $type foreach w1 $pieces { foreach w2 $pieces { if {$w2 < $w1} { continue } foreach w3 $pieces { if {$w3 < $w1 || $w3 < $w2} { continue } foreach w4 $pieces { if {$w4 < $w1 || $w4 < $w2 || $w4 < $w3} { continue } startrow foreach w5 $pieces { if {$w5 < $w1 || $w4 < $w2 || $w4 < $w3 || $w5 < $w4} { indent } else { tbstats "k$p($w1)$p($w2)$p($w3)$p($w4)$p($w5)-k" } } endrow } } } } endsection } foreach i {33 42 51 43 52 61} { proc "tb${i}p" {} "tb$i pawns" proc "tb${i}n" {} "tb$i nopawns" } proc usage {} { global argv0 puts stderr "Usage: $argv0 \[-t|-1|-h\] \[material ...\]" puts stderr "Option \"-t\" (default): plain text output." puts stderr "Option \"-1\": raw output, with one statistic per line." puts stderr "Option \"-h\": HTML-format output." puts stderr "Example: $argv0 -1 21 22 31 32 41 33" puts stderr "Default ($argv0 ) == $argv0 21 22 31 32 41 33 42 51 43 52 61" exit 1 } ### Main program: if {[llength $argv] < 1} { usage } set arg 0 set mode text if {[lindex $argv $arg] == "-1"} { incr arg set mode raw } if {[string range [lindex $argv $arg] 0 1] == "-h"} { incr arg set mode html } if {[string range [lindex $argv $arg] 0 1] == "-t"} { incr arg set mode text } set perMillion 0 if {[lindex $argv $arg] == "-m"} { incr arg set perMillion 1 } set db [lindex $argv $arg] if {[catch { sc_base open $db }]} { puts stderr "Error: could not open the Scid database: $db" exit 1 } incr arg set argv [lrange $argv $arg end] set date [clock format [clock seconds] -format "%d %b %Y"] if {$mode == "html"} { puts "Tablebase endgame frequency statistics" puts {} puts {

    Tablebase endgame frequency statistics

    } puts {} puts "

    Tablebase endgame frequency statistics by Scid [sc_info version]" puts {(scid.sourceforge.net)
    } puts "Generated from the database \"$db\" ([sc_base numGames] games) on $date" if {$perMillion} { puts "
    " puts "Values are occurrences per million games." } puts "

    " } else { puts "# Tablebase endgame frequency statistics by Scid [sc_info version] (scid.sourceforge.net)" puts "# Generated from the database \"$db\" ([sc_base numGames] games) on $date" if {$perMillion} { puts "# Values are occurrences per million games." } } if {[llength $argv] == 0} { set argv [list 21 22 31 32 41 33 42 51 43 52 61] } if {$mode == "html"} { puts {

    Contents
    } puts

      set count 0 set prev 0 foreach i $argv { set w [string index $i 0] set b [string index $i 1] set sum [expr $w + $b] if {$prev != $sum} { puts -nonewline "
    • [expr $w+$b] men: " } else { puts -nonewline " / " } set prev $sum incr count puts " $w-$b" } puts "

    " } foreach i $argv { catch {tb$i} } if {$mode == "html"} { puts "\n
    \n\n" } scid-4.3.0.cvs20120311/scidlet.sbk0000644000175000017500000015311011727223076015566 0ustar oliveroliverSBK@`Yx$Do,bҕ-lK~n*qYEKy!zğ"WŨ=OŽVu&#"&bn$:W,8/ $z+`<-rX(';4³/Ep@$"r&71N.Pb*ZvcC1^ς҇3yK~.u*l6C)5 B"&d/+6cMw԰#/~S)77Z}'3n5; We,!.+G ~ Lؐ˯D''$@Zh.lT/ۿӴ0rг̋Ңx`T̔'蘂v?$E(Džq%K)YS!WK!+DB?ۥpXfؖI|;ug92WFCB!HE>'{vj)jAmF҈A3ABt;o; ۓ":7*w}!t/)._z5C$[*^Dŵhʏ@2c&Rz{8,_A_0)Ӧ##!1-]*XAc΂:&7#)-sA-BC8D9za~, S"!BG>R)-?A$G։!$! Ych(}DV%V@+>K!M6j\()/P0ߺSDa4VQP/Ybv_jhȌdy̤yDHIC)ޓ")]X43֞cS?%a +QWZgKc?V&o 7bF_CS$M89M@oQNgS)ݍ-O1J \b~:e v:i4TF im;'hPm %ݙ@{/ڐ)Ω4SsgB֝&|(_1*p"!/4 +)м)H"ı}fKn9uT֮0+?GٵT?_1%Rb|Z"`ETA:3"#:?͡e=Z!]?CfqDV_XN 0&dQQAV\(`??% ]TЌjQ@VMIT "r!"o:F~Rc-u%-Ÿԣ삊ٿem">ǵ;;!3ХOoQQ90.9OVCCy^; )ةtn =% WyW#N2R;9qr׋Ȥ ?Aɫ.=,6Ⱓ0hQf^"=wX?rh[Hb :;(#c*D:bm֢OO'/VLa$S.4ZWO1;cd9ը =nw$tg&CٞKč[Wuֽ Gg1iaފVp@J},%pY!;/nFNQZ!#pnq znDp3Vٴ!)u(EJ:'\"00`G|Ι]6(w=PU6;z "U(#\8 !*܅5(7}A3p+!SI;_@GZVK(Pu$Dpڑ8YrUqF'˙?*=vE +ܰlZXuyAD>2 &#B.; 1HvHt1*ׄ$JZ_plPe<K.jTmX*q'{ ^LSD)"y^}/:a, XVUT0Nc]9}~b,(C%1p}S e+0*gzD7*,/xvG4Z_.p^(G:Q4Ah(/Uih*﨣-], 60y!1Ⱦ(#Av 2Ά?"6Fy%!k )S7@&DSE<Xn |Ll_1cTҺ Z]G?)c&#j,':n{"ޏQqn&t6 ۺ vW>a؈$8G+-,/24=&6,;JȳB|= Lt!k#ƠmɚEB͆-$q>p-JDl}%WAL˕6A;&$7L~>o|WFy=*Μ XI,Cr9"сy>4G}Zͩ3(0WHE(7G$[zC7GŗWBCiFI\$>5 ]L$fRo3ڂ'Րd{VdݟE z|K嘬hD[rb¸4,UV}"8QlGۚs+!zo5OFPIU* FWUG ]6Su^˒)e`?Aiyi&C~p/jḠ~74q 7lg¥8,:M6G;&/O<%Cf335rV7ƭGg&>+AtO SFˠ:9*{F E)7]P.Ahw"S4IiA'#?cs93>*C5o  55@.A{= 2T@=D]S1eN :bD8wGQ106>±(=8FEvx>TŎGI0r̅^[=@2\H-QO*^V@J()M-.EsήF]߬/ gYf'޷kݡ,q٩%3ٯ 4݅*]V|R*9hd#5%۩L2"!W1c{o8d0J߹nQZ.&V_x6oQ[&GrYaEɿQTWKc^V qPb~$`' B>egHn(}fHSL "+v:7z@1ϳ2uNF!++N!x@bKG  'P# ,ғ+EO-2,I}/a勺m:>;)ZP'(u]xg ^YC-39_whԱڼJ#ݪ""-V!p$7z,7Mj˸[WuFd:3{(+6I#:B< dN!"J?v>P%Uʦc%ѯں&.6FX2j#_H-5OgK=!5{4Mp/KV9&NeM4E@:{/1DChBnm2S б5F%No-.E}}U)gP1ڡAư71HCz_[2> G-&(/Fk6qFL {x<2{LF =3_Ě$Pݡ(˓ ?2j9H_(20 898fOS0(dx+هˎR/jʠj"Cf-ro¯cYx} Zbe%„wyzSܝ'!0|;3=aD9LO[$8vh/z%-B01;erQ$L*ʄM-0̡hp!/'uTj76ύӿ`&n9~se.o\,֌u6x )t yfM4c-5AϺi  9 Z3'\P($T2`5^Ggw/Ǧ"?$\7)7wMn7r{2>ɉ JC(8څ(}yןxBQw%!6] %Kcտu0;nG"ksl\UB7js}P`!#+q}'%Y!"d"'Al.4.Ǖ1g C>\eQ>@R dV[i]E,]u."`Ee.f-apَU#+"3rճ{R9zBp Ѷi/^?סĹ(LzR)a|KBQx]؎gC3ۛqTg+}{!= ےy "o:G.cv;D/94^/m҅bez.5.IZD`xvj\JB.rG%lU7tz (@( 5tԸjcAzWO÷`ʉ$'ߺY"+pv(#,& |,Aő S7lՇBc*% "X÷QJо`$̟O#*jy 6CO#zR "P0N!ѳ:~7c*0q Q7G~& 0#2i%ν4c ECSD)5f(2X˟zݒT=t$ǛhOҎ},aa>çZm &GL O*~x+.z;3* 7H26T YzB.\ F]|c9xwMA ҶLq&)t#k3D|) .GC0Ih' Z0/غ267 :BI+:Q@V'LSWwB^CfWd87}%+Ku930_^R' }Aq,a}'ZZy<pg3W#9p#}{ngU(s e}j%"E-߬7˙8:>AISɠ29LA\Q  ;A_zDTOt&3Xi9iNpftDHf%ц"x4j%$Z=`~/F-ڏh]Y[$Aaȧo0cW$I1:`]<܍&jIev!\*j%d0Z,jO|/-]G8O;KUaFt{4&Xa<%d Er'4[+\L‡„+Bx0br^U+2l7sV $嚛6G7Տ? %[WOkr*ni1'ʀ>d)O&L.&Jq&"Wx;._d%m5_0=6 V(Ұ8U=*!~7~Ho,DAd$"qx@S1x&lӪIi974v<6?()fV23&"x#Y^zh8(]n1"Q!awP[+yy.uɍ5p!Z|[4)_@wHNGe#K>H2. !5;dݺ]@”!Z<8;!mfa&J07A4C*ZQ"vy'y-a )hldE"BJOr_C4vk73~i}yJ3`@XB%FE~ RXWR*.Hb9I(+i 9Pjt(&C.ཌ3̭<1ײ(?=}P l)UC]@N4w!,Fa='C/)KYV!'1=+[F>& %37C&7lk&w!{>fV}؂UC>,&eS$!7_j0 +87>@(> !CCzwOI+TI+2_c"kh)s%:0ӓtBH?իo3$s!6_kɅM9&l!!u0%"1.&^q :?.$R;ͥc8Sʶ[y:/.P@Hywg½GNwGBiXV W^-aD<fl#AS燂GIAT9(* "S/&cyU/Ɵ?K:K\r.Yl3tB/.sv`6tǺ7HyN0Dۨe)~[ -dzoY1$W0V. ~ S7r%^G\z {0* !mBS5t i<U qoܿ[cʒ%9ǼKq3xgw=\5aa5ޱ*2QAR'[!.Zw ,iU: ^k!j !(>5X:b؆gؘ/H0D~%%U' f¸<:Z.!f6# ݀hW$$gQ`.w.8)hjHlhz"f`/ {[ф$$R3$GkxnH%lnwͿ4 &p!Q*o3؊(1o=3a+A<gE7qECS=c4%xe/soGzdW1ʌ("lZO_809+LiP8fȨߠp9-+C-= 9įR$ :Bl1l5NmOjI4*s*5Щ*}ź;! )aULw?ߪ#NT13X%.ă3&IpB7pG!!UL~  5u9<HK(3#!Ƽ =6h-J\(qK.A5bCB ~b0L$Fe'ƙ0 >7  .e%4 ʥk?lVd#>g%ɴBwN_J}xej-1RAI.F3$r¤K_{]C N:Oň-ou=+|\:CH'6n2. "h.H AEx8HWzދ5G΄z5'sҒr)Q{L_g7C8i]H] M:)Ѡ,A%Ci3*}6P^wGviEGCBfJJo&};& g 50?ba>uRGs0 43XFk=]&0@.S z7ז,7;?ʁpCT(E!5xhöpԅ"rD>I~>|N[%?c'. :Zڏ7K6gݹU灳,bIׅHv]ҦFY V3{+AB);ؠ!^$ )0}K+xr5, vfy,}5UE¿%ņ,BϜ^.85eF4YC7IФ_! ;)T>Uodc%ȄiݨgQT&:&&4)AIs$Z@8)-5^((0WBWID@]r4ס$ )$A[f>`&X H"vǠX9<&iBV|k0 "N'׿",V&XV;)po)2< FSV;[!p!*5.Nj))a^"҅87#V%e>pÜ""ȴ%V8b9QrΖfRN+2=)$S-c̪Ot l/lzcL,_Wa]% O7D 38LJ[е5C('%cչ3#ǰH!oE͋aLD[VRq R@_ľ^6qf܆=y 6 8ۺ 0n4}N8gc?PB&W3A"_+uܭWI#pL#CJC0&&t=© ]!85Z@.LvC'ᣆq +0 A=6'T/9dR>l PM#Ejtci@T]ޱ!K`&:(\)6 Hsr 9IN)-} .d,I`%ZxE3++a+͗a6):&DQ#S#qڻ6'*̧ħ储¦B& V.H U.z2$ &}EC-@ 22Ʃ?37548\PxCQHKKUZ2~"D\5yUL>#عW1((_$EF& V2./}5q"zR6(mhg6؆&h>=`T!xU A6V\؀yl-NR¨6R:I/R,^?T( %fRg˞K32e#YztAx P5V9=^69 V6$:Pӄ.eC[%Q&ɇU$A*Rh`۔YDHE(zWŽ5:#+ģu[(i K%ti%rޣxuˋV %8ФC۵Y9N}+C1)2`!\j.d <qc503MHʂ[2‹t.D [ݏ/>oa%ۓ!QWmC:ѽ#'$f , {Tcn)E*$ΣԻ6w9N{&@<+DM%!GIɝNTM"d3} o~,rGK*w#^Fw7yJDea r 6">-'~#, VĚ^s+e4dFh;Wi< Y`Nۧ Ɂ$w!O p"쩹ha*aBx@,S6#VR#▎M:/-5E6VQpEFZQ[^5\k=bm r$?z {i Gxm.R;t}P'Z#%z:p8~.0:J+Ca{+F֪7*&e*&j7R~N>k7odIěR g-{Lm?ZA={6,[ N0iKc6+l%!Rf- WRj.£GT̈(NNk)S,}ۄ@N[]I?sr:1Jh_l%II~=8!ŷB^'DBxsFK<~P7 хd";n N2yl2"F%CAˬ[~;l'$/(ӗ;>l,i~?7+s;@4H~Ք<`ܘc?`+L+L'.c&1"]IIt\7}JܜyO<2_Zj.;go.%*&IE:B 4:/*;<.ZM =\g )r:.^0dk^&=3\RI\CZ?b8fDb'qDAE%9;/{4BP& <5_Ic][ &e[1Zd\"tdzϙ35 k[z x~7x#"P!-;71}d%7Ca;fKR?yIFeI%8KE8L)3Y˕Pc-g~gXA6qqszND5sN:w(y0%yuAtz;m+),ћK0VLu{1{O&FU *&ݣ:{1 gp $2a&O~Ȩaxq9Yfm FEF5 I$E :XLӑ8 1O*#'QFM6r;/n2804Fj8CHgK~$Hg $bg%) 3kKlr~w *{X#Uis0UuF8%ش>+>~A fA:LU$).էFȁW, L3-Xn/ B0'7.SSR"0_}XvN|<[~\:&M#Jz6X9۷ geL -XD54-M7JCLX=`χ*2}ENtG1oq-Q9t~]D/כ3G0F,/Y9S[m* ?{ \-=WN L{rY~w:!sRG2iD %CN}Q/""MOgZ,om wQUVv2X3(&,5L3KuX5WR:s(Ԝ] ,>|&E#~Q>.r٥ 75u3T _{M"듾6$(: 4&>*!?OO'4nZ 2Q~+jGRj?  n3Sg *J.q*@D6F 5QO=9V"]^> i %;Y2 IJ*af8}zdg>ӷGZ;4==)LOm6;4 wF䷁+oiR9>A}Hmҟ^`-,/%S3[;G3(ԙwrȲȱ'48Yj8 un-NE r|%Է;kfb }!1#.;1UkU>6= 0 BV1(El J+,UEV[AAZO]tIbOi'5nvg2.|* _45qy̿ysTϸ@V|n*1܏ T rc!@,u]ED7=Zk0R@ņ{Duu`6}(5|ьo<+]y6$\:(bE%=wbxI ^PY;!(S=4^*Эr+g<]:7iYZef¥q$'Si(λt',ܸl,>!aEuсċu9]G!g'J?0%7Y*yb2 .:`?'r%c[%w2 !5W{l,9~%ߩ ˴R436L̴3YqPB,\D3N"gU|ibeGUN  }(:=Υ6Q^2e"V=QC!eJG?+s!F%'LP SJY.E8Zq"朑b,/X(}i6ш1):KWћ¸*w$ɨFAYJ0#yZi%3PA"2q,x4B~+)5!Ө7%'xC <8X$B@&F p~sLE7ע' dL{4/{Z<ܓ%46T2۔#qO?=I@$h/jhQsaT,*a&+(dqmYП~*#y ;Y~ƹ8tSW,X 4~q%*ŇU@L9>Oiu#)7~M8ث:\ox %3-'BΘ2_ /V9. ABEZDqWkDIJBTVHWo!Y[c|EA k)Wl"LnTsLkL|vLi{d`M14gnܠj|K$&uEdJz 53d8(_pvp܅,tS31P}/ؓ$:3NI}ٺĝ1*"Z9wOP始&.ϒ "b5E/Mf&QN됍B?~(70FUx/>EBžO])Uʼnl7 +736$P!tK`%Qm"P&q6uI'*APLx*& !QbD\t 0"='+-$7649Y$:U҄!G*Kh,kka,{(GiM)L! BB<kZ9Кje 3_3F*x) ()IGh*{;+У<i,+s !”ֲ._0)ը/xܑӁHShT (uv(LRA$Lg^2,0obƆ )9;l+c%d &`=J|[o.; "f$Mt9{}C8iܾF%R^0$y:8'Fbbב&KN:(Ec2 E\7D^+ڝI-~]FTt8#v#. ~'˶2B !" PL"S(3Mq8 MD)[g[qPoS8\5$*M;iv y$< %YFU#N]4'@wԅ.ݭPR:@9:m>4gs'8D!;R=$=-B[iB 5hr3D:l8#Hy&VLWL #lA6Hz5Q >o%o0K2dZ$mV#F$XKpH&g›6Bt7@+Ђ^7"9(:<$d+w:Z_ei%A}/Ɛ*+ ":;d $O7l%;V+$p, p9D' Ӛ5eLJ4}- o&]Y+ɴ'Q~H!^T57 @d3mo3OS n$ d ;x4 #2Q2r-,W{ ßE1+V) YX"n"<$ .EHCU;-pP'jA+=lb|.=a/ܱ#FזNAu{"ڂJ/3@$sG4KxЮA9 C.&(h`߅B+qk#F/G J|)@|1a4EKϧA%K8V˚/KG#Tج2[E sgIZ<#W1AB!$oJ^؃<fcm(ՙn"mBȫ 01FBRvD0Tq y#Ό"ꤤ)@]?D9HDh& !vwd"6Y`\YȪ7#-G9b!U[B28WHV),ZM)#v<c!|%|dg)/xLPS"P'/s5`uW*D2]On$4v@ie0yӞ d|Ժi?ycTm(Ȍ *Fq'm2+\(Vǹ#N4sp x¶\zs%$%#'?(($90Q=N77CSVPҞSjP*t.'q;z;B>1"ʱj:ڜĜ லATݎ %3,Lb4i&l^#RR~XјҶ;BA՗%G3xj/IKʯPsblT}o΋!)Y+6 2ۤ6G; _Bd:r3Pf*˜ɻ^n&!E7G)>LW/WUJZYS"ŷ] A+U%w5M$Gi!᩾0J =7$W*2)'seO5~Eqxu qK7P;ZPY (] -w"<M!d!ބ*S?ɰ&[I$ ~529.WDDg>re/WY d[Ms ٫+ʳe_~(Z"ӗ5\$>&OVqMSOwwZC$joł=='WԂedr*u.Wӱ0׆^c,G;m(D ?MD}g;n)ANDL&!Vk`,a;vw]D3N*,/`R'@ !zNߢW9YCίÒp${Zp ni);ao]؏Eb(`,?HRLh,_;Cs8c!ɧ^w-od# O~IN[~t>A؀*B'><9Dǘe +5&eؕ܊&I.}le⿐b?#el&%e[[:Ve@{{ZOkzP);6VNj,$F.Ԧ}T'[>QQ1%qe}O=p%m3ƤT+h1ۙ)ؓ2VY@Yт =S=5ov=\[®=hWF}"AYC[Úq@*7Q"Ӌ'y-.,k@,?->1 ~$gp :~, `t264ȸ)9+WDep!׃/+m" $n>/;,=OlC"͋`FYS۲"CP%".㞷&O—k1`|N26rNSe,SueXMo^ (˶7kIAV#V0&Һ""^j.rAo53ȭ-]#+:57=R~A?Er4<K-Y.S>xؘ =7Jo49U-}#)b GwID,nQI#},69 w3"f,|DYq-NbXzRp(S%yr'~?oZ$%tA&l:AYt4"N:c1^@/q9YVO$Jo[Da8P=*[#+s/ϛ~֢J ڐ }Bm*(#FaG*Yo*QS:H'GGG,[NZT5h]^-V*c~oey@ʍkTv.5z'ؐ  !7V^[e&|I"oM("-@A-Y!GxqF-ϐ*9߼WU=aI .iIXq0}\&ՄrS#eN̛e8#L`څ_v6$B!X+8&\`BuU٦u?ùe6%37%< "/ E!#x\QL4JJ5I;tQ8>rts*=21#)(K!,{fEy$V0 ׻P^!R+d.A$h7Ϙ>rO CΛRWˮ*:l054Mƒ9?8)]+UUg% ?zR1ݪh D>yVSnT.5-䞠(d͎F !OյBc zCY#k"0yGu1/S"$0p09Ap#< >? !KlPA P&[[Ig2'i:j#S7WZ ,3DK³0V)׭ C#-)~=I#_JKRD[ƁEVwIq1N",#B ,'E<@t{V!:7@HCp&D(LLX_T}a"Pf7WmR2kp[vt7c/xGx[38y(zj=#E5@l8N>&g~BI*'g22+' *C.V7םJS4I6p//~}rTeW/W^p95yauSoQbҹ-0m9K%[Zʙ QnE){4Wn>(,Si9Z(@VYD'fT5#K4:OSȧm*Cx?@Y$/'f$$[2lU1+2E07^H&A?,g|+^(>=!֍ZHT.y ~/Q $Ueiuv21ӥH-{>!X#;{*^'!30cOu1)nW(?\[9e=Xzg*_o|x>5$M"RZV6P"a> KmÖJ08krK$2[Չ羽a=+OolC,CJ<E~alh!lW OUpjvJ TU.+MU;o,C91?0̲M)DH^ !) YYe(5Q1&4E`I-6\E8KѾ(Xu4EB7O-nE⍞$ά)˜%Ƨxhn43XVB"]e1.71,Z<SWgB錳P:j/BW1=uWz+˶$Ϫx'#"&Lo+<KUL2V QKR],I|9F|e2Tk(3tbW$˖n ,RvGWӸ{e(q&x{-U)&,4Exv|_/ܓLA(އ3%:0 ) vh3pFHyC7!('U߼9&1"X  kǍhon֌ ZƳ Ug='I c߼81Z -3fC$Z)iÙ1BE皒;fP쑒1~ X- , qyg-)}n0xl] HP|aE+Ze,9Ϟ\7j%?޴ø'cx$OA9@&/>g-+*4&\tAQ&]~2z1HGI7q3ձ 5yLG'Mt/z+ 2%^:Z-_"I!+ +̓ZX7(M:ƒ^6xY&*j+.Z`Rv%T(e)0mAySg6,\ d+\a&#2 (O/;&3_0*'K'8>K(6$I413N7vQO7Ouz!\ye gk(:o,"26lr-]"L&.:Ǭm;m;Δؒ);(=k*- 1#Eo~p$9QعxD/*eo2D^Vf0i]P(ssvSitœMkXPB9*]c^)Zj-9xQ,h6Ņ?Iv4.AzIŕ vDGc 2Ң~}pj{y_prz[5l>oIqNS\'g%lQM 8:u"آzI.>ԩ#6P0Ҕτ0P="+mJg< n"q^=u0}G"WNAsb*XT$E7[~ ^NN^"kׅ,81?OERK*foEo:70rU7Ǩ_t<MJ RbH)LK!&x,u?d'b {C-"{& "6\c TI~`!lK0hq#hc''YV:b]!_ "8. aɼsl:$~E~32b{Em2}egYX)4Ӻ3C:HK<&GbC`NV,;Ǒ71$&(&&5f'yM؆= p\5x3#;T@J V?(zS9o74\*Ē{N:b_XC,z#։z<+Dz!ٞJ4!}#e5WMˀ%H01ϠD Ӂ*i,v@G]8dg|+O--4ܞ ˌg$ khbK'W4G`,Jh6`'4;S[-Z#"TA'(t΀}z*ӯrTW\Q[2E0*;)'߫OY0'K*:W{.rOS ZϛW);V^(_E%ܻ 'FDV$ݻo!K f3)!K ߧ=sגz)Yoc {ǥzon'=@8<q?<Ί L;f_ζZ6GJ P_0u0a]m/`RKi^y^{<T 2J "㊴IDM(IaDUK)8r27==nn0Z$ nKb$Pp>FeKý^O/#W?&TAh%ZP5Gm&Nr"-][$݊2?RYr.U=umV$#Vwq|'feG=h/tKzP!?{D4twx 4}XPjTn3HV'qϢ:ʀl9O&*HD#Tg,A-a>+ }Wiy̒-/a"t:!hGLb :s?T}. [O8GF@4*(©go9TɈicy1E3l-ٛ2H#?s/8vkdY\d->潓wnՀ]^~"GB#̮Mqbh;x"eޕ}" PP'jGG9 |yF\Ez0s ޝ. /j,[pw.2!!|9v .E *,0 "`7#9Zr6$ ]BK*3UYs gxyLVz>mQo]i"3!Ipgbt&D,y?DS>e3B F7Y,ƀhen$ٺ}\!5Mm@s*2١#o<*!7S G ̄#v*f+xsRq40=9E,>QZ)o5\~'xˍ2Гt)Z<"vv7Om7*k?l7@1J#.-$ sn? gQL2tRTu cۘ~bm(Aw`|)~6'6@p e{WR/pLcSm9A6 U.qNi"hs)W(;OkNZ)Wp-6( : x `,i^ EX`FR=/!|b%*`J+v}& ?j*)'xJ#pcF-ߧ-iQ<w$%5X[I9RV'3Dz3)$.jV2QX=iJs*&<ݎ:\%2sF| ֏y Zn;OVuN'ֹx$tŋ2k"MíE5#~ɸES 'x)L&H{.YA9h8.y:\-}d6-q73͟)ז$X9?A#%P&z̕$!몗 Z@t 9tv-Ǔ}B }2/&kk,45oAVHKtz!# 2= +KuxQ|3% OfXB&uCC`ay\z$6bl2;3`,&Ѽߋ#hK$3n8/RL ["CR6f &J/~< ғ-&lu;ߜ8>90NږIy P~/~=2b`rkXdGx256*0(%xJw2ED9 Vx? bȪwU}vH2 (h=ܬs #Tbw2#~%k;3&,k -wLBH1PFbBƄHNRH\Y{7@b.̀>m(4@)ɰ!ԺN$y3Dzˇ$I-O.؉8I Q, i^v@7@LFF4L)=E߲9AA>'>wi@vBJp7$#7_:(:G^BT.k<+;ڴޣA#`B' O=K1H8\OCu{0xgZ!MYaP%C# a- 3N$޺%'-L6;]gf}.Z!<kWW=E$ dXR7M]\>%_N7*k$%$6H"8I98)ì'0S ZCу)o#ҡ`BB/E{sg!`~=i1R~,d8$]dZGgۓ`Cς [+!e̪z 鴤=ݶ? xmB Z̡cnbyZִ,0.ґ R|)z;aoZ"/#!ũT RQ>3u)^8YŜ>s9VFׇwP5!rv-B4eDEZo?r Z:2-0*Ubi#+M;劊G*O_f"T{!p[1yղn_ ݿ(#9<T39]Ɉ#MWUJȗZa#ŲC^#l Sw0ǁHqֲm gۖ/']['':A0k? 2tѭ#Pa/2Nzb:.2Л9&}"Z-K̈́ھ3ˮ{!|ɨ) Wq,1F# *#NZB- +vaFoֈA$34@PGmMmaQe*΃pyF!,S4 1<MKzlXq="&n?"أ/(~oι C08!5"W݌ %,E5rQCV8uV|t֤A"%R)1t^[11 Bb]_#(p-5{U@AlTY/k,3x%Yع?x t+'M5e"U<h'!D>$-G8&I^-9$.7/h9m;d;<C$)CD3C[!`Jc4FdSJf/k5;t: yf~ʄ?e :.n AOUbPt4R&Gj5-iҼFk#1t˓̓4qd%֐>5X'?ч68K؊ @):ȇ]529")TF}"DR$4&'Z nw|.hDƏlS!ՃE#26T^<Wc*35 *ʊd"+/[6ě"xݠNz *2¯.?b C ={Z *@Vi ʃshc[P9l5,IBgOE͸q%޾a$ӄHG~Z*AFCs7|-(%uD'6_%%!ìRq&QPKƚ`y|2 3*!NƭBDÃPb7BŇ)( (JF!-%:ߨ1+m2~)<')J /d<7!pVu!z'9 G&Ⱥ,!)ZFB1FfE44F!Uzh[8Ȭ /$MZAB<6H4j'!Cxut#.G%M`@SH/P80$?W Jex&v%@}yTp5GvEy"ǗW.m'Un!Z1Q.!}ޏ4sy2B,P45)P;jl׍pYCT?3trKUoEi1K*f.T{4,66$rZ1CKu`!^z{Clљܸx3t GX.':Ј_/w=#%k X--q#r5+/T׿?c-E6X.Ĺ]>-5[uhsg`S#_&,ٗ5OA*:]܊^o*-`o mH.(+$G)r$!"_#l U0۞w"H-W"֮qhB(p> n'QSG]tA&Vb:u!v$zI%4dVT<$= @oEM@ U&v0qK7tGMQ=}<R$ܥkG6PhĎwĞX͸']ͺvYm4UB4kcGD BW"=6C bT)(W`G_E``NBlMTUUTIȍw=ƚs!e_qU-,',LxGۃ]q4)^r ,./>m?._ǧR$O#7!9)J)F}P!zρ,N>Pp\-źFr(57GN}(JG"VV+8B&4D M"́fPq/ 5Hmȸ}(* /r)LLu;Ei+* )>ՉF]JwSj_bE2#dvywr5^ ,c$+.MCF_Z">Jgcnd,2`&x#Q[WIdZ9V\3(YYdfZRU)%W#!"Wo!W(/ :c\\Key>xF6a.ɉ!N\,)Β Y5R|H.o2\-yk.J~)\-ƤiL=<_ D sV'*pzl&J bJ@کEV9оMy3R)Uh?Ձ2}K M,D~#4?W &8f8=~#C[k9غQM4o׊@5E$AH0?fӋ&mk>)*ț]-9)l}"-إ>(4:e#__f: );Dg_'~ 65c R.e ?≠<#B _vBet{2 Z,ם,bt=sr[m6EjZ(<<9,c&]aS'JY4۰C!7]IJ7=W Sbq NU$5.G@/~"E``Ja)N fSI k{0l\CkM5vFD86,J7%#Fxf3Ӎ mn äbwN6q$(^);bAAR[2(SDrC$H!QPnA{l'% #?/<ö278aK./%%.9z 'h5mt-^g}Uh,sggJhvyN"۩Sn^B?Ɂ L框G|x;^dz+tC \ͨۋ%B%ƒ1R-A꒾NtdgeX,֬] elLi,ާ0$DUoH>a:$=C; vSp@xuUHOfl'UAR+w&t.>`%cK*ސ_ |qH(;L+1%EW6kR=L(aRLXͮK,!Xئσ}l5sBVW:_@Jq |%QlPOBQV6lߔ!tDΎ1z'5$l.yY5"( U! X+t. v1Y6 y#:2/7<)Yq@H?BӌDIN<T?TgdUVW`]U(e0iqX ,z| ~ᅒXV|&pV3K{J UKXFl`3Po*8"Izyk܃jIBVs!B2h [.i 0B GXl@+{JB,1!3"\(%]wO+Lדh 8b#Fr&YHH짥5Oa( i\2_hhyڎZfQQ) b8) $<:a3"glhIw=-F]w&ƪSh0҅!Kq"YR0 %<=(V&(ֆ-wl2PC`iDX>&UCXgj5oNn_rt9sw{%| #x2K~aa"kѼ,]I@ B69yσ41 ӴJ׈nnC{&gJAR8,3[Ԁj{ )p !*͹^բ@F ?kr><f>$\5DO_:vj$rHAjN */h,'gCKIOZAו86L2C}lّ̙cȶ6~# Sw,<&A.&K3BŸ+'Ug2!"#bǟ'5Ӊ5!gEtM+JbdJ2}+؁å2*2VM\%j}Bٟ|$bWCSw& An%_+2A3;&F5\,SD)mV#%ޯ-.KFl<SJ]oVZ+=/.QDNRʰZ^SCeYӤia5*~(+t4I|A@ &AaLF=5DKYOr#[)W]#c0k"l:^N9fj'XjTm(+oʪ# !͍s-}LWm̑L(6X߆O; Y?{F)٥5n% K5CY'^Ż!g7Pm%ֵ»ZsJulis"f-jM-F|M5L\o<*o(v!*} T%&n $N+|-!QzAfksk!OU.i'ǏR(*IN?44ot* Jd:, AJ- ݥ'MBBm5#SxMX‰P(j*8Yp/ٚZK2iw92x;:RCl=u"Cy/DNE`GN|Mja0M0NGJZ p3](@aFbCdH~fRjSl%t<wO|O J$6wWE%-+wP!>I\S>"E5"'\#i{;DF0NtXGV%A ȥJ (RV'"y&!{*YNeDOvz'choK DB9?(-`:{PmJҰ*nVM*!2]+aA4/z[9o&_ CZz LV>|D7tV"?L/h"\O 7!O`f.t u5O>Z)ž Og"T ^d,lޞLƭUݚU6^ 3讼 .b'"!촽)}.Uy_즧:SG &/3$"m&y#mU$طf\.!X=5EѲ.&g%̋iVW0C `8$;tyw%`B:5*U/ Y8U,big!V(Ys+1-DƄ9:Lۦ=G&A!$‰0FoE!U<w9Wz! #"C/!q++=1g e8̀O/Ҁ4dp u\SGGP$&֥  ILg:`l*J%_m/o.8&$~%.oZLj?%=*6G.85.QR* ̋yHJ_xQڭ`24}fvwh[.x2U( p"?þ0*<<+< C4`$!’}Ǔ 2'|<?W.6b}f|)Ő$,-TЁ?SS%'%'dր7 :W2*BmM,gv>#}g)<9W~b8]fgb1 CJ`%ak4-@ݕ@Qħ;gnZG\YYQ=;Cd%F.s"x+Ԓ+TYL'c jnyEvk E -YM<!mM-BG+zuxѡe%NN&m]ׁ</@xо?H<`.J Q="qOIei'$?b6 g="!R`Bf0a%Դ7A\'شz/ߑhq,6,?X+,$%81';jxvEj9"H܇9@d7.K &bgLQ_H㭵T… 'lO0"KBJd%yS"U L]ܾ \^!#ϲd/.ՄJ!DFG2e k7v$n}Gu: 2ݹL!ĉ&3F4º(n\0Yo {X!13.<=GN,HP6J>qT%^ɾq!eOp>8}b]ғ2L]2" {ڜG"ȉ* 5>@i^LTg&ct/r8~z$!NPKX@a"[8z$Y.^^{ J> Y#_)~u'Z:E{6hI 1#2*UAT9et:%UO4:'bLINS uYec^#LćA7nu2˱n$ +?G&^?rA+aah/'.D=6:ʚN<ߏ4GwKफrlGD3؀#rַjzbv ;gmJ%DOlY0rtVњv6Q<E4X/婁1J;B"䘈BeźQF=Tk#ZWa\dߚu(+R%$YyͯJ 7 "7u@bw ?!%4X-=8vEєoG!O3>Qx S$d|{fSn*'">Uy@&D<ݝ=e)Vetnr}cWH0S, {w6 |[ \EPØ{w31*D^ (Z@(2%Ա.7 äD+2|Ǩ[,88JAqp)֬;l-/2|’VgN&CO+%O!-BD آJXUGJQY$?c"6'-8*M[0HLAG˖m +V2@,*,*C8D2/!GIS!)v+26*9ܚ~\Gd L/2Ĝ0fzPe QF]}><< ո).ۥ#[64gCk~MI^;suP blg!#rutjڶ:'$BI*$otVo%*kwwz('1(b}POAuH\'! ẓwI2splDF\q*.eB?\5bRerVЋxR+IJs`3$? cl5('%˲#>Z]F#== 3;I 49y5vm"f56w8G*3 UO P9u"tU@BxCW7v&h=PqjK00&9 !R!nL1|!:tz#7sdG{x `;;\ . WяXbI8AA/%Y2@)Be #H"<q!%S0!D)%r/)$Oc7:SjD~ e=-,F_`L3v̧Nفp/FewfO",B $jt-njv"͠!뫆!⮍˪?YPh Rf rWce<'s$Q.6@|Ob^iZΛ<1 $]?T\cjGUp $:3/ipl+}<=cl-[RFS6WM.L!EjUf,^4?߃P~Ώ͐k1 ق= !=@z%F{Fo|&"+G3Lm5Ҋ1~)9* YB}q#'((@LB.h4'Dbj4jAő;g! c``-0.E#.U?o=; %D?:x_-Ɛ.f*@UXz 5Qr:Pe¯#I}B|u%[d a6 m0V *R" /$7Y1%f)V,ʭd4fA ;tx&Ka:V!Wi*](f]Ui7Qm=<qmXzF{Bl} J|f#?A7k5Gm#6R" 3 fG`2@D23C1ufQ54,Lh/}1ǜcɠ4S0퍸(vPr$|@\:9e)Z9UI-RX8é*1ܷ3>jD'gA*H#2c &'& '! dCЏ9Buv+v95f>;4#(gSY .9Pm]cK4ƵbaNOu#JZ>xqkPE#JLLrBƘ>?'懦 7(9Z=M?<I9Mpc-P*Oޓ[#m98B#;D,v6F4PM,x<؋PE (?M8|ZG'1n=Cڋ)+!ȟSN +=!,eŸ.> *UX p@r]?tD:Y/Լ~8΢0'S<O7<cZW)X Ӓ$['0H5-'Tbc~pQ`c'Td'WQU& osXʃ`2}B>34ݸkHs/R31F D0Ni _Ga.D@E4^O)%X\7.vĭ9t_,JiBW7+"Di:2ɐ0R%t)/iގlI [ |A?'uKHLRdt.ɽ|&aA)rWQBֵSJIU,(81-JChjhk8:W3iNU^ih@?Tbh:I:^c5]:T! vSfFIC2j+J!hm$IF];Z?BNrO60M$3f_k9~~,/2]1x=7i7lKM0Vg^ksaca?i`h9gxVn ![ӊwST+n'B`<#1]Q&9sy%@d835?+ԭY),MsJhĬ| \ͅ.8tA_L.*T&W3<"^&.6^8eV0Л'g,.q ZsGMp4 ĪM8^@O=[*8A.) = #bXr%H9(b9)!AI%>7H='],ƿFڸ;ʹ  `u#"-e!,[L&^)g̰f:PN$Qu>@_[. U7=)/ivv.",L93o8uI2]x?OfUr!?x[!xa7;dO]Tu]A $V=bbRnneTa!Gb!K =Q=%m6cj7,26+ i$/$ZRbO_<.(3`PG5NY Yfr,i~=i̟xjyt*k;lf k0q6mnj*Y!<c^PW5xrѪ*ށ0S.&*NE E^Z 3AeJF%_c,*eN0)q.cu'f*4oZDY9-D-9e1Rc8*?+V8O. 6:x*tVF"Vw%Z P*f>vkn\u]!_ְ1(n$3=i뼧S(,]t:Gl4- NI քe"̽ %Wfo:$[n0BK(J柊W\! FU})=ߩe΁9ɳ6 &ON(l7YO?,^C6vKXg3mex+{z`!΀T2SJ,~͘B۞A).(=sOT'6gR6'1F THZBL6͒@Le #+…Lg+,m_ݬB-5-rƌnY#Ϥ5J5'=}9>'g?ӫE3LRFOo"PXw6Qy^[fM[nsYyDtTP 8npg0!l6/:dTOmKl !ˍxc l""9"]Ε%fx(w aXBԂf%,MTv`AArK?+ pЂ&Wd|o#V!1%", 抖 {ȩ#l -!y41!P[ުW2_kw]O #3BpX36#Мm2 7pB~σF[U}  q%ꕎ&9Z1FߦI1GV/ɷ=H(!pNDՀغAKmT&"œB3͵(lkMz&8fVj#N(B𔲽"z Ӫ(:#j g׋hLC~{#Q3 ^ު)oNeD>>Ulk66n$hy #^ 9I,sGCy/P,Q.6lh9싟Ɇ,cG!\k)C*:JUxY}\8-i5NN-⻡s"n,S poo#KWwofVVI_>tUSxZvtWqk7[ 28.<#+ucbk GnR&3 .5:%X[99p]%oU˶3?AF B *ߢ#N\ )!5Le"\6i8-LAj_-(8lJJ{ M5xz+' ty4@3 u[2IL$66B0]I7w 8(WC!GM_@U-R8K6-\O>L5gԵ/cǦ;`s&x| 8_Y!H bXK%}*Buu><AϷQփ}ahk`B\ o2G|R[si㾃r":Va{!$2'i[p;pD+P2a%c&N$3iqK C%!>ٷ)!̙㧣014|#^pDj j"!רF#{j5B5 #>|Y$(-%>z2@DWW82`Zmem7qh:s!ѯR6yL?s% fUAv$eS' J \$k6/vA~z+{\1)aOk'=Qz 2Jm)O#oIh+77 y86\FP(v6fN!4+ ED'맇0˗o#-Cq5C6pil IiڲDjhBqς]]Rth@Ԉ* IGcAE_08"C<S#5=XC;A%8Q{j2 >B㿆cF!%K?!B!Hį"KfY9ɐ@[C#9'sVK[v&fa9v9PodGBK |z>FbG0jt7 j?$!~X=;-p$ Y- O'T,I5,.gEoA ,]3Vc?D#Nl2RJ+eۢ:$O P;n+d ?fM/a_0;#>/nl:;1%S]#٤V`B4eE21+0$➹ڐ#Qp<*Ѐ/47pjt%FR5)1T@%@Y2?}"~뒏Kٕ֔/6Š)"'2=̲Q=,"Z5#}L :?'F&n!5PIr)@84p \L[^Wb= &ƏTC~%X{׬"o+\!XZw+` 3 v :/@{_*XdA7&(h&mOoUmRj>\ >c*@J`7,*"37Ɖ]ʹg:WjB6llRnux6&:7#- y%]&Y,0-"'u_}M(Q8R`k0WJŌ v6"IZ&%+)4D[m@ a,xPƨ!ً<:K7{; ֔+S)(kU֩ *(6OSV %l# HY[B:96,.3iZ`*iф(%~Y6myo/%$"c-Nm%3]8Sz! O"Tv,< #MlXTU-ӆY@*#8WL&c/o졻HkkZ*(c=%E.r_:!J>W0.NM!X+:_']%*|8(`, 7h0Lǥ*&> $H) B{M"ɸ?(pM{M"Vl)N T)V"<(nU1 &E4BJCF K@5!q8̵f5'%ϸl9<nڪ1T4 bl8O&Hsї %scid-4.3.0.cvs20120311/books/0000755000175000017500000000000011727223077014553 5ustar oliveroliverscid-4.3.0.cvs20120311/books/Performance.bin0000644000175000017500000553064011727223077017523 0ustar oliveroliverh9HutuHu?_u+ 4,C ^ .dNkM P#Z'fBK4֪S e XE(6( cJp Bzjަ <5R ΩP*F 2  YFR3 ”vRbQ otV aX\xN X\xN m D$, O x<% !]!] n݋ ߜAû(P(Kym@W #(SR(Y( >C> l8 lj# lt l l (!;gݐ#"< "- b#S d #Ї a$|$&_H7&i懃 'eH{p6'tRn %'xZ(In?)⼏Q )⼏Q*m!*O#*JlN+c^3{Z,,|Y ,-& .nj) j .xJVR  1*~/ 1L:ªI 2@!!D 4+kP' 4U 5!L:r5PQ5[5黨G 6a76R 7}[U[9ہ|? 9_Frh9kCm'd :{ ;%uv ;%u;Tf`:zj;Tf`:zt;;/ xt8d ? KfG? Kf@cc. A]uJ6_Aw< +ABg]? jBGD)BGD$ D0'{O Dg0HK Dd)DE)E('r cE@a *FI8uv F鴠xFJw{ReJsgW LM,ڒ LAlLAlM*,vQM2d[ N[O*O*c}axdO O|rNPK?yJwRv'RD1RD1LRǴ|UH$fR UJY\ VI t"WX](*) i XXMRX(r7j[6cP[IG? [ ]kC^4^L\{^ܔYrp i _0vuC_]H5: b@Amb_(b'%cyϊ&jhc-<Z fP?!ag⎟%g⎟Dg⎟j2g⎟ g⎟h>K a?hfjh!j*䤨j*䤨lssl˲.niVzYn;co" +!o(96_C pV $-p`'vpCqU ZK qeV3qeV? t}齫xp@~xj?y=Fyqiye5z}|W9zBh z& {0JZb {0JZ {h܏f{v3H s{#cS"{#cS {#cS|$]@|$]@||;bL a }f , ո$3tո$3 ,ςbՐ[MbO GuYs @*tY# iM!B/iM!B iM!B,cuEsA[$1L[$1S %,6 %,6O.!  :i7 ge'R!~7`v A cJ cJjEcJ,cJ ,q.U+z|RDB' ,H g0R(:p?U ?U 0&! sH} ^DK''% Z47 tO.2&S}|K)Y <RuH" Z?ӳH!#ӳH! iEiA]EiA* @tS\ \Vx;dz͟ M= KqS) Bg/$w?q}rϠ Y d?G -(?&-(  0 ӕ+T DPsDP Q]tz?K, 1?E$Vb m Edz p|ϥ p|ϥ p|ϥi4 V@?KV@3V@ Lɯ@ $+zO1R{+zO1J$ + i(*A  NXn JKQ |]U( =Btc^S!D0M_N5u.c5sy5 Yw J.IJ.I|_q$/2\ ץH MBiizR <-׸7W[SW^ Rv.lkˀ|-&? .}AmlO,DdR^^6dq\j Ϊ"]K a>C .* ~D8.* ~.* ~s}4s}4RNИy\ ѯ1t,N1 N1 ,Twljwl wl4a at)ښJ|{ ,{K~DK!+sQEQ e]ke]kKo I ; e8[C $e8[Cs&e8[C e8[Ch}Y't }Y'kB"  Ok 3K?&Hޒ栍-*C aM*C LC*C Z ))՘ s(H! wz}' ,wz}'8b& SMG*|n. (!n. | IjqagD,lq[F^ Q HG3!sK\& ny- J W E&Ǻ7\~Rp+Y0p+U%_JXJ}K_JXJ}#_JXJ}Y_JXJ}gCV6p" c#͑d6c -SZ+jH|5p7Yp7Ydg@|2)Ӷ (g/Kl8s7zQF œoFx vvt 0a,5 `KP r:3;  q b g_?)`I ӓn+\ {Z&\ {Z9r\]U/a[m# 4FK 4F ? ʴK h  `'v_  vnO  R+O :m.,c  <7R  tiO ,Ẻ̛[q! iՐD$ՐD$-Aއ-Aއ-AއW9Q*z/LĆ̍ &/LĆ̍j/LĆ̍s *ōt # (E](E@b5WαaϏ << 2 ֵr\h)mj  'T6f ެ2 Oo¡q iz#1 ^ W\ \!ab =!?>s!s1ݪ \!vh("D|!51 "ݻQ#Ah##S$ }|a &2&= ,p&=&= (@8M(sU *l g*,m *~a B+$7b+ucݓ.$.L 0^-+e 0*o1%+t ,1R Y2=ˆ 2=ˆ3in 4';=>s5UQR6B: (79E"A" :27Gr;U3Q\r=X ˸=X ˸?Vv @}l A~ߜG> A}c{!%A|RFQf !A|RFQf B)ZJB^Nn3DPsp &DPsp DKp ; D[ `DBZGPHRGcm?[ H IPqw.m I k IBVZ IBVZjJaq;O? J0u K"$LjڜmbLps2 eM H"= MJķNWu[OL O P;2bwX PhV"EPXj4Rj>np% RJ"T?ВdT܃GUZ)! VEѤYn׏-hB ] H|s]mr. ^װ%)iR_؝`/ 4u&s a~0 l ab >Nb]u.b;vb;v|b;vYb;vb;vb;vb;vc͞Nc6[T f_!كbiBVM -iH1iH1iH1j;D7ɔj]>gkl^1R(l^1` ms>!+m/蛡 rn}oK2 pU#Nmp&% q$GxDr!7b`(ir%$EFs 8kth_bwbr[/xAo5y,= zG JzG  }$q}1)}x*۠} M}Bљ )4Vc} e4d+Rt72%ؙl5{o$`t 7%7%7%R 7% ey؅ o:SO  Q+?c1p Z_$ 2 f '$nq9xo%W/?I/?IRTFD6[lnຆA z/y -z/y "~70% (Ǚy_L ?݃YR{feV{feV #M SSj!SR"? 2LQ O#>m V:p6^?grS H^.$?&/V&/ u[[Q V|dYKԛgcSIN! z=M Sya o$zAf; -lD@L -lD@d O) 2F  t \S" MSV aOR aOR"`)5D)5DˑS#ˑˑ.SdvC.1 0k4k4y*bMm؏^ŊmjŊmYw;?n4|R'};nuvo!+jvo!+6> ,PR+O'ބ1S;9ɕ %S;9ɕ jG/b~: g:h3b$0Q ǔP?Iwh i,WuE^ \>VPm s}Y c\QY RQ }> ci]·s l5g eEJ? ┶5jĢnIbRN%{9}C İk߉[th4 &iov*G] GPPٞ  GPPٞ  sʃ< vXe\$  'kRB+FC RPar⽏C 5 ϱ)R)7R}<ٔr7ï[n#9AMLZ0%!- -8٭fFɛɛa<RWW1  >Ӯ?D6!h ?괪  @_?tsf BqR yL BuL8 -Bu[ C]Uot!CtLCtXCd CDbn3 Ew'Ew Eo'L Uloj Ulo Vҭ|,Vҭ|WRFf^# WRFf^# WV}zXE8| #X1  X'mEYa Z34FY.[N. [N. $[N. [N. \J'\< 2]8! #^? ^:z d{a@Gd{a@GejM/e=F3eOUf HS fVhq f:vNg4T2[hVi8dDi8dDi8dDi8dDRi퟉%l/hb l/hm3]L mRU.Ymt! nmzC-Jsm@I;n4c$ nN.nOdih o !p54 pn=?pF#1X[s gn"s.w{&[sC4sC45tPjt[y t)X^YUu u&Tu5 g vGrjkvGrj $yvaz7~C!z7~Qz7~ z7~z0{_=N{_= | \~A~A8ki; -19G%  C| gŁ-ZŁ- ؛oZg\yQ_\_\_\Q=_\ YgStYgS }Md!!Kf&\~ sRtnՍ <=<= E|%j E|% , > , jLжSжEж2R 3R pZIs@-o   | VkX se{ j95#,? S . 'Og'Osv<:#_# Kgzj6 x4)|k1 HwDLh;_ =h;_s@/[^nFK _l*mս3I% 3;-H 5 np jt nѥ6o2fC ;OdcNd5ad OU !yD'[ @ڷ2D[JnXLlO$T= >h2} #  DK;LB $ ##7#]ϰyX ( ҄zNɂw VDaB_ S\[ ,Kn aȥzq  kj+|~R[.+|~R[ ƴ1& WDWD ^W(^W(N7wOuʪCegX kK"Sn.[ ͠,o#/H~,'F l'F s ⪆/ \PLfQ:Ru hӛ|?%Hf]8 =Ր e: \JRA̋d!?խb,EHTqZ: qZ: T(kxDjkxD=H[{ H[{?H[{sϥϥ \ ϥ ]z %UW/7S UOJoR @:SA  >xZx] $sR  k4 -g2C % fy I `?+ ` \ }^5S! }^5b@# [T.rpTN1Fτy #1[ňKN&Z`%6`%|tc[[Juz a1P m*ho~ X'Ys'Y w(v8  i  s#u $<*+$`OY$`O& &)ڮ#'isr[(;fR(;f)YgI)YgI2)YgI)k n i,73O (=,73Ot9-\/oʗ/ {L0s# 3b!# 3G;a3.]g4]5T˖C 5q@ 5 @S6!s]X?_6Mn7TNv7TNvN 8h $8h 8h ,78h (8h 9^w` $9y= i:gl0Q:ɪr 7:ɪr? ;. <3 j<3 ? JN*JNJNKJNKJ/;eKD SLd9{L1)ZsRLЊyMIo.T M>YNq O+θŽO;[  O(- P+S[ Q<R Q2_R4̻eRiTKfWBRTmu=Y Vj`TjW:>/9X&:|)?"X&:|) iX&:|)sXNfL Zu_[@ZSb\}'$ \`\`]I,_7]I,_^%;p_X_*m+`.,`Gv] #u`9R `~Q c 1=+ czfY/ du|j du|j fW :j f3kMgtoYgto$hRk T m'ވvmuIot0muIo (muIo nn!d<0naOo|EN ioownpT}zPpl iplw3j t:ζ,ta ita tQ{l t)͜v8t?wez$wezLws]wswsQwgyΜYxBY~h xMXvxs;KZy>i y/z\1{ . v{jo{3< |9! }}o~Z ;;K?P`JOOАX;<^/>;<^/;<^/; n  ;{ Ij]DvaDu ,j/K MB޼ 2j& Sc1aipIfS0%LUޮ#6#6$|=ϸp]ܜ  )T)T %SA%SA,P hm U0sAZ_ JxRZ< It. 3<RtXY1 ߝ 5u$% ?.! \ $˖/[ M4gZ >˭A : <j31z_Q 3n\j n\ i8(:7NRVbEmiߔ:`s?<[4 ,ҷ hr P .E[bԼE[bԼ_TCTQų.A h 2QojQoj%si0Z^a. !a. a.Rl+;a $N΢$N΢# L֎<;? L4> r!glUK۝0C;) $;)s;) zr`Czr`=e_<Y _<|}/LtD? s:w ^$:w ,:w $:w (0{  fG!-k3z+ k3z+ >0  xRFF"ɅW1-h|tV?T0Y tmQqOAY1< $ lWH@  /Hm=`5앩N K?9q%ZR 숕J ~gceYNėgS%(($z-\t I >).,W (únKUɾ ] QK{˩gt? ΄ yK X?/s.|NOVϪYIЩRNtRADѨwbd%S` #`\+g^xQԎQD :ŋ_%:ŋ_M1DM1DmZCdmZCf a f sZK5Ѳ"ӯsڄځvBS ڄځvB%ڟc#Y1L H2EL&_#FL[83Œߠ,!YiYĄ#h HՖDNbHՖDQHՖDQHՖDYHՖD*I aC ^QQQyE+VNZ 5Nm5$~?S ɱs3ҏ'R=O?~|T?^Lu^L?^L ijC^aKv n $ϑ?&)FR”l (!/:mY P>k-s0)ddwC@!axn(8Lz/1 # z/1YO#q>1E+:^f:^ XFsXFt p rR C1 ;_Xu "& M&1 kvFkvF $Y/);>/<:ZaY<aj ?hևP@@Qv"dC1wlbU ChdtChICh+DFOJPDFOJPsErK_hE,r $F#7GZFvGZF e GZF Gn%O +Hmg "UIו eAIGIh KASYkMy1L" iMy1L" My1L"Nʽ OihOr,P!RQP$R/lPEI PŒi)Q*aT| aQ*aT|YQNׂ7eQNׂ7QXW QZF|R%ޥ&RpöT=CRT=CWm/YWhW<4nEToГ \ ph(/ּEpz{kr *: r,;|tBEtm7"ˋ ctnTL1 - tr~q^u6||JxPJ'yZhfypez$?E@>${A{5 |+;]|+;] \|+;] i|+;]|@=& }Xv΢}p9Z[O0s[O0pp m ~[LH"˭| SZּp.s ּp.I' R-5leq1 !/laLy2 (te' $mH i8\T` nJ4,#t0ȵ`N"*r取Et/Cf/Cf-Is J #&u*LX? fW qO#@qO#@ 5zc{*2hw "" lL@  0`3[KNO[I(NO[ISNO[I/NO[I{EM&7_y c7_y ^;m FB| :sS$1װ3;jCBD mNs:TR~DU8 % ]yj AՏލpY.ơQLơ38OdXZ&TMXA &TMXAB2K[r;6E?[r;6E $[r;6E cQ" ȩ'Է6f?/ X=\f/e::U;kѦ>h)oj&Ӛ ckX V }ɾ}ɾS}ɾ}ɾ1iȰu0r-j# iUxK6ѝN #: $\zt-#H0 _ Ɓ +؞@ ;L@ ;m;dƋ?m;dƋ s5?(vv_ZVˆ_ )(Ct- |/'G Ƶ4$?{cuŐ X<KKũf9v It+݈w 6J )-) 03AC T&HY[pgK)iќ's*\Ŭ + 4vbj ,V* c-n? g.W| ,.xA/6{Np0WM$S0WM$06tv2L/jP2fk4(A6^?x:#PF+:V'D<>W?<>W ;Sww}>Sww}>S w ,% x9 u0vy %8 y %8zȨ[{4} x|c/4|s _j}$| g2}$| ~nh4 1CD7<K [ n ,}pK"}p|{G?*Ǔ "+LdMZn;Uk< h[7NEgJq48CAh\ m4Ah\Ah\kZQSUS`c[|+ ۃ[;3 s\{&rSV rSVL$x{ųs $x{ų6x 7R.Y 5 M}:Njaz_ \9zE(>QX;mokf C"a^-r@hgsFlh Q̈t@h  bn`R hm MF`by".Oٳjd-0" ʰ ,6(syEu+IU~ 5،TD D  8\,a8 oZL 69B ÈeR@@ f`@ X ņIKA9? %L bzfu)YfC|)fC| E .xa0F!CÛ2zk ~^Ī adƯep . sE.0Ǟ@-# * S 8j8j GCE[dQ, g+Αz˰Ĺ_̨IF ϝϴAW ,|3vѰRkm"RWK-? r:v׊]ӑZ#Ε>=/pk x=1n@Kն a֠:Z hY)FV ?R5!wOڡ_gA,@ F ݉݉Q\Z(\Z cSh[Shl-}W|/:B}p~d湋L湋 O 0XpWRD$O}Aw C>L F7dPF7dPF7dP KLS)F%B V50b Z[(i Z[(i:^R RnТn  ut{ |)LhDKd Jsh JshoOt}\NU}\ cϕtcϕRcЖڀ ty <wV $#'@ #'@KpPx6Y Y+ \x#c ,| swں a*rS&z:#쬙J g \CI !A<  d\4 +`З Jg8KC' #Z Ie] jUQF 3jC|C jKX=J ̴jfj$R& -AI C# ( W:Em0?nX x y/ 3Q:Nx_H8MeT $."-@s "S@D"S@K #K`7 !#Y#J=, $i[sb$i[st%)f) %L]&N;R&\)'rv)E ;)ΉQ_* %.O0 0B+- 0צ;K0v0?#R#2 N_?2 N_ 3%3%40M–=a$4b~5n:{5n: 5n: 65>t 65> :5SxS};줡/;-]L;2k<: ,wumm l*1l;l*1l;l*1l;Q9l*1l;1l*1l;mB Y mB t mt*s8 mt*s mQYns n`1.oRor2or2pzwcq k@  q];r; d*4sTw>t"oi tD8=A u Fw7Dw7Dx^A{ Y<  xc4Y;;3Ao]i QrjT? .PWolo ܙRߦK 6~ J{6~ J{Dҗ2E%,>ȋ X3,>ȋ Z ^lG%THgH   +cz AFB%>R iT/)kُd1bU|HHCR Ӯ[6WCQx[ m=[]Άl V2 {u \릸6"9E. a0F"N*e"t*e" s3h"8قkML# ML$ MLS[W^.fW^.fQ l=<(wY7sN ;&]d{G I-2fdn fdn ]T TT@-j9Hce@[Jr&PTF"3hkZ"3htECs; x >=Yf D>=g#3y]()/x/xKi/x4%$%  VXAj ײjs¿s¿>{+>{-U-N|ʇ n $Y7s'Y7 ,?k/EbtGGN>_Ն 3 nQ h/%]}r]ߏ0|$ |$ |$ƽ11Oz@|ǚ.ǚ.ǚ. j $j j: ɏvLP ķ(Y>r9ʆ ů#ˡO 2n!Y #HY cY^ (40_NQ^g Q^g  >tHat ؚdԢPVit՞}4 b*JlÌֹؘsz f a1f Lf׻&mv*٧N ?$ 3-ڞ] sp+_8lI l?۩6$v"_rދU'J^f^fP߉E~?,ߐ>\߲sT*fbi<Ei s` ~Lp=adu "sWcv5LG5LGa$;[pmW? ;[pmWk r4JE] 蝀XXaR,_bؿOP$aU37]+AcRm+H9Rty7?D `k4T| s`k4T|``k4T|I`k4T|| `k4T|  W[Tr(P; z R z  z  Kx |-wDѴjF )x5@IC6Ypٸ0㥴FT=R FT=Cdy#ddy#d y gm -B2,o=,o$!ϳ ~7x]РTmObeM!CvF,u[\lMZMP~n ~nڴ7G@3DG@34G ^[Ւk|`k 4 `3Yiͥ &iͥ f0x^^ _gOD {G;h + q2h  ]U?{J-&]LJ-& 2y $Bo%\! Tqy a7>yj7>yt8-C& j91l :}e :Q %;|qk<'o L =3閗?Fak @4d #APwb3AxZ֖ tBUCѿ$ B,D Cα:DAn}& mDy EaZEaZ EzAE6D |FMbLF0;GZ9˅ VH"lH"l (2ISԗJIW@ hJ_"L"B$Rs L4߾d/ )MX# No#v O S Or.7OLP L)+PSäQ2[Di9Q2[DiRS+E)RTQɺS a T Q T QK Tq 0Tq U{j ,ViHQ~ViHQVDa# Viq W_C^[W_C^Y Y[>;m/ j[zXCa^(4 ^(4 _2_Jn `ZHZR|``a]by6j a dl^i* f[wY jNJߵRkKlcU mf -ni@Y #oR)To\9Y?pj" pd2pbE q$A!H q\j] "r$n rEŔ8#r&i {s~=)s~= u{6b wi x6X x:P| rxg ?/zEFt{@ }(~ۉ! ,?}(~ۉ! }BT d~h2Y'~h2U~l ?bmy/ \Nb$!w )o^^Q&$' Tގg  Pwx;Rh?2*b E#!E#!EUEZxR yT7YzyT7YzyT7Yz 4zt<+{Rf uWL b !b b t Nu/xpfSȖ ,6Ȗ FS9 N8ܯR9!xg[?Jͫ Cy /0{sm v4j)tj[ԫ|q (#JlK {{NyE #fD&7:xfW6`xfW6 xfW6GvA9 (lխ C&ttZ_dZ_d ea0 Ev JcPߣ2 r_ \7x>Rao R!Ln_oC a oC RI 0RAi> 0XC w.6TH'NʬcZ]KAHI{k< ]G L] _G71 cpNYYzt Y(y[ Brհ$ լPwD;pJЌjS(rS(,S( Wԍ eN $ ':vN<N<PN<LpN<S5ƍ"X  Z 6#$XjRnj!zH dnƙ| pa (ʻ艀 m!Τ=0+ Qu9Qu $|<jҠ$  ϭ < < <D(R@`Cv{֤Hn kٟͯY V  =8  }n  I  [KNyD@z64_9߮i%5߯t8 ߯t8~ -1Kۆf*MHdQXZ^K{ 楪t[ 3+p8=c !@@Ev̯M [ [ 09 [[VSRA9cT + ǾH~ +y O&b !D!Zo\0ǁu ǁu 'z~v+=+=Y"H8.: (U \L8`%s  5 ?ZGvЄQ}wK*M ,) XR@S%҆õ .jqr{  58ݣ \ǸScC&؇?}jI2-| ɭoV  u#u  h0Rc^  \aN ~UoXAet.?_/A< /A< A< A< A<A< sBxlvm mHB m mHol q^2|rJY"sv3Zs+s >\ s*pF +tSTU+:tSTU+ u0Jwh.x@DHy3[* XYyG m2z ud z uK{\υt {۲ ! }Hioq ,}Hioq O}Hioq }#S }#S ~S#v`S~wxC3p ~wxC3pjJ L X-H${^=RN >Z$ I G u\v \ "B8 s 'v|'d(*M/vW94j" zspI "넅 P7w# [ .s\h s\hGrcA9 r  >$(w/2䫭?gvӴ{OTU8=- Sk ОOdt(K a N+ EN+pGzk|pGzk Eh) ]>Rw # 45Nf FY aFYbE}P  >{כValde 2F 5e 2F ];#cl?9T}R H4j; -H4j;8_ktq tqN Zմ- 23 h:ABPh^R[me >R[mes/or ̦o a'dϔ\Ttϔ\TE8>ܾhCQZ>$ sLM mLM LM¨a]VWk 1Ib? 1Ib $D}K1)%eM2 %eM2 90N K1 ]xgq ]xgq ȅbYS"Uh ɭXʜci`5k 䝆[#v ~K;!́ 鏽  ̵~fcͅ* < NwH9Wn  Kԭ@3W׌_Jҭ/pUQәP@̘L{%׮ 1 OqNK T׌]0ql8 eʨڊGO x+#! $, 3ܚҔX~ @0QnA B 0딛` 0t ߦ e br bYu 2K|r6ej(|r6e[cdQ{WeE81znV'c t k" 30E]0Ed6F?)r@2Ld0. #?)  颕g鸭zrh8:I? I: I:k/@7~7~N _ߺ? Mlzv NY 8 =REnE =HKj THXe6T" , T"T" $J@91I J@91I }1e2Ԥ0ԤԤ '>K 8U @J $ @J  Dv~Y {VR 3\a ʁ% Wb!s ~ j=F oLW,# TEh 0GL e 0GL |!x- ̐nQK - ? }I: 2 Qb  {F@9# n N ob| g U3r U3r ( b b -M ,. % pL $ +ט] c\fL @zmpR ߩN _. 5F] $ XHF $Qc#F 3 Q5D CRi h{M _/mR ha,N ns 2nϿxK ?bF   ?~;  @Sv3 @Sv3 Ac]3IC 4 Aך* Ba}[ C$X7[j CMָ D#( D D E Na E $ F.d%vg FP FzM F K_s G%P) G%P) H/ 6 - H!n $ IsT/u~. J3  Kb ! K& L7x LiP" a Lo> [ Lo> L Lo>  MvT' MR Nˢ_YyK NMQ< O=?h][ O͡b0 O͡b0 O͡b0 O͡b0 Pq pz;? Q.#s Q`d Q`Q Ru, S1L UZ"5e U{q"DN U{q"= U{q"QD WzқW WJnNv X-CHH XHz , [#BzNS [#BzNe ]lM  ]/?sg] ]/?sg ^m of=r/ ^m of=rR ^m of=r ^m of=r ^D $ ^n- _Jbz `Xz)a. `Xz) ` Pl cDСn) c߭\(0L fd3 f1B= f1B= f1B= f1B= f|y I g1 hI#r< i|~& i|~ k4[hr leU l"IN m {7P mq>GXj mq>GX \ mq>GX  n4eW o0DV pS"h pS"h p϶ q@/ߍ[ r 4Ē rO֫ rO֫ rO֫ i so soD t*΅  tUU  tG!P tҼR 6K u,' u, uzr.[U v) w@9o wc1Yy wξ6f x\p¶tR x\p¶t x'X yZ_AQD" yZ_AQ zۥR$ {2W? {yԗFR {} c {e‰$ {o[  |˝ }b ~\ ^ g'\ ԃ3 a  :DA : :K ;*Z $m $m 3O„j i:$Z " !s x G7>v e,H ""Rd P ," P P Cp%} p#'s w 1 s ٛ[v X1ps ( GIc &F6 c* Zw  gio m X:\ $|›< 'B jA `-  `-d 1#B^] 1#B^ o ,ƖL= m mt mi m ( &Z26 Ĉ*c Ĉ*Q +h{ %M' %M %MZ %M] Ek'N 9h 2+ <7 r <7L 6Ⱥ> lTe: 9$By g #W ӻ  N> j; !S 42߄  5@g5 dI lR lK  "eHt -uY? j WD  mv AjDWT | DH#_ :# XB| xQ c L< R p1  mJO 矏 *av *av ,}pE  ғxt ғxs 4N j~ g~}  =ZW*S  e ) 4qs  + j QJ r {ur } k9G c @WU$? <ܖa WƨB o#8  )m  ~ea9* ~ea .) |z;H 6׷{w[j עoCR G[ ȈI  iZ }G0 ͓9L JѮw ΐGt  V  ']'.  v˽6" ~VH\[ һa|S; , # M~wt M_vA M_  2+?N Ё Ё e ׹}FO fA c h Tv 7`,k - o atD o at GN5 a '> ¬qy . ¬qy :ov ݾ8D q "]# ׷?" ׷s @  : 8= j ڮ: ڮ: v& v&  v&| (ש2 9%B pVw l{"  u =2 \8; o#" r ? ,s W i; OU RR? g 軌 #4 s C] C] $ XZK r r n - 귳֭$ Aw c љ<*t љ<*k p/@  ޖw)R  Ŏ8 (t ꝑ by~K: 1wS . xl; $: xl;8 xl; 0 xl;  xl;j WO;h hL~7 P6M s 7y  s :8Q #ՍC7 eֽ 4t )^/uD  k ~>N f`k hW % (a 2 dޢ 0Ds Ͷt@ Ͷ?5  U W  0i 9hrK ,J tt ! 2s #t _ $R z $'!Mó + $a|ds %ga. %ga. %(v $ '@ '^/  )^@ +3M%6 ,9mTh8 -Y[ -Y[ -Y[ -i|H/'@ " .Έf  0<R 0< 0<K 2[ 2aeha 2aeh 3;$i} 4/ 4+^A 4dk 5P=bE j 5{ 6^˶  7E '1O_ 7uU 9dQ  9|>L?$ 9|>L $ :ZG=$ :Tv :Tv :Tv$ :Tve :Tv :iM ;?a 4Ld <3s . <~b @2v AԚfZ- ,$ B&&L| Bn+  Bn+  E=IZ F? [ FpZ  F +  GJV}Z GJV} Hb0+v H i I xWs I xW JlJ4 J: 9& JI$s LI L3(| LBWȤ LG'| LA" MK V|y WxvpN& W˛} WȕB&: X2> \ ['ܦ [x  \ QC| \e&Sp* \چ ]k̻L ] ^jђqs aFl;a b@\@  c5vb c@g5I  cmt dk RE7K de eD e/Ed eEu c eFvt&_ ffH& , f4 fh gn-[?, h( , iV:*Σj j] j[8 muGd  nVn(% n}ׅZ n}ׅS oX & oXj$ pl4B q տ>o. q տ>o. q]w=0e  t:Ah u ŢR u6s v 3 hA v 3 , vDl  x;mgq  y/ z j zC:vI zGI zGI zk " n za^S4 za^ z@~ zD))[ { a: {($O=[ }ya }}[s , ~d ~f6 `d8  mMKs Ya 6 Ϡ )CY z; 8 ~q<d J`Q% Kaus d1t Tӣݨ X E`.k "s] 3 ﷮j Z - h73  s 6(+ա*P OLE 2 Zm # f1Q f1 Im *Ԃ xe6&  /t틩| k4j! k4  M  _ߡ| 얺(m 3O5p ؾ/ >L ӽ߼P* ӽ߼S ӽ߼ WA+ RJ e RJ  /F+" /F+C /F+ {N 3Y * [ sX sX   5v , '6 en]y@ BIt 2 BIt  QrQY ntYa ntYa  # Bׅ$ 53 V *  *  * *| * 6P ~ K  ZC !l ]dNb7 ss #Q_ o s =lL ( ( :t :t :tS ' ' zO? H9 af WT_ V"  V"  y$P f4N+  Y +2 y{uj Po4  A}M[ O r !r1z "@)Br "@)BrD "@)Br "`$aŒ " } % Oh}  %j8E %*.L &xoP7%Y ( SJdU (1K{'2 (1K{'& )ED)Q )ED)Q )byy  )byy  )y{o  )(m  *P),S *m c +^)t +jw) ,' ,`j 1PN 1xgs 1xgsZ 1b- 3D SF2 3eJB # 3ru 5)u  5$I,7Z 8Dԝ+ , 8Dԝ+ (Y 8Dԝ+s 9>Ծ8K 9>Ծ8 9XڵuN9 :޹Ӽt :޹Ӽ :޹Ӽ ( :{=]" :BxǕ ;p"?fl + ?HC* AݏY BB B aZ c C:} z E N cN E&Pxj E&Pxs HޛX (A HޛX  HޛX JW |? KCfF?L% K Lp M3er/` M/T"_z N >  NNۏ0 NP'ځ_: NqfA Pׂ6$ Q D SlwBf SGOj g S쐪O TQu(^ 6 UJ,S  W*[CK W*[CK YhɆ@ i Yvb[y Zg܀g [+x [XANg [Ȍ|+  [s$ _58Y _58Y `r|(  `P  `P e bN4 >2: bj bw b , bW$ cc9 e×0c'j hKEW6:I hKEW6 # hKEW6  hɯhe+8 kF9;*s * m$ - nmB  ojp--  o,c: oj ߔ p`gO p߄*_ qN& rE smHxT} sw - y>  zV% |Oq ~N  ~NhvV Uك"k # k Zo k ZT sN Nt "{? XHK a"vC m #e i E} E E}R ާfN sV{@ ޯz oOaR `'WvQ @-jB ,O IӦ^  Q/7 i"rs *' Jڑs{ Jڑj b3 ,DF QvݠGt 7 #Jw| .™v  )t / [h]" / [h Q  :,%` %|r \$79 Qtg Fmuk Y JdO&C ;LkR G`$g I+D   ,  Úh eCTj M< d' AOoj %p Xzq  u׋2  h  J@  3&3R \su K wjY y  V [1 V~^ ʕ$= ' O 5 ½l8v ½l8 \ P/< + SxR 5J 7 ..9 VX;? k6  wT" XT%d y:ލ a ʓ:I  E5 ́#<6 ́#<Y4 ́#< 0 ́#< ́#< ( ͞RٛC% ͞RٛCq {c wEp  Ϙ 5 @] }~i аCTd0 Cj a R 8çs G n$ ׯQyJ ږq ,CB` ۶Dfhs) ܯRZW52v) CYv Nh[H xD'x !L ߞASv r} =- = ߠ g   L U K|X 7(Ҥ X,#gY ji, ߂;R /SgG + oy c oy z qts Z3 i 躧lf & 躧lf  %n$J/ Hk& #9 [] + ɸ蜿  `u  {r 4s ! 2 b. , b. _dL* v { $- v { i v { c v { 펩:D YDAT tbP_ . f/B]N R  e HO{" \ z2  /ayJ ?> C!q| [\ K=: NjR 2 r (4 gi7&? , cY `u   Bx rLb  Y r C ҉ ai Br ] Zs ZsR n%SZ 1 ٩:K C T| @h X!_ } JS q7t 8쌯$ H< `=` v Ep/S [XO>p/U [XO>p/K `]FOW{ b  e KK f/ g% h;wc  h8:" i\| iv)D j5KCC? kGT@@ $ k{c[ k2(0? kSO  mswC mswD n!IpK n!IpL n;ܸ73 ngOZ pueUk9 p+͝ pbQR4 q>(p  qFKB:  quK r e*? r4 ^N s8? s` t D\P? tg![ t= g tY; uk <3 uۿg v"}Q) vY YȦ+ w)k w)k wd')FR& wfMs54 xW--N x'ǀC xzdL ( yYKlY {A( # {A( $ }[.Gf  }q\1w ~I# ~]75[ ~b}: ~b}9 7↲ =dd 4Z"S PaY f'Q $ f'Q? 䄵" y 0 y ' vh  9mF  sڭf sڭ Zng , 1B  [? (1XL (1X o@G0 o@G 3P% $ G9  r J 늛Ha <}Y 7 Kwcj  Kwcj &2fY OL  ԫO <n~ WU8 ZnvN? z֜ VT  6B; c @P곪4 ȁ H$K6a- H$K6& H$K6Z 2 P#  v|E [%D  # ws7 j  Ӡ!Z" υ S^i S^i S^iP [M $ z,( ( 8G F  כ "S hTE  y}ҊQ `:_ ,* y WZS^ <}+L <}+ ~*5~ Gj#' pmY s M3?* +i]  .L %= ӵ6v ( Zx|8R _' u a o/pK s` kN[WUoj  - [ oKL !4 C.  wt {| { g { ( ^  8 ZZ peS 8` -c$ -c$ ^ I %@l5 %@lD/ %@l L|˒2z w>H   ‹mR j} * üZǐ,  i-C 3XTQt Pil\  C 7b  =F =F =F u:l+ eU !;G D.  Fd  玜!! 0 U0 &(y$ z>f  mLC щo# w ^ + ؃ӌxS rQ ܠ|?*qK l2'[4 ( l^U l^ 2*  SY; ޣRt K7!Y HTg Iݻ] cٔ ۺ`U m~  !e@t !e@b V0s V  ; &n_a jQ MX Y Z[ N\`: m叽e 쮢Ca 1 |U9 -πj -πj zljA s 35 a ΋ t5k Q;t 'IS? b>f7 m  YA9/9 H  \zA8 ?IjJ *L I^j I^d HU `j ? E+gbA E+g , E+g 6 y5ߺK  N&?] g's  g's C z* z*  aSxR 2C s$ 2C , : ; Ň ck 䅶N\ '_ '_D `m:?j ViR էNh ̒ ),:D aeY u#R $ ? ^k ;  ryTjR ryTj "7J ,{ܻM C ~<  a FM QC xTW=bL xTW= F xTW=  s y-xv* G x G x ˑj 5y l XH&/j ׉n m `4I , wƘ]% wƘ #n #n #n ,' U}! 1]I "^xK ,L  ,L ( ,L ,L ^ ۏ: gu~! 5sv !VTA~ #[떢s #ͥ*<1s %"0<?9 %"0<j2 %"0< %XCgnL  'sy (\aBd (\aBd +Ă1$ -j&mB . /U5 /f)ض  /|&Q /|&S /ò}ɨ  0s,Wz j 3>u@ 3>u@ 3k" 4sE 48,`  5vq5?- 5akJ^ 5H=L 5H= 6(E>` 6юz - 7ξs 7,Nw 7>v 7\AF c 8}ܗ 9|<  <ȡ < \ >7 n ?T+ ?ט˫#4 @ו AbMO  B2TG i Bvʠ2 Bvʠ \ Bvʠ  CYFa\  C.(U CsPxj DEg E{;d b F;GX " FH.NN4Z H2Av J!}g J!}g KQ\@PN Kpʫ+y; L GE MsR O! O!  R} R} RUE0 Rʟ 2 Sj/*e SؗK S@QlQq S-t S]IK T@jj T ) T )~ T ) UUVD Y#U Zl][ e [ $CR \6*R  \E/  ^yNж j _A _ xY `[*$ `ӽu˿ expZ ehx ft}~  f?Rı! hl/+ hb+ݵv hb+ݵs knR k%Qw kC>ZQ kC>ZQ[ kC>ZQ - l=2(D mVe)I mVe)I  m,U  n rYg , nqcޑ= o Pp t6  t6 a vX w99M w99M% xʢs81#  zOizh z;, |Id |YVsn  | |NB|? }!M[q} }ghՆL }L 9#k }ҙh)N,s ~j^  9% > D % #R =" )? :f'= :f't7 k7X scċ Z. Z.K pV!z <68^C  ԻAg [^2v: $ z|[ VlAS P@8 * #LE #L1 #L g"WH =NWR  IWB?8  IWB?8 i F l7y?$ xdh0 xd ( Kda Kdat 1uj1B; 20 t{# k2 kR @t l9 QI  }9K l zA4  4 o puՖO  96 /" *rN :;‰/ .ߦ 0{ G@? zQ z sR k1M,y e' k1M,y  k1M,y fK@9 RUY RU k {O~B- V?[F,$ӻ}5'ӻ}5' Hc4 }Re }Re: }Re _r;_r 1|1 찊S3}i c5k3 RH~  LQ\LQ\=$ fpdtX?&dpQ  T!N3c #ƈ#7p[#R~xH[#R~xH$-t(}yRS(V (ڡ#)Tt +*<`r*n΁+,q :0 RQ1h#e41֟p \ 3a883a8;3M3M 3R3R3R<3R(3R3w~13HLj3HL?W3HL 43HLR 3HL 3ƻKH4?@e 4P]i! 4ω*Px 5;; 61|. c 6 7S 93 :GT:N|M]<&rujD=>iǰ=  ?^$’+9@@Bj Ac ,AcnAc + Ac Ac \B+)G -B0Y^ B0Y^jEd%4F`.F` F`KHpΛ7H՞]Hٿ m IZbv I/pJ**KJ~JZ0 K7Gz aK]d! ,Kef*:SKx+GS+Kx+GS K3/)@K3H $MnlCRNW']#J $N NpDY(3 $N{)ZZ7O? O\a]ZPβ|R[Xs% Rnj RܘCUK? Wb࿨Q W$ X'mEX'm(X8דZ^q:kZ^q: c[,&H[uܤN\mC]:\?N^[?^ K-{f^ K-{^ K-{ ^ K-{^ K-{a p a-p$q*bhDbݵkF c5t{# d"dudeghDe&B~Q ,)e&B~QfѥM|Dg(xg-Y,XU3gj~z ahW:Zl jI']YE k&% lql #nQ[YNnXLM o'Z  qcl/ qK,q9`_bas} cs؆K %s؆K $uDv[9M v[9M ,v9@5vU?E[?v2D>w1 (xu2"/9{>sBQ{Q{0g~R|y G;|y G; |d?V~| ~|~%5iLC~W‚@> f_ =A?O7# :y% x?ms ,/tDDxm jpΡC Os\S0˱Q8= ?VЭv sjs ٤Ȼ&sbJxs\?ӈRa7o;, l qHY@* $_|a 4 +KN _3e$He1sEX˩F ħ uUR l[J@ \ #3ƀTt8s+^`>+^`bu),5 s?d*XhS c2ʖ2c2ʖ c2ʖ:c2ʖ|F-& hRcD9  fƍd>vw /WPpUZ tƭ 9LŇ_ rl v#]̅jP]̅Y ]̅ St*St*d St* St* j>.RN*~5q ElJ\ŅIJ$ #dEm ,IrTH^Ծe`^Ծe` 4wKuFւF|(h)8 RS#:x!b \X`KD#EXؒn 2E} I:_iذANJ e匞 (кt кs @XSݣj9ܬ*ic" [w GM[]  ZUgtNè]ĢY i;8 ( (T+[жE% ǒݕ =O 󳀃 sI3ӈFc %ۦ ͻi$ ? 5zZ ΍pzi :wN Dc$a7mGRςS c϶qo N]{vs_?>SZ2k@{o #Sojfz2 Ӥ ڜ: M1B ױzR9 ZY[8 ~ j[{ظr? (j?C@/\U/C@/\`>7/`;LϩX ܕ^ph` S ܯ4?]_ܯ4?]?D!sxH.ϧ;݃iwEe7\ = !Gs4MFeZ~oڏ OE E`i^茍 }W}W霽'P i H@jH@j"rN%?) 2 >J_~>J_~R>J_~S!ݘU 'StS"=XBqi ( d@` (T,h T,h *דv#S-L-#S- A d<θ r}"1F"0?lF>F>F>R5&qqW6VT, c9" )<ҸD)<Ҹ=  ^XHe ,#^XHe^XHe ^XHe /H64`oCb^s US"=eNy}9=eNy} mr8;"ں}lۦj o{Uq +" ,i7] aï O%\ rt e f9 C% <=b0kIyWmX޴-$\:O +48DDJ>48DDJ?9HU l?+ X]A%h5YAsR$ aA* BBR DbAkrDfѕ #Dfѕ EP;vB:EP;vBzEP"JFe: $F;ۮGJ$XL G!I#[*} JpחpSJ&vJ[9M{ϜBM)e? NT<צ7=OaKdP = P;  PvPۘAw jQg8}QkQCsRI6[ RI6[ Rf7}qTeS U7hRV3 $ V*]X*O@ܨsZ- ZIZIC ZX#[bBr[{NJ|\F, %\i`'S*]m&s\%aJY( a֋|$qjdE ;fS1ɴD fS1ɴ fS1ɴ hr5 hBzxSi^Di^i˫iIk sjg oljh]^ ljh]^ (mV`/ #n{H 6nyi>o!>`o("soI1 q%X{Yrq9= $rҐUs\e t\IiUv 8` 5 x/Kz x8 xESqC{,NS{~ # |wxλ b|߆ϗ~ V }[ Zә' nhb s"@j &/=~ Yx[p $:#)$:#|I[[I[8kS 8kSUٺk/,b0o2' jvWGŞFsONc=Sc=sÁF p'hf ZpjpC\w$~+svR >/۞ר8ŬUNe[Q^ Br?cA h? ;9RJ $tFtvZȿ!t˦I+4oj46m v˾9{h!{h 0B cd {&R 9)8=` ih („ ƴim i` ,@ (uN `k֯7un ߪ}*oz4x az4x 21 21rx {`D #Lw`L Ų5TŲ5Ų5RŲ5d l g  gd܁ɳ1~7ubH4aH4aa1ݞLvg 7" 3%e xZLDN *ARZTz>r* G'vG' ,/ zL,zL \ : > \ : > $9D ʂ FDS \ʥF^Cʳkg ̭2{ݔ酠)Q> )Q>a*Z +X;+Xt+X+3+v+o "-bb .M.r /lټlVI[08L (1Ơ @ 1Ơ @ 1 vV e1( 3ty3}Y&8#3ÖPG4/yPh 4Z) *4Z) 6 V{Gcc69e \7QvM7cVԟ H#7cVԟ H7cVԟ H7gM 8.pK8yQ[9?F2d :vY:vQ:vY:$=\V:5#`iv ;l,-;l,-Dood<BY=P./ =n^(o jB?8,D :t1Guc5$St"*St" ;00>YBkR{v ! X>A:#R#b'[D~NpqS  pHw:Rt;`)Ũ Њ0S. Vl1=Vl1Vl1 P)Иڨ ?m 4 /4 V sM>e+6g 4Ǯ7f t |mIJM ;R_Q.b.bVy"  Vy" y+Sb0 ']/0 '0 ' !AW}thnR SftD>[ ob t *: ɞg{VKHBTe/ be "*40% l_d $ _r0N7Uk WSMqDlI- ,{uu#{uu YJ;f}=a[ KH/%`w/%`wě47qT]&5A~Q!*Y2R * a0Yi #&'Pc'?  gA@gK=?s v[B[h&r [h&r \ P0bP0b 6JC b [2]Jr_{5 QKSę( *s@Y Y$# v|I^u!I^uRTY TXQХuu 27'~MT hP9{[s_  Wy 3œgn8y G Y!Tk*e솑 $  L 2 C@kQ E! &3o6 [֥ 5 bb sq¡R sq¡C Fabs7%@Ho BTBTBTR<BTD RZ# ,$# ,UҊȮ \$! TT'BC hvL 8- cOV (P^b Sz  2HLz\ ocȖ   9\[ _e ";!| Qr• oD| 0 \ ,s%@WHPکә _f__f_SXKs6A ^7k^7?D^1 Ks_` o @xN^ Yu;U2W޶Dy jcbjc{{d{{R D{ L{ L{ztsk pR$$$ p8 $ p8 , p8  p8!|r4S !|r4#x^r#¢ Y $ۈ|%YH &r[[&r[[ ' (ÿqL0 (ÿqL0(P )8}8 (9)#|Mj*YKP*H3 ,&ꧮ-Lhz-Lh-V?!-V?j -V? $.r%aR0V'\ $ 0 2 D2DbQ(2`/d 3"b&T$4Mb2 4Mb25dA ]6@2 6@2 69=69= +7A&>9m"A :R9 :A`<'v q =zf-j@@7uAH(KAH(A$@վA$@վ (A$@վ BoqE BoqE C(á C#:Du?E E0ERftH;8 H;8 H;8_ H;8DHW鷟C#HW鷟HW鷟Q HW鷟IlALjsrIRA Io:QKFd L/7kNsP҅Qz{+RĹ!S5GsVMWm VMWmSWR01CWݩ WݩDWݩQVWݩRAWuu\ Xl/!Xl/ YGf7_Z+W $ ['w d$_&_蟅 R R RQ"Ej f4b? (P5-v"q iSSd 3 , d 3qZ (cx̲U?LbeCiLbe9LbeTt^|`s! ">9 NXw?i e%s ! !6v*H{) *H{)v(ZaݿN`8U)U)ИseC;Fµ<K6B׳ .BW]KR~W?KCK mK NfTNl{S 1ϔ?1ϔQ9;؅y. xm%3t; ,uPu lsH/;ƦX,ƦX,<Wz`? ruY  hDR D w"&'|Cm L]#^]bX?k)k) Q V\ jE"- *#S*#VOxQT  ¡瀏  挝 Wʮ Wʮ2Vw RcK(  ?  UQ#dpvp~L pvp~ ϚRwkSTD, fpvZhĀ6f -s9Y1(Y]5 ,Lc;d c>p Rfb'iDG+=ZUQ!х d4N d4  d4ϢvjOy`%Rty(;y(^3 52?ݲ GsEGsEB0ENP nyutF$sZ \XDgj̫꾩 Sd!JBםxeC!Ԑ /7,* M6L IhjjژdҊbQ,cbg"X ߲?t)hZkVf42Tm s wӛ2 zJUև5c/} QΟXy  / ([)ͦ6 dQI  ]y &~N:J  &~N: &~N: w7 *j9!j]2KY5f%v$9)i &ЏPUzG; ]"#^_??a#'ީ 4 -g j]2by zA@NYK 7O\ >Y|gs叒?  W i "$޹ #1] $ &m!W(FL \*>rW *Ybё+HO +VGNR .RH w/Y` j/W%0yvj,1ˎb3]3]3]R[3]F3]3  4#&PB *4 Y63 6΂{ 8]-!D":zP°;wm.;kar!;karf5 ,>Tia>Tia?TdHD1?TdH?,dP @r: @CA%NnLA/ ?? AWa B8!B8DB8 B')ERIwS H3b_/39Hh2TtHI<I~MGI)nG7 IS] J4U<v KDOobLS'2K LaKg: Lh};m M9*NgFYtO7_LPܢo cR!>)S~T?jTM 6i TΎ UJ9C ]UJ9C U=Pu U |V7/5 X$' |Y þ \\P1) ]l^J"8`8eŇZKaA[Q! sao:sSbѷ ( c7$ cף> cBzd5 Q ezACf/{]f>?. gd, hRij <j 2~=l$i) m3w>$GmB$+mB$#nm nS$1t pz,˔Ep3-j g pI~p{y`pǶ9驽[p٭F -q{!NZ,s47s£W vs# u͉=X! v*Z $w稵2C w稵2C {'\ |,`0?|Oi; |Oi;~#U2 ~c)6!?iSt BM~ j6v4όU4όMlo r 2N޸&L}i 4 c>i#?Md OkC Ir%Q cISK t>?t>j٧ m?J 2 i(2jۿ@ۿ]ۿ%AQ ؞}Fb"#N<` avҡDQ$'OPijA(]7MDȾWðS0sL<g"+N cfE DQvfM{f&Emf&Em )f&Em ,f&Em f&Em 1f&Emf&Em $f&Emj M} t"rɖ $/:) #Wȣun.Ov+ 9`k6ƬVN ,3(KDaRr@sW ^)~a- 7"7P 7"7PؓŦ) t7ar-șH , -șH ֽh;K3T+G" 5S qF#(*cLvf.=< Ƞe 7p f s? N (9 ^}uVU'^*RVm" ES" -pNȈQC#S:~|DQH 7e ᧪sðEeptKa<bŀ5닙8p1f ǭ߷=S)%+ ^ ț#D1,G RIL xILs2PȊ#B LPȊ#B ހK mxt`?Ԩ="‘a VdDGQf4=,/ p^N׫ R.XD{e"܎FҖ ܨ2 5&1{ qG" _#a ⧣t ?Yn9Z4ƆFU -aN-V ! e (}(}Ng xs?J7 R;b c]=_7ghWLL"q h/H#* Q R] R] Q] ּh sv{X7O. ; Od~3Q,O $o4|"o4 \&O_1n * n3[tzUn9l 3 ,d\6 RZCU[P b h-3 (O b +jLL*v 7>r )7>r 9Zw -,88TT)l8 WDdރk^3eoHA{] s 6 6 , Wņ `M$c  øw(  si A+*lV3P( {CXK FcnͩͲf gTD{G@ ?W{\|WMGS|WMG|WMG8ss @ /ozU~+u_i&]ڂ ڂ&Las M$+?X[!qDKV4hV4h&{FGOrC}PQYZ4QYg{  SG i SG iDS SG i SG i  SG i SG i!j "DK~@"rwB $H\T; $ɔd?" %L4N%L4NP'No{g 'No{g (g(10 (10t(Px>#?+0p|0?,sAr._g/ԡ.<h05?1Ff675Rr 5#& 8_98h 6R;_K 1;` <$ J=Q} e=!~G =h= >N:N> $>> g?$L fAyg@B nVBPy+BDQODQOj DQOREWW ,EKsbTtFY7 FH ? H#J޹C.H#J޹IYnT !Lփ!QL&>]MG| iM[ NP;MbN%zOuM?NS SS S SASΒ DS<0BH T$ }Mwo TkUfUBgU W V38Y"oY-)8Y}Y(0? ZDP\S\V ]&ک' (]m; a]m;^:>ʥ'Pa.1!UI gaph .am3 \a״  b(ȫ 2b& bZscɀ]c(!|3 jcfd g dz# ld8ieJ!hBei4kei4 (f9j (h3No 3ig8 kDukeٰ (kk?k)lve lmH9lmHL)lmHZlmHl}r mIG nc#o{LGotprp^+kk p^+kkqDqNOp|rZQ_ tbC^?tbC^ (vΚ(YQ7vΚ(Y vΚ(YRwoB w"^ x2Ytz{YDQzm0 |nG'Lu \}u2~<،q~?n$ ~<\T~`x^$]NNu 0 QAm'RPMunD4U?wunD4U toh\{ ! ɾ\d|: ?s#: ?v R8($q D$On!J0R JPhY'WsGp&J ^+^+diXAxqew8d XL[i \ZI{5YPlv #aB l " F;Es1I cZ Z Z ZYs@8(o% , (o% H?M Th&&Tq7]#򅌗C5򅌗RX{7mR L{" L{] d !-*ߪ*KV(NÛ Yq WRz~ GD @%rYiu6JªY3;yyh $d`sKaZCKaZ Y ( ̝…Q  ̝…Dޚ^  4򊃟4򊃟SQZ^_S!%^”BNp! M7aQƅ ŌY Ō (_q4~Ț~ I C%vIZXmcSʳML%¿g]puR%<0# ()ABR ώ]ϼ@QrN{C PmTnz  az tѰ)T#Ѱ)TQQ#ksսϻ )`bdC+Iץ~ YfXQfXQ!+ٶx@7] L{H̨os  س+ D~`= ~1߃zrh#L)Z ?nK/1G dzt$ޯBKnޯBKnCSr'< &Sr'<X# %, 4L+T8} *Ŏ*Ŏ JN4J 0Y巫c^h.0^! eMc \CYC[|[|5LC (  {v>J%u_Hru|:YDoN" WVZ &}Ǧ]h:'j |A*C/*C/K ,(;},(;QzkQQzkQ?Q?/v}Ih#ss0Z -ѫ IoxfޜoHoq  XqN8LG  \v.Y;5 קKS קK K rKeee esCK)>Z>P"!l$ P"!lU}~SO ]RȰ? Fe  6 , |R  |L  :ƪ8+ -  㝊 -M*  -M*| -M*  Lu6w'dB2U8_@$L'v \k{ \k{ ,--RV% [1y譓3MKȝwa%?~ *%=%=D%=UuRCZ? ف" 1 tL x. x. x.?!{=e-L !{=e-Y!*X1c :" s "Oe܂ $p1G/&/UcRz&Koa'0U )(6*|o).\=?y +\=qX`",}>-ԗ,}vj.G+`/:#80YQ1 WKv2n׻ 3b?S8=3P8ִ) :8 -;1<1.Y';1<1.j;͓V;4N*<^1! =c2c=iXE=Uy` M==>xWN>xW>@,5<>wS_ >AV] ?# ?# i@|aB. &Byg|Cڲ? D](֬(q DnTF]w0GwH&AF_f?IDh%z IDh%z IDh%z eIrƘ sJ@p!kK*K:) cLʶ%uLʶ%uR Lʶ%u]M??YME~GM Omi P![P![R&-lVR}mS@+S@+S@+ BS@+ TTBWtT@ UqO1 # V$7 aVkS8 W(} W(}dX*Y\KY7UZ-28+[f L`D]SHXGJ]ƵCJ]ƵC]D+ ^j Bd^_bH` _R13D_@uM m_?_ (_\rL_rq \_rq a`0-a?ocZ;70eau e(Md4jgitCs3itCsj?9k) lNrl%yl%yD mH6q$n-<)Nb9; pM?:q; s.ò>'RsU i tlfKt$lNvLr x˘>d0zW+o}zY$0?z[Ӌ@8z[Ӌ@?{2{)f |V|V|׫H&~Y/!vR(!SorLuSŝ Nr''[';'\DhQL\ i1L\?\s!(  bS    Ѵ $  { Sſ)?s-s-˜ 9yH  SsaWRk Qs 5Ð $ :@ ;')b?;g!Q:M: :R\DBua%u|%u %u s%u9y1O;75h c C'T= #C'T= ^N J1 ,X bu.!  bˢHC0+!Q9C0+!C0+!BY6erX y8G1> ! {$j{"$nk[&E}6 K0mB[Fun&_ 8fȿDd [dxK.w - Nܡ mWj}R}h}Q34Ѩ  |x*J7h|_%| *RZA aH(\RaH(\>m# F؟ ֠~' \Re`e $`ej`e (/ $8,̀o 8,̀oC\TKO bh9h ~! +D 1G ,5_h 0UK ÜgUr   V{\4>d~{!6~{!aċLkt۪3K ~ЄV7  8ogV SksA8F^DF^D ǷfsjLɅ6) arɅ6) ɡBIzņy> /'6/'!/'ʯ7 kJJq ̩SޯA̰ qgs2͈Gk WdSҴP| ψ*KRnϔOdīO1ZkD KnG$ {hJ(g :{hJ(g \l~  y1Sӻ~J{y  w'ypk բMl@CvRqZG +pz1vm ۃo(TBsXok sXok ap'ˎGɹ? \3Z -> cGYcG cG  #ၠV KЋ$5D1S6 s%CH N4Y !B1 䅐 ) EGYs 9s 5+UoX $^&Z [׈'1*c!ӌU a^ 4 " 4 "j vx@cVVTZ"@Pq1z󑫨 ,Y+@˖˖˖NxMK^  )AYu4`N?Pf| \!?!j m!?N1X?J C"4C"4Rb pE0` R2R! m"G ]7Y $' ]7Y ]7Y}Kscڥ 9X"  xt= g`yyB%  KyT+8s`^h$kM R7O ea<5K;0yc ,% Ms%QM  ߡrs iUX +rb =.u@  N:haS9}I'# # BPnA3A_y<6 cxlJ $>S}  ?g "cZs#H$1#H$1#R/v$5] $YA[d.'$YA[d.P $3C%`'7# -'7# ((~` (s5|)?LOrP OǛJ P#r ?P+ꇲ' Sqd s Sp'TUaD TUaD|UrE  Wd1WdXt4 c'Y  s Yo3i|\WZ < \`Ե~ ]4Wn? ^gI a^ሸ(fR`ٝ aAk3%&aAk3%bo9lg2bldcޡZ>dl) (dv}Ud9x fK gb4K i ,i (iii;n id k% k% (kz;+ ilTZ[XQlӪz mbF no( ,pc A_ rU{ru60%rvӥFrj,s^~= ssI7.u$Q v[̜Kw8F]^ w{'yUDyOn4z~?23 |2O |{sw|6t} `͐j} `͐}]qٝ?}ml}m];}m!}m~"kDN ~X#/K=~Xldbk k!Rk!k!Rk k!Rk(UŽ#*~:+>d +> f Hw%Ck dbn ~ n ~r8sV;k v0N^.[;D}@l-? \B bZa$> Ad^Ad^ `+ yLkG| s骍:"`Wl;#%nÌh}  ,$9}gbO?:, -|7 -|7{gQKgQKk+~ n|=syjBWۭ]O! O! stS #GԂjCHv^ge@ h#pI Ň#1dz,K==B jvr @ɫCBCHR ʸ/!x _p|_p+_p ̷ݭ-ͽO q#)V Q-O- - ->xp[ z@z@b ЭZ:Kj yY7.bє3{ j'y"L96 sYO׷¾ ׸"'Z&t??C7U?C7URH$k̵VsS#'ޓ ->Sjܚh !"DRE ޠF%%RV6I|hN;D beVbX1QN3bX1Qd1V d [:*\`c9|?c9|c9|j=7$u&f? j<yu i 0fR 8ڝΙ|y#h "#rFc 'l-Z"8-Oq:vWNrs1 ꫾|2꫾|꫾|꫾|]o!Q!!S}o S}o U \. i6 lY'6 l  n/s [~CM8R(7Js_"!yz,I: Zj.NvU.Nv.Nv A WޠoJ  f3>} 3>}kiH&gqDؔ#*`p Ӓ ӒN KƃpN;KƃpNKƃpN|U~ o@E3 mYoҀ{( ԾDN%SBNT P*排Y 4 35&4 354 35]@0NWM8 + }  X+ Xt3 X (# ־y  i  4  Ru:  Ru g =[  V  WV!# \ `M , `M  Jm?fQN ԣY $8i`^jֺt h }ђDr Y '" qVLjRToU (Ե`'w%`'w i{*)xhco \Y k EZ;^Z;R Z;  Ox I>|?"/V $%+y[&g>?G1'3h)*mK*&|7q *XɊD*lb!a*5CO e,:7a (,j !,D兑|-mOG 6`.o֧.w-y[#].w-y[#/zA:P 0\<- 1|cpf+Z1|cpf+ 1^%1pI3n2q 5 3] 6?j6žQg 6>P"7/=:H7be e%8k.9?8΀ 8ۅB9uf :|S[ ;_c3^Z *$= 8s >8؟ <>Sd" -?ZvA6}J #B; B(m9B(m?D ED ED0?CEjqF*/wAF*/wAF|Wu HQ=JN2eJ Jjl9 -Jjl9Jbi=JbiK JbiDJIHƒfJ!GsK9p\ K<ԺI=j1Ll-?L 6L즆 a L ^]NNӋ ZO2<0 $P7~`PX[?PB7sQ.<?R'JdR'Jd TZ9lTw(,RTc{ Tc{m U;_ |V;6r 1U V< `V U_?X3 iX3 X7 o;Yһ%Ŏ Zkcx擼j[lR\M[lR\M[+́T\OXs]Ig^ ^A1w2Y`6'R`q93a!6#ݻb)C5 bG8CC5bSn<ˆ c" d k ԶD d k Զd d9e X[-df[8?gWX #g<Kh2v4h۱GObh۱GO aiLin5 je bj}F&sjq~,lPSlͭXĨ&l[3qV`orOr_1$ f2reth&D at ' (t 'tuؖn5d]6uؖn5d w@&][ xi߄\}x~VJ-{8x]Z {W3M/ |TilB|Til|Til f;"h \lZz JiKk̀L.̀L. zZ_5jzZ_5 hNZ#ns_*QW|*R qz e:l-Qw -] =g h :݉`u<R<R .p Mx( abWɫ31ʄѳ \Ӱ: $ ކYs Dȧ s) _9 eAɔIG&t&t p4 p4 i  !e l1+=Ҍ. LCR LC,\kRn 9)4d9ǚx? ǰ[_ *;fβȽ/ڮ )#S. 0t gEʢU͞G #[;*{ `Ȣ`Ȣ GqTZ ^ޕ ^ޕ +^ޕ ] j=uԢia}\ a/Cr0~~fZ Va/fO`uԡ^D$6.x]m Ɏ¤  Ɏ¤ &tFרoq L` sahO?%/KiЍܙٟLY< ڢ^ʕ?ʘ^=Íb ۰v=FF/ ^E)}p L 5^=[(߃hYk o g Ooj eh*cs 6cs Z&[囚yɸ:K  -t 68j?68 ,68濄U G \ >Α|>Αk֏vG P SeUגt EM)+o9W"W" sꙊ7TꙊ7T\qehjҗY j6$s }dHL+޾N򧛻 ?AZ|ã0`3wkFX7` Zڥہ &x3äR &x3ä&x3ä1p] ^}e J} |V VHߟgTBOJ)ygd)ygK ?}EaV DC UDC e+DC  y֌=1% s_ug w^@  YQ\ Y  Yd58/٠t'2P`S?Ik `t ط$ A(jΨ s jΨ+ U wN6N  ٨vnOZ>0RXifvWu2 ƅ;/ƅ;8WB  ! -j  -?;'t;'s~TUY!ܙ9){wz̡! ,C'( K!9 M|%zN  tE@=t"^t "^t ("l:N<#"\Q #gBЖf#~~Z F$,";$BQ$dS%9b^ %PBc z&X62U&,*A5v +#o$ 5#+u b0+7} ;-VBۮ-y] .F# /f/R6K$ /\,K 06vh 0tһUnA c0ԆMZ 0Dd2=n=2=n= )2=n=2ݽl3a  4^_?$ 4/5~ $5EM 5,̖56:%a \6u;K 7LL8w@E9Y8Mg9 :q&:jBj >,?6;D?6BE@;?u % ?R>":?3L@D"2^A-ۼd BRl/[Bv:Bv:BtGx:,Bº #fB޸XY:C 4XC5h"| CyoEoM EoM F QY4 FЈtHfRI?#BKL0ImެrLc1çLM4z  MΚzOKOo{$OFvB OFvBOi_T<QOr\ "Oq%^XP>z) R`̨DbR Sid RƁc NSvkyT}I U| .Ynvs Y$bY. ᷆ Y;p`̒QZ5kWU\8/rT\p + \~ `]\Cf ]t#l" _ǕUj`:")p| `:")p:`:")pzaVYSaVYSa>2a+a+Fa+a+Ra+a+ c C":nYc犀-h9d?0< , eV=TIY el߳:ReKHsip-k2^G] k|ٶdkK|5j#OmHğ *onI6 ,pҤRqAHA t[Œ&Ut2\tήu2w;έxZxrty4OZ%zOe@r zOe@[zn b{ A{&g }ۃ }Q_~eW~t r<jsC.?Yo |$ Vƒt =pf4 cf4 # i: QrAmd ̹:PilFPilF ;?} fԑ 3>(v!O? À3YR/À3YS 3sب>vbDi *bDi33GTS ~` -bU~ xڗ/zzN - "0?uwsf_v7<vuL - xU1Vs Vh7[?) %:dcAW  \vbWbW bWX_ !{ {wnAL% vKWn5*4 "}h(* Wkj"LmM$ Z[ <^Wh<^W13MX3%$? rbh{i ZD(d/ov^# g /#y #kݬ ?_!=nPs /urU*K//urU*+/urU*MEU > ï ]# qS'ol[€@A[°ޞ ,¼7LՒZ6 + çL|8 Ź(5j F(KY0Hdjy7aY>cxaCDǾFɖǾFɖQǾFɖK k]՗Q q5/Yw_4J s"G!GxSɋ؃j.i i jԘ: 6䈣ʑ 2Df&!ݒAN\d/I92qTpŮӐjhӐjha Ԫ-"G  xT *]*]Í/܋-Í/܋-YÍ/܋- g GyG? N3LjSK'D4xE50LD?`W :YN.jD`D!`D!UT/%>T/%> vY ڤD(JkoSp܇'K+,ߘZ䍇 ߘZ䍇6Eɇj6Eɇ 6Eɇ ,u|ٲ7v XS{mOLQ&i5*r~#D *r~#z*? ;^( |jEU ,=޾I}ca xa< }I %|mf m -Oe?Ly Am) a%P$Jqj ,@#']/ -@iM&? 7?HRZi?7=PR;iC C] (4  h6F7G4Ds8Xs؞ eO؞k*1Y&Ld`wx0~ltCRr 2 Es`_}udz:1svR1sv {/dY  {/d 4G[  \̷=08 ;|;%Q|  u%N ZxyK 2KTF 4h* -"ؒoj $mptR/˹Kf?Qur`;f?C/cĴ ! 5A+ `#$莞$5&BBViL'<;L%(:\8(,ל(,ל*&nHC*26![Q+@J'-*1a .z$҈.%X-k .t $.dֵ(/eJ^/ŗ'Ԓ 0 s]#1826{D826{29D2c53۶B3#ʫ3#ʫh4jf 4F9?5XӇ5XӇ64b 64b9Mڎ9͚= :g6i~Z$=>~Z=2R-=mCD=mCDR>d? i>$`F>^e ?>& AS= AjpsDFc Eaz s6FvW4 H+6oRHB`8:HB`8 I I]v Jۺde KkE:MtRMtM`M?ui46 (O [j? O 9 P>n P?J PZySQh  RRePd SQݤTMvΞv 3UȫW (<VC~zNVM̛*XXXS YkAtRIYJ Z <Ó]\ \ \[M&]pK \].^G3_@0Ұ_!3`{nnAaXS֍p|@fZ @f#F5> hwm \)%LMs>v.:zF _r {onQh (onQh#onQhonQh \ YWL] `ۻG! .T##K#2u 7'I37'I7'IP1k4 ͭqY#q 3,K6Ƙ*Q cYbΛ<[B +Rk`LK OQ$ ? S6Ny FѝVӝ\S?,ӝ\S !V+9 !V+9  tR4!Bzດe #px" +I&IQohOC-I-IC80id$ m15=jE15=|15= 15= 15= 2 )L nL`. 2.r "I(Qx!s緃M3a VNX]VNX]R"CS\ކOK a)YG Yj%kNEL0 DlEt] Et]:ʃ%Vfy ug^|V=| و ؙt.%*:I  JQ iX U mknxPO&-|j c%6= z2F+.#-PzL|[  $ $0uR~50a?&d &G&G 8VS5SO] ǔboLǔbo Üs#ڻ~Ӑ iH P9~Qb NC6 XFSC6 XF l2#Э&;<[t*11 8Zr Ok|E r5^:hi|; bbSPFbbS/bbSpnpLpnp"pnpS% ia3 *ia3 FF44]M%}Rt̬9`;?ΈSnNRn' ޝUtvo/n,?wk >v mY *Yu @k @k +ʃ $ çM* çM* m.çM* Y çM* ͋ B,Y $5LN5L悩l5 5  ~ ivZ O-.R!O-.R  M1~ e(c:( ecE~ xvp̗*L T/2 Շ9q eG`j1ZHeʰ+ʰ+5Lo96QyXC6QyXLKT2/:)zX[ X.N{P9{P {PՐ |؞Ԉwc!n` +Kβ NF! H HˏU w #ˏU w PL% PL% `uɣyf$7  y'| S{[[ y<q.m  m?@i W<{Q-Ðxr2=MD} M> $,Ka,v J , _VE* !^A"Ʋw"",V $$e֍F $ZJs $*UÜ$ $*UÜ%Ms%`6 &K1D'B` 'J @R(ZݾY (Zݾ(i(i)"yoN )(/:k/:/Yb /"Lo 2y:92y: s3޳4O/c 5,) 5,) 5K 5.ћhn=600R6^$ :Z :Z<$LU=WzRqf=kw =}>]k>]t? ~k3? ~k @{@?@{@ A|LS lAVln jCm0LF D` Л?EFp]I+7yLI9XIMvs*IMvtIMvkKcլ]1Kcլ K-N:LKj] M#\j MEkHN?O.fOn>:_BYOnpMjP6ePQ*ptQ7Y3WsRX?dRhcRƂ"j_TeV.6&W(bZ\t *[Jw f\=-bd\~rT\~rK \~r^M IS_6e%H `@})6d "ao sc/.K6D c\&ߚ]je -t h+ rh+ Ch+ hww iu$K*k2|G l%bDl6Z, lqn2lt?s ,nJI-rn^rnX6? nX6 oډ36Zo_j p eCp*32I (}>2ItBy IiGϩҡA .- 4r +}`F:=f $Βd~#$Βd~:^;m`G bf(ոmEdhCZ$ͣa &^< a"q_aLY N_ԐsS iMsS a FC FC FC (p^ $)BsNdeheO,Z $1W) =N]ЉZ \s2GJF]նe:3@@bPԿ@$ ypEJa G@ gUVJIFK*R$1] Bz gU)ؼMZ9U)ؼMZk\BfƦVd '*C<)t!Sٹvk0&m jSm-Sm-?Sm-j7c4y a;V61|%}7[G !s4[ +: t"t" P&@&ߏf0eB> $rX ϶ iAZ9ng #b  b vnR  u%qH Ÿ ˬ¸yYL kLP?t&Ĩھm\j/TwJ?>WR ˣZ#lKd >w >w9͌,-ͽY#:2t󦄚..tS.. $.... .. i .. .&NЈ"z "Ռb eqL  չ7 չ7: !ȕQj$ S ׉H1zTU((قtDLgمMi] jj  ,1 گo+KUe0P}t0v [#WJ ^(r @]0(r @"(IC0|@a c c ( =gv̼FIq |`t"ʜw,* ,v+   ,JUo a,JUo Ene) #~g:4B6 G||S||N  vO **cC9Bu#e{3d1Ӊ{ 1Ӊ{xnsxnhxn { #"\(H[ġH[ġN 8T "1g 0"1gs|تs|ت"`  !r &i.dZ?G>Z|*vc rZ˹3F9N.so<?b ?VO`j B $BjBhB B $ [  ,zVV(`>ylU Į L  o o b-1 dOd7j  'v9e  W" cdk-( 6}GV=Snn -V\<8AP6_ Aï  {֕M] m[b ms ``H )DEMx A 7o! z & j!g܌"\SK"\S#Ors$Eْ}$zf, &li a ([9F0S(([9F0([9F0 (s|.K*!0z+(Q -@8xb -ӗ-{ i-{. p/8z_K1=?111ؠ) $1L8`R1:h_&s;QB 2;*l~` ;\Fv tj?ෆwAZ a%Beʋ C%vC[$n D3 P6L Dbcqu"$E%?j,9 EEʰI:E*R HAw H4?+ I:pKI?V \ JıWsD|MV5 ,Mz?N^erX (Nq0Nq0] Pe j QW  Sb SßB L7SßB *SßB TM1 $Ti0"UAh?Vfե x W WBh5&Xb jY ݟ_ c YG])U YG])[jR"{bq \F)\V7k\V79 \V7] ^^9 ^LQ b X bd& adRCd3( bf}?hĚޔ%ik> i}$|kvb 2 mPma# mךX Qm#nyU ny ny9ntb"݂́Q * = }t| ,Z'" Ƈ8<X <X U64``k|a旎Ii jCP $hхZ%)W e%$Y7H{6!ox ISq%Z4C2h0慠1wCQyc9\>@Sd \(@Sd 1#DZ*hh , *hh C01Ajsuz [ (|Ɣad}@0Qy #}@0Qy ~&?8bhgYl#) +ʤpʤpȳ%( ,Tȳ%( *mQ(mUز Ǿ&?5iIþ{ e>[v_Z}R9W{t!J%~:D kDH~\ *iF-c C;)v׼ v׼dV*!c;Z!S$pSO c1;Ǯ1;Ǯ$udI v8}pfଅvଅh ۃABɏگ彻=Y'tR0't'JFX*SJFX*LJFX*]n $nsG  8L8;v! |] M,ԊH = {1}Wq - ^?"^? ^U6>h:VQv;izf( ?{-rJt0'z= 0'z= (;xrn aTIFr ޟ~CS,n[ RyvwLd 9)o SJ +м+\ x] ;'LD]\-k   s43.D_RN#_RY _RQ X_duZ>inW !v ,&Cl  lK l#8L2(_- :QJ (uo[  G_g& g&L /@`#3j Ұ_ BȬ}pb* c]} 1/AE.%?r* O ׌n,, 6" \k"l #~$ Ѻj|Ѻj Ak< \ YILetYILe ҈]I Ӻ1v_? 3 b#f\81 f\81{ +Ik+ vw\ޑ9ޫ)pߜ! Yh YjsHO:Åt"Åtps /܄5g >~b o5E Mٯd [''] d~_=V2}텾{6q ,[×HF/ :+}UPu8Z c |pXs x-FluykXgR+ 8ǭS \`ߨ yehyeh} *QG*U"Ա 8 3 mc~ [O/0?!f@q˴] s$ k .}qm 8q 认 &=O8tz&z&rex( E gէ gէ S땁 % ,8ʺj $# 5p =B+yNc cK p RL#q a/ gش'Za e+ؚ*d/yNc!;)TR p̠?u".' tf p mtf ptf p5$e`Q!?7`Q!?7t d6n.31c9Ot Z"Z"Z"|M{lo :Y1B1g 4Ri ,|&ax#Gv:ĥ ̞  \ P dU C}c9!FR~z!FR~y"ŏs "KڌS# W޳:$ # %dB?' &k(n )b1)kF *ئ*ئN- ԌhΞ .ب/H0+f a0+fj 19D#I1V`N!]2=? 3Л=4S/R4`r 6Y д 68Ni88R9smk? 9%:|ƺrDY;f>PrN < }=~A(s&>ѭ7Y?Gf+U{L{CP^V8XD:PEIVNF"XFT9TKFgcfFgcf H@E"@H@E"@ "J8:ه4 Kn[hL.,[L_qP #Lz% Q~Z6Lz% Q~RMe NMhzI;NfaԡQ+ $ODQK\DR5R~S:1<$T?]lyTTB"A;jTWDU~LIQ]U?TViXˤO { Y{X/NRYR4ZnuZnu Zq[ Zq[ %\KS\ڿM'R]a؝[^kj|`qLvaR aFɱ)b`6ߢ!b!jMc3- fVQCRfc}vfc}vi,jI2?kb" 4kjS4 ,m9޻ +mR:KmB]nP4:7nC,- nIR owh!fHRpӪ q;(`[+q? q{DCq֗2Ss;ܛus/2s/2tz`$t٧> wuJ <!w_E w_Ey` {mbxg{H!? {{|vQ}-~[Q ĩ+)c?  g ?U-kˤ{: ciq`Ep?A:o "xVQG&YišzQXp;fyvYy4:|3- ]*iH#]*iHo;#4\ 3"3EB  àͰ6 j"iX6"iX6  n. $d9~`3R"Uicy"UiccF8qF8q{9qZ5]^PEء5"SD-"SD-jVj jPKF jDc #6[mL ,9p cNv(Jg f=1Lj"0V ,-"0V $;l>R'*F~v."  #5LBG  uk36 \kZf2ƌ m|},jxgC-1Z~)O L=Vžk  L> T+AjT+A?  2N ggJD@!` PϖKjC lj%őQ|fLi_HS9 uzAմkv&?[ŧg7 )ŧg7*#n/s) [8 c)Y0^կ]t <V [[D.kM @jX' KMd+=XÕy0'Y7C7CK +=KFC1vzfǀ~ FCvAt́Rt?t]`EREZZ SdmσGvCv B9e>Zџ=#ځGځG ?VR$i9ԿU=j_qK ƛO)ƛOLƛOhئ{E>٨8[r hm;/ ,+T ݶw(h X1IY)h,g0Ak?JYt7 ,6$ *D t ʈf^ʈfSʈf&gt1' 1'V>rJ#W >rJ#WKq5v-_`I( s`I( |mUdYmUdC2mUdQ$t Z}KϷ & @ʋ 8; EN Oof jJ8%  Ԩ=s'qXx^Q #@#Rn5F X3Y|RdX3Y|ZX3Y|\ȥV  \Иy 5GY5Gfz x|~3 #k5N ak5N ,5k5N2 e 4 [7M(L rP5/9Gc 5K <{CG<{ ٹ MA @3 eX ;ZK aQ?n=$sfѝ yLՐLsXm V*   V* :  V*  ʷ 4B-i ʴfUm0ͤA 2X<* 2X<*~ Zt ٜ  !Vk9? yaKj bWp&0RІMQ&;8? A;k7/fP&Zl oSk(y?՟:9. ,sD}gW{RBU JnkSJnk ޘe3ޘe ޘe .|č"!k4w 5!3Ga!4tt "x%t ~DɛtR~)Zi$ ~)Zi~T6 ~T612~)Z!\ a+\ W\tOXxu*\+u*\+ au*\+ Xu*\+jGiR tiRY-F7CLU?WY(3\לRUlh=3 A <'ɩ_wFȶ wFȶ wFȶ wFȶY %%! $h|MQz ccjloP  C^Xn7?RVh[RV RV96U# (wU@b: B4[Pf0 Pf8^ËT{'  q7Bcs $1|n+t0g 0gkx ' , 2bb0rQ"} \Rzx{%5x{%N}} *j%ngL4ڇ^Rzk9Ӝ" d!)?=VvY\g) J@{[t]Ekua._R 9%?t͛ }f4j_:KY0x+ `Uu p(F~0e]1;N2hG4ʨj+L >6[DZ @y6nIRel s_ )w:$)R|Q |N |hmKuTIuTri+ri+Y-c\$ xh m}[ zT zT I@ l $6x$VA x$VA  >D XR E.`=LO7R H8hT4t]6-qvg qvgտs, # Pj K   EK!YzQ !YzQ"&Ga"Ӈ|$A \% B'72 '72K(kr(krST(krC) k#)K)1Z# *')P,G;*ۄʹ c+$ -19&/S\0XM.1T  1Vy*%T1pٔ1n,4?20!%cm2H-NQ (2H-NQ2Y-VaP3|%VE 3|%VE (3+J4r + 5mY:n a:sc3# \;mpw;mpw ;@\R$;@\RR?@ezQ q@ezQ iA=oAP#[BQPB`X-CMg^1@ CLi@Cs !D,E G?zSH|-dHͺgj IXMvI3<vTJ?[jJ?[J?[ ( J צ  J9[l?DJQLM];cNmbO`.1Q?ޱYH QVHH \V8  V;b@Wf+Q~W&GZXnp.sRXqZ\X%5'DrZ6][w\B&R\ j.(\FP]c2XS ]eũa]eũa]w- Y]w- ](g ]}KE _ e__`UCF;b=󷚋n bx c q| c q|g4'xP;h3ziGkj#^Il[ nn+ neo 1?sq_#rjocksXD0yRt$ԋqL$t v9?y짓zH\jJzH\ ( zH\ ,zU܁|jn0}X2 }X2~%Y~`,qLlxZD)h P:%Yrhg Orhgv,Ga,Ga,Ga  ~'@L~'@~'@ dl_8^IMkjTg}Tg}!4(o {9 ,^j=6MiKN.twޱYY .uO B`R@aM?$ $(6'$(6d6COMLr _Lr $ fb:n+[_I?7 oy:D D;D; C,:ʹa CR 1{s# 1{ a 1{=nQxD k (a6 lH}!OC a:Y5Z~ xsV J&<J&< S ^ 6j9$T;Ƅa iSiSci-t%R2\lksA cK  rC ( I.:N?ն ?LTzt]a?~^dZF 9f bl}- bl}-NԠkI , v#B$ *# 4_/* ( t)|}ổ%E(P%E(U%E( |$4 |$4 , |$4 $|$4sN+Rg?dnq(K \q(K ,{q(K q(K q(K 6l2Y# l2Y$3Uou<'R<'N!I ҇Ei aZ{]Z Z{]L.qD x]3D$pGat g䥔Sdo!={vOCR 0OCRw>f/?ıh{\Hpq"ɎS(/ɮkCɮkC\ɮkC` =ISV[VV[VN̷Հ< V V Qr=Qr=$QbC 8gLs;U1&ԒD Ե5& n(|JV?ՍբSրXVf # dzU;V|hؠa&9ا/"Gk@ "Gk@ av/5b )w՚)9G$G1?0JHM(KfiՌRfiՌC;Z$Uy;Z$U?ޚ?};Lj$R+q]>AwN"AwNR AwNK;+XYh9Wz `,, #Jl Ε+Ε+D $%S"|PZw n#{8MDTR+'(R+'(j@Uz^ wda s`m[: ALS MsH N@hBq|$1 n>~~܇Щ93VCЩ93V/q  +G/G ,H$X=j jQPKHˣ Xtů6jC S,w &AxLdva$vaSva $ʯzɒ  2c RN  P/N P/N  D"  Z ]"zs ]m#H5 .G=̴q|@e= lګ* }TBj CSe?ȳ vkWZ!kW"v`"S #'Hy%"` ~ & Ͼ . &8C (>!b(19ټI *!R#+:S8- -34S.:q p 2 .!v/}# 'U0ȍ 3% _D3% K 3% 3 %31?31 31j7s4h"74o| 8@/K8_ 9"GR 9H0W=À=4_.D- >/\ʲ>t)ú$>t)ú ?w~y?JeZb ?`l@ũncdA.Ak?BoD[eDtgDVb<EʺT?SEʺT ( EʺT FD#sQFߒ3G a& k G H?UϽ H4DJܝ q7b cL GЗLu$Lu Lu Mg\l UOY P_ Vg VβYk WZ N aXP Ƨ c X4RXd Ypo ZP4(| ZUP {$Ze˅ $[ &[ e[ 9[nBn\2hcG \L]2Bd ]2Bd]gFZ]Y߆_C]d;8^5-~nj ^: J_:_!MY `` s `7`7:byk)cg{k dEPd<< f #f $gș. ag.H ( i T1d 6i T1d$ iMjiݞL^ j/Lwj/3j/ kWM9K kk`# l,%l,% oM!杞 (qsdAȌ!uVAa uVAa&u3o?ud$v6 ~vG xf, ^y, -z_l`⩽ {6W [ }d$}\bh ~ɓ ~Pm1 r~;9q>- *bk Kr #.> ,yMjcp&x?߀i߀i2w2w 2wLVxoR{bœhs@hs@  1T|7nu|"qlhO$tRE=URE=R&RE=P/ pS. \)еu]ndm VӸ-d [  Z NL; %ŽSG%fa '~H 9ƈ GJŶӳ*2Ŷӳ*ƀ 9 hƳ naB s}򷐍s}򷐍 |dKU aǃeGǃeG<ǃeGK5ׅR/|T *M#b [B tƾ +ӟ-W- sԥHDb@(0vb@(0v_׉8n ȯ:6S  +wN ؙj c6?R l&ڛLގ@ b%Q#$C?tN/a}%%~IO$ ᫝Du s M=ṔBgЋ1t@BgЋ1 4BgЋ1Y&[;0DՄ?Xs @Mb -B:v@o;:v@oK^RkxX\ _ 9G[?> \s: em[%NKD jJ?jJI5VP -+q r%ʪ. 'QNmft,q [=2d \p (n>)tn>) in>)j u -u -3}_g ށ.?vϻ0R%Ͻ%[t<\`P y:,3 ib/!= \Њ1;@*|eh;d;w;w(:`?O T LV K A4/ ,޶# |- e oQ`d  i 8>i kf ~bi  M†X l  N  ?vw  lqwH4 13s 13g 13 ˋ= 5> 5j0 2刋 2刋 w_( ' ~8R 3Y# 4̪[ BJಔ[& !1.) !d "HʄA l #z( #tI4 ( #D^W % <  %G0 %iEJڇ %iEJڇ %iEJڇ  %JV ' TS 'WE&Q (JH c ) 2 )Xd]?D +\dV ,k ,,{ ,,{V .jjC$ /Q  /Y z}D 0=< 0= 0= 1! 3 2oΧ 30ϯ  3q\] 4Lz65 s 4Lz65 4  5J> b 6Ebb3? 6ߘӗP 7 v 9dER 9 E± 9~[C9s ;]W7 g ;[+Ns{ ;[+N R ;|_j?S ;|_j F ;|_js Fk > F} > F  ?}j ?} ( @rI AՔ$? cR cTs2 eH( \ h+tk jcr $ jcr ` lZ m$`c3 m$`c m_sf nJLǤ3] nsx? pt%V ] q`j}v1 q&e r/tP rG |  s0$S5 # s܃QICN t͡39Q u }Y u }e uJ ~S upEbl l. v  wY+ $ xeg` y? y`C9: z 7@  { {x] |֜f0  }2rD }2r ~o  +2 L*'4 b3Y Фk1FL ;W" [K# 015̳  3/c a 3/c  M @)<d 4P % ٖ0uv !L !S ! 3BL  baGN - a>ވY a>ވ m& Bc3X aq` H aq` 9 aq`8 aq` ,4 aq` $" aq` Lޱ  fn0Y esm c {˹. {˹. &Nt &N &N  &N rw< rw<  Xku ϯyv  _dā N-  Fl 3 ZeK Ze u \d  G}a 'ab` gl zTr9* s EK  ; hIˊ] ./ 5 5 X[{N X[{ 5s j 5s  $uc) ^c $ %nr  4K 7/\ RQQ RQQQ _$ >gS Hz1xm[ rj Z:  /4/ tY !vv = ,"U$ ,"U ,87L#, u  4L [ &QN ' tj  ;S ! ha \ 38R ' ͂ D ƧYZGK ̦ӕ+x?% k\F x5 }xud s?[ \!T a|n{ |?_q keo tB'8A ] M C  M C  ͚}_? γGʙ Ƙ  w(As  o>t ԭND> fp1  Nk6q  fD  {tw  ݼ$;tX }âv JGj$H ES +? #sº  ٪ ŊhR ŊhC __  __ ۛ {hcD {hc Q:f ݔ? =#m; H@J ጆo ^ }- 79 t]\> ]5t %˜0 + + + +  [   穾'N 穾' $[ f+Zg< %? ȷ _ qZ] o L] ( ְL lf^ C?ݾAt g!? L ], ^([B ^([K oK? ƙ"FA !?o.!@ #k !AUoަ!B8x$/!D| !D| !D!;) !E\:Y |!F < !GCFgS!GSv!H#{P!IZt>z!ICSd!KFWǑ?!LFZwE!LFZwE!NFc!N@& !NWdi!Q&!R;Aq !R  !S1j!S{k!T,!UQ%"ϓO f!UQ%"ϓO!UϏR !Vm,]!XQʿ.!XQʿ.!XQʿ.!Xc&/ ] !Z~?!ZT![[9C;kj;!\}Y̸!\}Y̸!]#<~ !^MK!^5#K R !awI !hȎ !hJP e !hoxf?!hb2 !kv* !l YK !nmӤ49!nmӤ4 *+!nN H !p leK!pI>`yH!pA{W !q?PU !q?PUt!q=+/;:!qB>)!rz;s9!rz; a!st˔pt!s q" !tBc;!u"f8!ua7A!w "!w !wz~M!w.q!xvUR!x(%B !yl}7W !y|n a !y .uybQ!y  !{ލ3y!|[̛Rs!|u F3t!|u F3 !|%YS n2!|/W64!|:‹!~g_!%`>!Ld_R!!U7J! !uf!0 qz !=w85!=w85s!hE|!hEs! >}s!XT \!9ŗ !\!B)!?!6Y!!G !um +!!6鋵 c!hff@? !I~ !Hpqͫs!Hpqͫt!8ek !fX[= S!vs8d !N9!֐4J!!֐4J !D5`!V}t耐j!̩WY!+K@!/Uyo!G?K!v)|!v)|B! Xw (<! Xw!ٲͩ ![n0!(]N? !vѼ!t!}:{-R!#IX!tWB0(c!X/[ \!X/[!ndQ,s!ndQ,!ju!k"a!#j!`R!`z!`r!`!oSr h !oSrs!3b!Mg_T !J!gz!ә!|!M)!;!'0!Vzj?-!u !nڅaQt!MfC \!-!.Ɩ !c-!c-R!O̘8!e8 T!0^_ ?$![ J!߼[7!ZR !ZP' !Ke!|<>!|<>`!|<>L !av{#!av{#?!v!k:!$Bd!$B {"!$B !$Bk !GP$! fW! f ! f!0y޶N!Ê \ !1E'!ĵg*1!Ļ[=C!Ļ[=!#F5 !h*q !(J u!B!ȼҏt!tWt !e&#3!e&# !e&#L !wAf]R!e, I !e, Y!!ˡHL !l!MY !R,c !/ ![0Bg/!ܠσhK!f:>v!.^,$!f^ !tw!$K]!< 4!MqR !Jui^$!6x !i3N !ۅK!Pm 6!0N!I%5|4"!' ]5!' ]5 !Ԣ` !C4 !!̧D+!nDj !z3 !8o7EY!x#!}P !}P !dbA.!/n!/nR!/n\!/n !'pJx!ps ! ‹C X! ‹Ct!*ލ4K !*ލ4"#s"<s"RYj"` "ۉ?"ۉ?D"JRUGR "HI0 Y "}6"}6R">xf">x"Z (" ǀ" ǀ" Ka" a#fY $*" ~` " ~`"/{ "/{ "|~yh5"|~yh5s"BXឬ"i&H"N4Zc"ŚgF"(-" ] ") "6Izs"6Iz $"CxD"Cx"ȩn"fH]ҡ"fH]ҡB"nt "9 "9j"85?"!gru/ "!A "!zC"# z "# z[ "#lv"$wrO \ "%>_"%]2g9"9AJU ":d>0t";'m K ";HG`"&Aޕ "?Eʽ"@c?)Z0D"@տ "B<v"CBK!R U"CBK!R"En"rsE "r ~|"r ~| "r ~| "rw"` "sJNtN"sb ="t`>}"tm>7> "u< "uz\wD "uxa"u74!R"vkqR? "w^jt "w7K"xVʗR"zDA剌 -"|v p"|廰c="|廰c"|廰c "|廰cY "|廰c"}kubZ3 "~}=P"~DS"~DS"~DS|"~DS $">|r(">|r"S#: i"c|"T> "H! "Jop "w"'}V"I;Y"K9rR="x.56 "6W "1`  "u8 ";Jmb &"=| ";; |"^ "ͅ`o v "  "/0"Ϊ%?"hKL"ΰg1? "k"ɔW;?2"zmfm"n #" "/e"3 "U잾"εWQ "εWd "\"hft"I:G "Θ/"Θ"U"v "s "qbKڿ"2٨` +"N%+" \j"{"{ =":1 #":1 a!":1R":1 g"$ rR"/p":٨kH":٨ ":٨"-* \"X#"L/Z"hr"wyᗰ"'[G~O g"'[G~O"T״"fH "8i_n""]!Y"xp I"xp%"xp i"xpj "U24 "€%X- $ "Cn2 "Y-"";aM "I* "R"RRP"R "x%z"陮 xR" "'Tl "9"! "d""fM9h " )!}Tt"p"2 i"! (" &:R "=i"p!n"BT{ 5"t9 "t9 "7"*?O"7"* "c'4 "7u # ƢP# Q2|# nf#l1 ( # nf#l1s# nf#l1 i# RI{5$*# RI{5## 43; c #:] #X #RR#'#iNw #˕w #)[n#c\}>#O_u\#O_uA#O_u(#ɲ\?v#A9 #, ##ԀLb#.@/mJ#.@/mt4#.@/m i&#.@/m #.@/ms #$]#$]F #lc=H#7Rt #7R #YMR%@#ѰX#@jH#7*Y7#!Ź## Y##HmؒK##Hmؒ ##Mul8##]##] ##] #$V6?(#$~4#$&@#$uؐt #%gEQ#%m[D#',zLduS#'>r#(gzD#(gzQn#(gzY<#(gzK#(gz #+J% #+1O&|#+̔ #-s#-Q#-O_$#/\&&HN#0B #0Qn #0Qn#5mf#5StFC#6>#7 @Z #7lY#8, #8#49#:p#;՜|#;?;6 #<5!y(#=.x #>KL #?ԔjA#@&S#@JX #@7( #A9<#Bҫ C#Bҫ #C&ǿv #C&ǿ #C ,*#Dϣp #Ez3f?#GJ' R#HDnLs#H& #J0<]~O#KTv#L$tj#L$t #Mf>PU#N7)9)#N7)9)$#N Chz[#OW?U #OP #R`R#S*X̿ #S<TJ #T!_̳]#TVZ #TBj#VA#Vo=#VSS#WWC#XpoR#XtTS#[@*ɡi[ #[E ) #[mꭌQ#\Y a#\Cxn (#\Cxn #\Cxnj#]-}#6 #]M=~#]p=Ict#`O(+Y#`#R+t#`N #`R#aiHϢ#bPc #cgV<#cgV< #d nJ(#d %2Y#dL E#dnQ #e,c#f? "#fQ05+#fQ05#gWo 5#hݠ"2#hݠ"d#m }8] #m }8#m͗פ%W#nf #qASlC #sJ=#tsC#tsC #wh@ #w7tj #xs9#xs#x(U?#xFR #x>H#y\O #yxm>KOv#z;v#z97 #z9,:#}]ю:P#}vy #~U <,? #$r%&R #ACz#YM #!w#$H p#Mĸ #M #C j#LrA:# B#HmnQ : #n2Ǥ s#-ů# Э # =Ο e#6I{#pY_#;kõ #?Ww#?Ww#Zd1#Zd16#<#@t0K #%^ #v~e# ! #h|O#]@ #\X K #h#h#q /#r4R#N[ #]C[#);m|#IV#cJ #F |#ϰn\#7v #w_ׁ#v6l#CS#1U #1U#ՙdL# Y#t L#o9#o#8>jmo# q#|V#>uCҁ ( #APZf#'&z #(G b #[ p #4EsD c#f&i # -K# -KQ#"M|L #MmO] #p塓#Xv#Y|d#gz## / #(f#Zg.Rs#Zg.#Zg.#Zg.#Zg.M#p2\t#wTk1#wTk1#L`^g#!Y#P\Ǣ|#W' h#X_=v#O#_Yo a#B8:ϣ<#v}U#&D6#X?##$N|%#} Z#k;H#0(`D#]޵B#옗Ē #%RP&v#\[}>a3#Pz #@(#ij Y #Yyt2 # #NJBO3S#t4Y4 #1#1 #1#Z $1![ $DI~Mq?$ 8 $&@c ,$Ot[ $0$0D$ވ1h" $ Ev $ z: $ B-A $ S $ AD3 $ ü\H: $o]D$w[ $]2'4($Qrb $?63 s$Dom $$w$$$"Prt> \$wd$ʜ$ʜ$N@ $N?)| $4[$ $;Ó? $;Ó ,$f@[C $f@[C i$V .$؈$؈ $G=N $_-wW$ iBb$7M0w?$ b@n5 $!?bFY$!&_$"y$#$#:eD+$#:e)$#:eQ$#(k v$#(k  ($% c $%

    ,d $?\0 h$@9wg4$@9wg4 $@?tF2N$C7@2R4$Cz. 9 $Di 3 $D}JF\Y$Ex>R$FW8A$FW8A $GD$Iu丼E$I! $JUCƚ$J&wq ,$J;HQ$Kr 9C$K}ɋ7 $L1$L|v$L| $MUsv&P$O?Q $Ow*~o s=$Roh֬ $SygTLÇ$SU]L  $Tfw \$To/ c$US$i$jdYnx$kjĈ$kƒ $lВJ #$lv{v"S$n fd %$nId2$nC,i *s$pt# !$p[0m a$p`NF$rUTI$uV}]KCb c$v,A՚$wRIy"$wRIy$x%: $x%:d $xR c $y ]$yY'b(K$z8$z^D$|)/|H?$}@[O $~< $+b c $j&#$lk $Xǭa $Xǭa?$TTR,${.)$3<_) $=W $ x $aFa$ͪBZ $L h$\K$ΥR$#h$#h$DJ]?$a~$z $%[K$WS׉N$az $azF$ўch. $D@ a"$D@ ($D@$/B#& $$ ^$IF0$4$E5$S4{E:d$IFn?$j* $̩Y $x$A!LM 3$خCf$-v}jN$Dcў$S;A$m/3[$m/3*0$MG[#$MG[$f$n؆ $}R$x@JJtB$V=S&$V=S&$V=S&$V=S& $Ã'P$t$#]] aQ$.D $*sLq s$ƴXȗ $L(t$}÷L|$ۃm($]$3h$6&!NI $$l c$}505t$@m皾[$kҒ$}A \$}A $([[}$c|$Dњ$KIS$efN$E Y$_V]$Jus0$ܷ s $ܷ j$#$5u*Z$@"1ML$v]=D$jF"$e  $!4]($yNs c$$$%} $%} , $']$aVz +$ˤ~^ $7!< $7!<$7!<$7!<$_d$YA$$^ $5ێ|$](f #T$](f:$_t$$c$smk %)EC'%)EK%Dcr %b{%+au%3oR , %m[ %m[ *%[ %[ K%[ Q%.% `lR%Mu% ϕ݉t% Fn% % M(% R +% /Zm % 'SA4Y% X% ,%“~ e%yw %%D}%/b%/ %D % J %o28 %-Ys%GqT % f<ܣK% f<ܣQ%̋Q %v%Vv `%J;t %%6ABoR%UM6 %UM6%"p %"p ( %"pt%"_ %% %%zF|< %%zF|< %'.yW%'.yW %(^Il#%*s,9 %*wSyc%+>'Xj%+& %,$H"jO%,$H"j %,$H"j)%,Ad%-@7dR%-H;o ;%/4 >e%0s.?%N%0mȉ1%0mȉ1%0O Ũ !5%0O Ũ ,%%0O Ũ %0O Ũ %1Ǘ%15s %15s%2: $%2%;%2S/c ,*%2S/c?%3&xd %3 %42ES%5 %6J{>6j%:H;%:Ϭ Q %;&HIt%;7CN%;7C%2H%c*Re1 %c~"$ (%da8pv%dS %eKœ%fҹ:%g~8$I%gĖK%gĖK%hq9m c %i/%iJ|%j7 %j7 %k^ \%k5d&/%lKPQQA %ldW%n:YoT- %n"T"%o֊dSY%o֊dS%pc vyL%prg(e%rICagPX %rod %tьL%t8H !%%uvIi ,%uvIi%vQ|pl %x$(AR%yIHFJ%yo +%yz/Mi %z& S%zQ*$%|x, ( %|x,h %|3 %|&b %|<&F%eg"2\n %9*%zHJR%I-%O[ %iKJ %٣%'&[\ߖ %`KkT \%z`P %mj% lD % L|%[ %{  %A +"%A]T%BNuj%BNuj%C7C!X %C7C!s%h{뇭v%jp%m}b%Jjʲ %nJ (% tj  %xRK%$S/%T㱸zQ %o6S Y%j8 %%Mu#%+&S%?2N%ͬ%HlwV[ %`v %`v%n%%K{" %V{䶵%iӷ %R4U%`%0ݪm %Ld S %fDK %{Yw< %{Yw< %ڻ|%Ξz{%,堡 %у5%K 3 %I%op%Cax %0%y QQ%NS% E %ȬfljQ%#)"Ws%w > %w >%&"%e%"=d2 %, %ٿ r %ٿ (%M^]0$%M^]0%Ԗҟ@,6 %: %P w%֧6 (hG %]a2z!%vd %)o{l %,M$ %BZ[%ژ-;7%ګ28 %ٍX.v %/%6xv%X%[:V %~f.%߾x%߾x%U25?4%d%4LHk%Me|q , %4~P#% Zv]%S %S e %S %~k@%I{qԯL%I{qԯ%;7)je%F%F%F%0٨k%WZoN%4e  %C;*s%2? %2? e%;E RA%;E ,%;E d%m %Dw8%ˁ /C%f %%raR%#V %}hD %Q!%Mԥ ,R%Mԥ&%U}dL %C=dU %> %qna%_.d& , & /j& -t:\ m&!nf5 g&!nf5 &KQ&c*V&ntN&|+ ( &|!-<&Ks &='.& N*\R& w & "5C m& ks& &;3&/7u + &qp̅k &e5 &J# c&O͎,N&M&WT&jWK&fM_eh3&fM_e&ӆA &>Y&Ct0?&oX٭&x ,&(HH&(H &(H&T& Ho a&!R4 F&"WNL (&"dH%&"q&#V' &$3!2S &&?B &'!dN&'rԌ-&'rԌ&(;fm2EK&($* &(ͯ=L$H&)(=cq&)(=cq&*s}' .&-C)j &-IYZ&-|&.\ub&.\u &/V%}E&/`9&/u&/ c&/ cS &0?n&1}& &1c6 , &1Aj&20dc$&2]4&3eׂ i &4nzO0(R&4-9&7W3?&95.H"0&9)]4@X&:_w &;Ƽ&< > &=}Y&>-p¿'&>F &>Z&Avn`&AIv&B'a &C5piAV &D] 6ge \&D6`k&Hh>6l8&H6&p #j&Hd{&KZG?&LXइ( , &L\&M8$?&Omw+ $ +&O>AOM &O>AOM&QYng &QttB&Qt &Qt (&Qw T&QxRS &Q|&#&RJUڜa&R%Ӄބ&Sŏds &Sŏd&Sŏdj&T E[# &V`{t  &VS&WTɃ^]&Wʦt &XI ba&Y q &Y9* &YC܅5?&Y^DAP&Z_~<' &Z_~<' ,&[c q&]F*#L/&]F*##&]F*#&_tJ[+&_L 9 &_L &_j4n`&`]aq&`]aq] &`*?&a?򽨸&bJAJLj&bl(X&c0g&da]% a&e_Q&f<|&huCկ  &hȘ * %&iT![G&i-֘ &jPX&jx"j &kQŵ@ &kQŵ@&k#兴*&l#&l,I &l,I S&n,U c<&om#i &osv@&pĶn &p@ &pC_. &qC-t&qeK7/[&rχ &rǗ@&s?v &s?v s&t6.n&t9# &v,pV&w!&x+V_[&xkk ]?.&xkk ]s&yS &yK&y"J|&zAhk #&zAhk c &z5+&{-U &}m &l\Q/&mZ։ ,&I_:&} ? &~L0WQ9&JԸe[&(&(&(U8&(&(&xe{mSD&&1D[&'e4&'e &'/&&'|m &c6Q&ұ &ĈR&{0Ry a&;5 &;5&;5 &l Q}&st&Z<&y% &[KJ&0|(F&0|(&Ǜ_C&g8ާV&TaX&TaY&N[&Fna] &cv| &0ٟ&LPk&Ry &Ɗr&3M N&<}{ӓ? &9$&o(N &e|hH'&e|hH &e|hH &{8&Du&Doy=&GqN&ePjBt&Rz&W-Rػ&6a&6aU&6a] &U͉S&U͉&Nyi,&Nyi,&䬋o&!8}&-Q&nj &uN&&a, ?&t~ġQ&t~ġ]&N&S{Ҏ&S{Ҏ &Ѯa &=&&ކs&דYl&J= ' &"mW -&P F &zKC&3p<&DL&k &k&-4&6m &6[^κ s &aB)f &EAo&#2 &c &5' &6 &"V.S&"V.]&"V.&{niwC)&[6&ǩdXk_&ȄWIR&1'O& rl&0VvK &Dp_&3^_.d&ް\&ϐP4&| 1] ]&Ӟx\&Ӫr˅ &Ӫr˅K&ۡj# &ۡj# &ۡj#|&ۡj# \&3.`? P&X4&X4&vԇlx &g/ ,&(bSXM&د &6r &ٖQ&ٙbk c&d.*&d.* &Qzu? &ܼ;^E_?$&ܼ;^E_ &w).?&om$&T&ⷕ'u b (&JKPa&$HU#&]cc&A1+ &'Ļp&: .&>С$$&>С&>Сa &>СZ&㤆_| &zH?N[& &]iZ&fcR i&`6(K&s&^GVR&u t&u &u&11&/v|q&Ƭs&b? &T{S&B&}&I~st&N&L% &N&L% &zqoɟ&$')? &|m\ &&L5{ &&L5{d&(9:D&(9:&(9:&& B! ,&d _ &wbs-&vY* l &Az, &j 'LP 'D-n 'G䆡'; 'DDr(? '|9pK' {(' 6Ź ' jTt' ]toR ' }'BL ' vq' iY'g , 'rH'4{'t '2-[R'z 'b< N 'aZ.O'aZ.O'aZ.O'aZ.O'aZ.O{'aZ.O '|g`Y'sj 'yS'YA{09 d'YA{09 ' K'0=eU'EV 'lQ~!']yUd']yE']y 'kx'&v<9'?Y]'?i!tP'?i!t '?i!t '@qN'@vduk '@N 'DI`+? 'En}s{ 'Ez~7 c'E1 'E 6'E͍ 'Iz2 'I@'I@S'JۤG 'KR-s 'KR- a'M;3_,S c'M;3_,S'Mn#Bx 'N3j'OUDV 'O, "'Os[#Z'Q%r'Rag $'SL;! 'S*m4~'TEGŐ'T̛3v $#'T̛3v'T̛3v'UMƝ 'V1L 'V24'X\)# 'Y2(nL 'Y2(nL 'Y氯 \'Z644'[gGK'\TC'])sy!']_s& \']ߔK ']&q٢ '^rąjKe'^rąjKL'^rąjKS '^rąjK '_jj '_-?'`"`sf'`"`sf '`:(+'akFP'b*\gz'bG"j'b<'c\*G;'dB'd*i 'd*i] 'f5^'g^! "'kAy8'kAy8'kAy8'k('k 'kM/ T'l} 'l} 'ln  'm; 'm1: 'm1:'mU &5 'nZM.>"'nY'p3I a'pN\ %P 'qIVd?'r='rL颀 'rL颀'rL颀's @` 's#J=@ 'sç|j h'u#CNf-'u#CN'uk{N 'x@rS'x@r$'y!To''y4s-2p2'T۹'PԼ7 '˃&E'_}> c'̙>(s'Z0t'YV'YQ'-p19'iZC 'iZC9'k '51'PGk1R'"x '@a0?'>M + '@v /'L '|_ '҃腆 ' gk '+^R'N$p?t'N$p?'"(7v 'h%G'F6i ,*'.roU 'a䤏 $'ށ }E'޷`>'.i $'Gng$'؈'v `'9dye's\a-{'''|!U`Z'4Dt'K '?gjT'^N'c ?'ߕi< ('(i+h'챷VW j'7['.U ''\nW'x1L'Gqt '׆H '-$b e'Bb( ajg|( eN( |HR( %F( 7?( o|\l8 (r(!V (!V(,wnM (m%5&(XD N(AS6*(m>](^ (2" @(c) (maas(K]: (Ί"D (8}'@ (DQ()Q(L$2RF ( kk( @0( W*c9( vOo? ( & (!sVM 1(!sVMYd(!sVM G(!sVM &("{t%(# (mz($#w:($q8 ((i#L((Dx,((D/C((s=N()9_,()3v()3v()` ,(*h+,_SC`(*Lw@(,C,*wN](.(/ 4(2":u(6wmP/(7`)(Y(7Xoj(7Xo (8ې (8ϓEM +(9.(9.(< N((<=2(<=2 (=~AO(=~A (=kf_t (Atspk$ (BF)#(Cq$(C6ɀX = (DY"(DY" (DY" (DY"(E2(EA]b(Rnm(TѪV (T%Fa(UHzt $(UQw$(Vi gz9(Vi gz(V= S? (VaQ(Y[Bq>}N(ZAtOC (\v (]u|(_ 07 ](_ 07 7(_ 07t&(`7dg(`MϦ.2(`П(`Fr (aXTYR(a,H]_ (bv (o8cHt(o8cH (o7 x5(o<^R(p)QXo (p)QXo ((p VY (rW}B (r;E(rh:hR4(rw^(d{ (s, (s, a(taxD(tQ D4(tQ [ (tQ (u꺀e(u꺀e(uuAP(v:L7 j (v81V ((v|0 (v|0 k(wH (}״sL(}״sL(}A|v(~ ba(~2L (~2S(~=y~J$(~Fz"D(~^ (bjs(m(чvny (Τ(PJ( d :'v(p(7Rt(h(/D=" , (ݷ$t i"(Ɲo (qhe (qhe N(qheb((ӂ( (lkUd([N (%@ (aQS(I(Ϯ (GTn \ (`L2z (3׈((Gt j (iu(iuR(iuK(iu(pQ(p (%0 | (%0 c(Y# c (M* \(l[x ("m (AGZ(AGS (AG (AG(iqP( ( (4`K( (Ơ1J: (v(M8W)Q (]8#  (kװX (kװX(<: (O`X (`HVl(#"9.(4Zs( XpB ( XpB("b(4{(c{(t*Jt"(ug ,(uz{(Y(;o(}\(48F%Y (Q?d(i(le (T.A(^^(^ ( '?(UtY(,i܃(/P_Z(1!S](K gD($L (I-lI c(Į]T(a~*R(4k(µP3K|(Ü0t()nI1*(0(yR ([П(3'Hw j(s $ (s (Ƌ $(\L (Ǖ9R(?s5j(~# (S)vT(k=v(k=vR(qk47(˺dPY (˽==/& (˽==/&(@\ (Çf(hj(u6 (. X(. X^(w-ɵ(ԗzʝX (1 R (1 R(f| (fzq 5(rї(جLyW (}h\(DRp(ܤ2輽N(ܶqEZ |(*^*v(ކʂ(ކʂ(Fj?K(J7 (⚅iq (!rH 2_(.S(ެ׈9(ެ׈ (aPtC(aPt(aPt(aPt ( r(S2&̈ (qE (j (V j(yf(Tp5(mvQֽ ,(mvQֽj(mvQֽ f(mvQֽ(uM (wi (0'=?(ﻸr (ﻸr (a (_}/(;: $ ( fm!D i(dY({6W (2/?(:L[U (P7K(PEp1L(}?(_;N (_;(nU&"K(/zR(-, (lLeN (d s(1_/ m(=K(=(39J^(4 )(4((4( (x:k5j(x:k5(x:k5t(x:k5s($6[(?)(پ ,c(9 (*V )ʸdv)zγK )'E " )Gy)Gy i )us))\)y^")y^Y)) H3} \) )< 5)  h) 4. 5) F֚ ) GC )@.60) F ) F \)%=J9 )X i)A5)r )ara7)Y#)uga)+W )+W )@\@[s)Mq )L p ){ ){)P)#B )E )Jv )+ a)+j)+)~1$)ڐ )M){7A;)UU4)'- $) MD ) 3{zX) ЂN) ЂN)"rs*)"r?")"þr4)"þr )"þrR)#v )#v)%`=zh)%`=zh , )&Ci )+.ݥd)-d?ta).7 x)/S8)/ )/i s)/i )0>X2} )0˜,)2!]u)4ֺ)5.vQ)5[cv )5ލw )7BMxm.  )7CGJzk)8Z滚ڑ))8Z滚ڑ)8Z滚ڑ )8Z滚ڑ)87?9 ()8V8)8V8$):P?# ):P?#T):41y?):41y %):41y):41y ():Y%J):Y%Y):У, );6 );J )=: )>6K )@@)Y)@&m)? )Be%1j l=)B\<)C(OM %)Ć8 *)ExB)Glw65C)H;T5)H])I\,S)L:E!R)M8w )Ne)Pr T )Pl4[(R )PaaHv)PaaHv T)RBB)S?$ )Vl?)W.}R9)W.} )Xз@x+)Y $])YTI>W)YTI>S)Y v" )ZQ8$q<)ZQ8$q )ZQ8$q)[ i 3 m)^+f9$:)^׹A5 )_׍- )`B,wSS)`B,wQ)`|%(G)d# c)e Uh)e>-v )e  )f.9 )g3 ,)gE)*)hO}j )hO}t )jwY3L)j3r)km, )mZ݋ )mpK)m9N$ c)n%H)n6#U)n:$)o>,*)obuF)pC[ )p6~u})q )RS)q(h>)qcP )r\L)`)r&)s]B bO)sw)?9' )spA )t"ؕ)t%pʿT )tmcKL)uu]*KyR\)uu]*Ky)ux9 )uu ^)x^Xn|j )xvu )xvu)xG~.[)yxP)yxP ()yz;^ g)zOl)|_gS+v)}@hYǸ?)}⛱As)]LD I);Nr); ); );R)-^?f)&7 $)>q;X)>q;)>q; )+z $)W?Mt)W?Mk)b#& )SShoB)/7 )}0)}R*)2' )vs+h )WD$)G )[05_Y)WS48 $ )$(YwQ)$'Pk):*K")OKOy )A86 )/Xf )/Xf?);aD )Ɔs)O1( )+`)y )KC )x,ȅ)x,ȅ)f >Ft)f >F )f >F ) }+) A1)=޶K])R5hB D)R5hB )g.\)ixAC)X:|s[)4Z80)4Z8 )D/b)&ñx)xe[ )Hl^ = )7M<.)JgU[)o6*d)FQH 3 )eep)L )-))-))Jw)h ) 4)GW)HWq!td)i<9x)nO`;N)Cdv )Z)8 <9 ).). ))%n;U )@ќ){j)bZм -)g(% \)9j)-Xۺ)Csx)Csx k)Csx)C 1pK)=_$)&hr $)w9m )XL-M5` )df) ($9) )–$)[qm)cUk)Z_lGIS) Z ) Z ) Z)q! )ks)8ب" ) )QMg)xd}c ) X)S^v+)֊uP)?3K)6 m )7cR[)ͮKN2)OIX))! -):)%KUF8a)%KUF8)zͧR )ɄN)籅 )6OB )/#)/#)/#)6<)~??)$fL$ )YN $)C)CR)Ca)Zn ):% Q):% Q ):% Q)ӄ?k) ,[ -)َF)َF)َFK)sq˻ )4)< )} )7.}r)[Tt )'c& ). a)ܿl )O=M#)|:!)gݓ )!Y )6"A#| )Zv2 ^)-KL)-KL )–")\QJD9)Zlm)g];)g] \)a )m)2qd )'Zf&u)QG?)BmЯ)-n8(L)5Rl*)?+KS)?+KL)6 i)̆?)8Y)52|d)52|)fJ ).va)pzS_)\E) )k )#o!C).j!)f)NCT)Wk)tW4)'?J)1(k) l*)AxR*~ pB ( *I` _S*S/$s8*) I*5., # *sY *Oz*j * nR/ * 8E 3* W* Dj* D ,* (ͨSB* (ͨ* LY* P0D*jXJ*jX*h&M $*#`rZ*ގi%*M&*M&*>܉*4qV*"R.v*q!* 6< *6M*{*6Uod *?d2*ɒ *!8; *™*i J:*xD%O*EGԉj*X'sL * 0L$f* sצji*#FQst*# euD*$G0İ*$^Z~xOB?*%L_ *%N(k $*%7 *%7*%7Y*&T.hB?*&\*(_rr*)/$b/*)EnC7NJ**7*,mCw&*-l3$*/(iա]*/-ʀ */-ʀ*/R$` */R$` *2IUZC*3֝w<*3 I4*6i]rq\*7oy 3*7գ2t*7Ȇ0K%*8#`\5*;Z2TV*=B:H*>I`*>(շ *>>zbVS*>4 *? |th *@ *FOt|*|*FpQ#AF*F*Ft1*G1)z $*H_Kn *I4*IҶ3ty *IIp5*IIp5*I:LR*I:LS *J}R*J*Kg%*M'RXKs*M'RXK|*M'RXK *M*Nf@ c (*Nf@ c? *P 67*PΌy *}J\' *}0zp =*aZ*g (*5,Y*5,*5, */UW2 $* {[G* {[G*TjG *dQ~ *dQ~*3~ *~{[!*R. a *pM +*lԲRE*f(Y*grިB*T9< *p6s'*p6s*t|*Njέ% h *vΏ*vΏU *vΏ%*F坰t*4e*4e*H؋D*A *+*T6;*ܳ6* j6"*{ӇE*,y*6FZ$*Yjݔ *|2WQ*Tˊ3/0*Tˊ3/0*:`p'|*B*ob * V+t8G* V+t *Ҩ*4' *yIt؅gX*q , *t{To*t{To *N'L?*2NMI &*E&1 -*\&L *qwc*}iaN s*jϻ2*>Q*&*,/ c*_7H D*G w*G =*Q #*^8DX8 ,*ɇt*Z!*Z*B+ $ *c;C*m}Q **z8SJ*^:} *ٓB*ЁRu"*du["M *N *L#*N *Nh*c *F;*L3۵q *`sr9*̪ק*qIP z*1^-*R]T?*o.*9AnP*9AnP*N!j *}Vj*;W,u*5X*Ht*Wy$'R*cX**Li*ĉ멳iD*zĭyT*!QL *6v *)?*r{(g *Qp`?*:}R*PS) *)_F*Dq's*'ð *$^v $*s *Χ?*ᤡ*b ;*DpB*hyS* /װ*@*:u .*+9*Ҝ'v[ *Adx  *Wp*A)j **'*7*DJCkn *1a *nKz *qjwg *vl^ݣ]*ڤ= S *s^ * zZ|*Nf-** *? *cø2* \ `*RBዯ*6R*qӕPQ*qӕPQ{*X=eIt'*X=eIj*E~S**!Cd *m`*E> L*$ **׬ !* *̱*DJ*Qq\ r*nq $*aZPu*aVD`*H`H6$ *rVg! *F* L*go&*go*@VRQ*@V*eF*koh> c*v * Y" !*Ph*Nv*s9gR *LSTZI/K**C *_ٯG*L+*%d*P ?+=u/eV +Z?! +"UtV! +"UtV!=+=+ + +Ȅ2ii+: +suJE+nE|o ++|/Zoy+ćR+ !K+ {zej +CN +˃c>+Y3%+3 +Phbv+i+kӻva +҅Rg?C+R+@7 +5miq+/5+>7 +>7D+A#( ( +A8+BtC+BԷiSS+Cl3y+CxGkj+Cд~m# +Cд~m#+Cд~m#+D%!0+F<Z+GZSK+HYg+K钲*/+Lp|(K+MRcM/ s+O7+PI +PW +PW+QBP +R ouyWr +S9gK+S6= c+,Ut+_^?-e+ڀE +`S&#F)+ +W+/j+&=+KTnF +j's +FOe+@+@d +zXtt"+rT +!( $-+H` +)NWq +N$+N$# +jp#|+1_1:+1_1t+rCo a+" +/AB+C;+C;+j5+~F (+xN=+&hNv +aos+ao+T +UD Y+UD Y%+Rե8T+S , +&@s +}^q +S:'R%+1Of\+㈙2+ I_~+&il+ǔ0+uA - +y(ՙ +`l +4K +%y +y'+ DS +c?+ט`&S+u+҃ +(q +dnpX+o9+VfPK +kǩ+z8?+]+C_$+ÌgQ $+_o +$NgZ +wO s_+䌇 \+}f%+w|5w +w|5w +w? +A-#?+ s a + hN+TC( #+=X +@\}L+U3ݭU '+]  c;+6S+s11?+ \mO+oj9+HfK+bq+/+EsA+{va +g.kv 1+ʮhS++f|R+' -+{ڙ +A + )jyЌ+۹7xx + W'< ,+` \+KƧAv+KƧA8+KƧA+KƧA+5Z +[K +z7 ,c+z7 0+z7.+z7 %+z7 +z7 +6s˜c]+ Vk(+Tc쐅# +Dž@0:+~ f?+yݲĥ+ʃI؈ +˺[-+Wb@+ڄ};ys!+ݺ9OH [+f+jcR++OT}6t+\y +ҍ,+Ӫ={+'t\+lu+ +ؼ9-+ڼ7p)+|CXdL+ێ  +a+ܯR^ +ޥ7{ +ߺh\4+'L+5CY+2(+EpsCS+EpsCR +=l5MWL+=l5MWY+t,}| +(E+X.z+ O\ o +-[++)@mnC+c2vN:+c2vR+c2v+uـd+' 9 +$[a/?+zQ,+1H+ڜ2f+[X+~++Ubt+隹 f$ + `I + `I ,+]@uU+'G#+>(+k 3+=)+=+ti^ ވ \+Oi2 +EǍ,+M ;+M -+'N~%+ +j + (+~Ƿˠ+$r*x o+$r*x +ٲJ( ,-#h$,Hp9 ,z#|,[:,?Z,,ɓH$,t4 3,CI*,w ,\v * , 89( , 89(?;, ^D?, kY, ,fL ,ۜ8,-'X,} ) ,3 `D&,a|,rgw+,oE $,? q m,*HpS ,*HpL,od,],Z\,I{\.,I{\ ,t,kV l,#ɑ,o ,4u",WۛG K,0L,>2 a , BH@ 5,"&ϴA: ,#^).,#^),$ǪHlw ,,$Q!A ,$+,%v8N,%"vNK,&U G(,''#O ,(.Wf3,(.W,(;6 ,(C࣪ ,(EpY,(Mys,)* _,+fiTf,,kyv,-GbZ,.P> =,.í * ,. f j,/5qt,0nv+Ƶ,0w ,0w ,0?]" ,1S~<b,1T @,2,D,2,Q ,2,,3#  ,3 x,4&ѓ9s ,4&ѓ9j ,4./,,5;|2oT ,ekwZ,,fE~ ,g,,g} ?(,iؒ\,je Av,je A \,jw@,k ׈ ,lV'$,ng,n*Z ,o?(5 a,oq2'<|w,oq2'<|,p+,q_ǥcC ,q_ǥc ,q_ǥc,q=R*,rvDk,rB#~,tQ<b,tQ<QA,tQ<.,tQ<K",uLR,u 1 ,v5̸@,v5̸@L,x EDN,yt|,z.=if,{/y!,|Zeݧ m,|\ƴY[,}@,~|\'jN,~|\'j ,qSfԱ,аJ,,vlgo \,vlgo g&,^t- dW#e- r%\,*K- r%\,*K- `C- ]-t$y> j -n7-.hQ[-.hQ-.hQ -.hQ -9WR -o " -S➸ -@߼c-+0F)"-f3 a-.IXK ^-if*' -wpT-%מB -n3--tUmt-c*v -)d-6 -`O w-BoK-mcfX (-7U?- գ#xQ- գ#x - գ#x- գ#x-!,`ODS-"c -"c -&+Ė/-(d4Ld -(w]XcpR-*]rx -*,S $-,P/$--=X^ x-/ Y-/bf-0UV(P?-0UV(P # -0\nR-1t!|j-2^i-3 I9:-5N-5N (-7o5^!-77e "-8aJ -8*<@ c-9 UL[ -:|yY`u-:|yY`u]-:ԞC4 -:y|# l -:-;6#y -=E--=OG{-=l=W->=-a ->Ňm-?|DD-@eu]-@eu-@eu-Bfip'j-C=\ل]-C -Ej D-EW -EW -F%fA9 -F-h-HiA[!}-HiA[! -HiA[!P-I3"cRm-Idq[9-L& =?-L;5]@-LD -LyK-L߾Q-M`XY-M`X-M`X-M-MR-N._ K0-N._ -N._ -NcA -Nd?)-O>!Kv#-Q=׉=1-R, a-SvѷD-Svѷ$-Svѷ-Svѷ-Svѷ -T:6P -TuU -T{[-U; -UI|f-V}?Nʌ-WO -WO-X'Z/ a -X'Z/t-XOrI -Xn = -Xn -Xk}l (-Xk}l .-YYp -Y)tTO" .-Yk-ZQ2,q-[TæQ-[%F#-\QTg s-\S) -\)[#-] S 6-]! -]!-]GX -^k-^XWF -_"(D-aY &;pe -a~g-a/o-c?U{*-egN-eFt -eFk-fp=-f]% -f]%s-f܊v-g --hYːC -iB nt-iĬ -j5 -ju-j׺2a L%-j׺2a Y-j׺2a Q-j׺2a S-k :-kM}:"-kJeZ.-lpYL-n]՜_-n]՜-oH. -p[l` -p6 -sc -t4%  -vk! -v) -wVZ"gY-w;-w;:-xpl\sL-xpl\sLN-x ;-zѯ -zl?M>]d-zCQ -{f g-{OZ!t-{ꏏ` |-|E_@qO-}SN-~F: z -Ϫeɢi -`mtr3-L3B-L3B-Idc| -Idc -`rJj -Q D-1: *-1:-1: e-"/2-̉`U-Bۯ 3 -uX -q|-Mz3d-{|qjE-A;k-u -u -<_SU-*ևQ-GJ = -3] -3]s- \-`#gYK-`#gY-`#gY -ሮ6 --e (-e -/-.^j -M1 -b ] -l' -L-\FX%\-Juf4-(֟ -2PRq-2P-( b-w9+ -ۋ0 -)3Y#-5JB| 2-5JB| s-<{Y-OM -V\w5}#Y-5c} -0ɘ-+pV - <-- Q -bʢD-^Ӝ+ e -ҥ-v9ws-*xZ n-xY $ --N --%7-%-[bx@-B/` l-qFhP -F7 E-F7?-YK6-G_9 --[ Z -ca1Z->ik -:m]L-X( -M-2(*v7-œ\ -Bf^j-@-ƭl:K-(7v-@--~`09P-耚D/Q-ʂ0Y -M9Y-iϙ0K-'Υ-'Υ-O[ (- N-#z9-#z9K-Q _"-Q0-֤?W -6z-}l- ,- xqm -GcN-ؕi  .-vnKk%-vnKk?-ڒ F? -ڪ*OV-ۡV -ϊܻ7M -(-- -UX"@]-ާlA -޳y3 -޳y3-D$-˄tI -$2W[->1$W$ -N$?-N$ -d=x-.& Ev--z>06 - # J- # -Lpq -کq-罴0M-$[H۵-}B[D -šR -\!4S-\!4SU-zHCG-]Y - UG- U;- UK-eՍ -'LS -[ r -"X~S-Jv -. I -]pS-owLt-6c-?b D -xs6*o -!OFr -[YQL-[YQLQ-ʾZQ-ʾZC-ʾZ -ʾZ.G@.G (.G?.ֳ \ .ɅK.#k .$c.$c.vGot.vGot =.Tt.K6L&.lTP>.oH)._.i!_W[. e܇. CN. ) . J((\.ƯI .f\L_ .f\L_.qɋ .q׳".S0.S0.S0.S0S .S0.\I {. R . s. >o .I #./憌Pv.:T/.";.v,? (. .I! . )|d.=bQ.uw .uw .uw eo.uw N.VΗj.=Rt.[K Y. ?.".os.#@-~.'/ԕ1@k $.(F,j.)q6.) {=.) {=.*|,!w8.*`ﭿ1L./ȩj ".1pN .17sܞR .2mC^.3g p ,.7y%m.8;ngj .:BNc5?.;aL .& #.PVU .P.Q.Q#'wiR.Q`LhoK/.STʽ.TDO c.Uךv=:.VOZ/!.VcwR.V`j .W1\^?.W/ (.X+} _.ZAl V_ .Z8 *V $ .]/.^~%._I 8._S4 .`FB2.aNϲG% .aڽ.aڽ.a۪.b1۸ .b1N.ch%*7.c^^ .d^A30G.fg*x.fYX.fؾHEL .g; , .gEgY.g= .it .i7A}.it].j!38a.l}.l}.m#N.n!w3U .oH(4.o"O.o"O.o~&R .pD3F.pyMR.pոx?.pJ[ .qB-pH ,,.qB-pH $ .q(Z;.r-.sKx .t{L᾽ .t\ .t\ .w¼$.w .y|C .y1-U$.yJPo.y,f>.z$ 2X 3.z}ϮR .{< v.{!T.{b @+.{b @+.{b @+.{ʋ.|8 ^.| .|O; .}/+.}/+.}/+ i .~zqh .~ }.J.'K.t \.FF .Mq j. i?.Hf6.f"Y.f"Y$.di; .qj9R.qj9!.C@ |.DW T.f.bQd.(剷ͱR.(剷ͱ.2^#f-.}ypqC.AMҝ[.%? .%? e.d!Q.}}Vgr#.}}Vgr.}}VgrS.H .H.ĭC2mK.ĭC2mR.5]F ;.8^ c.2 .<:'d.EnJ. I m.HaI .|Ѹâ.a.@w].N!2.1, S.H .Kˀ.:X(.I#I:X.| ּ \.Ic R .§3f.x 3.l<| .QY.fe1./EoS.@콾iQ._RۄD.e4.K" .WD.یC^y.K<$+.tS.t.t].t.7 #.C Y2. .$_'. b*x . b*x.4_VU%.νq a.@.G,s.6U.C6U.v. .Ed.qG^! $.(.>#'.l5. s .z$&b0.--.bNk.VW9.4lL.`j:.`j.I .8I .~k.M H .c& Ė .ż2? .ȁh&N.c"k!K.0.u .xY.@t.o XS.͆c\]jA .͔hٗP.͔hٗd<.͔hٗ&.͔hٗK .o ^ .S>5l9 (.AQK?.ZQ .26Sygn.Ę .ՄtqS.;>W.חH w.lm݅) \.I[ 2.+ńˌ.xwq.ژ[ <.ژ[ .ژ[ .68[P .DM .uS=` .Ϝ~.޽0xd.׸ML. .2Z.u%Q .J .hgxe .GENV.RbwZ .ʪjt.lbm.ģ?...Bc+.d\}`a .70 .MDR<.r .> .; . Q}.h >@ ."-q"w.0j{ .O{ #.b&Sa:.tg .xJid.,.~wĤ .~wĤD.Ё*l?.C.]D .Dr.Kg}6s.u :WQ/sE//| ߒ/ we /(Q</e l/mMQ= /5s/I.ة(j / r<@j/ r<@?/ g/ 񻅢t / 7K/ /v]/ eOPSL/3NL/O֌ /+w /$LNR/1f _ / _Y/42~0/42~'/42~/42~S/?@ i/,c/-^6߯z#/-Ban/.<(H //հ \/16"ws$/1"s/ /2 \V'/2 \V'!/2e޽.f /2]ʷ/2(ǻɑC/3C:Ze/4 ߸?/4>o0//5 /7b1/7e\ 1/<- />n,ȲS/?mCk/?5S"o?/@2b /@Jѝ\R@/C?Jg r2/C? d ,,/Cctj/Det/DWg\ /ES2!JC/E 9 j /E ?/F.i| /F.i /F^3s/I(K/>+Z \/I8 /Kq &/L?՞X4 /L 0/L /NaR0/PPZ Q/PPZ /PPZ /Qlg10< /Q˔}=Uk/SJ/T/ULcRH #/ULcRHk/V/eɪ[ /V/eɪ /WX2px /X>5[/XWgL/^LnJ /_@OAZ/_Ee'c c/_+[</`dP R/`dP /` /a/bvN * /c-"9/f7_M|/gAq s /iT /jaS5/jkgosN6/l1k/l/lDנm1-/mԉM×/nv~ /o|gW/p4ʔC/qX,/qr&[6/r=/r/r /r$s X/r':ye[/sC[  /s)ʼn. #/t~iϭ/uSաif /u%N/uj/vVa k/vVa/vVa . /w9٣ /w1W/x/IhTd#/x3P/x3P/xK1k /yόN\/zKхb/{,# k/|E y/~0inn/ Q/01vT/!j j/`Y3u /rN/x)-/EdsgZj/A# /H}3/H}3/H}3k/H}3/ZtI|/!\:/!vu/hB,/~9/V.E[/QGt /QG (/QG//'/H`ju$ /3fq/O0/Cm`l/iAt/j  /#R/ /sN /Hc-/+]<? /1-v/nI4$ /R| /R|? /{mcAnS/u C^ [/  /;z^h/P]C \/Xֺ/{  (/}R˅( /Iy/ ozD # /oiv+/۰"/k/J:< /<yC/ U9 /*K /CI?/7;8Ť?6/7;8Ť //7;8Ť (/xE};/xE}t/2mO/'ţ /'ţ /'ţ e/G I/X4j/܌9Wd/sz/͓d /Ei&O /W'k/,GI{ $ /z U /|My/u届v /zK(- /W?w /ٶ9*/ٶ9 /j/N٭v /Sϯ/Fl /r1* c/"7K?/%l /cυY/O!/eeS(C/ĬX/Z/2]/+L%\[ (/eAj/;=]? /]SvN/]SvNj/]SvN /˅BQh /˅BQ /4r/= /΂±f/΢եO?/lYe /7cK/= Y/'/'/'@sN /.[s|e/[xT/ҚtfS/Қtfe/Қtf/Һ{u< i /ҼA (/ҼA?/ҼA /+s0S/E"[/{E\ZR/Њtt %/2 % /שO^v /V/"%aG (/"%aG|/؎ a /W/̧?//ۥHA"/ۥHA" /|oD/UYv/#`S/#`L/#`V/TFkSx/TFkV/TFkI/TFk /TFk /TFkZ/ uv]/:5/:5 /:5 (/:5 /፮6,/\, /@m5 ///)'AG[/@b/uO/=s /x' /f/fN/T)/WxtwD /9L/`X1 />$/d/P?(/(hW /E/bi /zTu/71?/3k/ǎK /ϸke d/F /3 e/f4'/f4'/2% h/O /l 2/2j/2j? /QB 0B0Bk0`S 0j0sF0gj03 ;?%03 ; 03 ; 0_m 0K9QD$0ǚ*+d0o0#s_yR0 PwoU0 >v(0 fYwB 0?bѻBm0?bѻBm0?0@0:wR0A+4wm0Aky2J30Aky2J3 0Aky2J3P0Aky2J3D0Ci;R 0F7[!0FsbkfQ 0Gw}Z 0I}0Iv0JQ#0L0shhR0MZ"ku[0MZ"ku[0M32 $0N6t9ݸ ,!0Nf)o0Nf)oL0N{.{0N{.{<0N{.{0O>}X0O>@}S0O>@}L 0O>@}Q0O-L<C0PNkk^N0QET.S0QET.S0QET.S0RO 0RO 0RWКZ0T ;Bͱ 0TVb^U0TVb^50TVb^0Tq]A"Z0W@lV0W]?0XEƣf0ZÍ!Q0]TBG90^r740_ȕ0aC\ j0a 2z0a"We_0acP 0cAj90dZU|0dZU0dP`~0d&#v0d0e]fY0eêas0gq &0gX 0g쭳 $ 0gv"v0hozR[0hD"py0hD"py0j e 0j?! 0j(XK 0my&DN:0pk%*A 0s gS0s g( 0s(^e 0t볃O 0tN]s 0uh;d(0um 0v+z ,0{+C0{+CL0{EiX0|Hv0})V0}%<=0~>M0~>M 0~>M0K߉Y0`/j0wx0~p0Bo@@fV 0Bo@@fVt0Q rT0\s 05% #_0+ SaI 0\#"0%b_S 0S 0,L0Q=Q 0=v0U[ 0U[^0U[0q& 0'kY80K&$0 0t՞R i%0t՞R0t՞Rt0,҂' 3 0\ 8qL0240eҞ 0eҞK0E] 0Sv g0hO_%L 0gD m0Y{|0W'- 0/Y> +0y0ʹcRU0sO 0Frc (0*^f04 [ 0:7~t0Vw_0'{aW0n^0Gf0s0l# 0iUC<0gǾ0gǾ0LȾ$ .0?Q0&@k0/mF4 0eS#0 ˇ?B 0 ˇ?B0~m40mbF0o׃05PQ0Yw 0tK('20tK(' 0!m 0!mt00;I= 00;I=s0<2j.0' 0;b0Ty%0kr][+ 08_^0 (0; 0]0#i| 00֚{}d0t0>(0>0>0>C030n[0Bvj0Š[Ko0=v0HvM (05CS05C 0ĥe,X0ĥe, 0ĥe,0ݛpk0ݛpkR00ݛpk0K 0>Jl0[|0Y޿"0ȬmSy#0*QT;K 0ɛY1 0ʐ[?&w0ʖ12 0˚ozxRt0ȉR~0:BjV0̪Z[0͏Ql0͏Q?0B~ٞ0p0ϑ?=(d0ϱҘyRR0ϱҘyR 0| 80Ѽhx0iq0ҾGZs0G$0G0\O 0_b10_b10_b1D0~ \0UR-u^ a0T%0?F5 0v* i0ٔiy<^0589 00{#w 0:3S 0:3L 0}YZH0SLꁛ|05sia 0;*} (0n 0cLY 0z8Kn|0(WR0ߌ5d0S0q&m0q&mk0@\ 0@\%05b kR 0N>ww9/0N>ww9/0ᬨ v0EB?0ۤ,!0 '0 0=0.Z0M#N0}^*k0i|0xQ;ͭS0Y2 0kZ00ac'0lsܾ 0侥`; 0\=3 0\=3 0yd0,܌Q 0,܌Q i0ϝh!0+V94t 0KU!ԭ0ZL 0340oۇ04ȡ096Q 096 0h1& 0J j0#o 0zN0$z0$0ɔ f 1]R1%F 1%F1# + 1{Es1zO1!1! 1M%8^1SI, $1 1R6> s1 ug_t1 &d1 ޽h 1 aE , 1 /i'#Is1 /i'#I1zt16j391B| 1B|1sK ,1Nqv 1J41ʰj1h %sO1vAd| S1s`S1B %1kYx! 1 ^. 1W 5z.1Ľ2nI 1$Z?1%O 1%E1%EL1&_~;G1'kib1(2G6L91(k81(OV$31*D;( s1+\|`81+\|`8L1.`XuR1/glk 123 13[e2N13[e213[e214" 14X0N14$R15hdG{16tT 18$W0)19#=E~P19#=E~R19iqL1:Q`.,C1:(-?v1H"gx0b1> n1?N }ǕZ1A%T ۃ $1BzbhQyK 1BzbhQyK1C7dW8 +1CvzIT1C[yON1Dz[1E~ ]1EKS1EKS1F@rN1F$U7[1GL@'f?1G{ 1G91HE1H"31KL3$1L&@~1LH41M֓1M\ 1N=mR.O1OA /~ 1P& ?1P0_[ 1Qqq>%1U.?y a-1U.?y 1Uei1U_9#d11U_9#1X oN1Zܣn1Zܣn1[md Z 1[0_(1\{f7 e 1]lĭ0 1^~{a 1^ca1^caU 1_w1_``Jch1`m-1`m- 1a=T #1a{h (1bz4 1bz4R 1b 2O1cv~ 1c$qdX1d܍"j1dk ]v1e} ʪ !1g1h7t1gޭ2C1hRzZ1ijE?1np;1oZL,'1q k1sɜA!j# 1tc:QO#1tK1wGV 1xuD1xԽm1}+! 1~"`-1~F $1~L 1_2=?'1}1=t~1MME16X:$ &1r89ug8J1go;Z1bZ 1>r1nF 1eR16Œ3R 1I? 1@+1*> 1*>$ 1{↽R1k a$11 Q1,C1IJc1B1B14, 1ǚU?1y6 11rܵ]1 u:19? 12f1 I/J1U 1vm\$1F Vt;1F V 1 717v}1_r (1X<1R"40U 1y a1,K$1.c(1"s "1"s 1Fu1( 1i;R1sXc1ט?1-?X % 1j]Q1lmn 1͞71,mIq 17E 1ew (1ew 1ew 1~]& 1*){1?~i1?~(1?~1lq1uS41KpT1WY[S 1at,sy1at,1!XWx< 1a½h161(2_ 1EyI j 1p*1p$\1qw(1_)H's1wJQ+MR1)z 3 1$Cն?1h&x j1,1C8ꎖ N#1C8ꎖ 1UnՌ 1!1Ĉ͚N 1B[RF1B[ 1: vw12>u2TK512>u2TK12>u2TK 1ɫ,1Vndm| a1ʠ ?L1ʠ 1˂ M1C 1̃55qt1fc?1^GQ1R鎜bZ#1ЎVnQ1ЎVn1b 1fuS1҅zk1 1c?ER1H  11#c1JZԯs1j^$1)k>gD1Iyc 1٥"v -1KcR1KcS1-' 1ބHa !1,iVS?1OHo1Np1rr]U"s1/V[-1㫩ͅS+1v Y( 1pN+1 VI ~1Ayo 1+H{1as1'䅨' +1 j 1 1z->? 1&7 # 1Ru%% 1E`  16yC1Pl:7 n 1Pl:7:1&~4 1Wv5h 1#^)1o ,1ls 1l1Cu-IL|1$C^ 1vY 1Y?1,ԉ b 1YSo+1Y2CndR2>3B2gmL2(G w 2LV[2з}^ $ 2Nh2 /llpY 2 /llpY2 v7k 2uGyDR 2s T2|/3ej2'rϱ s 2e^2k2m2_r 220{ 2Uс 2Uс2MizO2`j2f% 2"X 2hAc 2=zޑ 2=zޑ (2 E2 li2#$Df c2#ƈdx i2$&{JC 2$&{J 2$&{JQ2$&{J2'8 2'*5V2'*5T2'*562'*52(bSc 2('~L2)raT2*srv2*srva2+ " 2+ "2,_I 2,IY32- b 2-#2-#K,2-#2-#2-#Q20gdZ.;21&WNe 21F,zLe 22D(Τ24jRv24=e24!0I 25EDq 25Dm{26(\28H~29 =D29 =D295Kf 29jGa82;`,߼I2 2eP9> 2eVI 2fG 2i Z2j1|2j/R2j1eN)2kjPl2kqVE 2l}xt h2lU[2n22nlH~S2nД$2na ?2o2qQv2r89l52r0m(Y2t4; &2w 2x7:t2yl 2zǍ2zo2|a2N2|j2|j2| .2ilDy2ilDy28+Zq2Ne 2uO 2w"& 2kz 2ѐ;2NNeR2S\42T}uL2j28 2 P22ZUt2ZU21LR0f2^fgw 2})X2}) 2}) 2})D2})J25w 2- 2@z2(`k 2%j~!2%j~K2l3C28s22,nj2iH 20G":2i_ \2'l2BY;}2@|w *2a /d2N7 2}%Ka2čok 2y3Ck2y3Ck?2š|lfN2żGg 2>≪&2?Kq.?92Lp9] (2Lp9]jm2Lp9] T2U#W"]2slD# 2I . 2(F 2<{"2HM$N2R$2XVf2ΧG_ "2sͮ 22ϯOp z2ϯOpX2ź2 2F[x2\/ĝ2ܹ @~$2L@v 2Bx{2.np 2ܯՓ($2Mpd2Mpd 2q 7\22N 2! 8dQ2#cU4 $2#cU4 2#cU4s2FQ#Z2Ps'2-s;}Vj2ᇧS2lc`L2lc`2^2S2l2oi2%+[t72Whst 2>N 2_L2_3Dc2_3D a'2_3D 2v7/2v22v22y="K/N 2^e[>2Bpd$2Bpd$D2ףV2ףV25Ijj'25Ijj%29b{ 2Z3!2Z3 2"6~2lm D27'2 )&( 2T$.!AL2T$.!A2WEA8m 2ZH'&n2|:|o&2?022ȔO=52+| H2V1u2D2a:ub212Li2UxnI2:4"2(M?2^V]2 2*"3UJ z 3υcЉs3uhxob3Yɷ3T=x 3gzs  3Ww֒ 3`a"43QMK3_s|3'D$3'DC3ڠ˚K \3^*3e\ 3e\)3e\ 3e\U3e\3e\D3 gS+y i3 op3 xe!U3 kme 3ʰ`3욡/3"Hft3=˺;3=˺;3'H3b-@?3r .=3/!Y 3sVEoB3o~< 3w>3w 3w3 Jm23rPX 93m3!_R3!_}v3"Z$ 3>Z$ 3>8!t3?| 3@YZ3@YZj3AQ 3AQ3A\+ŦQ3A\+Ŧ3Aj׸R|3A3C0,(!3C=Su 3CtfL3ELG*ٵ3EvZ*$ 3G&?c 3GfKe3GD_3Hc\)Z 3I\5'i5 23I\5'i5 3ISҸP3J448Dh3Kպm5y3Moj3PK=:?3PZ4+$3P>r3Q XR 3Qm7h3T)Nw 3UUq3U"kz^ !3V c"fm3V,>3Vf'P*'# 3Vf'P*'# 3Vt% 3W*2&:\?3Y5R 3YJ:HU]3Y 3Z? ,3Z? 3[, *$ *3[(Bs $3[* 3\~3\%vV]3\%vOM3]1ۯ g 3_/`2[.3`@? 3dՐpD 3e1@3e=3e\"3ey A 3e^x3eBmL 3eBm 3h \u _3j/!zj'3jΏ1` 3j 3j 3j3lI9@G 3pBZ 3pD3q 4C3q 43q 43q4IN 3rN¥ 3rUMc3r4f @3r4f ? 3ut3v@ +#3wY"! 3x  , 3x 3xm+v 3xm+j3xŒj2S3yO S3yh;3y8l3z 3z3{f3{jX3|Q%3|Q 3|Fk?S3} 3~HE 3~iSmR3~ьyKB 3ת{30 (53f~63f~3B"B3fβR3 (L3! 3!? 3! (3ĴUM3Ĵ 3Ĵ3Ĵ3rJN3rJN3̈́x?3Ip 3?3}wW3CE .3 4:e3"ҁ"Y 3"ҁ"C3> $3mn3v!)3v!3 Q903nd3L iY35V?3IG+ 3!EZ3h #3ibiR3ibi3I< UU3(]3(3#6j 3k`ҷ3\ʯ3UƼ<3<* 30nק 3+*3! Bi 3Ie"3IeR3w 3(9 .3!-+3CfL3CfS3Cv^366 4 3Q ̂ 3Q ̂S3}CVC3c_.Q3'Q 3δZ] $3A/=vL 3yj"3y e3s&'2SH3Yo 3Yo3Yo3#|K3%ز 3XL3n3BY3 #30pAN3J(+T3J(+3h_w3:A"3S.3#3)dA 3)dA{ 3B63roc 3 3maou 3N3 l\6 3sr锳13xA}>3| 3G%j3H3K+?( 3K+?(3iGVR#3iGV3u3S3{s R 3>a43*6!@3wFP03sJw 3B? 3B?3H9 3c05s 3$x\:3$x\t 3$x\3$x\ 3]7? 3jT3x 3rƇtg9? 350S33|R3eL(3e$3e 3e3}WDb3dj 38 3\u 3ѫYȕH 3@1 3@1 3j W&3ҪF"e3ҪF"!3>} 3to+3z 3d/Y0$3iAR31 3X3ڣC4KM4d4KM4+4nݜ,4CI4Ol'4q?lF4&4Wqh 4ڮՔQ4ڮՔ 4sz 4Fs 4DlC4>º4Y4h 5ea4~ 64Q%q? 4ZJ~4ZJ~]4ZJ~4~8t4N}46~\4[C -4[C 4S;I 74cǓ &4Չ 4e Y 4#Ì4#Ì4#Ì 4}~_ 4 >=ϼ!> n 4 G\ 4#w_ . 4$8b4&r=74&偨ɪ#4(;iI4(s{[ 4(ʙFqk$4(xRR*4)SR4*D+@4+ 4+ J 4,X{| 4,X{| m4.ÙB40d]; ^ 403$41x>. 42BĈ 42.,Yn46g2$47 LK_'47%m149+dl$493{L49 Ǖ !4:O:Lxs4:aGٻ 4;8E Y4;M_IT ,4;l~G4<)FR4<)F4>F 4>0wv'4>0wv 4@I`30 4@4 V4A-=v4B+f 4B7: .4BJ4B 4BE#O~4C9 4DVu 4EEAJC4Eya 4E@C]4F15s4F15 4F& 4F%% ^4Fhm#P 4G6! [4GJ)U 4H)4k 4H)4k j4I/7_ ; 4IX> 4J9G,*D4KFBC4L_ȑ#4O5&b@4P\!v#4Q94Qs 4RӫGz4Tcr%4TiÈf4T t@_4T t@_4Ucr4U]44 "44 4u 4˂;/r43 4pG 4̕R (4Ο74k4;]~jL4Nĕ{s 4}BP c4Ѧ=J4ӎbٹNR$4ӎbٹN 4t 4g8?4g+:4ؽQ4j *~J4ܲ GC4ܲ G4ݿ^n 4F8 + 4'liRD4'liS 4߉j)7s (4m. 4?4%~4%~L4NH| ^ 4NH| "4>)K4؝1N4zt_4n-14E퉨R4FadT a 4BJ}2a4Q񼱘d4:4 v4-l[4}[J 4霭 4 S4 S4i]:4!8m$4˨՛x 4Wh s4 R46L),46L) 46L)Y4M4ߟ;K48 48 4GUѱ4#,W 4LVW 45v< ,4\+}81R4mJS4mJ:45ȅ|4r']4Ѫ v c 4 40t e4+h6s442.r) 4w 4s 4] LTV4] LTVs4aO4aOR4ݲ',a 4ݲ',a4ݲ',a? 5<~pa-5<~pa5C h5"*5, VH 5, VH5GީP5Gީ>5Gީ5SA#5zR 5>"5@SS5V=5V=|5xu^5xu^ 5. Z@j5=h^,5=h^,S5=h^,#5=h^,5zxj5 Ds,5 ^Re3 $5 g0< 5 g0<?5 2>8m5 |z#D5 #44F35 U5 q;y 56 X 5q{wF 5|ڒܫv 5IGx5Iin;?5Yo$5fǥ[5'[5<%v 5<%vK5| l50<5r\5p^?5.ޤ5\e| 5ޠ] 52٤x 5oƒ 54Wzy 5~95~9 5<߽? 5 n{OL5!)CCe5"S&Xl (5"^9ڃ 5"P7ӎb5#p 5%Blx?5%#8|C5%#8 5&`aY+j 5'F#j5( @5)h  5)aN)E5)aN)95)py:5)(c_5)(cs5* a5+i?|5+I.\ 5+5,Z5ɋT5,Z5ɋe 5-1d?+e 5-s;h 5.A{9|o;v5.ex95.I,j5.s , 5.s51S: S 51S: Z51wܥ53Dzc 53siU54B[ 56^Zyt579%58,E?58ޒa590vz?59׮U; - 59伧 v$5:G5=FPr L5>, 5>, $ 5>, 5>v;5?j 5BG5Cl|M t5DW=L5D.D<5D. 5D.5E^oj5E&5F!(y5Fh^X:5G]?5Gr5Gd5IPP|5Jcqd5J.b s5JtS5KCR"05L~T , 5NIW$C5NIW$Y5Oo:pTq5Oo:pT5Oo:pT5PL0G5PՒ g5PՒ ^5R&d;5R&d;k5SR0s5T-p^5T-2fA5Tr}.%5Tr}.%5U7xd5U9ű/ 5Vd5\? h5]"%UOH5]"%UO$5]OUؠ 5] 5^{8B5^qK5_;ia:5` dE)5b< 5c7!uD5e,_vq m5h 5iXG5k S5|5k1s1 5kh9  5kh9 5lt?5lGz/ 5n0{C5p|} _ 5s+3q[h?5sp5uA"!5vnx J5wsso-%5wsso-5xDR 5xDR5y> 5y\A6X5{~÷|^ $5}@{n5}@{n5~&[}s55Ov59's59' 5V5V5E-: *57X -5( 5n58 5b.Ȭj5Aq5= 5c C5E5Lns 5Ln w5k2?5=5c5ZM 5zx&H 5~?L#5Ԩ+!5Ԩ+$5g $ 5@WM ib5@WMj@5@WM?5@WM!5@WMs59K5͆? 5ݔ1 a5a&8LK5ts* m5ts* 57 57565/ 5sNOK5sNOK (5sNOK ,5sNOK5zsj5Lh5X9ٻ 512εL5=~ 5|5 5pIWR5;9 5-𓴉 5/0i?5Sm.#5!F5vjc3 5496j5Lx5L5ΞZ5a Z5tS o6X 5nպs5y5ޞVC 5s.5~?/5= a5M25 qF>5 qF 55  5b0]8 5iSvk5EvQK 5r w?5 5$ 5t;5V[d 5SX(L5vͯM 5RC5aJ ( 5rf5"Sk5T/{]5uК  5HDg5ew'1U#5`'`85k5vњ? 5'b  5'bD5û?_& 5͗#5ŷ-_s 5ŷ-_5.W $ 5.W ,5.W5f| 5 +8j5 +85yU& 5ȹ5]H8eN5k5Z 5c{EIh 5geZ 5ltho5Y!5Y!5[<+mv5̹ޑf5Q-Bc5Q-Bc5Q-Bc 5;ZL50׼S50׼5xZُ?55ׁ 5ٯ\ 5;Q@N)5;Q@N 5;Q@NS 5LQˡ 55!Xi 5ޕ򌈌5L7\:[45-qlq5-ql+5-ql5:-V5"PR55:5z"~5"ce75݋͜5ğHy 5b  5b 5ߦ5) - 5ߧC֐! 3$5ߧC֐!51Z 5_d^B85o 5$j!ޯ5$j!ޯe5Χ25" Te5fHD5 ykG5vvm h5¦ 5¦ 5¦Y 5%"d55 X~ : 5 X~5hG\P a5ԍ 6B&6{Qҳ) $6{Qҳ)966xrؕY 6$6n #) 60@8*6r6 6 6 61slZ6YM k6YM  6YM 6:$_?6:$_s6IX6 S=K8 6 x)eX 6 K``#)6 Q6&(]s 6)$=c(] 6*RG6*ܖaλ c6*Ϯ?6,-76,-76-\K5z 6.+6/wc, 6/7T#6/7T#K61 l5.v61GN62'#})f639Dw# 64%f / 64+O?ez 64(64(65{m:OV66>67"167J67Ӯv68e8e 6;vY#Mo6qsx # 6>6>H6?*0`6?Q #6?Q c6@NB6AŘ w]6C;D6C;6D?o4 6D$y{W6E˜Y6F俤k 6G; '/ 6Gf| l6H.UO-6H.UO-% 6H̯mN@[ 6ITj6K`p6LR|6Lͫ~6M~5:  6Mj6Mgj $I6M0- 6M0- 6M;<6M]iW6NV7 a56NV76Osf;B6Q^Ȋhh6QpzM6QZse4tv6Q0pL 6QP/K 6T2=j6Tyz?6U5 ~ V 6U3 "e6WKGQ6Yk~l6]b6]bD6] CJ6^7s6_V*~)6`SvL 6`## 6`V $6b* 6c9(Z 6dru 6eP \Q6eP a6k>Xy>Q6n:$6n:$D6ohZ}< 6p0K 6qM#6rgI6wwsZK 6xIR"}h&6xIR"}h 6y n?6z9sa6{<Ȥ6| 6| o@6} &.J 6~\B5 6~d 6C 6Lb ^3N6&p,6&pd"61T?6_/7Z6_/7 6_/7 6_/7K6^ձu6@o{6R $06f  e6ԣ` 65x:?6O1f 6-`V ,6 j6WS@S{86d+of6_`06_`N6_`6B`_6<= 6<= \6Z YtQ6AYs6l@Q6>6;xVS6]196(Z6o2:) 6"3ar j6-?> 6q?69 69 S6/3 $6/3 +6/3 e 6 ``x' 60A3N $6:0P6:0D6!]h$6]$nv6( 6t<6+s 6C> 6Ys6 8Ԙ (626 6m9| 6m9s6~36~~\R6"u.6L;% ?6oTi6oTi6  6 e61z6wFt 6 P ]6i6" 6BQ`;Q6qHgj}6ЧWj #6ʭM"S6] 6HkY6X2G 6pnHr 6 6 XIK 6Snj6Sn6Z76+=R6[6kj6t?:-[?6*_6 rcV 6g666 o806 o86 o8 6j%# 67.I 6u6!o6km 6km 6P1U k6P1UP6P1U64[CX64[CX6bP6bP6bP 6bPs6l^?6 H@d6[ā K6x޵6x޵ 6÷(z6÷(zD6;]|6 KcJs6 KcJ6sM6ȕ8[36LoZR6̀ٺY{6̀ٺY+6͋k&6S>I) 6SOs6О>Nz`6ߞ͈32 6ߞ͈32686+R6˩&mM 6K"yP26;,O 6xW*6| ^6ks_k6ۚ gRS6ۚ gRJ6ۚ gR i6ݳRf 6KshՆY6n,Jv6^TN6co 68| 65Bhf6U|P66tT]U 60M' 6oD[" 6oD[" e6;QC c6B-^PQ6ꦏo6dț6@0K 6Z: 7 R 7 $] \7 jU7 }|7 L\(9 7I=2s79o7LUs( 7ᄼ5F7`"IC7VL?l]7?ü (7qQ + 7 7N a7 (yfQ7 (yf>7% " 7tO' 7D$\57d}jN7ܚE 70pM]j7>:,{7A c707 _ qu7D IN'd 7Dx7E9m 7E9m7G u e7G u , 7G u 7HMB!7H%At7I&aN: 7I AU7I AR47I A7I AK7IY[}7L7M:: Y 7Q(g>7Uu+%7U ҟ7V"#E/7VU.7W>-7X 7Yc-7[h:7^єIx 7cBG'ǵS7e2Ws 7e2Ws7fP-7f&UA 7h _ kS7h‹V6NW7l)@#7n{7rx̯Am7s: 7tfys7ta6jN7ta6 ,7ta6 $7t-Wf? 7wHY 7wYE3 7x`<?7x&xZu7x&xZuT7x&xZu 7xʦYK7xʦ,7xʦ 7{ ]7F 7~]*7t]?7~]*7t7~]*7t7~]*7t7~]*7tU-7~]*7tL%7~]*7t7~]*7t7~iS9h 7s,8+P j7?bDI7J[ 7GN 7J&? 7YZ.Q7,Ck7^87^7+tX70# l7{L][ gI7G6j 7Pu%+7 7bʾ& ,7c7冚 7zui??K7y 79؎b 7,*7Hms7z:)7lCiML7(D/#7(D/#7#5R7udͯH:7R7cG7c 7Z8y7a.:k<7a.:7y,J 7BC7g}:7Qzjj7. 7Ֆ ,7 !t 7go7g,7g7gR 7gA?tR76 a7k9+/) 7z 7^Օ7O17m7:ok7$D/d 7)1?7d|1d c7opi)7tK;7t 7lF,7~S]uR7te-R7E,47fpX 7Wy%K 7Wy%7$秜 78D 7;ڰ ڜ 7ozT 7||t 7jj@7j (7jt 7j 7jY7j a7p_7p 7\oh 7cs 7cs ^7XT K7줱; Z7C4oM 7DD-Mk7Tj746 &7ZK  l7}>? 7A0t7` 7` 77JyE iL7JyE (D7JyE e#7JyEs 7!^` Lv7ioƪ 7x7>Or 7>Or 7!B47Q>EGx 7p..wN7> 7kT&7kT&7kT&7kT&7h~w7_T ( 7_T;7Pz7ΕM0 7);֎ 7>j7ф[7ԆGs7ԆGs7ԽgӥL7%14 7-ǃ 7tD7[R87:aJ *7:aJ 7:aJ 7Dbl7إHUu#8>K'id8?N8A|# i 8DeA=#8Hm^T 8IGltU $8JIjR8LR1$ 8MʒFDt8Nkase8Nka 8O,3Gm8Oo4k8Qj8Q8cVa8 گL8nəS8o1 $8wg 8/ 8FrյR8FrյK8d! 8ڋt 8 ԒclD?8/' 8q Sa l88oK 88o88oQ8I! 8I!R8#o8T[b8$3 8$3 i88Q 8тz0b8тz0b8L8x: 8eG 8f٘8!;2:(P8Au':%8L,- 8*w S8c5]4H8}78͙W6 ,8ۄL 8D̓n:8/g s8g;;B8p9T8 6? t8{ZK 8pm\ 8P 8"؄R8fS#8yE $8#,;qR8>^;861Q8NY^8NY^ 8W(ox 8p 8IǬ[8tR8c828;u 8C88dă8&#!z8@ 8m m 8U]e 8JhH -8'3EHMR8)2 j8 W8EI8b?A c8Ɓ?Xɡ \8ƬH0c 82~$t8%HhI8%HhI8'? 8U?y%|9 8خI58gY 8h?(A 8ζ@88ζ@88ζ@8d8ζ@88VFr. 8v93 8q8/aS8ўj8x!8dgn8k"Z 8ڮ54̎8?} 8?} 8a׿kj8yo ,8bxa8ކI\h ,8i)~8stfZR 8x0͡n8x0͡8`2tc8NbR 8]U!/84<ϛ8X֪҆[I8n]8F-78SSR8篫eo: [ 8v?8vT8vj 8/_N 8{=8{= 8A38쎾tR8씲278[{9 b 9@ŀ9redc'?9 f]e9 [9 ð짃 9!fR , 9"4. 9#Z\XN9#YcJp9%cr[2r989%cr[2r99&C354 \9&"i?9(`F[MK9+ NY9+w 9+w9,?k +9,qw g9,qw _9,qw 9,fj 9-)?9-3 #9. yC9. yC 9. yC9/[lRf90r394'j" -94K95$QA $95$QA (96Os i97FWis98M986@ 98f99wG, ,9:? &9=P1'9=S{9>hZy 9?ЯH 9Ai.9AudR 9B05j9BwD c9B! x9B! x9CǐHR 9CǐHR 9C UD9Dȵg$ 9EH R 9EKS1 9b% 9cqME_ 9dR(9dF9g&[y 9g;ɾ8R9g;ɾ8 9h*et9i9xR9l`^(:9l`^(c 9l`^( 9m.X(9mꬴ 9mgD 9n[n 9nQKG29nQKG;9o9DV 9o:~99o?=^K 9oRJ9qa*? 9rPZ9sES?9smx 9t0>9t,mw o9t,mw o9t,mw o9tAKNx 9ux)9v$S9(9v_^/N9vԜ| 9wj^Oԅ 9w#v*9y0ԫY 9y0ԫYR9{3j$j9{K a9}k28 ,9~EQez.9~gPì<$9%  90Tn9 9dz(c49Y°I, 9"~ ]92HU39Pn9X񈙐' #9$ޣr9+w{95J9*9*9&V؁P9.l{?9#o79yN-j 9W=fN9_EG9 F z-9pp,' 9$B 9$BK 9\A@ 9L& 49L& 9Jx 9*poZ9*poU9*po 9*po]9+L&pQ9+L&p=9+L&p'9+L&pd9Th11.9^ρ.WL9KNB-9%qb: 9;[9|=Z!9Z 9Z ,99N|[9FP`:9hff 9$I 9ɽv 9/Վj93K9<~jc 9n.' i9H9b'T"9 IS91'91'9g÷9}] p9W  a 9^W>9^W>9]lW9]lDN9]l9]lQ9܏n 9R -)ڙj 9R -)ڙ95v 9 9qP> 94Q9 93=;2R 9}rml:j9 2(9[w[9Aj9At9Td9ӂ< 9{v9r)9Y!t9+4j 9+49+49A/~w 9A/~w? 9I89`j 9`j9Uq91aG\d 91aG\9`PH \s.9`PH \+9鲚H9鲚H9/Kj9灡0N9W[99%\v 9%\v 9:#Im +9A69A6B9s 9&#+ (9Ks}ʶ ,9D)F9-$} 92ێ-92ێ9b 9+'"9"o:Q9´oO9´oO 9ä(J2k9Ċ\t9@' 9 +9b/qq 9fU%_9mQݴ 9ȵq[Fa9_b&5T t9ʟnpC9!hqAu9('Ny9('!9tLU9&a|k #79&a|k c9 ^|9ͭ'_19ϝ>;19ϝ>;19аXL9 18k9 DQlk9 DQl 9 DQlb9 D 9҆x޿6 $9҆x޿6j9Zv N9Ӌ`u s"9Ӌ`u? 9ԧev{ 9Ffaf9G 9G 19$ lT9X=_Z9X=_Z9b֌[ 9<8#9ڀՈ.-9ڀՈ.R*9ŇR9S P9ݸN/9gۗ7S 9Id$S 9Id$S b9_ 95|Ɇ9B 39LZ+9ozCN (9SJ9e6% 9 7az 9甃J$9p94T c9MG593hU90 )89ʺQ j 9ʺQ *9+s9\^Z99\^Z9roP0 9Id] 9C 9eEU97.rv9YG"9X 92F=?9KdtL9^@[z#x 9-چC9cSK`9t89 (/9 "9Y 9wp X9j 9t4d9B8q ,9'S"9/ 989?n!9Y| 9uL9Iӷ9sSփZ%9|k7j:Xi(D$:l e:̒dR:A98:Q; : j:_`:o3:o3:oj { j:2G:t%R: :8/L: I) :P ]:P l: A : 26Y.: 26: p;)R: p : XcP : ZD: Z: 0^: JX;t:} b.K:϶%::U(:ڇі ,:e/U :ƀ :;Ի:  -:X44@ :X44@:Ĝ :]tY :4^^> :jO?V:J":w0t:^Yh3:z~@( :sw l: M :S :#aS6\ :$T4:)q  :)q :+w噚?b :+HeD[:,!S:,;;)j:00%b^:1~! :1~!:1~! :3$:4`K:4` :4ՙ:5KcW\:5KcW \:5 f :5CJ|R*:5CJ|U:5:62h ,:9 g:9::)R c::ۄ8:;9apA]:;S? :;S:<˖#K :<J :=T>| e:=ms9:>N :><t:><o:><R5:><:><:?fz ^:@T>8 :A}ʪE:A J $:A(84 :A=-:BUګR:C3. a:Dˏj:DpOi:EQ?VP0:E4?:Fk({G i':G[B :Gucmh:Gڱ} m:H?Rb :H:HDÖ,:J-Z*)Q[:OM g:OaIV=:Olމ}jI:PWߙ:PsI:Q_0 (>:Qa.3[ :Q=:h ^:RFlM $:So/:TJbf:TJbf:TJbf:V!Fp{ e :YJ :Y5}ԟ:Z8K}^:ZGG%:[SBӧ.:[Y:[zFz1 :[Zc @:^~:_q:FY#:_q:FY:`~^_9:h*k:-:h MH:h1iK:i]#XK :l 2 F:ll71":m#iR:mu`_T :mu`_T ,:pu, :tDnF:u3:f:u^ :uaZs:vo3yO (:w/̣iN:wQ&VL:y':ze5|;:z!j& :{Ln~PS :_g!I:_g!a*:Vjg :fhk:fh ib:fh ::,6i:.:l/ l:s:kŞD( \:$-AgK:ou (:ou i:Ca):Ca:ӟ5 ( :ӟ5:P :{Zt- \:\TD:w:C :Iw|:^Sr=:kowYb:Z(b`? :soGx:,[:: :ӢU-5b :: ':::c$0H:a# # \:R[ n :w1}: 454 \:&C :(Q:S]:ь8:p:j[:<2:t"$ :1C \:D7 :8%:ݜ=9::[:X=c :fDwv :9W^p c:}BK:D:p :ޭTT :ޭTT:ji :`.VDR:`.VD:?& :#$Q6?:i:T' :IL4j:L,A :TuF-:TuF :W63U: d%:Wlt(:t:9c:0 ,9:0:0 :"Ԟ4 :_PYl:DVS:_{ӇR :O ,:T> C#?:U :u:‚W8 :K .R:O  :RmN!:Rm :ēaa:1n:S-:z6%Fs :\q1!gQU:\q1!g:F :^^c :fG-K3c ,:fG-K3c :i8N:˅Wl $:ˠb :R^O:R^O$ :Τ?:3ಆ :Ѡ}_j:Ұ(#ct:4]'/:ԟ} :֦*^ :'yK# :~HZ :c:Ksa :j:,5ȢR :,5Ȣ :gN| :߰)\N :aT  :D:rk:?A:DӼ:EZ:®Z :息=9:8(:8:5큉/:誝M D :@hi :k?$:k $:k :yg2:w:43 : W :& X:'&?:'& :iR :>6$#:>6$$E:# ,:x\Z1C :RxϢ b:RxϢ.:RxϢ:£kfR: <~:DXF a:- ^:"3:lb :ck\T:9# :H񣜌 :w)Ps :@| i:VoEq|:OӚUq:h)YS:ss':ss$ :b1p:d4K:G;9;;0Y ;m(*w;m(*;m(*R ;D!;v2;5PeD;;L x^ ;;L x^ ;ހ^;@;LF;;~dh ;2 a;u0[Iw;]x ;m6sU ;JS7;J%-j; 1:; B5); B5D; 2u(PR;  ; ;Sىy;{-i;"c;sU;e g;ᝳq ;aPW - ; 6; ;DžI&;ʛ\ ;/~ ;dAy ;-Hcj;%-; #kZ;xR ; ¿MY; ¿MYL;!vJd;!~ ;!!+ ^;!9I;"(Of1 ;"(Of1;#Uݍc;#q ( ;%ŽR> ;&QՖV;&'^k ;&U!;'I\ ;'W@; ;'B~N;(zht;) ;-6~O;.ޕPJ;.Iq ;1N͘;2l*:s;2l*:;3 4;4Y7WR ;4cpL;5N;6g ;6Q˖;8q@ ;:C3;:p};:f ;;lXǔH 8;;lXǔH , ;;lXǔH ;;vX ;;m;/:[ ;@@f;AqyP;A~;B ˬ 9 ;B ˬ v ;Bf@$;F3v#;GmZ ;GI  ;Hf{K: ;I= m;JЧVC;KknI@ ;Kň q;M;$)uF2;M)/iFt;M)/iF a;ObU4 ^;ObU4;P HQ;Qc\;R ,;R ,;R ,K;SoL;SoK ;Sң;T`;UW ;V>nG[;V>nG[;WwbuH $;WJ;t $0;Xc+|;X< ;YeW* ;Z)ٻňK;[B͖\ ;\VyN%;] 1*Ki;^ACe ;^r0 j;_*Z ;_a)>Z ;_4 C ;_G:TL;aG- ;aM(f;bM4#UilL<;bdQEn ;b $;cu؀F;c#%TM_;eJTHY;g,S;k6V , ;m.[>s;m.[> ;n$ݯr;oe c ;oU { l;q -{;q - ;q - ;rdQpN;rDE()(R ;r4< ;r6av ;sj?;tT^jp;v)| ;vp"zsm;wFn[;wރJ*;z_]? ;z 5 ;}#0 ;} j; ;DUB]Y;\}ǰ ;9 ;djY$8 2;djY$8 ;~RgK|;~Rg; 9t;*};Pq ;Pq;rH";rHb;d. \;|1j;+>P ;Mr5dZ;gfk;.QRRj;7 m;; R;" j ;*0r9;7;VN0;Y] K 0;L8*;^7 ;%+`~;=hPQ;=hP;@Su ;u)X;S ;<T;1 ,* ;;R]/i;h^;Xx ;3 ;3 ;TB&;TB:;I0F#6?;e<| ,;Q]1 ;Q]1;Q]1 e;(6 5;\K]B i; ڄ ; ڄ;Y%~;{s;S ;[g#ت ;04>"~;u}"\;X9# ;N|;y;[` ;[KPY;oJ ;*C! l;-sb ;?.t;};43;Ri[;nm;vkӸ~{;AYZ ;s_H;s_H ;>I|;>I|;Ƿ,?;xr@lY;xr@l ;ɨP%h ;锾4;'? ;\; ;\; ;;h;ch5 \;zG#^K;eW6;= 1V;D7 c ;oR );ђ(g;R ;iYf ; [w";u>*;`V^`;փ< ;ײ{d,8;NZ ;طKl-;لξ}j;لξ} ;M  ;M ;M e;>;*F#7F # ; )H; )H;K h_ ;ޡ1"!f;ە@;#,w ;ߐֱ* ;3 e;J;J ;Jd ;JP;yF=V ;{w\y=;笗 v c; :Ѣ;E'& ;?L !;Ո;]|{B$;o`S;_"%M #;dn ;OIt;`eϟ ;Ckv7K?; bt;¼?t ;Z* ; A;xP", ;ɠ7) ;-i[ i ; C;yC ;k|Q0?;N`;į5;į5;=ҧXr);x8C;%a6<M]Ap <,<S0<S0 <Bra<Qc<Q \<g <[ <D(P<cİ< yxL< FC-!K<DᓷCI<Dᓷ< <q3Gdd<CD<bN<N"r<L ?<j-$׿</;F<<D3<fU<6KmX<6KmZ <6Km <_* <8p <̦e $<̦e <Q#SIU<Q#SI/<Q#SI<Q#SI<HU-Y<Pk/< <Us<Uh<C{ <2^ ƿ<.JWr <0GxM?J<0GxMj1<0I ^a<0 ,f<12_fD <1<ΖӾ<1kc/L<2bkgb<3LR{ <38f+ s<37I<$<4̚КQ<4̚К<6!`d( <7;| <8*ea<;7NyȐC <<0gG <=|Jn<> t({ <> t({] <>R& R83f <|?@ $<|?@jR<|?@ (<|?@ <}\| <}\ <}/<~&4?? X) #)<7uR !<$Wa= a!=#&=6]  =& 'm5=~ƒH =z@=&9S =G5=G5 =;w =^J),9 #=E=Es=eN/ =Ӭ<"wv4 = c_Kpk = )ږI "= 93`K= m_2 = $q'= ˘= 7 = ij = Ob%= %a=mLo5=mLo5K =@XG =@ߐR=D&i =ڠC( =d0t3 e =}| =}| =}| =J^Z] =]![=>Hg(?=SÄ8*L =SÄ8* =SÄ8*_=Uv =e@k== a== =}:RC=ta=(NF =]O= =yTIJqN=9xI =1 =[L=#TA& =#l-C =$DbEn =%&=%) ?=%RA=&6ND='\0 UL='>Ѿ='Xss=(RYR =)N}`Z=+E  m =+,f=+(d n =,Z.d/s=>dŒ =>J>=?>`=?ƼqAf=?).G/=?).G/U=@f =@@,{oߺ=@gN?=@w$ s =D;ĵ=Eo =E?ޕg=FJ=GGLOuDZ =G =HVV9\j=H el;=I  N=Ic7=JvS] =KccQo*WK=KOHos=K v=Lo1ﮒ a=ML;NRO=MWk=NO<\ =O5J> =P;=QRR+h=Q?}=RY=R JS=SF =Sj? =U>fs=UqjI* =Vټ> =W^}!=XB4iv&=XgmCQ=X%}0=Xyz =YS`=[!(e֌?3=[!(e֌ =[<^ e=[Gvo]=\fl|m[=\fl|m=\i`k` 9=\i`k` (=\i`k`?=]%j`=]@29& =^׊p6=^׊p6]=^׊p6 =^>p=_-W/RIR=_-W/RI=_JD=_g4yB=_AN 4=_AN =`.bK>3{=a?? =bL=mΊJu =mѯe"=nA \=n@n=o1F =p*bc =p*bc t=q[LR=q^z9=qݬfs=r`ͧU=s U-`=s U-C=uN)R;[ =vbVRt=w6՛K,=w6՛=w6՛]=zP)=z={(ӟ"K={usL=|B$;d =|Fi a =~!cOg=M-@ =6eSA =.̢ \= !=C3  =V3j 6=V3js(=^fIb?=KDe=KDe=[8 =g =_^A,[=CށnA=cVY=~^|H=6(@){ =Cm+[=kSF=e3@(=e3@ =g =Ih{=PY=&^R =RU"E  =RU"E  =2acY =<&=پ=پ=پ=1GZ=|XqJ=t=`u=;| .= U:v=~f=~f=͎I s=5g=ǥM8=A =ѨV2]Z=j8ٹ=G.V#=G.V=ڈk ,=H=Ծfj M=[(wknQ =[(wknD=[(wkn=֫Go^ =@3, ^=OY=؄JɄ =أb -=q  =<*θ?'=۬j`Ftk =FžC!=Fž=Fž= Լ=w =U$T_ = 6p = 6p a=z>"t=ߐ =ߐ =îUt=îUt =îUtD= -V=DK=Rжm \= G!C)= G!C= n =Clu=#~Q =cjdN ==x s=P:=P: =%V=,3 =,3 =뙻5v =~r?= E!@?= E!@ (=(-=;@j=@bj=C =tv/b= s=vbC=1C^X =zb^=>0 (=9j={]@ =X [+=Pk=s;%'t l=5n*S=b!F ,=h˞ =Y(=H; t=X~{R=u#o=X* >>  !>qN #>S v>X;>Q`[ >8>+ >d > d> 5j > 3k > \7l1 i > \7l1> Ōys8> 7  '>s>#6>#># >#>?9;Fd>?>G^e>G^e[>dn >c>[\7βp>ogF{>, q]>s>P >Η`d'>"> >cv[ i>،]>q<>q<>>q<Y >^4>a#ZRMR$>oV>&>$w3 \>ͳ > )>!r|>!r|>" K>$ޫ >$ޫZ>$b9 >&Wo >&O=ߦE>&v >&ŝ >'`1gg->(A/: (*>(A/:*>(A/: i>(A/:>(A/: >(Qw ^ >(|@;>)+JR>)+Jd>)+J>){R >*r7 a>*l >*lU>-UA >-UA>-q#y >.]Ec >/ 䴩>/#xQ>/92 aE >0Z9N>0Z9N >1!=>2Jӓ >3^4r j>34GaV >45 6 >4Y%>4 >4 >54|>6mW; >7i?g>7i?g >8/z2>:K19o>: ZN >< >=nn~^/ >=V.>>d5>?=>? !>? m>@Wy| >A =p>BUhI >C6d>C6>Cc~V>DI.x5L>D=\>E >Et>F©4 >G{ӈY >H;76 >ITL >IzA + >JL.|?>JkLtq>Jgv>B>J7@>Kp|^ .>L쩱Ͻ m>M$YD>Mc 3 >NQ>OB#>P^_}E >Spfɷj>T >TQz07 >U% >V0i~ŊL>XF Y)f >Xꖶ">Y?b\>\ R,κ>\+π ,>\08EIz >\08EIzR>\T >_Qvj{ >_d  >` 6c$9>` 6c>`B"&>`m/1@v >ah >aqxy@>av/ # >axEzt >c-&< ">eCIΫj >f$R&>f$K>gA{S>gO!i>h6EzY>iՑ~H>j $D{5 !>j;8N Z>jRas>j$Wg >k S >l>!{ L >l>!{ >mT-. a>mT-. >n%nZ Q>ra+ >ra+| >ra+ $>rIѦ~4>ro -M>s2֜>sCǒ7 >s{S",B>tD >x[/>x[] >x[ >x[D >x Oa>x}>xνeB >x#>yYDu2>{oCm?>{AQ}>{pg>{?>}Oп>}n">}C>2ԍ>j:& z% - >>J><Y>."s>x c>=h 4>w>Q$M>Q>Hz>u3A\>u3A\>(2K>~A>34+! :>@;UR>T׮WR> a˖Q >C >O0Þ9 >7R>: c> +-[> +->+2>3mz۴>ÞU/f>Rq}!f>~s:y~>·bD[%>oR >]]>]]>$0 >%q/d>F<L>o1 (> \ i>>h~ >08 ,6>08 >08 >08 $>f8! >#>{& *>ݣ>zX>0Eվz - >~S>~1>~Q>"F`>]- >&Rd >&R>x89QX >I>( ;c_! i>?\j>=kjs >k4+j>/C=7>u >u>F79| >K5~S >ܖ%# >£S8y>z >[> o>Zzazt>c c>QM3 e>oou  >a~->O)"?5>̩R$ds>̩R$d >T[R>ϕEulC>ϕEul>ϕEul>e5 >e5 D>!6K[>ќSj>j2fSt>&B!(>pWD>pW>ԧs>ש%4; >ש%4;>ߢ^(.>Rm(> v">ĴTD>iō Y >V m >ܘb> ųbY>ރ7K7>ޛޛM4>ϲk|>H㉔[ >#ޢ >׏U >x+z9A >WY>9m >lO2 >UZ>#, >,iOZK>2[v >$ vZ->$ va>{ >N:Q >zѕ@s> O h>돐B>(D>ϝQ6>][F -o>][F >k4f>HM> ="V>5QxW>N̿>[}$ #>2^y%>mq>/\Β5>>3.>lr>q>=Z>l%5>ȈL >CeM+> ]u*>p ">=)>Em B>^{Jf>! y; >vDkY>*nuzv?>^?aĠ ?{w>ݧdw?B?>?iu^?sc?sc?sc ? HiӻG1? {K? {? 5kC ? @  g? qnU? PR,#? a`N? D2V?r?/ n ?1X?f-v ?VA`?&Q?|ut9s?Ks?Hn] ? uFS?(yV ?"C?Q5~ ?.9C[?8??$`$?: < ?@!2c\?2#h9?J/D?[ϊR?b?b< ?8d36S ?Te?%c- ?E$ ?",JdL?"LKk?"LKk?#QU, ?# @?# @]?# @R?&xem g ?&xem "?(nSB =?(P7?(PU'?(PL?(}4&% ?(a]  ?)<?*8 ]f[ ?+7?,8 "?-3$]??-eAS ?-7JWQ?-eI?1T?1*,z??1[aX?1jk?1N, ?3f8F -?4NZ0} g ?4V?8'F"?9yB , ?;??<_&g?<}Qi3?= v?>?b/?>?b/?@ ?A04?AM] n?A'L ;?CKK%?CKK?C:ɶ?DS3 ?E0 ?E0K?Gi}_ ?Hց t?Id\ #?JFAߥ ,?JFAߥ ?Jc;a?Jc;?KN2d?K0 x?K?M_{?<Q?MӋ3??NW@>S?N3l"?Nb\- s?Oe?Oe?O9?P R?P)YBNj ?Qڔ 3*?Q$a?R)^*"?R3evsy ?RtEZv ?SkhmCv?U;t9f (?U|ps?VR-I?Zx?[r]K?\IRi?] { ,?^GF ?^qϬ?`/j?av3C!?a/Aј5v?aq;o?bL@X?cRc  ?eplt?fd ?g/^ $ ?h$ҞU{?hh*N ?idY?idZ ?i!bV^j?i ?iQL)?jFJ8q ?kãx |?lu$~pr??lu$~pr?lm , ?l= ,?nCr'x4?n[{J[?nuO?nmY?q O ?sp (?spz?sp: ?sp ,?uhNq b?wpCtGt?wuDM?xOz ?xUzI{b{?xjZ?zaR ?z+?z+?z+?z+?z+ ?|N?|/?|R ?|C a ?}W&?}) k?}e ?}a/(,?~71<?~%v dZ?~%v dZ?~/bN e?~/bN?~ ?L0 ?r|`?J`go ?Ethb' ?a5~g  ?j5?j??R ?gIY?v ? 9ɴ[?~ ?3.lنv?; j3?ԭ=U?B&YS?Ǭ" ?-NL?-NLS?|_|Y?\噿.?\噿?\噿? _?'TĎ a ?_/?c?(_I ?Q &?C?CY ?EK?m:pu?j? ?&O?=,ǧ 5 ?x$R(?x$#?#~L?KK ?6?n+?N X?>N?>?H?5wR? on? oZh?`QMz ? 0K?\G!U0?1k?fi?D̿: ?}gn ?ytʓ?ytʓ?2aKN?6?Ws:R?R|?^+<?k7&?c]4?[s.R?[s. ?\!,s2?ݳK ?}g}?U SW ?U SW?b뒸b%?UV/~?70%3?70%3S?Ao, ?w 7b a?yh0$?Fxxi?Fxx ?3*{v ?w5|": ? V5 ?5ž)m|? +? &?4K?]шj?_EaLt?9` ?c\[%? RqK?~Au?j?\oh{$?č36^s?ę?D?剶S?ƼFK:/?ݧ }?]R't?+gj?vdz ?ʎ? sK?Q?pjFv m ?pjFvt ?tc?tc ?y-t \?t?̲?[ z?[* ?O ?* ?A1K?R`b ?:+ ?n >?ҥY]?Jt  ?+NR ?<8>?s,?5K?PV?E] ?`'3 8?`'3 "?`'3?RNd`?RNd`$?K(?DKj:?ps?Q\ ?)jj?}?-?ԷGRC?{t? ?EN? K+?%iGC?-GmHU?冠4?屸/qkZ ?1P ? ?謲o?g?\L?삷j ?GSpAO?by?!l%?-Is 9?)"?E4R?7* i ?Ȕ^b?a#?a#?a#?Ea[? ?t< v?*|G ?￯?&?&?+@R ?/zcp+?EV0]?s?*`_?Q`ԧ} ?Y?h?Y?h(?i6?c08 ?̸K?̸K$?̸K?=t?pF?@c !@ I@Q4 %@=Q@׭H@4=$>Lk@6!M $ @I%G @6bW,@" fQ @LȜ @p @p@k@k @k@ bJN @ gXR@ gXK@ ?Q@ /HZ @ :JIgC (@ :C@ :C@ LO@5rUB@ءrxM@8}X*z s@no:@♸GY] @♸GY@♸GY@틊" @틊"@틊" $ @틊" @f@&k@qH @$@7IS@YL@Iv>j@Iv>s@C1E e@4צ@߆ v@}!7@uJJY @T@T @T@bH+vK@29 i@'] @ ~nG@!98~#!@!98~ @!98~N @!>@!l , @!T@$1nJa@%B4@&{:&[@'xOv@'} K7d@'p ;@'` @)Y@). m @,5AL@,n=e @0"dT@23M@2Řb @3"pt@41?@4KKf @8CM| @8:$N@94(8 @:. @:+w@; U" @=Qʵ 5@=|`\E@>r739@?.(DG@?.(DG@@] @@] @AW˂ "@A7 ( @AhsU?@F.f #@G9.ȗ @G9.ȗ@G9.ȗ'@H:t@Ho!v@IE@JppO@KJwybt @KT RR @LvdY@M0 @@N =@N+XH~ @O0Mʴ{@P  @RϽ&@Rݝ-L# @TJ @V1nѬZv@X l.@Y*h @Y*h (@[j @\Dڼ!f@`v{R@`v{@`pp@`"$P5@` 5 @aU~ @bF+ WD@eFx m@f.׺Pj@gUʻ@g   @gF%d @h/P| @id@j*w6@mhR|(@nPUmH@ou17Pt1 (@p ; $@pZ @qύ7@q՗m@qW0|}D @svS , @uQ)@uK]@w6e @wVCV`k@xq@yNN j@yt@{t V@|JZ"{@|~@~iE{{n=@v^ @3 @U_ @2 @~LHR ,@MPQ@1-@@|JO7o@|JO7oQ@|JO7o@5E]s@l T@l T {@ݒ$ ,@H溁PK@:ÌN9@NAJ@ź@ 4?@ 4@rv(@'Ӓ:=@'Ӓ:f @'Ӓ:@1̕*V(@1̕* @1̕*d@"R@5(@5(j@Hu:I{@~D2 @8|4 @%pp@V@ֿ @qg @b,v@b,vR@U!@U!S@@{\ @,A@6@|G, @:[K@@ύ@v@@%f+R@ } N j@'̀Gs@5y@ @uSa @uSR@0ؑU s @b{@FTcV@mmd0U@o^Ed@|V@X=@03r @03rR@LC. @kú@0D8iZ @@ CK @`> P @@5@I]@5ƒa @񆋩S#@d \]@d ,(@d @ୡN@#|!% @#|!%t@t?~9@t?~d @''җq s@4s`@Tɨ:` ,@P [`R@_P #@\~]R@!7@hY# g@G茒@Bp< @Š+L< @Ĭq pU@p< -9 @A @GF}v @V)w @p^?@x(M5K@ j@ >m'@')r+d@R|k@ʸ[@]cR@5t@ˉg @iC@$tl @͕Hq@;j  i @;j  @·}M @Љh}s@t&`vL@"d@M0:k !@cfg@cfg@/J@/J @Ծ_^\Y@Ծ_^\ @ ~( @6D?@å/@)Es@)E@)Et @e_#@q^`^-N*@,<7 9@El R@жҙd@߭oӖ a@RӒ i@XV2vjR@XV2v #@XV2vs@eS@ea@F @bp @$@? @_o@ݓ~Iw @{R8+ @{R8+@=m@3{8+Y@I ATj;=x A?](AROXA4n]Ap AQPĦEZAQPĦEA>SA|WkA0SMd sAv:f AAMW(, A|mJeAEA 4kA p ? A p  (A H4A >ߺZA lh A O (AfP WAvr66j AB$K Am-z AK[*KbAK[*KjqAK[*K ,A'A~d AT=IRAYuA{b$A{rA{Y;A{9A{ A{ A̘.V $AjVh AD"AAA_WjAsh Aܗ:4?A(Nj(Y A)2fvjA)2fvA+Pt A-]CgA.FeB A/LWѦA0݃pnYA0DA1$̵RA3@,$P A46ia3~ A40' A6GmRA6MvqwA7UQa A76zA76z A8;M ZA8;M iA92*W~$A9mkQS#A9a A9f\qA<[&YA=ܷ >] A=A>"?A?h(=>A@Ɣ.JYA@Ɣ.JAB_I a AB_IsAD aW ADC-fRAEGO}tAEASAF\b%m AGAq3D ? AJڎ{AJڎ{AK)[AK3G? AKZE_ ;ANz3 AN%6 AOYO APdAPAQKP"AQKPAQKPLAQq/OYAT~AV}/dm eAV?;>mY -AWUAX(fZAX,PJ8-AX,PJ8AYLR + AY|6? 'AY|6?t AY|6? AZ95{c AZlt ,A\jhNA],RQA^\A^\QA`UPAa^vvAa^vj AaajI)Ab_i2LAccR[]AdK+BQ AetAetAfS Ai=9 Ai 7xZAk] & Ak4 Aldm*:Al>jAlXp3+W 9All ! AlKAmȽAn Ap ;o|&Ap% k Ap% k mAqmTAqet# Aq͗V RAs-2AtSx AuB+?Au,QAvD|#Avj[kU Aw5'`AyJ||AzYߞG4A{vpNYA}h0A}k:3A~3tA~JUA~ko.W ASH aA[7 VAc; cAc; kA*,:krAA oatA\B A Ǡf=|A Ǡf=A>%:A$Aiկ OAiկ 8AdԵ A/h KASN47 AǞA(A(AA cw  A11? A= iAdqe9 aA Ak\zA+e A SAD A&DA&A6.uo AB;?CAq AOƇAOƇ ,A $A- lAb U AZa Ap Ⱦ AH^YA'B AM|cA7adWA7ad]-A?_A>Sa $AAJ[ AY&k8  AD# A@;HWDA4|گvAWHWRA"d?AaA{XAS&UAS&U$A9 v#A9 $AF~[SAͺAC~G A.Ǭ AV> # Aь@ aAь@ A-#!.fA[ 9RUA[ 9 A[ 9A[ 9QAǹpA.Au*m Au*m A'[G i A,#8A[CsA.kM^m A.kM^msA.kM^m (Ad횯{AvQAfl?Ah A1GAdNAَ]qLAwttAwttA$%g7 (A}8, #A®m~E A]\tATȠc]ATȠcAq2[S?AÅ'" A2%jfRA=LK8A=LK8+A=LK8f A6h.$.A6h.LA6h.eA6h.A6h.SAqT: A,L-A67НnA)Aa, #A9 aAWGNA͞ U(?AW#nGAW#nAb\&nI AЕê0GAЕê0A12kN AҸpj Axy AұZCjA慨A/2Fd %AWvSApwZA&5JYApYA?LAA:A9M%A(Xkj $Aهv%4. Ar~A_KA, = )A, = -AFKR $Ap{n|2Am>~T Af "A34 AgdxA~ڢ*+UAܰfAo߶6 AAxhvAm . AOJA汣ne? ATBA} iA.QA 47 SAy' LAy' AB@91B&Wd B&WRBWVɉBdcQB֖+!B|IB Bk B BdhBfTBD^ BNAͩ BpPKAB;sA B B'B ) ( B )BA@ Ba>M iB rlB!nϦ굓 B!iT B"m6 B"m6 $B">KB#SPZB$c6 cB$F= B%klϜB&LJa< B&OB( B'RB(MBr "B(ӹ/B)_ $%B)_ ,B+@PB+]"W3yB, P B, P B, P B0@nB0Z d]B0Z d B0Z dB1` B2tJP B21 B6ҳQB6,ye 3B7 eB9ẁ @B9ẁR8B9ẁ aB:0$B:0B;}x| B;:B=gB8o #LB=tL B=v+B?vˈ9B?vˈ B?3<j[ B?3<j[: BA,թ LBAymSBCZao \BCZaoBC֗ԩ 9BC֗ԩL,BC֗ԩSBDf kBER2 BHWIcGat BHA;_i BH嫰rSBK\Up+j.BK\Up+ BN2J aBN{>c BO4S=#BQI8 BRjLBSyd=]BSyd=$BSyd=BTA)Z BTA) BU)d9sBU)d9BUV,UBW|& BXjD4BXy9}% BYpBZ ݙ BZeB[On sB[i B\t>Ȭc_SB]z|\TjB^)2BaDBb(?O BbM#߸ BbIBcV: BctԍRBd/D BdñB_9jBemhBe&gv BfF} BffLBg5BhVDOBBhw%i BjH oFdBj\] aBj.OX rBkqr Bkqr Bm*dBnIBnIBnA] Bna@KBojqk,)BovBY {Bp*" BpPP? Bp׽ aBsܜD~R#Bu=6r*BuDGW]QBxH qBxH qRBxm^5)\BxM0V.ByVbcBzDbJ BzetbBzzsCtB| &o١ # B| ZG| lB|e  B|ۓպ B}wk*B}wkB~lRB~->BaU*v'B) Bj@lB]XSBE-TsnBq$>,BfIB$ ,B$)B$)sBQtB9zlmB+B1t%B"k@BTo5^PBb绕nB,q^v Bނd $BtjBB BgfTBgfT (BM6[Bu% BBK BEG %B,ZBz# cB5K BLJCwB-*CBlB|Bӵ ? ,B[O-n BD諾]/B$\)FBe+ ,B4 Bn;s Bn;B6B6EB B90DCB_`L BhXsBt:%lBNb>O5BiM2<LBaERBjBْjYBW8BH|I֠ \BH|I֠ BZ&QBuqK0B3M/ B]SR B:j, B^aB=j4BɫB& P Bʕy+{ Be_e$KR Bˈ@2NBMhB2BY4*cB8 ^ BrwhBHBB\B*Hk8j B6;?P?Bk#:B׾ , iBN" B5 :&QBNyY Bc+iGtjBہ  SBۡ.V8B.H Bz4?iB~J$ jBX35W4YB9R> Bmr)Bn4RBʳK B"uX&B㥛/u)s Bɮ BnQ"@<0BnQ"@<BYuQ Br B =0MRLBxx B Jw<B !%B< )&U Bu.H2Bu.HBLA.Pg Bb1x$Bb1xPB4h$B4B.fk rR B:AjhlBv jBM4'?ABVcoB ABŒDeRC?SSC?ۡJ2C?_R D,CAe~sKCAe~sCAe~sCAvCB3h[CC?9 CD:%5# CD:%5#CDPMqCDi CGϔi.{ CG@ .CH0/aCIЕIQ i CKIyCKW0B#CK+kCL)M CLQz1CL~$ CNjCO[DFCOޜ(˿ a%COޜ(˿?CO4Ư CQVuuCSXh<CT!YjCT!Y CT!Ys CTwC.. CUEOSCUV]D(|CU"SCU"CU @ #CU'ԶCW(m CXsCY$yZ CZ,n }CZ]2/jC]lyC^jlDCaI;SCb Cf,CfݱACkȚþ?Cl7 G Cm-Fe9t? CnE6j{ Co2{gCp%J~ ,lCp%J~ a"Cp6c?CtiYCuJ_*QCu_dI6+Cw"Ѵ Cw&[Cw޹[mCwD Cw|Cx.CxY`ͭCx_Z\ ,Cz&! c C|k7 OC|k7 1C|]e C|Oٵ3 e C|Oٵ3 C}N^ܗqC}APC' C' C' cCu CW^CaRC$K6C|  Cj^ Cj^ ( C 8PDC?C<%{-6C {s C { (CpAB CF,JCiH:CΉKC;v CaWd,CaWCS\C-CS\CCS\CSC>m.*CC>m.*C5sEC` 4CKm s C\P aC[SC[C|K CuCm- C=6C=QCmZFC""œL$C""œC""œC1,=1C1,=11C1,=1 (C[tC[sC2**C CE >9BdC)38Cr[ mCC.HC?fdC_ Cy C1 q?C)G'FC2鐟 C=UKLj>C=UKL (CCRCCRC|sC|?Ce7*sCe7*NCéOC,d Cb zCutb4CG;CHCPCnCNCMw$N 2CXp/ t<CXp/ CXp/ Y CRRXjCt2 $CYC5¼CL=jj CL=j Cڭڔ2Cڭڔ2]TCڭڔ2Cڭڔ2 C$0CK|>۞Gs CK|>۞GC ۴Cy8Cr `PCFCSCjC CjCCQjʰC^+ 6C^+ 6:Crn[vCu C兡K9C+GBC $ CfGC NEC'MW$C|NC6`C6`RCBfCyC+Cݏ;%"CB_DCƘ۸:Cc -CcCc C1 IF +C1 IFn C1 IF \ CX{I Cș9հ>& CDd{ Ct1Rl?C;[t: C;?ߏD Cau?C,qA$C{n $C{n C 9CFէ7CΕ:DCANje7iCC?#CЛe3 C&rSCѼÁw0vCIH =CgǜUBCCFZ CԖ8ʓC:l CֈCַ@T! CZYC^`SC^`S C^`S Cۧ,عCۧ,عdCۧ,عbCۧ,ع0Cۧ,عC }gC(qCۇ)+C֏$UC C@J!WC݋TGR C5pD~5CC¶XCEňC~MC@isCNc.qCU CUC浈 C ]9 C ]9CQgrCccC,N C a"1Ci-CV"SCV"RCV"KwCV"QCp C9 C쾛:s C~ʻC|ātYCDkCRG CbI C^ g C] CR C :M% C$= C4{SC\ CIyV C$fW]C3b  CCaD#x<~D#x<U@D#x<K!D$(jbRD&jD#hDY tDw|'DKdԉD DSYM D0[(tD0E$DaAd|D#S?MD_p}Q DH DB63DїBDї D-*,DyaZ4D^+D >QD >Q D >QD u[# D D (p |D 4㸉 D 9PVD>` DITj( 2DjaRD CE D+Ћ$X D5Hx &DΚ@N!K D : D9R D4J D4J \DsH &DsH  DlDkRZRD~gD D;+% Doq0aDmJ ED?U7D_I,DD0@d!DLzh#EDW1&M  D^GD Gƴ D"-l D$ 0[ D&?!q~[D'$‚@ ^D(T6FD*3˜W)D*yD, jdD-eΨ!D.n2D.̸<}QRD0@$j?D03^I\ND1}^D2:[D2 ΀D39yED39yE D39yE D4eJND5a pd D5 >?0D5 >?0D7a)pBD9rΏ% D91^D9o #D:@D:@-D;A@.B D;A@. D_8vDýz_D'Eɾ D^"Dɲ5K`װR DʒaD?b}YDT $D,Eh *D̸x,YDwMCD͟:|$Dkf6jWD D DϿqK D3ڰb DЀvc D7\] D04^RDVs? D?8s D/;KDٱ)o DgZ(jJ DڝTRYT DZ} D܆ugq D=>Dݥn cD[ $ D[ DC?c(Dߋ3\DI0 Do?DN#hSD3{-Z DF{,e ,%DF{,e DF{,e DxveRD意DDq)m DK D8qlDU!D虍Dz!,;DPTy DS+K>DYl DK| aD]o_D:@=Dxof)Dg7A( Don'!D(q;Do ێ Do ێD(/avSD(/ava D(/avLD[Np] D$C+[DSDH:DckV`DHwkE}>E}>|E}>tED^} (E ..E4E)՗Q%E)՗E)՗DE)՗E ,EfފE}gfCE}gfU2E}gfE AW.E z E D|E: )+ :EY.mEzG $ENs3EⰟ EW ErREfɚj|Ey9 EkޯE~ , E7èlREv*KE F vE{r EJ >E^M 4Ew UEU܏*E R iE oEATaE|i E—R'E_̡\b%E_̡\bOE_̡\bEܘf Ea*STEa*ST ESkE=TE 7Qav E!wi E#%{jUHE#jx E$!kE%jFRj E%?#E&~'Or E(N W aE(m[ME(~E4|E)>> ]E*Q&KvE++xI$ E+盧 E,(MJ2E-BE- &iR%E/ hE/(/6N E023E1wau. >7E1wau. "E1wau.E2}( |E3P뷳q E4McX[E56roFE56robE6P(E7;F3?>E8RRw$ E9io E9 E9덈 +E: /]q #E:  ժj;E:V)E;O=3 $E;E<E< E=vIE?`E@Uc}jE@(v EAF EDeiZ] EFh/jEHQ* EHQ* \ EKzA $ELOƫ;ELL EL#"S_EML`(sEO /EO &EQZ aEQZ 2ESeSES'RESCM5ET!E璥ET $EW <"EWPt EX˱~ EXu-j iEXu-jj EXu-j aEYdY5v EYwRj E[.X/ E[Ũv ,'E[Ũv$E[ŨvE[ŨvE\1{E\PKX!E^]SE_R]DgE`u`_0 i%E`u`_0 Eb,[&C Ec ٤?Ed8ˋn5&Ed(} Ed(} Ed(} EdzZ Ee&K EeϾEh" \_Eh" EjMVh? Ejr EjU Ej} JQx Ek&ş CEn){juEnoKnX Eoi^o"EpI,kEq#/NF$Eq#/NFEq#/NFEqM} ErdEEErO EsQEsǿ) )Etcfl`Ets BEts Ete*Ete*Ev5 Evm"?EvQB aExXtExʻsExʻE{eŦ7E{L E|IE|IE|3~i*E|2RE}1jE}1 ( EX7E,8Eӟ];?E|R E%Jsj E ESiESiEgq  E:y  EKX|E/0 ; EXxgEXxgEv}K%%EM,m E.?EyE.?E1E.?E E}>Yv E}>YEpe$ E>e* CEk- Eos~E<(9cE| E[{RE̎ EEoCq dE~KKEMGEjKE4]qMEP; Et/EC2wb E}A tE]o E2 bEWfe?EGt;EIOEo&2z |Eo&2z E&V`dEfPZEf0Ef!EfEd&- E; E)EkEIF@E'/RE'/R8E'/RE'/RE[C?jE[C?E[C?E`ٕ9dEi0D.A Ei0D.A s Eǘ LE|I ?Eȭ+iEȭ+"E;lEfpư iE h EEQ EϝHoE?/dE} KE7ZGCE3E+|sE!2EG_ZK$EG_ZEG_ZREԜ_eD: Etfϴ sEG%(<?EG%(<E֭Ӆ. E6DD >Ed;@G pE֓}-CEځn E^| E۞i睤E|bmE܄z nE\` E"yxEEb{ E:EiL} ! E"iEFMzV EFMzV sExisE칂:%- %E谳Ecvb %E$" eE@j>RwE@j>?DE@j> EjEP &E~d# ETvEdWE-ໃ̻ E]h}7 E1jENR>RE}VEiʀfEX&O]Ehpxf EhpxfEb EbE +E*< EQO?EE;0 Ecm$ E"XEaeEa0 " &Ea0 " E]4 ]E Ǔ6EfcgEX-gE4m iPE4m AE4m (6E4mjE4m ESrH{EۥiNEEOY|EOY ( EOYE7J7 r#E5VE7s;fk FZ8≸,FWjiF4ذ QFc,F"]r^F"]r^FrFnS+W FnS+WF n#S| F h0[F }SMj F }SM?F AR} =F ױQ$F 8zF<5R F("wBFQuFPF9FcSFcPFcFK~em FN-×F]]7FEB(F!` F_-O F_-OVF_-OF_-O0F܎ǦFW FsH>f5 FJ' Fk} FW8ȓF>2 Ft4 oF!A>1F!A>1[F"MwF"c$?9 F"c$?9+F#!E+C F$Sj܈DIF$Sj܈F$Sj܈F'f:0 F(V! 3#YF(ց\SF(ց\LF(ց\F*B &F*B "F*B  F+/јغ \F+1F,KF,KF-HpxuvF.nF/xP1QF1:ZW F1CE2 F2K̓ F25F3{KF6s F7.*x F7MPF7]N @RF9FGBx# FH`FHGګ FIqW FIχK]FIiـaFIiـFKd4WFKj<D FK<FLhx5 tFPkőgFPymPdFP4> ~FR(FR FRKFS2D)FU7zB45FUK+FX_<XKFY,aa˖FYx?'3FZGJ F\Qv#F]B^: + F]xp= F^ɆF^m F`G\e5 Fa( -Fa۬i>FdaHFe#D3 Fgԯ Fg3Fg3Fg3Fj sFj B \%Fk-8ޒ FkiFlGe"Fn/qFp_O e FqtlfxFr/DX Fr/DX Fr,y|Fr,y|Fr,y|Fs>mRFv50F FvOa FvRFv̨h] Fv̨h Fw=FxOj]rFx~;'EFz6V, F}Ay'RF~eS&SF~e0;6FK9F1K[s?FYP lFDU ,F [d F,IKZF1j'FJBs#FsxN|F. FlTJF#_UFoO=FoO=Fy锝 F8y4fIFhboF}.VFGŞ F5FH'F f@~:F f@~F F/FSjFarVF6Y Fp<65r $FtZޛQF_B( FvןtFvןYF!L F!L FtLFl#YFl#OF ]F@f .F@f F@fF_BF2)FⓥF?F&flR"FiFQ5w@ FȴPF8:F8:FR (Ft- boF#nF ;)F园0 5FE}FlF.]>FƊsFM螻|F;+F;+ FS;dF2%=| \F1C iF2*ֽFU3QF=ɞ ,FS ,FV FKFr4>HTRMF]wR Frê "Fհ=lL"Fհ=l Fs'M nF2b:7PFGF33|*FIKF5F5$ F5$F5$ F/q&$FѧN{F,k8 F7B  F7B F7B FT/Au Fi:ĤfFg[oaF(NF۞dm Fy3eH1 Fy3eH1 F5sa!!FYP+v6F!i FOqI cFt+| F@J` Fp \FXOO-FXOOLFA ]9 |FFF|7s#FH w] hFqTF; qF|Q]F R F]ht)F]h \(F]h F]hb F jF@F@L F@F@SF}4qdFeuFAQFX F9F99bx #G. } G]p⺽~GHuNG0T`QG/4ˀGFN37GC+5~aGE^ G bX*ZSGKG^Z|/SGxJvGI+oO G[,:G 2E G =,E9 G  C;RG KK'pI?G $!D G =Y[Ws0G b։ZG !o #G$ c3( G$ c3(G_B^ ;Grp]#G/fSGeeaj2GeeaE.G!hGnFG]V ^GzkbKGzkbGnq G/?P-GY@}sZGmP%^RG<& $ GPʳ(GY@G3&-Z%GbS#n;GbS#n/GbS#nGbS#nGfGhkUGBl?Q?GpXvGŐn?GgM.jN,GgM.jG߹S G Ch{G!H> WG"l G# s3"G# s3`G#IG$±0[7{G%֘߄ a0G%֘߄ G&.ZtG&}9ez G'D@ZN G(+R#' G(+R#' $G*nhz G+BBɻjv G+ӄv G,F0 G.7 7GV( iG.NQcG.q G.q -G/XksG2&iB G2~f>K G32OJG4x>J86 ]G6vG8·\G9$۫G9ݤG:)M'l -G;8ƊG;8ƊQ G;8ƊG<\YG< SP G<"jG=qXG=sѵiq G=0c G>0GARGBS>@F@GBS>@F GC4h9GCgcGEIOGF}QGHpp?GHs3tsGHvxbGI-l GIGK=Sj GLZ ~ GLOfGLu(sNGMKGM r |GN/ݴ?FGNG+̞ GN{R}%GN{RRGOuCdGOuCZ#GOuC%GOuCR GOuCGP|`A# GQۛ}sGQۛ}kGQۛ} GQ0#( |>GR7%m# GR+\ GS> GS9%Y GUYc rGV D?GWc˴~GXe^\ /GXe^\ ( GXo}~ت GX߾FHGXiȟ GYPZ|GZk}OGZy (GZfTGZBMG^y G_> qѱG_> qѱKG_~W G_0Vk? G`bbg Ga憇GbR#rGcEI6m Gc~/<Gc|PGcl#Geki<- GgW'  Ggpm;DGhj iGhs\WGhs\WGizH 1QGP} cGxuiGm\OGEGyXK GG zG GM9ÆG. G<KGDFۈGar GFbz iG?)Gϗ凹GZ> iG KOQG KOGE"Sl{GI(UGI(U G[  G̑PGOG]Hj G5B> G (rK8G*oG"ԑm< G|5Ff;G|5FG/w cGy [2 GɆԺ #GZosS G<j GRk$G t_@aG t_@9G3RY~G+u@'G7MGÊJ 0QGmGKR9 G٣G"  GG)a |G)a s G)a GƝz GD_]GǦYGj\?GɤUZc G 7YGD tG-FRs , G̝`HYG̽!RG <^MG6ZG6Z G!VGzYG)>QGʸ(GʸsGMOq G{x G{xvGѕN GyJJVGb@ Gs G!?l ,G!?lG%jd3 G>O"vGEr ( GEr G3$b&ZGPMPQG ʾ|c G`FĆ$Gl0>Gߤ$j eQG߮07E GfBf@KGk -`Gk e%Gk?Gk GkG9p G`v 1 GyG'G nlGN#jzGGMag GHjG[U?%G^?6l GڰGt aG.;G G gG!  GΊKC G0`J _G0`JsG0`J?G0`JhGk1 Gd;<Gamn!Gamna Gamn] G.P GE{ cGy^a G똋G K G똋G Gϡ=e9G%Gu jGxkHސr[vH22`pH22`pH22`pH|=PbH;JP9jH ?HGèHGèH65vrH fs H w{[2 H .D+] H .D+] H x sH yt H aTw=H b3v Hu}"."#HؔU HؔHK9 lHW#^?HŌ H_;WH9~DMHR6D dH *r HG=, sH4 a HY@( H%hFHE̖,HmzHHK@jYHM RHO~+ H$?H^hY H.A"j HN[ Hs "H 4Q HmFA H8 H#UHT< sHTw7HTwH!62C- H!>9 H! > !H$.JHH$u>lH%7~zH&7 /H'$ @o H'j  H' H(o ZH(ݲ sH*c\¿ H*c\¿ ( H+$# H,tk;vH,uiN H-2K4CFgH-igRH0kh)s H2 @yXH2[3ow H2uiItH2zpH2M wH37yąD H4Љ*H5z'zy H5P H6Rf (H74${k e0H8 8(H8`sH9?!qH9Q iH:gj:H;`0:[ H=U)#= ]H>UwVZ#H>d# H?1H@%K<HA蜜 HAM2Am%HC$) 6sHC$) 6jHCQݡ HCQݡsHD E HF*«iHFDEHFef% HF . HItjo{HJR4fHKqHOd) HOƨHOjzUMjHP,Y0HQ刐;HR٭L7HSO HSvHT%kv|o HT#/+ cHU:6`fVHXk_? HY` HZ80YH[fPC gH\nH\wFP H\wFP ( H_l!H`$`Eb HatҞ#Ha&Ha'Ha&HZ Ha&HSHce1Q?HdMkh3D HejRRSsHejRRSHeU+:q a HeU+:qjHfy[UNHi@.T/۵{Hi~ˮŘ& Hm aHm! j{^KHn-uZܝ iHnn@8HnY HƝRHƝ HV5IHI{hu Hs HZ?Hs/DF[HMQck7f HڋYHǙHǙH H iH.2C]E,H.2C]E,QH& HH5mPDHzjJH߫H( a{H-$?H3fUkH%"? H<4H sʩH  H8/ H8/ Hq]g$4H8:u% H⁒ Hd~-j Hd~-j HDfZSHOBZ H^qpS@H^qpH#M D H#M YH9?P@vHVRHVRDH†)8H9 tHiXyfHihwx mHihwxHr $$H|@-?H|@- H|@- (HL zHܕADHܕAQIHܕA1HNIf`HiFHVSsğ-HLr H\ˇBHC$& Hd/oHɯ H2VHHm ,H"R Hx+K\H{NxQm a HµR H#J sH&8J0SH=kIfH,TH΢RH |uH |uH/J:v?Hc~"Hɔ9Hs3 H0Z H0ZS HX&? H_&5#Hل= \H<)TY HMxEDHИuDL H_SczHt%X H{Zߘ s HHCHzy mHԃ=Ѣ#HԚYSwHX5H5s H{g\\eH֤A9&H\gH^NH* } HؽMH\r 0H\r ,H\r i Hٸ/H7oEHgIM H~?dQHzWAAHo$jR4HHBR H,cl sRHKm gH^,H"p# H"p# $HGs+ HMSFHs8" HIH=fH/Б &Hڝ wHڝ aHL:DXHw-9Hw-9 Hw-9H"|g jH>I=gHQNvHX<<?H,W';H + H (j H< =+?HAeHk.H1Ө $ H󨤂  Hݴz_ HQ벩 sHvWQHcAQR H +HJ'nRH˴1bH|'H| H]aH]YH}h#H2t¡ jH2t¡ sH2t¡ tHFwxUHFwxU H#[&H,gѭ * HfB:Hב)H)gDHҿbHaDH1%֩ I Ii50 I)IIDIK II UI$}? ILCQ ILCIW IA7^I9ImAqGI Њ~!#I 5ÐI MVA;I t9 I t9I u}I u}I#*QIB'~ IɖYam# Iˏv8 EIˏv8 IdD #Iy)G*U6IÔ fIY!I z3aI( I6j6+ I/64] I]|@ I!;; , IWV  I;yK0NI7RI8n_I8<SI9U  I9du I:BI<(;CI= io8 I=Y5QI?@O IB^N3IB+aaID nRID)IDsIG]Xz.IH@] II@TWII,ny II,nyUII,nyLIJxeIK{-2IMr } IM%s` IOOIQ1 xDIS.w?RIS7Px'IS7PxRIS7PxIS7PxIS"BڇITdIT_"X7<?IT_"X7< ITeHF?IV1\IVEX3E IVQ匿IVJX?#IYNb $ IZ }لIZ }لIZ=#I[2| I[2| I\~GBIY-I\~GBIs'I]}]?I]44s I]44 aI_90OSI_PqOI_ I_ըp IaTcXm?IbM"Id!Ie`xIe`xRIen\If/.=IfWN?Igh) IgXRIgP IR7 LIеY $Iݫq(Iݫq( Ig+m=|IgI/Im#SI*p#I`CINvfWQ= I,ƃQ Iȫ.j}I碪9 $I4U dILAI͈;I) I͈4aAIij9IN &Iu?'IщL?O< IV#jB?IV#jB?IV#jB?IV#jB?I=/|Iq > IՊ/:IfS1ThI=3 I=3 $$I=3 I+jIajINJuI25߈Iٳ-ԟU ;I!rӠIB/aIgXJPC IAۧ% IP?YI᪗)1!}N I& |IX{ (I.9:3kI LUI LUI LUI LUI LU I LUI I?I>cI:B=  IS $ICA< I02:I蛡)[Iꩽn) eI8IS 'U]I5=I5Y I9@u`Iv\y ,AIv\y@Iv\y ()I=I" _ IpFbI'i IDWIeԸLWI9uZUIS az]Iq IwI X eI4YI4Yt I4Y I1 RYI1 R I1 RIϗueLIPe\p &I͝OQ IoI`Ⱗ I-Jr&g~J-MJd Jm0 J0) (JۨmɘJ?p?JJ ;9  JsلU J\Fo J ,JJo1qzJ RK} J UQdlJ Rb 1 J Rb 1Y J S)yJ b p \ J \ /3 J 1@pJY=sW ,JN}J= J"-󏃬KJWq ,JWq JWq Ju[J.O Z KJ.O Z /J.O Z J.O Z iJ- JV)C JV)C J3~:kJs!J֪7eJ/G5I J5H $JhxJgz JRVzJ6|+J, !J@ՌJN=!J ބ?TJ!FsvJ!<1RJ!@ X|J!; J#jISJ#nNJ#kDJ$2J&?Dm?1J&?Dm J& ;J(W9hJ)|9 2J*/<5sJ+/ J+[@ |J+񞘯J,{J.A? J0m!7S J0twS? J1ݾP J1ݾJ17n DJ2odHtJ2odH J2ZEJ35 J4'J4TM J6Ĭa J7!:J7 J8 X#vJ:;Pf@ J:;Pf@J:D[L iJ;! JRJ?d%őJ?d%őJ?]x@J?$r`J?KIM : J@nf2JA^W JA^WJBJj +JB|A4$ JE5/{@JF$>"JF-uJG JG  JG9{B JH a=JI%ۖ-JIa3hN#JJ.A׬JLdλ]JM? cJMfyUJMŽrJN(ܜjJNXW JOT JOkmIBJOkmIJP|\6'DJP* JQ+:lMjJQ{JR2؀BUJS=SCtjJUl)IJUzU]# JYA`JYH/ ,JY~zj J[? J[?J[*J\(.ĩjJ\+k쉆J]ޤ}jJ^_,4\, J_cFEJ_jt.VJ_ J`aPR JaabK Jb@qJb샜f_SJb샜f_Jb샜f_UJb샜f_Jexȝ[Y?JeHzn|Jfl Jf* UJgm|jJh# RJh}¨JjJn}SJk_ Jk_Jk$P#Jk[ aJk$k$PJm+`- $Jn?PIJomC/Jp0* ,JqC 3 $Jqoh<1zZJrɮ0]Js*À Jt5 Jt5JtCYJuh?B JuJХK JuJХLJv uPJvf| cJvvZYJvvZJwC(tJwW1t# JxDUʵ Jy5qvJy87 @J{J۾J{c!?J|p"J2 J|!ϰP&J|!ϰJ}:)"4vJ~f̓ jJቦdOb J}e\ Jɲ J%SK J'R͙ e J'R͙ Jg ^Jj/_?J[ U a Jsj JsjJH$e[JUuNJUu J<ف^]QJOpv JOp Jt]Jz/1 J?w0 J/ nGWsJ6|| JH* JȆcJE$ JqV@SJ5vc}b%JUJCc J J W+JB ^Jֈ1J(lJub J#5 Jh"JS0J2 J /KJ:JfoJfosJm-& a JFP $JPJVJ^J|x ,JXr^i'JjfoJݐ , JݐsJ"ȣ#'JKP7?JդnXyQJk JSYJSQJ55JJbb(% 3J-dSlJ}Ӎ #Jm$ J Ss JĐ%!J/)08J^UJ=;qX JI`(sJJjW JJjW:JĢ~ =JCGZJƶg_tJƷтz {;J*]sHJ*]sHJ^Jˋq7Jˋq7UJu`sJͳg'XNML JΘDJЧrJZɥY ,JZɥYsJџxZNJ1>HJiI k Jm Jm j J-mgsћ Jӎ ( &J("=J*gdJ% Jنg_O Jݭwh@s JPD Jގ|FdzJn mJ߫[gJ߫["HJ߫[ J6;cJ,KksJ,Kk , Jဏ< JW ,J "v,WJ?B[حRJ4 !t!J< JL6 J'" JFJ@ JԖyWJԖy JԖyJ-]oMJ;q|JtMf| J &VNJO巎RJcvJFcEվ +J& !J@a)J@aJzHJO?bmJv0tuJtRJ{ t JC| #-J?< i#J?< ,J?< {J!  JqfE9JqfE9 JtK(Tƒ K*E:K+5"r  lK-%sVK-o K.NK i K06$CCPK06$CCS,K06$CCK5s~_WK6 % l dK7Cv?nK7JK9ZK9I K:gzY iK:gzY -K>s# # K?%$K?5"SK?5" K?5"K? t#K@ bKA]B?dKA `vt KBh# KBkr%KCDڏx7KEUqKE!KF,ģnvKF,ģn KF9 KGj^2KI<} KI<}KI逸L KI逸L KJ;KK$KKWrGtKKe1q|]KL{$KMq"+ lKMu hdaKM DL" KNE rLKO{VKO{T KP?9DKP 3+sKPѾ_#(UKQ[ތ<KQ#s!KRp KR jQmKSW%KS>]KTF- jKTJWYKU>-zKUYn=  KWZmT KY T-gKZ{0 K\Y sK\ʑ=[K]]9/"sK^eDK_r72K_r7jK_2? , K`DK`DdKafjKafj:Kb^QKbPB KdEn'CJKdmмYKe q KedKfчx?Kfe Kg6Xڜ<{vKh>z:Kh>z: $KjHqUXA v Kj5`&C Kj5`&C Kk8DKm 'HE eKmgFKn0+{e Kns\vKn&z>S6Kn&z>Kn1 Kn1sKpIBV sKq(KKqQ1w_KrlA< aKr_E Ks*{5 /Ks*{5 Ks*{5 KtLZZKt :LKuxTDKwg~J3 rKy"g6a4SKyM Kz"xz KzyIKzE"\ Kz[ K{  q K{t K| aTK}w# K~RGDÍ K~RGDÍ $K~m0 K~prUK~ &c iK:G C9 + Kz,ΨLK?e? KzKG * K ~*hK ~*iHK ~*U~K ~*sKKCKi dUKF^K&}(? K.8_GKL>KSfJp KoXl ^K3C\uK`Ѭ$Ka*p8sK`p eK`p i K`p KNBc{| KƧ? KƧ?Kp*K Kz?K,TtKOKCƕ]\SKo~ K{~ K$P6)Kju ?|Kw \ KV%&KiY$ K?*V?K)R)KPgi# K҉b KK|vKBL K*%@?K^ KMtK3m) $ K3m)vK $YCKe Ke iK]oV KK5 (KFUPKn3 iK;ұDC Ky[?*Kx/69 K?jK?2K?K?K UXXmK8N㻺KKjyKmk Kxq6؛K'jhK' 1KgrX% K & K & Kٓ:Kƚ"+4KO?KLe, l KGQRKa7, KZSK42KHr.Kۈ|, KSA KV KդsKHsVZ $6KHsVZKHsVZ |KHsVZ KbPKzLjKe^ K&Qj K8$oKd*8 K?gvKƥKÁw:hKÁw: KÁw:Kr GF, <KmW:K!] h| sKDAKdz}KGKKUtKɌ(Kɭh>RRKɭh>RjKɯbY K.TK7kEغKKhϩ6 K0FʢNK1iqۀ K̲FbK|ņ"KLr Kumn N"KXhJ K$g%KKHK"{K8Z= )K?okKЍĨ KѦF0K7{ K$z,K6 S KR"iE. ,Kԙh K0:؈8 K_`n? Kמ*KeKLN Kid{K戕_tK. lK߅>K0yk K{OmK⨞7/KXaAK; KdhejKdhe ,KH +KgDGKgDG K0ŵ9K"#&/K杓_Q' e K%UH \K갉۶: K_3^ .K_3^ K ۦkC K6 uTK`Ed Kb!:SK- cKJ. %KtLKFx KnUS KKa86K$BRK 1-PK 1-KbK??d K&$&. Kf|Ky.hZKdhm LS / v L%LiS] LL9 L]u aLG6fA sL$M'_L L \9KL e\ aL ŝ L ŝ  L  \L R֋/C L T-^.L T-^.L3 L3 L3 L3 LȨQuOLkqm L으/xLs,!.v LáNODL3%.?LI/)W % L$/(L?) L[?I ,LOSLp9 O 2 Lpbedv?LfZ L# LL9B $L4 LIin L؅kaL^#D4Lpeo!L LZ, LYR LYR ILYR 3LYR LYR  L *;|L TSuL TSuL!h aL"UelKL#Z^L%PMhC L*C3 L*H*>L*L?L*`  cL+ 㽎}@L,&Q)SL.s(`L.sa__L.sa_ L/YD 3L/YD NL/M1L0*,] L2N& L2utX? #L3ՠvL3#YL3FD]L3u|-gL3~V^^L3~V^D'L3~V^RL4 VM#L4Z|V-mL4Z|V L53+L66hXL7JK| eL8"=H8E L:o ZF L:o ZF.L;΢L;[L8XL>58z0L>58 a!L?6gyL?_~YHL@L| LAp'_LAq?LB:LErID ;LFmyRLGV$ LG\LGn[]# LGn[]KLHtLHDsOlN LHͼ&LIg5" LIm眺;LIgƽ LIgƽ LJZ{d LJS%ZLJS%Z LMMZD LMBfaZ+LOJH LP jLPHѣ LQ=H LRQI 06LRQI LS.?: iLS&LT'2v*?LWV@7"LWOM0^SLYkź$LZRusLZƹ;rd !L\9 +tL] sM L^ d0L_=EeL:LaT#: Lc6-vuLc6-HLd`X LeD`.Lg {p8Lh0 Lh/ Ljsg[E eLkbzLlؐ^lMBLln>(w Lmgu]Lm*(LnڡR mLnڡR LnmSlTSLpe)wLqbv LqSBLsk҈ Lv>? mLvހ) Lvހ)R Lvwv*+ LwjaLy)JAlNLy1 Lz8PŸLz@ L|Z-_CjL|Z-_Ck L}:NNPL}OIGj. L}. Qb L}Ӣ-YL~:~HjL~i9 L~i9dL_DRCLzL(9LnVLw:WzK L}kL LN-nhKL%*L7$L<)jILdD L#t +L[5c?L[5cLDwoL#D$?LlA!L3N?6\ LOY1L&'\_ LH Y5X iL~PlQL?ے vL?ے L (  L ( (LUlPK L6䴂 LjLp`n[ L;LjxLLR䡀DLR䡀 LK LN}< i"LN}< ( L@OQ L&+?L`& L0aLq1 3L$ L$ eLɕ٤'Lɕ٤'L#?1; aL1&sL1& $LLqo7`Ls. %L LؓeLΛ?LΛ LZ8D?Lݢ L]L Oh LUZ j >LUZ j$L`Q!1 L`Q!18 L`Q!1 m Lo~$, * LL6D" e L |LO"LBÛBL#&x5M]L#&x5M1L#&x5ML#&x5MUL#&x5ML#&x5ML#&x5MSLd|\ L{RLz?'LpC iLv&fF0Lv&fF0L 1$L7@s e LܹIzLpoLn8 L#dw Lj}LjSLjLjLjLv5i1 Lv5i1]L'0L8c | sL8c |Lb~ Lc<9&Lc<9&L|mL=Lֹn)~DLo/L_a8_ LkvfyLA)L1~.LL7YiBLɪr縄L.%wL8L6]L:dLʹx3Q L@ERLsI L\{kcLL; B L1ufG? L τ: L τ L/q LӜ[4L}iKL! ^LϟDLSZL訟 ^LjS&%PLELLjٹ_+LڗV S Lڗt1]sL ^#L ^LCLCYwLu8x $Ln'{7 Ln'{7L*:#LðzX8L[dN LS$ Lgi.L{ q LSLWyp ,L0i1N Lό Lݭ7jLݭ7LT{YLwLUrg]dLUrgUL?L,U\ L3Ѻe LD 8@Rd LE RLgjg LblLk~LL[kLZ%e L@[$Z.oL9FmLd ߽{dsL] Lp2AYLad4LL1HP› L3!UL['LնfK L} [LtaLtLpuB L\pkjM0glMO0!A!MhI MhI M+! MњIe MњIe MV!R3MU6M m #M cfC+`s M \ v/M pRM_D$M;sxMAY# MA7 M4+Q)M4+Q \ M_$BlM?Ch Mp}T7Mp}VM?"%M-n)4 M; ,M; (M5R95 sMRvКM39)OMN# $M ITh| *M.Mҡ,MҡM %i qM lDMPC4M lDMP"M |{H # M"]{M# oˉLM$ʁOA ,M'pW4f M(Bv M)W M,mWM,C$ M-B7M-'0"M-'0]M-'0M/{bj M0l M3h+eM4o \MH AMIE<MIV MJ?H8+MK_ۧMK طdcMK طd ML*gSnZ$ML*gSnML*gSnLML*gSnKML*gSnSMLi3MLiMLiMLi MN"ZdMN\9MN cm MPYu MRWww cMR/ jmMRBYQMSŽ`MSF( MSF$MSF MTQf> cMW0o ,MWts<MWt n;MWt \MXSt[MXwuF_sMXwuF_s= MXG<_MY[=B` MY5WA8MZ,ry` M\K`M]RڻsM]aD`VFM]m,8 M^$]wvRtM^cM_z իI M`b ZM`b Z Ma`MafMbW߭Bn Mb $McJRS McJR Mc(1em Me;1eMedNGMedNMedNLMedN MedNMf]BlMh3dZ Mhv1EMh^dMiּMiּMiּMkೋ^[Mm-?MnE%4A  MnE%4A MnUsYMnUsYMp@w|  Mq"Gf (Mqm)Э9Mqnc Ms3d=-'# Mspya2MtQ!Muֽp&MuֽpRMv-/3UMy~Ye8Myc 9MyĉbjMyĉb M{lF@ M~gΓ5fM~gΓ5dM%!MQ<MQ<LMUOAMYSMmD MSnMQMQfL$M; $M;jM;YMÖM^MÖM^ M~PM֦TkFM,U-< , M/MvMMɤ% MJDžF MR//Z M帵AM|!bMd8>k Md8>tMO*c MAW2 M]OAMLu# M] M 3Y M\M@M NMe>@M/ѕ0 Md=>Md= Mۂ \M>**MF'Mn/8;Mn/8M*M*MŎ M__I?Md~RMPJ M"MoO_uY%Mp Ic MÒ3`,M= M^f]> , M^f]>M{JeK M+nA1] MLYmCM \MD M)_р{M)_р|M)_р M)_р M4HtMl"%tEDM&ƾM+&=MiK MiMFWJd|b M7N M#- M'7KjM{@M$`MQVa MжG}jM )M )M}|xb?M,<zMMxfMdžu,Mj M|f[IM|f[MHpM­L Mõ$kMõ$ktMõ$kYM{ιMǛ,*tMOѬvMl?'RMɖ/ L RMȦTAMQJnP?M˗m?M˞r+VSBMͻ%PMή~BMЛ&jM;MW#݊?MkB!M;~il$MDg MՓUv MɏdG Mjp Mֺ? "M]p MRy7Mۑ 5ӣdM̏ $M,oVM,oVCM܈!(F MK=ZM┪5 (MRЯN M޸H| MрӳD cMkE?MlϪW MlMM\XU Ml+Mꈷ pMꈷ DMH n'TMȁxM)[ MdWO Mo9$M<p"M} _jRM1M $ M1M ^ M䃰.mCMV . MRT9s M 8MeCjMeC M ^V %M? xZvM? xZ MR' M&T"M]eu7Q M]eu7 +M[A%jN&MlYJ Mz MifjM)Qދ{9MEp1ܐA M@ c M RMO7b Mse MseM4pXMU͍C m a M0MN:BM)gbMM4;"bM4.< #Md!I \M ~~ݲM ~~ݲ M ~~ݲ M@"ʬKM* u8KMMUe M;T?Nܞ'b NUP~ NC?N a> N <N  ɝ, N ͖5s NԗANNESNg'm7YNz)2NRڽN>NTN& ) N+Z Nj \h$Na N`1NB~SNv# 2NiXNPjJN2.ԠiG N>Hvð vN@ { N@2*_ N@~fONAnn!DNB#IKYNCs  NCÁ[OqvNE_ NEGp?NEcG sNG9;KYNH &Q NH]~6R=NH]~6$ NI溪`gNNJro mNLIaNMk/HhNO,E JNO,E J]NOw NP()r NP/2T9NP/2T NQ*͙NR Uڬ a NR Uڬ NRW: NS@NS-NThBOvNU $\]NU7ƿN3NU`j&NU`jNU`j NVZ7 NV}ܦ &NXUNYD jNYD jYN]uX޲[N](dCRN^9N^N_ 5KR N_Z^+ &N`SCLNay9? ,NbPq (NdtGYe' NeuFLNe0n*Nf6zkfNiQX] i)Nkz[Nl@pk Nl_Nl_Nl_aNl_FNl_ Nl|D L.Nl|D S(Nns1(Nny|kl` Nnj:NosP d No䭄 Np%`t Nqu_NrpdR_Nrpd Ns*o $\Ns*ojRNs*o (Ns*o ,NsvhI NsvhI NsvhINtxsR7 Nu#Nu݂tvNu݂t Nu݂t eNvaNwBB&$Nzv Nz]$?NzdLN{I06{d N{" N|5*UV N|Z&$k N|xK N|koʤ -N|koʤN}sN}G N~{0_lNn$N@#GN4 NpkNh @k N4[N87WNAOgNwzkQg NwzkQgNwzkQg?N^xNƧ9P! NNU GN% F* NC>/ NNio"&*Nio"&Nio"&NpEۜU"N)YN)YjlN)Yb N)YkN)<q Nn1@J N@Ǻ2m NT;NB2N7P|9:Nx^_( N?fNJqddY]No_9N.v:_ ND"A<XNwMslY5NwMslN'[VtN'[VN.;NcȋZNcȋN,G -N]GtNy3U(Ny3NKNDL?Nm&asNexdENOP`/pNF,fNqrP N_ N[u 0N({ N{[ N{hNZ< #N_,| NK7 NmՎC ( N94,: NOƑtNg| _ Ng| _$NSG>kKNSG>kNSG>kNs` Ne*NeNf1GKNo) N?Ѥ5LN d&= N d&=N6jN6YNq\5Nq\5:Nq\5NBN j a N j NB Z NxV N.7NµژJ \Na~QNçjÈJN $$N>o8N>o8Nh^"9-RNh^"9NA N\N\ N&' iNΏ ;RNK PdNK PNiyN$#{ =D'NЛ֊B}N^]ZNӘ &P NչN&N׌HNI@IVN١>NܻNqDNހOaf N3!"N3k l N3k lQN\> bN\> iNzrRNlQN⌔4 N?iv N8 N+=YN+=N御`[pNoQHd NfN?OvLN?OvN/E{?Nr,X Ne]NYde#N JNsb?NsbtNP `@N\|NtT#~DNB \N!1 N aNR cNo,Go| Ne|ta N.z NV?N1ȆRNnXߖQv NN 5 N[T>O'Ъ1 Oc/ OWѸIOWѸI OIF O5," O:,;O)(qO)(q O+N9O+NO+NDO Z@Nj1O hIO l(nb O zD O U1YO \$O ӤBvO >(  O0dOd# O0}2 Ouye_O?cOƳ~O  O^p O_OV O" (O(pO~a O~Ow_aOyrOFga$ONՌ] Ox& Owqa*OQ  Oo詣O0 %f O (N$ Oz^ڶbOz^ڶbfOfV0Ow{:AQOT@I O'H1 DO l .dO"@i O"@idO"֔;t O"㖿, #O#, + O#2R7uq O$2^ O$(O%+CRO&}9O'o O'o O'o (O'hFC sO'Q58O)l6;O)i \O)vh iO*,WO9iXO:ˬF O;eBuFO;Y #O=6nljO=m `0 O>. O>:( cO>ٿ sO>.R OD OEN"OOF: OFMpb? OF`o OGFB8h_?OGTl5v OJu, OLw]`v8OLh$]J OM+x3=COM+x3=ONFA?OO; UOQ~OToB ,OUKRqQOVeٚ OX|KOX Dб OX DбOYdT,s O\ O](!jb O](!jO_~O_TGB}ZO`yh{O`R:O`m^Õ j O`8_OaL:OdOeCak_Ofm"Ofm OgxyVN Oh?"&J?Oh kOh  OjD/$Oj/9OjOk%C!|Ol*N㉱fOl*N㉱ $6Ol*N㉱ Ooy) ,Op-OpI{OqrrgOr8J2]2OsMF/Y Ot v OwKìǢ) Ow`r5V Ox`rs ZOz-~Oz-~6Oz-~0Oz-~ O{1gRO{c y8s |O|%/O|%/ O~Y O8҃O8҃Oro OroO^u8w|O^u8w O_Q18>OQC OCO>wO|}0y O?#O?KOqCX* ,OqCX*OqCX*O3B O?):Oj3O0I7 O99 7 Oɪl{ O"u\2HGO듑qRO1ZOA`"0O|q` OKb OKb Oq@Oj jkOfs# O|'I᤯ObĻ2O@A`O5 " O,' UOR OזO 3JOurp|! jO~EvO~E O˃O˃O%o iYO%o 7O%o OhNv Os Os sO3Oo"<$O9 ]:O[q =OתOȐ OYLL=OYLO5dټ ^O-x OBn`"UOBn`"!Oa0Oa O++[RO"%#M Oث2] Oi I$O3nO :jO3a]4 O3F̉O ezށU OBP OduvOV0 @ OVUA]? OѿgV  OēO %`FHNOocO }q? O$j~?Olbe(jO6} O6} iO37sNd OG OBd AOS9R'RO'!>T:OC57x (OVxK}O&OI˹וROihO{X<ZO} O" Oȅk"OȹBe&O0тOLOe%` O }B  O }B O̸fW O(mD Oe{Oͣ( Ocir}lROg߭SOv7Or!?OeO?9OLw[-vOwR%O־ UO|g $OΣ^ OB٤Oڅ\O]fcpqNOܬѢOܬѢTO)eaO4= Ohܝ1cOߤs OsO^@%Oފ:sO]3nPjOdFz #OV/\OY] 5OW/SvlO^[a P>a P3'P1P&˅Dy -6P] C #P{GcP'D P{IRP{I$PWP05!tP05!Y P05!0PlAP3I1PRG; P bLPNK^bP鞸$P+5)#P 7n"IWL!P"sM+NP# P#4ٍ1P$7WJ -P%~S( P%'P%GN RP&b秃 P&eh cP& ZP'Qf P'ЕekP(`A P(7L`sP*_A1UP,97PRP-:(،9P.C2Xv%P.;Z} P.&P. UN@P/Jie P1d P4;RbvkCP4[oڅ (JP4[oڅj!P5lOwP6Vq{DP6Vq{P6<vP7P7 P7 P:x5Rm P;:B:dP;d\ͼ P;ѼP=mn0W?P=mn0W P>xJP?XYP@)} PAB]O[ PB'TSDPB'T PCqE U PCqE UPD&ٸz ;PD=٬HPDmtLt PEE*wPEK_ PEK_PF:PGR1bPG7$PHPVz*  PJ߱2?dPK#rRPKЋ|PL ޞPM/?s! !PN ]CPN ]PN9PQPN9PPN9P$PO#Zt 9PP:[,tPPQQŒd3PP' PP R^[0PQp %PQp PQE=~tPQE=~ aPTM^*RPU[#k PU6nUPU6nUPUmPV" PW[[$]@ PXk풀1ZPY?mY PZF P\zAKO .P\zAKO'P\zAKOP\j\>tP]t P] P綂 UPGQ#PGQDPGQP@ArPZ՘GPZ՘G?P!lUdQPʷPUzP PQkwD8PQkw$0PQkw-PhcEP|Pdʗ*$Pdʗ*$P .Piz $Px%1 $P6օ bP@NtP3e P-oP-o9Pw?PB !HJPR)Oy PR)Oy UPiu(SPLny*T PD PIs\s"P;!ѽĝkP;!ѽĝP? PM<8VIPM<8VPA>jP7kPqqP(P=8e-[ Pd@:P߭7zM P;P.;|P_'P7{P(U%UP_#PɬaPG[ d Phr?P|%9PkϡP.CySPo#P!w!P>5O$P盤PPjjD& LP`8+ P + P8˴DP_ƺ,P_ƺPmݝaPxyO< cP&IL PKoܶP  P( I P( I ]P( I RPD< Px) PϻMdP" P(t$ , PҐ?P\6QkP*09K>P*09 P*09 P*09 P*09RP) GPĭk~-P/ 4 Pǂ/PO"PȎjt !PwwdV;Pɩ/ɓD Pɩ/ɓD $PɸP) wPj1JP̉g\P̙ P]Rc mPјhPјh|Pҁ:kP?GZcP< M$Pլe .P LP+{iP[ C%Pv:$/ ~ P۹FFJS P3X7 PߕO eP<:5 ^%P<:5 NP<:5s!P<:5 P/+R] P1?P3&tPj@ %tPu7Pu7P:^DPh앀Paߔ PH嵏 cPsz |P&6 aP +Ї +P9?<ZPJP?) P-u  PJ01YPìtuP:5ź?Pon PvP:I vPIP~ P݋u8 S P} ^P}Pw{߆2[PvК7P2aJ PkM W Pv PNE]PFh/dPFh/PN+"sPN+"]Pf;Pwj@sZPwj@ Pwj@Pwj@jPgNQ-dž2 Qq`^Q4HYQ .tQK?Q+afTQVQ+ Q Jʊ=Q YQ .Z_n`Q r \Q skEsQ Q  Q(zJ Q(zJ ,Q;i QvD'QZt:.QQHKWtQNGQ|9V Q.sQ Ի/ Q^RڥQ!A -2QȎNf Q8 Q^S?Qh?Q?QhRɸ*QD Q, Qc*Qc +QYz Q5F{ծ Q!ul Q!} Q!ԃo?*Q;]; Q;xsP] Q>ta m Q@LvLQC\`B QC\`B|QD/:2 QD/:2QD/:2QD/:2 ,QD4ލ QEƤa/QF*QF*QG JB=QGr QGch''QI$S.8k QIW6} #QIźSYQIN QJlzUQK #QL YQL[RQNoי9QOp) QQ"]~k? QQD*T+D/QQZn QQ|t&h8QQԋ QR33v:QRdQRQR1 QRߚ鴧QRߚ鴧QS*!c%QS*!c QT N'QTۖ QT@$~QVw S>4QVJ'QXf QYav$QZMaQ\Sɪ $]Q\Sɪ ,9Q\Sɪ i%Q\Sɪ Q];9^=x Q]FÄJ5Q]JQ]gv? Q^4IQansDQansQans]QansSQb$QcQ&r.&QcQ&r.YQc< W Qd=zQdɏA QfPX?QhgIuQk+Bd Qln QlnQlnQm& Qm]t@Qm]tjQm]tR Qm]t Qmqj QmvQrjJ i QsE1J sQt?#Wp#Qt?#WpK QtlW QvjRi]"QvjRi] QxlVy QxE9?Qz( Qz(SQz,oWAaQzV Q{lD` Q{#C"gS Q{#C"gS $Q{H0 sQ| @Q| @Q}⨧aT Q}⨧aTC Q}⨧aTQ~n?Q~"z QEm׻)Q']QRjQZXLQj&fQJ2JS QFjQHY1cQ/ QEhɦ/ QXQXHQXP. -QrQۊcsQIz0 tQf|5v Qnp]QCaQQZm<QuQuQ*C !QhdQ8TQ Q8TR Q8TQQ񾔆 Q񾔆 Q ЂB&QQQPo0WvQHM3Q6T^+Q%I^4 Q%I^4 Q%I^4tQbc Q|w8 l Qa} QTeJQȽAq Q:_]{Q| mQO&Q8ߐ Q}(Tvj%Q\MtQQrM$Q?Qֻ MR Q(LQ(Q-{AKQJ\VK  QK6S&Q lr_?QsQX Q5 ֐Q(Q[|@ $ QP0ևK QՊtSQPFc \ Q;jQj=RQ{8!Qc3 $Qj:l1m\QQ iQDI|joQDI| QbQyK&Q&g^QFR %ZQ vbQm&RQ³H1hQVN QXʰLQ|v&QYhQGk#QGk$QvaQYQyBft-Qy Ql](QΙo@Z QQ;ÕQrc oQ8ζ QAsfQ {CQ {CQ {C Qҿ!|8Qҿ!| Qҿ!|Qҿ!|YQQAm QNL QԲȚUQ۟[ܢ ,Q۟[ܢ QvJQՖ4aQߴg Qˡ"::QUQغGkڲ # Q>`Q V Qٔ<3t%Qٔ<3 rQHQHY/Qyzϵ Qڗr#TQڴ ksQ ^QJQQ ,Q"P1NQMb QMb] QZQQsH Q| QfuJbt cQmP3Ý`LQY {x  Qz~׍&YQr Q|_-?Q hsRLJl$Rq<9+ ZRq<9+:Rq<9+zR=7*0e6R0m R1RjD R(#BSRՓQP?R١?|R١ R 6kT R .m#4Rt|R¥>vKR3ERɆLYRL0m R*+RyM R3TtRʏWR ~E|T^ R!߁ArD R"phup 5R#Ϗ?R$jJ R%"&~ R&s}TB[R&ŗHJDR&ŗHJR&j%VR' EY@8 R' EY@8?R'R*4eR't>XR(&s@R(bR R(XPsR(XP iR(q0 MER)][ R)][ $R*'R+w9 #R,G):#R,R,HCZbR,HCR-k@HR-`B5R0*K[ R1+ -3R12h? R35C\w R3PtDR3x]nBR3֟"CPR4qLl cR48bR48R5"mcR5"mcR5bR8H R8Hǃ!i R8U {R8y*}R8USb R9 \R;-`OR R;-`OSR;@ ` R$vRt/);Ru! Rvlt;Rw E=G?Ry|[VR RzÏYR|V?R|VR|AA%R|AA!R}܄)+ \R~qp5KR~:pW?RR^9b |RA|! RA|(R\ R\]R&1Y,!RolhROj h4 Rmg  RNtS^R{ŕW R6UhRR6UhRg<\&Rg<\&sRľ Rp7?QdRp7?Q R R_i R^/7s R_ ( R R%~_Ru$Ob,RPOg \RPOg 'RPOgtRI"R3UjRfiR$ט R2|I]Rdx R  R  RZiRRx2*R>.\, R-- ( R2甖NR2甖R2甖QRXDINRQGZ<R2mo RN~NR.~.RRgT= ^ R7e;',RHI; R&`}RѥG!R4m R4m RavN:*tRyRRlj(=HSRLLOujRLLOuRRȫSKRȷ} EFVeRȷ} EFVRȷ} EFVRɇ % Rɳv<R,/iVR_Rӛ RӛaRʸ?s R5.rRq3`qR˿s.¦RV2 R/xkOtR/xkOjR?iD :RjV *Rπ"$;SRόhRϷSB#6RЬȒ%N> R ;v R nWR*Z@pR,R&O )RٮVDRRٮVD9RٮVD!RF‚HRیߵHVWR۪mz ssR۪mz "RFt iRް8n5R$R#.V R#.V R$F RS0*U R߁-yf R5Vy+R gR g R^'#B~Rwy< ^ R'$ RKH0 R{sR:jͱR?K~R?K~ZR?K~Ry R< DR<  R:&y| R誄61RuN] RuN]|!Rh j Rh  R]Re֋GR/L(R<8ATy?R*{Q?Rzv~ iR0.RGņRCRGņR] $ R?3 R':U]R;+` 1 ,R1v%Rn_ RZ!YuS RR@7 REp~ RUӠzRTfuK R[2D+Rq\R R3j sS}GQ\+S}GQ\QS=P;QSA@zrS ,V2 )qL S d,!#S d,!#S mDMS =jS QcF#S &guN aS yV7S >S U(rTS:"Sd&] SiڛpY[SII^}SE];~m +Stc (SoS֊N S A d>S A d SY[xdSi+#`'Si+#kSc&E S5/> S5/> S5/> KS"?Zȫu?*S1S. S0SѬSǡdS߬ Stl2KYSScbSss5S_* $SvQLSvQSvQ S"Qk SY `~:SY `~ S|^wYS}pS\¤hJS9 gS h.BS Xa: S"kV(vS"/'S%$S% v S%=6BS%Dy S%DysS'QFa S'l&+ aS(7fS(7fS) h oj S)3{S)p]{S+ea S+ɘE+ S,"Iq?S,nz6 S,rKS-4e꽉zS-X*Y S-[C S.i?RS1#,?U S1KGa>S1KGaS1V.S2Ê?S2+oS3l NJS4#EmS5ڭ S7԰9&D S7԰9&DRS8þ S98S949nUNS9鵮U?S;DJG cS<V S|u<QS>|u<CS>On[RS@9*SAt_?SBSCnCSCIPzvDSDQvҮ SE SE.b @$SE.b @R SEz SG~+USG@0gbsSG@0gb SGn7OSJz4a?SJ"ESMq>sSMq> SMq>jSMV"TSMV"TR SMƁ); SN SNhq SOM%?SOM% ( SPt (SP8i3N SQc> #SQqU@rTSRi j(SRt[SRt SR{DZSRTt ST?[SUУvSWnSXZ1 SX<_j%SY:-SZ+3 S[_ÁKS[g+b? S[.@ $S]+ʷr?S]DxRS]$YS]|v S^ƢdS_{Jھ aSac&SacSbkdSbHaQSbHa Sd2.KSdD ?a SgNx$Sh&Shjdt ShZ3Ϡ`Sib{kU Si|܉G@ SiA[ea]Si9P^QSj6A!Sj@ւJ Sk~WN Sl-#SninwS SoIXSp"Xk Sq.7[SrcFSrе ( St}&Su3T Su["Sv4VK<Sx( " Sx( "Sy@ Sz<ǗSz` S{+  S|aRS|5DjS|0sS} S aL#S(As?SCx\SCx\SXzbBDSXzbBDZ!SXzbBDSSXzbBD SXzbBDS|uB sSM;{SԁV79SԁV79SqQS>9 S>9SIl׎S S_6ISLOL!St \SeaΖr* S5S5 SfC8S+Ҩ^S  S&k| Sz.jS%\?S%\?KS|Ԟ S|Ԟ S4[}I lSM <SX5J˸ STdSS GFdSb9LSaKE $=Sk>KE? S|v{ S{KSE]7S&<'c| S&<'c cSq So$FS SɢtSYbSW13SuPS違 SU8 N So' KGSnN>fSt~yM SsV3::SN SS_́#S\ S;68 SjY SJajNS[,v S[,v -SuC SS]5 #=S,{ ? SyJaSbt[S? k SNTT .S% SSKT' SoH! SoH! S8:S;_G5]S;_G5S;_G5CSVG`SI&TkS\b?S(':tS(' iS(' S(' SPkeSrX"SrX[SxKQS < SK?_S ?Sڱ|SGJ6 ShS:j` S ԖR98 S?}L SFxa$S‚L[S‚L[ S,I" S,I" S7>5QS-]k׶RSmXN 2 SŴE %t)SŴE % s SŴE % S'^fnKS1 *uR Sn^ bS{AS.Xz8S}Y򏮭QSI` S$ԟGdS$q. s S k -Sc;gMLKlSc;gMLSc;gMLSBSə SтiׁSҝx SHb]ZS;U&2SSfJO9 Sln}oS֙l5tS֙l5tSiZcEN4Sڤ5y%L%Sڤ5y%LCS5,$(S5,KSKk* sSKk*9S۝S۳ ݹS۳ ݹ SJyS8&S8SoaQS8$!4)VSWSWsS~Lo S(V bS-}8D[$SEв܌ S+U S skSjBC7SdOS\?S\ S\ S~  +Sq g S3꩑#ScAϸ mSh9S {!StG*StG S\nS.v SmsTS> SfAS<3SIɚbRS3fg)S^j SHP"SI0 S ( SH SxOtSQSu 5`S_&Sڄ#YSJhvSJhvKSq/,SE~3S|%SE SS?yZSkTq#0 =Tq#0 T($0T(T56 $Tg]v^ #T Tn"TnYTnjT"U2YT1^! ,Tj3]T , T *z5T *zT *z T <=7ATW nT[4eqT[4eqTn.p TyLT !YTnre#%T6y>nre$ T;"t \T<> T<@L T=M9T=%7 T>R T?}a(-+ , T?‘T?ݍs T@*m c TAf-qTAՆarTAՆarTB1o&\TC@ڸa1 TC\u ,TC\u \TC TD .#TD~?TEFTEF TEFtTEÉFuTFp/% TG, TG;C2 TGH aUTGh_ hTGP ,TJTKe´ iTL<\XPjR<TMQTN\= TPtTPYTS:TS_PNlTTƗTTTu1S TTu1LTTu1YTWU TW^Cry TW[(%HTW[(%HY T\zPKT\5N] T^ET^ BrRT^ Br T_|pk7 +T_t .T_C0²?T`T`-9 HZT`YfvfbTbU|R Tbk2Tc~GyvRt Td{Td? TdA) \TdA)?OTfO BwTf ZTf͐Fb Tg@:Tg@ gTgxL5 Th/GsR!Thpڢ a Ti*d \#Tj a9`TkW<t TkW< Tk@zTkB/TmgN TmO02>4Tm,  Tmڷ) U TnrTn<MTo~C24 s Tp̅OTqNK  TrlrjTr߲1zU Tr߲1zS Tr߲1z$TtgqTt 7Tt jTu_IpTu_Ip Tuy莂Tw+ E rTwCFTxW򸻰 TyM}$DB TyM}$DBTyXl*?TzHRTzU͸nTz]T|'-ڃ T|Pn{ T|؍TiTKTIh)?TT8XYT#T$ZcT1KQ/Tv%* T| T |TމjPTl4!Tl4!TtW'T95-~T[" TN1oGT~CeTT#K&Ts4!I Ts4!IDT2&gn:T(lT(lTx|l; \TF, 5 ThT;dydT˻V T+ToEfAT>\z T\?TdO T?l TL1_T8ƏTD'c aTͰ"T};YLT};bTFT5#TH#OTN,TW TWTWT1:T9c~1Tj/KT4Ln, Tt cUT%~ TLOOQT@iLTR[P:Tc5ګ 6Tc<\~N[T"vXtT,Ԗ-T:P T:sd T: T:T'\ T'\ T TToTTo9T  aT sTqSTqLTPCڕT{#lT]T]T])T]]T?RgRT?Rg Tqk T8 |<dT ~'T>e"T>e"kT&FT&FE T%GI"THxTF0sTEP>TcRT* TlS.<RT+s!O8T n] T` i T`bT`jT` TSHTHM4 ( TsݘVQ3TB <2TBW@(RTktKqTg4TYg}DT!|Tq 1>TRTTedTž< T«NXt T$Y Tc;O ,T3! ?eTþ gʇ TQƃ&TƸNTT& BjT& BT70 3 Tȱ~YT"R i!TnFq~jTɒ%K'TɰoIT8/I!T”.ZTo )Trq-|TTQtT􋦝$ T􋦝$ T􋦝$TtvT ,?T;( iT;( Tϱ[ TѡuRus8 ^TҖ@+LTǕTǕTǕTY=̋DTnft+T٠F !T׈\L W T؃kJDYT~E<ԋt/Tڞ ݿ Tm9YT'=N]NT'=N]T}JTPT"IYT.܇TߌgT-@J "T=T,toi"T_ TS T`sT/ T/ iT8(4 Tq5 ^Tyv[ >Tyv[ T tжO T X3 TEwPj TYT: T)* j TPQ w T bT T'|# .T\KT , T5j3JTGTGTN5ѷT#}T#'TvM|OTvM|TvM| TvM|fTF[fR?T;uV\TtzryRTollQ Tu TSKT ;T4 UgpbU* s6Unv?U%= [UU{3 ,UU{3 +USؖpq "UrUQ̿U=6UZ t`U )|W`iG=U V1vU ,U1GߗU_r@U*LUE ,U!aAL ,UY͉U8oE^U1jjU= E Usv|w1Usv|wULο U>U-U>UKU>UPUgVUS25Ւ?Ǔ3$PdUz:>Uz:>Uz:>U]i$vzU]i$v:Uq Uղ@KU R-8v gU ʘچnUU!XK UU"#p { U"#p U$!_8U$eUKK U'j?U'.X U'ɇqo U(Sf ZU)V.U*;&B%R U*AjeMU*A-U+ a<U+ a<9U+ a<U+@u U+@}Gf BU,fy&U,&X,\U. tt U.ML:يU.!UU.&YU0^ U0.v ,U16}z1 ]U1KϡtU1ThU3U4D.)?U5ji'vU5VŤm bU6VLu ^U64[Q.M U7 k#U8J_e U8ōbR>U9b{ U9U/U90tU;Ŷ"CU<~^g5 U%Uz]<Z U>%Uz]<YU?`G>U@{>?UBfN sUCs0;$ UCzL UD83^2D UD83^2UDLUD~UD̫ ?UElcUF %-UF8ˏ UF^0UFͰpkUG K? ZUGDSK8UIvnUIr?$UIUgUIUg"UIu iUJUR cUK !UKC bW iUKsUK7]UK4':.ULsUMrQ]UMGiwLUMKUN@C_9UOq6 sUPo9 UR>t; 4UT5 UUn(N /UUn(N UUQ3Xs UVzogcIUVzogcIUV$YUV$ UXh`}d UXƸ= UZ ?UZZD)?U\uDU]18kZRU]18kZ U^h0(~$ U_%, U_~;{kUaMBdOYUd[ºUe'8$ Uf3BUg-n` UhZlUiC; UissaUissa UjR iUjR UjW6MUkCfG#Uk@qNUlN 'LUlN 'KUl cUm&6Um]*S Um~K mUnk #Uo^&9Uo^& |Upf|EY Uq҇MRUsk~ջUtlX( UuML]UuMLLUwgD"jUwu M Uw+HcfUw+HcUzb~U|JgU|T U}ݙN U}ӷlUͅU9CXU. #U q6dU| U}U;_i Uib}Y U HHU(.U"-Dz c U4-U`'#UZU6nU}%FU eU}o W ZU(yWwUD**% U.-tU>6RhAUk/RU UB++UzcUz#Uk^ Uk^QUY<ɩ$U ]!U'hŜ? UH҅YUgA Urᖍ&jU*BazU1&Y7UfpY UԆ Uy U!9' U9ͪaUDfEpU4 & URUpsU4h `VU4h t'U4h k U < 0U <L URykU5f U5fU5kG+DUt Uv-N/ Uv-NU6݅ jU6݅  Uw-U/Dl U-'#U֖˩oUgC7: ( UkN$U6+UiW Uu;y 0U"@0[ U>nw U W $UC:s9 UC:s9N Utx'U3UͣxKUnjxUmx׊nQU?p̾= U?p̾=UE~9KAUE~9K+UE~9K U[U!&b8U!&t!Uans Ui4U䢜ЮU<;hUj?UaUKȟfOU˽~q 9U˽~q? U0ݿ UiKhR U)R#URU7cN" Uƅ SUHNDUHNU.B׮͟D UƉlV U˜ئUv,>Uɑu$>RUʨ Q)U\#UQD)s aYUQD)ss U˚ÎZQUHbcUԻ ,UlÏ< i Uͅu U͓U;@|U+P=U+PU' dUHh?-U]9U` #U` cU`Q L U"z-RbUԬ~xR UԬ~xRU& U֋^f~ iUֿ-sU 4UU Ui3"Uڬ,f#ß Uڷ>8 #Uj.Uݠx%U!+i U!+i US|9 U(\!2#UCL}Ϛa Up#P sUIZUKUW<n]8U… mIU4F U'&ARU'&AU'&A U'&AU'&ACUdC UWzU @UWzU  U67 U67;U1ao}U<1sU"(E: U&),sEU(v ,U%sY jUW)g½Ue-]Om8kUe-]Om8$5UDð # Urٱ|#U9xB! V߶jVAVfe^VA. 3VeCV0sViͽQ Vl%T "V _V V ҳM V LY{DV i V _ eb9? V|1{ V Ppq VGRV2F V-IV V͵hIdV˪Vq]/VSfT VV2c@Vd_@^[Vo Vo sVT jVg- V E)J4V E)d)V&:/BVվ V꿦i]V O6XV O6XV輾?V!3[6]ݠTV!nXb V"p~I8-V"jdDV"jdV"jd V"jdV$^EZV%WUV%Wxp V%H{ğ#8RLV%H{ğ#8V%H{ğ#8V%H{ğ#8V%-x" T V&rnr V'T;ԷzV(@2 V)S.V)_[;" =V)* V*qKh3V*qKh3V*r)>E0 V+O:V+O:{V-OHV/%rX V/CM !V0 :MQtV10i~J V1JusN AV1|s V2t#V2'V2?IaV3^V6fSp V6@L.fV8{X 3V8`(/ V8ܠsV9پLJY+V:cΩV<H RV<7*sV<7*V$&~V>>eL s V>>eLjV>>eLsV@VW2V@Fƭ) )V@wm[~VAE>vVAԗNVBb5[ VCnm`υSVDmn sVDu+ا VDu+ا VD*b"VH{J= MVH{J=  \VH{J=  ^VH{J=  VH{J=  VH{J= hVHYe3vVIQ5 - VJ]Ɩ#VJC^~$?VJC^~#VKm/*VKm/VL嵥-!VLRyV?VL7tVN( ]VRcYVR FSVT ,M VTi7JVWF)[/VW+xza: m VW+xza:VWQ|h)VW`0LVX]` l $ V[BM V\gLRV\yʄ V\lH@V\É|V\\_ V] d{J e&V^:]νVV^?1 &V^1 jV_00W V`V^ V`V^ D V`V^ Q VaKe5o0JRVbYV{sVchd|VdW2VdW2VeKO.MVg<{VgHǹ Vhs| Vivz Vlw  Vl Vl VlxfVl+B iVmT7 Vné Vo8t& Vo=txcTVp+ג Vp~VqcrVr(2)Vt2 Vu2MVu2MVuE VvW9yH5 mVw$Vw/VzԒI_V|acy V|ϲX aV|ϲXV}A=]V}Rd`XV}f/-ZV~W D j&V~}t V GCVCD7NVw(]o/V*|T)Q = V\rcR HVߋ Vܒ޺$VU B$fWVU B$fWV?̏ V&8<QVs 2V-x}QNVpqh VpqsVqwXVN`mV: 3, V? \VxBt V2O Vδ 3 #VxW_Vj& KV\r9<[Vrs:VrsV|> aNV[E*V@a \ V?V nV:V:! V|;z V mc VHF<1OVHF<1ORVmg iVIFwdsV<;E_Vܘ5ws VS?VS?NVS?,VS?R V9Vb]K V,oA(UV?嵽a=V?嵽L9V-3A VА4 VGz(?V' V$\,Q VNl# oV[+(3/ V㎪IV?P? VaV<SYVn= V @?RVCxPVZ~ tV5:PV9 V9V՚< VTb c$Vd L\Vd L\ V9~5 VbiVyT[V 'V}V@u"Y V?CV&67V՜P V=nVRWHb tVv@U V7 V7-R [V: h aV: h?VL*Vъ9 V\EhV7UAx RhV7UAx Q Vu%* VŚ  rVŚ  hV£7X !Vv& {V,B? Vl謍Vřx:{VƗo VƪN2^;V+ mVV!(AV!(AV@ V9|b!_VOBVÏFc VaVx V9V iV752Vν}jq^V϶ j6V'#kbVrqVђYAw+V[AT jVվ#oˈVվ#oˈV̢j?VGk/V aȪ cVyh@j Vyh@ V<[V2r# V [P5KV [P5V=$ Vub} dVW̋Vj]Vj]LV||V"Du"?V-w Vߘ0۹QVjDcj`VjDc?/V̀ FV6w f .V>o[?VUVZr VZr#VV SUVqGijVqGi V@,HV@,$VSqVSq V`} V.Hr VAj cNV" V"Z V" VV}|n .VYYdVSͣ tVSͣ $ V tt V/eVEd =Vn fsV蝱qd VztVzkV%LVn_K]Vn_K VdA V짫Ր VRu5l?VZDٻVDŽ+h* V譿/z[V<5+VsR׋V,3b;VTwY\Vx5V) VOi~Voւ Vl=[W|рW[W3C=W W WRN WsjOj9W ^aCW WvW EP,5W eZd sW]BZvWLѐ- W?W?W\_;WC_v0Wݬ_@hWݬ_@KWh#[]Wi}\0W3h>@W* WR) WInW$mW:h:3W:h:W #W!c Wj>ֳp^WwW܇ ,W. aWzc3 W4Gt W(G8 W^Ih|W^Ih WwA[!WwA[] W0k iW畳b# Ws6R Ws6 Ws6 Ws6SWs6KW"j+LfW"/( bW#:wa W$KPT$ W$L{W$δ W%YzyZW%̟LH $ W%;? q W(>nD W(O a W(,*rW)_&) W*VbW+Я[ W+ЯW,["9 W.AD W0̆ W2c~E W2|#W2qf='W38ޑ W3X'yE a W3gz\D i W4^$æS|W4AvW42 W6ŮQ@sW7%?C KW8Ur>5RW9zڭx1W9zڭx1W9ۼ W:7̓W:^<~ W<:-p= W>>10W?6l -W@?#l W@(K3W@(WAUl -WAUl |WANg# WA?jWA g?WA WAk#$ ,WCg,WF~8d WIJFķ WI$C2 +WIݟ?S WJDF_WJ WKߦ+ʀWKy8WKy8 WLBPTWM!i?DWM}9SZ WNsv@ WP#2)WP1?WRHby?WT|j WU_3YbC WVH _/WVH _WVH _WWF7TWYI Yx WZEpik WZ>jUas WZ6x9q?WZ’ W[g!sW[ûcW[֭A.3wW]n$ W]_MW^3u?W_GGm W_B+̶ $W_@娠W_@娠 W_@娠Waڡr?WbP:NQ WcWd Wd#:8B] We:tWf+HOWgNYW.Wh{<Wi0] G%WiWh[;P?WjBWj}с@h WlqxPWmT Y WmgU WqU Ws/j"Ws/ Wsi* Wt3'j WtWtNtWws<' /Ww(,Z WyŤ W|3"&F|W}Mƭ1 W~*U WXWҎfڰWrP0Wc׍W|] & Wj?W5Ie W5Ie WaW4V&g}W4'f WKWư W٫4WGzMWy"ax+%W! sWG5`WR RW k3W6 iW*ɸQ%WTdWay\{L WngH? \WIW]!]W]!DWlaE.WlaE.WX\'+WdQ, W^ W^W^ WWjW= WȶWJjWiF>WiFW ZO "W ZO $WS?WThx,We $WO-KWm0SWm0gWm0[Wm0UWm0Wm0]W W*wSWkWŴ#a WC*#W$ W3FODWyISWEgkW#+ W7 XW_y {Wctg({ Wφ ?Wz*Wz* aWC uW8I^{W?jGNWixA WViu 8WM fO ( W4夃WE<#2 W"!+WaיWs iL W3EC M) W[:C eW{8/' ,WD{ c W uW uW}Q Wފi+-W  gW  WfWIgqWA}LWA}W26?!W26WbWbKWkp W`2 aWjҙSWjҙdmWjҙPWjҙW:wW:wWmZK W jyW9/Wnԁ *WZ1Q -WH.9?W_$1=GdWècWŇvض4WS~ĒWƃqiWǥ?rpWǬe4W߁-WaNjWaN ZWaN i2WaN Wɟk Wɪ\ W 3D*W 3WVvW n&?Wi߇ W\g Wdk~| W;)-WϱZ &W_rfW<`8GWԑg W#~XhL aW{W8d. 3Wr.Wچ|۶/Wچ|۶/WT *WۦjBHA Wۦ0_ W۩+| Wܦ?h:Wݤ>\W~ W(W^yķWkGWߑܗ5 W%c W(ĮT W(ĮTW6PFvTW6PFjWӯWER3iWyvW-) \Wf\W WN1ވ WݶW/{ aW |W)ǦFWHs.WVwWbt>SWP̳mjWUT T W`bWQ-Vk WQ-Vk Wg) WŘ!SW6#GgWpu< WQ> WQ> 6WQ> QWQ> YWJs$1ZW YCvWDo #WDo WW cW׸t}. W:ʽ/\W>WT XMRi~ XHmIS~6 tX /& X<6bX<6bXDwPvXE6B XLRXiJ;% Xn (X XtXZ" XZ" X /vWX / XRws !XpȀz(XpȀzLX#qX_X#t XuDfX a X&VoF 3XB+ZTYX쟐LXs & X79*: iX>n SXQw( XJTw X" X41jX7xDXØ$ Xg-XP([X0?XD.Ƭ $XzkJX3:P:X[FfX xASX!hL&uI X" `R X"d}{'X"ݰ U?X#%LJX%"WۂsX%`.֤ sX%V‚X%6G]X&`X&X'>u X'dPICX(cX;suX)[T X)]\? X*UY}SBX*i}DX+0AX,B*8:X,B*8:$ X."QDžX./[xzNX/^ U (X0tt.= iX0z"kX4? X4!Ϥ X4!Ϥ X5+ !X6u?f%?YX6t04 cX6]XDX8ָ~X9Fe VvX;Kc QXEnRX>SZzX>SZzX>SZz]X>.[ X>X?> $X?̣hV XA'ex,XA=XA=XA=XAZb>9 XA10 XA10 XB.;ۦXCeMXCo XD 1Xg(> XhgB> &7XjG , tXэ X?4XEݡ XJcXJc XQR|3X~%] X.{Xˍc[ nXCRa X*+X|ntGL{XtX8mdX8mQXKXP`r:Q?Xk55* Xk4݉ X~ X~X~ XmDdXǿGOZXǿGO'XǿGO!XǿGOQ XǿGOK Xz+v'XXƼ Xcb( Xcb( $Xcb( ,XB/X XXD*XI7zX&s.jXɶ:?XЖX)gv#X)g X:>N XX" X_,Xv%˂X9;߁ XI/X} XXXnXnPX #X5|yXr@Df .Xr@DfX ; XɛRw& XA Xʒ[ XʣDX0u>Xx*]Xx*]Xբ/Xբ/XͶ_pX&.XІ3XІXЯ+X X)0r3zX5&ZXR|"ZKX, X,|X ֺYXgL&XgX4o7XՎfXdXdX։m xX։m rX؉c5 X [?XEN-Xي~ fXω_uX:%tXοӼXuaZ 0 XXɶ X NQX1vH bX-ԬdX- X貱XhA X2)u`XYLXK< iXl Xl XsG|9XwjLX]2X}XX&~ bX?X5ݕ X1ZSX}f4XF0QXꑏtJ<jX:~Xd_LXd_LXeX֋%N Xg4 X79} Xrz XZR%X[?tX=]$ X.X'KgX!G7 Xúl cX!$ܻ X,DEcjXET?Xt2C$XŌ1X) XINXid pX XR68 ,X-](|XDXB13YZR$z zYZY0SY0S Y0SY $YtY" ,Y""Y"K Y߼HYKM ^YFY]aYQZZ wY &|y44Y &ݷOgY j?Y j?] Y j?Q Y ](USY%IYX[ (YIUYIUSYIU Y` pK$YL Y(: aY(: Y(: wY(: iaY(:tYYT YbVQYH Y?GWYJވk YIR+&YqyaO# YjY [|p\&Y C aY!Y$>t ,Y$>t aY$mjeY%^aw Y%t.Y%lz 4Y%lz t%Y%lzt#Y%lz Y%lzY%S;4 Y%+_?Y&STY&STY'Y'c3Y(B(ZY(SV|Y(SV$Y(SVY(SVf Y(SV Y(Q Y)cC$ e5Y)cC$ Y)cC$Y* kWS'vY*GY*GY*GY+ Y Y,"s3 Y-}H:Y.AZd YY.V٫Y/^`!8LY0 Y1J&SY1w?Ǖ Y1(C Y1;Y2q;PY3onY3on ^Y3!)wY3{ Y3{Y4 Y4͑FpR]Y4͑FpRY4͑FpR Y57dsY Y6[| ]Y7M4Y7 {b: 0Y8RY9/r} Y;K F Y8K Y>o~RYA&C YBwN"FsYCvc5˔YC#*<VYDpZ YD}c, YDUYE`##7YE"65.j YEš YEŤ@c YGgV $ YG_YHGiYH2KkYZ3YI2sy ( YI\\$]YJz` YJ 0YJEڛ YJ\ɽRYKbG (YMZ"j/YMZ" YMᛝE mYMB!/ sYMB!/YMbhYNIO*0YNrxoYN+ V YOtCR~jNjYQ4F|YQ= ;^ YRvvYS{-ϟ ( YS{-ϟ YTq}P.- YT;WiYV>y9YV~54U ,YYCw%YYHXCEYZ,?1Y[RkLY[$FY[$Y]I'Y]I'j^Y]X,VHK Y]#cєY^qY^;Y_}m/Yae&BUYb<}mdYbCrC`YcXЪ #Yc2ڵk YcNYdT8,v Ye npsYeqh Yf)Ԃ3SYjF:N YnܴYn'?YoEYpm Yq`/*Yq`/*YqF.>p Yr2M.@o $Yrw;Yt|YtG2sYu/ YvWk$i3 -YvY/1f<vYwU)s YwU)s \YwU)sYy}xEYy􃨠RYzza(YYzza(YYzza(YYz5Y{&18Y{,&RY{S *x Y|G @J EY}C'/4Y}C'/Y}C'/9Y~ok^ Y~ok^YR8 YyNYyNKYd2> $YJաzaLYaiwY`B]] YvX)LfYv'~ e4Yv'~vYv'~oY@1z YmtYo¦ ,Yy* \Yy* \Y# YkU#YH`= YD~ sYx#IY9)EsY9)EsYJёa%nYzyb YzyYҧ?Y=bQY{C Y/ Y<0[ YeflA1YY< ?Y< s YՕds8kY a Yh1RYz^YY zY zYIpr>R Y҉!Y(M{2Yu YT.WY u@Y$YmYOe Y$,Yw)YPL\?&YB/J> YviYYT?N YcYk&Y1/b"Yxۣ iYmYѨ+R}YATJ|YATJYT)ݾVYݬƮRY9 #Y>021Y>0YsZ- YU Y XkY XkQY XkY XkYlG"@UY B:} cY [*- Y [* Y [*YT] YO&45Yk"{ YQ \YZxpY}\s =Yx&n-!C YiN6YA 2.YA 2.Y 7KY,]9LYUҚ%YUҚ%YUҚ% YUҚ%YsN#Yo]Y U Y¸]i YB-`xOY@j Y%䐀bY uY%Y߀\Y} Y3tdQYyd?Y ( YW ,7Yϻ (Y,BdY,Bd eYt"äYxjr:Yxjr,Yxjr YxjrYpd- aYէk Yӗ %SYӞ맧RY<&H2RYԝU"YԝUYO>-Ya&?Y$Tt Y.TW̊Y͛EY͛E mY] 9OVYF YpAYދD?Y^ 4&Y^ 4"Y{ YeGp Y. Y5 vLY&b{?Y&b{?S Y: RY:  Y:  = Y4 S?Yգ Y5#O. Y5#O.j Y5#O. Y~I s Y$YGk YkUƀ (Yh"zY}7rDnY"Q ?Y+1 Yj/ "YfxdKYˇAK3YˇAKYy^xEY ZSY^IleY$Z\g YH2)YH2)Ye2Y: Y:Y wYXb YXbYΕR_% Y ` Y3c:yYp45 "YY\nYml!Y9E6Z0r۪ZJ y ZMԧd Z,T Z7 >ZZd ZSVtBZSV \ ZSV ZhZY 4MfZsτ{NZͿ Z كfV Z ,/Z IKv Z F(aZ%\?\N Z\ dJ Z"ZO.QY ZO.QY $Z.ˍ^Z Q@ZEۥ4ZEۥZEۥSZEۥLZEۥZ ZEۥdZEۥZ>[ZZ-`l QZ\/ cZ\/ ,ZqOCZX8Z‹y+]Z yKZ yKS Z yK Z: i ZG8"ZyDj Z7rRZNIiZݑ_Zݑ_?Zf (Z|FZ!]-SZ"ᆬ#Z#xZ>e`Z? էU vZ@<)(ZAMt .ZA{N~sZA(aPRKZCareZCUY5 #ZC選RZDC,{K ZF4^ ,ZG,0' rZG,0'^ZG,0' $=ZG,0' ZIx᪕ ZIR.  ZIR. R ZIR. ZJ  &ZJѫ#`̶ c ZKp:DNZL ;, ZL#_N?ZM`ZM(+GZO ; ZP+sZQYP}T- ZQYP}TZQ+*Y iZQ{ZS ȥkZV/ m nZVM>?ZW0; !ZXSZZ" ?Z^RaM0Z`FfZbbA,%Zbz ZcDZe-I5 Ze'{˫9 !Ze] ZeR ^ $ Zf[yZ.{Zf[yZ.QZf?a Zf?aZgYd.YZgZ " Zjrj #Zk.c ,ZkgZlMUaZlR ŒZl[wZm\k ,-ZnU&$ZnU&$-ZnU&$K Zo (ZonȑPZo䲳:RLZofZp0 Zq?}aZrM6 Zr5JMZs9wvZtސ2. ,Zu_t Zz+ǥ Zz4YZ{,kZ|?) Z}U*jZ}U*jZ~ *ZB%OUy$ Z!.ZC8Ztj ZNi-Z9 :E (ZLZ5Z[w ~m +Zy;ZP1ZP1Z#k[2~tZiUR tZF[Av Z̙<ZiLvZiLvZiLvZU a iZ$bnwv aZGE Za%BRzZa%BR:Z|ZLޙ ZJ' SZ<&KZֱZZ1(#Z]e ZxlZZ =ZifZH! {Z4RmZzpk)W ZjZ7,CZ7,C i ZA:qZJw`8 Zo(]ZqP #Z\#<Q Z{t|v.ZݺyJYZD_j6ZD_ !ZD_ Z"~"Z1tXZ1 (Z1qp +ZIZ! Z yiZERZڮew ZV . ZV .D Z1Yx]ZK_sZuS1PZy* sZ8Z?ZONZtjZZ#Z(\Z*sRZ9Z8ZRZQZڡ4F/oZU幷p9Z\agUSZRZ_r8Z^$$Z [.Z [ $Z ' ZW"!Zu >W"Zu >W"YZMQZZksZ>i3kbZ :Zj ZIZIeZJ_ժe ,Zo ZMrLZMrZO Z8pDZ>Xɰ ZeZƉPѶl ZsJ1Z;]C ZȔ "p4ZA8 ZN✦[ZXޅ8ZXޅ8DZu½,s |Zu½,s?+Zu½,s Zu½,s iZ2FZ}Z%[(y ZuKRA^Z W= Z' (*Zа ZW34 \Zo5S6 ZڙNZr|3HU Zr|3HUZr|3HUZּ]MW^Zg%<>ZQkXZ ]$ZĺS Z7XT0> ZTEZ6!扜 ZMhZLZ/ D. Zv6 ZTBr ZSR؀Z Rs<Z2FΠ Z?n Z=4 [<q[T*V6# [.0c [5t&[H|e$@[ֽw[[pvШ [[h a[z@0n[-FD[-FD?*[o ([n*O i[›$5 a [jp [޶0%9[2H [!gT[!aBw ["n5EfLC ["[ a[#,C [$ 2\C[&.tQ ['7w̃ [(,;\ [({y1 +[(u -[(u[*+H [* [,y&a[,y&D[,y&?[,y& t[,y&[-F@~ $ [-F@~{[0|=I~"[1PX}7Y[2{|[2{ "[2![4nK~q [6j8 [61 [7;;fC j[7;sE+6[7hLj4 3[8vO+d=[89۲R [9Q7*,[9m)8a [9t?Q[9`~Ik[;t[<5%[=E~tv =[>ꣂb?S[>ꣂb?[>ꣂb?-[>ꣂb?[>l A+a.[>l A+K[>0XH [>do1 ,K[>do1 [>yJ S[>yJ `[>yJ *[?*&[?Ib{ٔ cd[@3x/ #[@x? [B\#%_L [Br>`ؿ[BΤK[Cʆ5M $[Fe&X [FpW[FpW[GY+s[[GY+|[I[J5_I i[J) [JN= [KƓ:g[Ki [Ki -[N,E [N,EC[O`g [O98tW$[P31`V 9[Pv,H &[Pv,H[Pai _[Pai[QTls[QTls?[QmE$ [S C4Y [SlY[T˸S[T˸SL[UfU[ULf*[U\LbR[W &[W̑c4 \[Ye [Zrɭ R[[: [[Lp[\hyZ[\s9?[^$d a[_~5#[`!{%#v[`Ov| [`-VU'[aW&HNM[b\v#:s[b}Vӛ[bG! [cG[cB8w[dlFn[e%Zƨ[etHs*[fO& [grr[h<뷼UH[hxH[hdwC [j1B*ⰑR[kC~ [kC~ [kC~] [k(v. b[l Yp?[l8%[mlKYL[pO_:[pO_ [q&h?[rF?R-[r@!H [sKgrYF [t_{ i [u?~b ([v &+t [v0 ] |[v0 ]jk[xk-q[{Rr[|,7? [|@D[}GM: [}E|w`[}I [~e$[~`N?s"[~폵! ( [SV[¬óR [cl[[lKNZ[lKNL[t&[_a[H[Eq|[Eq[k.* ,[}80k [}80k[rJg9:[rJg9*[rJg9D [rJg9 [rJg9[rJg9[Chu)[B6v([Jڤ[hY[[_[H:(@#[H:(@j[m:5R [m:5R[#hv[c [&GU[[gŀg [c j l[3 >k[=lx[M?I[[Q1 [#/u|jR[Lt [y)>[vHT[L5[o [pl? [?e * [(:[@$o[F!3K[ϴ [z%R [Cv? [i [T}37 [HM [xVֺY [@o,8[@o,[D=@+ ^ [~[Ac9OW[Ac9OWb[Ac9OWY[āSs [V:`P![[[c5`[a=xt[6[,s[&׶[XUG[XUGd[gR [} [%Ww][{[k]\2[ i [|4r[;d|[)2 n[W2 [O9|v{ [`F7j[ֺoj[d˯' e[d˯' [d˯' [L[")Y a [@l[T\\7 aI[T\\7 e[Í [Í [Þr)[R[~Qx [G [$[*S[J [Ǣ:B[ꕿ$<;Q([ꕿ$<;([ꕿ$<;[ePr& [䍐+[pE`KA[}. g[ [ƣc , [COJ[̦([̮Þ[>ÞR [\kY [BB[:r[=+#[_ *C[F̓ [0$Lke[室rBf[¢[I \ [ Ac [XXW[9[;3[Ňս[u[݁}$[딨@hH[drҶ \[S9 i[p#g F[T4D[zG \[FrL[ h [ᄍP*J[զ [\'[bk[aqG [1]t[(`[n7A[ [iS[i[3\R[Sݭ a [c^c$? [`[$ c[ȂwD [grb [gr[>b [r [r[rj:[r :[r (#[r ,[ta[JX $[Z"й \˅sqZ \Z㵎\Dvܼ i \C#Xmt\vqxoR\ں \e]<) \v7]\ݐ \ zX \9  +\ӛ\ jb"\ pF\ $NEe\ c40 w\ c40 ,'\ $V,:Y \E\}<8 \}<8\!\Wc9Z\ILK\IL \}nb | \Ӱ(\^K\m s\q(c)\xѬ \xѬ\gݟ \9F &K+\פS \/R \MD4\f4/ \ x,\ x,\94\t\$?\XV\3\^ \^\^ \r8K\r8Km\T(2%\0g +\#2?\!Mg\!.Z\#n4?\$ۻv ( \%ӘG$&\%v \%j \&̑w@#\&̑w@\(zx,\(zx,j\)6n?\)Xg \*Q{)| \+cC\, =aK \,`mdnR\,j 4 z\,ۡd \-Jr 4\-Jrj\0ϭ]Q \0 ~(\1&"S\2dz l\2ϏkK\3bu \3bu\5Ό \6Ai \6\VvS\7P}0v\7E\7E\8s \8 B)j\8 B)k\9:\p\9al $ \9al "\:)g͆ l\:-&j \:ٗ8\:-< ^\;7ҥ\<>B\<>B\<@ W\ a\`?\^J2\^Tڠ9\^Tڠ a\^_[ e D\^_[ e ,\^_[ e\aM82~ ( \cL_ \cYDи\eJ,X\gu* \\gg a\ggEX\h ** \k1"Y\kǎ\lM?b \m <G\pY3Y \pY3Y \qh_ΛA\r)p \rgs\rt J \s8³g 2\s8³g \s" \tfo\tfo\tfo\u$Q=\uBd\vt8\y55NGv \zSp/\{QdR\|H2 \|$jU6d\}eΚC\~d;jV\~{w[V\V>.Pf \ V*£]\s\1 \1?\s6~.\` ,\1SXH~[\+6Y? \9#Vk \'05!\'05d\{ɑ \Bc~ \O\ \@> ]\"k\#:^|\HUt \#K"\K֕{k\'VkN* \^> \ S\zCus\ z,\l;gX \hh\LMp\^R\{B t \v{ \v{Q\ b{4!\+2Y \™ %?\ >\IE'R[ \@ \M0v\׹*L<\׹*|\׹*\\׹* \׹*S\(L5;\(C\`JOJ!\v'$\|4s\dP>(\Xv\t|M \t|M , \t|Mj\S9l\S9\ͷrP \P< \ӃS.\|ZB< \E>yI\& DlN\s} . \s 0V\Ft \FtO\U2 \0\\>r $\v d\@1\7QK_\@^ k\B^Q&C\׭Q \_S= \v( \O!4 (\;E "\;E \\\ \`\9BwM2\z  t\z  \z  \%>&'\cyגN \r\ş:\et0D\t"\- \-\6ɠ \E'\şg\zW\;+j|(\;+j #\;+j \;+j \;+j\cA.QQ\cA.Q \XuZ\4!I]1/d];{D];{[]z ]V-] Ϧ] W@ ] ?] [j] d:M} (] 5s] _ZS] IU`] }=vq c]|?R])KYbK]YBek]@ڈ]Rs 6]fo@/]fo@]fo@]eL%?!]ܛ]!ZG]zV1R]8J]m ,]8t§ s]MF]]2dm;]3.$i$]4"\q]44"]5l*C ]6sX ]6sX]7މ]8 IBǞS ]9JR@ ]9}I]9}K]9B ]9~} ]:V넌v ]:-<U ]\]>FV]? 3]@IUuu]A?S $]A?S ]A?S ]BS b]Bth\R/]Bwj ]Gǔ&j k n]GPFC]H~ Y]H&aP ]HN]IESTu]I^%E]I]jDs]J9t]K?)b]L}z L]L}z $]L}z ]L m f]M5]YSI r]Z"aiR ]\:GhQ ]\:Gh]\[aY2]\[aY ]]rTQ ]_ %]_]_/G]_Խ ]]bE , ]cG[Pr -]ci{!]dL'qd ]dL'qd]ee*]eY]g˧s ]hzm]i/xv]i&vk !]j$A]jϐZ^6 ]l ]mNٺZ|]oATk<3?]scG\]soGl ]s r ]sOR ]wD.> l ]w_\v]xErt]y9mXS]y9mX]{p)S ]{U$]|!m ]|p:- ]~䊟]!Rؤ a]+TL]Jj]ϫm e]Qk,K]"K]j]q]{] rQM ]hlS1N] 'C]B wD]I4A d ]$pS]hgC?]efRC]5d]%ˈ]Kh;x:]m;C8`} ]m;C8`}Y] g]N ]2* u ,] ]iI]K:`aN] ]#GZ]OIY];HgQ]"p̀]x\1 ]! ]s!p8xK ]vUӳZ]$&S]Ҵ<=j]Cs]c (K]8k]]s]4J(^R]4J(^N]~]\ ]M(]zG2Q],n|Ѳ ]8@:Z#] ]145S]O ]3d|e ]>IVS]>IVS ]>IVS]]bc ]X=Q ]X=Q]X=Q]7 Tp=vc]>1+ ]>1+b ]z7$\]JNT]Xiq)]IyZ+]U]UL]&bSZ]&b8]DlGj7]K"+|- ]K"+|-]ZAt ]k?]$U0 ]$U0 ,$]$U0#]$U0 ]$U0 ]$U0 (]F:+N?]gL ]_y]^ŌBk]T{jj]7R*BK]cVs]>{ 3].]k A],0],0]ȠD1[ ]kW?3S] C ] C ] C] C]]L筍` ]{_y]m pP]ĐϿ7]:9s ]M_A "]|D^ ]Ҵ!SP]ӕ ]*V]jN ]t $]&+ ]ׯ AUZ]٪+qfC$%]#U]#U]5@a](Y; ]p;wv ] L! (]o&[Fq ]er>uK]HJ],R],R]* `<:] HPHv]V< eB]V< eBw]nݾ ]nݾR]}}CshD]}}CshR]oj]׎f]n$ c]tN?J]tN?-]n8w]|@ (]6i]&К]w_0 i ]w_0]B]")e]>q c]hv+ ]hv+ ] "윸]Be@Hu]>e@H] `]䫻],tsY1]@0nj]O"'( R^ ]9 ^;7^;7M^R'K^ &$^' ^P~ ^P~ i^7Oec^f҇<@ ^ IR5I^ IR5^ IR5U^ IR5Q^ IR5Y^ @@"^ {'_^/JE ^"9 ^ ^ˉW^c9VP -^X51N^Wb^՞ya?v^cA=LD ^|DIl^ܪ5^DH|^DH^kaRz^L2^X/p^%ܶ ^ Sn^")ҍ s^"=r. "^"vtKo2 #^#} ^#L4^#$^#a^#S ^$z%"O^%*߂B|?^&mVdWƃr^'d^(&hXyxP^(鍓iy'k^(4C^(.C ^,@]u ^-s6 ^-\^2EYc ^2ǕZn r^2X_'^2A^2AY^3ư&2 ^57^80L) ,^8l%}j^:'ng ^:ܶCQ ^<PFFC ^<PFFC^>FFxW?^> t_ a^?4KfB ^@zI= ^@m@p^Bj? ^C8[^F&Z-D^GzO; a^Gϸ= ^G4/s&^H͘^H͘d^I Ş^KʻM #,^KÎ0V>^KÎ0V^K}ٺV^L^M?ϔ ^N\$c e^N=q [ ^N=q ^N=q ^Pw3+_9^P˓=nR+^P˓=n^P˓=n^Qן c^Q$, ^TCI  ^TrBm \^Tw ^Tw^UN@[^U^UmN^Um^VD֋g^WM?-Q^YҮs^Y]aS ^Y]a^ZM^^[6wzY^\#PoD^\Q/a -^]dGe^^lxjS ^_>;^_Ɖ^_Ɖ ^` p=f^`iy^`iy ^b[d^b" U^c!ըO# ^cG'Ȇ^d= Z ^e,jW^e,jW^e.bN^fƻS^gL ^i"b>^i>TfS^i>Tf^i(1^i(1 ^j҉ODG^j҉O^j҉O^j҉O ^j҉O^l3;gd{^m =P ^m =P !^m_s^oLtY| c^oWE: ^qGh * ^q> i ^q^ ^se ^vetB ^wozE^wozERQ^wozEA^wozEQ^w ^y^zaKE #^zqJ0 s^{ \| ^{ \| ^{pB^{^{7|D?^|:}^|:}^}RTR^}RT^~]Ud^nߟ!c^n{ ^o7*^1m ^y(NL^Q?^)D^  c^h<2^{>tga^{>tga^ B$/i ^}[ ^yl~-[ ^5g' l ^2rD^4T ^N2s^\MNz^"^4{z^r:X[^@|M ^7Wrָ ^& ^@>4v ^FU^q a"^0QK ( ^0QK ^F^t1^F^ ^F^K^ا s1 ^zf^r~[^/[6J$ 2^Y},˵s^)^,k ^^ ^"O' ^GIF*^GIF^GIF^ѽ<|˗V^ S ^)^sʜH ^ML& $ ^7M ^զ _^զY^ MB^[ d a^ j^ ^Ƅ* ^aK>s ^ u6?X^.ΐ ^ R*g ^ 85 #^;m^pIZ^ w`=^!kСL%^!kС ^FFX^u^L8Y ^ost^z?˸ ^^X] ^ J^<j ^<?^c@} ^JLj^0iYkM ^À l^Tl ^'D^pGSR ^6f!* ^)р ^v$ (^æ9F =^:#t^B<^+ ^y )' "^y )'W^ŶV`( ^ ?F5"[^ ?F5"^ . ^ȔK?sSR^ϨFzg^䪪'^ɶ?^ɷ^e+^e^'`L ^H i^-U1U^F%+^S*5, ^iLP %^f$ ^f$]^Ͽvw:^Nw{ P^Nw{:6^Nw{ ^ѵKF^Ӕ N^Ӕ  ^Ӕ ^ӹZR; ^՚'ѩ]^:nb^ءĆk c ^YCvz^٭^o5m ^^tER^㮉5 ^ ^t^&”4s^zwd ^:^Z`zoe ^;+ ^*R $^n.+s^M7 +^^c?^3B% ,^> bΦ^> bΦ]^Tw ^:t ^uCp^Hٜ:^Hٜ^}kv9 ^}/;5^Hnn ^w^ld^,5R^?G$^ [^rG< i^~~ j^LZ^ثϷU_b^ԤaY_\_-7 _-7Q _OR_o\,L_1u_s^h{ _؞Z4_Lt_ cF_ B= _s R_'l_  _m -_ ?_  f_  Q_ 9_L}㰛_~;l _ ðh_ Dtc $_ %~_ %~_ ci~i: _ |5P7_ |5P _ |5P 3_ |Ϗ_ jq,Y_ jq,_H%_m L _ !#_ Ѩ _=KltS_qNM _KYfĔ4_KYfĔ_W*s`"_l_|h'm_ 5?_ B>R8_[@S_[@S_A2} ~-_)AM_y`6(S_y`6(a_%(@A__%(@A_|c_! Gw_"Y=}Bl9_$<_$vI I_%[|S_&qyYS_&g'_&g' \_'r&_'56_' Τ\"_)g+ _)g+ _+dD_+%1%_/!N[_/sH_/r _1aܨ~oS_1Sc_19 j_2zڲu_2zڲ_3I*[_3v*_3OU# s_4IsDSJ) _7;W5_8C_H_8Uf_8<_9_|m; _:'!_:'!]_=lxa_='|e_>CA!_>$^4!_>  _?|u@ _?Q[_@5[S?G_@5[S _@5[S _@f$Y_Af_AR$| _A _A}H&SQ_Bn1h_B6$_Dgj _Dg _D_Em#1 a _Ev?,QR_Eq_GhWC_J؅!D _K'BG m_K!d_LbRS_LU! _O/_ܲ _O{), _P0L b _PrӱQ _Ptdq?_RC._TR_U,p_U71_U71_VspH _WqR%_W<_X9/P0_X<j=_YE_ZBd _ZA |_ZA _Z˭C_]vN _]^J__`+_`Qn@Y_`&MجF_`.ƋНJ _`.ƋНJ_`!Hu_a H;1, _b]Ϻc%#_c4_c4R_e-C9 _e\fdKd_f~ _h)_i9_i_i _iЁ" &_iB\)E  _l9 _lѠk_lѠk_m?_n2YI _n^f0_o+8_q9tbs _q9tb _q9tbh_q÷D 8_q÷D|_q凓_sΙT_sA2_sA2_uM nԑ?_u.2 _w>lh_wAt _x ZbYZ _xL7"O$_xsV_xsV_yz _y̽Z_z|F3 N_z~Qz _{L?_| M_}unm0_ b _ bh_w7S _o'_ˣQAB _ͽ"$j_" _ݮ_љmZ<_B4u_+ۺ_ E $_k9ˤ_6B-1 _]Y\_e _DV_DV_ٱB`k_ٱB`k_ٱB`kK'_ٱB`k_ki@N =_ki@NY_yL$$_ڑ>-_8g _-6 ~_G _܄R_7 _g_qR_.̬x _2cy{a h_ _RnAP_`{UL_/J'?_a,Ś _}x _ bKV_ bKV_!%:Y _셥D6j _HSZ e_HSZ_ئ D _덦 vv_4 _[x _[x_{"d_H gU_|uc 3_! _\9/*_=4_g!_ #_g!_ _do#R_Cr r_nͣV _{= _OB _Ȟ !_Ů_L%lU a_L%lU ,?_#" a_s9'_s9'`+_:a&`z(g_ `h`Ͽ`? k` y)`Ҳ `G `Jô` 57^n c` g ` gD` 0C ` =@ \ ` ^;Ip` ? `F_`ˇh`F_`ˇ`F_`ˇ `(ڟs `(ڟsR`(&6 `(&6 `.1 `ݟ# `rn S `0u ?`bU2`ׄ A`s4 `"vBX `uh`PQ1`j!c `R5ǀd` ͻ `t ``کa; # `ڰha `ierW# `.7k[,` ]j`͑z`kN`!\ II|Y `"5X :.`"5X t`"5X a `"m%֏`#G -`#+[Y g`#tg %`%aQ `'^t7`'oiZS: `'WQ `'2P|`(6rq ^6`(6rq `(r $`)ۑ `+/ R`-"3`yU `. ˌ i t`.YY`./⠣?`0=\`0=\ `1`^R?`1o- `3t}`5?Sw]`5'`5'`5'`7Po-R `7) `84%)`:Rh!+`:Rh!:`;4`<+#`<1 `=\p5 `=uD `>Ԑ`>Ԑ `>KK`>KL `@劍?b`A>4Qe`BE`Bڅ21b`C ^L`CY=`D 1n 2`DP!;r`DP!;r`DP!;rS`DmfƤF:`FRhD9y a%`FRhD9y ,`GDs`GD `GD`GD `GD ,`GD `IS>#`J0VL&I8 `JME$ `J١7' ,7`K Q`K K`K K`K_8 Y`L1`L1 `L1`M'{eT$`NRi | `NRi `O?zY)R`Q2e/P`Q?90`w`TZmoW`Uz u`V|p`W2{ c`XQ`YU/̸*`YU/̸ `[f~˼j `\ *Y>j `\&M`\&MY `\ԄǓL =`]AB@`^CS`aQ&Y`cӇ8> Ji`dĔHjL`eM P `e j`fž`gCyls`hq+q-z#`h֔;`i$M `iPeN`l)wst`l= `lTЪG`nhZ`ow`ow`ow`owR`o?"-`oԓl c`qܱ j `q=W`t"xo`vE.`vޣA`w8NmY `yE]KC`yE]R`{nKQ%R`|V܊(t`}˗(uj `f9`5F;s`5F; e`5F; `Ʒ1`[e[#`[e[`=a `h#4? `9 Bv`]~y! `os74`?Wks `g|[`JvO`* -t`Se/1 `u =9`y@]dpd`4s`"`\DN `& (` F/` `))M`]gXe \`8xI'[`~}&f ]`OQa`:C ^?*`@8Dr`"$`(9Q"`d `qD `Jt `Oѹ&`lX͇{>`lX͇{`?T`ˊ( `P]f`lk`wU|Ѵ `q<`+3<F |`@l:`@l `8[`i8`TE `ȟ5`ϬDD7Rk`vw0 `ؠ*R` G `FWac]=;`FWac]= `]b n `n`1}7q `g9`&D`kE# `:-|.`:- `fW`fW `y;{ \#`OvC`XϑrV`} g`Tfi `g aQ`U`co\1[`j2 `l2 `Y ` Qý}vp`eLҤܱ `m/n-C`վ7Q e `վ7Q9 `վ7Q{`,'g[ `"sn`Oe ` ( `šy=s`»s `?p:` }|8?` }|8j`T㕙 `Ñ(W~t`#9w Z`Z ` 1%p`Ɓ`ǂJ k`۬Y `ex[`m  `͍`Js`J`[cs`Ϧ75 `Q`ML `NW}MJ`hu `AQ `}Fe`ROw`Ŷ'[`Ŷ'[C`B>+`B>+``7 $ `s:ʒ `se)Dp`hQh)$`b `9Zk% `گk`S& `۝ vw c`Ac`?>b `Y$%`ݨ6` Ѵ`\iX`kBJ `hs`ht `h`hk`! \`KvFR `-"s `\8bv{`>2d `b[KY`攰t2V`攰t2``-r]`蝘/W `~ni`jH- `鿲 l`x˩`PP o] $`%?`%`%``x~`i @ `i @Y`ﰨQ9_*[`eҫ{ `ռ (`ռt `o? `xE+Q `3h$?"`TZq `Ѩ1R `&'t` K`ѿZ`IդQ` E ` C`kFb`O2`Eugd `^ 2`Hv`v,.@`.X&?`.X&s `V7"`c5J`=G: `2&# `Fr`aZG#a?j3ͨ NaAXr'aA? aBH aEU5 aGi3!T -aH 3aHVwzJ aH^0C+ aH}ݓy=TaIPx aI7x aJ˙aJݸ Z j aK@ aL"F4?aM'T aM=*2aM=* aNWaNƋ aQ; oaQ$ ۥNaR w* ] aSE .rjSaU8M` aUיxaVүaY[=_caZŮl a[AEra[gUVa[  a\ݨuuMa\8 La\8 #a\-a]tSBa]>bJ a]o)a^,䱢Ya^,䱢 .a^6 an5ȱan aqhO s aqhcIaqpK8as ڃas ڃ6at$7ߙat,Fat3 ^ at3 ^au3s.JdRauabQ au;avb] ayAZFQ ayүazrI azp`ۯ a{ <#Ra{XIa|h夈 "a|1 a~.վj a~Ou$ a~g;"a61t)$av^^ av^^? a >Ra aZ,W|8aZ,Wj"aD aiTo a/C0a/Qa/aaUYaWZ.aWZ.aWZ.a6Raf]9:dta~g/a~g/a8';OV] ar naMs> $a~৷jaQCH aV>^? aY6ga` }9]ar@? a' j!aJeaEUa|9YC 3 a{.?a4a&ۋa0  abھH0:a'v af`7ٓSa1{l caMtZa]a !Gza2ja6}X |aq8b aú'S#aú'La#va%^2b1aJA% a*W_pa*W_qaI]B- afGa"%S+?aH"W8aYNh aFUc gaFUc a8ajץaDRaDae6aƢaƢaƢVaYBV ajN aBX aP+X aP+XX aZX aEa)Zdka)Zdt a-~:a" aU82 a̾ +?arN1 "bHFO b:b;r7lb gbEfe!bEfebb\b]| b[_vb bO>!bO>? bo7bo7 b WHs!s@b b|]\qb 'K"b7ឍib^}4Wb♺o2 b)7babb"nf aPb"nftBb"nfjb-edSbXk ebly -bL,P]b_n4b_n4$cbAszObH)b4_@ba[M bg'v[b1b , bx' b _l $b.W;PbeWbeWb}5" +bҬdD bҬdKb?9=aCbrQSbrQS $ bF be_bE/b!]l b%>Prv b%h #b&iQb'흸% ab(jڋ b)eam! sb,>nոb,A  b,/sb,/ (b-g-HL b.=* b/FC b/Lb/Lb/׏ b/Q+8b/ԁxehb/ԁxetb0!rtiXb1 (b1b2&b34mb41f!b5mxu;!b5'b7 hLb7<M b95e|b:Lrôb:6h b:[ibA ? bMCw@ WbMCw@t bMCw@ bNV cnbNV cnbN<I bPN鱋q bPN鱋qbPdr6 bQH= ,bR7 kXS bRQ! bR%X\bS+~jj3bS+~j -bS+~j bS+~j ibT?kbUk~bUŇcbUŇcbWVbWe:+k bX \Qe bXVLbYU U b[mo!Bb^Dcb^Tu+ b^oQb`B+@Pba lVba]CbavL䗺Rbabb-_bbb u+j bbw:<b bcbcU be% zsbe48m ]begJ- ,\be=beϓbfsYbf7qja8bg|"ɢ[bjWB bk[ oZLjXbk[ oZL $+bk[ oZL ,*bk[ oZL bk>bkNtblt./ a bl쯠bm J bn% bn~~j-bn~~bn~~sbp@ bqt brT[ٰb!QhP ^bmÚ{bmÚ{bD?bp_^? bp_^sb3mlzb3mlzbtIP ,btIP?be " bk<|6t(bl~ bcj,E #bmZbͺbO<Lb| bpka &b}7 b7kbN΀ɭ$bN΀ɭb8q6{b% bV:DbV:DDbr/= $bWM= abWM= bPo3~b˂ bƃZ jbCb`QJ bzNb ] bZQj ,b- ]b6bc \[bur gb?H@brK obrK obrK obӔ Zb;K? b;Ksb5 b5?b|5ib|5i bw+ b(ܗbL^b );@_~? c {ӫc z'c \cы Pc'[k 'c(FuBqc(Kc+oz(w ac,|=(c,|= c-8 ~c. bH c.\k D c.\k c1׾j'%c2,',N c2- Y`t c2iL;c2iSc2iYc3W c7)j?(c7)j?(/c7)j?( c7zNc7 c7mK;@Ec9iϒwz]`c9\65 c:#-Jtc<L2c=Kuƺ'c=Kuƺ c=Kuƺc>Fܒ%c>Fܒ c?, c?, c?`sTZ cB=yPcBQE^ZcB/ cCS=s cC ۘcFBK? cGN(cGt cH9" 'cI}>C:cIꎴ)WacJ'aOtcLg&cMiߖ` cO @0[acO_W=~,cPO( cPZ=TcPs cS`g;; #cSiRNcSiRcTl{ cU3͞|cVTwfcV icW0w:CcW0w:CcWg*[cXcXStcXScYEyit) cZX-pcZX-p -cZX-p:c\Pߣc^N}|5c`pxc ca-ܣcbnONccnڥ) cc\/zcd,҃/ cdwsD cdaq1cegE0V|cebp $cgU:vcgjSLcTnScTnSc!$נ cݩ}~c&c^ cCc.IAcԨj2U7cԨj2cԨj2 caA<$cQ:c!:屃Uc!:屃 c!:屃 c!:屃 c!:屃 c4hc2H c|Qc|c'B c'B caKc;YC c;YCS cDoKc±Ncic³XjiKcÂZopcע{vcĭ֑ cHL^ ;cƩyg`cȒ,(cc - c˵Ncťmf cťmfcj:1.vjĉN4PĉN4Pcͦ0 (cV!ndcLQVB cfT cfK(3cfK( cfK(ch5P$c㸿Yذ csvc찭-J#c찭-Jc찭-Jc찭-Jc찭-J]c"c #Nc"" -cWxq cĖ j,c+DIcsccgCtces;ro?cZ06kcp c S cz&<cV:D c_c?ǘ1@ ccZcZcZdc\Qe d) zls.d5%HU[dڧ ,d5ޥ ad5ޥKd5ޥsdMLds5 d âHtd âHkd Md ni$d ho+'d mSkL d mSkd ^5vd /gMչ d-ɏ |dsdp P de$R de$Rd@ N~d7ܰAr% dYnVj.dwY dI[dI dul3 dhd9P dPZSadPZSdz- d;zK,d;zK,dqQd#(32 $d#(32d,9dd"HS} d"HS}Ld"HS}dYC[dYCD dzLi d~>d7?? d-+ Z d'V_:d'V_d'V_dt; dt;9dG|d Od d Sd_9~d mCtd!=d"A{ 'd#R+=HRd&.0 uCd&P3 ,8d&45bld'榈[^Ld(8-d*/0 Nd*/td*Kwqd*Kwqd+uI?)s d++td,Lkmd1PZ_iQd1"d2tp /d2tp (d3+*|| d5π^nN d5J|d5ORd6 -=d6Řd6Řd6 L@d d6 L@dd7,.3d8w m sd9Vٽ?d;|+_ l d<Is&d<$ d=T^ d>e  d>} Ǝ" d>-G}d>Ժ! d>Ooױd?63Mv5d?r)K9d@X!fQ;dA1B! dA{,dA}dBjNl Ć9dB}N-dB}N-`BdCJtLdCZ YdC/UdDm"hxdDoB-dGddHxBdI~:dJ!BBʚDdJ8S~KdK5p$ s dKJXW dL@ dSKSx +dSKSx RdSxu7$dSv1*dTQ(QdU@t.LOdU@t.d dU Wn#dV ?dWsK-D dWB|UdXQّ+ dX^X ,dXè?dXè qdZ|FdZI0J (%d\<NKd] , d]{g )d_ZH d_Em #d_(wPAd`B|c daO+lYI gdaIF dbu_ϝdbͷY) sdcQqq% dcD (-dd1Z  ddQS dePe`5& dePe`5&dfvdgaSps"dhĿ3O?Y diOfr dk2m3?dkd& g*dl ]dlu.;dnj~1dnj~1D!dnj~1dpD.BTdpD.B dqP}(1 \drKo)Fdse.dtoS + dxy)zdxodz<{wX dzt i3 d}TS/ md~ EYd~tn \dj jdqA IdqAjdb^ْ*db^ْ*dPP Adpdpdxֲd;(d;Q d -3d.?)d.?)S d.?)Ud!! dUσ d݀3d ATZ d}$d#Udꤴ4d# cdM#dl s5dtO dtO d0f]g d0f]g $d0f]gd0f]g df$hdk} ed.(VYKdͨ d+ޢ-\d/ NjX1cd\Jd\J d@ 08"d d 5× ,d 5×d#6s sd#6s9dW2W:dY4r9dd^8 Dd[-d&Y"d&Qd4?dd{n{]d{n dgz -He d>=3L-d>=3S dN4d3>9 L dƿ}?Dd)n"dd)n"dQd)n"ddJ t d #Gd&uԿ j;d5g`xY dQ5T 2d/ v d+vmp? dkzm dkzmRd:w'D d ]KdkӎDdyEk  d h$ d p8dIdL edf$rd4B\ dc.d1jULd7z@dYzTdYzTdYzTd;r,d(#d~Z d< &d< edV tdV|dd7=  dQnWdd7h d7hd7hd*7l[d*2Gd"y"dkRd8Fd9VZ!tdq[dM@dM@ d]tdťF dgϲv dƼm3dǘΘ`X' d@sdo@9Bd k dEod_ d3E) d3E) d3E) $d _!<d *d^&Wd҉O d >d-&; d6h}Kdս8-aLdս8-aSdg{?˽jd~@] \dS d dKx -dtTd;҆4R d> ^mT dޓ$z;3 d d'F.d߲* d߲*jd@W?d@W?$d&EW$d&EWd&EWdzi4 #dH dqt! dir": dn- d|~A$d|~Ad|~ASd|~A#d 9AGd莅X\d2udrP'C=dUd :* d@kUSdQӸ` 3d\աsJdڏO # dP9dg:dw]Vdvo cdbP['dbPd%@t d6*pd6*pRdg d"KdB!d^ld Bl Nd[+dv}D e9dJ eZ4 6GeZ4 6 ,)e3 + eM)v e0?eU( e"oö e)Ӗe֭speo3IL9 $ eo3IL9 eo3IL9 ,eo3IL9 eIse &h?e +;= ve l{G !e f e fKe y;qe g` e DMw !erƂu a]erƂut%erƂu erƂuberƂuke~wU6 eܤ+ee`e+Z e+ZLeϴ$T e›<eu>deu>deuz&e侇 edSece e6o9e$eaieAFe2Cl  e$W .ex/nei:SY4e+ e{8ekG (e? ee e`Re x' e $U|e!LKpe!G? e"HTBYe"HTB e"T\\1[7e"=e"(G$e$@o'& e$@o'&Ye$u:e%9e%2m5e&.e&Q߆d- -"e&^De'*ͧe(DDe(3e(JI%e* e+n*&:Zie, OFe,d4L e-Ocfe.0*seide.0*seie/6#e/6#e/dd e0I.Re0K/A e0vM e0vM e0\Be2 \$ uqe2 \$se2N e33%Re3@?e4l e6mRue8 'DH e8 'DHe:Ą(] e:Ą( e;M+UVFfe>* YQe>^ՙVLe>M e>Me>7"tR:e>7"t%eA4ih7eA4ih ieB'|s eCXbveDr'"LeDu ?.eEg eFEç eFOeFUyoeGL2I eIԴYeIw[_eI^~ eJg{ZwReJTK .eKub.NeKW eM eP42a?eP;CeP;eQ=z eQߧ,>eRuHQKeR ]eSPC seSTP- ,)eT\EeT\BeT\eT\ReT#: Z eTC8 eToW݌eWEqqeXn?ZeXF'SeY_kjoeZ3)eZ@(ӀeZ e[gΞS e]}_ie`(}،Ye`Pאe`n<x eanebكfeb7 ec  A iec<jec< ec<Sedkee8 efTU)eg^cjeg_I<?egJeg"ehߧeh0Z%B ehq u{keiRNjfeiRNjei蜏5~ej'ej9[ejt ek$@${ 8em}:eo6j` eqij8=5L erer qW\ <et;#E>y$evMd@]  eyyez!qezM:2e|J,e|J)gPe}e~OOI me-C j e-C ehڣed*ee˖R7N e\ IeK5eʈTe=~leGUx ae.euRe6a +eem.?eLtLyxeLtLyxeLtLyxe߈ % eJX2/e4}@5se|/*p e8Leiex`eػ elcpe9Z iMeȍphe/~eɣ嵁rYeɮa.e =N eNU/e͝Ȇ} eg$e2t/~ eϴJfeV|ec/mVeb0MEw e*e?Re,# # e5JI eE8e8t[ezN}RqLeȼc e'+pe|aKt "eݺΤ< e VDN eyh@e je e'_Jf e .e㉎tF? e`CJe2ʛ e%Ce稯w||eqw ze+Otje]@V+?e-Be-Be-BeUi e *eϻMZ6EeϻMZ65e嗛ȷ|e2LDe2LLCe2LS e2L e] e,q e\3 eUW >e?Z9|eo \ehleɛ Rebfej3ej3{e>ew2 !egA e<e,]ӣ fq`f40 (f40fr!6fMJD fTc#Lz)\fTc#Lz ,fTc#Lz fywrK"fUwT $fz'-fPfZKf/Lf*o f W Yf A[[Yf Q/]Of]|Kc["fTw}f?O fCN fGv.Kf j!X f9v fյq1Rfcu f$9}Bfkf#~[dfS*j fSM,Qfco=t| fHWb#F fYR/9 f" f@Fϕ $ f~Y?fPa -fPa  fPRf }J!f =ןnf =ןn f"|tnNf'Jatf(*;/f(*;/U f(*;/f(*;/f+G]!bf+R9Dtf+ZBf+[j f.Lav!U f.XuFf/Np(f0=cgf0=cgf0=cgf0u?f1zPf1j 7Qf2HĊu zf4uf4~hG[f4~hG[f5@ d f5@qf5c&^u)f5c&^u Of6*@Bj f:nmc_ f:q1Kif:Ǧ/Aef;%WL !f;)tf;) mf;Cա c f;yy[fh eJf>h (f?=&Fwjf?G< JjTf?G< Jf@$N fHk 2f&3Oy f+]6y=Cf>rjft)Vx\ fWYRf$ afbʞ5af5C&; fL6 f O±L fхQfs: fSQeNfPCa fūNYfcfIfžf:Ng gf䫻ݫdfKPs?fO>FfL3jfqqU fRcFSv f>ɀf>ɀ fSnDyXf_ZE" fVT5Rf /ڔf /ڔ $f1D fdRn1%f ef#-@ f#-@ -f afz_pffȅR fhVx fd阨fd阨fVϕ[fVϕ f'L fsKf{;$OScf{;$ORf{;$O f{;$OUf{;$OfG< if{m Bf+KfchkfόՏF  f6fǴhPRf+8N> f:,äjf#50 fXdk_fXdk_Lfݑ#?fAV?Wd (fC衲v*fd~1f͹3%)fζR fIR $fIR f]f`Z f_fUNЋ[fdO \:f"ߘ00 fAU f!mez?f!mez f!mez f50ϻ}f  f=j:f1Yz4|f=/ЇDfNi: -f.@xf98b'R6fBgh:f\"f)Mf9M f²^Jf*dn)Df*dn)$fò f-LfoY~[fɄWXfɉן = fɒYΘ fDd=fʊG (fjq)S if<ᴮfˮ='fLf|+Yfͱ&v| f6fΖvjf> 1 f)\w if(p =fUþxf5(f5(f4 [f62 f62 $f>\?f%[nt[fԚO!f=HFa fGfbZx fٛLjfڃ{L$f:v% f V %fZufd\{uf(_f(f0볜Tf~)Rp?f_$֞& -5frdfDʐ&R)fᯈ+f*9gw:RfU \f ? f!oشNf`uf/@{  foUpSf m f efj fsfrh f눰Z e f\"]f\"Xf\"'f&,fҋԡ kf3) $f}8u f%fDƵ f"Lzg  fI< ( fzlf vf[cBfXuZf[Lkf#>f#>f$f&7;/BvfWjfm Yf%p֙ #f#*)]G $gd}gx۷gM8 sgpAy]gTh(gThg3G܌t ggȀ6gc g.gt gC\hg 0W % g %Z g %Zg %Z i0g %Z g 2| g 'Bh g (gIR g %:UDj$grnI/ gC.b gLg:ihw gNX%NgP \gV ˂. Jg9 g9 g>6` ,g>wѐ igP[K g g?gT:s gKD gݺY mg{Y N g9H! gZlNOgga@){gkgk g 6jtgYg^Kg $tg# }e{ g#? g#,+g$0ѐ g% {g&a:g- g'g'TN g(3g(8MSg*!vy`P (g* H7g+i)ng,#g,z.w g,z.w g/'g0g0lLJ g2I]Z g2Ҁ !g3+z71 g3+z71 g3+^g g4-oZ5 g4iDg6](AbJ9g7f: Rg7mseg7d- g8f})g:$9ug;Bnt9g;G2"g; 3wvYg;;)8N8g;;)8Ng;;)8NQgHP?g>+g?T>XRg@έ $ gBfx?0gB:D gC?IZcgCF{WKgC_gFΣ ZgF%4gFv(#ƇgG2  .gG4 gV cgIMTW? gJqeEgJɠJ $gJI jgL X _V gN0H gO9IKr9 gO"jWDgP$t袸;gP;dngP"Vx gRhػj|gRhػ gSb`3 tgUj%gXGgZe/gZ|4ɉg[ڎ?g\N< g]#K g^j/qg^,!!g`|1Xu%ga\6.gavxRqQ gavxRqPga9' #gctge !ge@vMYBge@vM?ge@vMs ge@vMjgf TDWgg1[8 ggE߇Jgg̢ ,gh:YghghCgi r>goZ}>goh4gokbsgokbSgpeat gp6K\gqui> gsQ -$gsߋgtG'aJgtG'aJgt-h gul gw-r . gxZ|^s gz>PT[ 5gpu2 gGJNgE, g;tuK'g;tuK'g9Kegc3g>Zg #gHR2rg\^{ g[@ g[@Rgֿ~c7 g0kagƭ7 eg Uj?g X g Xg7Rmg[1 ,gTKm, gTKm,sg&ODpvg[ g,'sgyr gyr gKds$gbe/ (gR9g~e?gt%i4 ,gu51,g m .gX /  gX / Tgu bg PQQ .gYW} iMgPE; geg-g-g=g Ug{ٖ i gӍLG g0lPg*+9hj4g*+9ht4g*+9h ig*+9hg} g} g;cl g Ngl71hg:#ٖB!CghFg gKFgtN1*gY]0gQZ1gwgw[gwkg)iDgJ- gJ- ga9;Dgsw g|YP8 g Y gM\ gz!gTghbCghbDg퀀- gp]gnL0gJl gEE# g4%6 Vg}DAy gs`gs` gBYB (gXgc- igs^VDgs^VD mgj9iO{gsar #gbD|9 gc]T!gc]T gKJF gKJF gY>w g]T볅g/~ӫ g*R&g$ܞ #g#?g_V[ $ gϥgwa gg)Pk1Rgdܫ*g0pL (gEQigчp3 gLoen v"g½E?gK?QgK(gVjOpC gm̴gٳhg ag\q-gǟ-cg - gɒvntgp5x#gof}K g\'4h?g rg/4펮[g A+f_gBHUj0gBHUj g'=ghVdghVd]gѶM;gѶM;d gq#\g*,lhgCjg՘w[I \ge^ 9gֺd8#&gq8NrkSgؙR glxS?gCN gݿ[RgsЪXg WJ g "A g "Atg+g ?gܓ gޥw: ^g#m dZ/g#m dgRJ ?gRJ g'qt $g\OHtgŗE{g^|g厒(Ng#| gPaf1.gPaf1. g+V+g>ZdgcXB2gw7[ g!lXgF_'Tjgm $ gmk +gmk $gmk [gJ/D g=7S.g~oS! g@ZUWL:g@ZUW4g@ZUW#g@ZUWZg@ZUW g@ZUWg': gЄY ge^ge^gyJpNgZuKgw%d gw%g"WИjgbH\ g g4B[ g6Pjg6P Zga2:{ga2: jg/UgDDK'gDDRgtմ J' ,goXgTg3u~x #!g xM9g?fg8W-ej gTY hu h*@th|Ӓh] hahRh5"Hh F shfm?hfm h!'umh ) \h \Tj h @ARb=h R>H|h 8O4vh $\Y h y;h y;hzHŝh"+l h2hKah?UhQ s hsuChsuCdh&ju! h(I hh[:Yh ,+hZ]h}*=9hӇX6e 7h-< ; ihOh9)~hrG2 aXhrG2UhrG2jhI:zh!-Tvh!kz6H% h"%f)oh"yȋ.">h# =h#<h%th%vK h%wSKh&,[U h&n+Pݫh)n"_h)x h* ah+\Ve] ch,nx( h-vh/WHh1o h1¶"uh1¶"Ssh2.  h3&ild )Bh3Qф$Q? h3֖Nh3֖R!h4G[h4Iy5 h5e2h6tBGes h6|0h7FGi<]h7sh7e!h8\ h9Fx J 3h:)$hshO( hO9hP?ΦNhSQţO ivhSQţO i hSQţO i hS΄ hSsthSs hT`Up hU3H]hZ)Hζh[>h[PDh[ $h[th]Kbm5h]Kbm5Rh]լb h^Bȓb h^Bȓ c h^Bȓ}h^8 h_ g5-v h_ejh_0~ h`.|haP"haP"DhashbEbjhc*"#TUF hcǞhd=H!hgҢYhgҢYhlvD$hm 8) ahn6GF hoY hoR3ho0(z:ho r" hq,@ #hq{hq76 hsLHrh hsw/m ht, 73ht, 7htׂjht^ö huMhx8p #hx޼ #hxր 3hzAz '. hz[h{3Խ h{9m[^h~~Mh~Ն hFQhk hw.,eDh0cF:h0cF:Zh5 haRܓN*h)Mq,hshsshshshJqfR!h1g~=hǁ7h>[WheJSh.mbyhJ<aZhJ<aThJ<a$ hJ<ahJ<aah`Oɼ$hsHn9\h>.Rh92$h哮hm4 hm4 h\wӜhg-C hg-CYh4AvhZ hZ  h0hͶ dth<̚Bh͂k hSh=} hCsh(ٰi>/ i?  i?:gi?Ci?:D^i?:(i?:i?:i?|Ri?| i@E9|i@$-&_i@$-& i@ciAD+ޕiAD+ޕ[iAnqiBv]??iBv]iBv] iCj1[?iC{/AFiCebYK ciEMrx?iHhg]t iHwK>? iI'l iI'l (iIZLWliJeiK7@ iL-H n iM\KiMiMiMԷVriM% "iP}ZcKiP6~LiQ9eZ?iR1E-iTL'ti ,iTɷ;iTɷiW  # iXx/IiXzn9 \iYkiY}a$iYCzi[E3i[qDSi\z"1Qi\`i]I  i^X[X3 i^Ci_A:%i_A:i_LgL $i`vO i`LŃi`[m i`Нl* ei`@w ib1TIibb#icZ<icZSie)Yݬ&ifwB*23ihO. iitQiR ij=<vij*9%ijZt[ijWu jikU <,9ikU <,9ikuvilzh4 im)GURim% iqޱKir: is Ͻis6"DisT'> 'iu &ivQwW iw ppPixmxriyXO]4 izyz i{CvOp1 i|e)L (i|e)Li}X3 i}B}: i~{NHGixC *i˂Ct}it)5DiBiBF i86u ,i>S. i`Zm_i`Zm (i`Zm| i|AhgNi͡MT -i͡MT?i͡MThiϵiXiN1i6>Q i먔G*i먔G* iD ,5i i%xa=i%x ivi:ASiVyY?i#Rȡ_ i!4 #Ni!4 c&iS?&i}&~(i  "if i(ٰ=S-i(ٰ=Li(ٰ=$ib\4r?ibdui貱ERR imj!imj ,imj irki^`iH$rdiK:iq/ iq/ iq/ !i5Zyb eiG"|G iİ u|Xi HUiԞiԞSiicZesi=ԵZ$iΣG7iO3 c i%{ iTAe:8iПn)i7FiD*iD#iDi@fC@b#i@fC@biԮ w i|ni/;~ Qi/;~ Q ,"i/;~ Q iט  i׬|Eic֍ ii! iَg̺ih 33iW rɾ|iW~_yiۧ4d:N i(uÁ:.i}U#si3I2j iU3 ibiиfp i몕 viK„ +i: _isN*(R isN*( i?.I:D\i2t׋ iЖbjiA OiJܳGi( iF+i4@Kib igclf i+׳ im=vi&I"diX i\ i\i>bv ieO i i LiN#i[ (iΕih(@0 #ibp̖iv{iݡESiоO:i# ibNEi)]i+]i[Cf(S iofk ilPiHc2?iHc2 HiHc2 iHc2 j Hy j7kj jiGjVjLjmx%Ljmx%jWw0djs^1 Zj<j/5>:Z jlE3d "jljj lГ j F2Wj ,%PKj A+K j ݛ޵j BxAj BxLj Bxj (۟jS3j,H㳣j'_kj \{v jO( $jn C' jpsYsj'eY$ ,Ej'eY$sj'eY$ j8ڋ| j j$`j$`j+++QjtMajo;rd joaA9j {jZ.kj^,h^j'ƌ QjkR # j8Qj20s8j1 jlྲྀ˨ji j!VO%j j"=/ j#X#'j'q̊/ j)w|OYj)/j\j)D^L%*j)*(e ^j*Br j*[;j,aZkvbj,mvij,mvj-1 z2Rj-1 z2Kj.ֽliZ"j/O'-j0k\j0>4T j110;j3Ԋ#sij4!½U%j40KEQvj40KEQ j4~bSj5zj5,> ij5,>j5,>bj7{.a5j703 j8w[o j:ϓgp  j;x?  j<ĨcpCj>tBp; j>}Vx5 j>R1R"j?YA\jwG<jwG<jwG<jx- # jxX-8 jxj$sjyTsLZjyy #jz?7*R3jzzA'<jzN&* jz :j{fsv@ j{z܋Sj{zxj|pEAw9j}Bj\ 'L-jW-j,s ? jnPIjPv jgMZ jaj]`j|bjWahje- jSjj0oQÉ ,j3%nj\ j|Cj|C^j|Cj|C)j|CRjo(& jU"KjpyqjCg jQeajV 5j s`jM}NjXe$hjXehj?/ *jš) V# Nj?5Y#j?5 ajҤoH j= j40TDjC\ hju/` jŅ(jƲh­dj53j. jr'zjٟN{ ej/XzjO LNj=!jA{:rjX, c jX, \jlJ¥jj W'f jMzVKd jj j)cW0 jЪvĐbR jfN cjfN JjҶԂ M jӰ iQg jl,)Q jl,)jl,)Kj}H-v j՝Mj#² jnqC jj.`Xj-YF$ jC;d gj޸:A6 Vj4"j4?jW rj[-Jjᛂ=dSj[t j Ku jj4Abj?G kb"dkÂᶕT k;GkYˈ#L-k7>k k`4k >k"\ ko1Jko1Jk,4DF*NkcHQ>k ˘t8kk ϗS k ϗSk9(ƀ*kgkdkX+q $k s{S$k!І5/ \k!ɠ3IXXk"g2JiKk"k#.ݳ)Kk#̼Tk$BrF k% ltƗ k%7vk%j~Uk&Ks k&Kk(u#=[k)Kk)IDT~vk)r k)Fk*tVAt\Kk+Ƣ*K#k+47X?k+蝂.m k+;l^}-Z k0u#S>Ixk1< k1K [R k1΋:q|k3eMssk3bI)&k3bI)&s#k56m (k7h k9-\n?k:+k:`$?k;twYk@W!k@I{}TkASkAΨ/W.? kBo=hxkBE2 kBĕ- kC DaY bkC12w #kC4DoskCB |kC@5|8 kDlA1 kDd kE)z s7kE#/gkEkF9=10kHAj kHAjdkIo [kIo kJ6]RrQkL݆-kL7NW^ kLUy kL Z#kLˮ*kL&eskNk1 . ;kN}M'kNM6(kNM6 kNM6kP%Sav1kPϒ #kS60KkS60R`kS60kT,92 c kVbP kV3X{ !?kVUi iLkVUi $(kVUikVUi (kVUi|kW*zRkW! |_kXYSkXj+ ZkY|`bk]M/<vk]+k]Yvk^J~\#k^v#b fk_2ǛMy k_2ǛMy ik_U k_Ukaxka @ ikaФU9>*kb`V kb"R kc !kckcm}Ekcm}[kd$@Jke%,]kekf2Q$ kf^v`]R;kf^v`]kf;ǻ ikh ks>ksZpW)ktRC kujX͇ kw[v!kw[vkw$gcz?@kxqt<tkxqt<jkxҲ kzKkz32 kzq3e)kk{*ڄ t k{ԙ#gk{ԙ#g;k|LOUk|LOUk|X20? k|X20 k}Zk}Zk}ؿk}ı,kk~q*~!oL&k~D|kX# ak RnƎwkAG/ k$<kk ekYk0 1ksk  k  k ]k k kT;_k1kH nk@Qk5VtkS03 k[O k}rkjl]Qkjlk8t$ k;J?'] kHd kHNkkR k(7 kuskMr@k4;= k T kKqvka ejka e ka e ,kE8(kyk:k= k= r k>8 'k>8 jk>8  kqr kqr k3) ckKk͌ѫ k`Okg &k(jYpk(2N?k3ksk*hx k 1qD k=p3Nk4/ (k4/j k5 k)L:k)L:SkX;gGkX;gGkF*R (k'bAkw m k/Ah} -Zk/Ah})k~ kj}Rk) xNk2[ i kd] kNfy kN sk!!k!kqa,okĮ'PkڡG w kg#kċV| a kdCK k!75 k01f 2k4LvL ka2r:ka2rkuׂkʎ. k־]4k{s kSyks03Ck ]k9W %k9W kmY kƩϏ0kҷQF kV*|?'ktd:#k, H#?kHJ kHJkף[d`k״)` k52Vkgk;UǖkY ks^$ ks^$ ck>@k kjY? k5gC ck>Î) $s k>Î) $ ,ke kXJ~ kGk` (k:N kμ}kTkQf=}j k `;  k `; 2klakp k Y kTXӔ> kxk-1kLk `@^sckU&"MkU&"jEkU&"hkmakﯹFÒ;kG| kG| $kl]m-akDL c kO5 ak1e "kB \kkiڊY k k62R k1֧> k1֧>k'2Fok'2Foj1kQR詗k6jwkVO6S$kVO6SkCMokCMoYkNdDkw k Tj lэ lgF?lk.YwX !l-0O l={li^$ldNP8O^lx$ ^ lx$l?l> \l:v>7ޢ?l:v>7ޢlDJ,& l3RH a lPldlYs_FIjl PD0ͩl \l ha l ,>Vl )`o al l{Bujl[[Llg [loQlWڷ lWڷlWڷlZ)K|s l<Ya l1$ l?l;#plx( l36Dl'V=l'Vl'V l?lCp lW =l3Sð lߦ'lG_Nl{ )[l~ol i l2h(l; , l; jlt2l Pl"L_jjl\l=mdM҆ &l=}D,l> ̗R l> ̗l?#+!l?#El?#El@0}G8Z@l@7Տl@7ՏKlBhH| g lB'< mlEpB lF8{| lF).lF)lF"GJ& lF~/%A lG20 lGfq lGfqlH KlH9bFptlH}DV ilI7- lJ&rlKeCP WK lMlN_쒩 $ lNJ%lR!ba?lTS[{1lWG>JlXD lY@=lY~ p[lZrmR l[ 0Zl[{Dyl]^, l^&K l`0543_ laK7NO lc z lc*ejlc*e lc*e?lc2ldi"?,ldi":ldyslexw lf͕vrlfZuzz;lfӸj[lgS@ v lgm alg#lEQlhF lhF lj ?,lkƨ ll#?8ll𫸥ll𫸥 ^ lncx,lloP ;lqIJ K lqyA lqOtlrH N alr S5lrز3Zls"] lsc? lt2lu/tlK lw* $lwiՄ ilx)5!h lx`xf6 lxx_έPlyfs&j lz"0k ;l{PSx .l{VO l{\5cl|9Rl}FRl~!x\ lutKl' l!) lr=f l@{Blz 6l#eW%Rl7&wl7&wj l7&w ;l7&w 7l7&w e l7&w l7&w l52l&%Nw rll(o\$lRe lv)݆#lMe a%lC lK $lib5+vilib5+ plν c lTlSQ l}@ jlg'l1Q&dMl1Q& lNYlq el l lK l lQpR lT( al`o0 \l0Z?l0Z?sl1K ?lR \l;bb ilN6cp gl $K l{MWleF m lcJl b̾sll-`$ll-`Ll2M5k $ l2M5ktlU1BASl7 ,lY;pflY;p lY;pl? lY2# Zsl<6mh l<6mh\ l;l9 lEDpO?lzwSHR{l&  lf>V. l8lKNl[ψA[l^SBluPܷ* l_MA l_MAYl-Ql-Ql-Ql~. !lCU^h lT=5 lqCdu lqCduD l8l lRN ll?*lASXlaqUlaqlaqleKl+@l lw?ZlIƄl¥[ail0KlwFvlqŘ\ ^ lҽ:dlNkTr3slijlĨϑ5?lG$ly,GǚdIly,Gǚl˵>߹`l ]Gl%blzsYlȳ)6elS@(l* lNuelx}D lg lq xLElq xl"! l"!9lTA㝆 lTA㝆 l&c!l&cDl"7ǭl8ƀ ^lK@ Ոl͇ `l"Sl],l> RSlӚآ9l! 3 lwttE?lj pJNjlڠ=lۘݪ-QlL)]Bl=#klOZ"lOZlOZlpH(rGhl#gflSl.F9 Nln"lMLHV8l^$R l^$R , la.Il㽭H&s l$YlaBlLel lLelsl׹%Uqlx0*l l76l76 lИ l؜l"V ld=rlՐhy ldTv l(", ilY"luۨXluۨXl)eN loc n lLU lLUlƚ\slsK lsl#  lpf{v lE{cl1xr'Y lި+Em?l4KrSl4Kr5l4Kr%l4KrlTZ l@B7%l@B7%Rl7_3dl(d?l(d:m!p]cn m!p]cnYmǎNm sim6m): m6- sm> m>jm{"WX1 m EVMm36 m{C'#m^jİ m^jİm?uɐm}hyτ =mIh&vtmccG?msM mӳ1m^,zKm^,zKmΘ9uKm'q`gm3"Om[:ZDm$?m$?m m:mHv+! mF_'m;0m+͝mg*y m:@Mm l_Bfm yHm yHm!ʘrvm!ˍۼ m"G0Bm#&=R  m%f m%ړcm&vC+m&vC m&vChm&p9m&'i m'4*m'4R/m(}Udm)JhK Gm*xt m8;<lm95T m:MV{V# m;t],%m=ۨ*; m=lsc)m>/Gi&iL?m>l\2S m?*m.mAB.φhmAg*YfNmC+YmCNdmDۚmD͋zK mE~imFK] ?mG` D mHE  %mH-oVmI(VVmI=ު mI mIo- mR̺t&cmR̺tmR5jmR mk%cS ml5'PS, \mlG$=Xml]$Zmn-xmnD*Mmp_6T mqe=ms]RELmwim/mwim/mwҳ4mwҳ4mwUqwmxYmx *mxemxhy$ my[pL*my[pL? my[pL my;r"Rmy;r"my;r"myysb?mz>.T|PYm|a | m|a *m}('ݩm}9JZm}9Jem@smArAmu Z cmu Zjm8/ m):/ mFZmk4 .m)ymRm "^K m "^ mwMH0mYj mYj msxҹ gm|2NAtm m~ڴ;mbmN ml_ $m~$m~$m>bv am37frm J mVu]'mhL%$m^ m  cmwcN mD}bN m(WC m*q%m[l? m xm0" 4 m; dm; Em(MV: mLI m2Bw e*me mNX$)//mXW9?mv+m6 CMZ mڈ.6 =mڈ.6 mv#-Qm" m3 "m%3Rm}ΝF im"c<mhzYS mpD_A$mq|m"†;mNm2A m ӷy $mWp amWp mӊ# m# m#m,ޞ=)g mM; bmzka m(Dޚvmwe \m?mN"mN" mM+mYfL m mpR mI2mɕIm'm'KmڏBd# cmj='Hmj='R6m3NmO. OmO.mЭuUm ?{C mū!5Km,|{ m7a`y& m!NMem9 #m8$)m8$m ܴm\eLNUmL5F myIՑ+mJmЗl9mcau$ , mcau$mn2 m_eVtmրomֻ: Rmy(em{b)m{b) m׺t4Dmη6 m` ,mU mUm]dz b mٙ6cOmS<-f m[C{  mNWm!CmW mW R2mW miWs mt(|]mBr<1  mjmSX3mAkm&fmMk Lm{pډEm%~} m%~}jmLܿ m0jP m窃~m"@wbm+mfLv#vmmY=sma> buma> bma> bQmaermپ"m+J0 % lmWӘsmEXmm[Hlmծ_j mծ_s mLPD:mkam}UZm7 cmHEMC ms( m%qv m%qvjm-& ,m4m~7 }nEnpԧn1ts{nf] ncxncx ,n򦝽 tnܡRDnܡRniepUnMFY nMFY n1jvnEQ nm{n? \n UK34n WVA1n p#%+n jcP'~ n jcP'~n jcP'~n uS n c c n톸n톸n Iݭn in~)ejn$0>n$0>qnwLnKS\Vn~S4n~S;n7n2lN nF:,l nF:,lnY|,n憞 nCˑz n2A1n^j nP#n":ZŕCnijURnij)nij]n~yInzzs nzzRn$tUtn$tU#n]35n68k$| nRp$nRp0n p#j'n!xf[ Nn"> n#+Fjn$^ n$'5n&M_uNPn&M_uYn&[çj , n'x , n)"c/:n*hm n,>t /n,>tY-n,WFn,|Ջ{R6n-uLLn-uLLn.`oyn.W\n.~g}o n0s*H}!n0s*H} a n1Adr/ n1]dn2}92n2J;ˡ +n4-pZjn5MS}n6 \5(? n7Kch-sn8:Z8, n8GS{ $n8/n94n94n94n9RRnQn9RRnn9RRnn9RRnn9RRnn9RRnDn:?-Xn::wkn:\& ,n=GYfnn=0}8D , n>v'!Fjn>v'!Fn@A;? nBK( (nCu![nCu![nCu![DnCu![nCu![nD02nEޑnG>"n nG(tYnH+R?,nI.,bnKǃ nLto XECnLto XEo nLto XE nLto XE nLDǣnMAKM,\k nMƒyb{ cnNG4jnNj6jnNj6snNE"lnNE"lR nNE"lnPR!+/nPlH nQ}2SSnR6>nSfLܢR nS $6nS $6nTB]nUKAnV2inX`nX|ConYlWX+RnYlWX+nZ~MnZ 1dnZ`'1WcnZF anZFn[Č/, n\zn^Mncv nd $ne6﹐ neZTnfHۯob nfD #SngYt5jnh;ޜk$ nh;ޜkDni#)I ^nk)b#q nliՇTnlqnlq nlqnm~ $nnQc> S1nnQc> nnq[rPtnqD>_nqb{ͺ nr,DZ8nsl{ W jnt46xZ nt46xZnvz7nxF]]nxF]]nxKb nytU  i n{}An| *{ n|wD n}P\NĊ \n}P\NĊ? nc-k)D nVSndR nbnSryn)d8!n)d8!?nKunV cnJ!nPlUE nDXjn9`t \ n9`t "n?ӥnk_@s n"XU Q+n=kt np0?nU QzSVnyp: n ov|n`ARnt}/x snt}/x ~n3P<nHIÓ??n뫶 *jnp;n4P P# mnW¯C[n^/I i nz:nŰH #n3Rnt*W 'nt*W|n~8n~8YnP>mn?҆nm&=, n^6n{]bR nnm nvg7hbnvg7ht n $n4?qn)%[N0n9 \n]auJ+ n'on<qn%L ,n%=UnWnޝ% n fCn#+"n#+" (n#+" \+n#+" ,n#+" gn#+"nN5BD nUcfnUct(nUc nUcn{YimnȎ nȓEnӉSDnɹP nk" n{+Qhnd2C nEVp{n adncqrf nͽ@9?<nvn{@#fn  nV"#.nRi"nIȥ$nѼ~ nۃ/ cnu ns{W nՖ]Gnڣ*nEScnq&nI "LRnI "LR$n1Ό , n/%LKn5/?nXië`nXië`=nXië`Y5nXië`*nXië`L"n#7u n /Rn%!n)n;qvnب c n҃@ an~|fn rҎg n/!n/& nI Rn̫y9n}o Sn Jn k nB;n <sn jF/Kn~  n~ n1!Mn#U n#U&n#U a nfXi1<nfXi1nxEtnCHخnX_/rng1M,n gr2 1n_; i n⽱kn.XlnCut nCunZ:Fu(n({hnXIQQn󠣷d2n7n^vsj:Sns@o= oR)KoR)oh齖 oI*o Opo 燓o ? o 8hT o ]m= o y, ^od,R o=RA e!o=RAs o=RAom14Dov# oAJb$: okK|oPA, oe; $ oc5oo+4&o<[o<[ eowo^+XR oc[ o Bs.@o>s.@ o>s.@do?yfkY oFtՏ4 oFȠPh oFϮMoGSH&=oGSH&oI P[oI58+oI58+oIv^SoJƂS>dDoKI~?C oKd9-$_ oKAuoL%uжoL%uж oLP"KoL#/}oLҡkoMK,boMئE- @oMئE- oMئE-oNZ9 oo}UoL `ooi)F- o٥o=ד o,-i o8Ήoco/goL (oL]b o& = oB8oθ. o%)K[ o^l\t o`9)=o?o]oRK?XoRKjo Eo(֪ZotS6op(9o*ڼGbo! ,o!oI= o  oR |o=W$o*=[l]oԷ5oԷ5RoԷ5RoԷ5BoԷ5S?oԷ5+oT-o؆2oO5oO5oK.( ( o[E o4#I oO"6 +o 7ՃoݰoZ2Gowg} o-"p!zoOVe oĻ&88 ox,9s'ox,9Rox,9joYe!o o.\Uo+?ЌoFK*on"D oJ8j oʌ/u o˛oZ! o̮wko̵/o0; so}g/o#  o1-ȟ oEF oVH _M|oVH _MkoX?&oӟ<' oTc 7oTc oy ho՞LT ;o8MݣQ oغ[S;oغ[S;YotHoܳ]o7hYo}w(To1N opy)?$ oeb %oeb  oeb o0]'Y o_^ oEE@ oEE@- o鉚/B o ۷>oro/d6{ oO'D?:o6odxXo]Ѯ^wTo񹉘m<`s o񹉘m<` o y"o yj o]C oO̬oxw ohi 1ooYoocA|WKocA|Wo o//Շso//Շoet pry $p̒\p̒\pP _p. 9ꀊ p'Z  mpW3y@ IpW3y@ $p 5p8pPr p Ssp \R \ p \R p ůZ p ůZFp ůZd p B\/ p _ xtp _ xkp _ xKpJPKapou-pr pn bp9~ap>/]p 9pq@_KpxO lpVDX ap;;s(Rprp"|F gp2 eNp3հcM jp/zp#x1 #+p;l[ZVE p#6r #p(}ڧp,s p4/ p<}|p ~ o[ p ~ o[Rp"%`Ҵp"%`Ҵp""VDp#> p$i$ƶp'xWF_p'!? p(`Ajĵ% p(0WLp*koh+4 p,ozp.mqSxڡ#p/( p00ڲv p1nwicp1nwic hp2lVp4b z'p4b zp4l7.&?p4p5|p7[{4N p83vXk . p8#/p8*^<[p9 $p9H؂p:-W5bp:c p;nsJ  $p;#OKp;wN*p>;?#p?=.;p?=.<p?ɭQ =p@Ԏa$pBXRU/ RpBXRU/ pB9" %pB9" +pCci]GKpDO0G[^pF|@ pF!0zpGV,:^pGV,: pHmLyZpH ZZpHpOUapI2SpI&spKS> #pNb@v[j pNaСZ0pNaСpP̪ڦ\ $RpP̪ڦ\j pQl9B\]pQl9B\pR4 @K pR3\xpRM=jpT1i[pVSzpWSpWSupXdq!/ pXdq!/U pY97pYdWpZ^OMp[mC}Rp[isp\PT p\Ӝ^usp^sVt p_uT p_x?*p`Eu۫8Y#pb)1pc0pd#)*a'peTNPpf apgvj,pg~˵?s ph'20ph'20pivNqrpj{5IKpkz^wJ (plE`plE`plN/RplN/dpmf Epmf Dpmf pmf  +pm}# pn4iqpnJ pnC po a -spo a -pokaUpokapokaLptn1spůȌpwt}~ -pwdY/"px vpyq]pz kmZ pz kmZpz kmZp{(% gp|'q p}Q 8pTFp{eoiqp/fm=-;p jRpV yb]p.H4F p U (p1Kzpp%-vpst pIZK~ pS pu6Yv pDmp銥$pi5W@ = pc%XWދp…w Lp“?, -p1]p|0pĊch \ tpĕspĴa ;pĴa pƕ=L pf pf Qp~Rp~D pƌd}NpƵS5pƵS pƵSpSw4ap%–p?p3ypɫ(pp13`\ mpuB>pQr4 pQr4Rpu~1pA-spDpϰ9 pKHxZpfGIjppM6|?ptM"pӰ۽s% p B(v pT]6 pg8ʾpxwq pJ.:SpJ.:Lp֜ҲOp[](p Ĩ,p)=TCL3K p;%hpJoM;pܬ4c p|Ō9 |p&tB #pj_. Z pww4Ͼ p[m_|p'3NRpצ ,pU#p5w apO{>pI6pIp32Tp;<pqT;pynvp~WL p 1$p 1$ p6 p1*}G 7p1*}Gj3p1*}G ,p1*}Gpї_pї_p6ZKt pLC(BpKpo #p}Np$O|4 ,$p$O|4 p$O|4s p  qU2 qq?d 2 q]/-$qB qBAL q"[qg:k"q0wLR q(5gq<:q<?qD,(?q N cq bN\!q O9 q 9fs0q 9fsL!q  $q  $q S q IK q}4 ^q& kq& q*YYf q7q{j(E qIVpڶ;qIVpڶ q67Sd;qzn2f )qzn2fqdNCql-) qE3 qZ6_qO q-]q ,7Sq /= #q!zQ] q!R0H} q!R0H} ]q!ysq!ys q!ys q!q"bZ+w?q$r1 #q$7~ q% z9&q%Xa]q&|1I> q(q(5d?q*R8d ^q+,u-q+Y[f"Bq+_# q+p>oq-?&=:q-;l q-;lq-;l q-0@[18 q/@q1MqTq1[&6)H+q2qo q2e\0>U<q4Ow q6Bi5 q6v̧d4q6v̧ q6v̧q6v̧q7L [/ q8 (#dq9YLq;~צ q;rq<Uq=0q>kY @q>ng-:q?`BϴI q@)8 *q@߿6 ^q@ KqA'j qBJfB DqE)5b#qE ޷uc qF/eikqFj4qHQ6h9 qHWeA qHh"qK>Y]N qLζp?.qM؜ 5%qN!-yqNLY%qNLY%qNLY%qOIX3[qOn qOnqO}Q(qO}KqO߶C qO!6 ^ qP< >S(qPEqQ x $ qR-X+qSAS ;qSC%qSz?jqSz?qTHUi*[ qU/6t qX t qYeS.$jqZ"yq[@>u1Qq[t: q\̊iC2q\̊iCq\̊iC q\̊iCsq^3 q_GdYq`*=+q`s; 1jq`צq`צRqaB~Qv qaB~QqdA2N8qeJ*- -qfGx qg:*[ ,qg:+Wqg/vxkqiqxgtqim qjQzȕR qk\ Xql֡Vql~`^)ǁU qm^A qnZЮqnF Ig]Tqn[# qn!y2Uqpi#m "qqhv]5qs* » (qtnQEڐqu#KOqwP 8 qws qx]K q{aSYq}۪{$ q} q}~dŪq~q}`2qtHqqb[q\ %qa(]Rq.qWWCq3\q/Uq9`Tq}Fvv qtfq)Dh{B q`q] \qSA qSA iq)HTh#q)HThq×A9Iq×Aq QqM:-qM:-YqM:- qi.oqi^9+ $Jqş3DqƒJ qqBۡqqBۡ (qqBۡqUzq@mqXq\G[qb6c qqe@qqeq'f% <q-< (qJbqehqKQWC=qKQWqԺ k q֌0U rq֟di#[qmqeX?;q؏‘_yqx \)qވE qRq+VsqߙԐ q㛐KVFqrx qrx qL qwiHqlq qnמQ q/q4XalqʊxS>qʊxLqʊx$qʊx q\P q}9 $q$dC9q$dCtq#tSIq!Lrq;fq+3fRq5 # rϒ;!>5 c rݐTlOrSB 5r:ۜx( rg=/@F Drx.lgMrbVr r= mr?< $r?<r0rl7r&Rr /(ctr ,r!~R"1r#1^ O/vr#J2m?r%{Mj?r%rZgGr%rZgG]r%?ވz cr%G ( r&9r'T|t.r'e]kAr'/ r'/ ir'5^x r(Nz r) J }%r+!p+ + r+H%W4k ir+Z>r,s ?r-P՜r-iE0r.O< Y r.+$lt(r.+$l r.緗R r/L&r1jr1jr1K*tr2.\Zr3;NرRr3wşr43at^ r4hA]`Lr4UzPb r7-j c r8-&? r;}O er?o0r>/.cr? &23 rA^uU!rAɽ 7?rA+rBg30;`rB( rB( rDU,rD'q [ rDku̓VrFh!C c rGU{vc . rHDZBJrI5SrI`pJ rI`pJ rL"#rLP&9q?rLs rLK4rM'U_ rMr4LhrMYZwsrN-\\L rNxYpFrO ( rQ-z 4rRr2rXU#bՏrXU#bՏ/rY~LDrZ'T r[9#zk r\z g Ur\z g U er]1r^r_%xdr_yr`aZ2"r`$@] rbB͉KrbB͉#rb]*<rcse[ rc#C ?rc#CKrd?Hrd}^X rd 3%rd"j!hdreϓ3 %\ rgxUri/1rl/ lrl&sjrl8ZzTdrnLK+|{ rn?ҩkroڍ3ro\qby rq+8 rq+8?rr.IWշlrrr.IWշlhrr.IWշl:rrtĆ{ rs4 ru0Ѿ/*ruh2 [ruhbruhbrw[+w25jrw$ߛv rxm}rz.Z #r{fwVer{۩, #r|v'Yr|v' r~d)!r~ uCr~ uCKr.{(#rnxr/a r# r# r*/f()r#=Vrܐ(; crܐ(;jrV ,rrw:RrꁰFcrgo rxkt[rcTq r+P7ˏr>WF*r>WF rD7]V=r[m, rD5/RnrD5/Nr}s #IrDs r9|rx~rxbrxDry}0 Wry}0 7ry}0Y)rEiT rs \ r4CWrBEpXz rՑ/vr .+drv*ySrv*yS rZ#]4@r}Br}B r' r' r]v # rAz rAz e3rAz rAz brs%w$ r0` Srhm}rwE/mR rH?|rSLVr%XrЭN r D cr irrj sr (?rop)rop ropru ar MK r]P{oo 6r rssr5;ir5;irQ L r׻T r/x&< r/x&<N rBSWÿS rCh=r%: rR2b rpOnVrpOnVrpOnV rpOnV r0rx j r@5Zj?rpb r:rن_}3i?ryDG rۀ,ANr rJle2jrܵ"M(Drܵ"M(Krxŷ brݸM܀rML1rMLQ rMLrd#AKrl#GKr٦ (rj@ruK{eCrhKB3? ri-r|?ycrFBr{ߗ rZ *B:>U s> s17>sOWWZ s^is ^0s]#w s^y srǑSsE_:#c/ sJp)F[LSsOr#_J ns'ϵ@sٱ)б sSss̊-Ld %s0xN[s G/ۭv_ s u{s"+."Ls"Fs+Rs# s$V$s$V s$z yPs%g ʴ c s'%% s']/  s(G^B>]es(G^B>]s(G^B>]Rs)MV s)Q eP s-x s-x s-'ts-R`bs.-`Q5s.}* s/UTUj?s/Pgs s0LDss1Nls's1Nljs4;m; s4R&fs4R&s4}9Rs6"*Os9Zs9tuO (s9tuO s9vKs:.AeUs:;s:Ħ sġzs>ġzSs>ġzLs? |;s? | is? |ks? | \s?Af+$js?Af+$js@F s@sچsAfBtLRsABdsABS sCYР?AsD" rsEX$ό%/sF kP?sF kPssGveA#&?sHiqR sJ:קsLt (sMçsM!jsNH*tsNo) #sO>`RVsOf|vsOkYlv5sPW{%.sPW{% sPY,, sPm #sQ[hQsUY? sUYsV1ˉ]sVJsW椴!P%sW椴!sW椴!sYO^ sY1 ٯlsY1ksZsYSi jsYSi Y:sYSi  sYx>sZ+m sZDys^.递e cs^O-7 s_ ?8s_ h s_%#s_b݇Qus`ɀ" s`IR"saJpȌsb6 ˙:#sbv_7Ysbv_7K*sc%PTsc.r sc7]|sc7] sdCce߂RseseVpP" sh + sjSSsskslBi sn(esp5Q҅`Pss1N#7stITϰi stQqMKsto m stdT!svV>y sw!u; sx_ڈF8ssyuJm sz4)dr s|p|k{s}ans~bs~h?s~\-%sys"Ο(s yss ys4E| ( s4E| sg燀sɅ7 sgׇpRs] jsTJ ,s=m-tNsƐʐ2hsƐʐ2 isU s,  s,  s$]sQ6:z/ s|Lsks Snr ,s\gsTCsio<sa s4% sԁfsԁfs:fOsj|<s^DSsRsKs*E\:s*E\ s szh.szh.s1m>sۧyc $<sP$ZsgϽG,s s^es$(k[ sJm+Zs qs ࣿ9 s ࣿ9s s5{ s`n usT4CuWTs+!SzzsI% s as.x7s^$K sUG-DxsUG-lsUG-s$sƾ͠js_iNs^ cEs^ sTԁs17{ *s_Is_Is*4s\zRs1S0Ks1S0KslsqJOuj4sqJOuss̮97&s̮97sb='Z sf$ str>Dt`m/ tI at8qYLt [| t t ]t ^$?t +nt M?tGUTtꝯ (t2tzfthAЀthAЀ tz6,tz6,t{Wtq3:ftt t&- a tm $W t' t i}:N tW{tt<|;|$tt&aat-V=x#t-V=xt1, nt1,?/t1, ^-tftZ tKE]pst@ t:{]ot P|t!r>_Gt!b4t!b4t!/S]t!к!} $1t!к!}{t"$ycv t"sP0 t$ڍ t$дHvt%lԈD $t%dft'4 ; wNt'?`W' t'TaT95t'{x Kt( VݡYt()e# t(0tt)6\gt*018`wt- )Ct. ]2 t.͸-t.͸-t.r6vt/d t/d st03ct03cLt10Kt1$oG_)*t1%wC t1ebUD t1pVˆt2Fw t3KDm t4=fթKt4Ct5\z t5`"vt61c0 it6=Kt73}2t87Hat91YNt:=At:ۍ t:.=t<n/+t>v:v ! t?DCb]St?DCbt? HQt@`st@3s$t@3s t@3stAx$Aoe tAhY$RPtAhY$$tB1<tBR"tDf]tDۗ%?tEl@?*tF}|LtF@T?tFtj9tFtttFttIw/ \tL;mtM"9+  tMT}!tM&A{tM&A (tMvtN40i itQ;zf RtQn]=tSXOItTTVwf tTTVwfUtUXņy tV,!KtWByvD tZ_XMttZ6%$]t\$РF t\a^ c,t^qFWyCt^y>tc^0cjtd.05*te7te7Sth9"Wbti7=x \ tib8oti'TftjWÜ}tjQ]% tkH9tk~ tkctlm.= tm toivCwntp*g tp./Ǔtp./Ǔ tq/ Q&tq/ tq/ tqmT%?tq%tuy~GetvDsx4tw]tw { ty^et{}$-Lt~=&tawL to1ZKt>zttctG*7̙ .twjVt8N8tHt_‰\ t#'C|ttSYjttSYtUrtJ tB?utgX tt?tz tP6tP]-tP tPLt,fmftҦVQtaK@2 tzt#Zڋ}%t~VtoA5et2Lt2LtA& t]8kSDZt~+Y*? tW ]Y9tW ] %tg>Ihtg>ItQHkt󤲿zMht󤲿zM t󤲿zM , t󤲿zM t{-t+uStZF ct ?t" pt=Yt=Y tYGڮ~ 1tYGڮ~?,tYGڮ~ $ tB't+ʓ좆Rt=ak! itC & ItC & tC & t_("tA;ttEv ! tY gtʹ\" JtZ,[tl&vZ tFXϵ itVxhGd t{t{ tF6) tF6)td?dҫ9t;]ӚJht񫓧_tN4L?t\Ut Utl77W<taGtд({t }ktK] x,q2tznt ,t6Yt6Y tխ?t{iLSt 3S t 3S ?tp]EatԵgׇ  td tn9 ]t`L1[ tkn;t[޻JGqt]gktUqtUt~Ėt \t.x鼀 rtf tŨ+t$&]tU&tU&tU&Qt4 7 $tŐ G U tktotL[ㆢ['t1WbtlRڦ tǹtǹtǺuZ$ t;NtȏVT tݿ N'tʴ* tʴ* . tkFtˈ-ȯ i&tˈ-ȯ tTAf.tTAft{1Atۭ^t6tG˨ t>)~; ata²~ta² ^tP W tftM#yktԍ TJtz2 tۄ8,t)` $ t2Nt؊^ t]PFBbt]PFBt7x tT28" et`p3t`p3t&Ij taRjt\]bt (t>kռtnSp t")M;t2u[9t2u[t]/}tp4=~t奻*E tRL tyϨ"ttStl t}A" t}A"Rt-wht鲿۝thz@ st^ |tC t)Gt)t)t(J_tBDt=9 \ tX\S tX\Stv^^otΰ> mtHgpz t tc ( t2+tsQt6 tMoNuɢ urU_ aVu9',uwI>2u 8Zsu=MS2u?S% : u}IPc uS u!W>|u )>&֟u %7͉[u !kMsu nhBu IO uHu[=] 3 e u*FP c.u' u$  \ut9VrZ u>} ("u^u(W su~nu{r. uȈ9^ u鐺 Jut-hZ u/Z3g u^t uSփ uR "uR uizƯIuizƯ uizƯubsRu’uGy@> e uS,aU \ u LV;T4 u! a,u"u"bbY cu$u%'?ܸdu%AK u&^} ,u&^} u'.@)Cu'.@)Cu(%^DZu)*%N u+[7A $u.G,(u/Ȍ~[Zu0d†$u0{~u1'`xau2/3u2/3su2/3u3!ݹu3Z<sLu3e{Xu3^g̐ }u6d_>- u7u7r{4u7&. u:`Wj[u:`Wj[u;7YR0u;7Y u;7Y u;7Yu;)hq +u;)hq =u;)hqu;)hq*u<Zu<Zu<Zu=(1:Au>XWGu>(bolR-u?5u"( u?5u"(Su?kJLu?JwuBR muB'MdT)S7uB'MdT)UuB'MdT) uB'MdT) uB%E # uCgN uEm" uF; nP=\ uGL,PuH+;0>uKy v uLfIe)Z/uL uL51 uM|Dh{uNoC]& uNW%uN" cuO}֢JuO}֢J/uOq* auUa&5iuUإuV)"2E uWyP%uWyP% uWyP%SuWyP%L uWyP%KuZ- iA%uZ- iA%uZ- iA%DWuZ- iA%R6uZL0; u[fcڗ\u[fcڗ\ u[fcڗ\u[YÜLu\ɞe,u\ɞeRu\ɞeu\ɞeu]uWu^>@u^5дjSuad!ua ~iNFua ~i2ubYW #ucnl*x4ucnl*x uc![N!juedVRbh cufeARufeARugc! uhs^r}uh_uiu8uj VQs&uj VQjuk+um$OCYRumȖN}umȖN} umȖN}]umBuquqlkK ur] ur2& ^ uri7 usg"NiutcuuGZE8?Guw. &Zux=wGLuzX&Ft^{uzkDRu{WvCu{WvDu|rqu(u})p %u})p um?^( um?^( u?tM Nu~g Ƥ{ucq|6Ru Yu.n3 up<uhfuF%u%_z{&$uf͒ bu2訓$u3{z2d uٸD~9 uٸD~ iuÌu5} + ugB>M uv=x8 u#9uw'uwu_tuƒ!@uTQ7u*V?ݓ u?VtjKuRW~7uBK u E auQVv u^;eu4] up,&uj u~Qa iu~Qa (uHp u@|hER u?u:`dvu$yNup1x$up1xRup1xu@4 uֳ]  uu;u*Z ub؟ u8uָ&su-'u䐲u/i·unaun{J$8un{J$uxG u}V k7u}V %uj ?uj su ~ udruSnl; uD6su6fu|J-ufb u+&ZNu`` uAR uUuÙ+yue~ u~b,/ uX.)duE"UYUduE"UY]LuE"UYZ=uE"UY<uE"UYL-uE"UY uE"UYSu˃E u˵Gˇu&\ u̠} u8p|Qu@qu u uÒ [ uϮaP ugg)YuЃ. uA3* uуd: u҄Q?uҠ/huҤq Lu܅MI $usnSu}yuӊt u{qq u3 u{ uZ}G u֫Suקh u2KyZgufY=hur&)Q uCuCuym u"TauuCz9sDuSG uSHy~muoVub9d u Vka[u(; u(;ku䶂Gu5\4u5\uŰ uG6sO\fuY,Wukr ,u-fu]1!u =u|[uXD9d;uXD9duPv4rlSvn{<;v!e1ve^y6PKvSnvM cv9 vFi v/|`u6vͷvjv"r` o%v"r` ov"''Q#v$xvv%P~[v%j!iv%r9P(v&m6,;S v&m6,;v&irv(i{e v)3uPv+da~[k =v+|peC v+{> v+{>vv, ƒ  v,tIWv,gU v,L v/dD7d]v/]Ltv0SwA- \v0ژuL v0ژuSv0kzN0?:v2; R!v2t v2L[v3_zUcLv5>uu. v5ޣ av6DRiv9">av9E*{KU|v>*{KU ( v>*{KUv?5A!vv@ч v@xK vA 569vAo!b&SvBIAYXCvBIAYXvB3N UvBAtvBHrvC]vDz~ܥf-vD0R/vD0)vEm:PY vGEnjvGF vHU% vIq ҌvKN;u:vKe[vN9bvN&|Λ vOb vO|OQvP+# #vSMn A vUsЧvVgSvX~u4vX KRvX KR vX KvY`y$ vZգw& vZ!Kv[;Ej3Lkv[VmNv\v^}d\%v_Xisfv_j&1ѽv`djYvaIZBvaSl vdve5R vf:rڔuvhhvhOaZA vi/qvjD37K vj[pN[vj[pEvkf~? vlb{&vlvl~6k vmj0e vnU? pvowvo$jI$ voSltKvoSltYvr@ 1=s vt *0qvu-u8\vwyaW Yvxovy20v{Eev{mRg/vNڽsvA_bEvA_bvkFe # v/RZv/Rd1v/R)v4v$ ?vfh Avfh ,1vfhvtDv2v)}O vȼKvFXYvGf[s v8Fe&v8Fev1tEY vܛ= vܛ=v vL?vNΨG1 vV#WkYve5Yvt'v,Ȃ:v׏7l - va@vava vFXuPv-_kvPG- vPl5D vRSvk^4vFIv2cv?I  v?I v4#V v9,j v2Vv2V vD{t vY̫r ev#vov G>v ?v v vvô)?jDvvô)? [vӇWtv&ھ= vy}s " vy}svy9hv[q< " v@z v@zQv=Mu? veV+  v`c vg|M lvw[vu(+ #4vU jvhg@p v|1vpT|; v Z v EO vaH0' v^v^?3]RvqVL vqVv} 5 v+zv:v: v: vZv/ugv֧J) g v֧J) sv\F ,v`?&v_DvB2!vunx@] vunx@]vDvvΎ v~Nt=u vϖBF1ZvBkvȨ{"vȨ{"vȴ4DvI`b `vqF (vɆz v[+<KIv[+<v[+<[v[+<v[+<v+@ v˺UXvs A v̉ipnv̚g#v2;!UAvGmv"^% v5RcYvTI/zv7 Dvֺ0Lv׈v׈(v׈ v  vؼ>1^ vے~ iv ިv%p v?n2 vEtjl vkž vkžvkžv߮:Dvl,`? v~V+v vhQvjlzRvvFHLvƹ*vT_vX3 RvX3 vzR v|Cpe vۗ}v6^ ^vm~viY lvw. vĜ7bvo0Wv!M ) v[Ov[1v[(v[ vG, v+ v҂jvy3chv z K(v z v`ӕv v,  #vZҪmv,lsvcKv .|v_ J(R v>|sv^UgyvR,NvşWRvoYve3:v8CP vWF?v4 c#wp{p wZw_.B we1T w$, swoAE2v wBt wJº a\wUH\Ywő`lY waaY)w!{hw!{Zw|w4ׅ%pw(,w Dq w epw 9WC_w e wA 1 sw;Kcwm T`wΈ bwA-gNw " wf+ Tw cwH2VwwMd-twMd- wCn<sw˓s|wjn Hxw?wbx{ w6w\ wS8 w:sb[w6̐.wm|wmK w j|% w &? w bus w%SkSw%xb w% w&Ơ mw&Pw&L 0D)w&L 0w'h_^w'KGBw'KGw*eӨ:iw+8H aSw.{4Jw/AP(3qAjw?.:f_ +w?(!B(w?(!Bw@d}%8b <wAM p wAM pwC= Ѩ wC?1NwEys wExM wH!]ݹ wHϞM}RwHϞM}SwIdvl \wJZCF wKX(+ g wL/_ -wLD!DwLEU3wOR wOTFUwOսmwQz_&?wQ"٘owQ"٘owQ"٘o^wQ"٘owQ"٘owQ"٘owRh 6wSu<wSuwTQ] @UwTSg ZwTa05wU`akwU,j06?wVfFjwVK{g&+wVK{g&wV9Lc wV)0KwWA sw[4#w\=DAM , w\onw]>5%i w]Ɓ^KZw] Lw^>׃bsw_pwZ jw_8DLvw_Hd?w_^<`w`aDw`i**~ wa?9wdFB`NwfһDtwgXDwg6!/ wj%L & \wjCtA wk+ 1 wlSxQ|wlyr wlIpwmcULwm wopd_ws;f?wtJM87Pwu+5?$wuSQ{Jwux \wvlp{ $ wvlp{ wv/D;k*wv/D;k wvй wwSbXs ,wwSbXs wxwy[ҰQ/wzXm]wzXm]Z w{awbw{vǙ0w{vǙw{*=F|w|9xK w|*:Xw|jV6w|oF[Cw~7p:w~7pw~7pRwQ$"w^lU+wd3Awkw m \w ^^?w  iw sHw_ wVwnKwjTL/w[у?wbwnobwy +wAgȆwͣ$?XSwT  w f" \.w f" woS.zwݠ| wυ w& wJFJ{ w% ?w% (w%w% w% iw% $wu*ZNweuyNNwZ}wB ,wS$L wS$ZwS$Sw*C0w .w: w5K6wIVwͶw1`3wR/sw?}wOfĉb wUSwU w= Fvwb^h ]w$lwQ %wQ iwQj w.ڢ wu.T rwN[cERwf/ ,w Kwq`Cw, Cj! iwP6KK wWj Ew)%_I4 w:N^62 rw/5 w^ [ (w?a wZ:wVBwke wt wj wo/ovweSDweSweSw[ Ģv wEp #wW wt w*B=xE1_?xF[D xF[DDxFzMZvxFzM$VxG܈sxGv/K #xH*z xI?T xIٻ~ xJ&d,&xJ&d,xJ"xKӅI xL<\3 3xL<\3xODuvVxPt2xQ]c3xR xTQ xU \"xV,5W mxV,5WsxWeCǭA xWg1zxXY0xX:xY>-DxYJca?xYI>-HR x[ Qx\r)@Ux\¤.x\j x^ct3tx``U bx`3wpexa|Z^?xa lxb"kZk +xcUxdMrԺxfl xfɁ+xgLuysxhExz O> x{Vwx{0p|x| +'5x}7jx}f ix~ %Nx~ %xHנ xJ 3xMaп kxQE6N\xQE6Ox@ tS xG[ +SxIAYx*f 6xNx&d"GFxL$ xL$ RxM 0Tx5l t x@x,4{x,4{ x,4{Kx,4{x9S  lxuz[ xŮ|`x&?` \xp/zxl~} -ycu2 /yH% y4Zc9 ywr%[ ;yh\?yJY a yJY9y {{`?9y {{` yuHz yuHz y{r yhzy o]y%VKy$L[7N%y(÷ y86G:y^tȲmkyIZk y+eu' yLRNyYo^yYo^tyYo^ yȸm6 " yQ&syQ&y5}0y5} y5q%?yR y 2=6y!#jy#|WtUy#5k !11y#[[ $y$;Ry%s y&`{v"N'y*%d!<y*%d!y*%d![ y*JMj y+ f{$ y+ f{$y,@|`Zy- y.n}/By/R4) y/\>]y/Ly0t> y1Cp]y1DJ6S?my1DJ6S a*y1DJ6S y1Ea<y1Ea ( y1Ea y2 n * y2!E y24'y24' ay3ٮ)ay9YϟBy9`0vP y;v5|yj)yuK%N iyvo@jyvo@jyv;ij67(yyafyyrBT y|#y}FVa| y}v6yc<yL yd+}Sky0$yA͹y `'yx߳3 yਆ yƘyn XyHcjy`#$y`#$ys17{ yqB'y, - yqO5 yZ| eyj۳b? iyHS y"_,ĪR yu,?yE5<yLy R y R ydⅾ y}4yDy0a,t yJ"uvy)'R`syC ylS $y՞MD8 y{ l $yK y7 ѣy#y:@AWyXv{y!u* y!u*yG yG ysϦ%ty Soly ynynKy"שR=y߆! yNaZyNaZ zy(;6yce yݫ-"oy1#q Y y> *(yݹ{ y0JyJ ^y"t&YyP}~pmt yTsy%WJ y0:d?ycgyy ­UK $ y؃y| yy5y:| yf! y -ARyQ;2 yU-tyv,NyDK'@ \yd {yM  yM y`/>!yn, yoEYyBfyfRrj y- yP]V  y+r yPy y[y)hY yѻCx0yѻCx0 y2`%yWcgTS yWcgT_ yCe& y %#y nyG yGyK:S5yK:SQy9ŸBy9ŸBy9ŸBRyc1NvFjyqCgky@ݮ{yTa^v+ygbJyɏnhRyg䀅1y *o> *y[ ^ yM[y\nWytek yͱVIR-WRyͱVIR-W@ynK -y΋  y΋ y/|TB yPt?yT6`[yf%_4W yրƄ yUGv yUGyؒ yEy:Dmy:Dmy:Dmy(=e`yqh2RyƦe[yϱnh!y" y:rٹy,ay~ yᡸi yYlL y*cyCQlb5yCQlb5Uy&`\y@񜢳_ y<vy#Ad y`^SyB2 yB2 yB2Cy2CHyҔzyk)e yk)ytL0ytL0yZ j yQipy RyAV@y}B y>tyWL y?@ި ypd Bayn$yvj yvjQyvjy-B?Yy)nF yty2+YyݍCS y0yR !yP_3y{&)j y|ʮ$-4#y7yv,5yS qsy= z cNzvxi =zz# z(;m[z= z̾ʪ[zS zlyhGzRVzORz< 8z< z;h/z& zlaJ0zº zº (z Mjcz!9yC z"(*Tz"L! $z"L! ,z$j z$V4; z%S*:z&(!z&(!Q z'|9$"z?n7z?bwk4z@zaz@z"z@zzA[=zDA`Mf$zDJi D#zDJi R zD`qfOzEWС0 zEL| zEȤEwzEOn\ azFhb?zFbij zH#t1NCzH?]izI,zJSdTJzK*U zLo?_rL zMY zOn< zO. zQ ֻ;VzzQw6 zSJD7ZRzTI&RNzTYzTYRzT[IQ>c?zU  zVlzX6ٮ (zY5}=)YzYK᭧VN#zYҰ(bz[٧`cp?z]CE<z]lX!q{z_<) z_St4Kz_St4z_St4 z`% z`2{|z`4]ȹRzaw4zb\؉Szct*RzfÄD zg zg zh@%=t zht7SzlHUUW#zn*@Gznj՟czofbu?zoWzq@;: zr vpzs!I3  zsةןPzsةן zsةןzud8%2zum&U zwd^Mjzwfɍzwfɍ zwfɍDzwGmzxﳂzyc~w% zyozyR zy, zzC\ӎzzC\ӎDzzEr #z{[ߗLz{[ߗz}dq z}TAv z}TA z}}o%z~KCl $z~KCl z~KClz~0,9 z~~Gz9z):zgɆ oz3.bD zauz9 ]z=ePI 3z=ePIs%z-*Jz7Nz[i5 zAavzN0Lz׺jqr zVu8zKB z ! z !zzQM\$z4zYzY jz5#FZ|zIJ9 zZXzZw zBET ,zBETzZ%6kzZ%6tzYa2zYa2Q zHTvz>Wz2zܧ&rz): zƔ $zƔ ,zE zVEe]z/zzz?. Ҕbz[X [jz}=$z}=z}=zP+  ztzEn Q z~v|tzai0gzai0 zu0gрz@@/ aJz$ P z7ozs3%zڲ " zI9[z\UtzU%uVbz 8N zjτ\ hzjτ\ szNxg $ z/zzosz_KrDUz_Kr*z_Krzz}>|zX \Sa 0z'F[zo@C zi / a zi / zu2zE rzzCz|NzʅJO?zυXzHEVz7A- Q zx6kQzҮNVz|:ߝmz:$H z:$Hz5] z5z>C zl*?zl*zƎ C.zƎ "zƎ z-V Dzs*zȡx( z禚%V]zʸҷPz_Brz.2[Jz.2[3z}h =zm' zXzg zG}U7XztztDztRztK z/cv Uz/cv izv8 zӲjz,႞z,႞$ z,႞Lz,႞z\D#zHZzO^CGIzO^CGI zO^CGIQz֦5`ev zֳeH] z*(R z9 hzwkB)szIZz=FW,zo/,zۿ#<6zۿ#<6z6/ Kz^G+tzޓ݈zf zܮ z)~e zމ*I{z;_q zd$/zLYz\T] z< z$S+; zL˿E Tzfzձ;jzZٞzC_ z )7Q'z/Pz$.2z38WJNz|?zְ Ͱ;zm1d zdIzETeGz z jz3}&:z'pszG9/ "zhpP m*zhpP +z6_zTkCK zv* XU z]@, z*kyiz>C;tz>C; izbkL,5zbkL,5{ %{vMa {* ʝ {{J{{J{(4hK{&fKH{&f'{xgS-xu r{V/o %{”͟X { g#v{ g# ({ 4; { >&0" { qWð[{gx W{gx {w,{'/t${H {eYӤv {rA)C{j{>?{]OaĘ{*e{FR2{F{%Nm {haqN{7?Kk%{[._D{r.v{uB̫Y{h4S#| {Ņ&b2{Ņ&bK {Ņ&b{I)jLL{I)jLe{Qdv{7T {^x>={4eFh{b/ܖ{ lY{R/ {nY {} R?{ @{$iZ{xbn { k׮W3 ({!L7d{!L7dD{"\{SX{"\{SX]{%mt{%L4F{%ʍX {(ҁi{)W) {)4#z{)vZ;^{*J ,{, hvt{,Ĵ{-uZ8T{-"rv{-"r \{-ƏϰY{-%s{-^HV {.  {.@0N{.@0{.@0{.@0QQ{.@0{0ީh {2SY j{3""!{3ޭN{4$$,I{4̯dž; {6`w@ {7F:{7zp!@:{9YJ3{9 Q> g{:ҟ8K|{;yRM;{;yRM{<PUb{=t26|{>s6 {A j{A {AEL {BP0L8{eFqh& {el֠{e.*E{gP a{h`_ {h.{iA @D 7{iA @D{j_N{j_{k6_{k{lv{mcYK {n0BXz{oc(Y7{o  {pũU8 c{q. {rH153 {rH153 E{rH153 -{rH153 {rҀu{tp58b {tYґT {t^ /?{tf4} #){tf4} {u5"l:{vwV0|{v^:{wP)I  {wtv {w$J$ {w$J${x,X {y A{yOF.{yT ? {y^ cR{zlB{zy;-{}UT!Y3{}UT!Y{~D%{~D{5V'Z {Kfˎ6]{Q) {Q)L{9t#g{9ta{%܋7? {%܋7 {*cP$D{c7{{ s {l׽e{f?[{ S{ix˷ {ix˷R{Hp:{ {Tœ {nWX a {ʖj{^H { {Ag \V{Agt{!K {:-~{\ {\ {HZS {nɤ {TN9~{߹eS( ;{3%{ɜJ[? { {F&P{6[{o{Wߝ{F9S5 {o{^5:t{&P#` {&P#`v {{c {*uL{_t=3 {KIj{{ (M{Qmz#S{D{D{݄3_6{݄3_ {:{f{i/,x{i/ e{i/ {]aY{6A5;{!.gk{l|Ed{]ɍC {wD: {C{D{d@Y {L}$D{"6 {^dzC{T,hFq {=R{* {b_吘s{>ߞ{E {E {E {a A ${YR{e4{aB {E ޺{n81;{e , {1?{ t?{HI ${^ zN{C^vE{C^{ı|>t{8X {Ȁ04;{pN-{zʹVY{@} +{Rd{nI m {ˍ;{dT{ΐ.P@ {Ε1_ {|iim{Ѿꞩk{a i"{a "{a {NB(d{n{vDAR{vwO {P:{{ֵS-9  {kPJ{%^ {3;Z2j{n \{hNV {3k,D {^{?BQ{?BQ{'moQ:{`m9{5/2j{wmK{5(#@ a{Q3?{Q3 \{Q3 {Ui$!C{)kt Z{)ktj{)kt e{)kt{pY{C?!#9 ,9{ &M= i{hHl ({yv{2gu {dO?+{={={=9F{[f {7N\{daAv {<{<{.3{>G{qi[^Rs{j) { -U{v#6{)Ǜa{ | Y {>פ{ J{enD -{P6\{f1>8 ${ z {Anj{l^${ ɱ_{8Y {?3{AKWZN |3>[|gb) |I.|j>"|=B>|۞"|2gv|a, z|a, w|a,X|}|t{g&|v{ ? |F'=|F'=d|ԡ| g | <"D d| bR_ S| yy! | pӻ| =D7tn| /=%6!| Bmrqt| h?|/V|NI[C|:l-^|:l- |л i|us% ,|]Kp |]Kp (|è' |y{<q|y{<;|y{<|hN | }|WV $|Fl:|;eGsp|;eG7|;eG ,||Y|> |\]< |\]<Z||W;u|a6 |)P!|9|"t?, |$5$w |%Fk|'R'#u &|'-p|([|)K!|+ggˑ|,!(R|,;= |-1g|-D-1|-v* |-v* |/[lB h|/7a|0lCg|1,?|3  |5#r|5_o|5sR|5. s|6hH7it|8ۗ.B|9.W S||93B | |9M(p |9T_*(|9o,|:j|;C%s|<߽^0I |<߾,n_|>&}^2|> kL|?+x?|?v|Pz<>v?|Qd;lQf|RqI0|STn! |S"ψ9|TK FUI|TO|Trp?|UrD|Ufϯ|VxY c|W9fM}|W2 |W2 ,|W2 |Wb[ |W=d |WS/R |X:~?Y|Yndž7 |Y o" |Y99롬ws|[7vZk|[Q $|\%i~ |]y!6Q|^jkɈF|^jkɈ|^jkɈ|_(;^|_Q n. e|`l텽|a<&_\|a7"q|b\|tW|byj|byt|b d|cI!3|cy$|@cR|e>=pC|f,0|f  |gLy "|hv00?|i~|3 l|j#ʾXl \|kcۤX! |l $k|mWlW|mpX |p C||ptq #|ptq |qEH޳Z8|r#{lZq t|sSR :|uƱ |v)2k|v)2k|vLqj]j |v`ޖ/ |zOtb|zOt |zOt|z#-(|z#-|} |~p|[|)y|*@S c|Jk |[BV[|0et|0{t:|0{t: |y R*|y  |8`&OR|#K M |Jv |N ||V s|G ]|_EL|Q\Kd}K|Q\Kd}|92j|uz}|4.8P |{B#|{B#`|~d^||F%sӜ|mj|hS|I|gNG%|z;g?|=z.<|ߴgK|ߴgd |x2# |e4kB|sT|sTR |Rixr|Q;CE |FS"L |ݻ*= |`IVJ | "Yu | "YuQ|w|6A_|4f]R|S^fr r|UNjv|.Rm|.|_ժ |Yh~|f7S|f7SY|f7SR|f7S|f7S |f7SZ|T|4A3\ |?il|@Oh |26|}Z ||fYׂTC|~%# 5 |aK*/ U|aK*/ e |ï`A~o?|ï`A~o|ï`A~oR|ï`A~o|LN|ĸa|Ū3Բ|A |2 (6|24|2 |2 i|2|@tͻ| |]|Y |ݜ}I?|,@FZ |C 8i \|̝d |RZfY@ |͇Q ?]|rS*|0N?|(%|<TI'|B'[|J&|P $|eپ֣ |[x |]%Ut|׊$/D |Nq |4nR|ډo- |ډo- |ܬb1 c|㖱i?-|ݏd1G ,P|ݏd1G |ݏd1G $|ߚ|>k |<N|㠝N a|㠝Nh |!5R|[3hS|F$O|F$?|F$ |b (uL|鼥 ʔ |ԘN$ #|!|?|62+|,6 Y (|xeC{ |*$* #|*$* ]|+`H|\i|\i|\i|  2|B0-|B0- |B0-e|rN1K |x.Rr[|Rj|Rs|ʮjL| |lo| S |O\R6|O\$ |O\j|= |ry`: |Aq,I|Aq,|3/DS|,\B |\(|'R`= |z/ȍD|*D j |V^LK $|V^LK ,|% | _ |-|t|-|k|-||f>?|osQ]|osW|os?|-f }fOF}HҴI8}.} \};Q3}D*}(.| $};?}; }(z*b}(z*bjX}(z*b (5}4 7}4 7}J9]}}d> }mE}?Q}4X}f, } L} Ղ|0i } +*X} S?} 3d} l \} |}nBy$}~Rw-}e}DM[_L }| }> }Ѯv }S;)R }O;&l}AP}A}cZ3G}Z2J]}Tw a}(~S } Ƨ}2_}o^ \ }o}ZF }ZF#}Y1} nzs } nz }!die}" y}ֳ }#; }#;|}#;9}# <R)}$n̴?}$c!}$V }$Vk }&jڻ-}'1H?`u })oЫ})oЫQ })uUYs J})uUYs e})uUYs})F})g }+2TS}-$Qs}- "}-r;t}-\о K}-0#|}/e ^}/V i}/׸V5}/׸V}/׸V}1z#W]}1|xөu}2?1}3v@ A}7; DB }8Z}#}9ʠ)}9qWt}:[3I  } }lt?}}m?_ -}mߖt}mߖt}nH15 }nH15 $}n&_ = }n* a}o[ڃ"ut m}q~SmS}qA*(S}riB9 }s)7Z}sR?ΐ}t,[߂x .}tE^ }t1 }wOjR}wOjs}xOں N/}yվG  }y[r= }y[r=}{2aN`b)}{h$ }{[}}!*"\ }~Yt }ޒ]$}ޒ]K }X҆;&S}X҆;&}2n'dj }7 {SJ9 }HobR} >8 } >8&} >8}S}L} W!R[})7z1O|8})7z1O|S}h } ?La }ꭖ }Dh10}z׺7 i}}HxF:6 }a)}>l}֙+ &}oL$-}+c }# }) K}8F~ob}ş.z:}};4n&"}" },֧w }7 Y}u- wK }u- w}W\ }a97?s}:@ek[}x }0-Q}:{=V}hkxr}hkx }2$%a}Z'}tJ.}֌Q?}[PB }KV= }#HmM e }d=kA[}L}emH}h(U }?^8 }.^v};j};}L<iK}[.̬ } }P $(} ,bd$}2}2 c}J-F 5}@^P+ }ET?}d=ٝ}M^xW }Oz# }LdD}1}qz}qz .}$qk }Ei^j }Ei^ (}Ң+a}E }!gt i}F>}㣧?}Pnl s }Pnl a}ñ;<}ü+z2d}ÿ;_}y(\)}ņa?}J] }v5c:y g}v5c:yY} p]}B͹#Q} }}Z}W:N}$s0}8ې }~ z& }"ig }gzR}k}3mIF}[tw})$kq}u{T }לw& };(! }c-ږ}c-ږ}7.}k*Wn>d}uPB}*^UлD}3}}Z1y }@ }c -} J-!}W8S}\y`i}&e~(~ 8Ga~I@ ~I@~8&/?~#2mS~#2mS~#2mS~A-. (~JoLbR4~do&Hj~r; >~]v~&ʼn~_se~pyHU ~ ҳ ~ K#~ K#8~ K#Q~ y~ 2"T$ ~ wwT ~P/B ~XEa;~}'~a (~+5~Hfs=O ~mǗ )~yiT.]l~$~\m ~r~}HDD'~(*'~~j~ p~ p ,~!^7 ~!^7 ~!f9J ~"? ~"D`JU ~$?y0~$q@~_ ~%UN~5P~&k~'}H ~'fX K ~(?] \%~(TVNe m~)c ! ~)~. ~*f i&~*f ~*fs~* ~+i>_~-|b~-p!* $~.$6 ~.;rGǗ~/ޏ~/r;JfPQ~/z (~1$E ~1d4~1ݘ{@P~2ʽ~3` o$~5wX p~5ݼo` ~5+BY ~7TYa$~8Í)N~8Í) ~8/pK~9#~9!J ~9=@K|t ~9=@K| (~;N86[| ~;S"~;m~;/;~;Xu\ ~=P D~=ɶ$~=-[ 3~=-[ ~=-[ ~>-~>-~?^^>~BA'Z` ~DYB|Q~Ey()R a ~F>_ ~II~II ~JdƬIh ~JdƬI~J5%O~Jڦ/;K ~Mjt ~NZR+~N` ?~Ocv v~Ocv ~O`I b~OOT_~OOT_ ~PVėMe ~Q=ǚ-!~Q=ǚ-$~R6 ~S'Џ l ~T 6l-~T" ~UEg9~UEg ~U<;5h (~W4*j~XFx4ņ~Xدq ~Y{HX ~Z}R~Z: 7s~[~ BS~\ol#~\ol#R~]y'Nk~_۴~`;"~`;" ~`A,$~`\5;L~aq$Wa QP~c1dÅ i~c5Y(b~d: ~di~d?.^Q~ebF~e1A~ga% ~gɅ D~gɅ D ~hk R*~hx~hx#~i qy| ~jGo' ~jU^|~j8mk~k B{8R~n+o:C-~n+o:C~q/u!Y?|~q/u!Y?w~q/u!Y?M~q/u!Y? ~q/u!Y? ~qMǮ'> ~rK24~s7>ggI # ~uM@9ٚ ~uM@9ٚ? ~uRA~w-7 :~w_8 ~x]W*~y#>xw̧N~yǵ,z~|=X, ~|Y_~}{~ $ ~LgS[~WlI~ ~ZC|~`~k\~#h7V'~ʑb4 ~S[OM~dF\~E;+6N~wu$~ҫFZ -~?pd ~E݊o~E݊1~E݊)~xfd ~<{~ # ~7"J j ~[BB ~ ~ ™H ~Cq ~tsՊY~QmK ~/? ~+CV~tm~*<]~? ~? ~n~?~'n ~! b $ ~z;",~ z\~+T "~WM| V~9j~DaS~RPj-~H1ҏF ~%iٗ~Hb ~Pa c"~)֙e~ ~ j~  ~  ~fsK~fs ~fs ~3% ~">% %~hX~It -~[C~g@|~g@C~`|I7 #r~j0 ~QN(Ŝ ~1K~V~V ~~L~ ~ǧ6V~S  ~;U ~9+[~\udrR~\udr ~\udr?~ߌ ~ߌ~48Mt`~48M ~g[[~𥽇NR~: % ~"R ~)BRrV| ~h!.~L+~; ~XNՄ ~|c(h~Uߨ(~Uߨ(~i'T%~RC.~ŶrE ~< |~Ñ1 ~ŹW~ŹW a~L:={~{1~.w#t ~NAd>tB~c8h^ ~ˎs0~˚(I~˩>HQd~(~3aL~VOdF ~r6=R~r6=)~r6=~͊^~͏G0X i~K( a~6RP#~ϙlQ^=~yӳ~yӳ.~Ѫ6' ~ѸIgl~wP  ~wP ~wP?!~wPj~Ԥn~3~3$~-ڊ_ ~ع\{~k&G#~ـ%|F6 ;~ـ%|F6D ~ ^<?-~ ^<s~ ^< (~~oh/Y!~oh/ ~۬_)PuN ~͜/ ~RQ+~ޕψQn;~7\S ~$~1P~9V8~9VQ ~9V~%2~%2 ~6Fj6o ~RM ~r ~r D%~r ~hx ~ӭFlR ~֫ ~v=~s_j~~ʓ3He ~By?~p;@ / ~8YH(u 4q6q6%MN`}k؜ u m{L1S=mp 01S=mp 1.K^2U%rv%3yFU$zY3 4&8L 4I/0h5/n86XST 6nNx7K@W 8fx | 8xk\ 8በK8t=1 :C JX;+h& =K) $=_ődU=]>7??kU_?kU_ @m~@B:AR4 Aĩܟ @ BS*FLDY?jDDY:!D EH E0sF{H $FguGlE 8 GlE 8 G-ӧ Ho7 LOY Okt9O O js O+Q ̕2 R4+R(tjVI_4V["VYW' ~Wu;uW.l} "X(OzZbhZb Zb ZbZGpaj1r _ rǙA3 \sBH uzV_ w`)/xz5oAyE^yD ^yn]y? zgG0 . zk{d}Gk {j13{V| {TnI }n? ((?hx6=ߩ]O" YbBKi] Z+w+a~, |N"f^ (;ōU @$@$@$km :??U LzP^ R  l!J; ` + ; ` ,"U "Us"U (]B  "7CSK&ŀ<: }^jPφW+ PφW+jڒ!~ Y bX4Jax/L eQ[ 9P5PPPK=8x cnV Q YO (5n`_f  "8 LHfRa>8\㰈4 C EC \C ^r4:U[Ft IPdqviDʞl&q10X{Wuٌ "c. ]pdl vTzk#vTz 43sgi.W f"^ S(o*(o*+J +q?   8,Ad5Ä å ,c \d5Nƌ8CjT+ʃYOʚ$N:2r k˸<]X6X6KΘVs؛AZΘVs؛AΘVs؛Aad`D:d`D:Y к+a h.W(;kw^{ g0Ƽ o$C C 1K). ؝CUGBq<1N7 ip8=` p8=`Qp8=`g;T7C!@/KzP YՉs%CAx0ǦdDw>- H>6p͸hݪ퐱%M $Y .ްm+9Sްm+9߻l6 l-K I֮I֮ $=7#9.K [/TZFuʐ NxN;jw) jPOvL POvPOvS!zꣻVꣻV#ꣻV$jy\[ ^}l:}l: " (qi ҕt:f,1j2{FQ':ELYv (򮩍|^j98^j9t -Ή]?[jL gvQ $gvQ gvQ ,&T˫9^0A5R|:PyZ#1N )H7x $)##)##)##)## 3v]{  0,EyC7 Џu iЏu cЏuj@Џu &Џu ,NG* )piR ?. h2] h2] k qc ȃ[ O j kb翽 V'r raM raM Zd}['NwNwE W]'S nL:PS-Z#W2 Q)|  6>L yI.s"V"ܦjT"ܦj e "Dt##4b$% $[$Yh){$Yh){$Yh){R,%˰ %b{? &"R֭ˤY&"R֭ˤ&|Yw'-Vz )! s)!t*i Aa+h*M0,[,YML,[,YML-,bf,bfD,bf0(o3 ^02T 042UP? 1ӕ8 2 I3s4jY7W4jY7J4jY7Z4jY7 + 4jY7]5zX6'B  7l| 9U_N^9yv :${;m ;m ;2֤ʡ;x <_X U@ h A쎆A/N AE˘R CnHL l DMOE E(YE BF8, F*ؑ! IAz[ IJ Io .'KZ KZL-xLWE{݈ MAu'Qлcf S~S98B TwTc{ h Tr("{1DU)cUȿ1P WoQ[W={*9WRC WLÖ YR&QUYQrw[Yc#YcYcYr4WdY?w?Z>3bZ޵p`9Z޵p`9Z޵p`9Zd?8ZdjZdR[T: #\ Dx #]m6[]p?^?_ڛv_ߔ1 _駲2e`0/\٦aDKa> % `4b|`DR6b|`Db|`D be"NbUbQZ"c-{ mcl.tdz'nG .e<e<e<]fLfgVgr sgmڗg$dqh.~]^"hEd h+m&1hĈ iWYjj_}9jekt}t%#k s=l\ 9nְ mo=6CHNp˱ $pcFtlqSlq]Uqqi?Qk q^nr }mWs&# s  s'&E%s'&E%>s݉YsC:RtG? vCLKvt iw96Py gz y gzy gzLyI;yI;z_ m%{G  |QЀ:}V[8F*~;+ۗT~;+ۗT~p ~ R\f /ʵ - GC %X%t %X%YH{Yrx]Z8Zr"  | x U-p,:lwpC+Chal toBQ }v*Σ6rI loKs]eˁRd]eˁR N]5/?loLԛq sRSO i=# { -ך cֲ|e(je( 6$RSߧ* ;kK?] 1 Ns "S "R ٳ*U ٳ*Uٳ*U m m (t c !f CGC 5M5R Z )1# 2y' S+FݩYpݣ`{?C;hI ~f|?OiphS]2j$ ' ./+u (J ☋ݔN,kC&ˌ=2kLH a 3 3DA 4O}4"C i>lrSi>lrsFǼFǼ]FǼgm gmCj5C C  ,a ,aF&sl [ _r^D #NX j$/K%B (%PU%JٳN>Jٳ >JٳCHp7CxcEElY,=E֩si Gs G@L H3 IweHeJ ,LJ!YN )D P x"LP4L?Pl#,Qw 9R($sRO TS VO{2VO{2kVĨ/A V8W&0t`YQ ! Z Fm\bZ  ]%kv ^En7t`c ja_=U|!D a_=U|! a~ybID c/E #cǗ0eWGyf_rgc +ix jY_l$M jbі kdKl_ l? $ lV5ݥm "R!m_E oH pG`Gq6m+sUs-b* tvt .6tvt . tvt .ftvt .tvt . + t9ĩ u (lu (l w Xw_GD w_GDwצ'oswצ'o ,xuMQSxuMQxQ/} zh=]zUzUR zўkoT|3]}a'F}#d }^ {~SDρ~^8*tڍXˉbC$ F Ž 0KHJkY{Ke;q z9P3t'M e C[YG_ω -9 ajU ajU ajUc7 LRqp NA/j:o=^ a? 5%0_8x 11U1$IT O<O<R/ PKs42齜? c߾saO'gv|P.B (uFfIx,,%\ (_,W#I54N54_Z"N$ tQ eV2ձ V2ձںI$}K+$HV ǚkr[Y++5 R;]R;R;k;#+##үiA g qA}B,@@mc-eٮ R]K-* P%OP%/Y0eER !ղRK-y3fRIUn w?ٙ3[ A A ,A A $³V\CE'pSSxQ"Y5Vl[ЉGց:w -M9qֵ A)˫J9_Ýp+>!Q<ĝR)?4jĝR)?4tĝR)?4 ( NVc Z/ۄUܫ| a(`qQ:Cji%&1.aOɍ(U (ɏuD1bBH #<#N퐵079075Vm3?hd*MVΡJE ,wJA As Жm. - %T Q}: Ӡ¿ݡ,7 R+c1= ( i; i; qMv&waqL]BR B?Rڭ@l ( 3 {  ݼkƴzI0=:cDH4g{L{ՙu) ,U3:Z5lRBjuye.qKCZ$RU G7ۊ aSK aw64 =ϳk[$s3f )ǂTfQv9+(`Gw Jʫ:(M Uh\aćZ&taćZ& a wX| 썤[dPg n8R VwYIӆ=?E T`n8o? !K,= !K,=D'= ( |"|"2 e +n  \ +n cs dVF jkO.ݥ*ѭ (s7 @"Gry(dtI?i 4\rpD  b HQD EY (> RRe  \S[5 х%0  s.+K s.+S s.+L ȽC i' ȽC  i L>`?B'v?Tmh7:) h7:) g ԝ him W1?b, YsrWXG ,qrW;A.G ,Bjd_D^|0bE^yU 8fn'l  i ŀ\ HY:0K =^A J\ i sETm # Y$@D W MRc W M W M |"GQ۱ "vI?{L"hU"gj-"gj #{Q$y.$ܪ%Q% %R %d ((Dx\"((Dx\ (_]Y (f|ld(c<9XS(RaR4f)q|*,Di!*H\p(s*kd+Yu+] , n,s-98S-WԢ([-~Ds-~Ds-q< Y2sV5*6?(Y 7$sR80Z{3k80Z{3b 80Z{39AP9CLF ;O'9 >;O'9 ;w6<2uD <2uH߼ >H߼ >H߼j >H߼R > d>@m&?-05 i?:,r??(0b @2 AdF@R AdF@AO% rBۧOCP0S}8#D]37pEDrG ENbF7yS GC*oK3 GC*oK3GC*oK3G87LGǁ=GǁIb,ᐔV IgoJ'' ;J[sDLKB \AKl…7vMdMdJMhv a N"%o> N4,o -ON1zR P!gzoY P!gzo ePjR9&?RmS.N  U?N B,V s*;l VI ŎVxQ:Z􋰯vZ÷TN\0G5R]d׆=2S]d׆=2]pң ^YR_="IK_="I_="I`f-QaKv@" b$o[bbf4gdqimoRiDH \.kA lSCtlSC: m'o]3 9ms\Bpib&p*#~ qJY q7RW"Nr~&#>~gVaa 8R' 52q g!s ;({Ӵ T[?5]\ $##Է!i% AA@!MN ""%)""S ^܀. k }@ǒ}=}@ǒ}[ ll۳2ƻz ƻz ƻzjRƻzb$\ѧj " z &)8Wa懚{kۥ L6ۥ Lϛؿϛؿv2&8RƸ2L M9[? QcΛh y:Tߠ ? /j dJNo`ZF!ERTjM s17{ 17{ (Ǡq # 6@*E_EywmSK!R*NcMN%Bs rP ; rP =_`Sm.5t,ߦ&p ˜ +R7#2,HZsv],SÐ݇dWê3LO"Yê3LO"YLCê3LO"YS@1X 1X " /L|nR?lDm^z N i \Lj9 I >̤0ȸߵXke{Vnm 10 tyӠu̦}[bSK6 eۻiBS\ nV" #onkgK lsyWayt,1 J|~3R|-R L| ҡ 2Kodۡ&u #lQ IHYՂ ?!]" ֺ}>ֺ}>R*vED ; ~ eQ/{->@ ږ蝵B s~[!Ti -M#T$| 1K ]&i cglȢ N5Ȣ R"E?63 - u>c 0zP%R Tuu t e =NMζ ^ q k_W? ^'Y3C &n6)+S6 !+S6 +S6 $ GQ%;Q 4_SlR-K&q e(MF?1H7[C]8J-8J8JUtUDe SP5_ڏC[3x l @Os@Os}@Os0 |{bGKm&ZN"4=_%2y>j%J %J)g|Z%WB1xc \ r2a T a T U$ ຩC $ dre?XjX%#xD  cpj6aj6D#W?]>euR+h8hv hvby} aby} $AJK l3 t W=a_g FL3ZoEd eoEd vf R  $@ɸV?fޥ6-!}& a!Ț"w| #Ap$dn]%x=ޞ:%x=ޞ%x=ޞ g%n.%F[!&J./ &Pe|C 7&Pe|C i&Pe|C ((4iR)x )Z i )x )Z *T6*i+;t+;? +Fձ !/)l\b/C}r s(0 0`GT028p! 1{ 2|^E 2B_># a2B_># ^2# 4~fA4~fAt5y/ Jt6o'7S 8Π:~oX;a^M} Qm?QÚS ?^be*@XOJS BhPB}6ߐ%C5l2dC5l2C<֡E!t, mF^QGWX@GWX@ tbGWX@QGWX@ OGWX@Hp? HH\RJ;dB J vJfH/JfH/ KNy L 1?L䎫@RLr{M[ jN'n>ϯ \NXLNBY[ mS K S  TiGU8F}UK VK^O# VW^ [ eW VW eWW XGUXGUXGUYXGU?Z9MmsZqQ<RZBޤ ZaG [s\t2z@-_ ]Mh `H amamab4LYab4b'Y)b\b\ md0 $dpcei}.eZ fR6/KfW#kg6kqhkTi~ɶNj? jRf"I kTdo#k]Z?m J \m8{j nF *nQt" nT\gnDLo ;_o^3a.o^3a. pDfq pDfq p1/Jq{LA q Hron s|"&z^4t<۴'[tG)4t_? u 8dS  u 8dSuy/8 v!,vwC@,x.7i{x2_ݼ' ey*dy,yM) ( zMj zMj $z0+z0+j{P)Kk{J#g;||9cf |g[R} >~* 3`~* 35~< yh&N r<&N r e6[KA mbR0 JX| c&XJ'(mR54fk54fs_QH 0NbU Ml6خ , 7*9]1ߩ/3 is  < L<YsD1 Et-v?(M: j z$ xR7z$ x3A/H? To , , Bdjn .n4)َkV|h#)O9 ;f? Zqt ]#" ZnZnf,f,-gf,. jίES#RL-KfYge j=V̵I !A S $g99R;R ?9Y kJ y)%0y)%0'9OV#Hxj%5 |\h.`|$]f@Ok ]|$2Hd{,dZRv9 # "D,MD' ' 7O x Qx 1=1=:;] HO 3)LB7Q#- |a> ݔ{ ݔ 3 ;v| Ÿա;?-v*S. Kv2Y 25+;-4?kP\åbq  ǃP >l t N?L`:>3L`:>3ΡE#O ,Ϧ4-C tlMvf\-Ō1b~YyOp sv0A Rv0A v0A ov0A 'M[ $w e|#>6#>6 #>6#>6|x& u (}L  S/M 祰?  ZFw໩{K =@>Br g ~D[KC Yc1?6* # T0> $ 噹91A噹91A JPEOP O1~R ʕ׮ ꏲ'O⃾sY O⃾s;w^ ;w^yZYUu;)Y Fs 娼ev娼ej娼e  ,s , ' , ,-B *XvbisO6]1wubz~tlHf;su5|!˔<Z}U;t*LC; 7?y5 06w006wRC ""ؚʿ (v^;; 6g$ 6g$K 6g$ 6S  lz5  Qe E,R Xg} H =H) ׬ D  D'*GW S<#f_Y`oN 8\  8\ =CAY!(% r!tC!GNz!}!gj?"O7O3T ("O7O3T?#!2~S$ RS$pr &a '{02'}M(u*Bё$ *Cl - /YdX /΢/ΙCm /M| 1NR!1ZY 3)64lj\5 6{C =6~  6|؝ 99EDSD:.,:,3;h K ;h K<՞^S<՞^<7T0=2<7T0=&?ԉ"x-?y@uDE#B2aE!c< ECf?GpPsdG|=# Gx@dGGx@<Gx@ JJԙBFJԙBFK fvM`ٰN7$NY_ Nv:~|@? QrN0_l~VS4#m !6T-hju3hju3D iWkZ j-r i j FDulN8mamQ43o.oNKo.oN oxcX p}" +(plWq*|t:qrϱ-ss&TtR)bu,du>?v`Hvw+4TayQRyl~UyS yS yEdSqz業*j|(z業*j |{.o |̨\MH~cf ~gd=~p|Ւ|򉢔A||򉢔A*o(W %eHkK,Trd 5#>K Z]ht]M%:c[QYѓs QYѓLa ="؟E`&?}& NN e] `n8rՍ[; #;s ; i; s\PME A.Y U s * F?%I&vbMx  hR ^i"[tS_1{ i]9T@$ Bo^d ҴMp O.D O. %PD%PQ%P%P%Pp̗ ml[JJpKm0Rg $ l_%t -PO' *Z1sq+>c=a?@]3O |$?"<7:"<72vK?o\a DRheXjSgp _W3K ayL6'k!/C >YU)bYU)b `j7qZ^=mBG:QK U:QK $ :QK , ;)x iĂ .ĐjIY@-6Oz0z0sp̪s+A s+A $ W} :esLQx˂} 303QR jjS{xs5S{xhϯUW"֖5K#֖5Q w8ZfL cхs*|ђ%w^ j xSJbh j%Ӵe&4uӴe&4 $L\G} n[DRm (Tn[DRm ȅ6:TK-TK-jݥ LC  ; < ;b% ;j  ;Y RO  ܠ{QmAckT'f 'fTH_aOH_a 50 KS#UNyNyj921 oiۖ^$U  ,‡Fp O? RvI +_l f(1"183%rs}DDrs}D +InMYIp1 %?~? N9O|/iiRK I=S=S=SBΣb] 3 ^  ܤZc!2? Fd$]!SrOYkxO}+7`)v ]J58oT2s+T2 b_.` 6Ś+4IKqkV"kVk\W,,?vt!tB ]?%_ +kMN  rIa+a2&52&55q j THK m ZJC - I -  x_v $Q, ľrsw ٪ ٪ a]a~ Ӏ|˷ Ӏ|˷|1 pX5YSxSSx  `F  cD | ( 4 5UeXdY-zھ+IiELns+],wfTnNg*Rl1)L![/ (|:cւ|VB+z j\& םY ( 2p!+(R!f,b%; &? ( '^ \ (<ʣ._)+^A? ,e?-0 4:e-17.;yC*0.%1o#/ojuw /~ ehL /N 3Q /q/qd/qR0c( #2(#t2l]#2l]#N2흑=b3>S4 -4\omԜ 4P"]5b:5a(6I|76lpDxr 7쐾R83ǭ8RG i9zDj :>$ \:>$:?) $;Qo;Qo;eԋ <۶zR<S=h?R>:|?9 6[N ?^$ ?^$??Iv@hIgca AbYAVpdA= QDqt ErM: EmQXK ^LEmQXK|Ft7sGxtt$$GYv@N*IfQdRIq$eȗIq$eȗJ |J |Jr0kJq^&|KJq^&|jL<O9LINjMxO M_+ ,NH4_ Nڂ7ZR4Nڂ7ZQ NWǏX OUyzO4Ƞ<ߨP#UP%U-B9W4u9 XRvXǓZj U #Zj U ]n|Q^W` ^TaH_IP3[ ]`^{} a앺bzU Hc8 ΅z5d1 e3: -eE~>b eE~>beR e|cYe|cf>߄gwx~uv h-|Li!Gyt i]I8 ) j .{nljag jj~R!U jMɳkxj- ,kxj- kY">kr6kJpĵ ,mP_|L nfnfQoNoS3L3[pa /N pa / pf4XrEsw c s+vin`s^vVujw#MwOE ,x%WC0RyHg0 2ygNGzOp z-Q{R2|C\iB~%0`tr?zs'kھdsھd $ھd t*ꑞD3jlB E7?Ƴ^_[QPı)$Pı)K[EY~w eQΧ  RL y3M ˿w #< \n .x.&w1v0=hL WW; :|T%(u Mu1]/VKE \hY7QZKkcOZe cOZe* c #qэ R#Qλh&R#Qλ |; 4ʫ# 2R/?yE|xPD FBCħgFVQJ^ٿu??j@2 @24QR|4QR|dk} k}Y j: j: ?j: 5_p)u fw?/ 6U?/ 6r7^rKf%=3M? #y Z|RD?(/B[[$&"#DӅ b ZzQHm ;QQ$ Q6y#° [ }3UۅRPۅRJkY! "G $ "GQ);ʼn کz" sprLJa$Ve)(Ve)jVe)se % <pO~  m Ci{~ )GgDSˆ- .x&IWFŠCA>{ t=R 6%B` Ə2C<{Dž#e6:5 %̴0lpM  v7* @7y%89R; ; a;/#[Շ%-ʉM( cʉM( U8b$$8& צ147}ꈞeK7}ꈞed 7}ꈞe}a+;].E \hbyj Z ܖX/W ^K/R~si  Q &6` E/6: yV\ ㈕IQ@79"Od+ ^z_ `7Y#V  \q>EBIK^uxfѶ L Z ,F?}F?|wVwM b iQH z%;jk?/%;jk %;jk ,8 qP=8f-ZL #ZL1 (f fVשn D]?{18 Rn:s!'Ys!'XF'x5Vje-] hunhunpb~0,*g,0$ -CRs .̠ )]/b2sLS2.}|4!beav456h&4O2[$4+(s4ƚj4ÓR4Ó 5ăV5d[ 8"Uz 8ӈ 88ӈ s8MUj 8MU ; ;߇`t( s4y;S?A i@?@ B3ܫC>M CI FA; +>GZOc]0Hצ{I0 LD'JI0 LD'I*?J UKzK`NLhTL7DŽ (L|.bM\ֲ=M#6tMB- gMB- g M`ox ,N hOZ2kQ QHB%/RsԁV71$RJ9]SH j?zTlIqTlIL1TlISTt,T8ycTc*YUFc\ U۰cX$y94YSޏJYSޏ YSޏ YSޏ [C/l S[PNae[PNa[ՁM \.ZAU\cU vc(]]((K$m 41Z%}qr]+؞S4Y{oF6AT+%iH-|ON 0ib0iba f~܀k f~܀^w j $ ^>9As 0§0§ P0§jC^S/&Bj&Bm  Td@ =] = ,h,  ?z_Uvq_UvbyS딧 8wL ]s0 BFc8 )G&ۃʿ4HsFTZQ.=R vb.v vk v (vtyb - Ra* ^$ )⭅YiR| a$'$ Z' tc5) Z"  CAj p; E-P VFNfbU^G >d4|d a:9-f &dAN :5F)5 *?(C W *jf5@hn>5Mwjj&45?Cd7i \j7e8{Z9(k=9Zs 9`'d :yӿ;_9m# ~DK>h >h ?sujAGE%j AW!y( CϏ=fCϏ=fCɘ6FNqG F]FG Yם $ G Yם aGd!Q IGOt_IMpGCIIpX + JX4Qo: LD䉗cLD䉗PM{}#PX Nh0OrTP,PdÏZ'PQI? R`#Q SL\tSuA>)KSuA>)T&N&<[Z؇ c1 - -? , , *IseHyD TQR3TQ =H-% '@ z'@? Ba poU_G oU_GsoU_Gj?%9 3c./Cje* ƅ; > s46 ˳yZX aMjaM aM?aM }Jj yY 8j14\T+] Ev;#=ִ-l e2mhyxo.hyxo L^\Uv `Dv!Y?[]QR?fKɤ~[~vo?GS $0 < U %[ kּڵ^v՝!%4[1$ St`p .`@MyH[tv5G2 \Ӏ.\Ӏ.RR>*]eu' 1|Z 28Jk WrILBwf ąiWN śv2 jtfꟹ̻q'6 ήή-C?PЇ5cM3Ї5cM ҆>=SVԋdk߅q E4!m E6NYO 8ٿoAss Ass ULĮ s f k P@6: )i ڭ&!9ڭ&!9k"z:.]k"z:. ے)g i$'ܢ`?%cjX<( DP2'P2kP2 I]2oI]2:I]2 I]2K?Q^f'N kv7%( 8 ;%Y i%~$HA $c.f܃?K~jR]tK=c|`CV3IN jv(z#g4^F{聆>fE}fb1qUofmsGjV 4I? jV 4I Ś/j*W[ea c < ' g+8C} c6? \<]4 +rV&= kƓ(X*21 ̑R R6z1[,r #(,r 2` /;y5kDXՠ aDXՠ $2t%'#$# =][-WL }QE *BbB+)_P )_P1T?1T #)Cl #\ogM m!Hӄ{ *"xS o 1 o 1 T ) }K7 } } }* } I  @& DZb r wB CgwTJ\6[(N7\ kmz km 3(?_pns-Ptyp'WOj HPOK2M}й( TC=Z :QzK \D*kWKdμeoD!,*vsMi6 WO!h (&#l.1 #l.1 i# @$N;>Y$N;>D$hۢtM $xy"($El? %&e%{R]A#&Vׅ4 '87/'(}-(:x (@TN)@[xڅ *sU=t *sU=k+Rvo6k+xum ,$,Yr -Ӻ /|ur?1/92sca3.]k 6"<"5 8upb857 - 8sXe :U؂f!;  f;  f;xzx;=B> >k݀՟; >{o0 ? 2jd?鈆:*B3h2 B3h2] DeaEu-G/کDHrMjO K/#U- gNP)N#tLNP)N#hP*5 Ph%5fSQk98{^ S}ST DdZ TX4/4Uw KU~Lt% 0Xf]t!X2P X2P Yۻ5%t YA&2 YV8 YV8[ TD[cE\\fӯX \{Db\F~( \* \* ]ghY ]gh ^DMJWb_m$`_ZYQ`_ZY`|a,*bDcVKd]WkQ #d~Ik3d~Ikkd~Ik1eTCP2 e#eKI{fQ4tO g  g9PNj thg3 ,|hAP c jمPLjمPLDj+ѼmĮLn8O]oPQ[{$ pJٙKp[rr,՟)r21^Nt ™u nwG0w~w# L(xoey,Vx y=9Ts{w45nJ(|DT  |DT }$y\}> $~]ͬ7~ů¥ cSeq\ΏoR 7pY SoHh ԏ1E?ʖ= w?gޔTQu $i> \ϐQ lNP`vɞ;<񧴅NZ}m (- UcDsWWD8D84smdXbDRcG Os_" jͽb A!>A!> ,A!>S &] x5'x/j<a*zU`~8# oo o Ϟi/U -i x<#u5v4nSIy ?!~a tm@q9m@q:غCw Yiw t6_'vK'v'v/\p!-C,fʩ>d9no9no 9no TŦ [9)@~yrޅK'SJU ieY3F3&sAR[sAR[ {Rc y %m+%m%mDPj\\EQ??qE/ ?b.dD' e jjk0jjk :Z6$ BB"+j BB"+k { ']'>ަ8M cz yoCjwlP #wlP #wlP ,wlP E& E& Hs~LJu> ˯h 8pHD[xyrK d· Є, m c8;d $%ѓg;SdSQ dSQ Fkb^ :m $ :m{$z ( ` EL#3^ . /| KmV ZYD *_ ]ӲI *1  mJ1zt%J1z a _*X3?'G<26fUtU UR}jY7 Ux`Ux` AjJI[bEޭ_EN)9 _ ,<!%j 5xCh  EC Pk Pt Vr'  Vr' R*  ^C,] h^9^D k}p ry,_ V/) V/QPB?)PB?|PB?4 4Aq">]|kb^: K2JAo g.z /"G /"G|/"G ]WҰ k!\}"ji&֕_:„ _:„ $X>:6m[ڹMWf  ͉4  ͉4  ͉4 ! *R ! *R "pc %"+r]&dl'JU 'K5l10'Zu((r˹>(~w )])GVt)])GV)m]t_)m]j )m]s *v v +u*R+L[RGC++L[RGd#+L[RGR -?v .[.eg]K./[ D01sl|1HZ 1HZ13 (8Z Af ,8هa98S>5n>5n>5nK>1 ?WϙR ?;y:?R @9!e@)`Ac m C) C^;sC) C^; DV 4 E:6CGWG Kc Ib|T Is:DIs:Is:#JJn #KP-v N-oNNQvaDOtT5Ez OX% , PGuQf_SxW Qzl҉!2Rz[Z)R"S"5~S`7S`C'S` S`S`S`y;VUTYY[Vd'Ф \V<VWrr' \ Wrr' YCOY~ѥu Y~ѥu ["6 k[=qhof\FlEk \FlEk\|sk hN]=]R%K],+ ^ "4j`RaebX$e  cèC} [cFv^e2,1$eF gն h,NL2h.:=$h'j1էjy6khĤzm] 5Oo=bD ozomj pU'pX>0r3䣾! sؐw ur?q vAF B xbH {PSdɲ |*΅(@m |~+ 3}ֱ) ~56y7ZD 4Y-Hi žE'0 ?oH}D g sI c <'kc <'k g- sANA ANA (52D:|X[|X[ M!IHatBSd#7JkF]F]ՍaՍaQ|R{Z#ž5fPT+ƈ |7й й?25 ~Xw  xs[Rί~A0S~#!F+V`> ar6@r6@ 2a + };Jj<>7/Qi+ `g*BY3}Rh͝j`@ٓcP) c;ce8m 5yR>yR> oEWnjz oEWnjz oEWnjzD&B(xٿd ϧo 6/KkJ&t%n 1!Һ҂$ Һ҂5{ q\GPܕ-Cz j\b!Su-~]g9# {yS='^L4 7 Aic I B}| , n@rn@rk%5V#KS5X auH;c ")SR7l' \f7>~p?3 irt pHF;XVLaȉC8c-e{ d0 d0 Q .[  Wb2tj~veQ T~ =3q1]XS/ |2%SS c$MoU1x ,. ģ'{#ŋSWԙwIvȿ1rۂɅJ ˑJ[^ \UU7|2 aH[%^MMDR ѯTJ I{- eԃ=v Եz Լ㖕\RYk՟eh)՟e (c=B. ֮Q?q J׶N:|qʿە M;oA ٪d٪dک2 Y ,ےִ?cciCDiCiCܗQ ^" \lx`' , nX ށX[ ֆ&yWOU"kA sQ]QAo%Ch۬@d ෆC=bq ܐ V.bMn|\D SjptyGhf$vO[!vO[!ꛁ8 BIlUV *h4r eQ|@bYx. e!E  \[$Fgbl' nZ`#eOP/lҏ(kR2ҏ(kL$=oP";Mo ({N[DVw[u Q3>#(i Ti2cvcS7RscS7RspFV D?J4d6I - XXsj?("rBQ! l/ e 1y䂤v Q? jqD+, i :ov%@>% Ex  0cq  Wˋ7{ mK |>  H!gS _ ,$.2R@ REՎjEՎ (d |OQ /Fp>^ !xjQ !xj#f5P $䂢$=R %Y8|%l j^ %W: G%W:?%x i&) 'k|( 0*@V]s,`3Q, n - .܉Vj /~u0Rk4(0{@<0iHm3RU0iHm3 2 2n=$*2p2S?2p2S 4O>,5j Oj 5|;K 6 6@ m6@ &7PE 8CU/V%8Яٕ: $=q,>[>%('Q@zUt@$ϲ@S<[AT=q &AT=q AT=qRA֯BbHBv^O DINE.¸ EU{rEϹmmG؃4 G؃4 ,G؃4 G(Q=8Hu@/ Im)JWJT[JJJ\7{K(5G;# L]RIM[fNx2`P} gR?[>tS}ʑjBtSO2NTT( Tݰe@ ^U5X WWD(XkXB+YY* Yv ZN/^'RE$^] _nЗ `3a /(WaVaw a$ߺ'b,G?*bBi%bKj@ mcW7߸s#cY|tF?d3HЃ;didW.-]d|T drOQ eg>Zex"'ex"'D ex"'hzM*jCa?knkd&lv\S lǝnm@ e%o:UHfAù'-2߁#3Jf @q]X0Y(Ǧv* iȵo&ɬ.2 @!(oojw!׉Dw!׉ Je VJe VX mNW~6P 6P?!sƆ )U@S΃e1L=Urj nѮ61 c8|u.|3d*; ,<|3d*;; /\ / oS iԼgUb/?.ռ褠f^ g➳R#g➳ fik9 CQ"CQ;tf 9;tf a ;tf ؎j?؎j ؞al mgR~~d ޤG!Q 4 "g"D SMD}gR}g ߓ#o ߓ#oKЀ~s&tX)) f㻧^@ڞyGP9? F^/[D A{3(܆3[1vd,/~1vd,/u1vd,/$1vd,/K 똂aY *zv ,p# 7a BK4EBK4E(N $ 7+$ +N &L񽂆; =L!39?U5H3 c7k|NxS xS|_Qd ^ ,6_# aW5R |k w`"X 'A3b GHX$j ZO Zv mZZ :ԯ:ԯC:ԯٯkٯk c5 Ii(X GQ, ڛ!xLR@jR@ G&ZZDl E\uf# iS|t c_=otO?3\ r ߬1 +FT ';MAxuaAxua EUt@^fvqx jOĀ!MS!M"<#ڄ*f%]}X8& 8K'm4'v= )ͦ^g, +[Q#W), '&iN,T8n \,tsB -yuų  .a|?.{z , .{z 1:*z 1[NCl1_ d 2ogq3mQ7: 3mQ7?3t&H4h/34pjS94pjS9s5 @ T50 5e[Hw5SS6+ K7 7ѥ 7z3Ĩ c7|ba7|ba ( 7AR8y=N9ˆ c:+j (: !. =z]Fj=م% EI! $ ES{ Gб\IkfDA2 rIkfDA2LW2~ P5ӾPL)jQ9Ppǵ Qf[xB\ R|G]R|G] R cSvzX@CXJgYjY\j#Y\jY3k[$G \ 11)^Y ^5 ^5 _:P#_6)~ _6)~_%9<%qa .lo a;ea̪E bzb'.C bRveAƚ^Ydf;Rf{{mzg=&Tv g :gV jZIp@k@x=k '"zm{uJp+z.!pj{, $qr r"uRrR(su^ u^ u^u4vm^}SDwfCa x| gv x?1+:zD"zD {s{{+Z S|oH?(B3 (B3̔`#&"  JybWOYȈ1F#mȈ1F$?댋(i;U?3i;U? q5ALsq5ALs1ż$ , ]}DӻӻK C m'X (D5 w&:Jj lWR%[g1Rg $] |k =D Q=>I53Y2Fasj\s\(j [5vb?€.gKg fw(O fw(O (sޕzP$ P[,ÂX  G%aG%ae*{ 4n #;%6hCvH(ds$ T>uf ~jT~jm X7{ k"=y<Pb̥ & bu jpy7YɪNM0?ImCZ if=?{.T Z$"TT4xXmiMuk ٱc^]'1 ^[ ", 轢jB=PMqM?y; \ [Lmx`*xR֦k9 q!\a{|k7|yac菆E$|菆EK%4o)#bh Uz>hjL ng.dR<9 1fY)=5l͖nss\K".˚=d a׹[)׹[׹[3+ ˘ { >  \\ Vij (0P7! BGm_ #: c[1p]v+&r CTJ͝2@<SRkRkR |dR$e($ed " ưR #%1 3 $ M0@ M0@ : +iOq/iOq]iOqT{i,-C <\ @egS{-)ax |  j]|}>tU\ɰ̷] w.e ,w.e ^ ksllT:^?YEq 8`!% 2:]  t l ߻l a}d)kG7c bIcZ  wK "oqqm?"r , "SW%"d3 %z$ ' t(({2 %(\+W` (z c(cZ])72g)Gj+JQ0-dX1J-dX1J-z_.Kߩz.Zb *.Zbj$.Zb i .Zb (.Zb 1,mOaJ112і5x\s\5x\s57,TY #6 FѸ7#d:'$q; jɝ = :V*f=ɝGa?d`Ӳ ?d`Ӳ@ȖG BIR~ C$`PD 5D 5D 5DQCEqZG$:ieGR?I.$&IN>E?%J9 J9J9J!RfKnz\/4I L1t M*[M*[ MԩΥJCMTCt: M^6 jYNA7?D eN͕K N͕K %NHB O8x ( PremCvPf QEpgTQy\8 QD # R/?|Ss!Rj`O S]Ӯ^~]TQ8_?T`:! T 84 UvpD[ eXƈNX> <9ZVEB [N \^4-\^4]1{!f]5w_N_b _ `U]aLu[ awvUan%Ȩ?b2K b=:b ZIb c= .W c>8 # e=mef R]gU hWBhm*h3]zipz L jDC j\-ja j\-jaRkRm$)kRm$D&kRm$kRm$kRm$k'hLN lӁEPQS*oC p'B soV0M soV0M $ soV0M s$=ssGs[7dx9me+Fx{\wYx';J xVԛVzGNh?zGNhzGNhzpg.z߱ہJ z  z {O4t<|gI}h |gI}hh|L # })#  (XIV 6bSY 6bS t |#@VsCۍi.޹P `~PkRȫw2ja^ _݅H_݅dVNj R fl v3vD /`qK%7K%7 n@H*׸ IJLeY(JLeYUi+~$ %h^ uj|N SZ=6v\SI(} W?=+uVHM K ]h[gY}dJgY} ?ʡ ʡ -Y]nJBo_W a_.Z , {(rQtd $3=n3=n}8D0cp`xiCU I>7><$43s /NRYf ]wƫ jƫ  nrR vD vD:tM2B}9N *-F6CcU3ZҔ.h R}IC `O M^$Key   nm[ 0IY sL .*7-J?Hg-J?H:-J?H-J?H-J?H-J?HF 7m; 7m; 7m;R7m;Η̵)6)UUJS zJ9Żb\K^~#^~ ^~*q40d:x} %U#`C/Es/E , _X&ϒm֪Bʰ0_ :YJiAJi4Ji ҹ̓ZӾr!Yլ T,5x\ ]P-=5- # d|Q ١0QY[ $_O &ףt&ףt3l ||5M]R ހ:˥(va3mzW>a3vzW>a3 @%n %;q| Mk~z 5s  ]B4+B -XQc D D.}$s3D.}$ D.}$ D.}$ {GOQ $GOQsZ.(YZ.(Y :/(0l xV a (d)9mVqHh| %0 _8aWRUrZVւ SX' ?f $) & -?'-?'Q aчj<R!j 7&:umwyuO'.  \F]ER ߘ ^ M ^ M Ms lV>  / Ⱥ 0ov 2.}a $b, # $ >Du a ]ֹ9)]ֹ9j ³&³& Sdn Q}  i ? 0H$\y#Y HT{  r?CK r?C "l"@rÔ#!} #_ /#_ #_ #_ : $Fk 'L ( a [('Z(;1H;<*-?+.Yg c+Ԕ C+Ԕ,M-9 .F.'p8.'p $/X!81cR1pь $3׸7 4qAiD@ . 52_ 58AgN5Ngg $7kIuAe8e`98~!/n?9OK $:3dS:3d :ޅt&Y;;mD k?%͔U AyB AyBkAyB ]AyB e B8"P ,E.^UՂvEgHvEr_@ZF+#wM?G:l&~ &GO2$HAЛ Hh Hέ+I I.g cJ8j LY{'O O mO]&U0OJ Qh\ S ~ǛaTpj<U΃VhZC,:XoKZE1c]ZYPRՃ [W?l [W?l \-B ^mH6W ^8p ^ G! ` CQbGOr` 2cq¶tcD e&"~gT gT gUe h݀!hz;"Zi,.|tyimj$j9jaߋ:jaߋ (jkZӠjkZӠY kqǶ lsr+m a# ? nUeIRnqYJnJ(l^<o))'7o))' poT\ poT\ pnjX? r@&xu? rń s4L ~?u]4kurTJz urTJzwK]?x(۪Lx(۪|аHmtR~ٓt :A  6vjl ,NzUUDKaK [hd"y:e(@KP.LCc*& μC.0Nk! 6rti -9ٷjIpc Ip ȬV = ,#9= ,#MT̔< uʔ| k}k dK 9-L 9- 9-S n #e)¨ )RpRo+?9 eA- K K :M ) 9t*08ITH >_r $ >_r >_r ; E ) 걭 =cWdLjWz? q $(q q ,qIN9  A V stEW l_Ky7(T5k6[3Z<R]0H a+zg+z +zi5 #{'[/|OxN /|OxKeG:D%9>p b=OV J  J RJ  (#L*N8ϩįk^tv įk^tv # 75 S%Ƣ#m|ǯ9ȮOR1|1| FHlk>T Jf[D[T#{EZ? jS /+όcN7 !] ] .W$ .W$j [͝)4?= agQ9َD,ڛoԠ gڧj uQ̖ 4b<Q}.qiQ607BRވGb0#ސ3ME ޾]޾e?)_޾e?)_޾e?)_ xo ߯ା`? ( J;f^;dXGP0 ̓`\u \8u ((x ᵗ2jbᵗ2jb?aq7vw kG' &FX" / +/ w+ dOD4:7 .!Q> G T }E м\ :м\  sL6܍ c L6܍ QlZ_Kk,_ _Qt!q] #yeo@z1 oxS1asD ~TE +񷺂}|j 񷺂}|s <, c:}[L 0f'C , 4S PxqgjtW[N?-h Rm Q an   ;t w! ! /#/a /]⇼)⇼S!n 4bj ,n tVkp.A _VeVb 9k+)n$ U"8L,U"8aU"8] i sprE \&j,{- g8j;C "!"N ֩qe$\|$=4L$Yc%jD%j{%j %j%j%jR&1⠜ 'J%Ύct\'J%Ύc a)4%0@:,>@|:.nr.nr/s4O7 w!0C0ˈ;k 8H c99\W*? \?0Or]?0Or?0Or @mֆ @mֆA=A=C)]C) DBF7 lF]w0Gs7 GhR HZH~R*IldvJiJO ʾ?M?دM;zN GxN$P%xNpXCNpXCO N5"DN5"QJ#S*j S*j jU zUnl YzXq`: ZYE*[ \6^0j\JMb, a]&J_HsX1_IlN: at cs cG# adTo> nQe;O/ e;O/ e} eʰէSNfIL: g{h_T  iKYiKl &#mZ}+ nلY2 pSL{ ap\# s8UOs[i*tr8zt)vgbLKv :R$wБ ,swۚޞYxGxk7 )z:F||e w|iR}"# }"$}" iu< UWf-zz%5vF5 |g PɂAgµ+^X 2t ڿSڿ 'tz2#y -k -kR -k$g tڎI5 -?|n47Kq'. i4Ǜyi4ǛyUغZ*8?߽ʢ?߽ʢEzsm#sm (K6B\(K6 ęB (LN`? x($ i h q m@-5px],ݳT !C@=09k7v謫N<FN GH k>R+ B6 s q%B̔=ƈ;_/#sƈ;_/SC !C o: ^>: ałNIt =r1ƏuHr ƾH-v= ; L2[tP rbj.˚SҾ |y . *ɠ̾\sUɴ l ,с=tѦhl'Nѩm*ѩm*jѩm*^5;@ub? ӱ@쎞t`̨*Kֶ!:g Cً:n^CL?_^ s)~)z , )~)ze-XSډ?}jܙMv/RݟS|ľC ݵ|- ߋ"vL ߋ"vS=՘T=՘[=՘eLOz=H: z=H ݔӑ c+%z :5mbsXt k=' l/r sRڌ*tJ|ܥɍꚚ*Ꞓ~aZ ܵt"'sl lLZR%W ]'*L6a&,v \l? uQ[68 80c"80cY H gH H s~@h~@s eD edѽѱҷLkeuw&d(~M dC;dCRQdCD=dCQ6dCl,9ky/oĘ9dq p] 2r&  ( O1ZSO1ZRVwO2?"ܞ $"ܞ  "= dh  #  # je!je jejk' {R ~ = *>2 h r2Or  s0<jW45 #3bt*Z,&D& Y j>Lz# 3g" @41* \!?>* !-籂N" = S"Kr"K &&?,'ocJ a(~U),S)M\auq3*gE +WEy ,NQTg@.Y: t.fOq/Ʃv L0/`Q 1ltxH1#סкO1#סк1]IA -1{R 1dQ3ؠhPa 3A3H@3H5D+,6IL 8>N9@HP'R9!\(<:E -*{{6aj R huAch?Ach i%_4c 1%(?tR$es83"3"Y 3"QT>]TE89>]TE8!ߖP`?ߖP`ǿ4aj=k*7H =6w ih3k1 $D n$O n$Oyf m!FVtD۠Y;> Ov aQiZ?j= 7!N}$f $[: [:D`]oXC < .>Sbt|\&.w{q ID9}UzXB 3 ڮz]FBڮz]Fڮz]Fڮz]F4*t w%3 \CRCQ gfsS0(f p|*HZZaeq6 # M2> ?Ov. C$+ -. C$+o|# c*Ή/?ϒTawt4P.I\fN&I^R  !37 f YmF 0=s ]PQ,Z! 2/w? ЩD|Qv+ YD s v.| km?!99)k !gpk #I j#KX$x-v-$x-v"$x-vS $x-v$x-v$0v,%LWB%/'͓(z9j( N%K( N%K) - *v)6,,*`c, GY-?^ . x?/xgh 0F ZC\0fxXt3SQ[4\x/R~5@3)27 2JHDG7 2JH9>+ 9u:` :<9L<=C5<=Px O@}!@}!@D @D  AHCj"nfdCj"nfC;( YD&.lQEuQ}?EuQ}?FOd] F217G`}Hn~>mY@Hn~>m ( Hn~>mk H:? ImIAMyjJ56]+J56]J56] J56] JI sJI K!CKrlWSK+a (L $?L)fA  Nȉe:]O+CRP6FVP R sDSEpC? TI' , Vt , #VOb@VOb@?Wu܆X餥+ (X餥+ ,X<:Xj X.sX.s YV3' tY Dg\_;G]#md_&PRj`_3ha9 $aѕ|jbpj#Pcvb4dZ'd'Y\DfnQg(O# gu (hUf7 i(i(jBkB?vl<^ptn(Wev nR tpȥnrzΗEjrf $sm>[tX>- uCg!wWk< x?;RHxq Vx[3Uj&x[3U yYO&)Ny 2ݿ y 2ݿ ,y 2ݿ y 2ݿjz] ]5}Rfܵ $}ќU%}7y.~g醡C0~iZ{s~؇m;~gh j K JҗltD8#;z# [ )[ WqB[fT wPK쨖 ~~& Q !9} Τ }'sɅ= ^@Lk 1@Lk-F%* (F%* t`E]ovT_hh iU86:tlIZ5 Fq\P( FAY Lj2Tumqw4^4x*?;dj*j 1 9k a Jl|9Jl|R%Jl|Jl|Jl| 6 ! be.Vc}Ryc yc| _S_LIRHIQI@i v RA% S(:t,Z3#b2mˡ aq8qUQw k$ (TqSL-v׮ k  >' RQY O[!R框NZ框NS Fv SW=uo?W'|jbٵj ٵs 5l ňҧ *Y*F  Ak_ì0-$eE D$eEY 5Ű^M ]@Z?Ǿb! jɋPYT&g]U $Aj0|D{ \"D{ Q uBhvt ,͕%+6 ιfߨKo Ў S Z!?{  + ` xadi@i@K*lJ *lJ t 6Ba?ebhU bhU uq? ׂ޿(| }E  }E٣7S[*CV9n2Y? \vk, p ێӪ۶ ܱ|.ܱ (ܱݛ*u *>[{o {oG ?C NV' 橘W'| L3@_)-9ZhNGR Ve}nd F: (s*󺤊y}= %} *͑& ͑ ͑D B i nJޅZ XL B lT?]0}:}0Ao~A6\>" G$""SI b? ؒ %ؒ Cx sSj* (j*s() aG0 !j? TM aW]pF >%Yk!:L ;%R K4V 8q+ a*>(͛(- s@v;7jFpj"Fp rq?T 0i]0i][ӿ<7 -k-k~tGŊI H _ H 5ֳ~*YQp$@ Qp$@泿[ŌS"U@ߛ%&O%' 'u'egoS( tD([΃)6BU)&շy:)۪:J+g,h~U6Y3,h~U6 ,lػ,%aB\-.Uir -K5Lv0w ,0w 0zFxa c1pmkU1( 2o74 2iM3^뱋C3^뱋CS3^뱋C3^뱋C3vfE 4?;G?Bt.X CyȀӻD͸;EALf E>DF@ę\ dG'_ I9I $Ku_5Mכ Mƌ7QNbO)C=:QOUuP? Qk!R̦.kR̦.kUR̦.kS|2 SM]Tst{ $ T*] T-BntKUX%UUn27DRU.'NUr[ WǶASWǶArXOe54[XXOe54Y;o YZ3uZ]^۶ [ \殕R \殕 \殕 \殕]<&\ ]_p9&]_p9&]_p9&*E]y"1ʖY ]y"1ʖ_ s7_jF %`oUapÏ dc.f7;e& ` e& `g$N`$g$N`gJc( gKq2&  gkeAg@kH;i *B alOEQhm&ݸ~%ms}_jm͚ ^[n^pPI˵t)q#^dq6ܸ qg r, are=&?>R rjkSs¹ag7sș]td tGմ |v.",] wnj#S wnj# ygO D{$~HR}RF   tjO.c "KU %tb% U&| g9 M2 d29 S (] 3ej lM5% j T#KRJsYseY i DvnӲ %t?tAs <Y F|? yrq<vTu?F.3>χ$ i<|i# #[SYUAOQ#i't9't~οsFY~οsFkƈxffG$ 3lR='TY=  U UsD]t ,?NΌݳ a{ 7[[7dpj)pj , pj $旘dn bd鼴BTis꿎e_e ^g \:bD iNuKF.ԼU a T qqY qQ \ =d } ֹrJS yM AoK/AoK// / ,95+ L #;B>`n >~_s)^"3`Oq4pKqԖ  9T $N^aOL[H/8B&rYp@?V`Ö  בD 6J  KR8 KU K ۃ sF m~k  9s1& 9s1R wՏM8*,ʪ Ş")mJ/B^c{ HY"j-% TT ,V(V( V( ,?},*W%L $?!9qfU fU 4;es3>hsKn L XA  C6c3V"Ԍ )#+#Z # ,P$'$UvxF i$sPA;M %\@iR:%(3Z%ݙW_ &|Qo8 &|Qo8 &)6v'V_s':' ($rj*)S*|u @*|u*@'+Cw ,U$(-NpM!-NpM.PbRt._dJ a/2&f /ހ /zc6?</zc6k0 450 3 4~]؟ 4Ĥ;0461Wj 51-US?) ?Mq@>ɥn7 @>ɥn7A<;K DZ+.E|/=F} GkֹGkֹHY|VI<JNvJ? K"qϲ N70N0ru:Qu8A.^Q?S 改&#S S Y\.[wj[3\[]4sڮ~&N ]g>t_4Ҝ.n` PQb6'] u# b;Cc#?&jR c#?&jRcEk d2:˅e#NP+ xfyj_t?ffjkO=Ykf l%lOI.sl'\lðXf:km^m|쑮0 p & rqw\ zz$ =g{#~|'{\F;q{\F;q {_^KU({_^K]"{_^K{_^K|hžO |Y6; }WuWrX pJ': (DO0^ jM uu?KAqվojF9$F9w"dp  R nz3 $d=R~ T %hzh8C8vZjOo%_|?_|  U:2*G&\ ]Q*w%‘Sf=ZM_m: a:: x@ $Al էhfE5 ({$='K -#xK&ZR \ױΝ_C g5J.lVCг93L I+gOV z V | Q2 V*N"Z tV*N"Z 1kR`ܻhs DƋ35_ b9ԭ [ [  Vy j vjgaBhI *C@C*2.W0B?? pS AŠAŠK@K%(hU}R*hU}Ra3KKoQ}V[о  /rKJ %ͫ~CviAm viAmQ" #K?:{ؗeVF l Eg}/Eg}%Eg}R H% H%Y뒬wSQifQiN H-]#.vt l!L? $6Rw & xLL蠱M:^B d5 d5܍> jmSv0<ǝKǝɫpl}˺7*f˺7*f͑j- ,L:nWU 4/U 4/R5?ӽ,gO TVh>)T>)T *ѐAq%GCi 9ع$ IZ(2ըxX Sc-[}1!↎ B  z无&7,KzH@)+1 M Ճm?#NС tG Hܱz@F1j部R3J& _c5⋬wzbރSzbރB!ȱHhd[<1TK H? yxf"ƐY7qPj 峬 zQܪ? (er uN > 䀫#ҽkɻ h1#zj+>| i Ɩ; J)O8#n>q 3nLAq ic>9d@e3 :{ǂmwg$ 3cM<4Q 70Ǒ*] [k_g GP1 GPS m  v $ tMkS >F:jC3k \ 0kt9?^`׮+8c8~) 5z aenXE enXE N? G9ed8?ϊ &Wns1B!l @# bM`Y ap.]tp]%ocȹ ocȹL 24:L=)Yr~d{!x P] Z.0͸IGU aOR"SK#ZL&%P[=/(uK1XS(uK1X(99` (ű- ("\,#*㰊D,7&y,7&yL-1x .9|L 9.o;X"[ /Hs ,/Hs i/Hs /Hs/1U/1UQ01XR`s 3{v4 %L6E.\hY6E.\h67"0 $7ȅ> 7. #8_;. s)8_;. \:~R :맯EG? <`(2=h? =h >q?S?8KcL#-+?8KcL#-?ѺJs@h+yW A*Y Aߘ?AỸ!יB- BC`  B_/1QG,Rd GOl GOl G-ywJBaJ'Jf,JNq" KB? L L (NǗǙjQAAC/ ,!QAAC/ ^Qb37RRA, TnFTP8H ,iW sWvp$O XevY|B aYcwZ0Y [qvj]TNh ^`e \_q_Yb c`|;^aNzX.bV/;*bs+^% c QczV czV|dqӨ`OdqӨ` +ffn" ffn" fu!fuFfug}eiud kjm@Ījj jjk@̪8'  ldm/QU`n#|1]n|ԿBStn|ԿB n|ԿBo;a#o=f ~oe-]oe-]oe-] o@l p)yʾN qX%3YrjٽA/t)]e" u5RUu5"u5vUx}Hvq8-+ vCXtx :J| xx4vSWR{()pZL|1ғ@5}!WDZ}T,4$] }[RfI~NE3?n~mP}&m_wkJqq" Jqq" ~< \CG^װ; \#@ i $WMX( ЅАP酢Sk3s< lfr)'K_%˄a?E] 4,f12+ba,3 l%a,3 DŽ̕?Au* ,[9%7VWj7VWj7VWj ;?& TW vynZ끉 R '&屔 .Ow OwKڤ({ x9;~BϘ]"ֵnjj W$XA]S:Zf +_~d/>sYYvpuIۗ 5{R'Q^ 7p\T7p\]7p\1vc[ OYy &Ūd!,[_Kf0fLQ(15 r SRL ڄT$៴l2Y-I  v 2= 8Njb)NՆpsS#[q FC9[>Vu" aJ1 3K,`-WbB9G{ FpûBBUA#&[,ȁ?E E E :meg 3 ŻJȈ S a1ܪC nA #Y8#;'[,S2,S2| aXZͿ6re/-|pOr!*Ѽ@ 4vN4vK&l M} )W*?,l_( ړI 60 }^:"ۥ5K)ܫ"XKs ݋406'XX#?{ = {*E N4E N yM`f6*m ⎙Q<R֪<R֪ <R֪>Qa?v1:c4:c4RFށ f)Eaf)EL躉̡vSLZ>d V͏8# }\" ڔ8 "$ }#$ }4+ L/ -*I0 s y\Ǜp}LߚĞ]$=Q02h2ޥkCh2ޥth2ޥbh2ޥ 7OQI/8G)<SVde $~a vU# {?3~T5H:   Sn䖇 j d#th%M C# )wT]^ƸƸMƸF8# ˪k n1> \ Y)ł dZ = *t(j\ }#h  k0 W %=fG̍ J#g ZU6vlIvlI ޡx yޡx ,(ޡxޡxW Zl 6SD6Sz0 ?Jt ?J   r  wm+*Uwm+* l *<5S ;'3:d 2 1on "Ovt?"7 $X%m) QW $&8{0. &=SS &wM a'c/$(Q ()y% C)y%j&*(l;k *^Yd+6t|r =+iF+DN ,UN^%,P2)K,~ɟY.|>.|> .|>0Vn:4>4]i^ b 4 ?6U?7w7et` 8]${78(w8(w19['y)9~O e9ؐ^[\:Q? a:Rʹe :ĂD :ĂU:5` ;KH;hU ? T$ (? T$?Z ?$0.oi@ h Ah&0jAo&1yeBBzZ BBzZ BUC  |E$xG#} ( G\iMH _h׎ d[HmԮI^LzL&I^LzJ=]PK͐KⰞfwyM#pMN M3 Nz =OM [k OM [tOZ^KQP^>/QP^>QP^>SR SXSYSyXTT~M TOhET{{̈' a UU,1V\NV\NVo{EoVo{E,Vo{EWy[',ZIܾ6f#\ a ]7"v_d*{{?bdj"ine8( eX~! fs-pfs-p fs-pfs-pka N ka N $kd^lѿg o'~joCs omCs2ol2Zoł<ołpX`pX`qbr' njqbr' nkqbr' nsqɱ qebtBn1?tcd;v^&?/Q vǠvRwP/E s x`Cyg*~ ynQN z`3Ez`3 z`3z2U6# i{"VV {_}`t}ٿ/?}v_ ~Of~Ofcɻ C . ƾ]QW3 c*_m Ⱥib߻ s)ዀrxDsyw Y~s̹5H \@ zOcRϺ6?s+uig1P?v>ٺhf/ҴW7ys`Q85~" c ԧL`hRg N Ռ+4WtղN[ x , s_C =`Yj#^/ (yU.sLW& ک&v ׳l~9| ܚh JC1_b dP^eM "(t( ( cFs?0 &w $ZE)5p1f" ^; t M+ƣ+a'堟c;Z b>L{H/k-c銵6R z . p?b}` ep?b}`2$dR J҄o.bYs XZN5t=T"=T"d=T"ph kn|+tum U@um UQum U um UY um UAuXbY[ { :a_ *Ǖ=Y6 Z'㣪7:cN ^à|9xȟ6 (d%> RG *=R \w܆`vKұ;u\$̓?p:  Ė]nV㫶D{nV㫶t] Ex Ex Ex yWy_9ʵ<] F b Ɗ ! wU!;J>Tt!߭8:S "g3-#NR!#N#:f>T?#a3^v $K# $&A0}&ej< !&Wc(^ X)p_ *XԌ(R+ՏON+B\ n,t!jU -E+v2 -E+v2 -Ye?#b0:TL0b,Q 2UcLF2UcLL82UcL 2UcL2UcLZ2UcL2gFHs3(/DU !3D48l/5L7P|b7t:B8ȟ;R9먈:ޔc; ؒ,DQt=ON8>CI=ON8>K>=ON8>?Oym ?g,?g,e?myׅY Dv'֭9{D}7?FoG#IG[uh a G[uh ^GW`պIGW`պUG B $HY;.2 L {޽3SL {޽3Z-MHg *MHgMHg]MHgQN6?KOK (OaE,6Q6IV3?U/bk U$ 9U$ WPf'|W Y["aЖ - YqYBKdYBKdD [ ' ](Z _' _[_K_pO_`6t`6 ab Y J2#b Y J2 b Y J2cM(YcC[&QcC[&dcľz*?:d[d!s2d~;S0Odz  dr@K  fZ ifRgրVik-$(ik-$ ik-$si[q|Ni[q|i[q|Qpiܼ KkqqgƩkqqgƩogt pB4p"=tp"= p"=h q:70tqۿs$ sYQWsYQ s8tQ r t%ƪ? v Av׭PZ+w$58w9.rx ;Le $$x ;Le sy> zNںCzL6^s| `d| `}5R"~T s 3~돛Q߉ .#jۨ!h5zؗDE$\?T UDkdE5N&koRî " ?o;*$0R?Wr(^T>h9f0  -7s$L Hy`U l &s r&s |"&s P st˴ C}W C}W2TK* uD #yj#Q!o}u?o}u ajW C䇱>M+Oh$) $BJNBJ0BJH&EPR  /RV='v JYC$ ;aȊ/ ] ~w2e:Xs :X ,cK? VU|VU|'pɳ ޿1t̓~OI_K eo~z o~zU>t?׎a]l*h -^ͷpo 2 $N[ e [?g:pfvc{$DB˃@p+_1˃@p+_ WOR ѪP&VAR&VA]oOA? H!]XPs>V^)~4x'qgGd1  $ÐkF+SWK@/ (@/ 9#b} :ev)q%$ )q%$ʖ:k ٯ펶|!B˚N̕[ɿ a"̕[ɿ̕[ɿ?Q6MV$?Z F: Bk~aB tjG:`SH$$H9d#I-di7 I-di7:IOYOrQ ,IOYOrQ IOYOrQ aIF:ѰI\nSJz` DIJz` K\)fRNx` QfXTFU*R5@ /RNwmGS M_= aS v'<$Ov'<$ acxwylSi{Zp.|yL |7Scre G pNk7 t[h#Fykk(\ k(\nHL7GW eKqqYTܤ? ?)j]@ G%32G%32!,[sNaZϭ aZϭ i"A *| jƽR# jƽ jƽL e]? rz$ߍDt $?;Sd[;;Sdȕza 416 8ZbE#z)WP7,(["!4? 4yjP4yjd4yj9ҟ'R< v&y.< v&yyDݛ $K(%CuM CuM[4ϗGRΖE $OWFDKXt q@ ngJ8Q J8Sȑ Tv p} *v o)q DBz ?YҬ 3YҬ YҬ YҬ YҬ S##4#D#>]O+Hnkf F/ f F/ auV Q TD 7TDK  c YZSYZZ*iM$D ? ,| os*.ɿ>~ e<|Ut<|U<|UE: n?iUR@n?iUn?iUQps+R 'J1[Xh /t \EHx CNʟD Fni e AA:e AA e AA h\] .)0?|pGx]RQJm,oj bFEbFbFTCuo:1v}Y+ $ )N)N _J:D΄]#&g::1&g:]z%RMv, Ă}GYĕtř$ B0ޅ $B0ޅ (| S%hΫYڍ9 5. ̰[ZU֬ sdвKM8N ў$)2[r{{#x-zp ֟~* T5T TRضUw  [( 0 ۃ>\HǗN l$ls6dK=dK=ACOA|Ӗ cKx7 $Q'tc#QH!YY[v?#BH ,[ "Z_|%"rRuHN i`@o %5_)Q?W2U ~U ~ |#1 `z Nr f3Tخ% =#  I IM= w^"  d+G!Ԍz%tZ *sL *sS *s *s  *s  *s jW qE/;Ls5( ?o{v Rm*@j pMlH ( pMlH pMlH { (J8R (J8 (J8;;|#X "}(;tZN+ڨAgƗ (U.Aj PMs$?˶ {ɻ. ¥bZmCT mCT i}/y,UchG7p -GA +gZ; qKRW:.~u2.~u (_iPULj: Y yQ!28 "F|#,dД#,dД#,dДK#,dД #2cG #H<:#H<K$zzS$uTV$ى u'2&ds )n? )rqZQ *~8+G|d+J\K ,2=UU-i2C -q.o$ ,/vmE|Y4pH2h5-7r5 9mh>5| : (E* h;ޒ;ޒs< [= 4 =ae\ =ae\@6 #@6@cR!Kt@cR!Kj @\@\BFn \B;i BbjNHs-BbjNH cB]/BtY~? Eښ65FS-[tHH IX`g[xa y*ea y* aTE` =a X9_5$ cɸ~Gp?d|21SeFd] $eδٺNf3q\BVLgoDQ>Z$gq/bhbUhIDhbUhIQ h{3 ( i (Ksi4 cZ j٘A j^ jէ4?jէ4 k/#k(k Mm&݈nk{nXn H \o>oqi p0XH Zq|J{nqwpQvr)2x6m?rh;, sI1/ sI1/ s ɬ s8Nt5y u< vn"xb]հxZ. yBqyO+:ysyO+:y zX?1Rz6 Uz6*z6 j$z6sz6 sz8gv{:{:{U?: ( |_ßD}`t(}p (~,xRY9$Wa E E  9  fM| ͡RN\ȹ # Z  Z ؘh" ؘh"cU $/i|d| kK (bٲöK:ֽ_R!2@w2@w$_C_@MF?t QXj((Z Lr<Lr Lr t[0 tH gWDx*?ޫ ]D) ^͓1 #MUv #FM , 5߇Y 5߇YYk'~rK k'~rSk'~raɑIɑI>dK "IY;к + iB _q NO?xUx02pSz|5"q"q"q"qL Җr? tw@D (숤  qrN {Q :UI ‾m%^(9/! Xx`A6JsjΊ ajΊ PT w#9=~DKV&׺bS9pV ~~popoV]FB% x3)\ zcԟbsUOVA #A 7G{<N*3bVs((D M ?& %h~=B ,{Z] q Gf; 5F %d8JRD*ds?? v t' ,DUN lȀ~Mghzaz ʵF/lOlO4̀vad̆n  ̆n &i}i}зw= sʢwu jV&).D-NTp#KԔu * w{&]ؚƶ ڹ ` ڹ ` _JW h>z lH)+tBFXP A+XP A XP A ݟiv,ݱ+rdݱ+r[ݱ+r ݱ+rݱ+rݽrY$a߿g ~?(g-xK 6 $伬koB }N Q*.> iQ#Ѵ E-x^ sꢑG[o (|ܫ(|ܫK(|ܫC(|ܫ\[ ]PA]!3] ] 16Qe #Zi34 P"/" ]>{T{;{T{:q e l\Nr|XjrN K#rN K$N~6RVlq#Jt#J DکF:F|kWȾ$U%P U%U% !}8 ( f, m*9lbrL lbrS ݋ "݋ m E:S r =#a? 8o>  i  4#} >VX [?8Х  ?9L ?b\m ( i?wR? dA6:BA6:BB͢mB BSB sCP %D;5(EC,E]ql F+*=RGjH,m5 J! K  i KѠy ,L>#0`NNXbV4 |UOեPO9P PQ=7Q`Fo<Z Q WT^ T>25U<ӽUN8{#V րV" UDW{?W}'w W'-.XQ|F# Xo2\. XFͰXFͰ Y6S; Zu/? \#?m/PL \#?m/PS\p̈́Cn]o_ $_HgL;4`4kA aѬaV a`R (aNOD aг * aͥ b b $ceiUcemjdg%fz[" fllfO RfO iT2 j0@ jOA=kjF}OjʘkZ|B7#m=G nșt??o%_:r*DrOPA # tI> # v"2m vE-vQU |"vsv>.Q j7xhzqyC#! yp'ayj yR=u{Iߎ {Iߎ {Iߎ{Iߎ{Iߎ|__- $}$aM'P}XUJY~: . 0ܿC k$F>F> F>Q ʼwO*Ǚ 4P^+]c aͶͶͶ Ͷ;Lr?{NLhI] 7W  G5W \ B==-l˙ ΍.t qd"ߊ SӑcUn 6@j j RgrL% լU 7̓ c1| """" Εm ]b{ iH:BA gg-O]Z?Rw ;FS,ggg#gS|g LNԛGFS f)]T  ,| c'^]eC>x†H_ #^qūsi'rrP r 3]t wUSY];!k B9FM \ b^ҥtwJYNBv0_U' |_} # `0ܐf E Y1nj_R1nj_s?ˠ7 c5D X i"w5DL1 1P{lCVD qo 7/8^:yªh_?: u4 u4u4u4 oZtJŲ+=gr D*!~5՜-(0SY> ǦghlY?K$MdX H$b2! B3QB;?fڲPe& s ̮ Δtg δG0JϹ`3 >FZVTO sV>FZVTO >FZVTO +>Y]K?B:? AG cAT @~B V -B6o C@pWpC{5EKR FRS<FKV Fh'U#U HSQmH@;EI @9I3(# I3n1I8}qKvfELYxZL{"@N{NQ b߂bL9 ߂bL X4"  X{'z|C`c .Zn (h80^aix (4 M K)8Y K)8Y VQt~Q'+ISt'+ISb '+ISkw#~"L7Z"L7$  ^ݢgfVE_g4dq ?zYDFFhQ HҫNCHҫ HҫR{Tn&0ܵJs 2Kq a n Pn :蕏 Wt]չ6a9kϖE eaϋ \ x { %NiK `"/?\/ Y2b OA\ ȣn,]ɵM   s3|s3 ̩FgiN(pV ư׸l<ά?< f| \Uϭ TQϭ TQXuQ ҂7A} .n .n e%C4y㮻2I 0gA JA=Q,gfH{׆ |[Ɠx4 c"kE|eM"+ eM"+ j 6$& 6$&h-6$&s߯XkGb^#:w  E̯T{;"!QVf!QV5[n'hhJMhR7XVR7j ˄_7 sU4U46\yK_:1ťC-b$mU' -BvE] 25lBmF>u8x yX!?ذ(5H #Kߊ #Kߊ #Kߊ jy;jiY iڬ = uB? QS w?%wa mPT"}U:!ӐV( ӐV(? ӐV( ( Lp5\D]DOE ]DOE?0\U:k 3*t3*sS3* 3* 3* `XiZG?`t*r61ZεȆFU usXoM=eij tEٰA85O!Y]K pxe px!XkZ"0;#QpĒ_J #ƿ3 $!5FNlS`$!5FNlZ$X0Spe_$dү ,$ Iώ$$N$ Iώ$$f-@: %\KM( &:)my&WP&@s9&GE"'H )o"T)o")o")7D j)7D*fAu>fA>fAR@@ @0꽆 AZE.PAZE.@A$ A$ B&S1ۯ.C%I[ C%I[ ,Dż /E3(UE3(FE3(LFnpo+F+HT$N F_ЅkNG;d΅@G}x%!HY$HI_ Iڛ{ i J=\bJW) aM'xOM'xNM;NM;O0ԱOAPԦ (OQkq Q~k=RAPb1R=&L@ R=&L@QR}bSX T+wV%.oWCjWHR3WFX'? (YjR0[ۧK #[pc r. \TA;J\FFV5C\] ]Vcv^ E`!aapᤚfb$ͥb]MѦ;MѦ; ] 2M H" 0^^V c^ [ |g qntS "\."\.1-. 1-.? S[^ v#uMY #><=K8y# j ]jI?]r #:8v[Wjv&-v&-T/R|4XQr |r z It$%gt/ $t/ht/ JU9lrw{N̓ w a(kE/skE/ ,!Xh,4׫Q KK`g A{ $\:Ɯ -7 = .?G字R $wèY wè 88K; g!ր'cCØBoĦ0vsL ,iH[oRG߭bt|_ bXl[Ao?otWn μok Hky)j#h;섊i Яr]E Яr]EбGcp a 2&AcD+~Y.%Hb s o {ir9ւᆻ ֊^S?ط8` ن@_V ن@_ }J#}z]}z]bP|:cͽk\h&)=\h&)jY ݫ/! i) p^ $pN, &c&c )@; _Y \ a iAd겶臻9e" S샮035샮03 r'Ƌ8Ydݗ"U $iCD*!Gy xx:$[U;} C\tH%\&DJi>ɔ i>ɔ k^B  g`[ BY($-BY(S!Ao?Ao z ( sg@q-`*hj =W@ (#N c{t퀮ΐ I# h?#&"kq )/ecH)/ecH W ,R >v3 >v3s >v3 s n킙c   $ -"0]ך "0]ך |Z~ cfl[;ݿ efl[;ݿ q 2N !dsA 0´<?T} (T} Q4& d, ,fNv|7t7tK\MZw_'ۇ 8`m j1dle . v"iܖL=RdMSjCvDDR %WN R %WN+kRFs sVWU>s (V6] KZ/VvqWx]J}\k^ p}^mtt ^ R^6|_f? `+ Lz a^y a[fˢ i bj,5bj,5b파މ? ckH?d)XYdCG]+mdmL dmL e6ьt fe%kf@b[ g g`h~|4{j*:$ $l+a/9#znS nSRp'֢ qc B r=Rzrp]Xrt}Ru#XD^Rju+? 0u\`0 w-#5w-#5Lwpɲb}H}}S,}.~w Yjb#!% !% !:- -/-%5? ̉.}# LOMo)jA;v!*A;v! -'mIyo+Fo+F8r E,I!7 (dj <2&֘T NL:#hLdP6| ElB .џx;犍i ٴaٴL`U Z\#J^ .L bDq]FIFIQ z/$:hRB B KW\' i,' H:vIz_oh1hY^*ۤIܿTjeYtvm @ɯ ,@ɯL90^L90^ mDOI ,9W WDY a)h AmJ,jZRT%/J# FI cɸqFi(R{< I . + ?(;yV 2(;yV?󕼩=>v^(U .} ]3 cƆth~T l?V -S/}IjΝ#Y>˓3 JW y)NE ay)NEÃ.%2ghf" &́tž9Hnž9Hnf;?Ƙ{ $R ԛ[3|Ȃ:zVE?EcA m ෽ lzOu<\n  PR[4#9`= 9k/= 9Y u& iBSsiBS ":ђeі𪦻RȐ{!2 *3(J7 *3(J7@ѕ+BBY%PZC8?Ad)YzWmKQ] ( #Q] ( eop 0kb AAYt+@+0ฒ-l ฒ-l ฒ-lhJGxt2\$_h 㶣X1$㶣X1#㶣X1rnDGQ{mDȯL!y? K4RB7a5bR5bw vg3 ĘB J'ClztlRg|mtg|ms 2T?a (Y ;OXNϭ? ͂  ##R`տ3 ItQ\;p 3M #O7a ,Ә  *!2{?fk8=S] `IZuډm# Z ; [$pϜ HR  ( > ( 4 (R (| &yKkJ m }Iiϗ}IiϗK>d0T ˎH47 a 7}L D  dU l /  rUR IR) ` #3 ckWu? ǻ]  VkK:N ٨{3>v0 vFQ2_ $+w (`eS?,Ni ,Ni 8-pmR$p>4? 1 (~k@%2@%2 e #Z"$ =! =! j q?i] ] 8 Cߧه\$? XlKV4K!oș6K!oșL7_-Cd*h FQ"j!Yg]# yU#];uԹ#&$ r &$'^O '{]C(wY (wY (wY )ki;)ki )1 j*>!޹*е*ǀf. , -w2 .@Z5?/ ~Ӣ6/ ~Ӣ6/пK00<|ߵ0QmV0dw{1wf,?1.Y2<[3Xnϗ?Qe M2۵f"/# %W %W)(Q%NE.D\i?E.D\ishL5tpjxQpjxQs4qp s4qpz"DY{;tltlG!*SD\Ѫ9 yyl}_Cl}_C\l}_CN2l}_C2l}_C,l}_C{wZ{w tme 1fs 4ځ<]s/Y 'd&; $JЬh [$JЬh  ԯ ,ΎƬOS*,ΎƬO,ΎƬO,ΎƬO@' (hud XkLgE`o 1"}!,c]b4fX??ئ,zvRz~1id1id?ũ .:O[z:O[z':O[z&:O[zv  ^yq/it^)u؇Eսa  sZPu9ơ" b4қ,\r zYǔe @ : s [L<j6ɛDdR ň Qňt ňk ʫk!r%)̠q[GJaxLlxLR%eU6 j ӯyy & 2s7!6 n54zF4zF4zF]q= ]%GXjs\Kֱ++Uګ ^w ܢ2U &ܢ2U u7^ilQ \["=$NoNg$No?˭ e.bnA ~ ᦺoLtDO ,DO X 7)-G*H͵?=,TrzF m9N '#'eWlK:-RUǏrilvxzJU—u G{7Z( G{7Z! 3bQ n` tSn` tRn` tK޶0#ufj& "{bMX3{bMX,~=h ?O4T2/ a'2[u d[4R0d[4 }{  vd4R 2 |E^gt $Dȹq W\xRbr䪮 g+bK\e. &<vf $ W])@@l  rD |}j|}m˳puv"z .w( ;?R HM~ WoФ u+? /x>A $żD?2``JW!)# 07 >8fpxKQtQtHKH , Q ¹tru2L ,AJL8 Eh#8e l49&$ˍ8ȸ T?_ZSir} 5 }FoN!:!S3ed s=!S3ed s!S3ed s!|Sj #8Ӭ.# RŠ '>i'>iD)** ÆZ*{RH,t6]&ދ ,OQesh,OQe ,,OQe,i ,i ,y -0 h-0 / ĝ] /1N0"ߒ'0kIU1c~Je 1m*2S30Y83`am< i3XY)5ΒuH777K8b8qIf96$\ g:zc W%J> J> JNoZJEU|LH LU/pMVG,NH8UŵNS63NS63QO O OsnQ  Q6.8+?Rr%~?}Rr%~Sv&f&UL=Z UiVA7pW(:K+3 Wy3b Wy3b aX1N!%X1N!S:Y AY Y0N06Ycz;L YKGZu49\4&5y/]Ʒ# ]fU"Q]螻 _az5_uJo _z~w2_z~w _z~w e`N!6`RQ`e`/@'vU*c1F dY^ dY^U e {:Cae09\ e8 BUf/֐RgNaT%hJY!iLs jmJ # j~l> 4 l٭N l@& NmD2plmD2p n,EnXTZp'. bqbIiz qiHw  s"'ftz:|D etMȥ tMȥStwA u\r?v/x wvyiM { /({!7 {!7{Ex'{Ex' |&pv|ܮ3"|ܮ3}0"V }lg[!~~W hfQ ~Dh~%3(nÁ?}ѦwdK?^c {02Mk^~6w} T /jj ]<UCq u P SwXsXm SL iiIEiiIEDiiIEiiIEd}2}# {R6 B1 WsB1 W42A nTs :; UUNUUN w\?1n?&63`)63`)é6#{  2A \< L?ŰX*S ИL=#Ȋ=? m \oZ mߐ?ʌeJ0:S #Z:uo#A F<2k|͛8@H@t֊#Y̥\_U΅ZU Ύ;q^s}жFd ufaG !C5˻ zb!RW+$<5$Ԛ#( Gv-s֍0<ק;N. # ؈ A bB \Ō֤+|Ō֤+ Ō֤+ i ąo?(4TJCjd|vuagT2d/OVq dV/ {ݩҐ?0yPzc0yPz@0yPz0yPz0yPz.J6.J6[,9![,9JBBK)Td)Td c"|S i1Ì' Zi!hSv s{ h׸z] 8F^ZR@ > s ` ('` .` SϡNNRSlXlXQ<")dP7{; NN8 ss _V+!@H> \ f H(ZljA(2 ZljA() GE.Z " r'dMʎ 4NOC#G Ӽ·-  Ӽ·-K !zS !z j ȸϰ 9 2 9 0 r MqD Y#nS.Sx.U&6c-? ?RlU"gF  J$?8k씆ns8ډ K@(;L[>/#l \=6R 9Ŗ @On *@On @On TU:$ %'Y{qR Ni $l4q$u"em #=ρ{xV_S 13FS & !F9'3!KmQ!Ts ,!Ts $!Ts!Ts9 ![w E!uIUR"6pd "^ȑ"^ȑ"I:NuQ"z;LR r]LLك{b ܼN$x{Q x{Rx{FR:@ & ﲿa)5q7g$ej N0r4 %:RCO 1Om: ~K;QZ䏵y喋C2<^a8ź p:Xz5K& QI{޳P%{(N 0o o  7US, 2z~0WV+T*7&t𨩥@[Ko|:}Ko|:jKo|: $ @O -sE/7 0wj3r]EZQ3r]EZNXCm NXCme"I['رtl}>Q i8 H&x\TTEB'CVԞz*[ Ԟz* ƣRcs X_ c?X_ c aO * s (E{oHp #ce#ceRO#ce #ce#ce ̘'MEFZBoKY h7  !9 !fR !fZ D-R Lݾ g ~+-[p b  q!4IŮhdLDإON;0ډ_E!U~r?W) x `$@qQF w'*aw'*R / [0 HgGN{=~59؎s{eR4ML:# !1* -!Y "U#/A0 $>F-8%[͕\]'')%| 't]Z*/'䊋C c(f;? (Zt9)ܱOo?)Y?)Qx@)Qx@ *gMb*(3G \*wt*wtL+ 2u+ 2 +O(T t+O(T s,MIܯ  ,^p .LÜD."T!K/+ /j s0H 1;bh3W=j}\S<3W=j}\3Qxn{ s8C9 9붇w :XSnJ :a O6:|U; ǥZ?ٔY>ٔ->;Y宼E>;Y宼N>sXPoA}s CYND [NE:wQEvde WFc G֖ mHzc0(J@/݅ JzK <LTGͬ[L1oY MM N!E ޿ (O>4e?P p Pu] R&ƧS $S3C\1((NSv3U6wc Sw*́5T"UU/@IOVu \W<p^XK^ XEޮZ,Wp> pݦ'q Pٙ^,rMggi gs?bbP tC_8uf&* #wOx Jxðx緕 yEUy޴w  yyGyyG~g&j5 BSeț -͒N @Y ]iϰ il_& @l_& jjXA8:ex *쑋7Rj ,ΜSZnR3S;ZnR3Y <@R$ސ/UMR/UMNײ?׿1ڏ3D9MC/*&( $78| (X78| ,Za?YlIYlI }]n͛o!'RfutJ#u ~# ? u ~# j'`rDj  A{{l/@f'{!%|cA?BEYi .$6= e ׯ~LvrHR ίAJίAkGίAt zh{  '?Z% rz#a )J ˌ+;NgW90 ~ymkL5o ,UCl T@ؤ aB% 8B88 ~&UunNBM?Nu] \ۄl pR Sh1 h1-erO=?WerO=kerO= a?ӰgL(xRvVb uG x*9/ 6͓Y Qwk ޒF#|sF($hLX;f:鏿?PWgw ň  (ưص ;{~s ȣeL wh ">fy&Y˞B\%  ̀<ԗEJvi n͙IA a -d}SЮ2=5"^<,cOҷǙuN| 2uN| Mxn> !hG \&U7R6gk\ uAu?oMRg1OKj ֋ t֋ _ /qfUBNMR\2jڙߌT5??v c8 '<'<q8\Pɷ e"uV ߛdY hv aZH`豮/O?ߵ/Y eL: %Mg?G1H;CQCQP ˦ )~\60HTXg.zF ' y? ay? (  ͪ{/c O&Q ,Sj|S,Sj|-ߛ>A{ iWC\d cծPh<:xv Par ob%_ݐ ݐ Kr:TXKԠYs5's5'X5ک_ک_ Y P !SɅ^+Z n *@?D27>W $S WscRB #Qۜ? <ZdN H+ # ڝ3VY & BWS_S BWS_a D.% h D.% h D.% hP| A%|RA%|R@A%|R !ߪizy)R azy)Rs$O ۚÐ?2?;1 \ ny+ w. iZ0%s$h l^>&Ws̨R. @j YGN* YGR y *"!C)J#0!H% $m$m $&%zC&B8]R5'/z@۬?'fLQ?'k*( _ (!u?#(!u?)f1k+¯t+$n0!%0 8/1%֌O2A^ e2&3r;s3r; i4}Q1T 4Zu?5 J*6c c63R% 6,?6wMu%8;{+r08;{+r(8;{+r 8;{+r 9R> j9{- :۬WJ;<݊?$<:>xj >wZ >wZ>6 ?{ -??I`A~˫d/ Al̺C }@d]DĈEhE:qE|GH;' S (IgHx JP dJ|L_J=c0K c_PK c_P LIL<+bM1 M8$O$K P!Q#fU,7y Q^ R'Q ESgNlT6(viUTđ>XVݵGoWSXW| =Zb c\V_Hb \T\L\+C .!]B0l ]B0l$]c.'en ]]^U\aI<=aI<=aI<=aI<= aFhaFc7#ʵ c7#ʵc^Y! da0 fZg !z g !z AgojC?|i1i>eRjxdsh}kM'LDckM'L#kM'Lk!>N5k&; g k&; mv]mvemv>mvS,mvUmvmvnsп [ nsп [n-@8OYo47@o47@o47@To" e o5Kko5Kkr$Z]eDs/OI@# -sG.a¨RueZX v0}(Bv*6vq.tvq.Y yLP \zFvn Azh R }c@ +~BF ~ծ+ +eR2Vx<6$RxmSSd4L2|# Z䟖T9:P[!StEx .T0 -#@?ڝ3;~!v@/KRsӯ?Wy!$a7'n&5QY'n&5Q jWHH l !t|RYjyLDdyLD JFo4JFo4QJFo4q]htOI5 CJ4K$ODS 3C`u3C`uqA|6m X9GtOtD𗍵G ,TA#^/1vh rl Si$A` 0x[YE  率P>s   2}ER2}E2}Ea#l r2i r2i%CD7o GjY{Wc s/xν鲷cUϸpT7 фd|фd| ѳ/2f:ѳ/2 ѳ/2 ѯPե *1h41h4 1h4 \1h4 Fj. Fj.rL{Y Jk֨@u $ծ > -$X> -$W> -$V> -$ ?[J Er/& l/0t үjڳ@< ہ\y (C'C ܖ_~kܠ?pjܡZ-iL [Ts}7Jì6L BE]YOQj㒏[\/}[;dz{k d˚ (MQݕS'9B i'9Bs'9Bj6iz iT8(, n7 -ˇb aќ $f.s c4Yr2R6w: =i'})K=i'})Low irn _hz *>:•aӲSl6N9Kt]7odR ; j's_4= (_4=t>HdiXvZtfO%G ,VO%G ;O%GjF2lsY76 @)  ΍T ΍Tj]ѷ kL{$ v-l4w WA?iK * TEdJU4z& ,n;sn; ,fyfy #K)TdSTnSfbO^ bO^ 1$]B !K- KK)qMk i &Nj j~ |n4@ j _io  D9 j " ;` I0 t I0   iY ty{=]tM  IJT:gjF=1ؐuY:+\s x􊕶Ci *L&(*LZ*LKNMoNTנi+ \vN*I Pr=z ]z R z cbTn*M*d֭W3SBCF 6;T] #}G+RL (Lh~ッ X@ /Z:_8 !#&x' g!#&x'j "<,n#NEe!#NE #NE% x % x % %  s% Y@% ?% t&,')'43f$ (J2 J ( ({ $ s)r>])-J r*3bj*pD(*u?=d +ϭ +@p?M, v .0Rk.0Rk.0Rk .0Rk .c} :..D1yFA 2C 2?릢? 2?릢3. 3_ Z$3q:"3q4 Ib4RE5xBKR {5KhC 7]$i 7Ҳ Ts8$g o:co"چ :=xM~ =N~Ex ?p͟Y3)N ?U&]E:E:\E:Z,FiGhFyi7G4lH ]c\x 1H)׹ JT H%Ii=ljI9gHQJYsxjKX+\K + L"z2H MnD* P"NP3nTBI &TVvI~Y#U[$dUQj UQ Xvg0 (Y~686jYd׏ iZKPTZLCs \Wa%]NG7[]$Q. _ %j_ %j_$DNr_$DNr ,P`R16`R16ao>_b eG) 9 # f>v%*[f_6 gTke1Shbln8E@ hbln8Eh&x\ si0c jGY[ l(<̱slTsG lb lbSlN1mp tn4N=p4pm552 q@,dq@,q@,Q qKwq!< q ,@Rrۀ rۀ rVfuwKvW[s xY xeTgy-y y$X nya zFs?{ޖ[igS{ޖ[ig{jL݂?{jL݂ {jL݂ |:7bq ~jU sq5tq5j ]Ev]MA;_ ;_ O yo՚Cyo՚Myo՚wv>Q Tmn$ cxB ,2pNm2pNm kk#@q <l $zk]XS;Re/S/NWj. mDl r-b Y9/gf ?;}cⰀ 'PIm\r W[\K, EP EP s EP Q "1A G^^6׃ #Ԁ,j& DQR sDQR 1qغ yI {}'&3U (EaUΰA]TyY##{> ]1 ]1$72W{ Oikf5rYݝ"UuJ(O?n+nt޼Mqm/Ea$߁TK j&Nᇍm.ᇍm IT 0b {7'\ 撅3 fT Mg$'i8R7*s `_PGdj5Q{S[i ( )uTSvU}~3$n 2(-\2 jSYNd$hrSB[=)sjW!<vSFpQ) ,>̭6 8 , `qN:pY?V0#jȝ絶mw&5䯾 !׵lթ=5? ʻDz6bR++=xO y$y sq-r >!F^Ղ F^Ղ $ |Q 깥qMit꺾\zNQ$_NX `Px Ao22к 2к   k  i k}$kQ9vΞLYS ,, *E#[LE#[UE#[E#[b:. !W~:"A =:#nQ %V &5 \ '(f'2'`}t'2>)BvU4)Bv')Bv +Gcgf ,j-@} + -*%-*%.4"<.^ /KW: /LO=]/^\0)q?L 0)q?P0X 1iz1~"XJ<,2>#d2v#G=3E}Y&9 52cs7!a~%7,}lbt 8kwkhK%8kwkh:7KSR; s=2=2 >? ?\0J8@B 1WAŞ< A_6Y+ A (A9P1 A9P1 A9P1DDMVFv녃G GlF!S HLGY H Js8H J +H JH JH JhHuj, \ I\ I = I]o+ # J JMG}?K@dL&͗f N7wgYN_do eOKX Oc | PcآR)mn)STꢾ:UǓ@?} Xk)K XHXHZw] -\lq$]-26 ]9Ge^K9^`v枤||`H$`jlLZ ao }ao }S aR c, d|d:ezOexO \ebjf?Rfdo9gɀh="giם jkMZ kMZ)l~Ll~m{M<1؉n0uPhen5OLDn5OSo]y@%coo7?pai)5n8#q9Z0fWr?Nr?Lr? sxCtAz"vv/ג7? w=y_7 z[ö{fJ! ${ t|SQA[|SQA l|uP | T)|{.P|{.P|{.P}xMiWs~Fa@~b]~ VDCq2UAV}j AV}h mkv$){fC *pWT4p@Ѽo Ab2 !"\Ҏ#p|,Wj=t Ʀ ?ӾBD8fPhnAa $\Ͳ $3A?S0  c?d|YaquKaPJ!9S'8C9Z{thSc[jA sk-L gtњ)zEr:QAn!ow:k =ÌYLz< .j .?.X3yz?Z6`"~QRƨG% |VO% |V<% |V&=i' \W+BWTHf6Q=l 2r"w[ !'1 {ƦeJ8o׬"`?WۘzUT?)ڎٓ%n s+.dn$iנ{d9?{"$2(Yuh* oQY9/# iNQS } ] BAT`RSYx^ϭ iڃJ0'Q ,*WJKi%Di%D ܏Ϲ6 2<'݉cU <$qr3 ~i~~ƅrY<$"3akz ~:a> &^?WAV C:Xl.TꃴvK? ~  ~ hq1Z $XJ \XJ \ D} Dδkt$8)e <.X)C;)) T 򇂬&pR}G| iX' ^:7{S-n(jlOY: $9Qf#"ʳM ع eV`^~ .L_n@5 3Š"~ X]  o\b1s, 1s, a :<R :<j;qA/ #lk"5K}'< i 2LY  sRN) sRN) R   =}& PiE +( C,j :f!u*L `:k t<-BĹ{,l^l;=gTVH"=gTVH=gTVHOybC >bC>A}•CVJI84Jo>)MKtܽ OG;YdOHvOH$OwP xQ~V%S|ܞ Z TD#: )TUbdU=)}7tUN$vVXdW\߹XRtNXS2 Xhp:+ cX/}5YDY5g ];YfysYfy YfyhYǔ +CYǔ ++Yǔ +^P M#^i/`4]D8`4]DR`4]Da&] a:6La>8-. ahUv #cNDaR%cNDacӝFP/d6Ydmte|:W1f v igq ELh^jSh^jS iddjŋ akEER_k ѯ m iZ 3oL np]Vɧ Wpj j p_J qTAƩ7] q52q7x \ t~"RtgYu*) R uO suA؁?v?YLt v! vR#Jva %vGG!x Mϻzs˒ q|fL*v. mL 99[z: TtO$[" N -܋ ) c.Xnb{ K( $-֤z$JOֱ \Ok&| Ok&{U<`SEc (SEc >ftqchGiUErR8 FGT FG:+ . O &FFҞ3? xe ¿ =!1PG AhJ~{?GmH(R4s$ 8 K]=t}r%Q}r% h%(VH ]e[w >e[w&4 ^K>5R ^ "U 1^ "U /^ "Ut%dmt  zJ?5*82MD,?tJMx( u lӡ2-Ppv f_ i ٜsT$㺸 XWava (XWavaXWava z؀tKz؀b,z؀k"/A@U1#!;-!~D ]AKZR  c[O%,q 1uP[d"R;1$;1_QV #s &PyR0iʎk m umoR aL(?Quo^ jJ $jJ mK YkuD D& h70p9 a<܃ Yn Et `S  `  j IO`z#S%w݌V %w݌NFɈfFɈf jĢ* '. t Ђt ΓΓ ]90)t N\ݸX N\ݸXVpe.b9$S?kDaM#r D_ 519D˦>K '_ R(  gaz P.cbz\ 0J2 <1xAz`  67 V 9jn qIR&k) ) A)sOs?.RM HZy ᝲf 'ᝲf  `S5HU֏9R"z](fa*O*͉Y s,Q.K'mOr0_^z 1 ]2S]Q 2S]Q8I,Z88C_*%9-ԕy9B; :pr \ :pr i # ^M?.#nC?ES̘ (A AHv2LdBկ9B 'C^3GĔD|PUEjhF;DWFLt7vGCT7,rG\8nGI EI KJGI JhjJYZJsa K&£^ L;ӳEYLݾ!s MsRhMsOH8bs P52PD*DP rl=QEDQ:CSAQAH5_FQAH5_FUSS n S&h S*$S//KS//K] S//KRU&#?< ^U|kVONyV3H[ WYbjWYb? W5gW5gW5gW@СNY`A7 sZH  [ c[7s~[h\0^R]T~ j ]1hj]0ɬ ( ^~|d^Pu_ӍB _QE _c`z`W^F`ňAjs#`ňAj aaCj'sbQK]bHbD !bD Kc dAǗud dS;e:.ڥ3 eY f(uf- f- g h5'h{vRh6ڲK Ziȣ i= jָ/% <k-Cީk-Cީmr+ mr+  mr+  m;4Qm;4 m;4 mo0 oz tzV9!t]dBuP!uwbޛCNy }yPիKYr= , 4z+?&vPOmv\)]Z v=WAo $f%jh2LjH,s}&w*a&NDL+QtJ W8c^SW8c^ W8c^KkؔW+aRrZ[zT% eC(׎[BSVZl~ | c E"E $ -jitẁ #MNDR-s?K $[i$[i$[i$[iSq=?Oq^ЬyeS \aͫ'q G7 & 7 &{m X'U BXp]_@Si=b aC$#ɩ{Y!aO> 9I(&DWAΙ&259 W6. "LKaMi} oGje3 ÂĔy6Urϛ_ӣjDŪ`]acx[8cAFɫ(ʶ,4K_ѹ ? 8c|*kX}&F(s_X-RbaOw;Vd#O]/J=#J=#D9ۑ(L*jP kr 0 J7@J7@쏬쏬;쏬#쏬 Ӷ (AH=3>lEk 3>lE4(k4(k {- 2 R!H0 x"H:YzRI ypл\a 2/8]Ma- s ؿ%}E6[m # pJ> ۂ87 \ߛh1 )( t쓖  W!.Hi Y?lZ@y?"9,sr /1," "Ҥ"x$ \* g \*? . n? 7r 7k 7 Hœ8t2b<2 (& _ N^VL#H9`#,E?;jm ;G|S )hs4ZF | ԣ_LZWrNr !x^wgF] 5v͛"3 ZzQ%뵩7 q?o0!;(! U "pg i"pg #UJY;$qYߤ c$3 $%& %& \ &c (>&@Q &@Q +'(V (.W )a<t)zsG.*f *qSe4 +7(Z,0n6FW-/]=#.Q] ].?*hS .?*hS/S/&Y-8 / Z +0<ϛ1?2L~M >L~M>DPP?AHv) D~EؖÈ aG3 5`GY8b. H!?H*.R{2H*.R{ H*.R{ H*.R{ H*.R{ INYINkIдks3K ~? My3W2 NYN5W +OU@3DPa P(r3RJRVP]K S_[@\ Sn Sյ EYTd,| U7v]YRUSĴEVJbAVsWTLX¹9Xz[ eXz[ eX2\ Z!qʾZZ_Z([p"^I8#S=?_#_Oh,_Oh,a_R}~؇X_R}~؇s_HAm ` y?a~W'a~W'aa abC:ޥ`!d]ӸCe>_] )f.4T$f.4Thl?hbގQ (i)3cYcxKim߳iLAil.kqg[lz ]?m@[ampn$oOofu et!C,vNH1 tvmyM"swr xږy+8CR yLRfY{)tv-{~v |SH; \.}W}?~z)  ~FVS~FV ]  ] kN% ,}s,}gurrKb#r9R* (CT"m_p +L ( G;fQS 4N c&ʲQ bvSK2zkANZr (NZr ,>UӮ>UӮ2.Xi  Ws(0 4OΠ+kl]J\w|Avt| Iȗ4j7jG-4I- 9 day Qm%S oy >qoUȍ0`2 f7_5ZYW 'os>?r jLC+  ӟ $L!$R L!$R L vvHv%!nDݚJkw3N H ߔ}*D F7sS X_:jZ n2y)xe lsQs Y.< '<SZ 2\r7FkWlW#gX a+K|ýns,ݑoql" ̷f  _ ;]] &/: (I-j6E?ȿԈ=Sg2N| Oi~ e @r; rt#rtDgEΥ5 (Χ ? ϱJ,mB?bQydbQy!Xь!чJօJօd+͏ {"pot"po i8"po ׎KBa8k ِMP/ِMP/| \cڱnn+ &xm !ݮK{O{Ohr ߰B&D ߲z {)w_ $E-_K۵/,ѽ_ D=}ݫ}ݫdX{3L髄חjD$ ^+ (nzj0ρR?b 텂>o\%8-;|9%8-; jXjXGfVY zk/ aLazQu-NN&N ~j kU`r i+գyV?:^F'M_4 3 3x y$v M K#ط J~eS÷N]T%?> cs$ s$ \ "<+Z)a׈= kaZ`B\BDCNn '8 '8 '8ƾtd\9#ljv  TfCfthtpfthtTftht6-A?a~@!#Z~ + aPIJ}vZ6& kz\|zmk7zm2\>\#_ " Tg* !g%[!&B+׫e !!"iS "l7hx .#Ҝ1f i7%&5k%?6M#u(psN(qOEcz({Oq([ޭ (.)ey )m*O{V +uͳ-*t -f :.*k .*k.*kL/>.rR/n}$s/ 0ć5F 072R)*? 2q i2٢U:( ,6ļ? [7 { 7 {8Ѽ $8tR`:/R :{xv;A (<.\`-L!Q>_d/ !P ?-KаK @WhRB'w0!|D1qnKD1qn E_uRFua $(Fua?F1y$G[v HLl7 eHg JЀ@K0K;NkvL1JjLzCME7yzM ѸN {Zqx P0}Q)8($ eR+fJT_pO ET_pORU7`PVE8f7XW&)XW&)eYd1\ Y[|Y[|ZGu0YZGu0Y Z5I|]/r7 ^Q7 $(^Q7_ngz _0h' M`=́_]`=́_i`=́_\`' c,O0ۯ \ e JYeF)/XXf'{bT fp25 :hϔ2K iijvjkF@kE5Gsm&f8‘ n}۹RQ qz\y qO qf+ rĤ |r5 rr4ds+!C!s+!Ks+!ds>osB^Y s"B+vDDINvDDI vDDIvDDIva vH ,x1{q cx~Myx{F>zdxU{&ui{t U |HF& }:fR ~/0=`} jq~~M|-rxC6= p;gSp;gD/ jSD/ aOF \m 2|f < ?p5y  vl]&%~D]&%~D| &%~D yƒhK?U ;;O ^LLYj% jq9 #Ɇ.YQɆ.YD: Я $L~=E iqݩ J k ,1@0r*N^NC+\U~ . P4=y8&u= h jUm!?Gz&? Gz&?? ҬUU'ҬU f[pMc^*`e)jw"e)jwC>  ,\[ dddIIJojsKTuNTuQ Tu 6 PK .ʖDA H| A H| ip'ZmT -yF[I֘ڠ1so+mv 0/Lε 5: (=rv|s  GݷRpQ RpRpL%K[C# &6 hJM| $M| -R SE 38UXۯe >u ֯%C7 5< Ǡn5; R?tR?]^aY(^a m ^a VvU b% "2HjQ?Zo6̎Xk? 53 \y %fy jۀ3O %HYB.J, c\u>Ժ8?.M ׉o ׉o 18c٠c@lp٠c@f9Ğ0dgAݩ p~OE|^ ,sC "Xl]  o2^ \Jy%敢g#--,kr1e]1M 븏&<L 첞U LC{(Q? gy `:s F> in7pB `w}vq_K,IV L:8Od5ھA*b<R/ $;wNSiX^9-5tEzGR ]NQxCW^Yۚ>j  h-5 h,?h, 7"x\-f+Ȩ?|:̢j_Jn_Jn ,L (^9)sT m`QF]@'J RO  Ȳ6"Qw Ȳ6" ά7AY  QD LjJcC -qQ /]bfL Y KxVފZZjO՛O՛ XaQ3 XaQRU!lI,7cq? s`aj6tAGnckSnR ckSnL~ uL+ l tִ c S%H?!\B̻V!j; !%[V! "z<~x "^\|#?l"j$]>A ' R_ ,(dx )0k-)0t&)0 )?*5v+"pa,qo -2v-w/*m/*Y/ %/x/$;/#!0B.KUD0=13*\ 3*\:4a| 4a| 4Sj9 jWz9T<: |Y # :F=*FD:ƍsM ,H>ZxH #H#_Q sH;WƗI#FZ\J "K<L ? L콕؜N-R,5B 'N-R,5B g Nw͗F ,PF3X YPv YP YF| YF|YJlBY^ 6[Q\\+j i]R2E]fy_|i Fj%_=_ԕL`amS0aaB< aa,$icd9 cbqR/cO@dCS?dʡ"@\ s^eYG~KeYG~ e5q $ g*^hR~ \iZlbiG2 iqJj0k4F kTwm> m>Ym>jm> m> mW V*mW VmYC8 =m!&|og,k oƩ- p+B̝jpߵ3iq$zT\ + r[7" sPMi8tbL $tdOju-8u ve}u,vl1 w[;>Lw$L $w$Lw$L ZyO5ړ ,XyO5ړjJyO5ړ9ypL0yÏ ~ zpFz}|Cf=}# W&}# W&}# W&B}# W& }~D" YV V΋ f8! zy sXJtwJA4؏V^+ a,˘ RLkz-/-yu  ᇲ R&o *4V-Ŷ d<`恜 Giii?ij זD8k a |$5r4؎ }R_(|;Uf:Z$2ްT[ g_je"j_"j"j-&PĬF* ̽eH̓/ T+m>sNqSh.b.bZK$ FXDMW0DMWDMW Ɓ?y Ɓ?y ,)ss!8 ; {|L lS?zZ¾SzZ¾-Qt!nj.L#_ ('6e g /f  qESJſF[&ҹܣ i v vl[cs9f?+^ - ( (Px[z 3Q8^?Q g` 40ɻ@x4? 4LG<[W^(Kw-9 c) ~ Ӏj a-a4o c S%v $ Đmw[7O @,,%! 1pӣB # 32vG)S y4{ UJ&̜ Y/hNˬ7T IyyR̉y'I; I; ҖGyr10ut6ډi&OgcWUՋtj2?֖8S ־ > ;_HR $ pXUbzQc|dU UWsUWVhx%N"M)`*¬Rs?ZHiQv 1fdw1fdwP`  s좥N ) mꏞ] W! ,J_ Aw) l #_ I1crLk {xO`t {+[ag >]csWXk ۥnRۥndv9yJ4 #6~Q!30 5Z?Z? NegAeg ceg # pJ%}06&Q t m :Y{>Uu: ~PF,J d{ \C+ [<T" JZJ jD L>D L> jk jkd q} Ő Ő M2ϑC shQc?Ȓ< 6_^5R Vv#x׃e&RKI Y7&Y7Y7^aOYve H%Y ,sa6!fGO : ātR;C׋&9= ()l )l }~$!X"!g& #!sSkr-#QHJH#BP#FN%#X %jH?~&%Im$j9 &=&&mS&Ha`K 'T(8 v(۾ › " - LR-0Ij.mVaY .ح 0#M0FQ*90MeP1VO =1VO "1hz#- 1051H t2Gc 4V%& \4}OqvR6mjb6 Ct 6瞷DjD:6瞷DjS6瞷Dj8@ʨo 87 9A)|K*:];zo$:o|;0bDkN-=N< OOt sP#Fg| P(1 R0d#R_l R_lR_lT(;# U# #VSE!aYPZeaZuj,^aZuj,^]T˓_z^]֘S_K_dO`  aBm ?aQ4J+bd # bdy3&[b3D2b3D2-b3D2b3D2bt$c0N?dZk B \ dZk Bd %e\7A leig iif:,i sSiʊid ijn|l#j l#j m6\bn?;`oRՄ oRՄ?o,JW| p}hwKPpp(. (r sm.)_N:ssNvusxU$jx%5kz [ zTB{TkLye{j`Q{nZ,P ! tQ"yÞ/?7Z cO7cO7RSMZ SMZ @!'!kĂ̹Y +?EР{*菗 (1XT~8 / ai-"hekկ^ e^Ӥ5T v %nhcj ΍ t b sw={NObN>3(%DbB$?O>ƻK E} 7ed4 ];my#0E; $σ+N +`Kig$B_jO#R#RcG2t 2txb: V_"c΋D᫥lZ} Z}*\YBLSFv= , DR We\ t޾I%t޾I?q ?q&`9mGb;F#8IbP\' n!yNɿ/gszÑ<|Q[; n]<z(ڌYj_I ۶αIY t*5k.H% Xi7 i,|ʹbS )-1! )-1Q v-Q%m<}"f|م- aAo[r_K0 "~)v%-`?5oegb6ӺdcXgnW`L "L.&NxQYHX{3aǭ.VR8ihuN>?4i I 5J)O ܼ`W sX.$A- iN$&6Vj r@z? yN/UDAE@K!bbS ti.!ti.!x 0 x 0Gp.#WIJ BGG:ԒJf) 6v= He` q~yܬ~yܬR~yܬ R QRQST1z Y^ ] ') `Gf| #D_f| #If/ 'K? 0@@H 4* J`w6' s L3 ??mCR*'Kj?;6g:] :] w ^w ( ӭc`v.T 3[5A YjGu*N#>HXTQ?c< l?h_<?R A5<-.AJVAi(ybAi(yb ,Ai(yb CvVvDDD< iE..NF$ FCUZ,? VR ,VR %VR V=T[ Vyn[^v8Vyn[^v WG:ۘx YqgxA! Y# 9R/Y:)fhNYY?Ziu[NNԚh[)>$\sdR \8 $_FĶ^ _w]_H - ` : bʄC e5N g"vMgE 0asjQ:WiL k0I-A[k½m ( kVHkVHXm0) #Jm0) cqFp (rv8͸ttn,+tq:TuFE uFEsvn3Xw\`!SswĮ]Ry֣{ zwYY z{[Cks S{[Cks |n8|KA}a,#Fs }a,#F ~$T &xV-Z>  O! $k$>(9>q :jtiL :jti Pà ;"$(+]`VvAVvA('Ǚ hV@!UzUzޖq:P|$NY |K/ 'w oy5Fz U_xY zR%vW 7ҙ ( עC;@  TbLS ;3Dp?;3Dp:2P}H2P}#70HMenӶ'\Uw"Ii̾NMN r* ruexQQuexQ!7*/МAD /МAD{cguK {cgu||d TN( c@*WfB (HWfBj<< <<S<%mT1$%mT1#FȖi] FȖiK-`Rڭ6]Fc5mJYB(5?`Nw ruyo}.e $}.eh}.esm}.e }.e }.euOd0 "Xٴ P]P]s#@NbD cRg95i75Gij /4_x-Lf羶8R Hn .I̲Ke I̲K O3f<$*.| ELRN  g\EG}PtzށSC'k5R`U:ģQM9+=N+=wGwG xI ( S(,υ̌y [*bó K+^x""sҜ$'kR K[ K[ ڔ+ڔ+i i - Ժv"I ɵ $$ɵ|B ך$Iw84ך$Iw8 ך$Iw8ך$Iw8כ k+oBq+oBq+oBqks?ځcZکV- X"LRLSV_ܶӂ#?秉n5"1jE,]ScqYF $ޔnq X/bk ZQA . Mh+Mh ڦJF`%Q N k {Udxzz?ɋ ,T!铡$Ts + v s7RQ[QQz.  +@$EA  V)2AwDGvL r(;Dc^Jib)Gb)"b)b)Qb)*Cbt *Cb l\fs!tWP"}dpYd}dpY 6o "6o js ֟Bs ֟ lf;8; p*<Ik  NB&珙 + Iŋ;P۶  ܍G!*&YYwlO Ggk 6Ggk Ggk Ggk /Y /" Mb Mb# ڀ OW+ H4 5U? 4O<d mM _@/ Q _@/ju-ݥ# tUntU unm$]GF# F#?f! T  <Gd~|g *|g G :5#8,?!*} #-9h#Z QR#Z Q#ԋ#%'_D#fj%'_D#fj] %}W%}W 'nO (>:/ (>:/(OaŔE* *xomu*r< *#cA 3+8=?0EV 0-R4Q۾*5h?WZd95XZ69W0 ](6eCw2 :Ȑ:4| :j T ;\Z= $ >MĎU>MĎU>Bq,@; Ayr ,AKԞ C AS*SB bGtB°W(B°W(KCf%sv+E> E8Ǚ$ aE$0GX H) HkjW[Ile\ICAKd LߟMS` MS` ]MQ4~? MQ4~ M|2pM 04O6{.R aRѥR SR®vT);5(Y TC +TTw'MsT{Xq h #XD Y yb Yf ZZ]kE]L{6k^V3* _YN.m `Y~bP `)0]`)0]`)0]K `>BPʻ `A3t*a`9ԧD#d RD f Qg%kgKS h^CFF k> N +m[_/nz+mpWcq5ҫr^7!?sm?YN?svR  tvuuڅ atիc=]u(Xv<l \v gNw} ax ?794xOZziau {+"x| }N}IsF Q 9+> Ӻtt?*Ӻtt Ӻtt $ Ӻtt  P rma]čd9dK ѐwo a_!c j xn}>N{kw wtw 폴?0P@+z.>0R'}u٠ 6/G}0%; ] 7e@ # Z1u-:/ `0] MȲGGVwwoTOc4_c|9-\ c{k<~ȤJ<~Ȥ:<~Ȥ7YOs2:`,5x&wNF-9S? sy㝛L y㝛L Yc Yc$:]3 :]3 $韎Lc* e* e ,G 6* YpQ8 ]/ob: ,ўV bh3D bh3[ bh3 Fڲ H7SdV s}.A7 \-}.A7 ,+}.A7j|Li s Oܱ|듅|6-k6-k;d(Qr5 bq - &A&A.+ S (cf?o-4 ڽ L0t=L0 L0aC+ԥ lfuWLm0 >Тw.,F|()v!#, v ˳,aCz#^?2* (.kiE co׻]܇R9T!lv6}LS"޵Ydp)*))D [Kr|nwS@EF. # .Q-R^7#rӰ( d٪[Ms (?t S|sYq U͘H Z %ꟜSn i;j/dd n[ + Zm" R̯o2IIo2IIo2II0Gf >sZi\ǝ z =q7QryȬ WP+ ^s `X i.+ \]|`.~1ӯEuoEu -bjz۴!hR$ `@vK0Q.)ikP ]- i ~zSZ ~zSG-kG-kG-kE{#nS=^x^xD# ? i4r ᗦL h] heL ]| vQui'Yr N(u l:<=!nO  SR SgV~;3tUmu^ HS|mu^ HL'mu^ H$mu^ H\XKCZY SJ ߈ [?׽~jD rn~sߜ_ NJj ۨՙM 2x!"rp a J`rY J`r8 J$"!- "=l3o7v>"=l3o7 #4;[$`h&J$]0x$`1g/N&.n" +D<,CBa),CB -0}` (-ۧXh O-ۧXht@-ۧXhY/9@' \/Bc&"/LpCM (0 0$){ #2Kqt_4#zֶ ,5&@5&@7|3VT9?y s92F<U$;7e>t&;j$)] ; (HoU;  >Jd i?&ܔ i?&ܔ ?擵;AYDZ/Ah3#Ah3# ,AlO5 -C3y]b}F3Vd. G&˨'GGrr>HwmsIq.I\KI2~Ln MB `*Nh{S<Nh{SQ4) QZl.YQv  Qv  mQJw&R=5kYR 6?R ~-jSZdSg922muS̙dW^D2t -W{@Y|K`(sZ?P!eZPrgRZT2Q;ZM#ɂ!HZM#ɂ!Z8 [5 # \T[ ^SvE< a@jb~Eb1[!NJe S eR7Dv} eNe f=fXkhBLk9,dcl}+im)6nKs7x nnJNovs o pU>Zpsjq q q?KnJ}v r4K smYO[tj[At9fj8 u@R3u@`v,6BwaHnwaHnmwaHn%waHnwaHnyCWS6 z"'Fz2d }HǞ|R~L7 I ~i`؏~i`؏ >3M4L8T ɧ|L9[k/3]_m.Q%:#;: dm , Mb5Jb Mb5J`Mh $ /}!- #A3?A3 ORZ^v(6m8 c.s ,KmU",Km406[`65\YXo}an`mqzJ? zJ zJb8M_kV\ Rg_Ru#Fv pS% T{ϲOIV@~R"WFxSN/wVǹmX[ \6LA6 nA6 A6 )l;z Z;ztWY{+].gm| eSa  :Ypv`]xsB,L)B,aB,ZB,V@L<9&v&bw;X9K`;B!CN+yNGގˎloxsg? ':B1R;{bY s`s1 $*:ch>:ch]p_Ũ#+etRT metRT s etRT Qߘ{ A# 66 eB|kKiX s);9&G oƕ²Ir4dDm8 dDm8ecSpB Ñg ê^ˋ hö͸þTr ~Q WsR fƨ` ƴ`@QM\Z$9ȷbӑ"%r7'"%r7'F<};#Lͭ z*;]ͭ z*;}xQ} $% ..Y? 5HYCϹܰظ АL АLx.>`}{5 \ ZJ ҫֲ\4i8:i3}8֡U(wy׸ߗ ]=$ωueF @6cHӣ AJI|:߿*e: rn9 vk? SFNF.< *;q gk gk eG_%; +_%; cA'Y \Y )ۏy4녽MdY(ƣ棭 TWEYtWEYKnjR]Na!H -UHG/Y *f  m2΃M>'PA PoJ((LDE (GLDE!LDEEWv[^ RR LJD Yb%0@ @ Yp:õ q#B" MI J2R @PRw @PRw j? *c _Kӳ"  ( uEË? cOF=N! Ohͳ .a~ru .<&4;9N Z;ò? )I%NM,};Y1^ tH| #'ǕRڭK  ( mSmmL>" (E{þob*ja r 8r ,r +C.$5ceR}ce b^S C !yi W"?"AL"Ot"e\7# Z$,.  $Tdâ:% <}t% <} m &%u-'۳5(;_(~ )B r~*_ƙb+@ɛp,+zZP,rp[Zvj,rp[Zvs ->X-> .2ܘiz . * ,/+/$-:q 4вe6`sL7:w 4k 7:w 4k7t|D$7\Opa8SA+:7_! `πIR>Rg'Ԯ>Rg'Ԯ?EQ?ܺLb?С?[ @Fsp! A2הLAKNBIP?DtE0ĤN F.`zPHCJ6҃wM mYMhMq., N9f N9fN-w5?VN-w5jN@o|OZt s P8?]h$Q@SQQ@SQQhJQhJ|QjRen?Se -Seq0Tf z%aUYoW&*W2/# Z-h][-9v a\gzy]@a^]s@ #T^]s@ c_xs_yIO ,` Zs`HQi `HQi ^a<}zb.K[bwYuEN bu,gd&j #d=-j dԵ/ (eu)ҟYfpJ -f1A ; g\iT:,viT:,v-iT:,viQhj(|j(| j(| j |w r j6 lRK -lO&#l(1x: lIKZ #m ʳC{NnrN  nrN oW, (o'קrD˚. u- v Q Zw&z(@w&z(@.w&z(@ wLǴVw~Dc$DwHdwHwwNW xZ% Mt,xZ% M (xQbm[y$ y5= ye!z3&|`R{ y{t_`"D}12! e}^ , $sGBH g$ va!: ea`E{ 5WH-BѤ >InUKZ ZaB{ r" !T| ׯz8 ;A$hY$hj1 =T#x fìj SzBzB/(K cH74$ 17q >aR- cCQ-<n&aP "rxAA Atr ztrj tr{uk+ 5 h!ohdM mX (%k~tb4t&tb4to#g,d&ЩȋxMa?Ma? mɵ:<W%f %f VYٞ VYٞQ]m9i# ̈`lr]0` 0`йHK<_ӈhTȱZӈhTȱZԔ.Т[AGAfDQx? O779N7>(wG`MQ ؚPRs]7sSH*DSH*9LOlDۡ1"?l<,*}u d8  V ߷V0m߷V0maEDM - @ F?(T@] p dz6Yo|MR+\/b@sH["%H["%(a%)s& bv.vE 9eT! 発+hgqcGI]+O(SKq8Uɡl8K "Vp_s!L v JtK$& bxOVRM]RM] &ŌQU^K5QU^ : Z,K r+p`K Rj   3DD?[EQ ;0RK ;0Q ;0]}GG_s2r\W?aܽR>j >{!<2@aG @uyɻA =$u(Ar;o_l l AykA(u^B$? CKi|G l G]L]b^ G]L]b^ G]L]b^ IQaIQaIQaJDut K6g5AkNIL?`/ sjWS jWS i|Ħ #E# E#b b b+L %&y +ƯP2)uJBf lBfW` f.` ɽ$:X,NX, ʙN,Kˏ"oc ' Kh s̙LC[Ғ*1e: #41X^Ƨ9z@v>Rկ(H'Q~hח̾ʹ ƪ%v ƪ%vR.U5 ZAXILݧ 9jC95Y j }P]YG5mM(k D⹘-"m m&\M^%{$ yZ :G m~ "Nf(gZ 3uPWNC3uPWNRٍ%OtD9Q! c ︹+r%R2z5ýf2z5ý!^{y 8k-  QF ( RPjE A ` ጉ%.èaIՠJ: #r #rt#e|9Q+9<?t*' t*' t*'  ru!pj, L8` HV~ 5;e@q _M %Izz@D %]qR[&aTjiu: ўOAsdAsdAsdBǪ i /9FM  7Y K 7Y' @[ 7 @[  H]t  S2WR ?  hh\ \ %s fp,(v (vdHpR }? g89b|89bK489bT89bf")2]m%]m]m75/ 3j|? Qn?KffLss]&<Zړ_kxheb )%'* ei=Zѿ" , T' $oAmj {{{{Rm"'\vR"}Rhf#W$2 -$`Iz $t0 %zebQ%c%c%ފ!2p"&mKmh /'((5&*\AVUK *huu^ , i_Rz, i_0-f, /yaD/٠ c/٠k*1aշ:1aշ:D 2ڡ 2d@1R3(bE4yC ;5>2 7f I" 8mnf 9 ~8sL 9޸]:I;:T)$:uzҟ 5:uzҟ :uzҟ :uzҟ i:kl[ U;!sS<&KgJ<&KgJZ<&KgJL <#xI<ēo*>*}k>Z( ?oڇq i A`X!BPlefBP!(!Bj D$-DBK:&F3ⅳGRG.Hb#ޙRJb{H\J"SdJ"SQKÜL) 0, M@:4M@:RM@: MGJm M9|Pa:&|RkSQ-Wb SzN0 SߘMa6? S| U&O"oPURby)|Wu Wu [XO'B X!{J e Yj:O [ aY[ 4 [8C@|]u2b^ ( ^? ^F+8_|v'`Kf;a FI$?a FISaIaBbr lbkvH $d(aW e43e4Q e4[g\aN;j kosA l'vvHǢlo+$(n XnX f nX o3p?Vs)p l} a p܄E֔ q̅/ rA9gGtsM7sT *uuuQu v5Gs"w! oLw! o ww>UUwN^dwӷ0IZ wӷ0I wӷ0IdxXp;xZT69xRqXYy&Ɗ ,yJۥ {.SKO |{6k pDqpDq, {2? & K.ZK.Fw {&YE{&YEzH cni cni "KR |s'iX aСHh $ %:*Yx ]`I* &͵#z e7͵#z9 E&b=\ ޝFto]E5 @kĽ\ CS 9Ȗ[0>DR>DN0haVY5޷? cń@g o/t ,:> A)i $*6 $ d \ hnM Ea\ 'ggF{ n*IXh 3EvKC ޺  5f8bSw*wQYuCD 2uCD i.uCDtnCWKlx)L$} $ Y/]466! .466!j466!)ws%05da[S "9 [[/K [[/3榒)) h/Gu $Y9%, O% \xyI` M& w. $%w. t9 t9j`Ĵ F [|ɁS #Fl:S  @-t硗Wv硗W AHa,F P/q #“i]v–G5EyO EyEy1YrvrkKP;d({ ;d({ twȘdȘd|)  ʮeui DPKfh $*R͎&L %E6tЀ$i=, Ԭdɛhs վػJd ʸPj)qL=g׎١z iיKcb# [ \  >ӎ2| >ӎ2 -BR8ڃ6IrYڃa=vۈ@ 1sے]աmۮRԊ $X<|4 w'Ay1c"FnDo?ݕb= ݳ"6Et?~JX j~@ ߤKJ߈{!`t{6DR sx3}T ;wJ;wDf?/#f?/ euU佽 \垀N36S`e``w׳W4sBh#-kh?w%)Ew%)`{A  $[~J .. ~륩O ɬoUjEt{Y. P)3C2|LPu a >|pM{GQ@ (=`y X@% =ޫH+e  pe3ʵ  +E?Z ( HV ڥclJ?p<a p<o3gyjL_' cmSQ , ^ F  N$Qn j <8 u@ H  H  H $ H }B hhVy r#c[=`<s~ - Q R >7  >7x9  x9 rt$rj :=l2n>S!quEِEe<]pb]7/F<[~> .0 a Dt;$!}<[P!g:,"Kqs$"$]j$8 ($8 $8s%4'r1P'╭Ea(^?Q )L=)L=- fmc!.ʐ~ .> /$= 1E 3^=3qާv3qާ 3qާ 4@P g"4 v#4ѻ4 o`s5r~]6~D7xkr 7{@9+؎tt: Oj;w4݆s;1J ;1J ;eZ;eZc< T <>ίw<>ί?=ZE ->B, (>jE?uU">c+t>c+ ?<׆C irZG3{z #IҘ: $JZ#J-v,MRNhZZOOsZ_OTPA; ]PA; PA;uP*RG-&R>!R2I0 ,R\( ;R5  R5 Sbq (S݄ Tƺ9`#T2o b!TwcT!"WY%u +Z^_I1Z^_I1 [V,: X[[]đG^V(^V( ^8e _l+a`]b=Db=Dcаdwmke $ ff_(ff_ g7Qh$. (hט^ $hט^ hט^ (i6!= i<:jg[WGKj<O(msdQ^2oI \oDsVy pV>Sej pV>Se q6o;dY q1^6 sS[uuv}u׀^?jv>sM챥 v>sM챥vɡD m w('!Nxx<+(LxlM zV'R}-* ~GVk`J? 5^Jed:V#||N ||N `WeR8;./π \9Z9N j`ܬZJ U]e U]e.싷xu>mz."ܝ ."ܝ \G$i GFEum6֋|V7Uoh 2z{505 1U??N jW??N; Gd Oewt; a Oewt;t Oewt;s(7FD @wl3#t Rv`L s=sA$ od1tLȫȫK ȫ$ t# lq5K-}" -}" .& b.&bWtd *ء O H|(u-̘}uЪ0Z*]ʒ%  !%$ZQv RlZnXU\s.0 .0 .0 .0 C: 4hsqsv%svsv  +'˥^n˥^˥^b /b ? 5U / |nƪp-C|L-C|R-C| I  ,;E,{ ?JιN݄ z .l3ExzZ ƲWl7 ƲWl7 M!1Bvǁ !Jr#+Ox ,axBi s-l [j ^,X ?PSë#EIm=h Im=h aЧq {Kī ҈AsQbҝ"Kh'MS nF rtnF rRnF rnF rnF rZ nF r lI ak aY g;N(hHa" avjkL$avjkavjkߞHVcZ#<q(h}L<\DfҦ_o +hZ Fj>O@:O@ ;O@L3%HH YizdIQˊpO \JFAJF[>b ޗZ (j,ttC^) 8 98 8 r)~r)~R*V!AR (?ʨA? 2 G$uo_]w @$s %Y Pa̳kMlF(EaxA 2n;* eM (/N:/7OfŪ 7OfŪ 9i?Y-UtC@K {k_C OD |z \,8\ ,8\?6 >O֙ H q" ]!< 4eh 4e jJ8 :> . :>  4 g C@ *k, a6[$9X`_v N:O"`y bH i@]] q0yq0`~  ~ nsNSsN:Z x@_Q  de! !&7 =hb.Kp zR 9Qܭ mx;""RN"KBi6 t % d0 $y!3{A7> !'K! ݌5?"Ea׺2d"?IM#[@B  $$48 $J:aj%'5YS(8N| T(Y] ,)ع_)>Pc)Vy_ g )K (+$,#kz J,#s-frF-frF-㗵Z . l0. l0/?R #0p*R04| $'1 x8`K 2cg 3]u%(3." s4kN &N # 4WD?8YZ{ 8y8 ]* i 8 ]*9|#2:Bݖ;ޢ> g a ;ޢ> g ,<-F: =8q i?= *@֞;u: BWAh DQB0%SCCZR- CCZR- iCCZR- CCZR-tCqWcDDłn & iDoEIWM EIWM E%u'QFS1GO˜ Hӹ4I+T.Ib-|Ib-J>v J>vsJ~gLL@r3)NO?NOR NGC e Qg(_4Ri*]Sж& Sж& iS܄qI9UTlV\Xm?%=6 Xm?%=6Ym{)\?z]% 8]#,P_^|FV _`&mruna7*ة[a|נH"bnk cK/, d׸ e)HT e6Be@O#e@Oe@ODeNi$] f^VdUrfh;}~+fj lbfxN9 $f* gZ,l4*Rl`syu|l̺86 mPA na)n{VAc n } o1 p97r|D`?u(^p& u(^p&R vRdvvcwxKU w'1@9 wzآ  xS&E9xZZ mx}D x\B|x S/yKN?y\@yӺ+URzpaղ|+eCsK|_ÉkS|8Zv D>tD>s,K, 5kRx"|)Oo1. 8s˥@zD ˥@z -!W$ .ٲ?? 3c3cg>A&N RxRxU9>.7? K UtSUR!m%Ep;B<tmj [o1)[o1J iTlb wC싽_!T_!T${0:'R "I<1 ?$(eq #0ňolMf ^+2*j^+2*ȥz Ϯ1 }<+< UQqUkaUkLf?|b[Ws 4p1Y (k%d2 '*ʹ i'Mxϲoc?$n0 ,zޟO \S ȱvcȱv "O %=* j ܢ>*ܢ>&#A"`kb+ A !( A !( sU! F7[;9{Ze .ܸk" ?v?00qoǥN%5k8Z5k8Z 5k8Z 5k8Zu䩃 8[] %{K!%{ %{_D y]- kjJ[6 !c}].2 N \f*?$<%  +څ? p*ȗGl % ~d ©֙? sCpx'Cpx'cN҇b̤XRRcڝk} ls&ŒȬ+SwwPfC ;3QW QW ,B@k̭aeׁ. 9@_u , 9@_ujϿn j}M{wS }M{w d>xTӈz7_QZ8sv ?O޲B< O޲B<"2A/?B] \B mQr3՚~Qr3՚~ؼkxu}e,262]DX[k ۇ*T v۬Oj "A#U l`C/͆GG">P'pHd c %N] m= # dw- .צ+Qצ+Q!8צ+QD1!WQ9M~5/oxr%(`ˉ$xv]$x &$x $x lL mj) K?t8R[7 f \a ̋ H4j1, {[V    "<>jR 99t" & iƧt V2y -Ձ $ & c :M*Y)dKUi[t]? ]j Hq ht`K} 2 n2 i2?2 \ c _ 6L^-{ =G+ a_H[ͺ!L5nfd gTY?8@c OHyfsօQy    mPv[!5^d!C h !2b l"7S #I0!FP #z $'&$ߕ|%[Ԋ?%[Ԋ %; z%^N&Ϟ &&3L' &V{z c(( : (w#L6K%)n2ƵL*L8X Z+I'Z n .4 X .b~+DQ.b~+Df.b~+Dy.yM/Ob3 . 1~^R4BbH5+5& yQOL5& yQO5l?'Q5l?' 5Y5G j8; "9,O1;;NfA <\eQb <\eQb=`N R >? > ~] ?1K?@@[@¼BF BqKB SB sBO  C MA D|Yu F! G 2@G 2@3G 2@ G 2@ G 2@GX:1)H, ?HkxZ If6ӝ IB.~%8J#u >kJG$7 $Mf; NNn"#P۾-?P-I$ ,QAbkjQZ}2QZ}RQZ}QTz'7K TK V WaɀWaɀYMdX d? YL.?Zbs6U[ej[e]. _7F1_O4*:`pSb?snblNHM? bh $ c"5Z`[d£eD0<\:f&O fM ihCJ3y k_l!x3orb[[ p;|z qnt r n ryt͒ tΒ}  u 9wKzyzAp'{rzedze {:Tj { i|4A kR|4A t|4A } 5 } ( ~KK\ݖ ;ݖ?-a5J ՐR >RVx^ = 'Al~@[ Jb^" m~⻳X_,k֘p\\[ H< (@y( у_<0M+?n-pn Ùnjv;4s x0*m{[k"c C9 m,Z?Y{b cg PDb$$]wnHvuRTZ2 >x_nԫm Oh 0Q ZMf^h$Yog 0 {q s]; s3] Kg7E\}K 6F +.? xNqmL@?{, a{KǡA.#ԘK e v#< س5r \U Ӂx\l""g"zSn0 =2n h.oOp@Mp@MPLih/PLi Ҟ$).U@ 1.U@| M xL]ZwYD{ ZwYD{ &( |XNis 7;Yd cBflRWN'!^qm ,(t , (_$jk8mOd 3k8mOdk8mOdµbrX 7$L0E[ĔBgňV i@ T E8u|)Z)3XNeZx: z \AṠޛ ̿0h?͆r P&]RtvSo εoεo F={b~l׷=) f% 9S& *>Y 7 .i" om6 JҸ&rJҸ&rCJҸ&r֫eVr St; ?Oz?O7?O?O?Odq?O ?O?O?O ?OQ&zۻ-2N"?1"v01"XvcK ,UᚒUYE -:/ǃ2P o~zF~;jKSd@ mUPiUrKUPiUrQ\vD)"D) D)B9S?<B9S?<쌢 sBgt 퐗\h5qUR xI'dp: .hVs鏞eR {N N4!갉 ~~e9~~e s 2H 09y`^OHZݰؤĐ2('  Y Q8?h ѵevI5=RQ I,R dCy*,] ΄^ zdcCdc s>Dds>DJs>DDFs>D s>D ʢ s?ws7v K,:X<X< (eCJ IUZq4 P ]m^.oR T t1T &[lPuwql ٹdODB&7E j$oy-Tv  ` i * O na l8 ö +> +>: +> s V}t 4@}0! w=1 w=1 )ꐍڎ sЯ3 Я3K֡lU[>U F*oJklp*` ?nS&>=rEOQ:h[LHKsH&bԚ vdD }!6Ps 2(%$Hp7!]m ʾ7 P3z4dP3z4K "$Z) ,#W2 c#sd #%F``%Dqz*jSR+f c,91M ,E7 ,Wj[,**$,**$-Baj0I1>e0OJi 2۾]2$R3e΀t3 3k 4hZ 6*١vs6*١vt6 " 7 r r7889Ōt=|:ta ?fIE {?C@h;@h;F@h;K @^p, l@&f@׋RW AT(`AAT(`AT(` AfaZC#JEmѮjgE؏7ASFh(ק GD'b/D`GLh3I4{&I4{& I6CZ?I6CZ?J_+&m?J_KxYZ M9+QQyROk,z Q["QsĬjQifk ,Rl5RlR*&wRV9_2 R𝣩u Sv* Vz`k V<ZWڨJ$ X|˽ { Ygvw. (Zzv Z̻<6v Z̻<6vs [ e [g*|1T[g*|1\!VXL \!VX\U\KzeV; ] U ^=_"#%_0 _Y0_Y0`#uK`#u `#u a^6d b8"z?b IcJJ8 cJJ8e6u=e@Cke((.p+fVh9ֶ hi9?k.Y?l͹:.Nl7 ='9o OZ oFvh'oAl p2> peҰRpQz cpDq˞o gr87jr87)t'2 u`mҎ u`mҎvb6 evx7!H xkۂ#xhdL3s!yr7ޠyr7ޠRCyr7ޠyyr7ޠlyr7ޠdyr7ޠK"yr7ޠyr7ޠLyr7ޠ zfЍq #z6s}lr{W|ᅦ "Oa2z?ȧej M#=M#=L TxteȽ[ -I/ LqQH 't\hi k9Ύ 7YzR;'B ;'BPTT; TT; upwSBqI WBqI"BqI (BqI WT +^: Y&߳;7{l%l%KAvS R?l ch?l #+pNP-Y 2`'2`'O&CHR8L@\ WW7WݫR-%tAP .ǯ̨F3BsZ 16   a_xv 4$$  /x m` &aHC2m_ 's YmcT ct<  lt%Uk{sdk{s -^U/t<U/b U/`*:o 7*. af6NJ&U$Rl aU$Rl Ĉ--RЁ}2)84 *f-kp \ ʮ TBb =QpNt[ ,c5JLbp$t\M~E i is5n3c02cs (՛oK $Ao! IpdOH{H״c{H״ {H״{H״^t1:=6`"1# wt wj w.Δ4T f6#do kkŠ;|kp. [s :/:猡=:2 % %{ ~ڜ ~ڜ ,ʲݼ $ʲݼ ̋(GA';H4'Ò VS%o DW  ҕ3 k"٧ S̢|eAtg|eAtL KkaӾiD٣3oSݟL xz .޳(m:,Ə aUIY^UIY^ڋ5b @_ESNnrݽ tΎzQtΎztΎztΎz`JĈZ`JĈL `JĈf7 : \ld "=: ~BX kO , ZJ3ZJ%w $Wb'Ym(eREa pMD c I]y #Eɋnl[W+=f c]t]k!T H<7l|u_ r[`܊"F?01{wNsa#p~ .iu΅kl08UWr9$UB{DXB{$${3d5B 5B ,% $^ւa`= ^v+ P>T1X1h X1h_u!`$hs zP m_ " Zx- =Fmsd_lL d_lYsFEQ7 +宱?3 `2F  0Qj 0Qb Ӆ,^? K 2xMʮ#0 2xMʮ$ pn@_ Jh (O pы " ,5ʪn h X fs)#BKWb̪>W̪>WjR̪>W ag+ԣM ~~]t#ΰK #ΰR _q>gjs{Y  kGz !󜉔!O`J!zh !zh "v@TiD "<ޤ^k:"<8U# 6k#gƁN\ #%^ $%ԎIX`i%gt&L&L'8K'e𤙨S&'e𤙨U'$SJ)EN,)E )EY)[Ϊ g*-  +]S~ (-93sb.nD s/3Ż[/.~[0ٕ 1v+92r|YR2r|Y4(~4A/ 51MF3 5Lqxv5YBD 6og6og6ʸ 78XQ* 88ՠ f @6O@6A I  AL?BJkCqtVsCqtV & C[tg5 E; CFH3Z< Hw} YHw} HTMv IrJ:yl5 (JI<ߊJmL*sM,¤1>yM,¤1>MdPN.(p \ N?PQT ( P?Q5P?Q P?QR'阸?R:̍ R:̍Re8VUԳLI(?UԳLI( Vj2eYWF'Wu OS pX X|X3~Y +[&j Yh}wrY}+ZpTh [.w; \-2fo\> m\> m^#6v^#6 ^#6 ^*,H #^N` 4rn/+`gxޗ.`x!މ ` dT x0dT xv fpШ7?f/Kk h>& %i A(PSjowojtclQsNl:S͂Nm1 Qn(gX n҅oPHZ orhL oԹ5UK ,q)?'q)"r z͞ rPtd ,th?Dv4Nk0wN›n#ysdL{y ]y ]Zzo$EyQ|3 |o^v|aNS#  | iw )}o#D~ohZ = ~XCx%^. l ,.Q*~tt+ rCYQ,CYK g Upv kԇ l .ld i:TK~- (CO %d5'|`ȫ[ |a) |a)D ,~+j }ik }ik Qe)I ayys !qYHSR34DގK \AYk"\AYb\ /s ǿ Vel*K Dp :8)!<ჟL?åB TbZx $/Vo@j^8?) Ķj Ķj Ķj i )9 Ԉbf% #;4 a &Gwi c ,0D&,0DsOQ =$ ciX(?Qw‡ r$ʬt{r$ʬ<Qi qq i|"^SADVla0[Y3^+vnY 2nY cpD q-g, q-g,Rwo]N=zY =zs8"L; 2o:o:)Gր *2uGyNoBy =®g i x; g=5R >5Rk@>5R 4>5R a/>5R 38x'C  Jl9RnJl9 SJl9 ˰ j1zj 1zj M1e`?`#ԣWYбu % lPa CD1"CD1Hl8D@=C 6QM\| cU$ )Ve9FtQ { Ц6 #Er f[b^ d , hX !t' !ۅj:XR  h S 3  ?  l¡/L نھ TfN4U 1u5u?:1u5ut {#/RF2 (ӹϪKQCQgdaK"UK"UCϲdh.R$dh.Ko݆Y~rL ? $ !!I ˊ , Vt/y[Y֔^ !~sRD ~sRD|8~sRD ~sRDR hT e".?s.jC. (8A|8hR .s]8DaràβCv 75{ؿF K K!^'C s !^G_"CS%m #xH y#x2h#?l%[eƣsD&,7-'ʽ)LM3)LM')LM)LM+lg*+,Q ^-$W/ Y 29웧GU2E. {P 2_(#3] 4Z( 6=ܙR6 7\N7e2%'8x:4:6]LY:"am$;vd =Z#OU~k>F%?Q@)%`@h CEK CEDHj R,a D4^!Dp~"Dp~"REɃ ߌ F{L cFFϼvH/Bs Hf'Hl?Hn I]Njg Lit֘ ]L7y (MEV?O@" PWRQ/RXNWXw3IX{ r ZQoB[ts:[uo[ 7[wf\6],\N"-\hȓ+?^U?; (a)i , b5i cc ( cccc cc cMR52d#l? d(g`2 d(g`2k*d2?W>;do4`Ef eױNf}-,f?Rhhpci]ZB*DicVILio&io& jC$Kjl jll2m⽥ )ptNpyW&pyFpE rh΃b s+BLt09V:tVqk=tr suq<ǗvK=7q ivAFBw)nATw)nAT]yZ{[%#{[%|&,17j" YivB Sd, k ?}LG ,L,P- r7>9 ԈԜtyN04 qWj|Yzm$<)n0UحAK*i9j%;OQ Q ? -< m-< e*c(P?Kq *HUaL6H@wNSz@-ߝwJ_>5j>p G8ÇiS jWg}lh}l I}ls-}l }l (a8< nw$vW ًTW~?|€Mh :R >s!Yd \ŎRl˲D -7^#cHlv PNmC ew8T  w" AHΥ@"s & g! & g!W &tZ7: #M W}Zb}juM 3 5"'5"R>]C4 m &F=GDtZ'C \PR :#[".&{2 19]R9MaR9MBsH 4 \brn;E $ dl xdl xE*WE*W9xS9x 9x9xb0* b0D ɲ6#={ {jai|UMO'MO'MO'6MO'#MO' ΅63(΢R$΢΢΢Yt"̥ب[̥ب9.UXilZ Ғ۳r  ]c0.ZJ?0.ZJ@=v`/?H_THH_TC՛wl נd (ؕC͉ `~Z`xn "H[#:H[# H[# Br7K ͂LO ۄWQk%mD CwCQA[_ ! {'x ɖ1f ɖ1!}> "Y6 f"Y6 "e^auǓbA"e^auǓ "e^auǓt"e^auǓk"伭j##v%h§}s&٩D a'J$ +.j?,}aK-ꑺhqN.# .hWY .߇+.߇+=.߇+R.߇+K.߇+E.߇+C.߇+.߇+/KY 0w1D0wXD r1wB] 1rs' 2C( , 2K{39~U24]~R4"Oga4"OgaO4ؗ 5fD6Vvj 6Vv \ 7yɐ_9ǙYR;Z\mi;LmtN8<>N8< @4@h@~(B]y1 CD H:YCJae3 DbGx vEC8HER_/ER_SEܸ{ FZXwH|GzgH|Gzg eIh"d IK^SdJ ]m݆J"$n{6KL޲RLbM&M MhTM\8M\8s|M\8jN0V=O\?XO\ \Q!7LUQԛbR( RQ+LROR T'РUT'Р T'Р T'РTY5r:NbT|Zx- V:NjV6(^RW'= iW'= W'=WIxh eXp4PN Y!NZDCZoٱZѲ@{ \[h ]*Rf]:(_O, a`Ǡ& be\be\b=ʂG \e K e󑥏Kf!m$f!m$<f!m$f!m$f.JB fzG g`#zB/S hTeRwv i(8:?i(8:j&]j&k/hkM4<Nlu lu m% mPinƩ2y:ynZVvS; om FCj!om FCoThX. ioDel~+oVGp'rcp sf{z[F tc9I3 ct @}v > w'%wU]wzxjz*Xz*L z,:U{uTly ~^U ./*wl׸{ ,x ޼}a:x$#L=K#L=( z]d{m|1]d{m9u [1VZm@_4: !j cLZ5< "$ YpJ -ϣt~Gkhfk,ϫ a3Q%`suj1TDzJ DzJ DzJ v=yjj| l{qF¿U!1Ūr3R!jx   g tKYP,%AȔ  Z%\۞}BÛQS3 j?Q$RS)]9ago FW K{cwoV %ؿM ` kWyכ~r j~r}2jJrJr iA;|~B{SP퍽Vi e;: c4!\hsv?df|==ܞ9VE  8zN#@ȫP @ȫP 9jEUQi g뼐?뼐!^Q@%S(@%SjRD2 l&d.ofs-fYs2yus2yuQs2yu\ .dL-@:Jv3r g3r 3r  7` 4]){Z0GY evw 1aZt 1aZsߠ?ߠ?ߠ? ߠ? (%% 8j@s XZ;h ai56WKh eryH hAEf嚛e3 圥{Ȭ| cVj iFԸQm$4K .P .N%w\ w\ 5^x 5^x Xu t#LF\]m/] 9 MS (ywJ vN %N gm|sk > / &1a vcV. RRs s RRs ( E!wcM/ (Azw#MȂc $TeTeH]Zt4 1t4 Y |8N=v8LW2KvҊs]Ҋs]Ҋs]->TS.$VZ{ (WI?C>,X .Y&K4HzvhS3 !{ #$>n]d$˄ ;%3utK%3ut%3utD%3utQ&2 &]Oy&^&=X ' XMe'[D'[D'1aҶ(Ng~) *wߛ i+q`?K-DC (-DC (-D_-WC+-D_-WCN -vUJ8 -w[3K/3g|/GœC 0p-k30p-k e2+}  3^{ 3Bz4N&0 ,&4N&0 5ODHJ5WJ6kV6/ZL6df\ (7#lU8E@U;V峕<(J"=~#)>56 >& &?Yb %?ɤ[, a@,κ \@p 26 AG\rA1-V CmCV@#O9F. (FȖ gFB GĦ ipGDzGD{GD9GdB'O3HP4~jdRHP4~jdZIߪRxIߪ:JukgsKCKe sK-Pw K-PwL DM3dNH[MNNjPPN  OQ԰? -OrW? Q@8R~ {Qkv h9 9Qkv h9 RЎ R_0 \ R_0 R\$9R@ SSWXShCShSkجrSش TqJGRTK Ul:JUx= V8Ve:BV\f WQWҪ|WX-*_hYW<ZG|:q{ #Zɍ|T[czR]+d ;]"끥]:8Ջ -^(+.~^(+.R ^ci e^>A^ [ ^څM_\^|`4hnsw # `k`E ,bacNcW}AcpL]cpLc.'Kc.'Qc.'d͆5#Se[a@a  fKĺK"fKĺ fX%Zf?/gglϱm 8h7[j.FNjNxulsOl,MvlH;Ͳ(lH;Ͳ(LmR= n<%xJ $n<%xJ :n<%xJ | n^b0 p %FbrXE`ˆ ru<T ru<tP̌.t|!t|vx*Y v]&" wC]p wK#;HxznT Ryixz@5zD٢t.N z_, {jwr$ {;1 |g&u}(FF}(FKD~^^~?KEǙ~)2EМ•< $Y&qY '_ :zBq RFR .Vؽvy .CQ;mA jSRd=mW iZ{7{D:KRm  :W=%f|' 1Rf|'s/3hSd~( c!V?dW# %^NmMĥ=N a&=/P5hRHPYH_)[$*H_)[SXZ :9҈l* a{6F{6F\ bu-h^DƔ >jO!_O h8LROh8L):a852QST24rw ---?̬sJøP w1OfRw1Of c", -}dPl]$d++_,s?",s ! M e]VV\xR6ȖR6Ȗ kjͷFئ!g%c͘R,-Ӎ'APWƆ.|xT8W{Q a W{Q >v |R 8H H ?ݻ?hK!èPϐ # Oa OayQ Vή'C0 Mdgaͅ+{ͅ+ 9YD9Y̲wRKש$΁1dΧp|ώ՝߁ILCR{Jjv іq)s+" B ! a](iv}_R.}_}_L }_ԡ y6:uX bՓ{.ָ{fR׬ YMSޮk؈:$ ؊+桳(h{&gOw $ p0 RNڱ~V `{fx ܿ&={8|-ˉNŜ;k QS?pH B2zV Q vN?rwLRs '$ `S.$7ɘ+Lr,| ? !M-/U|KUsmw VF sF$;"' X* X* *. ( p+S j1 j1L ZO+ t?Lq%} aͽt,vN% !SbmbmnP3 c4E@|?O^*@(8Dy] g:6_k  /o} i]%/o} iwGwG)̌V{g W?J @jZ %y89|%`s&P@ &d Y* &7Ӭ2'o (\2]*6#R*6#*oY~*"H] *D$;R]+*D?,lUѼC,_s-, /)m0;/ 0Pj2.Q30:9K+ƅ;< 7J,lR < 7J,lD < 7J,l< 7J,lK=\[L =>U =>=>=4&; @ȑ) %B12 BnbvBnbvDB;P2D:E*H"HF@,Fʽ65 GF. GF. fGF. $GF. G>ɡdI噵'!J( J7 ȹ OER!P7 P{TI"CQS;j{|Q>R Հ4SYq Syc/TҮzKU8+6H?RVl8XjaA e YA aYEhHL Z~J5:\Mov8 _NuT8 cam? s bi5>obRbgEcHtd.|jw d? (d?te,f ef!Y Y fj.7u g!g?='gb^h$`[kRa&l"G l&]F@vlrY}Sm/9mFD mFm0ox?`oS oz$ޣd p_ p lR wqDrciZArciZAStnx t`\Y \t`\Yv62=ZXox,zSx,zSxn93 x_  x_ Sx_ Lx_ x_ x_ y# i{w m`&{w0^~bn2~'ZZT*o# 'v]ڃ@x |.RˌN$Jۗ ON?1жgwP)iH/ ŎOx #u0Qﺐ4H^خPH^خ 4ܦd2tHWBX -U%=U%+qG?f qG?fK qG?f:Kbd = ?= ?t9s$Z=O`*~VBRJf j]VSp:es1?EKN!G"{o #9) W&# j2RnR-E  T^y6 Wߥ`zd U Q) ( <MA \鵆4)0fя$h04Q4e#" kj=q@r2U{=:{=E ,S nߎE. (N/ =+cc1_DV^ a k(c  D /]w ,˔"bbji,gjB="4Z- T[7͗ jG ,AYu2d_)j \ TzY q ^M󉜀S c mfFGUT^ 9eW'9eW'* 03r[Kr[:  q2Zb@˩  ˹b9S 𓂌 PcPzmM *@{k@{Rq\_YfIʲ(j'ܟ#wmF awmFsA0N8fAxɞ,Upan80+? ErJ#)ErJ$ErJ8^a1 1 10%S\7 gä WiP wn# FBe VY 0;C -]5  b+b# tO9lj ^ e{_͎ *6 =& б gẂS9 e ߥEJ Rjl RjlH$n (+;#C.]oq Sȑ  }Z =ǮI ,mǮI*䜏䜏 bmm *fw8D #T!͸K" o#Z #a2  $nR &isRµ? (`2)!a$Z* YzD?+*wv- fOyS-40 (./ 9 .w 5.|#04̑ 1l+27? ,A27?s 2Ĉƭ\ 3!;4U}R5=*?J6Fc 6"|7;6-^ݎ{7zs #7ҙ=8hQx.+8hQx.&9]רBL 9vp9vpC :6y:lD :lD ?:y^z sB"UN Dl8L DzesD:[$ FP^՞+F|r~G*gZj>G*gZ +Gcmؕ0Gcmؕ - I>JFgW ^AK]/ LtLtMXOI PtcP,$zȅRqj"u?<Rqj"u iRqj"uRt S-٧ , S-٧ $T"VgʩmW~= m Wƒ\ 8!\h-h. ]qKf& >^n]^enB ^ltC_ _| _\wCa[jaƎN&_dIFAdpF\we6H gVn (g_No Ugl@mQh% ,? iP׳6N iP׳6kk@pܱ%efRpܱ%efp㩐p8 |sD o tJtJv tx&7 vHRRwn cZ I ] )U9N, (4 D2k=3&i8?oRp0Zjbl$ ȇ?lY }o?YZ<Y }gy;Gbg`1g 1 w5j +~lC(+0 3!XI3Iz iЬ[+R /?UauQ auQsvT=Ž7kke] /3{dr|u |4WPX;[Mzik] R> )ʡh%)ʡh A\`8c 7? *Ng e %J WmI ȎtX|s-ȎtX| ,\/j U"eW8{m {]{{{+l q| $ x( az9 8z9 ?!=l ⯼R !5_ `dh 6usƽ#Nc`5ƮtǶ[ nɥ͟#s$:ʽ̲&T4ww/K%bZ>|rut@~|ͷ(1σ'  > %K@'|6æT@DsԻ S Տ_;6yW]Eyhn^ס-G¾U0؜G g P40&9ÕW ྦ@B1 ލxsޒ@sjÞ] aES6G/\Js7 X[^ &PK  2fg 2 iF8RxP %魨 d߬)=1:Q'Q' Q'Q'gC%!!A]: 󊝩hn?Z󊝩hn 8I9'H=D»Zo0 eo05eD Ɂm: kQN {N!8 3rELj5RnU?ޣ vԇ DjW %B: N6I|H(nո!Pjz$VE :ȁR\8$su϶X5pe?J+Is^J+I SJ+I?=  i: hM{ TR T P%\ĭWSbJ ]tz K-sHQ̺{ 3 Q̺{DwM YB_U~\_~\~\ļ ^ ms^J?>x@WX mS`@  FFQ˙S-OĀb!t !sS"veCL#b@E#b@E#b@E$q&RD% t [? (L , (Lj)e9*1QX,=Q-=%Sf-hT' - >`|.˄!t00X 00X j00X 0b^{7 0Sv ,1-.3Ks{V4fV4{{I4{{4BW i4m 4'8@u 5o)rK 5o)rK 5o)rK 15_"5= 6)d7 dR7ޔ7Dy)Gi?7:]8yN\#9^89+@ :Gv!D:mNdF|;[pK<^<^K> |:s @|}6@& @-8Ab + A ;Wd# A1ONfD'6 RE5FFkwBUYGd-\  H TEN JsXAK6P. ,LRٗ1L{ NZ2YO07P7O07PPʥk{Z)Q,/ QNjUnԬU5Hd V2v,W;#WC}鬔WC}鬔Y2hR Y2hQ Zx9v_ \ \!Gp ]^_^sS)^sD ^s ^s_ a _ m_ i`f" i`f" \u`f" ^`f" a,`f" bUúzsb+ NbX bFL eSW!eU/U[ed pfm7J (fm7J?f\ R igH'w *if?vYib i 5 /i 5i 5kk  l;W" m{$oѨmut mmzmmzn1J"« .oZf Ao~BAqDP r\ޏtP$?V9u%rbYutk?vO Yv:C#v:Cw.%և]w~Ù wk{y7{Ӹ {Ӹ|f=?|Y}ɸ= ~E?! ~fH , l+,j3wUCD Q-s  [0  [0 , 0  Im& : *N ꘒ2 )R߳njf[L7dd$EHcW ,국 Va4?x EA?  vk,tS 9st'9sRI ~I ~ 6@]T]s#4XR8Ծt=bs #O̥!;Pvb+{eRCަc9 ަc9ަc9 F`t3Ղ doCq[,v S1|ЖdPumñjR{r?, ⌧wK$yBG3 sؿ apY zSH} _dIW  KX<p{ 7T:ND$7T:N\ 5F@?2  ,5Oz ^1^qm,:[Ь1kqHѫ N4oN4oK8Ku F- 3% LS. 4t @{ @{ ּt[ &xK"(xK"$xK"F iFPp  $ri * iDҬ5K ņ>ŷЄ] JU5B ֣OvV̑L ]zuS'm= |'m= <'m= ̱}&'͟H5e ΝAβ|Kj vl ҌY a ҌY i@vCZ9a MշWMշW j INj,Y _% ؏#ҶZ(pKqJ4|桗6۝' *Jh<T(8J"S ɸmLRD*NO6|ᓖ?̩jCK㎫e~ ( "jsez%i'(D0>JiYN>,d?3) 1(7t1@/9 TXy Elb q)N0sHN F~ |*SjWUhH$V $$6Gg11'liWt^jB^jB)# HcG:VTh /4sîi ?@Fg?B'7CVs!CL#9|D%Ӓ^@CG+,~b?kIr Jy# J`M9ʒsJ`M9ʒ ,K-KzAz]PLz9 LzhLiLe]Lem[ MU;$l"Mh疂NnMTNNOt/Pcњ P&fF& Q> i Q>R2C< Slj"Od}t&T#E\VUf v=V'.Xt#@{\ Yjs Yg|N Yg|N Yg|NYZkaEv ZkaE [x0\x?# i^3d _Og#b`$ a>`??5 *`??5`??5 ,a~@PCc a NpE bXhbXhc$F[c0? #da|H eE~;eE~BeE~Ugr b0gU:i t j!~.jsrjN=jN=mP<ZmgtA0$ccH5[Q ccH5[ƟNQ&]ƟNQ&Ǔ}!稗~5l[]Pb M/UHdGgZ >۞ ͘Nͭ9ͷ &>4YYiY{R?I`kq.I`kq.I`kq.ѦwïҼe׿w.?y>n? \> %(Zz: 'FՙwU՜{- 2A \SE~/$E~/jE~/Uw9"ׅ2k%ڑޭ۷ _t[6b  % S5φ # [B&c hs'j 5<< +Ϟ j5 $ )* )*a_"y7_ty7_ Jy7_=y7_Yy7_s!N5$6_ ZR ^*ւ9 #1Mjb1Mj1Mj\EK  h +_;z+_;++_;dlfN9[Ut&,]Y6`"X9?Y\4PY\4P3?>m  >m ^m .B@Q\ ipRqHopRqHo , #Qa pr< r<YR^FƎn9qn:yOqKUT˝L9  9 EibEibCJ+~? J+~? \w2u+z# mͼ۷SK%a9R%a9S R>c 8?'jl  Vw (8 Vwt) AC@GYt=&Bn} "P`{ jBD ?qPhw \! 0Qo\~- iU a S*?  ZX W.C i f'Rz| Ja 7p ^ 7^Rd7dA244NU] ,U] ! <?*;a amO:ڛ# {' $S7L .c9\Lj<N(!|g!ș,";çR"k=}=#L3 ~$#L3 ~L%=R'_ұ? at ? aY?bn Bg(B|U B~<BApCejeDc _E MF&HFt H KX0C L #M2[MY1N Ove PS/_D,PoQ5 QʁnTvWdYT ct? T ct? gUKTXK Uhɡׯ (UhɡׯU@3?W#w~X8X"V~Rj XoZ [v9PJ[!\\ >_' (\:E\ȅ+ ]z2|N]³i8ߺv ^P].!_R2ZC_]_] `O…[`NS` `lc\ [ $c`6tM.ScT lc\^Zc,>Dcό[=dhz dR]1e]f~#gSPMgՈh(!U3 ,hKOi !9 \iVǦAa jĞy;hjՁj,;j,;j,;j,;kȇ l`k3qe{? kɡ|?)kNpne Β>p9V \pqiyIyeCpqiyIyeZqmBr`X/o ruZ cst@.-Upuutve{-w$UNw29'w29x(yxV@ +xI[bKzW{r1{}@ m{?SǨ##{?SǨ# !|;rNiL}}tF+NC JLɜ9®ɜ9®?$- ΁>9;E @Lِk v/fC #&)n"iz!#j Mm c  U J 1/i ` 1/iR= 1/i] 1/iIFjIFtIF+h|o Y X`@?hp\ahp\CH6VCH6 By1&+^U0Ίi*3![Qx<%f? [h5,`9 u q[pA7+pA78 8Q s@ rU-̪ u[BUw2[p8N<&;/R+D+DwRDKN esѷݑ@KuZ\nY6\nt;_;LH;S;K !N~Mz" r򍶁t %h1Y/NzYt/NzYk瘔1 lT Lj c T~8P8_x^cs܊s܊s܊ N"x{Byx4{Byx., , \?Ix+͎P}e h*JJXT5@ʁov 7\* bM Mvv}e # (9t(9tiXpdB3o B3oL *t얍`f <9E .e#$. '@B>f $>f ( >fBe}ߟ%4֫ i"DTS׻R  cs"0=Z-t-tjV-tY-t -t BA N g"Z {4ab3 0+Fj\ 0+Fk 0+F 'E4 O&XjsK^Lt2nIdI j("mŘf gDTEmN iX_d `o DQN \|N id2IMRg:\H= TX" TX" TX") TX" TX"Q TX"J״rYaTP*繙J: $ ji \FK=OyZ $:tܺ6G ${; \ &4 l-ڀt KK 0M k^֏ZY \4K6 r T.u;`$ i ]4 $ !AL61 !9 "KC@Ȱ#F+?#^''c !#.C$#o|$mG$;%VxF %'Heq 4'Heq ' (&Zt (&Zt+jѮ7Y+z,B !-)cag!!-E .2à ._7 w .Fd /Pת/h<-?/h<-j/u 16/s24ET婋#4˯^ 4-5-J1Z 6=`:!687sVt\ 7x8 &8Sj8S i9 :NL;yn $;§ x =c0] =- $>H kj >H k $>2NrvA;Ơh A;ƠhAAOsށjB|ذ $PC e DQ2 j D՚3' E\q \E H3 E H3KED|d ID*C# ID*C#JNnKb aLSKN+|LSKN+| Mpә O6O6P!7R , P@l"0PIḺQ\ Qx nQ4U0QQ1Q Q Rf $Rf Rf R ]RSSLH )-?T$ ^ -Th,ETh,EUBvV #1?X7` X[ Y[)Z_hY?Z>2R e[O1N[*  [ؚ$OS'[ؚ$OR [S g \7> \7> ^n b[ ^YЄΨ i^ )bb8= d!C'ee fdfEfgmWW8Yg`‚ g" gBeg hb hU]{3 mhB}jYjHNuGjoii om&? n~op ݟCo Mo MRpO_O  qpYY r~> aBr~>>r~>r˶kqtf\DVtJmR vH|7) vt|Uvt| vt0p vp8 ${Rirs|s7K |ϧ ô}6.L }mN }],}Cn5N.Vjŏh{6%8bd@/U7bd@/!bd@/abd@/L~{ o|0  .:@n(ha= -]yGePj jQ,d@LI JxkYV ch6wh u+&vdY " vdY?# {M -kH;yu%}YN㙱)w.ȩK>ɒ=v[.j` , i,$`PdYRi (tZBa$#V? EPzbJ pL!Kފ<{^amo{^am5!U] a`j]&_Dm"f$a(Oݦku OT%2,նC K* P$N#NL Ki? p:XQy iНY-! -!*) %*) *)ڧ QSB?Û j8.> a] gV] gVa`0XU*= i&7YveD'XMj  l1 V(j lBkx:dʡHIZ Ee{I j$ԝe>X$7 x sȖ QUZ>GUmݚ@Omݚ@{Jv t]Y(bd]<8p[RBi5?ed w X;% Į$ 7[DUA| !rƣ Ǻy$p~E9Brq$',:˫X}޽4hrzkD͢=^h͢=^hK ԓ/b*ԓ/t%ԓ/ ԓ/>B1?҂5$v TL4 wϑ.Xtϑ.X]ƣo X7 =v F_xw k՗Z. 1 ׀A` ק0SCqV>4uJn?^ds .w?ڟw a 7M > u ۮ\|Uo2u_rԖ íoݮ^j ޷Jm(T(Lү2lt lt P1J|qkRZWs ;u>lLxXH6 QD.m #8r!K#8r!Q ] ^Vˌ ˌ  II c )%38[)%38D  Kae s;4_r"N_r"Y _r"FuPuZZ+3 =︽˂︽˂R4︽˂!︽˂j^57[*[* k\^ MH 1!z #TJeDX-w~"&L6^gg UD>^gg E-m,v>E% $FF:;YG~H7?YHֹ3 IybDfJWaJWJWJՠ3t Kd I:K 3RLSgN a Mca>KMew#qNI OD\iB?OD\iB P,4PA#}RӦ"SZM\O T45 Tw TQU*AUaiNEjV[VX=< Y-}a ^Z{"> \}^\" p7\sG2)\`~p [ ]iۇ5w]iۇ5C']iۇ5d]iۇ5^ \ a _\ &y`pJLnjL`iJ_ `݋ERaU ab#:})LbUv*X adV<'EdV<'E dV<'EeBCV~Ueӟieӟif] gֱd*?g(hͽǟQkf5kg0 l7a}{N}d|D}&ݬ~iC ~iC \~iC ~kfC , ~Ki#+/C n! ŹQŹC ŹwSz:wSz:P%PUj*Pl4`ŭ,=b[ ,=bH^BO* O* i ;G9CԞ[kN/k% 7I1 d_ ,l$I#R+J x瀷V ksM Z^ EnF"QdKYRnpJ uBSPbi ZR DjSDjaʔ& Zc ɨs~E s~E s~Es~E , s~E s~E fKkv gq gq_Y K\sp|rF{o`~v Rmȷ/Cȷ/CU T =iqZ@.I Ab89Ab8/Ab8$X/) X/) z:E ( 0RCɚ iw6U9jU9=U9K(U9%ofظB `TNb`Mqsw$rw$r 7ի~M Ba;'F|l[9 .k ( n  O7 ydɥ *GYhHmP A=< =< EEb3ȈƄGm "u/0 QFKѫ[L'"_.ʃͷ ˸y!n $g5` J\|. J\|.J\|.^Y=sc$t )+D0d]>&SiFkYLjL0bW"@ok OlFOl!Ti?%?=~tfWؖY9"ؘҍ ڀy[,8 ڮ{m1דmiׄ<ULP{ $ɇn8c)Xl4g,!GZ Ē*U$Edm ݍB $9GjcOW眖$' O7SsXQQ. ꤾ%3'9Nf_ u߃6ByeER-*pՑ $JP fn aK@]{3 JߣSJߣ3$7>R ]LBe(K> i z"ߦ%plS>%pl]U%pl 1=1j :M3:M3;2#_ ;2#_vվig{2[>E a X[ ^X[j/ʞtݳ<  `VX~(#!ϒc0!ϒc W}j" W} ?r]L ?r (8؜ %O }  v 2 [Ʋ $ k!aZrәә Vәj"Ie Isoo<>4 #~#} 8ہ* 8ہ*9|d9A 9A 9A :U^ :U^t:>8s:>8?=YaC5 => gv?>][)>#۾$ >Xm!D>Xm!>d' a@(6KA*<AI=l - AmQ4 jA,AP[6SBT $BoCx[Yr C+;IDSA c4EY{Efc EfcmE(JGF /© aF /© (<F /©,F /©| Go) ^G2u/=G2u/k$Hz.E= !JMpi KIv L ;.ցLdhLd M-MQo0 mNO9rNt,txOJF PoN - PqFD Q2[;ncRV!bcS: S,NT\߸- Toߌ:U mugn# Y}_ Y}_b:ZB7a [[v/  \ohUJv]t-^̊  _= _=`TաDd=C) fIVj1&Igiìj h#7 h䪆w$ipR{F?iJKiJjT5kԓ Vx ,l=B_i a1l=B_i|'lMdqmU/ڪ mذbmo0*h o8T^&Ko8T^&o;P͜VqǛ,trF 7Q r aGt8y v7=߲ v7=߲ i vYy]CxT=IRx*dI2y=K"|.& -|CZhܯNQ|CZhܯ|CZhܯ|7 oK|IH؉}v8 }.@R + @H?KS?FL{' =,X .Q..| /WNGn GnGnL7 xS ՞Mn cτj@ τj@]|] \_&Kw?pO\tǠ^T * !E+auZlhN 9R_Jk^1J w ;r3#ab Øx>&G †O. 2e rNh o'F+ afXw J2#YtQ.Y)nW#3 %I TNMwĚ ch)AZ wK Zu R-k~+ c8ؓyޚA #AdJq ]a ,]as?ܞDFZ;̚ ,X^: X^?&]M?dzGrm /_j G'ō #dK#dE&KU JR|JR|jo Ks??lKk;{) @X3]T@X3 @X3Z\QSe3CX$Jj CX$J %4|.L %4|. %4|.ʦ TÛ[bS{J?}4xgm9fng9&,VKz)=RKh֨lQKh֨l+Kh֨lJt*`]ۥ I9D-"UۨP"Uۨ H_G)J|R G 4{ @Lo_ E$# \ăNO/ĝ&ekA%=S a%Xb ~ eR2LͶiZ' ΰ=qB% B B&sĆ, E۸ǐBcC aҠ٪E ,/Ҡ٪E $(Ҡ٪EҠ٪E9ҷ|b<Cְ9 +U)v T3vŷ n  8p^t؜Nxs՗t$vdU$ڂIG |_AۣL|#%ܓ :$)wʁ DUѹA(0Q 6 jA) `ⶪoKⶪoiC)>F.6 g yj: , PuY ,ei,"R >U/1F UtD#zDŽǪR#xB'C c[aLHL- LHL-մSX,Dޮl3c%= $ y]tǎYsS &f-sw•Y{r}%Y{r}xb㘞v$#:\D\&pNM$MS#rv?#rvʬ)ʬ) %%t OF $\ v [ 8j \kU \kU  U e *c!k 5C,v)L(]U%!2(s' ҆XS elT*Sž7\ 4Ä6x4Ä6xAq~Q$81 \g&,9Asm2,(f!мY!) !Uڜ !Uڜ !=? $'/+D!({Ԁ,s(^_d)j+ )j+j4)j+ (* c i * c *km.$;LCs5.$;LC ,.2% #.2% { /rV /)[l 2pj3ΥwR5:3H t6 S7Țb*7זBb9sP9:h :#;ꉃ <2}ٽ =r?FK=s e@W' $A[CѽbCEU Ff"-FQwYjG2 SHIUH /}|H#܁ H5# I,D^I.& I.&?I.& I%yJ wpJiYKSK&MZA:RNe>RWNt@]PcPc Qsmd?S lI Sm~ T<mT<T<RT}!VЖQVK9%ъU V^9S -X?&>{Z8LvZP5{[˗ s[Ũ,[Ũ,Z [Ũ,[Ũ,a\pPs]8]yi6} ,]  ] S ^C|TZ^:#uU^Ui |_AYr`гt`EiR]O a1A (a1AaXI aYxL bAbMؼcbMؼcdobNe(m"?g1\4: +gTK?` hh p]jQ=ks; dkF6@ ,l[0xRl[0xlT[ lT[Ql2LD<mv00mv00 m}an5 oh r2ih jr87؂`r87؂` r87؂`K rVr`e9vt}p9\dt}p9\uV۸vh< xdixaqC3yI%>0t'y7 ZyIN zYa zgiz }Ht{r.8 |yP@?0j?>4 F? F?sF?hF?| ֶ dUځځK{b $Z j r.xeP1˰ i 4_ĺ3v4f)|Ygv2ϐ j }~DC3] I^դDC`ᖣvAA&DA& A&,1 9Itן n40X4 7xxCsG $R Pbrvr:rYh# }̈ : ,#UQO! -TP"TPðGjo|&o>EBnXϹXϹv:Lh]! _O nz #3` h']RC m+o -D = rB}Td\ +d\ }IB 5iyS¡ۥ΀R;Z; r?4O|z.xpD ňxG dž?.]Z_GYǴgZnȬ 6h҉  ҉ ?h8Vs᱐,7 .@Qw[Qw[8Qw[ '{? '{j%a! %a! %a!?iiSЍ_~Q6T*Շ{6'сJ>ԙg|KctW4J-SJ-Z ! z: ;nfIU֒:nA) a){@?{@ a{@j e # \<)R ܱ;Aj5j ˑBl!R jS6y2SP^$a/.S1> d.B ";#QUIhlxu~s : VDEi<R   c|^ [H,Ү<5h NA sҔ}H:2EE 7dhR[Hq#F-b$ *Db #wfg? 50 TjD\=zV&~gr~grɣdJ ɣdJ.)!{s {C0}~ [ܐ5BNgZvl?Q  c%ˏ!/CS kJpTa ۰ \ ۰ me2mTE}]W$oR *VdDTz)["Mᮘ ,"Mᮘ P7:!O]B0\ c 3D+  3D+R_4 ? _4 l_4 Eo ԳRōC[ m0j YY Y a 8NC>  T|# 5l =0 $ =0  =0  =0  yϠ(-4 a?! e>̐+D0 q>̐+D0 ?>̐+D0,>̐+D0 m">γn1a?; s?\6<?Wڥ?WڥA/U斛 A?hm B0a Bֹ Cu\ ,C)LHwٗ5Hwٗ5Hwٗ5 I3yYIX#kK2J tK2J :L|"&l M=z3O2KM=z3O2MOy)o P3' )Q˗Q vQ ulRZRStO7DU4# axU4#dU4# U4# UYRV')^VVon[V ʛ 1WS?3W%D|YU'KZ-8S?[,TC^jG?^-@ s_,_,U`u!Q?aǙ=a}{. b b6\HjS 2b;x$_b_g fc(xDd0NdĶ iepZfUt\PQ f9L ,h1 މYh1 މhjuðdjYRRjYR:kQM ^kԥ1^ lq lsr slFmM mu!,o^W6Y #obl$q[oԝ $#q[oԝ aqq q5r|6ELsD4`<,?sD4`<, sD4`<, svs*svsvy,wC#ZwC#KxBnuy.Z .z=KFC{d:ߗ iE%2UGxDž * r y . 6>'"SY͐( ͐( CMvȵQ %y ߊ N s թ3c,?fT2>[l2\+j+P c_/Dx? $/]"$/ U_ <Ҧ5 ^ ?m( E&TstW%}tW%RutW%10T !0Tk0Tt2jj C \!C \=F% q=WV~dM f -. #x. #-?F/ܓCVj/G e@l.P&Z^? ^Pqk%N=%N=~x1 / M/ Me*k K U%j7=׺Ba)7=׺BS6`?pz5:-ƞkʸƣ7 ak԰ 'b ː) wM \˱=nfttzK #5S L \CΌ͎+Ї`GFʤظp2A4 7z)oSM}4O AyJC \Dt"D|kk^ O ؖQy1.R84P=C\^2 w-?#wLΓϰ XFW?VDZfP뭅[Z6t$sV!#| "| %qu^7  ЇAEzq+={ L 餹I{ y úKL \졒:_;@f)xƧ #-~*Pj-~*P $ "x8's ?奵8 j aXYV MyNU׏ 1bOR@ #8#-c,, eT eT 1rqCH -[;Bjj$ CGh]Es L cWt[@1{f \fu S L m 0(w e5՝-, Mi K c5DX ~lh ?t n }Pۀj C! Cd >_uGT[/3Xh_݂h_݂ h_݂K h_݂ʻ.U<0Ft4 F  ˠP/?5- Vi] lC2H C2H]  l; šš&pLlF8M'ws\K=)?-xkz|zʿK{D -!~q^l,qm 2Fj3NIT atbR{UA8 y;> `YAL">eG #Ci $Qi1Q $⋃S$3t$3t$=w:%WV%W&&F'k  '\ 6 *('ˌq)P)B.9*:m * 7 +Nl` +Nl`D-i ?.@Mk.fS5}Y.fS5}/[LTE /i}S /i}1ŧ`25jN2L4w  2ee5L2}fPNf 2SY3kL?3 :4S T7i~ 7&?=S 8-# g 8jF 8Hԝ:@@Z V<\D? EH†f??g9'd@fRBDEkC]DY'7 EoEoDEjbgcFل9 Fb>/GZR.ONlH/tPHF 'Iz)jJ/G5MJR2JR2DJr K4 @t $OMϞ>NКceNКce Pf!ˮ` ST՛Ob ,TUFVT.] + U1vGD UE{ U׷ݤ5- V%RM V%RM e WWĝIWWĝILX>-*QDLX>-*QD-X>-*QDXaJ XEϤYPh[['SA^\'МM\Ć7\Y ]ň;]ň^]q_ 3I_] _]`Br.Fs `g=(a {` cN펏udcofߙK"hQd{i "?Cj.r j.r j.r m*q?n-xKo^׳;$o^׳;$ooCpz527Y q5 . ,>r rS1Sta\+kt܅pר<uT| v/ Rzb,b ] zr{bFbz@gM c|"yǝ9}U}v}U}vf $ f i f ad~J[9u|uk g,ܩF =]L IBzj;䞺=R ?I +1RhRhS։ush2ush%ushL L KbjH.H.H. H.@sF֤C f ~ 5n: c׺u)ϝ؝?H"j.1kB6 $lb%Լ@QT j\hH3 .0^#c+[QxUYX +@ƟdSyu^M~r: r: r: . ! wV 5IS3t ; |!_ Ό''j0<5%i0!hn`hnRR?Y ނ  U:EoqjSwjajj>inz c SQW[>jm[!kw Zb? v;$4C6W jƭ;G6M̋I *#+i/1i/1i/1hMmz  ,[ #i0;I -`5B \jT)w˓Bsg3@1,Q6@1,@1,Y@1,F/ ]dEmM%3?3zPUl ʉR<j-E ,15V K2L4 z ,# ,# ndV  ͌r, wg$R,4 ,_? i.rZUk*2i 41,q; b eUisl|pݩY)@)@t'0D _A pI1#SN#xa𢡊$f| %G$V&xNF&xK(mL(mL ()kd'a)% #*}|4*FA*)_ -$0-H-HQ.[g(b.[g(/zU~KI /م/j 2W3.j6n 5ѭfs 5ѭf 60, c7MEJ1W8oQ :3_?:9$ 9 :9$ 9 $=twR=Rs?~FdC ?~Fd AkN CZ$ - Ew0CG45wZt GX;. HocH>So cHP (H)g] I3 2J4_T$ J:JxWJ K v4A $K3\Y#Kr]->K a+MX8֨L MuX۱MwJN?0M 3C aP٩QsK! RSL!Rke"T}Tu! Tu!U$<Vw) WNB aX"ޱ[%#Q[xI \t4\!]]d \]ʶx^Unݎ ,K^UnݎjB^b:1\ _{n `$a4Q)[b$ofcF♘tcF♘cF♘cp "*cp " , cO%VQkfuTB7f#PY? gHog%=Omh.vij Bc iޱB| m7ˍ1{ oj}Q\Zph>qps;|`# ts)"=u&HE=u&HE=u4ZxzvPuX vCM w)!%w)!$wRL@Lwz xy> x9)0(&xitxQdyR%& yS$Kz6|\ zg\w[zlj*zՌn S{Cv{Sv Z|56S||ڃ} ,|w/# }2 }){vJf‚qm'a‚qm' \M‚qm' >‚qm'.‚qm'?‚n.:„CU„c …No:…No \…No†}.60 †k& †k&Q‡4MTh! ˆ,U1f‰ ](‰ ]‰ ]RŠ!N3ߤŠ_JbT Š_JbQ Š_Jb‹ 7T Œ%*RK|wK K|w6bŽ c -]ᜪw ‘h?z‘?0G’JDV ’n֟’ 6’ 6’NQ^ i’NQ^ \“ ”:| #•rcr4 – F–)k%—w6~1—p%˜R p ™SH š 4]?vš 4] išH613›N4›NZ›N›Nœ88S ,ež?  Ÿ jM+Ÿ jM FqE1 ¡}u |¢xH ¢A<,}?£aN5; £FzI#t¤v2d¥.k]¥F c§#Kf=§#Kf§#Kf§?*h #§ ©~ i«F~«/v S¬^t¬_  ®N®- ¯8B$°#P"²CA[²M4´E5:´SLµµp!\ $¶'G·T'? ·y=I ·?J ¸OܕW; ¸oz熡H¸ܪ؀.¸s_ # ¸i` ¹;N ¹p &zºRdºRd»1BM ¼^X½N½*½;c¾@s ¾@ ¾k6R¿ɠ#*BΩ To?.b7'~pt;¿6'¿6# d9{Ħ.t $=9@oIk go: j&u <.U T &=Ft-_TK;f p̅ObbY s 3SMx@SSSSnm`& ѣUT?0݃RDV! #=ԕXZ S=.  n+>PgrВs% ^>% k hR &yզ c`?1]#<5 l e8iK=agk C'ОY~qȵf m-EH  c sװn Ф{ Ф{ 聸 *^= Cp^Qipv2a T IEd jVt 2V  6b/P4 ]'oRW ]'oR ]'oR MM j i ~Ht )̾'s :< >z :< >{ %F %,$3? ak 5*!M scH8dk/H8dbF=c gU?g=, t&k}Y 77Zvqm o8\ jC _EטlO hs!MtW!X'h"ok5#4'# %vN~ %J#Ÿ1&NV '.)'Nt )'Ns):zFq6 ,>[$3>9 >+M4HNB3Sr ,BRvmBbƻܨ&Bbƻܨ BbƻܨBbƻܨDآJ|u]DآJ|u]D Em9d6 (E}XV F*G;]Z Gw6w  I`ޱNI`ޱRJɮ˙JiL)M\== Pn PL.PL. QQ$S /L +S6(>K5STdT6 T^H T^HU]!:VBTQtX+] m X\AP-,YǥyY jZ:cap a0Z:cap \%=/ \YeR ]%~If ^$wd_gY>RgФZ5h hY i6# 'i<7Bj%Q} j3%>ejn'kY7]^ k_knl9 l=m:Om:OLnaDnn~ߜ n쭙so:2t ,ozPS3ozPSp[vqcsvg e qcsvgq9qr:\Z6&ris~Pb0t?Du&+u 8 [ vB(RvJ8Hv wH xuLxuL Ry%# z%@[4+ z5c{)ּS{)ּ {)ּLV{)ּ]{)ּ {ǖj|-aU~Է}8?À$(/ \ Â7HZ.ZÂ7HZ.SÂPF/PÅBޮ! ÅlOc;CÅd-R Ç}e%KXSÈX]sÈX] ÉAɭ|o Ê{eÊ{eË61;I;ËEr$\ Ì;zh ÌwàhÎ~ӚÏ,yj Ï]Ðfh>V i ÒmÓ n Ó4} (Ó'װÓy Ô!YZÔ@" Ô)R ZÕ_"Õ};i,vÕ};i,d5Õ};i,R Õ};i, ÖB5&ÖIuRÖ5,\kRØ|,56 ØǷJÙW5z'|ÙW5z'|P ÙЫz?fÚ`ﶨ??Ú`ﶨ }Ú`ﶨ Ú`ﶨ ÛTr[. Ü@d_b ßȌàV\Gwà$sá ááâ? "â4 +a â9= âD?å)CI,]KåG|`'K åsҜ̠ åwj æ)ۑ ,æ)ۑ ç$.]ê{( #*ë|#ë=KZ ë=KZ ë=KZëfQp/ ì(1Rì(1ZíO`? íԮ~˨î b0Ґ[ï]2 ïFڿ3ïFڿ \ïFڿ gïS\K$ïq{YðF8ez ñzڍñʶzómr` ó# ôq |#õ/Qp + õ/QpQõ'i .ö0iZsöF@%0öF@%0öfק-bY öfק-bö.E ö.E L÷$v&\ ø2<KýWLÿ| (ÿbOCt ÿk ÿrhɤ?8b@ U]f1-Sfڂ ¤"yf e* kp kptŵvA& (V}p hǻ3^!5G*_ɛ\:9t9:xj~+`9?˿^ϙ(\$] ' }l j@)J;`쌕 8̓6hB^iYvtLK 3k чaчa EK Ӆ?'暪 ~qGŐ|Յ<'  ۆN1D ۆN1 ۆN1KO%(>O%(>،18:|n ݻ>w"=W7R/ Ɏ GɎCx! ӡ&c3?&c3 .?]wN% 3q,tᕹ ?wPڀYa0W *K7Yn}UO# U?H# U 1Su# 띾'$Ov>OOb& Tvk l AQo{.2Ξ;ߗq@RN׀ \HtVdT+o ,dT+o dT+o gX3,NX3,R i,;?ε%ƞl/s ƞl/ ( %⠡*?0 c7(YH{9= 9=lIZ $  !?Rt \ʬ4 ,jjD/ K=UUA1ϒ ~Mz FXg]edѓ.Ŧ͟H1t78] V-h.CD "%[` "%[a" f| K   &fDĔ  Uo&s 36) iY  yO.*5yO.* I ?Mc2\c2\] 5Md.>+ 15.i\"ԍ ~Et⳹ $#>Fx#;t Ѽ +t +ٜaQ .;McCy1ϪBQakc4W)F] :s0.*5)_%*Z %*Z(z](zj,Zȴ,\8$.&Ⱥ &/(C/-eD 2J=ڤK2J=ڤ4jM5DR 5DR 6-60Xl? 60Xl? 8Jg a8 BT\ 8\eY *9Z9ZP; Y b=C =]a>1I0?gs?8XN?8Xk?&~?&~ @F&  @փi<^A[fenUA V  A+pD[D(ŅTI|5J3 ]K )m KnP<KnPL]F8MeA@LMgMU' MdsNdBH OdjVJPq-E=Pq-E= QBU#QKf 5ZQ<}G lRJyRJyT^8 $V}$ eWsTWlB6XnbX~0>YseYst8mh?Z62?[Q\_?t_c&b `G^ nĩG}A#Ī5tĬ9.\: ĭ" \įS+T3 įS+T3?įS+T3jįxKj įݦ짌 ıʡı-w/ IJ0 %Bp#IJ0 %Bp IJ0 %Bp IJ$ij"]}g ijyB(Q"ijyB( ijFv7> ij"Ĵ26tĵ^RkvĶ69XdķV _ķw{ķwķF ĸ̻PĹ~ؕ5N$ĺ4%BĺW2J4ĺ5 Ļ]C/Ļ$3 Ļo jĽ@Ş6Ľ@Ş6 Ľ@Ş6Ľ-勾*c ľ_61 Ŀ-fJ 5at\:e m5/ nsKsKhĶ7} ciL3rfUƋ%j) aZ-*a %|6f M\O G ̫YG 0QSj"j)c %L ,tc %L '߅ &ϒ>*y [@o ѸݞNك[R%hS|!. /~%YyhU?Yԋ]eh ~H#7C Tl #أ3 kok.sTogHbۭ5sAx:4 mx*t8ތ5Mch/[-ZȏZS u *lA=#=#Q =#fKٿSKٿ ocǥ+j h[#5 j[0L,R15Pb\K6X}=G#$ #$ Pj :ʫTVK C. m:/PlY !/"@ a1[wb(1[wb1` 3xk4 ,5•wT6_AH 6_AH7:$cj8 $80׼bNa%86ɻk86ɻt9_T:u ;"" <I<s?>$ ? >; ?PY @R2Ax eSC+C+ D6KK\D6KK\D6KK\DyE}<j E&1lj8FYwI'&D I'&JtU K,8AX 1K,8AXjK0鬠Mކ Mކ N8p NOOBP cO~~Y\OA栝dPΎrSQ*)#VY0 [5 #6[I3R[I3Q[I3K_7F _ѯt_ܺo `U-a彰5sc! ca݄d+d؏eoete6T e6T 0e[ܓCewy ei,f4 -g  \gƶjyt? l6N(m m⇴bk ne  ne nˊp1KppW9p̯2: #qת8Crh!i9%)ropP] ]ta t+oqu[iRvkKd vOF2O vm iwגGxXxwy/M =|[.D|gVVٓ }DFY}ewvsJ"}k1) ~] ˯~A//&]+~A//&~Щ]"˘jŁm Xe0Łm Xe%ł d=ń=!Ň KQŇA ň^&ň>SeqDň>Seq 'Ŋ>ӦKŊVlYK Ō3'ō 09ōr $ŏL> -Ő־v[Ő>T+Ő>[&Ŕr|"ŕlL3^?ŕRŖnk4ŗEQ (ŗ`Ex ŗѧwDŘhl3{E ř!+A < sŚe8V"Z ,śVE& śVE&ŜQ Ԍ aŝnaYŞ , Š\h?š/6ŢD(Y Ţ0d<s Ţh! ţoF[ţoF[)Ť ]~|Ť }$ŤBtjDť,Oph Ŧsŧ)h ^ŧaGD4ŧUY Ũo9Ũ1< Ũg Ũ}( R*ũ¾ <ūu-Y3ūu-Y ūQJ cūBV ūBūěip ūěip {Ŭׁhlŭϲ)  ŭLd=5ŭLd=*Ů=^FŮ=^F ůϋ kŰF| ŰF|]Ųth  Ųz1!RųG~ќų\~sŴyHH Ŵ(ʔqŴěů_ Ŷ[DN?ŶbFż ŷG ŷv/Rŷ8Ÿw5:zŸhl?Ÿhl Ÿhl ŹLN3 ź=$-{_ *Ž 1P ž35,?jJ:›D;x2: x2:tÂ8QaJ삍 aJ삍 ŀU!w`Y) <?ʪ=ct  ̠Fwj̠Fw ̠Fw a;-<<,<<K 4rSI&pj! Jҡ]8 0HQӮˁE"}~0( i tdgչ7R YE3dz׵A+ɛm[m [=Ǩj5 j&USv j&USv j&USv i^^FyI `H+nZnZnZdm8 !lJZt? I~G ^s.ѹŌ.ѹŌ.:.: 0S4 eS4 ^G"y# bkb R Q͆z Hb з0L з0L v/6մ?b{:]()R n8Ky< -l¯R jح $bٕs L7YKSL7Y L7YQL7YwZU wZUj8l8lD=,h 85ʈ n$3w_| #Lu@Lu=LuLuQRf` eieq rTxL ˦9j5˿Z I=24~N aL=R ϐ j? j?Y_tdj;BIDn_ :ҕb ,ilD e.ilD$ilDXilDY OA -2 tRɪrS #fx ?d\$d\ 9KtTP{+[W aky?% RGt7wa\&^8$|.<HU Ꮻ Ꮻ"`C #굸 |$q% #%r3+ &E3=4Y' ^Ѯa'#'j'Q݊ )3*h lS-/e(-8o c.o0 /?|t.yj/ { ~2Q/@ s 0.N3zD2 3s 4+8 4T)??4 6bf6b8]DZ:8l'ф 8xqA J 9o;UCŹ;=iĐ Ov[^)v?v9? ?; BaPBaP C[N,!;EplmEEoZFVq84 GLʑ)d%GLʑ)GLʑ)QG H_2 J ?OuJ ?O&J ?O K;7ް2 K5:KjN] ( N,9?Qqы $ QL8 i&R{XHS~5+TCT/@n V sV \ V+|O XlcЪ X  ]j ~,]ȑ _ϣ{6_5a!DbukOj b  b |c=pI Ɲ_oƟspoQ (Ɵ1R ƟGS Ɵ  ơdm Ƣ6; Ƣ;1e Ƥ*= Ƥx ƥ8ZDNƦ $Ʀ W<Ʀۉ?ƧԖi>ƨ{hR $ ƨ{hR ƨ{hR ƨ{hR (ƩGzYƩ٢Wƫ[֌ ƬLbƭr \ƭ?e ƭ?e Rƭ?e ƭ: ekƯ*F ƱNӍ7ƱNӍ7Ʋ}NGƲs8B Ƴ[b&" $ Ƴy NwƳ(SƵɚm$(ƶ>wsƶ>w ƶ>w \ƶf$Ƹ:s ƹmRlƹmƽ&`ǞZƽ*Z_wjKƽ*Z_w ,ƿQ]qƿEpo5P \aZ5s k(A .\oK RR? /  |x k Ê<=\ îJ׿`a #ia c>ĻWxrGś G eũd, +'yZϛ.Կop iX#pp7zn c哗C#<wRxZ RO[jO[O[?` {y\[ ˮr@ˮr@Q͓̿#' :[ HBDD 8+iG% vh lm W_W_ ӒEV ӘP{ׇpYAtB 6ͶԎ-;:fȲg -։Yv׈ 1 ׳ T (ئ4!ئ4; D [D [ڌk@P ڦ5=HLGeMk,T<SAV[C-|i` ˌyˌyZvu=Ie(p5= a6\ k X b9 RKSj|˼?!UV7l? HF xHF x4C# LP LP LPQ LP]ciciR?DHQled t?pLE (pLE  2a`J ?[J J 9 5a zK eQ(H i(JǙBP9  ^F:d (/s$+ 0{!t)2Z2ZR E&3AE&3UE&3LhfX* hfX*L|"2' |"2'S vֻھqYe[95-dWrH@CKD|kA#;JYd. {ϵkt 3̏3̏! C  !cGN+"yAd_J#b_^[#j? #k-J #ѡp. 3 $"$mz#L $mz#% -&ACB $ '8 e(D󨔿H)R7t)(g5S *}5, *3r3Z 3h\4έzC4s 6F<Uqg =?eޮ@XC @C % A NA NL A.1׀ZBUACLGmJ¶kGχ HG7jI+m4?JeZ'nj{=>a nj{=>dnj{=>Lnj{=>Snj{=>nj{=>nj{=>ǍvAƄǎQtLXǎQtS4ǎQtǏKytǐ7Hjǐϝ  ǐPkǑ{I2Zǔ ;IǕN Ǖ;" c Ǖ ǖz[UWǗo}Z n ǗG# eǗŹǘ)8ǙR(#ǝQ`![GDǞv{$TsǞv{$TsǞv{$TsS@Ǟv{$Ts/Ǟv{$TsQǞv{$Tsǟ_TXM$d&ǟ^:t ǡi gǢ45 ǣ$'j sǣ5>[Ǥ}NKǥBOǦ$lTSQgRǧ%gǨ &$ǨQ`5 nǨڧm"ǪԕJ_ǫuY d\Ǯ k'JǮ8L!AǶ?ln ǷG*<]S Ǹa i+ǸDҔvǹlqǺSih ǻ; YDǻ; YǼ8.L Ǽ8.L NǼ8.L :Ǽ8.LǼ8.LtǼ8.L Ǽ8.L Ǽ8.LǼ? Ǿi PwLB!8 1ֽR sTd/o} tQz ' ƢUR' ƢUq !F'H('[!',5Sg9'=$g9'=υLOja3~ a x4i x4i f Z K(yH]/Rs6[*J4kF> yL6KQ`$9GɢlҽO eQj{5d%w "#1 ’>i.RrW:Y:y=& gb6; b6;VUSS ;j (XOK9v I .G: u Mf}  D9f# ]6[ ڴ n-Re8 n-Re8n-Re8V= q U< $4T?TI Sf/H, j{]Lk wUʵS^,I1,I [2wDﵨibge( θ(%u Z H#/ 4:սJ4:սJj y 4-1R4;^X,w/͵  VcUGa !nL6S! u"(n #^9{B $BWI%xR &xWXoe *ٱ e +q.hŏ $+q.hŏj,t%a .@L.:2n]2|H76Q13 7  8kP 9.=(&t =Pa@I=Pa@D=Pa@ >nW!>nW!>hzQ? ȁNz ?>u6M@/pB1UOB7.RCj|XC1F1F1VHe HΦ| !HΦ|vI lI; #J#j~ L:_M<2qp (M\jl O` XOf0b;6( PCmZ|Qva47R*@R R*@R ,RueVz Vz . XF*O.[YkRZ  Z`ٵZ`ٵZ`ٵZ4 ='Z [?6\{5"9\ '\78?^|v^/"k_jT-`.$s`;a< U a#k bj& Bbj& Bbu+ݲ d<(h #eyqvsi2zl i2zl9iyV+> lvۈ+Clvۈ+4lvۈ+&mȡ2n-noieo]< o3jHs o3jH (p졐>qTEdu-s Jj tKu=[4:s1v@nyvIwxX Q:w%nz xVە * yBZ9C8yBZ9C8 ,yN]RzHRzö3J{ r ${Pާ {{N4|4s ȁ ~3ȁ+ ݕȁ+ ݕ ȁ+ ݕ] ȁ+ ݕȂ݅\ӝȂ݅\ӝȂѝTկȄBׇ5 ȄQ ȆVR#ȇpJJ ȇpJJ? ȈTȈTj ȈT (ȈȜ+T"Nȉ SGkȉ"ȋ@QȌs:pȎx#3ȏzBoC ȏzBoCRȏni Ȑ%D!sȐ(n$\ oȑgYZȒ]OBڴYȒE ȓ? ȓ? Ȕs"ȕJKȪJȖC[ȗfw; ȗ"# ȗ u ^ș-Ț^@} ț E9j + ț)mԂțW(a~ ȜF*aHȜ$vȜ6ȝ"M &ȞƚdsȠ ݰyȠIhȠIȡICx [ȡvN.i Ȣx(?ȢqȢ5Q4X sFȢ5Q4Xj Ȣ5Q4X2ȣ@ 9ȣ@jȤ2ljȤ2l~Ȥ2lȥR@Ȧ)v ȧle4} $ȧ¨yCDȨ w[ %ȨݩȨə7}tȩH6ȩtJ Ȫ s ȫY՝$ȫY՝$QȬQT^ ,Ȯа} ȯ[80ȰjZ]ȲVxYȳ-ȳ-ȴ/2"(ȵ|.lsȵ|.lȵz}ȵMTȷ/  ȸ-gʟbȸ -ȸLȸLȸq:ȹ+ʆhȹ.\ȹmE] Ⱥl:Z4) ȺѬ45kȺۤ5ȻE Ȼv<Ȼe*XS Ȼe*XKȽ[U ȿe7 z:n– 9EǶe #@#ro= Da4Gڿ]ɟCoE+ $ߡɘ<4R˽3a ~o̰hN; Δ6-WΩ . C tдk#\N/S9$ 3L$ 3 ӓt s_qT wyԯ5 W7NC r&jc>aQY Zt k<V؈v0LnS $9{c+jۑ ͍[ۻۿz\^ܝq a ޅl{ .êB, bى bى1ޔjN s-OSKGҭQP]u75HjO ߛa{=Dc [J(;M|y%K>[MZTMZT#MZTx GDL8 =!vvO!vvO , ;Ʉq[7c;&2kjٖU; Ӯ(@pV&Sd# drӢ0[?s?).s|R \!-` {NdZ $,dZj+t ) bQ? W xHaxHXUi짳2L !]R b awNb b  ߁/_t' 7hb & > 5{|] 5{| q \ =L݀  )o WSC Q WSC|'' YNє>_)tZz-" " I;V?[~ 0b0b2 cW2jW2 Uh1 O򳠴BLwu?wunB?b!ȴP !ȴP ,7!ȴP %se'% Y %*?O&d '2*>'jfrR)l'XAd)l'XA*r'w*?F{j*X."8/*sFxL/*sFx-a}w_ H-_. .;*; /}8 /]N0rgM0`,:0g 0g 1F#Η?2E2z:A>C2z:A>3s)*5ub:d6,#SR6>Lр j6m `778Cց#|9?;*~AV;i|NE;wY< G  fa5IG (f z'g3xkhnAlobsIpl;rsso Xs\6Art9ړ$3Yt= Hvu#Su#Su#SS v7h yM z0;9 }asz 8z ${'):f {N.Z }@4` }ے>8Knh \ɁReN,ɁReN,ɁtBfuɁtBfuD]ɁtBfuRɁtBfu ɁtBfu ɂ{EɃ;o61Ƀ;o6 Ɇ1OL\Ɇ1O]Ɇ1OZɉ^ kQ ɉ^ kfɉ^ kCɋv3b1tɋv3b1jɌ5NO Ɏ2S_ 5ɐ|zɐA"_d ɑ? ɑIH=ɒ|+5|S ɒ|+5|LɔH'.HɔH'. ( ɖ,0RɖAjj|ɘ "ɘBrO$əS ɚu \YIZ,ɚu \YIZɛ ɛw+ vɜn u ɜu}'Aɞ2ojj5ɞ?n lɟ mĚtCɟQN ɠ7sB4%ɠ<—Uɠ<—ɡ5&  ɡWMɡH#{*ɡ5ɢ=}Aꑘɣ>@ɣ" ɣl0sɥiwi. $ɥY eɦ15iPɧ.ɨXnJɪw1I^ɪ9ZNs ,ɪ%`wSvɫŲɬ;1 -ɬë.LɮDIFɮ}"ɯvU4 ,ɯ mɰA`GɱZpRG,ɱj O0 (ɲ'j ɳ޴Qɸ O?k m ɺm56wbɺm56wɽϥV7ɽ˼ɽIs*ɽIs* ɽIs* , ɽIs* ɾsτHɿE;9ɿɿmŰQ'ɿmŰ ɿ97k 3S_5R ƒgW?4 ݲƖYL!RWǖ+5r Q@?$#RB%/UΜr *1k5C=R=Ҋ/Ҋ/jҊ/NҊ/_Ҋ/d'S'RTY3fRt*$@ ,{I bJwt֍z 1tfW فRJ#Hň[YLGzbG^RG^RTirȥBn? S EJ Rͩ=dUO2=dUO rD*@A #{ږj7V]d -l&]@ 䂜ʀRSmRo U 蠿]蠿U Bl ( BlsP ᝂ ,2z5%?RYe  (  3Džk ^f (X (X 1^_?T"ERDF b[D$~E $$OQ}  Y-9ʒ6@<Bl0Bl03 z? d ;WP+|\ i K  t$$PsƬED,tp $)a9ioW u=.m6"ȗ cR&"cR&cR&QcR&R7&0 D ,/r\  ZqVr"K qtqsb!)N-b!)N aѥ9~cX k)> jjJ%* ^Pe)o|   ;gt_q7j@! <  v%WBD¡P E  k  J Y $ Fq 7JJat#p14 "[c#*G/$P/~%/Z $% KX%7 J%=uH=x%PL?&qpl& MN 'Qfl#'Ưe1 j'}t( ( (6Y*F +LN ð,, \.vD 0T8' 1mO2 a2q6Pj 2q6P{33;#48% 5< \9yFO =ǬW\=ǬW\ =ǬW\ =+T*`=뵣(=뵣P=뵣=KbpE  > ?-A!>8SP>S8/v0?PS. ?^D ?yS'I!?Zn @];_$@];_@ҹ e@:tęzAA< AZHA,U*CuB/ڙ a D{ ! E*SDFc+,Xo F#| Gv&XHgh IMB[ J2nJ֓KT 3SKT 3 KT 3[KlI3,'LF|ٳ&tLl%VLl%L{ĩY*M>|*QIM>|*QINs\NS|?NH퀽k Oa>P/vPJrn?QL [R=ƏD(RCn2% RP V;dZV匚VS.[`VS.[W2Ʒ{k X0_CYs][[0s[[0s[C/ea S ^n%'vF^W(I _78 $a q@,, a.LL aOlcke ,c-qd d*5)|dˋj'dˋ dˋeJ^@jewCJ8eHNf y㙌 | f=05?fTaN EgX`W gF'gbO_h 3I4vi~nrZj OR j6[ Zlo[mfyn m؛% mY n 6nyp>]no>K (Eno>K (o〉Tp6a9 p6a9pdڟ pgDrd4G tY\-D n t$̶bt /bYw~Rj\ xaqbys{Z"> ywٖbz* ({{o2{'{kJy?}|qSp}|q}|qL }kb`= ~>ĵ> ~RsN/C ʀ ]MʂE/ʂE/Rʃ{5_ ʇOc* ʉ:] ʊNWYʊJ׀ʋK^2 ʎ? ʎt;Vʒ*9v;$ʗboNʗiq7~Qʘ#b0M ʘPh@&ʙZa sʙW޿;ʙX[ XʝN; ,ʝiQeISʝL $ʝL ʝL*ʝL ʝL ʝL e ʝL ʝL iʞK lʟB%dʟjf8<sʟG[ ʟl(ʠ[ʠ[ʡ/}ʢo@8ʢmʢ ʣ"kvC aʣ"kvCʥ{W9 ʥʁ9ʨ"icʨHS5ʪFZ ʪkY!Q ʭgJQ ʭuϽ&R)ʮQ&V ʮɕWI"ʮɕWIʯ}Aʰ@ʱ.jʱw%ʱw% ( ʴF<& ʴF<& LʵbtO@uʷh ʸ>C5jʸ>C5jʸ>C5j&ʹyZVV?ʺR^ ʼ}k*~ Tʽ^A ʽ^A $ ʽ?)Q ʾnq4ʾnq/ʾ9n gʿ8(2aN'] ']|@s%) ,>DBAd-rI[I| ƾπLyFEEiz$Qef ˫`_ 5@cˑu̡̹/lкN b RFO/ufY ѺJPY~f Y~fYY}QiN e*P0mMh*P0mM?<*P0mM հp[ճok;s b̚^5G[  |R۩"9NP:>]9̼_yR7 gyR7 yR7 9? A"]HSwiby z_z_K-DoPLoPoPEo(& +F?j+F? +F? , +F? +F? 0^(Ps ԚNr  R SfYuNfYu 1}!5IiM L {  h-D Պ&^߿#$Ns _s _Ds _d 0 N # qEJ$!>t4s, Evn[nӶbyCn{ _ +n? :.[&g %ǶS&7wv(t %$גQ:4 |&: ?yV# gPqjUgPqh^>r 3}| }| i}| 7}|?(}|j}| \  2euKQ*4TkŠ# )w@D vRP UGW "1sg( "1sg 4嵺 [N  z j '䱡 ^ؠ[ ^ؠ ^ؠa ^ؠ ё^Ȗ 9%VfҏAR ߟ֊ 7>D }P arR rRrR/bt&bY"bbsqZAKqZALO 铩+ 䈛kQTM[K4[.Qko" _ Ԏ*x ho' ,gف31: -y -y ,5s? Ssm!i' f'͵ 4e9 XfP XfPYfvR Uj 4cnb"k "@"I7 ="G, )R%ڕeOa %ڕeO '8Βa 'Jv~z 'bb\(%?)}"C)Q -N~Es.7#].ҟh;31fQ04@EtD c4R 涧b4qq[ 5Id s 5Id5;L| 6;C 66m!@ 6: D9R؄ԓ1:ůJ:ůJ8"n ?Y$^?ל@[g @[gCe[ CaM4sG0,dXkGm]GJ\[ Hbp H;i $IYt<&7IYt<&7 I]X&I}AI-JH1%US JVJy>QKED1s L\ O<*7==O<*7 % O<*7O_*O3YpEO QP8PO1zNQ<8|R9n9"S$ UgR U(DV׮Q WdILQ Wsz+XPMMXpZ+ ZWb3=&'Ze c] P #]E* +](,xf |]0~H'S^e?Vmragwԕ bSfhR2d Le  fĿy gcQ}gX) gt^gNzgt^ggdjhQjLjtcRk ,0sk ,0sk ,0sKk&-W k&-W kT doWl` %l|;s m{>n_$\nsvo0UtO$?pD }[p¥Qp¥R%pMĪ%BpMĪ%B psq'م.qHqÐjqÐbqla!qlarrr(vr}giĒ t$E:9t ZQu+$y uY2vaF wivS wkQ=&xй@!xQX ayk~?u?yNj yN z~!\zBf&zBf!{ cy{4#<{4#<|Qy8|F(}AɨO}[n_ ,~-}J~-}J e9~-}J (~=#N*RL+0;ݬO?  eˀc1dHˀc1dˀoABˁgD ˃am˃ة)b =˄#Pn j˄ڧ?˅;A7'a˅B!Zˆ ˆJQ]ˆٝ\ ˆ;z"ˇ.*Cˈ_ cˉC5 )ˉC5ˉC5t ˉC5 ˉ)*nY #ˊ ^έ$ˊ ^έˊR R=!ˊR R=Kˊa , ˊ KNRˌl(m ˌ@jI 3ˌzZsˌzZtˌٺ}]ˌhRvˎ e)IjEˎ e)I ˎv2FՌ$ˎy1~ˏ]fD6Rːu9=vːu9=vːFl/XtːFl/X ˑ+fRˑyG3] ˑ8jO˒bA, ˒{O˔ (7?k?˔16e ˔]% #˖d|`'a@˖m{7˖3o˙2!+#˚FiD] ˚!Rf ˚ S˛ `uIN ˛>1 ˛a( ˛\悧N ˜FoS˜z(b˜{~,|Tj˝+~ x˝XOs ˞] R:˟b˟bQ˟b˟bK˟(TQ[ˠ+_xbˠxN^o&ˡayb "ˡ˻ˡ3Enռsˢ-Vz( ˢkx ˢkxˢ f(ˣ`ت#0 YˣęA![z˦@˧:B۩Q ˩]I9˩%Ng'?˩ot˫Ľ͋[KˬX(DO˯OC˯{? &˰H{-˰Oj˰$v˰L˱{" (˱H ˲0˳&.J˴ţ*˵16<L˵VI=Hw ˵'S`˸X>(f˹U?˻T ˼U ˼&KsR?.˼&KsR (˼!j˽PPJR˽PPJ˽[`J{ s˾h_R9gS·$ľ %Ar s T1N2FƎ)$ /V1? Ȱ? /X-:̐~Ʉk٘J'd  g L36= 36= 36= , ^R?dޅ <o$V ;+[Ss QK A+I vX8 9.Z- K N eY $C*W $C*N tI %c&t $mB $mB s 6_ |usz0mgR ojúfHojú4EFZ!8]Z3(U eN+ N+ \' ^A0^A0 <`(f@U@} % G{j a3l[dbZ[O'SO'SAcf8$RAVDо  *eM V%hp6-kDDIp.8M~ c t2=  ʽNY 2 !~J[?#gZn $4~ c$<ŷC$V>!f$j&R%?%% &+>S+`܏s[+QT %+$ ړ i,+@,cfEN-fp'Z.\ h.\ iP.\ .\ /(~: /_ט(0h 1򲐇H 2t w4WN2i!)= 3,E3,3<]4&|? 4Gn|?4Gn|+5#͵^B? 7&oO7dGX 77! 7Q1 8@֚X8HX9pX :EuH;F&g+ ;ish;N;g_L=MZ| ,>=MZ| ?a9g A$ɷA^B?1 -A^B?1SB7 Qo #B'n? Bc %?,CkCkC0Ea .EΙ3OF G' HO#?J K(C׹I|L֠h: NC"WNjV+/NjV+OV'-S O އP S f4CS-Ű iGSa)).7vSyN R SZⲻFSZⲻS SZⲻL SZⲻT)] U&g햡BU&g햡U&g햡ZVLsWm DX^*/"YYX^*/"FX^*/"1X^*/" Yfav[v]zn \Gb89CR]j'hR"] R}d^"XR|[`T3,D`vFncb) I m bڈSbm[ N c(~Т mc>bAd dCoGNQ (ev5Jf|RgIhi ahb5qiIc Z']i .} |lF/ $ liڟj2 n]UOc -oJouX%~zo^\0 \p=OvD }X>Ov}\Y [ ĉ azf ̂.{"̂.{̂.{̂cS=R̅ۋ; c̅&u; ̆pLj̇6CẄᾬ;P̉Q (̉Q9̉uM^C̊y(s̊7( ̍L ̍L ̍I|0̍M9MR̍M9M=̍M9Md̏1ݴ!8 ̏1ݴ!8?̓X%&# i̓X%&#s ̓' e ̓\u̓[, ?̔23*!̖ $̖F> ̖`̗ZJ;v̘2(( ̘]˭XR̘ s,̚d鏸̝Hp; c̝n ,#̝n̞%-̞%-̟W;1N̠IT1J>̡Q@ #̡bѪueeh̡rDn_̡ףlh̢iU: ̢iU:Q̢գ' u̢գ'̢գ'Ẉ,RI c̥t̥R~T ̦'R\̦R: ̩vZߖ̩E{a >̩E{a ̩V?R̪ 뎧̪T ̫6 fV= (̬4aqR ̬\]g̬)̬\_̰m^EQ3̲8$Qk ̳ ErY0 ,̳ ErY0̵kQ8j ̶`}[̶`}7̷Ot&̷Ņt̸IR̸ZvD+ #̸x$ ̸a'4 ̼+q̽®HC̽khS̼̽/ ̽X^̽X^̾ҭ.a̾ҭ.a̿ɊO}W̿ɊO}?@Z/ čֱYčֱŹd' BĽR0a" a"j cv|PlLF%cF%c⋞ ɗs[fɗs[f %?&f7U&(5 ?ߍFϲ?<ϲ?|ќZ8<ҁuv2Us( s(Q_G: >ҏ-shKC[C[ =) a`)j") (M_(M_ ,؏7q=̄jDKx  DKx DKx s|7$L>hB}%t>]=Ki{B2d68b0H:@ ٞ~FF @.9RQ@.9@.9oܨtL&mZY$=ZYIE5aIE5RNYSNY #k٘Ck٘8tBm K (.`IY`I `I #`I `I %ZwC0ԪV[ }Dy"LOmyUv 8۴K;ڢ[y 8  J  Jj ` A]q # rRUS ? (d.Cxp{R>-? 1$K#1$R CgZV*XjeQ , Q Qj Qd`Xt uHK&PK&PLe9@ R8V  Hח  xIaE%|H4?:DMڣ^S "/; V$_E4s%C/o? '>LO 'T`d )E5}?*x L,jL),K* -j䪴q (-j䪴q $-uGQ -uG/Is&3 /Uj/U i6/U{0'B{T L0j6rgo ^2w3H ,47XC47l,D4C]N4٦*+5A_1M5賿ؼ6km 6ӟ 5 6⢚È7?+ u \8w2 l& $:\U :\UQ:\U<6YÀ,<-z.m=U?>}?}? AL$YCA1m%CA1m%C=RDW-QD +DDɊ_j EmXtEmXt EmXt ,F(7F( Gk2 HO Hp>2JdF< J{JVJg9JgDJgJ cK T`N8ńad P xJP xS1P1wKQ.9d6QTC#S H>S?VS #OL S #OZTǙ#"RU j UMo U #8V@D,3Wtѣw iWtѣw Xk0BYg8FSZG_*ZBKEZC%Q.ZC%Q.ZC%Q.ZZD> [6~^9 a\t%"$ +]S @]S ,]S (_)?sR_2 `y%%`&NCaƖϹa*™bfTzb0[>d-c w^Zd]M=e=]J c'e)&8` eE~U-g go\\vh3+> biqjgx jB8z k$EBPk-YIlڌK liz1onp Wo7 (,qepr,$ qepr,q= jqIHȲs (,s,ǨZO s2A>}uMLFcRy '2ݠ! /y '2ݠ!yYXoyӬ6yO6 zNX9NzNX9z8 |~3|#}?'I }?'I }(/Ƿ ~zL f ~udD C)*o? iC ̀ÓỲT̀q ͚Wl@(v ͛H|6 a͛u ͜YY # ͜W9 #͝?ˠ͞[|B?͞5:@͞Xh;`͞ ,͟y[͠ %͠H͠͠}It ͠}ItY͠Cnq c͡BH0͢͡͡Yje͢Zhͣ=f(Kͣ=f(Rͣ5r ͣM7 +ͥ=}$ͦuB ͧvXUͪͽ{=#ͪs29lCͪwY޾ͫ7@XO̥ͫͫuOJ ͬ)+ͬ)+ͯRQɨtͯ,8cGCͯ,8cGCͯŒM2ͯA;QjͰӎd% ͱ-?$1s ͱQwoͱ ͲJI? ͲJIjͲй<Ͳй<QͲй<Ͳй<Kͳ=Ij$ ͳo.c?ͳ||J ʹsp͵+#8ͶKv/ 2 ͷPBiC'ͷPBiQ&ͷPBiK͸́}C͸́}RͺD+R ͺLC ͻ *[ͻ3"?"ͻ3" ͻ3"sͻs3ͻs3ͻQ(K ( ͼg Nͼ^-% ;< 'Ϳen/tf$w[ r r: #: cӫ~U#4<& <&[ PIFz NsCNsC , P%|?Y> \5= ;f5= ;f ((Mŗ Mŗ|hzUV }S_WmjGJDkL kLkL#͕dͨ΢7uR^a`WdCE%âfwR9-}IQ9-}IqM KvTFUҴ`2Į]tN3Į]t o$ -ԞK) ?աR1L~.֩ظ /ظ  -qi -qiVm~"݁T&݁Tac]ӢߕO񾒄L0H_ Eou&Y vdl#qYY:ٙP 33o(bh a h hv?Ѓuꉠ' H[| JJ☗;c_:TC ,=0 8>9> 2/V (+2/V $2/V i !υapIpd ?F܎%?F܎U ck\EMԧ3 Mԧ3kl: #kz _W ihC.? u"}1p&Ggg?]E jsr a5VQb1qG1qGꮖ>X a~ꮖ>X Aꮖ>Xt!4K ;tp e N^ cJS\1h ( +W"- >M >M c pMfY= N>) @j}3KEuC~ I|tV ,V  _udFS@ Ɋ |8?wfqvm֗ 1<} b ۬hzmd O_K :I:If ˕!! %4 "W/SS "½EǃS#_TG#{$ N󹤸 % Y,rs*% Y,r %v~~) )džO ? * 40+ 0#N .K .Ks .۞r.۞K0Pm m%08l2]uŴ3lkkUK49֕49֕8x==?f :XMj[;~ӻ; ed_ >@_վ?ԧ ?-A @qvbRASqrAnOA]RtR)A'+A'+Bk-?B] CuO|ACuOC&N^EDEDFPs]rJG"ŗ SJm!5;?KCxN K9wuK"#E ,$K3q #MH7ñMu!Mu! N=Na/9 O|: PʷUPݩ0NPݩ0Q\*G cVJVJWvj'Wvj WvjX\1X\D X\XRX$:N-XJGUcXT CsCN YA ZѠN Zݢ2E [j 9[{j]B6k_睮7b_`n!4| `n!4 (ab+m] bEAc=@FWKcfS .cv#3 c竊Vdd27ORe{u!{ f G f G ,fM, #fM,h#2j5''j5'Lk~dcL k \km4L oS )oe}=vp1ws/q "TtCUt@?t@uu~ewZktbjw wxDaR)y,͍zrŹe} z#ͯts{ջ,3s |vE:}H]a=}WN~~@C '+N[IxXxPT}txPT}t΀$R΀ZT i ΂6Q΂Ow -΂S" ΄?g@R ΄s$B. F΄E;" j ΅3ΆNZ= ·l(Ӹ\;·YY0·YY0D·YY0 ·YY0 Έ1RSDΉ#owjΊ˺m%΋|SsΌrfkvΌOdI΍9jΎD ΎXGS ΏXE #ΐ aEΐ @ΐ 1bΐDx_ (ΑJ>mΑ嚽1t"Α嚽1 (Α嚽1j Β*G= sGΒRGΓ&4K ΖАΗSmzPΘ{8p a Κ"PΛ{ )Eh ΛW xΜRŵR\CΜ}PΝS0sΞ,rXΟ5z:X Σ@ Σ_C;Τd ΥB[YcRj>ΥaMΥ]c$ Ϊ0 %Ϊ__ iΫΫE6N ?,ήԈ VήfIJ ήfIJ ήfIJ ήe:ήe:jJήe:4ίF%5 ίF%5ίW]g ΰ2Qs ΰ2Qs:γhpvδߢlOnεY6 Uζ8Dq?ζjW|$Ktθ?R&ι\ 2 κ&n|NeλkZ]Kdμ'μ0, ν&߇ ν#$^bξ؇i ο2 L3ο2  3 $:lzo. HO5HO5Y çi feD =힌  # $4n 4 ŝ4fRes^tƒ֠ ,ƒ֠sƨ ri zZR| ZR|Y#C^y rZLBr ZLBr D~ jkK>}" ʰ/i )~{t\7tLɘ 9bJ^ г(~v%8N?_K'ѕ ѕѕ e %BJJ"r "ҩ{C (uKNjzL!\Z cRnLcRnRٸ = ` ?\Y&^T@@ .e U! - Wu i× PO_<[۶9GWK -eA9{~a?9{~a s0  4'IWcޭ% ޻z a*`S"ف;%B mkҏ mؚ;Aܓ ,?.S< !30 |ctV ,mv!$芷( $芷( r 3 r 3PȭVZ)T&vR 2j;w2%C+Lk4ĩxm5eo5^4v(5eo5^4vj5lu 8@n0qYY :v:ŪK ;`\;e)it;.Z<~+%~?.=jb=8<<=B>oY>;z >Y[ > [?~vnl8 ?/v] A BTkCB \ CFs?ZD F$2?5 FqƜFsWkFsW KPo) KRj(hLxjJ MkZJ" X M$:e NvpsOc)OiFp O-Oʗ9] &O(<Y P- PxoyJ*Q nW.7 SE* TQJDKT% aT &UQҩCDWV͘0W@ٻWjYhi Zɲr [[7}# w[8 &[<_[zY5 1\%P\⢐% ^!w*;^,uLQ _,6_,6_~TOS__s _k|`P`ZqB`韺 (arACearAQ!boR$h/4Vj9 ,j!kH~% (lK i nm=UKDDnm=UKQ&nm=UKoi :pH* \rP crPvtzZUD (u PRv%kͻv#RQw'Jtw;| xpY< xq4+f y;f1-f yU$=XZ|hgA|F˵ |4!ބg|/s9} [|f} [| }WfS]}WfS]~j$~΋: d1>d1>ρ4A ρpeF *ςfc?σ[c!kԘ τ0Q3ɻ υ +I υ +Iυ!3&φ )φTbφTb φTbB χۻ@ψ ω\fϋ~ ϋOό!go[ύvG+ϏM.Ep ϓW |ϓW ϔrQ H{r*QYmW}d CM$61{[j a787878788`,@t `,@t @ۉp?ۉp |+7 <*&*5N ^ ^vi U >gR ""% wz˶ - wz˶ C b0dqo y??7q +%[v̒Il?&v̒Il"`{ "`{RT 2ڞ ѤNR„ uR„ u„ u-1o -1o ;Ζ e;Ζ c!t *];r E ar b-b>(Z -b>(W|oeim _ v֦|BN 0άST1YK?N][馆0^E 4S!Lu!}=!iû "HUF %/l%֢0R 'Ip [v(ؼ] (iy-9h)'.e)U0KR)+M[&S+.{+,g,FE~ =,ia.@)VAt0IwK1Z 1O2 D,WR2IډO2IډO2j~]6 ('6 (6 (8{*9M J $9a@ϣaK;-;3[ S >&]!>&] (>&]?$zJK?$zJ?Z@d B9V;e)B!; D>`D>`d D>`D>` DQ:W EY"Eߥ3WN!FSp F # $F] \GuLAk G=SH s,I'% IN`W? JףCJ"p!K6QfLʧB| c'L^} - M>ByJdM&miNZC)O2Gt O2Gt OA/PQwNA1QL.rRR Z Rw VS䳣 SMP  #JS~kR뫩TuLʐPUTڅfUsPU9h UݒDUݒV`|oHW?tV`|oHW (WV`|oHW WB,)[< e[Oj [ "\"́]n4!N ]F4c ^S 奴/ (bޅ} nQ />n"N&]O=`ݸ o5kBt_R "Zko_ ãt 7sZRX"$Ƿf #&-#$U d?$~ %أ&_a')ʝ$'P< "'z);6?)Z_)Z_t)ѿ:G*,t*ko +VCw-6yrݭ-I[ -tnTe .S 1U\-5bU;@5h4m86p% .86p% e 86p% a 86X8er c:9@&];pY;pY$;N<y}t #; Z' ;; Z' !Z`]?@ l ?E}*+ s?M6y?Nj?N?@BAIl @Rn^A|XEYG9Y,ɞ iYP2[qj?\TpKs ]­ ]^o]^o]YpWD^ƷDa _C b_jV;b\m'h cqJld:թjeg1=QgJLgtCv+hx}Uj/[Svjhqخ k k|lѹ  nqaSoX Np!w8 pfr w҈Rs1 Ncs^o7 ?s Lt{tH)sHtH)?u{g vr&Xs!x j  yYi yU3A(|~uK~y%+~jh~jhR~jhY~qWe|xq# ~WA!р"Rtр°р9a&1Sрb8SMhtс !Kjl#фvZE (х彫 cц]'ϐ цڥ?ц>sn чq7ъ)7 ыFd ь[X $ ю^?~Rюd. gя(vя.I nяh? -ѐٝ:2ѐٝ:2U ђNw ~ђNw #ђNw  ђNw ђNw SєBMdq єBMdqєT܊:єIlє ѕV$6Kї Fїl! Qїl! t?їl! 3їl! (1їl! s їl! iїl! kјr2Dњ/њOܱDњOܱњOܱњI3 њ}{i ћ 3BL ћ 3BLћ҇`V (ќ!DtўĜ^[ўĜ^џh*Wџ>i џA$~ѡQwEKѧ6 ѧ%(qѨ`Hѩ0wuyui ѩ0wuyui ѩ0wuyuiRѪv SѪr}3 ѫ[KѫEP>YK ѫ|R6ѬTz ѬTzfѬnU#Ѯ;ѯf: Ѱut ѱYov? Ѵjp gpRѴѶc?FuCRѷRkh:ѷܸdFѷܸdFѺ8$# Ѻt2|%Ѻqk!ѽhV-ѽhVQ#ѽhVDѽ ѽĥZѽܧ:hTѾ TzaGDѾ.r ]1`9.GR? e9J O Ks 4|JtЮqSAQ?Cm (SAQ?Cm|Jg Cjݬ$7)Oa3 ] qPJ kj#̉wM>̉wM>ag3~]H`" ~]H`"ϟ| Y|qo?еX7еX74+rJh?ёm\&7~a y:d~c zӢW^P 5S;ql l ׵ س#QyED ٌ #70t 7fbcv ^a3U Ԉ1LyQqjܹDq`tbݜ)ݖ|I! ݖ|I!Y %`z@;AtUAj"z e/: ʬIw[ Δt9i #D U Ty%L)Ty%YGM[ 4R~33IJ.lSuS?r s 0" 0" Tx`. `. (tALRBiv \mm%4\|;m%4\ iE隬 6 & ]wmZQ@j裗,>|; I;?4R9P (6(n|P_f?N8? J•N?!1s|^|^0[VLA=.?l9 ^ ]b9R u7ł!ǿ$ga%ER4AK">S6 ͼs0;1PP/< vVne 맂 - Vs9 \ "b/ $k "b/ Iw * ?>v NL NLXJyNZ .1[ L3ݗL& \f", 3euu IC7آ2: ]9H~.I ,.I i 7#,7#,K 2m [ c*V@X0PG@"E |A4 ї A;1A=g Dݤ a F[.bfL $ F[.bfL , F[.bfL G*f jG3b G3bDG4JN܁8KM*Kް= L4A V \ Mw]#[ My3 Ps!iLQΒ2YTӂX UܛSV{L"Y D'dYV YwºU Y XT? Z!/eQZA ZzBbL[=Y]\O^f9+_Nm.4_kjr _kjr`D/,a)# a- dI Q eK #f]p)fcCc& i߹j' jξK9 k|KY]lU l>1  (mA_٦`  nKlKn_?i nI@zrp[lsp[lsq5TtH[Kr$S sr}2 l wE= xJ@Hi yL2 yL2 EyL2 z"y {B0~dE Ҁ}fL Ҁp.Rҁ]'  ҁ]' ҃WwPnY҄7/EDE҄7/E'҄7/E҄NcR҄Nc҅( b* ҅ک R҆A0|r҆A0|r҈9-NJ0 ҉( ҉$s \҉$s iҋ7b|ҋ{<!+ҍ0.&P$ Ҏ$Y? Ҏ- D!ҏ?H$ҏ?HUҏ?Hҏ?HҐ/ qҐ=j ғ&;s ҔO~ Ҕp&Z ҕ}Pd>KҖT,Җ# җ$җ#sdҚ0!M ҝ-=W ҝhxҝXPlsҡpgsҡg#yKvҢ23NҢ23 ң:ٶIҤ :)&ҥ+s MҦ(duҦL[1ҧ6!ҨILҪo Ҭ>&YRҬfKҬfKD ү{/g+tү{/g+hү{/g+ ү{/g+ ү%F YүEP1)Ҳʦ#v ҲW=rҵS]ҵ;#@ ҵa|C aeҶFQ!Ҷ߳bx ҷ?ω3Ҹ s$Ҹ "Ҹ]^pL -Ҹ9tiҹ7*: Һ4U9;ҺMһ һ һŖDҽ#b tҾ!` ҿ v thc`[x38%x3-V-ViR| , ?*(MJºYR$ +d<(:?Li*ǒ˓ǒ˓ ǝ? !ݐ. !ݐ.%N gB< Z gB< ;;R 2 @¦N @¦݊'͠|ꏌQ #ͱZǦ-1w0t#; xSɣ; }6t}6 }6 i}6s̗wd? 1( $ZuV >k? k ns<ٰ S&-4?-/ XP[o-~.r8q=3;_E3;_ I yq :"ٗEGٗEG ٗEG 65` Bi(ڽ.;5e^V  k[& ]-q]-bNƄ2 i@2 i@R mɠb=mɠY#mɠ ex*螖&J@w_@wnJ .da2 y!ztEy!z oR"cDv ^/fe GDVd7 c/Vd7(G# 5@ k."$jũDÍfa: _ =*'س c@נ9YB# (y DHN? L8ѿ ө\?\N5\N5 ^R6I lV'E=x!;c"W+姪 y( |ҭM"¤6s ¤6s *)j Bye  [  g: \ iJ%S }H~2 s DRq[  q[ 7Q ?&-'_jC[S 9JOA{&䩪 0T&Ñ{~ $ ;>pϟ Dr1Y&c%:b (:b (9 l$' aOYM6( βIa `vBg 'VF RY" ؝j!'"`Q-?"bxCZ " ?#<}N #Ti $q8 %J8Ċf \&%MS}b %[+W&p&!ќK&_(l & 'SS| 'SS:({K^Y(}l)RƊؾ ()}g]:X)=( -&݈p9 0}?~ 1hP76# 1o%+ 2!a 6Pb6Pb 7e:tC90! 9ZTm :ڦVQc :rI;8ziˆD;=slQ ;nu]>*Q ?w9ӈq?w9ӈD*?w9ӈ?sh.?-8| @dܗALQA)W|Bb| Bvx CCICYCHDC:6 {E{ E:E݀r0*F\Vy Fd FO$hw]G\,vGpk #!I4O1 *I4O1 IGwI,ŻjK~LeMNA9XN= QR<'}[ S<S¹I #S2 T҅MV$kVd&EVy:r?W#-X%- Y$B| Y)jYܡ.&e GZ @ 1)[ J \ ]H.^Κ$_1(-_1F _u,2= _ۑna\0ԁ[bQfnXc b|.cDɔ icDTrT7cDTrTc2Ud"& [ e(ʖm #fcRPA \/gQzZ| h_q3k?NLlH m/~mG oT*brzo/@ pKNQZpKNQR qٓ?3Ls$&uy v ?Jtv ?JvFcHvَ wkCxg7ܢVxmb#w +yl y|zSR{4NUt{4NUR{uԓR3f3ӓ{pcsӔ4Zӕ$ˆd ӕ$ˆdӖt@.vDӖ@)V |Ӗ@)V ӗ11>ӗmJ1Uh ]ӗ61hӗ61hә +cӚÍWbӜ9fj}]Ӟ#T %ӢOO ӢeQFJӣXd ӣXS ӣXLӥO2K ӥ`t i ӥ'uX ӥh7 Ӧ~9 ,ӧV #ӧ`[)M aӧ`[)Mӧ܇1{jӨ#mM),Өh'Өh' *ө.!: =ө.!:өY{ nKөY{?1өY{ ^ө-KӪQ ӫuӫ^씳 Ӭu (Ӭ׻#"ӭ$.ӭQ ӭg+ӭ] ӯDY ӯj%!ӯj% ӰZvӰ0ZӲba3r&ӳ0]"% + ӳDT ӳgr:Ӵ>L15x ӵTN?p'ӵ9d?Ӷ65K"ӶvO5 Ӹ$8 ӹ%iWN ӻ6` (ӼjI ӽ[ktRӾmJ,XӾrȓv ӿ|MRl8XmAC \ |e{S{|e{S{m8] #Î]O9>0<sAZ`S!PĪQ@2qK6Ŕ=2:sŬ`N>k Ŭ`N>sźL?C<s7;eJB+ Ƨ 2Fu Ƨ 2Fu $Ƨ 2Fuj'ks6'k tՐ'w jμ]tπIPqr ϴػ:(ϴػ:( C: .' _9./C6?"pj(<< tNiD ֓t 䚝K3 QSvˍW<j/jDc[ " SL+ MvۦM>۬}S%$i9"7tt| ܅WV?( ݞ LޮdU' Ąd~s]CͭtiIx!r e g/|r6"t8=ć+ .+ſzUOI!iKK Ⱥ: fo ƪc;"MbN R prSG5.wk i [f l^J AsqY ߠ |j '[RŢ j $c*dQ (,,,i 헕H{ʀfN GdXs \C ]! TBvu ڬ4 WF͏,=ȸ)  3/&a 04NQ5 %L^LuNZ42{9S($ , 4zk ]Zc \ :9,? G,o^J4tHgjS~ "? Z +t5e5eьRFk ?Fk j<̡ ' {  >? +HmӞU+HmӞR+HmӞ e tQ 3#ա +7Yl$ 4z4zDY~#]#0Ybr#qФ2$_}v K'wWcsU'W'kG,'kG,d'kG, 'kG,f(6n(Zoks(jpl )0:?*~ =*~ +J +J +n5U+n5U ,V7OBR-.' ? /H3V :/P&J a1'N"13 3&Nl  3W vU3W v@5`T5`T6b776)>7n58N:?8 P*QOv8\ 8{cj28(ypY9`GF[29`GF[9`GF[R 9]8 ;H ?<~62?`?@ɦ0?*@3M@3MRBԑ_X=Ci&f C~K0 D7 kCDnĞ7r D'-DmDEZ@lE%zC"sE%zC" EߨF =EĀQn F6ӟDG'zFvJʛRԧ+pyԨPb&*~: Ԫ4Mt [Ԫ4Mt ԪbH@Ԫ֜-9(DԪU jԫ% ԫu!K ԭl X(,Ԯ9T\ [{ԯHVM nԯM ԯT$^I԰7P0԰7P]԰Ί=u"԰Ί=uԱzQPRԱ wūԱ0h- Ա̡ ԱZnD Ա#4NtKԱνϫԲ pԲ  Գ!8xNԶX?ԷwLQԷwLԸ ])Ը+r$& n Թ\bI ԺC@ Ի#gSԻ#gSԻV6Ի9]Ի9]Լ(v}~I Լ%ԼԽ)/dcԾK{Կ; :9 k A %k A %ĄM ĘeOŏ mGD$J6?kMj:Mj:7Mj:.Mj:Mj: K9O) Pe.Rd.R\I2[ ̮i )?ЮΫjF 7 7tɨj?| H +z /٠: J"ڕ>[EhEhEh ^C ڈ;Vu] El'Rկj\ .-I .-I!yjY``@ҩ/T'sZ} ֬NQ"w} 7VV i'ro7ˎ ҩfR &gun hh9{w긭a5 xW` 5 ryF6 uNH NHLfWJFaYE!FaYE!FaYE!v,v,|^RǕ۽ +s+!tv ~gGsIJ&s&s $5 ! .7H% s0b f! iP7= /O|VhNQPdWf| iD RW 2_~^_~ L\Pk mJS '-Q^  av av | ̻ s `Uc(B (c$8C 2j1؟ ȭ! wSξ;dLL #+T aCu3 OPn e۲+~-`\5Z  瑗| !s"5*7C"3 ":6E)$f(?$= 9P i$Hq3 %؜s%$-(3 &%Pj e% W4:&,޻)&`?'@<)#  -ٿ*ܘQ/ u y I/@A@ /nn00 0KÕt 0:hBcR0:hBc1|xBK1=4J 2+2@J?2 kD 2 k3Hbrd>5~(6e 6e 6e| 6r ?6s  6䈮ۯ 8S,/9~*$;\iCs;\iC a;6Ȉ ;6Ȉ dSbP&> h>% >%?Fsi -?Fsim ?G4 A=b 6N@AG5 a AMB:Ϥ`Bk +9BA s DmWhݢ DZ6ZE;XE9AF[aH .H),PNH),PH),PH| k IGt7 JK6_L2i՛x՜< %՝W՝/MR՝bǾ$՞s/4 xՠf5.ա#P}ȗ բUUx\&բ6tգR4 dգA , գA գA $դo եgզ9 զgW1զȕg^G8 էTlτ Zթ2+\ (ժʩQ& իRe լKlNլFgRխiHF a ծK?կMIկo8i$հ[ ?յ"o>i յM(յYھ;Hkյ%T#յ9 նU1SNոrwNBո悋5 չ\~ պ?jպ4Mջ]ջ] \ռ+lj< ռ2y սS ɢZվ{,տILg`LտILg`տpDt]տpDtտR;տR;S AIAIXv FtW8z u sVh;’q&¯U¿vHd8߄,p<X('- D@'k ^E/2dĴEb rj$ ?VK\Ws; ǯFXO[ǯFXO7m$ ʳx9nQhe+|D]0Qab"t Qab"bЈ%YmȸL(*?K+" S9'#>Slݵ_#T"Տi4֞`]֞`֡(J` %x;K| o ?o ٕ|>Ek}?k} k} slf2g $vtyK(VV8Y4SGU ,AdANaRqEj-ⰾg iⰾg gаes=C j 2Rk1H輍HKՓK R&O[ AF ( [ AF (zYd3&(zYd3{_+?얧/݇ %{#P a,bc}RYeN YewM;? ]oGr]oG &<b7 a 7t&\a;!3 }B }B 8ejQ޷4FNô Nôz nRo \-3W -3Wm%LG\ t(mC_ O|J25 $vzؠhLoxox ^.s::N 6? gVֽ یBR >  Nx0 eȦ6h p< ͼ ͼh ͼU) ͼ ͼ `@F m zo)|$*N8sX8;s Sj ~.yj< `ya`ya6c r)FE_ ٟz~t ٟz~ (xf?+-Uf1yϡ?#f}P^?#f}PT?#f}PL1?#f}PS ?#f}P@t6@q2ե A"vTBuxKDbbݼ0 (DeNEDDeNEKE:)2E:)GoR GE)IA607YIċ*J/ƣ^J0<J0<t JTNjKCM[L.ort * Lo1xsMk+gu]NV mOH/i RNmt RNmSF6jU;dU;d U7Mja^ VrVoK WSu7O[?W ,W XR_YyJd ZwAS\-ER\os]l%IR `B!d a^>d a`8b%1cb,KVP bہ&Cc1Qvx8dW!gdSeSe.th&p- h}S $ idSJi "jۈ$Kk06{kRPЈl^ E m/8] mpm2@x/mpm2@xm^C0?o} ipczqs6< CsۈszzksIyru#Cgu x3u xwD2? xA x/ zy)* y)* zyD zs4?{*vG)~m{"~m{~%H`$sSOjsSO aM .sJ #e~.ր7ޙaց_u#bB ցz#|qjց\fxMց\fxMց=4Uփ9͠ 6wփ9͠ 6փ9͠ 6փzM $ք)- Bv օn1~Z\$Qօ* ֆE # ևRȣ ևֈ-ާ։jw|֊iyi ֊ B%֋GzK֋XOt|AR ֌nv-֌])M ֌mBf֍6}x5K֎Tݭ ֏ߡq ֒ 5@ ֒ÈRj֓~HR(֔Ǐb ֔= # I/u (SED c>,g6LE F:d sK{~C'[WX8 q ve 0e  cZd U-S4͗+T22DצRRa5clWs .EB-޴ ֣Q%GHثku? i_~ y9擰 v sh9H ` '7ޙeǩ=ZZXJ89"k܉sVp?U<L )| 9stQ *]Jf ]Jf  j/ *3L "\pn"xL% #8# #Mf?#Mf$#Vm$&Iv$Z%aZ+ ('} 7i+}'' (Bos(q:. $(u R;(u (u (i0+)BSS,e. $,Me-֡R -f)t -x/3gNZ/!Үق?0{#0? 1QhM 4m * 4wWlY8oY9u`<7:4+ m:4+:2-DzR:LAKc:LAKc<8=DxP=DcQ \=DcQ? >w^8,R>y`?I޼:@!p-{ aA-#1A-#1BЙwB`P셰DB`P셰J DH? u D_Ip -Eh|eFG呂,| G bQGaK2Hߡ Iq~INIܼ>TKsrc%KsrcLL1LtMQ'N(k]dNOF^PPbA Q9| R#kwDZR#kwDaUt]AXƘtX7p|Y~SyY9bq (YΤKZ[ Zby[HBu\5LE\^'eb? \/WS\(w 5]rUE ]4$K^ns^1\ ^ &_c;s_ە0` *`bW?5$ `bW?5aom&?a~aeWVhbk((RAbk((R bk((Rc-R  dkfLD]n bf #/ɂ gg_fbN h=X h=XUh[(/p? hx@iSh~71ir –v iq5ONj6BCc jF6jP0 ik 9Rk 9|k[[;)#kiz<tk1t >Vl_v Nmn:l&m m/}qn4s c o7Z)p̮Nvr^Zd(O}ssoKbXsoKbCJsK1sqou=Gp\u]>4u]>4ugS0-B vg wh0? z1bzXL~{~6 s}5'd}Z}ZnL? )"#)"׀ C ׁr_ߓCׁܒNA ׂĭBׅ!7FRׅ_F׆;9t׆;9t? ׆VVXT ׈ 6^ ׈" #׋b~:׍Zy׍Z׍Z׎R*0LN׎R*0X׎R*0׏Qwhs,ד/{sj ד/{ssד/{s ד: " דdg דn4 הbMJח5(ח5(חky חmחVqkj יxz ] י&R3ךB ך1>N ךQכ{ לatלaYלa םzcYמlzSןkEl< $ףs! ף 't2ף ' פPץ 'l צD ,צD ק"sר7HL -ת"]*׫Xan ׫Aw׬x[׭%Ü$SdׯZnfYZװ%a~)װӕ2M;״yV#4׵4W}D׶-{'Hh׷]6Ă ׷´"{ i ׷´"{׸m3mj׹̠R`T׹܉)׺^-2w׺F) ׻`B $׻T5U׾㍂׿Jy ׿V^uPR~ MU ^E( % bVVfCFmgLC mgLCtkmgLC mgLC Ś8|%}sR%}sXs(~N LP= !RE) u* a1$~S" ,"i"iua 0?? Б잧 `g9 6 ` e `  AgxhE ԭ2#8 6BI Nh@0"$of-3 Q 2NT.c%a޵rg_R)qߖ=s m<(* %M jIUR|om vPk~·n 9 e˞ - e˞ {n.sd,t;5Q_-\f6w ). H? ׿ 7ܤדC[7}b sS[7}b \1s 4"`^Bz+ -r *'O0d&wdpk ⼫@ %BW- ,p }Q_ #R04G6t R04G6 a/To]p0h;?j0h;?g0h;? c0h;? ,bU  #V s #VV u \ ; wn? Ny X QFcq ιjD +qD9 NԼިڗLjH $^g_yրlu d i9ds dh djd =P C-w,L$ $ 6맯맯U+ϘRq S ú >机>机45R c< &!DZm ".K".$S75$ ,eH s%52\%_q+Af1uYAU6 "BijSUErvFFUMcFunI8h"_IZ_NSIQzCKl?_L= KZKT@RMbM|iR N,'.3 i%OT )v O|`R; P}PwQUKNRat!?RfD܋R5F_S"# SO S͐; -S͐;T~cfG-T9i/ Uׄ ^ ViN.zVvTYe}1 ؏`mú ؒ$F cؓx×+ؔMEU[ؕ8e;ؗZؘKu} ؘt{@ !ؚL]> 7ؚ|1$ ؝ѝ"*Vs؞::DY؟ ؠE8iLؠ H ءpآ]ؤo ؤ˒ \إ[إn6Sئ5i ئW ةoƕn ة=Y تY`} تk{C% $تk{C% تk{C%|ث&c.8ثwBRخ{ ذgr3n رQ@رQ@ رwT(شYxaص9Yض; TطXG@$ #طuþ ع%S7UUعع غ=ػ&F ػ*hl> 𘌡>;S8A }r-~ \D?- *cCǗF0hei](Yr>? Pderec & v->o4tf}d) f}d)f}d)$D : lդ? Ec@EcU$EcEc P^s@N7bPd @/o7%v}2v}'J7$Jn7F`#>9p P)>< #k %fm: ς9U -$ Ԓ,9 zys ;Out}}ɊsN.'2!݈a kDI_j aBu ^ kS)U,n@Z3U7  undtI b SN K2 SN K  SN K[s ma>c"Q8 ;> *m6 {TßdL4 $ !Y`@ !"EC"a{0 $#d5#3m)Y"$C2X]%,KUD%c O4&3' BY's[s>[h >[j>( @ -Aߝ[A@J@QM j A!B sA!BYAWz| AWz Ci8 C| F/ E/D?F.b0jFQ HJR`If ^?JaCL $ JaCLJ=kJKrK|~ LLe MNrjjN?{<^P^9ǻRyWaM vSfnq&S2Sfnq& Sfnq& ScBSy[ n TFN-GqQTWlU|VEރm<[Vw RpK W& gY h"Y h [==[== \&j \f9?6N\灳]mOt !^s_nzk_]`]`%x`)%p>aK7wЅ ar#|q"$aTcéfĸa ds3d:f f(jBcf˙G fBFtfBF guSdEh88A3})hx6 'h{u?I kz>UR kblck \FmR=  mjVtoq= "oI rg+}R u6& v{JX;vjVDvav yI~u`8yI~u`?y F`Xy F`z;Rz#vCF7z*zT. szϪV |B|BK}ȮZ}RO! }ROC~Ҧ~C0 ? s;v9 فlBA # فlBA c فkWjف(pق ق\* ,ق\* مA@辬هzFw2هzFw وg8 r و[Ѷ< ى>Oz ى>OzSيRy&qً1Zٌªsٌ'YL ٍ^_ Tٍ2< ِBD* Hiِ`T cّV`/U ْGVْo`M- Xْ3:ٓ!Wy@ٔs=[ٔw ٖ7zkٖDPX ٖV<$ ٗQ{T٘ݖ!DٙQ/ lٜHc͙ ٝRyٝRyR ٝS0oV ٝS0oVh ٟ4&4 j3ٟ4&4 ٟ ٟ ٠:\5b٢]Rr}L\٢]Rr}٣>k i٣ E[C)٣ E[C]٤u`K a٥ ud*٥<3Z\i ٥Mv٦S8TY٦0 ^k٧Szd٧ncG #٨8Ct٨dN@C ٩Z ٩j2U ٪URLK٪>] ٫ V ٫ V?٬";?ٯP e#ٯP ٯPٯ5 1ٱAٱ>pٲ)ٳo)ٴ&Z.Dٵ~ 9ٵhٶ:rٷٷLuٺ}[ ټLAټlM fټB # ٽsh ٽs پZP ٿ/h0xUE<ٿ/h0xUE ٿ/h0xUE ٿ|A X*Itn .v6rQ/6; -IyV $ +}Ѷ i}Ѷ ƣ۸I ]WD-? !'va]18VcYmٹ~㴇>㴇>QF F F R .-9+`-9+`!kϝ"_uϵ'z  Q2ϵ'z  ϵ'z  ϵ'z   ϵ'z  LԹjүP${үPR}Ӓ3 aRӒ3 aYEYE YEKظ%? ظ% bV$Խ ր{K Hl)g*JF?JF? ^ij IN (aMz :-DܯoY;Yzz;Yzz;Yzz|9w+ uQpCpC }> Cy9]໙ u .9ڗ,WԎ'RN8@w!$])]Tӽ 1gRK 1gR1gRd}T5V }T5^kT l0=k ;^U ʗ?-ACx<rPGNB1~m!t(2h|9:V-usb<^4D"T75%:Hkl5bdqI k>? 5GH" f[]{ j M$NYtNj=S &{ a] g g D gt, gY' g l]% l]%  G5&`V ӽW>s 1E  ܢ ]5/t $J~]y&4YQ Q aJ"M| v )j8^W$9 \Df piae9&0:T.ՆKt Iz4" * S (P&f ~DVRG0r5vnju`"h$ , 9GHTƛt g¿N v#!L>*!d)$qe6R$r2ERN %:%Ka &<7G'=, i"(HEH`r([?ak (\KX*K'H? +KtKV,>p,>p ,Q 5/,}W,TmAy8 -D/L .,\ω/. 0`- 1?^L3l1af33e[N 3װ 4n@K50N$5q6(va 8 *?9c-:늇;'X ;+@u'>@u'>@u'A~0Aw-h B6GkLCD fDAJRDAJDS`8 aF3GKA/Fs G}4 iHw[IH$&UHrɀ HrɀjJ$LKKx7:L{˗L{˗Mqmh^ O TsITUm) ,UGnzXPӎ)8XE0dKZeEZZ-, s[ \d^KmL+\d^Km(\d^Km"\d^KmP\Hb\Ht]5Sw] P;]A ]梗/^HaE`B|aWb[ +b[ ew5^j \gWf?gxZ\hEn$@W4i^A5jL jZ k"* lBr l7dOl7dO9mⓆMn xnBT o:w]toG3pK7ZKpdE,OsV6$sV6YsV6sc&>tn! vf}.w|ctkwú`0wú`)wú`wú`wú` yFj"ymzE׈z- U> z'| Vh>? |+"|8|OuLh |Ǖt}=J }B~Eܭ, /NoފA/NoފALAP<]>ڀg cڀՈ!ڂm] ڃU0ڄ # ڄ6!}]zڄ6!}]zRڅ = *. SڅpI )Gڅ~،څ\9Yڅd! sڈ*z4 ډ Px6#$ڊVڊV aڋ_wp ڋFڍD IڍD ,ڍDj ڍ [2N ڎ; ڏ< \ڏolڑU T ڑ4=Rړx-acړD9` tړD9`ړD9`ړA'> ڔ Wڔ Wڕ);l+&ڕ);l+&|ږK3R ڗΨڗ~vژ&vڛ)AڛMg;aڝyBSڞ;g ڞʻZy ڞnڢ,J? ڣ1~ mڣGJ;ڣUS&jڣUS&sڣMʸn (ڤ9&=- \ڤhV/ "ڧ\ή#ڧ\ήd ڧRsR ڬl\Yڬ:\] ڬ?mڭ1{ARڮƍJگN7/گ4yRڰ7-_~ydڲT\Rڴ*} $ڴڶBڷ:;(4ںD@ںD@ ںձ;% ںmKP8O?DںmKP8O ںX$ ڻ2vڼ鋙"9ھ`b<ھjwR0vڿcS lڿy#Z) ,>6 mYQõ~ǻE`3Lxdƺ`t ÜǏ Ӡ \ % %d=1)VU-wᩋ Z/U+m:*^tw1f-3cP d3cP ,3cP s3cPT3cP G3cP03cPs<}}5R*fu *fu NTЈ`#Ј`# ЌNn гU? гU p0=[J}هv\0] Һ 7xNZ\n#Ԝ[wDn% c5R#L4u_H։, ։, ׸ T|cع:RHST FS8HST FZ G͉[!α mv #2ޗn`YfyUd ٚ 39ўR-9ў]l> xUsO>azHPĽZH "gD goC c6c6U) ꕀbIn ꕀbIn$ f4 f4 >I+">I+Xk %_N Gt( - y;v,jK3*JK EQ 4{t4{RGVvNs fl#fl#D^&9 A 5 SfY 1$  #& t c @CV ·ԙXg# }+d <FaFaLԀrp30x0dxɱs k{  /ZP_q39 HBy!jjn' ;q LDq Uba g$E~d s &] [C%H SC%H [ VQG`a l%j Qi !jhEA"&n."[  #hgcQ #hgcK$ܰS $,RL$2W(|%WTk?w@T "U@li 8 @+puAL>υAXMCRAXMCC SqC S/C S%C SEג7[E ,!EhE (FfP]>fQWAQWA_`QWA QWA Rv|S@T>Sf?T X>tTqaqSjoUw^ (bUw^j(Uw^ Uw^ , V.=K Vd=" Vd="VIj(W-\4@ W-\4@tWgIZdóB[܈J9=F"[܈J9=F \Td4 _# ,a谋C]a?b{01; }*Bf:}t4 (~G`U~G`U EfNVշ3;DۀPd< ۀM2ہe cۃ 55 ۅK-- ,!ۅfa}ۇ"( ( ۇ6$لۇjUu ۇ#2^ jۊ|;&O$ۋ_ 7 ۋİ <UیHyvhیHyۍ$_֕ێ1'@. ې%4jے$Ⱥ1ۓt 9ۓY.۔a6x =ەyy9ۖI3" ۖR\ ۗA*D, ۗ*??ۗOۙY0>EۚBpۛؑ+d۝_D !۟O۠w?۠Xr:۠Xr sۢJ,2KԴ ۢS ۢS $ۥeb a ۥkGoۦ_ۨmO7{۩~C ۩~C ۩7sۭLf ۭz,(Zۭz,(ۮ,z ۰X ۰Dަs۱61wv ۲unp= $۳K9Q a۴> ۵_-gĺ4۶;} \۶D~~?۶\-~:۶{۷1;۷1;ۺoۺoۺ4! ۽A&%f ۽o.K_ ۾ivqd ۾?( ۿ?YۿŸ^t'IW< 1=J/$4hŜDב{CS_T \K X3} X3}9ɋ3\L; e0ŌyWJL$yWJLnz/tb tbtbGžJ -[+hu ѭ1rrf rfZ Ҋ  gӣC]? Ӥ{ u&<VV JPJPn1. ?ַ,|a+{;4葑 t٬4 .0'rwuK ۳ܻ7Kp>?IM>] j e?N'xA68B G@uRK phPU ?JE?Rw? \+Ù 襥N@$3W \ 젓sL젓s젓sD젓sZ L$^#c-ܪY1몑/ 5 @J ,dB ( ~ܝx ~ܝx 1Ui_#Ui_Ui_^V^k @yݡj Jv`[B ! N3q?TmtZE *IXZ`PPWUa]W?<ܕC<ܕC VBh1oR~[5“ %Lp] !oNgzKPF(  B  HA"Tv+/ݼ| $<S]NK$ZMHBc  x kc8_ f uA? 2F>G *f Q*fCECbh CECb #ɯA:I8x(} $uK  *l)ի *l)ի $Z#{#U.p [  R7kjXrIk 9O j;*a. | )eC Fa,{7 b୧t? {2 -#!K?" j#Of7# c #F5U S $Zo1X[$Plތ& xO6 "&\J_ 'S1'Si,$(B TkV (Kzv# (]9)lhB)No *J4-+tr +&>+A# +A# ,T|p,T|],T|,T|t,T|;,T|,ݲ8 3- *<Y. 5R[. 5S.:[ /5pSC/8Fy: c/IB0[G'Ju0mc+% W (0;k1{=M`2 nBث20>n l20>n n20>n s2&߻Qv4= c'7^k98OeUE8Ċ0~ (;#37 m=qw{=䳭O w >{;>8/ApGv"ApGjBHdn BHdnBnP 3 (BEV4OK:} $Ef,bjJuy $K`o L^|EREL$ OVrROQnX TKy` U(#-VrΤ$"VBѓSaVBѓSSW"K W"R W"XݵX\˲Z7M[n\\^wC"K\_Y ]IwO]IwO_P~_ l܎}܎%>C ܎%>C m ܎%>C ܎nPK ܏B s܏ A ܐs̷ܐ0zܑWܑWRܑRbaܑ]J4ܑXjs sܒM [7ܓ;w3N} \ܔ' ܕYYc4 sܕPV}@ܖU&^dܘƖӥܘ轫3ܚQa1 SܚQa1ܚQa1 ܚQa1 ܛ&4ܜөF ,#ܜcܝʼdܞ8) ܞܡwjܡ}6 ܡߟ{'ܡt|N ܡޙd0?ܢoRr 5 ܢ}# ܥHܦX)  ܧ9UfD ܨ=I 11Dܫ U;)ܭ:6vK#ܭ:6v \ܯd'=ܯܰC?ܳeز+ܳ~>'jܳ+Oц ܶb-8!ܶpu6U ܶ';[K ܺqȮ-ܻS7zQܻZ/ܼ"3(\Rܼ" lYQܼ" lj+ܼ" l (ܽ][l ܽ26 ܾ>BܿЛGB ܿVa|Kʄ- W" ی`25n]R N"[ nY䱯RInY䱯?nY䱯*nY䱯nY䱯RK &J(oHzTȩ?}] c$)S;Zwme]  IQ?ʛjM;"G bΏ+6cdΏ+6cΏ+6cQΏ+6cΥ7' ϴbϴbώ`YNCJU ^ukFvҔB{9 .܁Z B\maw$:̮Kw$:̮7w$:̮"w$:̮ WaNQE E {`Tl,LQsLQq& ,Cq& (_&] /(bH -١A srϾn/Qy (8y*y3!A?ޢo" ٥[l][ IF^cIF^c 9S(|_9S(*59S( s9S( 9S(тt zdz!( zdz!Y zdz!Q 1I1 XΫ!u1udlv] LN*Wh'S 䳩&1a   +罒[t$罒[j罒[nW0v ڑ#(# ȵ`i9 V9)T fS S fS L2L >SWl (&Wls;Mmf gtU P7?SN& xN& x2bmO( X(ow'̢?P$%P$%:P$% yB( i ]& vlt 'NQ ` ` 23чf;чf; QJ  iSC B_ e4_ؘIwj5B0V^)5 Vlw?$]F -6nǡ#Z 8b 7=D+}"t c}ѳ 4! 3xYQC4"fs6Q 6R6_wr7m=k 7m=kK :Mx9:tmc]<@9J=n1=n1Y>bc??jh ?b@3cIBMAIH <BMAIH mC-$#PC6h[CS$ץCS$ץCf?Dm'bRDވHxDވHR9DވH Gok H'U> Hk; HI:{? jJ/氨KL;~e Kub?MJϤM' Nu {- bO'hXpO!<TOKBP OTnZbP(> QCxQCxQ1@y cR%#uQR7L Szh KCSzh S׏gT.KiT.KisT_/OTtCI TtCI%Ud?sUrى jV[bLXB(/]?XnOX r Y ;dߔ|?eʣq_ 1f<>O&[fk;?gFS(XkgFS(X gyhQ<> &i>#x !ijrRkDgam lHչmmaB qNÅZԹ qNÅZԹ r[YlSs,#=t&r}k t7=ylStLuLЌtAS8 cu ƨg (v4( xIdx7A58 xrmnxe Wz.(Zz7wz7wz7w| }4t)~m@sZ A 1݁ !.t݂ѧ:݂ ۘ j݃51N ݃ʼnp6)݃ʼnp6 ݃ʼnp6݄,Y݄Pȵ݆^(݈'=3E݉$݊Hp݋0 ݋D+c7 ݋el݋Wz݋Wz ݋Wz ݋WzL ݋i1h<݋i1h<R݋#M݋y:"7 ݍ y]ݎ)=ܥ0OhݏVCXvݏ< S ݏ< Sݒ[Yos ݒ[Yos ݓEH $ݔzƻRݗiib? ݗuO)CKݘYjz!L ݙ>ݙP5ݙ?ݙXD ݛ}*ݝksF[ݝV9I ݝŤ^/ ݞsBR"Aݟ%&4ݟ% ݠjEݡiYC f ݡn%Ȼkݡn%Ȼݣ(N=Y ݣ C=ݥ8wx ݥ[Xݦl ݦt+dݦz9  ݧN-Nݨ?S ݩy ݺ@ٽi% ݺFJZ ݺ eݼ^DHKݼ^DH ݼ^DHݽT̾ ݽA銣'ݽA銣'R ݽÕ's|ݽ[ݽCZsvD¸Nd@yi fyi? IJKg/=?P1KŬn|$SQKSQK Ӵ>ƕ#ȸ@ɂiďKɦsKC "R67 = i}bdj̯[ RT ;*vVt -28[h eB׽iNWRb>}K y]" r*'WF;JMtZҵs'? շ".7$8շ".7 v;;7 =#(FRe>$ jb4kD*?M a۸ҵ;)۸ҵ;)s;s =>^`n $ ݊\v;[= 0)C Doa|OKt!?DUߕْs[m2 ] 8d. Wԍ@+ pHqw PK`荵1 %~}BJ60_ JK>lI/{9 Z>7!  ?\.6/? ܐ Ath D>CBfDDR$F DR$F9E2gaPZsE2gaPZFiVb:B[FV^nG.u4 G\H,0?IEZ}Jz8+ JH7pJ8:ҰXJ8:ҰXL,TFvvM*1F MA+m8)O_OPd>f@ PK  Q܊% bTp2{CT‚ TV'jT3 YUx?Y , rZMX\a#AR\ة ] W]M s(J]m` r^ܖ1_#ZY aw bpDcb`RdZW%! Jd뙇1?Md뙇1 \f h7hfdl $ hfdl ah˦TAh˦Tkܛ-n; eafs nI(ck[nI(c o) -pfn7Rr?s99!1LsNL]rI sW|p: s` R? s` R s'}9uNML ( uaҨu`!vVx$O1]xHַxhN@]{-币9|7is|; #|G;%J?}]@" }׾4 ހ5:rSހ8jrGL ނܧ'+ Nނܧ'+ dނ` ބFbc_Uބ^Ө`ކ\wR އWG އq-kވ`ںܪފ# #ތ32uKJތ32uލ~F ގ({0"ގ({0"ގ-bގk/МjޏN|ޏw(ZLޏ{d%{ޏ&Ϸސ)4A ސwcBYޑ? ޑ?tޒSܪ=ޔC7g[ޔCMrޔoo[dޔoo[ޖ~fU ޖ~fU iޖ~fU ޗb)b@|ޘZu.Uޙ{\ޚ~i ޛU\W ޜ2݆"7ޜuK]m; ޜ'}48 ޜ0RQ ,ޜ`{nޝɝ#ޞ8Q!\Hޟɥ >ޟɥkޟɥ|ޟR|ޠ1#ޢ4ۭ (ޢH%ޢH%ޣ~uޣ̪p\ޣI{ޤxY;#9ޤ߯Hޥ0Ĉiަ;sUU)%ަvE ަ~BhX sަّ?tާ s ާ;ީ8" (ީN<:ުwmxm` ^ު܁  ޫ!߷U ެAeĔSެ{2TެBE gެ݃}ެXE=ްݖdJ ޱ+6= ޲0Pӂj޲0Pӂ ,޳2R޳ o<t޳Ps޳Ps޴& ޵8i $޵vz<޵=޶=#޶P% ޶jOv޶W`@ -޶G8f8޶[ CK޹tk/ g ޺2o ޺Xz@޺bSX7 U޻)zHy9޻fyoz?޽@޾H|NI޾H|޾@maV{ jR{ jT1;9؎(;9؎tv\x%‰;T~ c©] wŰ'+űL ƇwKQ Qs~ʌwa 5̌8e!Q' vi) +2΍Omh άLάLdVzߡfdѡ^T Cd s'_ ((3j~ (3j~aJ :qUNoנ|lj i>ס٣Rס٣? 0ijjj  jRL7 c(SOK jќ-MVw• CTF ,?DtlxW lxW.$ $dix ֵ Jم]@ #h2ssCu?~nWnd'PC-SrTF&8u (_T&Ũ dc`Wn+ Z.xLZ.x Z.x xRSPSP e, 3{+=d4^[J<5 o/|nv`SM.?{~}} $ 7 "4@Bkxjˎj<E?D=Gk_|ҵ| ݖU{ݖUYW< [h]kVvE)?i#0s3:9 ~g?s6Us6 \g< r;ݥfIP?W@ v\R~@Vnjl ^xa #|[& #R7# #%]4?%]4 'Cx{ (!mS$)i- )OB{)OB{ ,i^ i -z: i-z: -b6<//2Fet4hšp 4hšps6Lj$0|s$7C2k9*Ɩ;98Hh:w'=q =u%$L=u%3=u%j>rygt>)=aށt%?"l?"l?"lC?"l?"lDA,B GC^!w7KD-n+ \D7u Es1O] Es1OEti sF̻c5F`jFcžIaSaIX iJ־Y0tJa aKOp L9  N +LQKBN 2Ll zM5czhM5czKNsxm@@ aNZL8#O7ctPzS,w+F?UGYWHE.j=XfLXfYXfSY IRZ3$ \C:&\m$\mR\ ] Xs]pM[^&` f^`_:,@?bt`ԧa aMׅi b $0c5yD?cAB< c\;-c\; dA7z dA7z dZ~8 .esa"eC6g?h'ʤJhI Z]hI Z i~?"ILl na9=:?p!*?q<M\v re r=7tn[t𤾑NupJZyu5vj vAN+ vAN+ \wΜ5^w+Oa9LKw+Oa9L w+Oa9L ewQQ|eqwQQ|eqW x$Nx8h9EYxe4!Ssy+F.Nya$!KByQ yzgpQ{)a8{v_>{|x-{8|8̟R"|8̟:|v[(I߀xD1L߀mc ߂1uuH ߂1uuH߃)nȮ ߃DYQ߃ʢ*!b߅.J t ߅.J ߅=w$6K@߅=w$6߆lR ߆%bPD ߆i!m/+߆i!m/N߇ 7%?߈7PDN߉8ˀS1RߋB7Uߍ)蔽OvߎWw ߏjEYߏ6qKjߏ6qK ߏ*Ni]ߒw?laߓ2 ߓPih aߓBa> ߓr} ߔr6sV<Q ߔxzV ;ߕJUEEߕJUE ߗ &ߗX\ߘTWm aߘKp7 ,ߘFQߘr7 ߚ+`ra?ߝE>?ߝYZߞr7N ]ߟ8Έ ߟt8QߠobeAߣ  ߣ10UߣVR| eߣVR|9ߣ_eߤ?'ߦҶ ߨX ~s ߩ ߩR{_@ ߪHV߫= ߫LFL߫LFP߫IhS QS ߫got߭.|ԙ !߭F߮Qw  ߮V߮V ߮V ߮WQ ߯"m=r߯%Iv` ߯0lC"S߯=/߯^ aJ߯^ q߯m|߰F_ e ߰F_ ߰[_߱ }'[߱2 bt߱2 b a߲.ň A߳ Q,߳ ߳ ߳ Kߵ ti`j ߵ{߶r, ߷5V߷ _1 ߷Kሀ߷I9o ߸9aH? ߸2tW߹HZ ߹2δ:  ߺdP&S(ߺdP&S#߼*, q߼Ja߽x!߽SR ߾oq%=XgNQTu D! zu(v;z#n ڑ ^ # % i U&Dj w' Fov SF #   A6>Y =9oѧ2Mn$ ?z86{m )ñ7 "-(K ,Jk.d2;Z]KL -Q2^~,yC -!clWT=D@ w}ϵ*N g f?lhD _a -ՃQF8XE^  Ld -J w !!F= "W#[ _Z$D t$N%N' &v&=Pp&ef Y(C]8)\d̺5) C*-Z]*-܅0%-*5 *t<+}0PNK+}0PN+\t+:qU+:qUK +rB ,n@ \1;K 2R:v3()f  3()f 345}xR5 v15 v195Bڇ i5 5 6vs6fG7@E.s7}2l |27v87v8S7v87f ]'8GwDv 9@BXL;1ĸ=5> łKv>hWP>hWP>ݾ}8 ?W}@`bwb@?AJQZ Av -B41mTdBLEc9BVBL&DcϛjDlrdDoٓGFKwFW6.)FW6.GFy H8HUXJ0]Q KKx+'v KX LW"0.$NIeRH + NxS<hO0Q(KOGݞO8 P@,B - Pq QWJZ[ l Q+ |,R`l~ S5rÖY g WN@|? WN@|jW[k Wͮ3) ^[2[K趪\%OO ,\]P]!4t ^zڏ[ s` Cj)a۩ a۩YcQy ?c`5+sc̻/jd2 djDoVdjDoe{Revje{RevKe@pK. fta6t fv~Ig.t`hihxf ivŊj|NlBmYumAz3Kmh Wne nN tzS vXDwapb xGF2xım y)SzBՁ |IL}+z.?}pr i}pr ~ a~ibo:~ ;aK,B;dB;dB;dB;dL?p0FF&%S` e} Z 1}x,QJ]jsX;Dm`Ӿ9 Cؑ s >-? F39o , 9o9L0 2PN|%/m!T m!T GJ2 9f׋ fl Y=7 rSh4 Sk bG r#[߰)qg% w *@cV *@cVR aU G[ xO #nJ?nJ q):l \ b5 a ;x9L^9O5sci1#% ɜtt#o;SH%zD , S))RNAlLvQ n8>kro]9 ࠭J1 gjG&&P_v9#o? ?dt"c "QME/1Ke$=%0 %eܒNg%eܒeVD ষ$TSਆs[ݚV਽ @ 5ਿB$S )\nN5ʛ6BSH଴߮3~ E D IBiD A(xOSyfC ௭UjW (௰a_ \௰a_AWLA)O] RG  ZcfZcfC#x l a "k(¯ ෣Yro'0 /cϿu /cϿusdzZ^!F#f]sL@$ uM^8=$:s@O  ӘgS ӘgL Әg.< =\ 瓷 瓷 瓷w.((x \ hdusÐ82Ð82 Ð82Qğ|ZǶ "ź䱐 Ym=YmKYmc+JYk$g l } Tʅ` g(jEMY+9 +9 e+9j8yXIήlS% 4m lSdkZ (SdkZh^ˠ ^ˠ Ϫl(={r#ӹZZS憲 Ԕ"jT6>IQ aօL& +֪G@ ֱQ bRm_$شi< j ٽЂ#LSȋ VS\=]#ezf;#ezf;`'Bp#P)YY c^spo tc ߊ ߖ%[Ʒ tƷ +& -6A \Y ^( hr dcܞ ,_ mGwZqe d?B"l?S辖?}f| r\S $ !x VYѾz=˹ # EK5b T;S5Z:.)c{ !GפP'dYH98.> Ia) (R\7/t =  4a' H zw[ ?Z ?Z ?Z Nou v4KC4$R C4$ zslB  hx !5O¦Nd?g?:Im6:2AK"r> N" XN" U+ɸ3MSQoj ]ްS0R}Qp 9V\ !k dDp RDp S\reUҙ+Qj'3:)!6? "r@z$">i#@lN? #cZC #cZCK&3iT(6-U[a*xqg"S +A+[uc9.Y=M s/WI2$K~r2,VY2mӭD3ћKf3ћL 5x\!#5fx 6^70h?7C= 8OU96i~? :V8:W*KG ;2A;# ;P6 E]ftAA纳>jB-o2CJi48p F;I4  IHH IҰ hJhm9JڂwtKE LULULsٻvMÅhSO $yxO:)C3?PMC 8m jQ.=S1Q.=Q1ڲYQ_Fp ,.Q_Fp RUE{+TSD^T.фvDUWǚ+?"UWǚ+V8e1VW׮+ Wt>0 X`$a+X`$Y~W\SS]Pgj]W{t^F= `}uow`}uo `}uo `]I.`]I.b=njcNS[f*efVE i lG>*iJFe j '^ka\/k,Y;k,b lisB lvO e0l>]=, !lI~lI~LlI~Vl8w`n "J?n`Ao o=& V= \ o\MiuJoOAf n p#kNs p< pⱯd q 6vrH ϢsN~#tNt7F t7F (tC|Z1w "e|. */w "e|. $w?_&yWh읇Zyv,XL yϝ sz}RZuz0z0 | zR)O |  ||d2U[ }1v~a9*iR~Rqb ,~ 9L  ݁32<Ԥ>dხ."/蹅 {0ᇡ%Kᇡ%ᇡ% ħdw9':HQH1懯y@1懯yRf csl>sl> ~ :* #݊-V 5n~SYEs}jᖂyLJ ;H^{៻ۗb ៻ۗt8(_d9xzvR?O@^ aᠾX{-\ϼk{-\ϼ8ᡙu+:| &NV Xű mE~?HD = j= sXAbzy᪘ #& ᫾ '|gDOdj ᬠ44/ ᭌCGﺈ3NaJ ᰄV=uGᰇGR tIgթs ?laᲀ_3X_MQ$+n/vᵁL'XS=n/LBu -|krJtr"V1~t_*e X67 `}Ui%@h& W8"8"Οx ,Οx  +a2R Dm?aկ vS"%r n ?a^gQ oZoTTN $ ] ^nj ]-Ѡ>XtAjij X'S] |/o  E ySXk* ySXt 2\ Bi : j7 P)$d % ;!g  J WD$ J W\"ơU:VChoN(!3 3Y$t  ^0Q!ҡoب!Ox[ mb/mb/_mb/#mb/*y/ *y/ ZIU^0B1qNdU4 !5vڟ uTd|4}c!N?b N!N?b !/b t!D˜(";CO#/&tL(9Z;!(Dyk (Dyk(Dyk(; /(;9*mvI,l+Ii{S+0r ,3$,dh /SfF 0@B  0R 1]b\ 2,h9X2,h (2kcajN233;33; 3¸~zt]3¸~z +3¸~z3¸~zs3)҈t 5S83|6q 6܍+7N`7( 8`&MW 8n,8n,s8 : D :/qN6 =G,%T<>09 r?3aee^ #?s @"`9T@PhD AcB!aCgD RܶD&HFG Eb'.EY_SF$7+GM"q GvjHRN ) (=HRN )I}_ IɟѻjIɟѻ?Jy?qz"] K#hBK_!K_!K#]LB,:{M.H$NMsbMDg MmKVwMrA aQIgQIg]QZy R}ig!$R-Ljku?R&}pS8 RbSp # TOgߦTd-fWU_o?UlFMW{0|W W W  W ,Xȏt!( g Xȏt!( |&Xȏt!( Xȏt!(XTk \XTk (YhhZwJQj ZwJQ[LD uzD[|冉[\ [\7՗8];^ 69 a5﹎a5﹎$a5﹎Kah=a]6aV!rDa#q a`UybtXB b|8[cB d" >.Sfkd sfkd if_ gkgU:s ihhikJd i%u=mJjIrٹRj? cjq=zj$Jj$JkTU1j k @WlIga;lIgaRlIgaQm'_W YnF npS!fSn`bڱqoORqӽ?trQhrƩ/_Ys:~;t_JnRt_JnKt_JnSt۟qd~RtJuSE uSE w=t w1Qwr3T+;wr3T+;x?PcxJvi//xaqHT7y2ӡ#9 (iy2ӡ#9|by2ӡ#9h+y2ӡ#9s y2ӡ#9{i{ A0{i{ A 0{i{ A " {HKL{HKJ{HK ~~o `D a<R 2n RO`Nd⁌6kͦ U y@?⃀:  .# co;B i"tj$-&$-&D ∁ÄvN]9 bD ach ,)ach $achr5⌎# ⌎#s H U; c8!$␮d ␵NvK@␵Nv@a~Zd xXHnR╋/*+&{s3m6T3m6 ◡4|`◡4|`T>$ mdO}Y蓵3E ⛐яߓs ,Z] \fPNSs,s,⟣E9 \⠑20`6⡉4 ⡊O;\⡍}⤦ǣ"St v3e ⫚W⬀{F ⬇ IT}n⮵e䆰QTC 5@]]NOrSPKۤ(KC ⹝L0?Q⹝L0 LJރ%dd~n 'Ƣ'Ƣ+zJP> Ya!YaYa YaSSI⿲d=⿻hj% (v+Z [Fu 29 dXQ PPO| aO| s `jl> l>l>HDRcƁ a>@nk ]Es 's_4L xZЊi/Rzgz їЧέT'd:TL ҿW _-08(i̸H> Rz9{_~_ֻfږtQs ږtQs9+fU/mB6n\5TA fj`K9d  B? f3<)! HtS+6CsbD7B'ONDe͝DOc%et#DOc%e@qI #9@qI $tnG \Y˧ QB )+ )+K>^#69tQx& KϾGjs  SO$ 񑾒3ZDAGEE/hiGl#@_n# gf e?YD !MN z >j8RI (q"N& Dî /gP ӧl' )$־ g ~ eu: l P%Bj ,F(qVwm2iK v"@Q Ct?"P?!"Ps f,O Ѳ # I34Ypzt n{` u u nS-d}l/Gw@d EGt s\ك9ͬxR={ o E/t[:U ٧!Sy !e\~ #r|ye]#r|yH$uR!$51R %ie5P|% }&#źd(õuD(=GR(*}|; ',Y܀m \ ,C  /.z)/.z/k01'l2F14 Z=.S 57dR6RsjY 6om #6WP7E4c35 E7E4c35 7W; 7%oV78j/* 8Sr(?9|aR9w;/)v ( ;M4jC;bD =[QP ?>3u+>Ho@ @3?gb@@q3 AFY?cAFY Av5\Bqa5B<5dYPBnyo # E7(*6$F)]7N)GȓL ,I?&/ IsIw ˉL1 n P[k QF  RpqSY]T(c?+T.HPUOzU UuX2 +W-pB Wk_FƾWȭy\DX$XYW$MsY7R iY0XR Y0XRY[ ZWP9ZD:  ZͧObYZψ•?\-\C=]#P?]a []ʑ&dV^Oĺn [^I_mhxaaңR a2qN+ a2qN+ icV[%Zc;5c+?cz czmqtd D'?fWj l fh1Lhy+i[bjD1} kU:tk+~j l4(S N l[BG lcsA m&eɛC nA~;Q r'd tNa u yRvM0?G x$g|y~"}yfRyf {sr {sr m{Gf {) c }IY aS)EZ\ 》bU -“ $̶?;T:Y"+ヂ!~5#vFH0!ㆍL  BE4W@ R kBqX ㇦[2, ;S2S=fB㉷8Z ㉷8ZSė(\~& 1 9G (KInJ jy6S㍩4* #㎯rp ㎻e S9㎻e n㎻e , L~Kr_: gQ'n5hFU~Jq0㓡EE 㔤{[tQ ͮiQRT.cv.㖊ҹ"|h%ի 0g-]-㘖I 㘖I 㘖I8[ʬ @fUoIfu >0s $0s '12t'12j2M& 2\PzZ[㛷u!D %# v *?_@ 9?_@ V~8㟥 ੿ ~zd c Tor/5]*Tor/5 k@X AQ^c$ cI,?׀۟9Y)P d|gq‡/Y[[sLR:osmeme $Fme ({n5-"z 㮻QD1. 㰮&;  ~Q# ʉRm XʉRm RKpu[{y^c*՞/xa)jxa) 㷲NR \ 㷲NRs㸌$LNXtыJ =az"=az" oj-4㹩 @G RMid`qKXSe|㾺G㿍QYV 㿍QYV㿍QYV㿍QYV㿍QYVQǛ,Ǜ,(Ǜ,02- /i ) - x{|sY ՕKtFh 6'R fjoW_h3L _h3R XCq S T'|W|HIf΄Y HIf΄  ?UTfߞ" c-[J[J[JL[J}C5㴣j_w_wXXQP1' q}+@e!o?Ї "tYYR !z ̩LC Cۡ2# ' 5]ZO87Y3{ ָoH?CUVsHKSw2 zAzڏk oG S?) \yݧdLEV`  Tm  :8 vyE 9DL$q "]"S[~M \ stJY+hz,|v $ct@(, XVÀ+3/ 5i*ʖSga=Rga=/>]a+  8)im، m ، mRd&ːZOfcƂ!_ 9Ƃ!_t Ƃ!_ ( ">&|M:NڭU t yDڈ"{ %D6t%lPe &s.8T{'E'`S~$ (DkFuL +(c"7) 2J2*/; h*&xS *&xS- SE*R- SE*R-K -K R-p̕g -p̕g -p̕g -{-vTb.tG!.A.U k.. ..xs /W*Ms 0'/S 0LR1QS*Z42 4|p(94|p(4Nǵ4"&u> .4"&u> %4"&u>4"&u>:5$p' 65$p' 6ŨC}6ŨC 8 ;}Բ $j=+W>PQ&>S- >eqӻ?D#`gS.??t@e|Q3 i@l飀C3]Dm}9pdDLS Fq`e[G^DO< $Gj I9J :9JƁxJ茄hy Lg] L@3(ZM  O2qF?y 2OUH#Os[sP;HRkwS,,"4Sb1@ aSD=TZ.OG \ U@( VTVVlK| VʌX%XpX sY9fTtY9fTY}P`Z ip [ Q \ps3+]ص*?%]ص*]:@yt]>hS ]>hY ]>h_7וaCCTC1buEcD+ ^ e/cY_r4 cY_r dlK&%~hnqhƤh;Q$^ h;Q$^ h:e?"$hp2=h̠7ki*YO iw߁,D jTl5n]] ~n]] ~n]z?n]z$nǔKen` oݰZ1 pT1pStqU rcPrj sZ2 Rtv/ tzej u)Z nvD[%v*X6xUŜ3y;6ɛ ys  ymMyye0zTP~k {}f }S.䀑똃 [䀽g#<LѭZr,r,䃙T5٪"$;|D $;|D , :y | bS9KuE hXZ9YQ 䨣ɭϛPn.A #: : @Q{? GL # ҫ}[ @K7ePaER HΗkL$􃙫`? `rd:5U`j(,s9R?(,s9(,s9(,s9QUtΧMM i zVw#$䴬F{ 䵣ӱq[8PGM#Pb#%e ޼ +br a ;32ߙ W ?XL>DK F y)s;K;PG "P |LYMQ6vǒJj@$oǒJj@RC\_DkB\_Dt \_D*`{ -Ȗ췙Ȗ췙43Z $9luol9>*³OFqt 7{{+h}4M΄Cdοh[? ڊCK H- !ЙkZF?B%wbէ? - է??ў PHdEï&Ӣ)¬" @!Ez @!E9 \i %<R5 3x(w ;NYH 5H bg  $gڻ7BVCzx]CzxcD \5=v6F}c ? 8xZ2&7 ,:  w  (1  (1 $IW l7J -ZU.[xJdN瞁Lb7=?}B52 }q T;vxRT;vxd8T;vxLQZmdAp dApYdAp 2)ûB4)ûBR )ûB[i| \E  <ˁK<ˁC2_| ?V q1yb1ybQ>17| cD2OpQ ;_LU:r3jEOY  /vh nJGV.e_Z ,3z }Z !~ʞ~ʞcwW: Jg aۄ ۄ%f J^j7I0CW-c:>i Ŧ)S8,b0ޕFu+c<t G\& |/YȐ& > '[ ꭁ_ ꭁ_ 4$:=h CL E."  깹d|va0O8@?}b; nA$Ъ&RH Fҝ ]M/S? KD+` k \J44H}K 쟂|5dҩ [TVS Xc6 A A ,% Aj"!ϐV"KT_"KTQ<"KT "KT#%2 h#%2I#%2#%2 #,aͨI#,aͨR #,aͨ #,aͨK#Ym!?9$*)mqC%:RD 4&ɋ R&c}#'FӘ j', i', (3;<t+ >hL,J.,SO$C,SO$,SO$,SO$,s0h.)KvKt.{R-Iv40K; 1-Hl 1-Hl2 5 2 53.zE 3.zE31 4t 4n 4n 4nh 4ns 5%o%k5%o%k7!/7!/ $8|F8OɓQ94 ; sƺ?B?#P_4?004U@ | @!\AA, B0{_]CO/ǁCO/ǁC࿾=>C࿾=R"FD) F"+J~H7e i KVy@KVyK<qK_P|HM 3N7fOA1IWOCʆ\ODžR Q8QXQح" jR @SQ6Q0SQ6%T' TcRT m9Urt sXQe XQe XQe ZMG[ ZMG[  [M%w[b1[b1[b1 \|5lK\|5lP\|5l]'u>M " ]~Mx ]~Mxd:^oSxDa > OSaYv?aCP aO1 b0@k b1BSd;RZsdM #f勇l< =gk[|&gk[|&Cgk[|&Qg,NFg,NFiG(lubNl{=E l{=ElRЛ ,\mh85\D n%ߠPqG<rRŖX? rBrrBrQ sW35 t ӯ?|tTHetY? tY u-szv Av $w~] ix^F y6RRy6RRyN;2 zF{yu>{v }jL ~(~c ~3n?Z^~3n?Z3~3n?Z/ rL ʽ d@=r$償[兕gE iKg df~kRZ $/`5ws9 `5wsY? Vd xu4C.xu4 }O|=LJ劕pk?;ߖW&)GhDGhD匠b:M`. KK厚uy tZ%kZ%k呟gN kgFr 4h _zf,<Brb' r"]e"^ m~mI µ #µ µ (µ 9ȋ;7O ]f  A~JIۨa3D A| "UeAP [)#s/@?5Qx?Y?埨 堩*C$q#D m[N _E1X? р̾ , $ 娧$c0N:1 yw-BQyw-BQ 宓id"ZA&C'ճcK m.? v W嵍2hYw2 #tIA帱7c"xEc xEc i幯 LT$ALT$A 庇 x/ 0ka {Im^弑/4K = !Ef彖5彛`[KmM 忽(3 >x'kbV*v O‚SEK -8j%%˜۞wY mM  i =2ͫUڔ6SFc  bA#ݝKK ގ ޙ&/|ޙ&/ s~ÆtP}-tP}- tP}-|0[ t[CD pxkص. ۝7U ۝7U ]D @$9yNt 9yN bR?@~wj Zi % hHRhH0 [aT gK1eI 4cHdy 󺙱7Æ?! #=3=U=+= =0ϩzM ,x,xQ bƮ0 ^ һPj 0-% 2F@Y "K*>j"K*>j/xDU?? qRG%vN ZgBg'"ɋ@O.xs@O.xj@O.x  oS3D (!@ "=m[9#6K a#g,M%G(2 \'J'.u<'da(xY ϯ(D)0 )uj-*wXQ; -*l$[ +mqY++e\P7+e\P7-= ֐-d ڙ -P'.gu/n+h L/ؼ|y/ؼ|yY0Ch 1Y[ (1ewS2&a2|@6wQ.6Y7q') 9ޖSd:Ug:!W:!W;btq;*b=0kzZ =0kzE >.po >.po>V2@8B7q ?BOy?B:p B:p C? sDT4?Hsu a HІhѭMsl P~-QsEu] Q+aQW+YlR N RŋԿL SK7 S@_KT  U+:oRU/ZW^pDXɖD~XɖDOXɖD XɖDZS[) f [G\ 0!! \Dɢu ]Ɇ1w<^>8^Q_S4-V e_ _ ,``4 7Q `m8`m8`M arsb`pH- Hbc_Q~ UcVmZdYzs_ dqδB f, R g4ѳ8#h^Q- iarIiYaPk9Ph lGdY *lGdYjlI_(dm/`c` $mx#N|? m m mك^KS nLMG n-^CoT[/Zo[:V0p~)ݎkpUmR>p[1 q!D"$ s 7DYs~tO33gd. u)ߍ ux au2خkvGvȾz $vȾz y,q_~2$ \~HvE ~vit^-jF">djF">悞F&7B]Ҡ ]Ҡ H m$ Htdz慖] \慴I2| F>9 ,7_e a 7_ejEO^ \*r (XR$V5e $ wNK=wN&H55t)8C$掑Pb Ǟ'HQ.N <N <+|[ ]q }ݸt ( 摱v % ۪<t|ƻ/ n DZ%" kMa~I)ɦaS敵 ; ʆQ z\%.qR 1[M u?z4}晱VGLH MJ_ 暡*H;hًL L[ 柃RKC8H$C8HC8H栉E$;桩P& 3桽lZ $ϋnȪ (_ЩF o #棦D+椯H |i |R$ We/~P>: Ql ' i[U[[&=|CB'Õ} !# Mai殔Vԋ`qT氓,|" 氹[U[UjĈ汓lo?4bSCIv ղ=YI3%ƿs浵#湘pd{D湵nWF湶6>tsXK8 99:k99:k zk {3m#Z?>3m#Ro};t&*!C y + Ot*OïL3 ^DPzD!E`хZ hŴ 0yD? F@sA\0fhe!Wg0ͽ.Aͽ.A'61 c '61 #rټ6+U=U[Ж' _iVѤ> j<-0d} Oaչ 7Sõ aջ츕- %CM?p$ ע3 i^MQٷqAE"䶤*"䶤*%Yܕ,th=ZRkџNiqu'Hr HrU 7UvFoU!Qu 7v  <. <.G&8] \kY= j9^ #S~ w){lj[ BE i[.d!BFG dMݽ,JN.,JN `Gv iWZsWZ i'1X'1R6'1X'1 ]d#+C{ ae7 J~|CA/CAb]?7 { 8p  cV|~ cV|~ B;#-BL$0@hD)tri:pN|ɺXA6+L6+LX6+LKQ6+LtvkK͛e d a \| ա# \u qNP  J VE, m O& O& b:j b:jU b:j ־ , ?P ,cTVD0cTV+cTV Vb!F!r5Uj)OTs:XWo :XWo_PmLCLllETX QGs::u : l[2 t s9N3^ N3^ 9:pjGt^!tOK^!tOfsزzj!Y~u[~u[$ | ~&]0 wvtN !^l!^ !9!Q#+4C:#+4C#+4C #+4C$xJK$X"%|½ &'V6' g'UL'W7f#(Aɶ&Z(!p/r(!p/r+N j,X8L ,X8 ,Z/--J!--J--J--J --JK00W=΃0ilKj(0ilK0b38R3~A ( 3~A?4R4Z$ 7+P)H 7i_ 17ffmc8, FN80HcD :ycy a:ycy i:ڻaV ;x  lGR5GR5 aH@mMIsIOyNvpINQJzWJv*Jv* Jv*J씅0 J씅0jL )6G#Lc M4 #O$1!;OWJ OklxO+H$ P+ZPl>?N QW|+n QϤKE $R.&R.& # R.& S-UN%N~ V[c? V*4_ WYWyWYWQWYWDWYWWYWKW~ϴF WД'jXc +:Xc +:D Yp\쎽 \֟-t]!dF]4̸WDb]*^!j$]*^!s]*^! ^tWL 1^ ( _f _ǀqS_ǀq _ǀq`@10ۥQ`@10ۥaE.a"IJ bպCc6[>b e",e"gWͤ4gWͤ4gWͤ4Rgkf#?hnM $ h)#E ch~-fk|k=ʗkT $m]X(l mqпm/ S|m/ K(m/ %m/ Qm/ m/ Lo_' p0JyqF"QqF"QQqGqW/r!+e \r.~||rVq irfNr{@s CDs+DRas ts+Rtf7u#htЍ Sv :y( ~GP ;&~9i.E*~YT3 -"mYǞ 災t-sDJ kDҟ7"Mލ 熞U.燧cI)m燧cI) e;燧cI) 爩Yn1Q$|ͣR牒oxQ 牒oxQ Ņ`&Ņ`Qs 狼~rM珃|sWj 瑂ϩ@N&CM~] h9瓫}) W1X ?ֵuֵu$ 疌~bpxz MIac瘌+nO|>s O|>j皃z/a? 皃z/a盝 UgHKv l瞘Ϝ`L ,~`A65p0Pwd:N (N \gjgjtxqiC 碤1 碤1@` z\ٜ]NNٜ]NaN 祋YR8(L EEҮnҮV ҮLҮ aFsGK]@ UHCOYbˋ?窭A;  7Nr 7NrLW/őxvOW/őx $_H1q?˾ct@筿c|Y 箹f ^R 篽=D 簹ZU/簹Z#Hno3Njp1K "_ 紨rݬ//8O d"wv M`gC "綥T=(Kp "%? %?%? ieV- d1Ez |pmz |pm z |pmwL9> B˵0s8E\6 aL^?L^ (2?*OŽG ǐs ǾU; 랒VeQݵ ([Y, !2?il_Y̰Od̰Od`2R csMFOjL|Da|D$|Dcezњ}9YKӷ}\ բտlե# ն? | "1[ױ"H<  <0#Y~ڥڥ)j+EF;L/j db&z ާ,fV0 aU?㕰4SA?澺9Ud'h 'h 1ɋU.! f'T ;>P;>5K,x0 i핣Ƚ $=:mSH żd T@k<P YPR۹3U?<xr;xr   (C@{ ץH? Q1VC yOB| g*. {!f™VFDll ]f-ޣ;d 3 ޣ;d tE k[`Qx > 2 ĝ b pҨ_2@  8 sBP VϿ+VϿ+ , pY51R_;].Oo(@r] "SzfE cK^X [*  UvhJ0Y5v| F9m _Nxy@di9$$LtKtK "d~ t"d~ t "n #xX#xX$7ggN %“\ %|xa?%aY(R%Rtcd&=1?(\\A> )mѪj)؂/")ȳ_Y#)ȳ_ *eլ Q7*eլ D5*eլ _*eլ D+!9j,\1],:*B{,:*B{ ,['R:,ÔT? 05E߷d 0V" \06{ [06{?1'NU #1GCr a3iUs3rQi 5Zd47t\w 47t\wt 4{b4 pm #4 pm a4$2X[ 7j7A 8\@D R:Mt5Ab:T g;5 <;4k <*8<*8Y='-W@1ׂ S @ThL@ThL@ThL@ThL@ThLfCqrC DDVEBEBYFAo!| Gi02dGi0)HACP+HACP(HACPHګOHeYtJ4׻D JKz.L wJ!$ L27y MYicNB?~|Y O2yY O7Ri3} ! Sq3j Sq3jS1 T?U`Vyw*!Vw.KWQ,tX bxX~ XOY荟c Z> jS(Z V[\{/; -^2Ae_ZA, 2bGdqb"8 bSr× *c])L gd B d 7nfY[ f88yeZgfE-gfEgfE ib|i i i iŖ j?ε kF l, t2 l=+oB l}(nnAYj#oheo~LI]oI mo@v o@vSp6WTKqN qg4 D r nsrjn ru~.4er_ nr_ sz -tߗS4tߗS4wVfĔwQ#gJ! watQx xOz x.w y1U> \| u.|4E |o5 }l x">~K㶁H $ 6-)lt耿|esma 聐mKN聣B, b2T<'s肠`H-04(sP U^EJ{4xv腔B\ WЊ !io D+"膂$ 膠  膼38rFL9 |ʔBڐm  } /苉%r %LIfړ) \Fg ( \Fgt莆o h莆o 莆o 莵d f-r-菋GNM?S .oV萍B 萍B?萨g>HRZ [H5v}[H5v%tHx I薧]Ow{O $߼10=%"[i* $[i* ˓ctKg9"((蛎5'u|k 'V[7PURGH 蠉SkxAT? }ΘMV[ {}rp4}rp4褢4bi褹9q?V!@UCV$豋L>$BWgP O&\nJ趯Jt 趯JtZ #(,k/KyJ*D軑@C0軑@C0軑@C0S軑@C0軑@C0輗QP2輥l+)bk_{8u c _{8u  l~ !R)u,դ |eAvuj x  Rr cNop48T-ȞZ 5q6'q6R%q6q6K̘o -T?Y.˕C-{PlAe }mVE ` UO i ! ҒM{;tx| F.s $ w !ךx#؅z&k $؅z&knB m ZAƑ e ~_sߟr ?wz $(T8POswI_B3S9/li= n 81 6. j i9j i9 7 SJT 9T (h:@ *!j?*! ;*! i*! $W!]x  6 emYWҐ|j_=_= nm$} Y3qE w4C (8nR`\ob?-`\obs 䪁`S3jEr01Kq_f#9 \')- !_| rvx-+#o t +#o t <+#o t +#o t yɗ$yɗ#2$KpF>$KpF>$Pi7 %˨ Ehe%˨ Eb %f CqR&7| #&w:hN& (t%] )wXg)phC*7/*7),J#,J#b-A -aU'Z1-aU'Z -aU'Z ,-aU'Z -4.x3rt.x3r..x3r/Yz aN2& c5.ҐQ5;Bv6P@#6P@ 6R&@"81Ƞ;8Á$ 8 \9Rtk 9'SC:^xII" :mחx2:r;01N< >8I]>7 ,@@.Iu @`:rRAT$ZA^-/ l)Bk7k]]_ Bk7k]]D: [DB(-UF̢-t GK{H~z?$J$]K/k7yL0LJZMWڨvMPp@NP鋉 jO&rϹP%w, P%w,9Pe*Ų#R\RXsR[W2 , Rxqh[ SKir (TI2D)U@ VfbaHVy8B eYYf \֚ یX ]Mf ]"o%]VU a]v^އ `sF[ a>. aR-`afs|b bkb bt cY,8 cύ!khd=ȏw dD=-dD=dD=ebmAo0f ʃ1Nf2p_ f!bh <( h))}!S3h^* i Z( kj'kjmczm^_nk( o/aaooÚ8p7nsrs_KsqPft}GQUuÍ uÍ u~Ev S+|/v4 xQPZxVJ r y HyvC>k yvC>k z̲fYz̲f#z̲fz̲f {1 b {r( {At]({(-X!}< ,~u"v #d#dV|)bL $U@ 郻[\p$ 2pz [pz (VD_] 釹 oMlh KfY# {UQ#@++K@++D `?$ET&l "bI{:Y׈K 6ݬAZ 6ݬA闆iXg bCᵼs3b4t阜R ,qO[= Y\/h 陱r  iŻ!K Ż!Q y0 fĢ3GɱE3GɱR3Gɱ鞤[`c9h 4 M 4 ' 4 !z%"NNgK 7 D jc}b AtSHRM$' '@u `ěPBT 4pS4pX %knFN * 1 ? ? ɢ] PP CuY[N j(WU_eq d!GB} ]= a_g= .~TU.~T8ɾDPl,hD ГA )WRea o&>%pcՓ Ը t7Ը 8Ը *l 78 i k>Zd Q ۄ a QM> ,®d&ޅ֥LO}-rXBR2ˇᫎy4th\ qq_V;KsZ-@AՏAf VN6 炓TS -:$}L3}}r#m(Kwu%dwu%j3|-DA i)xx!vn , N1+ "? |T0)Eѩ s7@o%\RԨČŰ9G3uFQ ֪Ʋ0F_jΒ yΈ$yΈyΈ8HM`8HM`xK)0UW`uތuތ ܅Bb83bA2A[U nUtU, 4d mR ZH Aoh?Ju [" ɄU} $e , | ,  "v|?H "v|  "v|  "v| i "v| "v| \ k'-I|-I|!ľY8crt {9]70  }F  VDcxRn3(({ lL|R1 i}u֣]3 g/udt䚍>곯<;jvȄkML  Tg K+Tg b!  "~a "~a "~a FD;f+D i!ӷ( 4 !J0 !7sMq "'#jz "+10 "$}"t??*#t#'2ːjA#+MK#+M%H|%}yt}&V02c>R0t~g0 m1lbWR2']1CR $2[ : 4_q x 4*= 5r\ ,6= 7 M 7 M e7j 7j9|o\K;kx<'x < >Y;0N?,)`?LW7?iMKK?~@Y @?~ҌJ?@YCC}qV C}qVE-۷* F!SʐdFk%e aIN IN J&]o J J3[ߙs Jȸ2nKB{WYK&۟K K&۟ Mz= MP aNqj; OɨOɨ' QNˇQPwQA Q U)rRw SFg/TKz#K " TKz#K U{hUpaN WZ3Z FWZ3Z 1WZ3Z iWZ3Z a]WZ3Z :WZ3Z ,WZ3Z WZ3Z YSކ?YZ [/ c\T5иs^x!< _;Jj_1a `[`|` O\ e\e tИe辡O?f: %Zi9k[i]clRU lc :mG[o7p5#q7̤ş iq;S 0r~ 1t, ur~&Ov Bv BwgR+)[ wuwxsZyd34HyRx/z^-. e{o+8w|i)|C*L`|C*L`~۩ޞwt~kAڻ) sYꃱ(L?%ꃱ(L i:V t9x)fDx@ꈳA`! ꊺU>_! ljwgMr e@J- ipEd} pEd}Z pՌY-yS7)ca6z \ Ϡ(~>_uVx69ꑙ{[ꑙ{[ \M8 cꗒ:C<jjZ%꜄'R3f 8 M=c9 iR R ?}C ,d*!6ꥠe $;Nt/K (y+ FJZ#wꯥ)R p 3`LG $%`LG (h\nu AY 겂R= & Ƌhr(cm bC 9ZAR aU()U("ӓ++{H 귉_!а귴(깗.66*2L8g껇  ' g7 !AE$?l{C9 __p (a__p '__p .__pF|cS ( Z vj ?aM]v{;G:ꄆsL R/ $ WyC a ɊE|i $IvlY)]͕J~ 2=R - ‰Y*hO&ϒGt $Ӌ`j Ӌ`j Ӌ`j1 ? (Ԯ kwZa֓uRؐ! ,׌{+ @G(CIou ڍ&@$ڍ&@ ڍ&@ , ڍ&@j ,` Gq It$d p*ޝ·$b⻌u 3  ( Kx< \߲*70{ %!x cT  sJ~f>N1s;>N1 ^>N1 n^ t #bc/c kW mG\sXAt 䀝 井i a ȫq q բ;B :ԋ. =>h jkTc^Ҕ 3 CiSaCiSRCiS$  + TR  D ;#gUR\ g)"s { HX0 6e =.% 'hNoJtHp2KRНir%[ *; LXbL.% s43A3At et!!et!et! dP*SJn c Ͷ0vPg 5y*x)L)n4( 5gBnO= ~'j[A Cbs 'TN uLj d  PЖ | =Guve_ ULa &D DGjzczc(9(;Ԫ2t8 $ Ԫ2t8 Ԫ2t8 Ԫ2t8 Ԫ2t8 ir "f%宑! xwZx; mlڳ dnu-*ԥ` ιZ[+63%$s""4P?wIws(t` Wo"-`{?"Ο׹y"ػM"ػM"l "l]Y ##\m#c`ҧ #Wբ $QRJ $QRJ 'S (fU (fU a(fU (fU  (fU Q )U4)&U? )Wj*0Uq*n$ *ڂQE-;E?V-RY.bܬ 0DRkF0d 20 s!1 " j2,os+2>>12&!)3J+ds3 5紙S 4h9b54ط8Djz!1 8b8J<TH8b8J<8z4f 9OLM;9e;nA<=^ , =^>a|'> } ?cSS 6?Z_b!@iyʕaA$+ A5Fd AYT-Bd'o% BwmCf DD (DY\Dk-HIRwhI3ňJO{Jr-? J{=>9 Kx9ϧ;Kx9ϧY Kx9ϧLEb6 LEb6-LEb6&La,/La,M敱/O/ Osr ) Oy?OyP= PNdjPNd)RnҶ(_NR[)" ESq*hpSq*hW_5 YՂ S [u~s\X`2\X` ]X¥W i]G$ ^_f a gya R b֌5cN  cf 9cf 9 cw ( cw?c&dg{K g|7$[htZ ^hn9hw)jZ-R jZ-RYj0  j0 jP lqNmFJ m"otJKoN R oS|W5 p$-; qvm1d4qvm13raX CraX raX s֧#H[ sAOpY tE;;Nu).kuXs vȐ+ wn9 x' /[!xF-yH .C?C{qY}v}1O \}1Oj 6Y k9-k9- JW8 zݥrw$냳: b i9넘@ J0MY( UQcVf Z+/sէ"? _5hNzh\ ^sRr 6֓O|mey늟*?M닭5F \'c瑗o <f\d ; ;6Shj = a CQRWC3 `J?W"i k#7b \XAR |뙲xdߖi@UzN?#& #&Y띪o#tYrKJ[ s <RC=  Iԏl Iԏl Iԏl 렏LJa?X9b)CQ`u"  (H RGUJ02D~C\릻M75SͲB맏7 먀F 먀FBNu +.5vz몴v묵5%n@(d=)L ,ˈktο )i 2}W}W/> W!#8gy? gy ++C볹Ec볻EvJ !TIC뵋X"} $붅7,I: 붅7,I:붖 q,4D{YvN7 HY+D HY+%g 븒r (븒rslvVMc(VMc(S@e^: &)뾤lK 뿐 kX 뿐 kX8뿖PەCfFS% lL N $ϋ=|BMaŦ;&'un&H{VV \  \ m͵?@P.A M|J M_'~]N R̮9gaH -ywNQ"2stx}R/7p(n . cxcx nH3 bN# ԆuI k$H[5?Q?9h֨iފ2 ފ2K؏ '{k؟Oݎ л. ({q}y ڇ#X`ۓǜ,[ b܇K ܠle$ܠleٗ ^%|F ފ$5Aފ$5ފ$5Q ފ$5dފ$5ߡJ& XMl-XMl(w{_!H ,{_!H $p1y[gseY[gse 0VJ*& $uo yQ[ΘM a&URȸYX (aZ_RD9Ea| LD/ >F+m sx3E/} ק  *bКMvD~+5yD1*?.\YPXaBvaB ~jyS_f %Yh@_osngɄVH 6 ( G@+!Y5Y !/Y"EwR"EwX "gFR#QO z#R#khJ#khR$UqC %6Y&\ '+1 a'}P$(40nrY*?** * s]2l?F. 2v!/Fs2v!/F3_<]G 3_<]G?63Y= 4]f؅ 4u{eN 5@{ y j5;) s 6]of#7'\ 8?W%28Hs*9$E{_ 9$E{_9'ϋ*9'ϋ (:7)<5e R=<;^ ,=<;^ ( =>> c> & J?n?:[@OEz e.AMG A| (Bŭ' CjID/) DD} D9ܱDEU FrR{G}#GeIOHwMn@gNH0U NJg2sJϻΩ BK겓U Ln=M/?N2`@#P-ah P~KOs)P~KO i R | $$R4JL Rj.n0Rp&{R[vR[v RH. S+pRS qo7$!T=}gT=}YU fRUU VJj4 WS#YX,2 Y]׉qbYVzZcQG\ \ ]N^7_%DaMAa]gUc/O eH ?*m-fI0 (ffhNhvXLkl&%mE'mD;w mrYRncY~ n o78+ pPn qZ1qe3 LuƲs6w.C+FRw.C+Fw.C+F {O|]=v}>:RM  nC&c#j m_sN-/q   &~G%{DU5 `3X#}^?LW$n iVtiVkr|bPr|b *DI1 /7|q[>1oe=Jt,]/#:vc i"z 5iP+u V}UO?Ja_@W`Է:ԷԷw[25dz}DJ{s >S >옙ЄJl̟Ll̟ li@ >y}Z |] 윲GR/ \qj쟒JuN@}UR pes S/$ZY 쥇k(r gc Le*;d|oP_$I^bve= v:YJb Jb ^Fw {쭇O<# $ƞH &$|Y&15? gMZ4&? w%w쵥g<sY!쵥g<sYi^[l]4ʔr}h(=5 "?C`د_ 컷 /) W>T ]x#CYx#.x#Q[^C;[^C?[^C ;™>gK󐣣ŕ1$ŕ1DƊd[OƮɦr# ɦrɦrdtI`RtI`tI`tI`]Fo ( w)\ 5Ag8 0CkS =b4T&Y , ͑mCcH_  cH_ /㴰' $T㴰' &㴰'㴰' 㴰' ,J(KRxRxZRx ѹ~WiYһe @C OR7ԲxNABFĻռĘP ռĘPZQU2 h S $ ״5"2̛܋6.'"#?M)àޞ i%@-6?%@-6 ߰f߽~oDqD&q Y8NcNa @"8/MǍ)bI\ p@"9w|^7)lI $KlI K_:1a|ba!<7ke<7keA5 (fm$8氱I/ $>+TJ|;d4 K8M uWJp =\ $\ hL 횗}j) a DBd 6DBd83DBd DBd DBd mX:ۉ ( siOADOAӷD  | | *HWk^`7e[ h8t< C,DTю8lj{2~ Olj{2~J \nJ+E m e"mjm mN_.t&$9yv#vAk, L([O.1=h .1=sj31/? k:%1 i K.v"{}~ N ۏ:OV c d@ QKA  I4S ndP 3 3O 3V J  4|V 30RqUkTmF! Lr:O[2m&5wU!vN)R$)g?o6C4OU, ( g:$s )Q9| ԂvT5 ԂvT5jKSfRA@S  Uz$E+ c OQXh  vm !U " DZ_#{c%Wz5(l̗U ) ͗,U 2)eW_v)u :P)u :]H)u :)u :)p(&*rXzD+B_ $,x˘- -j-v.%c3xd.Drj;1w?,E S2n#ƊD2g5*bq i5>U5>Uc5>URS5>U62j[6k 8} 8O5 95( 9hN3{ 9dګG 9ӎqyR <A hS<A ha<Ƚhi BĮaBĮTC' Cq݇x $TCq݇x DuWVD}t= EIKEJ$pEsP뤮HpB82I%usIG ALIG ALJZ,LJZ,JZ,J8Zy} Kx MC$' MC$' N dh NT8#NgB O,L^)lO,L^;O,L^%OsN P @ P%TkK2 Q]P:URhmR R힥DbR힥DbU |_WUAf< XGMX`J*X~t?'X~t iY!{o֪BY"kn ( Z;]* [!V[QT\#_ /nt:`ӄA}Y`ӄA}taX bM_"bM_duf Gd?R'd?RtegveMs gwPg:hS h`Ai=ERi_>'is<jkw@% kt~Әtl93lŅ1lŅ1m^#vP o Π?pR/pBbq@uSJ(4ulvu vǪkrRvoPy voPyw$ x`)Z>` )Kg gc 956)p7! xtzTc"cm'[ux]s "VJH?퉌=J6B sCbs ^ s ^ ƃ\.?C퍉*Ay-~y-~KTy6 Ty6 e\~ i=퐙hH$? % %%? ?*]u̿Dt| Ǽ#[Y 7( OT p1 <\O홚Zqs NFb6C 6`>:'6`>[ #훧џ# $흜~ \힅w l  ѳ4^?   c+:ʇqP:lR( K&}:K&}:sI:,I:,jn P]ZLI E4>.? [@# 5:}Z[ WF"Lмd}Jk_prn_prnH?>Vt/M1tt/M1k(߲z߲zK. `b&my (_( ( ~_ c_:*=_:*=_:*=K IhK I2O-YRX 5 ϯ_ f7%f+CþRþ VKrLo ?=;Yq) $fBfRƪ'A *(3*s?K :ǠM=a/?i jaq-"r;&~W cIkb ̺@8NM`<кϺzqmb6?a"[і6+85gi ^Y 31wX Si#Yk+ljW[A, W(jF+j B@!قxB>+ٍ r; ٫?J |ڟi+ڶ٠"Pv mw^[0|~$w^[0|~@Zd )JO "Yi ^݅>69݅>69 K@xt9ޮ"qY ޶~klD޶~klҹE 8 2z(0q)RُV& ㈊}< a㎙Kzv{ۆ5Z:ot*~ 禘A r 禘A:P xPGTJY4Y% bH&uvs [ 썮fc #Ӳ" r[=*Q $: ($:: $: [215 ]av av ?r$vO|$,y8| ߄#iRɉkV ɉk!Bg|58 [ 9@;9@R|*i7p?{p ps7D7Ǽ$6C{ -@Sd ("G# 4L'23tY ٸv9^ ?'# o - az  az s az K] $PA . Q&8 Q&8  9N.d  Mti|*Rz{S=ghS S n 8$S1d/-lOsh<*R,ΑE?w ,,ΑE?w a.'<sC 쏹u  !Bj Pd]3~ n z( # _ϭM_ϭZL*L*;Y 2[n ^!aDls!ۺ7i<"ɶ "# /] "# /]j"# /] # 0c3^ # 0c3^#D܊ #ԥv|'%ujo%u%u&$K'o\P 'q ('q +1B7c"+R5<6+R5<'+R5<,N ,c"8Y9,c"8%,hs[-kV7;-|Yb  /&| /=d i/ӝZ0[0(~ѩʦ?1 ~y$ 2rD3#'ՋS4֪Qzt@4֪Qzb4֪Qz Y5^DD 5OT?634 6׿uP71',d7>+$8Rm9Rgh;YkӔ<#a̋R-> X䤈?>f U ?V@@ @d%s*M@d%s*@³9(B 2 8jBδ&CIXvDJ|D֟ELDRAelEJb [F/EcF2RמGa? H֐H|~[I:4I(3Z JZU&q K!(:K׊9@ vK׊9@ KqOA : Lg\)Mٙx!Mٙx OihrUPTz[RUѱ\?Sfl  UTZU?U[&V$W~`"[W<J X@ $ X_@ Z&[Wj[#s\D' b]J>lj7^"_%UHs_?e _߭_B+&K_}? aDCD%aװaװb)$6S?bKLdmC c n/}c(μ\? fR4fR4GfR44fR4%fR4ghs (hmc9hͷLs)hͷLik o kik o i/Ё iD*)ieT{j vk6ڐ k,ѪQ nb#%Sp>?*p>?*pk-r; ms۾? sM,?t5xm t8BuÔ u'Gux8lx&?Dyô%gy_r%y4.]y(HTz2 l zh {}S@d|z!4|z!4L}|J3[D}JH Pvy@bt o{? 69Jt < lo(Sf`R l[{t l[{ )@3|BS29 ?kYzWE "9 !AjCRw`p5SA–zB y] ]`/ ]`/]`/e`?[ 8y]N R  Ep5 gL mt[1 t[1j t[1 Ig 38 ;5~>Oj }}`G4 ɻ YR}Y -( -( htvh]h )[X pЭK5NF֦jЮ;HaFS ʽ%D6 ((&I (&ILa  ]@   i0Qah85/Ush85/U al#vՇ"TӰ 3> i!+ # ~m )? ~m ) i &7 F iJV`R2V;Ll[Bs} #l[Bs} £y£y £yj=si YR aܩH 8Rȃ**nQHȃ**nȃ**nJiɅ Ʌ ɣfN =*z n_+d̡O 8UXuDBu%#Vg b#Vg h)}  NE&Ki|Ki,5R5 /[߸t߻; IdKB 9 {pj0SЏ6j 䩦s~$䩦s~ GY <#E-k7E-k n)崖'Kv)mM   `NY 诊7iXs  N% xCK?G#*|#* Uy% |% {/XG`R\(>Z wdo`s_o`s_.k-1W>=hqO:*&.vRP*&.vn*&.vS.XBWR } UPŕAU  G,@8K R 6  6s 6 ( . .Y س EbNNhVA, {*^$$l_g vt8*)0m/ ,8E~ k ߘpOKIo%#rm.? aR.%z z 5K %I 'p: yZprpr y  F',? 3L\cs 3L\c!tʙ "#F.R $ "x]"y.?#]"|}1#翺d#X3;0?#+n#V%L$W0j_b c &F* '_|Pw -(~PW(~PW($D(ta g)J)m,i+m+{o M ,NNNaf, zhk,0/F4 /"Y 0 ye!b 0 ye!bs0#X, "1QX23j 2)4p?p^+ a 5[ ɣ9t5[ ɣ9 5[ ɣ9 5ʳ6ҏQ 73fs8s7( b 8cj{9 Bkj7;7T; \y8L>%;v >*?nז>ߍR?&"p`?Pdގ?ƙ8IBEgBC ~K?tCJH@WDeUj5 yUj5 ykUj5 y U'M -U9K WaW;$XBH}qZYB ZݲC [ (\:& g \m}R, \m}R, ]Jn ] iU>I]YzW ]%^:l[K`^:l[_>Pǫ cCTUR d jf~Rd jf~@d jf~d jf~Le8u]eZ\>eZ\L eZ\ fx0gvhbtY^hJamh,U.h5ih5ii1]H?iR5s j,"jJ:?J: (3<a MİOa=+"L=+"$=+"n#=3N' 陵JE; فmjfT  *K5 Q.=2j% ؚ #ﭗȎo  )Oa"wﯬ}P 4`?_ 2ﰭCIaﰺdEWT V WX o\0MjjNQHQH e&Ws&WY ~9a.Qﻢ8ѫx[ fws 3Y)iÿcR ġ"-Cġ"-CŅsŋx[`Hz^RƯ\A ? BŠOt b='ɂ5- *s ˀ,vdp t˳T 6}R?.]. HAM VMS>|_f`d awD) awD)hջ>:؋:؋kNKkNKkNKKfBspͤ wr ڿQ ڿQ8iZ&稸?6Pws5RIcIܴbCh|44)rqݼwly{jtjt NNONN DFɚN eWd'a#sxrww6' Ѥ=~'Hta \UQ \Q Q y, d=1Njػ wKw AF1 C *TY `G<<ۮk"a>, LO 1dh[ (yU5H;L H;L?Fc!nh1 L(U jŗ^ Q5BHr.]NY̨ks gOKw^OKwOKwOKwPY-  .'K}bZ #ϰ2-ϰ2 bЌedKH`)')' \ ̟ o/[8 A  A # ْ- qa N Pys Y >D} >D} ,G CMZ2R"U.6  B;)sׅ$R?+&ވ%'Nh (+`))a[)^J[a)~<),3SX)"Z*3G$!*D U +(RL ,0e ,0e,0e -s.M "/0{}" $?Uޏ]?' ?{vAv d&>ve+GߓL e+Gߓg7hg i7Yg ic|icic jL0j㍾ 1-k$8$kP(kRkZl l Ɍm{ o0o?}ʿoW%ZNo 03 p óhe ( p óhe?q9mԝq9mԝqf+rԒ sI|p sI|p $sG tbrv:?8ad1w*|x)byz:İ y> i-}X5iD ~lŸ%  ~~d~~#!a$[ OYW##_ a _ _ \ Bn  Bn u/4E^64E^6OOk (;!Y=HZ)!Յ*'aH Պ?N ,1^b9vu'.6YNzXRvnC[3 <%3<%3O<%38Q`SH𛩖0Еt( Ɂ nvD=S?&1dv  a %I ()VK_q (K_q K_qt,vi;mh𪱽R =3} ,=3}ss#%" 4%YY4, Κ{ez\٥Z٥\H?\H 𮨨\v_b RC\v_b '\v_b !\v_b Q0 z^7LW[  6 V[+K|Nl . S, 36 #u?wMZ4*X*0o t\ W f<#t7 # QIklSX ij"j"j".R 6~ $~ a ВTВTf*`wabmb ^9m!^mmB:dpmJL(-V؁M0\%VNʂ.PU$ ]&]&j˒pX> Yu\P ̒kt]~ ͧ2j* +3\R΋CT $9"I SŁyy{Բ 8sќrVҖ_#l:y%,%\UoK; K; ΤGEn )mrS {6q ٣! ~?{( W9r=? @ hs?$:ߣtZ9/@R19/@K`c;`c ,No 49* Ǝ4 2@N$♦ql" ㄚ)SAㄚ)X(a"X(a 'ܴ #)(#]!#)(#]YMJݏ2ȫb2ȫbLsS(W1,ɠK7,2m7,2mTmD BgnV ,_:;c_?ָ{<?ָ{Q Md`e 1xDD!qY"qY""nf]|?w8])d])LtiJƎ 1= 9*֞9Cdy!dD̍׹ a , Mx8七FVZNňu + + <'] \yC} W ꧇S15 !sl2slx*TZد iZի (p2Q-X$ -X: V{) pZ<= a'_,#Q !WX/vY }M4aU QhkwY lN߉9 D "RD$:?c-[Q .pFR z, 7%4R nzf nz eBeZ" #/S+ a#/S+?#/S+ #/S+ i#{x[9#O@#O@ $ u +$ u $\"B$d,li $pSs5$pS ,$Ȅ ?,R $ul(U' (U' s)rW *kI + XM,)ԑ,)ԑ ,)ԑ-ܢqt .IAs0Ir Y 1knR 1U2L=;d3Yl LB3&b -4AÈ53s63a66bo$]9 E 9 E:9xuR -9xuRt9xuR (9@k:g ;d\;d\ ,X;d\jX;d\ P;d\;d\ $ ;·Y#U}1>=5}K>31I>31I?<2A8(7fA` B 'N, B隳lSB隳lC)Mjht D2 wDKҕ|?`Eb|Eכ.F ,2F HSP H=N6INy˶kKs KsKދf LMxkۥOĠ'@?OĠ'@ P @0<Q]R90^ Rq.1m%R^+fS'a4EXS T,^ TV!L'a-U.51UW\vXW/! gXRB#YRLuYAAҔp ?YO@D0YO@# Y|+YϹ [tB [t9]6 \m ]2\B];Z@Z]|+PcY^Z-0 _9@e_9@e`~`cb,(? arLCcg/29td\S= :dVF ebJ}'BNe[?2fg{rtfg{r sgVJ4?iZ2h(jM* ҒgvjB(%_jB(%djB(%kX.ijmUeys m׃*?n"4HpMqʧp/\q}qŎ~ sg1 sO +_tet+=u,wQut% $ v|mo$w4Oex+ ?x+ sQy-!> sy-!>zGW ez%U$ d|~GP ~E{{!~E{{{r?񀬟ý  ̆R ̆C[s[[| [ [ bj" =|bL _.F_.!,O!,O [A>= eHU-KMO]f:j~L j~LhG<ahG< ([ uus uus] `W#e?w>ml$:w>ml$3Y g?-|ΩL x2dm/>XU Ċ L稆$7u ֊y%7E : 4 #=  XY\JWSJWSJWSMQa >NR} ]%m $>X%S#ډ$HHu?uv09͉b9͉b? b/{ &e&^tZ qipj qipb" [ $Nh݆_wf IDN1 I 񩩤?%Γs9 ΓsF|aL2P jcCj\ c9f"cd _XGX jX y Ex(pA:í?{22T]px2 y֞(t-{.tW6.#񵈌@Ὣ3[\N DEY 0dVd dVɻAqW =h= c1 a%G[ %G[ iFq}ħEHOQsį@ [cQyV Ə/buƏ/buǶN۬k0RN8q9 u$ Qu$ FdITFdITt t| u9 a-u9 ˃7 c$`< &ͮ4| $;<'΅=Bhι~Ij$ZkZk '#уJbZM (bZMbZM:@DjVbm g Y?@B֣Y y@֣Y y@MٙV : آB']ت V-+ nت V-+ &VfŨ]S VfŨ] ڡǩIqICjqIC9+1dzwNC ȦR$' h $' 6z  v SDyB 夙b`?/s2fť: p0q?0C@[\磇~aڳI*Y3tY3 ֱ_s(ֱ_kC0s;a&ѧwF,+# 쀼,J쀼,J;*p #1 ?mz\sf sf sff ;aH=l=lz%?\e ִDp ִDpִDpVt RkY RkY|ӎ'k[3t[]Ggh,yh C\,o {r+ "kllu1fYsr?¤K@{(B4''u4oі{.u4oі{SΦ,Vf*s0S8ջ `d*@ =vX+F[4qr[.<@n +bR !2;-S r;: c \ +{&9 †Ws 4]k m%;&aIP9s/W *Db̶ީD +vx$ p|3B p`b\I?E )ʙ&Vay+ RÎ~A sv4_ ]$>t vm~bo #R,pL ݂ ,Ht =W I9VCI9VC?)"l?"l "?ckj""zQ "լEN d "]/ #qB$rP$rP'z:L'z:'z:'z:'0=j(N*[ E -M2-M2/huOa /VDS/VDS]0U`@0`hy 0`hy 0`hy0x+q0C_S0ȧ^1`NeX 4$6:r >6XU(A6W 9BG_2E (:#) &#:6H<5B/<5B <: R= (3T=+Q>B>Lx >Lxs>$k ?=&-J?򣨅?j6K9?j6ANc AIQ%$:Bdct BdcCIndDXD aEi kEoNl G|hq HnWHC?PJ/2v J7MKr;Lx5"?O.UOI,TOZ; OZ;O{ƁP #QTkr#Q.%,%HQmy7=tRb=pRPRP RPT$e:@zTfvTUdKU0&ug V`y $V`y V2 XQ: XQtX0tYZLZZB; s[vd= [C;]H8'`f] ^z~8 _HI _3LN}Y _P& Lb9 pbL57NcC uRd U]djځKe׿* U e;84MDe;84M$f*V*fudi݈Zism<x zxǏdx5(c z)?{?{nj6 {ཀȧm?{w# |WDLL|WDLR ~eux~4t~\4㢨J㢨 Dfb n 'St7 Hg솹2r3zU @,SX  X  Hdt RAN$So=]T) I)%򊡶5rr%ZmgL.r X waG UGRP? QVZQDY5;rvu (&C &C*9w̡ +=QK , 򙿳U K ,T't򝦼x N؂.'U pGpGZWY %SrQIX 74]JE K~[ $D@ DŽ DŅ\l'Co^ Wki3 5 Oɛ( c= e"Gg#8& S*g#8& L$g#8& wOw)11 sƔNt xC:; BOeW;/W;L>W;SO$ wt򰫡j 8&oN'XrK7$/=K2%;+þ s-8YhY? Df XDf $FDf 9`/\w#b 堆j* xM -$A$ ,4$ $*bcZUp*bcZ <*@j;Bh9pp |ztJQ͗8ūh ͗8ū ͗8ū|aɶ aɶ[x s3XV g>(OSYQTTymXYpiN nj u\6cvu\6c Ļ' CoJS ,`t%Vjȫ[MX u ,MoF2ʯo q׍Ͳu{ JJT:m mЊ ]МMi:МMi Т{ނ=8 м5d >u^b ,D(6ZtXjf"]ѻ .4 `ٺG8 :nQa ܘ#Q;݂4?ފ)n E?[m^#m^⅍|̤k?Q }LcIF ]a`" ]a`" hj,RTGo.7晴!1]S t1]S o.P [;q}oW aDTv1sk Io eMJY D}sfIT#g \9 to e < JwYg&ȵ&ȵgR&LR&Kkv"  qRRT[P2LIRPJƗ4 MߔhnbջkbջR~d}TwRdwRdK9nǃ!YfD eN 2X  nlY!b*sj z"4 j "4 jR##h z $1(C'`-dޜ*P;]s +ܳZ?,hя` ,JY/T͕|r/e붼R133F 3@-3bv5)㿁6\4&V7Kg8s7w QKc9Ҹy -: n͍y:|U';7OQA (?xq!?{Xc3?{X@Kf %Aj!¦ (D?M&uڭ;E%WsղEβ?DSEβ?DGuvGΐ| jHUK HUK ,I1交J& ,JER% JER% ,Jٛ}+ J#rrKxvq DKxvq DKLfu ("Lfu M/g|1 M7X?N MzO7lO?1 $PƂ a PCPcS QSJRT BU"tRV+L/V+L/$V+L/dVKdHWzާ -Y2R`v8 h`PbV (b&ժJG)>b&ժJG)b&ժJG)c rRdIQdqbҋ*'e8ۓ/mZf<:,? a*g&0i. ##iKftbi]isjiy al`Relt7lv1 nQ)U{n3-f=hn@?s n@?sQn;iRo栜|pZs qѱ/;sl' sl' , s~ s܊," tNCtNvb vȅOy wuDwO7T{x9;|fvz Y {X {Lz cf!sSG8 sN%-{Քd7wJ0 tJ# U Ԯ4Ȃ Ԯ4Ȃj 1hȨNi# sNi#k 󇍦~/ 7\ 0}_MxL0 ):O{ eLO{ eEuCin1 BGKSs^ s^ 0? Fh?PhU[W$󕃙'G󕷧SL d{9%d{9X./[| 0-^mJ}r[ $%\%WiYyhmqU dh$/pEQZK Jw!(t3nŘ!/̫EU A ӚN~i=ޠ\ iїS]R$]j^BxY:"]󦍦d0 ~z5HO SD$jDIbK+Ib? .*5[@]\CkB&8P󬃲󬇉Pe?ߏ8o/Ao/ F'Y e ʾ"qY4%)wMh<󱗟TF|  if}Fv (pY״ ]f cHbnRHbnHbnI04Q*| .`!v]$t ';w:?~O;t 󿠚\~ X=c5SN/  Z -7V þPq2þPqyD~.vt]If i[iS ˼*˼* ˼* "`Psa3rR *;;PfEk, ΆC XC]IWC? Ѝ]Z3&QY~ cӋ;yQӋ;yjKӋ;yb>I\k o> t0Y$XS0Ջg # ՟/ƴլAg *N gJp mK$sK$X-%W3PR).9N %X jbZ.kNP=qD?1"R c~wC9b5?U8f1΅졑?t̕4 cB ")? |v=sd`y̹% o .VCd(iuj4C=By =\P -HѴLHѴHѴSg21,_w,.g l;[E`s:_{H (/X;g| =&HK{ }^ Vw/ QQ 6* Ǻ1; SQu rB; 6JuHp -6JuHp '6JuHp ,r:đ % ahw!'  /ͭhBBU \ S IC q  v4  y:R 5 $F. ">Tl  ,_˘ yk' yk'| N՗ -gU!! p3%A✄<A✄<QA✄<* L z ؖsm XQ2A73. ? ntct@ )#6 e0. l@ 9ijh  %xdu`XY @Sx !O~V!.'"j_ZYp "!U)R "O['"~: .#Zd#JTR&%F nR%F n &o&#D . '%C $'hgI'7{S((|IJU(|IJp(|IJ`(E (Ti/  (^ :(^U(^)ch^ j)|o4)­R*ﱴ ,*`) +Fd{,&7͕ $,*+b,.-Ε7?/ݏ-d/ݏ-0G  , 2y\rs 3 T * 3yP55N$ 5a.bQ (6Au{b7 7 78̹D8$Z=-]8oP-9J4< c94 :;uZ;uu : >;B @AH` BOEBUCn 8D1?l 1Daxx EcBWR F`Q F GVGLG JIWQu JIWQuJopKia33M.e+ MčOCN5Pa5! P~HɗDR XXR0Lfb^R0Lf PR0LfY!R0Lf S6ii;LSe PV!rSӣV-#0 1WA'# ZWMB*B&WMB*B W^J9:Wu7oXvXˀ8 iXG Ye~* ZL%c $ ]hI R_i( ea]m˸ c#2= c#2= d#:dYrN ldYrN d~S fZ9[g;M \i?ۂi@!Ri@!ih%4y"kZb kZnc$ hnc$otG qO2L@rpr=]ktrXC tht y XvnDv@/:z xJq {rԌ{)x[{)x[|l[}mA a 갥u>2{f( ^ 􄮇+􅢦 \ yE̊D Ra8eR.?)`gu [aqQ % x>FmX'+h` =zXFRk2ɸ 7ݒ4 $ sO -S\ =YdB1MNdB1M A$ V {p]{~QK/ b O"Q!D \ŗkDdbwM- 5 U'}& ˈ 2.wXSOzCt"A+/Q[ #Ϳ{ =1ˏ /R^a , O:"j8:e #$1| œL )Ȳi #'Y?϶q:ga+v@ýz ýz ,(fB,ǁZXTm ,-GE;E8%^Lq)q)K4 el asq]9q] =q] 1Y eR8v+G}&+G}Y1YE Û/B*v  Û/B*v:ÛFL8nVPwb2Ċ mj  O\=l9)f,S8<~&,@ 9= 1@F9{Yǁ.IS-? ڪ C # :2fwqNJ:wqNJ# PJ}PJU!PJPJ *ѭEݏ*ѭEݏˬ<3kjix JeKY=BG1RUw)x  DںPEDںP (2h^qR2h^qVϣh !g !g ƵNЃ5>t=sM M ӳvUqo; Խ6f Wj Սn.xe Սn.xejզbl[UYeI $2vg>eNQעkܔx>k%\|bMY^JF7)$S,e<3[ _$.#:ějB m ' iwЮ v="Qsa) nYh8["j;6G곳_׬ N6]atR}PS}P];$tC*П>@>P %ސd %ސ$AN +*i WIѭ =Lt u)ǽNe} -$).QjujD 姍jv姍?!/Oy|} '̏J ,r5(a4@ 2Z&:;NQF :;NQFYiE)κa֢z mz%N c,z k{{Po j2,Ens`cu \E$Le-\xL L- =Q/o[ u6· BBAJ;.8  !_Fa 'A4 Y-vvdBC~%]o$;\5#.hV1b1b,? o?}0 ao?}0qgnR%3 iJ b (8D ,TV  "8f̀]3f̀] (pufTt `r* f!p  k *")ozK("Jv"p S"3/B| "3/B #k#њv?$oL $DeOb%.}V)%.}V)-%P* *%W [&+ 5Fv95hW 5hU5XA654 7<@t 8pl/ 9ؽK:MSΐ ; qWs<::5=4 t=p;/=@sm >naQ{D > ? S@Qb. @Qb.t@f @⯟fQ AMJvY ASZ{P^TA -ACDbΧ4$CDbΧ4 CNCDi@y $EN E-` E-`F3_WFaB}60vF 4j#GڛGڛGڛHϣlz%y H@,5 $)IA>PucIqJU"Kw(A K٩%6b K!/<LaxM%pn_$M9+\ Nj H]?NjdOq*#O%z =O0U OܜW"Qo([P eR#wy+sRwe) Rwe)b#Rwe)j S~B%4Sd;BS<8ST: RST: $ Tp7k UE*_X\ UE*_X\ Unan=Unan=:UKe^t+UKe^sUKe^ U־ V$b9A VpY\ aVH Xzc; %X7Y Y2]8v_ԗ_& c'_C}ܨ i_IFfLN_]e`AԖmv(`nȸ 5bHePd %be=q>E>U%es hUwjnD[ ,jS@b$j[zj伞 Tk{VqVk{VqkF:vFlR1lR ,klR $4lR lR lLlMm^`L n, nWqk nWqs nWq nѥubp;x rc<sʺb$ PsD&mDDzkIVpV!5lhAclhAc#t-2qY2â H2â: 2âY6G(F%@E [~R9t9 7 Og=LI@W Jո# %Y ZH چs؏o#Dhpb spb a Qc" +"S:7S: $-;ck1b!k9p k9p =R *d@ aIpt{8 b$Q.D b$Q. 8 D^tZsP![ $TJ. ] #3<h!H\ Ik$ T6q e T6qT6q|Zva NPR NP[5jw _āKfos Ơ, e=ɔrN 3[v˸u3 O 8}Jd =e?=e?GuVC y&\cӍ.+Yd @HKE $&u [ohhքx4(u #-x4(u d 1^89.`\[Q [1H1Tb 1H1Tb (QӒ[s;Q#Mَ ۢ-QN݈>e?eH< ᫠f<,0g FW (0$v +v:Y+-^D?U txN_ [ز1^jФ0휥qREQ휥qREL#휥qRE휥qRE$u=q{tۥQ tۥzR AE? #`+ԈX[JB:]z&竿aJj]έT}US S3^/R3 ;{nP/U)5/U)5S 5:.`R ϽLuYj\2jrd6=UIKf sBĞTS#V<  #V<tjHQXe$Br.>R L\ L\R S P$)D|o%8Re&?0 Q][K;c ,\c Mij0ӛ\tk \B}ҡ B}ҡR f h3 h3ZN h3 1s7 %7a %7a: >`< ޲vO! /g /g ?:Ch 3uj  e[+VSҀ= #lRR@ =4c"۵j @l Ʒpm:C=^?~tA { i= m_,*|5 P5e"9nh\ #`mk$G` $AیH@ %}BXUvQ%s9_ \ &,s?(+Q(s WgZ(E1KQ(E1KQ (E1K(E1K*@&*E %*SwU+$I:*+$I:*,`ꅴ?2/t 0#s|02C:a04 _ 04 _ 0!1  23eFH2+S3 Q3SEd 4c63*:,63*:7 au7su 8'LV 8?Mt 8[|?9a矿:KLYbs:ގ;ں< TxЎ=2@IX ,A:p/AK]! A؃4C60CC60C60C60 Dp{-LEVd EVd ,Eb{ .Eb{EagED/U (HC[I: H,n~~ \ISTGKJet%J^ K!oLCR]1 )]T#2_A $k a{6c bH8 $c?^@9kc CN- d0~ ey_ "ey_ ^ ey_ ? f|?o]gty@K h/n<iL> smq'. mq'.mbXmQD%tnvÂLngr *nVVrI04'N"rI04'Rr2t3r2t]s}H` tl*"uUeYd !u}?Q#u}? vFXIJw $ x 9脙y^vyD 9 |0=J|l[uO*!t}d+f1D)jݳK 8 ccL? ٶ!XHs c(QfERh,2jh,2jKP?~U3n5 @q1>Y QBy־p `0  ^#  лYֳt #1 gi iC %.U!I-y2ްń_<L ?Px'}RDlRQDlR"DlR]Qb?iHiH\sRUtX!+~0T/nmTVnmTVuƃ"uƃ";f Η?y,!vS = m/WU$ g.@t SeЪE Ayh~H+@|t,8x]898x]8 iDjH(])Jd"_b44 +cx+sbtBUV!b !b mT  8}/!|  +N25PQQPKZ + PKZ mcѫLrU }D%8MJLJEe텹 rG㋋ !"˂ sNgiY@ c. ai[20b 0b .>g)(ܕZ ^U30u2݁e e+PmS0!lgGPN''ES{Wbh~J%9[M 9C SO 'p |ueq ueq? ?mOjg ut@g utR &5 t0<] 0<] fqK C Vč>I𙜬 sXZx<bSx-L[6f Qsp ^F|yBzɲR ɲR pg%}J-rv{-rv+55E Mq E Mq?E Mq inmq"C3 !/R tRu H%rE Ҿ]  Lb2  #* # "X9 4d?= 4d?= *a ?փ cR[1Q "I #R vBt  :1'L)>俶cAb/D+M5L imi . i i<i<K- Y( Y(])\􅺤 g 􅺤 | +ҨҨҨ Y|  LAQ :EŨ sJCsr adE $  V Jl&|ي[Zj!9\P#BG>l#9N #[V: $PL -%{O &Nz&mkRd'U 'Ut(F (}T~[(?ka (Uq)SS2})x#q$* * * *Eu(,4(gD,4(gDb,Q `,y?-Gd1 ʶy 1# 1xh2&*u5D;fEZ5Eci6U֬Z9s>jw ;mJ ;lj?;ߕ 7 jAW(}tAFܜeaB'Xea DU_' ,DU_' D*e G9oPIK))RI_5YmQ;;[;bNR\!!'3\!!' \!!'\6m?~> ]ZBj]ͧK^uJ_Ha?hS a?hLbq# cO~ q<|cO~ q< cIH8e+ Re#fϽ.D =g*k=g*ZW|g9 hR"Lj./ke~l 56x^ mlN1ml5- mrf۠nFQp?n L o'ceAZ?oD2 ep2~#p _x jrOfrɨ6]tswSy?sD܇us*)v"ȯYyL9 yCֵyCֵzV#h{HuZ[ |1t , |+6t`7|+6t`7|+6t`7d |+6t`7| |yV }7LfI- eq':o$"o @3)V[ Ji{ ilCO l>xa>[z,G #'K$ \ $S8?Ƞ^[j[ [ 3|-X_3|-XKm1,n}!/b0rtk  Ҟys-OWpeo%R mY dsn`fPQڐ^GR7 tNk, 7.:7. g[-U 2M!_CR3e$a.)ym 2&rR;!i {=˅W V| "H$fsS s$sue< l-Gz](G ef>F1Mf 0YǟeNL=pJHzMXy 1djR t䐍 ^c OZ V_S V_S~u4n _8A #4y%kJ* &v;+>V 41:>։y_2K)Lx F^: g $]')r ?MD' u Dcf&[qK 4cF W ]f,Ah q $;>rWӏ_0 au-9̱ Lyx iQk NіNі]m iyCUUW o ( >$ӪMv[ ӻa>Ifq4ɶ"JW rMSF'>qCshJ ? O7  ف 0{ʊDčrS v[&Pc }@ }@`Қ+jLkYt*l ݈1+D|Rū |Rū ( |Rūh|Rū|RūAJR=AJS AJ̞t hE˝h6` vu^S bB\|5U/2ڎn cظԡ^Y T]? GJ n $~=SW ChS sRK-$![O ($![ODeGl YYFI;d᭗[߭Pzh|f xy|~: ) HNHHQ HH- giQ93_&CuV g/tOFN?JOFN  >SgH.` a*Mٸ   =]+9 ]+9K Sv z[ 2 l V  dTtAh D3:M>` (M>` 0šfšf>5 IxpL ({4tcKB  Gv ߗSL ߗS ߗS x3Z?tZ?Z? Fod:+  [x  kwC-Cl Y yx\~ 4* :?_q[` AS7R 8W hauMk/auM \k$ 5\k$]Vx!ȄMFGoȄMFGo KX;H 3Hl[Y?5Hl[Y^5 ;q+ROq+Mq+q++GGx t oe \ "~F7"~FS "O\Ԇ%'8D&&AuT&EL>F &]_&: 0D&: 0'`~s'oDs)xS?)[ Qc!*etQ,A5 ,Y |,iji,u4qU-uh0x a 14S=Zh18f1QVX2>ømu 2v;Uk5TiL5Ti6]j]66]j]66;7+6;76M75ʷ$ J 75ʷ$ 75ʷ$ 7=p9 8S8#E8k?;|:dp:dp:G) s;$ ;A$wj ;A$w KP< >Ւ?)-@]JQB aBdmjC5LJkDTs DLP:{dE?FBFBFEؾ g FjkG飼GL#2 Gm YGAsHH c =HWIr?NJm-K YLI8y LA"vL 3M({vjMUYdM[@ Nt&wsO#mKv[Qm7;IoQm7;I RNFRfl_ T*T*S T*LTS1 T6T$T6T UdFU@vޝ+VuX!`^/Xkd m X@mbUY:!qY峡{[vM \N] \N]K]#!e]:T_AZłv_O3a~$8#[b7@-R$bq9q gc˓$HB[? dPE \eP,fv-=)fRYRhS*a7MjMP3Okl6gEl ,mfʒTpmU. mU.nqKo6' io_Gfq&0q&0rj hht"\J[QuCפuoVwATb wYzQCwYzQw?E GxRP/* axq=pݤIxq=pݤ yb/l -zONO| }}~Kc~#:?4m9&4, izǧ a +ܿ$ c>v 4&ֿFY!û늣Z-L ]}hv*/qd'cD=8$^-=8$^)_ݪgV:93 93Ui ?;K s6D_ X+Ih?%J& jHO2l M }r_]et U=q {,\0) ˎ=j<ɻR :|6! G`kSء $rqE=By?Q5+`nK=a_Ue%U _C!‘[ t O)n䝙+ aK+s+t +jTYtDuËLX=k ( fc>)bnR>)bny$!y$ ,iމ-iZAN˥$K/G EN aAKׂE ^sk-k-jf .(S5erSB"]SB" ~\Nej :9 TT T XVVX Fv鿨 V- %>N7 [ gq@F /:|Bvck{f {({f JnGڋd a X "  FY2qj8FY2q?orUzfBBD³5?Sk( r-Rç/7oFjċ_L$Ś] Ś] Ɖ8r -ƭ |> #ǀ_ΌkXǠJY 8ǠJYtȰQd ȶFvȶF;mBʊM& o@ w o@1 o@ ,?5 $<1 j><1 j><1xR4 c'ne i[ g  i[? n< [ C%#? C%#?D ߓB gNv ZhH M  2 e X քN  (_m BW .9}s^tfDHNy2[KG =M>vb))Ò7 q(CZ[MҾx |0!@ L1Pa?YN ̱rtQ +go a sS%YgQ M^4$>47%˓aD%/S &7ͩL (Wrpn(~BmdM*?NS*]ݤ_ ,X> a,cXgs/?xЪY/?xЪ 0*ec0,$m,1]Ju2wJ2^M L>M R?JZ @$PM AM*"A^=/B*q(ߗ 6B\NshCG 7S)CG 7S) t CJS8s C:cUG嚾ĦGd H?AkI:P704JͲfucBK^D&kLb +3MfQ[+5 tR>$j&SvK;d SvK;d 1 ZZ ?]WC9K]WC9]WC9]/Fr"]fb ^w+e0^"/ _ a _ `rKVwb#+z cWwfBEcWwfBX:cWwfBj1cë% d9ߵ!d\uFZh0]U"h0]Uh0]UPhoi!ڧdia$u?iz9j f|j$Ķjkmfk]6 $lnlEtmS xSm<? m-] n'X  n݃Ꝃro rRJ rs6/u@e v$vJw|ϻ0 %y:ez9Kajzܫ9z8|)c{Zv-#{Ht[|;;I_|RN \k|S9v}:}뱌8CD~IeK~`J ~ơ Z^G"0^G" e @I 55 T$ Y  <>ʎ q6 #Q ?9L. -WL  7 o걓tl-:ŰU Zx" bR ϥM4è OG$ 9O+H} K ^f$-%Vz qXQoR 1( #ѪVEž-l5" svb:B?#ڷ(!J9*MD B #$G G * ´ rp);tL ]W?Tsǁϣ9V Y>9 Y>9 Wxv`:cAj~ Q|KIx/R8x,g\ Э608t[0 sձ* r;1H ` oE6Ӵ2GE77ΐDz`}*Lbw4䥯a# r:s+d} vdML<24q?( ?+ZVR%@غ]H+A # sA`ݫc)B<:i|C $)C]RWK C+F[3C+F D-4 D! aE9R - FuaCFI~UH_WL HQC ,H ,]RI+9T۫?IE#; c IDKi-8?+Ki-8 K4KKKL;^svM(>$R N"Z*Q5j+N"Z*Q5 iN"Z*Q5 Os#%rrOKOצ^|Oצ^|Oצ^|R$(Su,\Su,TT wQ T%@vU\e/SU֩$ U3-p"VxUVEUم{V)(WX>L6 [ Y Y?]Yܮ,Ů[9oLa9[SzP_|(ZR `PD`/N&a#/3oPaHF @7R!aZޗ|td^ dwB=jhaѽvlhiV> -ilHOj]n?l,\3YlC clȠ}x;|n cl+]o=o=Yoh<p6\]RtE %ui0| ,u32u]d\v#1}vgxB vrDw+ƫ?xB13 xXimRDxXimR xXimRx9xPjy:#=D ym7h] |:?|Ȓo~_R5` '5` oLe]j yyHvf#)qv =̛+!  U%+ U%+]yJC#^j(. QudjvcKs;Y" ^o} LXm(R|]Q oq05oq05e `ˠ ZļHvHk,fr YjK2V c/ 6R ̃Ũ"ѻP` ZZ_*½p)-:\T/7 1E2Uݽ?yj Uݽ?y?s$ i W/NW ԰0@ de9U3de9C|ߚ He}J.XRXC!wG. 'o[} odU[ v3B,|eO ?u#RB4)8 4ex#®S6 Ķ!>%rZcn;zƟ"wR=6{xG ˣ  ϰѦ/x˥~г4kA2ܑ RJ\ J\ Ԣ<4 Ԣ<4ۓM FZ v2w"_{ 5 aSYnQ|HZ'i7#i7 9U>К] ,Is@eȋ iI1cNW 3S45S45: @y: r@'j %fsY ܆31{TT sܹR]J R]Hqq5 ;Z c s r d`|.fRܑ+LLܑ+L=4t b3Yk?l+ + >U >U R >U  6M ISE顊]ZI~rC֒68H> ,j!;T<3P4h #s WMS&s.AAMVkL¸k K붼 w X% ew=ܦ;Ͳ bR @ bi 7yЦ7.=*7 tF tF}ƽ !@Y~#p@L44 [I d53t^I,- I,-Y^pB͖Pk~|̬4x -k?y j# e~N $9at U^Y %[H( dG'4˖^-Hk; 0qTSG}t ƚ ȡ e7_v +6bw+*?ϙ +~" ,olUd,;!oq-Wl #-klV/&we/SA=H/ c # /)5BW/)5BWR/)5BW0-0T #2 ?3 Y #3 Y 5H+5V\)6"66ľ7x77FQ??? wYt?--@ a@52NDCfr[ iH SjH>Eڊ KiJM3=]N70/GOCٚ)OCٚRQ!LQ; :T W;T;9WIUɵĘ #W9 KXѿ@HvXѿ@H YWCtO]N_]dE{ ].Z ].Z ]ߵ~Ê!"^P0)S"^qN ^u"|^ J $_U7aAic7wT f2Y{v f?flm ~]8m@~*8l lmp2]oryMʥ pzNl ipo rIW% , r櫂qs^Oxs@R@ jt$BuUDEm cvH4V aw37j %w37j x^<PyA K"yA y/_yB {1C}SW ~wB ~wB , 1U VWf1A驽 A{,sA{,pDT7OWԃGv"xoCJ/^B7ic{ FGL \)͉Xcߤ(EɤuVA_?p{)Q #a&I [Nn0| #snn cp^Ҳv p^Ҳv2$_Nw~#/"k$} b/nQ H#.u6q qX.km?ǪFW_ *BK? *BK?  t Κ2.w* 4$ + 4$wLFwLwL wLyH.f^=R$ ,IxR6˱LDjURl c|h!J`?ƅn&GNFYfL ^jv8a0N as6] as6 as6 as6l!^ ށt~ lf!m lf!m lf!m?6V3b s3֌G]^.|$ cEwZ $HcEwZ cEwZ T U? 9 *r]?{Ȧ7dd +M=NPUq $>PUq , PUq /XR O?{G g1(_ s]6 8?2 2K;? a F(S |7q 3UD@*?bMkS p ^*^{tDW<3 (N:O aC^K$Gp8YMq' oȤDoȤK,9 Jx~kÛy}ir>U2Z Ǣ,t3W (Էu=(Էu=Rʎ'z+$Mˠz&zs"Rk]~JvS "X3 CwdwwWRwW0c0-&c0- m4VW m4VWYΔϜ?N &ϰ~=P džޔ~b FC bz85hM/hM/Z#hM/hM/ hM/SеH*TQ׊qҐe= eҐe=;Co"2sS`?  &ك",ك"ك"L۔=Pula``92la``9 ? ? nX}o ޥ \{ x ApU|꘥ # .9.). )s}j䰘yb f@Kf@ BUZ}d,މd,މq  $D%99S ?w= $KJgukKJgut єBsN6m"Q3  \ ytgPT +V3{oQRﴹ N4 a 2\< > l~ $> l~ > l~ > l~> HݣvK7uޔLamH amHR>h f VVS 質:sA7p c`Yۮ \a, i(8bQLlK w׃h]"w׃h tf p R{aY_OY_OuѨ8 uѨ8o T6L:K $S4 nFz j]C ok"QݾvF(*zh&Z vivi ޗ*u9>ʆ " uǹ % 9:V zV| R1 1 b  à_t+Yxű eqo ^مv م0BD2:?t O0j gr  E#nb.kz s.kz ` d޹Z d޹]6{ܾ ]VB_ zzY З}З} 9 V0d ($_)r6%%pvN%pv&%pv'n`(n (nt':9 )mi);q%?+#"# , M '9 1,aLD,E~E,e7Ѓ-Oo -Oo |..wy/.q" /Ct*/CtQ0!K00R 2J}M& 2-,R2uuBS2`/3i g 4,ʂ 5MqNEs 6&&\ٶ a7J|ij^c8 sB "8 sB{8}ACM ( 8L]8L8;BI \;Xi{ 3<j.7DIR>7DI|?]ڬ?m^MM?m^MD?m^MAYUOQAy AyfYB$eE+BZ+Bc CI,ͣ?YD4DZ‘ Fqk FeO5]HvXaCKJH)6Jtx4Y Jl !J'Kt.KT'LBov8 LH*vM%L!L MW215RM%ÎY'M%Îk Mc_N gq&Q \QClR?>DR?> R?>KSN[Vi#TK3\D TK3\DTC䣐Ut38~ iV萱-V萱X₍g|\qVA!^`6 ^`6 ^qga_Ovj _o^rb_o^rL`H'hbD2cDDDd栶csea;}sea;} ifGvfGvfּ{ g6>6K gzQ is j?B/jݒ\Atjݒ\As lȑ an (oW<v p '[cYpgںs$q$҈ jqӺ?rL:T8rθtvm\{t4yubq%>ubq%> v#NKv9 *âwiPN"zx$H;xX DSyۄ+? yG2zx+4z_w?{#"E*%{:}F|1eڟ|Ty i}L  }L ~x ~7i5~7i5[[x (0 8~Y0 y9&[ET k/l_gk/l_ J%JZ Zm%TjHMM . ; O'|;O'|ml Yne{L C6\gv+kO $>|OI8 W!lAssD''@ە ame|Aa&vm2@:?Ѽ[ Ѽ[n>5:ByZ ҕ2 jy2 ~͜ 3 zDt[U v ~ 2(XŶS=J3v PZ ug?,yЅM+FiKj(Mmq| $pxF4^t T%}]:<.FN~g~t< m RI=B.:P8)dnJQ ;V?Ll KR g0mg0mRb ,ňxf9 (>2h4\f-K4bஓZ UEzjeȓ ll ,Opb4&]Y, ڎa, ڎ, ڎ, ڎa'S 'i2'i.'i ,'i J.p Iz.Z;ϻăX ăX JNh Ŝ-~N?&|ʹ ӱ:y -zvր$Ίyo4 ΂ $ g[} // =pn8f$E j{0 a4L ,Rӏ7ӗtu,RԱx=S (i]uJC iف%T $ AB {D]ݑJ< ӟ>ހh ހhZހhL}.2+E]QRߏC{ߠ֎eLߠ֎eߠ֎eRߠ֎eZzߠ֎eSߠ֎eߠ֎eK2 ɯI` $ 09 RZ09 K09 S4s ꠑ*E8 r6n)dr6n) Ao :Q sgV8e:D@|yMv yM +э ^ɩW[2&?jr%Yjr% jr%46 9Y{a N mӉ=k#&]Dx yM+ pK8![5w ёtkd=w b!$Y ,]b!$Y\b!$YU/?~R%Q:4#8Q:4_ #u j((-]FM/ojgk3\` KUj1 KU (# KU KU  aN x R:  R:  E|& Ano. Qv _ƣM _ƣ% R'KNhè  6A ʎ ~؁ %{/?(UU 26Uj",}tKy\|d ] $̜M[+ i 3; ; e6/ zÄfd\$*E̸ DelhDȷ]<nЪrg&5x=U&5x={c2vENx  Řt CKm8 ur"R E !t "fdzc3 #D8 a$*xY%ML(%Ms%K~MK'%? (8}no )4BV*#GI*Hm"+w2 g+!8s+odu,Vڈ.(ɻ4  /ֆg 1N1aXZS 1&fRj2fxŗ$2 2o4 -aq4 , 5 k45 k45m,jb:8\ 8\ ?8 9儋 :k; 0x ;nh <4 = r2 >uK >7 Rs>7 C?"`?8Ei] AeEAeEB<|oD;eΛ7D( 2EL7\`EL7\!5F=rA $FdF D FdF D Fؕ؈G=3Tj߸Y H.Q!H.H|tm IplJ\SI*OL]' )M@"vM̱LvNc/NYd %Orԥ jOrԥ OD|j<?O]~ OϡA` iO,Qj POWQP=]N QF* f:QF*9|QQ6R ?8R ?8 R(B\mm#R(B\mmRR@lSKK1bSl:_S/V-T:ΥT9I U]`"CVĊt c Wo?3X7Yb^ Yߌ=xYߌ=xZP: [ [ ]/Gy|]Ui6_rZ`^M`7fibmlbvPNd &cdf_q i:x;&im+< ja)>Il<l* n.5 -pm`:q}?scĮtT0tT0 t\Ru-^ veH ! y$0Zy$0S|&eTIB|3R |u骻UvmP! im ;ڲ;ڲqh á9/á9/R sy2}5A k2}5A?gEnBv,sJҠ}nr=pbS =pbTfI3fs(I3fs tw+P٧N+ 8`O=(A[ F{'iDGc8m8Rum! N!5 N!5$Sh= }KZKR ) %1>VqY $ dLiR)Pcq Pcq 3s0 3s0 ,N D,{( $ )zEQY, ;( (XD?XVB};C? o]pC8[a;V|1C&>v U=c;xKHMþ1djJCþ1djH $ѥJzt P; KZhJ?'hJ aH\K$on# on#sÇe:DxH°\AYAY AY AYAY ,JjfA<NŹ2?q+Nq+^KjǝCI[Ǽ ԰K ihY[ ihY[D 3^V #c'f~? p>y̸ 0> 4Lrivh#N x R Ϋ|"Ak Ϋ|"AkйHbvܻnO *sMLNPS6fE,U #"cl 2/j҅ ikخȮ*"1HC(ک1L "-r Npv' iܾVɩ:w (Sɩ:w ,ɩ:wzɩ:w{ާX'Q ާX'RF!WO1U`O1U(O1UQ1.Keo mejjZyS匷% \x >ͦ 8E鉞#EYE 1 oTY^3 h+Ouk%fluk%ff=OR _"g$#lJ ^ ,I$]^G[`U ζA7s*E7 X -?,>UYn!bYn!Yn! ,:E Z.9jEY H;/xJܿBʘ (kޭU }:g3sR6 %j$h j$h ,  Xь8a ܸfܸfU`~ XFriMaDz C`^BD!l 4BW@QdN5¥?Ҟ3 I& i 8"k j 5?C 3C C  j$2 Qf e Qf `C?5Ѳk?5Ѳj?5ѲsCˁfDtEĕmsG=_ _ܚ% $_ܚ%V= sV=?Dtc(vd)R ?ˍ SZL;jsdދrH AsB8gj UsQRC\ TmiʓfG߲=d L91R *R,y gb: \ Fy[  bj%  ` !1.~5!ں6G "υFU"#i& #i=F a$^'%l{9 '| ')\(q/(ҟm(ƻ(ƻ )|!.|*,1vJ? ,u5\,u5\,5fųZ,^ ,^ .q5R.+&j2 0\@2ZsQ 3VM1$4pIym 4pIymV4ݨ52:5'T^??5'T^ 5'T^ 5'T^ 6"(PAe 6r= 6I "8YOPxs?t5F@8W(N3[A)r BstCa - C$QC$)C۱8?Emւ<?.Emւ< iHc tH H JaDy< }KƎqE Lq˪s MeX/ZCMhdNwN}#?N-|l'N_<O0D,OtGJP$0vQ6̈NNQmk Qmk 7Qmk 3Qmk QmkjRIWRIWR꼽=LHL T̴4w| T SU" U<2Y P\? Y?о&֓Z]p%!U[|O[Ĉ,)Cs [Mu|L\^ 8'H$\^ 8'H$ \^ 8'H$ \^ 8'H$ ( ]dGm]+:j ]+:? ]Vͱ"^we ^we$ _L50d^S#`N a9D| a=tbH ,fzpiwcfzpiw-f#]tfKV%fL"!^ $fanko;g ydsg2RgE 0gPiB;vj[A= j[A= jeq6S l (l l mjn=ny֊=!ogQZogQZ q t?' tdb \tأeatHdu!t x##x#P x] y޽S zf2?zn;Gt{L~|.gh2 }"pa- ~ʁ; J6 fg8R3G*BS9E$  b5P5PiGS qy@pbzϠ iS08Ҕ?!#Ữ* @" )NHCb-vxvx>rI( ,=ķb@ő@F 2ɍhAWͺ0 Q ӊdJ %6 SDd nVq|b)nUR))nUvƂJn]/F:2n]/F)弗;)弗; CK "M]jĊ+ xEjwIF1zj q98N  Ũf? B%[$ ({\o= #7RW? 8텉MsTբB3k"V:Ro8׽8 %o^ %o^ ]j9]] 4Tvx[9Rx[9m i;O_M`xT& e*D e>j=$KH zN 0Q_}N 3N z[ 1"qYq | 6S q e]rތ9ߡ ތ9ߡ ތ9ߡ%b+B sWarWarjWar v4IT?EGs l |HN8; 1T?2JԗKJ0KgS _ *< , g w/hWN)i[oIj &ſ  ˨4tȦ9̄$ R{ͳ9CXM@{%.}~`~H%(dBP sЎp3ЎpZгyʲ ўqT '`;b'`;" fTv.? է CqBNrsT UGE e6 ݴn@޶D8  ޻fh߹"_ iMĭK~T !YZЍ #j* ꄍ Cꄍ ]*ꄍ $ꄍ ꄍ Z ꄍ  渱N.cB Ar^b &7v] iM  2B \Yu z 3!V Hd \2 $ QDv) )k; c}Z)W c CS)] itCS)]]J?Q4m ?Q4mkXA R5KWQl.>WQl.b-wۆ곾,Z곾,S cc%#<`In=+6N>V;# >T"N?b{ ?ݠ)Y @͝ii @͝iiA1%d}tC'_ Ebr F[p]Fw# F G.NA Gp-2N?I:mPFIHN I|| K L\ժkLP M_]ă M_]ă NY8O(4!PzƀYPjQ^r(RS> vR9XD?SS}v~T \QU=<"j8 Zj$8\!PZj$8\D5Zj$8\[Y0xx[Y0xx[j N\r{\rQ%\r\rD \r ]L ^w2" _s˂_ 3#_ј mb] "b? m+dX^ f]6ltf]6ls h /f#hhsKM_i5IZ i5IZicx/i$} "i^Ri0 j?&ӓ lʋdkNClʋdkQmK1]N- mb{mb{ mb{ o0ycp}S!p}Sp#Ŏ9rmukKtrmukK ssDXb_? sǗ[t^Oz: u- ~uH auSsx(_ x6>}%y]LEU1y]LEU1 z)tvj| zyTmruzX,zX, $ {PC *~JP s( Z"0woF 9t vJ\ $ vJ\! |߯lA8!*; 6c] 9X^5 " !_B;UU KH3A $ډj G5<κ5 s- -sGh cBt  1D'Y'9Ix c͙ Kic͙ !c͙ Q {P OA[8/;*O1Q ,??,#qB2D9B2D B2D ww*Qze\"L<U|l|l ia| dR Wzz Q3<Q3< $qh?HοX/>@ԠDRT . 煇+$? 9 < O—ev@s°#N%H"?A%H"^rӘMd ǁʠ*SCi&),^Q̬RҠ|;3Z ;3 ͌ `aJʢA } | ,&} |j! ГH 9 C? aѮPڙ sH˖]4L5@a~)S c f #"[Y J@ֶb_(RԶ Ք . 0IU *rOk#KQ#KQ 1'a ֬R:=zY:: z0 01 ܀ E \ew}[r$<hwORz1YH@䦃s H@䦃 f0> J衶ğqS5F/!F/i{C a0  PxDu% r>S,{Rj$b] ~ CEav ګ۫RI9 (oBK xe[R L #ӝרy*,]K >K)<d )< [%1UY=+݀}|Mt}|Mk š_ š_ ˾_:#?˾_:#޵EA i M8R7WB%{$i[M +CD^W^W]scid-4.3.0.cvs20120311/books/Elo2400.bin0000644000175000017500001140714011727223077016302 0ustar oliveroliver9C39HutXHuHu "ʺb j_u+ 4,C4,Ct4,C i:oCnN,ZnN,ZKdNkM P#ZUX?fBfBK4֪S e  oS⠐ZU X :x Jߣ 2yn 2ynQleD <5R -x ΩP*z $0֮ ! YFR3 ”vR ”vbQ Eh $l/fȫq Cr $V϶V϶' 4' 4otV a!$9NJ9>{A:Ss:?X\xNX\xN m X\xN !QS!QR!Q? Mz|a, O, O8@!]!] n݋ ^< ^<j^<]Z! L6l >yV6~"Yû(û(/%1;"ym@W Gym@W ym@W ym@Wv(SR  bDx Dxt(( (kQDkQc g c  lC lj/ lt% l ( l ls!;gݐI!;gݐ!;gݐ!$~ "ʈ.H#Ї a$|$R$|$&:TÙN',Z}zc'tRn '>L +(In?(WF $(Wd)Ȫ3s)Ȫ3t)⼏Q )⼏Q*m! *m!*҅ˣ*՗(o?+ ,,|Y ,-& )-󧚼{Y.f (Yv#.f (Y ( .f (Yj.xJVR .xJVR .xJVR ._O0 }D a1>^D u1>^D u $2@!!3{HU3D 3mx5#3{5]OK5a (5黨G 6{eά7NR7NR7}[U[27}[U[9_Frh 9_Fr9_Fr9_Fr?9ڡ-U :k] (:{  :{ :{ ; ,;Tf`:zjz;Tf`:ztB;Tf`:z (;/ <.h6 <.h6 <<<ɑIK=h,(=h,>T7#K? Kf? Kf?I"5A=GxA]uJ6_ABg]? j Bg]? BGD$BGD$D0'{O D0'{O -D(4jE)FE[ FI8uvG! bIe'H?Jw{ReJsgWLVLYwNLYwLAlLAlLAl]LAlMU3P N6m+YsN[4N[O/ \PK?yJaP3 $SĞ7A $Tܛ?UH$fRUJY\VlARW2D$X@W2D$X@RXXMRX(r7jX(r7?Zt *Z4:ZyiBZwL`v[6cP[IG?[IG[x8 i]5E4d>]5E4d>L^ܔYrp^ܔYrp^ܔYrp i^䬬[_0vuCF_0vuCs_0vuC _0vuC i _0vuC _<#U _]H5: ` a5b@Amb_( b'-cyϊ&jhc-<Zcy sdF(E ec8<e|e|?fP?!afP?!fnU eg⎟Dpg⎟hg⎟jQg⎟Rg⎟g⎟h h>K aIjuWjGAkj.D?jcJ@klȒQvkdBEk8|=dkӢV" kltljE,n\Pj niVzY n;cn;co" +!o(96_Co@o+Fp-Q pV $- pBt: pCqeVEqeV? r `r\"hsOy5 sаsZtt}齫't u}}jhu^5ew *wjV( x4?x9_??yeD y}hFKye5zP22YzP22kzP22 #zP22zBh zBh {0JZb{0JZ {0JZY}f ,}f (}f}f ^~TiretXȳո$3tnո$3 ո$3 ո$3 *`9> c*`9> #ryX9V"aW5? iz'|Ry?   ?05j 6` +CiM!B7iM!B iM!BiM!BsA[$1L[$1S [$1;(G kGlq;L 9A%::i7ge'Rq^!~7`vn j*A AtA ouńf ,cJ IcJjcJRcJ ,q+qDB' , DB' H g0R,ErbrbR?U ?U?U q7=N0&! sH} ^sH} Ŧ@ ԻM47 th=J8 2&S91d$M91d$M}|K)}|K)Y }|K)Q<Rvi]  %y1 eEjeEeEtZ?hPÌj(B .ӳH!ӳH! i EiA]EiAٗ "* @tS\ \ Vx E*cuBg>$w?$w i$w 7 $7 (7|7s7 7R7|v ?GM7is-(?,-( -( iI8NU \SyȪvDPs\DPK,K,QY1?]hp,/?:p|ϥp|ϥV@?V@;V@ Lɯ@ $~R+zO1R+zO1[+zO1r etv2 J:~D &  5>V[?wb/ JKJKQ JKU( U( 9 $^S!D0M_N-5u.{5u.C)seJ$9_YfJ.I J.I|_q$/2\ MBiizR ǥ{n: <)9 icCtRv.lk.}.}Q.}K.}ޱ?s O,DdwO,DdR!^^6dq\jΪ"]K aΪ"]Ks}4s}4Rs}4L%s}4 s}4s}4Z6x#6x#R6x#j,FN1N1 wlj5wl (wlwl iwl|wl wls2 8RӦȃӦȃat)U,WAlU,WAls¨32e]ke]ke]kKo Ie8[C $e8[CsDe8[C e8[Che8[Cj e8[C tB" 3K?3K *C aq*C Li*C Z*C {q V`-Z=Ey0c wz}' ,wz}'wz}'jK j8b& ¸ cMG*|MG*sޠ/n. (9n. |n. n.  i2$ 5cc ! wW:'`:ݲ0)& sK\& sK\&sv G!co[r ,Oc?W EW EW Eg!xRǺ7\~Rp+YHp+U=tBv (> j 6p" c6p" c c1?E QQ/IR?/u\sTa\sTaQd6c - }3mZaSRZ4ap7Y$p7Ydp7Yg@|24Ӷ (Ӷ Ӷ $/diDd_  >L:Yt>L:Y g/Kl8s9tzQF Fx v,Fx va@Uvt AT  _| (:QV`KP8K@!r:3;}iM >g_?Ag_g_9Zځ `I U j  [^u*ɹ/a[m# lA a Q2Ms |Y =з'8 =з'8? `'v_  vnO  vnOZ  R+O: R+O> R+O ܞïL ܞïS ܞï ۻL0 <7R tiO , tiO tiO ~PW͉I [q! i[q!|*jՐD$ ՐD$-Aއ!-Aއ-Aއ QM:o Mv8?fh8?fh 7]ь/LĆ̍ D/LĆ̍j,/LĆ̍s/LĆ̍X(tP*ōt -# @bwCb+Grt!3wk?w&WWαa R:S~ Ϗ << 2! 2\h)mj 厦W ? $m'[?juX iz#1?!?>s!s1ݪ \!s1ݪ!51"ݻQ"ݻQL#T ^#Ah#S#S$#/G$#/G$[N$hqlTj%, &2 &= , &= K&=0&= &= &= $'K<  m'jY(:+) ? a)H0*! +)+!{]+|5 kp c+ucݓ+ucݓa,Cr;! *-jR.0 u.L /X׸0ER6# s1%+t ,1%+t1o1o1(_U L1R Y2[H3in 4';=>s5UQR5UQ6B: (6B:6pu 6pu 7IPؘ8$4?v9?OL9B,}t 9E"A"9E"A";*} B8j>`T>]IJ @xE @xE@oA|RFQf !A|RFQf B)ZBB,'j@B8CbvB^Nn3BRא jCµDPsp DPspsDPspYDPsptEPT0I?E*KcH. (cO]f_!كbgp.hZiBVM -iH1iH1 iH1iH1i]ݴ  j;D7ɔkAye1kAye1 mk l}5Sl^1REl^1`l^1mAI|mphp[n}%n}o{y4sjoK2 oK2?pz%vpQYq [U qPr!7b`(ireTu2Ks" Nssr tJU%Nv9?L ,w`0kw{wbr[Tx ŝx?*s y!7,'ey[LLh9|qZ}1) }1):} M}Bљ )~;F$~܍ 4Vc} eJ/^P%ؙ%ؙd/bRd/b iQ -7%7%7%*7%R7%fڃ ao:SO@IjL|pt-vZmV:p6^?V:p6^grS grStgrSj H^.$?:i vYa LD SIN6ͺSvݨL! z=M +Sy a u KkZ_-lD@L-lD@dO) Sᐇ ( MoaqZ۞r ,&33@jot~q?.)h caOR aOR aOR)5D )5D=8-jRˑS(ˑd(ˑˑˑ/+!/+!j.Sdv.SdvC:؍$)PJ߸;dak4k4Qylg4rSQ rE 2m؏m؏ ,m؏ŊmŊmŊmŊm]ŊmYw_BONh ;? ҵՌ ҵՌ2ja4!I {W< {W< DC\?'};<+o<;Ivo!+j"vo!+ ,# ,#> , > ,Rпy &}#a+OiM~|쐄KtU #tҢctҢca}(5 Mᣀᣀ3j3 (A` V ):Yoޑmf LfhZ& 3 ^}Y -Y- W] 2Y- W] Y- W] R{f iNY#KK+iNY#KPY E7?Y E7Y E7s# Hu?} S GHJLGHJkJޡU n6sN+  + + ?-jS2n62n6c Nok4r\UN ƸUP9 ʹf .? dqOljpduHhm aB9kU~~ԓQu`Bԣ&z5AZnyS֬3/]@  7 7. (ZKR DL̰IS DL̰Iٜ>hc |ٜ>hc gچ:s.3s3k3 (rO rO?ۍn %6n$?6n$86n$ ܪ#$@$Ԣr6V $ R|R| R|YIˆZN,M=d*b Wt>ⰽbpsXbߏ.acxP  r r򧌜 ,.Ӥ<\h0%Z6[#0%Z6[0%Z6[;lC~O 䗮W97< g* $ pRؿ - hN裷 -6<4-6<Y-6< -6<S;9ɕ 7S;9ɕ j"緶ש $#"9084R?G/b~: G/b~: ge{ L)V#]-C %H+[05% aj!#WuE^ qG JDxusJDxu sVPm sPmsPmjl*X:PxMFLxMFLQRQRQ[7*a$D18?KZHS }> c0i]·srKKgtbٿ#D┶5j┶5j at{9'RN%{9RN%{Q Qh|J}4F}c7aqie  ޳Q GPPٞ  GPPٞ  I(l sʃ< TPbҹ| m6 $W ǀ*,/)mx  qĤ&DNRPaw w zJE zJE tQBi )r⽏.Q!r$ϱ)RZϱ)L7R}<ٔ r7ï[Y9h lk ۱qZ?۱qZ (0kU QGS 8٭fK6w0AR Y~9)"m|<R%<K ׾ѹt׾ѹ ׾ѹ iG ?kejb!Q $!Q ,!%< !%<Y #ĶN ##f $L_o%Bo&ݭp'EÞ-e2(fJ?)zcj*"ΐ*jQ*PGC)*PGC *PGC **v8 m+D<8X]+bI@kR+e+{ +;/q +;/q m+cy?+cy i,S ,@rȞk,""?0ˎ; [F 0ˎ; [F0ˎ; [Fs0ˎ; [F ,2P@r3+OK31g4ky'< \51|BkD 53C8 5\f!t7ú7nG 8ϝ{^ ?87Bv9eHwj:  a:?v ^:H|K:H|K ,:GJDc  ='F]Z= mUN= mU>P0>ej>e >e r>Ӯ ?D6!h?D6!h?z?M@_?tsf @_?tsf@_?tsfA&(p (A+.k cBqR yL BuL8 -ByC]Uot&DI aDItDI DaβEw*EwEwGA7 ,*Ihqr I-?IrFJ1ocNJyJ]EX?5J]EX KL KqBfD \ K9C?K9C $L)NSL)NL+tMg MgMgO{WFlAAO{WFlAR3KR} REuR򱳀R򱳀R򱳀 SޜKUloj Ulo UlosVҭ|=Vҭ|jVҭ|Vҭ| iVҭ|sWRFf^# WRFf^#WRFf^# MWRFf^#tWRFf^#WRFf^#WV}zWV}zXE8| #Xy}H mXmq$X1 X'mEZmoWP-?[JHt[(rm[N. [N. $[N. [N. [N.j[N.s\7*nq3\7*nq3\l\zP \zPt]8! #^?_sbR`O 4 abY9%tc#S˺ ecƾcƾDc~e=F3 e=F3eOKeOUfM*g nh+8YhVhVhVi8dD8i8dD0i8dDi8dDR i8dDi퟉%j21,k1k7pMT lg{˛ m3]L mRU.YmzC-Jsmr?5| mr?5|jmr?5|n4c$ nN.nOdih nShfpn=? pF#1X[qg2q*hq*sq.q mrr'?s.w{&[sNs+3 (tPjtKdNu u&TBuRuhF8|u5 g vGrjkvGrj $yvayvaz7~C(z7~Qz7~z7~ z7~z7~{_=N{_= {_=| s| | | \~A~A ~A8~Atki-1 -19G%9G%9G% Ł-Ł- ؛oZ.A} i}m$AնYvg\yQ&g\y}d_\x_\C_\Qs_\3_\-j05K -j05@γ:.OYgSt7YgS YgS }M}MZyNSy2bmr;Kh S6J4 S6J4 i a't-_MOD'5R <==<= E|%j E|% , E|%LW\?&16?d@ &16?d@ &16?d@+9tNQvqxkTe{KIw IwDZ͞KC?Z͞KC ,Z͞KC $Z͞KChޢYf m jRжжжK6Ct 6C R #R rR R SxqD s@-o ?[LWsy#˘ +x-O&5#5$53~ +ʍ S . 'B$ 'B$Y 'O'O'Oȫ"IAs]_jd&YpMEY&YpME2llTT.9ܑc\ s?ɽ^S?ɽ^Ki|= PǃǃNX+vX+o ! !|*k1 HwDL6U$h;_h]h;_ Dh;_ g"h;_s h;_ h;_ |D&o tR_l*m^*n.jt nѥP'߬cNd5 cNd5OU .sjOc Oc#.u m| m m  mlO$(lO T= \T= 5)N>5)N5)Nh2} # rO DK D  D;LB $';LB s;LB|;LB g##F# #] ZͪvyX ( ՁCl ҄zN"Ӳ1ܦ!ɂw  WI ]WIMq4f̅s< f?]0%#IVmIFm mIFm%Rh q},vq},vq},vKL4ȣL  ,=TGF0oA uM-:;whH6g ,箬y%[ g 51 1N:YN:t17K4⫴dbbYbbYbbY뎻%U ʿZQ' +% %Q|?YX. ,S .G |+ ,nFL[[N2 m[[N2v4sitN D:"w=5KWD"7vR7vR? z   T? \ 9[jvThT_o9gKCχgAL A -s F0 #|Kq $MMtez"' g( d̒G$LY D@ZD@vD@H[{ H[{?H[{s6V_UW/7SJoRM.?CWB dǟ÷ b59L> .CT^N   j2ųxZxK $sR  k4  M S -g2C N -g2C?+ -g2C a -g2C  12Qk2p 3V^j3b!#3G;a3.]g3.]gy3.]ga4] 4]4]4& 5q@ 5q@ 5䉫R5 @S 6!s]X?6!s]X a6zw6MQl 6.." a7TNv7TNvN 7TNv 8~D[8h $8h 8h ,p8h 9y= i:ɪr ):ɪr? :7V^^<3 j <3 ? |H ?&{ @Wa8^c,@Wa8^cR@Wa8^c@{~b 0@{~b @{~b cB('hBqB#xV CcP ClcVXvCi|eaC\UD_mMDŶ1 DŶ1jEGm0Ln?E_/9X&:|)?*X&:|) iX&:|)sXv{@j YLimLYLimZ[|Lt[|L s[@ZSb!\}'$ \}'$\}'$ \Gc]I,_c]I,_!]I,_^%;p^%;p_X`V:`Gv] #`Gv]`9R `~K`~R`~Q`~buPqscm.du|j du|j eKKT3} fhZ fW :j fW :f?a2 f?a2gtoYgto$gtoDg 1$@sg 1$@h9bghRiI#LiX Sj3U&Ӏ !jcrC<k TRk T k T ik Tl'rהlB!`SlJMm'ވvmuIotmuIo (3muIo n n;XoiX6o|EN ioFaoownownp<Y=pT}zPpl i q%9 q6&qY0KqY0rd,0Ard,0ADrc!s2崂 i sanIVt:ζ,ta ta ta itQ{ltQ{l?vg=ϑv8t?\wUwsws]wswsQwgyΜZwgyΜYwgyΜxMXvxs;KZ z.'s{ . v{>auq?|9!}W>kZ}W>k~ Zؒ ~ Zؒj;K;-i'l̚ |l̚ |Z?P`_s _ _j54AFq;{ I ;{ _܂ aj]Dv UH k aDu ,aDu %aDu KaDu #aDu uaDu iaDu 4aDu a%aDu ( j/K j/KL2j& ( 2j& 2j& 2j& Sc1acpIfSdpIfLǀf xN9@3) $9OWv $| ,$|$|qnQ #=ϸ=ϸ4L?{ >N>Ϥ j <j+W4Oj+W4O+W4Odn\j n\t n\ i18(:7NRVbEm `s?`sv,,Ηj <[4jS3\ cB_o ,gnXug 1( <<<].*E[bԼE[bԼg.mA)"^tQų.A ?Ës-0X ca. 'a. a.R l+;a $!RLJS;?;) 5;)s;)t;)pR7[_<_<Y |}/L  Mj4:w $G:w ^>:w ,:w :w (:wQ$[p9p9&= 1o7 ߧ #1o7 ߧ WW fG!-k3z+ ,mqԪsr٩?+3z>02>0%ܞN+ xR nLWIh|tV?]e]b? T0Ytv qOAYqOAqOA qOA 1< 1<SWH@ WH@ K?R 숕J%R 숕JR 숕Jge]  ~g~g)#`!sPO~| '0LmvYNėgS.(($[2nԨ +hPRI >)HB Zo I*OKOG zH)o; `"z $΄ yK΄ yQ΄ y`О;2bvЩRNtR(ЩRNt*L|d{S` #$S` #DҭS/Q ڪP` "p``\+C `\+`\+41,6XS c:ŋ_A:ŋ_0G??M1DM1DM1D0Ķ;׊E;Kf ? f af s  KڄځvB% ڄځvBSKH2E.H2ELH2E H2E)jֆY_]1? g"W: g"W:jg"W:ݝЧE?76̔sQs Bi' eSsSvt0L >q(m:Aj? 3Œߠc!YiY-Ki *d#h#h#hHՖDN5HՖDQ3HՖDHՖDY0HՖD:Jz? #gar *yk}xQ!QQQ _>5N5(5R 5~?S$~?S?ɱs'R M0x \^L^L?^L^aKv n$ϑ?$ϑs)FM}R”l ()R”l R”l򓥅> 򓥅> MSj[j p~s /1#8;оbL/:mY<JjCs0)dxn(8S xn(8Lz/1!z/1 z/1 #z/1Y z/1ZxN0) + ? ,z#[?j(jj( 1)_'MT1MT1 #r LJ.^f:^ XFsXFt XFkXF ap rR   -א MG"&  WDe P"ϠvD\N/C?\N/Cj Wc] WcvIP=dDvIP=dY vIP=d1P[ RO (OO i2[Z :"B&3i;N 7 ͤ'-Z Q Q  //b1 //b F] B@G gqFYqŅo۞ =FR?n $ n +(T] #I 7j 7 ,:eSRwR_ , v>|1W& - SV|2K_=O_=RH]hQ"<_B6?R)B6?%B6?K+^F+Ln'2yd@nd@n%5d4R;5Yί ;5Yί?*bs?e e (M7o9 UF ( zMws"v8"v"vs"v "=R#U)M#%K?$j$%R鬗$P $׉tR&:<%; $ (4Ya )5w[ZL)5w[Z)e)k35|]+kɩˮ@+kɩˮ,2?!v-z~tv-+2I.}D #.jR!.GyX /u/0ZQm0Rg h0fҰ1D0ve1[ۛd2*_m33Vh /R3o%f c3o%f4_pR4v!4*'M2 5GJ1? 5:3 5:3 .5bW j6T @ 7Q*O;7Q*OC7Q*O e'7Q*Os7Q*Ok81~58\.9 C8ip?8ʎTJj8ʎTJ 9%56v:Axd8:Ax:s*eJ:s*e:s*eC:s*e$:s*eD:s*e:s*e]:,l_J;!^Ӵ;KB 3;̎ <GF=&=9s>Y@b j?9Q_ t?)E?@~:l1?A;PAgCjBP+ BWtz]CRNGmCzh?$ChdCh|Ch;ChPD^qYxErK_hGZFvRGZF e0GZFsGZFHd9Km( iIGIft8I팟7[I팟7[I팟7[ IhIhK IhJ#M53sJ#M53 $JϞVT ( L?z?L h5f iMy1L"vBMy1L" iMy1L"My1L"My1L" N\x [N) O>)OF*l[OihP!RQP!RP#|PEI ,PEI P $PŒi)Q*aT| aQ*aT|YQTj7QXWj3QXWYQXW Qܸ6/ $<R%ޥ&SqmTy/rjT=CRT=C T=CU,Ck U\\NWm/Y W W(OX2pYmhܞ aZ`Z?y[v^Ͳ[[T+g [?fmK[Fv?+\n K\n \n \ H i \ H (^d ^a ^<]=~j_kܓU _kܓU _k hP_k hP_k hP`K R `K R aחbaRфXb7aRфXjc1q0$c3yd5CwDd5CwKd#f`M#t?fS fSf%P<f%P<f%P<ehg9l,BhiFW1s<KhiFW1s<h}z@vh}z@ifN*Sj$Y k1OllLWl. l8=Erm$(IR mzedn><4n><4nEToГ \qma5 \r5[9- r,;|rCRBsXpt  tr~q^ u6||JuwztuA uV!RwSs)wS|wľ?ype ype ypeypez$?E@>+|+;]|+;] |+;] \|+;] i|+;]s}p9Z}-L@ %{>l%[O0s[O0[O0t5gx c~[)åd c o rnC َrX?tvbn9SZ ּp.sּp. R- R+O:P5leq1/l^) ыcYыc]A?v(t(se'? e' $e'ak%va2siTzKSraS\T` 取Et/Cf/Cf/Cf{gdetqO#@0qO#@qO#@qO#@c c l,{*R#ϲDnbcbO#bO#hw ""Փ6YeY|kZ7 l("  \NO[INO[INO[I*NO[I   ;m F ;m FBߥD V~| :#UcAR2q*7N~_ ,N~_ $bpR1װ3CBD mvK &L#jQ m Q m [q{e 6%KT? ]yj ]ypVHQg[ơQyơ!Y Ƃ9tB2fU݇ˎ +fU݇ˎ?K [r;6E?[r;6E $ [r;6E [r;6E icQ" cQ" ȩ#:Y̪M ( Y̪M ,'Է6fU;kw> Ѧ>h )oj& Ӛ cP[4^6M_6M_ԄbB kXkX kX V}ɾ}ɾS}ɾ"}ɾ }ɾ1iȰ3 ,u0r-Z1j(Y&zGUxK?aUxK6ѝN6ѝ#: $\zt-~3?H0 &@ ;Z)@ ;L@ ; @ ;qym;dƋ m;dƋ?m;dƋ IL su?m ciR ˆ_ˆ_Rˆ_9uo;k vÛv13k G Ƶ4$ #Ƶ4$?͡[Nd (1l<?{cuŐ Xݴ=Bt ݴ=B ݴ=BYDy< mȕV*YJc2|W% 2|W% |W% ^}MCgPhNp +ʔ JnYTF&1v^x'暀uR䔶X 䔶X 䔶X "LW l_ &2/N M)eM)M)O h[ܡ=nj&:YQ^ B&:YQ^ 7d V97d V7d V|;qlL g{vjXs TتE{IDs  j (LNZ<A3 n0n0R5 Y sY jY K"H,RvDQX f9vrgKsrgK \3qEq3qEqK3qEq3qEq3qEqDozIt+n ?6J 6J c6J?)T))*R3^#_K H^tyGtyGtyGtyGtD}Z jR-& ,U cDb- xÿ" xÿ"aR }+5A? o d ,o d  o d $Q r Qrfvq%I- Ѳz ,ҩt?сҗ ?сҗj{{s#h[%zw H 'wze ^YO bܥQ3J: 3J:Z\ zT )  EP? S k }mN$.  = R Hm  D9  D9 D9 %ws  %ws ѻvLyN C}'tkVj1{]?,1{] 1{]s&1O . XA?~`>_wY`>_w ,Owٌ'[!ݴfڣ>L3:>) #~< aG7y $AI^3 {G<WV#0 (>#0 >b/b_?HEة BBք%2D09qD{B. FY1FY17F)F'"N6F'"GFG"KGp dI+DD( $JNp AJA?J>"p?K (KMvMQSEMQS"MQSMQSN Ol-OńaOں Oں RO l̖ O l̖?cO l̖ PDV7 PDV7 PDV7PDV7Qb05K T WUt UCtdUCtd Udu?W!\m)S W!\m)XDINhYh^ Yh^Y=rtY* : YXț Y`#/].Y`#/ Y`#/Z9B|DZc{ZDS[v}íG\Q`J[?\Q`J[\~\oHnq\oHn #\oHn ]&jI j]d;^^+ s^+ Y^+ k^+ :^Sf*x^uY_^כy ha+;Oa+;Oa[˔|a[˔|Pb(bl}^zb`bl}^zb`;bl}^zb`Qbl}^zb` b  bG;1bG;1 \ bG;1 bG;1|b镗c7: `c֟cq-d c' edk.= #eB^l+eBQae^ffvgt jSFj$jj;*> #k>QS'ww}>S&ww}>Sweߵx9 u0vxbqq0y>A sz-GKSz1`RzԜ zԜSzuz(*n {5͟Y|c/;|c/c|s _j |s _?|s _ }$| g/}$|}$| }$||~\xީ~C$ ~C$ [ n ,|{G?wk ^e RqńvzCi"+LdMp^Zn.z i@ 0K40vUk< $Uk< h[7Nb^jQNY}pߞRr+9):') aAh\ m[Ah\ Ah\k Ah\bAh\qJSsSZQSZQSh= @SSRLcC 2XC?>+5: 3>+ &P1?}a8h?_Ms/Awj O] O&lӆrSVrSVL$x{ųs$x{ų$x{ųLWs YVikYVitYVi5 M}:Njaz_ \0?~ &U;9zE֌P (r@hgr@hg  W?Zph= "?hlhl gQx {?w {uS \̈t@ẗt@ḧt@ Uu f?Vt['LD,Y.Oٳj.Oٳ m#.Oٳ .Oٳ G^ R-0wZZA "'n \ʰ ,ʰ k \p'MUEu+xjfRlJ}"Tx[ˆ, aO V?NÈeR@!@!7Qs|7j 35s5?ZA i] : ~%|8+]6də9dA9?` az\ az\joaHhI͖ډtbz )Y~NX $~NXGF (fC|NfC|.fC|fC|fC|fC|?`i LVËFV ËFV ËFV?~^Ī aťDc}x2 (Ǟ@-#MG!ȸ-[U (Q, o .MܒDUIg+Αz'%P̨IF ͖'|,h ( x`*:ϝ ϴAW,|3 \,|3vЩiBFje\W=/pk =/pkx=1n@KC  ֠:Z hY)FV ?R5!w?R5!wt?R5!wY?R5!w _r ٵ P'^kvcA,@ FݐϢ5= דqᣅR\Z<\Z ,\Z c\Z \Z a&xt-Z( /:/:T7/hO$㻭fv? jjUp~p~dp~湋LI湋 tI[!6"pWRpWN3pWD$DDAw AwY `C ?_*sCF7dPF7dP%F7dP F7dPF7dPKLS8KLF%B Z[(i Z[(i: v!zXQ C es e?T#xi ^J%ZhIdB|83+ ,"`9Sv|)LhDKS|)LhDK|)LhDKK Jsh JshLGq\?KzaQCYl:YOboOt}\N}\ }\RcЖڀ S415?#'@K #'@ Z 6Y /0 iInsPY+ Y+K\x#c ,\x#cs< | swں i wں a'PA46Y_. c; rOk .X ?{ a g \CI g \CI& +V +V (D d\4 d\4 %*{ .!b .! .!  f- tVN~k' #ZjT샽9_ ,ճ3ǙT3ǙT3ǙT??? ? (? \ptJ ^͖?rswU*?F 3 F bx?k%?̴jfj@F2Y |ׄ x!R  x! x!!%Ԧ% ,&c |wl彋!dwl彋!xlMS/xlMSdajt w&8\ e\WӡB Pb3 CvÑ?U~' ,\]\ x_H8Mx_H8M!9>?Q?!2iv#K`7 *#Ru3e#Y#J=, $i[sb$i[st%t0 S%)f)&N; &N;R&\)&SY',Wvc 'N< )ΉQ_))ΉQK)ΉQ)ΉQ)ΉQ)ΉQ*b, ! q-"o n -"o n (0"3:D20"3:.0"3:0"3: 0"3:0B+- 0D6 0D60MC\O0MC\O0צ;K0צ; 0צ;0צ;0צ;0?#R#0?#R#1 ,1zJz# $2*Xk2 N_?2 N_3@Ghr, 5n:y5n: 5n: 65>t65> 6YM$ 6R N7 \7,%%T7D77;E8g.R:@G :r6 ,<'d+S@Q<: ,w[<: ,wu>1 xM3@(*!AzG`pAzG`pAR' bA|FR?Bgo %C={ #D7% Q EG Eiٞ% Fa/ gG]+z+RG~ G:#p"twG:#p" (G:#p" H JۚH}Z[ a H}Z[ H}Z[ H}Z[ H}Z[H}Z[:H}Z[?H=, ZDI!75! IM=0)7jJB$FJ:IZ;KpGAR(vKq "]$t LL%9 ,SL%9 ,Od4NvOP[PuGJjQ\RzQ\R尧n?Ss Te_vtT)i+3KT׿yC'T׿yC'T׿yC'Un "?UpUǞW@<Xm>p?Zqdj Z3 Z3 Z3 [^wr[^wr \P3k\a<J]]NY^CHKCS^CHKC^CHKC^CHKC]^{ZR^R9^R a`.+ ` 84at''ab iabjPab #ababt ab aN(b $RbQOcW:d ScW:d ncBZd:d Odd0dR.d dde ]n #e&2exfkegA]p g-jh7.`i$6 ̴~si1:j jKK jKajͤ>mm j.?kҕ=dl*1l;l*1l;l*1l;Ql*1l;:l*1l;6l*1l;l*1l;l*1l;m à mB YmB tmB  m`PE ,m`PE n`1.oR or23or2+or2or2or2o7fqVږCyL qVږCy q k@  q+[вN r; d*4r; d*4Us[v?sWZsTw> sTw>sTw>+tk`tk` tk`t"oi tD8=A tEbu Ȭu ȬwRcНxHW5'Fy981:yV{LKzMz@,z={ Y< { Y< i{Ġ6[|w|5Wt#|5W|~8}\յƆ  xc4UQ E4wc Y;;3 5p $;Ao AoAodU=FjZy i Qr i QrjT? D;L D;oGo ܙRTO%]h9-\6~ J{6~ J{D,>ȋ X},>ȋ Z,>ȋ jGqTHUdjUd $  O t   *7+cz ,Lbk AF ]Sܝ%\ұvɚdd}[Zp~jS ^T/) JT/)k T/)YyR!mI CRK3_m=[]Άl VΆl Osh(h(Rh(ʫ"R  {u \{u ^{u ~릸6.0F"N*e" *e"t*e" *e" 㪑8s3h"8ق 3h"8قb3h"8قkMLSML$ML#MLdeXp  ȅڱrZW^.fW^.fKW^.fQuejuRn c l=<-= wY/i xng "7sb7sS2_GRS2_GBNͤ#?ͤ#On=:٭ ,pW? (\N #) #,#) c&6d{G,6t}e} fdn fdn ]T1BQ1BJr&PTzY"3hkh"3ht+8e#xx >x >v=Yf?C<D>=gyǢD vNI[xq(Vdq(Vd/x/xKC/x&/xFZ*t 1kSJאZuJא  ) R \%=% eiSeiN aN i-Fj!i-Fj i-FjՎ( l Vs V  V  VtXAjXA $XA jvӟ9b ײjs¿s¿4Ot܀IX9Ss( j lZ >{+ >{-U-N|ʇ n $Y7sXY7 , ?k/Ebt yoL/wVӀd s/ *X #>_Ն 3 3¤AsnQ"nKnRnb)^ j/. ߏ00 eQxf?yN9?rQ5d |$ |$|$ǚ.ǚ.ǚ. j j j:P& cY>r9ʆ ů#ʆ ůY{_ex| sY #VY cήLDl 40_N 40_YОxѐQ^g cQ^g Q^g 9 ThxNVPb$ VPb$ 7 [@ԢPVitԺl;ն cw .o ֘6{~ddֹszeQoY eQoY?ךcvccf3|ؘu9tf aDf L f R  6A f׻&mv= sp+  sp+ sp+%%l?۩6$v=` -LvދU'J ޚAj޶c i޶qD޶qR^f ^fP߉E~?\߉E~ rv{O6>2?N@Uk|`kk|`k|`sq%Ni۟> \i۟>vu̯$#?K` K` K` tǧ?iͥ 'iͥiͥ 7dp;+$b &ٽ4 ,f0x^^ f0x^^ty<\[Y  QГ  gr7R ? > ^Įh N  {G;h - {G;h ( {G;h $ O+c :R OjCH ~9PjJ-&]TJ-&>ҬV #R6K PR6K P2y $Bo%\!tBo%\!  XTqj43g43g 49]5V{~`t5t2-N5t2-L5t2-5b5Р 6D ߍ6<˧ 6v] 6v] 6"87|IM 7|IM?7>y a 7>yt8"L(?9KDNs9(,{ 9ʬC 9e4 ;l/As;5v=529=n;N?Fak?FaY? c@Y*f7RAxRBUCѿ$ B # C]/Cα:Ds\@T (EaZEaZ EzAEClE6D |E* $F0; G' jIyYGZ9˅ GZ9˅ GZ9˅GZ9˅ iGZ9˅ (G\ ,GYbKH3O: $H3O:H"lH"l (HH"l 6H"lH"lsH"ljHlk܎IJu&P I4t-I4t-K/vUqtL"B$Rs L$)~A MFΨMߛy MߛytMߛy M "eNo#vNr?O SOvOI ,P L)KP L)PI?Q2[DiVQ2[Di R#RS+E)RS@YSۅ{S Sۅ{ Sۅ{ Sۅ{LTQɺS aT Q T QKT QU|ଭU|ଭ  U|ଭ U|ଭU|ଭU{j ,U{j U{j (ViHQ3ViHQViHQVDa#VDaRVDaVŤ-k;ViqWDZ CW_C^[W_C^X;Z Y Y[y:?[y: \:j\guN ],], (]kp]`Z_Ms/$ж _Jn`[iNH`S^ (`t?R`t?`IRae,aa]by6j ac&Ydl^i* dl^i*dl^i*ev&8DXf[wY f[wY hӮ{#i:d-!Y i:d-!Qii U¥ ci1,.i?jl\S`(ni@Y #ni@Y cn5o\9Y?pj" pj"Spd2pbEp{h!q\j] Dq\j]q3My Nr&i {s\XSs~='s~= s~= (tk\tzAŤtͨ)o A1u{6b u{6b u{6b|u{6b u{6b uYwaF -wʼ4 x6X Dx:P| rxq xq xg ?/z7cvzOoN zOoN?zEFt{oT c}'AQ?}(~ۉ! ,}(~ۉ! }(~ۉ!j}(~ۉ! }1`+}BT d ~l k ?Yv k ?Y k ?Y an&7%y=[k[Nb$6)o^^)o^^DBFDBF Pwx;Rh Pwx;R ,B Pwx;R  Pwx;R (#hÒ2|3,ٵ( 2*b>,T #E#!E#!$ ,A#Y EUEZlXzUxR yT7Yz'yT7YzyT7Yz yT7YzJG9R 'pS du 5G GZi]9GZi!GZi LFZeuWL m5O[Lm5O[S8xK~jt c~jt #b /b "b tNuE #/xpfSs/xpfZ4/xpfVȖ ,bȖ $Ȗ ]eYRiMj& E-{v[kYYĪ \wTW?2KE #2KE?ER3 \m][#Rm][#/0{t/0{sm )tj[ԫ|q [ԫ|q:jp3Ft:jp3F{{Nyv/ch(J7E #WdH&7: xfW6xfW6(xfW6 xfW6 xfW6eS6 GvA9> Qv53a?lխ 0lխLlխ .VNhC&t  C&tC&tt8C&t C&tYC&t eC&t ( C&t Z_dZ_d Z_dea0 ea021??H| Ev  'A8~ )A8~?{|-s7x2q Rao RLn_oC a oC 읞+읞+ %"IN{FkpC7Q (5}ҟ0R^Ai> Ai> /vNʬcZpNpN gpN gDNBtY YYm1ԁ  S ׃zHM epz`kY+Y(k̳2FM!XmРwDw+x`' F aJJU>tK?Ќj³ڈN3$!S(:S(2S(S(k S(tx rNeN $ũlR N<PN<LN<N<ScN<Kƍ"Xƍ"X| Z  Z  Z #jR ǂ Hv~pj~p d*[m$ȹ {:0/ע 9Isko mf6T $ʻ艀 mCbU˛w[˸N̄ȸ Τ=Qu $ Qu9 Qu||<j |< i |< |<t9m곙7QV _Z[ Ҡ$  Ҡ$  Ҡ$  ϭ.=MYԈĂI@]F3?B ;  B?yY19/yY19f0)k kͯkٟͯY ,ٟY jV  =8  } I  A&O

    VS'h< ytB܂/0Ps#;1NxԘ +ǾH~ +y O&b y O&jy O&?;D9Pz z Zo\2R #fǁu ǁu ǁu ǁu 'z~v'z~ 3S+=Y+= += r] !mךu ujDAb\ \U \ZGv ZGn|8?xk7 xk7[}(K }(=HC@$Tzh;þ)s *M ,*Mj4s XRVT+cJY>J e7H QRή` (J{sJ{hA[u%th@?D l gܟigܟ] gܟgܟRQC+ 8=?9`(U ,1:?-FZk*@6k*@6 a:=""X䙸 "5Y "5Y ,"5Yj B̳S  M5 N{K  ? !sG! [ "ߨYDKK7#* Ur$2 CG m%/ަ ,'#=m '6:Bj);- #*h/GK+WUE,a`:- i2 ,- i2 c -˫[ .|)s/gҐ?/g1_ #0M$v0U" 19] ;55fs5j n$Ip5E/ $5E/ 5E/ 7]?7]?9i*6`R9G k9G 9GY:' s;AN._i;|#{v;N;Y8;Y;Y<a|V <Ƨ#`M? = D =!Ǣ=!Ǣf=!Ǣ(=!Ǣ =!Ǣ]=Fjsd>t.%? E R?_/(?_/?_/]?_/QA< 6A< "A< sA<A< A< A<A< (A!LA0MCC̰ C?.Ay DnCDnZDnRpDn]'DnCDnaDnD D U}+DD U}+KEͶ,?EM&?FGFSęhFxSFt& :F5Ol/ bF5Ol/ F5Ol/Gx'b~H+R H+R IĖTP Kldkܤ9LI Y NKbnҴq NEWŵNEWŵ NEWŵN3dOixLO}a^ P)4*O P)4*O?P@bJY P@bJkP@bJQ &[ Q!s Q! .R*˸S#{n ,SA6 TFu T *RY`T *RjKV߱5] V߱5]V߱5] jWUvKeXS?YREoZ=̔2 \[˧ $\㨨^n^ c^[R_=  c_2`Vf _2`VK`mO 's`mO ' ,b ebbbbRSbRcEzp cEzptcEzp cEzpdQj e{@ e{@ $eJZeJSe2Zfܹ%fܹ%fܹ%g: }R g: }gL?hhvh5e jh5e iX i`=hoPi`=hoi`=hoiextiexkiexjYJ ,jĈ\ jf>lvlC ڟm.9 o 9o# 2ol|ol qk݀9q$r s+s*pF MsDό it "uSX'užužvRwgj w)[x@DHz ud(z uK{\υt{\υt{vSF2{۲ ! | Q .V $}Hioq ,U}Hioq }Hioq '}Hioq $ }#S #}#S }#S ~&ll?d~S#v`S~`*qh -{^=R{^=N>Z$s>Z$ >Z$O;H"O aXeKNI G VI G|?uㄧb@W{',h \ \v –1Iv"B8 sa. \OE x m(|O c6~Y6~Ymό\ dv"Ӄz79-b*M/vIcmLW94IWcȀ1 Rwn}K"넅- q $P7w# [ .&s\h!s\hL17DϊNN4 gxH" >$r\S|X ^Ю (wU9"SU9"S%_%_%pZK%⇹cj⇹cM?{w &k (K aWPji+5?v'{a6 BOtN+ &N+ N+N+jpGzk| pGzk pGzkpGzk Eh) Eh) ]>Rw #މ45Nf 45NT{f cFY aFYtFYb~nI0v,* $  >{כH5]8r yb  e 2F Ue 2F  SdTԻ cYu{|C=K#cl?#cl fh{ Dn W0Os9T}R I*/Ȁ I*/Ȁ8_~+A?~+Astq tqN jld(cP˞_ <Ts <Tj <T B $~B $~||s K$w CO޽R[me 'R[mesR[mekR[me iR[met/or ̦o a̦o ,̦o ̦o 3̦o $̦o (̦o \ϔ\Ttϔ\TE8E8~}6YQZ>$ sLM mGLM 0LMLMbdweײszVWk VWkV\:j 1Ib $ 1Ib?  1Ib Oj 90N K190N K1ȅbYȅbȎ~KߎɭXsJP. ,ʜci`5kʜϺ??x"?˔{<L˔{<}{K2! ́ 鏽  ͅ* <.bX.bXZNdSNdZΓ4pjέ6Щc5Qό'ғ'|Tҭ/pUQAyә UfsCNbW1 ۅ /$, 3E3 rj X~X~ X~jX~ aB 0B 0 ޓgeuDީ 딛`딛` 0t7 E=A!ߦ eߦ e bq bbu 2Ku 2|r6ej3|r6eh!Vc;znVPznV  +Xs'c'cP㗜æQn" 3 IU0E0Ed0E 0E0ERd f剫yc^;Z;6F?!6F IE08 h ah5&P 4 E ctnmn0. #鸭z"Y9dq "rh8?I? I- ƈGLWR2$.x.xKD}I: I:kI:/@7~.7~N7~_ߺ? M` ؂ -iY0  8 =R  8 =Q&V y'KjKjKjDKjQKjXe t9 ( ( ,ٙ[t' , ٙ[t' T" , T"T" $T" J@91I J@91I\yqY| ݃' @J  @J $ * " x6a {VR 3\a 3\] 3\Z ] S Wb!s o`S )] 2}L 6$j;& ? /ڀW{( a /ڀW{( , 0w 0w 0w\ 0wQ@ 0w& 0w 0wY 0[#biYA  0[#biYA 0[#biYA 0[#biYA 0[#biYA? 0ޭ df 2j|B. 2nU]D 2 :b. :ԏ ;st <[ E <m  <(O- =%I9 >Rl ?bF   ?Wh(  ?ZUW$ ?8  @\6 @ 2Q @Sv3 @Sv3 @O=[ Ac]3IC Aך* Aך* B] BhUi¤ BN C$X7[j! C$X7[  C$X7[h C$X7[ C?[  C2I CMָ CMָ D D D D D G%P) G%P) H4Kjܦ H> $ IsT/u~O IsT/u~t IsT/u~ IsT/u~ j J˽ JK{b J3 KN:dg  KN:dg  KPg*3{ Kb % KaMw# K& LiP" a LiP"j Lo>  Lo> L Lo>  Lo>  Lo>  Nˢ_YyK Nˢ_Yy Nˢ_Yy O=?h] O=?h]$ OLmK ( O͡b0$ O͡b0 O͡b0 O͡b0 P<:#ʰ Pq pz;? Pq pz; Pq pz;  Q)ׇ Q*93c R R+c:? Rur Sstl Sstl T=  U{q" U{q"D U{q"Q U{q" U{q" WzқW WJnNv WJnN XHz , \E| \;Hs \>-v ]lM  ]/?sg] ]/?sg ]/?sg ]/?sg ]X߆v ^  ^m of=rQ ^m of=rR< ^m of=r ^m of=r _isgTpN _,\Kp _Jbz _Jbz `,NoY `1y;D  ` Pl `o  a m | b-n,X b bqߢZY b { &  cF-ټR w fd3 fd3 fd3  f1B= f1B=6 f1B=" f1B= fW fW g.O+ R g1 gɋC hI#r< h| iRN iΎn? j]2.C, k4[hr l"IR l"IN m {7P mj388N mq>GX mq>GX  mq>GX \ mq>GX  n/  n7ɴ o(M  o<$s p`ux: K pM  p϶% p϶ r\&hN r1!! rO֫ rO֫ rO֫ i ri$$K sXQ`D t|܆,w # t|܆,wh t|1z tG!P tG! tG!R t: upgrh; urN u,! u, u5  uzr.[U v>{G2 w `Z#] w `Z#3 w `Z# w `Z# wYKjqw wc1Yy! wc1Yy 6 w ~ x@d[ x\p¶tR+ x\p¶t! yIs y|  y|  y)[ y) zۥR" ze0 ; a {2W? {ʡk… {} c |نzL? g'\ g'\? k)!D \ k)!D  ?R c (@W # a  a s :D= :K : : ;*Z ] sS j 3O„j i:$Z :0  9yS0 !s !s x jj'h  6,Yө! P ,< P; P b . Cp%} Xk j w w ٛ[v N0  X1ps ( ( ( S" s D2 GIc+ GIc] &F6 c bϵj ~ Zw| gio m V;%  V;%  $|›< jA d?Amgs o 6Ch %\  Gi3C; USj $ ]PpqA i YNYd &Z2O q B Ĉ* Ĉ*Q Ĉ*K {lj {l %M %ML %M %M]6 %MZ* %MU %Mw %Ms %MY %MS> %M- %M 3r/gY g Ek'NA kkФ $ ~4x ^3 E" FW 6Ⱥc 6Ⱥ 6Ⱥ 6ȺS 6Ⱥ 9$By g #W #W N> j !S !E 3n 3n 5@g; ɞF~z e lR lK l Ͻ~f? Ͻ~f "eHt "eHs / \ mv 30 _N AjDWT | AjDWT DH#_ :- DH#_ zL mJO mJO  mJO m 矏 >;Dq >;Dq Z!,6u TTEn j "Hu "Hu  "Hu "Hu e Qޣd * ғxt ғxs g~}   OM ]Jׅt 2x4? qm/>  x\[ LIɨ Hߕ j QJ j QJ Q )]J,{ Ki {ur' } } eFl$ 3>e x y  y K 틌  틌? h> tN  dI_c  dI_c ­~bq  U |z;7 6׷{w[j 6׷{w[R oq7y עoCR ({E qi˄ qi˄ qi˄ )@R i$* ;?d; :c} }G0 JѮw JѮwj ΍ɂuF ΐGt  ΐGtt V  ']'.  Jw/f  һa|S; , # ILغS ILغ ӫ l ӯA M~wt ݺ ? M_v M_ X6  ԙT? pgay XuT  fA cE ݎ? {  {R h Tv h T  ycub? wbdն }  Aƅ ?} {M[s G~d Y9K ` ?u _d R S A~  u4 o35? <-c [ q g C ׷?: ׷s j dJ>  R ڮ: ڮ: ڮ: g>v Js J :JsTD qiL v& v&  v& v&| >>|V( (ש2 (ש2 (ש2? 9%Z ?"R iWrU  2 )FH =2 9 Wu  NH ? , ?j ? ?s +ę  +ę $ \'A CY<6  #3V=j xd1 RR? RR $ RR tK>S g #4 s "2 C] $ C] XZK XZ r r h@>N o1 / o1  o1  o1 ] n - *`Ѹ- .G:Bq @L @Lt @L љ<*t љ<*k љ<* љ<* J; R) ~,5) N p/@  p/@  ͕ (t myZU ߥusS  H xl; $ xl; xl; xl; ] xl; e xl;j `k˽u tl6 Fږ(L w  ! " CTu )_[ F 7yj 7y  s :8Q #ՍC" qPҐ& eֽ 4t  I k ~>N sGŬz#: hW ^DL 0_and ג (a gFB  Ft&  2 p:.Fs 0Ds 0D ͶtN Ͷ?= Ͷ   U W  'b 0i | I# ( 4Ĵ/t A!)  WLW  0  0j 0 ,J ,J  :y$ tt ! 2s "tMcwq \ "tMcwq ")% "2*` # #- #- #t _ $R z $Chr(4N? %ga. %ga. %(v $ %(v  &ꈄ1 m '@ '+K )b|+ )l;t A *6FU_  *R +#`Z +3M%6 +7 +@C  ,~c| ,\< -Y[ -Y[ -Y[ -Y[ -i|H/'@ " /p ] /A /A 0<R 0< 0<K 1X#Q 1\% 2v 3;$i} 4yY  4wB? ( 5P=bE  5P=bE j 6Rʭ 7@+E+v 9k~ $ 9vF. 9; 9|>L?* 9|>L $ :Tv :Tv :Tv$ :Tv :Tve :Tv :Tv ;4  ;ڭg ;ڭg ;S ;S , <~=$7 <~=# <~b >1# AԚfZ- ,* B DHss FE_b F㐵 G}m> GJV}Z GJV} GJV} GJV}a GJV} H I xW  I xWj I xW I xW  I xW  I e Is I›{ J9#a  J: 9& Jt;. JZ\}^ , LI , LI LBWȤ LJml L$e( LA" MveH9 N : N2O& O{>e O'* b O'* " PGNuP  PGNuP , PGNuP Pr$  Piv? Q-t1k $ Q Qv Q RNE R R6 UKR= UKR= Ut>K V j} Vnbk WxvpN8 Wxvp WȕB&: X1} Y|A  ZA` [ [&< [x Z [zbjD \ QC \ Q \e&Sp] \e&Sp \چ \چR ]k̻L `,rDwFt aFl; bSS b\9| b\ bstXS c5vb c@g5I c@g5I  c t d t dk RE7 dk RE7K dJ+ de evD ezBOZ f w? fKm= ffH& , ffH&  ffH&  f$k9 f$k9$ f$k9 f$k9 gJVR gJV  g/Q ;[ gdBN gn-[?,$ h( , h( h( h3;6 h3;6 iP0X iXf iXf a i`^2  jc= jѢ kv۷? k>Gz  l%=Qlk muGd  mj S mj  mj  mʓ mU: \ n}ׅS n}ׅ n}ׅZ o9$$i oX ? oXj) oXs oX pŗ pl q տ>o. q տ>o. q տ>o.Q q`xs q`x tw@S a t:Ah t:Ah u ŢR u6  v7*:4 i wS+ x6߭v1  x6߭v1t y/ z= t z j" z j zGI zGI) zGI za^S7 za^ za^ z  zb z c z@~ z y7$  zD))[ {J44R |_. n |e*{`j |+r# |+r# , }QW= }ya }}[s , }}[s }k ~f6 `d8  `d8  `d8  `d8 | `d8  `d8 mMKs z; 8 ~q<d J`Q% Kaus 3jG4j ]m  1aA 1aA gٮy \ jYߜ i] "& HE $ 9LZ Q/ ^ `j 4{?% oTۊ oTۊK ~+'D qBq C 5H ~ Sռ8j  Et q=4 q=4 X XR M_E< $ v t 2d -Q  Ab2K [:h: { {K (@s Y P Y  2 j jjG j# j  j j ( j a j ?w. s hzz"k ; {xr ; {x A\  4Ck xm Lg*u W29 =3j od @ [ Ś a@? ba'L # & U כ(PR כ(Pv כ(P  Y?o Ń 2 ] b Z%1G $ C0j; , x $ .,oPo )Ǜ s7Ռ s7Ռ tIC_j vPj vPt kyR RJR ({ սER &B %bn? %bn  %bn ^ & c ' 5 Hqt Qb^[ K)nR ~k|a5 *Re4O CE/ \ \  ^1S 8'S 8'] W\= ug8 j *[K I I u^ u^Q 8| l 8| MA*;K w9 w9 w9  + %29? 0@TT . 7HzwHK | #5^C> ,cQ -@L? Xȷ8 , é/I[ m`  = Ł% Ł% &v  (/M% (/ML [y| dt m9~ u~ $ u~ s 'vx \ 䫧^}] ͿGxkb ܁T ,} ܁T j ܁T} ܁T  ܁T  Φ_o ίi$ ίi$ | θБ6  j 5+E  1ѩ^ 5:U \ 5:U nN 5:U ^/ bF$ hN h Фu ХV595o lQc ;Q b'|'h b'|'| f2 XE8*? אb ׻ \% ׻ , ׻j آ+Q :~G :~R< Qj Qj )  W J =sK ڣ [6Q ڣ [6Q vm:K u|2" | * ሐL] ሐL] +5b 4,: 4, ( 、\k ]3ė ]3ėL ]3ė ]3ėe &cqQL -Y  VrD$ r |)>=w :Gw' 2+y 2+y  :UR  :URk :URt :URb 鰭 n 鰭? x$ "s] "s]! "s] rE" =fIo ^e ϻw I I  Z - \7s_ \7s_ \7s_ c}9: h73 h73 s j0 s  OLb O O$ O O Zm # f1Q f1 z#% Im Wmv  Wmv  /# O"`DN Uǩ, a k4jI k4 k4 , k4 $ $UNw  ˇ# :-.R +@8R +@8] ؾ/ ؾ/ 1Z   }? ӽ߼P6 ӽ߼S/ ӽ߼ ӽ߼L WA+ ҄m$C xZD3 - RJ  RJ e ].S ]. ]. -M. i /m mu/ *$t 0R} $ rߘ  '6 '6] BIt  BIt  ntYa  #       ӇK yF Bׅ6 {1I 53 * P * L * ( *| * * * ^ * 6P ~ K =lL =l  ( ( :t# :t :tS WL, ኄn1R '9 ' ' ' zO?1 H9 aD a s𚗚 V" 7 V"  Nj "2S c  y$P  y$P y$P _dxK W~Y9 # f4N7 ,N +2 Po4 c Po4 C O r 솂 X Cj "/oi "@)Br "@)BrD "@)Br "@)Br "`$aŒ "G<N #lB$? #lB$  #lB$  #T  %*.L &g 'F% (1K{'V (1K{': )%C- )ED)Q )ED)Q )y{o  )y{o { )y{ok )\dK )(m  )(m . )(m )(m ( *m c *m # +^)t. +^)s +^) ( +jw2 +jw +Jt +#=י  +#=י  +#=יh ,$#j ,`j ,`  .\S .  .y .*v .h r  .h r m .[ , 0 T?Z 0kvW 0EO 1PN 1xgs 1xgsZ 1 b  2( 2ВNm 3D SF2 3D SF2? 5rG] 5$I,7Z 6>css 6\UMΩj 7ν? | 8Dԝ+ , 8Dԝ+ i 8Dԝ+ (Y 8Dԝ+ 8Dԝ+s 8Dԝ+ 9>Ծ8 9>Ծ8K 9>Ծ8R 9XڵuNF :޹Ӽt :޹Ӽ ( :޹Ӽ :{=] :{= :BxǕ :og] :og  ;p"?fl T ?HC* ?+/r E N c E&Pxs E&Pxj E&Pxt E&Px F2C͔ l F̎Wʟ" Gv(%~ G~u " G] Gp7  HޛX (Q HޛX  HޛX HޛX| HޛX \ Is? Jh &v Jٻ JW |? K L@JP( L8j M$7= N >  N >  NP'ځ_:  NP'ځ_: NqfA  Oc g` Obn  Obn c O ֗- - PL~U PkDv Pׂ6$ QWҸQ? Q4Ɋ Q D RI R\B] s R[ a S:A S:Ak S쐪O S쐪O Te Te ( T|h? UJ,S  U, W*[CK W*[CK XӅVZk X 4d Xc hGj XI˹ Y>  YhɆ@ i ZbǜL Zbǜ [+x  [+xj [XANg []OK  [Ȍ|+  [Ȍ|+j [s$2 \'R \< # \7MB  ]5Qu+ ]7^`N ^QP[ ^6 _58Y _58Y _58Ys _f>p `r|(  `r|( `P % `P e `P `P al a2QL b=*h[ bjf b b ,3 b  bcL= cR/ cR/ cL·g cc9 dlh d^l/  d^l/| d?m` dwB e×0c'j fn麴? hKEW6:@ hKEW6 ) hKEW6 # hKEW6 hKEW6 j n  knU l5VJ? l|`$ m$ - m GkR nE,Q nmB  nmB  ojp--  ojp-- , oj ߔ p2iR  p2iR? pHm  pHm  p?6J pe1s qtm5K r~H r߄  swk  4+qqt ~  ' O& \.s S7v 2 5t 5 v ½l8v ½l8 \ ½l8  򕒺a . 򕒺aY P/< + SxR SxR SxRk IN sV& - DE } Å$23M , ɉ?  VX;?& VX;  cf8$ qA y] %K b  ȓFTmk  y.s XT%d XT% XT%K y:ލ  y:ލ a ʤ E5 `j~ ́#< x ́#<] ́#<YR ́#<) ́#<j ́#< ( ́#< ́#<b Ϙ 5  Fb }~i аCTd= Cj ͻHd a R a Q 8çs >傸j >傸U n$ 䜧 <K \v <K \v <K \v CK ,CB` ,CB` /BTD Zcv x  ۶Dfhs ۶Dfhj ۶Dfh k? ܯRZW52v9 ܯRZW52s CYv 7̉(A  Nh[H ݒ0N\ - ݒ0N\  ~  2=}Z ߞASv r} =3 = = "L^2 g  L U ]^ E S  o   BD IĠ1] c$`x 7(Ҥ 7(ҤD 7(Ҥ bΈ1  ji, ߂;R qts V"T Z3 L 諅3, c 躧lf H 躧lf  gnii %n$J; ik ďh  ďh? ďh ( {r 햞 " 4s 4 J # 0 > r J}IN  l~? Vj Vs b. b. , b.  r< v { i v { a v { $ v { c v { 펩:D -0h 4O f/B]N }Bls ި ( ި  ި  %TD %TD \zb3 [C Ꮝ ߤ݌ Ѱ Ft HO{"? HO{" \ z2 η H  ȣX F2! |@A C!q| C!qj K=: K=: 2 r ( gi7&? gi7& cY `u {EK {E Bx @ @  rLb  (P? *:n4 *:n4 Y r (sy9 - a a a Br U Zs  ZsR ԕR%u? S 2 1 1 ٩:K  *Sx G:w ?V}?  j  eX } JS M<5[U q7t q7t q7t 8쌯(  [S Hf `=` `=t mT , K K @N"  v `D I5:* _4jO{ $:s *kGݾ[  ĝ1  ĝ M>K` (  $ Cd +It? Q㓶ba Q㓶b AɶQ , AɶQ s AɶQ ( ӆ0q Q ?UB !>mm # ! Y@ "9+<\P "9+<\P "9+<\P #9drÖ  #9drÖ  #Q  #Q  #!59 $(|۾ $`픢  &$rN &$r! &pK 'E({ \ ()2 )[Y-b )A楥X )1  ),m憛 ),m憛N )˻F ,J#( ,}| -.j -. -Fu ? . nQ .B# .B .B /cu /9+ /9+ 0@v c 0A^j>@  0[  1#/~R 2αK 3ͅT=' 3ͅT=' 3åOjt 4^Zu 4vLn' 4vLn'K 4vLn'R 4r\w 6wy? 6zqh 62} 62}  62} , 6&"r 6&"r  75ʦX 7й? 80) 80) 9Ѱq 9!n- :m~S] :oF , ;L%V ;L%V $ ;L%V <^VY >+2N >+2 >N`[ A# f'6 AX# tLB AX# tLBh AX# tLB i AX# tLBj BRl  B6R{  Cy  DKS DK DrA|Y DiG?zv DJ˿R Dn:X  E!$jI  EV^_B EV^_B $ Fllw F-Y FUHi Fh j FOu  H$E IΤu IΤ[ IΤKI IΤY IΤ IΤ Iּv; JQ"+Uf JQ"+Uf JC Jdc Jdc Jdc  K@ $ Kc7z M["  NOC +N  NOC +N  O ? O(0ж i O(0ж $ OT7 OӤ8Ɵl ! O쥢S P[&' Pf ^ Qt`gdt QaՌ R!  R2GO?S R2GO" SO| # Sh>"  T Idž T Idž Tע ` UTTUs UTTUs] UTTUsi UTTUs) U,Ǣ s U*F  UjG $ VaL Va Vt2')R Vt2') Wk5? X] ? ZT w ZT  Zu]K Zu]  Zu] Za [XO>p/S- [XO>p/K [XO>p/U [!Kj \Br!< \j\ܾD \j\ܾK ]Hj ^Z1P< ^7- `]FOW{ `]FOW i a[QV a`e  b/` b^oA b^o b^oR bgc  cR]"f[ # cCȊ cCȊQ cCȊ cCȊ d!P  d!PK dM[2j f/ fh8 fh8 gc>  g% grG h;wc  h8:" h8:" iҫ@ iv)D ipt iN} x\+ xzdL ( yYKlY- yYKl y|cR yҘb0V yHظ= \ z{ {A( # {A(  {A( $ {'y |4 gN }[.Gf  }[.Gf  }[.Gf   }[.Gf S }q\1w }q\1w }q\1wK }hn # ~}bE ~<- ~/' ͓R ~/' ͓ ~2w' O ~]75[ 3+wRk 7↲ oAz,u ?6) ?6)R LF7r T^=C` T^=C` J?z 䄵" ; ( y 7 y 5 4iC% j | 34Mg}Y sڭf sڭ Zng , q;$ b Ԣf ]nGR ]H )R cg [? (1XL (1X 3P% 'C6Ž +}&1N Kwcj  Kwcj ^ }zR &2fY OL    8vy W*L z֜C VTs VT VTY VTt ,L , ȁ ȁK x ` 36  H$K6E H$K6a8 H$K6Z h[-  h[-  h[-  h[-t k? U|  v|E< v|E v|E E}ҠY  # E[  Z0`L mz  j  Ӡ!Z" Ӡ!Z" ( M s S^i S^i S^iP S^iR z0d<O A l G40S  TtMU [d/v \ls ( 8s F  FU pTF כ [XU$ " " " "S " g] hTE  `:_ ,& y eUS Hԍ \ WZSP <}+Ls <}+ ~*5~s sG \ >`? >` . pmY s pM; +i] # +i]  ¬Q%k s dHu .L& .L B B$ ӵ6v^ 2 a P~^E i P~^Eh o/pK -? e!l   - tWvu )D [ oKL 0 ks9 //*zQ t wt { g { ( {| { | ][< i ][< ][<  ^ p!  p! $ p! 8` (2 v -c$ -c$ st ^ I %@lD4 %@l2 %@l %@l L|˒2z L|˒2z& w>H   [  {'zm{ -䕖  [AA)' + Q1ϋ s` # 3XTQt Ƽ+: ! =F =F =F I^  I^ aܥ{ ` u:l+ Rmk7L ɴBVDž i H ˜S]C  玜!! 玜!! 0 U3 0 ] z>f  (hr? prqD* Ӣl  Ӥ|#[ hG0ў? jBeoM " ͫ TOW RU] |fx& ؃ӌxS rQ U " c ڷ,M[ ۶#\BQ ۶#\BR !L ,) !L e ~\78 ܛܜ|` ܛܜ|` 򘙩&# l^U l^J l^L l^ l^]h l^. l^ l^S l^Z l^ ˶`i VwIa 2*  2*  SY; \(*[8 8)8 H ؝>R PA[" t*- t*-R 1D t %]jQa] m~  kտk kտ !e@t !e@b !e@ w V0s lr lr % ||0<j ; %8jj - &n_a jQ  ?L -˓ _| ܽRma ܽRm ܽRm ܽRm Z[ m叽e /t. 쮢Ca V |U9 ke P+i P+i Q= K  zljA s +& We$w \ a ΋ хn  "k N WCۧr; WCۧr( Q;t c(q  jD b>f7 g  YA9/9 YA9/ $ YA9/ c;7&] c;7& H  JB  ?IjZ ?I? : hS *L * Rm] 3GY lP` lP`_ `j ? L߲Z E+gta E+gb^ E+g O E+g : E+g  E+gY 6 ' y5ߺK , y5ߺK  y5ߺK  g's C g's  tW Y2kZ FZB\ aSxR dh;o%d 2C s0 2C , Ň c ' 䅶N 䅶 CU @  he z؏ '_ '_D '_R 5AK 5AS L%IN" `m:?j  DH V' V' ݧ  ݧt u{H ViR% uAvL pY m1} m1}k !>w RD aeY u#R $ ? RL R -;wR godN ryTjR ryTj ryTj 8j 8  ?ա [w,ö [w,ö  a  FM QC xTW= ? xTW=b9 xTW= tB(  tB( , y-xvE d# j 3  sR ^ZRwڷ ~, < ~,|  G x. G x G x G xR G xK Q)⁗ [^ V  )? Ea@c XH&/j XH&/ crt `4I , k1 i wƘ] wƘ *t * #n #n 7 #n ,) ܎|_bv "^xK "^x ,L  ,L ( ,L ,L ^ ,Lj Qnlt i s>kK R4;R R4; Gh  !FѡXU8 $_+ %"0<?K %"0<j3 %"0< %"0< i &-ȼK 'sy 'CZ}aL (ao'n a (ao'n| (kS )ެ+  *xj8 *xj8K *tPW *tPW +!'  ,J[N ,nj/W -D黤  -g /|&S /|&Q /ò}ɨ  /ò}ɨ 0s,Wz j 1Sf] 1T! \ 1T! 2g3 3>u@ 3>u@ 3>u@ 4sE 4?/>s 4jf8 5 38  5akJ^ 5R[g 5H=L 5H=2 8ZA 8ZA 9j 9|<  :]z 8R ;_ <" N <ȡ < \ d b ?;Km%{f ?T+ ?T" A ;v Aʕ A=`T BY)m3 Bvʠ[ Bvʠ \ Bvʠ? CWX.9R DEg DW< D9xS \ EW˥- F;GX 9 F;GX 1 FH.NN4Z F*펆 $ GP9 h G PN I?reS| JY{^ s J!}g J!}g Kpʫ+y8 K qO( Kߐ8 L GE Lm(Z NZ:~ # N"ؔ<1 O> O&-q= P,*0 Pw_ Pw_ i Pw_ R$21FN Rʟ 2 S- ^ S-t S3{T S]IK T ) T ) T )D} T )R T ) T ) UhR Uo4 V~Ot W! w? X -}qZ X -}qZ Yp!ayY YLt8O Y޶  ZgM  ZgM k Z˙  ZsΟdS [ $CR [ $C \6*R  \>i ])3 ^TC_ c ^<?s ^yNж j ^;3 _t  _ xY _"h `[*$ `ӽu˿ & a| aD[? ad% b/х  cHQ crU expZ ft}~  ft}~h ft}~s ft}~| hu9K? hl/+ h-G , hb+ݵv hb+ݵs hb+ݵ j$rH j̬@J~ # knR kv:? k";  l=2(D lU9] a l0: mVe)I  mVe)Is n rYg , n+J. t nqcޑ= o Pp oM\ŤR pn/hrj pn/hr? q}  r { rc]L t6 t6 a t6t uS_  u፮W<  vX vp~,( w>: wasOD xʢs81#  yHJ yt zOizh zOizh $ z;,  z;,  z;, z;,s {hӈ }ghՆL }z饰 }ҙh)N,s }s }s ~0ZN 7tj 6 ^nR w*žQ Oq:E  =" =" )? 2. JS :f'K :f't: :f'  :f' scċ >0x? Z.K Z. Z. ¯Prv M,b Ě~ R *j  ԻAg [^2v: $ z|[ VlAS kǓ@U c kB  #Li #L\ #L >_g =w D0% =NWR 8;A | oҊ2 + -7j -7  -7 $ -7 t s t j  IWB?8 i IWB?8 @Ρ T s8O  +?`D| +?`D +?`Dh dAt l7y? l7y? xdsY xdh: xd ( xd i Kdat Kda 1uj1B;5 |xw5R m c9= HrO kV kR l9  fqj fq , fq a lj{K 끞? !ba !ba r4j r4 շv i +9 ʆبv0 2:&p $ RQ Qf D L 1ȁF {`r'& il9 í  7Du f  saxy gK  ;? B?N| iMvm s 5Nv FCSZ y}vI y}vI  y}vI l  X0   J? :-_[ ɂbf-) , f9 ;qN  ʯK ˄C[ ̌:Ot =%^ H& Y[6j C!8 а2"GvS _naS ZAH a ZAH $ ZAH  ZAH , ZAH  ZAHj ,lky" ,lky ҾwR. ҾwK, ҾwQ Ҿw ҾwN {zW/ !'C HDn{ XoŒSR ~C% ~C% ~C% 8zi#  UŌ էΰ*΁N էΰ*΁d cg \ !ʪ~ !ʪ~ !ʪ~  OZ L OZ L {,ׁ? 8K  i W\Xl \ W\Xl? #? 2"` 2"`R V Vs ')Fbv ?H b  ao C =Pd) o-d  o-d e ޤ1 ߇ ߜ(Ք%[ ߧdKs &۾gQ? w44v Ϭ't 6m? 6m  #@}j TVq i Y#  ~rp iI?ŕ I?U 㨝qT$G y)  QCUҶ i QCUҶ QCUҶju QCUҶt QCUҶ ( }xM?   2֘:{ vEҏ \ -m -R -' -D AMG Ve(  *ohiR kϩ ~թ? XGBs 8| 8 s ~׀=F f;wA , f;wA ( f;wA? HQZ HQZ QG-~ QG-~ O\@L? j=+v F* p[ W̾ %@[  SQ@Z SQ@Z SQ@Z i SQ@Zj zA ) zA ) zA ) zA )D zA )Q =eR ͙ Z bKv z=fg =fg es?4[`eM^ #kJ\& ;X;X;XQ RUQMscȅMscȅD[F,$c?.[ӻ}5'+ӻ}5' ӻ}5'ӻ}5'ӻ}5' eORO O_r|_r _r e_rtmE!m:b1|1$ 찊S# 찊3}i c*5k3 )5k3:Je9&RH~ RH~ gij~LQ\ LQ\-ۨ=a-ۨ=v \q0 :X?X^/0H ^/0Hv&d > !X!bkY"Cݍ6 #(\"%evӃ/&vZj'f(}yRS(V(F4(ڡ#(ڡ# )Tt +*#*( כ*t; N+6+6 ,,q :0 RK,q :0 P,涣9v -%qR1y=;?2"q *3M3M 3R3R3RY3R#3R3R3R33HLj=3HL?3HL 3HL 3HL i3HLR3ƻK3ƻK5Y8 5Y8?66W&. a7r;s 8@4ӢR8͉ \8*]f8t4Zb9P$6LS93 9o $9i :G:G:G $<(_ =0@c== = =o J ?"?;uyBk s?^$’+9?d* A)ϮB0Y^B0Y^jB0Y^ iCiiy% DCRF+#F`HpΛ7Hٿ mHٿIZbv IsǢJ**KJ**K \JD~Kef*:SKx+GS0Kx+GS KV#K3/)@+K3/)@(K3/)@K3/)@ K3/)@Mr4 NX%MKv[9M ,v[9M v[9Mjv3Ia wU{iwU{ixi ,{>sBC {>sBQ{>sB{Q{{0g~R |^̼ |r |uZ |uZ i|d?V}z}z ~| -~|F~| ~|~|~|~%5iLU~W‚@>  ߊ \;H c;H #bJVp%jbЧ[?G%?sN(Բ$Բ$^+TdD D  S7620 $P a Q FQ FdWSxr1=s p Os\H7S0˱   \FLM FLM?VЭv wCf׋-N\@\2٤Ȼe٤Ȼ ٤Ȼ mN&s&? & s%#VGJxs\?Jxs\Jxs\L~j ѕwq tENͨaÇ׈ZG`hS, l D, l , l ,I@  xJ_|a+KN8Ya_3e$:_3e$__3e$K_3e$yn% , \tHe1sEX˩F EX˩F ħ ħ g 7W7W:/ l[J@ \ #>&T jMx)բGj FƀT?ƀT9ƀTtyZISCr $"Cr Cr iu) ,5 s?d,s?!2[XhS)}-^Dc2ʖc2ʖ c2ʖ| c2ʖ:v^ ,i-,MG) [/WP9LŇ_(%y?? rl'N4kQ v#|v#v#v#LJv#v#S]̅jw]̅]̅Y ]̅St*St*St*d St* j>.RN*~5q; E%ꔁdL{\ŅIJ$$(mR Z?Y6@ʕRИ@s. . ^Ծe`^Ծe`4w!0P c80K8080PZ (PZj_*4 KuF ւF|/ւF| x!b \ {5*j  Qj OO OO Ȋؘ?% ,ؒn 2E}2E}2E}2E}I:_(,B)fA']. 匞 匞 (кsкtкkк x(~; @XSݣj Ҵ?ic" ic"j)4[w0vg  gtN Y?7O= ;8 ( {v(T+[жZL9 %y  2 )0 L󳀃 s$.4S I3ӈʁI:bʕk_y s%ۦ %ۦ̍Qʋ ̳HGinY?{CB ͻi* |OL$ ?$ $ 5z5zZV.. (:wN Dc$a7mGRόG(v϶qo NQ϶qo RD@ ױech $jvs_?% (k>`0to #!QPe SojӁX*S -L?M1BM1BKպN}V ҰE\ aS>Z z澨[-?]_)]_ܕ^ph` SU' cZby¾ ݃iwݽÎY esk<Km ⢃ޔL]5m֑N ӒwGstGsGs^_D* pD&i ,MFeZPj;XĖsg lQj竝nZ?竝nZ %Jnڏ N茍 Z5pKJH[v!}W}W霽'P ҶzsvY1i[ +yLH@jH@j H@jUhKD?>J_~>J_~R>J_~~sJo S!ݘU }ݕ EQ2s'S 'St'S S"=XB_qi (qi d@` (d@` $d@`soesܵN׹ ,×#Ex̚+CT,h T,h #S-L>#S- ʇԄ 0?Nܲ1N)% ? )% qqqW6VT, cT, 9"  β βTeGS e@P$8wn - V^XHe ,8^XHe)^XHe ^XHe^XHe ^XHe 4`oCbrI#V m0Vj=eNy} =eNy}9=eNy} =eNy} imr8#mr8d; / $ۦj)ۦtؼ5ؼ5nY4nY4 $"h? 2gYe /j]S rt e  }H8C%C%C%_LSR h@vWmX޴-$޴-#ڂMs\:O \:O +JSR$\-$\ \ $\ $$9o2f%@V%@V (%@V% N % N %[ X?&S9qN' kN1(&)P|*y}*H[e ?*pGBQ?*pGBQ*,; (*,; e+ێn-ZHj,/YoYi/ͲL01w1] C1] 10$ 1RA{2IHg m2+?3+ 9F3faQ 3qcD44s a 44s44s ,5"; ,5~zƷ 5O6Z7)ݎuP 7)ݎuP A7)ݎuP 5 7zW 8Y8ЬR88 @ 29Y`;U9 K#9q :b!t< >48DDJ>VF5>?5c]>?5c? lBd??+ X]?+ X?Jd@?P_@tA* B&֒?BQPC4BQPC4BQPC4BQPC4B%BRBBC0gCDbAkrDbAkrDjD?Dfѕ 1Dfѕ EΑwtFk 8 sNGdwj-jGdwj-sGLu>dGjgG' d HPbI#[*} J&vJ& J& J&KiSPRKW?#L;Z?M)e?MӤ~ aMӤ~N@FN@FNT<צ7=5NT<צ7=?NT<צ7= NT<צ7=N'YNޮьl]P;  PvPۘAw j Qg8} Qg8}Q1\w"QkQCsS#v;<(sS#v;<(?S)̻1RS_m, T). Tb8W T"GkTYNTeS V3 $V3VR cW ,nX*O@ܨs X*O@ܨ YG. YحbZ- ZX\uk \F, %\F, e\i`'S\i`' \i`'U\i`'K]0"odv ]m&s\%a ]m&s\%]lJ` sxja֋|$q a֋|$qjcUsYc$`{~Cc&dEu)evVzi.êi^D9i^i^Q i Нi)P#?jg okKƔkKƔkf!M]kx޽I"[k!D#ljh]^ ljh]^ ( ljh]^ ilwR g lwR $lwR m(}J' m(}J'm(}J'nyi>o!>`oI1 q{5_O s\e s\e St_?tH" (v}VL'mv޲w:$Jn?w:$Jn x/Kz xyxwUx8 xESqNxESq{@ ${~ # |. | єQ (|И2F?|߆ϗa|߆ϗ~5 DC~s~yl7u7u ujә' Q >4|im i ` , `k#`k`k`ktr!DvmaJ??iP  w _[;uU |/BԭKz4x az4x Ų51Ų5Ų5d 2NGʋR浍ONggg:gg (S13 ܁ɳ1~7ubH4an"(ʡV" aa1ݞLv"f!P # f!Pg 7" 3%e d_jMsVkRmNo 9 Oi- Oi-tP1qP1qLPɛd (Pɛd Z( O1`F}b?3O1`F}b+O1`F}b Sa]tnFt32}`@2SB=t( B=t(B=t(B=t(G'vG' , ? ^vƺZprv[u( ʁʋ#?Rq A kx A kx_1kfh_]Oq !!ϡ32:>#2:>2J"D 2J"ᦺUKgdR` j!`O!`!` !`^ƥ (^ƥaf_5%}/_5%}'_5%}#_5%}\5R軨`Nb $2b #b R$Kwv~:"PM^sr Dy14jDy14cDZcDZ cDZcDZàQR$(jԥddC/ddCbjuR06L_  $G%9i٫a 9i٫TFf2'`Ff2'R#uȯ VѰMD9YqaYqZYqYq0K a9QM tkQJ JJJJ# 3ϐ[dPdPdP ,S?9VZFN9VZFNa06!g}I[o+ vY |sbtb@&R"ƿ[q #JPP< S(k \ n.r7}#=}zt)!6D*N;t#|BycByc #-y! lzTlzOhw?Z Ohw?Z iOhw?Z ( Ohw?ZtOhw?Z Ohw?Z Eߴ]@Y?O&?O۷hƑ shƑt-<^ X<@8(,^ŘK B B Kz/ , EPspx  r!MM? r!MMœU7h،#t($H]j6R "?Nyi"?Nyi#h t#j̾s#Ӏ ]]$5Sst&Y'17yR*'D 'JY1v( P+k)Q> )Q>)Q> )Q> )Q>a )Q>+mB-u((C-lFu \.DT/(eqw+ /lټlVI[ / $ 08L ( 08L i1P\M1 ^1ƿ63}Y&8#45ǧک4Z) (4Z) 4Z) a6{jME i69e \69e7QvMR7QvM7cVԟ H#7cVԟ H7cVԟ H 7cVԟ HQ7gM  7|18* xqv8v}Y8.pK 9 9[S :vh:vQ.:v :vY:vK:v:$=\V:5#`iv ;1;l,-;l,-DbY?6 $&?YZ (?7ݦ9O?7ݦ $8?7ݦ ,&?7ݦ?7ݦ ?7ݦ i?7ݦ a?0gpDY `?0gpDY&?0gpDYj?f \@i3A_R˓" Ao1AHJTA̲u> $B^4$ SBOZBۣS (C[8C[8YCq̵R D|D EkՆ?Fvђ-5Fvђ-_Fvђ-RFvђ-[Fvђ-aFvђ- Fvђ-] Fvђ-$Fvђ-QF0i=NG7$o Hq. (#Hq. IPD.J tEA#JڦjJ /O*J /OJ /OJ[uLqs|M#[YM#[dMD8\NaO!1 $O9+b iO9+bOBkOAݙLr cP -PB@E PB@EtPB@E Sm|? SJw, +S\+y S_/P" U~ V%VA/wVA/wVA/wVRe3X W_O:* YTv6h5YTv6 YTv6sYTv6 \Y.Cg Z!_[ NA ,[qW9j[D}-K]uIK^pXj^U\`Wy daU &FbxbxkbxEbxUcbx=bxbxjbxFbx0b. b{Fb2.dj6 C>Kf>f[LUf[LUfy?7 f"K0KgUg:ۇDh0Ƹ $haJZshaJZ ,haJZiY& iz8i3ji3jj&jkð< ajsayN_jpjsayN_ ,2jsayN_ jv% $js jssk| XEGkv0mlkv0mlkd%+kf]&k??l3T $lq_Ց/* 2lqfBLl*nEjl*nE (mՃ m Mm M $mE53nqZomb0SoQooRp>/>X \p/N#TpTesqQ06N qֿq%crHpSrHpStwM0@YGt^[` tR;n3(v=E_vS8j1dvcW: vcW: w#3w|R~w1-y^t y?(7fsy?(7fzh= (z-`Y|V_?|d ht |d h}sb#~$1 $j{ve{ve S(8$H:%s %sRj  U-ZkD3  ZS2̇i?.̇i KS]^(jB?) .St"<St"#^qj>YBkR,>YBkN{v ! {v ! w)gj)gFB FB :#RqS pHw:R$Wb! ,|R|%ѱuJ$;D Vl1%Vl1Vl1Vl1 Vl1jP)P)ИڨUyG4 &4 F/?M> M> ( |XO s7f t |!DmxdRZ~ @1&,0f 8h=}W!馨+ s ;.b .bVy" Vy" !AI:0A~n`:hnR D>[= t *: /:/ɞg{VKɞg{Vk4B>~9be S#e<"}vїBv0:s jhKq̸ClsDlI- ,DlI- [rEU uE!5KH ڥoNy+Ny+T-p a0$G i5A~Q5A~5A~5A~CQ:guLQ:gu !*Y2R!*Y2O]R* a *j* \Hِ \Hِ \Hِ\HِC0Yi #CPc'?Pc' Pc' ([QT*R/8A@gK~# x A'a v[@Ng7 cNg7 [h&r #[h&r \[h&r [h&r  LM P0b1P0b P0b LSf 6JC b[2]Jr#[2]Jr ރ > c $bC QKQSSę( {t) ʿffK 0 a ^<<< Y$1ѻ#N v| I^uI^uRs ?TXQaD<j7 27'  \!}xD0R~<-P[s_ Lm땢)- ?œgn8y G Y !T$&N kta N5>taa}E 8|? $ߜ4(Ĵߜ4(Ĵ֘H׷F? ׷F (1ZGCd@P{=@P{=7@P{=R@P{=@P{=QEJews $|؇V ` A^ $ۓ{Vt_ iLN$^Ki?R"FaUK7A xiZM?)<]#*S.YY ";!| Q% ";!|   ";!|  d9? /)EP4M۩a?LxO oD| 0 \ ,s%d@WHPɭ׎: h,iY_f__f_S _f_]kU R-.^v^ΞQ 6A`V=o,@Z ^7ko @xYu;U]0e]0|y y $jcjcjc , <{{R {{d L{ L{L{zt zspR'r4JT WW?$t$/$ $$$Q$Uɧ` p8 , p8 $U p8  p8 p8  p8  p8 i p8 #e #x^r#x^r $ۈ| %YH%YH' '' ' (ÿqL0(ÿqL0 (˅7+t(Gq(P)8}8 (U)8}8?)8}8s)8}8 )Zzb)#|Mj*kL_H;Q*H3 -Lh-Lh%-V?&-V?j -V? ,-V? $-(Ek?.r%aR. *1_Y|!?2 D2 2 2 K2 2 2(|Z ! 2(|Z !3"b&T$ 35)Q4\B3 s5-~9 5dA  5dA ] 5dA 7A&>b7A&>7ŏzL7XF 8<L]8)^j<_Jls=R7=zf-j"=zf- $?E c?֤ 3@@7uA$@վ (A$@վA$@վ A$@վB³-QBoqEjBoqE BoqE BoqE ( BoqEsCYCYC@%etC#:D2DWڡpDWڡE E0ERft ERf FF/  F1@= 3GP*<*ZGQGQHW鷟CcHW鷟QHW鷟HW鷟 HW鷟 HW鷟fIRA IRA $IxYKJmJfKX \K" = (K6yQ mKZRL/7k L/7kL/  L/ L/ L|\g50N NC6, OֆsOViFfP҅ PzDi?PzDi gPG#od#S­ ,S­ S5Gs Wݩ'WݩDWݩQWݩR_WݩXl/@Xl/Xl/ , YGf7_YSOYkZtW  ZtW  Z+W $ ['w da['w d$[BB5W\Sܢ} (].Km]. ].j].|_ zj _ |sr#>|sr#> \&KRjly#&_N@4 @4 @4sK&hf4b?f4bj:KeZJNq iq q $d 3 , d 3d 3s>_{ +x{6xJS ,ήۧ  qaLbeCILbe0Lbe~9w@ 6$3I(}t9 vy jgĶRi3 \w 4 w$^6vku *H{) *H{)v/*H{) *H{) Pw(8Za Za /%}tU)U) U)RpL`?J;Gd+KR~W? KR~W KIK mK K $($^ׯtNl{S [ h ~9b1ϔC1ϔQ1ϔC1ϔ ?qi2"AP5? eה ^9;؅aW #8Hįa3t; ,u+ulss^B+t ijjE; -qrk jƦX,ƦX,ƦX,R<WAruYkM@ g˒?EM hh;|9ѯ{\1My <N'|C'|C'|C9#a3.FsL]*hHX 2L2L \2Lh^)%YV\ jTmt*#kh*#V7*#S¡瀏 LW } !C&s!C&jüqk g$ i *^~:WʮWʮ 2VwЏ_Zy з! , 2Ucd5yu7QA5yu7K5yu7 5yu7R 5yu7H H .H H  SB bjf bjfjbh ,)Ĭ M. ٕT^=R7"|lqIڑbOUڹڻ."  xH?9? caM caM[ kSTD,kSTD,ZhZ Z 1uߝ1uߝ ,W ,!хN2#HN2#HR stkR=R'OqNϢvjOy`%Rt jOy`%R jOy`%R jOy`%Rs^3 5Q^3 5#ay)+Ϟ33B.$& >imFimFny d.iĝ!P$utF$utF$s4ٌ 4ٌ ,4ٌ |sZ i sZ \sZXDgjXDg?̫꾩 5 2{?渱,k?43<SUT,Sd!J%؉?%؉ cBם)Z@R S# %H \J?ifz?M6L lW:(-hjj hjژdҊB,BRTs?!IF߲?tr?ms)h)hZkVf ZkVfY42Tm ]AIwӛ2 p ;2R jzJUև5 be qq aܒ / ( /[)ͦ6 W. { &:z 4[jy$zf+? T Ϥ  ϤDk))q?'?*j9+(tDfs (tDf G&ʹY5)/ĵ` uvf%v PX 8PX PX A޶Oo.?a@ $a@?G; ]G; {%`2IZ+G#Q"j4ϸ|4ϸ a'ީ 4 'ީ 4 ]2]2 Tv& zA@N ս.ս.ս.nǛH ('[G xe.zD g wEG \!aZ"$޹ "$޹ "$޹ \o"$޹t"gcR#jřVH#jřVH$E泥3^$[#&; a'y'y',L ',R'v (FL \*Ybё *Ybё+HOt7+HO +VGNR+~ ,qI?.j/AoFK/gN.T (1ˎ 2"n;t3e;9?83] 3]3]R3]g3] 3] 3 4#&PB *4 lm 4 Y4 YK6BB.|63 8]-!D"9q` :zP°;karK;kar;kar<.Է#S=+'Xwɂ=+'Xwɂ=܌y>B>f5 , >f5h ?'R+D?TdHD0?TdH?O?,dP @r:AeUhAWP BC3B') C鰉 gCHF8 *ERIwSF3Gs}IH6:jH'=qAF $H'=qAF Hh2TtHI<HloZIS] IS] J4U<vJqlh5uKŨ)K4*RLS'2 Lh};m M9*N"uK NgFYt.NgFYNgFYN@N@N@LO7_LOVɨkOub \ OubOS@P Ȣ&?P /ZPeʧ aQiH 3Q3# R!>)RQE<S8 sS8 sdT?j TM 6i .TM 6i$TM 6i TM 6i (TM 6i TΎ TΎ U93U:u UJ9C ^U  $U |VŊ@ VSB X XI) Y þ ZJ&jZ_oCu -\kl4v\\P1) ]l]l ^J"^EMRa) a) ao:sSao:sS #bѷ (c7$sc7$ c7$tc7$cף> 6cף> d5 Q d5 D d5 #e 3+fRe 3+fNe 3+fe`me ezACezAezAQf>?. f~z\ af$@PfHJ-NDg*eV_Ng~wg~whd:Z ahR=h Oi%:@j <j6mNj@GKlLZl$i) l$i)l$i)m3w>$RmB$VmB$PnhSo >.vso'U?oo@ow toөoCh pz,˔opz,˔p3-j g pI~pZmQ*pZmQ apZmQpZmQpZmQ|p{y`pǶ9驽[pǶ9驽q{!NZ,q{!NZ,ryVr'()s# tD2#ti-*Nt7զ t?]t>jt> ٧ m? J JtJ i  Aq$db/6 #b/62 i2j ۿۿ]3ۿwT4 oCA p4x (:MbH6RN<` aMN<` sSҡDQ$2ҡDQҡDQ ҡDQha8OPij >KRjp0Sb| jS0s Ў%=<g"+N g"+Qg"+RcfE f&Emf&Em pf&Em ,f&Em f&Em Gf&Em i4f&Em $f&Em7 ah_ |Պ Ѯ]ƬVNƬVR5oj+%PFs%PFh ,3(K鄫R  Ur@sW r@sW r@sW ukk4S^)~a-i* #vw 7"7P 7"7P 7"7PLt7ar ubfuW -șH ,!-șH -șH-șH (-șH i-șH $ƮI ` \s` \ XR a_ֽh;K4G"G" (*cLvH(*cLj2j ,]s ,]Y ,]t.=< Vl#pq"ȡ.q"ȡSzgc% zgc%tEȈQC#S :~"|DQHHH :FVFi?T wz Y[< BWmL˯oRL˯oR|?q&} $‰0 K?ptKa<bWN~ $T]dzT]dzZ]['<bϛy p1f Lj9> !ǩeˤ i)%+ ^ )%+ $Ȇ@/l:ț#D1ȩ|laIl( ,G R%~4 s.IL IL?ILs@IL PȊ#B NPȊ#B PȊ#BtPȊ#B a? $ ĝa s.cDz mxt`?cGl-‘a-.vՒsՒՒ gչj!Vy VdDGQf4=,/!֛C sF x"M?+x"Mjx"M $p^N ) ΥAR. gnYB ( gnYBsjR}`Nۄ v$.+܎FҖ܎FҖ ܏M|ܨ2 ݒk/U t'q*B_ Lz%0դqG" qG" $\X #Nu R⧣t㿆5 B $B<L  aVQ¬th n9Z*6>^1zDƆFU -a -a> GKUULN-N-#o& (}(}(}K.a/s?J7 $  ;j=^ b c(-y a.w!O sti "#"~ 9Cz sh/H#*ymJMymJMs] R%] Q#] 6}R|S< ׸ ּhX]ӿ]sv8_'kUU y&.Od~Q,O $b'v&O_1n *!&O_1n 33 3S@Y\*#?*C]tS+0p|0?+-?,a #5-!~._g.[E2/ԡ.<h/=]c* 1Ff67[1Ff672?7R3#423#i05Rr5Rr 5#&  85 $8NR8Q~O9fFN98h 6R9gR;`;`;_K L;`  > >> g > s?Ѷv?냇ǣ?@I8Ayg@Ayg@AiBPy+BPy+ B-;BCw6F[)C]DQODQO DQOjDQOD݆ ENbEWW ,EKsbTtFH ? Fٜ-`Gb7VGzZKH&CPK5H&CPR H&CPHa1MK*[ͽ~ MQ~h - MG| iM[ N*j@CVNuutN] `q[OuM?NP#Mc`S SAS S"S񃜱G #S񃜱G $ S񃜱GjT=aTPTkUsUcsV@"DV@"WZAMWZAMXi%̠> iY-)8Y}^Y-)8Y}Y-)8Y}2Y-)8Y} Y-)8Y}s Y;w`W[YV? aYV? $Y(0?Y(0h Zo!U,۷[-(]\ i]&ک' (]g]jS]]A ]m; a]m;]9U l_G@2 "`V8zD6Ya2s-Xjb& b&bZsbZ acɀ]cɀc(!|3 jcfcf mdisd g d g ,d gd gjde^ (de^sd8ieJ!hBei4kei4 (fT\g Md g(h^r#jPGjRjӶ2ـNkMvvkeٰ (k(( AkKl !kkkFlcM1S lcM1SjlmHOlmHLDlmHZlmHlmHlmHlzMZ9l:< glaʹh: ?s#: ?vFyFy (b & D$OnJ0R  j/ j/ j/-UhY'QhY' \ hY'hhY'hY' (\b  hʽ?"6| ]`or H? H M ThTq7]#@nT \ L{ L{]0n},Ku-*ߪ*6nA41 (N Z{ $@ɎR`FCX iLYN ,7lr?{ { SwO $3N 6߶!R$@?;yyh $a/IOsn$ d`sCJf ,]'wo-2sRKaZPKaZ Y ( YsY $ ̝…Q  ̝…D  ̝…]@|HÇNޚ^ Lޚ^ a4򊃟4򊃟SQZ^_\]\] „GBYߥ}ŕE?_q  FB[4~uIB +Kt"B ~ RǢZ ǵEHej m \QVZXmcLZXmc.ZXmcSZXmcZXmcʳML |lFz ( lFz| lFz x FV-iXD"RsMt tMt al( l(?puR)ABR)ABϬ"y ϼ@Qro~1Rz  az t z Yт*`pYѰ)TQ4Ѱ)T1Ѱ)TQ#ks L(dFp iЁ!lԷ#$UqUqaUqY ( )`Sr>h fXQpfXQ2؍`% !+!+ٶx@7] ;U|V)N{H̨os{H̨o J س+#ޖ :"߃zrh#Q)Z?nK/1Gdzt$ tE.Fs߇H&sSr'< Sr'<E^ a 0-b 0- , 4?-, 4շNUR‎ cJ 0YCƼ CƼ a:CuB li"2U?巫c^ݞA a)wE淇g, (ii?Q?T?m j0^! e&EDx 1N2{ ׌~M^`PQs[|CYC,]Bdf)bdj {v'j1o>J%ug{yJ:YV:Y:Y:Y8^ _Xq)`7Aȓ WVZ )WVZ WVZ @N{ ۠r$yUI?6Wjks*C/*C/K *C/X ˄  ˄t ˄ ( ˄ L# *H:QzkQQzk Qzkczgczg $Q?Q?/,b4Kv}]v}{AS -ѫ ?e~zfB<:XqN 8LG  \?j:zl ,:zlabc2ϸQfaRקKSקK )>Z)>Z)>Z)>Z )>ZP"!l$ P"!lP"!lU{~-$   Q=y@ |R  |L m nnN %T? 㝊  ʂu{I -M*  -M*  -M*|w'dB2dB2jdB2 dB2sdB2 e@$L\k{ \k{ ,\k{--RV|e4e4Re4e4e4|~@RK 梧6 MKGr 2~ 4~ %=%=D%=U%= AuRu sbQ CZ?8MLK8M]8Mف"  jS} _S} tLt}O^h=pY 9Y`-k6 9Y`- 9Y`-!{=e-L!{=e-Y"Kǁ" s"bt- "=# "Oe܂  %˖S %˖St&/UcRz&/UcRz&Koa'&Ko '4]p '^YY;*V'{ $'{ 'ة(a(0M?).\=?y )c /+\=qX`+\=qX`+) ,}>-ԗ,}>-ԗ ,}>-ԗs,}>-ԗ ,rNs,*03j,}vj.,}vh-4^S--.G+`.|G;.?t.G /L1 /L1 0T 01{ f? 01{ f 0YQ 0nK 1 WKv 2/${a2Fiڷ 2Fiڷ ,3b?S 3b?-3g = 5)5C#5)b5)t6M H 6 QrK6 QrK7ֈH 7ֈH $8=3P8ִ) 9C:8 -;R7!ܴ;1<1.Y2;1<1.t;1<1.j;͓V;4N*xWN>xW>623?>@,5<>wS_ >AV]>AV]>w ?ҷ ?# i?# ?#?#j?#@|aB2j K.$BM߫XLBR^ BORW%&BORW%Byg|C  DZ_Gw IDh%z )IDh%zIDh%z eIDh%zIDh%zIDh%zIrƘ sJ-âJ^ sK.| K.| ,K:) cLʶ%uLʶ%u]Lʶ%uR Lʶ%uLnrM`  ME~GM Nop *Oy8P![CP![ P![ Q 7CQ/`6' (Q]fQQΗʞR&-lVS@+]S@+S@+ VS@+ .S@+ TTBWtT@ UwNVkS8 WTW(}dW(}W(}Wʹ@]X>! Y"Jwee Y"Jwee?YS=u콢 $Y\K/Y\KY7U Z uZf[6"]D+ ]D+ ^j Bd^_bH` _R13D_R13DC_@uM $_?_ _?_ (_\rL_rq q_rq a_rq `u}h aa?o b<%i bu3j b|.ScNlSc ea$eeaf"eau e\8_)f5?Rfw }Og?{ g hitCsYitCsitCsaj+P{lN~lnV>mH6qmH6q$mH6q# mH6qS n# oe.Dp1 ݪN*pM?Hp֟ q; q=F,? qNRrD~2 ls.ò>'RsU \sU i sU t=b~t$lN t$lu;Z. Aul$biu]eW?vt jKv:C˳ v w D} (wdwU7x$.3Zx66x ayVP$ z%3h zY$0? zY$0 z[Ӌ@_z[Ӌ@?z[Ӌ@{)f |V|V |V|03 |׫H#|O $~Y/!vR6!SorL uS/pF?RXjkRXj 4`q4`q'''k''' rcnUY}d L\ i`L\?$L\ L\ BYs bS     N=Ѵ $ Sſ)?˿ \s-s-J*y)J*y)!.`!.` D| H7lV@l< v&BSz"WRBB yG  ؖ_pf #:6 )b? zoQX :n:: : :NoK BuaHq]$ "@F3 r0KڄthLǠ撫C OC'T= #=C'T= ^ C'T=|N J1 ,  wNX   eC0+!QXC0+!C0+!RC0+!BY6erX 5[$ {  -qwR\07Lʯ7  d kJJq ̩SޯAp̰ qgsḬ qg ̰ qg7 nن ?ErVRSҴP|1ZkD KnG$ {hJ(g Y{hJ(g \{hJ(g {hJ(g Јd$$RO ,ҩhE} QVJ l~ l~ l~?vgzy1Sӈs?{y w'ypk\Ncih5^v=|42"E4͑D2w5,,)s 5,,)|5eR6r!7o8þ 8þ8þ 8þ 9#Z9#U9#9#]: f:ͅ{SH1k;X"T;=,)b =,)bj==<a=P d=6Ѡ2>8y >F[?1}/jJ?{@  @ @UOLAt{s Aߙ^<B1 R CR/o$C7DbPDSlؾjFMXK aFMXKs0FMXKF6F6 F6 Hi}tJ18KJ18J^ٞ aJC> Kw TK #L'jL-h= sL-h=jM靠B M2?O=-˃>NO=-˃>L O=-˃>OA O P#r ? P#r  iPz&yQ aPx,zPsS>|Sqd sSz 3l"jSp' Sp' T(`  TUaD| TUaD + TUaD TUaD aTUaDTUaD TUaD |TUaDTUi UVP iVBzWd oWdWdWdWdWdWdXt4 cbY!Lfmh ZSk \ZZv[VI:I[VI:I[VI:I]a@]a@]4Wn?]4Wn ^Y4?^ሸ(fR_ hta}a!aФ aAk3%aAk3%aAk3%aAk3% eaAk3%b*|ŧ_Eb*|ŧ_E?bo9lgbl bld bl$bcrwesdd4dl) ( dl)dv}UdǨ tgQ* gъA^:g|4\9g|4\ hWj hۋs i ,:i (i i$iisi;n FiR0Rj=8 ,j=8 (k% kBS(*kz;+ ikz;+ \lTZ[X0lTZ[XQ&lTZ[Xm>+RmbF -mbF nxzx oJ0X ( oJ0X|oJ0Xo( ,pc A_pu pI? pI qf˃bDrU{ru60% ru60ru60rvӥF?rvӥFrQWjs^~= s s]uvu$Q u$Q uZPOG rux\wu\ wu\ ^w8F]^ y 3QzUT zUT {.͢|2O |6t} `͐j } `͐ e} `͐ } `͐}Yf^MP}]qٝ?}fA}mk}m]6}m}m}m~"kDN~X#/KT~X#/K% ܛ 7St  St Dbk CQe# k!Rk7k!Rkk!RkwKwKLk (#*~: #*~:Le@=s ed7 ӨUQg =nK%BErRD=V.QS6VwoL x Q _@`Q ቆr'LB .hQ .h60n?R =@=.=@=. $=@=. e"]<2so$0љ (bzAZO!>AZO!>QaE< m{RlvOL4şLX^ z,0ƛjƛhƥp ==B{ZvHR ʸ/!x 'ʸ/!x ʸ/!x;xp[ >xpz@z@b z@YЭZ:Kjк-mT9Kє3{ jє3{ sYذDK ;"jc.Kc.KԓV4Nԡ,{Jԡ,{Jԡ,{Jd"L96 "L96 ׷¾ D> D>?D> *3sƦ>Sj>SRݪA 1ޠF%%Rߋ<*>߫{~w̝1 fBI bX1QNbX1Q)bX1Q d1V d1V Kd1V d d1V PReU+ >{A x-xLc9|?c9|c9|j=7$u&f? jA yu iyu 0fR<_O8ڝΙ|%8ڝΙ |>:3]q:vWN ($Z_BX ꫾|R꫾|"꫾|꫾|]ڵ]|_eN+:b/,XN; .!Q"!L!S ! !!}o }}o U}o Ԑ:RWԐ:ts??;d`NّKFi9Si -\rоK n/sR?voSjvoS7Jslll1`^R 1`^_"#wN( yz,"dEO8@,D8@,Zj L}2? .NvU+.Nv#.Nv.NvA W3>}k 3>} 3>}h3>}tsIz?`p ӒNӒ˺4 ?2KƃpN}KƃpN!KƃpN KƃpN KƃpN KƃpNKƃpNo@E3 mYo/ͬg3MqQqDE qDE (qDEc cY%S Zޓ#N4 35*4 354 35]4 354 35 tf X+ Xts X ($ ➝w  ־y  i  i  8gO Ja[ SSR }z͒N / 4 WV!# \  WV!#  `M , `M  `M `M Jm? 3^`RfQNZ SZ Ku jֺt MQ h  h}ђD}ђ 66[dbx?ϠCM/p r Y hmzT x4$:J4.Y32/bv@Ⱦ& ԵԵ m;)WWt`'w,`'w i `'wjwD\m{*$JO ,s5|Z;Z;Z;R1LҮ]|?) \l>= \l>=]"%=x"%=x"%=xD"%=x"=4 Q"IVq?""rHeos#!" ]#!" $xm c$E - $Kc,$Kc, $zb8$zb8 %ySHe &g>?G1&eV'$(S`o^y(z=Bt(a|Sj )*mK)}5 *&|7q *&|7q N*lb!a*TCY*5CO e *5CO c*5CO m*+m +Hv +/+vEI,-Ƣ 1@ .o֧ d.o֧.o֧.o֧.w-y[#.w-y[#]/zA:P/zA:R/%-/v/6<0\<-0\<-0eX1{Ĺ1|cpf+Z(1|cpf+ 1^%1pI2f}|2ُIR3 4U`'64X50;?5&?%6K{6K{ 6K{6K{ e6?6?j7be e 75$8K<=8#C K8#C 8k.9?8k.9 8΀9qlf i:u`ֺI:|S[;_c3^Z *;= m =+W=+d=+ =+=ē! >&A?>8؟ 2>GD[>ǷO>U<?y=\?6x?ѯyv@ A6}J ;A6}J A4RB; B; b B(m?B(m9D E D E?D EEjqEjqF*/wAF*/wA F*/wAF1wyRFzs F!F{KF{KSGV #Jjl9 -Jjl9Jbi[Jbi JbiK JbiDJ!GsJ!G \K9p\ K9p\QK<ԺI=jK<ԺI=kK<ԺI=tLl-? Ll-?L즆YL즆 aM(M(MZtbMQ˛+ NWO˄í (P ,i #PB7sPB7QEzQL轌DsQ~ov Q.<?RѬjW>sRۿ].S,sI[S/.Tw(,RTZ{U;_ |V< `VRa V],g -V U_?V U_ X3 X3 iX乃P/<|X乃P/< $X乃P/<Y=/mY=/msZ g'?Z1fȠ?[h [+́T[+́T[+́T\OXs]: (]: $]: ^57Lˑv^A1w2Y`6'R`ESr `T[a!6#ݻ a!6#ݻ a0gm b)C5 b)C5 b=_{bZk2^ǾUbZk2^ǾbJ $b`(;b`(c" c"ct $d d9et"f[8?f\{2ZsgWX #h,wQLhFxJ?hFxJ?hSMi 'i}w2H?i pj@EjXL,Fj}btj}F&sjq~,l`<@ (l[3md?naHnaHLogzD qV`orO q", \qzsYscX9jt 8Qt 't9t ' (t ' t ' t 'uT^Bkuؖn5d]+uؖn5dw0Ew@&][ xi߄\} x`'Sx`'yt6{W3M/~),. c f;I؋J siKt iKk-;RzZ_5 hzZ_5j|kU( a;l SG GGDʄ*ʄP&ʄʄàPRѳ \Q~ Ӱ: $Ӱ:Ӱ: aӰ:vӰ:ކYsDȧ s$) _9 e7Ny]7Ny7Ny7NyY{ep4 ip4 p4  ? !R ! !UI/IZI_!sl1# ;7#-hԼO:  D?  DjDlDDHk);?Hk); 'N3[5] c( #/j€&t –, \¤rSc¤rS¤rSL¤rSS|IG` JC(I i?3 3OmH&j όJ,%Cō)#S. Eۤ d_ 4< ʼ,& 'vm~zwVctgEʢU͞G # :-hlL`Ȣ"`ȢtW ,ϞXg aGqTZGqTS+n * Ҷ8tzGԢige ԡ^D뫣/? ՟]hɎ¤ Ɏ¤  J9T2&t&RQ14|׹z L` bL` sRL`  L` L` L` ہKہKJ%/t %/KY,r9.\K?ڢ^ʕ?(?#rI ( (?#rI \(?#rIhVہNϺk3?iK0FP G}7beĸ?{t' NE)}WefKJ "ޚ M aި{6hZb Oojs Ooj@ Oojk Ooj  Oojt=ujNsUdeh* Ȃ cs Ncs cs s(0 c -t -68j?68 6868 ,I:^ 濄U G \: c 6?x+ x+j_PYj_PYj_PYj_PYQY3҆ (גt W" s:W"0W" W" ,되na (#되na|되na $되na9t]@)j ]@) ,V<9 ehjeh?җY jAapՖ6$s }dHL+޾N򧛻 򧛻ãbã02em a j]3'-`3wk`3wsπ4 (π4te" e"SFI FI Wʇu &x3äR)&x3ä&x3ä &x3ä1p] PsT5<UKƴ+l ƴ+l .X|͍>Q^G?}EaV ?}EaV ?}EaVj?}EaVDC iDC eDC  DC RkYP( ;$=1%s_ug w cԎefS " S?]  YQ Y Yd  Y[ Yo8 NbHkdzAk dzAV<]t'2P`t'2P`ycj?ڄi S?IkS?I`t !DȐJHg3JHg3U0] A( jΨ s+ U ƔDwN6N QUC QU ٨vnOZ 9,!S iu  c  F}j? PR  2ed?Cr͝k#7FXSWu2ƅ;ƅ;9D86i?It;O -?  -s -jk;'tJ;'s:;'jLXXL!!!WkyABvvgh}(H̡! ,.2]ZC'(  v]X`V6_M?M|M| )*_%zN tE@=t vz c!gDO! Ĥ "^t "^t ("^t "l:N<9"ۤ,U":tbj$Ց]t%PBc &ۺ q?&U%Fjs&U%Fj|&X62U'?\K'>]s'k'&O -'I`)ta ,*A5v*A5v*A5v+#o$ 5# +u b9-y] .F# .s/f/jIl /Lt/\,K 06vh0vjO}IS0bV1ʀZ 2=n=2=n= /2=n= 3'KH 3'KH4^_?$ 5,̖ 5,̖L56:%a \6u;K6['τ6['τ $6['τ e6['τ 7/ΐ7/ΐK7Xv|?'7Xv|7^, 7^,Q779a_ $79a_ 8w@E9Y8w@E98Cck:jBj:jBj a:jBj<_ X=J} s>,?6;$>,?6;D@rF -@D"2jASmc ASmcA-ۼdBRl/[Bº #_C5h"| C5h" ( C5h" iCyoD):3 EoMEoME߹&i_NG_0G`&Gh?.?HfRIfnIIJ-_ ;t$J-_ ;t $J-_ ;tKzy'?K͜R>} (L0ImެrLc1çL* LM4z  M4z _Nw5),w &N Oo{OFvB Oq%^X Q-Q՜,, RƁc NR﷖]R﷖ T}I TzE8U>92g U| .VP!7 Vi-WSY$bZ%R[&r ([|[}j\p + \pR\~ `]\Cf\Cf ]d<^֋t^֋t _]K5% [_]K5% _]K5% (_ǕUj`S]V* i`VqK aVYSaVYSa>2 a+a+a+R]a+>a+a+&a+ a+a+a+bgDB2[PilFPilFPilF PilF#Q ˱ga3nM ;? ; ; } fԑ 3<} fԑj4} fԑR'5|Z(v!O?,ct aÀ3YRÀ3YS@À3YK#@j o>v~V \*m$$z ][#4XnN蜇,?^` s5_WCGTSGT9 $Q9? V>?bU~ bU~ $bU~ ,ڗ/zz ڗ/zzN $}iZ-"0?"0 uwsf_juwsf_uwsf_ iʓb}QDTܮiTܮiv7<v Q Q 7$j7$?4N P4N [?) % ڃ<[HH @+ č%?',8'bWD&bW bWbWbWbWbWbWQ bWz au-nR!KGKY?Wkj-=q \QY}]<^Wh<^W3%$?rbh{q%!vc d/ovd/ovd/ov]d/ov p/#y #/#yhkݬ E3>?4_!= I/urU*K&/urU* /urU*MEUME e^ e^ e^ p+%G<cR.rR]# q ]# q( f?( f ssZoQ3{Z ZHHj $S'oS'oD hl[Wk΋g€@A[°ޞ )» [¼7Lޣް4 e"\ č2h1Ļ5lŹ4 /s  \F(KYTHdjQm)ni97roy7aYǾFɖǾFɖR>ǾFɖQǾFɖKǾFɖq5/YȢbe<4J sɋ؃ ɋ؃ ' P' PQj}|[ݓ2T: 64T@@ +ϝTF #!ݒAN)m^ qTpŮwlK>R (TzLռӐjhӐjhaӐjhԪ&Ԫ-&ԪԷI~* (ԷI~*G  xT*]"*]սNmveÍ/܋-kÍ/܋-sÍ/܋-Y Í/܋-YÍ/܋- gGyG? N3LjSK'DLD?&LDw&) :YN.jm :YN. ,  :YN.`D!`D!UvAvT/%>T/%>*+sgmFtkoSp(8ߘZ䍇TߘZ䍇 ߘZ䍇 ߘZ䍇6Eɇj<6Eɇ 6Eɇ 6Eɇ , A?u|+u|7?7?ٲ7v 7v 8W # /7:;FAQ ՝z*?0ͳ!sͳ! |jEU ,=޾I} =޾I}tEQ ,VO7Sh  xa< 0ژ9m -ylA/Oe?Ly  anZ?nZ (%P$Jqj Ugbfד[M?0OGŤ $CD%9b@iM&? @iM&hW `֞ϢD!1Os?F@+ \7 7U*W79~;R %K7=PRDRC =C]C C ՉX/wKƛ# 9(7s9(7t(4 7Q_N o *v9݃aX>?=K3HrQ a jԇ1F+LW!Ys8Xsrs8Xt)؞؞ el؞k=؞s_@ޙVa;U{u Rr , Rr 2 Es 2 Es{ }udz: 1svR 1sv 1sv Nom[  Nom[? {/dY  {/d {/d  c2f 2 @U' q DXR 4G[  4G ULч , YǏ({  `j J{޻? u%N -$OƫACyK2KTF _ÔcfdY< g'I -oj $~e #Xqk2 /f?^?;f?!zyt!zyr`GYtqO(2RM S ikM \55A7+E;h. KT  `u `Rl s!(Ke ," G "bx#Csq\ $#F^Q$莞nY&t(6t&tʈ#0U'<;L%(1W 57(,ל(,ל(NB d(NB (NB D )l#=K)l#=R*&nHC*26![Q*26![*26![*l4s+-*1a-mʞKN-sH \ .%X-k. i.5V\ /\KK/x~Ƅ/ŗ'Ԓ 0T[uh0]Q0]Q1VL \12N}#26{D|26{ 26{ 26{Q26{26{26{25R2c53#ʫ3#ʫh3/]5XӇ 5XӇ [5XӇF5XӇQ05XӇk5XӇ5XӇY 64b8"X9Mڎ9͚= ;)=>~Z=>~Z=>~Z=>~Z=2R- =hT/=mCD{=mCDR=mCD6=mCDs=mCD=mCD=mCDK>^e >H M>H M?a?)Y[@NЫbAS= AjpsA{C e? BPA8D5bH?DL6qSEaz s6Eaz \FvW4 FvW4RF!?Fyp8 Fv{H ޴{% mH+6oRH+6o,H+6oaHainP>ntP|i (PZySPZyQy`%'R Q.8NRJh2v RePd S SYػSG%͘T.)jT.Z T2"vUȫW (<VC~zN VM̛VM̛* VeYLW6% WTwn[Wo!YkAtRs\ ]]Q^:3? ^5L]_91 ei_@0Ұ_ǂ5_ `{nnA`Ē*iUbk`sbH37d1"S0d1"d1" dlaFd ;m;Rd ;m;ad ;m;.d ;m;f6\ڢ&f@ebDdhd0thd0jia<Nia< jdP  jdP k -l<’ʲlר? \lܻ@t lܻ@m MX#mD+%m].Ȫn*ytoKpL>sqN =q0 8rо $3rо rо tRte+*S:te+*tϿu tRtRu!!(uāp Ruāp .uāp $uv)vHbB wA x\ x\|x\x\ exsM|x偱IysH \yo~7z+ڭ- z+ڭ- z/ B{z/ Bsz/ BzSy}zޕ3{@^ {J{, {J{,{dPS {~y N{Iȍ {+;t|as |as |@iV_XSq>XLq>XZp|_ȭZg_S#F5> )%LMs>v%b mIzXeaonQh (onQhlonQh ,5onQhonQh \onQhg6p]Rd##K#ֻ+Iֻً+IًQb47'I27'I7'IP 7'I1k4 s's' ͭqYhS"k`LK k`LK&K'@GD "iN?S6;'VHHFѝV gIZӝ\S? ӝ\S !V+9 !V+9 ttRWzqIHIQ IK sZK5K5Z4Y80idAȧ AZ}[ M}c15=j15=|815= 15= 15=s 15= g 15= yW:/NNu?/NNub?Nc j)L nIS"l|^ >2Q.JO \:q9BRTuQIQ`Id`IdOK a))e i}k.80 Dl sEt]Et]:ʃ[9 $_btVO? nQrp?q6 ,L=& وؙt<ؙk 1!DJQ imkn xPO&-yg]06= -PzL|[  $‡$]j‡$]j‡$]jYª'?0uRR0uR~50a?&d $5&d &d &G8&G&G ( ( Ų~Y Ƅ ,ǔbogǔbo 0E3LtW[ڻ ڻK ~Ӑ i~Ӑ !C[XY p? 5~e̠ $pd̠ $pd̠ $pd6ԇTi:iJ|iJiJ (ϑ{ C6 XFS1C6 XF l2#^!W ^!W11 {11 ,11 911 11 Ҥoa=1T/bbSPdbbS,bbSbbSKէxpnpLpnp4ia3 *ia3 Kړd# #Y>&dNN _yz?I? NRn' Qqo.hݰO&ޝUtvq4&r $؂y , cq ]!In,?wk n,?wk>v m jhVC_@k@k gjl +ʃ $çM* yçM* DçM* m.çM* tçM* YçM* ZŸ ~5LN 5Lm!c悩l*Un 0z0z5 H5 5  5  5 _[p#O-.R)O-.R   M1~ e M1~? M1~ (c :( e쎺v ^׋MYaTxvi_=Ph/ thR ,TʠAW/2 9q b߱wgGd7eG`jEĻ =H \zkztHH \pW?ʰ+6ʰ+#ʰ+R [8[ A؇(# 44MeMe r]9@j$ޜJ _n|:д?:д3] ?,tY/:)zX[ {Pu{P{P5a\ Sh^I $7_ (zRи'_vO%"QO%"DC `pʷ Ԍ`2ZjAs% $ s)e  H H oW ? H(T U6 5|  a1d; , 6QƅKg$ jLgTˏU w #GˏU w /l/lPL% PL% PL%:9䍻f9䍻  s ( lMK(>`uJ UɣyVC S{[ _D?S9j!Mc(NH  He?@il?@i ?@i b?@iK?@it'C gv J , ,.Z?!( !V $!Z !Vf֗ {!^A!^AR"Ʋw"#( #I9?#bXe g#͘ Ov$ZJs $ZJ , $ZJ $$,%Ms%@%l~%`6 &^?'B` 'BR'lJz?(^D?)ۯ $)D} #)"yoN)L}e #)+v))+v) +L{ ,x?,OAa|t,i,;v܏j.".o".oR.">(/: /:k/:t/?ĸ*#/"Lo 0AgD0AgK0Ag0m$?24 39W*]4!vX 4!vX5m+@ \5A5"`Y%; 5.ћhn^66?9Q! \9WVW <$LU=}>]k>]t >] \>sZ.9. ,?y*?! ? ~k7? ~k @{@?@{@ AVln jB AW iB`l TBc?Cm0LF Cm0LF D` Л?EV EOEF8 FpKFpe FpG󝕳H-9`c Hh~ I+7yLI+7yLDI+7yLI+7yLI+7yLIݡI^IMvs IMvt IMvkJZ" c K@sq? $Kcլ]4Kcլ%Kcլ KcլK-NLKj] MVJ N0N N7ЪN?O.f4O*^454PQ*pt"PQ*ptQ7Y3WsQK"K Qd jQ JR,YBRX?dRhcRD2w_?RƂ"j_RƂ"jRѿՋ R8QyN ]R8QyN \TB =Uf+9RUjV1T WY5)W(b[C6g[F\\]!@<&].L+62 ^- = s^2}|^8CarW~<a߁\wc!j)'?c!j)'c/.K6DcL cc\&ߚ]j%c\&ߚ]|d!E{e -te -ke/"LdZfWkqB^R h+ mh+ dh+ h+ hib5Xhww hww ,hww aiE_v`?jy6>k2|G %k~lH]L7=lqn2lt?s ,lt?s mx@V& n^rnX6 nX6?o_joNF oQ$QYNp*3 u?y1o$ iy1o$y1o$jמ2< LR'ITǩs:[t iDR*XYN n E n E n EQn EKS-RWzd5 ftWq't6P ( 6P LW ҭl ^4 O>K 1K $kVa ϩҡA .wjfO *bT $Βd~$Βd~^;mf(f( %R/5  /5 ]/5 4R.HR֟m&^< a# #bLYN_ԐN_ԐhgVH2 \sS ixsS asS \sS `C mA+ FC 0FC FC (FCjFCp^ $&ehehH$1W) %ЉZ \s2GJF]@bP Կ@$ yp*yp`zXR  Ԝd[]t-? l1V2aHS^e3 $Ci?EJao!.-uo!.-uo!.-u:<\8G@ TvtHjֳZdRkG*R qY/ՎR $1&Lza $dY< Y7: k.ȫ=?aG%7Y'*C<)t<)k<) i<) a<) !Sٹv Q^1Sm-Sm-?!Sm-j Ďqv@ 8 81Y6 6K<\*}7[G jZ$!s4[ +:  +: rf . &T-75_)|_ B> $ S%/ %/XW?AZ9ng #JxJxlnCի\Ó.7^ Ó.7^KÓ.7^'bHLm}oԥƇ-hMLƇ-hM uA6w/jȱLp>WR>WD4k c $d?<±l<±lD>w>w9>w͌,S͌,-ͽY,ͽ :sϞͳVt󦄚..t.. Q.. !.. i.... .. ..k..s.&NЈ"z+Ј"zL"ՌbeqC .D] ԇ- ҏ5 t  չ7 չ7 չ7: չ7 (չ7 չ7 sչ7قtDLgمMi] jjpmY pmYjگo+K  6 #0P}t0v܏3܏3Q܏3CT"l(I6rnRW2N lC0.\;?9ctc (c c icYrLf=gv t0Qs t0Q -0b二_ |`t  |` 7{#J&["ʜw,* | w,*9 w,* w,* gw,* ( P,v+   ,JUos ,JUo ,JUo a,JUotEne) #~g:~g:<$[<$[j<$[s U i-S1곫UR||S5||||||vO *B6C홄gSK_1 "\)H[ġ=H[ġNz8 o=gl*KgpQmn ?[G"1g 1"1gs 4{?4{ +<!r / |i.dZi.dZi.dZi.dZUi.dZdʤœٱu!K?| p΂ qSk*vc r?2ף@S ?) $kn>kn> kn> \L>M] M]zƜTJ:; s ``YQ35)DEMx @)DEMx A Oؿ dTN B5 \!u_ 7o!17o!#[D  Dwrk Y !g܌"\SK"\S "\S#(H#Or?Y#Ors$zf, %+YW%9,o %R6&li a!&l;QP&l;Q 'K ';c`([9F0S([9F0([9F0([9F0(s|.K)  ) 0 ,)OA%)Ȏ&R)@ih *!0z*!0z*g-+8 ," !j-@8xb-aY'D-aY'K-aY'P-ӗ/8z_K /]9~ $07J 1=?111ؠ) $111ؠ)2uCDt3kh5 i3kh53kh5 \3Ɇm A4nt6hE7< [B 7< [B 7 `9Vn9J9-rә91 (:sv:> :h_&s ;QB 2;*l~` ;\Fv; wP $!<^<~ # -">-"> tj?ෆw @ ARAp?ATޜ~ ,Beʋ $Beʋ iBv8-*4 C%vC;6?Cv ,D3 P6L D3 P6Eb;EVDU[sE Y F@P}F6FVͱFQuOtQGw?[G9q I:pKI:pL I?V \ JıWsD|JQzaL L L 5M=L0C W MV5 ,*MKVXMz?N^erX ( N^erX?Nq0Nq0Nq0] SUx̕vS~ ,SCfSßB LSßB kSßB SßB TM1 $WG2{"W W DWM$?X~ZΕX"(YYB Mm|YB Mm YB Mm YG])U YG])YO' Z kZ?‚ Z?‚RZ71a[jR"{bq #[r  [Y"7[Y\F)\V(]] ^^LQ_Y;_c[m@ |bd& abd&tb]AF (b\@v b\@bk c5) ,d/hvd/hsdRCd3( bf=?f}?ge?!bhe('Nh;\4 hX8 #hĚޔ%hSi=,^iHO #i}$|jy]5[k/%P> kV8_ [mPma# mPma# mPma# imךX QmךX Qm\bg~m#m#m#n~]ny nyUoիməoKJ=oKJ=|pTx"Z pclb9pUkM_P pUkM_P p暜NZjq{ uEq})|r,I s[ss"Pas"PaKtR rtU$t$ 2 t$ #uE]v%I 3v%I ((v%Isv%Ijv%I v%I v%Ivs7ŭ[x@$,z:szy}DPv~%hXr~,)Ks/~,)KY~,)K (~aJ 5uN賁 N賁 gXW< $ְ: \4ԊL ZIt F`t FhVvDk|kgʇ$dȷ9w)sQ9w) -9w)k9w)t=k3.j.=k3. e=k3.Ҡ $fuK,ڧ<sgvЍ8 Ѝ8Ѝ8SDbvd čXX j čXXt; čXX 4I I =4 $](C(K$](C($](C(\\`~RKKKLD.LDMaKXtR^\cj (^\cj |_RBpRBp(/{(/{ap?߭#4tB\ Q *yeNv{?{ iE{ ({OU6 WҨ{H]5 5_;kj}y;Ʌ eD~Ew)/ ההmC#n{kCD\ ACD\ /QT/QT]qTOd Ldß"6[^!Ԫ 2?z?zŲo?Ųo?f&qB%R=跾C7\?'FC7\?'FQ6 "o2 UU2ŷ+ p7w?^@ j~~H~~H8[I ͚+? | |$$QV“UlmK6sPδflSřհ7[iWWr? iWWrj*]eRōCL+ c )AQ锆jLk#)K #)K #)Kj#)KY%ؕGOz?z z㡃YfS㡃Yf ,wRFwRկOŔ N kJ?=pq7 i XXXm+< bsB:܁0ZPPܣv\>݂́Q *  =  =}t| !i ,Z'"9›SCC ?U64`- i-(e}U}Uq  )ֵÈkfL. t旎Ii j YCP $RgihхZ?)W e$Y7ܡJ;H{6!ox IS q%Z4kȤmHkȤmH^垀 ^垀?oI~eMC2hC2h aC2h sC2h |C2hC2h :QхP;:0 ?Y;&vycυZ*hh ,*hh*hh C01AjC01Ay'?Xi )?5E )&@&e)Opj)g N ,* \*ݵ 3wV,{qMN.i? .i.ij.g#/zޢ/%$S</u /u/0F0BQ1K1|| 2E. 2E.k2E.t2W%T 2W%T 3 {R3NŚs454"558; 6W7 7|-N?7|-N:7OR7O 7O 7OL7O8? ]'?9&1i 9TtY$ 9TtYf 9TtY_9TtYD9܃B :2[s:0ӟ9:sր5;}lR= im?cqN??G @E-P@!K@R@l0Ȑ \BʒBʒLBʒS BʒCE |Dڕ%J Dڕ%J?E+Bx7FJWۮFQH?F{˝R:F{˝R$F\~ F\~F\~GU Iz$r JO u%JO u%SJVuS/ K"-..?%K NMjv^s NMjv^s iNfvaNfNfNfhNf O<δPP2]QSʶ [=Q#G Q#GQQ3"(sQ6HQ-RȐR*ECRHVQ?RQg!?S%EE S :LAS :S :S :USK*j>UUzsLU؍4VOa2{ WV X7ݰL Xh`YYӀ0tYnP#C ZU0r?Z 73?[V"U]ZJ]d:]]d:]^m[1^)s_j(?`N*Ra;N? aEa;N?a;N? a;N? akY$Fa&KaGaP} (aP}? azOiL azOiUbt b,bN)Lbޖn#5m c|]c|djcW djcW d[g?d[g ek,f<f<?f<sg£~WhY{< hExe]iv^jk\" j;u* !j;u* k2l|G l٥Bܗ|nl/ nREnCoAv~ oB apl;}{Rr&TM rIIU ,rb[O)frb[O)Drż s=M $unde"unde"tunde"sunde" vvKb$ vvKb#BvvKb vvKbSv򂟶tKv򂟶 (v򂟶 v"?xlj xljy*y J ,ysw9 ezΠW?%zΠW |;}@0Qy #U}@0Qy '}{r (~&?8~&?8bi~&?8t<~&?8 ~&?8 ~&?8 hgYʤp ʤpʤpȳ%( ,ȳ%( Mȳ%(s Z2G>^GͱC (8 ,!)Y` *&;P5n e;P5nY2uMK  WTز :]$Ǿ&?IǾ& R-?V*jJ%~:DlȴqD{Y dЈ i) H~\tH~\ Ėˁ lgj*iF ;)K+^5 sSNkhv׼ v׼dn!|아Ds&,sJb(_]udI a6L8}pfJD3 J z #-RrU* c-RrU* #ଅvଅhଅ ଅsۚZ& $ܑ.NJYZCbTkbTt;/͠ ;/͠ 4x0'tR-'t)JFX*SJFX*L$JFX*JFX*]"JFX*JFX*JFX*x"L$Nq n $nsn c=88x<R;v! $唒 {-10NM,ԊH ={1}Wq - ^?9^?^?>Sk :VQv ;izf -rJt -rJ 0'z= 0'z= (Q7 pC  ^-9L1Bk@S,n[(S,n[RyvRyv9)o 39/cV c 2>ex] x] !UWP{K {K Sf/  s@v{pLZ _RN?_RQ_RY BW BW W NP'v P'j_L Z>inr}6 mLҤFoj |Yu؇S(!/!/| !v ,4 lK l#8Nl? zTںUjC"":QJ (r:QJ :QJ{"f \g&g&LheR/@`éVhi \&Ұ_Ұ_9Ұ_ e,B_ a5y4bjYb G Xkh5LXkh5Xkh5SȘ ?w OȘ ?w ,Ș ?w Ȭ}pbh[(h[* cQ-sYQ-Q-Y̷I81/A1/AKr* O ͐#yt6d^9K6d^96" \k"l #+k"l czH K% Dˢ7sDˢ7Ѻj|Ѻj YILet'YILe YILeYILe YILe҈]I i҈]I eM>ۑO.w׆ LDMٯd Mٯ[''] ~??뢴Ul 뮔R[,Gvp5$eVdRV!C+`Q!?7`Q!?7td6nVd6n31c9 OtO (O l(!Z"Z"Z"Z"M{lo M{lotM{lo93ZLl '_Ll '_l '_dc 2:Y1 asۘs2 / (*N4Ri , lt[& e %Oڠ#D!LTjGv A8E[6 E)qD P dU!WtD:!WtD:"ŏs"ŏt"KڌS"Kڌ$YF]$mJ] %dB?%dB i%t7%U&㣥' &k' & i(]cL) x )aKON)b1)kF *W; c*ئ*ئN ,8@Y?,C_Ж,11T/H/F< "0߼0+f a(0+fj08 19D#I19DR1\ 2tAN2=?2= 2= 3 Is3'} 4S/R 4p<9 4p<9j4p<9 a5X^A؛6uk6: 6Y д $7>#b $7y Vd8[٪9j8b-R8b-$8N888R 89smk?9smk 91?;f>PrN;h; ,=70 ,=~A(s=j>8?Gf+U{L?eF ?ϯ\q|@:m@:mL@zAa&J_AT B:X-jBDVBG /ZCH-EIVN F"XFT9TKF֥<}?Gd^$tH@E"@/H@E"@ "H!$IǛ I9&bHvJHؠKiMfKn[h&L7ZLz% Q~ZILz% Q~RLz% Q~Me NMe NMLf(hNfaԡQ+ $NfaԡQ+ N:  %ODQP< R5S:1<$/S:1<DTTB"A;jTTB"A;RUQU~LIQ]U~LIQU~LIQVP& W$ iXsErR*?XsErR* gY{X/NRY{X/NZ})qZ})q<Z})qZ})qZnuZnu Znu\i7S]ɏ ]d& ^b* `qLv`H,MG (aps_a"b a"b a"b Rc3- c3-cۃ̳ ,cl|?fc}v^fc}vfc}v fc}v fc}vfc}vfisf\0gx@]rh8Ey3 h!CG $icilXipNjI2?ajI2 kb" +km=OWPtl1WP!*Nl1WP!*m9޻ +mB](nC,-ooy isq)Gq)GKq;(`[+rOvB#~ rOvB#~Dr~wRsCS s;ܛu s/24s/2tz`$ t-SLtGju!kGw5]5'x!xF7yL9y` zxd j{mbxg{_]|{_]h{_]k{H!? |vQ |v},~[M?},~[Ms}-~[Q }m{TN~I^B8Um!;[_?ĩĩ+)c?  g } g NU-KU-kU-tˤ{:!ˤ{:jp?p:A:o "',*`zdQXpPSqwRث?^NGz1w j]*iH#6> so;#4\ }.q~_w| i"iX6"iX6"iX6ާgb$d9~`3R"Uic"UicS"Uic`kI!0kP?XTyڡSEء2"SD-D"SD-&jjjjjƞ ˦sPKF jFuz #Dc Dc N#6[mL , #6[mLI4BNjI Nv(Jg "0V ,\"0V $"0Vh;l>R E lYgmKZlR 98SCx 8_am|},j `yps `yph|" W8' xgCxgMKKsyL-1Z~ )O?)O )O )O ذWXM7YT+AjT+A?  2N ^W5rbhdNߍ(D y rG}7=aggJD@5rblj=Qw%őQ|fLQk׭sgֆ# i_HSSĐ9 u9 uduI?zl&A0.<^C7/a#f am,#jMn[p  - ܯմkv*&?[B&?GKGGDm2Ri_S /kj6O L,~%=}L,~%=R#n/s)j*#n/s) #n/s)b[82JJtۻO(s!gt3'ʓF wsS%$. -Z).kM .r@j@ iX'|$"+=XÌ(`7C7C7CK :/ ŕ{4?Ytţ'wrR$ƌO`v?ƌO`vj.C.C1vzf1vz ǀ~ FCvAt́Rt?́Rte骺e骺d֊0 t]`ERt]`EI?EZZSdSQC C |ζ1fam^R ζ1fam^σGvCv "^`[9e>Z 9e>Z9e>ZУ1sH iH|H H)]s+ S+lt ?" ,j 4PP 4PPR$i9 ԣ0x_qK @Z-> ձw ƛOƛOL ƛOfƛOh-Mj֑(Q,YmZԉFԉFZDԉFR٩s})o R}$ۗ>#k;/ ,';/+T R ܫN{ W& #߄e,qFvx̍g0Ak?m %m }a3 <ǶJYt7 ,8JYt7JYt7 iacQac$U1b$U1b ,ʈfrʈfaʈf"8OŋO'VDEM .`I( s`I( |mUdimUdQ3mUdC/mUdmUddmUdmUdR@ʋ {٢| {٢ 8; ENOof  $@Oof  Oof jOof  (Oof s{Oof  i?Oof  $MIb  Ԩ=鲱:[a쾲>s'qx~9_8`Z25Nmf@#Rn5F X3Y|RoX3Y|S6X3Y|ZX3Y|w\ȥV 5GY5G5G5G5GEx|~3 k5N aLk5N ,k5N k5Nk5N  2 )4 [@N ([7MhĶhĶrP Y/ @ Y/ @L  Y/ @S<{CK<{ Cl18iSٹٹ MA MAC%p /nPtoJ;C gKK aK v6 6?n=$s djLunTQՐLՐLK ʷ  qHa v0ͤA  ,~ZtZt'!\ Q$:#U  ٜ !Vk9?!Vk9jhܡj Gqw[+jL~htbWp&0 bWp&0R G+c $ІMQoSk(y? c/S9. ,sU  U 3JnkS(JnkJnkd9Sޘeuޘe ޘe ޘe ,ޘej.|č ?gW  ?gWs ~ !ɪ[6HS!3Ga "X&Y#2^#2^ ##d/Ȥ:%Ζk}%o6t%o6K1%o6 &:ͫ(.(B(B(B(B(HwF:C(eNj (eN a(eN )yg! )z)'])ؽ%H?)ؽ%H?K)ؽ%H?)ؽ%H?R)5lt )5l )5l * Mʘs* Mʘ*" c١h+/ ,,]\zN ,Z L-H5 -wg].i:.".ȇp\J /@KG"/Kra"Kra Kra Kra Kra (KO~gLq ] PLq ] N*CN/ZZO *P]"}` PQ S] ;Skԅ[T`8Q %TxdHTxdH T_ۆUDJ^R Uҩ Vp V&SWck+uW`dv X@rmX@rmjXOX:-?Yrr YrrYgz0VYgz0VLYA]Zpv #)Zpv cZqJ Z aZ aZېŽ+ZېŽ (ZO:[["瓯 -<[["瓯h[\t[\ i[\k\>Bw?\@Q0 j^؎i:K_0DŻ]?_~O/`X`r:W`fE caa%"iva%"i ra6^ZYa6^Za6^Za|4X@ a|4X@c?c? d$nWfu7gQ;j>jվK k⪱ ckEt lUsrl`J1?lcj #m~hn5@Ktn. gn(%n( n( oSi }?pe'$6q4qSmd]rq ."rq ."r&K t4s tOvjtCuf * u i u߃wU3w!Eh sxo [ Bxo [ xOվ@txOվ@:xOվ@ {h" (|CͷPK|v * |v|v|=1A}ͱS?}ͱS}C'H (~DɛtR ~T6~T6 ~T6~b  9}Z|H ?~ ~D~~~=YJ)Z!)Z!f\ aR\t\ Y\ 8`R'8`RXxu*\+u*\+ au*\+ u*\+jPu*\+iR iRY>F7CL N&tAN& idK#vU? *M@2Ol WY:WYWY mWY ?9 !#=(3\ʞJʞJלR לCUl 1D A lϔ, #wG"c wFȶ wFȶ s wFȶ wFȶ wFȶ|wFȶEKu5WXHbn{pNAh|h h ^[v MQz cj^$cjloP  iͥ#7?ѴRVh>RVsRV RV߃H97R-ʬ 96U# (< 5N 5o6 aK6 t: B4['  U'  j'   $   t ( j% ih, 2b |*Rs&[ *f? ON}} */N}} N}} (j%ngL8j%ngRzh"Վ kH%kH%sd!)?d!);'T0f~>f~>$F7$ zS'SmI 2S 8|[t]EkU[t]Ebua._Rua._}f4j_: sd@O O,Wz O,Wzt vR0:  $ҽ \p(}[L5s+&? +& dDޓ␴Ls@F~0| vn]8 e]1;N`4ʨj+L 4ʨj+ų0 [DZ [DZ IR-<D7yvG(y'O ^B=ACyTC*@xs/t/$)R$) |Q|N|ϱ?H#9hmK=podQkRmbmk;߲Zơ>;߲LkED$-M$-%u8ZaԵ W2Iv9(V a ̛G' ͡U~?Ͱ]ΤG۵ΰ*;] y ] y q ] y vϸKvLxvhOK;p a  aԟsk (վ?htJ$sSvVĕ5 Vĕ5ᑕPA roUg~JroUg~v DOe`(vxm` ۪ؾ -K  #z z ,z ;h ;h iq{*4sߌ cêw}êw} êw}NXoLcdH{>"=۾'~f #cC 歾c7: ik^}$ a^}$j,S,&nI=v?VldM5b&I y0w1e@6 |        )A fQ) BRjlq- BӲꔖӲꔖS3W oj/A2[U ?7^j(2N ,X$tX$S d # a(vuǞ$g)?v ~xjce Cfv S`b S`b D27@!IX & wDbwD qR UU$US uܻ.C@ b(.C@ bKUZ=GbUZ=Gb8$a?l55R yl55l55l55 l55] l55l55Z l55 l55l55L:\,; w:\,;|Uc Uc Uc UcH jx}tUc) zk ,zk dӕp ȻxX    <1=-j]<1=-v t4IJs9Fg ڑ^? /=, $j /=, ,: /=,  /=, /=,  /=, ( wԜS $Oэ3 $4P3K9t:P3K9b P3K9"oVCu.E [L*"YhaPPyPyzT zT фBT1uBT1u*((sMlA9U%1 \(Jws1G( i s1G( TJ/=:FH8hT'Fdk տs, R,V#>t gYn !+xVK"+f5 "+f5 #"ʵH %I= % B%Ӑo .&iZ1 a&7/6 &7ِ'72K'72 '72(%,RZ(kr3(krSR(kr8(kr(CM ) k#)K)1Z# *')P,G;*H+9e 5*H~U#+$+ + +rR , 'v=,1*M^- ZU~-!l1s-9s-9 \.^4 Y/TI\ a/TI\ /l~Q0XM.t0XM.0XM.1T  1T 1Vy*%T1pٔ!20!%co2H-NQ2H-NQ (2H-NQ3|%VE 3|%VE ( 3+J4L8[Bs4r +5SX8I* s6Ap+6t OX6|q7ZM%dS 76B5L8>#8HK96b; ;@\R-;@\R;@\RZ ;AY$x $;\a #;gO#_[=B0L=Ō&=0Q>ML @MR@ezQ @ezQ i @ezQ A=oKA=o AP#[CMg^1@ DledEiFlښKsHͺgj HfUIXMvI+pu iIb 4[J?[jrJ?[ (J?[ ,J?[J?[J צ J9[l?7JQL JQK@[TLx]v O`.1O`.1Oo7A{5 PJ@R' md R9lّsRQĉ!SuYkV8 V;b@ V;b@V;b@W&GZXtYQXnp.sR Xnp.s iYŚ Z,L@Z6][w(\^\ j.(\ j.(\FP]c2XS ]r]eũa]eũa]eũa]w- ]w- Y]}KE^GZPS^GZP +^GZP^GZPa^{FK^6 t ^6 `_ e_`(?rhg lrhgv'weh # $,Ga%,Ga",Ga,Ga]~'@L"~'@~'@ ~'@Sxe=dE/dE/ Z=S4  U:^ @f'|IMk a$IMkjTg}OTg}(Tg}!4%B B eB 񞏂Wo {9 ,=6MiK YY Ih7,R 'Tm Sc"|c" |B`R>WS4G\]0cR_+ R$(6,$(6d $(6QsK6COMRyn|O-NLr Lr iLr $LrFp _I[cM9 [k?y:D *{. ,ۅ{CCR&P- E l+TU Qvnxr  1{s; 1{t8 1{ a& 1{=nQxD k (a6 }!OC a }!OC}!OCj=S:n0x TM3 TM3 9$T;|9$T;jh9$T;I9$T;+Ƅa DYka c@a %R2\lkst KcX sBГ`1K[f?1K[f ` f?`?\ȥ  I.<:N?ն ?ն LTzt_ܾQˈo]a?Nu!} a   UZFs9f bl}- bl}-+'WN4fBw fBwkI , ,$%E  kBnH nH #8ׁ~=8ׁ~=$8ׁ~=4_/*s(4_/* (4_/*t4_/*jK( aL2K( aRH, H,H,qI (KgXh {I|$4 |$4 $ |$4 ,|$4sN+Rg?g?g?g?RKg?q(K \q(K ,q(K Dq(K q(K @q(K "q(K q(K il2Y# l2Y$<'R<'N҇Ei aZ{]Z Z{]L Z{]SJ##ҁ' j䥔Sdé M NR - ɥ1 aOCR?TOCR BOCROCR w>f/?\Hpq-\Hpq (\Hpq\Hpqh#m& #1٠ly8dwSpB;SpB;sɛ^y{=ISf{ a 'mͳKV Pד \ήh?u24 kЯo̻Qr=Qr=$O/=xQbC Qb-)AFL AFSҶ<Ҷ< &1Z s8gLs;U1&Ls;U1]Ls;U1W.}jKYCʦԒDԒD|JV?f|JV ՁEWրXVf #րXVfRրXVfրXVf Ϧ(7LϦ(7~~܇@h0x`a0ds \~ wʝ4ηObηO Mhگ?tO0e sb~sG5G  ŒC `bKHˣ Xti_[ o ů6?"ů6ů6j~XpC SEQ/MNw &AxLdva>vaS va4A Aej\3 R $ʯzɒzɒ ș8cRș8cș8cڭcr"4Ro҉tw 30 s _@ %%v 2c RN Z=D "{ "{  P/N  P/N pj p? ]"zs +ZR G'}? G'}j ]m#H=̴qǾT |@e= \ lg|UR :*s]. σσY0\4o 0\4o?6!VDIWʵIA WثrkEՆ W8H N3yBvȳ B_(SY0_0ToU+bYN&r ^"y?kWZ-kWkWkWzE  H{"fpIW#QY{$l>bL & Ͼ .&Cl N&8C '$/(1Y ?(19ټI )=dm)IQ< *!R#+:S+:L+:,(;d ),ZVa-&*{Ƕ- -34S-ں,?.:q p 2.:q p a.:q pt.!v'/wSa[/}# 'U1p]Do #2ې+h2Q] W3% _C3% Q 3% K 3%  3% 3% D31(31?31 31j4wh;R6_С& 6约ah w7CC^ $74o|74o|74o|8 f8@/K 8j?8j88h8_8_9"GR9' Rj9|*7.s9:2?:Gu;]-qD \;]-qDs/\ʲ>t)ú(>t)ú >kO??w~y?`l e ?`l?@?@dA$dAH2BhA BhA aCޯPj iDͨ ^ Dͨ |DVb< EʺT?qEʺT EʺT ( EʺT $ EʺT EʺTsE*rFD#sQFҮ,AFߒ3Fߒ3 G a& nG a& kGFhG G GˀH_')H ZIYPXEI#SI#SNI(`w[IL GЗ]*L GЗLNɹV"WvLuXLu Lu Lu iMg\l R4Mg\l UNԫۮ<NBcNqjO|%FRP_j&P_ P_ P_ , Q)4{$5QNQG[SRKpPRc[RSS1F T& IXdYp%^ $Y>NlY_RYHc\YXJZP4(| ZUP {$Z#6{& a[nBn[nBn[A\2hcG  \C`x $\L\**j][UD?]Y߆_C]Y߆_]K9_" _)$t_)$t_uIH_!MY`0fY`` s`` \`` wa\-d a\-dva\-da'X c^sp^KcM3cg{kcg{k dVAGDdremF@fGjz] fW 2f #gpH eg0*yUjg.H (g̺$si i?iMjiMjiݞL^ i@j/L3j/+j/ j/j/kWM9K lOnmm?윰ejmM-J mM-J|ni ӅKn?Jnf`tnڜxnڜxoM!杞 (oM!杞 oM!杞 iohpvp}qKaqr`~zsöA t4 t4 u3o?ud6v6 ~v *x!9?y5`!y, -y zE# Z z_l`⩽ {-ͫnQ ({p-{3_jf{6W [ {6W r{t ^ (|L? |Ls}'D% 9 }?U~ɓ~j]>xo`j~;9Ц:] %%tOtq>- * HH|b,d**n$Kr؝qX"#.> ,7T0O 97T0O ,7T0Oj 7T0O 7T0O (Q2Es p&x? !] !] (e)Z1[ţ|2w2w 2wL2wSsR)?sR)sRn{bœ{bœ?{bœūhs@hs@ T|7>s7Knu|"nu|".DtZ?L qlRE=RE=R*RE=(RE= RE=RE=pS. \"pS. pS. pS.?޳kM % )еu+]ndm  "C8[ Z N 7 $߭3|L; %ŽS;ã? K *ލ?9ƈJ}(s'tLFMIbñRD"K!"K!M&kn 5[C (y8a3Mc:fv]kE8 c|("~t>Eb? >Eb?LF7KuJHS/7?2 W2 ,2k&krcgX|$N7s i'X  f.]3 f.]? f.]R f.]n>R$=[f4Z#=[f4S=[f4L=[f4$Zn#c Zn#cZn#cZn#chfk!hfkLٗ{$3eEUV#= `17bmL ,YfjYf|_&:B[~- 8W?)IEK -zyFXi_b)cX46 gol?Q-[_ dI?Fx[bZ(  fk  fkR fk9 / VҦ/2, tu$tu$ ,tu$"iu iu |iYls  =p[_ {0  ޸o2Rs+\ j s+\ +D2[K"RPwW~@PwW~ &PwW~ PwW~ h26K j}va`Ps:8' a ol5dߣ,d d ,d !1GJGJQ\22LBd &Ƴ naB2<4- 2<4-|mqns|mqnk|mqnjʟHR,_y c5ׅR Ob.j̆\P /|T *Α"wd$r (M# GUM 5b [ ъftѺr|YB .;qy$oY:! HU=S^pj5 ㏍_ JE b@(0vDb@(0v_kb@(0vb@(0vb@(0vQ0)/grv Tߏ wN,LEz6@-NژdiRz?ڛLЎ{Y;$s h> h>> 6 @ bi@ b%Q#$C?X&R ߟlsͣm ͣm ^VR}%9~IO$ $^(D5UlUN> $M BgЋ1toBgЋ1 eBgЋ1Y0Մ?Xs Մ?X i Մ?X m3Ku8DU ^"Bw -B-B:v@o:v@oKCs{sPASY}AϝNv0M"?kh?kh!S9} %NKDjJNjJjJ jJ jJQjJ@}/?+q r%Pʪ.ʪ.C1  'QN- 'QN 'QNd 'QNR 'QN 'QNuc?[cb)M8;+D ,OJS[ mft.\p (n>)tn>) in>)j u -'u -[u -] u -YeҖYeҖQYeҖ)ҢQ+[zUxrnj dp ށ. %Ͻ%[ӟf;y,3 ,3 ib/!= \/ eh;d-,xNM? %ix Эє8k enQd i䯦 K.8M 5B 5B 5B 5B cr  Tt.S i. Tt.S Tt.S? Tt.S ( %=-Ys 0m 6@. | G|2t " ƫk N0| 2,C &T n18 & w 9I 9Ib ᖯ! Ͼ#p 8>i 8>i .Jm ;'b | 4k+0 ߷sO n ?  ,e  "R  ~bi  M†X M†X M†X oA#t N  N Z FG a# FG FGs FG? 7~las ?     c,[( s fV iot ˋ= GN? 5 5j| j!8 B'  UVL UVK ~8R m u 3Y# 4̪[ BJಔ[) !d "3 "3 "fM0 #q}1/Is #z( $ %G0 %\ozF &>~[U? ' TS 'WE&Q 'WE& 'WE& 'WE& ';\R ';\ '4  (F5j!` $ (kz? )Uk>Z *c$  +\d +\ ,?g ,?g -Xu!e ."yD- ."yD-9 .jjC$ .k&3t /Y z}D /lrC+| 0&1{ 1! 3 1Jl 21. , 2 g7 t 2צH[ g 2צH[? 2צH[  30ϯ  30ϯ  4Lz65 $ 4Lz65 s 4Lz65 4Lz65 4Lz65 4  5ui*xj 5J> b 6?Va 6Ebb3? 7ϣa& 7 v 7QC 80E c 80E # 8R?  9dER 9Ku׮ 9Ku׮j 9Ku׮  9Ku׮ 9\2>M ::d%c ::d%c  :JS_k ;[+NsK ;[+N W ;[+N ;[+N ;'V ;|_j? ;|_j O ;|_js ;ד43f a <# Fk! > F} > F  > F i @%ES @Ɇe? @p @rI A[, A֥v L>֥v  L>֥v LL%5V * LuZd$t L|a:R O.$= R OZs OZ OZ ( RNTA  SHD Spڧ? S8"Pv S8"Pv ( S8"Pv i SM!yA SM!yA T;  UpآR j UpآRj UCK VNC^? WmLD^ YSprN Yd): Z$  ZGi ZGi ZGi? ZGi  Zvx ZO c \'[<<? \.Y \#h%  \͠_lMr - \Mts ]_݊ 4 ]_݊ 4  ]5SJ , _r `JK a‹zz a‹zzd a‹zz a‹zz* bBT b)>Ք$? b)>Ք$s cR cTs2 cj֬b eH( \ fD^  fćI fćI h+tk  hlR i.R+s ifH1խ ifH1խ jcr $ jcr ` ky R l m$`c$ m$`c# m$`c m$`cC m_sf  nw nsx? nsx ( q7Ϩj qwx'$e q`j}vF q`j}  r/tP rG | % rm֏we s0$S5 # s܃QICN t  tPMC ue(Vo v  v\  vqfj wY+ $ xCNPC x ; y? y`C9:" y`C9: y;.d # { {x] {x] |Ȋj }2rD }2r }2r ~Չ3;pd ~m.  EXqK {9q8e9 LxQ |0 L*'4 b3Y b3 Zn 6 ! yWьod Ш8  ;W2 ;b bRhi Ax` >. . 8h}0 015̳  015̳s 015̳ i ;-0Z oJR J.  3/ct 3/c a 3/c  3/c  3/c  M M 㖒XY ( HHH? # ! %I`R YT] 2!\  V<9 V<9 ye a \d  7=] ; ; ;] ; ;Z ;Q 5) 5 $" 5 5 5 ( 5 5 5 , [Q [Q X[{N' X[{ X[{ ja! 5s j 5s  y7 \ V<  lTR ^c $ 0P" $9G  WQ[K k  k  RQQ RQQQ X 3us- _$? _$ _$ ;s <-͋8a rj / /9 c˂z^j Z:  w9 X T u ,"U+ ,"U j>T  j>T  ž j lckVT F ' u  u  4L 4h 4 ϑ$? ϑ$ [ &QN }8+ t9 # q)R ;S ! ha \ ha 5 hah4 ha  Vt Vt On<)v i[?  p < 6 < 2? nLM R R  R i 6o  ۬͝eK yԋ ;N ;R P ն -AZ w1 *f  vC?  - ‘n|v ·V ¾~ϥ ^h>RA ^h>UC ew ą iPQ | X ׅɯK ƧYZGK ƧYZG \!T w` L=X L=X (xl  keo a՛t tB'8A ˘sbuBv ] M C? M C  M C  [4&p+/ ПY<? ЭwzzS Ƙ  ꈶF^ o>t> o>tR NzD \ оR ]HB Nk6q  {tw {tw $ }âv Q*k Q*j א]#s ES ES ES دEW1 ^ دEW1 \ #sº n #sº  #sº  ٪ ŊhC ŊhR Ŋh __ __  ۛ& zRcn Wzj g9 {hcD {hc Q:f Q:f uR !eB s !eB  H@J z= ጆo ^ '$׼j -lh0 ;D $ }- ! $ !  !  !j ]5t ]5s %˜0 +" + + + + + [ KѕT[ 洨N  F}1X F}1Xt 铕 &'\f $[ v a [#O? cs s ȷ ȷ_ `e f_ !. \!zS!'d #!0ML!@ ki!@ s@!@  !@ t!C Pm!ӂ !9\|Z&!XN!3[|2?!^6*!^6*!^6*![:!{Ŏ!q| !>4!WCX!yi6!!C GE !!: !!: !"BbS!$l!%%h^48!%DX" !%ǻk}`!& ()&!& ()&!&?!' psc !'VW!'VWQ!'frj+!'fr!(o_] !)WG.!)+VE s!)qd!)qL!)qa!)qS!*~Hg![ !*׀ .d!+Q !-a@bT !-a@bT !-ωN'!-ω!.Lly n!.Lly!.Lly (!.)"^!.&d c!.XN (!.#!/ aN?!/۩S!/۩!/۩!0 P0A !0v!0Xy#%R!0 }Oj!0MN!1Ev!1EF\!1E!1E!1E!1E !1E!1.n߲ (!1.n߲:!2 prI !2K=>!2Ur '!3!?߯QR!3!?߯Q!4-As!5V{b8!5L^ !5bs!5b ,!6 svj!6rf!6rfD!6rf!7NQK!7NQ!8F!8֖Ǜ,%v!93,L!:)e!:)e Z!:)ejX!:)e (L!:)e , !:)es!;eZޒj !;pS!;p !;pY!=w !>$ ,!>$!?oy!?+f d!?t !@/b!A' $!AUoަ!B`+k!D| !D|  !FG#Ϧ #!F <!G !G !H#{P!Hη!Hi3> $:!Hi3>| !Hi3>j!Hi3>s!Hi3> !IzML!J]%6ak!JI$;!KFWǑ?!KFWǑ !K=y!KK!LSpQ?W !LtejM i!Mփk9 (!NGv59[!N@& !NWdi!O7W!RNCDt !R !S{k !SOW#!STm!T4kJ m!T4kJ!T,!UϏR!WA;a!WA;L!WP#!Y8Zۙ ^!Y*&ūR!Y*&ū![[9C;kj![[9C;k![[9C;k !\}Y̸!\}Y̸!\6Kƶ!\z,o!]Z (Y!^5#K R!^5#K K!^8 !^8 !^8*!^O?!`OdtO !`4e: e!`!awI!awI !awI!bõS!b?K5!b?P!b?R!c{ !c{ ^!d(pP!dE{'] !e<[z!ep>,]!fNPdZ!f'!gXX, !gv\!hoxf? !h'!h'!h'!h^? a !iN=!jU&r4!kv* $ !kv* !kdNa!kd!l֊Kg !m8֥m!nC(܍Hs!nmӤ4 *\!nmӤ46!ofĥ4!q?PU!q?PUt!rz;sT!rz;!rz; a !rz;h!r'!ré Ni!st˔pt!sTytL!sW>,h!s_@!s q" !s q"!t0Md] !t@YD!tD0[ !u"f8!vRW9 !vyu b!w #!w!w $!wz~M!xvUR!x(%B !xN!yl}7W !yl}7W #!y  !yͳ(g_ ,!z?|i !{ Oa!{ލ3y!|[̛Rs!|u F3t!|u F3 !|%YS .!|%YS+!|%YS n"!|%YS (!|%YSt!|/W6B!}c!}cR!}xcK!~g_ !~g_!$4 +!$4!|HI !%`> !Ld_R!fR!hǣ^ !!P]F_!@Rw e!N.41v!2g'! !h !j! !hQ !hf!h!uf !N/Zg !vK!=w85!=w85s!=w85 !hE|0!hE !hEs! >}s!XT \!0p&K!~gw( !QR!v a!7.B !l;f!'kX!um +!6鋵 !-7!bú{,!I~ !Er !H7s !H7sP!sL4!Hpqͫk!Hpqͫs !Hpqͫt!k~ c!rj!8ek 2!%́]d!ð( (!ş@ j!vs8d !7cu ,!7cu !N9 ![dRsR!>O !OaD m!֐4J(!֐4J!֐4J!" d!D5R'!D5`!+K@!Z/M P!´ByG?!G?K!UY+!hRFZ<!hRFZ<D!hRFZ<K!o~vx8 ! Xw (b! Xw !DZTPR !:[nr!ٲͩ !ٲͩ !"s!)/z%!I3{![n0#!(]N?!Z3 s!ܲ|1}N!}:{-R!tWB0(!X/[ !X/[ \!X/[ !YD,!bXp@!ndQ,s!ndQ,j!ndQ,!ndQ, a!ndQ, i!(4C@ ,!(4C@ !)ΰv!$ !Mk #!]iub $!]iub s!`R!`h!`a!`!6;R!Nq!# !!oSr!oSrs!oSr h!⊛R!gz!fB!ә !әk!|!u](:a@!< !< !< Y!!hhS`^ c!Vzj?.!Vzj (!Vzj ![7AWPX !u !u'!יJ ^!dC$!YTN!ie9Et!%&!#t!MfC \ !-!- 3˴ !- 3˴ $!E, !c-!c-R!if!qrP !D3Y,s!e8 T!0^_ ?A![ J![ J!ܛ !߼[[!߼[!ZR !ZR!:b'X !XF>R!XF> !n!V!|<>!|<>N!|<>L!|<>!iIl~!-'U!q_' !k !$B!$B {<!$B *!$Bk!$BY !0y޶N !0y޶!i9w!Y*B !!v0!Ê \ !1E's!1E'!ĵ]mA?!G(QP !v(݁S!#F5 !#F5 !(J u!(J u!(J u!LmCv_K!B0!R Q5^ !ZƟ !ȼҏt!i? !hx!ʹ=v!˻#*P !'hu!|3+!ΏF~o a!ΏF~o !-rD!e&#<!e&#L!e&# !e&#Z !e&#!wAf]R!'i ! .)L!v-!-TmZ !?RASz i!,wv!Q?ɣ m!nFR]!/yt !oa!oS!B7!MqR !̋;!h|MЇh+!h|MЇ !h|MЇ !h|MЇ $!h|MЇj!2?%L!i3N!Z{X!Pm 7!<5 !0N !I%5|4" !ف i!%${!' ]5!' ]5 !ĩyh!S)e!Ԣ` !AF/!É!`D!|=ܷ!6P?!6P !,=ǒh$!q*j!nDj !z3 !L!$6 !WVY!6s!F# !{ !{  i!E-g (!E-g!3Rev!/n!/nR!/n!/n!/nQ!/n!'pJx! ‹C B! ‹Ct! ‹C !*ލ4R!*ލ4!*ލ4!*ލ4K!>EYt!L!h!গ. " lIޜ"0 9T"0 9Tb"#s"#?"<s "< $"< "vD"RYt"RY ("RYj"RY"I+ib "I+i "I+it"Sf?;X"Sf?;X"ۉ?"ۉ?$"ۉ?D"JRUG "JRUGR"HI0 Y"jHG׺ "HlSv"sK"}6!"}6R">xf ">x" cکS" )!" @#s" @# i" Jq" \4}j" Ka" a#fY $7"XlVi"ng"H"/{ "/{"/{t "/{ "|~yh5"|~yh5s"|~yh5 "4k"4Ѩ"I񡗯D"<"%o$"";B -" M!2 &"AC`= " Ld*$"rP" G+ \ ") "6Iz $ "6Izs "6Iz " j "CxD "ܵeA?"c<"fH]ҡ"fH]ҡB"w= s"9 "9j"KzS" Bg \" + +c "!t t"!t :"!R=R"!A ""qR "# z "# z["#lvG"#!`:"%>_"%>_d"%]i"?&V |"?Eʽ"@hYJ"@տ "B<v "B<v"C$U"C$d"CBK!R r"CBK!R"CBK!R - "Cl̜S["Cxbv"CkD"D#Zш"D#Zш "D#Zш ("D#Zш:"En"H-Pꀚ?"HP0Z("HP0Z"Ixd"ICͦ "JGCT`"M-3K3=4S"Mda c"NCw"NW2"O@3K "P"P( "P( "Q'OdE"QlmCS#["QlmCS#["Q "Q/c'? "R}E "R`"Jc"S栅"S}LܵN"TByO쬣 i"Tƿ; "U5+6猗"U5wR"UA5ȉ;"UjӐ"Uv`Y"r ?"rm>"rm>R "r*y "rsE "r ~|6"r ~| "r ~|"r ~| ("r ~|t"r ~| "rTA"sJNtN"t:EL "t:EL $"tRrPW "tWFT "u< "u< "uxa "u74!R"vkqR? "v = $ "w^jt"w^j "y9m"yBt ("zA?E"|廰c"|廰cQ5"|廰c""|廰c "|廰c "|廰cY"}kubZ3 "~}=P"~="~ȫ`"~DS"~DS|"~DS"FlI"FlI">|rB">|r"S#: i"S#: "U慝uk "c|"T> ",E$"5PQ"wS"$]"`:E& $"zA  "ц 4 "I;"I;Y"h;HU"{m "["x.56"O_"l+ "l+ "t2b "_e -"u8 "H&! "*Tk";Jmb A"^ "^ " "Ϊ%?"#LxE; c"ݡ| ("ݡ| s "ݡ|"ΰg1?"AC^"AJ"AR "ɔW;?O"ɔW; "pp"="=L"a["a["G " 퐴W" l "3"3 "3: "3 " $" "zl "͟8MN'"͟8M"hft " 7"I:G ")j|T"O"(*@R"(*@"]"MX"MX"MX"@/6 e"LQ"F]"2٨` +"P]"W[ ("mg ["1v?"',Q"Nܓ{)?"Nܓ{) i"N%+"c s " \j#" Ys"g͖Ǥ "C.eDR "3; "QAm \":1R-":1 !":1 a":1 g":1? ":1 #"$ rR":٨kH":٨ *":٨":٨t":٨ ":٨ e"X#"IV~PN"n;J"L/Z"hr2"wyᗰ"wyᗰ"'[G~O g"'[G~O"T״]"T״"T״s"uQ@".>&IgR"]!Y"xp J"xp'"xp i"xpj "WI"j{V"j{V -"d"I* "I* "/Bk"RDG"RR1"R "R"R"x%z"3#yruv"hR"陮 xR "陮 x"2&# i"2&# "bY"n>t"n> ("ͭ]Cx1 \"$"`ӂ]C"DlY8"DlQ"RzLAa s"" ot) "ٛm"zl i"=m0K"n"JR"Xݿ:"Wno"ޗi"ޗid "r[" "ᣙ""᪛=P\s)"᪛=P\j "᪛=P\ "Ѽ҉t"X@ٯ"'L=?"'L=j"g ",RR":Q] "$ ";&"橤}}"sO)"sO"_ 8"lС""k}j"N)"!۹h"= "gg "|A "d R"1I_"7sa #" "U&h"V"2"2s"2 i "2"Iۦ"4Y "KKd"! (" &:R"p!v"p!"p!"q";1j"t9"t9"7"*?^"7"* "7"*"7"*s"7"*j"7"* "7"*h"E 8' "c'4 8"c'4 "c'4t" y#K" y#""(ps"Cm c "QMwt"QMw"Rנ5 i "Rנ5".V9j ".V9 a"Ai|;R"Ai|;"Ai|;"eEIK",Mt",Mt"gDd"ܳp",hΫ#/(nN#̾< I#̾<j#4Y#3۫  #4ՠ R#4E #5StF#6> #6> #6>#7J3E)%#7F#8kςF?#8^C \#8K' #8K' i#8"G9 #9 ل8[#9#T#:p #:p#;?;6 B#;Kefj #<'zN#=YV#>. c#>o #@&S#@/5??#A-+x״#AO[e#AYӯ&a#B$#C&ǿv#C&ǿ #C&ǿ m#Dϣp  #ER(c71#Ez3f?#F B#Fe{?#Fe{ (#GJ' R#HDnLs#J'! #J'!P#K95j^? #KTv*#KTv$)#L΃[3eU#L$tj.#L$t|#L$t #L$t #L$t#Mf>PU#N{+-fw #N Chz[*#OP #P̯pN#Sy-s#TVZ#T?7ɻN#T?7ɻK#Vo= #Vo=#VSS#VS#W $% #XpoR#XtTS#Yidc[#YMVO ,#Y|$Ci#Yߌv#[mꭌQ#[%B #[%B#[%B?#\vrh#\Cxn (#\Cxn #\Cxn ,?#\Cxn .#\Cxnj #\Cxn#\Cxn c#\Cxns#]Jߗò a#]M=~4#]M=~L#]5o/f?#]5o/f#]p=Ict)#]p=Ict]#_C۹ #`O(+Y#`#R+t #`N%#`R#a#bdZ#cgV<#cgV<#cl]KW#cl]KW#d %2Y#dִM0|#dִM0#dnQ #eRr}C&#f? "#fQ05#fQ05#fQ05R#gcK#gcD#gc#giTE #giTEt#i;.mu #iа$?#kO#lu!L #lۣ)r#lۣ)r#m }8] #m }8#m^0j#m{D s#m͗פ%#m͗פ%W#m͗פ%N#nf #nf ,#n8,[#pS s#pS?#q;LY,`#r˓ #rsC#sJ=#tsC#tsC#tsC #toT#v9ͯM #vou:#v¸?#w+et#w+e#wh@ #wh@ #wh@ #wh@ , #wh@ #xs#xsK#xs #xFR#yT#yT#yxm>KOv#z;v #z;vd #z;vD#z;v#z;v#z;v#z97 #zt #z̞F#z9,#{ Rt#|? 9v#|k$v #}#~U <,?#~U <,K#~g/}A?# u^#$r%&R #$r%&R #P_^8 #P_^8?#P_^8 (#8§J#0W#ACz&#ACzR #ACzP#ACz#ACz#h,"^ #ߦ^]#YM#$H p #H #Ȃo#Y<ON# B# BD#m0($K#n2Ǥ s#Yjx#&9wK j#hk8 #hk8|#;kõ #;kõ  #;kõ "#Uq* i#Zd1#Zd1]-#Zd1'#Zd1#Zd1#Zd1U#<# ! #ϊR #\X #\X K #Tt#T #v,/ i #h#h #hL#\vP#r4R#r4 #r4Q#&K#&#6YJ +#(psb#t5f' #t5f'#]C[#x1= #IV#cJ #cJ $#cJ #Q#cYd0#)bI#ϰn\#7 $#7v #7#7#]8.ۣzL#w_ׁ#w_ׁ#b@ڪ#<*"w#CS #C #C #C#u^s#ņ7^$#ՙdL#P0vj#B\1# os# o #$ g#,-!ys #,-!y \#,-!y #,-!y|#,-!yh#|V#>uCҁ (#D䈬Xh #%5#'&z #(G b#[ p #[ ps#4EsD c#k4p# -K# -KQ # -K#ls#"M|L#"M|a#"M|#MmO]#p塓#p塓 i#!i R#Xv # h|' # h#Zg.R#Zg.#Zg.#Zg.#Zg.#Ա7 fY# xOaj#p2\t#wTk1p#wTk1Q#6,n'Pt#jq# ęh#!Y #P\Ǣ|#P\Ǣ #P\Ǣ #W' h#0 [#7#7S#O #ADT|#ADTs#ADT #ADT#C0? #Sf#w ,#dcV#BJe#`7U&|#q #X?#X#TjX!?# #&̓s#EnЫ #L=v ]#} Z#k;v#0(`#0(`D#d  #R#e|#N!r#%RP&v #\[}>a!#ro^ v#Pz#E##.#Va# i#,@`" #0W\=#BH #-h#ĪsO&#ij Y #*D#N4*#&#NJBO3S#dg@?#t4Y4 #1 (#1%#1#1#+qu#%O#XoT$#ˎT4R#˸C|D#Cj5t #'֭)#~UhX#R=#R= #՜L#EJaj#  ##ϠrFؕ#в#фSDQ#®x_#HGޕ&#HGޕ{#HGޕ #HGޕ , #HGޕs#LNz1ph#qk)K# *bv #pޑR##-Ƨ: s#u.S#u.S#u.S#u.S#u.S #2(#ׅGk#ײl8#yc# 샪 +#\|#\|#sdх#ڶXyCv#_e a#-6#$*Ț #o̬z#, M*N#ܾD4#ܾD4#߾7^R#?˻m|#=H,p#၁zR#3+$#4_# #B#(ڤR#(ڤ#`,Xe#`,Xe#`,Xe#Bq m#׾"#׾"#B ,#朿 ,#GB #GB w#ZFDs#UV#j4(#tY7 #tY7 #xwk#*&#ۍdlY#.2K#1'lv #]J/xut#]J/xu#]J/xu (#]J/xu e#z+##kM #ݥ*E#ǘ?-#ǘ #ǘs##ǘ #pV6: #pV6: j#@Z#AJUL #AJUL #AJUL#AJUL #AJUL #AJUL|#AJUL s#AJUL#qxC###~L? #"h #$M#ɴSt#k; (#k; .#a(^b# v#! ^# ,#uD #I՛5 m#I՛5#iqY[t#6JMxBC#䛔7#_A#%Sr #X#[WjK #k.#C$0O$0O $lxs$c>N$hmL?$JQ>Z $DF;S$TL$:#\ m $DI~Mq?$9Wf$'`$/+ $x%$'ct$Ot[$OtD$0 $0D$zQ$ W,Rj$ ݦZq$ u$ XY#?$ z: $ z:?$ M:?$ M:s$ E(|B$ {K$ {#$ * $ b6a[$ '1<?$ AD3$S,uR$o]D$o]$$. xs$w[ $]2'4$,$?63 s $Dom $?\Z$$e$$$‧y1 2$!g2 $l$N@ $ڙ$>S$4[$ $4[$$t3& ,$;Ó?B$;Ó ,$)w a$)w $)wt$)wk$dP6$dP6$dP6$?OQ $V .$@p* ,$G=N$JNOK$[dZU~ $[dZU~?$7M0w? $7M0w$ ],$ ak<1$ b@n5 $!?bFY$!]. ($!&_$!&_$!&_$!e; $"x_Z$#:eP$#:eD?$#:eQ;$#:e$#:e$$}v{R$$}v{$%

    ǝ; $>ǝ;$A5)S$A5)K$AYT$C,̛V $$C7@2R7$Cz. 9$Cz. 9$D}JF\Y$E@u&D$Ex>R$E>FS$E>FS2$G?e ( $GD$H$D/ #$I%6A i$I%6A$Iu丼E $Iu丼EQ$Iu丼EC$I! $J&wq ,$J&wq $K}ɋ7$LCS,L $L|v$Lv~K$MӇT{ $N'T $N)s a $Oȋg#EK$P-wq e$PQz-é$Pe@G]$Rw`q5 $Roh֬'$Roh֬$$Roh֬D $Roh֬$SygTLÇ$SygTLÇ$T<#$UTELye ,$UH $` T ,$a{Z$a"),4$c7^v$c}1$dz<|$d)47vN $e^mEN$eEV0 i $fiUT$f-ΏR $gK՝D $g4/R4$g$Rf$g$ $g˶OpN$hpN[$i aTshR$iTs>S $iTs>S$i\$id$i$izĮ $iP롂} $jc $j! $$kƒ $lВJ #$lv{v"S$nId2$o c$ot$w$ot$w$o~$ $$p[0m a$p`NF- $p`NF $rQz&9 + j$stĄ c$tX:DE $uV}]KCb c$uV}]KCb # $vGY $v,A՚ $v{n$w%i?$x&6$xx<J$y ] $y $y>!{MK$z8 ${E ${E${޶$|)/|H? $}@[O$~'j,$~Y~+#$+b c$+b #$ʓ $ݜ ,$1~E5W$ $TTR$TT$QN$ ${.2$3<_) $f@@y&$=W $ x $I ,$ͪBZ$9]W$L h$mbB $mbB $e$\K$\$\$$.$ΥR $#h$#h$MHו$gYI  $gYI $R'G<$&> $"0I$H;/$|© $|© $s$l3F$L'$Y?yO$'+t$'+ $(y $i3$Ve $Ԧ $Ԧ$$5.$(CJ{ $$Qd$)g$;`W, ,$K! B?$뙃 $Ct"$F4X$F4X$F4X$$dPX $7^ a$bG7k $$<$ghD$=$_0$猶 $Xr $ůW$l a$ |*$$=K $e׾?$9$XA!L$P$H$)k $)k$CyrZj$dKv$$!wQnG$r$- $Bj>$B i $t$/$Rj$L $ 2l$Tu$Tu$TuK$͋\XR$@ >?$g  ^$Ր mc?$f$f ,$іFdž$z$Ҵ $%[K$%[$r+>N$WS׉N$WS׉$WS׉$fGR$az 0$az ~$azX$=u{U$ўch.$g3j$D@ a$D@ ($D@$D@ $-$/B#&vF$/B#& $ $/B#&s$ ^$Ӟ`v$wCu $}{kK$x'$)9[$)9[ $)9[$-v}jN $S;A$m/3]$m/3*?$_o$MG[#'$MG[$$lyNAm $}R$ܲt $>E$ֽ,j a$Ã'P$Ě'E $#]] ac$#]]t$:ukK$ňqm$S .?$4k^$4k^j$q[1yv$u df?$NrnZ$N}/$N}/$^U1}$ϑF$&'$ATR:I$|B0$|B$Ѹ d6S?$ < ($waUC$%\Y$j $s  $^GJN$xN$>j$:6$}x瑩:$ݝx |$ݰCM6d $ʕ^t$3=R$q| $.$ $9K?$6 $@Ïv#$@Ïv${`xsN$M$}A \t$}A $}A$([[$Tj$셤 X' #$G[$Z$Dњ$̝SE$vv: $vv a$Jus $ I]9$ܷ t$ܷ s $ܷ j$kSZz5R$5u*Z$@"1M$@"1ML$@"1M$@"1M$gUiɑNv$cQ~H$!4]G$!4$yNs c$ґb %D$ ?$$$$$?9?$ť;[$TnfR$u1'?$u1'$u1'$%} $%} , $7ܽh $gC $']'$aVz +$ˤ~^ $ˤ~^ $7!< $7!<$7!<$7!<$4f/xv $4f/x $X_'n $YA $O霽%6J{>6j %62:%9\Z %:U SA%;7CN5%;7C%;7CR%;\:d^R%;!: \%;(%<J/!R%=%I} %=&%=&%=& %=& %=&s%=&j%= 1I:%= 1IK%= 1IQ%= 1I%= 1I%= 1IR%?Y%@_ %@_9%@_t%@6xDY%A?nv\b%B }IL%BuN%CJچ9 %CJچ9%Cȶ%D:6%DN+W $%DN+W ,T%DN+Wj%DN+W %DN+W %Es!l %G[X= #%J1%J_l%:c%K;2;&N%K۾%L^%L*d<? %L+/(P'%Lwp $%LT{ %LT{%L,ls%Ml U%Ml UR%NyuK%NyuK%NyuKS%NxbVs%Nѐ+ %Nѐ+%Nѐ+%PDQflP%PDQflQ%PS?$Q %Q76R %Q76R %Q,q g%Ry|E`Z%Ry|E`%Ry|E`%Ry|E`%Sm?%Sm?%Sm?K%S1s%U@%U%U%V兿Y, %V兿Y,%X-(\kFf %YO[X+?%ZZ %ZRHe%[f[%\p"]%\`Q%]nZd/R%]nZd/U%]nZd/S%]nZd/K#%]DdYU%]DdYf%]DdY%]DdYk%_ =c%_'b ,%_FgO%_^6<# %_tj (%_tj%b;, %bb%c89k{t%c89k{b%dT4v%dO1[$R%e8_%fObpŦ# %fObpŦ#S%fܔwW %gĖK%gĖK%hq9m c%i%iJ|%jqw%j7 %j7 %j7 ,%jͮՉY %k^ \%k^Y%l9{ a%ldW %mOb %mQ''%nۙ~%n"T",%n"T"d%oHY|%o֊dS %o֊dSY %pc vyL%pc vyS%q,ñ %r:`%rICagPX %rS %rv%r $%s[p%LO%s[p%L %s[p%L %s[p%L%s[p%LQ%tьLm%tь %t8H !%u%BW1 ,%uvIi , %uvIi %uvIi %uZ]%uZ]%vQ|pl %v݀hu%wj %wU%x$(AR%yIHFJ%yYwR:%yz/Mi %yY^qB%yCa%z& S%zXo_݉ %zJ9*%{ %{ $%|x,h %|x, g %|x, (%|x, \%|3 %|F%w > %%b%&"%I5I)y%˿} %Z:%?%R+*d%mX1|%_VH%^@T%҃'l??%dj%M^]0%M^]0%5g* (%Ӯ)蕈 "%Ԗҟ@,6 %:%:%֧6 (hG%֧6 (hG %֧6 (hG %֧6 (hG i%[,A%,M$ %{X%{X%Z%ڄ~~%ژ-;7%ګ28 %ھNP%!%ړ<%/ %6xv%Bs%m\%l@`l$%:ŝ% 2%=3s% Id%:4b*(%U25?4%8%Me|q , %T#W?%n mQZ%㌇nL%S %S%S e%S %G%ϕ{t% h i%) %I{qԯL%I{qԯ %;7)je%+~7t %J>m (%F%F %F%F%,4%Z%>%%qna%qnaQ&ЕV a& -t:\ m &'@&p&ntN&;'7QN&;'7Q&|+ &|+ ( &|+|&4?ZL&bY&Y4 !&]& =t {VS& qlH?& N*\R& ֺ& "5C m& "5C -& & -p/h& Mrj& J5"& J5j&iY?k&}K5j&{- &$ɇL&;3&/7u +&&ʇ6 &( j&qp̅k&@z&RFt&J# c#&J# &s"4 &{ &O͎,N&.< #&ue& db&Ubk&|A_k &WT,&WTK&WT&WT&jWK& #&Uk*{S&E&XFI K}&XFI K}R&>&>Y&Ct0?&w?&x ,&j#qˑ &Upq&(HG&(H "&(H&T& Ho a& , &!k?&"dH%&"q &"1jj&"|&#"yA&$3!2S &$3!2&'!dN&' 9pB&(;fm2EK&($*&(ͯ=L$>&)$H1AЬ&))J(&)#N[&)(=cqP&)(=cq*&*ASUW?&*s}' .&*+h!&+ 0&-C)j &-IYZ&-|&-|t&.\u? &.\u&.\ub&.\u (&/V%}&/V%}R&/`9&/uY&/u&/ c'&/ c&/ cS &/ cL&/ c&0!? &0s"[&05&1}& &1} &18ʁh?&1c6 ,&1Ӽv&1v2j&1U.&3t*"&4nzO0(R&4nzO0(&4-9&4- &4piv&6*; +&7W3?,&7W3&7$ײ?&7$ײ e&88G&8Vp]&95.H"E&9)]4@X&9)]4@j&9&:iUI{|&:ʛ.&;Ƽ5&<;bz?&=}Y&=ێ>]X *&=ێ>]Xs&=cY &>-p¿'&>-p¿'&>v E-?&>zJ&>D^>*s&?0" $&?0"? &?0" (&?0"&?0"&A(FX8^ &A@G)T&A!X&A!&AIv &Bƫ?&D6`k&D6`k&D6`k&Fu&G&G"&H6&p #]&KI# P?&KZG?&L"8߲ &LXइ( S&LXइ( ,&MR_&M8$?&M8$ \&M^zs&Nrm $&O>AOM&O>AOM&O>AOMR&O &PSEb i&PSEb?&Q - &Q,8W &QR:Ǣ|&QttD&Qt&Qt &Qts&Qt (&RJUڜa&R%Ӄބ!&R%ӃބQ&S! .&Sʶ% &SJL I&T&jx" &jx" &k ј&l/&l#&l,I S&l,I &l,I &l,I L&n,U ca&om#i &osv@&pJ &qǰ&rχ i&rχs&rχ &rχ&rχ \&rχh&rǗ@&r ֮ &rϘ&s3 &sesi - &s?v &s?v s&s?v &t9# &t3=<&u1U?&v e_&xkk ]?L&xkk ]s&x]B&xri &y"7=k&y"7=t&y"7=R&y"J|&zAhk #&zAhk c &{| &|SF*#&}m &}wa>U|&}#Ny?&}#Ny &} i&} s&~ j?&-`?&' &' &' &' &9M&I_:&nO i &nO &} ? %&T2v&~L0WQ.&~L0W&JԸe[&(w&( &(UK&(&(&&1D[&&1DZR&&1DM&'e&'e&'/G&'/&mv&ұ&r kL&xKL&xKL&xKL&MM&ĈR&rK&[ i&;5 &;5&;5 &f{?&Fx&Yj], & [?&g8ާV&$  &C[K&N[&=1&cv| &V , &҄; a&CiٝQ&aGƯ $&ہd & @ &LPk&Ry a &Ry &aˤ( $&3M &3M &<}{ӓ? &<}{ӓ a&<}{ӓ c&o(N&e|hHF&e|hH&e|hH&{8&u#+&u#&R &Du3&Gq&C \8 j&ePjB &Џ1 i&dd?&6a&6aU&6a]&6a&6a&U͉S &U͉&Nyi,&Nyi,&䬋o&!8d&)')*8&-Q &_j&\&uN&f Q a&2)& 99 ' &Dqs&t~ġ>&t~ġ]&t~ġ&t~ġ&t~ġN&N &S{Ҏ&S{Ҏ &wC| &wC|&}O&Ѯa &Ѯ& M. &=& &=& &=&&&5" &J= ' & 9&WEi s&w).?&D~ ?&zT"/ -&_ b?&_~M $&JKP`&2ős&}*Y&:#4#T_&%>M &<@ #&sq-v&'Ļp?&'Ļp&+I+4&+I+&+I+]&FС&>С$-&>С#&>СZ&>Сa&E͋j&R'̚Jt&]iZ&]iL&nug&N`% #&^GVR&^GV&!ʤ*m &uv ^&㠿U &]'-Fm &]'-Fm&7 ,&r:?&/v|q&pZլΧ!&Ƭs&3V j&G~g&b?&1dJe &qM/ &y&y (&}&I~st&_+ &zqoɟ &$')? &|m\ &&L5{&&L5{d&-@R&|x13+&(9: &(9:&&(9:D& B! ,&d&d&wbs-&Az, &|}t&O8'LP !'LPR'Pj a'Pjt'Ƙ=!'ɺ]/ '޳6'޳6K'D-n ' F'='1_ 'B ԓ4 s's7?' ?U ? ' ?U 'I#'.ڝiv 'DDr(?'|9pK ' 6Ź' jTt' 5' vq' Z ' wu' wu ('gv'g , '!f$'U/ AL'U/ A]'rH'4{'b< N'b< N'b< NK'aZ.O#'aZ.O'aZ.O'aZ.O'aZ.O'aZ.O 'x3׻ $'!?:)v'24 g'v '3'R= uC'YA{09 'YA{09 d '0=eU'EV 'EV ,'EV 'EVc'EV"'EV 'EV ( 'EV $ 'EV'EV'EV 'y "'>m]s'>m] g'>m] 'Q r'9F}(']yU']y<']y']y' =fOM'0,G $'l(U@ e ';)h''$|2?'$*??'%,؀E5?'%T ,K'%T ('&u '&4;B '&~' ''J] _'''J] $''J] ''J] ''J] ''J] ''J] f''J] ''DpVu''V^[ ''V^[''V^[')(|')(|j')/w7')/w7 ')/w7/')/w7')/w7'*kh'+:b :Rw'+:b :t'+:b :'+:!X'+:!X',,GL',TkwQa 1',TkwQa =',TkwQa ','',' ',x ('-{| ('-{|s'-T; Y'.c<獋'.Κɋ  '/QUiDq'/QUi#'/QUi'/n]*j'0Rpз , '0Rpз '0gk} '24y , '2 j '3rjYf ,'3rjYf $'3"֢N0'3"֢'4PvTI?'5Y7cԫ '5z'6 uX'8^xݞ '87-x #'87-x '9\u|'9Xm '9} '9y=vS'9y=v'9ᝦk': ': L': K':/j7?':*'d':X`k';N'C/';N'C/ $';I6QO ';I6QOh[';I6QO ';I6QO ( ';d'>( '>S'?Y]'?Y]'?'4 '?zVL'?zVK'?i!tP'?i!t'?i!t '?i!t'@Kۃ"'@ K'@ 'AWǔ'Aʥǁq ('B(L'B('B( 'B('C?+M 'DI`+?'Ez~7 c'E1'E>s'G k 'Iz2'I4 ^'I@'JۤG'JrQ2 'JrQ2 'Jmtʍ a'JHR2)'JHR2)'KR-s 'KR- a'L)!yE'L?G 'L> 'Mjm|(?'N3j'O3I09'Os[#Z'P%+ 'QY ('Rag ('Rag $'Rags'TEGŐ'TEGŐ 'TEGŐ 'TEGŐ'TEGŐt1'TEGŐs'TEGŐ ('TEGŐ e'TEGŐY'T&U"'T̛3v $?'T̛3v'T̛3v 'T̛3v 'T̛3v 'Um~'UCwd&'Uc'Uc'V0+;h'V]*Np'V24'X 1‹'X\)# 'X\)#j'Y2(nL 'Y2(nLt'Y2(nL '[r-'\W j']ҁIm2 ']ߔK  '^rąjKf'^rąjKS6'^rąjKL"'^rąjK'^YW{qv'_-?'_'`zf,"'aZā 'akFP'awoJJ ,'a|'a i'bG"j'b< 'dV 'dB 'd*i 'd*i] 'ezb1'e->OUs'g^! "'g,\;v'hӈ'jehx'kAy8'kAy8'kAy8'lOs'ln  'm/ 'm; 'm1:'m1:'nNxYBL'neK 2'nP9'n߬) 'p3I a'p^Pܤ'pPe #'p;p'r='rf |'rf ('rfh's#J=@ 't"؂'tK3'u#CNfA'u#CN'u#CNK'u#CNF'uNy'uI 'w|쉈'wXv i'x@rS'x@r$'xڍX'xڍX]'xڍX'yc ޚ['y!To''y^"H 'yK'yKs'yK 'yK'yK $'~/GbP'~*t'~Cߕk'~6P'~F^;''~"餖='~"餖N'=x 'zRd'?'1xh,?'kU-f (;'kU-f ,'kU-f $'kU-f 'c~w/'*6j(' K&9'4H'#+Y '[~ c'poC '8}K '-''a''<n #'<n'=K5'l㠪B '+;'+; 'X!'X!'kIAjv'\'C4-'C4-'em8hi'em8hI'em8h'em8h_'em8h'em8h',o\ '(}u l'%'aߨj'aߨ'Zpt0b'Zpt0?' t>:'T|YPU' @ 'I'IR'P8'S4ꆊ@1'IªdZ 'Ƥ'O#h'9 'yv'YeH'YeH'o' W*N'TI8 ')u@ ,D')u@ ')u@ 'O 'U*|'?Y' ('nh ,'֟,'Gew'&и$'&и ( '&и , '&и:')yL ')yL'ͬd'}'W^'W^S' 'C/ j/'_H?'+ '8 'ې. 'Æ&g'8 '92w'SLgt'!:^] c'o',=LY'RBr)c'RBr)c[''C_ 'x'+ N'pPcVt 'pPcV '&† '&† j'&†  ('5jQ%'5jQ'd䲧'̄'^Z'ӏN$'Ϛn\'dK'./0 '炂'炂 ('炂'炂 'T zP'8%m_v'rЂ\v'm Mi 'm MiS'ӵa ek '/'!'+Ͼ6'$BP '[Ij'X)+;'`oks '~(RxM'~(RxM'~(RxM'pRCa9'pRCaL'pRCa'ĵ@ #'ĵ@ '7cz'1 's@ 's@?'ƒZ3j'ƒZ3 'Ƣ/d1K@'Ƣ/d1'ƴhVVcBk 'ƴhVVcB'ƴhVVcBt'XÇe' 7''ȴc ,' n'̽0R~'̽0R~ ,'̽0R~f'"k'"'PԼ7 '˃&E'_}> c 'Z0t'Y'YQ ' \'c9[R'ϫ)Ґ͆ 'QgF ('k ' i 'ҫ64#'>M +'ӜAt'Qpq'@v 'L 'L&'|_j'|_ '҃腆'pf'+^R'8B#L'#Qp7 'N$p?t&'N$p? '^>i[d'ؠQj?' '٦n'"(7v 'w|U'F6i ,='F6is'k,'AaÌ'ꔓMP'.roU'L> $'(fՕKb'='='ݶ$Bk'X&B]'޷`>'a>ER'ߡL'ߡLb'p2#% $'p2#% 'Gng<'GngR'I!a'I!L'I!'M{:%R'P/ 'P/:'"= '"='c(J'2}+ a'Ӝ.'|!U`Z'?gjT'?gjV'?gj'闘t'^N'(i+h'(i+'(i+'(i+ 'IJ3j'A+L'.U'+Ǻv'@\H?'@\H '@\H ('OI 'Qd'6R'y' j'׆H 'mQ'm'm[ 'mR 'mf'mY'  'dcF"'d]|Fs'8:Gs!'8:G '8:Gj'u*g'u*,'u*'u*'u*Q' KA%' KAS' KAZ' KAd'0PC5 '0PC5 s '0PC5'0PC5 ' 'kF 'th'I'bufR 'buf *'. '֫?' 3& ' 3&?(CT (CT(CT(n{" c(U\(f+[(khz\ (ƆvA (l埭l #(l埭l c(-f(-t(-(bw(sr㶮Z(̮??(')M(FWˀ (li* (E|MBp (ZJs (ZJj(ZJ ( ajg| ( ajg|Y( x[d6( x[d6( |HR ( |H( iEN( kF"( %F (|QK(ŭ.SS(!V(!V (!V(!V(!V(@U (wRx$Y(,wnM (.tS( a(XD N%(qhu( Y?( Y (9 $(Z/((^ (^ (v3I(ʺU' (2" b(2" (c)(l(C?(maas(K]:(K]:N(Co@N \(xH+g(*| (K (!Y?()Q(L$2RF ( kk( k(wU% ( @0( Pi5 ( & (!sVM 1(!sVMY(!sVM [(!sVM L(!sVM a(!sVM (!*T("@= (#wj('%b((i#L((dFg?zR()9_F()jjQb,R()3v()3v()` ,(*C% (*h+,_SC(*h+,_SC(**݊(+AiNBF:(+AiNBF(,D%(,y̟_b(,hHTv(-Gx(8(.(q(/xF6 (/ 4 $ (/ 4(0:)L(0d (1<hO(2?+ TR(5_+7%?(5htK c (5 δy(6Bb!! -(7:1:(7Xoj(7Xo (8ϓEM + (8ϓEM (8ϓEM(9.(9.(:%D(:OaWQe(:m~(< N( (<#y>e(<=2(<=2 (=~A(=~A(=~AK(=kf_t (=kf_ i(=ږ+?a(>X2Cr (AӥdJ(DY"(DY"(DY"(DY" (DY"(DY"(DZbCJ e(D[(E2(FCOp<(G9WNrD(G9WNr(G@4+0s(GFR(GFj(GF(GF(G:(I$U (I$U (JZV (J iʔY(J iʔ(J iʔ(Kʿdlg(Kï# (Lucj(Luc?(Luc(Mj8A]b(Rnm(R(S Z`=k(SOJi(T*F (TѪV (TѪV (U0E =(UlHSd0!(Ua,K(Vi gz1(Vi gzd((Vi gz(Vi gz(Vi gz(XrV8?(X)%l(Y$k9 (YD`E(Y[Bq>}N(Z^L([ z[(\(R(\v ((\v (^B62 (_ 07 (_ 07 [(_ 07tN(_ 07 (_ 07 \(_ܤѴQv(`\( (`mL(a,H]_ (a,H]_(a@L$(a@L(af> ,(bv(o8cHt(o8cH (o۫ (o=i(o=i(p VY(qz~(чvny(PJ(PJ(PJ(?( ( ( ( $(m8(m8D( d :'v()` i(\9\TA (x*b (0栆?(fq(t|8(Lu(LuL(Lu(/D=" ,(/D="(5D m(X]S(qhe(qhe ;(qhe9(qheb(qhe (qhe( (rsɫ (rsɫ[(ܘJ](n H(G]? (ӂ( (ӂ(Y(0' (AOj($D/] (4) ^(U?([N (gp2(Jb'c (9?(J_ ,(O> C(O> K(O>  (I(W4VD(`L2z (  t(:^ڬ~K(Ξ(3׈(3׈(((,Nc b(Gt j( Ou:(x_Y(Zյ(:ТU(iu(iuK(iuR (iu(`]uj (4 F(4uv (=k2 pv(pQ%(p(p(nK (n(r(4Zs( XpB ( XpB ("b (4{(C (Ct(c{(c{(c{(t*Jk (t*Jt (&ÊQ(ug .(ٖK(V(̺^PR (̺^P(l(^׽(o5(3R(_.(;.?(1XC(PO絮 (PO絮 (PO絮( n8Yt(Q j(;J?(?bt(O+ #(Ax(Eަ\ (le$(ZFa(&H(,i܃(dR(s1 l (v(] %(ͲO(/* (Į]T( V%=(a~*R(µP3K| (üt()nI1.()nI1 ()nI1L (0(yR (3'Hw (3'Hw (3'Hw (3'Hw (s $(s (s(s e(Ƌ $(\L (\L(%rL(Ǖ9R(?s5j (ɭu(ɭu(~#(~#(~#(U-2Y(˳"9((˺dPY (9WlZt(̾f(/a2(;=(;=D(A'x(;+?(niM+ c(a (hj(u6(hj(u6R (W?/ (Ұ7xj(ӟ6(-I((aM9o (ԗzʝX(ԗzʝX (ԗzʝX();9D (f| (fzq D(fzq $(՟j(B/ ,(rї( bU i(@ صCj(/Yn(ذs$ (ذs$(y_(DRp(_obB, (R4N j(ܤ2輽N(ܤ2輽 (ܶqEZ |(*^*v(ݱP|x (ކʂ(ކʂ(ކʂ(Fj?K(Fj?S(J7(J7K(ep(⚅iq(;$M (;$M?(!rH 2_ (~[ULC(ެ׈<(ެ׈/(ެ׈(ެ׈(ެ׈(ެ׈(aPt(aPt(aPt(aPt(aPt( r(vJ(d,:(8t (8t i(8t9(T0?(S2&̈  (j(ht(V j(ݕdE} #(yf (yf(yfs(|ԿZ(Tp5(mvQֽ ,(mvQֽjh(mvQֽ (mvQֽ(K (K| (uM (uM(톯"tg (nR (E (<#](<#()e/(RE*(;: $j( fm!D i (dY({6W Y(ϲF;WNb(:L[U (ؙ2L?(P7K(?(PEp1L(}?(r(_;N(_;(-,((lLeN(d s(d g(d|(RQڿ(1_/ m(=K(=(x:k5j(x:k5(x:k5t(x:k5s(3r(؜e|?(پ ,<(پ (MѪ%Q(gqI$(gqI),2R)@%xc)ʸdv)y'9IZ )zγK)zγ)'E " )Gy )Gy i)Gy|)Gy );ec])us) )O`%֟)y^-)y^Y ) RBl[s) RBl[?) QHK) QHR)  h) "[) "chSt ) 0?) 0) Fn) F֚ ) F֚t) F֚) GC )K+h) F ) F eD) F \*) F !) F -)%=J9)%=J9L)B%x)j nN)X i )0̺h)uga )ug)/ )~hK)7_;)@\@[s )Ԙ)xR`U4)L p)L p)enyT)-\t)+d)+dS)+dL)+j)+)+ ,)+ a)#\ i)ڐ )[d s)ypf)R ){7A;)7% )UU4 ) MDS) MD) MD) 3{zX) ЂN) ЂN ) ЂNU) ЂN) ЂNQ) ЂN)"hG i)"hG|)"hG )"hG ()"rs.)"r?%)"þr4)"þr)#v)#v)#vL)$tu6 )$tu6 $)$tu6 ,)$tu6h)$tu6 ()$(elR)%`=zh|)%`=zh ,)%`=zhj)%I)%I)%x@L)&Ci )&#؝tK)( )) ځA \))! R))^?)*037 Q)*037 R),G5va),WR@ R)-d?ta)-d?tS)-ہ).7 x)/76b9)/S8)/ )09A])0>X2} )0˜,)3)Ņ)474!)474j)4ֺ)4ֺ)4ֺ)5l, )5l,)5 :V)5[cv)5[c)5ލw )6=MArKs)7iTv)7CGJzk )7CGJzk )8Z滚ڑ9)8Z滚ڑ)8Z滚ڑ)8Z滚ڑ)87?9)87?9 ():41y?):41y *):41y#):41y ():Y%>):Y%):Y%Y);&J; );bGl?);bGl ();v3B?);J )=: .)@&m)?)AN)ACx/Kf)A@&()B\<)B\<)CUF )D"Ii)ER3Y)ER3)ExB )F)H])H)I\,S)K5`o$ )Kg#)Lы,!v)LM\Y)Mg s)Ne )Pq1t)Pr T )Pl4[(R)Qm %?)Q" )Q,Wbs)R$sb ,)S)R $)S_[)S<~V)T8rD)T8r)UL#u$Q)Vl?)W.}R5)W.})W.} )Xз@xM)Xз@x)Y $])Yi1)Y<'p)j)Y<'p)t)Y[85)Y v"  )ZQ8$q)ZQ8$qW)ZQ8$q )ZQ8$q )ZfM e)]+P@o)]Q )^Wə)y )^+f9$+)_׍-)_YcB|b)_YcB|t)`B,wS\)`B,wQ)`|%(G)au()c W)e UhQ)e Uh )e Uh)e UhY)e Uh a)e )el͟$v)f[4Mf ()f.9 )f.9)g3 , )gE)')hO}j+)hO} ()hqm)j"TnS)jZA ()j3r)k7d A-)k;_T)k;_T?)k~F*Y )k~F*k)mZ݋ )mZ݋9)m*Z: )mpK)n!7N )n!7N)n}xu)n:$)o>,*)o>,*)oo->Bt3)o×V )obuF )obuFK)obuF)p> )p> )q )RS)q(h>,)q(h>&)q(h>L)q= i)qW7 \)r&)s]B bO)sw)?9' )t%pʿT)tAq!! )t3f')uiM@)uu]*KyR)uu]*Ky,)uu]*Ky)uu]*Ky)ux9 +)u7 )vu_XrP )xG~.[)xsKN )yxP ()yxP )y4-O){9Bb|)|_gS+v3)}@hYǸ? )} S)}⛱As)}⛱A )}S)~ U )~w, )k~8j )1X)]LD I );N);););R)-^?)-^ )&7 $ )hC)>q;d)>q;0)>q;)R{0?)Tq i)Tq ()I2̈ T)+z i)+z )+z?)W?Mt)W?Mk)d+_)Äw[)}f)}RQ)})p 1U)WD$)WD$D)WD$K )Yc a)G$ )G )G )G)$ƕ:)$ƕ: )dq1)dq1L)؋*N)Q/tKb):*K.) =C)l)}?)OKOy )OKOy )A86 )uj)Ҷff )/Xf?)/Xf )[)i8 \)Ɔs)Ɔj)O1()O1( )ZtW)`\)+`)-] ) )]Q #)]Q )]Q )vIL)y_)x,ȅ )x,ȅ )f >Ft)f >F )f >F )f >F )EE N ,) }+) A1 ) A1)=޶K])FZ)g.\ )̅pV8t)b#)b# () #)XxWS)XJ9< )4Z8*)4Z8)4Z8)4Z8)<ءa )ה) G]')Wt-HQ)Wt-HQ )S6)aФf )aФf )aФf)zQ )u^($)7M<.)F R)JgU[)x_ )x_L)o6*d)o6*Y)o6*S )Ͼ)΍.R)-)$)-))-))Jwt)Jw )Jw)h) ~7)$+Dv )nO`;N:)nO`;)Cdv)Z )a)4,9 )))xH$ )*y){j){)bZм -)bZм )g(% \)9j)-Xۺ )Csx )Csx)Csx ,C)Csx)@2)P]8")&hr $ )Q)w9m)(܀ s)df)df)^)lW?) ) )–$ )y&) Z ) Z) Z)=}/D)=}/)q! Q)q! )q! )wg)ks )ks)&{M@)1^)D}lW ^)rK)Ut)UY ()x+g)@j )k%F)p)>2֨t) X ) XD)S^v)?3K)t̉Y)I )a)Vu)Ű w )@W+ HTN,)%KUF8)%KUF8)%KUF8)%KUF8)%KUF8) -IV) -IVt)zͧR)S(IL")ɄN ) 3?)y)6OB )6OB ,)ΰԻ $)ΰԻ )%>Mϖj)~??)XK)$fL$ ')$fL$t )$fL$ )$fL$ i)$d)C)C)CR.)Ca )Zn)܆#)3 )&)& )ӄ?kQ)Ӯ^Ս` $ )oW +)%aY)ԉؿxPf)V:9N)َFK2)َF+)َF*) ~Sp)sq˻ )4)[ lV?)k>P![)`q )+eZ)֍س~~):J,j)81Wټ?)1({;)׽; )D􌛤)(I?D)G<]i)G<]i)َQ))+zG~)+zG~). ,). a)mH)Z{)#ewl} ()O=M)ߘueU)64)j)<>)# ;K)4B%!)At)B>؊pY)gݓ )6"A#|)6"A# )Zv2 ^){[v)-KL)-KL)-KLL)-KL#)-KL$)>U)Ԃ)Ԃ)Ԃ)\QJD9)7m )‚+-)QG?)QG )+ei )ϊ?)s7741)ds)_Tj)?+KS7)?+K)?+K)̆?)0A)0A)~ʗ+ a)h} ~)h} ^)52|d)52|)'/B)fJ).vaK ).va){ތgt )pzS_)C͜)C͜)!)%E+t)#o!C)W7iY).F ,).Fs) U=* e )5 )&( ,)Wk)'?J)>O -)iWS>*)AxR *)AxL*)Ax*8r*V*R"Fv*I` _S*zWw ,I*zWw Y*zWwj*) I*vӬmY* nR/ * nR/ * 3* *B3a i* ^u1 * W* W]* a* Dj* D* D ,* (ͨS1* (ͨ* (ͨZ* L * LY*e? *jXM*jX*jX *0 '|*g՛S%*n9i*n9i*h&M $*SrS *ގi%*ގi%*RUI*RUI*j*&:N*"R.v*"z$,]H*?Q*R]Z*q!*,Ԑ $* MY* }*™*i J*i J*i J-*xD%O*xD%$*xD%*(4Vjt*X'sL*X'sL*q@pj* 0L$f * sצj** sצs * sצ *""R*#-} L*#FQst*#u{*$G0İ *$^Z~xOB?*$^Z~xOB \*$^Z~xOB i*% ˏ *%L_*%N(k $*'%PS*'%N*(_rr *(_rr*)/$b/*)EnC7N*+oLc?*+>X (*+wսR*,\'?8s*,E޶00U*,]" '?*,mCw& *,mCw&*,RΆN*-# # *-g ^*-l3$*.1*.1R" */3qb.Y*0dDT*0dTn*0dTn*1s F ,*1s F*2V{$ a*36(շ *>(շ *>֗/N*>4 *?oYRD *@ *@,izj*A-3@Z*B*׿Or *B<ւ*BFwx-?*BG໓*BG໓*C[Q*Xj*C/*D.%.[ *DU= $*D/Rs*E@Kd*FOt|*|*F-Ø *F-Øh*F]Q*Ft1*G1)z $ *GՆq *H +3 ^*H_Kn*IҶ3ty *IҶ3ty $*I>'uc|U *I>'uc| *I>'uc|*I>'uc| *IIp5 *IIp5*I:LR*I:L *I:LS*I:L*KR*Kg4*Kgt*Lh`*L2;R*M'RXKs*M'RXK|*M'RXK *N=3F*Nf@ c (*Nf@ c? *Oh3$*O&S#*P 67>*PΌwMO*' e*]V>'*^[E*^U=@|*_ͰW*_ͰW@*_ͰW**_ *` .M?*aO*aOR*bc4F*bwW^t*bwW^ *bpI(b*cCL *c.N *d-S*d-*d6"MD*dTeqt *ezt *f[Mvk*f[Mvb *f[Mv*f[Mv*g~gjt*g~gj:*h<Κ9n[*hK`%?*hrA *hrAh*it*iF)D*jQO\Z , *jS3Ly?*k'<*k~Nmx *k~Nmx*lm *nWΊj_j*n D?*o?3 *o?3t*o?3 a*ow| *py.:s*py.:P*rf *r !s *r͡0*s-5L m*tlPR*up(rv*uiZ&= , *uiZ&=*uU*v#tFE *v#tFEt*w8Z8J;R*w8Z8J;*wTH*wC7 *wC7 \*xMGc i*xrvK*xKLZ*yNc*z ן?*z ן a*{g/*{(${GZ*{(${G*{(${G*{_tiv*{x"R*|>y *|>y *|>y *}J\'*}u *~M(*^9*?+t*'%qN* {[G* {[G *%*n#* n *g* *R. a*R. *l~Kt*L$ӴX*L$ӴD*@*grިB *grިB*tISd*T9< *T9< j*p6s%*p6s *p6s*p6s *p6s ,*ָt* 1Rl .!*t|)*t (*.D*;*NZ**0*=Qbs*;jN*; *; **Jq*T6;*T6;*T6;*T6;*{ӇE *{ӇE*,y*6FZ$*6FZ*Tˊ3/0*Tˊ3/0+*Tˊ3/0*,S *,L*ω={*:`p' *:`p'|*M\x*GR*i*`A$*Ҩ*d? *J+KY*bQN"a*rG+ c *4'*F[r8S?*q , *q *< *Gr]S* 9 **8:j*Y* Wd*t{To(*t{To*t{To*N'L?*g[C *g[Ct*y`s *y`s *ZS*NJ]8s*2NMI ?*2NMI *2NMIj*pr\F*JCݎx*c*/#A*^**ᶬ@*\&L *!;C!^*!;C!^ *qwc *KS*Ȋet/Q*۰b*>Q *>Q *ŷS*& *#ϯoK*8NS! *vԫ *%d$*%d$*Q #*'&ޞ4R*QB22h c*^8DX8 ,8*J~;8*g\4 *ɇt*Z*Z *Z*S-*,)V *B+ $*c;C*g*K*^:} *:t*ЁRu"*⽟㇑s*JIv*RV*du["M*r+*r+*r+*ӏ-%*ӏ+*N *#Xy*L#9*VL!t*Nh*N *N*8ۅ*8ۅ*6*tH *eB (*w F *Y֮R *qNqM *T s*k?*_p*1^)*G *1eG?*1eG (*\|ԫ *\|ԫ ,*G&O P *ިZo+ *o. *o. *4-,*m*^.cN*g"5*N!j *N!*C"/R*5X *5X* Xf i*8B*ĉ멳iD*蠷9N *zĭyT *zĭyTS*zĭyT*zĭyT*ۂ A*ۂ A*!QL*'ͅ9 b*)?*|D~*:}R*PS)*)_F*z'jSv *'ð *6qCk*6qCkL*$^v $"*Χ?*Χ?*Χ?D*ᤡ *ᤡ*Ϩd=?*B+*dz}*NS*N*N*? **Wp*d h*OY*KSals*3/gI*3/gI*5F/v*8>$jқ? *7*7 *7*1a*1a*N鑘H *N鑘!*nKz*nKz*nKz*vl^ݣ*vl^ݣ]*vl^ݣ*!߯^*XiM: *ɀZ*ڤ= S *ܙf*q*r *޶{Se*+(Lt*/= w*U+%Zn*Nf- ** *? *?]*cø2*%:͒*%:͒*6R%*䂵3 *vIh*_A *_A * u;S*qӕPQ,*qӕPQ{*qӕPQh*qӕPQ*qӕPQ*qӕPQ Q*G a*G t*X=eIt/*X=eIj *A *QJHЂ*]D*E~S**m`*m`*E> *$*D=*D*ms*3b'hs*Qq\ r *nq $*nq *2 *y`*y`*y`*2# Qt*2# Q \*aVDv*aVDZl*F*lGb* L*azT*go'*go*@VRP*eF *(<*f)ᰣ*koh> a!*koh> c*koh> (*b n[*%*^/*f *f *f *Ph*Ph * ܗkaD*s9gR *LSTZI/K*`*_ٯG*L+*^, *^,* y*P ?,* %[p+!NJT "+!NJT+Z?! +Z?! +8Q2+[dxEFt+7~ +ٿB c+=+ + +yJh , +yJh +Ȅ2ii+suJE +suJE++|/Zoy+|/Zoyv+ćR+ "e.Z+ \g? + \g?+ 8 $+ !K+ CݕD+ P+ {zej+ {ze + {ze+K^!N+v>N+Y3%+U j+5=h+Dhis?G+Dhis +3|+3 +M<i\ + Q8{R6+)+b{R+°%+°%+°%+P)%+\ER+eYI-b+$Pw>I c +2 +JHIt+v9+4,\[ +2Tk a++lЉ +j360+j36+j36+ss +s+s +s۟j +{ a+{ c+8 +]? +] +b%R "+^q+y + u <+ u + u+ u i +!rWf c+"u$}v +#R+#k9 +',=GD+',=GD+'{piG+'{piGs+'W~I2RQ+'W~I2 +'W~I2 +(J  +(J +(̖}P+)=wd +*Q +*`7 ++Ct++/% $+-$^ E+-$^ +.%+.76C# +0LD_+0x,r+1/ j+1/ ?+1\b +1\bS +2Q=K'Q+23F-N+5+5'# ? +5'# ?a+5R6}+5?+6f4(+6f4R+6z&`O+6?+7epf +7epf+7Ps+8#R1 "+9'Ob/L +96St+9_IN +;xgP c +<ߙC+=S(TWr?+=]4ˤ~ +=At +>5+>5+@ ?+@ +A2p+A#( (+A8+A8K+A& +B+2K +B12ڌЁR+BԷiSS(+BԷiSU+Cl3y +Cl3y+CxGkj+GR+Gd +HŃgj +HYg+JR)wd+K%?6 +Lp|(K +Lp|(K+LzR+MRcM/ s+MRcM/+N?8+O."o+O."o +PW+PW+PW+P, +P,j+P,+P +S9gK+S9g+S9gR+TkRC +TkRC +T rv+T r +T rs+U }]+V8{+V8 ,7+V8 $+V8 +V8 (+WM¨pt+WM¨pb +Wr'9N+XsR@+XwA)Y7+XwA)Y+Z uYK +Z]Ib+Z]Ib+[)G Y!+[)G k+[C98??+\ eN +\R/L+^C#}k+^ +^zWgR +_:&j +_:& (+_Ms*@6 +_Ms*@64+`T]$ +`b s+`r)o|+a g*f+a'~j+cר+cר+d$smfv+g*+ ?+g #+h{Ku/ $+h{Ku/Z+hǕb&+h+] +iFcV. m+iFcV. +iFcV. +i*ha +j %e)+j %e<+j %e +j)i?+j)ij+j+j+lTjR i+lcYR+lG[t+m-~ڎ+m, Hv+ou(+pۿ+qCH. +rti+$ +r}n +rX+s" $ +tV++tV+9+tŴ +u#Z+v68+v68+v68 +w:2(J5TR+wx {+w CQ+w CQj+w CQ+w|!Ti +x>/=-+x>/= +x>/=d +x>/=+yy+z'F3 +{tYD+|g@v +}qD[+}A? ad+}*VZ+rKG++0 #+,Ut+,Uk+_^?-e+RD #+0#Pd+| P a +| Pj+QjUP +nC4+9KnC+/ +/ +&=}+&=v+KTnF +Z7;#+]"d Q+zXttT+zXt+zXt +rT +rTQ+F]+!( $,+!("+H` +f~8j +Bm1 +Bm1j+RfX+p? +95o+N$K+N$#+ڀ!?+1_1:+1_1t+ߋeh+N7 0Y+ݏہQ;+oUz+/AB +C;+C;+Hʍ:+j5 +~F (&+~F ,+p}/g+%Ok+*^ v+aos +ao +Rե8T+?+-œd+;L-2 +S , +&@s +T&p+S:'R@+r# +&il+&il+uA -+uA  +Kb +y(ՙ+4K+$9s+{sY+ DS+Ax +c?+c r+ GI c+(+8] +6D \+6Hd+:+O ?+hMpXt +hMpX +_:%P+Oi2 +Oi2 +M k+M ^+M+'N~+'N~K+ +j + (++t+8cIkm"+}i?+$r*x r+$r*x +$r*x ,+$r*x,y,m,Qk(8 a,YD.,z#|6,z#|R(,[:$,?Z,@t,b,ɓH$,ɓH$K ,!>z)<j,t4 3,CI* ,ɉa~ ,/IXd,/IXd,/IXd,\v *,d],̞] ,̞] , 89( , 89(?, 89( (, 89( $, S=, ALG, Tw mR, Tw m, ^D? , ^D , kY, 5+K," H;,?- e,-'X,+*,i$Y|,i$Y|s,} ),SĽt,Q8,a| ,O,a|!,a| ,a|,rgw+,rgw,27ۭLe,9J!t,R|,V8ס #,oE $,0,~+,? q m,? q ,*s,*HpS,*HpL ,*Hpd,*Hp,W.J,>Bt,3*9|,0ե2,Z\,I{\",I{\ ,I{\Y,I{\,R ,,X 1,aԕt?,D.ՁhN,kV l ,#ɑ ,U=,o ,o j,4u-,WۛG K,0L,0,0S,1gJ,1gJ, Z^ ,!(g3},"K-5< a ,"K-5<|,"K-5<,"7 ,,?'yNw,?ǗB+K,?)E_ ,@L"^9 m ,BP5s ,B' v,B5W:k,C(Yh,Cȩ6;t,Cؖ,Ekj{,Fo ,Fo ,G,G~L*,G2Ub,H.o,I0f4,I0YaS,IZ| ,,IZ|,Jn,JDyQ-,JDyQ-,J?+D,J ֠L!,K_,K?PAv,L aI=,L%Yze ,L3Of/,L_ j ,Nw ,Nw,N/ꙮD,N/ꙮ,OK) ,P={W Z,P={W D,P->̥,PE;2 ,Qɐ\,R-"ROXPK,R-"ROXPQ,RcsN@R,Rơ>,S ,S ,Sl ,T;Y< +,UoUmS,UoUm-,UoUm,UoUmL,UoUm,Uq Տo!_,V ul ,VĒ,VĒ6,VĒ,VĒ,VĒK,Wouh ,Wouh ,Wouh ,WB%-,Y&U,Y2x5c<],Z+1,[64,[Xv,\ 0Y,\/K,]#zg ,]'" ,]'"?,^^$]?,`iO",`[O,`[O ,,aG<,b3X ,bjDοD,bDφ,bDφ ,c}oT ,d6{,dz,d. ,ee"~,ee"~S,ekwZ, ,ekwZ,S,fE~,g, ,gcbp|,i!b @a ,i!b @,i~!j,iO? D,iؒ\ b,iؒ\R,iؒ\|,iؒ\Q,,je Av,je A \,je A ,je A ,j x,kgjQ?,kR|?,l 2,lQ~V ,lV'$,l$pD,n& ,p_&,p_,q$Z ,q=RQ,r^3TD S,tQ<,tQ<e,tQ<Q],tQ<KS,tQ<,tQ<P,tQ<,tQ<d,tQ<R,tucC]?,uwl,uwl,uwl,uLR,u 1",u 1,v5̸@L ,v5̸@,v5̸@,w9Y;N,wF5`:,x;e^~ .,x EDN,yp݅ |,yt|,yֽLA,z p,z pD,z pj,{ΠE#,{q(N,{/y!,|~2Bo i,|~2Bo|,|\ƴY[ ,|\ƴYu,}+ʎ>,}@ ,}@ ,}@,~|\'jN$,~|\'j,аJ?, _ w,vlgo x,vlgo g8,vlgo ,vlgo |,/v,ħL ,AR,{&Z!,OSHG,_y,Bn,Z,t͹ ,Di,Y+B&,Y+B ,,Y+B $,Y+Bh,Y+B,ʅBt c,ʅBt ,ʅBt9,~9N ,Vb,l( A,j,j,uȆb3 ,uȆb, `s,N&p ,#,BrQR,BrQ,W m ,kv,k,`>fL,ߞ(]X,ߞ(][,ߞ(]Z,kop (,q e ?,q e s,3*W,Cx(3,q ,q,q,q,o,s,drL ,$\,1sf ,Mh,7`,VQ| ,VQ| n,VQ|v,%o[Y,%o[ ,Ĕ,4io[ ,ݥKw,L8?,\vMP ,\vMP, !>@<, !>@<,$w\?,93Wi,93Wi,H,H,PfZV$,H$j ,H$v,H$ (,Ua ,:X,+@ ,oM,oM ,ws,7<m,R}}>YS,WKzG,WKz,WKz,\@3[,\@3f,\@3D,f,Y,5 ",tK>?,+bK,dh,d J,d ,q,rR,B ,x0,3,\,훚"T ,;`Q N,M,yg,qY ,qY,&,-l ,-lh ,-l ,-l,me,me,Y?,HUt ,HUk,/,/,/,b.0f2,!,B) *?,B) *,tb\),tb\Y,?_ږ+,?_ږ,?_ږ ,},Σ , ׻GL,0Z?,Ĉ(.t ,ĕc=K ,Ż5 (,/~hXb,`d6],BRָ * ,ZqCs,ǶN ,Ƕ,Aq[ (,}:\u,t$ smFR ,ȋ 7|,ȋ 7 ,wͲ ,,tS/ ,̺MK - ,^ S ,:{,ǚu,ϓ[s,^5 %,^5 ,^5s,^5 n ,^5 :,iܾTQ',iܾTQK,iܾTQd ,iܾTQ,iܾTQR,ЬS>,ЬS,t ,UxN ,'s-t,'s-:,xU- $,ѳx넎,ѳx넎,ѳx넎 ,=C+,2I,^S #,^S,u` 1 ,chH],G c ,«,&< ,֋qm}v,q+e w,k3,ׂ[[B ^,(ZZ ,!},? (,&*,qҙ4^b,؊8mM|,؊8mM|S,زB";?,wy,ڱI$ ,œ 3 r>,œ 3 ,œ 3 (,І&߹t,JG,'We9,JF,"dl,HLJ ,@z,$ ,!W,!W ",ƾU$Y ,ƾU$, <,9)r,9)r,9)r{,uݞ'[ ,uݞ',U,/8S,㤨Mzɻ ,-$,-$K,C ,@;a)6,@;a)% ,@;a),@;a)U,@;a)],穯y,& D,#Y? ,#Y ,#Y (,#rzYR,T,T,f N,ECJ),'3[(,'3[,+fk,c i,]}ih & ,^ #,3m[ ,, oD + ,%SF,&,Lwl,Lwl,8tńt,8tńk,|*$]v,ה0,ה0,ה0, , i zd,oS?,oS ^,oS ,oS i,oS ,c%oPwv,T,u~s,u~ ,p,De0\,MeV,Me],Me,Me,Me,1iq,»[ ,»[ A,»[,x7 ,x7,4<>a, K%`, K% =, K%, K%-, K%&, K%,,[`,Lq,Lq ,LqN,c:v , 3c,K3Y)?,K3Y)? i,2e,2e->5-50,-50 -K,-W:a-׸\-Ob7 -b| -b -f!\-f!\ -%| a-%| $-%| s-xd- )-ئn -\N--M^!?-2 ?-2  ->tR-߫-!8-!8- ._8 - rz5` e- r%\,*W- r%\,*7- r- `C - ֎ -~0iv-ZS.-~jW- -S'-S'-n7-n7K-n7-n7-.hQ2-.hQ-.hQ -.hQ-9WR -o "-@߼-@߼-i<:-%מB-%מB-K]` !-N5G-BK%%-'] i -$-tUmt-^'l-#pd-1kVҊb-Cc9 - ,-) -)d-6 -9Mv-BoK-7U?-7U i-(P - 0i?- IK&- c$٤x- գ#xQ7- գ#x- գ#x - գ#x - գ#x-#7r{-#p= ,-$v+-$ߏ i:-$%ȸt -$[P?b-$[P?t-&+Ė/-&+Ė/-(d4Ld-(d4Ld -(w]XcpR-(tXL|-(tXL-)q1I-)q1I-+{ -,P/$-,P/# --PI--+:--=X^ x-.,v$k-.sXQ "-/ Y-/ -/ t-/bf -0UV(P?-0UV(P # -0\nR-1zc$-1x` -1ta?-1ta-2' -4=?sRDO-4=?sRDO-5N3-5N (-5N{-5NR-6NwR-791t-72K i-8-xJ7 S-8n)hN-8aJ?-8aJ -8aJ -8aJ -8C*j-9}aps ->}ap i ->=-a ->Ňm->Ňmt-?<^]-?|DD-?}1-?9gw?-?9gwj-@|6} -@eu](-@eu-@eu-@۽i -Aw"-C1>5* -C1>5*j-C1>5* c-C1>5* -C -D-6v- a-D-6v- -D-6v--Em.5s-EW -EW -F%fA9 -F-h-HiA[!T-HiA[! -HiA[!-HiA[!P-I3"cRm-Idq[<-Idq[R-Jx?-Jx -KO(Y -K_dO-LD-LSF-LSFh-L߾Q-M`XY-M`X-M`X-MR-M-M-N._ KJ-N._ 9-N._ -Nd?+-O7 GE -O>!KvF-O>!K-OB8-OB8 -PAպ-Q=׉=1-S-SvѷD-Svѷ$#-Svѷ-Svѷ -Svѷ -S"s服 -S"s服?-S)}T'-T ;n2?-T:6P -T{[-U; -V}?Nʌ-WO!-WO-WO-WvX^&-X -X'Z/ a -X'Z/t-XTb) %-X띄S%-YYp -YYp-Y> -Z|A}-Zڅd-[[`?-\QTg s-\J?-] S j-]!s-]! -]! -]!-]! i-^k-^tIM-_WQ -_b>. #-`&&-k-`0-aY &;pe-aY &;peK-a~g -a &?-a/o!-a/o$-a/o-b]f-zl?M>]d -zl?M>]V-z un-{ }J-{f g-{X 1-| &X-|1{Q(h-|1{Q(s -|E_@q-|E_@q1-|E_@q-|xQ1j-|(Hu-}SN-}K=pF-} )NL-}⳥ls ,-}⳥ls --~?`N˺-~{g/ $-~{g/9-Ϫeɢi - -5'N-Q?#d?-( $-1: l-1:Z-1: 5-1: -1: e -"/2 -̉`U -}ibr -}ibrj-Mz3d-Mz3dR-K5;-K5;-y} \-qTs-{|qj?-{|qt-5jX -5jX -u '-u -u -(9 [-(9 [-k ;6 D-k ;6 -{s -{s -GJ =-(-3]j-3]s-3] -3] -3] s-`#gYK-`#gY-`#gY -e -e (-/-G2L-bl' ,-o-g9ꨪ -g9ꨪ-l' -/W!-:1 $-Z""J-bMv-C];K-W߼s-xx?-37jq,jg-37jq,O-37jq,t-37jq,-37jq, -v+-x- g-&Lymt-v -< D-< Dh-PLx a -PLx -s s-o߇ -o߇N--xI- c-HP-lC-9݊-C\Y˨-a'q%-jZ -u~t`-J m -J t-J i -J (-J -Vuo )-\FX%\-\FX%\-0s c-z&-*4-(i- W[-Juf8-l4-B9-4PR{0s-(֟ -(֟-L$iZ-2PR-2P-'. -ۋ0 -ۋ0 (-W_9- \-K7 a-rJ-5c} -\]- -it->ik ->iK-/j-:m]L-:m]S-T&  -Z -Z -Z -2(*v-2(* t-D>g?K -D>g?d-äVGm -äVGm-߭3g-2x[?-ƃ{k -Y"-(7v -@--~`09P-~`09!-ɱh6 Q-耚D/Q -耚D/-|g-9{QNo-9{QNo-ʂ0Y-ʂ0 -^v-M9Y-M9-iϙ0K -˅W?-ˆ=9_-݇#s-݇#,-݇#t-݇# -݇#-O[h-O[ (-3-ͽY ;v- N-d`-ϭ #-3N-ڒ F? -`MvS -ۡV -܌AY -LZ?-!%----ާlA -ާlA-޳y3-˒CO -@ ,-6N?-˄tI-$2W[-K@2!+ i-|$2-!̢ؒ -N$?-N$j-N$ -k$-(g b -すv #-+S-23J -D$1t-z>06 -)✤ 3- # \- # - # - # -کq-N7J6-罴0M -罴0M-šR -51-\!4S -\!4SU-{br-Ea0 e-dU, -"y--L7 Y-_#-눮Çs- #V- Uz- Um- UK- U-.z! \-I ; "-ui͘{d-vWbk-k} -ʆa -gR-AP c-2uk-2uks-Vs-Jv-R -?PS-?P-y/-,3$- A7ya -owL -owLt-ᑬY-6c-6c-6c-j[̶̮ c -LhR-sƣ-di -di -?b -?b D-?b -!OFr -ֺܚs-lK -g!-g!-g!D-[YQL>-[YQLQ -@nLjN-]Xu -_I,#-_I,#-垝 (-(-&Xbv-&Xb -ʾZQ-ʾZC -ʾZ-ʾZ.n3\i.GC.G ".G? .YRf} $.YRf}.ug$.ugj.h .8'ᄈS.Tt.lTP,.lTP+.lTP &.lTPt.#T2?.A)S.oH2.Dz j .Dz .V .fCdb.[x I._ .64خs.٢&7 a.Vh> . [Z. e܇.. e܇K. eѮ:. UST $. gP[. c . q. q. qv. _vbs . tK?. tK.^x.tv.qɋ .6wk!.S0$.S0.S0S .S0.S0.R e. R. >o.l.ՃL>R.br?.br .I #./憌Pv!.6`d|s.:T/.PwIN.yv .v,?.v,? (.I! .W`t.=bS.=bL.=b.i3*?.uw b.uw &.uw e.uw .uw i.uw a.VΗj .h .[K Y.1Y .1Y .1YK. ^` R. ?. Ƕ5. 3.C.!* .!* .!*t.%W!p.&TӖ}.'ƏBVN.'/ԕ1@k $ .'/ԕ1@k.(F,j+.)8% (.)8% ,.)q6.)q6 (.)q6t.)q6.) {=.) {=.) {=Y .)H7f .,(y!.,=o .-a3.-]./7Re./ȩj ".18.1gk?.17sܞR .1e[ .2BSq .2mC^.3g p ,.3+N.4(c .5{}I.6.7bC5".7y%m .7y%m.7y%m?.7FI;.8PLmb ^.9*)-t.90nms.90nms.:ed.:ed.;aL .m{5*?.Cvpv.C6Xk$.C6Xk.C6Xk.C6Xk.E 1,X .G@).GSd.HX.HS.I%8 .I%8 a.IzA`.JD}(J .JX}AvTs.K. .L Q.L S.L L .M jDL.MW;j.Mʿ (.N*th m.NXР.NXРR.O'b~ \.Oa[ϫ ,.OΙ !.P.Q.PqR.Q .Qnz,.SJb.T128.TDO c%.Un&GS.Uqj.Uךv=: .Uךv=:.V.VOZ/!.VOZ/! i.VcwR .Vgke%L .V`j .W1\^?.W K.W/ (.W/v.WC'ҙ?.XISdR.Z-g.Z.Z.Z.[n.[n.\!.]?&?.]Fb??.]Fb.]Fb (.^*jT#.^ .^Mn._I 8._I 8] ._I 8._I 8._ҦUEG ._k=E?.aڽ .aڽ.aڽ.a7.a۪.a۪.b1۸.b1N.ch%*7.ch%*7.ch%*7 .dik=/.d7Z.e!騧.fg}  .fYXa.fYX e.fؾHEL .g; ,.g;.g;.gAxh .g= .hlۮ;.it .it .it ( .it.it .iiBX׮ (.jRʦfcR.jR.kHOUv.kn=.li3+ (.mJD.m#.n!w3U .n!w3U.o'ɧ k.o'ɧ t.p%tW7 (.p/V7ő@.p/V7ő.pyMR.pyMR.pոx?.pJ[.qB-pH ,D.qB-pH $ .qB-pH .qs.rVTU.t%.uת]O?.uI|5.uI.uI (.v^ `.vc s.wb6t.wh.wo9.PZ.w .x (LAb (.x-Ar .x̫ܯ.y|C .y4Y7 |.yU߸.y,f>.y,f>.z$ 2X R.z$ 2X .z .z.{< v.{!T .{b @+.{b @+ .{b @+.{|"G[ .|g|Z.|8 ^.|8 .|8|.|Μs.|' .| .|O; .|O; $.|O; .}/+.}/+.}/+ i.}/+|.~'a.~vNJj./UR.&GT.qj9!.qj9R .C@ |#.C@ (.C@.(剷ͱ .(剷ͱR.j.2^#f-.}ypqC.}ypqCR. w.!C;.>..kH7x .%? .%? e.%?j.?|.O.}}Vgr:.}}Vgr*.}}Vgr.}}VgrS..K.H.­\C.,Mq .ĭC2mR.ĭC2mK .ĭC2m.ĭC2m.5]F .5]F 5.5]F.5]F.s.oi[.2 .uBx3.uBx3h.A\' ."x [,.u .O5B.O5B.~9 .<:'d+.HaI .uo.L.|Ѹâ.a .1dw.1dw.N!2.N!2[.\C.ޣ[.` j.H.Ȣ]v.Kˀ.:X( . ~( .I#I:.I#I:t .I#I: (.GX .!r Y.x'3 .| ּ \.Ic R.x 3.QY.ƾ( -./EoS.Re e .e4.K" .3E .$Oٷ.U4 (.WD.֊s.I6߁.یC^y.f6.t.tS}.t].t.7 # .7 .$4[j..P.NC I. b*x0. b*x*. b*x].oV .G,s.6UN.6j&.ISWS? .C6U.v.>ٜD.>ٜ.VOg .qG^! $.(.k .>#'.l5. s .z$&b).z$& g.{./ns.8. .8.s.8.Y.kj.4lL.`j:".`j.t]Y<.)fF $.8I .M H .9L_k.9L_k.c& Ėd.c& Ė.t 212.#1 .x` .ƖE5l9 .S>5l9 (.iJv?.@ .]2"?.*o \.cZS?.AQK:.0-.捣KQ .'p .i\&o Z.0^Z.դ=Ov.}N ,.ZG?h.)"R.ק_ײ!.Ic.7) .A.Aj.c # =.dl+CLs.I.+ńˌ.+ńˌ *.4rM.ژ[ T.ژ[ .ژ[.ژ[ .68[P .68[Pc.;*.یo>B..UpC܌v.zR@Bz."|2<.1}3.Xa, .=.׸ML*.׸MLS .ߌVi .(06. . . .2Z.2Z.`@ ,.$s.hgxe.V^bc .GENB.F.RbwZ.  #.ʪjt.ʪj .Ĺ #.Ĺ $.2QI ^.x3 .ý.Of|.4/?.=p.@ϗW@2 .nA4.8mf.8mf ".?x&.ߟ^.MDRU.aP.z.f7 ;.zr .N?Ik` i.N?Ik` s.Nb; .> .> .r4& .jzQ .jz..L08 ,.0j{  .O015 .PZ7j.O{ #.b&SaN.b&S.b&Sf.b&S.tg .tg .tgj.tg g.`(%.RؽE|? .j.~wĤ .~wĤD.Ё*l?.Dr.Dr.Kg}6s4.jm?.I#{. AV \. AV.BλL.O{as. >b/]NMR /]NMRR/e4=/(h7/DЌ`?'/D[ :/sC/t// /| ߒ/ we /~بb /~بh/5s/I.ة(/I.ة(j /I.ة( (/Nus/  / 1/^/ Qit?/ Qit / r<@j / r<@?/ g/ g!ú/ 񻅢t/ NFR/ 4 / bA / xF/ xF/ fla/ eOPSL/ eOPS/ 1fKb2D/3NL#/3NL/_QJ 2 (/rJkY/_:x /O֌ /Ak/a/42~F/42~7/42~/42~S/PBGD/g) !/ѡ<ߢQ/ѡ<ߢR/׀?h $ /׀?h/7k;P/7k;/7k;/'~S/<Ho/!3ݪ4b|)/!3ݪ4b /!;sץ? /!׺/!n"/!W%^L/# v.b/# v. /$Yib/$_9[R/$qN /%gbd/%Z;`K/% JIsq/% JIsqQ/&.?/&. /&./&. /&. (/&T:ͺ/&T:ͺk/'45: /)H͝٣?/)AR -/)dz/+$6/,>C/,L /, YF/,ܵbR/-f /-!ʌ /-L/-I/.: /.<(H /.<(H|/.<(H s/.<(H /.vYy/.cJ /.cJS//հ //հ /1 C$/1"s/ /1$a/2S2/2S2 /2S2 /2S2D /2S2D/2e޽.f/3lķ /3C:Zt/5 /5_Ӱw g/5_Ӱwh/5}d]/6 Lv/6N/7b1 /74ll/8#}f /9  > $ /9' /9Z/9 ?/: Ŝ?/:_ /:[q /;&R /<X/<X /=lp/>e8Z/>n,ȲS /? Hc@/?mCk/?ƫ7 ?/@Jѝ\R/C?Jg r9/C? d ,?/C? d/CJNt/CK/DWg\ /DWg\ /ES2!JP/ES2!J /ES2!J /ES2!J/EF/E ?/ENx/F^3s /F^3 /F^3/GZ0u /GZ0u /H (/H h/H s/H |/H ^/I(K/>+Z \/JZ% /JZ% /LP1s/LP1/L @/L /L /L /M1U /NaR0/NLN)E /PPZ */PPZ /PPZ /Ruyv/Re20 $ /RnXa/RnXa?/S*6@y/S^gzS/SJ/SJ/T/T¡R/ULcRH #/ULcRH /ULcRHk/ULcRH Y/VI/VI?/V/eɪ[ /V/eɪ /X ;J]/Xӷ/Xb{+ /Yj/01v/01 /!j j/=ܩ| j/rN%/x)-/K|U/EdsgZj/hx:;/ArR/vyBt/ -  /A# /A# Y/A#t$/A#/>-/ R/E1 /E1/U /H}3k/H}3/H}3/H}3/}H//s/尳^L/ /* /*t/\t/2@W/hB,/2z/~9D/~9/ F?/\ !b /QG (/QGt/QG//'/8z/H`ju$/^ /^ /ȦrM?/fn7j/҇?/F2 a/^ #/1< r/sN /tlZB /Hc- /Hc-]/Hc-/M /M/+]<? /1-v/I@ /C/C/)x= /W#3+/sMO/S/j Jt/G #/dvD /P]C \/&̿ =/ZFR/oiv+/oiv+R/۰"/h8 ./k /<yC /^VQ ./HFt[/?'uV/]!f/4dVK/ V>1?/. IoX /R4r ,/}fR s/ U9/ U9/oj/o/7;8Ť?=/7;8Ť ./7;8Ť (/xE}i/xE}t0/xE}s!/I?? /# /'ţ /'ţg/'ţs9/'ţ /'ţ e/'ţ/'ţj/G I/6 :/6 :/X4j/{^3l /8KE?/'$tz /'$tz /W'k/DP /5MF]?/5MF] (/b \/b i/|My/C LM/C /xجV+/xجV /u届v/u届v/u届v/,/zK(-/zK(- /zK(-/ j/ٶ9;/ٶ9 /N٭v/./Sϯ/r1* c/Ѥ $/Ѥ/"7K?/xf/cυY/eeS(C/; m/[)^/ #/Z/2]/+L%\[ /+L%\[| /+L%\[ /+L%\[ (/4W[/ňA_nhs/ŏ+2k/;=]? /JO8,/odo /Ț#ӏ/]SvN%/]SvNj-/]SvN /]SvN /˅BQh/˅BQ /˅BQ/D\N/oD/4r/= /= /=tm/=Y;/= /΂±f/΢եO?/΢եO i/΢եOK/lYe /7cK/qA \/ϭo/{K /'@sN /[xT/Һ{u< i/Һ{u< /Һ{u< /+s0S /ԅ9ev/Ա,hw/{E\ZR /2 %]/שO^v/V/"%aG|/"%aG (/"%aG /"%aGh/؎ a /؎ a?/؎ a/u$ \/u$ (/օ]6j/٧,D/ټa@j/̧?[/TFkS/TFkT/TFk:/TFk /TFk /TFkL /TFkZ/TFkd/:5ha/:5 8/:5s//:5 '/:5/:5 (/:5 /:5 /R/rp9N/፮6,/$4@ /$4@ ( /@-^R/@m5/+/+/揎S/)'AG[/-:N/=s/xoK0D0)X_? 0۲JZ03 ;?003 ; #03 ; 03 ; 0_m 0ǚ*+d0cQ=v 0o0^66n 0F(A \0&e |0 PwoU 0 mJ 0=Tѱ 90Jz 0;u+'0%05&I c0b70 96t0 96 0 96 G0Br4 0^s0o^0o^+0mg , 07L* 07L*b 0/j0꣺x0꣺x 0a;b0f7  0f7 0fL 0f0n $0M.q0M.R%0M. 0}<0}< 0R]ms0Z"`Cew0= 0fYwB 0>[]S? 0>[]S 0?bѻBm0?bѻBm 0?bѻBm0?bѻBm 0?bѻBm ,0?ɖayy0@s2Cs0@0:wR0@0:w0@{~B0@0@ 0@\U0A+4wmP0A]G,yj0Aky2J30Aky2J3D0Aky2J30Aky2J3P 0B/Ƶ s0Ct0C6/A g0CN޽ )0CkVSv0DX笫o +0EO?? 0Et0Fۂ#%4 0F"i_~D i0Fsbkf 0FsbkfQ 0Fsbkf0F]a0Gw}Z 0Hk| 0Hog 0In7W1Sg0In7W1S0Ig?0Iv0JQ#0JQ0KD|[0KP7!0L0shhR0Ln6R0L^0MxN0Mpv0M}Ӂ ^ 0M32 $0M320N6t9ݸ ,'0N6t9ݸj0NuT4]0Nf)o0Nf)oL0O>}X0O>}X0P@ǩ 0PNkk^N0PgW?0Q+DFG 0QET.S20QET.S0QET.S0Qwx$ 0Qwx0Qwx0R>:+0SCah $0TVb^U0TVb^0TVb^ 0T_:i0Tv;sՙ0U`q]0VI > 0WZ$ #0Wt6}0YAD0Z1b(WJ0[XZv0]TBG90]TBG9R0]TBG9S0^r7=0^r740`h0bM0~>M0~>M0,ՆZ #0Ai 0`/j0?0 0Bo@@fVt0Bo@@fV0[V p i0[V p0ʤk0A~\ 0)+ 0)+t0)+ 0:xR $0pS05% #_0W#L0yi3s0yi3 0%b_S0iKx07>@u07>@u0==A 0^ 0&5W 0)ʪa0)ʪ0)ʪS0Tȴj (0.iϣ0K&$0 0t՞R i00t՞R0t՞Rt 0t՞Rj0,҂' 30,҂' m0240UA g 0UA g 0UA g0eҞ p0eҞKJ0eҞRc0oաD0н$0нD0E]0E 0Sv g0Ă A 0(6@.0Xͭ0Xͭ0k*b0TP 0TP e0TP $0t 0W'- 0/Y> +0- 2{ 0I0E(0sO 0ɅK<0!N0;rG -0Ϊut0Lײ|0Lײ|0Frct0Frc0֍g0{۵E&?0%h~n 0%h~n 000a[0i = 0Ti1| 0t  $0c2p 00o,JL j0:7~t0'{aW 0'{aWh0f_0[#0NB$o 0Gf0s 0Swv0a\m 0iUCK0(&#]0gǾ$0gǾ0 , @#0kg0 E_? 0ҏH 0WI ,0WI0YHvt0YHvk0YHv 0&˷|D0&˷|K0KQ˖0 ?+m0?Q0/mF40CtY0eS# 0 ˇ?B 0 ˇ?B0 ˇ?B0 ˇ?B0DpmOb 0mbF 0U!0o׃0o׃0q'g $0q'g 05PQ0ii $0ii0ii0!m 0!mt0!mk00;I= (00;I=si0= pR0$ "0<2jz0'0A-i0| >j08_^08_^ 0 (0t0; 0;0]0pa߫ 00AF=an0)mOv0t 0و< 01Z*`01Z*R0"Hli030ԯV30rP]0Š[Ko0=v$0HvM (0HvMt0ÿ14Z0xL0ĥe,C0ĥe,0ĥe,0ĸHp_j0ݛpka0ݛpkR,0ݛpkP 0ݛpk0fh)R0K 0K 0>Jl0>Jl0[|0Y޿"0ȁߛ 0ȬmSy#0ɛY10ɛY1 0"$?n/0"$?n/ 0˚ozxRt0ȉR~80ȉR~D 0̪Z[0̪Z[D0DnJ$0Ux^ 0͚N%0tbva e0BI &0"v0|[ a0ϑ?=(d 0ϡ#`]N0ϱҘyRR0ϱҘyR0ϱҘyR0эEt0Ѽhx 0ѼhxR0ZX2 {0iq0ҾGZs0ҾGZ0\O 054R 0Pi-y 0Z.x 0_b1D0_b10_b10_b1K00 i0~ \0֑m˹J[0֩Q-ZQ0UR-u^ a0T70?F50?F50?F50׻4 i0589 0@-v0@- \0Ls00R0 0ۦӏ 0{#w 0{#wv0}YZH0܂sPj0܂sP 0ݵ g7p90?0O 0O05sia 0;*}?0%TzAs0Rׇa0Rׇa0n 0n $0yy4c~03k7R 0ԟ1vR0*6Y0z8Kn|0P0P0P0(WR 0S0q&m0q&mk0q&ms0q&m 0Gom~t0ȶh0`gG: 0ܩ疨 0<90襼IR0-\ s03u j05b kR05b k0N>ww9/0N>ww9/ 0R0p#N0ᬨ v 0ۤ,! 0]W0 ' 0 '0'繨0.Z07;j0M#N0}^*k0=Q2o0~y v 0s0xQ;ͭS0xQ;ͭa0Y2 0Y20kZ'0lsܾ 0P #0侥`; 0s0W$B 0W$B 0󞩈J0onG?0X16 0ϝh! 0ϝh! |0ϝh! $0+V94t0+V94 0+V94s0KU!ԭ 0KU!ԭ0KU!ԭ0s!fK0s!f0\wuP 0\wuP0dݮ )0dݮ (0dݮ0dݮ0v'f0ZL04ȡ04ȡ 0i_?096Q0960^ղ U0 <? 0mY!+.s0#o 0#o00#o 0zN0o$Vt0o$Vt1HC1HC $1]R1]1]1Pz 1w#L?12> 1Q 1{Es1q@1ڛK "1!1! 1xI=?1SI, <1hDN1A<& $ 1 112ۺ1 ug_t1 ug_ i1 &1 &d1 $ Y1 Liǁ?1 Liǁ1 MNCB1  1 זg?1 V,K1 aE ,1 aE 1 ǪL{1{qR 1)CR1P:1Z:81z1zt1z:1B|1B|1ų-5 1sK ,1sK 1sK1Nqv1ʰj1h %sV1a 1h CN1qX10gj-10gj-10gj-s1B % 1 ^. 91ub1>q1Ľ2nI 1 SO51!;Op}Z? 1!i1#? 1#ˌ $1$Z? 1%:R1% 21&*eg\1'+%1(Wjɒ?1(k81)zrS1*4( hjs1*oݕ1+APCR1+\|`8&1+\|`8L1+\|`8U1,yIN1,Hd] 1.`XuR1/glk 1/8+Ol 1/o 10ղV# (11E8 11z~w(118޺iCt12UqK12UqKS13[e2Nu13[e2 13[e213ڷ 13g5Q14X0N 14$R15"%15 jA?16^pI17c,?17=74 s18$W0)18bhC18bh18O$b19uL?19#=E~P19#=E~19#=E~R19iq019iqL19iqs 19iqX1:(-?v;1H"gx0b1>J{؉ 1>}@| 1>}@| 1>}6# 1>}6#?1@iMj1A%T ۃ $1Aī{j1BzbhQyK1BzbhQyK1C@Ld1C7dW8 +1CO n]1Ck1C[yON1Dz[(1EWs2Y1EKS1EKS1EKS1EKS1F@rN 1F$U7[1GL@'f?1G_,F1HE1I?1IC+- r1Km{U &1KʹAy )1Lx 1M֓1M֓1Mv󤓼1M: g11Mߥ캫 %1N=mR.;1OA /~ 1OX:1P0_[1P0_[[1QI4"g۠1Q#*!1Q#*1Q d1R&J1R=\Ço1R=\ÇoQ1Rks1Rk1Rk1RŠĜR1TF1U.?y a(1U.?y 1U_9#d1Vmve[ 1VP1WqeiM #1XX=D (1XX=D?1Y^:@bd1YI 1Z3&_! $1Zܣn1Zܣn1Zmg1\erf1];. 1^3v (1^~{a 1^ca1^caU 1_F}1_w1_``Jch1`m-1`m- 1`m-h1`m- 1a{h (1aT (1aϮ8]1b9lvZ1bz41bz4R1bz41bz4K1bz41b 2O01b 2O1b 2O1cv~?1cv~ 1cv~h1cv~ \1cg<1d܍"j1d܍"1d^ #1dk ]vO1dk ] 1eϿ-@1eϿ-@?1gCĂ1g_g?1g1h7t1g1hLJK91hRzZ1ijE? 1iDةK1ji{1ji{S1kV7Н} ,1kV7Н}s1k@y1kWI 1kg_>1kC21k?1l D 1l d1l 1mWk 1nK 1o17u1p-=`& w1p (1qvDʍ 1qb01q/1q/1roij 1s}XV !1t{Bs1t0bD j1tK1ux? g1uvF1v\E 1w3d>w* \1wtK .1xuD1yqFL1yqF1y~1zuhvY1ze1|߅#1}@'g{,1}+! 1~F 11~F W1~F i1~F (1~L 1~ĈT$N1}|5?1Dzg 1Dzg1}1=t~1=t~1ys:Ι2h1ȃŨ{ #1ҌGN1(Nh@ "1m6Q֦1go;Z 1Ex 1cͺ1*t^Q1_ ݋1_ ݋1ʿ 1ʿ , 1&es1&esK1eR 1e1eN 1@0Y1`~x 1qZɗ16Œ3R 16Œ31,RP19QGp (1B01 m1) 1a1uS$N1{↽R1Q[FAD> 1k aG1| 11 Q1,C1IJc1K޿R1~ + 1!H[81ǚU?1y61E*71>ds 1*19? 1٨6 12f1 I/JB1 I/J|1 I/J e 1 I/J 1'4{Oh1Y3x$ (1Y3x$ 1ŇCi- 1ŇCi- 1ŇCi-|1ݫt61ݫ '1ݫ 1k4][1k~R 1vm\$ 1GN$11aFM1l%Ct1O c1X<1y a1v kt1,K$1.c01"s &1"s 1"s 1( 1(1ט?1"W # 1-U1-$1-1+j=Z 1͞71 E}1@1 1'Qd1'Qj+1'Q1'Qh1'Q| 1'Q ,1ew +1ew  1ew 1~]&1~]& 1*){ 1*) g1?~a1?~01?~1?~1lq 1aS" 1uS41uS4 1uS41KpT 1KpT1at,s1at,?$1at, 1at, 1' 1a½h 1a½ 1tĞ1~t N 1wvUυ0R$1wvUυ0}1G1EyI j 1lG"1{z[R1AU1غq81qw(1_)H's1wJQ+MR1 dW?1)z 31) SjI 18hys1V+t1)+51Ap*D1#x 1$Cն?1\ԡ1,1}iX$ 1@%?1C8ꎖ ND1C8ꎖ 1UnՌ &1UnՌ 1UnՌ:1û 1û 1B[Rl1B[ 1B[ e1g"1S{ $1Şw0Z s1Şw0Zs1▽ a1▽s1xh\~1Ʃuy1C 31K)v1K) 1K) 1K)j1ɫ, 1ɽ]%_1ey 1Vndm| a1ʠ ?U1ʠ  1ʠ \1ʠ 1ʠ $1˂wK1I\a1̃55qt1̿ywWb1V}˴1fc? 1cXf1R鎜bZ(1R鎜b 1R鎜b 1R鎜b1|;s 1fuS 1hx*d 1҅zk1 (1c?ER1e@R1YS31"CIH>1JZԯs 1JZԯ1JZԯ|1t>cl 1gk1gt1I 1I 1vW?14D ,1٥"v -.1٥"v 1ۇy:D1KcR1KcS 1ݼD/s1--1ވ˙p1ᶼZ$1~ n \1iqL1Np1rr]U"?1rr]U"s1D&s1㫩ͅS-1WF ~ c1s $1v Y()12 m1' 1ۅ 1pN71*!IP a1!slLK1>GwY 1>Gw 1M` =1Ayo 1Ayo ,1281-'`1yX1c5 ,1c5 1~31~31% ;j1z->? 1z-> 1ѱwIt1&7 #1E` 1y41m]7 1'R16yC1UJ?1Pl:7 n1Pl:7:1l'&1m e1󜸇?1X1 ?Gٝ1&~4 1Wv5h1#^) 1#^ 1o 71lsB1l1l1,̸K1,̸1,̸1' P?11tyj1 s152#1Y?,1Y 1Y 1HkZ1G5Pph1G5Pps1nQVe# 1^yT1,ԉ b 1b8% ;1]?188DR1x.B1(ٱd1(ٱ2!2yR2CndR2r!+ 2>3<2>3Q 2>32>32gmL2=2LV[ 2з}^ $2GmiR2^KҚ?2^KҚ2MϾ}mQ2 Hs2 ,JC2 /llpY2 /llpY 2 ;'2 Y7hzR2 #^J2 v7k 2  (2 dፓ i20 8202uGyDR2J29 29 22 m2ن8j2'rϱ s2^9(2,w 2e^2e^2e^#2JLMQ ,2k$l,K2[oay2+F/" 2+F/"]26AN2oИ_2rzQj2_r!220{'220{L2T^haM?242oѡ2J]w92I{ 20s 2`j2n*>2f%2"X2=zޑ $2=zޑ (2=zޑ2=zޑj2X^b2{} 2 yL 2G a2G h2 kC@2 li2!L~ s 2"Q'A2#ƈdx i2$&{JC!2$&{JQ2$&{J2$&{J2%/8*fI2&31h $2&xfMq 2'( 2(bSc 2(bScS2)TsjQ2*srv2*srv 2*srva2*srv2+d<2 i2+d<2?2+g<_#2,_I 2,_I2,_Ij2-#2-#K`2-#+2-#!2-#2-#d2-#Q2/=U`2/U<1O2/[,$ 20iGl? 21&WNe 21&WNe ,21>kt022n} 23J 24!&a24=e24 Ԅ24 a 26(\28H~29 =D 29 =D29a+29jGa82;`,߼I2;vJZ2;vJZ26du2? 㨯- 2?m 2?OKP *32AcKhw22A"NhxV2A"NhxY2A"Nhx2A"Nhx 2A"Nhx2C 4#K2C 4#2C!w2C<)-  2DnΫSb2DLcd 2EY0Y02E[`& s2EeI2Em+2EB>K 2EӍW: #2F 2Gs%2Gs%t2Gs%s2Gs% 2Gg 2G|$D2I G22KTwR_tN2KTwR_ 2KTwR_ 2LQ?:!2Mތt2MC2N4FD2N4FD2N4FD2N4FDL2N4nR2NP&ٳcR2Ni(zc  2N+N{)d2O<4e  2OC82Q l` 2QltId2R%{2Szmޝ42SFj2SFs2SF2T 2T`Czu +2U"2WM'w2W{P 2X\@2Xx j 2Y( , 2Y5|# 2YYNL2YYN 2YYN2Yq\2Z_$2Z_2Z|ğ2ZВ)D2Z%b.?2Z%b..2Z%b.2[[pj 2[[p? 2[R~%2[id@]} 2[id@]}?Z2[iƥ8rQ2[iƥ8rQ2\I=f2\I=s 2\I= i2\||[2\G2L2\GS2\GK2]=vR"xo2]iV 2]$sM2^0XsQ2_hs2_h 2_~Ygwvl2_~Ygw i 2`D~} 2`PXeNk2a)2aaƻ2bH`_(2bRy¶~2b{t?2b{t 2b{t2c 4_2cot?2c51t 2c51k2cU)` 2cU)` 2cU)` 2dQ ! 2dF/s2eP9>2eP9> 2eP9>2eܖc.2eVI 2f&A@ .42f&A@ %2f&A@ 2fG 2hFs2hF |2i"V: 2i Z&2i Z2j1eN)2j:2kqVE 2li.;2l}xt h2lU[2mlۋF12mI8J2m|[0t2n2y2nlH~S2oPJs2pr 22q (H92qQv2rFޛ 2rͶ2t4; 82ugO~?2vUx2x7:t2yC*2zǍ2zrU!s2|a2N32|a22|j2|j2|jS2|:I2|:I2~h劵2~if^KP2ilDy2ilDy2ѽ28+Zq2uO 2uOs2NNeR2S\42m2mO2T}uL2j2jD2/h׳2~xgN2\^ 221LR0f21LR0fL2ky w2Ǯ2{FqܡR2 2INt2- 2 *o$ "2i龸t2])H$2It{+2(`k2(`t 2F]+Z22:R2C%gB2%j~42%j~K2/n= (2-D$L2|՘ (2N4Vv (2N4Vv28s2X Q2'Ig2'Ig2ja2E 2u7Ȃ2u7Ȃ2/+" i2ޢj2~f52F?Q , 2F?Q 2:\T2XRj׮2o\J 2o\JK2Is9 $2Is9 t2 G^2[d27Ldu27Ldu2zK% 2{ڸq c 2RڿjF2Rڿj2)(?2< c296q0Lt26CbR'2NeQ=o 2NeQ=v2.2ZS2ZL2Z2ZZ2p0sY25ŔD|2v2,K 2,Q 2/ c2rϠS2=+2#2w2w2w222ƚzhj 2ƚzh 2{*N!9 # 2[2 VaE2 VaR22 gS2fK0 2? i2,nj2,n"2%M2bd{ 2w s20G":2'l2'l2Vbϼ?27$w 27$w %2vl82zbB 2N7 2L2Ylm 2}%Ka2čok2'V 2y3Ck92y3Ck?2;N7L 2dVcr 2dVcr2޹ioeR2Lp9] (2Lp9]j2Lp9] 2Lp9]2Lp9] 2slD# 2slD# 2slD# 2c+F 2ʆ)D2I . 2(F 2ˏW;tb2B32HM$N>2#$J 2#$Jt 2#$J i2R$2XVf 2ΧG_ "2pA3 2pA3?227iX 27iX 21r1 N2΁D ,2F[x2OB#2ZY2f %2*?552&\t2Z p2e ݹ 28< ?2R<2]Ʃ?2]Ʃ 2L@v 2Dκ"$2Dκ s2\f.K2.np 2ܯՓ($2K2 Cy%2 Cy% 2 Cy% 2 Cy%D2Mpd%2Mpd2Mpd2q 7\ 2. R2ۤ0k4Q 2YgG B2Jb+ -2N 2N (2݀VW l2 eDBTs2 eDBT2#cU4 $2#cU4hY2#cU4 .2#cU4 2#cU4s2#cU4 (2#cU4j2Xc?2m.b2-s;}Vj 2-s;}V 2b|`N2ᇧSm2ᇧSLs2ᇧSZ2ᇧS~2ᇧS]2ᇧS2ᇧS2ᇧSU2o2S2l2oi2%+[tf2%+[jD2Whst 2>N2߈`?2WK2_3D\2_3D a82_3D 2{2j2v7/ 2v22v2 2v22v22y="K/N2^e[>2^e[>R2Bpd$-2Bpd$D32Bpd$ 2Bpd$Q 2Bpd$2Bpd$2%2 h<\2aV 2aV 2aV 2dgz2h`k2h`2n&q25Ijjj25IjjY25Ijj825Ijj 25Ijj 25IjjQ25IjjR25Ijj2D8R2fkt2# 2 wȗ+2 wȗ+27'2 )&( .2T$.!ALm2T$.!A 2T$.!A2T$.!A2T$.!A2ZH'&n2#3N&2|:|o2?.2a2F=2a2F=N2)`O3?22ȔO=22ȔO=2+| 2+|?Q2yӌ]<Y 2ӛ?2a:ub2S"2鲨s2Li 2Li2UxnI2I04 :2I04 j2O1{2B04}\ 2(M?2 PS<;3G$ "3vXb3b*3aL?3υcЉs3υcЉ3υcЉ s3uhxob 3uhxo a 3uhxo 3T=x3T=x3gzs  3`a"43QMK3_s|3_s|3'DC3'D$3'D3ϥe3e\k3e\]3e\63e\U&3e\ 3e\D 3e\]3e\3e\3)g t3?3 *X-)3 gS+y i 3 j̯3 㧲 3  3 3p#a)3NZK8G3NZK8Gt3NZK8G3ٹa3-^F 38_ 38_ +3=˺;03=˺; 3=˺;3@< (3 N3'H3'Hs3'H 3π6#3z 8 ,35Dx}B3v)03 3v)03 3v)03=3H0E3b-@? 3L̊3p0 3hI+?3gu3}-2?3o~< 3.BM3?wd3w3w73w 3w3 Jm23 Td?3rPX L3rPXh373V?3"%a39dDžYv 3t)L3}-jc3}-jc3!Wp& 3!Wp3!_R 3!_}v3#*]3#wP3#j)6?3#ë\3%AzA< 3%~޶L3%~޶3%~޶3& 6܌%3& 6܌%Z3' BV 3)f/3)0q3)B`3 3+{-ia3+{-iZ3+{-i 3+{-i3,8$)3,8$ 3,8$3-4q{Vs}3-4q{Vt23-s*sI3-s* 3-s* s3-63.. 3.[3/k93/: 30 &30cy30cy31a32Jj 32IK!j34,w 344 %34ϸG?349Ev349Ev?35z{%S 35z{%$35%06!N35'' V36p'36XK36X36X37.qN37V13j c38*IE?385\~s385\~s38FO6 38I% {38k 38ПN3:bYVZv 3:& 3; 3;eEj3;8a.3;8a3<~9I(, -g3<~9I(, eb3<~9I(, 3<~9I(, 3<~9I(, 3<~9I(, 3=@o m3=@o 3>Z$ 3>Z$ 3>Z$3?| 0ik3?| 3@YZ3@YZj3Aj׸R| 3ArP3C=Su 3C=Su a3C=Su 3CtfL3DL8j3DF j 3ELG*ٵ3Eh<3Fڛi~3G&?c  3G&?c  3G&?c 3GfKe)3GfKe 3GfKe i3GfKe (3GfKe3Gķ3H>*3H>S.3H>Z 3KR  c3KR  i3KR  (3MgIj&3M雹L]3O 3:3PK=:?3Q7)3Q XR3Vf'P*'#3Vf'P*'# 3Vt% 3Vt% 3Vt%? 3VQ 3Vę 3Wj?3W*2&:\? 3W*2&:\3W*2&:\ 3WuLD3X$c3Xyj:3Y=dJ3Y=dJ3YL4D3YL4Z3Y5R3YJ:HU]3Y 3Z? ,3Z? 3[(Bs $ 3[(Bss3[ԕa3[ԕa3\MSۯ 3\MSۯ3]#a?3] zs3_/`2[13`)3Bt3`)3Bh3`@?3b"lپ* \3c/3$S3dl,3e=3e\,3e\3ey A 3efyj3eBmL3eBm 3fӡY 3hQt!?T3iŸ3j@$?3j/!zj;3j 3j 3j3jj3lI9@G3pBZ 3q 4c3q 4,3q 4Q 3q 43rN¥ 3rzR3r4f *3r4f ?3sh[ S3uq>4d3w'3x 3x  ,3xm+v'3x)M 3xŒj2S3yEfu3yVQI 3yho3yhh3yh3yhQ3yh3yhY3y23z3z 3{f3|Q%3|Q 3|7Eپ?3|'rDZ3|Fk?S 3~HE3~rL \3S30 (730313)ͼ3$=|s3H1Ce3H1Ce3f~W3f~ 3f~ 3B"B 3B"B3ҳJ]3E3fβR3 (c3 (L3 (S3 (R3?NM 3! 3!? 3! (3ĴU3Ĵ3Ĵ 3Ĵ 3Ĵ3Ĵ]3Ĵ3Ĵ3rJN3rJN3);{3̈́x?3+t @ a3?3s3z3?p3j ~j3}wW3eS73eS73lG3R@ 3=A3L ,3Igq3bv3mn3v!3v!]3v! 3sp$3L iY3L i3'.k3,' 3Zp3)S13)S 3~U3~UD3IG+3A/L3s%c 3*ϊ3Z[3ibiR)3ibi3{63Rzk?3Z]s3#6j3\eR3<* 30nק3Ogl 3"d!3Ie-3IeR3CfS3CfL 3Cv^3Cv^3Cv^K3Q ̂3Q ̂S 3Q ̂3WQ]~XN3}CVC3c_.Q 3c_.Q3XB 3XB ^3'*TH $3δZ] $ 3636333yj-3y e%3yY3s&'2S>3Yo3Yo3Yo3Yo3#|K3ke 3%ز 3"D33m4 3885 O3XL3n3n3n3m [3BY3 #&3RlX30pAN30pA3h_3O4313B63maou 3T5 (3N3|v 3| 3v5C3==P3sr锳13sr锳1 3sr锳1U 3t3 3xA}>3|3G%j 3G%t3H3K+?( 3K+?(3iGVRg3iGV 3iGV 3u3ɔK ,3ɔK3S3S?3+F/3>6½3>6½3{s R 3{s 3>au3>aQ3*6!@ 3*6!@3['߯ n3;536< 3Qм|3~:3o} 3{L[3 \ 3僌k>L3ysaK3ĢM@QN3:(5 3c05s3c05 3 ,3$x\: 3$x\t3$x\ 3= < 3?M 343rƇtg9?3rƇtg9 350S3J4Z3 0s3&PK3¿XnMK3'b3eLj3e&3e$3e 3e3eK3eZ3}ib 3 & N 3V343M{R3лAN 38 3U/P 3@1 3@1 3@1 3@1 3@1 $3ҪF"3ҪF"3 3-[3moA3>} 3>}j3>} 3֪n=.3z3zU3X3ڌ"]3joM}P3SR3<дj3ܬԧ?3޲uq? 3 \Pi e3}4"  3ߜ?9kq?3dk 3quh-3៾rZb -3៾rZb3Y,33!F3 JK 3 J3 J3Y*(w3ȒdOxK3#l?*?3#l?*Y3J 9S3J 9 3vrsi93*jsX3*jsX3*jsXK3Il9 g3Ύ -353͜ =Q3͜ =D3 + m 30SSɚ3IgX s 38㚅+S3?n 3ɘQ c3ɘQ 3[G3[G c3Vn)Z 3fG |ͣ c3fG |ͣ #3`j3 BDi8_3 BDi8_3 BDi8_3fրt33R3I<3+/3QOGvSN3S3$4IF3{S7H.3m?3aXVv3NHD3fy )\B3^RK3ICxT3{+=w| 3zK 3|7 3ˠ3kVkc3ˠ3kVs 3˗'?53˗' 3I^3dh16?3gUY3C\i3ڄXv:3Pe.K 3Pe.4bStjsv44 UY4 = m!4 = 4 =?47{j483:84nSlQZ4nSlQ 4nSlQ4?rYә4B%d a;4B%d s 4B%d $4B%d 4+K:%v4ik^e ,4k j4Σ$& 4.ơ $4.ơ4~7c43 43 4vMR45fJ 45fJP45fJ4''] "4 ?.uC4 ?.uCZH4 ^s4 ^s4 Z4 s4 ؄~@?4 c˯4 "s 4 "s4KM44KM4$4nݜe4CI 4q?lF%4q?lF4q?lF4 4Wqh 4Wqh i4ڮՔ4ڮՔ4ڮՔQ~4ڮՔk4ڮՔd4ڮՔ4ڮՔ4Fs 4FsK46R #4{n^4k4}(Rw4Y4h 5eK-4h 5ea 4h 5eZ4iQO4jQ[^D4.ȭ b4Q%q?4cy 4V 4F (4>F 4>0wv>4>0wv 4>v]S4?͘&4@ju4@4 V!4A-=v4BS]Y 4C!.n$ S4C"58U\ a4C?FO_)4D D$t4D"{ZR4D"{Zt4Dзd4Eya 4E@C]4F15s<4F15 4F15 4F154F15h4F154F15 i4F& 4G]4G6g-4H)4k /4H)4k j4H)4k (4H)4k 4Hn:4I*v4JvڧB4K>j=94KFBC 4KFB4Lw ں 4LShy<]4Meu3,4Mv4OH4OƇu[4P.rS-4P_X $4QNzr#s4Q}4N4Q/4Q9A!b4Qy[aK4RYV4Ss=4Ss4Tcr%4T1YT4T t@_-4T t@_ 4T t@_ 4U (41y 41y4 ]4 ]4+4$ihs4$ih c4ػ2L4D6jp ,+4*V4 tγ4 tγ44 4` (64`t4` 4`Y4KS 4KS4y4y4i= i 4_Ahs4q ,4q s4q j4x>YZ P4^0=4{\T[[-4{\T[ 4#{>4nr4@/΢R4C]f24$w 4g 4g4gD4g]4g4g4JOs44JOs4JOsR 4tܴ 4m`qdm4rpZ 4rpL4rp4(&4( 4(4BCoQ4fy4@:VT> 14Yɞ;4Yɞd 4%% 4Dds4 4Dw4Dw 4R;-vZ4R;-vh4͒䔄E4͒䔄@4͒䔄*4͒䔄4:ܞ 44vIxl4vIx4c{E4c{E4c{E4Lw4V4z?E 48OpK4k?64k?64k?64i(4(- 4 E IK 4ڤ]$ &4ڤ]$4ڤ]$j4ڤ]$ e4M;4M;Y4M;4Q! $4W4yo4yo4yo4̽4̽'4 ?4 4E`^?4l4TR4t4t4ս j4ō~v4T .44eR4Ɯ˨]4ƵDQNC4߫Z 4߫Z 4`j?4`j 4 ϱv4G 4TUJ 4TUJ|4 l l -4ə:0r 4QO7t4i4is44 *44 444u 4D̎P?4Ο74k4ά$ 4ά$s4ά$ 4Ͻ}4g4Io `4}BP ct4тۆWd4$ڇJ34ӎbٹNR%4ӎbٹN 4ӎbٹN4t 4t ;4t 4t Y4t 4t jh4t ,#4t i4t  4t s4bbE4Ym.nb4Ym.n4պ"HJ4/4/4"⥄<41q?4A}R 44u \4\RA4ؕDO4ٞ4΀+sQ4΀+s4΀+sK4΀+sR4ޮg i474z584'j4+T4Ryuj?4Ryuj4ܲ GC4ܲ G 4ܲ GP4 m)4 m)4'liR14'liS 4'li4߉j)7s ( 4߉j)7s41zM 4m. ( 4m.j !4m.4m.a4m. 4m.b4m.4X4%~/4%~L 4%~4%~4%~S4}TYzY4>)K4؝1N4zt_ 4g4n-1 4n-14E퉨R4FadT a04FadTb4I}^4BJ}2R4BJ}2a4BJ}2Z4:VJ%4Wr~s4-l[4-l 4}[J 4霭 $4霭t4霭k4霭 4 S4 S4 S 4골צ@ 40D 4$ixnt 4SDB4Q4PG4!8m4 ~?4 !4x-i (46L) 46L) 46L)Y4I2"4ߟ;K 48 &48 4#,W 4dk42. e45v< ,4^R#d4d B 4e 4BW 4\+}81R45ȅ|4r'] 4j 4qpd 4E`Q4z.?4*aU 4 4s[~i4< ^4zW\4ݲ',a p4ݲ',a<4ݲ',a 4ݲ',a?4B6 5FB5FBj5FB e5FB 5Mϔ`Ur c5 | 5ܮ5ܮ54As5i 5n>5n>5>" 5@SS5V= 5V=5V=|5[ůC?5j!+9k5-M e 5/.wj5. Z@5. Z@j5. Z@s5=h^,5=h^,i5=h^,S5=h^,5=h^,5=h^,5=h^,R5zx 5zxj5/.?5/.5Gj5 Ds5 g0<?5 g0< 5 M?5 #44FE5 U5 zH: g5 q;y 5q{wF5',P5IGx5Iin;?5Yo$5fǥ[5cB5GO 5T{D 5a55'vAe 5[pE5̧~50<5Kۉ+k5iԊ"\h5iԊ"\h5|Rm5ȠD5$s5r\5r\5r\5p^?5,z]P$5亶GC5亶GC5ɚp|p58]5_R5Gbo g5\Iy$K(54Wzy 54Wzy5~95~9:5~95TK 5j 5j 5j5<߽ 5<߽?5ܐP5!y^z?5!F 5"S&Xl $5"S&Xl (5"^9ڃ5"G;5"P7ӎb5"2j5#mbbS5# 7 ,5#Ӌu S 5%Blx? 5%NGo5%!Kg 5&`aY+j5&`aY+5&Aa5(2@5)h  5)h 5)aN)5)aN)x5)aN)5)(cd5)(cs5)(c "5* a5* $5* 5*p[K5+G%m]5+I.\ 5+I.\5.A{9|o;v5.I,j 5.I, 5.I, 5.s ,5.s5.s 5/8tʿ5/g;W50B*cR51S: S 51S: Z51wܥ52Q53si 53siU53si54O0s@j56^Zyt57v  573 Y 57359}S; 59`NF 759`NF ^ 59`NF 59`NF59伧 v#59伧 5:G 5:G 5:G 5< -|r5=q8GԦK5=FPr L 5>, 5>, $5>, 5>,F;  5>,F; 5>e5?Nt^ 5?j5?j5@7tǪ 5B~ѷ5B~ѷ5C{K<^?5D0F"R5Dى 5D.DI5D.5D. 5D.5D.5D.5E&5F&?5F& 5Gr 5GCO/f5IPP (b5IPP|5IPP 5IPP 5IPP5I.Uj5J%Fl 5J]T1?5J|.5JnC5Jcqd5J-y( 5K&ls 5KCR"05K}.f? 5L~T , 5NWnW< 5NIW$5NIW$Y5NUS5OarEQ5Oo:pT5Oo:pT85Oo:pTB5Oo:pT15Oo:pT5Oo:pT e5O 5PL0G5PL0GRv5PՒ ^5PՒ g5Qbr5R&d;5R&d;k5R&d;t5R&d;5Rm. 5Rm. 5R #5SR0s5T-2fA5Tr}.%5Tr}.%5Tr}.%5T f, 5Viݖ3P5iEnY5i{l -5j{qL5joWn Z5lt? 5lwڅ-?5l@9Y*K5o4Ԉ!U5p|} _ 5s+3q[h? 5syS5sp5vbIz?5v7w]5wu(ZR5w \5xDR 5xDR 5y# ף c5y> 5y> s5y\A6X 5y\A6X5y\A6X5{ A_4 e5{qKQ5|pPl i5|͢b[ 5}! k5}ŋ5}@{n 5}@{n5}@{n]5~fS5,~5,~5ӯ'j5 5슏=K59'59's 59' 59' i5*f75b,|J5#dm^D5@* 5E-: *5;>Ŏ52!Ͷ5r#57X -57X 5=p2nZ5Vj?5$s59:[ +5`B87 c59j5= 5coWY5Lns5Ln w 5Lnh5}+6C5k2?5&E#pv5 =5zx&H5~?L# 5~?L5E, s 5Jc5Ԩ+&5Ԩ+e5Ԩ+$5(Ǹ5ot5@WM iN5@WM)5@WMj(5@WM$5@WM a"5@WMs5@WM 59K59K5Bg 5b25e?yM?5~D5tL5&s5ts* m52 a5Ǜ^ 5Ǜ^5Ǜ^D5sNOK5sNOK ,W5sNOK (5sNOK5sNOK k5kiK5zsj5Lh 5X9ٻ 5X9ٻ i 5X9ٻs5X9ٻ5xCE|j54N}s5=~ 5g{ 5|55|5 5*5{1 ,5h` 5pIWR5sF'g 5ʰc؟5#-a"5Sm.=5Sm.5Sm.5e Np (5e Np 56L{5D[m5vjc35vjc35vjc35496s5496j5L5L5ΞZ5tS o6X 5tS o6X $ 5tS o6X 5tS o6X 5I 5/1GC5/1GD5nպs59Us5y ,5y5s.5.%x@5= at5FY; s56r5 qF@5 qF5`Է a5iSvk5 eU5 v1s 5EvQD5EvQK 5r w?5ʓ&!Q5 5.ll c5ؿrOs?5$ 5Hq?5#me[5l#5SX(L5vͯM 5aJ ( 5aJ 5'ByA #51!51!5^y5rf%5x[& 5"Sk5o#5uК 5HDg 5HDg5HDg5X#n 5ew'1U#5ew'1U5G*5DwIr 5`'`853AFQ5b7D@b5*ǔ 5*ǔ c5Wѣ)t5û?_& 5͗# 59ြc6'5ŷ-_s5ŷ-_5ŷ-_ 5.W $ 5.W , 5.W5,ff 5f|5 +8j+5 +85d9ڣ?54Z5yU&5yU& 5Esc"ه5awt5k5xcǞ #56F 5geZ5geZ5lthor5ltho|55ltho (5[<+mv 5Q-Bc5Q-Bc5Q-Bc5]?f 5;ZL5xZُ?5 5 ,5ٯ\5;Q@N,5;Q@NU$5;Q@N 5;Q@NS 5;Q@N 5LQˡ 5[;-5AM7L 5F4v5T?0j 5{5{ ^5!Xi 5ֲ]Y%5ޕ򌈌 5ޕ򌈌57?5׻AѠT5L7\:[E5-ql5-ql+5-ql5-ql e5-qlt5r0 5yx6|5:-Vt 5:-V5"PQ 5"P5eIT5J`t5ۦ?5{pE 5ܰ1#R05"ce75݋͜5݋͜"5݋͜K5ߧC֐! 35ߧC֐!5ߧC֐!5Tί5TίS5$6p) 5͠54c t+54c %54c Y54c 5ew5ewL5ewS5ew5迴GV 5ylu57$5꡾Ծr 53ҧ[5252 #578kK?5?P]v (5,L395q|/=5ٙs5¦ 5¦5¦Y 5hG\P a5hG\P?5Vw%R5X (5X 5X?"5X5[矄v5u K5;Yس :5>I<5P`U!9 5qoj58mx 5J dB?5R)K,| 58sJ14 (53t5\4? 5^B5VT5W5_º 5_º 5k]5k]5ArN5Ir5f5Ctu (5R.tt 5Y 5? N6)EUN6)EUd6)EUQ6P!N6PA%v 6/Ń 6їN 6`>ԍ 6De[n6Ly62n+6{Qҳ) $ 6{Qҳ)9 6{Qҳ) 66$6$6R--[6r6 6fC5/ 6F6 61slZ6YM k6YM  6YM 66vl66vlD6:$_?+6:$_s6:$_ 6|&*6IX6IX6IX6IX6 !%e 6 f< 6 x)eX 6 Q6#5щ6$f7 6$wh卟6$y"a6&5$GR6&86&(]s6(#ʏ.$6) ?6)$=c(]6*RO6*nlc66,M5NC6-\K5z6-\K5z6. roN6.+%6./=v6.ņ i6/7T#K6/7T#60?yY61 l5.v61ܗg262'#})f64%f / 64%f / m64%f / 64+O?ez 64aXJ64(64(64q65!'"65N9tÌR65{m:OV66*.z66_u 67"1 67Cmq67J 69.I6o&[6;m 6<.d= 6r軕r6>r軕r 6>qsx # 6>H6>H6?J$^6?yCP+ \6?yCP+ 6?yCP+ 6@* G 6@NB6AŘ w]6AV6A*:6A_t%6A_ m6BÍ 6B8Wog6C;6C;D6E˜Y6Eé?6F\[6F俤k 6Gf| l6H(6IqgX6L۴6Lyع 6LR|6LR|Z6LR|6LZB>6M֔DB 6Mu 跮Q6Mj6Mgj $f6M0-t6M0- 6M0- 6M;<6M]iW6NV7 aK6NV7 6NV7|6NV76NV7 i6N)Y1 6Ort@a.6ON $6P?Q& c6Q Et 6Q^Ȋh6Qt(?6QO 6Q0pL6Q0p6QP/K6RL6TTTf6U~ 6Uo`=z6Ur(6Ur( 6Vn2 6VyGd6WZcK6XEFT6Y}/ a 6Y}/ 6Yk~l 6Yk~l6Z[M6\ 4k i6\jl j6^7s6^Z e6_V*~%6`##6atGh6b8vwM6bz36by_6by_K6c" 6c" 6c9(Z 6cσ 1 #6dru6eiEQBEU6erkQN6eP \Y6eP a6eP 6f<ҵy6fzc 6fqt6g70 (6g70j6gr]6i 6i 6ja6k>Xy>6k>Xy>Q 6k>Xy> 6k>Xy>6k>Xy>6k>Xy>6m-K5D6mKי "6nmKv6n:$D6n:$6pq"6qM#6rpN6r2/ j6rw/& 6s,^ 6uf2)M 6uf2)M6u.B>6u.B>6vI`6wwsZK 6x2GϠ!?6xbOk 6xdT]6y n?6y n96ziId6zvdIt 6zvdIj6z̜l}6{DK+i l6| 6} &.J \6} &.J 6~Ns6~d 6Lb ^3N6&pS 6&pa6&pdQ6&pA6&p6&pL69H 6aY6_/7Z6_/76_/7 6_/7K 6^ձu6^ձu6f^| 6R $p6R?6f  e6f 6xv $6kwy96Z%6)(oBER6O1f 6O1f 6O1f6͢ߧ a6-`V ,66 j6 6Ӿm6ӾmR6WS@S{H6 <Z6d+of6d+of 6_`a6_`N#6_`6_`6\.h i6<= 6<= \6<=6Z YtQ6AYs6_ 6i #\]6ύ瓱26ύ瓱6ύ瓱6׃S?l 6+;Wt6EX6E9@6E9@6ad 6]19 6"3ar j6"3ar 6[!?6[! 6q?!6qj6+]ؓ6/3 $a6/3 [6/3.6/3 e-6/3s 6D' (6]$nv6]$n 6]$n 6Ͼ 6Ͼ6( Q6(6( 6SVӛ a6"?6 6+s6C>6o, 6.o?6 &OR6(`*Tr`6L6m9|6m9s6m9k6m9t6~3 \@6~3 6~3 6~3?6"u.6L;% ?6oTi6oTi 6kH6$۠j96wFt 6wFt 62 ̺Y6BQ`;Q06BQ`;6BQ`;6r436ЧWj #6ʭM"S6ʭM"L6] 6Rv6Hkk6HkY6." c6٤Ռ] 6pnHr 6 6 Q60U; (6 XIK 6 XIKj65vH6Sn6Snj6µ6t?:-[?6nH6K 6FӶӢ6g6 6g66C- 6ԝ6Y* 6`صeC6l1F:v 6l1F: 6 o8Y6 o86 o8 6 o8 6k6?oJW j6\`B0b6\`B0j6Ũ 67.I 6468 6! 6u6!o6u6!o6{6@:j606iMyI? 6iMyI 6iMyI 6km 6km 6崻*6%ޯŲ6P1U @6P1U?6P1U6oV64[CX%64[CX64[CX64[CX64[CX6m 6bPH6bP6bP 6bPs 6bP ,6l^s6l^?6mS6m6[ā K6[ā Y6[ā 6x޵&6x޵6x޵R6x޵6÷(z6÷(zD6;]|68>68K68 6 KcJ6 KcJ*6>]GSr6ǽ|-6Ȋ3 6Ȋ3 (6ȕ8[c6Ń~m 6:j4?6n? 6LoZR6̀ٺY6̀ٺY6Ʃ;wW \%6Ʃ;wW 6S>I)6S>I)[6CZn-6yȷ f6:N3N6SOs6f/L6ϦR6ϦR6ϦR6LHd "6_j6bתys 6D{6ߞ͈326ߞ͈32 6ߞ͈32L68׵6ӥD/T2:6TZS6,XK6˩&mM6K"yP,6?86;,OL6}i6N; 666\P6ۚ gR?6ۚ gR<6ۚ gR i6xF6ݳRf"6ݳRf6Ӄ ` 6s91!]i 6s91!]R6ߨO6n,Jv 6n.6^TN 6>S@ a6;FEj6co 6법68| 6t `Z6L\$' a6b5L6wf6wf 6! j6U|P6U|P6$1Z6d'?66kK 6tT]U 60M' 6oD["6oD[" e6HL:6;QC c 6;QC #6_ 6 &)6}3 6뤟bF6뤟bF 6&0bHef6$B}]~ 6w 8<7 6ތP[6wGTN 6shw926DM 6}Pp6}Ppl6}Pp26}Pp6}Pp6}Pp6LW g6LW 6U< e6U< i6d̩ + 6]~PL06]~P6]~P6 Ht669y6> ȅ6fv c6fvk 6fv (6<6Q"H0D $6@[6W6A u 61}s 6K1l< 6Q \6\Ǜvd6\Ǜv6/06Q`Y6U[ $6U[ 6ע 6ע 6ע \6ע ,6עs 6/v6/v6/v6\f6h.w“ ,6h.w“ 6__73s7 i+7 i g!7 ij7i'R7i']7i'7tYG7] 77ڔ>7V}jL7ڛ=7]DS7d` 7?7?[7TU7TUt7TU 75]7P7t<7P7t<$7P7t<7 Y]8 7 !0f 7 > 7 ߒ-R7 $] \7 jU7I=2s 74Y,! 7t ^79o 7LUs( a,76>s( 7QU7Z 78?7?üj 7?ü?7?ü 7f̮7j 7yf a7"KLB7"K 7f?7f7{?7 F 7 7' $7' 7N a7[q76 74vY74f $7 (yf7 (yf7@`n ; 7@`n |7|Աf7D$\57D$\57d}jN 70pM]j7:U707 yk7 4+q7"H+7"Hd7# ȝåP 7#5O"yS 7%##t@ 7%##t@  7%%wf ,7%:]%7%:]7%:]7%:]7%:]d7%:]7%jd 7%Dfp7%Dfp7&!7 7&݄| 7'c+7'c+7(fFwM7(̩2r7){|C , 7){|C 7){|Cs7)@ߺS7+U:* c 7,?7,?7-w7.Lkۤ 7.g{h7/rS9Nv70Et70E70Pun71, t7173 ;Y73䯍R73Z` s673Z` |74 jwcj74A(Ʀ 74m[̈74m[̈76 O(s76* c.76k)lc? 77:[-772277227722776Us 78%Cѹo79/5Ŭ79z)?79&79٨wgI7:Hί 7:,a7;Ib"|7;pN7;&~HQ7;p)7<.τR7<.τQE7<.τLD7<.τS 7<|VT $7=섈Y7=:C R7?DuW7@7Q<# (7Q<#7S ͯX7T3d7TH@G 7Uu+C7U ҟ7VuNI7VU.7W>- 7W>-7Wٚ'v7Xwϝ7X7Yc-7[GO|7[|j7[ʀk7\ָ@7](Z7^CF07_j%t7_+?7`b\7aAR 7a3FIO0]7euA*7e2Ws 7e\kg7e3c7faݹ7faݹ7f&UA7g$7g\_7g\_L7g\_7h _ k7h _ kS7h‹V6N7h‹V6R 7h‹V67j Sj7j1o\^7jzv7jzv7kQtt7m&*7m( 7n{?7n{7n{7o=W0U7rb˂$ 7s 7sIv7s|7s:  7ta6j%7ta6 ,7ta6 '7ta6 i7utǩR7wHY 7wHY 7x6F 7x̼j7x`<?7x`<j7x]#W6 7xʦY{7xʦ\7xʦj7xʦ 7xʦ a7yQ=3 7yF i7zPY?7{gQ҅7}b~?7~@0< 7~@0<s7~@0< 7~@0<j7~]*7t7~]*7t]7~]*7t7~]*7t-7~]*7t7~]*7tLS7~]*7tU=7~]*7t.7~]*7t7~]*7tZ7~]*7t 7~]*7t78ʹ%7s,8+P j 7{j7?bDI7J[ 7J[ 7HIe[L 7GN 7J&?7iNY7Ӓ7c7,Ck&7,Cs 7(hJZ 7cq?7`$F 7G+rZ7 7bʾ& {7bʾ&7c 7cK7冚  7y 79؎b 7? 7` 7` 7H&Rx7k7 7Ђ 7Ђ 7JyE if7JyE (:7JyE e77JyEs 7!^` Lv7?76K7~b7`7"7`7"]7n27/ 7/7t4@3 #73צ8N7 'b7 'b]7 'b7;'wW 7kH*7ԭ7V 7 c7 c7ZU=?Q7Â7 7é K7rHd7ijTcj27ijTc .7ijTc?7wÐ -7>Or 7>Or 7!B4 7p..wN7>7[)W37kT&7kT& 7kT& 7kT& 7kT&7HHQL7ʥb 7TrBJ7Pz7zJN7~'Qb7ΕM0 7ΞopK 7Ξop7 K 7>j7> 7\k7ѕ7ʫ"aF7uK7oSY7ԆGs 7-ǃ7-ǃ7[Rl7[Q7`Sj7֛-L s7Dbl7в>xs7ٓ 4t7ٛu7&? 7*7Y7ۻwu5.7ۻwu5.7ۻwu5.7݅؆Xv7a ?7gWs7WQE #7^dX{j7\k7޾d'N*S7۪ 7۪7/w7p%?7⌖Ri7LQʱs7LQʱ7/ R7;?}>7֧287}ȗOt7}ȗO7潬ޥR7潬ޥ|7潬ޥ#7潬ޥ 7\Q7 YШs876= 7u>j7 ( n7VȔQ7͝'R 7tz7铏+SS7Xr1 7ܰ87'{_&[ 7? tj7Ue9j7잗PD7QՓ7ש^7ש^j7dE) a7z+o7z+o7fљ 7fљ?7Y} "7Y} b7&?7&7m?7mj 7m (7a< &7a<  7 _e7 _e 7 _e 7C0FR" 7&Q7;҇+"7;҇+"b7;҇+" e7;҇+" m76޵2 7PC7;8|V a 7;8|V _7;8|V (7;8|V7p I79B7l YV 7i4 71d_s7dж(& (7!L78[7v tL 7'{'m j7"sd7G7H2 (7H27gJ= (7'H  #7}_h a8vU! s8]#8]# 8]#8]#8G_978e?8e 813 (8R 89φS8^֊ 8^֊R8>U`8>U`8xe8{!Q/ ?8{!Q/ 83F$8ޑK[ 8Wk|k8l 48ԣZ8qQ $888YM8~bQS8~bQS8 :s47k"8 :s47h8 q 8 j1 >8 j1 8 j1: 8 j1 $8 L{8 Ҹ 8 +p8i1tmK 8GCh85 88v8+* t 8+* (8ex ,8ex 86Ee86Eed8 8Ec8Ec8Ec8EcR8<$ a8nH 8nH8 DR8i>s(8;Qj8<#j8G 8/>|8/>80'1 80nH "82[jw g82v3? 82v382v3 83WN2uY"83WN2uY"f83WN2uY"83S84`f 84mDc%s 85$K 850gypA?85C&1]K85Am85Y+qX585:z86R87Q'`L87s/j88V0#T88qjR 88qj88qj89wЙD8:MH- 8:=}8>K'id 8?2/8 8?2/8?8?N8A)8ATE&W_ e8A|# i8AD m# #8BY8C<8D:u 8F\Hp.S8H5L_8HGa6 8I7f8JIjR8LZ_?8LR1$8M'Ǽ ,8MʒFDt8Nkasr8Nka  8Nkah8Oo4k8OZF|48PN>` c8PK 8Q-^x8Q-^xK8Q3^h8QY8d8Q&8a}8bI#8b?NdY 8cSi 8d?o8d 8d?8dnu?8dWÜ!8dWÜY8eyT[8eF 8eFY8eܸEv8fI<+8fԱu!8gtZP_8gn8h{|=D8kE#<?8kaJ@qj 8l擻3R8lz8lz8m K8mKz 8n%i8n?Q 8o1Wa j8orrkN8oHq8oz#8p1? 8p1 8pЧcv98p" U 8p"98q1 8r ɇN/8r:Z8r ?=8t3*SF #8tct8tͽd8tBZ=8tBa78t|28u9۝Os8v32|8vS (8w:H8xB Oa0?8x5p."8yTx?18yTx?h 8z'l$8z'l$8z%ѽ $8z%ѽ i8z%ѽj8zg8zȭ|8{ E 8{#8|SfS 8|SfSN 8|SfS8|zu&8|zu 8|zuK 8}bteHp8}Dn8~DF&8~õ|N&8~õ|R@8~õ|8" 8"L8U , 8;:_#:?8-[8y ,8k7R8M^ޓ8%eS8XE a8XE|8@=?58@= #8CIv 8t e 8th8TC8 U8>8 گL08 گZ8 گs887OZ8FrյR,8FrյK8Frյ8Frյ8Frյ8 =8Nc8ڋt 8 ԒclD?8K88o 88oQ 88od88oK8X v8I!R 8I!8Et<8Et< 8$3 8$3 i8$3 8 8Q 8\=@ 8I8тz0b8тz0b8тz0b 8тz0b8тz0b8e6FR8L8b8?pB]S8rP8rP8f٘8f٘8(H3 8~388L,- 8Nz?8Nz?t8͙W6 , 8͙W6 8͙W6 $8L8N #8jE[y 8{?83_s8p9T 8B\u!8B\u!08څ8څ 8{ZK8Nv'8N8pm\ 8pm\8Z8"؄R8"؄87@k87@b8nK8`6 8`68|z/R8PWG.,?8 U8V6f c8yE $8#,;qR8k!$68:ؐw 8B x) 8MG'R8%%bN861Q8NY^78NY^ 81V87PS8x_#8ۃ N8).^8tR8c 8.?85+8;u 8N?8N8N8yW8`ŤMz (8S?8Zm8C]T84DǴD 9 SߙX *9 s97̓t97̓ 9^CL9tɍ #99Ky99KyK9qMȪ?v9}S6z9Iaƥ/9Iaƥ 9Bԡ"NC9Bԡ"*9Bԡ" 9Bԡ"9Bԡ"K9Bԡ"9No!N $9No!N \9No!N 99zm{k9Ƕ"9<[|9's9'j 9' (94{| 94{|C 94{|R9$}O: N 9P}; (9r++ 9~9~9}1p c9@fG?9Vv9:j9: a9L<. 9L<.9~( - 9"79vmg?n9vmg m 9vmg 93Ԙ9A09bq*91% 97,9jY9=EݷL 9DXRt9S&.O 9S&.O9c)v?9c)v \b9c)v9c)vj9c)v (9`>9*\gR9G))(N9G))(N 9G))(N e 9G))(N9G))(N9<] xK9@ŀ92a?9 f]eB9 f]e9 f]ed9 f]eP9 o%9 [K9 [ 9 [R9 [9!fR , 9!Lߥc i9!Lߥc 9!V7K9!sn s9"tߴ- 9"! #9"4. 9"4.R9"_{j 9"iA{-9#|9#Z\XN=9$T{ i9$T{ 9$T{ 9%cr[2r99%cr[2r9 9%cr[2r989& 9&"i?9& YJ (9']Vg9(ܫZU9)TfA?[9)TfA ,9*=֙-L9+ NY9+ Ns9+^T1M9+^T1M 9,qw ~9,qw f9,qw .9,qw 9,qw 9,qw 9-)? 9-}QYL 9-5BT9. yC29. yC9. yC 9. yC9. yC9.HUv~9/ es9/[lRf92#94ͥALe94D 94K 94_94R95$QA $A95$QA 95$QA g95$QA (96Os i$96Os (96t$97FWis 97){ #98xg 98M99wG, ,99H 9;T&9;BkM9;BkM9;BkML9<( t 9<( 9<( s9<( 9=S{9>) )9Ai.9Ai.9A*Z£9AudR9B05j!9B~T?9BR*v 9B! x9B! xe9B! x9CǐHR 9CǐHR 9C UD9Dȵg$9Dȵg9EH R 9EDm J< s9Fl ?9GO5( 9GT v&8 a9GT v&8?9G %,}9I4UB#&9I4UB9I4UBL9IeLR?9I 9t0>9tAKNx 9tK`M9uz MR9ux)9v$S9$9v_^/N 9v}.P&9wqg`L9y0ԫY9y0ԫYR9yڗ 9z&/~9zyWs9zekU 9zekU[9{3j$j9{K a9{K9{K|9}k28 ,,9}k28s9}k28 9}C Cg9}C Cg9~N#9?W1+8 9+B9+B9e Tep9G$9/R29zD-9Pn9Pn9 }F9$ޣr9أ{^ߗ 9idt]9idt9$*U9&V؁P9.l{? 9#o7 9#o7R 9#o79"u-9q *\}Z 9f9֩!9 2 9 2?9Jڭ i9$B9$BK9\A@9oC& 9*po.9*poU9*poL9*poZ 9*po 9*po]9*po9+L&pQU9+L&pU9+L&p;9+L&pR9+L&pd9+L&pK9+L&p9.n' 9^ρ.W9oR9r > i9KNB-9KNB-G9KNB-9KNB-9KNB-9KNB-9KNB-9KNB-9U(Q,j9%qb:'9%qb:[9m.9[*s9y u9y u9(vs9"%9Z "9Z ,9 99N|[9MxmbmC9sAY|9sAY 9hff 9$I 9ɽv 9/Վj9393K 9dh\gL9dh\g9n.' i9n.' $9H9HR9b'T"9b'T"9b'T"9 IS91'/91' 9}] p9W  a 9W  ,9?de 9^W>9^W>9]lDe9]lE9]l.9]l9]lQ9Ҷ$9Ҷ9R -)ڙj9R -)ڙ 9R -)ڙ9R -)ڙ 9W99 98> 9qP> 9qP>9qP> 9qP> ,9 9 9ڕZ 9.߿9.߿f9@U9w\=T$93=;2R9XTD9XTDQ9XTDK9Ѓ 9Aj9At9Td:9Td98&I9ӂ< 9{v9VP 9w?jZ9Y!t)9Y!9+4 s!9+4 9+4j 9+49A/~w?9A/~w9@^i:d`:RE*p:( Jd:4^^> :+ַUpL:^Yh3:V6@C:sw l0:sw l: M : 6%aK:! s}Y:#aS6\:#y> :$T4:$Ψv':%bk:&Vpgf:('2A?:(V ^$ :(e.l:(%`g:)N :><:><:><R_:><:><:><K :>< :><:?fz ^:@:@[ Ca k :@[ Ca t :@[ Ca :@[ Ca i:@Ϥ9 i:@- :@-s:@-j:A}ʪE:A(84 :B {?:B4a:B6_f? :CRZ #:CwؿC? :CwؿC :DOԉ"2- :DpOi:DiA:DW:E \:E0TA~ :E4?:Fnl :Fk({G i:Fk({G \:Fk({Gs8:Fk({G :G[B?:G[B :G[B (:G5a:H?Rb4:HY8)z:H :H:H&A:H&A:J-Z*)Q[:J9(i؝?:JV/qR:JfWI #:Lԥd:Ls@(:Nq5^< #:Nf:NW?Z:O2lx/:OM :OM g:OM a :OM  :OM s:OM (:OaIV=:OaIV= :Olމ}jc:PL6 (:PsI:Q_0 (:Q_0?:Qv" :Q=:h ^:RǑ' :S ::So/ :TJbf&:TJbf:TJbf :TJbf:TJbf:TPA:UFZ:U R:XP1:YJ :Z8K}^:[@  #:[qD}t:[SBӧ.:[SBӧ.:[SBӧ.:[zFz1 :[{ZN^:[Zc R:]7j \:]7j (:^~:_AhW?:_q:FYL:`%o:`w+/ \:a`-:agZF:a} :bT[:bT:bK3 -:e[Ѣ0::e[Ѣ0: :e:T c:eϋ3?:fEFNgF:faR:h*k:C:h1i:h1iK:if7z":i]#XK :j=ߜ2N :j?3Uv1:j?3U a:j?3U :kM d#:kxP :kOg9q:kB*b:l 2 F(:lL\B :lL\B:ll71D:ll71 :m#iR:m::m::mu`_T:mu`_Ts:mu`_T ,:n! )k`S:o,u@$ (:ol :ol:o 29?:pVr?:tS]?:u Hiv $:u3:f:u\K ,:u):u):vm.:vo3yO (:vDߢ #:wPg\ $:wQ&VL:y6g~:yQD1? :ze5| i:ze5|L:ze5|U:ze5|]:z!j& :{Ln~PS :~D_?:G[SLz- :fhk:fh in:fht:fh (:fhY:'I}jj:.:6Re :Q7\::s:{Ax:Rs:R :Rt:$-AgK:$-AgR:$-Ag$:h}|:kR:k:n ):ou ($:ou i:ou :a:}j:tRx:i.:Ca2:Ca:ӟ5 ( :ӟ5 i:O :O?:3 I{t:am:E!:{Zt- \:{Zt- \:uS:5@BM:C&> :lKcs:y.Zd:=:j:C :Lf":Iw|:kowYb: wd:Z(b`?:Z(b` (:: : =ަ:.WN:: %:::x9I>o \:3yWs:a# # \ :DQj:ZU :ZU ^:ZU :ZU :ʿD:a:F : _:ٻRpf[ :6bj<:p:ٝk:j[:<2:<2R:<2:71?:F2.? :1C \:D7 :&%ѯv :&%ѯv ::[:Zg/<R:`@E :`@E ,:`@Ej: t_:𡄧% :)Pm:9W^p c:9W^p :9W^p:}BK:}B:$y:ޭTT:ޭTT :ޭTT:ޭTT:1d*dt:ji  :ji j:ji J:ɪ:`.VD%:`.VDR$:`.VD:?& :?&:#$Q6?:=%{j:T':]o]:IL4j:S3x:M $2?:M $2 :p;b:[]: :[]: : %X:;+^T:v:TuF-:TuF :TuF":$ݶ:WltM:Wl m:oȶKN:W$"T:N:>g :}:}g :u :V/Z: :_PYl4:_{ӇR:O ,:T> C#:":_b:$:K!<,:U :U2:‚W8 :O e:O  :O  :RmN/:Rm:ēaa :ēaat:ŤzڞJ i:ݓ;K::u6Yj #:siT :Ր|b- !:^^c:c9(r 2:fG-K3c :fG-K3c ,:fG-K3c :R!]:˅Wl $+:˅Wl:ˠb :˳`T +:̦ͫR:9 c: .b :3ಆ:Qz:qҚ. :{4wv " :mWg9:Pho j:Hlj:Ұ(#ct:GE # :p_Qi:Քا@R:0v :֦*^:3o:~HZ :c8:c:k :8tk:} Q: i:j:,5Ȣ:,5ȢR :s :s:s :!ܸ ^:vm:sF@^:WCw i:WCw:WCwj:gN| :G6?:#+3 a:MR :M:M$:Ma:G :rk :S~[ :.U :?A:EL:EZ:8RVmoYv:0;C m:息=9:息=9:5큉':i]^.: y:誝M D :6J:6J?:6J $:k?9:k $(:k !:߄2S:j:뽟! ,::-:43 :Qga+^:90N:FzZ+:'&?:'& :'& i:'&:iR :>6$#:>6$$s:>6$:52?:# ,:U c: R:Qc:x\Z1C:x\Z1C :£kfR1:ƐrG{ m :ƐrG{ : <~:YZ:- ^:*aI,:*aI:OQ , :OQ :'_Y:"3:ck\T:H񣜌 :H񣜌 i:w)Ps &:h*HF:@| i:(  :Ԣja\%_:Ayv (:ss:ss$ :d4K: 4b5>: 4b5>;5Jt*;GEh;bJI; ;_h> ;m(*;m(*R;m(*;D!;ހ^ ;ހ^ a;ހ^t;`t;. $;2 a;2j;2;2s;>ҕ/Z;u0[Iw;TKK3 c;fG!U;m6sU ;m6sU;m6sU ;JS1;"x@ % ; 1:; ǜ| ; y1J; y1J; B5J; B5D; B5; 2u(PR0; 7; ׶) !;J4ra ;6Ց;{-i;QNjyz;"c;;sU ;s;s;ְ ;lBiP2;kit; ; ;j; ;@R?v;x=)];IfS;qs ;q (;Q .;p-ؙ;o7m;/~ ;/~t;dAy ';dAyt;dAy ;-Hc_;0/ ;;ע R%;ע R;ע R;];ө;إoG;إoG;ՆK;} kk ;} kkt; Ƃ ; #kZ; #k?; #kY;Ӭ> ;Ӭ> i;xR ; T\8m Q; ¿MY%; ¿MY; ¿MYV; ¿MY; ¿MYL;!!+ ^;!9I ;!! ;"(Of1;"(Of1;"(Of1;"TkN;#q ;#q ( ;#q ;#q ;%8K ;%ŽR> ;'I\;'I\;'B~N ;)/:[ ;>j;?xИ?y;@@f;@b ;@`At;AqyP;A' i;A~;Bf@$;Bf@$;Bf@$;C^gk?;D Z ;D a;Ds}o;ETfS ;E|a3 ;GmZ 0;GmZ ;GI ;IMj;Kň q];Kň q ;M`;M)/iFt ;M)/iFs ;M)/iF;M)/iF;M)/iF a;ONZ;ONZ;P HQ';P HK;P H;PvaP;QP;;R , ;R , ;R ,K;R' 2 (;SoL&;SoK ;Sң;UKzSZ;UW ;V>nG[ ;V>nG[;V>nG[;V>nG[;WwbuH $ ;WJ;t $u;WJ;tt;WJ;tY;XWg ;YeW*;YeW*;Yfnak]{;Y};Z/ ;Z)ٻň;Z)ٻňK;ZD!;ZD!;Z1{x ;Z1{x ;[\/j ;[\/;\VyNB;]f62 ,;]f62j;^oY-);^Xs%;m.[> , ;m.[> ;m.[> $;n$ݯr ;n߉k?";pLR;q ,.N;qrиd ;q -;q ->;q -;q -;q -;q -;qt ;q25a` ;qxFs;rDE()(R ;rc|eZ:;r6av ;r6av;r6av ;r˖k:{;rR;sj?;t(;u%Fd;u9@t?;uWzw o;vp"zsm;vp"zsm;wW14;w{Xwt;xav;yw\ ;z_]? ;z f6} $;z 5 ;|:& \;|+J[ ;}#0 ;})T #;} j;} <;}  ;ULY; ;`;l] #;0?;lY;; ";MF3N;+>P ;~˹v1; ;Lu .;Mr5dZ1;gfk;gfk 2;gfk i;z{U;.QRRj; R;:#LQ;:#LR;~vt;>+KV;VNJ;V;Y] K 6;Y] K ,;Y] K $;L|c?;L|c $;L8*;L8*h;L8*?;FoL;:3g ;?+d =;?ۻL;יdB;80 c;[pd/;[pd;M;B `*# ;B8Q;Y/;amb]? ;b=wlQ?;4 ;^S; ; b R;2;@u ;=hPQ#;=hP ;;:!B\ ;<T%;<T;1 ,* ; ;;;, ;ςV ^;%JZ;%JZY;X6 a;X6 ,;3 ;3 ;|ΎXv);|ΎX;:@( ,;$zG;>VrJ;67( g;+XD;+X;e<| 1;(6 2;;B; ڄ ; ڄ ; ڄS;0xL;Q#;{s;{sj;q=;S;;[g#ت ;0j;0w;索;U6 ;U6 (;X9#;N|;G47;[KP_;[K ;[K *;oJ ;ỶD;"h ;-sb ;rITx:Y;?.t;};};;AA *;Sg$Z;Ź/;T ;T;cl8 ;ԋu#t; Ej;sPi;sPiQ;sPi;sPi;3;3t;3Y;X<^ i; Q;AYZ;AYZ;# {;s_HK;s_H ;"5;Z?;>I|R;H< d;ljs,p a;X)RC;xr@lY/;xr@l ;xr@l ;xr@l ;ɯ8^ ;锾4 ;锾4;ʒZ:7 \;'?;\; ;\;  ;\; ;˓Td;˓T;z^|' w;"t1L;zG#^K";ϲ`~;]d ;`;oR e);oR $#;oR ;oR ;ѣ+l;F}Z j;u>;"? ;qd02;԰,7S;;) *;)~ؿ ;QL ;n ,;אRY%U;ޫ c;>;NZ ;طKl ;طKl-;\+T .;لξ}j;لξ} ;لξ}Y;0=eY9j; /?P;<ڣKj ;]Ӝ2 \;ڠvqApU;>;>;ܬWjl;ܬWjl;ܬWjl; ,_?; )H; )H;Dy$s;K h_ ;a ;#,w ;#,wt;J ;Jd ;J;J;+^Y;+^t;yF=V ; ] 1; ]Y;RQ)};RQ)};{w\y=;{w\y=j;笗 v c;笗 v?;GDy ; ;SKt;k} =;R;N`;į5K;į5;į5Y;į5;hka;;nn$ (;nn$)<sqk g<sqks<ǣ> b<ǣ> "<,<Y}#; e<Y}#;<S0 <S0 <S0 ( < v0<Bra<"%) ,<r * <Q\<Q \<Q s<`YO8<k,<ޚ*(-t<g 0At<-E{t<D(P<cİ< r4< SDL< yxL< S(J< ڡrms<DᓷC/<Dᓷ<Dᓷ<<<<< t({<> t({] <> t({<>T <>T $<>T<>T<>T hhb.{+!j3f<{$<|?@ $%<|?@j<|?@ T<|?@ ($<|?@ <|?@s<|?@<~&4??<~m-Y<~m-S<~UM < c !< F> < "< "<ϯVwoS<<#|<#b<#bR+<#bh<#bQ<#b<>Οv ,<墿}) <墿})Q~t a \=#&=J',Q=& 'm5==ׇ =uѬ$j=uѬ$ $=zf)ZS=~ƒH =~ƒH=~ƒH=~ƒH=-KlV=a@{ =;w=^J),9 #=Es =E=EY=E=9=>G U =eN/ =ݞ =ݞ =mOM "= 7P1= c_Kpk= c_Kpk= c_Kpk= )ږI " = 4$j= ij = ڲCBs=Jo\m =g% =rS=Shf a =Shf=ˉ =u& =|T}f=mLo5K=mLo5 =@XG3=@XGU =@XG=@XG=7G!=S=2- =YӻN)=q! $ =q! =ڠC(=DhO?=}| =}| =}| =J^Z] =]![=y̍D?=>Hg(?$=>Hg( =Ȥu˟=9fZ . =?)C =SÄ8* =SÄ8*L =SÄ8*_=e@k=w4=}:RC=2e =W>=W>=_hs=_h =ta =ta=(NF =w=A i=SU i= k?e=[L= `\!Q=!R{=# >ik=#TA& =$ <8QJ =$pZW|Ns=$pZW|N ,=%c( 3=%k|=&~w=&Vo^ =&Sbe !='\0 UL ='\0 U='>Ѿ ='>ѾY=(RYR =)A|Q'==)N}`Z=*^ =*^=*^=*)XN +=+ޛHSI=+(d n=-Mcx=-L/=..\j- r=..\j- =..\j-=0zr=1L܃"=1nP. !=1ni[ =1N| =1FLE =1" =2~ =2h{yj=2h{y=2h{yP=3}N9tx=4"Wt=4Uˌd =4f|W a=4f|W s=4f|W (=51 =51K =65K7ρZ =6D7*=7P?=7Q<ʾz?=9R1Z=9R1Z=9)?=:# (=:#=:#=:# $=:#=;V%S =<%`?o=<%` \=<%` g =<%` =<%` ==5 F ,=> #=?8-=?>` =?>`Q=?).G/=?).G/U=?).G/=@f =@/X^?=@@,{oߺ=@[v3:=@w$ s=A& ؑ a=Aw3=Ba =Ba =Ba =Ba ,=E?ޕg=HVV9\j=I481Fa=I  N =I  =I"&Ik/ l=I$U=I$Ud=Jbg:N=JvS] =KccQo*WK=KOHos=K v=L7Nh=L7N=LHl`AM?=LO!=Ly#=Lo1ﮒ a=LG 4%j=MECX \=MWk=MWk =Mb? c=NGЃ =O5J> =O=*~K=Oa`=Oa`|=Oa` =Oa` ,=PZJPP=QRR+h=QY# t=RE`) R=RY=R JS=R=_v=Sj? =Tes=U Y+ =U Y+=Us=V\Ņ$=Vټ>=XB4iv1=XB4i =XgmCQ=XgmCY=X~t5q=X~t5qL =X2P=X%}0=Xyz=Xyzd=Xyz=YS`=Y͉}!=[z?=[!(e֌?+=[!(e֌ =[<^ e=[2v T=[=3=\fl|mY=\fl|m[=\fl|m =\fl|m=\i`k` d=\i`k` (=\i`k`? =\i`k` =^׊p6=^׊p6'=^׊p6=^׊p6]=^׊p6=^׊p6=^׊p6U=^׊p6=^>p=^؁+k $ =^؁+kt=^؁+k {=_.Ĝ b=_8$=_JD=_AN =_AN }=_AN =apѹa(f=apѹa(T=a?? =b4?=bLa=bLa =d>. (=eWq&]=eWq&]=eWq&]=fAt:=g&bEV]J=g&bEVN'=g&bEV=g&bEVU=g&bEV =g&bEV =g&bEV=g&bEV=hR;XT=hln =i=i/D=i0*-Й=i;&t=iQN1L"=mYeu ,=mYeu=n=%_=o0{8 "=p*bc =p*bc t=p*bc=p*bc =pYKSl=pte s=q[LR=q[LQ =q[L=q^z9=qݬfs=qݬf=rS=s2SE=s U-Z=s U-I=t0s=u 4-N=ueI=v g=vbVRt=vGŻKR=w6՛KN=w6՛=w6՛] =wjӭB=zP)=zP)=zU={(ӟ"K)={iYHA ={usL =|Fi a=}{Ng\=P* =M-@ =M-@=6eSA =cu9 c=mqNK=mqN=7*c7=O܆g ="}oV=kkg=V3js?=V3j <=V3j=V3j $=^fIb?=7]Y=KDe-=KDe=KDe=[8=[8=(% t=g =g $=g (=g ,=!oY="_ ,=_^A,[=!4=@t=cVY=Cm+[=66=9 {=b =b=kSF=g=.,y& =.,y =&^2 =]< v=œYI;=I=RU"E =RU"E =RU"E D=[)91 =پ=پ =پ =پ=c' =â =I"=;| .= U:v$= U: =͎I s=ͱ2L c =ͱ2L?=VV?]=Fa\=Fa\=ѨV2]Z =V_ m=V_t=G.V#=G.V=Ծfj Y==: og=: og=: og=[(wknQ=[(wknD=[(wkn=[(wkn=[(wkn=ք@mt =3=@3, ^=@3, =е1= =تׯ8 $G=تׯ8=تׯ8 =ٚH&3h=WA=۬j`Ftk=۬j`Ft= Լ=w  =w ={L8:)=U$T_ = 6p = 6p a=6CX- =z>"t=؞r9 $=/p?=-5.=?TG|=85= ?= -V=KMl $='d={==!'&= n =COS =COSt=4=' =Clu=cjdN=cjd==x s=gL|=P:+=P:"=P:=0=0=zhK=zh=iY? =뙻5v= E!@?= E!@ ( =(-=n+{=;@j =8d42[=p?W?=:=@!k)n =>0 (=|ls=JnS~w=JnS~w=9j=fuD=fu=Ff=ѵt=U&=U&=:<=HԌ (=ٲj=gu!=ؐ\=ؐ\=ؐ\={]@=X [/=Pt=Pk=P =6=5n*S =b!F ,=Y(=X~{R=X~{K=:1=fT4WN=AM7 =$nh`=$nh`= =5O]=Np =feP~g=! Wsf =9+Sm=9+Smk =dr˰L=jD=N:t#=_Ȼ3i=_Ȼ3iU=?/]f>/>qN #>Hҷj>u9 /t >\vhD>d > 3k  > \7l1 i> \7l1j > \7l1> \7l1> Ōys8> 7  B> 7 n>[f>@)v>Vȭ >#N>#!>#># >VڱU>RjR>ڎS>?>"|>c>c>nWR>L>, q] >Η`d9>Η`dv>,>> u \>\a> [>R݄#U >uj>cv[ >Usͭ^ >Vz>Vz ,>~f>~f]>~f>i@H >$w3 \>ͳ> n(U9 ,>!R2|v>!hteZ>!r|>!r|>!r|>" K>"G >$HS >$؉>%UM >&O=ߦE >&O=ߦEY>&O=ߦE>&v >&ŝ >&ŝ>'# >(A/: (=>(A/:9>(A/: i>(A/: >(A/: >(Qw ^">(Qw >(Qw >(Qw >([~N>)+JR!>)+Jd >)+J>)4Kxx>){R >*r7 a>*r7Y>+/鰎@S>+/鰎@a>-UA>-UA>-UA >-V኶A>/92 aE >0Z9N>0Z9N>0Z9NK>1!=>1BojP>3^4r j>45 6 >45 6?>45 6 >4YE>4 C>4 %>4 >4t >4 >4b>5ɴ >5ɴ ->6mW; >7$C >7i?g|>7i?g>7i?g>7i?g >8yu *>: ZN>:\K>:\d>:\><ZV?><L><9] R>=nn~^/ >>Q,N >?u9>? >? m>@0@[v>@_ ( c>A_+ٓ>A =p!>Beo>C6d>C6>C6>Et >E >Es>Ek>E a>E콫O3U>FS Ոh>F©4 >G{ӈY>Gԏ3|>Gԏ3>Gԏ3Q>Gԏ3>Gԏ3>G,6>HīyD>Hīy>JL.|?<>JL.|>J%aS>JkLtP>JkLtL>JkLt >JkLt>K oH?>K>Q'~k>L/b{ >L/b{>L쩱Ͻ %>L}I >M ,>MBX(wa>NQ>O&1HB<>P^H>QO&Ή^>QFӋų ->R'^>Ryt>R*{ e>Rw?>T >TQz07 >TQz07 >TQz07 >U$VG>U$VG>UF>V>W7k>XDJ`pw>X]㇛>XqNj>Xꖶ">XDm; i>Y?b\>Y?b\>YAA?>YAA >Z6?43y>Z:0{h{>Zbx}_L>Zbx}_>ZV8u ,>ZV8u>[=C Ý>\j >\j>\+π ,>\08EIz >\08EIz >\08EIzR>\08EIz>\@R1>\T Y >\T  >\ӿmt>\ӿms>^_wm[>_/ݿ>` 6c$}>` 6c>` 6c]>` 6c>`m/1@v >`W%-[>av/ #!>b">cS*>dxkwr 1>eCIΫj >eCIΫj>ev6gL>gA{S>gO!i>gO!i>h6EzY&>hJ* >hJ* >h&o (>h&o >i7N a>i-KK>i-Kd>i7j>j;8N Z>jy@>jRas0>jRa>ke>l>!{ L >l[v a>mT-. a&>mT-. >mDENm>nqvݒAg?>n0&Q>n0&>oz!>p M?>ra+ >ra+| >ra+ a>ra+>ra+>r-y¿?>s-s>s- >s-h>srCKV>t-@>tIr7>tD>t>t>uF3u>uws$@U>uUvX>uUvX>u fx >vNʕcR>wndT>xsp ,>xP"åT>x5O >yՠ>{6 zR>{AQ}>{AQ}>{m3i>{m3i>}pvvV|>}n">}n">~%M^CQ >~uhfKHF>~uhfKHF>~ÖiJ>~ÖiJR>~߬S[>2Ӫt>ot݇><Y>X|>%2,>~K>eEՓ>u/> D >F?>e>XDx >j>`R>Pnxt>Pnx m>Pnx >Pnx>u3A\>u3A\>(2K>Jǫ >~A >~A>~AQ>34+! :>34+! >- wv>c ug>@;UR> a˖Q>~&?>O0Þ9 >b_1/>7R#>ZCGu?>?>߽@[ # >PK>OAj>~݄7BR> +-T> +-> +-> +- (>+2>KΥv>5=>ÞU/f>Rq}!I>~s:y~ >·bD[4>·bDK>53'7>>v>oJ\>oJ\>N*XY>IG8jt> \ i>uR>08 ,2>08 >08 >08 $>f8!>_T3>Zi>L>vP>{& 5>a>zX4>('7>e' >SI?>D>D>~SX>~c>~Q >~K >~L>"F`>]- >&R>&Rd >&R>ISKC > ܝI >$>.>8!>Mj>ym> y8>1v>( ;c_! i>( ;c_! >m-_ >1Lހ>By >?\j >?\L>h!'|X>= \>-eV >=kjs >=kjs>.: >k4+j>k4+>/C=7>@=l>&> >K5~S>K5~L >ܖ%#>v a>˒} >®_4d>ŜXu>ƶ?Ϋs>ALj> o>ZzaztR>Zzaz@>ZzazYq>Zzaz >Zzaz >Zzazs>Zzazj>c ^>c c>{&r >O)"?J>̩R$ds>̩R$d>̩R$d >7Is $>ϕEulu>ϕEul*>ϕEulZ!>ϕEul>ϕEul>ϕEul>ϕEulL>jNGU>ə s>e5 >e5 R>!6K[>ќSj >ќS i>[C>ҟ;T >ҟ;Th >ҟ;T > ]Mqs>L{+2 >&B!(>, >ZU$R >֧'?>ש%4; >ש%4;>ש%4;>ש%4; $>ߢ^(.>دF >!>ĴTD >iō Y>lv>N>:f >V m >(Zkd >wnus>ܘb >ܘb>ރ7K7>ޛ >~C3^>-NR>XH>x+z9A >[sy0t>U\S! >r,$ ,>r,$>*>lO2 a@>lO2 >lO2 >lO2Y>UZ >#,>,iOZK">,iOZ>2[v>$ vZ->$ va>s+v >iS ? >m@ >m@?>}f"da >{ >{t>,`yG>?\bi>N:W!KeU >zѕ@s>\Z>? >\Z>>@F1N>, v>ϝQ6>][F ->][F 0>R>HM>HM>dH>>N̿>ޕdW{>/\ΒB>/\Β/>/\Β>lr>ȈL >CeM+>ԋ> ]u* >LJ,9 >p :>p >p|>=) > 8-?">Em B4>%ٙ $ >4> >! y;>! y;>! y;S >*nuzv>*nuzs>*nuz>*nuz a?4E a? ?>^?R*VP?R*VP ?Yd ?BR?%7?0DY?Ϧbw ?Ϧbw?Hj?scm?sc?sc?sc? "Ұ?? a D ? HiӻGv? HiӻGY? +e{'K? {%? {K%? { ? 5kC ? PR,#? a`N? D2V?w? D2V :?/ n ?1X?f-v ?&Q ?ؖb?|2S?Hn]?Hn?Hn , ?Hn ?v75u?Y?.9C[?3 e?hQG|? ??8? ?8 ?8j?N3 ?Z'p$?$?: < ?@!2c\ ?$oj+R?(CP?b<?8d36S&?8d36S ?8d36S?:]Gaa?%c- ? . ?"LKk?"LKk?"e?#DB ?#Vծe??# @?# @] ?# @R?# @K?# @Q?# @?# @?&K#?&xem g#?&xem " ?&~f=&v?'/L%R?'/L%}?'Ӷ?("{BjQ?(nSB =?(ɹm$?(}4&% ?(a] ?(a] ?(a]?)]l?-3$]? ?-q?-([y?-eI , ?-eI?.{E0j?.Шk0??0?'g?0`'] $?0mNv?1*,z? ?16Xq ;?1[aX ?2v?3f8F -?3W\ۼ?3hCt\[?3r# ?4[?4Y?5bD! ; ?59Q?56#7 ?56#7j?7 e| (?9BGŜ?9F:}Mk?9yB , ?:LQTJ?;K ?;? c?>g{s ?>g{s ?A'L ;?A'L ?DM.A ,?DڏI2S?Epg_t ?E0?E0?E0K?E0?E0Q?E0R?E0?G&$( ?G\7xj?Hց t?H;\ (?Id\ #?J*5IN/?J*5IN ?JFAߥ ,?JFAߥ ?J&$ʡ?JHjj?Jc; ?K7g??K?M_{?<Q?MfL #?MӋ3??N*i??NŨ\F ?NŨ\F??NŨ\F ?P]?P}PT?QU>s9 +?QU>s9S?Q]=_?Qr |?Qܪ?Q0pv?R)^*"@?R)^*"?R)^*"?RZ# \?RZ# i?S)tǪ?Słq?VR-I#?VR-Is?VR-I ?VeT ?VOUI ?WZ/3M ?W`? ?Yu:Ѳ?YA"=?YA"=d?Z>?Zx ?Zx a?[ oQ9"|?[aB#yU?[aB#yU ?[r]?[r]Y ?[r]K ?[r]?\9k?\E# * - ?\IRi ?\?uj?] { ,?^GF ?^`u`?^$Zt??av3C!?ahus ?b ; ?b ;j?bL@X?blM6?es?eplt?epl (?epl ?fd ?f"J?f-0d?f ?g" y (?gEU^W ?gEU^W?h$ҞU{!?i!bV^j ?i1ϷI?jD}8?kE$u a?k4w ?k4w?k4w ?lu$~pr??lu$~pr?lQ'?lkhwK?lm ,?l= , ?lh&M ?lh&M ?lh&M ?mhg!e ?ms?nCr'x>?n[{J[ ?ok靲 c?o`3H?qY_/s?q O?q O?q O?sCcF ?s*- *?s黆3 ?u<Cj?uhNq b?uhNq b1?uhNq bL?uhNq b2?uhNq bL&?uhNq b?uhNq b?uhNq b?vdG?vz ظ $?vz ظt?w9 xd?xOz ?zLkwR?za˾n?z}벲 ?{oi ?|ND?|1?|R ?|C a ?|Cj?|C?|AD ?|O?|(Ϥ4 i?}) k!?}) ?}) ?}SW}P?}SW}PQ?}a/($?}a/( c?}a/(?~ ?~71<?~/bN e?~/bN?~/bN?~yehj?~ ?#% $?L0 ?uga`0?J`go?7L?# s?׾) +?vĖ-?!@ޥm?j4?j-?*8k??R?gIY?gIY?FڱBt?v ?sj?? 9ɴ[ ?~ ?3.lنv?99i ?wb?(e?Kpv?ak?"ѹ i?-NLq?-NLS?-NL$?-NL#?!ES?!EL?\噿Y?\噿?\噿 ?\噿?!#9A?cnv:?fCC ?^g $ ?^g ?Q &?Cv?CY ?C ?C ?&OS?&O?&O?x$R)?x$# ?x$?m #?#~L%?,?`ťg?$.? b?KK ?kt5u?n+6?n+?N k?> ?>N?>?>?Y2z?5wR ?ƶmS?ƶm?jdJk~s? oT? oZe? o ?kd?kd?kdS?Cs݊ ?ς ?V ?V ?1k ?1t?1 ?%?%?fi ?}gn ?ytʓ+?ytʓ?2aK?6?6?M& $?ʙ9 ?R| ?R?k7?k7K ?DW?>mj?D/G c?'\Ac?SN f?SN f?[s.R/?[s.U ?[s.?\!,sG?@ ??m{ JQ?U SW?U SW?U SW?70%3?Ao, ?Ao, ?Ao,??w 7b a?@٧?K<?5 \?(NL?F--! ?F--! i?z@V??$N;! Q? V5?;/?5ž)m| ?/a? 6? 0?. K?}/??#Ah j?` ]?3?3?3'5:"?W恹 ?IU?]шj?C#d?n>'k?H%?N??j?\oh{=?\oh{?\oh{ ?\oh{ ?\oh{?ę?D?ę?D?%Lw?I6N?]R't?t2>Y?Ƚ6qrZ?+gj?$R? M?ʓ?Q ?tc?tc ?eUMk?Θ0 9?δǽ?~X?(?(K?D?D?c?,CH ?O ?O?yXL?yX?Ō ċ$?5K ?5K?-/Y4?:zw?PV-?Op 'N ?ՙS2 d?ՙS2?JNMj?֌Z_ \?E]?QRtv?`'3 [?`'3 5?`'3?`'3?`'3?RNd`1?RNd`$?RNd`?RNd`?bvNW?bvNW?bvNW ?bvNW?۱l~n $?۱l~n a?DKjb?DK ?.P ?Q\ ?)jj?)j i?}?-?u5$?ԷGRC?ԷGR ?(nnq1?⅋h! `?J?q5[7N ?- ?㺏袵R?EN? H&?-GmHUv?-GmH][?(?cev?ZY0?DNhP?dI[ ?v?ܺ8?,Bz:?\L ?룻- a ?룻-:?삷j ? c?GSpAV?qjf?(ts?!l:?tk?.pW?se"??)"f ?)" ?)"?)"?)"K?ލ,  ?E4R?7* i?7* (?zj?]l]R?a#E?a#(?a#?a#?Ea[??t< v ?￯P?￯ ? ䷯ 3?&*?&?&?EDK?O?+@R?f?/zcpY?^ս:?꯬ti ?FW?Y?h?Y?hI?Y?h ?i6?c08 ?)X $?pF??'` $?[G} ?,m (@6zv@6z @U j@ I@\R@ pٓ (@ pٓ@ pٓj@ĔeL@4=$>Lk!@4=$>L @6!M $@M+]@]9!@6bW, @" fQ@7 @7 @LȜ @LȜ @k@k@k @k/ @@A$YS@ v"@ 1*s@   a@ gXR*@ gXK@ gXQ@ w @ :JIgC ( @ :JIgCt@ :C@ :C@ LO@ ȫԣ @ .KS?@;+. @;+. ,@#rqv@8}X*z s@no: (@no:| @no: $@♸GY@♸GY]@♸GY@♸GY@틊" @틊"@틊" $ @틊" @틊" @M@&k@$@$@r{v-@ 'P@ '@>~?@YL@YL@YL@Iv>j@Iv>s@Iv>t@Iv> @.@C1E e@pC$@ӳ׷ (@ӳ׷t@ƢO@:&HOt@:&HO @N1 @iD e@Tc|`J c@Tc|`J \@uJJY@uJJ (@T@T @T @T@T@TS@T/@bH+vC@bH+vK@bH+v@bH+vQ@MqUR@']@'@Ft@BP a@ !9@ 0IYR@ ~nG@ 9e@ ,XGW@ ,XGWt@ ՠ7s@ ՠ7t@ ՠ7 @!98~##@!98~@!98~N@"|9@#9af,4j @$4=RNQ@$EV @&3w-@&{:&[ @'} K7d@'@'p &@'pY@'VΎ@'VΎ@(Mt@+n@+r:"@,5AL@,n=e@,n=ed @-?~rg a@/6GZ $@/LZJ@/LZJ@/LZJ@/ @/ $@/ @/am R@/2.`C@/2.`Q @/2.`D@/2.`@0"dT@1zƼ@1.[@3[!FO?@4$WM@4$WM@4R @4KKf @5K @Izd@Ka@KT RR@KT RK@M0 @@MDV̓ $@M/ ;@M/ a@N =@N =@N+XH~ @O9 @Pf@D@Q7@RϽV@RϽ[ @Rݝ-L#@SQ(]& @S֕:e @TJ 7@TJ @TJ @TnZ@TnL@U5&4=V@VH˞@V1nѬZv@W3U@Wj@W "@WۆB$@X0IZ>@X0IZ>K@X7dχ]@Y*h ( @Y*h @Z ^ a@[j @[0K@\Dڼ!f@\90_Dv@\H j@\ tJ@] f[W; @^#{@^h@^fM s@`v{R@`v{@`v{+@`v{@`v{@`v{Q@`v{@a~G"@a~G"]@aU~ @bF+ WD@bF+ W @bS1s@bHb-k!@bHb-k@cTns@d[mIgf@e $Ӵd @eTE5t@fLEB @hoLN@h8@iP(S@i<2 e@jN+O @j̽*@k8< @k8< @oEZ@oVܜX;d@ogp*@qύ7@q(|@rkl@r*8EK@svS , @svS @t"9Ho @t@hZ R@t@hZ @t@hZ @tWvcyS@tWvcy@uroĎ@vsB@vld@w s@w6e @w]͆!@x@d-9@xq3@xq@zzs7 #@z4C $@{Iff@}uKIs@I~}\}t@@%b@ c@3 @~x,s@;JOAP@HQʥ[s@‹klr @sQ)@2 @~LHR ,@MP@MPQ@ ržv@8^ \@|JO7o8@|JO7oQ_@|JO7o@|JO7o@|JO7o@UR@5E]s@l T@l T {@l Tt@l TY@ݒ$ ,0@H溁PK @H溁P@:ÌN@ź]@@[@ 4@ 4@׵ @׵@'Ӓ:~@'Ӓ:f@'Ӓ:@'Ӓ:R@'Ӓ:@1̕*V@1̕*@1̕*k@1̕*S@#+CR@ z.@3ӗ @5(j @5( @Usd@Us@ @ 4H @hx@suB @suB @suB 2@(RF@YD @JP.]@J%S@ \n m@K3@8|4 @%pp@/?@V@ֿ @WToW @b,v9@b,vR@ 7P@I, @U!S0@U!*@U!L@U!#@@g$i@l}[@̍\@"@̍\@"?@-٬@-٬ @:[K@@ύ@v @bST@ǟ? @t@ܣ6@X-,T@ } N j"@'̀Gs@'̀Gt@uSK@uSa@uSR@CD (@o^Ed@o^EdS@Z @Z ,@X=@`x@"/ @w@w@03r@03rR@*SvD@(ôN @kú @kúY@kúD@kú@kúK@0D8iZ@-@ CK@zC2 @5@88@ ʶ@5ƒ@5ƒa@? -@~8@9;y @?,+N" @!ϷTj@u1@d \_@d ,#@d @ds@d @d @d@2w@ୡ,@ୡN@#|!%t@#|!% @#|!% @#|!%j@r @t?~:@j[+ @@4s`@ ;%@Tɨ:` , @M|Y @M|Y @}Ŕ@+?v@;̘G@;̘G@_P #@bg@\~]R@\~]@hY# g@6f@vOrg$R@Bp<@Bp<@Bp<S@XFT K@Š+L< @§V+?@©ۿ3O@× @5;@5;@A@GF}v@RE?ڋ s@V)w@V)w@T2 <@ơ)t@p^?@ǭ^}t@7nl L@ j@{$@ >m?@Tk@Yйq@]cR @R@]@$tl@$tl@;7Ւh |@Љh}s@%l•m #@خ@d\Z@"d@cfg!@cfg@cfgO@cfgQ<@cfg"@cfg@cfg @cfg@/J@/J"@/J @#?O@#?O (@}Q@@ %@Ծ_^\Y@Ծ_^\@6D?@6D@7 > (@7 >|@E 9@$ɢn t@$ɢn@'3pL@)E@)Es@)Et@)E@)Ej@m[,2Qv@> @Y:#p@iQ , @ x @)@ ,@]l@q^`^-N?@ܼx4w@ݦR]Jqs@,<7 @,<7 2@,<7 )@,<7 @,<7 i@[\)@߭oӖ a@߭oӖ@Y L@:!t@RӒ i@XV2vjr@XV2v 0@XV2v $&@XV2vs!@XV2v @XV2v (@XV2v s@aN @_$ e@[ eRQ@e@eo@e@CC@NJ_O@NJ_Oj@NJ_O @NJ_O ,@uyS@_n @"' a@_oE@rXMj,@ !T@ꛖ$ @A#L@|̚ @Hb#j @n?@W98 @ j@  @_}@_}R@H@H@H@s/yS @% @ rY@ r@W| @L3jM @;q@i'V@ OÄ@Jc7O (@$p@Op\R@DŽR@]90@R ,@R (@#u18B@N? @N @e #@QTgi@ ;@> @@Lu:@>~Iw@=Ap Ap AQPĦE6AQPĦEZAQPĦEAׄtA|WkA?AMwzsAU7jA{nAy+#Ay+#jA2Ag^h`A ?GYA p :A p ? A p  (A (T<$A 01/A lh /A O (A O A ۢ?A I\A c& A uV a)An3 yAvr66jA9/OABEd ,AAӐ.AAӐ.{AAӐ.hAB$K Am-z AϹԎAK[*KbyAK[*KjiAK[*K PAͿO_AV)AV)s AYu AΗ4Uk cA{bA{BA{YNA{9A{A{A{ A{ A{ A̘.V $A̘.VA̘.V ADA AA_WjAbjwi[AshAAAA?AEOPAc) APA=Ves aA=VesAwʑAie)$ $Ad4n Ae?|X A,$ A A$x A9AU5AVH ,AI7x A'A?[(A?[(A ?0j A ?0sA ?0A b7>A ~grRA!P=7VRA!uA"JIs A"JIsA" = A" = ,A#7qjA#7qj A#xdDs A#xdDtA# S A# S A$`RA%Z6 A%[φ A%[φjA%[φsA&KH A&R4qA&k?QR A&k?QA&+6Ya ,A'U* R3A'U*  A'U*  A'U*  A'cD A(z6]rA)t tA)2fvA)2fvjA)A aA*|kR A*W4KA,{=vRA,AA- ,A-oC A.FeB A.FeB A.mƣ (A.Hk A.HkjA.Hk|A/LWѦA0F@2v ^A0DA0DA1$̵R A2pehXA2HԳ4 A5$XvA6GmR A6;3lJ" A6v<A7k!jA8$ɸqSA8$ɸqKA84QA8> d}c A8U A8;M pA8mG 2 iA8mG 2jA92*W~TA9L NA] A>)sA>"? A>"s A>çb1LsA?'+OU mA?X9z?A@Ɣ.JYA@Ɣ.JA@Ɣ.J AAaH AAybAB_I aAB_IsAB h(AC":ADC-fRAEGO}t AEr_?AF]ʇ^_ #AGAq3D ?AG#AG#UAHW~p AI1D'v4AIF"tsAIF"tsAJ_^v AJ_^v (AK3G?AKk $AL=c]AMJAN.KAN%6 AO)#APdAP AQ0" ,AR״oN ASQ5OtASJ ASJASJAS1AV?;>mY -+AV?;>mYAV?;>mYAV?;>mYAW7tAWY:L CAWLAXQBO $AXQBO)AX,PJ8.AX,PJ8AYLR + AY|6? dAY|6?tAY|6? AY|6?Y AZltj AZltAZlt ,A[VJA[JDA[uO A\egRo (A\j9bA\jhNA]{!D]A]{!DA]eL A^\A^\QA^daSA^daLA_ţ o eA_ţ oA_ţ o| A`UP A`UPA`mL|A`*> Aa^vv'Aa^vj Ab?AcM~sAccR[] Ac0Z$AdG>Ae,PAe,PAfqY $Ai=9 Ai=9kAir)Ai 7xZAjGz2Aj8Ѭ5Ak|O?G Ak4 Ak4 ,Ak4 AlTšM? AlXp3+W 9 All !AlL%ՒDAlpAlK AmB tYAmGjN AmGjNsAmGjNAn s iAp ;o|&Ap% kAp% kAp% kAp% k Ap% k mAp% k Ap% k AqmTAqet#AsV(4As)A As)Aj As^]At yAvD|#Av?$Av?AwP-oRAw5'` Ax / $AxkfYAzouAzӪe\A{vpNYA{vpNYA{vpNY A{vpNYA|9}c A|YCA}FrA}\^A}k:3 A~3t AA oatAA oa \A >w A>%: AT?M Aiկ IAiկ >Aצ1sAW8;rAo, AdԵ A/h K A/h AkStAjASN47ASN47S ASN47L ASN47$ASN47ACBZvAk%  #A(A(A(AGu\jAGu\ AJ=z vAqZ AgjLA X2A&A1` A1` A>WsA[b}mKAk\z A!t`* A!t`*|A!t`*A!t`* A+e A+e A SA L AGR AGAD AAD A4A6.uo A1cAUIKAOƇ AOƇ ,A 1A A- lAZaAZdA\?!AH^YAM|c AI5b A=5 i A-$SA-$#A;T Al6*ċ >A7ad[A7ad]/A7ad$A7adUA7adA}- (A?AȈY iAz A $A$aAJ[ A:=Ae`?AYqAD# AHA4|گvA4|گ #ASAWHWRA"d? AȲ~{ A?C AaAn!? A3xS aA{XAS&UAS&U$ AS&U#A9 A9 v-A9 $A9 AͺAݘ}vA)* #A.tA.Ǭ A.Ǭ?AN  AN AV> # AV> AE.sAь@ aAь@Aь@ A)A%gAhX9A jhmA[ 9R[A[ 9)A[ 9A[ 9QA[ 9AǹpAǹpS/A)2MpYA)2Mp:Ai0 Aw#AbAu*mAu*mA'[G iA'[G $A'[G A,zA~bwXA[Cs&AA?#DAq M_ ,A/V֜APA.kM^m ,A.kM^m A.kM^msA.kM^m (AH( Ad횯{Ad횯{ Ad횯{Aw xRR jA:Od Afl?9A+TWtAh A-AiXSbAE|kbvA;袭\%ALyALyABLT cAAJCTU At4- AdNAwttAwttAwttA$%g7 (A Y (AYA®m~E A]\tATȠc]$ATȠc A2%jfR ASi\A\5'ArQ1Ag 0[Adž%bsAP6z?A,L%A,LA@`wnAɭ_jAzMAӦRA)$Aa, +AWGNAE.YJ AOE iAOE A͞ U(?A)m(KRAW#nAW#n)AW#n AsAЕê0AЕê0AЕê0 ACчAxy AұZC{ AұZCjAұZCA@A/2Fd )A/2Fd?ApwZ A&5JY A&5JkAdRΚRAT $A:$A(Xkj $A(XkjsA[2f :A7s A۸78gA۸78gA<t AhCѼA1aWAض)aAL )AL ) A{ Am>~T Af "A%A34A~ڢ*+UGAKq A$6A9ڣ@ ,Ao߶6,Ao߶6AAxhvA-Aeu* AJ6RAUTA~RKAOJATBAg1o)Ay' LAy'  Ay' SA"B~swiBKA -Bl>bBRP BRPt)BRP BRP BP֛?BY̻^ |BSXBSXBSXBR \BN? B Dx B Dx ZB Dx B r lB r ltB dNgYB j,W B j,WB 4[B DHtB DH 3B DH B DH B DHjB DH B DH (B HjWB HjWBuR3^ B9BzOY&A $BzOY&A BzOY&AB|VBQ $BQ B͚BKTB$v@kvB@91aGB@91B@91 B@91SB"xB&WdB&WR B&WBWVɉ BdcQBdcKB6d B֖+LB֖+!B֖+Bզ/B|SB BkB BԧBBdhBfTB 8wRBNAͩ\BNAͩBNAͩB B B4녨 B )2B ) ( B )BA@  B{?C?Ba>M iB C/ab \ B rlB ιxD$ B ιxD$tB!H` B"m6 BB"m6 B"m6 $B">K B# ɱ@a?B@1樮vB@RXCBA,թ LBAymSBAQBB:hBC]1WGK BC֗ԩ 6BC֗ԩL+BC֗ԩS#BC֗ԩ BC֗ԩBER2 BER2 BE،\|BE،\BF[ԃ4 BFG{|BG7! (BHWIcGatBHWIcGabBHBHA;_i BH嫰rSBK!W~ +BKBK\Up+j)BK\Up+ BK\Up+BK\Up+bBLp iBMK^iCBMK^iCBN2J aBN{>c BO?g^L BO?g^LBPXVBPXVsBP} BPlϔzBPyv9 BQ< BRjL/BRjBSyd=BSyd=sBSyd=CBSyd=+BSyd=YBSyd=BT w"XBTвy BTвy aBU)d9sBU)d9+BU)d9LBWg_sBWYvBXjD4 BZeB\2`B\t>Ȭc_S B]] ύ(sB]z|\TjB]d:mK.B]d:mB]XB]k aB^)DB^&BB`8B`8 %B`E0Bb(?O BbM#߸ Bb׻<:BbIBcV:  BctԍRBd/DBd/KBdkdBe% rr-Be3Q'UKBfj=2BfOABfOABg,8E .Bg5Bgr Bh(w(Bh(w(Bh$ajxdBhusBjc (Bj.OX rBj.OX {Bk^H aBkqr K Bkqr Bkqr RBkqr Bkqr Bkqr Bk<. Bl*g}YBl`pDhBlvE/k_Bla.Bl!pu[Bm*dBnI BnIBnIRBnA] BnABna@Bna@KBnz S Bojqk,) BpRBp*"Bp; 4EBpPP?Bp׽ Bp׽ aBp׽kBp׽bBq %Brs|^7Br]?BtC#A\ aBu" Bu"BuDGW]QjBuDGW]QBv!|RBwTLY c BxH q BxH q BxH qRBxH q]Bx&Y Bx:By\>ǵBzG|BzzsCtB{{ms B|ErՒ sB|e B|e B|ۓպ B}[4ߔB~4xLB~+lF?B+B'8bB"k@B=-`8LB=-`8B=-`8KBJdn|B?djBTo5^PBb绕n#B6-. #B &B`P Bsl Bzw*fw BtjB3*BM6[Bz# c>Bz# #3BLJCwB] Bט.w?B]EiRByTzp>BW B-*CB5FWǰ Bӵ ? ,B[O-n?B[O-n BIVؽlBe+ ,&B4 QBn;sBn;BmFRB6[&B6EB?~W8 BF BFBn7. BT BT BT ?BT sBŰRBT.PBPB$-wJBWb]?B~|=nB9ByBVNOBVBTcBwޕLnNBadBTBCh mBE.T?BE.Ts BBkYBlZL* a B.ѮB߅E?B߅E B߅E B߅EBϻ[B7 !1B;e¹^$BbҮsBbҮ[XBbҮD@BW.NB0vkB0vkBgܡ9 Bj+"v?BE1rRBp0 rB/%.Bq'BC BCdBCQBCBCBCBCBUCf BUCf Be;3L Be;3L_ Be;3LBqqQB< BlMoM~,B^^B}|RB}|RsB/P6fBNMσ?B8:"Bfhr0v?BmB.+> B90DC B_`L B=+ BdпB +'{BhXsBt:%B[YjvBy=hBF` iBF` BiM2<LBiM2<BaER BJjP?Bj-BjBT]%RBْjYBu) ,BGGfRB{tB{ B󳦋B:RX_ B9jBH|I֠ \&BH|I֠BH|I֠ BH|I֠ $Bt: mB:~B3M/B3M/]B]SR Ba/tBa/ B69FB69FB69FB)e&KB^aB=j]B^aB= B^aB= ,Bɍ͚aBʕy+{ Bz M5?BFBPB~sBˈ@2NBMhB*&6t BxcBcBA֠kBrwhBL*B94! qB6;?P?Bk#*Bתo B׾ , iBثY ,BN"B9]?B5 :&Q#B5 :&Bٗ'uBNyY B_(vBc+iGtjRBc+iGtj Bc+iGtjBfd]Bہ  SB= ?FZ?B^qBX35W4YBX35W4 sBX35W4BX35W4 B9R> Bd?KBRmBXtCUBXtCBXtCBn4R Bn4Bn4B0BʳK BʳSB㥛/u)sB㥛/u)tB㥛/u)kBYuQ B{3@8 ^BW BW BW B VB =0MRLBFnHvRB4BIOBc?l #BB BaB< )&U Bvy,ӫB(Bu.HBu.H BBtB?zBLA.Pg B먛$eDBb1x$Bb1xPBb1xD BC +B4h"B4B4 B$ B$ Bv j BM4'?BM4' BM4' B AB6B/bfBYDBYBCLB;؉RBOB Bݵ=bZ BTBB m B̵&'?C' C'CBk?uCBkCBkCDu)[RCDu)[LCof C7ƹNC M{I C!l>PC!0bhgC"X1/[C#KC$|MtR C$|MtKC%̘C%̘jC&Ӡ`C'=d\lC' ;1A"?C's੯ ) C'YC C'%?C'MC(@m^FjC(@m^F C(@m^FtC(@m^FC)A⼡nC)]C)]bC)]RXC)] C)]C)j C)jC,J@mijC,J@miRC-9lOC-9l +C-9lC-:ͪqC-ePc" C-i<-vsC-rs" gC/]B{?C/ƛ'y1tC/a aC/rU{tC0y|f`i[ C0om#\C0om#\OC1 8O C1%cW.$C1%cW."C1<4h -C1r^DhC1N[ C2#E&[C2[W-dC2[W-QC2[W-C2nar C2narC4-1fC4LC5OSC5X^@fC6W4L C6W4C7]KC7]C8cUsC8cU?C9Hk #C9w RC9w R (C:69pRC:,;e C:C;vѤ. #C;C;J\рC<_ȉ:E?CY7vC? NC?yC?ُC?ُ \C?SSC?SC@А*CAe~s CAe~s CAe~sRCAe~sKCAvCAvCAB-ZCBj&CoSCB,cCC? $CC?9 CC?CC?CCw͈ CD7/X2jCD:%5#CD:%5#CDPMqdCDi CDi CDi KCDi CE9L?CE9L CF{[?CF]r 2CG;YCGV4CH0/a CH0/ CH0/CHN>xVCHR FCH͘ܝ&CH͘ܝ&CIzdfCIЕIQ i CIЕIQ CKW0B#CKd CL)M CL)M CLQz1CLR>sCN CNjCNђCCOLJtU3COޜ(˿ a_COޜ(˿?2COޜ(˿ CT!Yj0CT!Y &CT!YsCT!YCT!Y ,CTX/<aCT$` CT$` \CTwC.. CTwC.. sCUEOL CUEOSCU"S CU"CVp9B?CW (CXSyE CXsCYTBCYTBLCY$yZ CZtEΡVfCZK@sCZ05kCZ]2/j,CZ]2/ (CZ]2/sC[(@]蔹 C_y:2ZNK C`Tf?CavCb~Cb }=Cc*--Cf,#Cg N $Ci,;? Ci鎗 l Ci?s Cj^ #Cj>W&vCjM#Ckf Cl>FMCl+% ClD" $Cm-Fe9t?$Cm-Fe9tCm-Fe9t (Cm.^ZCnE6j{ Cn CCo;R" Coo'K rCp vQDg[Cp%J~ ,Cp%J~ a'Cp%J~ Cp6c?CqGvSA^Cu_dI6(Cu_dI6 ^ Cu_dI6Cu_dI6Cu_dI6 nCwK)dB|CwK)dB Cx]i@Cx_Z\ ,Cx5w) Cye[0mN Cye[0mCz&! cCz&! sC{̂vC|k7 PC|k7 <C|]e C}AP(C' C' C' cCD#,X CujZCuv<Cu Cu iC ыCW^C**9;C=rý CaR CaRCUvCj^j#Cj^ "Cj^tCj^ ( Cj^C 8PDRBC 8PDC?!C+ CJYCJYsC {sC { ( C { C { Cا|CK=?CCG4?CF,CF,CF, (CV)%fjC^ x#Cv<.jCl1$CΝCC7IG?CCpl4RCS\CCCS\CCS\CS CS\CLCغ 2CgYjC5s^C` 4C` 4C4CLo gCrd )CJ lC2HaNC QC*EkCAyCV#?CCWC 0ln"CTt`CrKC[S!C[C`Cr JC5 f YCXw C}1 C"sO?Cm- C/ُ흣CWobrCmZFCݵE Cf hC2MtCkC1,=1C1,=1@C1,=1 (C[tC[sC2**CSCUC |$C C9C (C]6 KCy?QCE >9Bd C[VFC-;z jCr[ mCC.HCB/yuCoU݂>Cy Cy CLr ݀ cC9z|C9zjCXYjCϤO6)? C=UKLjC=UKL (aC=UKLCCR C|sC|?C\ dCe7*NCéO:CéOTC \C C]+CB"C4EGNCMw$N 2CXp/ tKCXp/ *CXp/ YCXp/ C;NX C"sC" \CFk6q[ CID/CRRXjCt2 Ct2 $Cڭڔ2Cڭڔ2Cڭڔ2 Cڭڔ2]C$0vC$0iCK|>۞GsCK|>۞G C6uCaq|tCaq|YCclCclC ۴CLiCjC"CjC CLP 2CIQOϵR ClLV'CuCuC $ CfGC NeC Cw9 cC'MW$C;0>;C|NCBfCs#(NCo_\tCËgd vC+ C+Cݏ;%9C 6KCHȲJCHȲJC9R 7 $Cc -Cc CcCș9հ>& ;Cș9հ>&tCș9հ>&CɟCt1Rl?C}p!l iC}p!lCˋQ C{n %C{n C 9C  (C C~jCFէ7Cc_`iCs) C'K/|Ch~DCh~D ,CЛe3 C&rSC&rC&rLCѻ>)jCѼÁw0vCF؈O?CgǜUBCgǜUBCWf c^CCFZC:l Cַ@T! Cּ@&I:C?CTQn *C(8HE I'Cwل  C` NCZYC^`SC^`S sC^`S Cۧ,عCۧ,عCۧ,عCۧ,عqCۧ,عCۧ,عC" .C(q C۝CUXNC څ|C@J!WC@J!W C@J!WCa= {/C݋TGR C`#)N (Cޑs(o C5pD~5C CIS+lC߭kC<9Y CG(?Cl舁"wC0QC݀Y; C@isC@isC CU $CU CUC6EC6E &C浈 CO=Q%#C CccC޵\C`. C}4ݮ?C,N CpS?|# C7 xjC%K?C4+Q~NCi-CH:QQCH:QKCndec)LCV"SlCV"RCV"KCV"LC9 C9tC9Cj.|]C쾛:s CujCiL =CiLCiL aCDk.CDk Cf~д CRG C\ wC\ wC7z( C<)dIiC"2! cC :M% C :M% iC$=C ~Q SCIyVCIyVD CIyVQCp8yv[RCv CY{CY{C+ HC$fW]C Cp~ iC Ca D#x<cD#x<U@D#x<K8D#x<D#x<D$(jbRD&j D?WD#hD)N!/Dw|'Dw|'Dh?H Dh?H DKdԉD D0[(D0[(tDpL5* bDC\7 #D'wD'waDyaZ4 D^+D Dvw| D Dvw 2 D DvwD u[# ,D u[# D u[# (D CD  ,D ZEZ D )DADITj( 2DjaRD x*D x*D+Ћ$X D5Hx &DMTDD"]h<KD=Hh/K(D4QDΚ@N!KD-_e` $DfS sD`ͳ D : DR nD9R DKDDKDYD4J D4JsDsH &DsH  D> Dޓ˜r9DA>DkRZRD~gDD~gDSD'ZDVoIUD zӪNDmJ EDC~D_I,DD0@d(D%&QD%&D);mDLzh#3DLzhDLzhD^G D{Ea DEo>D GƴD *v 3jD U֖kx9D!jAgfQD# h cD#f?D$ 0[.D$M D& Sh>sD&+{vjD'$‚@ ^D'$‚@vD(T6FD)qz՗eSD)a{\ $D*3˜W)D*y D-t D-t D-t D-E\kpvD-ֹH͍vD.iQsD.n2 D.̸<}QRD/.(0 aD0` iD0sWƊq sD0&u?D1S?02D5 >?0-D5 >?0KD5 >?0QD6qV<KD6JZ1JD7ve D7ve D9lG?D9rΏ% D9rΏ%?D9'1 $%D9'1 , D:؅PKD:@jD:@8D:@QD;A@.D;A@.B D;k] ND;Ձl6vD=" U\tD=(QD=(Q D=]5D>-/jD>E5kD?gD?j6 hD?j6hD@WWDAR DA? DA? DAZ?l1-DATrwsDATrwDB0(SDB "lDB "lDB "lDBťvz )DBcGvDCb' 蘹DD# hDDsDEKU0 ?:DEKU0 DEKU0 sDEL3WDF^j $DFԞO7DGTDH%sDIKSsDIt_RDIѷe[DJ|YDJ@DL6O$DLkDOgwDOԀ+DOԀDPvKDPX~e DSU+DT%fZDT4]HDTUT ! DT&e/DUH&q[DU"F QDU"F QDV~^MDV~^M $DWav DYrE=DYrE=DYNqDYDc $D\̇FJ?D]uBPJ ,#D]uBPJjD]uBPJ D]uBPJD]w?D]a^&k#sD]a^&k# D^DD^`RD_ "D_js D_ok D`i*YDa~#Dc DdTomSDdaTDdaT ,DeYf;DffOm]|Df}| WDf'`vDfPs~3bDfPs~3C&DfPs~3QDfPs~3 DfPs~3RDfPs~3DfPs~3DfPs~3BDg" A3Dikk cDiC"` DjN0NDk sDk sDl~cDl~DmqW #HDm 1 $DmK} Dng{&DnK?[ Do4ՑDo4Ց$Do{e_o kDodQDp Lt DpeDDr8vD~uڣDýz_DnT?D'Eɾ Deb D^" D^" D}>dDțn D6i  Dɲ5K`װRDɲ5K`װDDɽbSDʒaD?b}YDT $DqcE D_P?Dx"O DcD DgWvZDv?sDύ_s; DϿqK D3ڰbD'TQ+VDЀvc Dч葱,|Dч葱, (Dч葱,DѳL̸DUDDЀ7Dc!h*D+>'DVs? D?8s D?8 D"Ǹ D/ ?D=]8jDAbpDgZ(jJ DڝTRYT??DڝTRYT DڝTRYTD:qtD(NP!aDZ} D܆ugqsD܆ugq D^ l D=>DݣHejD[ $D[ D[ D[ (DC?c(Db.-Db.-Dߦ/-= DI0 DI0D f nDN#hSDХk%Du ?D| smD-D DxveR DxveD'?’D意D8ql D虍D':$|FDal<jDP-C a|DP-C DsJv. D2>)^1?D]o_ D!gD p aDwȜD^NDF_xDBҞ. D{D¯NDLwmDg7A(QDg7A(DI?sDqG? Do ێ Do ێs Do ێ iD$ D(/av,D(/avSD(/avLD(/avD(/ava DID[Np]D[NpD[NpD$C+[D$C+hDCf Dk (NDSD?DHwkDn+>v=Dn+> DZLhE)&@ E}>E}>gE}>^E}>EU Et]"B E,Mua$vE*2~EH0NjE1l+A#?ED^} ( Eꄴ` Eꄴ`?Eꄴ` iE >s E >?E)՗Q!E)՗E)՗DE)՗ E ,E~KcE~KcEfފEfފEfފ-E}gfUSE}gf7E}gf.E}gfE}gfE>>7EyɰD EB E 7}SꒁE AW.#E D|E DE *./E E E AS2SE U E: )+ : E: )+ \EY.m EzG $EⰟ EW ErPEW ErRE??fsEfɚj|EfɚjEy9 Ey9 CEy9 7Ey9 PEy9jEkޯ EZ^n[E~ ,E1e#b E7èlRE7èlE7èlEw KE{r EJ >EX\]EX\] (E^M _E4?E3 Eb! Ew UEw ]E>jE}1$EtEU܏*E+qjE5lv<EU2E˩kE!E o EATaEAT E|T6BRE[7u˽E—R;E_̡\bE_̡\bE_̡\bOEܘf$EjE)Z`E$̵EH\C]EH_E#$ $E!AǙME"(F \E".8ᯖE$!kFE$!kE$WEp vE% Ub E% N[fE%?#E&ВE' ξ7E' ξ7E(N W aE(N W (E(N W E(m[ME)AzzRE)IT E)>> ]E*B E*BSE*BLE*Q&KvE+f~N= &E-BS E-BE-BE.jA3B # E.C E.0SE/ꖍ \E1W%ie E2^*E2DSE2 3E2}(  E2}( |E3Ypי Q E3Ypי  E4 ݊ (E4%)E56ro7E56robE56ro E6HvqjE7#PE7;F3?\E7;F3sE7{L>E7aMGE95/ [E9pɡ?E9X/jE9X/E9덈 +E:  ժj;E:~J?E:ȡsyE;l]E;E;^T E<E<E=vIE=p`NE?.7VHE?3ݿ#E@Uc}jE@ xE@[6NEAFEDeiZ] EDeiZ]SEDeiZ]EDڇEDu[56EEC aEEu"OEGL#?EGL#EHtEHtEI:<ƿ EJwHZEJEJELL EL#"S_EML`(sEOmcQ EOmcEOwU \EO-j@ cEOßzEO REO <EO S EQ[2M<sEQc8tx EQZ a\EQZ t"EQZ EQZ :EQZ EQZ EQZ ER[ESeSES'ES'ES'RESsSRETHjzET2} ET!E璥 $ET!E璥ET!E璥 ET!E璥 ET!E璥ET!E璥 ,ET!E璥ET $EV\, ( EVc( $EW <GEWM  EWPtEWc \ EWc EX5?1dEXVmREXVmEXVmEXu-j iEXu-jj EXu-j aEXu-jEYdY5v EYʢEYʢKEYwR ,EYwR (EYBBA$EZ+MEZDE[Ũv ,6E[Ũv4E[Ũv0E[ŨvE[ŨvE\Mݹ QE] sE^1 ^E^@)[?E^ԱD ,E_Fs|G E_R]DgE_k 7aE`1PE`u`_0 i0E`u`_0 E`u`_0E`u`_0 ,EaKEaBsEaBEbu?v (LEb,[&C Ec ٤?Eceb Ec*gKEdzZEfDKEfDEfDREfDEg ٝ%Eh"Щ#Ei_QEjTBDEjMVh EjZذl|EjUEjUfEk "]NEkнiEm*IEm*IEnoKnXEnf\REn2 Eoi^o"EpI,k EpI,kEpsErdEEErO Es3ZτNEsQ EsQZEtA4?EtA4EtcflmEtcflZ EtcflSEtg5]Ets 6EtsEte*Ete*EvyZ9 \Evs&%2 3ExXtExYmȟy #Exh /UExwExʻs$Exʻ EyOd Ezp2Ez1qvE{LE|8XsE|3~iHE|2RE|2 E}q\+ \E}1jE}1 i E}1 ( E}1 E~^ElKEX7E%O> E 'Erdx?E%Jsj E%Js E%Js EZWE 8`jE&E&KEv|bSEv|bLEv|bEv|bEiZ%[Ee)|Ee) a Ee)EYE)LP#vE?|E-'tE(v EgSEHn (EHnsEHnjE=LE\7QEIDEr0 Er0 iXEr0 UEr0 j3Er0 -Er0 E0QQEף\LEף\L EVj E? Er΍Ee^{NdE dE KE(E\= E.-sE7ġFEAsF$jEU_RE1EȶtE.aɉ ET0UU?Ef% $"Ef% (Ef%h Ef%sE~e=Ef ׍t Ef ׍EXoDE<NE9> ESiESi ESi ESiE:y  EI' lz?Ex3ۖE_9 . EXxgEXxg EXxgEƞhE9R* ^Ev}K%%EDvEM,m EdJvEBpvssEpTE.?EE.?EJE.?E E.?E E.?EE}>YvE}>Y E]6SEGP4[ EeRTKEp[, QE+:ugE[{R E 9qE%\(E8'dEG`E#@ E| EjKE@ȯێ .EP; EP;Et/Et/dEt/Et/E6kрt?EC2wbEC2wbEC2wbSEt@&WE}A bEcD`?E2 b EWfe?E4BgE^? SEd&- EjvEZTE>A%IEIF@E—Jg"jE½LES E{ aE[C?j.E[C?E[C?'E[C?El<Eq>a jEp>/ Ei0D.A Ei0D.A sEi0D.AkEi0D.AtE|I ?Eȭ+tEȭ+,E;l Eνђ:Eʤy??E/ѶIKE˸ieExo5 #Efpư iEM!uPf EҖ]tE)EQ EEZ@%_ Ef7e!E} K-E:x eE~K[EzzjEzz EѪ9HWEvlb8EҶ΀f2E3EJu8E+|s E!>E! EG%(<?EG%(< EG%(<EG%(<jE֭Ӆ. E֭Ӆ.?Eׅ$ЁEׅ$Ё_Eנ%P/Eש1?T"EhEd;@G p EC^q1YE>EdrL( Ey)OENE|bm>E|bmE\` EW c E"yxE"yx LE"yxIE"yx E"yxEEb{E: E"i_EFMzV  EFMzV sExisEB]=EB]=]E᭴)WyV E⬭RhEcvb 3E0>Z=E@j>RqE@j>?kE@j> E^r^tE$b sEL(MEdW E-ໃ̻ EhW aENR>REZE<0|EiʀfE t.@KEX&O]E%0 EbEb Eb jEr6tE*<E*< E*< E[X޷*kE^;!Sr Ecm$E"X EON_ Ea0 " 3Ea0 "Ea0 " Ea0 "E Ǔ6E򏠲D?KE$"sE3Bˤ |EX-g E@9El}M (El}M E g9 EbSEwY`E/X)EtTNHEMDEMKE j!|LE4m iwE4m jE4mj?E4m (=E4mE4m EBxjҧKESrH{ESrH{EۥiNEJG, EJG, #EOY|!EOY (EOY EOY EOY wEOYsEOYhE7J7 r4E\qME\qME_}.E5VE3' E[Ey=EL! EL!E|\EIbE S=jFq-K/F{4DF=PF=F߽lF߽lF8 F4ԬF4ذ QF"]r^F"]r^ F"]r^F"]r^F"]r^DF  FKu$ FKu$?Fa c F6w vF@tʜi -Fr.FrF@`tF^ jF n#S| F n#S|9F }SMJF }SMjF }SM?F }SM (F }SM iF }SM F }SMF }SMF )BF ױQ$F 3pu4F !0BKvF e{ cF ;wޅ F<5RF<5FQuFZ6U9XFax%  FcFcP7Fc'FcFK~em FFupTFelFN-×FZd FDF St=NFi.9FEB(FanoFoF> מF܎ǦF܎ǦF2NFIJXCk cFsH>f5 FsH>f5 ,FJ' FW8ȓL,FW8ȓFW8ȓRFW8ȓF>2F>2FS.2fK6FS.2fFXjFX F~<zFX $Ft4 aF W F!A>1!F!A>1[F!A>1 -F!Y?F!OKE F!mC|:F"c$?9+ F"c$?9 F#^;l'[F#(!-)WF$Sj܈D`F$Sj܈<F$Sj܈.F$Sj܈ F$Sj܈F$Υ F& Sj F&`K+F&w_{RF'  F'7>'vF'1',F(V! 3#YF*B 'F*B F*B F+/јغ \ F+eJF+$\F+1 F,K6F,K'F, F,,P?F-Hpxuv4F-X=!/F-v)hF1} F1:ZW F1CE2F1CE2 ,F1CE2 $F2Vn] F3ִ= ,F4hevKSF4RF6-.+F6sF6tF7.*x F7]N @R-F7GjF9W gF9WjF9W?F9E!MdF9E!MF:")J|F;FF;7F;yF; PF;>F;QIF;]6F;RF;Y F;F;F;F;Fz2&kF>x:H F?|FnF?!F?=TVnBF@OY+?F@OY+ (!F@^jTNF@# aF@#kF@# FB{W_OFB{W_O FCze ,FCzejFCb؜ KFD":&ZFE݆dFFHCKLFGBx#9FGBx#FGBx#FH`FIχK] FI5vFIiـjFIiـFJj8aMFK..Kw[FKd4W0FKd4W FKd4WFLhx5 tFL3%3FMI:9?FMI:9 (FMu!#qFM*V mFM4hv FPkőgFPymPdFP'UFP4> ~FR;FRFR<8 FRFRFS lFS23FU7zB45FUB Ξl !FUK+FV J FWTwR FW` .,FW`=FW` %FX_<XK FY,aa˖FYvFǹFZGJFZ}Y9# FZ}Y9#F[Ε%F[] jF\QvGF\Q F]B^: +F]xp= F]JF^P!14RF^OXF^m F^mYF`#F`*s?Fa( Fa( -FbFbFdaHFe7jeFfn?Fg 0jFha=Px-GSFie]N+?FiGmFi7bY |Fihk (Fjp8h Fj s Fj B \9FjWqFk(  Fk@gd ^Fl<FlGe"Fl;*G?Fn/qFnFo6{d0 .Fo k%Fo\ѬFo\ѬRFpt4 +Fp_O e Fp_O .FqtlfxFq?4 $Fq?4 ,FqxN/ Fr/DX Fr/DX Fr26KFr,y| Fr,y|Fr,y| Fs>mRFsuvFu x Fu x FuMDC FuMDKFvRFw=Fy|f}ttFy 1 FzӐjF}Ay'RF}Ay'F}/d cF~eS&S F1K[s/F1K[ F1K[|F1K[FYP F< FDU ,$F:[ F*QF*$FZFJBsNFoO=FoO=FsaVFDv6N#Fhbo F}.V5F}.V F}.VF}.VFGŞFYRF5FϤQbFUywk iFUywk aF)&mRFWђ#F f@~TF f@~5F f@~FDYǬFƸ:;Fn vF/FSj7Fp<65r Fp<65r Fp<65r Fp<65r $Fp<65r F]RF9F-ʬ( FvןYFvןtF5F!LRF!LF!L FtL F˥¬"F%[F?F@f . F@f F_B+F_B)FUB)?FeU Fⓥ(F1Ys (F&2F&2F&2Fy@Fxϛ3FjOFFQ5w@ FQ5w@KF8:F8: FR (F5(v4 FiTs FRj=FF<F6:4 FO5h.FZ.?F]G5 F园0 <FE}F.]> F.]> ^F tFXUFsF;+F;+ F>LiF2%=| \FۡXF1C iF1CtFJ & F2*ֽFĽ 7 FyYF$66sGF <9b FS ,FK FKKFK]Fr4>HTRaFoMhFんyFN iF^|Y (F^|YtF]wRF#v0 F<0'| F<0' Frê "Fհ=lL>Fհ=lFհ=lFnHQF/qFGF33|"FF^B##FN 2F‘avFžg F5F5tFÏxvF ,F%DFvatFp*MFp*MF}׃FB1߶VF. h \F̕P]F͟$ aFΈ&8SRFǐRF7B F7B  F7B F5RF vSFӕ!TFµԮ& $F,JW FՋ_BKtFզK!F^nѕ.F֎q-i %F֗x6G aF>:) F>:)jF<@vF<@jFyϖ_FDg \FSC Fڲ0wuF(NFN(`F|f٣F|f٣F+ F+F݌PFݖxNFKʓC"% FKʓC"%jFb!d"Fv Fv FurFYP+v FYP+ FYP+ FYP+ FQ? !FQ? ,FQ? FQ?F)F., "F., FdFXOO9FXOOLFF|7s!FF|7jFF|7?FqTFFM+2"F( (F( iF R7F0%F]htF]h F j F@L F@F@F@S F@FRHQ Fס]avFU`SF@y}y \FF]FNOGt] mF9 F}ZPF99bx #F~_8rF~_8rG4nD*G=1 - G=1 -GHuR GHuN G/4ˀG 6LGwB~?GC+5~aGI GE^G bX*ZSGaF8R G BG B &G&(GYDd GxJvG# *G# G# GI+oO GI+oO| GI+oO aGI+oO sGI+oOjG[,$G 2E G 2E G 2E G 4 G n"yG UT+J2G  C;R G KK'pI?G KK'pI G gڞ G }G $! G $!D G ]6#G =Y[WsG !o #G/fSG/fSGe tGKM© $GeeajMGeeaEKGk w.C G!hG$YdG%-YIGnFGnFG]V ^GN' GY@}snGY@}s GmP%^RG<& G<& $GPʳ(GB%8 mGB%8?GbS#njGbS#nhGbS#n&GbS#n GbS#nQGfGAn nG4T GC͘ G U (G[B3~ GpXvGŐn? Go&Go&G +~tGgM.jNZGgM.j(G 4kͶYG Ch{G!H> iG!H> G!H> G!3(v66PG!{rXG!c G"KaK G"KaK G"^0P!G"Y\ G"*w,G"l [G"{r1 G#l$YG# s3/G# s3RG# s3`G#I G$±0[7 $ G$±0[7sG$±0[7{G'D@ZN G'ߗoG)jFzG)e3k?G).qkG)ǝ +b!G+ 냰٬G+@8 ,G+BBɻjvG+ӄvG,DaPG-O7>tG-0G>0KG?LG?WG?WG?WG?ninG?oU?G@@c ?G@_-G@ǜyGtG@ǜyG GBS>@F?GBS>@F GB6$+GBW GBW GCgc$GC u GGQ9$fGG{DoGG:4GHpp? GHpp GHs3tsGI!aGIqd⚍ , GIqd⚍ GIqd⚍ GIqd⚍ GI GJ"""NGK=Sj GKr*AGK GL532_0GLZ ~ GLu(sN)GMKGN/ݴ?F$GN/ݴ?FLGN/ݴ?F GN{R}/GN{RRGOuCdGP|`A# GQۛ}sGQۛ}k(GQۛ} GQۛ} {GQۛ}YGQ0#( |4GR+\ GS> GS>jGS`ۛ~GS9%Y GTsiKGTO| GTjfGUYc rGV D? GWc˴~GXe^\ %GXe^\ ( GXR7< GXa<GX:gBGX:gBGX߾FHGXEs GYWߞ cGZy? GZy (GZFb9GZFb?G[ G[eG *G\>+L7NG]KH%QG]KH%G]ra}GG]|`AvG]>EG]>BM G^y 0G^y G_> qѱG_y5G_y5Ga憇 Gbm4GbB.Gb8 Gb8sGbR#r Gc~/< Gc|P GcQ/fGd6&GdD"tGdFx& -Geki<-Geki<- Geki<-Geki<-GeI/(j GgW'  GgW' Gg\«EGgpm;DGh$® Ghj iGhs\WGhs\WGhs\WGjuNi Gk_M GkԍNqGlR! (Gl.\.% $%Gmr0M GmQ'GnsJfI vGn!'R?Gn!'RGo}}JtGoxotGp |GVG{@ G^,עGs*npLGVIDGVIJG3?Gۑ?GWg aGWgG~d%~" G{ \G2 aGA1qbGzu9tGzu9:Gzu9 G<PG"ݏ Gf|q& GAH *G`R" GvaIa<GvaIaQ GvaIa GvaIaG&] 9G&] GS4V)GS4V!G ϴUG?GGwa GGwGj0 $G7X2ǮGOXG?hG · -G/˭ iGޠF -G&Msn G$c*G$c iG$c mG#5QG{HXTeG jGIxGxH Gw OG G޴ťtG ,%O; NG+7G+7Glp[[G "G G@IUtGD[Gd'KGԷ8 GGI+RG 8t- G21s G|,Ge*m jG>zH 1QGxui (Gxui GxuiGE vG(mj$G Gp8 G G21EG<KGК6 GU q G,5-dGE{zGؚk8R G?-Gϗ凹 GK] 2GZ> iGZ>YGB.'iZ?sGI(UTGI(U #GI(U ,GĺG[  G[ s G[ G̑POG̑PG̑PG̑PGPi' aG5g]_ $GOG]Hj G]H?G]HsG7E #G G yx?G5B> GGUCGGUG"ԑm< G"ԑm<GrMz Gu_ Gy"LaG6RG/w cGZosSG< GRk$G mG5 G t_@aG t_@mG t_@$G t_@G G",joGÏȱ )Gm GKR9G"  G"  G)a sG)a G)a |G)ajGPv1jGƝz GƝzG' NGȖ} k?Gf|A #GɤUZc GTPYLG~q̅G-FRs , G̽!R G8 r eG <^MG6ZL@G6Z9G6ZG6ZUG6ZG'- (G)>QGul ?Gʸ$Gʸs Gʸj Gs3SY[G{x G{xv G{x $ G{x G҇cr GҴ8tGҴ8 GӼ#$G%cvGb@G!?lG!?l ,G>O"vG׻W GrbG;"ϡGPMPQGk nGܫWc/sGܫWc/?G[ZjGjGl0>G߮07E G!=NGk -Gk e'Gk?"Gk Gk Gk GkGk GyGl GlG nlG nlGGMag GMLGiׁGجYtGجY GT $GX#mGX#mD Gt aGC^:"G.;G! G0`J G0`Js%G0`JhG0`J?Gk1 Gu G}(JU? +G}(JU??Gamn2Gamn]Gamna GamnLGE{ cGǧ? G똋G KG똋G  G똋G Gϡ=e9Gϡ=etGu jGEҝ{GEҝ{Gu ?Gu  Gu  (G)I i G񕀴|YGHhʳItGI+ GI+G(vQHG~tsG+ZyG+ZyGlx| G G GiS@LGiS@aG㯏^E G㯏^EZG㯏^EYGG㯏^E i6G㯏^E %G㯏^E eGk_Y[$%Gk_Y[GDѥs GDѥ -GpG3 G,GRG n(PFGU(.kGNg8]G(Ey&GwQԥGwQԥGwQԥGwQԥGȢJ.GȢJZGȢJGAH+N$] HNKH:AREHHKH>xk H>xt H8kNHސr[vH22`pH22`p*H22`p H+Ɲ:H,sHb] HbH"mr4HڗKxn?H%xVsHWr˝H|=PbHOH;JP9j H9*H ?H@ H c yF9 ,H .D+] H S iH d_j H yt H r^mH i.qYH i.qYH i.qYYH b3v HKZh Hl|HBRY HamHW#^?HŌH 2qhH 2q H 2qH 2qHB HxKH |;/KHR6D d HR6D sH *rH4 a HޘkC?HޘkCjH%hF5Hmz:HmzsHmzHmz HM R HM RH Z%kHL%3PH.A"jH.A" H;wHztH8 HYP(HYP( $H-+!H|DXHTw-HTwH Y/^H!>9 H! > !H"m'DH"+b H"nM/?H#en& =H#HQSH$u>lH'$ @o H'KCH'b' H'b' sH'b' gH'ð0@=H(Y )XH(ݲ s H(ݲ |H)*lS iH*c\¿ H*c\¿ (H*c\¿H+$# #H+$#H+$# H,&@) $H,&@) H,&@):H,uiNH-igRH-*}K aH.<  H/|2nH/h@+H/otH1C~ (H2 @yXH2 @yZH2uiItH2M wH2M wH37yąDH37yą H3( #H4kT]H4Љ*H4H5beQNH5P  H6H6RH6Rf (7H6Rf H6RfH74${k e=H8G,H9Q iH; շ' jH;)+ H;)+HUwVZ*H?1H@%K<HAM2AmCHBn 2BO* *HC$) 6sHC$) 6jHCQݡ $HCQݡsHCQݡHDm " HD EHD E iHD E \HD EsHDXT HEsƆsHF*«iHF*«HFi6N HFi6N HF . HF . HF . gHGtwNHH F!ۖ #HHJ;p $HH;2m HH;2mQHI^dHJR4f HJR4fHKq HOqB[HOjzUMjHOjzUM HO.59'S HO.59'S HO.59'S HPȜ HP D-Py &HQ<4qHQoXHR٭L7HSrdHSI縉 $HSOHSd?HT . HU:6`fVHUrLIHV;1*M \HWn] HXk_? HXk_?YHXk_? eHXYwHX3?HY` HZ80HZ80CHZ80HZ80 HZ80QHZ80HZ(7 ^%H\|?X?H\wFPH\wFP ( H\wFPkH\wFPH] H]BjةH^l6%|<H^pw+ eH_"=Á\RH_GҤbH`$`EbH`$`E?H`[*W‡H`׀ H`׀4HcTJL#_@ ^ Hce1Q?Hc7$ͰHdMkh3D Hef HejRRSsHejRRS , HejRRSHejRRSHeU+:q aHeU+:qjHeU+:qsHfl] Hfl] Hfy[UN$Hg"JDuHh)+% Hh)+%HkX  HkX Hl/_k,nHlQWLHm aHm,`\Hm,`\YHm,`\DHnn@8Hn+:jHo.tHpP`LHp7[?Hpd,t&Hpd,t&tHp~mU mHp>oØRBHp>oØQHq#{HqY9jHq)X̻v HqؽcI?Hrhy Hr$ UyHr)~) zHrƁ[ $HsGt6pCi|HsKNWHsjHs?Ht'oGHt'oGRHt'oG,Ht'oG'HtSfHux iHux HuxjHvJ1RHvJ1LHvJ1HvJ1HwuD.HxU== #HxdfHy^k. H{MŔ #'H}? 7YH}? 7 H}[DH}[H} MtH~Tbֻ H~TbֻQH~TbֻH6V 1HeH"HfHL~&H7`7-H 0H}%^ Hs ֺ۹(Hj{?Hj{ (HI,_tHI,_ (<H[ HDFNHDF[Hv[$Hv[Hv[H;Li H;Li H;LihHVGc,NHVGc,-HG> rHjC Hi%_)uIfHi%_)uIK'Hi%_)uIFH,W \3H,WH\ Xv HƝR HƝ H7hXH7hXHV5IHV5IHV5IHw6#kQ $H/B%kHo; Hx;+HuC"vKHPG7H͏>Hނ8M *H 'Hs/DF[HŠ 2 H H iH.2C]E,$H.2C]E,QHE)m(Hn % H& Ha5H5mPPH5mPH=mv!HQHkITH߫H߫HyI HAFhkHo΄ RHػHAżHG#@\) rH-$?:H-$jH-$ $HB|56H%"?H%" H<4H<4H<4ZH<4YHZS h9H sʩH  HER RH{a #HbVn #/HbVn cH8/ H8/ HuyHnotH⁒jfH⁒ ^H⁒ &H⁒ ,Hd~-jHDfZSH^qpScH^qpH^qpHjT11 H#M YH#M DH#M KNH#M TH#M 3H#M H#M H#M H#M H  H9?P@v H6&}]KH+Z,RH+Z,H+Z,H+Z,HG> HM4PHiXyfH󝚩HOzlsHOzl?HihwxHihwx mHihwx Hr $Hx\˜Hլ4(H|@-?H|@- H|@- H|@- (H|@-HL zHܕAHܕAQHܕAoHܕA`HܕAHܕAHNIf`HNIf`HөbHgBkHgBHu^JHVSsğAHVSsğs HAzO\?H"7WHjH H\ˇB HSrHC$& H$"i}HJª Hd/o Hd/oH{NT{tHkNQ6+H`"$NH"R H"` H]:ɥHvn s< Hč?Ht HǑӝkHǑӝtHǵ(R HBH Hg~dHg~dKHVS mH1ְ8HJ'&HnQ-j HʫE9H/J:v?HɔUHɔGH0ZSH0ZHX&? H_&5#Hκ71Ӛ?Hκ71Ӛ (Hل= Hل= \H<)TY HЙD jH5khH_Scz H_Scz Ht%X Ht%X H{Zߘ s HHCHHQHHHԃ=Ѣ#-Hԃ=Ѣ$HԘ5} HԘ5} iHX5Hׁ"!,PH֤A9CH֤A9HxYֵHĿK HĿSHؽMHؽMH\r qH\r ,1H\r i!H\r H\rHq@ Hٸ/Hٸ/HXH7oEH*`siHZq\NHgIM HgIMHݵmHFa#|H+P (H+P $Ho$jR-Ho$jHߠ.vR HHBR H,cl st8H,cl sR H"p# H"p# $H"p#Hs8" Hs8"sHtOHI(HI HE^H>Jr Hb!-Hؖ\rH"c, H摣ɹb H&m Hw-90Hw-9 Hw-9RHw-9H릀hP "H=YH= (H>I=gH,P iHX<<?HR鮚fEH (jHM/"ݲjH(e1VH< =+?H.AH1Ө $ HQ벩 sHO$ą8vHcAQRHcAQLH +HjGH \H-VqkH|/H| H]aH]YH2t¡ j HQX?HFwxUkHFwxU%HFwxUHFwxUH!cRH!cCH 7&S HZK H,gѭ *HQNHfB:HKH)gHҿbHҿHҿHҿIA0'I2XxIi50 Ii50 $QIi50 ,Ii50 #Ii50 ITID+I)IKI I U ItI?IRI$}? I$}I¸b3I9 I!ktq$IG IGI<EIrI?IP-nI _Qdt I ~XAz ,I 5ÐI "o$] I KII \&:I \&:|I άjI i֜I t9I t9 I t9 I t9I t9I u}$I u}I u}IB'~ IB'~ $IB'~ IB'~ (IɖYam# I!(~]~ 4I_K NIsIIˏv8 uIˏv8 $IGPE) #IdD #I?^I}g.v aIqYDaINP Iy)G*U.Iy)G*LIeƙƜIz$I)<I( #I6j6+ I/64]sI/64] I98[ I{ i ^I{ i sI9 (I9IM TL I\ubDI\ub I\ubQI%|II \Ii:tIi:I/&mvI/&m Iw) IX =KI3}SI vt;I umd9I 4 rI 4 I#D,NNI$SVr I$bgI%MxI%•W I&MJd! I&\3WI'ڈ "I'ڈ -I(\4+J@ (I(P;.cI(P;.cI(P;.c I)ЊLI*YWI+Nsn&TI+P9CI+eD eI,Rv I,RvtI. ܺO jI.!I.fU.$I.fU.I.fU.I.$}I/x[vI/UorZNs I/UorZN?I0Գ?I0k:I0%`TI1_AhLSI1I1 6 #I30;5ԽI34!T3I3}N7 I3}N7  I3P; I3|=I3( I3( I3( I3( $I4M~I4`hI5%P)bI5%P)b I5%P)b iI5%P)bI5nFI I5x&t I5Q I6ꇲU;I70734I7F25>N I8]8M ,I9؅HI9؅HI:B?I;Y?I;Y IIͺhVI?Nd$SNI@9.Î?IAO@l cIAO@l #IB^NgIB^IBJm4EIB+aaIB+a -IC cICQQ ,ICu ID)YIDsIDsIE> 5IE +ĐTIFĘ\VBhIF:IG#2 IG#2IGj"9LIG]XzIIgOII,ny II,nyU II,nyLII,nyIJxe IJC$p (IK2 " IKN:QIM<svIM IIMh|oIN[H`KIOOIOFIOFNIQǬ IS7Px-IS7PxR%IS7PxIS7PxISZisISs۶$%jISlIS"Bڇ ITdIT'KITE!yRITeHF? IWMJb IXQg| * IXQg| jIYSѻRoIYM.M IZ }ل IZ }لIZ.:☟ I[8O1t I[2| jI[2| I\~GBIY&I\~GBIs!I]}]? I]}]I]44sI]44 a I]44 iI^XSs I^XS?I^mL I^mLYI_ YjI_PqOI_ I` 0dtKI`D I`eꪉ I`Ƶ" #Ia`@a@UIa8RIcyRIdCpJIdiio]RIe"I)zIe# \Ie# Ie#?Ie D!%Ie`x-Ie`xR%Ie`x Ifl9 IfWN?Igh) IgXRIg1yIiq~vtdIiq~v "Ij9Ej8+Ijra?ImNU mImNU cIn:!NInXY9jInXY9sIn$| In$ IoeWRIr-5d!Ir`~Isj`Is@[j0ItoD[ Its&:fIw'E IxEuIy)-Ȍ ,Iy)-ȌIy7a SIy$IyIz8 LI{ee I{/vg I{ҍ6I| 1RC I| 1RC]I|9  I}a)KI~p $Ijw_K YIF[ƗRIAȏI,K Ii&]G6NI@ iF+I@ iFI}:BKIIs3>Is3)Is3jIs3 Is3t Is3 iIs3 Ib(sI0,vIeY0Iq1u- It2)I-n.I-n. eI&OlI~,aI1ĒF IM $ I-Tp/ ]I3L;YEI3L;?I3L; I3YIh Pb rI7 I7IJIa.F I 1 DIId I+Iu IuIv ̪ *I-tYlI-t5I-t \IǦ-IǦ IǦIǦDIO*b2IO*b eI`1TK eI `r IC #Ib~ !Ib~Ik lm%Ik lm%UI\ӮdIt`I0Z) 9I0Z) I^R߻IIP$bdI II < (I) =ہGDI/I/p:5vIM>_^I lIljI*efI7WDGIzq?I+1I B ?I B IF+6XLI3'SIo@ $IRIQIC;#R I.eI<$|ߥ I}QtIhI ,I+،_ #I+،_IBz|jIeȥIeȥjIeȥ I=nd? I-=/I~I~I~I0}uI2IJ+xInv IfS1ThI=3 I=3 $GI=3 I=3Iaj I?t,IDf%I٬hxI٬hxIٳ-ԟU Io^do=IB/aIgXJPCIgXJPC IgXJPC IgXJPC ^IgXJPCIgXJPC (IAۧ% IR0Y IkZ)aIࣉ0!: ,I[/OIᱽsI& |6I& \IX{ ( I.9:3kIY2 IP{XI>VHI LUI LUI LUI LUI LUI LUI LUIb>` jIIRI?I ItoI:B=  LIe0 I ~ȁ[I3+"T$4I02: I02 I1PtI: I:I?[ s \I?[ s I蛡)[*I?I ̒0 I ̒0I ̒0ICࠍ ICࠍIqP(u?IqP(usIǿ` iIǿ`|I8VIa " SI0mXRI5mI5YIv\y ,Iv\y<Iv\y (!Iv\y Iv\yIv\yI" a' $I= I=It[Imxi I=_vO I=_vOIpFbIV|? I?IDWIj?I9uZUI/((I a/I4Y I4YtI4Y I1 RYI1 RI1 RIϗueLIϗueSI͝OQIo'Iq(KI1^? I IxF+?Iih'cIY~DJ8[tuJ lJ-MJd JۨmɘJ?p?JJ ;9  JsلUJB JieJz J ,J LpdJ Mo ,J >*hJ HOuJ 3dJ RK}J UQdlJ UQdl J b p \J iHJ 1@p J e:YbWJWc aJ= J@'dJ耻* aJ"-󏃬KJ,G gJ JWq JWq ,JWqjJWq $JWq J6 NkjJt~~tJ9 mJ9 eJ9 J.O Z J.O Z MJ.O Z J.O Z J.O Z iJ.O Z , J*J,?`JqvCJ0uJt'C?Js!J5H $ J5H?JhxJgzJgzLJ6|+J0"vJ0" J, BJ, J, JILJ@ՌJiy-JN=!J "G $J ބ?J ބJ ބ J!FsvJ!@ X|L J!@ X|J!@ X|J!HR#V[J!; J#jIS&J#jI J#jIJ#jIJ#nN J$f[J%jWlJ%㶊 J%`=tJ& *J&?Dm?UJ&?Dm 3J&?Dm \J&X||J&X| ^J& ;J'~J(~=2J)|9 !J)|9J*/<5sJ*/<5 J*Qa; - J+'`_tLJ+/J+[@ | J+[@ iJ+񞘯J+{آ~NJ+{آ~J,{J-ML&[XJ-eu J.)lCjJ.A?J0m!7S J0twS?J1ݾP J1ݾJ1um+|v J1cJ2odH (J2odHt J2odH J2ZE J35 J3ةJ3²#ksJ3²#ksDJ4`_mJ4\g~J4'J4c^PRJ4c^P J4c^PJ4ʖAKJ4\J5:ûJ6<?CJ6ĬaJ6Ĭa ,J6ߑi]J7!:J7NvJ7 J8 X#v J8 X# J8 X#jJ8 X#J84njLJ>4njJ>4njJ>:_ᖒ cJ? WR?J?KMy J?d%őJ?d%őJ?]x@LJ?]x@J?$r` J?$r` J?$r` "J@nf2JA^WJA^WJA^WQJA^WJA^WDJBJj + JB|A4$ JC+jwp cJE>\n%JF$>"JG <JG QJG JG  JG JG  JG JG9{B JGI> i #JI%ۖ-JIYJJ.A׬JLl݃ iJLl݃sJLl2kJL1+JLdλ]JM!EohwJM? c'JMfyUJN(ܜjFJN(ܜJN(ܜtJNOnɽ JNx JOt*tJP|\6'D#JP|\6'KJP*JQ+:lMjJQDh9 JRQ5tJR2؀BU JR_KGaJS=SCtj JS=SCtjJSg G JT,F?JTx JTzpJUl)IJUzU]# JYH/ ,JY~zj J[eafnXJ[? J[?J[傤,LJ[傤,SJ\8(?J\{9i J\DJ\K J]& J]BB?J]BB J]ޤ}j J] {  J^w>J^_,4\,J^-r #J_gJ_< .J`aPR JanOJb샜f_S*Jb샜f_U Jb샜f_Jb샜f_LJcQ(єjJc[]KJc/+n e JdѮZJexȝ[Y?JeEC JeEC? JflYJflJfzFJf* UJh# RJh}¨Jh}¨Jhr Jii#p? JiJ4Mz JifOTJjJn}SJjJn}Jk[ Jk[ 1 Jk[ Jm+`- $Jm+`- \Jn*G?HJn8<Jn8< \Jo/j2/&Jo|HJomC/JpuJp0* ,JqW "q*Jrɮ0]Js&^?VaJsUra Js캭s?Jt5Jt5Jt5Jt\Jtyof (JuJХLJuJХKJuJХSJv uPJvjDJvjJwC(t JwC( JwW1t#JwU#mJxXhqJxc|V Jxc|JxDUʵ Jy5qvJz?OJ|.R J|;n${/RJ|V3 J|!ϰP#J|!ϰJ|!ϰJ}:)"4v J}oNJ}wtZJ~f̓ jJ~f̓ jJ~SxJ~SxCJ~SxJቦdObJቦdOYJpI J UJ1*RJdjJdj +J#;H7J#;H7dJ|޶\JyJ=Jg$+?JnYJP/j mJg ^J %NE6 J>2Y)JJ[ U aJvBDJ2tjJH$e[*J r JUuN<JUuJUuJph#JbJOp U$JOpv JOp JOp J֮ZJ?w0 GJ?w0 ,LJ?w0 ZJ?w0 iJ?w0 J?w0 J?w0j J?w0 J?w0 (J/ nGWsJKbscRJH* JXQJȆc J Ck JE$ JE$ aJqV@SJ5vc}bRJU*Jܒ¹?Jܒ¹ iJCcJCcJ WCJ<Ɖ*vbJB ^J0k $J3bR߽|J#5 Jcߴ;JcߴRJh+JS \JSjJSs JS0 J2 $J2 J ^jJ>X#tJY![Ͳ?JY![ͲjJhJ:Jfo JfosJ_r CJBz*JIF $JIFJn?%Jn JͿlLJ_#?J11DKJ?MnvJH<Jjfo-J/8YJݐ ,Jݐs JA;[vJѵN|F JCtJxGVJxGV cJ'fQ J"ȣ#'JL1vJ`bG J(I JxBى[ Jk JSQ JSYJSJ'Qd|,J55JJ55JJ55JjJ55J (J/V&L Jkv_0 mJ-dSlJN | JCF $jJm$ JmJ SsJ^tJ/a6gaJT`RJQ;J/)08J/)08 JGm JTu JopJ豎U J豎UJ豎U (J豎UJ£?J£ ,JI`(sJb;jŵaJb;jŵR JĂGGJCGZJQeT?WJƶg_tJ&= $J&= J*]sHJ*]sHJ:@/ dJfٛ/ J^JJ9R?KJ̔~RJThlKJ[KN@jJ[KN@ J[KN@ iJΘDJ.[JТS,~ JЧrJZɥY AJZɥYsJZɥY JZɥY JZɥY i JZɥY (JZɥYjJъZ (JѻiKJ1>H Jm Jm j J7͡J:HjNJf LôRJ? Jդu\=fv Jنg_OJنg_OJنg_OJݭwh@sJUX9tJގ|FdzJގ|Fdz J@nJn mJ߫[HJ߫["lJ߫[J6;c0J6;c J}qJ,KksJ,Kk ,J,KkJ-)$Jj+&NJ5R?JڻrRJW ,JW (JW JW J "v,W J4 !t(J iJL6 ,JL6 JKdAjJKdA? JKdAsJc J'" J`J1- (JϜJM_.'JywSJywJ2|?JԖyqJԖyJԖy]JtMf|#JtMf|JO巎R JO巎KJFcEվ + JmL40 iJs:J~Jbi JtRJ<>^J! vUJ!  JqfE9"JqfE9 JqfE9 (JlJ"Z0kJ"Z0J"Z0 J"Z0sJ tG- J tG-JT-?Jpvm #JJJRJeP JrrJrrJrr|JplIv KɝOK"D2K ]@0R[+Kмy# 1K|jKSŒKTvjK,W&XK ,tKnKDKulKu"dKK YgK ZM]K bH K bH K bH $K +YK + NK %vK K t|W K t|W K py~oKfɃ5KfɃ1KfɃD KfɃKO|R2K*KP%[6KP%[SK5nڇKHa1WMKHa1WM KHa1WM KHa1WMKHa1WMKHa1WMK Kig ,(K?e KBF  KfFKvr (*qKvr:Kvr SKvr eKvrbKvr KvrKvr IKvrYKBK#Җ0K#Җ0 K#Җ0 Kņ7KrM{-KF|*KF|KuUo KuUo?KR'zKMle<KM߱a RKM߱a KM߱a KM߱a KT+O[Kdf i KCvKϮ}> KQkKTQZKknbKBKk} IK#-'qKm1K$Km1DKm1Km1Km1Km1YKwK bʿ K bʿ K!iׄK!I'^ jK!ɨCR!K".sutK#Q K#Y K#K#햓kK%x>"K%g򿋮K%g򿋮K&/ex K']\+K'~ K(YYl_ ,K(YYl_ K(YYl_K(YYl_ K)ǖd;K*E:K*E:$K*E:K+eS[K, K.ZZo'K.NK iK.NK (K0_aBRrtK19 %K12Nd)K3<ݙ4NK3>}p|K3cmt K4SHSK6-6 sK6Xxl K6rq2{MQK7Iv ZK7'э K8/٩? K8/٩? aK8J *K8=y1K9ZK:(K;f[K;&1oK;9N9(]K;\DKs# #K?&`MAK?2jbK?5"K?5"S K?5"]K?5"K@FE~K? K@FE~Ks K@FE~KK@\~KA]B?KAl=f}KA `vtKB^lc7KBh#KB.QKC KC KCDڏxbKFekKF,ģn a KF,ģn KF,ģnvKF,ģnsKH,fŹKH;%?KIqs_b (KI逸LKI逸L KI逸L]KJ;KK$KKWrGs KKWrGtKLtkKMu hdaKMu hdZ.KMu hdKMu hdKMu hdLKMu hdKN5eKNv KO 6K KO#KP 3+sKP\]aRKP$D $KP$D ,KQ#s%KQ#hKQ} L KRp KRvRKRvKR jQmKSB# KS>]KS>]RKT":KT?c$KTF- jKTPIV?KTJWYKUYn=  KX)Ti KY T-gKY-KY{(? KY{(?KZfG?KZ{0KZFw%5KZFw%5 ,K[;uEK[A\K[A\K\Y sK\ʑ=[K]- FK]- F:K^eDK_r7(K_r7jK`Pܱ:K`Pܱ #K`TsK`DK`Dd K`DK`UꔎKafj:KafjKafj mKb@3"v KcG:: KdEn'CeKdSK*v/ KdLRKe/g Ke/g Ke`о Kei@A |Kes*Ke4L%  Ke$J&NKeƫ Keƫ KfчxKfчx? Kg6Xڜ<{vKhd^ MKh)^0AXKhEFMqKjHqUXA vKj5`&C Kj5`&C Klń\?Klah \Km 'HE eKm 'HE Km6BD~(/Km`Kns\v KnZKn1 Kn1h Kn1s KoSR9Kp ;EKpIBV sKpLmKq*]t Kqmn8Kq(KKq*~djKrlA< LKrlA< aKrlA<s KrgKrgKs*{5 GKs*{5 Ks*{5 KsjKt/ݹyKu6蓎bKuvLlX \KuvLlX $Ku}~qKvd Kv$C" KwAKKw&!PKKwhcKwg~J3 rKx4. aKxv;ZZ[Ky!x7*KzyI!KzyIKzE"\KzE"\ KzE"\ KzE"\ Kz[ K{t K{ͷK| a.K| K}…K~RGDÍ K~m0 K~m0K~ &c iKz,ΨL$KzKG *KhT]uSKhT]uLK ~*h7K ~*iK ~*(K ~*UK ~*R3K~m K~mKy>;Ks KKKC?KCKi dUKi dK㝋 cK7(cNKG8RKG8KhN KF^K&}(?K&}(s K;j@Ki{K.8_GKSfJpKSfJpKoXl ^Kɾ ^K3C\u2K?ZiKWn8?Ke{(Ke{(KmedK`p e!K`p K`pK`p i K`pRK`pKNBc{| KNBc{|KW5l K'DX Kb]>4 Kp*KKp*RKSmN?KOK#!3KCƕ]\S*KDgdYK{~ K{~?Kw \K1@+KLW?KiY$K?*V?K7acohKPgi# KEusP?KK҉b KF-8KV)"kKX K$KK|v K; KB7az cK0tKMsK3m) $K3m)vKg7y,RKʥKvw K2 $Ke Ke i Ke?K!%-jK!%- aK SKocͩqK;;|tK^RKi4 K:LY$K5tK5 (KoGy ?K|$[+K>F K>F?Kx~Kx~NK7MQ{Ky[??KasKFQ)h cK+HKSI= KOLKx/69KA5gK?cK?=K?R/K?K? K Bw $KCRK UXXmK,?%@K'jkK' K' K' K' 1K'tKN+ KgrX% KgrX%K/qu@RKƚ"+4 KO?K ) sKi ^KBRKGQRKX3%hKXO} KդsKHsVZ $9KHsVZKHsVZ ( KHsVZ |KHsVZKHsVZ KHsVZ KbPKzLjKzL iKWr K@#KM:ˢ?KmwK8$oKӶ_Z#Kd*8 K* (K_6,K_6,KÁw:KÁw: KÁw:Knh|KĹrtlLK;Ku= N< iKŜ j KŜ jbKmW: KLKTn KÑ-q K'U?KDAK,>k,  KǷowK.޷-KȮ|8:w \K"E!KKUtKT7'QKɭh>RR!Kɭh>Rj KɯbY KrUE K?C5bK?KKTP,$KP $KY@kTSKumn N'KΞq@T_KV K$g%KK/Žf K;QKJ]+ KHK"{K8Z= $K?ok&K?okKЍĨKїwERKѦF0KѦF0K7{ KbUKŤSK$zJK(YROV/K(YROVK(YROV K6 S KR"iE. ,KԙhKIjD?K4Ko Ky!{(K῍: KbKdhejKdhe ,Kv;@ KB{6# ^KgDGKgDGKgDG3KhPSKCZ]KKCZ]K"#&/Kzl@z \K杓_Q' eK9PKiD =KiD = sK+#w?K+#w iK+#wjKb=[Kp|hKZ5 K X| KM]m cK; K_3^ $YK_3^ 4K_3^ /K_3^ $K_3^sK_3^ K_3^jK_3^ ,Ku^KIWO (K KK dKZO KΧ;WsKΧ;W $K9jK9jK9jK`EdKȶtKl;*wKb!:L KB\ K;>R yRKnU KnUK- c KwKwK,Dk K;9nKFx KFx KiZ Ka86K$BRK$BK$BKJ[K 1-P K 1-K??d 8K??d K&$&.Ky.hZK'#jjKs5 L"WI mL{lL9k&HLZf!vL]-HKL]-HSLSLYLiS] L| LeCFL]u aL;'L:vLLL1L"GL \9KL e\ aL /Y?L EY#NL KL K?L KOnL !}M \L u[l$L u[l$L T-^. ,1L T-^.L T-^. L T-^.L3 +L3 &L3 L3 L3  L3 QL pLEXpLILs LILLJNwEuLs,!.vL3%.? L3%. Lsy`L$/#L$Le mL[?I #L2LgKaLo/YLp]"84VjLp9 O 2Lpbedv Lpbedv? Lpbedv LfZ Ls2Ls2L# L7TQLL9B $L+q cL/S /Lf]ROtLYLpeo!LLpeo!L!zkL[D5LZ, LKRLyd]LWL>vv LYR CLYR LYR BLYR ?LYR LYR LYR L6EL *;|L TSuL TSu L",u?L$t̐+ (L$)3SL%kH0`? L&!8^YL&!8^L(" L*C3L*H*>L*`  c%L*m \? L,&Q)SL,O& sL.s(`3L.s(`L.sa__L.sa_!L.sa_L/YD `L/YD rL/YD L0*,]L0*,L2utX? #L3#Y L3~V^L3~V^DTL3~V^KL3~V^R L4Z|V-L4Z|V L53+L6:tRL8ۢk L8ۢk L8ۢkL:o ZF CL:o ZF1L:stKL;΢L;΢L;MKKeI L;[L;[L]S:L>]SL>]SL>kVL>8XL>8XL>8X L>8X L??◖FL?20qL?|3?L@>.dLA&`i?LA ;oLAp'_LAp'_LA±C"LAq?!LAq LB:` NLB:LB! ,LErID LEاsЂLEobLEob"LEob mLFmyRLGV$ LG\LGn[]KLGn[]#LHtLHLHkLHDsOlN LHDsOlRLHYd[ aLHvfLIg5" LIJӤCbLIgƽ LIgƽ LI5E ( cLJS%Z LK/cQ6sRLKXcov LKo.jLK-LMBfaSLMBfaZ5LM*?LNPxj"jLOag&LOx_SLP jbLP ((LP LP LPHѣLQJ~?3LSN9pbLS& LT'2v*?LT'2v* LTVMoLU8{LUF  LUF jLUo:V (LVBH LWV@7"LX xf LY8G)LYkź$LZFpLZRusL\ML] sML^6QRL^Sτ3La? Lb['mLb|. /tLc6-vLc6-Ld`X LdO@kLeD`.Lh0 Lk eLkZQLkM{ aLl+lJvLl/"] Lln>(w Lmgu]Lm*)Ln%emLnmSlTSLnh„RLp<:2QLqbv  Lqbv KLs$"1Lt9&SLvހ)Lvހ)RLvހ)Lvwv*+ Lvwv*+LwD`KLx+>zLy)JAlNLy.$*<QLz8PŸ Lz8PŸ .Lz8PŸ?L|Z-_Cj"L|Z-_CkL|Z-_C L|' OL}Ӣ-YL~&+U?L~[}͚?L5rZLALֿIɂjL@dM4| L@dM4L@dM4:Lܱ7OLLLhML_]Z cL~Li  L}k L O]LbeLN-nhKLzK LC=LmǶ ^L7$Lc> L?3QLkh Lkh Lkh $Lѓ"vL'MY1 aLiF}' LiF}'L( \L; L[5c?L[5c L[5cLSr<LSr<LSr< LJtLJ $LtI* L|Ȱ$ Lvɿ.0 (LOY1L*Q L&'\_ Lt:L?ے vL rYLT8L ( ?.L ( L ( ( L3 220KL&L6䴂 L6䴂 L6䴂 LY5r]LY5rL?cKLqo)륆L;LjxOL`C ,L u sL R& L`LK LN}< iNLN}< (LN}<9L; LlX0L@OQ L@OQ LvxLf%< iLEok aLs^KL&ǺZ0LC@mL!8~`jL0aLq1 3LEK LEKL} L$ L$ eLɕ٤'Lɕ٤'L1& $L1&sL1& L~XkLLLs. HLs. L4v$93LT1!LT1! LxLá۷[dLĩ6lpN $LQa* \LraLǫcy#sL0Hx0L1~.LL7YiBLɯ3C!TSLA,L` i L` $L6]L:dL]!/LL-c vL[uLsI'LzLٳP iLٳPL τ:L τ L τ L τYL/qL/qL/qaL/qZLӜ[4L5t`rL#RNLϟDLe@=E $Le@=E aLe@=EjLSZLֈi?LY !?LjS&%P LjS&%RLjS&%QLELLر;5+*Ljٹ_+ LILڗV SLڗt1]sLڗt1] iLۻDx dLmbORL ^2L ^L ^L ^LdebLC+LCYXLC9Lݒq$Lݱ&FH+Ln'{7 $Ln'{7 Ln'{7 Ln'{7L[dNLS$ LSLb5h&vL+eL<1* LT)4 L{ qLHLs LHL LHLLڡ?L=qUL@tLH&CLWyp LWyp , Lό Lό 3Lݭ7j#Lݭ7LT{LLT{ LT{YLT{LT{SLT{LUrg]lLUrgULUrg$LUrgZLUrgL \L?L L,U\ L,U\ Lgjg LblLLblL*Lk~L JE4m?LAH LAHvL;_ L)#YLf.L(u L[tL[kL[}Lִ"}?LZRJtLZRJ Lf?L򦗍cj L򦗍cLXdFL:_yd L:_y!LұӚioL] Lp2AYLp2A Lp2AL1HP› 4L1HP›sL7L} [$L} [jLRΠhLtaLt1LtL.LtLtSḺ5;L 2d L\pkj MdIMhI MhI M MV!RFMV!dMU0MUMt`x M +5ZM 㠁 $M 0nj=M E͂ "M x M 'CNM p.=RM }8E"M WVRM \ vtM pRMkJ8[MU@=u M_D$,M;sxMAY# M4+QTM4+Q \"Mlu)Mp}TMp}VM?" Mj* $Ml1{ M; ,M; ( MF"PvMJB\8_Mp1Ԛ Mp1ԚLM5R95 sMRvКMXpMrKNF eMc0"M M Mn0Z|M+˝ Mɂ2MBC֮M`MN# $'M9ˉh Mn4 M.&M`5(*0MҡZMҡMҡM 7M lDMPCM lDMPDM lDMPM |{H #M!˩(ξM"uM$ʁOA ,M%[T|M%f-[dM'!4_BM(2jM(Q'#M(Q'#M(7weM(BvM)i;+ sM*~9aiM*zM+v |vM,ptM,t=`M-nCŚM-'0$M-'0M-'0]M-'0M-'0M.e`3 M.e`3  M.e`3 M/{bjM/e[] iM0%M1nv}u iM1nv}u \M1nv}u M2yfM3nQrM4oU!M@X3SM@-CM@_GM@,>MA {fMAĴPMB*^"R MB*^"MB*^"KMB_a }MCe?2vMCu<?MC|_w MCֿsRjMCMEHJMH(ٷYMH1[ MH AMItW2|MItW2MIE<%MIE<MI}:MIW MIW MJyHuyMK طdlMK طdMKoML*gSnZML*gSn ML*gSnL ML*gSnK ML*gSnSML5G?MLi@MLi'MLi MLiMLiMLiUML``?MM@fS cMMQ5OMN"Zd2MN cm %MN cm $MN cm MOxD?MPYuMQ|;#MR/ jzMSŽ`MSRbMSF>MSF MSFjMUEh*wYMUu@ MV[ZKdMVMW0o ,7MWt nBMWts>MWt \MWt ^ MWk/f MXB YMX#U9MXwuF_sMXwuF_s= MXG<rMXG<$M[eK M[ { ,M\g M]RڻsM]1M^n M^$]wvR*M^FֻdM^XKKvM_z իI M_z իI jM`iAte ,M`k爣 ,M`{kMd8>Md8>tMPYM-9 MD"6q_Mn(vMBLyM]OAM3M& eMV&pw MGNM,TM\M@M :M_ty MuSvRMh^xO ,M EM TGMd=Md=Me\s~ (Me\s~sMm jN M8@mDMACM_M M.I`' :M p [M:CGMn/8Mn/8NMCnϽM*M*M!sMM__I? Md~RMd~M"M!CM!CRMVK&M,tMh9M,MpDM-X[DM= MQ/sMKt@TYM^f]> ,M^f]>M^f]>M^f]>jM{JeKM+nA1] M+nA1MLYmC MA# aM4Ht%M4H Ml"%tEDMl"%tEM;W-M8hZ?M qM<%NMMFWJd|b Mm&V M7NM{@ Mv9a0MжG}jM"~ ML^TMDSl<M )M )6M )M/Z?ZsM}|xb? M}|xb iMcxT $M0gKM0gMMxM @M @M.~3 кM|f[M|f[1M|f[M|f[M,*` M,*`MHpMU2RMU2M­L M­LM[11KMõ$kMõ$kt M# jMǛ,*t M.-=| M.RMEsMmyʫ Z MOѬv M}\M0u8 M0u8 Me}n #Ml?'RMɖ/ L Mɖ/ L MȦTAMȦTASM1 SMQJnP?M˗m? M%Y M%Y ,M%YMHT6uvMϱu~h?M6An5`Mt<aMЛ&jM; Mf0JMiiGrMW#݊? MW#݊MҘJ 6M_tMDg;MWuSMՓUvMֺ? FM;VtoM]p M[.N Mm/s JMl MJ`sMapGfMapGfMapGfkMRy7M\¸Mܮ% MK=ZM┪5 #M┪5hDM┪5 (M┪5|MRЯN M޸H|vM޸H| M޾_E MHݜ #MHݜMyӇ'NMрӳD cMрӳD # My?MG\sMG\sM{dsMdqMlϪWM;.MM\XU Ms73ZMl+Ml+QMl+Mꈷ Mꈷ ^MꈷMꈷ ,MH n'T MH n'T M㱭x|2 M0Zn'M)[ MGKBHmM["M["MdWO Mjaf?%Mjaf MjafMEMcMcSMAX6?M} _jRM1M $M'_w#M'_w$MD^dn;M CMeC MeCjMǣ1MRgIlKMVP]M@vM~M2 h LM[A%jN;MF^Mܚ~ MifjM)Qދ{GM)Qދ{M)Qދ{SMEp1ܐAMEp1ܐAaM3=ˆtMccM RvMU MO7bMO7b MTMTMTUMTMTLM_ABlMDK aMU͍C m aMU͍C msM3& M3& MmƟTnM-M; M4.< #MS| wMd!I \Md!I /Ma@|M M@"ʬK M@"ʬYM^u8nM6{ӞM6{ӞdM6{ӞRM6{ӞM6{ӞM16 MUe M;T?M;T?M;T?N=Nܞ'b N!3gF NNEUNUP~NUP~ NZ  "R N0md UNR14 NR14 NR14?Nnm| ,Ni[tN6cFM?N6cFM aN a> N a>? N <N AȆ,tN @d9N U N  ÉN !s<ܷ *N !N \`9N #/E "Nl Nl Nz)2Nz)2 Nr\NQN%4ZN>K N>NTD.]NTNTNTKNa NatN`1N8J?Ny󷾴hNB~SN:^Nv# 2N0.LN^̀Ni NՈl^NPjJN_N_R No N . 0UN 8z&_"N ?5?N"NѩN".Ah9N".Ah9N".Ah9ZN$)ZN$)IN$)R>N$) +N$)SN% %N&%-RN&5(*N&5( ,N'3褝?N' F?N'RipRN(`{`N)5z H N*[ K%?N+h N+"{֨-7N+"{֨-R-N+IDlPN+IDlN+IDl N+IDlN+ - N,*Ew} N,*Ew}vN-sry N.#kpTJN/XMC cN/ ; N/ ;N/ &eRN/ &eS N04/N0]EqXN1b O|S N1b O|SN2ܘW#N4m >?N5RN5RN5%vN7._gN8p* N8ͳ N:\] eN:68[O NHvð vN? X/d?N?t?N?EG刊jNAnn!D NB#IKYLNB#IKYNCNC NCÁ[OqvNDPNDdž(NE2*NEGp? NEo8NEo8NEcG sNF\g*NQDANR Uڬ NR Uڬ a NR NRW: NS.NSNS NSNTbNThBOvNThBO NTjZ،JNU#ޢvNU7ƿNONW2zNX!NX!NXU NXUNYZ?NY0f ,NYIBN[b?N]uX޲[N^9N^9N^N_q]N_ ;N_8yc'RNay9? ,NaޗQs eNb \fNbPq (NbPq NbPqNcs+NdtGYe' Nd}8Nd?-VNe0n Ne0nNfA $$NfajNf6zkfNfL̦dNgwi ȉRNgwi ȉ NiQX] i*NiQX] gNiQX] \NiQX] Nk 7uNkz[Nl@pkNl@ptNl@p aNl__Nl_Nl_Nl_ZNl_ Nl_ Nl_Nl|D L(Nl|D SNl!gRNmKRNmKNns1( Nny|kl` Nny|kl` ,Nqu_NrpdRNrpdNrpdNs*ojfNs*o $YNs*o ,Ns*o (Ns*o NsפV ,Ntg}`Nu#Nu݂tvNu݂t eNu݂t Nv:L}NwW0(Nn$N@#GNdH#N4 N4NZ;Q N+ʞNpkNRuNh @kN4[N RNNS>9?NH + ,N+_,MNs6NwzkQg DNwzkQg?NwzkQg? N[ZNƧ9P! NƧ9P!Nps NNNRcW5Y NRcW5 N`^NuM`KN NN NC>/ NI:O`N ZN ZN vN.#CN"G.>fNIANq0 N)YjN)YN)Y a N)Yb N)Y N)Y N)YkN)<q Ns$>vN@Ǻ2mN]^J aN#>N# mNx^_(Nx^_( Nx^_(sNË7S N:\ N:\ ,NՎ|KN;NJqddY<NFo8 Nhi N 1¨s N 1¨Ney<UN@"Nx#r #N'[Vt N'[VN(fyNH4%ƽ[N %}2 1Nt Ncȋ Ncȋ NcȋZNcȋNcȋLN5s3$V N]Gt Ny3/"Ny3U!Ny3Ny3 NDL? Nm&asNm&a iNexdfNtk:NGNF,fNE- (N1S\NwPRNM $NM2N/ N')6JNeMjN2NoNM^?NE $ NE NK7 NJZ[N,% NmՎC (N\(KNJd9#NOƑtNK  Ng| _Ng| _$NdN NdNjN'"? NLN񭎨jNSG>kRNSG>kKNSG>kNSG>k!NSG>kNSG>kNeNe3Ne eNes Nf1GK(Nf1GNf1GNo) NfON, *N?Vz N?VzNရxN d&=N d&=N?G0 N6YN6 N6jN2hCN,pFWUNBNBN&ޫNN.7NŒ) #NŒ) Nn2f/bNçjÈJNçjÈJ&NçjÈJNޘ1Nޘ1RNޘ1/NKi}NvNrCRkNŋcN`N} x3?N $$NTz[NuARNH>ՇY NH>ՇYNH>ՇYNNUN\ N\ N\NE a N IHN&' iN&'?N<=f NyGNΏ ;R NK Ni N|N|N^J8KVKN;9tN;9N2vNDXDNӲU J}}Nԗk?%NԗkNչNENֲz>9RN׌m; N؎gn|N4j N1f N< iNqDNV2pNmm@NX#SNހOaf NހOafNށ.U| aN3!"N3k l N3k lQ Nq욶+O N\> N\> N\> iN\> jN\> NzrRNG% (NG% NtkNtkNtkNtog NtogN?iv/N8 N8 N`4y1N9cN+=YN+= sN+=N+=kN+= cNݷk NfEa9vN御`[pN御`[pdNqm[sNqm[tN挮4"HNPZq?N?4`q # N?OvLN?OvN?Ov N?OvN6Y~ ( N/E{?N/E{ N2[SN Nr,X NX;8(NX;-Nooj#Noo NjN NjN#/oFN"&dNYde#NYdeN ?N KN RNsbtNsb?N"@QNcYN"J7.?N\|N60IjNtT#~DN3gm"jNB \N!1NR c Nfɼ Nfɼ#NfɼNo,Go| N޺N^n sN^n NoanNN#N m NxM*N.z NV? Ndr_:NǣN=]NO"q]S$O܅KOc/ OWѸIOWѸI OWѸIO5," O3 5-> Oc;Ou~NsO+NCO+NDO+NOO$OҀVGO Z@Nj<O no7?O%/z/[,O%/z/YOݥ ^Ol)ttO $aSO hI6O piO U1Y O O O O l O lO ӤBvO >( O >( OnoW ,O%N O] RO fO fOƳ~ OƳ~QOƳ~OƳ~OO) OO)sOOӖ8)R&O" (O(pO(pO;X'F ,O~aO~ O~OFga&ONՌ]O0Ox& OTC8 OQ O0 %f O0 %KOaq Oz^ڶbOz^ڶbOz^ڶbO%s@-OT@I O_eO_eO'H1 DO'H1 QO!OwS?O"@iO"@iKO"@idOD \O l& ´oO!-&O"㖿, #O# U O$2^O$i o $O%+C $O%+CO%+C ^O&nI~tO'o `O'o ?O'o ( O'oj O'o \O'Fh0\O'Fh0\ O'y5hmKO'Q58O'Q58LO'|S_=O)l6; O)i \O)? O*,. O>\V ;O@B16 OC% [ ,OC!? OC˺h"b iODy|iOFMpb? OF`o OGeJ>s OH*jXOIM>phOJdOJu, OJҕVZj OJ`N OK[&aOLWdZ OLw]`v]OLw]`v OLw]`vOLw]`v OM9Nv OMU9$ OM+x3=AOM+x3=OM+x3=LOM+x3=SONFcǦONOs(En ONv-D ONMW FONFA?OOTOO_# ZOQg֘>COQyNOOQ|U^AOQ~&OQ~OR"hNOSL OToB ,!OToB OTQ5OVZw24 OVeٚOV5DVOV5DOV5DfOW[ҵ OX DбlOX Dб %OX DбOX Dб iOYwq\)Ċ+OYdT,sOYdT, OYdT, OYdT, OYdT, ,OZ]6gL O[R>=CbO^b={ȲO^yLO_TGB}ZO_TGB}RO_tpK?O`yh{&O`R:O`gvSO`8_Ob̳mmOc[OZdOc[OZ$OdOeCak_Oes#Of@;?Ofй7K #Ofй7K cOfй7KOf>p OgxyVNOgvl? OgWf Oh kOh |۴ Oh Oic%e Oiޏe OiޏeOjD/$Oj/.OjOk%<QOk"POk"PSOkr:4Ok@CϯOl*N㉱Ol*N㉱sOl*N㉱Ol*N㉱ $qOl*N㉱ Ol*N㉱ Ol*N㉱jOl*N㉱ eOl%JB Omf+&ajOnn@`?On? Op-OqrrgOq%(v?Ot v Ot9Ŷ6ROuwFOv OwKìǢ)Ow`r5VOyDiܔOzd`[Oz-~rOz-~gOz-~BOz-~Oz-~Oz-~ Oz-~KO{1gR%O{2iNO{:)S jO{c y8s |O{c y8s ^O{B.ljfO|%/&O|%/!O|%/O|"ޞiO~@dP$O~@dP$O~YOx4ZQO8҃ O8҃O8҃ O8҃OQCO|}0yY O|}0y KO|}0yO|}0yjO|}0yt<O|}0y (O|}0y ON O?# O?K OqCX*0OqCX* OqCX* OqCX* OqCX* ,Oŝh?NO3B O/HOj3O?|O)wZO) KO0I7 Ož" tOž" iOYO99 7O99 7OxD^O"u\2H[O"u\2H|'O"u\2H a O"u\2HsO"u\2H (O듑qRO`}ZO`}ZOA`"0 O|q` OKb OKb Oj jfOfs#Ofs#QOfs#OIPaOW<?OW< OCYMO~z@O~tGjObĻ2O,' UO F!]O F!O؜FMO 3J"O 3JO! O~EvO~E OB;#?O7__USO%o4O%o igO%o [O%o?O%o O%o \O]$O]RO]O?Os  Os sOo"<4Oo"<tOYLLdOYLO-x O-x \Oa/Oa OaOЌIkO++[R OU]O8P Op>ߧYOr#hOnñO~TOjOp O6B`O@H aOi I$O e. cO%SOvrO].`?O3a]4Oh-Oy68sOBPOM}gyOVUA]? Oē0Oē[O=O=O }q O }q? OA nKsPOA nKsO$j~?O$j~OkO6} i O6} O'QOVBu2& mOVBu2& OVBu2& Omz%O2-OXT[c(O0E O!t|OHx OVr$OG OJ~< \ O/ \O^AhO^A OS9R'ROS9R'QOS9R'KOf [Oe(' O OKmlO}mOz10$ Oz10LO%1?OI˹וR&OI˹וS OdhNOihOË+aO O1$wmhj O5Oz; O,ws O\*O8s# .O8s#OtO]O{X<ZOƒщ?O} O" Oȅk"OȕBO@/: jO0тOLO0тOOUC (Oe%` O˃L|89Oe{ Oe{YOͣ(Oͣ(ORڜ`? OPOЎOcir}lR O3Og߭Og߭SOM!hOr!?5OeO?+OLw[-vSDOLw[-vOLw[-vO{jOIbәvOwR%OwR%O־ UO 9@TOBt{OLN OB٤O8OLy,Oڈ) !OgH+% OgH+% ,O]fcpqKO]fcpqNO3%R9OܬѢBOܬѢOO)eaOU^Nt OV9OV9sO_O_O4= O4= O4=9O1!<O>  OHk-aOוSh , O%ɸsw O%ɸswO%ɸswO%ɸswOފ:sO6)&z O]3nPjO]3nP OdFz cOdFz # OV/\'OV/\sOV/\OW/SvOW/SsO7O)Mӊ? O)Mӊ (OO좑^Y?ZO\H_OwxO/n!O/n!O/nOqkOyBjOyBOyB iOZ~-KO:'O:'O:':OՑQT O! \!O! \O9ZO9ZY Oq$O6N= O6N=O~Y O~O'O' iO'jOEvOOC@f rOs~OSk OSk $O  OXPOXPOXPO0",?OW7ɡ?OȭT|OȭT O@O@S0O@ZO@L OAu6 OAu6 ,OAu6 OP&SvOzn։~ ODir7ODirO@K?O@K OdtPOdtPsOZe O `RO; 2 O[$P݉P5B. P/}gAP[W+, P[W+,P[W+,P RP[ "P!]^P /MPPꓟPɬ#WPwSP^km4 (PxSPPɹ8P*/fP*/f ,P ;FB$ P 2.S (P Ta.P sS*$P | P YڂP YڂDP }F?cNP WESP ݺ9I P ߽. P ߽.RP [0P`F:RP?UP?U $P?UsP?UjP?U P?U P?U eP?U (P\xs PzMڹ (PE!P>a P>a P3'P3'P2P3'PIrQP6G ,PAszP] C #PP'D #P{IK!P{IRP{I$P{I#3P{IUcP{ISP/PhPY}O< PY}O< ePY}O< P3IJPFYi??P ,sPRG; P bpPNK^bPh< wP鞸$&P)ڕ P)ڕP 7n"IWL!P 7n"IWSP 7n"IWYP 8I P 8I P!VO P!VODP!sP"sM+NP"sM+NP#4ٍ1 P#Z\ P$7WJ - P%GN RP&b秃 sP&b秃 K P&.Z[ P&l0 P&l0[P'iLYF?P(E4HUPP(CP(»sRP)VGP*_A1UP+v&6GvP+^P+fzfŜ[P,97PRP-:(، iP-:(،9P-O$Uu P.C2Xv+P.;Z} P. UNZP. UYP/JieP/%t P/H0XP1E5 ?P1d P2ikZP2sW ,P2}aSZP4[oڅ (P4[oڅjVP4[oڅtPP4r?P5lOwP5% P6Vq{D P6Vq{ P6<v.P6ԫ{ P7 KP79P7 P7 e P7 P7P7hPP7ĀYؐ P8DY:PP8cGM?P8˼.P:x5Rm $PnMP>KFP>xJP>A.W P?nP?=P@qs/PB@YPBw{2 aPBYf= PBaT0@PBd&/vtPB\shw4PD=٬>PD=٬PD=٬PDmtLt PEK_PEK_ PEK_PËPEzE PEzE PF:PFMkPFP. sSPGR1bPHPVz*  PIYBZ@PJCRPKEDPK PKЋ|PKЋ|PKY݈:PL ޞPN9PQPN9PPN9P$PO#Zt 9PP R^[SPPVQPQiт9tPQuTHL aPQE=~t&PR K?PS*gPTM^*RPTC|sPTŚa3OsPU[#k PU6nU<PU6nUPUe)B!?PUmPV8() \PW S}ݤ PXENs~ iPXPYF&/ PYF&/PY?mYPYY/PYY/#PYY/PZ?e S P[4$`bP\/!b P\zx+P\zx+ $P\zAKO #P\zAKOP\zAKOP\zAKOP\j\>QP\j\>tP\j\>YP\j\> DP\j\> $P\j\>sP\j\> ( P\j\> P\j\> iP\j\>jP]t P]z P]Pg ~> Pg ~>Pho_0PhMMPhjPiH. PiQv)r?$PiQv)r a PiQv)r (PiRE $&PiREPk-ZzPk-ZzPkDX%?Pkޡ5; PkF(\ $PkF(\PkF(\ (Pl :5VPlZtbRPmab,Po@׻_asPp@% PpHKd jPq&٨ -Pq!knPu#h\PvRI8 ( Pvt/~5)Pv_; Pv_;Pv_;Pvb`$tPwCQt@PwCQtPwCQt Pwu>iPwC~b SPwC@1b]#Pyh 1RPyh Pyh ?Pyh aPy3w iPzJ$ $PzJ$ PzJ$ t Pz'a Pz'aP{A`P{KVcl sP|Q/\$P}nnC_P~ ʄ~sP~d Tt{P~z_jn' P~5* aP~*?P*5塴 PYGC2Æ /PZPZPډ%<PLxvP1o P1osP1oPzYN PO (P@,> PXIFDYP4e PGQ3PGQD$PGQ PGQRP?QtP {K P~"ID$NP=s]sPZ՘G-PZ՘G?PZ՘G \PZ՘GPZ՘GjP TW PʷPʷ Pʷ P{]RPQkwDMPQkw$=PQkw#PQkwP)QP)QP`GP|P|P)|lPDX` iPDX`PDX` Pdʗ*$Pdʗ*$P]]P7h P .Piz BPiz jP4@P|B@PbA4 PdPk_qRP PIs\s0PIs\ \P;!ѽĝkP;!ѽĝ P;!ѽĝ P;!ѽĝP?PA>jPD?PENP=8e-[ P=8e-[P=8e-[PV?sPV?jP߭7zMZP߭7zMP߭7zMP߭7zMaP hP(EDR P(EDKP(EDCPQCR aP7{ PwO5 P\vP]R"9ZPMPfR PfP_#/P_# Pf볙jtPmw-=.P"bũ_P  P"T,&RPG[ dPYHX,Phr?PXW \P_I$?P+P<:5!P<:5jP<:5 P1? P;`u?G PV۪]RPu$2vP)NP3&tP3&Pj@ %tPt PtP,^KDž[PYTr #(PYTr PYTr |Pu7Pu7P2<F $PjP:^DP:^QP:^DP:^Ph앀Ph앀P^$?PQPePaߔ PH嵏 c PH嵏Psz |P4rPİS8 P3u?P3usPJ iPJ|PJPJjP5 iUP;!YP;!YDP;!YP;!YPJ01YPJ01PìtuPtt P  P:5ź?PQ PQ PQ YPQ PvP򳻬R?PdsP݋u8 SP)iP)iPeeIYn?P} P}P} $PvК7 PvК7Ppm+ P,͢KP2aJ PkM WPFh/PFh/dP1ͻɘ a P1ͻɘtPN+"sMPN+">PN+" a.PN+" PfunP=# %P*Ē&F Pt`n nPwj@sPwj@ !Pwj@Pwj@jPwj@PgNP~kP  Q-dž2 QK?Qz3 Q/t[bzKQ/t[bzQTA("#QgYSQ7;ʟ Q^sQmUQr ,Q$q1Q$q1RQ /#`Q YQ -(VvQ r \Q skEs Q sMS<Q  Q Q  Q Q(zJ 0Q(zJ Q(zJ ,Q(zJ iQ(zJ QMr| aQK QvD'Q) {Q[S?QTQQHKWtCQQHKW QQHKWsQ2K QL$#QNG Q#4xԅZQ.sQ.?Q. 1Q-ɜsQO X Q){o?)Q9>oQ9>oQ9dQ:0m9Q:6WQ-dQ;]; Q;gQ;)0 kQ;x+Q;x+$Q;xsP] Q<I # Q<NQ<QVw S>QVw S>QWK3QWfe&v QWfe&vQX, jQYSHRQYav$ QY/xjQY?? QZx3\ aQ\a1 aQ\Sɪ ,Q\Sɪ $Q\Sɪ igQ\Sɪj?Q\Sɪ (-Q\Sɪ Q]&l:vQ]FÄJ5Q]FÄJ5$Q]gv?CQ^jVx Q_.5%Q_P Q_P Q_RO?Q_fFQ`lAO:Q`9(jQansgQans7Qans]'QansSQansZ Qb$Qc1JeRQcITo QcQ&r.4QcQ&r.YQd]% QdOwY|Qe]"sjsQer{:JzRQfQfQg( NQg M 0Qhg^{$Qia\tQk`OBvKQl8ޝQm& Qm4hLQm]tQm]tj(Qm]tQm]tQ Qm]tRQmQmvQmS*^ Qn_&/b QngH{SQqyb $Qqyb Qt?#Wp&Qt?#WpKQt?'y* $Qu{ kQvjRi]IQvjRi]QvKzQwht8e Qwht8e QxlVyQxv%w['?QxE9?7Qy{wEsQy{wEjQy{wE|Qz(S.Qz(QzV QzVtQzV Q{ 46kI?Q{#!NQ{H0 sQ{H0 \ Q| @Q| @Q}⨧aTC Q}⨧aTQ}⨧aTQ}⨧aTQ~n? Qr0avQvy QW:$3Qu !vQ']Q'] Qn5"QRjQC@?QJ2JS QJ2JSk QJ2JSQJ2JSsQXaLQXaQAF`jQr QrQۊcsQի|9 Qի|9|QIz0 t QIz0 Qf|5vQf|5 Q ǷQth ,QZm<QZm<QY0Q%ԘQX QZA ,Q8TQ#Q8TR Q8TQ8T Q# QQzTQ\J Q\J IQԜ$Q񾔆 Q񾔆Q ЂB& Q ЂB& Q ЂB&$Q ЂB&Q ЂB&#QA g\QbF˝UQQ0ؠ Q0ؠ eQ +Qq[ QqQaHZ+8QHM3 QHM3QHM3Q6T^FQ6T^NQ%I^4 Q%I^4t Q%I^4 Q%I^4kQ:_]{ QfbtQO1Qc4;͍bQy Q<8Q\MtQ\MtQQW$PQj^;KQ6Qʶ .Q cnQ5SQɣu\QFT}1QFT}Q(%Q(LQ(QDiQDi ,QgQ-{AfQ-{AKQJ\VK QJ\VK QQb?QK6S!QK6Q_!w 0sQ_!w 0Q lr_? Q$:f Qpc& Q/Q_P KQc62ktQG7' dQSSCQ¢!% $Q¢!% Q¢!% QsQ4B8QzXjQbptQL6$Q;QQQӹNUQ[|@ $Q}SQ}QCO Qdk%QݦtQP0ևKQP0ևKQv;QPFc ,1QPFc \QoQTqRZQl6Qj=RQRGe?Q @pl \Q{8! Q{8!Qc3 ,Qc3 $#Qc3 Qc3 QvW^z`Q =SQ =LQzw +QԊq Q8Q8Q@Q*L $Qj:l1m\Q Qj:l1m\ Q_j QlmgTRQu<Q-\kQDI|jQDI|$QDI| QbQ&g^Q&g^RQFR %Z&Qf&`Q-'!?QJR=vQ vb Q5q Qm&RQU |04* QU |04 jQny;Q³H1hQU:t@kxQ}2?Q,U7QĠm *QH*`KQ|v$Qnx5- QeMY9Q]a2,$Qǡ%k ,Q%#"Qu<^It1Qu<^I Qu<^IkQyBft7QyBf Q<{QΙo@Z )QΙo@Z IQΙo@Z|Q;0QOϋSQrc o{QІ \?Q(6E]Q(6EQϷ Q {C}Q {CQ {CQ {CRQҿ!|WQҿ!|Qҿ!|Y Qҿ!|Q|:QNLQNQNQԲȚU Q۟[ܢ ,Q۟[ܢ Q۟[ܢ QvJQvJQ1WП@Q1WПQ1WПQQQ3ro $Q^v8dQˡ"::Q0 QغGkڲ #Q>`Q>`tQ VQٔ<3t"Qٔ<3 rQٔ<3QHQHY'Qyzϵ Qڗr#TQڗr#KQڴ ksQ?a6 Q E?QdϿH@RQdϿH@aQۘV@|tQܬ8!6QwRQDTXQMAH[QMAH[QD FtQD Fs QXg R?QNQ7$Q"^QzQs $ Qs Q/`]QN~PkRQ_۰fQ⠇x Q⠇xQؑ QOMs QDx)QDx$QDxQ1rF1tQ1rF1RQUqQ櫹.kjQ7mQ ,Qk&uQՖOR QՖOMQՖOQՖOQ棰 bQP\Q餭>Q=;S.Q=;LQ=;Q=;QQ=;Q=;Q:/CQlj -Qj%<s(Qj%<Qj%< nQO<=õ?Q저KmQ 9oQH̩Q7#QEQ]S?Qd iQdQJQQ , QKOy:Qd_KoiQON Q"P1NQMb]QMb Q4,铖 $QZQ2LNQ(| Q-;2 QJlXQ)sw4QO1TI]Qk Q ?QwPuMQ*mr ,QV ,Q| QfuJbt c Q^SQ՛],Qv:R&QѴK۟Q|WQc0 LQ Q`QrQ|_-?Q hsR5 4 R[NT jR[NT R[NT RQ ߭?RLJl$R@蕮R=7*0eR=7*0eR2B~ RMz\RR|):?RWD0 $RWRjDR3RRI;ʚ3 $R1PRՓQP?RՓQP9R١?R١R١ R١ R `˘tR 4R u_ iR bR |e6^R .]-REgeREgeRk}W Rd R >m#<Rp] R3ER3ERR׬ˆKR.URq XRq RҮ}RҮ}R7_iRa3R*+*R*+R*+Ro4ȇRo4ȇ R X RyM 0R3TtR&JRoZ R`><RʏWRՉެwR ~E|T^ R R!߁ArDR!߁ArR!߁ArR!߁ArR!E~NR"hDQ R#6,RR#\#; iR#\#; R#~k \R$DŽraR%B!jR&s}TB R&s}TB[R&s}TBZR&ŗHJDR&ŗHJ R&j%VR&j%VR R' EY@8 uR' EY@8?R' EY@8R'R*4eR(&s@R(bRR(bKR(XPsR(XP iR)][ fR)][ $R)][ R)][ R)][ R)W.R*+b]x"R+D`чG?R+D`чG R+w9 #IR+w9 R,h޹s R,h޹ R,h޹tR,z&(R,R.M,HzMR0HKHNR1<0I sR1+ -4R3x]nBR3x]nB R4qLl c R48R5bR7e1*jR7e1*R8Hǃ!iR8em=˒# R9 \R:'4R:'4 R:4ע R:?RR;-`OS%R;-`ORR<;|zZR`*R?W)R?WR@ ?R@ iR@ KRB?A,RB"1SRC# L RCJ?RCJ?RD$yngURD$yngRD D^DRD D^RD D^RD!\Ɨ@RD!\Ɨ)RD!\ƗRD!\ƗRRD!\ƗRF)RFԑ5SRG R_/|3*RR` AR`l,t]R`E"?R`nsR`.ܖR`.ܖRaRaf"9 &Raf"9 Raf"9Raц]tRbQRcA) ws #RcA) ws c,Rclo Y Rclo Rclo QRcH+) RdMC;RdMC?RdMCRd|l[Rd؞u,Rd؞u,RdܠK6 ReL ^y Rf!%: cRgI^u?Rg5u Rg5u (RhD'}b?Ri(@  $Ri(@  (RiiRj:q/FyXRj{?Rj{ Rk#>]YRkX:JRkX:J? RkX:J:RkX:JRm2bxRRnp#Ro0SRp䄫' Rp0O Rp0ORp0ORpSRrHϑRrT}$%?Rr{WnRsu?={ \IRsu?={ sRs|>$vRt}+ERt[m-:j)Rt[m-:s RuRvltaRv-?RxkW-?Ry|[VR RyPRy`n} Rz.%)^sRzÏYRzÏR{o R{o R|V? R|-.W]R}‘ R}W_*^R}}oKN R~qp5MR~:pW? R~kgaV %R~I@ NR~ Rr RRR^9b | RpA{YR\R\]R\R\R9"WW|RS3 RR ĝRyGt;RyGtC7RuR=ͶZRDmdӛ |R|R];7 R];7 ^R];7sR];7 sRs?*Rs RsjR+sRt;R:r,]R:r,tR:r, RSx=yRGwݖHRI'R^.G K"R֑έNR0%Rn?Y< , RJvRW @*R;"R;" RcsRVպRִen R/RR/R:0KRVX&*vRVX&* R3k% RZDd RZDdDRI RޓwT R' ~V[ R' ~VRUjcYRkU ?R:uB R)S$R)S? Rɫh R.*jRߜ1{RBabRHc+aZNR_jWwt vRܻ^u #Rܻ^u Rܻ^u (R>lhRNAi GRNAisRPK' iROj h4ROj h4RP:qRmg  Rmg  RNtS^*RNtS^RNtS^R46 R6Uh R6UhR R6UhR6UhR6UhRXIRg<\&PRg<\& eRg<\&sRľ R R׀ʳٝR<8̏Y RHWRxue RٞSiq&URٮVDRRٮVDYRٮVDAR/6ɬRy(H eRjR$F RS0*UR5Vy1R5VyR5VyR5VyR _Wy2R308CRz= R gCR gMR^'#B~ R^'#B~RR^'#B~R{s R{ R{ \R:jͱR?K~9R?K~R?K~ZR5%7 ,R夦I5RR6R8i5RR< DR< R:&y|R:&y| RRPElRe n cR誄61RGR+M RuN] RuN]|0R0k7?RqY7 RY RL9:iRh j,Rh  R-C aRX)R4\Ry]QNsR<8ATy?R*{Q? Rzv~ iRzv~RGJsRJ#h2\NRs0] sRGņRRGņRGņRGņQRגRגYRגR׀u#^ iRTsRkkkCRrZwRrZwR':U]Rk=H,R;+` 1 , R1vKR@  xRZ!YuS R RRR@7 RaY??REp~Rkb XRUӠzRb?lf RƁERߨ0pR[2D+Rfc|Rq\Rz̘x;R -RESDIS}GQ\4S}GQ\RS}GQ\ S}GQ\Q S}GQ\S?m[S=P;QS=P;S#xS}bRS S&sÉS(  SKT (S  nS ,V2 )qLS ,V2 )q]S d,!#S d,!#S =jS }  S QcF#S 4Mx[S Y #S 0 | S 0 iS 0 \S U|0JS \2$K$S \2$KS _uS dS Q{ S*jSt%sSه?SX:dRS֊N Se?s-S " N SНSS A dQS A d,S A dKSY[xdSi+#R#Si+#`Si+#kSc&E S5/>  S5/> S5/> KS"?Zȫu?XS"?Zȫu S}!ӟ S1S.jS1S. S1S. Sڝ /?SD i&SǡdSwxvSHe5K S߬Stl2KYS Stl2KYkScbSO$ Sss5 Sss5QS"QkS"QtSXj-KS{D? S]5HeS]5HeSY2S< ]S q kQS"4tk S"4t S"kV(vS":0S#[ sS#[ |S#E^/' S#ڐ%$PS#ڐ%$ S$F8ƀKS$-wjS%[% S% vt-S% v (S% v S% vS% vS%=6BS%Dy S%DysS%Dy iS%Dy|S't 3S'QFa S'QFaS'QFaS'l&+ a1S'l&+S(#Cy cS(53ZSS(53ZS(.6SS(7fS(7fS*Ɋ.RDS+GtaS+GtSS+ea S+ea S+tS+ٸS,"Iq?ES,x46`RS,nz6j S,nz6 S,rQS,atN S-\&F S-[C S-[CS-[CLS-[CS0v_)vS1#,?US1#,?US1jmuvS1V.S1V.?S1V.S1V.hS2+oS2&?tS2&?S3l NS3"egY S4}5t S4}5S6U@% eS7'4aS7԰9&DR S7԰9&D S7԰9&D iS8D̺S98S:6RS/HS>On[RS?9*ZRS?WS@ӋTvS@߁J SAt_?SBa3sSC0wJSCnCSCIPzvDSCjSD.E$ cSDQvҮSDUY SE.b @$SE.b @R SEzSE΅Q gSEIfSF j3٨ SG~+U+SGn SG@0gbs SG@0gb SGn7OSHV cSHV mSHVSIabE(SJz4aPSJz4aSKf`SMq>s0SMq> SMq>j SMq> SMV"T;SMV"TRSM0 \SN?SNhq SOM%?SOM% ( SOM% SO%bSO%b +SPt (SP8i3NSQc> #SQ2`4SQԯ6OSRi j#SRt[ SRt SR{DSRTtSRTtSS#q|STfzSTrvi #ST1~$i4]SUУvSV q^Z !SVLFKVSWnSXZ1 SY:-SY~d@ \SZ+3 SZ+3SZbSZ;F] S[X%aU|RS[g+b? S[&(qS[.@ $S]+ʷr?S]DxRS^w("S^ƢdS_{Jھ aS`zOS`[ Sa # Sc0W jScU#wBSc̓v Sc̓vSc̓v (Sd* P@Se0-Se^90QSe^90SgNx SgNx$Sgy iSgy Sh&ShjdtSiIj'Si9P^QSj' Sl-#"Smq$SninwSSninwLSp')nU>[ SrFXSrе (Ss/zuSup Sup SuޚiOSu3T Su[(kSuϋRY SuϋRYSv4VK<SwN3 aSx( " Sx( "Sy@Sy? } S{jSS|5DjS|5DjvS|0s S|0sS}^p} NS}zLN7 ,S~;SeS~>NϔS~>NϔS(As?S(AsjSCx\SCx\SXzbBDuSXzbBDZ!SXzbBDS SXzbBDSXzbBDS/>=NSM;{5S:zǻS@sSqQS>9 S>9 S>9 SIl׎S S7B96S`L cS`L #SLOL S-B`!]Ss]Q9Si?S(VSׂSFSfC8S+Ҩ^SdMywRS\>RSz.jSj) S6M`JjS})PSMث S*b/WS/J SX=QS OtS OS OSTdSSX |ujSaKE $gSk>KE? S^GS҉tS+&iЀSS+&iЀSNzQ?S\ S!S!S!SSZ So$FS So$FSYbSYbSW (S4$uksS4$ukXSU8 N-Ss2?S>G,y S>G,y SwtS>"[ S]ĿGSqb6 ( S6V SjUSjUSjSjSjSjS' SBEkSN Su+Su+RSS_́#S~LS۸4[SbS7&NKSglS1FsQSjYSjY SJajN SuC \ SuCSg9S* \S* S e?S,{ ? Sʘ Sɔ Sbt[ S? k S? tS&|]S+[F/SP~'SPDRS\ sSe ! Se ,SeSSKT' SSKT' SoH! SoH! Su<($ S&W (S+% S#?&NSVG`SI&TkSI&TkS\b5S#n SHife (SUsSTP a STPs STPtSko Sd&Sd&SASK?SK?SK?RSM:SN'S;[KStbov S 'S aS ?SGJ6 SX 3wS:j` S ԖR98 SN\ShHzD S؂>6DS5T jZtS+&jS>h4 S:}KS_| S_|S\} SmXN 2SŴE %tSŴE % Sŵ+*KSYSYZS'^fnK S&lo?Sq  sSwkSʋ}nQ)|jSʷUyKSI` S̑9Nb \SM aS͵T jS k S k?Sc;gMLKsSc;gML&Sc;gMLSc;gMLSmSBSə ShrMShrMSQHRcvSA*vtDSтiׁSтiׁQSsSq )bkSҝx SҸ8QSzS;U&2SSJÌSZ׭SdAZSvV')?SBġyakSdD>J&SdD>JSfJO9 Sln}oSln}oZS֙l5tS֙l5tSS O' a S[բ1W S[բ1W [SY̸S_|YSټKn^! "SUvSK $KSUvSKvSڮt{SڽS S5,$;S5,KSH8íHS۝ S۝ S۳ ݹ>S۳ ݹSSƝp1 SJyS84S8Sխ?SRSq> hSWSWsS]/ Sߐ.] S(V bS8yYxS<6/oSEв܌ Sb/߾SeLߏS sk SjBC7S\?S\ S\ SaRScAϸ mS\n S\nS+ &#jS`<S`<DSDS^e6YkS֒{|? (SIɚb SIɚbR SIɚbSIɚbKSIɚbS^j SHP"S eBDSI0 SI0 iSj8 sSRd%?SQS_*'S>S> S_0SFAS  sSdRS|rSEDDSESE SAJ$jT Tb T TbT($(T(!T56 $Tg]v^XTg]v^ Tg]v^ "T٤H9T٤HTn1TnYTnjTRTo 8 To 8To 8To 8STo 8Tg jTg{T"U2YT"U2YTkDVT1^! T1^! , T1^! T1^! T1^! T['5TTj3]T 1[;T 1[hT i]ZwQT fy T fyhT AT <=7AT iT'por% T'por% T'SKT'_T(Fɉ0ST(p T(jbG^ aT(#K]& T(yjT)[ZT)2KT)2T* a9T*T+OTT+= ;T+R*?T+R*T,,FT,,F T,,FvT,=U T/TRT/^0P?T/\$؀ T0RYT0RT1I-H!T1ةp T2E6+T2o)?T2vJ;T3W&T3 ̒B_T3mJT3mJT3 T4d!ST6y>nre#:T6y>nre$ T6W 'wT7= =T9qwstT;BY?T;"t \ T;ϏM6RT<> T<@LT<5]% T<̼T=M9T=%7 T=%7T>I T>p}ST>p}aT?}a(-+ ,-T?w T?wtT?‘T?‘T@,49 aT@,49TA|᳁TB6TC\u g0TC\u , TC\u \ TC\uTC\u sTC TD .#TDd (TD~?lTDGuR TD̄Q (TD̄QTE8hTEFZTEFBTEF TEF mTEFtTEF9TETZEп?TErq*vTFLTG-;YTGH aUTGh_ hTGh_TImvTIA TIJAjKTN\= 4TN\= TPt>TPY"TP TP gTP TPGXTQ iTS_PNlTTu1LTTu1QTTu1STTu1YTUGUhTUGUhTUT[sTV%9 aTVLTsTW *TW aTX|Cp=TX|Cp=TY&uUTY[L bT[>KH T\zPK T\zPT\zPT\zPT\zPT]Y #T].QORRT]` -T]1# T]1#T]` $T^ԛcK T^뙉GT^ET^ BrR%T^ BrT^ BrT_|pk7 +T_|pk7NT_t .T_C0²:T_C0² T` T`T`YfvfbT`gaa7 #Ta[1& TaQTa*Tb MH $Tb MH gTb%YU]Tb} sTbk2 Tbk2 TdIٞTd?TdA) \2TdA)?uTdA) TdA)hTedfFTe. cTgK&TgxL5 Tg63ݚTg(<"LTh/GsRFTh/Gs Th/GsTh8ӻ|Thpڢ aThpڢ  Ti*d \,Ti*dTi|sTi}g,Tj a9`Tj a9`TjТ3 l!TjТ3TjjSTkW<tTkW< TkW< Tk@z(Tk@z Tlêh2Tl˻ Tl˻Tl˻Tl˻Tm,  Tn[9QTn<MToW'KSToaC䥆NTow To~C24 s ToL5Y aTp7&HTp̅O+TrlrjTr߲1zU1Tr߲1zS Tr߲1zTr߲1z$Tr߲1zTt^TtgqTt _Tt jTtQ Tu_Ip#Tu_IpTu_IpTv-Tv|đ Tvހcnr jTw` (TxA%HTxW򸻰 TxW򸻰hTyM}$DBTyM}$DBTyMvGTyP_TyP_TyP_TyXl*?Tyn5jJ ,TzHRTzK9 Tz{ᦡRTzK gNTz]T{k2T|]Ω T|8GT}\T}Ys6TIh)? TT8XYT#-T$Zc# T$ZcaT$ZcT1KQ/T1KQ/T|T |Tݨp&VTݨp&Tݨp&Tl4!+Tl4! TJؒ TJؒT95-~ TgrL TT]T@C9T"8T"8 T#K&T̺T\`P TpMTޡ,6/TRT(l T(lTJw/YTMs<Tx|l; iT(l* $Th T˻VSTr_esT"0Tц8x TD^1)Tof2<ToEfA"T~./ TX #TdO T>ITj$TL1_TL1TD'c aTD'ctT{!5 $T{!5 ,T{!5 Tb8tT5u~ T-ܳTg!TgBSQT};Y1T};bT}; T5# TH#OTNDTaTW TW TW TWT'~=T9c~ST9c~Tj/KT4Ln, T4Ln,tTԳcTt csT%~ T`3Q}TqT h?T:J|,1 T:J|,1T:J|,1Tc<\~NTc<\~QTZ1iRT"vXtT"vX T}klevT:sdT:sKT:!T:TEj -TeKS ,TeKSTeKSTAJ T_(焊Tr^=jTE6T  aT tT sT]Y TbWRT"TQE+bT'!TqLTqST{#lT1 p #THfT]T]T])T]] T;ӣ ,BT;ӣ T> T:<T;ŏ%vTM;FS? TdOT?RgR T?Rg T VJ mT VJjTz#TMTx= THx THx T^UksTpTF0sTEP>Tb` LTb` aTcRTcZTcRTcT*T ǻTlS.<RT1F?XT1F?X T` i T`jT`bT` (TB <2 T1_[?T"B TR TTI\LTI\TI\Ted Tž< Tž<  T«NXtT«NXTԴZjT$T$YT$STc;O ,*Tc;O BTc;O Tc;O Tc;O Tc;OjQTc;O $OTc;O iTc;O (Tc;O TTN|FRvTN|FRTƹx΍ T& Bj=T& B!T70 3T70 3 T70 3 T70 3 T70 3 \TȽ/TZU T"R i"T"R Tɒ%K4Tɒ%KkT8/IETo 9T{Oz? (Trq-|Trq- TTQtT!#ToRz !T? TtvTtjT&xTϱ["Tb TҖ@+LTҸ(9tTY=̋DT ݄as iT'$ADT0wT{&NTmWKTPM]T]tӹ T٠F !TctiT׈\L WT׈\L W T׈\L W TVuRTVuT~E<ԋt`T~E<ԋTQmsTڎY4PwQTڜX  Tڞ ݿ Tڞ ݿUTڞ ݿT^3T * 3ST'=N]T'=N]T'=N]QT}J TWԆ \T~RT1sTPT Q\[T9W܊T!dH aTߌgT,toi6TS T`sT`s TT ?>RT/ KT/ s/T/ i T/ T/ \T8(4 T8(4tT8(4 T8(4 (Tq5 ^TT_Y TT_T tжO T=r'] $TTXJ Tj3H'^ T~?.UhtTy(TyTy T X3 TTЋTR&}bj TꮕԳ&TKXQ TEwPjTȌ:sT:jdTÒ TÒRTÒdTcLZTYTtCT:Хv Tc ?T)* j T)* j Tn3 STv?9NT\]T ,T5j3JTN5ѷT#T#-T#?T{fGTvM|BTvM|TvM|f TvM| TvM|TvM|_TX"TX" TX"TF[fR? T;uV\T*ց T85T4T4RT8UgpbUӄq i U,w|U&Fi3n?UATD?U}aX UU{3 +UU{3 ,USؖpq "USؖpq gU=6"UrzUrzUpU mU 4U \U 俳dU >؄jU ,3U1GߗU_r@UE , UEUEUPz@UY͉UY͉U8oE^UE_%j ^U""ַU1jj|MU1jjU1jj (U1jjhU7)UMFL09NU#'NU= E U= ERU= EU= EU:儞ULο UK]jTU>U@U>UK U>UP U>UUWdcbUS25Ւ?U D"[Ucf Ucf;Uz:>Uz:>Uz:>Uz:>UU~ʁLU~ʁSU/~U/~UqUr_mOO UW\ U R-8v g U R-8v ?U!5M(( QU!5M(( U!_U!XKYU!XK UU!u`U!A U"6;[d`U$f BUU$g#p U%R7sU'j?U'j aU'vƄmU" (U'vƄmU"? U'vƄmU"U'ɇqo !U'L U*AjeM U*D9SU+ a<U+ a< U+ a<BU+ a<U+@uU+@uU+@}Gf AU,&X,\U-/Xm U. tt$U. tU. t U. t:U.Ge ( U.!U(U.w/ U.&YU/[&qsU0.v , U0.v $U0X>U1 w `U1 wU1Kϡt U1Kϡ:U1sRNhU1)s U1Y!t ,U2W U2_m ZU2蘡tU2蘡tvU3u U3utU3U4IDǁU4D.)?U4_+ U5$:U6)6U6CU64[Q.MU7 k#U7 k#U7 k#QU8ōbR>U90tU:2/S U:2/U;y˹ ,U;pOU<,V>NtU<,V>RU<,V>U>_<%r mU>X,f U?v U@{>?UA?6) UA?6)UBfN s UCs0;$ !UCs0;$tUCzL8UCYUCUDL&UD̫ ?UE$dUE$dUE3e aUElc[UElc[UF %hUF %K UF8ˏ UF8ˏjUF^0UFͰpkUG K? ZUGDSKKUGDSKUGDSKUG?XtUHQc?UIr?$UI})d UI&RUIUgUIUg ?UIUg)UIUgUJe) UKC bW iUKC bWUKC bW UKsUKsZUL29a ULM.UMGiwLUMUMK UMRUMDUMUN{a] +UN3UR=VUT5 UT>[qUT>[qUT>[qDUTim #UTim cUUn(N UUn(Nj6UUn(N UUn(N UUQ3Xs UV$YUV$UV$Q UV$UY_;UY!o UZ ?=UZ UZZD)? U[9TU[9T#U\uDU]18kZR!U]18kZU]eBs6U].- (U^h0(~$U_%, U`<=U`<=Ub~4ĢUdgw/Ue'8$Ue'8$KUedq;Uf3BUf3B$UfDqnSUgTUgA?Uh{YUh/)OSUi-4?UiC; UiC; RUiߣUissaUissaUjW6MUkCfG-UkYaQlUk@qN Uk@qNUk@qNUl c Ul #Um&6 Um?CliUm]*S Um"# ,UnlD\ \Unk #Unk UoRUo^&9Uo^& | Uo^& (Uo^& sUo^& Up(sUq%vUuqx ,Uu'gUuML] UuMLLUuk u$ Uuk u$ ,Uuk u$Uuo$UwgD"jUw,B {UwS UwSUx*~2ZUy,dUzTVUzTV (Uzf Uzy|U{*)o iU|. iU|JgU|v7tU|v7 iU|TU}9wU}ݙNUͅ Ur(@JDUu.bYU>/A UUDSUUDLUUDU[ZtUcq7 ^U JX U&U&UJbB U| U$z>U$z>U%^֎ U;_i UE<"%jUib}Y U4-U4-UBW- |UαiKUv|#UC}U`'[NU`'GU6s->ULK"?U OYc[UF HU}%F U}%FU eU/`sU/`s|U.U.jUApUD**% U.-tUZU>6RhAU`2. Uk/R Ur.Uy+DUp=U^uU^uU'({ U'( g U'( ^UB+rUB+2UB+.UB+Ud|d'H~U ]!U'hŜ? U;%ȊUrᖍ&jU*Baz#U*Baz UN( XUQkUX!UdlTv#U WNUl+j Ul+j{U(~A U[߅U[߅U!9' UDfEpU4 & UJUG-<1 $URU2# ,UB*',;tU4h `)U4h tU4h kUqJ]URytURy ^URykU0LU&=Uϒ9 UgLxvU7_U!ҵ}& U6݅ qU6݅ UƂ&UƂ&UJEUGBNUo *U-'# Ug=7XjUgC7: (UkN$U6+ Ukcm d UiWU"@0[U>nw U W $U? Ў?UC:s9 UC:s9N UtxiUtxUtxU#ܨ.LU_ U3&U3UX"9ZUL}#[#UPbd]PU?p̾= U?p̾= U_ $UHeOut UY;U!&bIU!&t=U!& Uans UCqxwLUCqxwUb'=QU<;hUO5Uj?UiYU˽~q 8U˽~q?-U˽~qsU˽~q U˽~q \U#cLUiKhRUiKhU20U20DU20$UH;菏 #Ut"b|¨LUGI&U4۵UA>AUA>A iUIU) =USRU˞.[U7cN"U|3WvUGuUˆ7NU/KLN U/KLUF" UF"jU :ŏgU[UƉlVU˜ئ Uv,>Uv,>UO9U>O9U"z-RU"z-U"z-U"z-KU"z-aU$_1W?U֋^f~ (U֋^f~ iU֮U.K U֮U.SUֿ-s Uֿ-Uֿ- Uֿ-UULUU  Uj.Ug NUf_O iUf_OUݠx%U!+i 8U!+i U!+i U!+i iUMF UMFU`%sUވD7aNUߩ>*TY Uߩ>*TUߩ>*TUߩ>*TUCL}ϚaUCL}ϚUz'UKU… mU… UaʝFTUshgU|$kU+tU'&ARU'&A U'&AU'&AU'&ACUnؚ U40iU40#UcD1=LUcUhH0@\UY! U1ao}U훈O U1SU2QUqjT]UbaCU0 U"(E: U&),s3U&),?U򖓚>+U(v U(v , U(v U(v U'KSUc UcU%sY jU2>>uUW)g½ U_ $ U&K3U4mU` U N٦UNە}]U%Bo9vUe-]Om8aUe-]Om8$SUe-]Om8eUe-]Om8Ukcj 3tUkcj 3U@|@qjU@|@q?.U@|@q iU]͈ U]͈ Urٱ|#UUN$tcUfR|UgR8JUWD|G iUl Uo U exU& U E%vUˇ?HW V߶jV߶VAVA VSYVT@VuQbq V'EV:Vi6 Va{V_SV <{V 6%ڒs?V 6%ڒsV -V @LgV $ \V s<| tV ȬX_NtV ҳMV iV ;GAV|1{ V Ppq?V Ppq V Ppq VCk V2F5V2FV2FV-IV V<|FVWB VVHK"V2Vq]dVq] Vɫ_sV!ЖRV2c@Vd_@^[ Vo?Vo Vo sVoVT jVQXU, V>XU,VI$|LVR V%ĠsVD.gWsVS7jfV  rR V  rV!3[6]ݠT V!?< V"p~I8-V"jdD@V"jd&V"jd&V"jdV"jdV"jdV"jdV"jdQV"+V"+V"+RV$EkeMV$֕9vV$^EZV$^EV%H{ğ#8RKV%H{ğ#8V%H{ğ#8V%H{ğ#8&V%GV&1s6z (V&rnr V&rnr V&rnrV&sYV'kNaV'kNaV(@2 V(@2#V)M CRV)S.V)S.V)S.V*qKh3GV*qKh3K+V*qKh3 V*qKh3QV*\9^V+O:V+O:V+O:V+Nb V,d,6\@kV.:0z BsV/thV0 :MQV0 :MQtV0 uw aV1"uhV1>eL sV>>eLjV>>eLsV?!+CV?>ZV@VW2V@Fƭ) )V@U( VAԗVAԗVA$C VA5#0VBb5[ VBb5[ VBb5[ VBh VB{KVDu+ا VD%$a0VDBʖ VDBʖVE|n@5 &VE˘VFm VHv.VHv. aVH{J= nVH{J=  'VH{J=  \%VH{J=  ^VH{J=  VH{J= hVH{J=  VH{J= sVH#$ VHYe3vVIД[RVIQ5 -.VJ]Ɩ#VJ]ƖdVJӝRVJC^~$DVJC^~# VKb@( "VL嵥-'VLRyV?VM{ܴVMUG?VN( ] VN( VNM>+)y cVN_Nd*VOx\+#VOUtjVQ tlMVRcYVR FS VS<) ,VTi7JVTI VUN`o cVWF)[PVW+xza: mVW+xza: VW+xza:VW+xza: VXOa aVX]` l $V[BM V\gLR V\sC\ V\sC\V\sC\LV\yʄ9V\lH@*V\lH@f V\lH@V]rh\/V] d{J e2V^:]νV V^?1  V^?1V_(öV_00W V`HttV`&~?tVd2wS VfEVfaj Vfa ,VfmVgHǹ Vh;(?Vhʂp sViG6 2VixAFMVi3pƘVjVV cVl Vl Vl+B i VmT7 Vm;B (VnI"@VnuVnu$Vo8t&Vo4EtVp+ג Vpvڂ \Vpݗ ,VpݗsVpݗ !Vpڬ]h/Vq#SSiVq*)*Vq*Ff Vq3jX s Vr!-BVrRn \Vs\U#] Vswy VsX:VsVt2 Vt2 Vt2 ,VtuzdVu2MVu2MVu2bC!$VvA'Vv=[ ~VvxDd~ ZVwZnqKVw=LQVw?! #Vw/ Vw/]VxޱkHtVy-:< $Vzm_"Vz]MV{ѧ۹aV{ѧ۹aV| +O`|V| +O` gV|ϲX V|ϲX iV|ϲXV|ϲX aV|ϲX V|ϲX eV}Rd`XV}f/-ZV}f/-RV~W D jV+q 8\ V zAV'< VYV3fzV ckt V\rcR V^&Ƹ+ Vr!Vߋ VB+ VB+V$ V$Vˁ^V%VYufV?̏ V'Z~ iV'Z~jVu{w3lYVu{w3lDV-x}QNVpqsVpqViVf-)dt VN`mV: 3, V? \VxBt VxB: VNR V2O V\~Z VENV+3YsV/ Vp99V\r9<[ V|> aQV|> jVUצDNV@a 0V@aV@a \ VqMEV|;zV|;z V|;z V|;zsV zV:YV:YV mc V{C?Vmg i Vmg?Vl|YVIPVIPYVIPVIPSVIPV_^VzrSVUՐ V;Oz Vo;|VnNVS?VS?}VS?HVS?Z VS?R VS?VS?VS?V9V9V9V9V9Vyʴ V,oA(U VV?嵽LV?嵽a^V`N/nmV-3A VА4VА4 VА4VGz(VGz(?VX3I4CV5xٖR V&LH8V Vu/ R iV( V㎪IV?P?V[tVaV<STVr2YRV9>V>֢6LVT%V +V @?R Ve6p V14qbQVM,VM, VM,V" V"?VfV;ϧYV(\VTb c4Vd L\Vd L\VI-VI-V1k` bVbiVbiVbiV洇V ~V ,V V V $V78V΅,[V˩G,V&67 V&67 V՜P V=nVRWHb VRWHb (VRWHbtVv@U V͋KRV5]VvV: h aqV: h? V: hV: hV_ ^RVbVL*V)EKVъ9 Vъ9 V7UAx RV7UAx Q%V7UAx KVu%* %Vu%*sVu%* Vu%* iVpZQVpZVpZV~ V~  ,V£7X QV0gTv Vq #VčmuV,B?V,B?  V,B? V;GRVŧ* ,VƗo VƗoVƗo iVƗoVƗo?Vŕ &VǮb V V!(AV!(A V!(AV@V100ADvV~OgL =Va VUB/A \V̬'?<>VxVxV"":? V9V i V VV V V752 VͷzM9VBL?V 7b V'#kb(VAV_VĻ3SVd̤^\ Vs@O jV{OFLV (K Vվ#oˈSVվ#oˈVվ#oˈVվ#oˈ V}$;V֌2Ls;\V%xl (Vv2LVط"4@VsVS9bV<[ V<[V2r# V [P5K V [P5Vub} dV|| V"Du"?V-wVZehs(KVjDcjlVjDc?6VjDc V+ sV̀ FV&INV+Vk^UVwûeVV̞NV譿/z[VUjVsR׋ VsR׋j1VsR׋V1VVGUXgVTwY\V+&5V:p ,V̛KsV1h"?VN ,VN VN VOi~VOi~Voւ "Voւ Voւ VGhKVa $VjJW1ٮtW1ٮ (W,ֳp"Wj>ֳpRWwW܇ ,W z4<:W. aW^jW^?W4Gt W4GW(G8 WğWgU W , rW0k iW0k W[bSWs6RBWs6!Ws6!Ws6KWs6LWs6 Ws6S W!dW!B SW!C;F W#)W#W$>u jW$`~81W$] #W%YzyZW%YzyW%^W%]H #W%̟LH $ W%;? q W%;? qW&9W'xI W( Z!;( W( Z!;2W( Z!;;W(Hx@W(Hx@ |W(>nD W(,*r+W(,*rW*:":W+n9OW+Я[ W,["9 W.}W0׳ W0cdU $ W0cdU W0cdUW1Ȃ -W2bXW2qf=8W2qf=DW3X'yE W3X'yE a W3lKݪW3yXM W3C-W48LSHvW4^$æS|!W4FRW42 W5ofW6ŮQ@sW7^Z_?W7%?C ]W9zڭx1 W9zڭx1W9zTW9ۼW9ۼW9ۼW9ݍIBW;I[WjW=>sW=.Ր aW=a?W>Wtbq[W?!?kW?6l - W?X%X{Uc[W?#X|>KW@pkW@(KLW@(fW@( W@(WAUl 'WAUl \WAUl |WAOjWA?WA gIWA 1WA WAk#$ ,WAk#$ WB?StLWB9wmWB̕|+d?WCFy=,[WHB,|ew WHj WHjWIJFķWIJFķ WIJFķWIݟ?SWJDF_WKZ`Y WM!i?jWMP#1{WM2z WM}9SZWN WNsv@#WNsv@WNsv@RWNt7 iWOn/y WP" WP"jWQ5*ΑJ sWQꕕ91WQꕕtWT;WTw8etWT|jWT~WT~ WV _aWV jb>vWVWVH _WVH _WV1λ WV1λWV1λ]WWF7FWWF7WWF7]WWF7 WWF7WX2)sWXh?c9jWY25gWZEpikWZEpitWZEpi (WZh WZ ^WZWZsWZWZ WZ>jUasWZ6x9q?WZ’?WZ’ W[g!s W\ׅ"HW]ЇȆd%W^{qW^3u? W_@娠 W_@娠 W_@娠W_@娠W_@娠QW`I  KWbe?WbP:NQWbb1hD Wbb1hWc`I~uّU!Wc`I~uّ!Wd Wd#:8B] WdevhsWdxi We0-WO#We:tWe焹[-Wf+HyWf+HWffLWgNYWCWgs974 gWgV+lZ Wi0] G%Wi0] G%t Wi0] G%WiWh[;P? WiWh[;PjWj}с@h Wk)gDkWk]XWkv*Wkv*Wk~4Wlj Wm|WmgU Wn65SN Wn65SN Wn65SN WnθfWnθfWnθfWqVWqU WqU Ws/j+Ws/ Wsa( (Wt3' ,1Wt3'jeWt3' 8Wt3' i4Wt3' Wt3' WtWtNt WtaAjWv 8/*Wv 8/RWwKo2WwKo2  Wws<' 5WyŤ WzmbW{ XRQW{ XRW|=m=/NW}Mƭ1sW}Mƭ1 WBaZL WBaZWBaZSWrP0Wz=W>UTsWc׍5Wc׍ Wߘ|W|] &W|] ?WﹹWj?Wj W5IeW5Ie WaW4V&g}W+8usWn㉝ ZW4'f W4'f W4'f WK WW٫4W# Wy"ax+3W! sW! W! W! WsWG@W6 i-W6 i WpԐ -WWW*ɸQ% W*ɸQ%DW*ɸQ%Way\{L Wi*?Wu;WP^1W\Q՟? W\Q՟ WngH? \W;5{tW?WX\'+!WdQ, Wj\ : ,W^W^ W^jW^ HWWjW= WWjW= WZvjWJjWpnWiFEWiFWS? WThx,WO-KRWO-KWm0;Wm0S.Wm0Wm0LWWm0UHWm0]@Wm0Wm0Wm0 W\ghW\gWl~/W!2 WŴ#a WŴ#a WŴ#a W')?,NWC*#W}HRWy W_GhWHB2 b Woy W@W+YEW\8 #WEgkWƄ +|WƄ + (W[5$SW[5$LWh \W۰Ww[7 Wctg({W"v W}SsWz*Wz* aWz*WC /WC WC WixAWQjWx% bn?Wx% bn bWNI-WM fO (WE<#2 W"!+WaיWaיdWH:"Ws iLWo@CWA8W{8/' ,W{8/'W{8/' cW^(vWD{ cW uW uW u#W uW uWF \Wފi+-Wފi+ WW  g W`s@W宽[WfWIgqWIgqWW0YW;G't $W;G't W;G't ( WA}LWA}WA}W26?)W26W26WbWbKWbW`2$W`2 aW`2sWjҙWjҙdWjҙP7Wjҙ.WjҙR$WjҙWjҙKWWPr ,Wnԁ *WnԁWnԁWnԁ iWA0zvWȟ* W"?W)3, WT #LWZ1Q -!Wl{}! W_< W F% W F%sW"'0?W"'0 WH.9?WH.9 WH.9 $WY;Q WŇvض4WŇvض4WS~Ē%Wǥ?rp$Wǥ?rp *WǬe4 W x| #WaNjWaN WaN iWaN WaNWaN a WXߞ@ Wɪ\ Wɪ\tWa$  Wʉ;I tW4 ?W^n3WWdk~|W[{WϖWGڣa^ -W $'WMv *WMv jW@>*[W_rf W_rfWҰiCWԸa6WԸa6W`Wok<]WA AvWש_v W;N2 Wچ|۶/ Wچ|۶/W۩+| WVW#3KWߑܗ5WRVWRVW%c W"E?Wwu?! WՅ!kW➛7T W(ĮTW(ĮT W(ĮTW6PFvWW6PF W6PFjW6PF W6PF ,WӯWER3iWER3iWyvWy Wrv/ W-) \Wf .WN1ވ #WN1ވ WN1ވ W,aLW&ni,W/{ aWP7 WШr!Wiy' W;3Wl3#WlHhWVw WSidLj Wbt>S WP̳mjWUT T W`bW`b (WX[;Wg)Wg)WŘ!SWJ۠'!-WJ۠'!KWƹ $W皩r W皩r ,Wpu<Wpu<WQ> WQ> jWQ> Q'WQ> Y WQ> WJs$1ZWrIXW YCv W YCvYWDo #WDo WW c#WH,dsW<W/ W/ (W/ $W/W/ WpX!WpX!jWvvOWv (6WkWWG__XqjX /& X(X<6b"X<6bUXbٺT?XDwPvX bXE6B X X܍pDX[:"  .Xg/sXg/sXq; Xs7Xs XsXsXsXsX XtXVfI7XVfI7 XVfI7XZ"XZ" XX ZX RttX Rt iX (ڀ/SX [ [X /vX / X X Xq5`XpȀz$XpȀzXpȀzL XpȀzX4Q\Xk1 sX#qX#qX#qX\}7 Xl?XuDfX&VoF 3X&VoFXB+ZTYX⧠_X79*: iX79*:XOj: $XJTw XØ$ Xsb9$XN+X@t X@ X3Έ%X~hm XP([ X cX$OlXBu X(2^Fv X)]\?X)]\hX+P^X,B*8: X,B*8:$X,B*8:X,B*8:RX- aݍX-Mє]<dX."QDž X./[xzNX.*+X/KFp ,X0tt.= iX0QrX3 jެQX3A+X4?\X5}|X5hv #X5hv #X6\8QX6\8Q[X6]XDX7RX7X{X8K; ie:X8j׉5X8ָ~+X8ָ~X9Fe VvX:vKX:*f4X< cSX< cX=/e29vX=}Z X=HyX>eú "X>EnRX>EnX>En]X>SZzZ<X>SZz9X>SZz&X>SZz] X>X?> $ X?l?X?̣hVX?̣hX@ g,[XA$:ME@KXA$:ME@XA=aXA=XA=XA=R6XAzJqXAx$'9XA10 XA10 XB.;ۦXBccH#XCo XDaXEIӂ XEIӂ?XGL]7 XGL]7 iXHNIXHf6vlXHf6 XI6s0yjXIvXKb[>q (XM^XOXOwTa XOl3hXOLWn2XQ0$XQpT1MXQf@L eXR넰+XR2֌_5SXR2֌_5XR2PohXR& \XR& \XR& \XTm tLXVZXVZXVe XW\n XWpN] iXX  XX QXX7KXX7XX7XXO η_XY~ XZ-Y,m?`XZ-Y,mjX]h:SX]CX_`CX_G!DKX_G!DX`Ke'[X`Z?X`Z X`Z Xa,ߌjXay Z XaG^ 4$sXb+0 Xb↪:.Xb"^ Xb"^ }Xb"^ rXb"^ RxXb"^ Q)Xb"^ &XbăS Xcp<<7JXcAdǙ?XcuV$sXdX3[R Xdi=dXeYb(wXeYb( ,!XeYb( XeYb( XeYb( (Xg)I Xg(> *Xg(> Xh Lm Xh LmXhgB>:XhgB> &/XjG ,;5jX Sd@XaYX`X#sb"X5Rr (X~ XmDdXǿGOXǿGO5XǿGO+XǿGOKXǿGOQXǿGOXǿGORXz+v'Xcb( %Xcb( $ Xcb( mXcb( ,XԁaXHZG) X" $X242V sXI*¡X?jك X! XJ?X]AXI7z XO6dD #XЖX)gvX)g TX)g #X)g XskXxkXK #X:>NXKXXXDXXi.X" Xr aX_,X?XPUsXv6wX9;߁ X}4P Xj$ N X} X]9 XXs8~XnXmyK XõjcXvIYPX ;?X ; X*![f|XXOW5X=Xʒ[ X0u> Xx*]Xx*] Xբ/ Xբ/Xշf XL XaX&.X'Kƅ XІeXІ XІ XІQ XІ XЯ+X X7UX5&ZX5&RXR|"ZKX, 'X,| X, XԏtZ4 X4o7XdXd XG晼XC-kRX؉c5 X [?XENhX ?lX)z sX)zsX:%t X:%Xڹ|VXڹ|VXڹ|VPXοӼ X"vmF)?X NQXZqXwdXwdXwdXwdXp‚ aXX1vH b Xb X貱 Xxf?XpVwL j XzN}'DXl "XlXl Xl XlXl Xl XCƕTMX]E XwjLX吨 SXrEhK XrEhX~] XXKKX, X?Xu XCwmtXCwmkX1ZS XF0 XF0QXꑏtJ<jXd_LNXd_L Xd_LX%ȐX"YInbkX?˙ (X] XiD X\ X[?t/X[?kX0 hH Xd9 \Xd9 Xd9 X,DEc1X,DEcjX,DEc X,DEc X,DEchXa_-XŌ1XŌ1X1t #X) }X)tkXo N&X2.X2.jXid pXid pQ Xid pX0LeYXL5uXX?XtX {X/ LXg`gPXݿ XY:NKXKYw%DY2 ,Y~ Y/}bx Y0SY0SY0SY=#c Y5R?Y9{Y^I?Y}OuYtY Y" ,Yn^NYFYFY]aYmY HKY }ȠhY &|y44Y dzY %^ᓿY 2dY Ra8 Y%IYX[ (YX[|Y`HYp=bRYIU-YIU YIUSYIU Y< #YNL YLYYy'UYL YLYLdYA[Y(: a{Y(: #Y(: iY(: Y(:t YkUdYkUPYN6)Y*Uq'dY샳|[YEtYJ 8Y%VJDY:¹, Y[Yk=M(YjY YqH,T aY K\] iY ƋTY!?QSY"t , Y$>t aY$mjeY%^aw Y%t.9Y%t.1Y%t. Y%t. SY%t.tY%t. \ Y%t. Y%t. Y%lk0Y%lz 6Y%lz t+Y%lztY%lz Y%lzY%lz Y%+_? Y& $Y&w^XY'(o Y'UfUR Y(+N9KY(B(ZY(SVY(SV:Y(SVY(SVY(SVfY(Q Y(QY)"]벓Y)cC$ e^Y)cC$Y)cC$ Y)cC$s Y)cC$Y)cC$ Y)fT|Y* kWS'vY* kWS' @Y*՞6vY*GY*GY*GY*GY*G -Y*\G  Y+x9[ Y+ Y Y,"s3Y,"s3RY.L= Y.V٫ Y/eERZY1u4DdԃmY1(C Y1(CKY1;Y1{Ao|Y23>]jFY23>] (Y3`IYY4[?Y4NaDY4͑FpRpY4͑FpRY4͑FpRY4͑FpRY4͑FpRY6:6UzkY6:6UzY6hB$)Y6n3NY7$Y7$Y7$DY7M4 Y7 {b: KY7 {b: eY7 {b: iY8Ƞ !Y8_Y8m[`Y:&"GY:&"GY:-3RY;, Y;, SY;, KY<+)EUY<8RZf<YYBtZSYD}c, YE|kZCtYE(y<YE(y< sYEK*00 aYE"65.jYE"65. YEšYEŤ@cYEZ}eYYF EvKYFSYFӓKYGgV $ YGFQYH=u YYIo"~ aYIo"~YIc(3 YIȒE#kYI\\$]YJ 0YJEڛ YL"RYL FYMZ"jRYMZ" YMZ" ,YMB!/ s YMB!/YMB!/YMB!/ YMbhYNIO*0YNIO*0YO} YO42ɯYOtCR~jNYO7$ YPG4 YQfrYQR-uYRvvYS{-ϟ YS{-ϟ (YSU_YTq}P.-YTq}P. YTPNYU-@YV=v\YV=v\YV>y9YV>y|YV>yYWU10YWbEYp{UYY5 |YYHXCEYZv_ Y[7N*<Y[$wY[$Y[$ Y[$QY\#&|Y\#& Y\#& Y\hYmSY]g Y]I'Y]I'jZY^nYY^qY^q (Y_% aY_}mY_}mKY_}mY__HBYa#Aשt Ya#Aש YbyQsYbyQYb~e8Yb~e YbIZ1]Yc+=XYcXЪ #Yc/G?Yc2ڵkYc2ڵtYc2ڵRYcNYe~YeYeRYjF:N YjJ Ylm>5YlAYl0f? Yl0f?ZYl0f? Ym֡6j?Yn'? YoB YoBRYoBYoEYo1@Ypm  Yp%A;Yp~txYqRgO Yr2M.@o $ YrDߋ YrDߋ YrHEu[?YrHEu[YstN. *YtEI $ YD YaiwYaiwYr,OXbY`B]] AY`B]] Y`B]] YvX)LYvX) YvX) Yv'~ e6Yv'~vYv'~oYv'~ ,Y|.Y| Y|Yd4 Y ,Y# YkU#YH`= YH`= aYH`= ,YF'3 $Yx#IY-(l,Y4Y1[YdDiRYmV?Y24 Y %YY % (Y=%Q?YnRY<$b# $Ya*g Yſ Y/Y<0[Y< ?Y< s Y Yŵ_?Yz^YY1MTY.jH YSEY҉!Y҉!Y ã!Y>D ,Y{?Ye橡zY'/DY)>MRYE5V Y $YC sY]YPL\?& YB/J>YT?NY1/b-Y1/bj Yxۣ iYpV4?YmYxbv?Yxbv aY?7]! mYT)ݾV#YݬƮRYݬƮYumZY/x5ɊtY9 #Y=%DYl̸}Yl̸} $Y p$ Y1&ؕ YsZ- &YxG‰YrM]YU YªGc[YKYltwu?Y XkY Xk Y XkQYlG"@YlG"@YTx=9sYΜ1vvtYT]  YT]tY$(@Yk 9vYiN6YA 2.YA 2.Y5mHP-Y[mϡYDzxYψBKnYψBYψBR YψBYx i|jYXRn aYMd/ 2YbLYsN"YP5Y#k! eYo]YoY¸]iY¸]iY޾ZFYrIY KYvujY.!u6Y]YbY;(YpHYȨuYrWÊY&]}tA jYf\ Y˸s iY3tdQYjG $Yl0sYa|C Ya|CYϻ (Yϻv Yϻ (Y,BdY,Bd e Y,BdY,BdYt"äYt"äRYxjr'Yxjr#Yxjr YЇ Ypd- aYէk Yӗ %OYҶ%Y!auEYӞ맧RYӞ맧R aYԝUbYԝUSYԝU$YԝUQYXwdig tY|_Yջu YջuY斾 YTJYTJY7X28PYa&? Yr Y.TW̊ Y.TW̊YYُGv?Y͛EY͛EY7XEHvYۄ LY,*fRY!K YF YF $YF ,YfEwi Y^ 4Y^ 4Y{Y{] YHC$kYVme8Y7uPtNRY8Uz Y8UzY8UzY5 vLY`S=RY: Y:  Y:  = Y4 S? Y^ Y^ #Y D>;YrGm@Y5#O. &Y5#O.j Y5#O. Y5#O.Y5#O. YG?.R}MDY~I sYe `Y'Ini;jYGk YGkYSѣkYSѣ aY0!YIRGKY"Q ?Y+1Y+19Yj/ "%Yj/ " Yj/ "tYfxdK YˇAK3YˇAKYYRYsLPFH iYsLPFH ,Yja:Y ZSYkx -YB$]Y!YsYgKYPXY: Y:Y:Y wY wdLY w_Y wYXb YXb YXb $Y `YYY-/Y.Y-/Y.Y|GH Y[cYp45 " Y MUY4o!Y</SY ?YNYѤ6RZ0r۪Z0r۪Z0r۪ sZJ y Zml?ZIXFZ,T ZֲK:ZSVtHZSV ZSV \ZFS. iZY 4Mf ZY 4M +Zsτ{N ZqQ Z ,:Z ,(Z , Z IKvZ L-q (Z ˱ahZ%\?\N Z\ dJ Zg6NZg6Z"Zp{ Zk($ Zk($|Z%H ?Z%H iZ&2IZZN ZO.QY Z,iZ,i Z Q@ZEۥ(ZEۥZEۥLZEۥd ZEۥS ZEۥZ ZEۥZH܉$ ZPtZ-`l QZnV ZnV eZ+ZZ3c Z\/ cZ\/ ,Z‹y+KZ‹y+]Z yKZ yKSZ yKRZ~ [u?Z: iZG8"ZG8ZG8ZyDjZyDbZ2PN@?Z7rR ZNIiZNIiZ-8Zݑ_?Zݑ_Zo>'CZJSZ|FZ /quZ"Q`]otZ"g H sZ":Z#IZ#IZ$*GMZ Z$(}ZZ$(} ,Z%`mrZ%`mrQZ%,%tsZ%O# Z&=Z' a Z'ɢw Z'ɢwQZ'XqjZ'Xq ,Z'xbaz$Z'xbazSZ(UZ(R Z(C Z)D $Z* 0T]\Z* 0TZ* 0TZ**C&UZ**C Z+ioRZ+JIZ+˖耜Z+/ *Z.sSsZ/j#nZ01nKZ01n Z01nZ01nZ1-^mMZ1QBiZ1pha Z1phZ1MXZ1MXZ2FS Z8w6f:Z8* iZ8}Z8}Z9nZ:mUK> Z:o,L Z:[ Z:[ nZ:3 Z<^ Z=/Y Z=%VZ=~~7Z>xZ>xZ> Z>VG3Z@UuZ@b#Z@b#YZA9>ri ZBnaRU5ZCh0"5ZC䳇ZD2b[ZDC,{KZG,0' ZG,0'ZG,0' $ZG,0' ZG,0' ZG,0' ,ZIx᪕ZIR. %ZIR. R ZIR. ZI\jZIhYS ZJϝZJϝZJ/ʺ|ZJѫ#`̶ cZJZKp:DNZL ;, ZL#_N?ZL#_N (ZL}o? ZL}o iZL)ZMa.ZMa.ZO'I,ZPR% =LZPR% =LZP+sZP:F{תsZP8%ItZQ:(ZQYP}TZQYP}T-ZQYP}TjZQYP}TZQ+*Y iZQ{ZSJ ZSZ{>wZSp+ͅLZTvsqZUnx? ZV/ m ZValZW0; !ZW0; !ZW `ZZ\RZZH ZZ" ?Z]qf# Z]{Z]qZ^C ڠZ_UZ_!;GS8Z_e) Z`<fYZaC%YZbbA,%ZbbA,%ZcH&! ,ZdeujZd&PsZeR ^ $ZeR ^Zf[yZ.Zf[yZ.QZf[yZ.Zf~9쿌ZgZ " Zh"? a6Zi7Ӆ)LZk\"qZk.c ,Zkg ZlMUaZlMUa$ZlR Œ!Zl[w0Zm n)H NZm\k ,4ZnU&$ZnU&$5ZnU&$KZnU&$ZnU&$KZnU&$ZnU&$Zo (Zo.ZonȑP*Zo䲳:RNZo䲳:Zo䲳:ZoԬ8 eZp0 cZpQZpQZq+FZq\g8`ZrM6 Zr5JMZsF? Zs9wvZtސ2. ,1Zu_t Zw.GZxHgjZy 9&SZyZZyZf>J) Zy`-. Zz+ǥ Zz+ǥ Z{,kZ|?) Z|?) $Z}H (Z}U*jZ}U*jZ} i Z~(IT= ^Z~ * ZB%OUy$Zz ZE?{Zts'ZtjZttZVD Z_03 Zrl|#?ZgRZu=M\Zu=M\Z2$ ,Z'jX5;ZT_P?Zy; Z@XhRR?Z#k[2~t ZiUR tZF[Av Z̙< Z̙<LZ/Ӟ昕tZZ+'j|Z2CZ4[ԁ0Z$bnwv aZGE ZGE ,PZGE9$ZGE $ZGEZGE iZգq^& ,Z;tMZLޙZsԒXZsԒX]ZsԒXZֱZֱZZt:vZ]e ZɧjxZu$xOn]Z̀#ZAn݅WZAn݅WKZif(ZifZifZt Zey)X Z4RmZjZtZ7,C4Z7,C i Z7,C \ZA:q =ZA:q (ZA:qZJw`8ZcZZRxZqP #ZtV?Z2 Z\#<L Z\#<Z\#<QZ{t|v'ZD_jHZD_ 9ZD_ Zb+ Z_]2Z_ZwFrsZ"~%Z1tBZ1 ( Z<~lZuRܗQZY ^Zv*Z] Z4< [ZV . ZV .DZ3X N Z8 $Ze iZK_ ZK_ZK_sZK_ Z1 Z1 ZuS1P%Z)| ZfoZfoZ``nXZw`3?Zy* sZy* Zƶf ZƶfZ8'oL3[Z.dtZg^si Zg^siZ?Z_WZߦDC{ ZLҿ=Z(\Z*sRZ*sN>Z1x? Z=#ȗZr~yz#?ZgZcZRZ]ZZQ ZKZCNRZ\agUfZ 6 ZR)Zn&-!C #Zs" (Z^$$ Z [Z [ $3Z [(Z [sZW"Zu >W" ZMQZ'Z?Z~< Zks Zk (Z>i3kbZ :ZjZjYZIZIeZOZJ_ժe ,Zo ZoZoZMZMrZMrLZ8pBZlZæ;Z54' cZĿ{_Z>XɰZeZ$0 #ZƉPѶl Z=?Z;]C ZȔ "p4Z:abZu½,s Zu½,s Zu½,s? Zɤ+ Z2FZ}Z,H9Z$P+tZuKRA^Z)̠t Z0'bZ3]ȟ ZW34 \Zq ZqZڙN Zo"M ZZ۴ aZO vZ` iZԐ*}eSZЕE- ZQMYZ ҅kZx3Z pKZr|3HU.Zr|3HUZr|3HUZr|3HUZּ]MWZּ]MW Zּ]MWZגE\Z]Y0Zg%<>Z+G!6~KZQkZڤi3lP ZRH Z'SB Z7XT0> ZTEZ6!扜kZ6!扜 ZMhZ/ D.Zv6Z"G<Z)ZGYZ)ZGYZm ЧZ={ZbZYSZYSZ](vJv ZJJ9GZ?J? Zƪx>p Z+P#ZR#a ZR#a Z_h»RZ_h»SZ_h»Z)rZ [Zz Z3tSZ] iZ{ހ% ZǠ Z1+n>Zs|`&Zq/s ZطR jZjVZiuw:Z7RsZ.YmZ.Ym:Z- ,!Ztg=zd !Zi|LZ4D ZHb]Z NOZvO [#q` [X k5h[X k5hI[Xu $[w.[2[2P [(E[ԶrO [2MPv[q [pO9[I[Ԡ?[ߔzXM!9[hR [ ;!1 d[ Lt|[ HP [ sPmY [ 9o [ (X& Z[ (X& .[ (X& [ (X& [ f+`R [ [ [ wh99[ y [ X"[ Ee c[ Ee c[ Ee ([ Dv2;E ,[ Dv2;E [ Dv2;E [)e [6y+EK[Mdvf[Mdv[IR[8ZD[0H[0H [h a[z@0n[-FD[-FD?E[-FDj[#VR[ot [o ( [i \[jp[jp [dL[ bw w[!gT[!gT["G2 ["nӼ[#,C [#)< [#)<[%p-J|?<[%kր['7w̃['7w̃['VmX['  [(,;\ [({y1 +[(u8[(u 4[)̏-v[*kls[,y&G[,y&6[,y&%[,y& t[,y& [-'VR [.ۤ ([.b@s[/kyA[/kyAY[0|=I~+[1*r [1*r [1RA3jR[2{|[2{ "[2[v[3eZ[61[61 [61 [6hVZ[6j [6j |[7cb8[7;;fC j [7;;fC [7+j?[89۲R[89۲[9Q7*, [9`~Ik [9`~Ikj[9f:/ J[9ф$ [;=ײh[;=ײs[;F^S[<5% [=E~tv = [>ꣂb?S[>ꣂb?[>ꣂb?C[>ꣂb?$[>[>0XH[>do1 ,K[>do1 A[>do1=[>do1 [>do1 [?+n [?Ib{ٔ c[@3x/ 2[@3x/ [@3x/[@=և [@x? [Aε: [Aε $[Aε ,[Br>`ؿ [BΤK[Bᝋ.[DQ> [DHv[DQ!#K[Dݸg [Dݸgj[FR* [FR* [FU~E9S[Fe&X[FpW [FpW[F7?Is[Gjܐ?[GY+s[GY+|6[GŪ r [I| [I| R[Is[n HK@?:[nV?[p|Ah[pO_:O_ [pO_ [q;oT{7 \[rF?R&[r@!H [r@!H ([sKgrYF$ ([s$[s$ i[s([t_{ i [v &+k=[v &+[v &+t[v &+ i [v &+ \[v0 ]j[v0 ] z[v0 ] ([v0 ] , [v0 ][x64j $[xk-q[zƴF[zzY[{p9[|{) #[|,7?[|,7j[|@D[|@Y [|@[}oZ[}TxY/[}Tx[~`N?s([~`N? [~폵! ( [Eu$ [K#[SV[1.h[¬óR[Ym y[jh>u [jh>u[Y'Gt[ 2rt[`%K[[9\?[[9\j[9\ \[:%7?[G"p?[lKNZ[lKNL [lKN [lKNS [lKN[\#t[ J[b_VC[aX[aX[aX [IttQ[/ʋ e[_a[~[Eq|[Eq -[<,zR [k.* [ep: [U|/ [}80k[}80k[}80k[ݱds?[ 0)Y#[ 0)Y$ [ɟކ?[ r  [ r s[ r h [ r  [Jڤ [0Ip?[H:(@2[H:(@j/[H:(@[H:(@[H:(@[$t"L[-I( [m:5R [m:5R[#hv[:Ij[&GU[ [,"* [,"*d [ٴp [3 >k[3 > a[=lx[=lx?[b%WJ[M?)[,8*["t[Lt [Lt[Msj[` [` [y)>[:̼п [8􂮈[MoPZ;P[y"D k[y"D [V! ,[E< [[+}j[pl? a%[pl? [?e * [(:[0cbaj[1Fufda[tDj[ϴ [N.[`' [,b׮ [,b׮L[v;S[| k['=N [EY Z["%[{{nw?[o&C[=o([gR=[[~[Ac9OW[Ac9OWbB[Ac9OWY [Ac9OWt[z'MMv[āSs[ t[ [c5`[6[,s [[$9j[&׶ [K?[Vpժ i[Vpժ ([Vpժ[R3[XUG[XUGd [gR[QZ}@[%Ww] [25-i [25-i[{[ i[s [|[0[;d9 [;d|[;d $[[`F7j'[`F7{[ֺoj[;t[D"[IݻjF a[IݻjF [d˯' e [d˯'[d˯'[d˯'[")Y a [T\\7 a1[T\\7 e [T\\7[Í [Í [Í?[Í[IJR׮ S[-˟@[ŵ)[~Qx[ #m i[G [$[*S&[$[* [$[* ,[J $[J [SBS[ǎ“[[Ǣ:B([Ǣ:B[ꕿ$<;QG[ꕿ$<;:[ꕿ$<;[ePr& [ePr& ([ePr& [ePr& [D% [oQ[pE`K[[ƣc ,[kQ [f$[z;[Еc9{[Лr.L[4I S[R],?8P , [х} 7[х} [ѨW [ [VO[VO?[VOs [VO \[:{[:{s [:{ a[kYR[2Y[2Y[_Xw-W[_Xw- [_Xw-g[p/ [ >^vM[r?I[rs0[r ([_fC[z 2[5[[9 \[ٷy[ٷy[Y}#o [L [E][hBK[8!݉ [8!݉ [܆ވ +[_+4u8*[_+4u8[_+4u8[`4) ! i[`4) ![>Þ[>ÞR [A] R["]N[BB[( [:r [:rS[AWQ[=+#K[=+#S [=+#[L.d[[_ *C|+[_ *C[_ *C [_ *C [_ *Cj[_ *C [F̓ [0$Lke[0$Lke ^[=  [8 ,[8 $[ yQ~[琟N][Fnm[FnmR[I \[I c[]1Q $[]1Qs[c"!,?[Ňս[M?[݁}$[ [E7[S9 i[R0ns[Z61m[p#g z[ڞ [ڞ0[&kS[FrLr[ h $[զ [2z , [2z ([2z [\'v[\, #[5Ztlk[5Ztl[5Ztl[#J݅ [#J݅v[aqGKS[aqGtN[aqG $[aqG #[aqG[oovj[oovt[є[n7A[ [i [i [i[iS[i[g# v [ܚ[iPS[{'~x [{'~x [3\R[Sݭ a[;}5[`[$ c[ȂwD[m[ɽu[q  [q [grb [grt [gr[gr:[gr[r [r[rj[r d[r (3[r ,[rs[r i[r $[r [js[ta [ta[y^ [{aΟ [JX $ [^R[2Y)_&[3Zs[QL[S;\˅sqZ \˅sqZ \˅sqZ \Z㵎\A{\ \Dvܼ i \Dvܼ (\IB0 t\C#Xmt\C#Xm\vqxoR\}"y\ں  \e]<) \Il?\UΏK?\%]\ȃV̌\c\c \ !\ j\ Cv\\ ='mEY?\ Xv?\ Lb\ jb;\ jbj\ s \ pF\ c40 \ c40 ,>\ c40 $\ l[;j\>b\Wc9Z\Ql/\ILK\IL\IL\ILY\=5G7\}nb |\V+UP\Ӱ(%\^K \U`\xѬ \xѬ\xѬ\xѬ\9F &K/\I&\פS\/R \Q~a $\imC \{ \A1?\$VD\ε g\,h N b\n\$VNn\$VNn \$VNnK\ x,\ x, \94Z\t\$?\XV\XV\E\^\^ \^ \^ \r8K\r8K\r8KQ \r8K\r8K\7Fj\~~\~~\}TE\0g +\#2? \ NJW\!Mg\!Mg5\"8> \#%d\#n4?\$ۻv (\$ۻv \%T7,7 \%]OKD\&9\'#y5v \'{ɗ e\'oF\(Xc ?\(zx,y\(zx,j\(zx,\(! \)L;@Q՜\)L;@Q՜h\)6n?\)Xg \)XgY\*> \*vt}h\*Q{)| \*Q{)|t\,Uh\-Jr ,\-Jr\-Jr \-Jrj\-v+ i\."\Q\0S})0 $\0S})0\0 ~(\1&"S\2ϏkK\2$pX $\2$pX\3bu \3bu\3bu (\3LBN?\4y\4D \5W\ \5Ό \7P}0v\7uHtS\7 ۚj\7E\7E\7Et\8aދ\8 B)j0\8 B) \8 B)k \9al J\9al $\9al "\9pM#z\:)g͆ l\:-&j \:-&j?\:-< ^ \:T #^b\;Oa*R\<>B\<>B \<@ W\ a\< N8z i\`?\^H* >` \^H* >`R\^_[ e }\^_[ e ,%\^_[ e\^_[ e $ \^_[ e\^_[ e\^_[ e \_`+{?\_%4 m\_%4 \_׿Nt\_׿N \_<\aM82~ (\aM82~\bƒ \bƒ #\eJ,X!\fC!&,3 \fC!&,3 $\fgj'T \fgj'T\f8 \f[?\fע ( \gWL\h@;\h@;v\i_3^U \i_3^\jO>S\jO>L\jO>\j!A\k8ߦj\kǎ \kǎ\l^t\m <G\m <G\m{5k (\m\\ns'\nqB+\py $\qBQE\qHAE9\qQn \qQn\rgs\rY\rt J \s yL\s8³g ;\s8³g \s \tfoh\tfo3\tfo/\u$Q=\u,\vzIݑ \\vzIݑ?\v(RCH \vt?|Y\v8ĄMk\z3v|\z3v|\zSp@\{<\Z\|H2\|H2 \|H2 s\}.@'V\~Qz'[\Wl\0pk\s\1 \1?\s6~.\@4 \@4t\@4j\ڕk*t .\1SXH~[D\NPN< a \+6Y?\$xGN \`Nup\`Nup\9#Vk \:]A?\'05!j\'05d \'05\{ɑ \%Y>\rO}[ \ڰy'\Tzֿ\ a\8i \=?0u \@+D\^ѿG^\^ѿG^ \x\+ |ѯ$\QXL\O\ \)'[H?\Huc\HUt\=A|\K֕{k\b}[\9ZuK\M׻j\zCus\zCu\hh \^R\!\5I3 \Y`Э& i\tJIS\lYch\v{Q\v{\$(4 \мf\P \ b{4! \k|bk\\™ %(\M0v\(VZ( $\o \׹*Lq\׹*\׹*\׹*-\׹*Z\׹* \׹*\6 \6B\D:T \D:T \1j\igs\VWv\컯k\컯s\컯\Ish\a|E \kL\pZ5<?\Xv \XvQ\t|M \t|M $\t|Mj\t|M ,\t|Ms\S9C\S9\ͷrP \ͷrP (\/^Y\sK9Et\b{ s\b{ \( \1ʳ\1ʳ\sO \Rv\Wn \ղu \ղu #\P<\Toh\|ZB<\.r \:Y\þ,$\þ,\þ,e\& DlN\s} .\U2 \0 \b \Ք\Քt\HSk\sC{h\ =f?\ e \9D^D\7mN\IZR\IZR\7Y֞\HVe\ý \C}8\N\ǵ$p\ B!v\ɢ}M<+R\՚X\|lvf\|lj\ˇD9\\ˇD9\\nĄq\OPK\OPK\d_P;PE\El1b8|\MFh^|N\סt\%.ПYH\b:j\#bSF\?.j\T[ s\%M $ \%M ^\= +\ҹ´Ev\dB \d%G/ # \bW)\bW) \<X $\<X\ V $\ V \zf\流Q c\流Qt\PN7 L\2Q,1:\ß:d a\ß:ds\;$ 1t\nXZ\s9I\ܽuϲ\Z6dZB\Z6dS#\Z6da\Z6d\!ZC \޿D \ \3\$ \$ \(,PZ\Bo fj>\Bo fj\߫;B6 (\QXh|%\ӮRc\Ӯ\Ӯ\ӮD\ӮQ\"26 \[~$ \gAK?\'c:?\o \▼[ \mZ\5 Q\Z[S\Zv1. \: \"\:?\3tT- \3tT-_\?HŇP\s\kqgh\濲]Zp\1 $\]c)j \yX"boG\>r $\>r \gD_]\v d\v d|\7QK_\7QK\&ż\@^ "\uUTjnb\#O߂\#O߂ \|0Y\׭Q \׭Q \W8ZZ\lR\rQC\oD\_S=\_S=S\f}[rH \v( \;E %\;E \;E \ ntP\p;*YK\p;*YS\9BwM+\z  t\z  \z  \z  \z t\:l\"ov\%>&_\cyגN\cyג\r\rd\݆19\)$\- .\t;hNN\ş9\" $]td]ɡD+T]V-]x $J2h] W@ 6] ?] G|] G ] o (] CI^\@ ] d:M} (] d:M}|] d:M}] d:M}] 5s] 5 ^] ,[D] s / ]  S] _xl ] _ZS] _ZS] A|-] -M] }=vq c ] HU ])KYbK]@Z޸ %]@Z޸?]XՕ]YBek]YBe g]# ]fo@H]fo@ ]fo@ ]U Q ]U Q \]eL%?]}Yt ]oyuR ]jXqW]!ZG]zV1R]'j9]'j9]8J ]8J ]m ,]P%]Vs]B-o ]1] ]<*.]\?kkEK]O]tϫ I]=]=o]=]= ]  C8]!]!L]!Y]!3]!]]!Z]!]">f/5]"/ثö g]#]#R]$'_" ]%M ]%|C l]'P5[ ]'L/X ]')u ]'ǡ]'F;Pw$ ](HP_ڲ](wH  ]( l{](N](A #](A ]) , ])~| jM]*8ܝ!]+3"]+3" ]+3" ]+3"],kp~ j]-w]. DvI -]."[0ΊS].<䥂 \]0) g]0cH ]0swJj]12k>]12k>]2]/t]2dm;]2f/ ]3r>]4tW?]4"\q ,]4"\q]4"\q:]4"\q g ]4"\q ]4"\q |]44"]4V$o?]5`O]5l*C ]5l*C i]6sX]7R"܁Y]9JR@ ]9}]9}K#]9B ]:V넌v ]:V넌v]:V넌v]:-<U ];hHt];^ , ];^]#]?-[WS]?-[WS]A>ُ0G]A?S 3]A?S3]A?S $3]A?S ]A?S ]BLء~S]Bth\R']Bwj]Bw]CŊg ]CŊg ]GPFC]H"wF&]H7-R ]H7-R ]H7-R ]H&aP]H&aP]HN]HzB]I-XA]I=e ]J}bPȀ?]J{3WX \]K?)b]K?)b ]Kԭj]L}z L]L}z ]L}z $]L}z ]L m ^]L濳?]M0#O]NDG-]NDG ]N<@6]N<@6;]N<@6R]N<@6]N<@6j]Otm#]ODΝ ]Pffk ]Pffk a]Q-Գ ]Q-ԳK]Q-Գf]R s|Bs]RYaj]RE&G?]S_^Sb]SE_ ,]qE&2j]q UD]r% c ]scG\]soGl ]sRS: ]sRS:]s r ]s rk]sOR ]tܬ;]v.W ]v]wD.> l ]wy[d6]wo#&-b]wW]w_\v ]wos]xOMG]x ` #]xErt]yNts]yNt ]{{;v]{1l]{U$]{U]{U#]|!m]|*fK]~4'r ]RϞC ]!Rؤ aK]Ƞ]ȠQ]Ƞ]ЛnR]ybO]Qk,]Qk,K]0 ]] ]z& ]"K ]"R]y ]\;a?] |Dy ]ja]j]j]E>8d]{vN~#:6]{vN~#:]{vN~#: ]{vN~#:]{vN~#:R]* a]ap?] rQM ] rQM ]b ]Y?]AEd2]hlS1N ]$pSq]$pL]s(4 ^ ]aTPu]x})j];lJLj$]\s]\ (]dJ]gob6]?H$]# "oS][](e ]m;C8`} ]m;C8`}Y] g]e1]N']%?]D_qN ] ]%Xن?]OIY]X3]`(\ ]"p̀ ]"p̀]% m ]x\1 ];#]vUӳZ]$&S]:e<]Q ,]Cj ]]Ch]Cs&]C ]C G]C g!]C ]C ]C]5v]c (]8k]]8k]s]4J(^R]4J(^N]~@]n6_2A ,]\ ]1^RdN]zà]Mr]zG2Q],n|Ѳ]<\ m]#,]1F2] T?]145S&]'rG]'rG]X=Q]X=Q ]X=Q]7 Tp=v]7 Tp= ]>1+ ]>1+ a']>1+b]V^f; ]V^f; N]/T ]Xiq) ]e ]@y> ]0Fc+`a]1 L ]Op~]qw)~O c]h]W#W]U]UL]&bS@]&b]&bK ]&bQ]c]DlGje]DlG]DlGt]7S]7]9XV ]K"+|- ]K"+|-]K"+|- (] _$ao ]O]O]Th 3]Th ]ZAt]ZX1 ,]k?]Y!m?].l#C]$U0 q]$U0 =]$U0 ,']$U0 ]$U0]$U0]F:+N?] u?]9:q]Ƒp0v]>n]>n a]bcPOR] N]6D]6D]'5]cVs ]>{ T]>{ ]ߎb`S]ߎb`]B3]L*> $]L*>?]L*>s] ?],t],0],0],0],0]slc ]40GR]ȠD1[ ]ȵgD] k2 ]c T& "]ke C i]ke C ( ]ke C ,]%GB5 c] C ] C] ] C] C]Ԇ8# ]`0jZ?]5יִ>?]G˺Y]A~~|<R]B!gw]U3 ,]U3 ](` ];< )]{_y#]{_y ]{_y][>]m pP]m pP[]}͈]M_A "]L`iCm (]*V ]0>l]fH7"]9]䒵@o ]䒵@o s]אcR]J8g?]J8g ] 1N6R]>嬊 ]&GXN]>=?]Z]Qc] ]٪+qfC$4]٪+qfCS]΢=N]ڳ&/qA]2 ]o1i[]#U]#U ]4_]7/x˸]p;wv8]޺" ?v] L!t]Z=L]]er>uK]s]+eaŒ0]᧦%R] C|]=9N]T+ 0v]V6ƚ@f]㌕d*L],R],R]e0j\]e0jB]e0j ]e0j]]e0j]t ]tN][GI3G ]u<ƋP]h J]V< eB]V< eB]!"N]nݾ ]nݾR]}}CshD$]}}Csh]}}Csh ]}}CshK]oj]n$ c ]n$ c]iV]]iV])1]n8w]6]@%C \]>q u]>q -]wM;>N]hv+]hv+ ]hv+] "윸]BQ ^:|@ ^E-Y^1^du ^f҇<@ ^f҇<@ ^؇i -^K? c^ ^ "mNt^ "mN ^ ,9̕q^ 76R^ IR5B^ IR5^ IR5B^ IR5Q^ IR5^ IR5Y^ \PI ^ ry^pή^ ^ˉW^ [] ^ [] ^*v^څ'Ԥ ,^6<^atv^at^X51N^X51^=I^A$=K ^e< ^Wb^XgY , ^Gl^Gl^|DIl^pq7a =^Hk^^q*&R5^ L:+^DH^DH^DH^DH^}峂F ^&t:S^ ӵ \ ^ ӵ ^L2 ^" ^/:v^ W0bO^%u^*pd*^*pd*d^R^R^CQv^ p ^ ' ^!5cj ^")ҍ 2^")ҍ s^#} ^#} ^#ߐ! "^# LQa^#j@S^# ^#/?^#Li^#9^#a/^#"^#S^#Q^#^$z%"O^$qv^%$q^'vuqF$^'#2v ^(&hXyxP^(鍓iy'k^(.C ^*;"& $^+CH|K^+?]L^,"^--39^-\^.O^1 $^2ǕZn r^2X_[^2X[ ^3ư&2 ^3#>fv ^4p^54Ym^52St^7` N?v^80L) ,^8l%}j^8 C +^9+sK^:'ng ^:ܶCQ ^:+z?^<}0W^<'9^> %^>FFxW? ^>]'^>3X' ^?7!x^?/_^?'^?'L^?^\ ^?4KfB^?4KfB^@zI= ^@zI=^@'>D&j^@Q#V ^@m@e^@_LT=,K%^@_LT=,t^@_LT=,k^@i'?^A~^Bj? ^Bk|Dq^GFS_d^G8^GzO; a^GzO;s^I Ş^KʻM #^KʻM c^KÎ0V=^KÎ0V^KÎ0V^KÎ0V^K輜39^K}ٺV^K}ٺV^K}ٺV^N\$c e^O޹kt^Pw3+_9^Pw3+_^P˓=nRM^P˓=n!^P˓=n^Q8PG5X^Qן c^Q$, ^SMvԏ^TCI )^TrBm \^Tf@gf^Tϵ( ^Tw^Tw ^U0>J \ ^U78i@?^Um}^Um*^V"ωrS^Wywj^XU&?2 i^YҮs^Y]aS!^Y]aR^Y]a^ZM^^[_Z5#^\6a) ^\Q/a -^^4BuG^^lxjS^^lxjd^_Ɖ!^_Ɖ^`hs^`[=s^`[=sR^`[=sK^`[=s^`iy^`iy ^b[d^b" M^c[~ ^eDY'?^e.bN^f[miQY^g)L8 $^i>TfS ^i>Tf^i>Tf^i>TfL^i>Tf^i>Tf^i(1^i(1 ^jsP? ^jsP ^jU ^kGp (^lM c^mBr(L^mҢ|(^n{-V ^n!^oLtY| c ^oWE: ^oXaJ^r@"#a^r@"#a^sʊt?0^tWY^taϡR^vW K ^vetB^wozE^wozER^wozE^wozE{^wozEQ^w*q*^xVULH^xE!^yְh^z(Տ} ^zaKE #^z{/ ^z{/ (^{񐞠 ^}wM| "^}RTR^}RT^}RT ^nߟ!c^d .]^n{^.!'^.!'^|^h^1< ^1<^1< ,^ft^ft^ft^[3V/e ^[3V/e^"e]^y(NL ^T/C^)D^)D^)D^|[ ^wN=MA^B ^B ^h<\^h<^R ^{>tga ^{>tga^{>tgaN^_\Y*n ^yl~-[ ^cN^2rD^12 ^3.^3.e^3.$^4T ^ea^ ^`:wOR^K3Z ^}mU-^^Mt^_]o^/Cuu?^4{z^4{z^r:X[^4!v^@|M ^ގ`^7Wrָ ^&^@>4v^@>4"^FU^q aQ^qj^q|^0QK (^0QK ^jr K^F^K^^F^tO^F^ 9^F^ ^F^^WN^eB^v! ^D@?^ʁx9^r~[(^H\NXw^/[6J$ +^/[6J$^W^,k^^ ^"O's^"O' ^GIF^GIF^GIF ^GIF^GIF^ѽ<|˗L^O] G ^ S(^Ǝ 3^pKv^VLg^ML& $^ML& ^ML& ^5_S^DJB ^զ z^զY ^զ ^[ dh^[ d a^[ d ,^[ d (^ j^ ^Ƅ* (^Ƅ* ^Ƅ* $^aK>s^aK>t^aK> Q^aK>j^A&Ss^ u6?X^a7^)Gg S^>K^pIZ^pIZ^[8^ w`=^RX^ê^!kСLM^!kС^. *^L8Y^os^z?˸ ^^J<~ ^J<~ m^ J^<j^<? ^< a ^Gv^ i^0iYkM^0iYkM^Hk.^À l^k6{^'D^:s%?^s1ns^pGSR ^pGS0^%^6f!*^ Z' ^Ôgk^oNd^)р^æ9F =^B< ^ċx| ^ċx ^y )' <^y )'i^ƆAB ^ɶ?^ɶ?^ɶ?R^ɷ^ɷ^ߖj^ʩ7s6^qH0;^eM^e0^e ^e^'`L^H i^̒и ^-U1U ^F%+^F%+ ^F%+^Q#υ .^x^M,^iLP [^Δ~$^ξ7Gv^f$ ^f$Z^f$^]&^Nw{ I^Nw{:3^Nw{^Nw{ ^Nw{^Nw{ ^ۼM1^ѵKF^US&* S^Ӕ {^Ӕ ^Ӕ  ^ӺtR^'뽻6^ضZ 9Z^YCvz^ig 0^٢4 ^٭9,8^ޓT9hY^ޓT9h ^ޓT9h ^J ^ԟ7>C^#?^}+^}+^}+$^{Gjs^tE^tER ^}' Ԭ #^Oh'^ ^t^ ^ w^sYIt^&”4s^&”4 ^&”4 ^:^h] K^(|G Y^钦7I ^*$Y^(w^n.+s%^^c?^^cj^^c $^^cs^^c (^^c s^v_ ^;{8^Xu$F ^X9TN^3B%^3B% ,^Tw ^t{?^:t^:tj^𺱌^uCp ^uCp^!X^3u?qR ^3u?q^v{^;( ^;(^}/;5^}/;5W^Hnn ^ DgZ^ GOpc)^ GOpc^ GOpcU^ GOpc^ GOpc^ GOpc]^0V^"]^L? c^L?9^c11^5᰸ h^{j4qY^{j4qY_^{j4qY^v j^v ^-L[^>l^,5R^?G$ ^As^rG< i ^~~ j ^~~ ?^s ^LZ/^ثϷU^ثϷ^t4RX^t4RXR^;̀N_>Z$HFj_b^Ԥa#_b^Ԥa%_b^ԤaY_\_\R_Ed*_?rSK_OR_*Q _QP"c _NY] _U ._1u_s^h{_Lt_ c_Lt_ # _Jb _:-5yN_؉g+ _؉g+ _m - _L}㰛_ ðh _ Dtc $_ %~_ %~ _ _gg$ _ x_ ci~i:_ 3a_ H'e_ |5P6_ |5P_ |5P 3_ |5P_ u_ jq,_ jq,Y_ jq,_ ?NV_ ?NV_ ?NV2_ Ѩ_}z) ._=KltS _O`_9+ _9+ R_KYfĔl_KYfĔ_KYfĔ_g_W*s`%_-U & _-U & _-U & a_"u _|h'm_|h'mP_|h'm8_|h'm_ 5?_)j _p_RT e']_aڂB _ B>RK_a _|_|(3w |_[@S_[@S_[&[_A2} ~__9EA?_y`6(S_y`6(a_* _%(@A_ _%(@A_L_k)^$ i_k)^$_|c_#O%8+_#O%8_$vI I_$vI_%+_%[|_%tݼK_&qyYS_&g'_&g' \_'56_'56_'aQ(j_' Τ\_'ʲ_'ʲ[_(& LK_)QU _*mnt_*j  1_+{P _+K_,C&(BK_,b!{ _,߱>A> _,߱>A>_.|ηj_/!N[;_/1: _/1: $_/ɷɥt_/!ˆTSL_0v_1P,v_1aܨ~oS_1Sc _2sT_2zڲ_2zڲ_2zڲE_2]7_2]7 _3_3I*[1_3ݐY_411{ r&_411{ Q_4U hS_4\t_4m5信V_6'U1]_8Uf&_8Uf_8Uf_9IL$_9_|m;_9_|m; _9p`_9oM_: ,nZ_:e_:3vtf _:3vtfR_;1,w_$^4!_>  ._? _?|u@ _?|u@j_?Q[ _?Q_@4k _@5[S?_@5[S _@5[S _@f$Y#_A}H&SQ_Bn1h_Bv\>t\_Bn  _C( _C}Ø _Dgj_Dg _D`_Dt9ej_Dt9e _D"EN_D_D _Ev?,QR_EHp c_GD:c|_IM/sg)?_J;|v 20_J;|v | _J;|v|_J;|v9_J؅!$_J؅!D_Jn _K"o+ ,_K"o+_K'BG m_K'BGj_K_LU! _LU! _Mhr \_Oz@s_PgSv_P_R_R "_RwDfR_R :_RCV_SD.K_S[ _Th_pi a_U716_U71_U71 ,_U71 _U71 a_VspH _WqRU_W)Y_X<jI_X< i_XeH_XK;#_YE _YEL_ZBd _Z'%R_Z˭C_Z˭_Z˭_]vN _]vN __`7__`$__`D __dg _`SHɶ S_`Qn@Y_`.ƋНJ _`.ƋНJ _`!Hu_a7 x_bBh֏6?_bO #j_b]Ϻc%#_bv@ s_c2oZ?_chFD_cvqg  _c4_c4Q!_c4R_c4_c4K_c|>_eB_e\fdK_e\fd<_g_U_hN#_h!t=j_hQ_i:_i_i _i_i_i ,_iꀶ?_iyS_ki_xc_lJpO_lѠk_lѠk _m? _m C_n2YI_oNMܵv_oQp_o+8_oEu?_o]Ѫx_p( emKs_p1-c4a_pP G_pP G (_q9tb #_q9tbs_q9tbh_rf _s$h4_s:SSc?_sR܆MvZ c _sr|öNK_sr|öN_sΙT_s'(G_uӸ2 *_uӸ2_uict_uics_uJҢR c_uM nԑ?_w>lh_w>lk_x ZbYZ_x2Cz_xKGhW_xsV _xsV_xz_y{ʞ _y{ʞ_y{ʞ_y{ʞ_zE# bs_zE# b_zP_z_XQ_z_XK_zi_{L?_|pؼ_}unm:_~<2CFIs_ b &_ bh _ bj_ b i_1~_ݺ5r_w7S _w7_IYa? _` _`_ð! Ok_ð! O_E2 \_!b;-_!b;] _!b;_<? _<j_&Ũ _&Ũ _Z6xR_P A_P j_j;L_$~_$QBT-_$QBT _6#T_Hk_x _2 _2 K___vjQ_EA _\wЯ _qQ4 _qQ4_X6_X6_X6S _X6L_Vꑨ_Vꑨ _UĖs _z5 j_! _$ѽE_VE _?_ _  _|/+m:k _Ve Z_ s\zk_R 1_~\+ _~\+h_~\+ _~\+_MCI?_bv% _bv%?_svwwD _svww__j"_ _s_ i_H1#\ _ -\_G3_G3_G3_Iu@)J_^=v a_^=v|_f? _s^@ #_2$_k/_(/j_*uLsj_ib _;(TR"_;(T_j/N__6j2Y_jNR_R _kB_Z_Q_ _B^ _a~ ?_F3_F_Kt_Qsv5)_ɕQk_ɕQV_ɕQ_ݞ$_hX뫼7?_Bg7q_d _u'lU?_ZUq[ _ZUq[?_Us_% (eld_CTP c_BMX_cK_4_+~ E_+~ B_+~ D_+~ _$N _r':|l_r':| $#_r':| i_W`z_W`z_FuE_FuE_ 1t_cY #_>QG _Q[TJ_˜U;^_˜U;^ _\+s!_\+s _\+s _\+s_q휖v0_qM9<_qM9<K_qM9<_ti_B:/ #_B:/ _ĤFj _`5(?_:|_: _D(67_ǂX7^ _(_ _ -FCVS_ɷ)4_h9|_ Ma j_".)t_".) m_ˣQAB _ˣQAB _ˣQAB _h'ӑ_ͽ"$j_" &_" _" _"t_"K_"|_n(/Y_WI?_CY_Y Z _-e $_-e _-e _*wbF_Em_yׄvi_yׄviN_;;dz_љmZ<_2E:S_]\U_Ҥ>q "_ E $_k9ˤ_2k_Y j_Y _lZet_]YV_e _֦Ȭb.R_GlϢjR_GlϢj_ٙ] s_ٱB`k_ٱB`k_ٱB`kK4_ٱB`k#_ٱB`k_"[ _ki@N e_ki@Nj_ki@N _8g _8g ___-6 ~_G  _D?_ވd&_ލKL_Q$_+X( _/Km _g_g__ ǜ5_.̬x 2_`{UL_/J'?_/J' _2b_ɕ<1R_t0@_֎e #_SG n_a,Ś _V_2Fb _9 _?| {K_U5_ bKV_ bKV_!%:Y _!%:L_셥D6j _HSZ e-_HSZ_HSZ_HSZ  _HSZ _,Mh _덦 vv_4 _CTs_H gU_!_\9/@_=4_=4_g!_ 5_g!_ _g!_ i_U.t_do#R _V48jN__L_Cr r_5ۄ_nͣV _nͣVt_+ٱ:_S-2_Hj_alv_a1~ _,w_OB_Xt/_lA#o  _L%lU a_L%lU _L%lU ,_L%lU 7_L%lU_)E*$_s0E/ $_s0E/9_s0E/_#} _s9'_s9'4`+_:a`+_:`z(g_ `c$`h`u t{C `? k` y) `b#5sR`/Ӛ `- \`` 57^n c` ᤩB?`  (` g?) ` =@ \ ` ^;Ip` ^;Ip ` 8Z` ? `F_`ˇd`F_`ˇ`F_`ˇ`&Z- `(ڟs`(ڟsR `(&6 `(&6`/X?`.1 `.1`)/Z `QѨet] `rn S `rn L`rn `bU2`Wa `ׄ 8`vUM `34?`s4`s4y`7pR `7pR `e˚ ,`TĂL?`xzIR`5s(`4G`ڰha `b0_N`z g`/vܚ@`.7k[E`մ` ]j`w.0N`~$[?`N|s `"5X :&`"5X t `"5X `#+YN`#+[Yt `#+[Y g`#+[Y `#YDK`$4iZ`%Q6>?`%12[?`&e{`'}:'`'}:'`(6rq ^G`(6rq %`(6rq`(6rq`(6rq `(c8/ \`)j!,`)ۑ`*2$`+ԹSl`, #t2`, #s`,/.hs`-"3`yU&`-XQt`-XQt`. ˌ i t`.r)&Cxj`.YY `.YY ,`./⠣?`0=\  `0=\`3t}`3t}`4k[U `5'`5'`5+M# `6~`6~`7Po-R`:Rh!7`:Rh!: `:Rh! `:Rh! `:؃ `;B)D]`KK`>K `>KL`@劍?b `@ì t`A%P̘ Q`A>4Qe`A>4Qe`BT&?`Bڅ21b `C1`C1`C1`D 1n 2 `D 1n a `DP!;r`DP!;r`DP!;r`DP!;rS`Du`p`FRhD9y a)`FRhD9y ,`F(|%*t `F(|%* `F(|%*s`F(|%* `Gvm`G4S`G4Z`GɆs`GDs`GD 7`GD , `GD `GD`GD `GD `J0VL&I8 `J1q`J١7' ,`J١7'`K Q`K ;`K K`K  `L~6uR`M?`NRi | `NRi `NRi `N{V0eR`O?zY)R`OE2 G `Q2e/P`Q?90`w`S] `TDQ`TD`UY ܸZ `U6S`UPx?`VXbƯus`VXbƯu $`Vh7O`W%.\?`Y[$- `Y]`YU/̸%`YU/̸ `YU/̸ i`Z=P`$`Z/3L `ZI5.9c`Zoect`Z۶?`[ORy`\&M`\&MY`]1"Hj`]AB@`]&^ #`^CS`^C`^CU`^C`_WDN`_$9tS`_;wi:`_;wi `a `aQmN`bGQ`c=m`cK>q`cu[`cӇ8> J`cӇ8> J`d֏<';`d)t `d' 2`eM P (`eM Pj`fž `f, s`fy `hrh-`iPeN`iPe`iPe `iPe`iCwmS`l= `lTЪI`l"?R `l CL`m9`t® `mBAa U #`m3UL`m3U`ow!`ow`ow`owR`owK`o?"-#`o%z1 N`o VaV`p¶0`p¶0 `p u! -`pLH? `qܱ j`qܱ i`qܱ `qܱ `q=W `q=W`qw_^s`rvrAt$`sw \`t*2?`t"xo`uh;G;F?`w8NmY`w. `xf<Q`yE]K`yE]Q'`yE]R `z]MR`z `z`{nKQ%R`{nKQ%`{nKQ%`}>,"?`}˗(uj?`}˗(u`}˗(u `~zk`~)j`~۬=/ e`5F;s`5F; e`5F; `5F;`5F;`5F;`;`.~w= i`.~w= `.~w=s`à$} $`c=D`[e[+`[e[ `=a `@]ZX`2`-K< i`-K<`h#4?`ױ `GAS`]DT#`]9 `mlR`'/n `'/n `;7 a`g|[@`zfj `zf ^`zfs`JvO4`; `K? `K a`7n?`Se/1H`FP?`y@]dpd`4s#`4`" `& (`&`U]Њ `- `D@AÇS`\ K` F` FK` `/jk`+Ll `+Ll `P v `:C ^?X`:C ^ `@8Dr `(9Q`(9C `(9D`Н0v`(3S `qD `Jt `zua `lX͇{|`lX͇{;`?T `/ ,`ˊ( ` ;` ;?`P]f`P]f`}`޺R`Ya`B `|3+`<{W!`l ~]`l ~`0Tv `ȟ5`a%5`ϬDD7R`i Sl`9 m`ފ s`ؠ*R`,` G `]b n`?u`:-|)`:- (`:- `2^^Pڜ`fW#`fW `y;{ \#`y;{ `%*j`Ov`O`P>5`} g `}?`g aM`^fj`l2`l2`l2Y`9.?`Y ` Qý}v|` Qý} `8]d` QiL ` QiY`eLҤܱ 0`eLҤܱ`m/n-;`統`,'g[`.ӏZ`><t`!vH 6`Oe `šy=s`?p `?p:` }|8?'` }|8j`ng c`P+$`Z `Ļ:mt?` 1%p`ƶ!`W uʷ ,`6bj `E$3' `IRL`ǂJ t`ǂJ k`۬Y `۬Y  `N`ex[`hrK`0/y (`l`͍`,`Js`J `s>?ZL`s>?ZS`j?`8 `)`-`)`&`8`Q`Çt`VĶdK`l-#`ML `NW}MJ `NW}MJR`AQ `B>+`B>+ ``7 $ `s:ʒ%`:yS`hQh);`hQh) $`hQh) `hQh)?`כ V%S` ǭM?`b `b`2w:`9Zk% `9Zk%`;ney`{(`{rc`^|`B `g`گk`_G9`Y$6`Y$`fq`uI = ` Ѵ`kBJ ` 6 `hs`ht`h`hk`+h"`Gi&`Gi `Gi `Gi`Zqb'`䲼k0` `-"s `兟^`>2d `>2d (`>2d`< eQL`,R n`~ni`jH-`t:!?`鿲 `鿲 `PP o] $`PP o]`mѡE`%2`%`%`%`뫭j[ `뫭j`u86`O0v3`T"\R`äae} c`äae} #`^@B`ռ (&`ռt`o?`3h$?)`TZq `TZq`&'t`ѿZ`'$`IդQ`II<` E`3Eg`iu[Y`Eugd `^ 2 `^ 2 ` W{`5w \`5w `Hv0`f##`v,.@`.X&?(`.X&s`ڮ`ڮK`P`?gsT `V7`V7 `V7s`c5J`2&#`|%U%$` ng`**HHS `Fr`H9`/+?`WCMg`YMڛaŅ|*aŅ|*Qa)[?ag RaDH,YaDH,aQWWT<aQWWT<]:aQWWT<aQWWT<RaQWWT<a'\Ya ea$EAi?atzo?a' ayL=a\p)a\p)atŔ>aa C a 7gIa 7gIda 7gIa Y a = $a = a .a .a .a nyXa E[a E[ , a E[a y7':a x`Ra ]H& a ]H& ia {4xa9?a9ja2dja2d (a2d,a2da)aaBQeabxsa2KRajaEaEaVEay a^˻ea\a\amjaS 6 auXYa?auXYaja6< a6< ato6Qea1 ,af$̜^aNaaTe-% #ap apKa~:a@MQja 疑& ga 疑& |a 疑& sa!zEIR a!']a!]98Ya!s~a!z)ASa"gH`0 1a"\/a$ C;ba%$^6} (a%dA^ a%fl|ۑKa%&%Z~Za&'mPt  a&33BV #Ba&33BVha&qI&a' @uRa)҃y]2a*Yk0?a*Yk0 a*[ Ia*2.U #a*L#a*L a*La*L a+TJa+a #a,EJ.s ca,<a-^s a->w_W?N a-a-a/gCja/FTa0^a0Ob ,a1)3a2eXM (a2eXMa2eXM $a2eXM a4ذd a4|0 a4" cKa?<7 #a@,j aAVA aBH &aBHaCڒlxaG%rgsaGedaHVwzJ aHVwzJ aH^0C+  aH>kaK.ҙ\w aKi#$iaK@ aK@aL"F4?aLBBaL\>taM;nG*aM O m aM=*EaM=*aM=*aN&ުTaN&ުTaNWaNWSaNW_aOP+g9aO#NaP)U aQ1צ` aaQ1צ` ,aQ$ ۥNaQ1]tRaRI^aSR\8 #aSE .rjbaUiܓ aVCcaWF5/1aX縓aY[=_caY[=_caY[=_cjaY[=_ca[!nm?a[AEr-a[AEra[AEra\|Pa\ݨuuMa\8 a\8 >a\- a]oa^5EB3Ka_MbĒra_MbĒra_у%a_у%Ea_|Na` ] a`3s}S9a`3s}0a`3s}a`3s} a`IF a`IFa`|Qa`|Dac }S'adNt%Yad ad"zadD<adV ae] 'ae] !aev-{*baezŊ$S_ ae,(z agWwJag?ah aiKZr r iaiKZr r aiKZr r aixT3Pv aj%Sak7x sakr^~ akr^~ alpW]A]alɞameLKan5ȱaneanIL=ao) dao5ӊ RaodE a aodE aodE|apCUvaqhO saqhO saqasHBҨNasYHsas ڃvas ڃ+at$7ߙat$7ߙau Ѫau3s.JdWau3s.Jave=avb]avbaw<| ax*tax*kaypb8azrI azazp`ۯ a{ <#Ra{[@w a{XI a|a\'a|ЙK2a|1a~&^Pa~Cba~g;" a~lALKaYs a:'}6da΢j?a.: av^^ av^^? aFP!a a;0 7UaZ,W|DaZ,Wj aZ,WR aZ,W aZ,W abXza a U#ϼa'`"a=hN $aDaDaDa߱?4a JrfsaiToa(Ʊn aaV|a/C$a/Qa/ aUYaO  aO aWZ.aWZ.aWZ.a+zOQ &af]9:dtaM0aM0aj- 5a~g/a~g/a~g/ ,ar n a ޔaMs>j aMs> $a~৷j a~৷ ,a>>gjagѻRa4G |ae)"]saV>^?aV>^saV>^ (aY6gaY6gaY6gda` }9]a` }9a` }9aaɎ*a}Aa^r ja' jRaeaea]a9G2#FUaJeaiMJy $as=~a .ba .ba"E- aa"E-a2 iauZa&hd?a 7a 7ha 7 (abھH0: $abھH0:avITavIT ac5Ra'vaf`7ٓSa1{l a1{l ca706Qaofv? a%a[`a%(m2"Ya%(m2" aaʫ~ atr?a#N ga1"Aa4J>/ ia|ɕa":"ka1aa!aa!aK& a {| aSaja"nUr a;$aGvj?a\" Xa\" Qa\" Da\" aQ;Ioh5ainԳ/ainԳ/aa^f4- aȅabz[O aS-Џ?aƀǗa庑zYaC6h9a@/4NYa7WNa7WakJ ^akJa:Ns ialeb aڹ|4( aڹ|4(a'ia*сZCaxQ axaHƉZaR av`m̯ ayF aqg=/Lanqha*Mwa*Mwa=V!` ac}ac} aa Pf ad2ad2Lanan ana^ adrXaĬOaĬOa"aJ5 U aSm\NZaSm\N (aƟ͹N~Ya!#f7aN=jtaN=jaN=jkaȞ8&aɟI-aa ,e a ,eQa ,eaʯ{0aC aa#Q]a˖!egat&,A #aXEq]apPu $aZ+vT/a9I*aϛ6z!aw?a%[a% {a%a% eXa%sa%ja% aN2Q)Ka}(?X a҆$Ujaӱi "ax aԵRaԵa?SDa?Sa?SKauˮsauID? a/?]#af gaۨTON am >am a۵A\ a۵A\a=;sk a=;sk] a=;ska=;ska]ʧ| a]ʧ a]ʧ (a]ʧsaݩȍ aݸD>GaN6v"a+xP?a@!KqQY a@!KqQ Sa@!KqQsayw%PaV_\xaؽNFaؽac$(v a'uW%a%za␓Mӆ,a8, a8,a8, a0đa;^YN a)b a)bQaZл:asiV a -Iha徳X1 \aVBd (ae a6}X |aq8ba1kaú'S;aú'Lad5qaZ)va4%a%^2b1 a%^2b1a%K aK݂ aNw$RaP"Oa(z_ ,ax (aDգaYNha'Sa*p aFUc g%aFUctaFUc a4a0|ajץajץRaDR!aDaDa:Ŷ$awjWsa=gSa{nSa{nKa Io5.RajNajNU ajNZ aP+XaP+XX aQh& sa;ba7 s a _?a _a _ja1ro.?aZXa a a .Xa!d;aT\7 a|ja)Zdta)Zdka*Ra-~:a"a"a4\ aa̾ +? arN1 " bZ_5W?bDy?bNiJ7bQT;9bqQF (b;r7lbsbEfebEfebdaJWKbb}eh cbPWkWSb[@5 mbt7.buLb[_v bNlb"b"bO>?1bO>bO>jb"b r jbihJ bo7bo7 bo7Ub xBD b xb 7qmb 7qmbIXzڂb|]\qb 'KFb♺o2 bsXb"nf aPb"nft8b"nfb"nfjbXk e b&Yb_ΕD jbL,P]b`Xb$(tb4_@b}g eba[M ba[Mhbx' bU`bU`b _l $b _lb _l b3IXsbN +b5bҬdD bҬdKbl`i 3b |[bbQk nbrQSbrQS WbrQS ,:brQS $brQSbrQS b6IY^b"~ bb ]YѸkb!M7Lb"_+?9 b"Y^] b# Mѣ? b%>Prv9b%h #b&NV b'흸% a b)g t:b)g t:b,lQ^ b,lQ^?b,>nո b,/vb,/sRb,/ (b- lb.[CPCb/Lb/L[3b/Lb/ԁxe b/ԁxet b/ԁxeh b/ԁxeb/ԁxe b/ $b1 (b1b1b2t~?b2&b34mb4ZCOb4bQb6Qtb6{ QSb7<M b8ݍGBb95e|b9v:_{R b9bob9bosb9K b9ASb:6h b;'N bf2 *Lb>`ٚ?b?Q4k cb?luB b?u{b?usb?Q? (b@#j=+@b@VӬs bA#LpFDbAk7u -bAw#h? bAw#h bAw#hbAq璷bAGB bAGBRbB0XĽp# bBRht QbBRht bCrOybDL0 ,bD)4N/bD1\ bES6bESbESPbE wqJbE@_} `bEJ !bF,!ibF,!ibF,O4bFbF abF%.)bF%.6bF%.R#bF%.CbG$|SbIPl3bJeK^"gbJeK^"bJeK^" +bJ 2Ra bJ:[ bLb ( bM5sibM:^bM:^]bM>A ? bMuٰb'\[bdPibFT?bmÚ{bmÚ{ bD?bDsbp_^?bp_^s b߽ b%CA:btIP ,5btIP btIP? bk<|6tbk<|6bk<|6bk<|6bl~b*Qmb P$ bcj,E #lbͺ bͺbͺbͺDbԣ6Ib| b| #bpka &b%պWb(AyGb*gbVl& b0Q]RbZKkb$Ob;|2* b#b}7 bN΀ɭ bN΀ɭbN΀ɭbN΀ɭbz A abI1 ib#;bYkM3}?b:]uSb^v b^vb dA bma bma ,br& b4\<b4\<b4\<bnt #bb 1ˋbzNbzbSbUHbUHbASQVbZQj , b/#fmidb+47 ( b+47b Wӄ֑ bԃ1 Sb0tbG3bx)ݜbձ( , bձ( bձ( bձ( bKlebtF b,V$5 ib8`;H7byy4ob! ˴tDb"H|{ b/ bbls bblbbltb=j"b=jb(On bN? bNbN bmbRQ +by  \<by  bS:b7bi.bOo?t ,b e b e?bcbE NbM)(bY? b_PS3b_PSK b_PSb UGRb UGb/h $rb/h Ib/hb/h b/hb/hsbfIsNbk#]ð@b(b虘t*CbpY=7~ bzi^ ,bţ ,~ $ bwF[mvbB 1bYDbz !b볲 b볲 b%w bL{('bOTb^.H+% b^.H+% b켸hbHD bHD bHDtb yo/b yo/ b yo/ b<[m̈́??bl$|b[>be: b=?b*Rছb`qD# byo bǮ:! $b \sbsib{&b8'M b8'M ibd^^$K bh:bR*(T \ bR*(TbVLaqvb)5 b+b ,cZ #b"` `b"` ` b"` `bwYg (bwYgjbwYg b obb oZ\b oLb ob ob obl7 bk!bZ2bsnbsn bsn bS; bTbTbTbTc ףRLclYU8cOc;]EcO~h_ZcO~h_*cO~h_L cO~h_cO~h_UcT@4Bc Cddc Cdbc Cd<c Cd5c CdK.c Cdc CdcbȠIPcbȠIcbȠIcbȠIcbȠIc c߬#v ccވsNc_*Y?c_*Y ck M[c1c坚ch c8-wRcYzm\Sc0b ck40x c5 c5 c5 c #ܤRc % Ivc  c -Rc {ł (c {ӫc z'c 糴$c \ѤtcڒǃP?cڒǃPjcڒǃP cR: cR: a;cR: cR:k c!!Uzc!!Uzc-cc(mc(mczo?c~uR qcg/@/cc?coۧ/"v cklGNcjї­jNcjї­jc _ cu&<cu&<Q/cu&<'cu&<S cu&< cu&<cǭы Vc$q>ы? c$q>ы c% nc%Uq8c'[k 'c*KF+- c*Cf #c*fP2|c-8 ~ c-8 ~Kc. bHc. bHc.8uMN c.\k Rc.\k Q c.\k  c.\k K c.\k D c/=sVc/=sVhc/=sVsc/ר:?c/ר: c1E措rc2,',Nc2- Y`tc2- Y` (c2- Y` c2Kf}Q c2Kf}c2Kf}dc2iL[c2iSc2iYc2iQc49%c4ƫ4# c60(vc6^vc7)j?(]c7)j?(c7)j?(Pc7)j?(#c7)j?( c7)j?(c7mK;@Ec9>bQ c9r]= c9\65 c9\65 c:#-Jtc;Tn3nJc<<@Q #c=Kuƺ@c=Kuƺ c=Kuƺc=Wr c= U> c=~a c>FܒHc>Fܒ#c>Fܒc?, c?, c?bnc@v=hcB=yWcBQE^ZcB/ cCS=scDUT?cDUTcDUTjcD/Z7h cFoi FcFBK?cFBKcG-)iy cG-)iy cG9[P scH9" 'cI$~@KcIpcIꎴ)Wa&cIꎴ)WLcIꎴ)WcIc ,cJ'aOtcLg&cN $cNSrYcNscNn>m cO!N; cO_W=~JcPO( cPO(cPO(cPˉȫcQ ޵cQ^9Ur cRblBvRcS}cTyZ|cTyZ cTyZcUJ jcUVp#} YcU&<:ycUcV_pocV i%cV (cV%C cW0w:CcW0w:C3cW0w:CcW˩ cWg*[ cXStcXS ^cXScXS cY]cY4 cZs $c\Pߣc\PVkc\ޣ'c\c]W5c^㶥; c^G[C- c^N}|Dc^N}|] c`pxc c`ȺZ% c`&ca-ܣca>| ca> ccnڥ) cc\/zcdwsD ce~:g!jcegE0V|cegE0V|ce8?cf: cgU:vcgU:jcgQD icgci) cec?s cŖ? c<cśecfkcZ}K c2Sdc2Sdc>c(7] cihBJ cihBJ codݣ]codݣc!d}Fc!d}Fc!d}Fc!d}F c<0cR6C (cR6C|c&XckMQsc!cÅp ccc}c \ cCk#c= c= vc2>jSLcMadcTnS cVMc4a; cݩ}~*cF?aM) +c)odR cC'cQc]&gcԨj2UWcԨj2CcԨj2cԨj2 cy[f cy[_ cQ:c\= ,caq#cɋJ3b gctOc]Z6 cFVc_MJ c_MJtc8(jV7Ac^RZ #cs[Bv ic .cmBIcmBI a cmBIcmBIc"jr c"jr c|QRc|Pc| c)|( .c'B c'B c'BcaK cc;;c;YCSc;YC c±NcZʁRc f cע{jcע{vck[wc;SzPQcn:?c:KcŲNcŲNcƩyg`cƩyg` cƩyg`cƩyg`c?")DcȒ,(c cѮfcťmf,cťmf cťmfcťmfjcQrmcj:1.vj ĉN4P@ĉN4Pc31cΡ!c ecΡ!cR cz | cz s c )S c )cMc|KXCc}YpcЭwc=ԯ=AZcA i` cA i` csxjJcsxcԫ' # cٿoc-6 c-6c֣~cW.Ec_d `Yc  $c[c% ,c% c%YcT XcT X]cT X cT XcT XcŗycuֿozQcuֿozcۄcGcnicusBcusB$c=DKc=DcKeБ ecKeБ cޗSK cq|<cq|<c߂ȼc߂ȼDc߂ȼQcߗvcakcn_W $ c.cUxJVlcUxJDcgcD.cQ,j cネce] $ce] ce] cC;jcۣ$Zc[ #c#G8 ^cѢRcƷWcƷWcƷWcƷWsc!o{2kcV!ndcfT cfTc$Pdc㸿Yذc㸿YذQcsvcsvOc찭-J|c찭-JL'c찭-J%c찭-J] c찭-J c찭-Jc!> cFMS|c]uc#+Dc斡c ATJ (c ATJsc{Bc}[ /2c #NcWxq cWxqcWxqcOh@Rc+DIc򧣮D c`macnT?ces;ro?cZ06kc S cz&<c_ c_cZ(F \cfYP9cXҊjcc-ucc|dclO0c\Qe cPm/cq8rc[d&|{fd&45bld&45blRd(8/d(8d(?d)'=md*"ҏd*/0 Nd+Vd++td++%d0ehާd0ehާd1PZ_iQd1"d2mF#d27aYd2tp 3d2tp!d2tp (d2tp d2tpd3v&v?d4zKP> d4)C*d4 teQd5J| $d5J|d5ORd6e- d6Ř*d6ŘQd6Řd6Řd6Řd87Xihd87؏bd87؏ d87؏td8w Nd8w m id8w m sd:-C%td:¥Rd:¥Sd;˘Vd<$d<0!څd=q'h d>e d>-G} d>-G}d>v_& #d>Ժ!d>Ooױ d?63MvFd@ILdB}N-dB}N-`PdDm"hxdDoB ,GdDoBFdDoBdGddI"dI s dI%w^jdI~:dJ8S~K dJ8S~dJ8S~dKm"dMJVJ@dMJVJ"dMJVJRdMJVJdMJVJQXdMJVJ]GdMJVJGdMJVJ/dMJVJdMJVJ dMJVJYdMJVJZdM[zҼdNQ=` dNA{dPfPdRdR->@ dRdSKSx +dSKSx YdSTǜ #dSǑXdT" 9bdTQ(Q dTYF3DdU${j dU@t.LdU@t. dU@t.ddU@t.dU@t.$dU3m^'y?dU Wn#dV ?dV  dV  dW: dX^X dX^X ,dXè?dXèsdZI0J (dZI0Jv+d[n$7d\<NK d\<Nd\<Nd\<NNd\<Nd\RJnY d]iA #d]iA cd] 1d] d] ,d]xad]{g 6d^kʀGd_2* d_ZH d_ZH db3漱~ d db3漱~ Kdb6!?dbu_ϝdb'/ dbͷY) sdcJKNdcD (-dcD dcD dePe`5&.dePe`5&dePe`5& dePe`5& dePe`5&deUjdeQ; $df" U ZdfvdgaSpsR0dgaSpsdgaSps dh>7NdhĿ3O?Y dko dk2m3?dlGvpp dl:Zdm-ednj~1dnj~1DAdnj~1 dnj~1Qdnj~1Udp:p\[dpD.BwdpD.B dr25 dr25 drvG8drekLdrh?dse.dtdL$MLdtoS +duеa duеatdwodxy)z dxlI dxlIdyP>Cd dym?޲ dyx Ydyx qdz0mRdz<{wXtdz<{wX d{`EFdfvJt dO| d]'}RdDIl ldqA dqA db^ْ*db^ْ*dPP dPP?%dPPsdPP dp dp dpZdxֲ/dk(}d+od*v?d5d5 edd dFs/|djGYd.?)0d.?)S d.?)Ld.?) d.?)]d.?)Ud.?)d!! daf?d1!K \9d݀3d݀3LdɄb"d1b dof duh.sd# cd.Y,X?dM#d4=B2R d.Jǻ?dkعAf?dl s^dtO i#dtO?dtO dtO d0f]g $d0f]g d0f]gd0f]g d@ARdxR{ dZ$?dZ$?d]#Z#d2I^s # d2I^s cd*VKdk} e dk} d[zKd.(VYKdh jdͨ dM!2 d\J@d\J (d\J d\Jd\JYd 5× ,d 5× d 5×d#6s Ld#6s sd#6s9dW2W:d&Y(d&Q d4?dTddYQEL dN4]dN4t{dN4d3>9 Ldƿ}?0dXfd䐛dJ t dz?LdZd&uԿ jd5 cd+vmp?d!&=vd sd`b' d#U9f d h$ d6V dt‚\ ( dt‚\d0eBLd0eBL ,d p8dnn djXbdjXd7,:whdf$rdͳ "d<BZ .dc. d1 dA9 N-dCz5\jd d#,HdJdYzT$dYzTdYzTSd,.*!d{ d@+V ad)Ld DZKd7=  dB ?dɇ?8?dɇ?8dKql;; d*2G[d"y2dModkR$d:io!Kd"zdm4 d9VZ!td9VZ! d9VZ!sdM@ dM@ dM@ dM@d]Ld)CB?d)CB dťF d#<=dgϲvt dgϲv dgϲv doKҔ doKҔ ,dƼm3dƼm3 dƼm3YdƼm3bdƼm3kdƼm3jd«% |d@sdȦSd k d̹d̹d,8ad_ d2uyd3E) _d3E) ;d3E) $ d3E)jdЅ1u$ md[k d[ adb{sd >dԯP2 dս8-aS dս8-aL dNCdNdg{?˽jdg{?˽ d֮7}_'Rd) dN[SRdؽ$ϑudSd &d2 ̕NdJ ?d]p $da? "Rdp,Tdp,OdtTdo1m]?d;҆4id;҆4R dq, vdܢe*jdݛL0cdݛL0cdeIwd#-Qd d d d d d'F.d߲* d߲*jd@W?d@W?@d@W? dHdH dqt! dir": d,pwdUCdZaW d|~A$6d|~Ad|~A#d|~AS d* d[% sdzG$d 9AGd#[edtŘ d. #d QdAvPd\0hd)d?edYHT9dFfdUd@kUS d )MG >d )MG d )MGd )MG dE؋)RdMdd l_d5dvo cdbP[dbP dAxvsdڰUq? d6*pd6*pRdg  d¼gd8ܨ|#dS4jd09df%n?dp7 $d=#d=#d}jM-d~t^dϫjYdB! d#u$Kd^l d^ld^ld7Ԛd<@cd[Vd03 TddReZ4 6QeZ4 6 ,3epe_:??e;` @jeM)ve0? eU( e"oö e"oö eQo0e֭spekeo3IL9 $#eo3IL9 eo3IL9 eo3IL9 ,eo3IL9eȶ?ee_We &h9e &hke +;= ve +t e 1 xe fe fKe fQe Y-}<se 5n˜S e JAԛ e i\ewberƂu aerƂutKerƂu erƂu erƂube~wU6eܤ1eZe eqD&Uewş=euȀseK erR eSvB1 $ e,4mDed!e+Ze+ZL e+ZSe+ZeWpg eǃ ee/_aֻ)de/6# e/6#e0Re0I.R e0I.e0l+Ne0vMe0vM e0vMe1fZe12M`e2 \$ u9e2 \$se2afLe2<9Re2N e33%Re3@?e3,0te5 3Ye5)oe650e6ܨ Ye8 'DHe8 'DHe8 'DHe9M[ǹje:sM5Se:Ą( e:Ą(] e:6OCje<2D_3e<v`e>* YQe>^ՙVLe>^ՙVe>Me>M e>7"tR\e>7"tCe>7"te? RwZSe@^eA4ihseA4ih ieA4ih eA7feAAmeAk|T&eAk|eB'|seCXbv eDu ?.eD6 eFEçeFEç]eFUyoeFUyo$eFUyoaeFBvgeGu; eGu; $eGu;eGJw@eH`\vvpeH`\vseHQ0eIԴYeIԴYeIԴYaeI% e eI>2]j`GeIA&jeJg{ZwR eJTK .eKW eLMZ'eN1I:8 eN,M?eOs \eOs|eOeP }]H ,eP42a?eP42a (AeP42a 3eP42a $"eP42ajeP42a eP42as eP42a ieP42a sePJ6 ePJ6sePBePE{J &ePE?ؕReR ] eR4 eS/ .teSTP- ,?eT\eT\}eT\,eT\R'eT@DReT0` eT;Hv eToW݌eTطeW=iR 0eW=iR!eW=iRveXn?ZeXy*UeXF'SeXY=eXY=eZ3)eZ3) eZ@(ӀeZXd eZXde[gΞS e[8 ge[8se[O+ ae]}_ie]ye_: e`S] e`UBbeaG^WgjeanLeaneb7 ec  A i ec  A ec  A9ec(n<ec<Oec< ec<Sed(t5ee8ӱ*Qj8ee8ӱ*Q iee8ӱ*QteeNܺeg6/m?eg_I<?egRegeg4ehK|Lei'OeiRNj%eiRNj/ei!L ei蜏5~ej&sej&|ej& ej۵edej6/Uejt ejt ek$@${ Xek$@${elՕeo|T $eo6j` eo6j` ,eo6j` $eo6j`epQhepn-YepepEA?erevMd@] evj'?ewM +ew^JU $ex ph*Sez!qez!qez!qez־e{>n@:e|J,e|J,~e|J,#e|jOe|J)gPk/e|J)gP e|J)gP (e} e}e}Ge}Ze~UWWٷ e~OOI me~OOIe-C e-C je-C tehڣehڣIehڣ6ehڣ$ehڣ ehڣeϪeT]P ehZe7*~e7<Ke=~leGUx eeGUx ae{rGNe.euRe.euNe^e)bC ( e?ȋe6a + e,eneJRe. BHeV aeYi>E|e]O ee\K߲] e-l! e-l!e?IgjelusebJz4e.*^2? e.*^2e-K0= e!e! e! e!ReڠDHW? eڠDHWjeڠDHWseڠDHW aeZ1 ew1Ce iZ2eI97Re%eI97ReeI97ReeI97ReeR*eBC0[e#A0e#A0e/ukqe G\c?e G\c?eOUveJeoQe2c,? edGsTseLaeLaRet)e`e/ e[[3MKe[[3Me ee q~ 5 (e=B?Z? e=B?Z eڟ(?eڟ( iew P* ew P*UePQeVΔeBe e e eL`^ $elG| ezNDeͼgelܸmelܸmNeT?eޔeޔeޔeSجeCvU eCvU  eCvU  e}=oe7Le5 $e8X{X ^edJcRe& .veiRxe,zjvehC e)r e:&je"-o^+Re$ym e$ymse51eSGN,sekZDeg4V \e+eUW >ket4 U8eDUWe%,e|%c˜ Nehle~\e?sT_e^P)lQe#Pe,3ˆ ae \ReE$HS eE$HYebfebftebf ej3sej3cej30e>e>egA egA e< eRb(wUeTґJ (eTґJfZ6t fq` fq`f gf - `f40f40 (f40 \f kGtfr!?fr!fMJD fTc#Lz),fTc#Lz ,fTc#Lz fTc#Lz f]v=T%f=Vff=Vf f=Vf|f4flcfG_~0 fUwT $fgKnbfm) fz'-fz'-fCtf/af/Lf}m#e*f}m#ef Տ3 (f n N(f 𷔆1f & $f IfԂwC?fԂwC %fJ@f>@Zfco=t| fa?f$I2Zf aRfqjfvו fvוsft*2 $f@Fϕ $f@Fϕ f~Y? fPa 1fPa fPRf =ןnf =ןnf =ןn f =ןnRf ?Q> f!ftf!)صnPf"|tnN f#p&"Yf#p&" f#^ f$r"9Lf%f()dܱ Tf(*;/Uf(*;/f(*;/ f(*;/ f(*;/ f(*;/]f(ctlf*Bwf*Bwf*V_4f+G]!b f+G]!bQf+G]!bf+R9Dtf+W"?f+[j ;f+wf+m7 f,GT߯f,Ң," .f,Ң,"?f,Vckf.޽Ӫ f/xskf/xskjf0=cg&f0=cg&f0=cg f0=cgf0=cgf0vPD f0vPD if0¤Df1zPf1j 7Qf2Dăe]f2M/7jf3/z"f3X( a f4u f4~hG[f4~hG[f4~hG[Sf5 L (f5@ df5c&^uyf5c&^u {f5c&^uRf5c= $f5 mf5 f5 f5 h f5Tk f6*@Bjf6*@Bf6X!f8Ylf8(V f8(V?f90XJf9`§} f:< \f:q1Kif:q1Kif;%WL !f;)tf;) mf;Cա c f;z;6 ( f;z;6: f;z;6f;z;6 f;z;6 f;yy[[f9."f>\ sf?=&Fwj f?G< Jjxf?G< Jf@CfA)\xLfBk  mfC#MK1 fExMt&fExM afFtCfFtCfFtCfGe-v]%8RWfGe-v]%8"fGHnۀR fH CBf #fH`'MVfH`'M]fH`'MfH`'MfH'$5fIY~4? fMkj8 fN+?sfN7! fPɥ afPWIfPWIfP=fT)RfU0`p 8 wfU0`p 8 fU0`p 8 fUHRRfV#V@qH]BfV#V@qH"fV#V@qHfV#V@qHfV#V@qHfV8GRLfWض4N fX.i9 fXi]֜JAfXi]֜JfXi]֜JfXi]֜JfZ'7l*fZqh5,fZfANf[Ɏ5Tf[9~f\UXjf\{NLOf\{NLff]P$G f_N2JD f_N2J f_N2J f_N2JKf_N2JRfa0"-N"fa0"-fb2utvfblM+ivfbW~fbDtQfdBG IfdBG fdy?fdyfd'I9fd/.Kfd7Lfd7L fdCL2fdc{`Zfe,؇|9Yffn.F?ffn.F ifhgC fj6/?fjXnl afk?p \flExDRfl_WZfl )fmp[B ( fmp[B ifnJn fnX=fnX=fnX=foJٯ@fpr fpr' 1fq Rofq RosfqIkmyfq~_Ϲ'8 fqfrS}K frU#B frU#Bfscjfud0SWAjfud0SWA afujPMfu.fu+fufvqXWfv9hDfv9؞cfwORRfwBCaL fy.3=fyfz%$7fz%Lfz~Yfzg< >fzg< +f{7ܕf{7ܕNf{؈Lf|SXf|bs\'DHf|.f|.Kf}Y?ꂛbf}UF$f~2?>f~[Pkf~dS|f~ɕfGfBf  fRtf1Z%6 f1Z%6 f1Z%6 fsof{, sf"WR f5C&;?f5C&; f VKf V]f DA?f[e?f]$p3Sf=Rfyp5dfn_fĊ)_ !f娑MUf! Sfs:f-jfSQeNsfSQe+fSQefPCa fK#f@ f@ f@ fP'f( #fžf;@0 $fkf Kf SfKPs?fO>FfT3t #f` 2fL3jf*o*jf4uiUfqqU f?P`RfRcFSvfBFʟ fBFʟjf_ZE" fSf /ڔ$f /ڔ!f /ڔ $f /ڔ fnJ f1DfYfdRn15fdRn1fdRn1f-$f!Io}gf#-@ f#-@ -f a.fhVx fhVx?fIj fd阨fd阨f +fSf(A?ffS)?f{;$OS{f{;$ORf{;$OU f{;$O f{;$Of{;$OKfG< ifi0f=f+8N> f+8N> f+8N> f9Jf:,äjf4 dfXdk_LfXdk_ fXdk_fC衲 fC衲vCf`f` f͹3%)fζRfζRfIR $fIR fIR f!Rıfr_$ f] f]f_,f_ fSffLfUNЋ[+fjqCf"ߘ00fAU fp]f=לj f=לj f1Ơ if{X1 =f@1  fbU][f{e fD5OKf#hf#hfђ[jRf|XAf!mez?f!mez f!mez fa>fpYfq + f  ff f=j:fI7 Q fy%fЛf?Pݳ_f`Xpf,R_ [f|QjfF~jf.@xf.@xfMk.@fBgh:f\R fE:T3W|f57f9M fŠQ'(Cvf*dn)Df*dn)$f*dn)f.VtfL| 2f8%RfǽGk?f.=`f-L f-Lf-Lf-LkfoY~[foY~dfɄWXfɄWXRfɒYΘ fDd= fʊG %fjq)S ifdI3>Sfː̵sfː̵Rfˮ=' $fˮ='f|+Yf|+s(f^[|:f耴fϾ,ɝ?fϾ,ɝ fжtRf'pj9f[/Df[/DfpfOxfҜHuf.<sf5(f5(ff4 f62 $f62 f%[nt[ fՏO-fGB;rfw f [u` jf efst^;fؖ8 fؖ8 fڛ3TfI (fن^| ` fٛLjf:v% fNv%} fۡ{ (fZufZufv f0볜Tf0볜Tf4/?f](^fAtf_$֞& -RfrdfDʐ&R/fDʐ&fDʐ&fᯈ(f*9gw:Rf ?f?Cl|&f?Cl fCϓf#lN? f`u f`uf`uf`u $fh+;fƔK f vf0yՁf-yҏ^?fw_& fӳ| f?܈f[L f[Lkf[L f#> f#> f!97Df&7;/BvfTVfTVf%q׮Rf=2fm Yft:Rf#*)]G ( f#*)]G $ f#*)]Gsf#*)]Ghf[f8`sfԅ+Eg~gd}gJA gJAgJAgx۷g˶uʼg I}r]gpAy]gnYgTh8gTh gHxqbg'B?H g _0g (gIRg O?9g Et]g M g MRg %:UDj&g %:UDg %:UD grnI/gbgbg6Tv gC.b g: >g: >g:#p g:#p?g:ihw g:ihw{gNX%N4gNX%g͍/jWd g9g9 g>6` $g>6` ,g>6`9g>6`j g>6` a g>6`sg>wѐ ig>wѐjg>wѐtgP[K g g?g,gT\ͮjg?Rwa $gT:s g'5iigZlNgk"gk gP,Rg̊k:?g,|8BgUďΨQgݧ1 g!T|g!p2r g"56g"[Wü g"V: #Ug"<?g"F,< g$0ѐg$0ѐg$մ[Rg%eh٫dtg% {g% g% ag&a:g-Kg&a:g-Dg&a:g-g'g'Kg'&Pg(3g(Q [!3g(Q [!3g*!vy`P (g* ^g+;Metg+ gag,@g,}g,z.w =g,z.w g,Yfg,97y0g/ft}g/ft}g06Ņg06Ņtg1l g1bBliDg3+^gg3+^gg4C9u Yg4I.#wg4ig4iDg5˦Njg5˦g5i:tg6c,Jg6NMg6e5f $g7f: Rg7g7d- g8#{kg8Q g; 3wvg;;)8NNg;;)8N!g;;)8NQg;;)8ND g<"̭jg<"̭ gRJU m g>HP?g>;ڀ/g>;ڀ/g?;Պ0 gg?T>XRgA@0 gBF{!yjgB:DgBN gC_gCj 7 gDef`9[gDzvgG2  .gGD5gHKgH¬B*R gI gI gIMTW?gIMTW (gI\Ggk?gJqeEgJɠJ $ gJɠJ gKjupgK~L/gK~LgK~LgK~LgLmH&gNvgNvgO.rHgOX gOФk sgPsgP;dn gP;dngP;dngP}w gQE gQpaqgRhػjgRhػ gRhػgT>uMdgUj% gUZ%PgV;󸒙[gW^h%:jgW־/ gX}^sgY"yPy?gZ'wgZegZ|4ɉgZ˴D g[%g[ڎ?g[ڎ \g[ڎg^j/q g^j/qg^j/qjg^}v?g^,!+g_bf{g_ ?i=g_0a=Gg`|1XuSg`|1Xus/g`|1Xujga9' #gb1ЈSgb? /gb rNgc1q  gc1q ,gct gc* ggdJ ?gd﵆) geIK9gf TDWgf TDW$gg1[8 gg1[8kggE߇gg̢ ,gglPDkgh:Ygi r,goZ}>j goZ}>goZ}> (gpeat gp/ gt1Fm egt-h gt-h gtt<:tgtt<:kgw-r . gx(!{gxZ|^s gxZ|^gy@aN gyH?S-gy֏~ tgz>PT[9gz>PT[ 9gz>PT[ (g{h~dg{B+$g{|NBKg}'~?gpu2 g||xSgGJNg||YgE, gE, gE, gE, tg" Jj&_tgTa eg0jg74jg74 g p ghF gKFgĎ/ \gĎ/?g@BjgHHKgVfA agVfAsg쓣PglSgQZ1gQZ10g,}L g8R?gEkgEkgEkg(Hgi3ϙg̯[_mYg̯[_mkg Yg Y \gUoQRgUoQgyA gM\ gM\ ,gz!]gz!gz!g@zwgTgl`Y+ ?g퀀- g퀀- gp] gp] +gk' gȵg5 BQg}DAy g gBD gaпoKgs/;X`gs/;XRg9l gf#σƕgEC#gsar gB, {?gbD|9gY>w gY>w gY>w?g]T볅g/~ӫ g/~ӫgx-g" tg#?gF`sg$1Kg$1g$1Lg_V[ $ gGLW gJ ig)Pk1R g0pL (gEQig&ގg#H gLoen v gLoen g۵5:D#gYhStgK?>gKg^4Zwtg^4ZwgĀ g,3WKgǺ# gVjOpCgm̴gٳhg agٳhgsg˼EjIhgof}Kg _`Ngp1֝g͆WJ(Dg͆WJ(Kgͬ@(>g;n gM4t g A+fDAg A+f_/gϚ} #g9{ՏkgBHUj gBHUjgBHUj ,gBHUj +gо9,[ g'= g'=g Qg QhghVd]ghVdghVdRghVdgў RgѶM;;gѶM;dg9zgdgaWg*,l' g*,lhg*,l ;g +qgO5])%gO5])Rg՘w[I \g)~\gq8NrkSgڌ9T glxS[gLT agۄjgCN gsЪCgsЪg)σքg WJ g WJ gߒBNg[SR sg "Atg "A g "AgWԃtg ?gޥw: ^ g"4cg#m dZg#m dg#m ddg#m dSgRJ gRJ ?gRJ gRJ gc=Cu.gc=CuZ gc=Cu gc=Cu$g'qt $g:~tg\OHt gX/tg厒(Ng)JSwRgb-;wgRg鮡9Az g>ZdgN$ك g` \g!lX g!lX sg!lX gU(aNgF_'Tjgm $gm jg7oRI? gmk 1gmk $(gmk [g},> dg=7Sg@ZUWLVg@ZUW+g@ZUW g@ZUWZg;'`C ~ge^?ge^ gyJpN<gQCgeqg.{g.{sgw%dgw%g рuRgbH\ g4B[ggo{6Ջgs69g6Pjg6P g6P ig6P g6P (g6P g3u~x #)gf;Ltt?g?fg8W-ejgTY gs*gs* hu hu huhh*@th?n\ hn V[ ,hz"h] -h:f6th[I$1 hH|h &FSJh K}+h ؃`iA Uh UEjh y;?h y; hzHŝh l hZ25Fh"+lhqghA hX6x'h:c. lhsuC&hsuC hsuC hsuCd hsuCDh.g?h?9+@)h`< (hΗg hΗg hu|^thu|^ h h |: |h ,+h ,+jh ,+ ahbyhZ] hK$hKh?(P $h?h0h0_hӇX6e 6h-< ; ih-< ; (h-< ;9h-< ; ,hOh_Ao*Kh(b;h=K/hIx?uhgi4INhWwsohH8 hH8 hޖQ>jhrG2 athrG2jhrG2j hmY9thI:z hI:zh!hh!-Tvh!-Tvh!-Tvh!kz6H% h" &.Nh"%qma +h"X@qt Bh#I,#Oh$(z=qFh$(z=qh$(z=qsh$(z=q ah%t h&,[Uh([< "h({pYh)x $h)x ,h*?h* ah*MCh*aO| h,qRAh,\4{?h-.gh-.g h-.g eh-.g mh-v h.k^:Eh.>7 j|h.jLprh0gek6h0h0h0qh0r h1(zo h18E(h18E(h1oh1oh1¶"Sh1¶"h3&ild )$h3Qф$Q?!h3Qф$Q h3Qф$Q h3֖Nh3֖R4h54;Ŗ h6+;v{ sh6tBGesh6tBGesh6tBGesh6tBGesCh6tBGesh8:Ӥh( !h8bjQQh8bjQh8|b9h8KJ+sh: BOx i h:)$ h:*;Qh;0RhF Rh?ʙfvh?'9h?I h?KSWh?4D$ h@":&h@":h@] YfshA.&?hA}q^hAl,hAl,hA͞42hA͞42hBECAZhB"fIhB`shNR hOEYhOhP?ΦNhQhQEVvhR/y *hR2 T8hRdn KhRdn hSW?yC hSW?yC g hSW?yC s hSW?yC hSW?yC jhSW?yC shS+tFhSst!hSs hSshSs hT`Up hTjDv #hTnhU3H]hU3H]YhUH2Wy^hVE _wLshVE _wL $hVE _wL|hVE _wLjhVՓpj hWF4phXg"?hX!~_ chYWytQhZ)HζhZ)Hζ hZ/ikh[Ah\r}h](Ti?h]Kbm5h]Kbm5Qh]լb h]լbh^Bȓ} h^Bȓ ch^Bȓbh^Bȓ h_ g5-vh_ejh_e h_TIl h_0~ h_ٮU2Xha-(e hdGbkhfpoL;shfO |hgIڭhgҢYhgҢY hhX~Gb lhhs8duhi DZtp hithjUqbmRhk09M? hk09M chke .hlvD)hlvDhm: Ng chme%hmɜǷ,vhn&:b"&hoY?ho?{O9hp(RdhpT#Vhq,@ #hq76 hr4- hr[W # hr[W chrY? hsw/mhsw/m hsw/mht, 7ht, 7ht, 7ht, 7=ht, 7htׂj ht^ö hv=/壿hw4<hz[hz[h{3Խ h{9m[]h{\!h{\!h|(-h|Vjh~i- h~~Qh~RBh N3# h#%h#%hyV4W h+CNh|bNhTa $h}:h}: $hw.,eDhO\L ,hSQgLh0cF:Yh0cF:h0cF:Z h0cF: (h;phF(shaRܓN<hRh; avh)Mq.hi|hshshs-hshJqfR4h>[SheJShˊ0- hˊ0- hˊ0- h*/RhA2uLhcIQhsHn9\h>.R hhL&? hhL&hI?hB"]ehshB hg-Chg-CYhg-C ahg-Cjh ZRh%"6dhh%"6d h4AvhͶ dthͶ d hSh4ZhiJR Che^۬I?h=}h=} h=}h=}h=}h> ,hI?hI hBWq|zh@qhi](S-j hi](S- hi](S-hhB% h " shKMNRhuKU@ #h!n9h!n?h!n $ h!nh\hrEhNh YgNhPZt |hdXh]u"i!hwnYhIP8o hIP8o , h2)hgŌl hgŌlY h\ 2h W?#h W !h W ih,Zh8lQhMV-hD5UehOJr $h)6.[h^Bb?h h hp-mhp-mhp-mhp-mhZmv hէrshkh6!LhT:u1hl hzI#he ,hx hj hjKhjhZғ" h&hF1PQfhyO 8 *h\y hkhpi| hpi|jhpi|hмk hмk hSUnbhi h{j h{j h{jjhY,k?h4@?Rhgy@[h~ڴ{Nhx4Ukhx4U h55z6 hj}PihMLh@ -h@ -Rh@ - h@ -hashaha ahaha ,ha h:Th,zhOW/L hOW/]hRmzhRmzYh[?h隟h)h)h'Fדh7{ h3 h촱h({iqi|Mai/ߋ i{Fi5+ i5+ ii5+9i5+ (iF3iF3 ciF3iF3 $i'jЮq ai %0i %ji % i w%Yji c i c i ݓZ.Yi کA&i کAi %e-w i rp;i uN+i 9Hi Si X< i[I0 iHc? iU'-iR|i)KnNi+Ѐ'2 ilѕ:0i:Ri[ÉiB. \ i#%ی: iivWԲudivWԲuK i3=> i& i&tiRil9i i(I4(Ki85 zPiIJByw *|ibbi=cRif#u $idOidO#iѿ ,i>6?i|m2 ii6ZQt i )nFe-i  (i at[ i"UY) i"UY)b i"UY) i"%F $i#` * i% 1i%".m?i%'"A?i%,4/i&H i&ҫi'6Zj i'6Zi'6Z ai';;Xi'xnxi'xnx$i)a i)k}P i)k}P i)XÅs[i*'<% i*'<% i*'<% i*Gy~w i*Gy~w (i*lӶ ci*E$i+1%(i+1%(i+4cO? i+ki+i+i+i+R+Ai,;?i-ZPpi.]bi.]bYi.]b i.Tpi.(\i.|Vli.|Vlti0 i0?i1 =~&oQi1`h:i1oy i2h6&c #i4mTi5c`USi5sE";i6]2i6?2\ i7wesRi9OG<Qi9OG<Ri;'1i<43 iWਵ i>x[ti>/i? i?:DPi?:i?:i?:i?:i?|Ri?| iALe`4#iA80[)h iBg RiBYiB P iCj1[? iC{/AFiC{/AFiC'O, *iDAj iEMrx?iEԄCiEԄCiE쯫;iE쯫;KiE쯫;iFiF{']iHhg]t iHhg]t "iH 8RiHx5DLiIW?iI'l )iI'l (iIT iJp vjiJp v iJeiJetiJeiLFaiLw+< \iR>+<:iR/_iTɷ_iTɷ iTɷiXzn9 \ iXzn9iYBLjiYk.iYk iYks iYkjiYk{iY}a#i[{)ki[qDS i\@&i\`i^X[X3 i^X[X3ji^+XS i^+XL i^+Xi_G4 !i_=ƭ i_F Ri`?i`oL|ti`͟Dh $i`Нl* e ibHibEF& icvJicZ1icZSicO Wjido?idoieL& (iewtifcTe7 igOXig؛ ig؛ ihF*jihF*tij=<vij*9%ijZtijZijZijZkij@& ,ikuvikqsilzh4ilzh4 il޵h(il܎.0?im)GURim%in*{ WinU/ioUN"JipJB@ iq»ȫQiq0 iqT4 irQឈbir: ,ir: ,is Ͻ mis Ͻiso[:L isajÆ?it^, P it^, P{itqG<%iuq2 iv▗gtivQwWivQwWiw ppPiy?¾Sjizyz i{/0i|e)L (0i|e)L i}Mi}Qi~x֕#Yi~NS. i>S.|i`Zmi`Zm (-i`Zm|i|AhgNi͡MT -i͡MT?i͡MThi=qq&i4!i?i8`]i@ji}Pq4i}Pq4iN a$iN aRiN a#i!| i!||i!|i)/@ti)/@ #i)/@ ai)/@si)/@ iok+wi\)a mi8iU$iO iBjiV si:`? iՁ? iX 1?it&FiS -ic i #i0 ișRi/ڸ$ i5VZ:?Gi5VZ: #i5VZ: \i! iB'<vi0Yi0Ui0Ui0i/4 i4뾍i4뾍i|cb |i¢ i¢ i¢ it,iQzaM?i\eV/v iaiqSiYi- a\i7./si7./sDi7./si7./s i7./s_i7./si7./si7./sic\ img`i=&UBi,ޞi4OvjiHC ,i#W!i3]?ri +_i'u i& #ikt9b:GilqUkXi< #i2Z ci&Vt icici i i iiUmP iUmP ,iȑiIX ci+ibti=Ձ i=Ձi~; i;M[iӯ aiӯ?iP\:x +Ci- Isi- I i- IiCUi6>Ni6>Qi6>Ri먔G* i먔G*i i iohi%xa8i%x i%x i:8^`h ivi:ASivi:ALivi:Ai:+6{fi#Rȡ_i!4 #i!4 c;i5.z iLsiS?'i  "i  "i  "i  "ip9if 0i(ٰ=S8i(ٰ=L1i(ٰ=$ib\4r?ibdu is5 i7%՞ji7%՞ji{' i貱ERR i貱ERR?imj'imj imj ,imj i1DS in$iQoCi[pפiŒͷki£9tiG"|Giİ u|X iԞiԞSiir|?ti#Diɹq (iɹqiʕ?i1 $ipgE isG iijؑRin~c iLNhis]Eiθ7|iO3 ciO3iTAe:RiTAe:?iTAe: iB̽iW$ߕiПn)i7Fiѹv> iD9iD(iDi@fC@b<i@fC@bi@fC@bi@fC@bj iӆ)QgLitiiS$Yi#J\ |i|ni/;~ Qi/;~ Q ,i/;~ Q i7riwHi֛z]pi?u:SiUtiט  ic֍ i! q i! q simXih 33iEm]JiW rɾ| iW~_yi<_i}U#si3I2j iު n/i{ c8 ci%_o5(ji\SRi2fbsi7%'i[v iAQUiAQiNN?ibia0 Qis[yC0{ i iiK„ +iԥ~ iisN*(isN*(RiC=ioC Ri2t׋ i2t׋ iЖbjiЖb?iЖbbik,4ViA Oi( i( iw7ei힑B #iFi4@Ki4@i4@ibibiۯiG iۯiG iۯiG i+׳ ip`)?iltwi&I"di\ i\ i\|i\si\ji. biR diR diZd ii>bvieOi :i i LiN# i^ i0wiA1W ih(@0 #inTaE%iݡES iоO:iоO:iɃ$i_AtibNEil` Hi+]i+]i+] i[Cf(SiHc2 iiHc2?iHc2 iHc2 4iHc2 iHc2 iHc2iHc2 \j Hyj7kjjiGj n $j& p# %j& p# jmx%Ljmx%jmx%jWw0j} jF6! jF6Q j]E=j/5>:Zj/5>:jlE3d "jRr?jjpjjpjjp$j -j%1Rj (K|,j tּj TL4tj ,%PK j A+K-j j g j (۟j-ajS3j,H㳣jKND^jƜ឴9 jƜ឴9j \{v j \{jn C' jn C' jpsYsj'eY$ ,%j'eY$ ajjLPӄ[jLPӄ[LjZ#jM`hbj)ԑ2jOw< cj0ã !j314T j1rԜ?j2{KY (j3Ԋ#sVj3Ԋ# j3Ԋ#tj3Ԋ#Yj3Ԋ# j3a._QU?j4!½Uj4!½Sj4a= j4a= j40KEQvj40KEQj4~bSj5zj5-a #j5"#j5,>j5,>j5,> ij7}Upo j7 bg5j7 bg5 (j7 bg59j7{.a5(j8楏!Zj8w[oj90n-A j>R1REj>R1j?YA\Njw>A\jwG<RBjwG<jwG<KjwG<jwG<jwG<jwG<CjwgHCZjx- # $jx'/o>nRjxX-8jxj$sjyʋjyy # jz?7*RVjzR$Qjzzc @jzDIqj{z܋S j|pEAwtj| [j}M(X j~TGm j~ j- ĄOYj\ 'LSj\ 'L j\ 'LjDJj7njHW jW-jW-h jW-tjW-j ,j,s ? jA5mjA5mLjjJK jݘK]j jagѐj9j9Rj9?j9 \jZ jZjBd ,`jBds1jBd j?߅ ,^j?߅.jb}g<ju7j!jIHjxj\q jxj\qjV`jj Fj jEbjDYjN7c@jt˒jt˒ jhsQ&jhsjhsSjhs jhsjhsjhsjhsdjhsLjKE .j܅3jT"jTjTXV)jWXNHcKj&jM2"jM2j26lkj26lj26ltjMjJ<#jJ<TjJ<%jJ<jwij݇?j* jW{Ae"jW{Ae jW{AejDjhhtj|h%(jojbRj*!`\ j*!`\jIv%K jمjمjRjjx[vJ] j\<Yj\<jWMsj hėP jFNa jjj^( j0R, j|ˠFjj+ j+ jSO jGKr" cj | jy.Kjy.Ktj~N v j%wي j1~jjUjrsjr $j 3Crjj j36x:j4 ׋a `jk:}}B?jphrD#t]jphrD# jphrD# (jq2, jaW3, aj3X=joS[joS[ 3j I}S"jʥj߮>v#jgMZjŁ<?jFkKj:^y{j/p6 j={ja juRe`jWahji[jzRjAba2?jAba2 jD9jSjejSjjSj jSj j0oQÉ ,j3%nj;Ƨaję+b ajMsfa j-ej1vj|C$j|C1j|Czj|CGj|Cj|Cj|CRj|Cj|Cj(3jzyjo(& jf3Ӵb!jΌ3 jCg#ju\b !jwikL j8zu j<jM}Njš) V# j?5Y'j[0 j>ܶ/; (j>ܶ/;?jܤjj9AY}N ju/` ju/` jŅ( j]bjPn9jRib jƲh­d j匙tj5?j5s jP$jjr'zjO LN jjM-jjM-jȍ jȖ$sD j=!-j=!tj=!j^jA{:r jX, c jX, \j W'fjj W'f j W'fvjS׍ʣ1 jS׍ʣ1tjyً j͝47j 9 j! jkXsjϚ j)cW0 j)cW0 jab jabjabjЪvĐbR j<>jӰ iQg j ijl,)Qjl,)K jl,)jl,)j;d j&Kj.֢Mtj^zjڏ o ,jڏ o j|Rj-YF$ j-YF$ j-YF$ $j-YF$8j-YF$ 7j-YF$ e%j-YF$ ,j-YF$ j-YF$ jC;d g jYi'j4"j4?j[-Jj`:Ej2˪@ j[t j[j[ ij[jj=c#j#d5 j4Abj?Gjk#>?G k?>+kÂᶕTtkÂᶕT kYˈ#L1k7>k k7>bk~k<R k< k's4kk > k >k >k >Qk댸Lko1Jko1Jks6(HkƇi< k5Rk,4DF*NkTik{,'& Sk]kk ϗSk ϗSk9(ƀ*krt9dQkrt9dCkUq/akby!kX+q $%ko k!І5/ \k!ɠ3IXXk"g2JiKk"k"(Ijk"(I sk$!r k$BrFk$BrFYk$BrFak% ltƗk%#b_tk%7vk%j~k%j~Uk%j~k%j~k&Ksk&Kk& Xk'X ,k':2k'ZMk(+~k(u#=[ k):sk)rk)rk)l k)F k+"x$k+"x$k+47X?k+47X (k+;l^}-Z k,ɰ<{vk-M[XYk-Wik.gpV ,k/A77Йk0u#S>Ix#k0u#S>Ixk0u#S>IxR k0u#S>Ixk0u#S>Ixk1K [R k1< k1GMak1g+ez ak2gF# k2NYk3z+I k3bI)&k3bI)&k3bI)&sQk3bI)& (>k3bI)&,k3bI)& k3bI)&h k55-nk56m ( k6yfk6yfk7h k8_Qc k:+Rk:+k:ejk:`$?k:>Fp?k;,I?k;'kA˱_kBo=hx kC12w # kC:ʠ6RkCB |kCP.~ jkC@5|8 &kC@5|8hkC@5|8j kC@5|8 kC@5|8skC@5|8 kC@5|8 ikC@5|8kD_^ijYkD kE)z sMkE)z \kE,?kE#/gkFRjLkG(!U?kGIDy kIgekIo [kIo  kJ.skKĨYx?kKokL Z#kL_Y\ # kLˮ*'kL&eskL&- kN5OjkNk1 . DkNk1 . kN}M'kNM6:kNM6kNM6kO]CkP%SavkPϒ #kP'"kQ%߃W kQz:kR1 kS60RkS60KGkS60@kS60:kS_2XRckS_2XRckUMth .kVbPkVbPDkVܓvkV3X{ !?kVSkVUi iAkVUi $6kVUi-kVUi|,kVUikVUi (kW! |_kW! | kWmRkWkXj+ ZkY|`b kZ5`s k[(Ak\꤁&Kk\㚬 !k]+k]Yvk^J~\# k_2ǛMyk_2ǛMy ik_2ǛMy k_[{xΧL k_Uk_U k_UKk`"ikaxka @ ikb2(7bkbo>_kb"R kcm}6kd$@JkdT}^"aYDke%,]ke%,]Qken ken[kf^v`]RNkf^v`] kf^v`]kh(~`Dkh(~`kh >vkl?bkl*bkl*b ,kl2_Ckm2tkmا:&koznd rFkozndj kotH# krjY?)ktet);{fjktRC$ktRkt=F&_ kuA=˚<Sku3Rkv鬑ikw[vkw[vkw[vkw[vkwƿkwƿkxqt<tkxqt< (kxҲky>>ky[^j8gkyv0YJF $k{(k{C#ߦRk{D)k{ԙ#gk{ԙ#g[k|k|-vZ4k|LOU!k|LOUk|LOUk|X20?k|X20 k|nh sk}ؿ k}`bk}J3 tk~OsY|uk~q*~!oLOk~Fb k~D| k32.ÐYjkaMū(KkX#kX# akX#kAG/ kAG/ak$<kހkަQY k ekk UkYkR~>k8d[Ck#nvks ko*4kZ -rskZ -r k $k RMk  k  k ]k k k Zk kO kH n k@Qk= skS03 k=fRk] ak] gkwzvOk_AhRkjl]4kjlkjl kjlkjlk b1k b1 k˫b mkx$sk\D \k>2`P kHNkHd kk0Zek#a[ ck@ckG^8 k T k T ik T ,k T ka ejka e ka e? ka e ,kE8kTmk͗NN6 ,ky G k$ UVk$ UkJ6k@Z~ ^kbJ?kP?? k= rk= kbWRST[sk>8 ik>8 8k>8 j1k>8 t k>8 k>8 k8Qk;,x tk3) ckKkK k0u2k`O'k(jYp k2*,z kѢo# k$k(2N?ks ksk$k 1qDk: \k=p3Nk43Gk+kՐFnk RkR kR kR kR ikR ekz#kWF^ (k:&.vkX;gGkX;gGkF*R (k'bA k'bAk~i jk%Jkkw mk;*N %k (kAzkm!k*sk~ѽIpm k~ѽIpm vk7V}k~Vk/Ah} -k/Ah}+k5 #k~ k~kj}Rk(k[x k[eD܉v ka73WkW:k>]5kzu\pk) xNk@ϰ kz^p akz^pkN skN tkqa,okĮ'Pkg9kg kgkgLk_9tkzKkċV| akċV|kY36N]k!75k!75 kΕ:\ k4LvLkɒ3D8kɒ3D8|kɒ3D8 ak"&Rskʦߝz]b kʦߝz]b (k{skSy k͍nqkͻw`ks03CkL kkKfGnRkKfGnQkυay .k;(mhkTnޯkEgkgk kԼfk91 \kV*|?'k9!: k:ʠ ,ktd:gktd:k, H#?krt# #kp\^UKk^>Q@kC #k  k{| $k>@kk>@k k>@kk{K]?kjY? kjY kjY ekۨQDSk>Î) $ k>Î) $ k>Î) $sk>Î) $ ,kekkkpkp ikߡi`]kߡi`kGk` $CkGk` <kGk`s%kP&Bk:N ik:N k:Nsk:Nk첈Qk첈D ka-Lk(~ kQf=}j k `;  k `; 2 k5VklakW)Cd?k:cC \k:cCsk k YkgpV gkgpV k\`5k鰻;knlg} kpٖwk4bm.OkS Sk[kl $kLkTSs k `@^sDkQv4t#akU&"kU&"jckU&"h.kU&" kU&" ktokϴ/آJhkG| kG| $kG| k񨅯Qkx< $kDL ckO5 a kO5jkO5 kO5sk!nk1e +kB \kik/C , k/C k k62Rkڠh' k[mk1֧> k1֧>kXs!*kQp- ,k'2Fok'2Foj;k'2Fob k'2Fo k'2Fo kI| kI| ak6jwkŴj {k9So kVO6S0kVO6S kc9nYk0LWYkCMo(kCMoYkCMo kCMo k?;pXRkwkwPkj~a k&L(kA kg> Tjk6pkc^lUsk"v ?lэ  lэ jlC"lC" lk.YwX *lk.YwX l8lJSl!;BldNP8Olx$lx$ ^l?lbVĕl3RH alPOld llYs_FI#lYs_FIj l1Ll }^ l Rl  $l VdMtl VdM l \ l \sl {]sl >}bDl Pת]l ha l VhKl{Bujl[[Ll[[Ll!eC3ZloQ#leml}C`lZ)K|slZ)K| l<Ya l<Y#l<Yl jl87lgNX lgNX"lgNX?lOVl1|blyl'V:l'Vl'V lua*?l1 \lS_l0Z\lG_Nl{ )[l i l2h( l; , l; jl; il; l|ôl^-FSTP l"L_jl"L_jjl"L_j il"L_j l"L_jlZIvlO(vlۃ?@ wl9!NlGÜ lm.ž:l1Σsl1Σ a l1Σ ,l1Σlkdl4l4Dl4l'Ŀ l'Ŀl'Ŀl'Ŀl'Ŀlll['*jl %Bfbl!=U l"BZC5l#6& l$` )hl$ofZl$Gbl$y%,jl%CNl&_t'M -l&_t'Ml&Ǜ'dl&Ǜ'l&+ll' hP];$l',tl)LX73sl)LX73 l):b2 #l*B`fl*B`l+J? L l+J? L l+\cl+\cRl+\cQl+\cl+\cl,r^l,@!S l.{|l._梅 l.5&^X~l/v1?"l1KC#Wul1! ?l2А l2Аl3&Q l3|zVl4$G$^l4Rt?l4 4Wf l5{U l5=ڏt (l5=ڏt l5=ڏt l5l6,'? l6,'?l7aߋ&hsl7x#  sl7Tn?l9ENl9_%@Ƕl9bR'l:dl:zxp7l:zxp l:gPl:gPRl:gPl;tc>à l< (}?l<9:e l= l=G~mjl=}D,l=m' a l=bll=70l> ̗Rl?#+Al?#E#l?#El@0}G8Z]l@7ՏKl@7Տl@7ՏKlA7 lAwGlA0% lBnޅlBiXdmRlBhH| g lBhH|slB`$k{lD;u; lD;u; ,lD;u; lEBE{jlEKlEpB lEpB *lEx lE#|$lF)`lF)lF~/%A lGYZlGYZlGfq lGfqlH lH KlH9bFpt lH9bFp lI7- lKeCP WK lKeCP WlMlM1Ew>5klN_쒩 $lN_쒩 lN_쒩 lN_쒩 ,lN_쒩 lNJ%lNJ% lNJ% lO [IOO $lPi|R lQ@>B) lR!ba?lRqJlSx?lTS[{1lTS[{1lT<U 2lTDj]lUp?lU(lU(lVjX $lVjXlVjX ,lVUz "lWG>JlXotClY@=lYA_-?lYA_- \lYE*YlY~ p[mlY}w elZ>lZQlZrmRlZG3jl[ 0Zl[{Dy"l[:ްs[l\Ol\R  (l]^, l]^, l]^, l]^, l]^, \l]^,l]^,hl]^,|l^\`;njl^&K l`d0U\laK7NOlai2?la KlbYE4Alc*ejlc*e lc*e?lc*esldysldt +ldeV ld%g]leXY]leŀ,< elf4llfӸj[lg0+1 lgS@ v6lgS@ vlg_[$R6lgnVlg[kTjliyԾ lj ?Alj lm9U?Klncx,l'loP ;louvloo}tlp?lqi7lv)݆#l$}#lMe a#lC l; RlZoCPlib5+vxlib5+ lib5+lib5+ (lib5+slν clνlOam lB:7lB:7lB:7Yl▶l}@ jlsΌv$l=5 $l1Q&dZl1Q&lNY lNYl_|Ul? :NXll lK l llR?,'lT( a l`o0 \Il0Z? l0Z? l0Z?sljq4lۍ4tl1K ? l1K ?l{nyEl{nyElR \ lRgkl;bb il $Kl $Llr* leF ml&(Xl&(Xl b̾sl?^ lbeI?c (lbeI?c ll-`ll-`Slܕwx +lٕ15l7 ,l $pG?lY;pflY;plY;p lY;p +l3lY2# Zs lY2# Zlr!Ml;l;l;lp5?lEDpO? lEDpO ljtlj \l& ll_:}j l|Il8lKNlKNl_MA l_MAYl1ll-Qvl-Q9l-Ql-Ql-Ql-QQl-QSl;la lƌal߹l lCU^h lCU^h lkKlkKSl8l 3l8ltlWb"ll?lASX!lASX laq laqUl leK2l!fPVlIƄld<Sl0K l0KlwFv lNkTr3'lNkTr3slNkTr3 lĨϑ5?l5KlG$lŎY?j .lŗH5]l˵>߹`l ]GlA+lǽm:8l%blzsY0lޙ&lS@(lS@(tlʈmڨ,tl!l*l-:xylg  l=s &lq xLlq xlq xl, J5jlTA㝆 lTA㝆 l&c)l&cDl8ƀ ^/l8ƀhl"Slըä* liTSl> RS l> Rlӛ2ۋjlӛ2ۋlӝAq[l! 3 l! *l!lwttE?lє6lRlפX#]lפX#]let۬;lٹM#'el=;lڠ= lڸ[ z5 \lڸ[ z5?li li l۱. #lpH(rGslpH(rGtl6;=/lH,lސzVE?lYls?l,Kl,l8eJ a liF l#gfl>+B l.F9 Nl.F9 l#Ul E$ l E$l-cl^$R l^$R , l^$R l`c  l;G bl㽭H&sl㽭H&lw0lF&l²dll@sll@?lLel lLelslLeljlLel lLeltl׹%UqD l׹%Uq l׹%Uql׹%UqlxҴl!RlP V~ l1H\"l1H\" l1H\"l/"l/Llo  ll؜s+l؜ ,l؜l؜ al؜ lM5Qwvl6M l6Ml) (l)slsl,@t l,@t (ll"Vlf(XRl>Vw8 lWKX+ZlWKX+Zld=rlyє]*?l|vfl|vlRlՐhy ls7 l%p܏klPwPk6lU؋X l110nl)eN lƚ\sl.ROP l6' lpf{v lE{clE{cl1xr'Yl^)N`l4KrSl4Kr:l4Kr-l4Krl4Krl4KrLl>/Rlܤ40 lܤ40 jlD]n[ lAAlTZl@B7%xl@B7%R*l@B7%#l7_3dl7_3dl(d?l(dfl(d ( l?]%LlFb m  m Lm m!p]cn m!p]cnm!p]cnYm!p]cnmQT4 mQT4 mQT4?mǎNm sim6 m6 m6m6m): m6- sm&g 3m> m>jm}oF. vm{"m ۚ>am Ԕj m Ԕ $m Ԕ m Ԕ \m Ԕ?m VZc;m 6?m #=Umm >WX1 m E02Zm SZ2m EVMm{C'ym%KW;mO%mO% m( ?m^jİt)m^jİ m^jİmh:mmh:m $m~՝}mDڸmt mtjm}8Iڟmsڷm}hyτ = m먖mIh&vtmIh&vb m^,zKm^,zKmuem ϓUsm ϓU `mJ!mΘ9uKmΘ9u[m3"O m> gm[:ZDm$? m$?j m$?m$?m$?mvm1oZm4ϊ` ,m|\ mHv+! mHv+!m:@Mm 1nҽRm kGS $m w^gm yH m yHm yHm yHm!ʘrvm!-ңw?m!-ңw im!ˍۼ m#'A[m#&=R m$?km&N m&vCm&vC m&vCjm&vChm&vC ,m&m&7& m'4m'4RGm' d im(P? m(P m(HC?m* + m0Y&Rm07Dm0+A#m1?i m1-% m1-% m129R0m2.jĽ,[ m3Z~0 \m3m3R m3,]<5?m4G 6 m4H^M%%m4?jm4? im4? m6:>Om7R'Ydvm7^\m81<\_/m8KɢXK m8;<lm9't\6dm9sDm9sm:MV{V# m;Q^F am;t],% m;m=yKm=Ꜩ im=lsc)m>':m>Pzx[ im>Pzx[ m>Pzx[ $m?*m.qm@ Txm@|. $m@|.jmBmC+YmC?$ /mDSmE~imEMy]|mF_b mFK] ?mG` DmH-ozmHAjmHA mI>m&t mIM nmX.ɲmX6b ,mX:nsmYo_gtmZ1}HW s mZ1}HW zm[m{m[m{Qm\~EPm\~Em\XL m\Xm\XSm\X m\Xm^Qhm^S},]!m^S},]$m^mr߻m^iCVm^iC m^iC m^iC m^.uKm^7=m`. im`yOm`yOm`h |mb]Z?md'vmd'vmd50mdT7 mdT7 md[xa'md[xa'mf& mf& mf& mf,G;vmgO?jmgO mgOmg4.mg4.C mg4.QmjK+vmjK+ mk%cS ml5'PS, \-ml]$NmmaI*?mmfmmom!dmmom!mmom!Rmn-xmnD*MYmnD*MmnD*MmnxLh mnADmnC moWW0Nmo{kWv mpKcS mpFl$ mp,(B mqaHmqCcS mqCcSQmr>|><j mrTeLdyRms]RELmsxPLmt\?mt\"mvqa$ =mwim/#mwim/mwim/ mwim/ mwim/Qmwҳ4mwҳ4 mwҳ4 mw^V mwUqwmwUqwRmx 研 jmxz&tmxY!mx. ,mxhy$ 'mxhy$mxRߙ (my[pL^my[pL?&my[pLmy;r"R*my;r"my;r" mzPDje #m}GwQݺ -m}('ݩ m}('ݩ ,m}h=t m}h=sm}9JZm}9JS m}9Je m}݅Ejm}݅Etm}ɍAm}ɍAm^5Xx m@smz8;dmYm5 m\mFX mFZ mξm)ymRm "^m "^KmkAkS mr Rm"u ?mYj 2mYj mYj msxҹ g mCCmGubmGu m((eP mp7v@[ cmO mxtmm{#m6ZmbmN(mbmN mbmNmbmNm~$Gm~$mIQ. mVu]mUgL?mGWmhL%$mk+am'.dCem*c/Lm^ mwcNmD}bNmD}bNm*q>m[l?m[l $m0" 4 m; nm; Sm; im;m(MV: m2Bw e[me me m#mXW9?mv+bmv+mv+m6 CMZ mZbm{, wm"m3 $m3 maSFm%|Iam}ΝF i m}ΝF m"c<mpD_ATmzmH(RsmH(RmMXm-ٽZmٌ.? m>Nm>Nm>NUm2A ($m2A m ӷy m1?m1 mRmqmщ]m30TEm#m7mM; bm㭜H?mzkam6θpm۞xZ m(Dޚvmugmv'Cjmv'C?msvIRmM4mMmMmYfLmEP,[mה^) im%W3 ?mpRmpmE i m @C m 9m}:zS m}:zStm੉VmLFtm'Kmʥv0j mڏBd# cmj='mj='RImj=' mj='mj='mj='mj='m9*k.i mwn0 $mlp"mPy^SmhD;mhD;Sm2? mū!5KmbNm`R@mvSyX im,|{m7a`y&m 1OeVm5~ LmgD m9 m9 m9mi t&mҼ@ jm8$8m8$Cm ܴmεAgmyIՑ.myIՑm_"h\Km_"h\m| ^ mcau$ ,mcau$ ( mcau$mcau$ imcau$mn2 mщ*8vmъ6mъ6SmNOfrm_eVt'm_eVtm_eVtR m_eVtm_eVtm̀{p mzumրomy(emη6m` ,mUvmU m؏q~3;smgζ m ,?mS<-fmS<-mS<-QmS<-LmږuEm[C{ mNWCm<(Q m<(L m<(mW mW RAmW <mW mW  mW mW Ym0 m.䞂 em Qw?m Qw (m Qw rmf m뒦QmiWs miWm,AmL P m'(啢mjamMk L m@gmWz" #m{pډEm椒R , m%~} m%~}j mLܿ mM #/mM cm7Rm0jPam0jP m{y88 W $mNdǮޣ jmfLv#v m  $m뼑%DDm8mD;лK mMp#@8jmY=s m+!} m9M~ma> bma> b1ma> bQ maem>rt??m+J0 % lmsfdm]m~v m'"?mI| d8[mSR+F mEXmm[Hlm8 m0q $mծ_smծ_jmծ_ mծ_mw nmw nKmw nm㢚 m b|[ mN (mVmyol=m}UZm7 c mch7 $m#* m#* (m#*tm#* m {m"[q5 m%qv m%qvj m%qv m-& ,m-& m~7 }n64n64nf] nJNLncx ,ncxncx $niepUn>6 tn>6 ndy\Vn1jvnsjn5[ nm{ ( nm{n5{${ n\am3 dn? \ n?Kn? n? n -acstn WVA1 n fUdp en jcP'~n qZn ojnu*ˣ nVw nVw n< %Tn톸n톸n톸n'E -n in~)ej nwLnw!n@nKS\VnR n.)[zDnU n3&vn>d`+nfC^y]nii%{n2lNnF:,l nF:,ln ҂H]nY|3nY|nY|dn憞 n憞 n68n[n.+Ҭ n=pgvns` &n tn":Zŕ:n":ZŕnijUnijnij] nij'n$tUtun$tU4n @n @ n @nܰn^`?n68k$|n68k$ ( n68k$n68k$n68k$ inzM>nzM>n p#j2n p# n p#n \b9?n \b9 n \b9n!xf[ N-n"nHz n"&f] n"&f]?bn#ȁA.Vn$Sɮbn%gS$n&M_uNon&M_uYn&M_uRn&Ozkn&[çj ,n& n'x , n'W n(-=wn(؍x;Ln*w<)vn+ >Ln,>t 7n,>tY0n,WF'n,|Ջ{R4n,|Ջ{?n,|Ջ{ n,|Ջ{ n-uLL8n-uLLn-%Mp,n.`oyn.ҎnF n.ҎnF n.ҎnF in/O?n0_l&]n0 (?n2}9Hn2ˍ vn2ˍ n2Uvn n3n{= n3n{=Kn52*on6 \5(?n7Kch-sn7Kch- (n7 XCX?n8GS{ $n8Y?n8Yjn80E ,n8hųn8pDĚn8/n94n94 n94 n9 ਍n9RRnQn9RRnn9RRnDn9RRnn9RRnn9RRndn9RRnn:?-Xn:?-Zn::wkn:\& ,n=!} n=TZ n=H n>%#Ln>v'!Fn>ΝTJYn@A;? n@A;? n@A;? n@ r^ -nAb jnBH>? nByu vhnByu vnB)̏vJnBJߋRnBxH3m nCu![nCu![DqnCu![;nCu![6nCu![nCu![ nCu![nDeY9 `nD02nD8o$LnF &PD nFkLWYnGٌeHnGٌeHnH"X 4nH"X 4vnHbk nHbk `nHͶģ gnI.,bnI8Pgj (nIvnJfz?D;nKǃnK])HC nLDǣnLӦ nMAKM,\k nMA$snMƒyb{ cnNG4j nNj6nNj6jnNj6snNoZ #nN4nNE"l$nNE"lR#nNE"lnNE"lnPR!+/nPlH nQ}2SSnQL LnR6> nRF"JnSfLܢRnSCPznS $6$nS $6nS $6DnTB]nTBQnV2inV{Nu nV{9nWYޯSnX`nXd8t7 ,nYlWX+R nYlWX+ nYlWX+nZ 1d nZ 1nZF anZF(nZFtn[7CU n[7CU n[=V?n[Č/, n\zn]=,n]=,Rn^Mn_F an_F ,n_`4 T ,naTu{na}]$QncsWgdncsWg8ncsWgncX$ncX$ndPzz jndine6﹐neZTnfD #S nfD #LnfߦuYngYt5jng\ nh;ޜk$nh;ޜkDni#)I ^ ni#)I \njbjYnjZvnk)b#q nkY* S]nnQc> nnnQc>t nnvo #nq[rPtnq'Z7 nq'Z7nq'Z7nq6'kynqD>_ nqD>_ (nqD>_ nqH pKKnqQnr,DZ8 nsl{ W jns4Vnt46xZ nt46xZhnt46xZnt46xZ ntCIh$zt$ntPuzr\dntV2h1 2nt]l8nx^휸snxF]]nxF]]nxF]]nxF]]nx^? nysN:y snytU  i ny2zbnzɡyKnz^--Wn{TSVINn{n|wD (n|wD n|wD n}P\NĊ \#n}P\NĊ?n}P\NĊ n=~6? n.jv n.jsnжS \nc-k)DnAJ§nwޑn ndR n|^IinSrynSry nVEnVE nJ!n9`t \n9`tbn9`t ,n9`ttn?ӥn?ӥng  ng Rnk_@s n.yu?nȎ#& n)`'Wn)`'Wngz{nR1'tnSF (n2U[?n[lF $n7Kn Kn=}<?nV@1g n'g&Gfn ov|n`AR n&&n; nt}/x snt}/x ~n- =-tnHIÓ?? n뫶 *j n n|VUnEDnp;nR4Yn^/I i n^/Ijn^/In{ n/MS nz:n<?n< nŰH #nhCp?nc n7K cn7K #nXn&  in& nE˟;vnȺVn8SnߴG5 nJjR[nw k'nm&=,n^6&n02hZn5c%5 nvg7hbnvg7ht n4?qntJ ( ntJn)%[N8n)%[n9n˽:Ln˽:Knښ inT7onT7ot&nT7onT7o nZ|?nZ|"n (n  n nn j(#njonn)Un+ϖ nת n10nnUc nUcnUc nUc n{Yisn{Yi#nPޱLnȎ nȎ nӉSD nӉS nnRҠm anɹP nɹPnɹPnq n& G2nk"nk"n{+Qh nʘ ?nd2Cnd2n n adncqrfnY#Fsnu)dSnͽ@9?Tnͽ@9 nvnΎR_nΎR_n(jn  nV"#/nUV]1 nۃ/ cnq\ \nɃԸ|nӷY|n2wXnڣ*nq& (nq&nI "LR$nI "LRnI "LR nI "LRjnYznف?o1}n1Ό ,n5/?nXië`nXië`LJnXië`AnXië`Y;nXië`&nڋGA nڋGA en /R n /Qn /n /ndQQ ,n%!nܖv$x n;Ksnب cn<n3{ ^n.n҃@ an;YGn nh"n~|fn~|fn#q?nI RRnI Rn)`e+ nMj6qSn]kj n}o Snr2 nB;n <n <s n < mn~ n~ n#U n#U n#U an["Ӑ e)nfXi1BnfXi1 4nfXi1nfXi1 mnxEtnCHخnX_/rnXg8Cn h%pn gr2 "n gr2 nU}=jnn]n_; int喏n)P n)PRn)Pn%H0#n%H0n8[n⽱knCutnCunǘz ]nZ:Fu(ni n({hn({n 3t n󠣷dn󠣷dnKgn 8_n 8_ n^j n n pvn p (n7 n7٠V.n.% "n^vsj:S=n^vsj:nDRzD nDRzKnDRznE\4oQo|po&S]] oO|oR)K oR)ol|s; ofRo [Po:no`o Ib0 o Ib0 vo TcTtNo _ So Op o 9Sk 'o 燓!o ? o Alo 4o 8hT o  o Ro ]m= oVE ok; q ojxj 1od,R lod,S3oƃ.o<|HDo<|HoZ/ otLU?oո  oո Yot[okK| o]DvWo'o{:o'o{ oZHBLofwoe; $ onono3V!o3V!o'ioo+4Zoo+4o-}Ko&7ޥ o<[ o<[ eoto mowRowo]BOko^+XR o?KRo BbZo%џdo&4aƜo&!.Q o&!.Q \o&!.Qo&9So'#` & ,o'#` &o'Ý6Ko'Ý6o('eRo)׀o,ܐo,_O|o-pfjo/4ۋJZo/-t2 (o0kX7 o0{uBso0!3#o1,զR, ,Oo1,զR, o19Gso1vo1vo1vo1vo1N lo2vo2co5;#F o5;#Fo67(;OSo6Tfo6; +L o7k$K8Qo7k$K8Ro87o87o8@} $o8@}o8ܢRo9TKﰣo9fA&o9l8Fl?o9|$X$ o:uWcao:uWco;ZPXdo</*\ o<`ajo<`a ;o[i $o>zQo?yfkY o@3 CLoB2z̭>oB2z̭>DoBE>0oBE>0oE֨pRoE_( #oFtՏ4oF#oF׭t oF׭ttoFϮM oFϮMoGSH&6oHk4mMoI P[oI58+ oI58+oIk6h|oI͠%~CoIv^SoJ -g noJ -g ^oKAuoL%uжoL%uж oLP"KoLP"Q.oLԠ=oMK,boMK,soNZ9xQ[o^[o^ҿV! o_%3[o`#X o`#X|o`T:oa @ rob' $obW 6#'oc9eRoeqvuof_bof澢2K'of澢2ogKYNogH.NVogH.NKogQ iogQogQ|oh% oi2de:ojSM`oj/Koj/oj/oj/RokM c okXool󲬚Rolom"AG+bomQV\Xomڱson aons{ $ ons{onM7 ooAx?ooֹsop5;5orlosz<%I?g;otQ|B|ot^otaAVsou#\ outhQ}@ souvK7ov"MF ov|q cov|qAov|q #owښbp@ , ow@?ozBIVsozBIV ,ozBIV|o{<9Wvo{<9W eo|y ?o}GuK o}GuK o}kV.[o/Ap: 7oT3voųgoųgogґko)LcMn o)LcMn (oJnMLo)b4:o"FobB3odmoeoҋ4toҋ4 oҋ4Yo#UĤ io1Po1PoP7jSoP7j oP7j& o(Xo;B/ko}! ?of!} of!}on?o'+#3o(woR?#o.9o.9oV7oV"oc[R)oc[!oc[o׭NoaGlA' oؖvk oZ o/Fx2o/Fxo,8oo,8ot o,8oom'Rom' om'Dos( o3ouoHBoHBoHBop!o!aQNoR o:j;~oA. oA.?o- ok+o%+Ao%+Ao%+Aoxr[H \ o~Mlo~MlQo\ o\ o\o.o.j ov[<joL 3oL 3 mo5Г!o@ݞ= cBo, *oξp!oξp oξpYojh4owou?o6&co;K No;K o&@> ouGo IƤ?ooooCң ( oCң oCңotC oCoE\D7 oN9o%b9ozeLo* oL ( oLto,bJ o& =s o& = o& =|o& =jo& = o9%c>on)joUlp oB8 o^l\to^l\so`9)= onT} $o/o?o7k5oLcNG oLcNGoRK?oRKjoRK (oRK o( jozktdSo EoQjM ?oWcotSQoA~,?%[o^T7| op(9o<ۭooboI=oEw0s oR |oͲoͲPoͲo*=[l]oԷ5roԷ5oԷ5R|oԷ5_oԷ5YoԷ5S8ob0^DoontoO5oO5ojUo(G o(G o[E o4#I oэN/ o.zoI1>-GoO"6o 7Ճoğ*p1KhEoğ*p1K|/oğ*p1K |oğ*p1Ks oğ*p1K (oğ*p1K ioS{?oS{ eo-"p!zoÄ(_ "oÄ(_ "joOVe sof!z ?o&ՠoYe)okKooo+9Ajoi oi oǹui%or xFo+?Ќo:o:on"D o<1,oJ8joLb%!B oʹĶVY7o`uo@rNo%[n% jo̮wko̮w so =ooPvoPvoϲLoϲLo۸dv"oDˏR ` $o_"$?o`}g1 o`}g1so}g/o!oѰb o{ZhoEF oVH _M|oVH _MkoVH _MtoVH _MoҪ!v . oҪ!v ao,(koyà3oTc oTc oTc oQO# oy hoժ? C o<~ \oH6KoH6ox<?o\Aoؖ|H*oٲ\ o`ʹ?o3">to3">ko#r?o}w(To}w(T !o;-RoP6NoށLo?)@b$oJ opy)?$ oeb Qoeb #oeb o^Ɠ6 o2 o\e  $o|t $oö́\of~f Loft4o-o-o6o,BvoEro$L]o7r #o'njo:p X ip Ssp Skp PvZp  x"p  x"Kp ůZ;p ůZF(p ůZ p ůZdp _ xt"p _ xk p _ xK p ðsp ðtp ðkp93sp93 ,pJPKapݱKp! (mp U~ pOv#spn bpn bp9~a p{SpVDX apVDXjp;;s(Rprp2 eNpYo| p p5ݏR p3հcM jp[ypjQr:Kp=Cj pnAV pnAVjpnAV \psR pŬF>plsM6 ap#6r pz= np Ȼf@p4/p4p "p ~ o[p ~ o[Rp ~ o[p!f?p!oì p"%`Ҵp"%`Ҵp"%`ҴKp"%`Ҵp"%`Ҵp"1- sp"9#}p"?Cz%Lp#> p#cr(kp#cr( p#cr(p$,?p'zNRp'!? p(`Ajĵp(`Ajĵ%p)3$Jdp)q'p*txM p*txM cp*&װ:p+>vi p+>vikp+>vip++p,x-Sp,ozp-;DSp.  p.sk$u p.$H p/FXSp/\p/թkV.Z jp/( p/( p/37 p00ڲv p1nwicp1nwic hp2ǫYp3Pq p4l7.&?p4l7.& p4 p4p4p5X5q p6( p7*5* p83vXk .p8#Dp9 C[p:c p;nsJ  $p;0<Zp;"p`$p=olL p=olL p=]\?p>;?8p@Ԏa$p@7YA?p@Np@C=0spB s& *pB s&jpBXRU/ RpB9" pB9" \pB9" +pB9" (pB9"pCIg,P pCci]GKpCÛ-COpCi>? pCIjpEX1fpFd5`[vpF!0zpF!0zpF!0zpF!0zpF軀FpGV,:rpGV,:pHB`9pH ZZupI&spJ8pKS> #pKS> pKS>pKk-:pLylRpP̪ڦ\ $pP̪ڦ\ #pP̪ڦ\jpP̪ڦ\ pR0!sspR0!ssZpUe 2pVSzpVSz spW==pYdW #pYdW pYdW pZ^OMp[D{lp[mC}Rp[mC}p[is p[i p[i Tp\ }';pp\Ӝ^u (]p\Ӝ^usp\Ӝ^ujp\Ӝ^u $p\Ӝ^u?p]4Rp^|Y\ cp_i/U #p`Eu۫8YOp`Eu۫8 pb)1 \pb)1pcsxɎ apd#)*a<pe, {speTpeTNP peTNpeTNpf apf#8pg'% ,pg~˵?spgݛ phctdphOpi!Fpi!F ,pjh{u?pj`ZZ:pkz^wJ (pkz^wJtpkz^wJ pkIEdPKpl׭ QplN/plN/RplN/dplN/ plN/pl4wZpmf Bpmf R9pmf Dpmf Cpmf pmf  +pm}#pm}NpmyTs #pnc0L?3pnc0L pnJ pnC pnpnpo a - po a -spokaUpokapokaLpq"prg < prg <Kprtvpr?Ķptm`޳1Sptm`޳1aptm`޳1Zptb)G[2půȌpvd$T?pvmoҥspv_A1hpw#Y+$+pw'9?pwt}~ epwt}~ ( pwt}~ pwt}~ pwdY/WpwdY/ \pwdY/{pw "pwbpwl py3{vLpz kmZ %pz kmZp{^o + Qp{(%s!p{(% gp{(% ( p{(%hp{(% p{>́p{>́Yp|'q p|'q p|'q p}0̬p}l p~8Da ,pN}p sp(^I:spXp-ALp pAxspAxpS_sͻ p6p6 pƬP# p4Xps+p 6*p{Wpw/paOntpq pbRwpp$PpɢE pɢEkp}pıYRp2OSp 鲛p!%Bp82pnV4pZIS pUT pUT )pUT ipUT p M]kp M]Zp M]Lcp M]Up M]p M]p M]]p M](p M]p M]pz_pZqpj쎔dp"Uxp7X]-p7X]p7X]Yp7X][pL) "pL) R pL) pL) KpMt1}pl=p%JpJ R ph]= pܔÎjpc>K~pc>K~ ,pS pu6Yvp72Vp72VpӕMp…w Lp8Iqu* p1] a p1]p1]sp1] ip1] pZ[bpe>8Lpepą/o !pą/o pĴa wpĴa %pĴa pĴa ipĴa ( pĴa|pf pO!.Zjp~R.p~D pƌd}NpƜ epǡmw?p%–p? pSDpǧ"gp؂z}t1p؂z} (p؂z} ipzqڨ $pȞ:k pɫ(pɫ(pQr4 pQr4RpITzpo@dpPx \pE spA- pA-vpA- gpA-spϰ9 p &Tp_$bpfGItJpfGIj ppM6|?pӰ۽s% pԶ9S+Yp[(V& lp}:pJ.: pJ.:L pJ.:Sp֜ҲOp%bRqK $pYwp Ĩ,p)=TCL3Kp/kpϐHV2sp%s~ mp%s~ -p%s~ +p6Ǐ.p;%hp5a?p5ap5aRpۄ>5Dpۄ>5pJoM;pܬ4cp&tB #p&en{jp&en{p[m_|p[m_| p[m_|pٞVv pצ ,*pU#p} q+XdRqU2 qU2 q{vq a+qo"qq?d 2 qji_qBAL?qBAL qg:kqg: qg: qƮ6q0wLRqp\oqAq.޲ q<:q<? qD,(?q0 \qQ q N cq Vq fTq =\"OAq 1?q 9fs\q 9fsLDq 9fsq 9fsq 9fsSq !vq IKq Iq ILq"d0  #q"d0 qq  q  aqWyMXK q(?q-p}o qawTRqm's qm'q*q*q*YYf qGeQqGeqGeRq{j(E qL#5 qr q+ś.q/qWql-)qNTZ #qXZ SqM qOtqO qOqkSq%ΓtqyOg q ,7Sq !"\Sq!ysq!ys gq!ys ,q!ys q! q!q!q"G< q"bZ+w?q#E  q$'!d ?q$r1 #q%3['q&B{V6q&͙"q'As9q(+ v[q)kF] $q*?}bLq*R8d ^q+,u-q+,uq+Y[f"dq+_# q+p>oq-?&=:q-;l q-;lq-;l q-h)Hq-0@[18q0~djq0(\q1MqT q1MqTq1[&6)HBq1ȕShYq2mq2ybq2e\0>Uzq2e\0>q4f?o q5| ,q5g$q5s~zpSq6Bi5q6Bi5sq6Bi5 aq6Bi5 q6v?*Av q6v?*A q6rUq7*d?P q7)2дKq8 (#cq8Q@ q8Tq8d/q:>uRq;mB%jq;mB% q;\p[q;I7Sq<U.q<q=c aq=0q>q>?D q>|?&q?`BϴI q@)8 *q@߿6 ^q@ Kq@n9jqA'j?,qA'j qA9 qA9?qB [qBJfB ^qBJfB ,qBJfB qC 1qD/\uzysqDnVDfqE ޷uc qF/eikqF/ei qFjUqHWeA qK-&:)%tqK>Y]NqLB&S#qPGQ qQ x $ qQk,ZټZsqR-X+qSCLqSz?jqSz?qSSqTHUi*[qU/6tqV mPqV mqXS5m?qYMfKqYeS.$jqZ"y q[o smsq[;vq\̊iCq\̊iC Aq\̊iCs?q\̊iC!q\̊iChq]s:q^3q_GdYq_5 !q`s; 1j q`צq`צRq`צZqaB~Qv qaB~Qqa5csqa5c ,qa?qb@59kqbQ6`Wqc`':?qdetqdA2NgqdA2Q\qdA2qdA2qdA2qdA2qe@ .qeJ*- -qeJ*-qf?tqfGx  qgɤ~qg:+Wqiqxgqiqxgtqim qi] qi]qjQzȕR qjZio6RqkFݯqkx7 qkx7qkx7qki4qki4ql֡VN=ql֡Vql֡Vql5ʔZqlqmJAqnF Ig]qn[# qn!y2Uqn1f=qoJ̐tqpmdqp22 $qpi#m /qpi#m qpi#m qpi#m?qqӤqqEqqhv]5qrk_? qs* »jqs* » (quJ3@ |qvD qx]Kqx] qx] qyn(sqz$Jq{ͻeUq|%`Etq|gv~q}۪{$q}۪{$/q}۪{$$q} q~X`JHq4Zn c q=pq*q*Yqtq q ^qqA nq4d qþzȰqBe tqc$%{q{|aq+3հqY' \qݚ cOn eq}`*q}` qtHjqtHq"gN0q 27 qqb[qb2qd*eqZ۝qQGqa(]RqWWC qW0 cq3\KR|qoOFXq~]W? q~]W q~]W q / q}j(t qt.hqLHcaqW@Խ q # q Kqߜ qqN2?q,W֘L?qd21SqƿJYqq1I=qF"=W qF"=WqP qZJh qZq͕kqЫ% qI%h q nj q6>Qqhj%qhsqq+ q?q?qZaI q_'-: q *q'sq' iqˊ" Vqˊ"tJqˊ""qˊ" qˊ"jq1'sq1'jqK<{SqK<{Lq (tqH.߫qUm f,qyZ)q;RRqHq.1;?q'j qIPz 2qo9kq!Lbqx4qMqOۯ+ qYa| q9nq9n ,q9njlq9n "q9nqg|HQqg|H qg|Hqg|Hqւ V q# OWq{‰NqSr߄c qFg ,qc#b cq{ .q{ $q{ (qfUWq0mjq>Cb$qn:qI! \qa7$q6jqUl{ $q!qopSq.!@ (q.!@ q1WzbEq1WzYq1Wz q&}/% 3qH"`4 $qH"`4 q[Bd}Zq[Bd}qtfqtfqtf#qc(sqfN8-[qlBΊ q] \%q] |qq{sLq qSA iqSA q)HTh5q)HThq)HTh* qÒZP| ;q×A9"q×Aq×A (që7Jtq qtqk qM:- qM:- qM:-Yqi.oqi.oqŏ3$q.PZqƍ?qܹ qܹ qqBۡ/qqBۡ ( qqBۡ qUzq2q7s?p "qɁ cqɦDj7 qqe2qqe q'f% 6q̌E q__q9qͿT.vjq _2(q>z0) (q-< (qJbq2uK! (qKQWCqKQWqKQWqKQWqЪ[٪qѽe1aqfOdv qZeo9 qUׅ07qTEyjqߴtdqV?_ qV?_q׳6E4Jq׳6E4Rq5,bq$L!q+\7LqeX qeX?qeX qأqx \/qxqވEqވEqG ,qڑf2qR&qRLqRq 2:qۇ`OqY7Kqܤ)+7;q$B(φq$mq޴ωRqvR q͙qG+dqtOAn>]qaoZK'qaoZ qaoZ qaoZq5e۝9q[7qJWvp qWCW?q2uqnM #qg8vUqSotqblܭgq2w| $q кvKk qiqi qi aq~$)q2q2qeu qeujqSqo Dq" qaq6:sq6:trw<̖ rM~I&rM~I&reC4r-kr0KrO?r1?4r<&4srmq/2vr9i/rokk6rF nrF r^R r'] r1cjr5INsr.r#DL ir2HuOr[:rIs٠Rr r wTd]r a;VKr eiˣr eiˣr 5Kb \r 5Kb ar 9@Nr obr \r \r }r/i r Vzrtjrt?r."\?r- r ?r VFKr VF_r ykr9?|IrJ3FRrJ3FrJ3Frϒ;!>5 #rϒ;!>5 c rg=/@F Drx.lgMSrx.lgMPrx.lgMrx.lgMrda *rD F?rp栬r*5RrFn rJSr;d<rE{YKr?< $r?< ,r0rI>Yr:?r6cpt2i6r>Er? &23r@YH rAcwmrA^uUWrA^urA^urAɽ 7?rCfUrD'q [rDJ^/IB^ rDku̓VrDku̓V (rDߨ_ jrE>`RIrEiiY|rEiiY wrF g5]_rGU{vc .rHDZBJrI`pJ rI`pJ rInCb rJturJ#`MyjrJҾprJҾp #rJҦKYrJ|Ӹ srL" rL" rLP&9q?rL܈rLFtF $rMT=rMr4LhrMYZwsrMYZwrMYZw ,BrNxYpF rNxYpFrO ( rOrQ\("&rQ}Δ \rQc/wvrSZk 2rTiE #rTwPrTp>vwerU ɬ #rU Q ,rU Q rU-rV*lrXU#bՏDrXU#bՏ.rX/1rY~LD rZ7C rZ75f r[9#zk r]1r]=ś r^wc`Nr`aZ2(rabzUrbB͉KrbB͉#rbB͉RrbB͉rb]*< rb0rb-h nrcse[rcb7X?rd?Hrd"j!hdrdEK)revgFreHָvre=tKHtrf&o(9?rfגe (rh3QHWrh& ri̦Uo crj aWs.?rjC arjiK rkF[a] #rkRGMvrl/ lCrl`#6Rrl&sjrl&srl8ZzTdrllrl! rne^trn?ҩkrnF roMHf?rp-+ mrp\bx(rq+8 rq+8?rr.IWշlSrr.IWշlMrr.IWշlrr.IWշlQrr.IWշlDrrS,irrS,irrtĆ{ rs4 rs4 rt0$Dru0Ѿ/* ruh2 Bruh2 ruh2 $ruh2ruhb,ruhb ruhbUrv/!_rw[+w25 rw[+w25jrw$ߛv-rw$ߛvrxhHryp[-]- ryKa!?rz.Z #!r{7+r{۩, #r|v'r|v' r|v' r}TO4@ r~ uCbr~ uCKrH:boSr.{(#rǕ8V r,\J r*9rULg;Cr/a r*/f(ry=lrܐ(; crܐ(;jrVrV r3_ cr端Rr端rgo rD;5jrI{YrkY08rxkt[ rcTqrcTqr+P7ˏrF+,r>WFr>WF rD7]VVr2r)LrwtrD5/R|rD5/brD5/r [ rFCr<NJrv's erU r*Hw"r*Hw r}s #r }r } rlzMr҈'ry}0 sry}0tiry}0 Try}0YPrifrՑ/]r6DGrZ#]4@YrZ#]4@rZ#]4@tr][/r}Br}Brx4 r' r'  rKJX rKJX]ryw:rAz rAz eYrAz rAz rAz b rs%w$rVl rX|j(r >ulhr0` Sr0` SrC Nr{AF;8rОkr->rnZ{;^ rJhvej rJhve r]3?rԙ'( rԙ'( ry"rNzErF$$rYw rЉQ rЉDr+r.%&tu |r!"V؛NrDEARrFyt rkrrĉ^'rĉ^'rɻRr2c$jr2c$ r2c$rx?sLrŪ?GYrŪ?GrQe>-Zvrc[Vύ %rc[Vύ rƒF6ΰprFZ"JrA:rǕMrvߚCr:n r;PZ#r;PZrC \rɑKFX^rɑKFXrɑKFXGrɑKFX] rɑKFXrLr؆ͼSr؆ͼS $rw*W rw*Wrن_}3i?r/~ arXiIF{rۀ,ANr۬Y>YrOsꝘ r  r ?r5qّrJle2jrJle2rܵ"M(Drܵ"M(Krxŷ brݙc? rݸM܀ rݼxrݼxrML6rML rMLQrަ`)rl#GKrl#Gr٦ (rj@ rl08OCrE*rE*r" WrjriUri rʾr6:sSr|Dr L|6r{ߗ r{ߗ rO!DLrgZ cr^ $rљڄ?r*! ar*|rj arׄؿr @ rh"5r4QŘ grl] =rȶDrpe r`^br j6Cr j62r j6Rr j6KrVff \rTPLrTPLR rTPLr?]YIrJ ;$rJ ;$rJ ;$R rm{F9J ryklBjr ~ r ~tr ~ rZrlĶ rlĶr@ tr2 ,r2 rժ rK:Sr)`7% r)`7% Kr r (rWKr&49rX/psks 9(cs  Qs SN^ s(;h;js{[s4] sN s7S "s7Sss]Rse,s?sGk%sG (sG isGtsЬsl'%s2?s灎o]s>B:>UsZH* esoOs^y s^ys^y swɁw sE-J-tsRs's.t soXaNs0e|s z? s0xN[s{o;s{o;s u{s!9s"$5u?s"$5uss# } s$V<s$V s$V i s$dS6a s$e4?s%"4.ks%SbF s%g ʴ cs%!-s&[nKs&iẐ?s'0:Ds'zs(G^B>]s(G^B>]?s(G^B>]R,s(Ds)MV $s)MV? s)MV (s)k_ As)Q ePs)Q ePs+G{UKs,1Ys-$(P2s-?QJs-'ts-ҳ9Xs-ҳ9Xs.GJR s.}* s/u js/rPs/UTUj?s/~s/6% s/Pgs s0LDss0^ ,s1NlsQs1Nljs2`Ijs28Ls3s;s4R&s4R&s4R&s4R&fs4R&Ds4T s6"*O:s7r{/0s9tuO (s9tuOs9tuO s:.AeUs;G7s;G7js;G7sw?s? |as? |t$s? |s#s? | is? | \ s? |Y s? |k s? | as@FsAxG޶f|sAxG޶f sA5/. ,sABdsABSsAE% sB_6sC hsD" rsD5sEyssEa asFzWdmRsFzWdmsF kP? sF kPssHԌvsJM~sJ:קsK59QsLylKsL~jRsL~jsLt $sLt (sLt asMQπN sM!jsNH*tsNo) #sNo)k sO%?sO>`RVsO>`RVRsOf|v3sOkYlvwsOkYl sPW{%:sPW{%sPW{%]sPY,,MsPY,, sPY,, sPd9-Y}sPsPm #sPmsRQ8o sTOֺsT&S^ sT&S^ 5sU'= sUY? sUYsV1ˉ]sV1ˉUsV1ˉsWoWsW椴!PsW椴!sW椴!LsW椴!sX]^LEd sX sYO^sY1 ٯlsYSi jIsYSi Y@sYSi  sYx>sYx>fsZ1kj*sZDy sZDys[VGSs\m}ns]u4 s]u4 (s^.递e c s^r.Ss^2s_ ?hs_ hs`xe-.Ls`<͊Ksa3 * saJpȌsaJpȌsb) e3 nsbv_7Lsbv_7Msbv_7-sbv_7K'sbv_7sbp msbH7\sc%PT6scuWLscsh sd}>sdCce߂sesf!OshXC ashᏗv shVYE|siǒsi+!R sjSSsslBi smCOsn+ٷIsnl? soTܡQvsq|%ssqUc8sqkZ^ stQqMK sto tsto msto st-suW:sxP tsxP sx_ڈF8jsx9Ksy)#TKsyuJm syo4P $sz4)dr sz4)dr szV! #s{h5}q ss}\miRs~˂SaGsyi3s"Ο#s y s ys s4E|ksbssb/s WWhs#_G'sɅ7sBeZKs@cst#s] jsTJ ,sTJ s]s=m-tNsm?; sWL>.sN#u=?sN#u= isN#u= \sRufrO #sURs]|+], Ss~Ss~SsƐʐ2 i sƐʐ2hsƐʐ2ss.pw?s .  s . ]s . sIv] s1Ӯjs]vAss$]s Snr ,&s Snr a s Snr s Snrs Snr (s|1:sio<sa sd;sFRϐ(sԁf<sԁfs*m ms:fOs:fOsj|<sj|<sm sG3r jshҩslΏ sR3sK szh.$szh.sP$ZsqğdsnY:s^e js^es^esRKp sRKpsRKpss[ds~ʣ s8L!?s ࣿ9 s ࣿ9ss ࣿ9s ms ms5{s"s7/sLR^s ` (sAJ5Rs]Qvs]Qv[s as.x7s.x7s$s&bs!F.Ssߴr`sƾ͠jsWsfLs=e RsG. sG.Qs_iNs^ cvs^s^ #sTԁs17{ *;ss{ s{ts{ so sojshZARstBVsۤcYsrx^srx^ srx^ssZsZ sZRsZsZ%R sZ%R ss`-` \sTEds߻|-sF2sf [stkSsM0sM0 sMYsTl [sK&sKRs㧏A sz}s s=Qss?UAGss-,C s4?s~ 0;$s*s~TN s8 R0s8 R0s腞`Gvs^J"Fv$s^J"FvLIs^J"Fv>s^J"Fvsq%Osqs\@w |s\@w s:~h{sQs:~h{t sOjU!sO͠[ss0c #+ss0csيrs soh ,s0]sI$J sqsbsS? sS? QsoUAS?s7-NtI s?>wyvsksxN? #+sO@7sMM1- (s s.` *sƛ`sW js#syo s7wtsN Qs l YŀasegKs&Los&Lohs&Los&Lo $s&Lo s&Loshs "*sH? stLsEn)sc$#scLscs( lR s( lRs̈z ^s̈z ns,0'bt #1| \t #1| t #1| t #1| t]8 Xt#t-mjt-m t3I'%`Kt3I'%` tzf4! t;ACtt;ACbt;AC`tYd?tz@X)Cv)t {A t+i)tmCMt`m/ tI at8qYL t ` RZ t }]jft j]t [| t St Zt t ]t M?t M?Kt 4?tꝯ (tf8tiU t@J҈TKtz6,tz6,t{Wty&%tt tjt6 tm $W tm $W jt[/t i}:Nt i}:N it i}:NtW{t t줻_G t!b4t!b4t!b4t!/S]t"$ycv?6t"$ycv t"$ycv t"$ycv it"sP0t"sP0a t$дHvt%<2@"t%lԈD $ t%lԈDt%dft%dft' " t'4 ; wN t'?`W't'?`W'?t'?`W' t( VݡYt(kt(0tt),6# (t*g$ t*3mt,B/5 t-b Pt-u{øt-u{øt.͸-t.͸-t/G{t/d t/d t/d s t03c!t03cL t03cKt03ct10Kt10t1$oG_)* t1ebUDt2O*t2+ at2Fw t3_2H t4\t4v:v !t>@jX ,t?DCb]ct?DCb(t?DCbt?zqb@ t?zqb@ t? 0||t? HQt@`st@ϑ%vtAhY$RtAhY$2tBq ~77ttBr>zJtBR"jtBR"tD ZtD ZstDۗ%?tEB8C=tEl@?"tF}|LtF}| tF}|K tF@T?tFtjBtFttAtFt?tF\tG9#)tIw/ \tIz:P tL@ GtLЏq%[tM"9+  tMT}!tMT}!tM[y^JtMvtNg_B%tNg_B%tNa1Z tN40i itN40i tNپhtNօˁ td.05Etd8 td T te7te7Ste7 te7te)8jZte (teU_ ti7=x \tib8otib8o[tjWÜ}"tjWÜ}tk3 #tkH9tkW +)Rtkjtk ( tkc tlQY[9qQtlm.= tlm.= \tn>ΦKI[tnrR #tnrR ctoivCwntp./Ǔtp./Ǔ tp./Ǔtq%e_ptq/ Q5tq/ tq/ tq/ tqmT%?trR? ts*uGtt\I ttaNtuy~GetvDsx4tvDsx4Ltz9? t{* 5ct{Jt{p |t{p |t|;% t}𭩂jt}𭩂?t~=LtwPetST 0Ct(À etG*7̙ .twjVtE.N t_‰\ t_‰\tr Ǩ@tr Ǩ t2t2_ttSYjttSYtJ tB?ut6ɸnt6ɸnd txޤtb  htb  tb  tǶjtǶjRt~cu atPptP]@tPtPLtPtP t,fmf t,fmtaK@2 tzV]tb3?t#Zڋ}>t/ t_D+ tLG itoA5toA5e toA5Rt ?t2Lt2Lt~+Y*?tWstW ]Y=tW ] 8tW ]t tW ] t; tg>Itg>It~zt󤲿zMht󤲿zM -t󤲿zM #t󤲿zM ,t󤲿zMjt󤲿zM \ t󤲿zM (tVH/;?tVH/; tf tfjtiD[Dt:t: t:j t:tt hVt" ptNE tYGڮ~ gtYGڮ~?ItYGڮ~ $t{|ZtSΣi tSΣiYtB'tB'tB't+ʓ좆Rt=ak! itA;t tA;ktLYt'.S7] t'.S7t933S ^t̔ +ti_Rti_ tl9:tRg<tt[J] tw 3jF mts (twB txV[Y7t92t{t{t{ t{t{tOFhtF6) tF6) tF6)tEd6j tEd6t-տgvj tsjtsjt tt%K9jt rב #tN4L?tN4LtN4L t\Ut\U?t Ut Ut U t UU t Ut&"DtĘy gt6F6?5taG taG]t\Ytu8tд({%tQt5dC?tK] x,q2t , t ,t6Y t6Y tIy tխ?t{iLSt{iL?t{iLt{iLt{iLLt{iLtƮZh; t`tц #t8tLt}Pt"t6+ t? t 3S t 3S ?t\;tS՗1dtp]Eatf5+tm^-35tm^-3 t{FUt`L1[tX|֊ itpPSttʽZ./tUwtUtUt~Ėt \t \t bt.x鼀 rtMAlb #t٘@tf tL^E tSs t4W(ustݑMxGtRVtU&tU&Q tU&tĢ0?< ,tĢ0?<{tĢ0?< ^tĢ0?< lt  #=tDo?tǹtǹ tĄzxtĄzxt;NtȏVT tݿ NGtʴ* ,tʴ* .tʴ* tˈ-ȯ iGtˈ-ȯj tˈ-ȯ tTAf0tTAft{1Atf*q5y?t-n"tf/^NtTƜata²ta² ^ ta²tta²jta²sttбrDXc $t&Ytԍ TAtz2 $tz2stX|#1Mta?*LtQe t2t!G \t)` $$t)` (tl 8Y7t؊^t؊^h t]PFBbt]PFB t]PFBt]PFB t tߎV? tߎV? tߎV? ,t&fpl t7i t7i t;h* tQN tUxk tJOttd&tݠstWU5tuCx tT28" et`p3t`p3t`p3 tk t (t>kռt>kռt>kռtJu| xt>ݷCt>ݷDt>ݷKtnSp t"H;)R tu6t2u[Rt2u[%t2u[toF*toF*Qt䰶e?t]wt]wRt!X.u $tRLtRtz퇟'?t/Fb tl tt}A"t}A"Rthz@ st^ |taLRt)t)5t)t)ttt attiਬtBDt=9 \tX\StX\St}Ht;\t\b.t\b.Qtv^^otΰ> mt{6mt t"-ŗNts stsQ>tqc:ytRt3VVti2 t͊YhxtoXt6  t6 StLW* t#Fpt tBG԰ tMoNtEXQt3l (urU_ a]ur u+0tuU@}Au 8Z?u=MS<u?S% :u?S% ^uj'aKu%j۹ulQ u )>&֟u )>&֟ su )>&֟ u )>&֟ u )>&֟u )>&֟ u ԵwE u 7K?u ^f+ lu xg_DGu aI&ju(bolR/u>(bolu>(bolu?.(u?"}b #u?5u"(Su?5u"(u?kJLu@8&F;u@c) ^buAZrEnuAZrEnCuB'MdT)S:uB'MdT)U2uB'MdT)uB'MdT) uB'MdT)uB'MdT)uB'MdT)uB'MdT)]uCuCXuCuEb))?uEquEquGy uHܚ@c[uJ08z#uJRS :uKt;ZuKt;fuKy vuM]w_euM|Dh{ uMldnuN t#"uO}֢JuO}֢JouO}֢J]uO' -uO)^uP"jaS uP"jaKuQ ?uQ uQ94kuR! ,uRC6U SuT30 uT>q* auU{juUP|_5RuUrHuUإuV)"2E uV@jxRuWq5 uWyP%S"uWyP%uWyP% uWyP%L uWyP%K uX|\g뙪juY6uYH#КhuZ- iA%WuZ- iA%VuZ- iA%RDuZ- iA%D@uZ;\@uZK u[fcڗ\u[fcڗ\u[fcڗ\u[fcڗ\ u[YÜLu\ɞeKu\ɞe0u\ɞeR)u\ɞe u]koju]Pr 7u]Prs3u]Pr $u]Pr u]Pru]Pr (u^5дjSu^5дjLu_0!vaua ~iN]ua ~iHua ~iRubYW #ucnl*x1ucnl*x ucnl*xUuc![N!uc![N!judsRudsKugc!uh_uh_Luh_Suiu^?uiĜ~ujhqAtuj VQsEuj VQ uj VQ uj VQj uj VQhukfëjuk+ uk  eukN,sumbVum$OCYRum 85 uqur] urMurZ(ηusg"NZusg"N usg"N?ut-?utcuuGZE8?TuuGZE8RuwG?4?uw. &Zux=wGLuyYtuza!!a (u{0بu})p Eu})pu}i3u}YH:?u~&tuF%JYum?^( um?^( um?^(ju/< u?tM Nu) us_?ucq|6Ru Yup< uhf u2訓$us'u3{z2du3{z2u^6buٸD~9 uٸD~ iuٸD~ |u}u?uSodԭ $5uOT5 uiuW,x;u)C,uDwjuDwuD4Ip?uZW \uuݠ]uFau3hI?uɄ᪈u4G $uZ* uAuzRNKuw2uwuwu'Huȵu^]uWXhRu@Dqdvumi uƒ!\uƒ!?uоvWuRW~7ueu./uQVv uˏLF?u^;euI"t"u.x u.xujA%:uH7)Zu[sDtuK4 uju um-4 $um-4 u~Qa iu~Qa cu~Qa (u!u@|hERu@|hEDu5IuBKuh urYut榿s?ui.uA-s uA-v u11aFu?u? auB@;?uHQuuG:7f?u[uđ}{u7,_?ueiB uou!`y^sup1xup1xRup1xup1xu@4  ue[c{?u[!~1uM)!uֳ]  uwIM u*Zu*Z u*Z \u*Z uFpTub؟ uŭLRu8 u|gm ^uǓK uMuWäNu䐲uKRZtuʼou*2b u}ͽ"unauxG uۥъmYuiOu$4su"d u<*N cuJX BjuJX B?u}ftV-uѾ$uѾ$uѾ$ \uѾ$suXq!au|J- u|J-uARusLtuUuÙ+yue~ $ue~ ue~uD iuD u~b,/ u~b,/ uE"UY]ouE"UYLbuE"UYZXuE"UYU9uE"UY3uE"UYSuȾ: duvq;juzaƵhu˃E u˓\ u˥u˥Ru˵GˇuRQk *u̠}u̠} u8p|Qu"ISu[Ku uÒ [ uDuDu$@ ? u$@ uуd:uуd:uѺQauѺQaRu/JUtu҄Q?uҠ/huҠ/ uҠ/ uҠ/ uæ:u}yu  cuӊt uӓa uo zRu*YXPJu{qq u3 uZ}Gu֓bNu֫S4u֫S|uoaZufY=hur&)Q u}ib?uym 93uym uym uym (u*ޜa8:?uuޫ&& cuNoXDuSHy~mul au͝a~Dub9du$6]u$6]ufU5u7bz'u,su(; u(;k u(;u䶂GutRuj uG6sO\fukr ,ukrukr (Tukr 1ukr ukru]1uv2{[un~]uoKRuoKRkua*vu = u =Rujuy! uXD9d5uXD9d uXD9duHPu4J9 u4?uY u@Y ,u1}1^u߬u߬u^ψuwR"u7<u7< u7< u7<u7<u#Н`uӉ7uӉ7 ^uӉ7 uӉ7 uӉ7 (u^6; Rvml]vGv v: :v:  v?J.KRv%~J?v%~J v%~Jv%~Jsv%~Jv%~J v%~J (vwn~$;vVJvX vXt vkbWRvz~hHYRvvRv ҧvH0 vv M8  v M8 v x%~av n4v n4v O" v WҌNv wk;v wk&v wkv Ia,vC p #vZUkvv)f]svv)f]? vv)f] \v_ v v%?߬ v%?߬ vg@S>P'v4rlK v4rlSv4rlvSfYWvöv!e1vWKlvWKlvx ivxtva"^ sve^y6PK vӆ0<LvSnv{ SvCN_'1&v9 v3b/aSv]C6 svRj vRv/|`u_vp[}i9 v_?v_ va@zvͷv DY& v!y/3v!.GYv"zMv"Caq \v#;nQv$^xlYv$xvv$UNrv%he> v%j!iv%r9P(-v%r9P(v&Fsrv&Fsrv(fRX v(i{e v(i{e v*̗htv*u!jv+ 3{?v+{> v, ƒ +v,ZV3c v- Е ,v.^(,5l:v.y v/OlZv0SwA- \ v0yv2; R0v2L[v2g=dv3m瞴ot v3)KYv3L+vv4@vv4@vKv4V\GZ4 v5>uu.v5ޣ av6UPsv6DRiv8YgNv9E*{KU 1v>*{KU (v>*{KU|v>*{KUv>*{KU iv?5A!vv@xKvA&U vAo!b&SvA;~3DvA;~3vB&ϕΘYvBAtvBHrvCCi4\ovC TkvDJv`-vvD /NvD>e ^vD0RTvD0DvEm:PYvE|+\܀ vE|+\܀tvFWC $vG:( svGe ]vGe $OvGe 'vGe svGe vG_GjvH̘%o !vH2B vHU% vIq Ҍ vI.i \vJEhvr@ 1=svr@ 1= vr[?vr9oudvsbQvsw m4 iv:ĉ !v:ĉ v8Fe v8Fe& vK_Ol% iv&vG5vG5[v"رtv1tEY vm1 $vm1vaR vt?vMִS#v\X3tvm_(svL? vL vb9@jv 00:v 00:v!Piv4 $v}(3$jv}(3$ ivӊjvӊ v\-|vDh{# v/ v/Rv׏7l -vFXuvFXu<vFXuPvFXuv2H vRSv, $vFIv2cv?I  v?I v[B0v#=~ v\vv4#V v.R v9,j v2V+v2Vv2Vv2VDvD{tvD{ (v{%n vOfNUvY̫r evn/Nvn/NvҪ*]v7ĩ v'Wv G1v Gv.w5h -v ?v v vY+c vvô)?j%vvô)? [v WvӇWtvy}s "vy}sjvy}s vy}sv:=v:=v)[6 f vףP #v=0d vl:3MDv|!#v5iD _vu(+ #Pvu(+Yvu(+ cvU jvU ?v.l Nv.l v.l vhg@p vhg@p?vE?v3߈vϩ vq~g vś܌:Yvś܌:v(.vJyvًa/A v?~7v,ހ vFeM7avOV?v Z vaH0' viiRvKjvRW-vRW-SvRW-vRW-vqV vqVL vydov} 5v} 5svp3v:v: v: v:Uv:v:v:v΀ v/ugv\F ,vv'nsvv'n ,vG7v( v v_Dvw~ "vB2!vB2! $vB2! ( vB2!v#ϗ cv9og\"vunx@]vKvڝvڝvڝDvڝvΎvº`vZe0vw/#v¢0cY[vhU^ *v~Nt=u vq vĐX|v‹n*vbiP!vevŃ͍h:vŃ͍h:LvPM9 vvBk vBk vǤ1evȴ4Dv5A=PvI`b `v+@ vN[v˺UX v˺Uv`4P jv2;!UCvΥlk vV91vvV91vZUPv`|I" lv"^% v"^% $v0! vm6C vF%&vvnLv nlKRvTI/zvӭaUlvva_v@Kkva>vv׈v׈%v׈ v 9W$vAT]vے~ ivے~sv W?Lvٷ1 $v ިv%pv?n2 v?n28v.svWeD vΎ L v2*vDIL<NvEtjl vkž(vkž vkžvkžvߎ|2(*vl,`?v EvhQvjlzR.vjlzLvng6 vng6vA,<?vYvYvT_vX3 RvX3  vX3  vX3 vX3 v}YSvs vs Kvs vl&g vl&g \vۗ}v+#+v6^ v6^ ^v'( v蕌 v%K!v%K!v>M9vw& (vW=7 v @F$v[oXv $vw. vw. vșNXKvĜ7bvĜ7 vĜ7}v!M ) v[\v[Uv[Ev[ v[v[v v'Tv+ v҂j v{g?v.>R vy3ch vy3csv`ӕvvwNñ vov,lsviD:v .|v_ J(R v>|s v>|s a v>|s vMv/v^Ugy vR,N#vR, vşWR(vşW vDݦ vX/6Ov@ v@jv{j vi3Rvd;voYvoYvoYvoYva&bvts \v 7ҥ #v8CP v8CPvA.Ev4 cvǴҽvI~]wpUmwķ5hwZwZRw_.B w\M?wBt wBjwBswJº awUH\YwvT҂ wvT҂$wvT҂w4ׅ%p(w4ׅ%pwU% wU%?wb%nNwb%nw Dq w Dq w K/H/w <\w epw epw 2G#wIcw;Kc w]٪D=wm TVwm TwV\0wA-gNwA-gRw?I"Nw c(wH2V0wVzHwj wMd-wMd- wMd-tw26BwA\ w [w.fCUwbx{ w6w!6Fr w\$w\dwL-f ,w6̐. wGyswm9wmKwC=sw j|% w &?w & (w & w N0pYw!rN0w"GLw"#w"r"? w#E[w%SkS w%uI&n]w&Pw&P sw&L 0Dw&L 0w'Q\F ,w'"e w(T5̨w w(jzw*,Sx ew+8H aiw,Z֋Rw,Iovw,6w-wi)w-+_Gw.{4Jw.{4JYw/;G'Rw/;G'RUw/R'Mw06W w2,~9w2,~9w2,~9sw2,~9jw4"Qvjw4#) aw5m3,{|Zw5m3,{|w5m3,{|Kw5Ӣ+Sw5Ӣ+ w5Ӣ+Lw6b0YRw7Rf`}w9T 'Sw: @R[(w: @Rw:F*C?/w:F*C iw:F*C aw:F*C w:Ê ?w;nJ;w;t필w<>| w5FFw w>5FFww>5FFww>2lW w>3qAj(w>3qAw?Lb:U w?}Nsw?}Nsw@w@rG wAM p wAM p wAM pwB- -wB9sR<wC?1N wDt wD^ 1wE8CwE8C \wH!]ݹ wHlSj wHϞM}RwHϞM}LwHϞM}SwIdvl \wIdvl?wIdvlwI&Q #wJ!)$4 wKX(+ g wK(Bᓷ=swL- ewLD!D wLEU3wLkhwMi wN76 wN76KwNB EwNͥ(SwOR  wPk+oCwQ"٘o^wQ"٘owQ"٘owQ"٘o(wQ"٘o!wQ"٘owQ"٘o wQ"٘owS|o wSu5wSu2wTwD cwUER (wVfFjwVfF wVK{g&=wVK{g&wV9Lc wVg" & wX6hNwY2׀ wYԪ1 wY7V{kwZiyiewZʯPqNw[ Jw[ %Utw[ww\=DAM , w\=DAM w\Hk & sw\onw\on$w\҂;~Vw]Ɓ^Kw^>׃bsw^>׃b ,w^Efsw^o(w^"w^R5$w_8DLvw_8DLvw_8DLvw_Hd?w_^<`;w`s\w`s\ wa,ܥywa,ܥywaz%kwa?9 wcю r wdFB`:wdFBwe\=iRkwe\=i we\=iKwe\=i$we\=iSwev3wfһDtwgXD!wg6!/ wh;L?wi6/KwiyO#wjPr9#wk+ 1 wk^jR-wlyr wlyr $wlIp wlIpwm5~`twn;Z4wn `Y=wo5 bwopd_wo꿢Kwq (<~`j wqC ws;f?ws;fjwtJM87Pwu4,H wu=B wux \wuٹwvlp{ wvlp{ $wvlp{ ww NvYwwSbXs ,wxi^ wxi8swxi8?wxwy[ҰQFwzXm]owzXm]Z wzXm] wzXm]Lw{*=F|w{#db w|9xKw|:Yuo]w|jV6w|E^8? w|&dPw} $gw}`ɶ +w~>.5Pw~7p!w~7pRwV8*wwUODww1 w5Y*wG"wN2Fq4]wd3A w׵WZwїJ:wy\ wy\Pwƥ KQ w[Aw m \w m w ^^?w  iw s_wTwu5F wu5Fw/G w\2 w[у?:wbRwbw${?wc9 \wy +wͣ$?XS wQ1kwQ1wQ1w][ \w][w][vwgHw5nHwO9}|swT  w f" \-w f"w[}TwbUSw9 mw`R嘵w& w!|wSvmS?wJFJ{ wcL4K w% iw% (Lw% ,?w%!w% !w% iw% $ w%9w%w% wu*ZNweuyN`wB ,"wB $wB9 wBwwS$L#wS$ZwS$S w w Lw: wE"Mw5K6wR/ awR/sw?} wOfĉbw~fw~fw wUSQwUwUwim֩:w;àќw;àќhw;àќ cwrrZwzU9wvk w= Fvw$l w$lwᘗZwQ =wQ iwQjwQtwt^Ty a wk.Ӗ wf/ ,w, Cj! i w, Cj!sw, Cj!?wP6KKwWj E wmuJw0L 3w+-w+-wU=+ w^ڟ~w^ [ ( w?a wZ:w3wS UwS UwTz(Q $wKDwKDQ wKDRwKDw>U 2wCG'Swtwj w \wvAi0wh~w1K weSDweSweSweSw[ Ģv w5QtwHpʐ wjLg--awjLg--R wjLg-- w2Pw2Pwu awyswjFNw1? w1?w1? ew[ᵜTUww]wSdwSdRwSdQwH i w]= w1]gtw4/d)w[QP w[QPkgw[QPj[w[QP,w[QP w[QP w Owݺ26?w;6dw !N%wQhN2 w1銪swιcw=6̛ wo} DwQwf.~] ]wf.~]twqLݣO wqLݣOwƉv[R wƉv[RkwƉv[R}wƫɡwƻR[A r w0KwhwD!wws ȟa aw$ wwȵ w-Oi16[w̻?Ⱥ wͩx<,w4Jƶwi$>ww=ww=wqX_wЬ` "wЬ`wЬ` gw{Ӏx w1J]vwҘ?+fJ \wҘ?+fJjwEADwMcN$wwYZ#: wԖaӞ w?fN$ wrVGl]wՃküs wVЧRwVЧ wVЧ wVЧwVЧwTA?w[cGWs&w[cGWt w[cGWYw[cGWw[cGWkwִ $w@d3 w wN N*wN wvw&P {?w< f w= SF wڮmowD]B wD]Bw݁wPmtw"[ڟ w]\&H w]\&HwߍPˎ#w+׍zA!w+׍zA!wp? w޽9w$tMQw ! 2sw ! 2?w ! 2 gw␇Je? www7OoˑSweweaw\b0w咽&;wtwR'2 iw*/Mwal18w 6o wXAwte9E< wS+Q&^wX w&d IQw/Z2dWw/Z2dW]w/Z2dWZw/Z2dW?w/Z2dW>w/Z2dWLw/Z2dWw/Z2dWw )wN%bwXNw$?w3)2 w2;VVwlWb%wB -wb6?wJgwMo .w0twT||< #wT||<ww=-= ,)w=-= (wU wawawWH# wb^Y`RwӫwzYÀ{w|[] w|[]|w4ٶ w;:Id w#1w&6y_L $wD/*LwD/*SwD/*w6,%tw dw8 Imw8 Imtw8 Imsw^Y w_wĪ x0s1' x0s1'x0s1'x귒k?xԆ;x ^xC1x lvv QxxxiҿIxiҿIx M #x BZnx+_?xb^b 7xb^bYx(.hx;=q x]l O xhQ2 %x K,?x v79;x rV x ɂVGM %x ɂVGMx  $x x K؟ $x K؟ ,x K؟ (x K؟x K؟ $x BD@*s-x BD@* %x BD@* wx [?Jx [?Jx [?Jx z.֛x%U6Rx|xdKx8fx8fxx]"]xg@x8tYx;ZKx;Zxn9GDRx*S xc.n x"~?xQsAxab %(xjxjxi Lsxʡ ix& pxexX$ؔa x[W x[WNxo:Cvxn [B" a#xn [B" xt1_x50SxJ\?xKP xq[&xLuxa( jxye jx ũ- +x^&RNx^&R$xӹw x.Y`(jx͑ xFj x$ttx֍1 i#x֍1 \ x֍1 ax fDx D}x!ur # x!& $x"ƹ; 5x"t7,x#  .x#E  x#KYx#ljx$B6mx$Ldx%-yRj x%.~ ax&}x'R?x'1F: mx(`(x(OIx* gC x*tڸNx*ǘ ?x*"Y ^ x,K'x,xᡐ*ax-D״N x.'<W x.4x.4x.4Kx/)Q>x/t~? ,)x/t~? "x0f;gx0}DmIfsx0}DmIf?x0vVsx0vVx1 52# Rx1~Sx2=bAjx2=bA ix3G9v4x3kDF$x3[Zx4;&`tx4;&`x5>Dx5>Dx5s)Sx7Ue;x8ȳ΄ Sx9j x:3tx?9XV|x?9XV x?9XV ( x?9XV x?4,fQ x?4,fx?4,fx@XK xANk>xAh` xE?v xEMڼ|B xE1_?xFBnhxFBnsxF[DxF[DD xFzMZIxFzM$\xG܈xG܈ xG܈xIr xJ"xK0wSxK0wxKg+/xLd xLdsxL<\3 3xL<\3xL6RxM}خ7xNWv; xO2 -xPt2xQ?$k"TxQ s xQ]c3xR'?ѠxR@$\xSCT xU Ip (xU Ip ixU Ip|xU n1xUId>C9d xU \/xVBvxVfVjxW8bb  xW8bb xW8bb sxW8bb (xW'xXD xXY0xYM|_xYM|_dxYJca xYJca?xYI>-HRxZ3x[rj#x\맻x\j x_fx~vx`LCn5xa*X#xa|Z^?xa|Z^sxa|Z^ $xa|Z^ xa|Z^ xc?Ѭg xcili#xct?xd9'jxd9'$xdaO4BD?xd \PxekJvxflxflxgLuysxgVԷ\xhExz O>xz O>x{Vwlx{Vwx{VwUx{d ?x| +'5 x| +'5sx|M?x|0p}Sx}7jux}7x}9ޮx}PB&Yx~ %Jx~ %xx7CcxPDܕ %xKx xJ 0x#?x;CxMaп kxMaп txD?}vx)=xx n0 *xM-u *xQE6N~xQE6txQE6Kx@ tSxG[ +SxJ* Rxg)x_3xD[Bx4!xm%L xm%LtLxm%LYxt x x1EK xc94sx@umM x3` "x3` x3`  xWDxWmSK xAԣx4<|Txh}8Ԯxɡ3hxɡ3hxE !x~a'j xmM?xjHDpkxE xE xX':K)xX':&xX': xX': xX':YxX':DxX':xZxJy:xj|?xoJMCx4Iu, xOk?xOk xOkhx( %x( x(  x( x$- a x$-tx@x檮;KxA x<\oux@qx@qxPu  x.WRxi&}VYx|ɴ:2x|ɴ:#x( ,xW jLxLxSxx2ua x׭#E x׭#E xӜlN]xB@hx-X]WRxص~G mx% x,/?xIxRx?xxx xd4MDx}ox˺ xp&_2 xvxd"xvxQ xvx x쉝c&L\x쉝c&x쉝c&Ux~R'x`p; ^$x`p;hx`p; x`<Rdx`<RRxnC)x% M ,xEkFhxg?hx-x߬L> Lx-xD@MJ ,$xD@MJ xD@MJ Ux[JRxB|1=xUկx?lm/xTvxʚ-x*BtxRkjxRk i xRkx?}S x?}L xKL xW` # cx 1BQx܃Dw \x"BF<xFY (x,4{x,4{ x,4{K x,4{xt> cxւx *txnRq`|bxp % xι&DNxl~]y0*y0L" ry1DJ6S?y1DJ6S aLy1DJ6S y1DJ6Ssy1Eay1Ea y1Ea ( y1Ea iy1Ea|y1kG  y2!E y396,?y6nĺr , y6nĺry6Ľ Oy7['y7sPYy7fTuy8(77y8T;a y8T;a y9YϟB y;fdPy;fdPy;fdPYy;8:y;홥.sy*x@Ly?+|"y?+|yA?yA yB (yB -yB yB ]yB yB  yB  yByCZ0Y ,yC}LyC}q $yCnihyD&yD. 5ZZ yD.*yDÂyE며&B (yE며&Bs yE며&B|yG yG;e \yH` yHH yHH yHH , yHH yHH yHH yH6e?yH6e yI-K0\yI-K0\ yJm?? yKNN2 3yKNN2?yKNN2 $ yKNN2yKNN2jyL;4 ]yLu^RyMQdrc ryM.a yMJyOW*+L yPNriv)yQ rp c yQӴٯi.yQӴٯ.yQӴٯR)yQӴٯ yQӴٯhyQ78PyR'JXkSK ySPHkyS7 (yS7YyS YZyS YZyS͗D? yT˨. yTVv1yTV "yUv܀ yU0].?%yU0]. ,yVLЉmt yV K"yW\ 8syX{QE lyXM)A9 $yXM)A9 yXTxҵk^yXTxҵtLyXTxҵyXTxҵ yXTxҵjyYYyZg9ѳyZԧ\uVyZԧ\u eyZԧ\u  yZԧ\uYyZԧ\u iyZԧ\u ay[H@Sj y[H@S y\} y\}:y\zEy\h~_Bty\j}y]w -3 %y]#.QRy];U/ "y]J (_y]J (_y]p y]x y]xy`<39jy`<39 iy`~ p2E` yan}/ya˲9yb'fsyb'fhyb0_ (yba+ycW[mE ydֲyec}TyeŲ:j yfR-[yfTsygIMOғygIMOғygIMOғyg^C1tygy7KBN yhu]8:Pjyh* 3yhB,yjŶ yj{?yl,$yl:0EylkwuK? ^ym[Myn? syo*J ypTQ5ypTQ5yq. yrQ 9yrQ syr;8:yrSV ytC!E?ytC!ERytC!E iytj`>jytj`> iyuc8y]yvo@j#yvo@jyvo@j yv;ij67yx}yyafyzDB y{+Spy{4^?y|dYU>y|#Wcty|;D y}Wusy}FVa|y}FVa y~  y~?Hz2y~/I, yv[>Gy `iy `*y `y `y `yA/kyV-KyԾ='Sk yਆyਆ ,yjه, yHcjy`#$y`#$ySKySDy, -yKV8>yAXyj۳b? iy^ȳy,yfyu, yu,?yE5<yLy}4yDy,`yyp iyJ"uvy* ey=isy1U?C aylS ylS $y)RYy7 ѣ0y:@AW y:@AW yLőeSyLőeLy!u*y!u*y!u*yG yGjyG ysϦ%tywv! ywv!?y'Nyn!ynKy`/Iy`/Iy`/Iy`/Iy`/Iy`/Iy}!QyU I?yW3ryNaZyNaZ YyNaZ ,yNaZ cy,5 y*խ?y(;=y(; y(;y(;y&7\y KygS1y y'NyJm ?y `xy̾A? yhMxajyH^B, yP}~pmt yP}~pmt?yTs yj ky0:d?ycgyy ­UK $yOx(I yOx(I ^y!R (yΫvyyyvunoy:| y&)yQ;2 y2O=yU-t2yf#ĬS yB?yv,NyDK'@ \yDK'@yDK'@yM yM y.HyLT=yn, yoEYyoEKy"Kݎy ByqD yy TQC yEly;C'y'_Z NyK ?yߺ4-tyߺ4-ky~!yPR yP yj W? yIsyѻCx0nyѻCx0yѻCx0yWcgT_yWcgTS yWcgTLyáT y\ m.b yJ=y ayŽbFɴ yG yGyo' jyyy9ŸB%y9ŸB#y9ŸBRy9ŸB y9ŸBy5zv *yc1NvFjyTa^v+ygbJayɏnhR yɴytyg䀅1y(2 ʟypCsy˘MjsD?y蒅 (?)y蒅 ( yTfyM[y# syhs@욁 yhs@욁 y̮&<6i? y̮&<6i $yͱVIR-WRyͱVIR-WQyͱVIR-WZyͱVIR-W'yͱVIR-WyIaV yIaV?yE.ੵyU{0S yR(Il˜ y@l:y9 "y k y)_ċy+T`hy|M5Hq*yրƄ yրƄ yUGv yUGy، dGyؒ yE*y:Dmy:Dm y:Dmy%:yڞ)Nyyڰe{ y[l] y[l] ]yO%Gkyqh2Ryۻg6*h?yyVi yϱnh!9yϱnh!yDJ=yDJ=yaZ $ yaZ ayaZyaZy8Niz$yޯzEy!b y|6O y$yᡸi yzy*c]yaa?y̠74K ,y欂 IP sy' $y"ً y@񜢳_ ysXyoXayFѻRy%8jy%8yZ !yЗj jytL0 ytL0yí-QyZ j$yT׬_y}By>ty>yVk $yWL yWL yWLtypd Bypd BKy8Y nyvjyvjQ yvj yvjyvjy$ǓċZ y/=' ^yty2+Y yݍCS y0yR !y W]jsyyY4y{&)j y{&)jy ǃyu:7Dvy7yv,Tzx&+z cN $z cNzz zswuCz(;m[ z=@z=z̾ʪ[zSzSzzlyhG(z\O[ zRVzOR z9ez9etz!#za]>tm z< qz< ;z< z& z!Qfb=:z!Qfb= z!3S?z!3S sz"(*Tz"(*Tz"(*Tz"Yfz"v\z"L! $>z"L! ,:z"L! Sz"L!sCz"L!jz"L!z#(slk $z$^5D z$j z$ ,z$>z$6N z$V4;z$V4;z%W-Kz&(!Q z&(!z'it z. j>i az.Ca} z.Ca} z/Sbڿ(]z/tz/¯9 Z ? z/¯9 Z z/¯9 Z z3$%"z38D Iz38D Iz3ώz3 z4reSz4ʓ ,z4͕Dz5<z5%Qz6Mqgz75ye nz7Vzlkz7Vzlkz8*w%z9? o;z:1H"dz:hK z:1[jaz:1[jSz;4(z z<)l׶[Rz<)l׶ z|9$"z>|9$"z><нz?n7z?m\σ6 sz@ MPj= z@zxz@z1zAzA[=zCI zC/0uzC? (zC? izDJi DzDJi zDJi RzD`qfO zEL| zF8-W zF8-W zFhb?zFbijzFbi zFbi zHF&~ zI塎zJ#~vzKU]zKU]d zKU] zLo?_rL zM'EWs,zM~^d&zMw5J zNoS/zNoS/ ,zNoS/ zNt jzO+Jw zOn< )zO* S zO* SzO* SzP\mSzQP|zQw6 zQŃ|PMzQ44[A $zS:#izSJD7ZRzSsw$zTI&RSzTI&QzTY zTYRzU  zU4hzW1Fׄ_zW1FׄzX"bNyUzXPNS?zX^wPLzYK᭧VNEzYK᭧VRzY'p sz[LfĿz[Z/ #z[٧`cp?z\)M3z]- $z^@bg|z_<) z_<) z`2{| z`2{z``wׂ #zb\؉Szb\؉zc kRzct*Rze ze0?zfÄDzfÄzfq zf- zg zg zg zh@%=t,zh@%=tzh@%=t zh@%=tzht7Szh̒?ziɜDK zipBzlmCOzl:jLzlg8zm)#pL& zn*@Gznj՟czoItzoW zoWzp5ɦMz zpzq@;:zq@; zq@; zqM zr vp zr vptzrXwK6zrXwK zrXwKzr'[5Rzs@TYzsةןyzsةןzsةן zsةןzttR zttR zum&U zum&U? zum&UzuЛRzuЛzuku zwd^Mj zwfɍzwfɍzwfɍ zwfɍzwfɍzwfɍDzwGmzxe!+3zyf!aw?zyozyozy, zzC\ӎzzC\ӎDzzEr +zzEr z{Navz{[ߗL z{[ߗz}dq z}TAsz}TAvz}c]`sz}}oCz~KCl $z~KCl z~KCl z~KCl , z~q ?z~z<[z~0,9tz~0,9 z~0,9 z~0,9jz}d (z5`zxtz&ᅦ z2tz4C;zvg,8zdG2[z)9zű`|z\W* zY$|zauz sz=ePI ez=ePIsOz=ePIz=ePI z=ePIhz L zdz-*zъf z7Nzg]Kz{tzN0Lz׺jqr zVu8z& \z&hzQM\$zQM\$zQM\$zSZyAWzj9zIJ90z% izHzlIw  zBET , zBETzZ%6kzZ%6tzZ%6zYa2QzYa2zYa2D z-K٧X #zlzlzm: azm:szg nzܖgzܖgze<7z5nz5nzI]8z fym (zma zmazmatzma zma _zmaz Pzxpszƹ3i zO^Gjzwtztz z zע~(z} }z㹨zEkbz":z":z|vjz=z # z=z czݞ~[Kz ZhK z Zhfz*dfy7z]zUEzUEszUEjzK #zfd \#zfd zfdszfdzq?znOF znOF?z0,zCuu iz6L{;B \ z!{)Kzo z} ^Pz): zF}z?zƔ $zƔ ,.zƔ ^_zƔ j<zƔ szƔ  zƔ azVEe]zPzCzzRzz?. ҔbzS,:9zS,: z:I -z(ݑNzӑ5;q+ dzRSnz`yl<`z`H:Yzppzjτ\ hzjτ\ szjτ\ zm$wN zNxg $zNxg zzosz_KrDz_KrAz_Kr?z_Kr z_KrKz_Krz!RzST˭ThzX \Sa 'zX \Sa "zX \Sazyz7;n #zE r$z tSzz!zzCz|NzʅJO? zHEVz…Wo"dzҮNVz:$H z:$Hz:$H z:$H zTg ?zyzl*?zl*zl*zn IzƎ CAzƎ 0zƎ zƎ zaM{zF =(jzF =( zF =(v zǬ6F z-V Dz"w zȡx( zɳη jzP8JjzqL-A=zqL-A= ,z!n?z!nz!n z.2[vz.2[Rz̯ksΒz]Uz/cj z)PKz}h =zϒz϶#zm'%zm'jzmӽ azG}U7kzt3ztDztztRztKz/cv vz/cv i z/cvt zAGuz,႞+z,႞$z,႞S z,႞Z z,႞ z,႞LzHZzՑR{sz z7d z9P zO^CGIzO^CGIQzO^CGIzO^CGIzO^CGIDzO^CGIzxc 4!zֳeH] z*(R z{6.zٶC zIZzڿ>"sz:RzӻQ?PrzӻQ?lXz^G+sz܋Jz jzNoz)~ez)~ezmS?zމ*I{zz;(ݯzIM5UzXx zXx _zXx dzHsczd$/ z%\>a? z9?xZ z! zK$ z?y?zNDrNz@ƑV z@ƑVzU2ztz tz  z!Nzȫ>(z$ ׉m zmDJz֌;vz֌;vzfz)BO/<zYZއmzYZއmz^9mzձ;jztV3] gz퓃#z/P5z/P z/PjzE`v _zi}Jz38WJz38WJNzՇi}NzSuSzY;-zAg=OzAg=OzDZ_/zjz?z)Uz󟀀2? czdI1zH[zQS ^ zws ?zws z=z= z=jz #z'pszhpP m[zhpP +zhpP -zv* XU zq[0)z9{ z#V ezYQz>C;tz>C; iz>C; z>C;j{ %{e¨"_{e¨"{6 3{/|t{vMa{_ {_j{Ў~&K{{J{{J{qF {#^At {#^Aj {#^A i{(4h{(4hK{(4h{3"l?{&fKO{&f.{v {\!@ {xgS-xu rv{V/o %{8 M ,{>k A {[1y:Z{\ I{.,:{pϙ={ g#vz{ g# ({ 4; L{ 4; { ʚ't{ ht { n { >&0"{gx -{w,{,Ly{j{E{>9P{>0{]OaĘ{]OaĘ {]OaĘ{or {*e{FRK{F{H{%Nm {{haqN{7?Kk){w|!j {w|!j{r.v5{r.v{r.vN{q{[ \{h4S#|{9ʱoQ{9ʱo{9ʱo{Ksn{xW?{Ņ&bC{Ņ&b{Ņ&bK {έP5R{έP5Q{b/ܖ%{r| {r.cVD{r.cV{r.cV{ lY {} R? {q s{ @ { @t{$iZ{ 3 S{ 6oLR{ ꢵڮ{!L7d{!L7dD {"\{SX{"\{SX]{"S{"ގ {#vA" ${%ʍX {&.|jz i{&DrKn{&j97 {&j97j{',% j{'A+K{,Ĵ8{,Ĵj{,Ĵ ,{,Ĵ ( {,Ĵ $ {-"rv{-"r \{-ۘj{-^HV{.- {.eߐUD {.@0 {.@0Q{.@0{.@0Q{.@0A{.@01{.@0{0 {0Vq{0ީh {0ީh {0&k{2qTE +{2qTE{3" {3" {3""!*{3""!{3""! {3ޭN{5#xׂ {5b=̆ |{6Ȳ5{6~A{6th {7Lge{7|0jh {7|0j i{7#y> {7#y> {8ښ[ {96p} ({96p}v{9&L{9YJ3{:ҟ8K|{;yRM{;yRM-{;yRM{;Ɓs{;Ɓt{=fSueP{=j6G){>ኮS?{?hY {ABB?{ABB{AEL{BP0,({G#s{G# s{HvHFz[{H7%Q{H7%{HU?ϐJ){HU?ϐJ{HU?ϐJ{I#(o?{Il {IVą({I[O[{I[O{I[O{J[ `{JXN0 {KCt{K+ǹHm {KFcy'{KFcy'{Kbs {Kb s{LolR{LGs{MvZ {N {NVrR]{OK {O{!4t{QJO?Rc{Q{u i{RTH {RTH{RBq9R {UNL{URFF1Y{URFF1 {URFF1{UƖ0PA #{UƖ0PA{UN{Vr  {V'j= {V {WgS {Wj2{XU!_ c{XcA;N[{Xτ~tN {Xτ~tN {Xτ~tNt{XQ{Z-lro{ZN. {[LIQ?{[+{\Lt [{\Lt (8{\Lts{\Lt $ {\Ltj {\Lt {\&F)R{\  {\ {]u {`z Dd{a-/nh#{a?2-{b< iK;{b< i'{b< i]{bGػ2= l {bTYjg{bs'1zS{c mm *{c{HGk{cd ?{dw\YQ${daBS{e.*E{e.*ED{gP {gP p{gP m{gP aT{gP R{gP L{j_NH{jA)#{k {k{k{l-;s{lv{mcYK {n0BXz{n`8\b{nQU{nY {o` n [{oސoJa{oސoJS{pGbe{pGb{pũU8 B{p]?{rH153 j{rH153 3{rH153 '{rH153 {rH153 {tYґT {tYґT {tf4} #%{tf4} {tk{uR͐B{u1{u5"l:{vwV0|{x,X %{yOF. {yOF.Q{yT ? {y^ c*{y^ c{y^ cR{y^ c{y1?{{6a {{A{|wֱS i{|j& {|w0{|[d{}UT!YO{}UT!Y!{j |s{5cJ9Z {Q){Q)L{9t#{9ta2{9t {%܋7?{*cP$D{*cP${Ib {c]{cU{{ s {{ ${MdY_2j{MdY_2{Z߯FT{fP {fP{fP{M(@S{e{l׽{l׽e{ { S{ix˷ {ix˷R#{ix˷ {ix˷t{{P{Tœ {Tœ{_{_{\D{\{aޫ {aޫ {R\{ʖj{P{Z4j{=9F{[,{sb;x {{:ws{)u {)u{fv{us{daA{daAv&{<{<{Du|&{غ\+ !{绰%7{ -U{UnȂ{v#6{Gt{f1>8 ${pTWC{ON{* {Anj{Z`{ ɱ_{ ɱ_{8 +{8Y {8{AKWZN{AKWZW{Ű8B 2{gpm|3>[ |u(?|u(? ,|e,|<IE|۞%|1˲|1˲ |K:AN|\R i|t{g& |t{g&Q|X *| <N|Q9 |Q9| <"D d| <"D d| <"D d | <"D d ,| bR_ S| p| yy!| yy!| yy!| =Bd}?| =D7tn| /=%62| /=%6| nO-L| Bmrq| Bmrqt| h?|͈/a "|8YEqLd|ho$ |spr |л i |л |#20^ |us% ,'|]Kp |]Kp (|]Kp|SM |SM (|fv)g s|fv)g{|fv)g $|fv)g (|TJrK|y{<|y{<a|y{<| |3nP| }|2 j|V k?|%@5|Fl|Fl|Fl|;eGs|;eG@|;eG ,|c4|ۭ)Q.?|W8/|\]<r|\]<|\]<Z||BI?|W;u"|W;u|W;u |N |)P!|)P!|#_;[y|#cN*7|#cN*7|#sd^E) |#sd^E)|#sd^E)|$¡J0|$&q\|$IuR|%Fk2|%Fk[ |'VW]Q|'-p'|(y֧t|(y֧|+ggˑ |+kQzY|-͆R |-͆?|-D-1 |-\ -|-I.K|-v* |-v* |-9`HNU|-ar a|.2c>|.}|/6^`yf|/7a|0lCg|0ewb|1/v|1/*|K|1,?|3u,||3u,s|3u,j|3  |3  $|4 a#|5_o|5_o ,|5gA߿ (|5gA߿? |5gA߿s|5. s|5. |5kCv $ |6&~x)|6&~x|9M(p |9T_*( |9T_*(d |9T_*(|;xh[2 |;C%s|;$:|;$ |;$ (|;$ |= 0 0|=W -zL |>-ٰ_e|>8_k|>Hs%[ |> kL|> kL|?=t g |?!dH|@akPZ|Ac? |B zg`|B zga"|B zg|DZl0 s|Dnq|D*6_ -|D*6_|D*6_ |E7ɂ[|FJ~qw ,|Gd<9|H]\ |Hk 5 $ |Hk 5|IZƁ|L/|M&ZS|M`V%k|Mj췦j|N*&ܫ|N*&ܫ m|O?1o|OK |P}~ |P,0|P;W|P;W |PEllT*|PEllT*/|Pz<>v$|Pz<>v? |Qd;lQf |STn! |S"ψ9|TJp|TeY|Tk |UU+ |U'sl|U|"|K|VQP|Vg |W2 8|W2 |Wb[ |X:~?Y|X:~?]|X:~?Q|X:~?|Yndž7 |Yndž7|Y o"|Y(j?|Y޵R|[%&"|\%i~ |\~=vP||\~=vP|^OTtC|^ i|^jkɈ=|^jkɈ|^jkɈ |^jkɈS|_w (|_w `|_S|_S|`[}|b\|tW|b\|tW|bkdt|byj|byt|b d|cI!3|cI!3j|cI!3 (|cy$|@cR|cy$|@c|cCt|d^K|fQ.|g9 i|g=(b|gLy |gҎ4|hY(߄|hv00?|j$`|k߃9 |k߃9{|lKS |mȸ5Q|mpXk;|mpX |mpX i |mpXt|mpX|n&|n& g|ocU3|p C||p C|S|p 70^|p` 1w|qjxE6N |qjxE6|qHms|uƱ |uƱ |uƱ|uɧ_L|v)2k|v)2k |v)2kK|vLqj]j|vLqj]t|wd_ (|wOrM7}|y׌ |zOt|zOt %|zOt|zOt|z#-)|z#-|z#-|z#-|zx}hR|{R|{UN/%N|}3R|}u|}L婧Q?|} $|~-I |~,|~p|~p|~p|[ |evcJ)0?|H;|H;Y|)y |s8]|[BV[4|[BV|0et |y RE|y |$ʼh|).|n3 #|̈́^}U|`LjG|#K Md|#K M |#K M| ;% |* $|Cpj s|s1e|S5.?|uD_ |L (|~4vd |~4v|^k4|\ c|V |V s| ջ|G |G ]|Q\Kd}|Q\Kd}J|Q\Kd}|Q\Kd}|o8 [|92j|92 |D|$ i|iC|iOs|aj|1s ,|1s i| |8}u |8}u |'N+%|'N+% ,|J篶|S(ˮL|7&IBv|mj|q j|t|?Zf |XݙZ|\]L |fo~jL|2/?|y ~|tZcX|zU 72j|_?|eF>S|eF>L|ȏ_U , |I|ij| _1 #|[ |_|Uը (|gNG%|z;g?|z;gj|= $mtR|簟|=z.S|o5 a|" ,|" |ߴgK|ߴgd|to~X|N5ls|sK|B (?|sTi|sTRq|v (|v |#Z|#|2;|Q;CE|Q;CE |Q;CE ,|Q;CE|FS"L |y Y |ݻ*= |`IVJ |V?| 430v|6A_|t@f (| jY|  |  L|! |4f]R| ?|pz |DnS|.RA|.|.D|.|.|. |.K|96r|96r |_ժ |Yh~|f7S|f7S`|f7SRF|f7S|f7S|f7SZ|T|⿏Z/|v $|ĸa$|{# |{# (|>6|Ū3Բ |Ųj,|2 (d|2S|2 |29|2|2 i|Wi ;R|@tͻ|2|@tͻ |@tͻ $|]|Y|;`|C 8i \|C 8i|)ʺ|6D $||̅q|0RHK|Mm]|Mm|Mm|Mm|7"<|@x̱u|ͤ7(|0N? |j\[|<TIi|%`|՝> |i]|i|]%Ut|Nq |Nq|Nq?|E^Bb]|ډo- |ډo- |ڳz c|ںS|ںZ|ܬb1 c|㖱i?D|ݏd1G ,3|ݏd1G |ݏd1G||{؊O .|p[|ߚ|(-y|.eQ|VP̠5|},|<N|<N|㠝N a|㠝N (6|㠝N|6|㠝Nh|㠝N|㠝N g|㠝Ns|!5R|u|[3hS|F$I|F$E|F$|F$|XfS ^|b (uZ|b (uL|g=+%,?|? |#l3h|ޒZ|xeC{s |xeC{ |xeC{ |xeC{ |*$* |*$* |*$* |+`H |\i |\i|\i|~-磐v|rN1K|rN1|jZ#_U|Rj"|Rs |O\RJ|O\$!|O\j |O\|7"9Q|J]ߡ -| ^f|Db9 g|l4 |#Շw Q|:xcę6R|rQ |Ԛ`| !x]+|,|Aq,V|Aq,|3/DS|C |,\B |z/ȍ]|z/ȍD|*D j |"ڏ7|Df|V^LK $ |V^LK ,|% |% |-|t|-|k|-| |-||}5l:}5l:v}6hߦ,}8 bNY}8S7I}8+I}9ʠ'}9ʠ}9qWt };?Ʀ^,~}u }?F }?6.v}@)AZ}@)AZ}A)f | c}Am}Am}Br`/d}Br`/dZ}Co M }CZG!#}CZG!#Z}CrT}CrT}C$z^(}DC?}E`s}R}E`s} }F (J:}F3Q; i}Fa*[}F rEv7}GRs,??}HL>}IQpm}J+!s.}J+!t}J{[ }J}0j}J}0jQ }JR}JR}JRS }K%.8h}KXxf }KXxf{}MDWa}M ?}NG}N12d}OyEĮ}O p}O pQn}O p}O pL}O p}PF\5+ }Paz }Q(z} }Q1)v c}Q8)}RvL{t}Sƅ`}SƅR}TU2'N }TU2'R}TG}TGs}TG}Tk~}U3>x& j}U?uF}U?uf}U!h}V(G95}WYPI1` ,%}WYPI1` }WYPI1`}WYPI1` }WYPI1`}WeeVȗj}X0}Ycl }Y}O[}Y}O[}Y}O[ }Yמ-B}Z{ΌR4}Z{Ό}Z_ "}ZUy>}[:86a}[Z̍ }[&h}[&}[& }\[ }\gm }\8}]u}^bċ?}^d!t }^d!t?}a9}a a6R}aN}b!z߱/}b&}d̙ױ}ec_h?}eqb}fj?wD+}fj?wD }fr?j }g37ljR}gi 0tP}gٕ }g_EN&}g_ER}g_E }g_E}g_E}i',A|}jKPؿ (}k"׼ŵ0 "}k"׼ŵ0 }lt?}=}nH15 d}nH15 $}n o i}n*t }n* a }ob}obK}o}p37.}p7% Pd #}qW%VTs}q][]m#}q][]m#}q~SmS}qA*(S}rf(9}s)7Z}s)7L}sA^8 }sV $}sRՎ|}sRՎ }sR?ΐ}t,[߂x .}tLTrK}t~ ,}tQ< }uXl | $}w }x{<}x2l e}xf[}x- }yվG  }yIcW }y4#}zq*Dl}{2aN`b^}{[}{ΐG18}{ΐG18}{ΐG18}{m S}{m }|7\5}} ^X9L?}}" S }}N˦}}!*"\}~Yt }ޒ])}ޒ]K}ޒ]R}ޒ]}ޒ]}R}X҆;&S}X҆;&a}X҆;& }X҆;&d }}HobR} >8 1} >84} >8} >8e} >8}SϚ}SϚ}Sl}}L} }Q%']}ڋBv })7z1O|K})7z1O|S })7z1O|}h }h (}o  }o } ?La } ?LL}Rb`{}U%? }ꭖ}T}}x]}ے;3YY]}ٓMG }:zh}.=@}J}w+ڄ j}oL$D}纨 }# }Rxu? };4n&}Bt }&ZK }&ZC}d1C}d1C+}d1C },֧w}\0  }=dFN}u- wK'}u- w}NI1N}/y}}x }x \}2oAJ }c@D}:{=V }hkx}hkx } }Kxs S}ʀz<N}tJ.}֌Q?}֌Q}[PB }KV= }S,}d=kA[}n?DS }xk' }L}H}a }?^8 }.^v}.^};j}; }[.̬} ,bd-} Ýj}uaA c})p~} (=;}d=ٝ }d=ٝ}M^xW }M^xW }RgԒI}NIp};`Y}mn ] }mn ] }z\}Ei^j}Ei^ (}Ei^ \}un}Ң+a }Ң+K}E}E}!gt/}!gt i}!gt}s}ss}s a}Pnl s}Pnl a}Pnl }},}zӣ4}nH!}$#!v}3mjm $}P̨W0}Й}KiEj}`Sk }`Sk }仔%R}oˏD }]#}x*j}黻6n}u6!}u6!}|}]݄̊}[td}[ }Y˸h}Y˸h}:q" -}<7pR}<}Jvt }<}Jv }<}Jv i}!!"})$kq}u tN #}u{T };(! \%}7.}xO@t@} z(a}%HO\}`` }uPBK }uPB }uPB}uPB}}\fk}?lg}?lZ }` @K}.}c - }W8S }h>? }h>j}&e~( }&e~(}&e~(R}Jh}J}{?K~ 8Ga~8&/?~ 5=9 ~ƅd~,~5k&l ~JoLbRA~JoLb ~cQ?~r; >6~u@Z~&ʼn ~/d/s~A~~ m~ K#_~ K#z~ K#R7~ K#Q~ 3[N~ `~ s?~ -k[ӄ ~ 2"T$~ (\~e j~Н&ū ~}'~$|P~a (~+5 ~Hfs=O ~Hfs=O"~.m͡~.m͡S~4"~\m ~eҋ[ \~\R ~u?~ qtP~~8ɷZ~桸D ~桸K ~ c~:~?~~~Q7l_~Q7l_ ~.~V?I ~*Ra?~Q~Q~e'AZL~e8  ~~j~~~_q .~ p~ p ,~ p \~P鱞 m~&vVR~!f9J  ~!f9J ~#b c \~#oI&~$k R~&k-~'}H ~'fX K~(kf:^ ~(?] \;~)~.~)~.j~*f i-~*f~*f ~*fs ~*f~*f $~* ~+1~+1 ~+1 ~+>Wma~+ip7 ~+ҷ ?~,TH~,d~-|b~-p!* $~.$6 ~.[ [~."5: ~/r;JfPQ~/z :~0"T2N~0O:j!H~1$E ~1do~1ݘ{@P~2K=~2]Cya~4} 6v~4z~44SO] ~5wX ~6lauqQ~6zʄ .~6bէs~6BGZ~6BGZ~7TYaE ~7TYa$~7M|K~7M|~7M|~8`>@Y~8 1Om~8Í)N~8Í) ~8Í)~9jb[p~9|~9=@K| (~9=@K|t ~;/;~=*9Y~?](g|~?^^>~?|-mdf (~@XI>a~@ , ~AcC7uL~A?kF~BN6V~EK! ~Ey()R a ~EfD a~FJv~F>_~II ~II ~II|~JdƬI~JdƬIh~JdƬIS~J5%E~JO+kd~Jѽ~L$˵b~L@ ~NZR+ ~N` ?~N` ~N` ~Ocv s ~Ocv v ~Ocv ~PVėMe ~QQH $~QQH ~Q=ǚ-!~Q=ǚ-$~R@\s[~RN~R6~S(mw ~Tl5 ~Tl5~T@@~Tզij~U.8 g~U.8~U<;5h (~U<;5h \~UW+ s~U*uW~W c~X7A ~XFx4ņ ~Xدq &~Y{HX ~Z}R~[~ BS ~\qaO ~\y~F<|~\y~F<|~\ol# ~\ol#R~]h5~] +Yf~_Tb~_|qs~_۴~`;"2~`;" ~`;"~`A,$~`\5;L ~`\5;~`\5;~`\5;~`\5;S~b-"~b-b~bpxN~cds~d:p~d:R ~di~di~d?.^Q~d:vi~d:v? ~e%a~g ً#G~hk R<~h/%L~h2Az~hx~hx+~i qy| $~i qy| ~i qy| N~jGo' ~j!x~lXa-N~lXa-~m ~n;\c ~qMǮ'>~rQ j~tC~uM@9ٚ ~uM@9ٚ?~ṳ"e \~u>H~uRA~uRA~w-7 m~x]W*~xm9j~xm9 ,~y#>xw̧N ~y#>xw̧]~y#>xw̧~yag5~z2Mi2W~{,кƁ/~{DV ~{|&6~|=X, ~|f6O~}{~ $~}{~ ,~~# (~~# ~~g)< ~ZC|~&z3s~#h7V?~#h7VN ~#h7V~#h7V]~ʑb4 ~E;+6N~QJ% ~_ƬE ~wu$~ҫFZ -~?pd ~E݊~E݊W~E݊8~xfd~ThtX~ # ~3c}U~ ~ ,~/?~z~e:8) ~+CV~+CV~r9f ~E0?I~*<8~*<]~*< ~mӂ?~?~? ~c ~fIW~n~? ~n~ ~\bD~! b $~z;",~T]\~{^s~y;` : ~+T "~WM| ~WM| ~WM|t~9j-~9j~9j~ב”~=bj~DaS ~RPj9~RPs~bg% i~̺<~~̺<~~)֙~)֙~ X~ j%~  ~  ~  ~ ~SF@~3{ ~M (~{7 ~$z|~44S?~:u~">%~">% ~">% $~">% ~">%s~Y^j~hX~It - ~[C~[C~g@v~g@C~g@d ~g@_~Ƴ`#~'re =~:_$~`|I7 #~`|I7|~~ (~[Ta~$EXL ~j0~f~0rd~0r~TUZ \~jqq ~BTN~S  ~S #~9+[~uQL< a~\udrR~\udr ~\udr ~\udr? ~48Mta~48M ~aJ?B ~g[[~𥽇NR~𥽇N~: % ~:?~eSV~"R~)BRrV| ~h!$~h! ~Lq~Lt~L~L ~; ~R o~XNՄ ~XNՄ ~p.~RC.~ŶrE~Ñ1 ~oG7S [~ŹW ~ŹW a~ŹW~L:={~{1~649$~[,_?~Q k~DP*~: ~.w#t~^<~h;~s݌)~?~NAd>tO~NAd> ~L08~ˎs0~˚$ ~3aL~N K~N K~PHLjJ=~PHLjJ= ~VSXA ~̃ t ~̃ k~r6=Rx~r6=~r6=~r6=~͏G0X i ~K( a~6RP# ~ϙlQ^~yӳ/~yӳU~yӳ~yӳ~Ѫ6'~j~u!g~3by ~ 9~wP !~wP ~wP?~wPj~wP g~{:8*~{:8~+1BN~|]~3'~3$~3~ءi $~ع\{~ ^<?8~ ^<s~ ^< (~ګv~#~oh/Y~oh/ ~ۃzd~۬_)PuN~۬_)Pu~۬_)Pu~_xYP s~͜/ ~?T5z~~!X?~ޕψQn;~" 9ZK~iF~߃v>iF (~By?~p;@ /#R#H(u %q6 q64 ,%MNYXT u m'u uaesae gܰ,Tcy5?n S| LklzJlzJB12* B12*JC/WdC6;P9 ivGf . yY?Qa* TM? !q \ !q h xzyL xzy xzy xzy!ܝs!k.5!k.5!k.5!7d c# -}# -}NV#{ۛ0c+k#{ۛ0c+ $$رD $Є˔$~o>$r%o"N ,:%o"N'`J )a{R+)a{)|+)|+D )|+)|++_ i/+_ +_ +_ ,9`A,Hv(^ *,Hv(^?-ێCH.i.> ".>S/nDM /29 4΄ s /29 4΄ ^0/$ .0s@Kt0zj0z?0_c40_c40_c4d0_c41W#Q1.K^1.K^2U%rv@2ik]3x8 ,3 4&8L4InM14I}\7u!7F. h7PGBrvj 7W9?7K@W 8fx |8fx ;8በK8በ8t=1 ;khlS!<#><#>R<4h<=K) $=K) >7??kU_?kU_?kU_ ?kU_?kU_?mQxt @U Aq{AAQ@AAQ@QAAQ@AAQ@Aĩܟ @ BL#B='NBS*FLC)RM DY?tDY?jDE)es F{H F{H lF{HF{H $F{HhFh|ؤFkFguFgu8GlE 8 GlE 8 Io$IєN JK36$L9PN>H9& N{-9O2IÓKOkt9O js O j?PʑR&Pʑ Q`v0R.R4+R4+/R4+R(tjR!²dSsGrSFTL|"A TVVI_4V:itVZVZW' ~jW' ~ \W' ~X(OzXIU*Y81 ZbZbZbZb[|tŖ/[Gګ\) ,jj\) ,j\%4*\ZS\. s]ch]ZR ]ch]ZZ]ch]Z]+Nq]+Nt]]+Ns]+Nj]+N a_ɾ8 `yb `pkbjEu e9-gk ^QgJC hj%%9h!" hd_XipERirgv?iS=SiodR=iod j= (k' k`nU[ k`nU[ k`nU[k`nU[k`nU[ kw"h.l63g gm[HmK ,m .Cjn-Q{1ێ (n1gdnUoe coԚo 5 co 5 wpaj0papKt2 ep!LٛKq@X qاQr _ r _srǙA3 \sBH s\;cuvuuiI8 uiI8v WXK?w& wH\<2 w`)xz5oAKxz5oAxxHLyD ^ yDyD gyg0N@g $yn]y?{d}Gk{T H {\k {TnI{TnI }n? (~5 PJ[~j1m,suka;Z@O6BRJӛPJ?OD ,bBKbBK$o~8*bu i++:+N5[x, |Ndf^ (d@$,@$#@$k O\>bs@=&dRB?Oz4R-jY! }AO* czP^ ReS"U "U "U ("Us"U $"U  "7CS "7CS "7CSK&ŀ Hb( zYws*9ڒ!~ $ڒ!~ H~b?ņR1tin|Mn|M gȽRQ[!d?i=8x =8x c nV Q 5n`_Rݬx ^%. _lv8 LHfR~##7(dQ dC MC ^C \}vr4:Ur4:U 1  1 1[FtЊҭR 4vq 4vqIPdqviDIPdqvi iA2Y|vTzvTz vTzŵ 4Z" Ee"^ S.*~K@}SI (o*(o*pWj*Xԡj+J +  b]`\~M,8,Ad= QA QA )Nej $ˆĭoIã MQã MY F@  F@  F@?,c \U{ć#)tıd5Nd5NYUC ,q MUS]~y7D ˫θ ˫θ#y Oj ȧMȹe&ʃYOӟXY ӟXY A%߲6Vț; 6Vț;Y˃!O| ˸<]˸<]X6X6KX6K͎ȍR slu=V \ΘVs؛AZΘVs؛Aa ΘVs؛A MR d`D:)d`D:Yd`D:d`D:d`D: d`D:9h.Wg0Ƽ C -C DGBGBq<1N7 igЛh gЛh(c\p8=`,p8=`Qp8=` p8=` p8=`Մ{g;TZ}9Z} @/KםsYP="#YV!Tt<ϼq1zP o03?b?GHtYՉsۊY0{r%CAx 0Ǧd0ǦQDw>- H>6۹ M $@;ްm+9S ޻ήF OKOKDOKOKDl-K gQhH Z$=7# i$=7#9 $=7# $=7# *$=7#.K .K [/TZ /di _ i _VxNxN`Nxr;r/ POvSPOvL˓ꣻV.ꣻV#ꣻVꣻV$ꣻVꣻV\P|X $nުX2J+]}l: }l: "}l: }l:(qi ,ҕt:ҕt (ҕt9> f,1j> P5R3'"lKFtڞH2.nK LYv (,LYvjeLYv^j98^j9t ^j9;-Ή]?zwmgvQ $gvQ gvQ , gvQ^ R  YGc'HCYv#1N 2tڀ]7x $X!B(鈡za Yp |  R H % R H  R Ht)##/)##)##)##` e 0,E V5mL u0 d8 UCDW*ۏF 'bcM] n?Џu iЏu ЏujЏu Џu ,+Џu (F5kNF5k iNdj_fe: >冹 語  z  qc ȃ[ kb翽  A3ij  V'r  ^F? ^F (Byӂ Zd&X 7rxd=@}[:y!T_rQb52be9 Nw WF^ Ev rX*?U ȞKȞ#q8To.xKH)} $H)}bŠ aŠ wPS-Z>W2 imn R }BrjQ wtVbz ߩ , yI.s"ܦj^"ܦj e"DBc#i:PK$% $$% $% $Yh){$Yh){$Yh){RS$ΏJ3d%*㇂%Y& )=J&"R֭ˤ&"R֭ˤY&o( '-Vz 'ĝj(e UT_) )%>Dԓ4**4*j*.$_c ,*M0+ #+ۘ0^+d,[,YML,[,YML--//>Q[/H5QL/n]߹/J0q , 0q ,1_YJ`2 I3s 2|E 3̱Ǹ\4jY74jY74jY7Z24jY7]4jY7L 4jY7 +5zX5zX6'B  6'B  6OwЌZ*6g c6. D778 @ 8fX 8fX 9yv :ZƂR:zɠ ;2֤ʡ;x <_X=.=&W >On@ h A쎆 ADCȸ ASt!ASt!A/NAKư?A!zRA!zAE˘RBKkD_C<YE~9fdETd ,F>j?GM Hc4OHqH HqH HF& Io .GJ9*,] JEQC K疌L7/+؎ M*߳0qsMAN# M[ӃqwsMAu' MAu'RNn9ʱ Nn9ʱNwPFr rP9>*SP~Q4 RF߉Rw7g)jRw7g)?S98B)S98BS98BQS98BD<S98B,S98B S98BS98BS98BS98B S98BS98BS98BSGuS>sTr("{1DT V`UAL2UeɳzUyF0UyFU)c#U)cLU)caU)c]Uȿ1P V ښ>.WoQ[#W}}5N WLÖWLÖXΘu,Y PYR&BYR&QYQrw[YQrwYc*Yc Yc YcZYe} Z>3bZ>3bZd?SZdj3Zd ZdRZd i[IM* \ Dx #]b0F^Զ^SQn @^SQn #_ڛv _ڛ _駲2e`0/\٦`o*;KaDKaI?a> % `Qa> % {b|`DR}b|`D b|`Db|`Db㪢x>b?b㪢x>b b㪢x>b -cl.tcl. cl. cU|e<Be<%e<] e<e<eijt$fW6YSfW6Yg$dqh.~]^"hEdh+m&hh.il\ 9maZmnFm nbGnjŒnְ mnְ6nְhnְkMnְ>nְt nְ nְnְo=6CHNpcFtlpcFtl-qSl q]Uqqi?Qk qi?Qk i qi?Qk as&# s'&E%s'&E%Ys'&E%Rs݉YsR-sR-sR-s^*dt4+tG?vxa[! # vCLK vttvtvtsvt iv!Vwʃ<Ty gzLy gzy gzyI;0yI;-yI;yI;zP7 z_ mWzQ {{G  {G K{ttN|sm0|QЀ?}V[8F*}֕}7/}֕}7/ ~ R~ 5I(5dĜ0by.YK࿤*- GCs\j %X%t-%X%Y %X% %X%j%X%H{Yrxւ?0 fDWfDW g]Z8Zr2   s | b + 6 x %׏ ϧRK+Chal t0al KoBQ 'oBQ 7,xs}v*Σ}v*Σsi\5bloKs]eˁRd]eˁR N Ns N B <{LLR|}mC\<^J2;s^J2; ^J2;t D3%>b &DX j›yj@"\tZ#|`m > IRoLԛq i=#Ҍ!~gtך7Wcֲ|"dt"d;"d  - e(je( i$R$Rhj۸}aos ׋q4׋q4U׋q4KQ~KKQ~"S" "R J] c>ĉC4&R 4&)1# )1# ݛݛdỉI?GRʅ'a''-/yV ,|yg̖R; mFݩYFݩYFݩYpݣW20D (20D ,3}_K3}_K˷ j `{?Ctt;7pd]2j$ (J+_ .xYptxYp:xYp Ycxs2kLH a3 3D 3}4"C}4"C$n9 ,i>lrSEi>lri>lr8U9b0?)( M H\| )c' [0FǼFǼ]FǼgmCj+CC ,C @9^  ,a ,ahZg^czN7AS-[ [  [ _r^D # NXNX\ j$/82ſ; tds rF2.E`~jc Z a&c Zső$c ő$c ,pE apEk=H?ƀbjK,`^,`^!2`CWh6'q``6zw 6zw Sʊl{V?qIqIqIqIqID#fL>P4St,z9b̼z)*?9̼z)*&̼z)* ̼z)*spYELpYEKםr?2 cg)jg) hy!U ;Rc Lf+Gкxcs?sFfGwqFfGwqsFfGwq FfGwq Ѫ{ ,\\(Y ҞڼҞڼ  D6^tXEpߞ cՎy^xww؎ FD FD؝*aȉټ߯ZjKBzZjBzZ BzZBzZUڔœq ۹yc?XX\) (vEC(vEC ݷ_gݷ_gKݷik쬻F a?M oS#]Ws$#]Wt#]W#]W ( #]W#]WY ^ f%μ 5lw l_z U ;U ;eGh ,O (OsOhEqut!Equ Equ 5L,.KǣO ?; U=!9z m!S} M"KL{#x̎ $ #x̎?$Ľ%>K%'(j8%B (& Eq3]&xAh '[Ss't #'6р($[޸(Ţ} l(rݥ (rݥ?)@郀)@郀*G ` *SA= #+`s+9 ,+9 $ +9 +9j,Ch-0.zR-\͆-yn( -V9Pb -V9Pbt-V9Pb .S1m /X+}oZ/нIV 0x00x0x0x2sD;Sz=h<.`O<ŧJ-sc=:0C=:0Cj>JٳN>Jٳ>Jٳ >Jٳ?]W a?j<7?~һqH $?l\n@iw͑SAޥ* BD~끉BW m?CYԯCYԯCxcE E<; E֩si E|zKH3 Ij Idg ZI"wc[J*JMuJn̚| Jn̚| J , K+1 L LhB| L$UdLS 5LS NGg~Nd1+h gO>ԄOR*oQ{OX|K< (OX|K<P x"LP x"POI'JP4L?Q3nT QD"?Qw 9 R.D?Sv cx{Sv cx{ Sv cx{ S6ZƟS6ZƟQSŜ\xT粚 UMVO{2k1VO{2VO{2VĨ/A Vд6[WÒ (X =ȥxDX =ȥxX,B Y"_&UZbzS6 iZbzS6 $Z Fm[O]}!*]%kv ^?X;D_QjSh cada~ybIDabaR#baR#Qc/E # cǗ0 d_y e__jeھr eWGyeAKf`P cf0"h#jY_l$Mjbіjbіbjbі $kJdkckw`؏ZkՍ*6tl? $ lV5ݥncoH pqS@U irKDŽ RsUs-b* 's-b* tQlxtvt .Rtvt .fAtvt .!tvt .tvt . +tcbJt9ĩ tV\Y u,1u (lu (lugC'WvKvU5 (v\0v©M jw_GD w_GDwljwצ'oswצ'o ,xk+>xDxDjxù7 xQ/} y]7zh=]-zUIzUR zU zUzўkoT zўkoT |}d|F)?|30|3j|}7Vx!}#d ~SDρ~^ 8*SӘ5tڍXˉbC$)/ ŽVI.$ ^ ^ FK? A*g֛FKjjZq! o=^o=^)mhpSa? a?a?a?5%0_8x 11$1U6sa65ekn̡h8ITB N4@{ dQ?O<O<xvRDc I?PM#+U_؇ x%BXYyNkxONjKB7 Q!"aO'gv#^5c+||` O`*Q ,FBb|HZ_,W#_Z"NbtD:wRtQ eB`w9^ybBcj^ybBc?^ybBc P֍FoV+.%Sd$HVǚkՌ4Ƒ #r[p&UtxVXyR O3lөbв]fY*2jR;]R; R;"Θlyۼ5D[كbak #*##a##Z@R[ JSv qA} *r jlHc a|PP%dP%-P% ,P%P% $/Y0eERK] AK]sK]hOJ| gMp \5DP[w=KVjA A ,A Gb+= g³V\³V\³V\eפosCE'pSۺVvЉGЉGM9qֵ M9qֵo[BQo[B]B~1(^EmAHgSgZ8]aAt  At  $QD-Bà Ýp+>Ýp+>|ĝR)?4jwĝR)?4tJĝR)?4 (ĝR)?4c Z/ ƨK:XlNܫ| a(`qQ a(`qRi%1.Ƚ aO IzMɏuD"ɏuɚ7m jɾ9~ɾ9~E2V E2V F4xF4x F4xk?ԕ$KĆ|-ݎd>pu <{g:6fCqpSqps0707]0707K07 0707D07!%O Vm3?h ΡJE ,A AsA iAjp\n%T %TQ}:Q}:Q}:]uݾjuݾbӠ¿ݡ,7 R7 R7 R+c1= ( qMvLԌip] Ԍip]Ԍip]},- (waqL]e;Iz o RcKׄzGZ(B,BKBB "xyl* ?Rڭ@l (ڭ@lt  Po2۲rPy i۲rPy۲rPy ۲rPy|۲rPy <.PC_@~*RaK ݼkƴzݼkƴzDH/ߡ{的 ߡ{的 ,h)7U3:ZᤛF:Q 5lRBjuuU +U DN뗻[G7ۊ aS)ޫ<' Se 鞒1Raw64 =H$AL@s wdO3O3DB+xYfQfQfQ +v9+ v9+(M   \S[ O( х%0  s.+S s.+K ='&*$iXW sd -sd 3|V L>`?L>`L>`sL>`RB'v?Tm h7:) h7:) gh7:) sh7:) |=Zܿ ci W1?/fWXG ,{8mBjd_DBjd_Bjd_Bjd_^|0bݴa-RT +i R| #=l  sP T ŀ\ K0K 0Q=^=^Ls= Ls=A&m&A J\ i sET m #Y$@DHx $f.JS W MR W M W M W MS!)W>!A,!A,!A,!A,D"/j"y a"y ,"gj?"gj##cjN#cj#cj#4e.#{Q$y.$ܪ%Q(%R%%d %K%'^;Y( ֠qs(J^IJ(_]Y(_]Q(/V m)q|)q* ?* "*46dthf*46dthf*?Ijd*H\p(s*H\p(v*H\p(j*H\p( ,}٤N, , ,s-98L*-98S-98Z-98-5t-T -Ts.>@K3O38*o 38*o $31oF 3o!]+ 3o!]+ $5n(<j6?(Y 7V*O8%[80Z{3k80Z{3b80Z{3809<)93 cï9AP 9AP "9CLF9CLF 9r9'7j:eRt8j:DGY; +/;O'9 N;O'9Y;O'9b ;O'9 ;T<a ;w6R;w6 ;{sA g;{sA ^;{sA c;5 $;5 i;uH߼R >H߼j>H߼>H߼>ed> d>@m&?-05 ^?EN\ -?@ Z&c @ Z&c?@M(gRR @T!ALAdF@RBf5DrG EqLF7y F7ySG]"K7} (GǁpGǁ"Gǁ Gǁ "H0]|I;}5X2NJRv2V?KB \A!KKYKkLR%L6[?VjLiiv!LiiMu9]MkcR"MaM~:~A M~:~AM~:~A \MdMdMdgMdN"%o> N"%o>?N4,o -P!gzoYP!gzo P!gzo ePjQ58C|QwϺºjR _i R9&?R9&?Su= :S.N S.N tTUT+t ,Uƻehs iV s*;l ViViVvɩVxQ:VxQW]X%mX%mSY-h3%Z}i= Z}i=Z􋰯voZ÷TNZ÷T[\RJs= [#[_ɋ\*] \+D~L\0G5\0G5R ]pң]ީy__^>3> v_T޸_T޸ `6^Ud`f-Q`uI~*#>~ #>~k֬4=5SuI,K52q "ߗ"Aġ 2%T'>V %xb 5]\ $;5]\ #Է#ԷYF*02ELǒyRA A z_US@!MN ͭ? ?""%""S^܀. k}@ǒ}:}@ǒ} ,}@ǒ}e?ƻz >ƻz ƻzj|ƻzt ƻz ƻzbƻz ƻz $\ѧj $\ѧ (o ci3T /q)j" z  {H% H%j ۥ LEۥ Lv2&8Rv2&8Ƹ2L  DF>/LK F>/LK  (ϥ KI )0t)0 aTߠ ? ߠ  (ߠ /p Pq!^ $dJNo`Zo` ߄xe  3PrD?3PrD #~ )kGDn:,)xD’v-BK ׃ 17{ /17{ ,17{ (Ǡq  6@*< 6@*R@% TGR*NcMNC#0m1YJ$J$Zp# , Bs i ?D(Rm.5.5,ߦ ,ߦɲ Qޣ?:4whZ$˜ +R nD ^ Ð݇dWê3LO"Yê3LO"YLê3LO"YSZê3LO"Yê3LO"Y ê3LO"Y 1X " 1X 1X ZV VD/L|n/L|nR/L|n/L|nh۟M(ŀUb:ōhf?eR ōhf?e.^I5&tZ%A tZ%AƪqvH[v !ƪqvH[vvI U>$MY 10 %S -4$y a4$y oxjxcLNB/YJ|~3L| SmAۡ&u #D%[Ղ ?Ղ jWs]Ѽs]Ѽ $ֺ}>ֺ}>R ֺ}>Q*vEsh sh? bI bIKD ; ~Д,Rb:*)y  R^'/ $eQ/eQ/-ݐyN嚧$ݼ܍Lu ,ږs~[ FZ K#T$|#R3W8q&i cgl<glRJglglglȢ NȢ  Ȣ Rp/ɶ p/ɶJ"E?6 ]* ^; ,QzD3 - u>cц\*vӿ#  T@$$q * b ab2z9d) )?k_W? ^0Mv+S6 +S6  +S6  i+S6 +S6 |+S6  %;:ƽmlR-3  gKZKK%jr+&q e( MF? MFshz:إZC] C] C]RC]Q8JA8J 8J8J1{ e SP5kP5_ڏC[ڏC[jf Rs\s#ݕ[T:QSv_{k gse`ك @Os@Os@Os bGKm&u;mIB#N#N 4=_%2 __ y>jy>:H ~:H ^%J %J@%J et,<bZ%Wtxc  I= 7N׍t Ҍe T a T T , Ora ຩC $ ຩC  =XV?D}]_X0X ?X ,-X ~X X eX vX X iXjX a xD cpj6 j6aj6QD#W?w,$K? } d2 d2YR+h8+R+h8 (7~?@ɸV?47 47 ir ~+!cOKTI!}& a!}&s!Ț!Ț!ϸj$YwQ$dn]%x=ޞ g% R %%F[!%F[! (y%F[! ,%F[! %F[! %F[!s%tb %tb %+.\&J./&J./ &Pe|C _&Pe|C i &Pe|C (&Pe|C 'k/' (S"R (S"a)"z)x )Z i )x )Z *$⾋* 7*b < +;+Fձ &,0L-T2 .ݼU.C[/)l\b /C}r s:/C}r?0 05` ,0`GT2# 3N6 j4~fAt40{5nr 5y/ Jt 8< 8Π 8+R 8+R?:sFVҡ:~oX:65;щv??;щv?>fp%>v0s>dH >l[>l[>l[K>l[P>Qm?N">F?QÚS?hZڦ{?^p9T@XOJS @?A qq Bh BhPCۏ&bCX| D>›DF6yU@XDF6yU@HF3hwtF=4T7CGWX@GWX@ dGWX@6GWX@%GWX@ t!GWX@ GWX@t Hp?H}JYIRJǵJǵJL %uL 1? LISjLr{ N8K}sNi[Ng^zP9] Q QHbQ9BR0\Ƙ iRgחcd SqK TB%U8F} U9.$(W W eW WWWC~| YW\bZ9MmsZqQ<ZqQ<RZaGZaG %ZaGbZaG [P" .[P" \ts_5aE`H a Q am amamamaLab4Ljab4b'YFb'b' b$(B b\b\ mdLhd*beyPN(eX eZfR6/KfR6/KfR6/KfR6/K fR6/Kf'n$f[RfW#k fW#tfW#sg/ҲhEnM$=hkTi~ɶN}i~ɶi~ɶ i~ɶi~ɶi𽰫jRf"In&qܶAmn4A nQt" n4`?o ;_no ;_o^3a. o^3a.o^3a. o^3a.tpDfqpDfq pDfq pDfqkpDfqsp1/Jr`JYٞ rC tct_? u 8dS  u 8dSu 8dS u 8dSu 8dS|u$rt uyLv!,vv9&wpey$ w|q̧vw꾨)w{xnbOy*dy> | cy,y, yM) (zMj $zMj $zMj , zMjz0+z0+jz0+?z0+ {P)K {K8)l |9cf |9cf ,|pgׄI|g[R|g[|֞|֞}Cv~* 3~* 3X~<~<s~< ~\KѧGU~(KL[[KA mbLmbRmbmb0 JX| 0 JX Zrp c&Xc&Xb:"tb`5<x $54fk54fswWױ QǾ% Z8F|`6خ ,#Rt#Rj<Q< <DL<YsD b!0 ,I._HSyAzK-v?M: j z$ xRRz$ x OTrk3A/H? ToTo , , 9 Bdjn .OO^qq n5.I $4)َk4)َ 4)َtGf &ws&w IXntk|h#) K $ 8M]oO9 ;f? Zq)ZqZqt  ZnZn/=Djf,f,-wf,Zxyd^k lN. }:Oj5w|*>5wh*>5ws*>5wByTykI غ T PE{Ƀ& Uf)O i9R;R,9R;?9Y ?9Y /SkJ "kJ Guqjy)%0y)%0!q[Ff s|$]\n \n\n\nQ6mMe #c~zr&zr ]|$2Hd{Hd{Pv9 # "D!=*]".nR7O x -;]gtYN& mGr\|a>M`jܭNDZ E '$Xga8; Ÿա;?-v*S-v*Sgc25+;- 4?k Ƒq Ƒq Ʋۻåt N?ނl hd7s%F;Uܵ\A s?.?ED^jL`:>3>L`:>3L`:>3d焳Ρ>HT? tlMv Шs@#4? Шs@#4 (gJ yOp s ӌSMѓMF WEv0A rv0A v0A v0A 8w e 2w ew e|#>65#>6 #>6 #>6|&kר5ynשR+^|l&zN ,ǔ<t}L )}L }L }Lj}LR9V c 9V #q+h$.?| s12n@Z]-B *Xv>$ bisAC ]1vt*M ~tl ,^4ô Q)WÙmDk/z%c{H¿S; u5|.e%CZ2>踲i_*7GOU+s99? B:y5 GȟSR06w/06wRC ""S'M4Dؚʿ  )"X 6g$ 6g$ 6g$K 6g$ dMA g s  6S  6S  .D  lz5  lz5  Xg} Xg} %   % L 0jq1R "=) (ҙ?Qw mR+ mR+~vgR #QR#QRNQrVQrKn$ $^;?pUwRX = *sGBAȞ v3=x??T #ؒҽ|Hpj Y >}՗Y`oN@x>*, (!GNz.!} !gj?!8JQ:!8JQ \"O7O3T (%"O7O3T? "O7O3Ts"IrɹL-# ӎMnO m#!2~S $pr $uon%xWN&gb+L;'/o*I"Q'}MR;'}M0'}M( (u(uQ(uD* B+d1,V{ ,Ch-  -67[ ,-/-g:-̢%{L/΢/~W?/ΙCm 0C-kQPD1_6j1NR!30YD}R3rH0/us3rH0/uj4dl59O$6~ 06|؝ 6|؝ ,6ŧ [L99EDSD 99EDSK9FA i9FA $9ܭ?:,3;h K ;h K<՞^S<՞^<7T0=<<7T0=.<7T0=]<7T0=Q<7T0==]aL@BLTT@Ce~@uDE#AS<zAB-uAB-uA \ASFB2a B2BpaBNL BNCKϕC)=`E!c<  E!c< ECf?E@-YH9 HJKLJS/lG ,JS/lGsJ Ly<-Lf^LVq M`ٰ(NY_ Nj?O[- R[R)3Sj9bPS>V- #Sz;^XT+V3BLT pB>jpB>t qrϱ- ry4^ Nss&T scy tjq"NtR)bt{)8 ,u,d+u,du u>? v7LXv`Hvv`HvwO (w+4Taw+4Tw2yQRyl~Uyl~L yS auySyS {%gQ{.o {̿Lg{̿Z{̿|[v|˒$|̨\MH }2w~W0aO~gd=~gd=Ds|, |ՒҒ2 vt48S 48S48SQo(W %e %e%e%eDKu[  6wM9,#8 H="؟E/ILQۋvaX `&?``& <+4xs<+4xh<+4x (UhNNe]c} a|JsxtS'P  $QOKNjwbՍ[v `; 9;s!; i;j ; s M2c\PME \PME U sU ej"sJs.R * 8t F?%I&v  hu hRC hScq+>c?K j +wN)gR"^hÖ#=z1>\? -&4)6vc bTbT?|$? "<79"<7"<72vL-#K R ,K Ro\o\ o\ iJu? ~@ (a DReXj ?< }SgpU1ID U1IDK_W3_W3K asZa7sZa7yL6'kyL6' cyL6'9/%///Zq` C >#@ fTx!]uD'_K:QK :QK 5:QK $:QK :QK ,lɐA+ड़;)x i ;)xtĂ .Ă .D@-@-{ 0zcvs+A $!s+A s+As+A_ j? _ j? s4آ{dk߃ j%?{̭Q̩"1vV'4FUZS{x , S{xsS{xh$֖5KA֖5֖5Q֖5֖5 w8Z fL c џzeӌ@MӴe&4Ӵe&4 $^Ӵe&4 *I*n[DRm ~n[DRm n[DRm (n[DRm|$n[DRm n[DRm )+| Fj F izj8?6: E`83zKzD'U? ?TK-TK-ٕY ; a ;b6 ;Y ;j ;  ;  ; i.2Ni0.2NiJ<bb(1 iܠ{Qpo 0 $Caw CawyLooR ء(l \ #KS#U 921t921 n*> ,-ѻ-ѻ-ѻ$U  ,V18 -%+ʠπ(0B/Y‡FpO?"OjOsCKjCK  t9x4" $Rv _3(t _3( & _3(sE,c\ u_]E211u@DW _m)I +I +Rձs ձ \cf& a@nldV6G?  $~? N +x/iiRK/iiR/iiR/iiRI[}4 as d,^=S=S=Sa8C"3 ^ LmkL ܤZc iFd!Kl\Gv[gsKkxO)bJ 3vl;?3vl;3vl;fs +]1+]1+]1Dr5D \5858NqlUȥAjlT2sT2b_.` <[ -KqkVNkV5kV,kVD kV 1F/ 1F/ ,L,,? , ,j, ?/\Cf #RYʝ%!tB ]?%_]?%_+kMN#2&55q j - M -  G] G A&? ޷/EN x_v! uC KHs٪ ٪ #^~4bb7Nd9$a]a~ 6 i6 |;ZBDYEO!NSxSx  `F  c?(cTkDUD | ( UeXdY'{(<#-zg-zCMwIljIljL M 1ev sSvbC mbC ibCQ  B& B&ns+],wɍ%=}rRb ˒g*R2l1)L![/ (3w nFZvnFZ{םY ( םYUs !f,b!q "W,.ijs#?u` m#kJ|ws$k%l@R&? (&? &jsUt'^ \ 'j(<ʣ._)(<ʣ._){j½ *~G Y+3d+^A? ,e?,e? -_u-_u.;yC*0.;yC*0.ZN雞 $/ojuw /ŝɭh a/q/qd /qR0Lo0c( #0Xc0jf| 1RA0 2(#t2l]#N02l]#$2l]#R2흑=b 2uG( 4l} i5b:6"06I|7 7@Y 7)_?i 7)_?is7;B]7쐾R83ǭ#8RG i8RGs8RG 8RG 9zDj 9zD \9zDs9Uq:?) $*:?)s:?) :˵#cz;Qo;Qo ;Qo;eԋ  ;!H<۶zR<S =h?R =h??9 6[N ?9 6[?Z X ?^$?@?^$ ?^$ ?^$ ?Iv@ru0v@ PtBJ X?BJ X Bi-_tCvQvDz4 7PDqt ErM:ErM: Ef6?EmQXK ^EmQXK|)EmQXK Ft7s Ft7sFt7sGYv@N)H1t jIfQdRJ |J | dJ |Jr0kJӚ[-YLtJq^&|KJq^&|NJq^&|K4] K-.L<O9L<O9L[geMxO MK/M_+ , M_+ Nڂ7ZRBNڂ7ZQ&Nڂ7ZYNڂ7ZP.cRQ ,Rm # TR~NtUP%U7wUe@匒W XRvXRvYy@#$ "Y#PQZ(uA7X?Zj U #@Zj U [ToJ[hF)[hF)L\i\ww]n|]n|Q]n|^}j^pw3=PQ^CVχ ^CVχ _gwK_eJY_Si`vQ]2`a|b[ǵ bzU ^cqr e3: - eR cf>߄g`\p? i[Do{) i[Do{) i[Do{) iji7̋Ij6/jkt-> #jMɳkxj- kxj- ,kY">kY">kr6 kJpĵkJpĵ ,mZ{תn_}~nԫO%oIp5_'Y ipa /pa /Npf4X rJݖ}6 rTaoQbsw csw # s+vingsk`1 vy #vDvG͈ $wOE ,xyܬ #y4z-Rz-Q{R2 {16-HR{^#tP ~C]d ~%0`~%0` i~%0`s~:vWۣGWۣGtr?ztr?zs'ss't ,f-5v\7(1@}0 }0 R)Kv" a+$ ,Ć˨ ھdsھd ھd $ ھd ھdt*ꑞD IMLbh$PQPı)Pı)RPı)Pı)K[EY~w e?M ˿w #A \n \nj d >YRvvjM1׌ .x.&wIq|/o Iq|/o?hLYQ V|T%(uKE KE \ KE KE|KE$aOZeOZe c#qэqsM?3)L R#Qλh=R#Qλ $R#Qλ |; |;tF""2R'?-?yE|w!?tFBCFBC|#r "|#r ħgFVħgFV iQ Q +S9]?% *9Q?*9Q ^$_t???j^@Dk}t|k} k}Y k} j: j: Bj: ;HfD9GRrKf,=3M? =3My o|RD?++DdNZzQHS.6y6y6y#° #°j[ }3U^s^vTTe lMR"G "G $ "G W0<NsSF'y֦ #;ʼngkQҡ5 Qҡ58M -_sgt_sg $sprLJa$z+fW<]j fW<] Ve):Ve)jVe)sVe)tpO~  m  m mS mJtf x $Sˆ-pSˆ- Sˆ-sSˆ- iGSˆ- 2Sˆ-jSˆ-hkl, ߞN.x&It.x&I.x&I (8AOFJ̏TL$ cl9N#< \ǣ]-2 2@!"ǟS$z7R&7)? U1 #  <{ty cǧx 6:5 }GDʖGVD%%49N ̴0lp o?v7*s* *@7y%K@7y%v9R 5h; ; a ; ; $; ^D}ۨi=l7lҚQ>rlҚQ>rlv)ӤBs/#[C/#[Q/#[/#[/#[ \@RN8b$$>lNp $>lNp #8& 7}ꈞeK7}ꈞed7}ꈞe 7}ꈞe7}ꈞeR؁'ve\m8 ,m8 -m_RPeБk@ ebyj#}F"q NS^K/R~s޿|cp* yV\ yV\ j>Z j>K #N2i #N2iet; ji[ i  cZ4̱$@79+Od3+z_z_|"f鯣9 (c c^d ql Wql qlе$+Ĵ 4ON%Z , ./g ./g ./gF?F?F?F?ZIh"Xn2@Ry5%;jk?%;jk %;jk %;jk (,8,8.Ь?qP a=j a=vmz (sK_fp kZL1 (ZL1t;S ;SfVשB}n D]?D] $R1s!'Yys!'t&s!'j%s!'])Ex5Vje-]e-hunhun 5ZҮRo&;LX\1#] 51#] # "zIy "zIy?mjhOshO ,hO  -T ( 6#PN Ye;j m @ c {eM {eMv A VT p~ -=`=`PQG0 QG0SQG0LQG01QD'C ?)>7ca P 8 P  P #Һ%EҺ%E   RG uO$XKp\ 6 $3 \7M0CM|'*T9&0 $ o@a2:?Hg HgvHg evպ  SYi?2ܺy,t_  !Th!X_ c=!fŏ|"}y%S$ HR$ ȁ $ ȁ$ ȁv$2r}x$O*Ͱ $䄳-$䄳$䄳%`;c<%`;c<%`;c<%`;c<D%`;c<]%`;c< %`;c<R&^'QCѷyv*>~0+ߖ)+~ +~,*g-_ .~ /b2sLS0%_ RlZ0| R0;zɫh0Zq 0Zq 17dFt1tѾ*s1¼"WL1EzL(x?2.}|3'KB4!beav4? 4+(s4ƚj4(b4ÓR(4Ó5d[61iY61iY 7Q`[7 W( 8'mru8MUj8MU 8MU9ୡC9G}xr::\m:RF)?;wD!~N;{g<3Z0R <ԋ=^ N=lC =lC=2ҽ >:po>bD >4y;S?Bck@?@ @?@ AQ|4E BQw|tB3ܫC>M C>MjCI CI CMP#CQԁcFA; +.GZOc]0GmNkHצ{H:w-HI۸Haɶ HHvI0 LD'II0 LD'I*?J U J UJ8ꅿ#0 (JOmZ Khc KK`NLhT LU{LfSL7DŽ (L7DŽM#6t MB- gMB- gN hN h OZ2kQOZ2kOZ2kOZ2kOZ2kR%H8$7SH j?zSH j?z eTF TlITlILTlISVTlITlITt,jTt, Tt,Tt,Tt,sTt, eTc*YUFc\ UFc\U{ON Vc, Vc,SV1B|V1BWĊl X$y9YX$y9DX+k\on YSޏ@YSޏ &YSޏ YSޏ YT Z4Gs[C/l S[C/l \S;\I(os]{> ^(4 ^j ^+\^jbn=_Sjƿk`ю^`# !R/`# !`8l1aCa2z#a57VsBb$ bN# b鴕6x. cDo`Bc~AM i+c~AM scSkGdfθ' dE6rRReL7xXke޹u\ fhEc s gP?gPjgFbh1qRh1qh1qKhU4Ghl>jhn,sieyh-ieyh-Vieyh-irU i ,i{ui{uj'21S j'21kMf4mkm\T m\T mA( (mFMRmke}knc1_co2C; p9n \pB A pP{(6qmZFrB:r%O+r<|sq asH*sC{gDs6]1tA $ tNI tNIulhNw===sl Q Q (+?cwPZqda]ka]ka]kDv0D wkR$u (($u i0K] (!$ !$1£1[;Ay #LhLq:޴Oz? I 8CA|r<|rR<<<<` t ~o,@| ac~ n  c~ n s ͼU$ ͼU$ \ͼU$tJ/hvvq2U^&KyKI #WЖ@.z9 iЖ@.z9?  ?۰vt ҪnҪnҪnQ ҪnD Ҫn]j BL? luӉ]R/XӉ]R/S ԣ$!b÷; Fb,h L oJNlSՖ2jM@* A/V?։;z֓!e~ #kApnsظ9LQ ظ9LQغKػ+yk<9T  wG cg1?P5Rg1?P5 b* &r &r@׉rܻ虆R68:|s ^> (J ^> $D ^>9 ^> , RR٠ ev݊]AsAs0§50§ 0§j 0§ i0§ %P^]:$dJ){ s fRYhCDYhCC^S-C^SC^SC^SC^SwC^S,C^SKQ3N&B&B&B&Bjm m sTd@ =p = , = = e,d5Nh, #=dKH 2&h|@by$bySbybyKby8wL &]s0 BF \LR6=S\LR6=LB0( Bh>V NtHH vb>v vtv (vk ~Q?% pPf f|1pS;wn j[ft 2& (q)[q)*}SjRa[l jֺOJE0^R6L6Y732muA-e` $'$$'#h* h*j Kds Z' tc5) Z"  k@ |  JVv("10Vj10V1}󙅒L1}󙅒Q 1}󙅒 1}󙅒1 =1L3#Jѱ3% (5@hn>5@hn>5@hn>5@hn>5Mwjj&G5MwjjR5Ȗx 5Ȗx 5?Cd5Z$Tv6 | v63,7u HK7u H7i \j9.o.\9Ob9Zs 9`'d9`'Q:C0f?<`\fh =$>h >j8w?suY@>[B @{Yz[ $@}BOvAGE%j BJSC^.ʰ #CϏ=fCϏ=fCɘ6DCɘ6Cɘ6E]Q8j E]Q8sF;G Yם $Gd1M?iGIMpGC3JX4Qo: JX4Qo:?K˦4a4K˦4a4K˦4a4LD䉗LD䉗P+LD䉗Lŵ֮YL `MZ7sNwHےN[OcG!KP,PQI?P'Y\ \ QRRIfă RIfă?R`#QR`#Q SL\tSL\SuA>)K1SuA>)QSuA>)S!S;^US7wjT*RTYad3Tƒ Uw2j?VyYxW3& ,YuH.\>+9Г[]]s฀ a^?^ _иh`eD `eD `jE#7Ra7 ?bz$ c&!1 cq 'cq#cq cq $ cq cq (dF(n.eʦYeʦfE Esf][爈 if][爈 (fRjWfRYfRtfRg3#<hhdhrDhԯ) *jsvfjsvf ja \kh?l}m$vRBERobTpQ \z#pHp !\~p !\Up !\ p !\]p !\p !\p !\rj.r i s9q sODE +at?): t?):Rt5W ,*t5W uf5`vu5<̌ u؛\?vB @vB @vB @vX7k vQ[ avQ[wBY5W!wBY5WwJ* ,wppYgw˲ xXb $yVU}Y y4]ZЍzG $zGjz78.~zv+2{đ|x }-}Ȍ1b~N0L~t2cMKJQI(4[Eu>NSU &<d#kNCtuT _~/e So4D-?u/w#Hy\`<߇LDy TQRJTQ4TQ g| g| g|tBfH {W6` p pkV soU_G oU_GsoU_Gj?%9 3c./Cj 6Ȕfƅ)ƅ x{ S x{ Lv3[2> .> +> s > e> a> > kMG[ 32HIj32HI?˳yZX aMj(aM aM aM?aM(aM`0Ry6Lҁa*$iePw:xA l D -e'|EDj[dhyxo,hyxo I { .s{ .  !AIuL=%==0R%==0`4?w CCG~#Gy bdlu-~ aZVdɤ~DzɞV[~vguG guGā$N#StIZ StIZ o?GS u@ tP,?] FwHf%[ irb-kּڵ^ּڵ^ (I`>8S[1$t[1$ [1$.`;v|L|L islhZ¾S!QK¾S!Q@M yH[t v5G2\Ӏ.\Ӏ.R 7j|^UA?3֟,iit㘚[ K[Z|28Jk ׄ^?wf wf RąiWN čSxxD U,> s:pPśv2 śv2j śv2 śv2 bo\&jt jt (L9W/ p%Bfꟹ fꟹ =!G l_ʜ]G˸kzT(S$ ̻q ǚzġ Ne< #'6 Τ?P9ȥϘ}iL-C?w-C (-C-C-CjІi Ї5cM2Ї5cM ѶY҆>=SV=SV=SVϫ4bDfb z')zp7=?E4!m  8ٿo"Y츝3Z ؉-;ULĮ s )i \w ]ڭ&!9 ڭ&!9GQ!k"z:.'k"z:.] k"z:. ݇/j \XaXXD DI.RP2P2kP2bP2 I]2vI]20I]2I]2K?Q^f'Nb.eJ =;%Y i=;%Y9;%Y e;%Y a~O {s$HA $$$HA? c.f ܃? \PEs:.r^ jK~j הv[rR]t? #M` K=csK=c|`CV3IN j2 t g4 K/P;  e;  ;  G&ӋSxejV 4I?jV 4I jV 4IjjV 4I 9 .i 7kR;]ym1 \fp <]4 ff-_Q3I\6[ 3I\6[mU*ډU*ډ #4 KP?g4f̑RR,r #=,r +E0%OWL $#WL WL e}QE f u+hbB9k#)Cl # \{j \{? \{  o 1 o 1 K 6yg  T * }K } } }N } }D xb& xbL I : I  I . @& < r wBJ\6[ (N7\ 7\ $-'$-' Mc87yp2C3|'WOjj$o{l MT ,j, 1TCTC]8x zKzWKdμ)WKdμWKdμdo>9\Aqz; aqXt!,*v !,* JoqbJoqb \sMi(sMisMi6\>Wuc0r#@nx1 nx1 iSUG  *~G6 m ڍ?t!-Z*] !h (P!h !\4AJ"j #!TXb#%G # @$xy"&&0W* &1Þ"++&BOi&C\ 9&^-&]='1B 'OH#(5 (j 2 )@[xڅ *U. +YrgFP+YrgFP+xum ,K- - .jk.C=J/0^~9D/|ur? /F^0p%k1#Y~| $1/92T=/v2T=/vK5-:O 6"<"5 6"<"5s6"<"586"<"5 6"<"5?7G2/Dt7G2/D (8upb8upb:Yt:y!t'?:y!t':Ҟo:U؂f,;~nTOY7[>k݀՟; A  Bh (B3h2 9B3h2]B3h2UB3h2EXGVLE@3UE]LYE[+E[+ \F \O# FӭgtGWaE TG])QHrMjO HrMjO HrMjO " HrMjO?H^sJ]þ9Kϱ L1NMr+iN,L N.?3yNP)N#tTNP)N#h#NP)N#s NP)N# NsP*5 P}4Q*/\NQk98{^S^#_ iS}\T.ʻg0T3~т$U~Lt% nW6a Wi^RXf]t!Xf]t! Yۻ5%tY^Y#̋ɓ YA&2YV8YV8[@fj[c3[[ r?\{Db\* \*  ]SfSR]ghY ^DMJWb^dR@S^dR@^ԈĴ (_m$ _g@' (`N e`| a,*a,*% a,* b&鯮n c{=5E cVKcVRd~Ikd~Ikd~Ik\d~Ik d~Ikd~IkdMRf;Rga`#"h],kiivw4Lkjl予 ,mĮL n#wMjn#wMto>O%­ o>O%­o>O%­orݽ oPQ[{$ rr,՟)r8 UI r21^N sŲ!'ut7- tjt $uԕ,Ev.hQvUW>wG0 y,Vx y,Vxzm.` zFnj2նt{w45nJ(}oRy}oRy}oRy]}"U}> $~]ͬ7"~]ͬ7H[l\ T v ,SRSoH ԏ1E?Aa,=ahdK>K?IޔTQu $ &XNk-=2b2 aIv 'R 'lNP`vQujYQLr?Fɞ;A$<:7 *p9sWD8D8Us A 1{Gc*F G OsG O _" j A!>?A!> ,A!>A!>j_\S &] x/jx/ $O3 O3 s~8#$oo%oo ooo- v4n SIySIy?! q͔|1@V :غt:غR :غw Y3w aw tw ^6_ 'vK'v'v'v?M i Юs Iu?TŦ k7X $B6ΝRNij)- [9)@~yrޅK hW'SJUieY[W3n3L 3& fNxsAR[sAR[Y/Y/ (Y/ \)[h )[h aMN> aUVlԇy {RT= t`ms^kI8I8LPv0)-v%m$%m%m %m&w<=9 DPj\)\\R \\qE/ ?'##D DD''']'3 EL.5bTJūs~< \D9SҖ[3][j[3][ $cnj/| /|?R̀ъn@L>>jcta?v?SѽzІ ѽzІ ѽzІDVB B DʓJtl]إt]Ӳ ]Ӳ]Ӳ7 ȅ |h'9?wՆAERK3C!hc5!ח Q5!ח KJ1zt&J1z a_*X3?!<26fUt'"vUURU}jY7 شp .|-  SAj A JI[ UO"Vx'{pRbEޭbEޭkbEޭVZ.FnZ.Fn_Z.FnÉ7S~É7S~_ ,N_!%j!%j  PsI Pt Pk Vr' Vr'  Vr'  R*  xq ƅ2? ^C,] h^9^ h^9^D h^9^ h^9^ ry,_ ry,_ {{ j <PB?3PB?|PB?PB? e PB? 4 4^:eIJyKKKJAo gWV3)i)''vOj/"G /"G| /"G /"G /"GR\}"j{\}"? 6u ֕_:„ _:„ $X>:6m[Z#@_w#Z#@_wD ͉4  ͉4  ͉4  ͉4  ͉4 ! *R !'zi<!USY!(-vs"pc"pc "pcC#% sv %l%"+r]%w ?&/Z(}'K5l10'jOt U(~v (7:j(~w (\fzCO )])GVt')])GVj)])GV)])GV)m]t)m]j)m]s )m] a*v v +u*R+L[RGC+L[RGR+@}6;<+CF%U+CF%U,{hR-=/\.eg]D.eg]K0!?[R1bXL1֌j 13 -$13 (29 #349js3W&Ԍs3t%R4t߾_t5Ś7{lj+7"n $8Z Af ,8Z Af 8Y8هa 8m'l:8m'lt98S9W&1f97U c:q4G \5n'>5n>5nQ>5nK>5nR>%}>1>1>bb%?;aP?;y: ?;y: ?R @4Y$~_N@)`@)`=@)`@Ƣ?=?A'~d BHm <vD43\"wE,v.fGW&G Kc Ib|T (Ib|T Ib|TIs:2Is:D,Is:#Ie %RJJn #KP-v KP-vKP-vDKP-vKMPϥ ,MUMW NRN OٲKsOٲKjOٲKtQf_SxW #Qf_SxW Qf_SxWQzl҉!RaB1#v0R}dh?R֎ .R֎ ]R֎ R"R S"5~TYY[&T\Dڧ_ $Tu"bV<jV< VW0a:KWt@ވ?YCO YCOYsiZmxZBx (["6 k ["6 [=qhof[~GV[\@_0?\|sk hN \|sk h\1ǿT \1ǿT]%j]=]=],+^ qNR`Raea CGbX$e caIcaIcFv^d_h*d;s^ e2,1$ e2,1$eF eFg d h,NLMh.:=h.:=h.:=$h.:=dj1է?jrbtD]l&vQ l?نo,mEBo1kɥQ o1kɥDo1kɥDo1kɥozo˗spU9pX>0psfmMq91Rr^Fss r^Fs , r^Fshr^Fsr3䣾! sG/ sG/ t1-H t\~ ius*#=u ur?q u@ u@ vAF B"vdޕvw&d?x;|U xE xExhDžǢ \x{2; \[|*΅(@m |W }ֱ) }7/Q<>7/Q  (i+3}RxI=-?h͝jh͝ -|x ;cexǍ Wwqk= (yR>#yR> yR>|oEWnjzoEWnjz oEWnjz oEWnjzD oEWnjzoEWnjzQ[sf] ? ] ? &B(xϧo6/Kk86/K6/KtQνǟR ǟǟǟǟKǟJ&J&]lKWd#tHx gt9`Һ҂$Һ҂ڄ$ 5{5{s5{hI,SVêno僘'Cz j\b Cz j\ Cz j\`Su-~]='^L='^='^_e)<D_e)<$AiNAieյ#( Ti2cvTi2c A#RcS7RscS7RscS7RsL őBQ0j0 0jlC `SC `J4mxGvC PXHXsXjX   ,x.j \A" rBQ!WmfQjf5 ^ B|uuМ 1y䂤v oWZR >w zl4? A4&[]+, ), "pS@>% 0c<ov τ%j , ="T Wˋ ]_ xi fny |ȰuCc) s^ ?H!g)_ ,$( |OQ !J! ,! "oz"AĴ?#F ^#M$$k$h$$ $䂢 $=R %l j^ %W: %W:?%W: i %W:j%W:&MŸ{G'[(rg N(è ( 0 ( ( (%I*!٭V*@8R= +Ԉw+pL+p,`3Q ,`3QC,q; ,rk4 -Q7>j- -!4R-ֻТV .rMA0iHm3R0iHm3 0iHm30iHm32n=$!2n=2p2S? 2p2S 2p2S (3c@3Pv5j Oj 5ӌ{WY5ӌ{W 6aT67JS"-7PE :(Ĕ)$: : $;gAlk- =q,>[ ?E~?E t@5I"? @5I" (@#<De!4 DV؏bF,Ш $G؃4 "G؃4 ,G؃4 G؃4jG؃4sG؃4 $G؃4 G؃4G(Q=8 Hu@/HCڮ} I)Q? JWJT[JJJJL]RjOg=k7RPpBjdPPpBjdPPpPR S}ʑjBtSO2NSO2 SO2P SO2 SO2TqdTET( T(RTݰe@ ^U?R~tUA&U<_" U<_" ULO WWWD(Y*!Y*YW#\sZskJu>DZN6Z ^[oZ+;j\%s\ʅ^0 \ʅ^0t^'RE$^=3D^Y`U7$`3`3`43ْtaFa aa@&Caܲwkb,G?4b,Gbg"b͢yq4?c)cW7߸s$cW7߸tcW7߸dQ-#dQ-#dQ-# dQ-#dD dD d_`S?eg>Ze:*[3Qex"'.ex"'ex"'Dex"'] ex"' ex"'ex"'ex"'ex"'ex"'eˠ!gJEh | ha~Hj&jGTlR; lǝnmg` rnQnAKJ oH e7pЗ#ppꃎ qev9 qev9Rryxs ryx? rr (sBW #sfYP%osޤ9߂ c sޤ9߂ # t&s&%[t&s&%tt&s&%t&s&%:tE|+,tE|+ tE|+ tE|+tI ur%-IjEur%-I ur%-Iur%-Iv6Nӂkv6Nӂv|vMPw,Mz kw {w {w {w˷x F$~ (x\x\&x!YJ $xU(xAlKxҚy'y7y7 y7Sz9u_pj|a;|&=9|v9|_T[|Y|8 -}j'RWQ~W\Lqp !$9,8.kW.kW.kWQ.kW\K? eJ@'n Tڛu- /B>LH95jl5 5ʞ)?s03s036L*4c ^'c yW2?|Ygje|Yg .%<\]*~_.tyd C] $69[ Z69[ &ĵ~&ĵ]<]( a 4)v+C  ,C vrǣr trǣr!n ^wHCcӻ cӻ?'p.?'p. G'p. F'p. 8'p. %JY夒 $=UZ~qt}Z~qkZ~q Z~q Z~qs'nx'nxR* A  i`` ``Rh; #A]~m3?_ڽ?z2}*z2} z2}z2} z2} #G6u ؉B =:d: c 5W?O;7Pe CD: G0- -u`q5WyؗK蕻T V s d7N d7N +h9 sճ?4:X  ;ÖY;ÖY;ÖYfJ$' 0Bw?Lsԋ/ݣu/ݣuV/ݣu&Y~ ZF#ZFRZFؼݨR ؼݨNcx!Rz3o.Hw :ǹ4C1[ ꢹ=B-B-Su ysHuc"Huc"u&k³d#T1 p79[ =} c =}-= whP7ܟ?L(HR s@ 7@ 7s ;A%0*8P~{WNX8 g?摙j\R$ێpO;mIkk ! 7 k 7 YȺs+wgdS׻;HS׻;RhyRhRkRh`h& iM \N\N:r9 =WǍ-rTΩ/-rTΩ&Hm˨WgngK g~~d~~ޤGޤGޤGYޤG"g"D &ݫ~KVStN^tN^lqLݔG72}g }gR'E|( 'E|(?5靫7kߓ#o ߓ#oKߓ#o.?Ѐ~sz ( z \z|z cŶ i3ggZR& NcMg48R@ aR!ͬ co~KM [_%}7=&O F^/[D A{3A{ s ƌƌsvF (Mn1vd,/1vd,/x1vd,/O1vd,/K1vd,/ 1vd,/ 1vd,/LSa `LOYk OYYoڀ!oڀ!p# p#hzNBK4EBK4EBK4EY 7+$+N2` AR }:|񽂆; =SP=Lʫ͍"juu3j5HiU5H3i"F'E@9dMk|Nk|RӵxS *xS|xS n8RN[v<S nLRWY rRWYRWY ananjan r5pa  nBLav`P-? ̡$ D\^K i D\^Khm:B c hm:B #Tt/NrH NrHNrH|NrH{re} aW5R<W9;%S ~U  G; % c n +o qY 2Nd BݮgE: zxN Z? Z Zv mv m[:ԯ :ԯ:ԯC5 Ii(XGQ,ڛ!I5xL4wG ?Z\?B*l??Yr$. ( ?Yr$.t?xK~ #?xK~ cA `hA `sA ` ,A2]NB!_qJ|CM "FCM${D(:D>% EI! $E#B  E#B E#B ZE#B SI,~`KKn; LW2~ M'ODl -O\ ON&-NP5ӾPβUPβPڕ)Qߊ,RQf[xB\tQf[xB\ R|G]<R|G]R|G]]S6TӔ]U< W X" X@CX@CX8Yس iXJgYjY\jZY\jY\jZLmw s[C  [C h[0P\ =Sm\ 11)]xs ^YR_u ^5^5_&3_6)~_6)~aS#Qbyb5 ??dAO #e" (e&n? g=&Tv g :g :g{N!gmAgmAh0iH\ iEJE?l3:oט"?rR(ss^|t? u4vm^}SDvm^}SY vhwfCa wʺ \x| gvx?1+:x?1+:xUm%RyZ⒤Ly'c y'c |bЙ-[|oH?|r|y-r |y-rs}}['<>a}}['<> rg) s(B3(B3  Jyb Jy n~$Xj!LWOYWO WO[WOKWO uk6Ȉ1F#Ȉ1F$@Ȉ1Fa9j;吩i;U?1i;U? xv5 |\Yq5ALs q5ALs1ż$ , 1ż$s gcNɱr? ӻӻKM  (e p*tK'X (D5 D5]Wt~pŚ,ipŚ,i w&:Jjw&:J ,lWRlWR 5Ē #%[ -- , - ,- , N~&<8 +㫡?7yA' =D Q=>I53QI53I53 I53I53RxPs\( gK gg gfw(O fw(O sޕzP]Ef$|?  'ٲ#3!>Ke;Re*{?e*{ e*{ ~ e*{ 4n #8+CY =vH(vH(T"~jI~jm m mJ?F3Q (͑Sy͑SyX7{k"=yv ;[jpy7YɪN7YɪM0?g?E \R;-!Ƕ&D*?ImCZ i f=? m;IQ"TT"TT 4xX8iĶXjn] \ n]jԗhԗh3c ieD>8 8j8R+HC j i Ϭj5;*z(܀RCwj { Ey=_ 7_! \ Mq L"Ȱm" Ȱm" -v`ʤDwl ʤDwl? ʧPXK 鋶s garD%!u-j?zU idXiB Z04 FL|Fkt? П~dB aЬٳk2jL rL rb+v'RѤ6Jr s{K|tһ tgbLԐ`ԓnr P»: &ح2x {¼ ¼ eS> ? ^[̜HR<", ",轢jBpB0MGvPMqM?PMqMS yMS yMdݚnݚn; \ ; \t[L3[9z)mx`*eR֦k9q!\aq!\aYh;K =nhIS烠{yac菆E$菆ES0菆EK菆ERD3sy&S9iUz?2\ l>hjL ng.diSiʓ?ORjd 1f1foK   B$33l͖nss\K".˚ ".˚".˚".˚".˚nP ׹[I׹[(׹[ ˘ {  ۾OƂMR/>N: 3[_,vOCeP>9{j >9{j>9{jMN\\ =Y[ #CA  0l&Vij Vij (0P7!؜XRBFgsR7F[* ] ] [!dJc]D N H6J͝2޼& ?:@<S@<@<ڶI`fɎYRk"RkR ]nc $]nc |H4t$e1$ed$e $e q,d q,dZ O vg dz dz #%   311 3 $M0@ M0@ M0@s M0@jM0@ m׈iOq] iOq iOq/iOqi42<\ <\ c j]|}39Ǖ ^}O\s>t> U\ɰ̷]U\ɰ̷U\ɰ̷w.e ,Hw.e ^'w.ej w.ew.e \6. ks/{f*l lllʼ7 2:]2:]?l EF[F+| #,߻l a69{DaQLnyN{_?Q {_?Q{_?Q eL>R|G7c w d ,!ˈς/ "oqqm?"r , "d3 $*RIu_(` (` )72g )Gj )\e*WE i*r853j?+CZ_ $+JQ0,)&oFR-y-z_-ؗ.Zb .Zbjp.Zbt.Zb i.Zb ( .Zb .Zb /tX/Y1&/ۏ1cmQI2 (ڏv2vPһX?2і3t]Q6P\R5x\sY5x\s5x\s57,TY #5y6pR)j6"￁bd -76x`vk$; jɝv; jɝ ; jɝ =ɝGa?d`Ӳ?d`ӲQ?d`Ӳ ?d`Ӳ ?d`Ӳ?AH.#RAX|B3MBIR~ BIR~| BIR~ (BIR~ iCV ?CyR C>6 C$`P C$`ED 5 D 5D 5D_WREx,RF"NF6{Hzq(?I.$&IAw΁ IAw΁sIN>E?CJ!RfJ!R -:J!RJ`' $KinKI*[2L M*[M*[ M*[MHT -N͕K N͕K %NHBOceOrvrPO"sPO"jPkV*RPkV*QEpgTQ.Si jR/?|SsR/?|SR/?|S ,R/?|S Rj`O S]Ӯ^~]?S]Ӯ^~S]Ӯ^~SoګG TQ8_?T`:! T 84-T 84T 84T 84T«~ "5UL QEtUu&UdXЍ[XƈNZDUdZVEBZҬbN%\^4\^4P\^4Q\^4]1{!f]1{!f]1{!fF]BB*|]n ^#W ^Df _ ,_ _ `U] a"CyӗbExYef#: gU hNwɨ9ehW@h 3ipz Lj r kRm$DIkRm$.kRm$!kRm$ kRm$kRm$k'hLNlDi lӁEPQS=lӁEPQLlӁEPQRlӁEPQdlӁEPQmBmbbRmz{ mCퟵnENK7?oCo(p pJg[ pJg[jq d<jq#Zxq33*6si\1soV0M soV0M $soV0M sAt=dsSI s$=swR`:w owGj^x9me+Fx{\wY xYN N#xYN xVԛVy5_- y5_y5_y=0Rz ]yzGNh?1zGNh0zGNhz z {~+|n+D})# ~,m ~x  ( ( ,6 ?XIV&W N =(L$6( i j̀ j̀j|#@Vs|#@VCۍ MX $F6`~PkR w(|w(St#S ek ,Q(x Q(xRQ(xYaARY[hR ȫwd,- -_݅_݅-_݅ dVNj-:L5{ YK%7 !K%7K%7tK%7*׸ IJLeY:JLeYU(JLeYS%JLeYik9O -%h^ UΎ35\+?\+b=6v/udd /udd >mȺfDfIY9 W$W|]Pƫebp*@|ebp*@9ebp*@pM* ,;D{2v#]h[]h\ER#z& #z& (#z& #z& y;Q< m gY}dKgY}ʡ ʡ -_W a_.Z ,a_.Z  W%"ѫ0^3=n 3=nijbYijbY ,! p`xiCU Iɣ (>7m~><$ ?կa3zW>a3vzW>a3 zW>a3ox1˛"7{{kyeMc!sim Mk~z ]B4+BD.}$sDD.}$ D.}$ D.}$ (D.}$ {D.}$jGQCGOQ 1GOQj!GOQ GOQtGOQsGOQ yt=K1#] ݷ7?Hh| Hh| 8aWg, ?"%m o. ( Ͷȑ RoUrZ%v"<.4 mt ?$  &  &taчaч A|RZ3 - rN j<6#ߑ ,)6?)6 (4"Ud!j k| 7&:m Lίb]  ͪ Z \F]ER 4[? * dj y 3 $ Ms %Y j >μ ( 0D| =/ B`2! ԙ0K R%Y0 a }~O~ \AU9 / Ⱥ / Ⱥ? / Ⱥ \ 2.}a $ 徃QZ{Ob&ڡ|ڡ aٿU" $ `UQ1>[Ӯj?%͔U?%͔UU@kVe?@5PtQʏb>PQ6#S ~ǛaS ~ǛaT _o6LjTpj<)Tpj<]Tpj<RUt;U΃VzLRWJKv'nW oN W߇H V &XoK#XoKXoKXoKU ZYPRՃZ^|~3ZݢZPLA?Z`[tz{\-B .\-Bs \-B a\-B (\7%x+ \sR]lj^ G!^ G^󖿲 #bGOr` (dV*b̘I?dtR s7f!N?f!NjfJ2 fJ2sf݁AsgTgT gUeh%}$h:HϼHhz;"Zjt(3vj:3Y j:3Y jjLa kU~ akZӠjkZӠYkqǶ lqMCv .lsr/m+knK#CnR7nR7nqYJ nqYJnoU؎aO?o@ΖU o))'o))' ao))' poT\poT\ poT\ poT\pnjX?"pnjX (qdLr<_0]SZr@&xu?r@&xu rń u]4k urTJzurTJzvj-ujv̙v̙wK]? x(۪LSx(۪x(۪yW{9H z/> \{Sm|аHmt(|аHm al|аHm \\|аHmb|аHm |} )L~}i~2h\~ٓtֺйֺй ֺйoLv[   yPyP6vjlN6vjlI ^I sa"snNz UUDKaK#K!EIlj:(96)e-qjP.P.L P. ,ߖh ]M! -)ɊXj , ɊXj 6rtpmZK.Y,GFX?@'U ,@'U@'U $@'U (GY7a6?ȬV ȬV ȬV 1UȬV?I߇+?= ,#O= ,#= ,# = ,#Y= ,#f,2k%k$kst}k }kty M  M 9 M ( t0'; !UpdK ʡgmK88 9- 9-S 9-L ?n # K)FNK)FN)RpR+Y`o+,o+ ,Wݩ;dWݩ;B`IK6./viaQkK_?9 eA-  M ) M ) 9Y 9tx?6y0& i!lU8-8 _&LD! $ITH ^.3 ;a/>#`; #`; W N`)y܆(0I|>_r >_r >_r>_r $; E ; E? 걭S % #kkb=3=3=3kXyXydLjWz?q $>q /q ,q q {4.3 ,a c I cI # T5k6OE ([3Z<R J,C j7 s]0H a+zY+zD1+z#+zJ s/|OxN /|OxKl폣 :D%|ՁNq+Gm't>$p bNOV13%J  (#L (#3-N8ϩeq75 SzƐ4)ŐZ#qh?ǯ9ȮO ȮORȮOMPɂ 37 1|1|¶xY3 XJf[D[+pk%59ՠ G] "]rv r z~Y= ӯJv.W$ ,.W$j.W$ p'J%~jեxhhq$զ ԑ!gQ9 gQ ,gQ $Vu0?hϝR#9 َD,' Q}.qiQ'Q}.qi+# 607BRUp%?H 8*ފ/ ޾]޾e?)_޾e?)_޾e?)_#޾e?)_߯ା`?!߹W \ ߹W \ XGP0 ̓`\u fu Su \2u?u (ujvjv?aq7?aq7v?aq7 a?aq7R`&FX"/ +&/D/ B2w+w+ Oo_F o_F"vԸl4:74:7K浧Xs.!Q>C-zWyUG T ac3ms L6܍ QL6܍ c1kMj)AO} "lZ_K__Q_>#Rt!q] t!q] .#rK 4zn ܋  UoxS1as(? f j70 ͥ (to@sj?񷺂}|jd"thNG\;.sa4<^ ;Нz4S C4S axqY^~gjgjd,d,td,E!Us Ly}NtW[ p pLނx} N?-hlr ¿¿YQ m훍 ,:D eKYKY:KY שJ$|-\C|-\+Kp?ȧSxV ع   ;t 5 2  - 1ΟS 3Jz  0\ ! 9J(t/./a/] /YGFS 6i_SX⇼"⇼S⇼ 7Kvn 4bj 8O~t at  Vk |[9 Z k \F JU"8L/U"8]U"8 U"8 U"8a 4pEC 4pER4pEprE prE al)Ęo*RM {JD 8j;'8j;N2!_9u!_9um/pR݁g݁g7{K/P].: F@!hk!hk ("Cf;Z"8HvL"8Hv" # Unt#7XU #7XU#7XUC$\| $Yc%j%jD%j.%j%jK %j %jR%xE%OC!&1⠜ &RK' `&'J%Ύct3'J%Ύc:'J%Ύc 'J%Ύc a'J%Ύc 'J%Ύc'J%Ύc (Zȥ:x (\V (_Um(6 "+𺧃r+ ,>@|:.Ñ#'.`ST1 \7.`ST1.`ST1|.nr.nr .nr/K<}L /s4O7 w$0C 0ˈ;k 1oPK2"N2+ $2Zl 3-JD4G&5a= -6ťD?7~!7 ̱s7ڬ\8Xf8V 8V 8V 9*9/?s: "R;PRN\u X >W*?0Or])?0Or'?0Or?=m&S@L& @p:_BNUC)]C)C) C)C)Enr0s*Enr0s*EJF$R?F$RF?אz$FnF?Fbp)v GC>PR~QGC>PR~Gs7 Gs7 ( Gs7 H;x8IWk]JiJO ʾ?J2'z1{Kb\fK:4K_K_dKRLAۻK M?د M)M)M)N GxwN GxN$P%x NķMOq7 Oq7 PXy/Q{ #QV5QJ# ,QJ#Q8 R; a>; ,abjata aYa a&beb! IycVA{cG# acpLSd" e)5Ge;O/ 4e;O/ e;O/eʰէSNe\jseJYKgzbj gzbh_T h_T h=" wh Z*jiKYiKj,bĞx j,bĞx ^j,bĞx ij,bĞxkB/'Nlo~H6 \lo~H6?l&B? l&B?m@LKmZ}+ nΥ,kow#p\# p\#?pTPjq{X~q{X~r׮ 2s?< s8UO7tr8z]t~X"t)ubXGvEev :R.w>̈́0 "wqswWr ,wБ , wБ ,s yĸ{yծ,c z/7|j|iR|Nϗ }"# }" }"S}"$}V#R}}b c }PW~;3C: p ?A.7L dV # 쳬v<Rt7|g WS l PɂAgµ+^ ]e_f4q" #xX 2tڿS1ڿ cj i%(6FK}25J c(]Eqs?_-=?- 1*NEL -k -kR -kQfzia-) $ fK ou "$g$g|tڎIp G p Gjk05 -?5 -R]U}]?߽ʢ?߽ʢ`֚R/~VQ׋ ($4+4& ^ =zf =zfL%R \%R (LN`?<ƹ| aWDځbtIS؎ *p D˭d Lʹ%? ik?@-d#A |'K09k7v謫N-h"!]FN*GH k> k><4dtuOӑv?\foR+vYR+ 5jN߶ \ mN߶ \ ]?V}9_?t͹[ƈ;_/#ƈ;_/S*}N NRcj tj b [ ,Vĩ2'ĩ2ĩ2ĩ2ĩ2 ĩ25 N_ Lh&r!Io5h,?\6|x?ȃQȃR8h5kSKSXȺH<i;3R3?Hޝ v­$sY.gKʹ?^>: ^>: aMȍJ?łNItƏuHr ƏuHr2 ƾpWL ƾpWƾpW~)Sfi(#X ,06 v3~0 v3~0 i# tP |}Rrbj,˔?Ҿ |y . Ҿ |y Ҿ |y ̾\s"̾\ /:EK:%N5ɋ<W+ *)yΡ͠S^[2^[28 ,, ,Е!rѦhl'N2> YR^5; wAG )b@ub?d<`h Tj*K:ֶ!:g ֶ!:g!. `/x ע¢V?_^ s)~)z , )~)z)~)z i)~)zډ?ڳ/)$}j:}j}jW |W  W  i ߋ"vLߋ"vSߋ"vߋ"v=՘S=՘=՘:[EtY8 n\$Re z=H:z=H z=H ( z=H +%z PGqP(nㅻdW ㅻdW esXsX sX?sX isX _ե3')p (3')p $?!?! $?! ,7J/wSB3QJB3QJB3QJUHf/r sRڌ*tYɍ C] C]Ꞓ~aZ77R77a/q,I6ܵt"ܵt"'sl YW ]'*L6^vEaǨT m"uQ[$Sy;BYN@ЗObhR>~" C[LN7r 8 rR <eH]?H g(H H s H |6 SMtSM (~ ~@ (~@hTcv֦xd "@u  eD e ejIq6dѽѱ dѽѱ $ҷL \ҷLkeuw&|?G#Fd(~Md(~MI}/dC1dCRdCydCDudCQidCK6dCdC9ky/o9ky/9dq H!#?r`I# qYp]R p] p]p]#2r&  ( O1ZSQO1ZRbO1ZL%a?آӒv(mYs(mY* wO2?wO2 ؔ" \ {ڦS !e |{ڪ  #  #  %꨼;v?;vs2 46Sa $je"jejek' k'tPQC V*>2 h rhtΡ_YęR@%Q n @Ob ss0<j s0< (3bt*3bt* ,@ \IV. IV.[  Y j Y {>Lz#6k2etlb? etlb  3 3t[zyzYNTH'JV @41* \iK  ZOs '[ •ȧ= !?>* !-籂N "+"K " "S#b{ [#H+)K #蝝rc$c%?L&{0I &{0I'ocJ a 'z(~U(~)*n_)nx *j` *j` *j`*Bxu?*rU)*gE *U *U# +Ș,NQTg@ -QQoHK. #C?.?s.^gS/Ʃv L0!SvK 0/`Q1?,s1#סк1#סкC1#סк1#סк1dQ2bn$2oR2&!Y3Cz: #3H3HP3H3H3HQ3H3H4{74qSI=5D+,6TIw6rO6AN6IL7Z^` j75 8-TeLR8>N9UZo ,<}J= = >5w}uR >8>\B $A[lMu A,O,A"2"IDi[j DS]a EUX)vEUX) EUX) i EUX) EUX) FOdtF\ GLƌ?GXAG  H+ H+ HX \HGk I2|SڰlIV—Jb<9JEX9kJI9d88| JI9d88RJoK?:LN/MT ЭMTݿȂkM $M ?N#a "NJmNctY NctYNctYNpbNpbO'VPL4PQ QDbC QDbCKQDbCdRH?R hnR hnjT\UF)ʧ Um m0ZU3aR U3aV]y W#sW@ XbrB|1XbrB XbrBtXbrBbXbXA |& 2XA |& Yw< Yx Yx lYbrJ ZDkzZZDkzZDZDkzZZDkzZ[jVe [jVe[TjY[Tj [Tj[Tj[-bz[-b[-b\ C9G \%k`8 \͡ȗ[ ]D  ^]TE8V>]TE8=>]TE8 >]TE8 >]TE8 ,>]TE8ǿ4aj=k*7H wy0 6w i*6wj6ws kh3k1 h3k1#, c n$OB n$O yf m yf yf/xyZB{, #B{,h3Nju qTahj= $.zN}$f $ `]`lkdoXUoXJ7|ضR7sLzi?C CCR’qK ’q? >S>S&.wȝzJ+jF;:)kzK]VK]V ]V ]V .i!?H HD3[ΩP_R*XH Xnea[  >0?J|NC7+: <0R ^l#t^l#?2BW¿ ?BW¿ jH|?={n 5jQk|[ >?So7v 7v j17v j.\ #~淹9 .<.K.)<j_dr[-ԭ dB ܒ{T?Oe a$욡(99PdiYb8X11ߕbt?5|e:1ֹ(:1ֹ(:1ֹ(MkیMkی ̇۟_ }  -KO $KmZm xzj xz?tk W54˱?4˱ 4˱ 7J(7J 7J7JDZO9ޏ 5TUv5TU =P5 =P5 ,=P5:!du|!du| !du|9% =Cv9% =C (9% =C 9% =C 9% =C i՗Hl l]h @]  @]  qN ?Ov.? ?Ov.o|o|S# cR# #   R!+9 -&؟8{bc.I\fNAz5m*?  b_G)#SA r#B/NK%*c? 37 abE1sM𲐛aH]㶮 jF 0=s 0= PQj,L9$L9%n'ɸD2/wj 2/w?ЩD|Qv?ЩD|Q ЩD|Q  '?zQ v.| ,/ v.|( v.| v.| kmI km km!99)k!)D~d?#I j #I #KX #KX #/N$x-vV$x-vSA$x-v9$x-v$x-vL$x-v%l $&jIR' ((i;R(i;( N%K( N%KK*v)6 +j^aqv,, GY-Zl-cX -gWf. x?#/U /J2"7/xgh /xghj0fxXt0.0dx #1j2Z *o?2ù3X#N3OS;~d3SQ[4,: 4\x/R~4\x/R~D6`w$ 6`w$6Ϥ6Ϥ (6ƻҝa?7n!s7@t7 2JHD7 2JH 7 2JH# 7 2JH:<9L:t~} :z 2;z˨}=π=πt=e!b&?ޗ??Pt|?$F|k@}! @}!@D @D @D @D Q@KU \B'W] ]BA BACT 7yCj"nfdCj"nf Cj"nfCcZRDWo# DWoEuQ}? EuQ}?F217G`}HLyTtl Hn~>mYFHn~>m (Hn~>mk Hn~>m IAMyjIAMy ,J56]*J56]J56]J56]J56]J56]JI sJI  JI KrlWS L[ZspKڎ| ,tX>- uCg!uQ%ӈ?u3 vc&3?wW wcO{ Rx[3Uj@x[3U x'",k?y'ٙ7ZyYO&)NyYO&)y^:[Uj yw /x yKa"y2V y 2ݿ qy 2ݿ ,y 2ݿj y 2ݿ z{Z=&s{uaV (|3}΃ b |VH9| W}.MGiy }7y.~\Q ~g醡C0~g醡C0~iZ{ g ~iZ{s ~؇m;MDK Jҗlt Jҗl [ .[ CEU?ɢ<s w al $al }1:QQ Qy G  #TSF; cΤ ΤdfK }'sɅ= ^xrH s#E: t@Lk @Lkb@Lk @Lk eF%* (F%* }}Dr>H'65ohj@;V* Փ*cI} } U86:tU86: k3 lIZ 5|55555X( (  Yz#vq߉? vq߉ vq߉hvq߉ ($ 9A#G_GE qvF5 kljjj jjj`c?? 9k[Ghunc^(t_zYmX{/y d {/y e"IdGpX)Jl|MJl|9Jl|(Jl|RJl|]Jl|K Jl| Jl|DJl|Q 6  6  6M 6  6 $ beia<`l`l ɧ.Vc}R 3R.r`9d_.QIRbIQOI=2:i`?RA% S(:tb \b2mˡ]mˡ 3* j al0U#7%^ $c0?3UʅA03%A(TqSL-vxoH$#2׮ k :Zhv?' >'RQYRQd X*框NZ 框NSFv /t>:qqA= ,ܿʑMPٵsٵjٵ5l -[ňҧ ňҧ PcS 1d/#7k_3C 3C P#u?~e ì0- $eE b$eEY$eE h/ z sŚ޼_Ţ4r! j Ȇ S ȷ?ɢZPɢZPɶmGd ʛZʛZT&gT&gRT&gzZ ]U $4D{ \JD{ D{ D{ uBhvt , ͞0H[-oN>ϱ-p<o 51R Ў SZ!?#Z! {{s*lJ t *lJ *lJ 6Ba?6Ba?K%٢ ԅ `ԅ `ԶNbhU bhU  ebhU  bhU bhU  &֒k7R *;Jׂ޿(|ׯׯ>#L[>#L }E7 R٣7S[CV9 CV?fH{ iMi0r ۽2/R t]s8 @(Sݛ*u  iE `4~Nv{o {o\}˫ =\}˫ \}˫ #橘W'_Lk_L D4j@_4@_⪤-9ZhN}yv/NdN_WB $ WB?'K \ pC p pR p &?5_be $4QjSsSsSsz:r  4a >ER[?[X]sdзM ^aҙR﨧92XX CE.N/k$/k/k/k﵅` ݲ YF:s&F: (F:j]Hs* s*}0OIvMF0+hF0+ i fStRi nJi nJA!=ޅZ R~; UIlFR0}:}O0}:}0}:}P0}:}L0}:}Z=m #MOS@oloAo~AAo~A]W/~~Qj>~Q ,() aֲc"m( "m( A"tej? <.M\ ypur  gVk gVj ;%R K4V 8q+  N F-og  v88v 6:  傗P%pĂH  @v;7je(Se(FpjFp rǷ $m(?0i] 0i][epӿ<7{|!l$-k-k9JhH  MY j X5yb sYZ] gu`95ֳv \m.9V g^Ġ" MyŌSŌQ   b)l0N ܶ^-_K"U@ߛ"U@ߛ "U@ߛ#ߢ)=t%'& 'a $&!XYd]R'k뤩'k뤩S'}:$'}:N'egoS'ego'x2Cs( tD( tK([΃ )6BU )t"{-W c)q +g,h~U6Y4,h~U6 ,BDv -}-; j-}FI - \-K5Lv.|ұ:Bk.ك}2.ك}0w 0w ,0w0zFxaR0zFxa c1y/K2RKz* 2ǻ3^뱋C3^뱋CS3^뱋C3^뱋C3^뱋C3^뱋C3aV:3vfE4Hܢ 59F}b 5aVr 5fm#7fx<:p):  R;=xN# =72qW] =72qW?st?st?ytϼ;?5%?yB@_[} 3@-Nv{B>?;GjB>?;G?B>?;G Bt.X Bt.XtBt.XjBǪ CLfH C`D`S C`D`CߗACG5vD^ٯ\dD͸;EpN F!6GW0LGr.̇jGujfGx#F$I $I9 JCZzu aKu_5KOmwKF #L̜*zMכ MכtMכ NbNRNc \Nc nNc \O%x OX| &OUu OUuOQP?!QkYQk-R̦.kR̦.kbR̦.kSR̦.k$R̦.kS|2 S{SSM] Tst{ $T-BntKUTB jUTB jUr[WMhWǶASWǶArWǶAfW@L=[4XOe54[XOe54)Y;o S$Y;o YY;o LZ&FDZ]^۶ Z]^۶ Z]^۶ [  \T9N c\殕R\殕\殕 \殕 ]1{]<&\ ]_p9&U]_p9&G]_p9&*]_p9&]_p9&]" 3#]رy-  ]رy- ^2n(gG _ s7_Yt`oS `oUabsabsb~pb~p ,e~ ae& `g$N`$g$N` hj j؃ jڄ`MVgKlDjsl׭Km-np)?]n "pPI˵tLpPI˵R<q#^dq#^q(Er&qkݦqkݦ aqѠNr, are=&?>RrjkS*s4bAs¹agsș]sșsșs"ɹ isU8d7 (sU8d7 st+΅[St3"uo=Ruo=v.",]vz"7B&Qvz"7B&v@wRR wRw4]btwnj#S wnj# wnj#w xLsyL] (zKxxk .zKxxk ezbk0K 2z썡C${$~H{$~HR| q]}jqR}&g~~fKj~fK~$Q   }b}"@R@Z <?jj?j %tz% %uڹdWQ 3ej"3ej T# TKRJs`_ #YsY iY Y Y  =ԐZJϜA?tAstAtA<Y.tZ,R(5\|\|dyrq<vyrq< yrq< 9yrq< Hi$C" Q Iz3 Iz3  24?FJ?F 0#Z χ$t χ$ χ$ a<?) th`=rk gNq1Lfq1LfܵC't)'t;@S;@ƈxffG$ <28j 99s.in/YD]tD]s ޝ>?cÝjH3ua43ua Θ__y L<~&?  =0m K "p*a"p*L"p*@&X* @&X*S:DR?:DR ņL+ɁņL+Ɂ?ņL+Ɂ DzBc cDzBc #l,Dl,ZmԎZao iao ao m| *mVn<h~( 7U)g<t: t:L e1N - J [Άӵ~2jsV ? {V؄9{V؄S{V؄{V؄$ϕǮt > qsѦZ_Kst]+,t]+a t]+L=L=L=ӹx% YKS7sjKS7sSl*#![Yyh /g/gֿOIbKֿOIbֿOIbRF[twY-G?؞؟]]| i {ٺU2@ ٺU2@ :qp?BBtpmkvٚs{vs{ $s{܌R~ݫ_ݴRBb j+d-i91|g s_U0c?_U0c \_U0c rw0Nk(k( k(RSk #F6m`kUڿ̔Z n cpLqHpj3pj ,pj $ 旘dn旘doq+jX 3G鼴BTis Ʂ5 6p2p2Gt;JY:bD i:bD ¼Z)=T[h($?"j+W21YNuK*omܻ Qj qYqQ q ;jFJ"\  :fY2 2 =d R=d =d =d P=d Qߨd} kֹrJSyM pd $0l1F" 1F"JE a,9eW ",9eWAoK/AoK/95+ 95+ ,2" B>`n -B>`n (&B>`njB>`n i>~_s!^"@`X4W (%X4W  VrjSVrjd@2!8 2c2PY%p/8YdYӇwH/8NJ0CjYp@?VE`` #?N 5F 5F 5F ?TQպ? 9dWu p#Ml p#Ml p#Ml  KR. KU Kփb?joEt6'38 38Cٶ=ts%fnu aF FK  9s1 9s1K  9s1RG [bi,ʪ mOmjރ+[HY"j T ,T V( V(V( $J{jJ{tJ{8lT 8lT `$== `$==]?},* ?},* (?},* t<ۿ (W%L$?!9q o77k}n4;es 򿣾J C6c3V C6c3k !E,|6?!h. !h."E3/2 h"E3/2 Y"E3/2j."E3/2 "̞&R#Xb (#Z #Թ?#Թ $UvxF i$sPA;M %(3Z%ݙW_5&@ &)6v*&)6 i &)6j& 'Qؿ6D' ($r **>$rj **>$r i*@1+' $? +' $j+/|bj+Cw +Cw ,fH1&WS,fH1&WK,fH1&W- x- xN-NpMD-NpM-T3t-\a_s}.PbRt ."$.ŝ/ހ/zc6?a/zc6/zc6k 1h+@ *1A/81-U \13;s1Z 1Z"1|ҿ 2cEo %2]x2=v?2=v32 4Ĥ;0461Wj461W 51-US>cyؾs>0s>0?)h?)?) ?)?^.?Mq @>ɥn7@>ɥn7A$A A<;KAN ,AbAbAbB6u2B6u2Cb̒ F} G G  GgbI G4ňH vXI< I<DI<JXRrMJŠ4a! %L1ܢL1ܢMMAP*OdB  m P<ڝv%}P]Bd Qn &R7.0 S 改&# SP5z iS 8S S U"c1-Vc;Tm&QVFAhM 2-V,xW Y$s< Y$s<eY$s<$Y\.kY_$ jZE [K9xDj][wj[3\^TN \[]4sڮ~&N]g>t]ƱgqPLM2pQ[ mjM`jM jMtjMuu?#iln)li&Ajqվoj">F9$F9bx֘)w"dpw"dpRչN R   $pGz MI]Yv  E Q ={W𴁯s8C%8vZj\'' j#LDS@A _|?_| Hn U:2*!]Q*w%‘S }oBL! $M _m_m: a":: : GI?GI \8NU>APU>A+8l w=&R?{$='3FhX0 X0ED_JeZOb[ ?C gC sгGг98г 2LRL I+gO Q2_|n8kR,k+ |+ + $=Hޜ i0.?է:?273273`ܻhs =Wj,eWl3(KOF aOF 'D\VRHthy~KD/35_ 35_b9[  ey[ )[  [  "AVy j %>A9 $ vjg vjg C@CRY_s*2.ќp v&LtQW"W0B??pSAŠAŠKQF5Ir 5ߴthU}RDhU}RBhU}R.hU}RhU}R]ݟCE+OjAf}V[/}V[о о /rKJ EK zdviAmQviAm" #K?:{K?:{ Eg}Eg} Eg}REg}Eg}Eg}H%H%YGzN# Qi9QiN wv.#Qd?:}WfS#.vt#.v `*-'t5ɍRl!L6l! ? $Rw & 5w &xS x] FdjL蠱M: Í\ $ d5 d5Q d5G?qЄ@¢?eR o;zv:jmS'x ?+>>H%{@J? %{@J !ǝǝK Ǯ ?h`2?hR1q3Rw $Q˝0ḿA48̭퍎:"?XU +:G|hѣhP4ѣhP4|ѣTU 4/U 4/RU 4/DU 4/K5?  $+xo Yc mYc:m:mgO 4gOTVhԩi$-xa |ի<hI:Y *ѐAq%G %.[% Sەb΢H M2M2-P*tbPӉ$d ըxX Sc-[ ߅ƨI|sEpRͭ↎ B ↎ B Siz无&-Fmf-Fmf ?~#| :#| :R#| :J$^% (J$^% m HB04% sՃm?_$R 0\0\tHܱ䆭;N" _c5zbރYzbރX/I-}( #}4/kN H?H?"ƐY!O 7qPj7qPh  3<[Ix9=(er uN ]`[?bJ#ҽ #ҽr]F N[@i@iL+[1!(cFa +a +  [ͫŵqMva^ c6ȦtTjLkvƖ; Ɩ;Ɩ;(:ݸVn> q 3n3n3n<=8LAq\mic>9d@e3 @e3j#{* 7 ("Rl*\ wg$wg$ssO 3cM<4Q70 Ǒ*] 4 N zVY4S UK UP UY[k xcK t s~Z GP GPS GPf GP m .!c $ .!c  v $ v  hz 2v ԵT ԵT: 4ٲz cjxs cjxt tMkS m^>m^ >tIi ?8KcL#-s?8KcL#-?8KcL#-?8KcL#- ?Kԫ ,?ѺJs ?ѺJ@'XXA*A*YA*sA瑏 A瑏 Aߘ?B-BC` !BC`BO܇t B =rjCWvA~ 2DUND*Ȟ0x|DNEG&YG,RdGOl GOl GOl HBPDsHhPjHBi9JBaHJBLJBJzL sJ {&dJ'Jf,J} K%J?L L ( L |L YRNǗǙjP~P0.ݷ Pȑ  iPȑ 9Q;QAAC/ ,.QAAC/ QAAC/ ^ QAAC/ QAAC/ QghRo>sRx7RxPRxSʿ(#aTơ)c*jTP8H ,Wvp$OWvp$OWvp$OWvp$OWœ?WœW 8ƏtXev Z0Y ZWQ)y Z.#Z8aW lZ8aW[qvj[ȷH s\R L^`e \ _qaNzX.bV/;.bjvb|Œ׶bY-'?b̏ .cRs1sc?(#Sk9czV czV|d-j sd-j ^dqӨ`dqӨ` =eXӖ sf[5gWvy+g7vi }i }i£F6Ljm@Ījj jji&jk~8Zl{:1tl68 \n tn#|1] n|ԿBS>n|ԿB$ n|ԿBa n|ԿB o;a8o;a[o=f ~o=f c oL2Zoe-]oe-]oe-] oe-] ,oc{oc{ ioc{jp)yʾN p)yʾNp ҚqFSaS qX%3YqX%3 qX%3 (qX%3 t7 t]Nz{ t)]e" u5R}u5'u5 +u5uvYrvq8-+ vd =vˤSwnp덹sx :J| x :J| ix4vSWR x B|x{sx{x,iZx,i (z `kHaz0%7zSeM{h w{()pZL!{ Y}N}!WDZ}T,4$]}π+@~Z~~NEi~NE[uE Ʊ.s_w _wkQWQWKtjQZ =%K %Ksg~U?yjjjCFʼnV^װ; \ ^װ;#@ [1W [ЅАP 't| Q Qwm?)'KQaQQ6¥#G0^ N‹amRo ˄a ('wNr-B ?)jhamjy3y X 12+b7a,3 a,3 lE8` d+ Nd+ N$|R?Au* , ?CaO n[9%7VWj/7VWj7VWj7VWj]vynZHx,'n2 ?R UCnZ u?ad/'& '&Ow%OwK OwOwSs  ??~BϘ]艟# 艟# \>&Rx7p8g8g?7QS1tTv %Qr z $6| $GkI"qL vpu Iۗ Iۗ Iۗ5{R'Q^ 1vc[Ūd =M ,U|x#?15 r(1DT?{2= 2=  m  `8i3^W \jb)NՆpsS/ jHm[q([qFC)FC[YjoB s q"XvNq"Xv'0Ϗ $9[ 9[sJ1 J1 ,J11Z!1R"1 +z*`-WbDaNV?Spm9szlyDNA RûBBUA#'[,ȁ?FȘsL*E 'E E E E Jˌ~ݘm Q:m 0f݀$ 6ŻJȈ Ȉ  Ȉ Ӷ3w \ )Kb )K  )K 7[Uϒ 7[Uϒ S aʴwW% kW!kW!nA #^˓(BgP˓(Bg @K, @͋}DfJse fJse ~kM[ e/-|pS  Or!EѼ\Ѽ [Ss4vN4vK&l ӓ6Nӓ6Njӓ6NsSڍP )W*? ¤w ,l`Hj  w[^f j#>ٞ6Jxrٞ6JxrCC "_( _(??^k78?jw$F ۆjp9):}?_:}?_ `HG$(Zan;v ݋406݋406tB*K'XX#? jM E NGE NE NE NE NlE N#yM`>Qa?>Qa L ,:c4:c4R l VU?Fށ  zX\ -4MHkf)Ea躉̡vI..q:s遾- 7t ey )%G7M;£ i+i6?. ++i6?.R \ Y)ł Y)ł Y)łD dZ Ij  Iv I  I9 9܁R.fwS}#h }#h k0   k0 R k0 Q/ /=fGqn] K F6J#g J#g >C avlIvlI vlI ޡx ,ޡx zޡxzޡxޡx ÔN Zl(c:u çA z0Yz0 n-n]?Jt?J ?J  c{ Û{ ÛM[1sM[1?r r  *<5 *<5S .o&L  ;'3:d 2 1on  ՞ ^ ՞ \"Ovt?"S^I"S^I"7 $MuUx[$%hS%m) QW $%m) QW ^%0>g6 &=SS&=SS&wM a'Pī(* 9*t)y% `)y%jP)y% i()y%*(l;k *J6k8h*J6k8?*hC[*iLyk*ũ>m g+IJt+/#b,c;a,Dbc',P2)K,P2)K,P2)K,}s,#V7X[-C{s (-L5}hS.|>.|>.|> .|>.L1{/9F d(N/9F d(/B65T/B65-/"qI \/Oپ0Vn:1|1xC I2uXӱR43|nH; |4>*4>4lR 4cOq5)%4s5 6U?46U?6U?68ڻ7et` 7et`8.n a 8]${78]${78(wL8(w99ؐ^[:Q? a<%\$ =pX \=m>8duGt >8duGb>8duGs>8duG w>W_ >}U'/ a>}U'/| >}U'/?y9z?$0.oi@ hAh&0jAo&1ye BBzZ BBzZ BBzZ jC={CINRE7E$xEҵE4G#}vG#} (G#} G\iMHZ㒎ZLH _h׎ d\H _h׎ Hּ dHּ dH/} gI^LzL>I^Lz9IwNX IwNXSIwNXM3 Nt_aNz =Nz =Nm:O8 OZ^K OM4(jOM4(Po $QP^>QP^> RO@ R SyXSyX$V\N.V\N V\NVo{E}Vo{EKVo{E/Vo{E Vo{EW ՌZWPL@-Wy[')Wy['Wy['ZIܾ6f ZIܾ6f#ZIܾ6fQZIܾ6fZIܾ6fZIܾ6fD[6\$I+\$I+\$I+\ a]-1>]7"v ^' _d*{{?*_d*{{Rbo9UeJ4",DeJ4",Pe8( e\Pf+fs-p1fs-pfs-pfs-pgp8r g@bkiNϊjR/]wk=~N kO64kd^kd^mY% oLkoLkołdoł3ołdpX`pX`pX`p(lz qbr' njqbr' nsqbr' nkqeA__cq{S eqѬp_ qɱ qebq|ShrJLstݰAtݰAhtBn1?tBn1 v^pk vǠvR9vǠvwP/E s w߽5 w yg*~ iyg*~| yg*~ yg*~yg*~ (yk $yEz+ z3 z`3tz`3Zz`3z`3 z`3sz2U6# iz2U6#| z2U6# gz2U6# z2U6#zt[Q {_}`t||}J~}V~58uA~{` ~7]o ~7]oj~Of ~OfT%K T%KT)l8c ~i@h~i@jm([G3͎ӡ^J &q??*qxj#xdn(gU$xMF aM+ "2k \αAe #2\uaTvfYaTvftRb>UJ6?Zn sj㷠 J*F~먇98~c]88.88.X88. $88. 88. /8-?\V/;?[k7l27l2 0F"~tL#~t ~t= tE2ȿIȶ IȶPGc PGc IPGck3PGc a`a |`aj`aY `a (`a5 * g$ bs?!4 895R _C:@ ,_C:@C~w^ C~w^ iC~w^ (C~w^ș ș wnf# F- U29[U29[$s  c5&L:,- aм] м] $8+d8+RV N*Y8i&p (&ps ~:oK[xDNxDR xDQxD*e (m? 1m? u:Ab u:A u:AY; $ˁ #)(S& mJKK mJK mJK  mJK{r)p]% p]% ,3sm_ #X5X56KC3ds C3dj C3d z c j] jj~:,~: (~:=~:tk`k`>m7.r P]y PU P P PZ P my Dmy *my \my j~nAj~nҋ?dž ҋ?džGNRˍ a bJ@mȆymȆym _R0 _R fN? }\Y@Ǿ i$ $ &x2 (~ &x2?W &x2 &x2 &x2  &x2 $4ڥkA\j jQ-N6m")k")k^l v3> 3> h4 e{}q Jܬ Jܬj-yNccG^0 +R^0 GA1 <U X6z*`wRnCBTR*Üȭ9 ã_nU3 ã_nU3( QB M0 -ēY6G ; V+xƾ]QW3bYnZ c*_m߻ sJʬb=0 0/s ˓VjዀUmt c̎wql~̹5H̹5H \\̓ї؏bzR @ z7?OcRϔt ϔϔjϺ6?sϺ6?sKg1P?vg1P?v g1P?v g1P?v (g1P?v ђE'>ٺhf/ѓѓ:ya $lT :85~"85~" c ԙ1ԧL`hR \&*Zg N 4 s' i _C*' 4,}@? | ~=`Y"=`YTp' m"sa0ک&v (ک&v hu ,l} \_b?_b _b *_b !_b *̣R(t*( \(( .σ9  3L" ^; t ; s ; ; M+ƣ+a' a'?l c 堟c;-堟c;Z堟c;堟c; +\N%,K{H/ k kRk z . ]%op?b}`jhp?b}` eTp?b}`#p?b}`sp?b}`p?b}`RO >O > bYs~4 XZN 칖Q/"M` =T""=T"d=T"=T"Q =T"=T"ph -;cI:h̜AADQpNȌ R:RlR: R:)N ͙ W #G3GYӚ22J>uXbk.ұWrSQ ~Vk{ 7L 7S7|R_ *Ǖ=Yaȯt  ZC ZL5 Z ZcNP d)? k Ep Ept Ep =Vh? ˹xt Uw;9xͼԣf;!RˤЍˤЍn59n59RGb\b\i?wai?w2P? Az =R \w܆`vw܆` su\$̓?y_|%Pw nV㫶DnV㫶nV㫶nV㫶$G2L? ,G2L? !Y*j t] aEx Ex Ex Ex `luR6TlQO yTyʵ<]$i|ׅs  )`g ! wU #NR #N #:f>T?#a3^v#p s$MM ($XN$#\s$K# %@y%Q&Y&@96#N 'O' ({jg4)[ N+:O+ՏON,$(`,.R{.L}!/ XT0990b,Q 0b,Qb0b,Qh0j jyE0w80w80w82UcLL^2UcLL2UcL92UcL92UcLZ2UcL2UcL2}GR2- 2gFHs3D"3348l/ 4uӔfh4&Ix?7.16 #7t:B 7a\ 7a\ 8ȟ;R 9nK:ѬS:ѬS:ePgcZ :ޔc:w~ (Q=ON8>Cm=ON8>KP=ON8>?g, ?g,?myׅY?myׅ?myׅ?B3 $@ ^A@ ^ABbHjCgbm?D}7?E[_,R(FA,FG B $Hi?HY;.2IܩR^JЩnC K*\K*\L {޽3&L {޽3Z9Lf 6?Lf 6 NƸN6?KO1X2LOK ($O $ OOOO΍NLBv=O΍NLBjP#ARvT; (R T; (T`ޑ"T mhTwVT{T{U$ iU$ 5U$ UW1?Ur$CVE˶VE˶W{xh W{xhv Y["aЖ -6Y+f sZ+%0 Z+%0Zv<\ ==Nk\ad1$ ]; ]nY^NE^p]_@>?_pO_ _pO__pO_`6Y_`6t`6 '`6 ab6[=Ad5Odr@K  f]TDfZ if+wG>sft[f[wR gE:AJgրVhߖ|8idiM1K $ik-$<ik-$ik-$sik-$ji[q|Ni[q|;i[q|Qi[q|iܼ Kiܼ j_{jG9jǕkdkݣ$z{Q1liU n-͝Wo݉pC2FcspB4pi;/Rp"=t+p"= "p"=hp"=kp"=sp"=q:70tq:70 q:70sqۿs$sёds1§s1§Rs0RsZY˒ [tQttQ tQ rt8DQu u^b浉uAv.v%C+bv%C+tv^8D؉]v׭PZvTJHvTJHvvTJHjwo|L?w9.r#x ;Le $'x ;Le g$x ;Le s#x ;Lex ;Le (y` r $yln c yln c zR/zL6^s | `d| ` |Mw;Ȱ ~QR[`e ~QR[`e~HqO( ~돛Q߉'h5z n  cn ؗDQ$\?T$\?TR 0Kc-UDQz~Ϲ \Qz~Ϲ ]5N&k7[:@ î mN]dav" ? o;*$'o;*UKPQg$?&hӒZvWr(^TSm iSmSm >h9f>h9f>h9fi6 ]޸)o c74c74c74&s &s u&s |"&s s&s n:tC\Q C\Q C}W C}W C}WuD ]w ]wt]w ppnppnY ;b ,SCc tlA $#yj$9I 9IQ9IQ4Qo}u?o}uo}u o}u eaj  R"ɐֶ` -u`!C䇱C䇱g74 l<`U\ /R ]nj V='v# K/}O?^z~  ^z~ ^z~ |2‘w"!bH(:\pϔ1N?b, b,doo]p2? p2 ߺ^5'[ ~w2e:Xs:X :Xk N" ^PVU| ޿1t̓~ OIX~Rr $҆MFC ҆MFC K e&Ko~zo~zU>t?: $*h -+Jo cfLpo posr;J bK\`)$쟁#c:xO a:pfKln Kln`GaD<(;+s<(;+ i˃@p+_+˃@p+_V7"X6WORl ѪP&VAR&VA6&VA&VA$oOA?oOA oOAsoOA oOAjyR' iN/> N/>  skoy˛/N2jwXuTQ0J r;객|Br[L /Ps>V Ps>VL^)Nke& %GiN2*j~4x'qgGdYdSYdS?]8tA¢[jÐkF+SWK÷?Nk,4 (~I> G?N~I> G9#b} 9#b}9#b}j9#b} e9#b} R] 53X0DǼ͔r ZDWFSQuȣ;+hY:evL:e ()q%$)q%$)q%$Uʖ:k ٯ펶.˖!7˗7[Fs˗7[Fj˚NY̕[ɿ a#̕[ɿ̕[ɿ?̕[ɿ ̕[ɿsQ6MV$?Q6MV$s9"pt vt ?0C: $S iD] 2Kv0<q*?v3?3 ٕ ٕZqZSó@ (_S s- oi8]Yh a ht9 ^ IG IGRIG(s./ cSxcSx& 6<- bW  bW F, z0Z\ ,,E  a M Un }aF $2ZnL 8| D ]U*旦 \1?HlHl $je6eW e6eWs m.L6U#SU# #Yd#   i   4\R[ aod _#`z( k K[si;Rsi; y*y*`1 \[9 [9 MmX5z ]t z ]k gUv ~1BB# PRY PR _.a3SHr y! Jy! Jty! J my! JkBtPA $4W4W$12?; !ZWh6ĴvP~ ԡ0A JMtJM JM (LÃ=8=8j{VhFHD VhFH_0b c 3?id #!fbU! !/b c !Y!'$'C %\$ a&Az` U&vI&dח&m&m'Z[(re'YX(re't (re' )kzK *N){cL*D(]*z2y*z2yd *z2y*z2y*t*[LW +j+lj,v9|?,v9| i,v9| ,, s,-5^V -sd-L>־ *.G3/mDy /mDy0ۚqs2ьh3`;٫3uE14Oa40H 40H $4HP4'v 4'v|4_8xD5&ve\5&ve=5&ve5&veK5&ve5&veQ6n+GDR6n+GD7X%eK8" f?28" fj8" f8io TW80t9hV t49hV ( :];/rs?;{/V;{/k;5 <6h.<| *=\ZC=Rt0* =x=x?)H i?Á ?Á s?HHF@F@CA' iB g sB &pwHRB'axB*>: Bk~aB tj B t?B tsDF/f \ADGoa[DGǔ5vEHSFdF)[sF)[sH9d#$IOYOrQ ,IOYOrQ aIOYOrQ IF:Ѱ IF:ѰJ (K\)fRL4-*1a LV@\b+C?LV@\b+C (L~(M$Mp{lNx`tNx`jNx` iNx` O;vO6ƚOұGQPU6 $R5@ OR5@ $R5@R5@sRP|A RNoRNwmNS|/kLl/f3 l/f3tl:'[l:'[ l;Bj nO^  #&nO?* nO?* oZoyfnpS"/pS"qMťqE qtN q|`ݷ_rL rrb ruvaa8gex?u? V?jZϭ iZϭ a Zϭ Zϭ $Zϭ Zϭg _KS- ("Ay|zl ]|oU]|o jƽR7 jƽ$ jƽL jƽe]? e] i0  rz$ rzߍDtߍD ߍD )__$?$ iD ,ȕzՏ@ sz)Wz)W i7,([Y`^ Y`^+yx  +yx 4yj64yj4yjd4yj9ҟ'R9ҟ'd< v&yQ< v&yL 'Aj? syDݛ $ yDݛ 4NCuMCuM CuMCuMH€]Q1|^;Y]KXt5wqF B+KkB+KtB+KJ8Q J8S_sȑ :|\yyyTvT " :)  p}j p}d p} p}*v F2O ^ t RF!&  D DN" Bz ?Bz  (____Td< Td<Rsuf}"YҬ BYҬ 9YҬ YҬ YҬ S#+#Q~#?#D,# 4Za% >]O+HnkKA=j!FuVuV uV Qf #XMsA5r$EvYZSYZZ ? , | o g| o | | os*.~ٓrq~ٓrqɿ>~ e ɿ>~R<|Ut<|U<|U<|UkE: E: g5\sn?iURn?iU'n?iUQn?iUYn?iU}w: # `7NV /t \mV] a~x+K3 (Hej2p%>YFni e AAie AAe AAe AA zWs #^&p6[)0? )0?:B#z m,ojbFbFbFTCu%o:1 2wsbf82&RV*=DrEl]z%RmwUʉij QÆU\d{&`S?«#||D(Mv, Ă}GYř$ Sjki 3(^)Z3(^)B0ޅ $B0ޅ (B0ޅ aP p/< (MVj5. ̰[ZU֬ sd !|ϧ$|i$*n iвKв"4|r{ժLD ֟~*׉ TZTTR 9Ȑ {FضUw]ضUw ٱG c #8 ۜㄏj NǗN ǗN|g.Sl$ls(eH;Maފꃳ|#IR &Kғ:"|:"sJ{nV , J{nV1q&4. c&, c&, $ _j3 >6 >6 >6iΨ?#": $dK=dK= dK=dK=M5K{KIx= a {?27%jZk ,Zk KxKx7s"7 $7 7I7 'tc#Q&c#Q䛷T]73=5H!Y  p %``%``ɛ?%"r^<RuHNi`@oF pRҬ1ĭB^=R8+jF' amBdڑAI |# |N*Ndt ,SRNseީ= eީ=+AZƖqI9xj Zg #r m-- #;35? ZO)a5)a5)a5=#  I I d$ dEu+G!Ԍ *sL` *sS *s) *s *s *s  *sY Y"Ig JSqE/RqE/,qE/qE/;qE/]+qE/ qE/ZqE/qE/qE/UqE/qE/L;Ls1( !( # ?o{v gc=0 gc=0Z pMlH ( pMlH  pMlH { pMlH  l$R &8;d 9a{Cs. (J8R (J8 (J8 (J8 ;sU.Aj rȏ O" ޮMK A } !s$?˶{ɻ.{ɻ.¥bZOmCT mCT imCT ,ʏ6=htl|~S +gZ;"wXqKq.~u2 .~u.~u m .~u (.~u8_iPUL:!g "F|#H<O#H<K#қ#қ$?G 'z$LA!& }"4'2&ds '2&ds'2&ds'qV(Uױ V*e i+J\K ,u ,y ?,y ,@e-R- . .o$ ,.o$.o$s/.b/cR/cR/vmE|Y0:It0z%GK0z%G1'$JR1˃b?4&28 4pH2h<4pH2h5-6͈TFmD 6͈TFm7gMt 7|fZ?1M 7r58,|9&U ,9nU 9nU , 9Ri;ޒ#;ޒ ;ޒs<}  <} ]k*@ܿ @6 #@6@cR!Kt3@cR!Kj@cR!KAM<A_b?BbjNHs(BbjNH cB]/BۿDuˎDuˎDnE DjE& (E8@dE8@EsKrZEښ65E)N- ,G3 +`dGノ]|HYHyHHHH*I.RIj=bJe+. L; Lf;{Lk)YN _"4Oö@F Oʸ-SP jP/ Q:,'Rq8D@mTqRB;{ TqRB;{ TNU&D U&$ U& U&U44 U44U"Uߒ.9b Uߒ.9j Uߒ.9 ( Uߒ.9kV&pV&p W@~DWaXkwI<Q XkwI< + X0-X0YGXuZH[ 'ك[ٛ %\"&y,]9Y] Ue?] Ue ]ېF]ېFZ ]ېF^.`# ^z,= `g[x`g[x`g[xD`pϾ `pϾa y*a y*a y*QcnQ4c4> 3cɸ~Gp?cɸ~Gpd|21S e"SheFd]eFd] $6eFd]eU? eoeδٺNfs:gYf3q\BVLgoDQ>Z9goDQ> goDQ>gq/bhR1]h{3 (h{3iUܜNj_{ѭbj8Sjէ4?<jէ4jjէ4 jZ $ jZk Mk MZk Mk MlOjm MRm Mnp+ #q›8qwpQvr)2x6m?r sI1/ 3sI1/ s8NtG1iu< uTބ\uk"= | ujve%nߒ} vn+vnRvnwejV/ wu:x҇X?x҇X xӮx*]`!x*]`x.хLtxb]հxȸ|AyBqy , y|yO+:ysyO+:y yO+:y ,yk Ejz6 Yz6%z6 j$z6 sz6sz8gv {uqX?|_ßD |_ßDb}o5O # }o5O c~h5((Z LrgLr<Lr9 t[H t( +26oW? oW?&t V  dK.t~DP.t~DUk Zs^g . R't -xUx02C 5 EssbM h  (mO? Rvp "q5"q"q"qLk Җr?nFR;!]3<d1mtw@D (tw@D ɐVgyzC ,nu qrNriE3pI o*S"9?9s{QP!K GuNN:UI֗}u ‾ /Dҋ*/Dҋ*?x s鮣eLUmo#rw (/! ҽB j* S) Qg?"|( "|(S = $`G㥔R G㥔j&S j&Sj"SIͬw#2S ; }s<sS9pVS9pV:S9pV (Y-ync~Ѕ]K{{ ,\F覩?popoV poB%B%D{߬8 ԟbsU ԟbsԟbsOVN*3bVs(R ND M )D M }T? .{j{{{ iկ- Butj0Z cOMMA ,l wLY$aLE:sJR G( G mmZ f; f; *8JR8JR#D*ds?? ??tv t' ,Sv t'QsC)|t#*ii|lO3lOlO(R 1h1h͆5єvRU.\[YIй7%Aʢwu jD> K=H^^g&0 io ^ \NTpTNTp w{&]w{&qHtֽFVc(+ c(+ \ؚƶ آb# 3uڹ `ڹ `ڹ ` ڹ `$ڹ `# _JW h>z *=O?XP AXP A-XP AXP AݽrY$aV#  ~?CvO| ` ``VC>h6tϫmp smp c6 6S㩯~1!X~gJG?}N }N}N}NQ*.> i Q*.>tM M *ǁR)Kk[o[o (|ܫ(|ܫ^(|ܫZ(|ܫ(|ܫ]P(]!"]] 16Qe #W HW HZiJZi 6? 4 ~TX S4u ,􍬥9 `|- `|+1o@\  Pu:{nx[1+P i1+Pj.(]{"t,Ou+?i,|j{T{3{T{{T{{T{:q e l\NIMlXj!Xs X4k15Mq?rN K#rN KA Ļ ,e0e0w?  * 1 ^%!Hw_?IV w]?XF7`si]S ,Av#Jt%#J #Jk #J i #JskK<*F|k<ѩ G ^` <ɃU%PU% U%U%L ( (sQ+ " m*9 m*?㤴WfxLt $lbrS lbrL LdQLd݋j#݋ "݋ m݋ VU|  E:S r HbsR9 ȍ Nmt =#a? 5];_ -ܬ3/t7> /q/v0FK3P0c;Wې1w?1{73Mƞ j3td 3x7-3"cG37 4+ 4wJţ4հstW7?N^a7E&)8ܓT8TY 9nB/Qo9x i 9x?:CG*"H ;Z\;@6h;K΅p=x# e =s3j=s3 > ֣>+f}?>4#}?8Х ?8Х|?9L?9LL?wR?wR?^6 a? d4? dA6:B A6:BA6:BA6:BB͢mB BS&BB sBq.Bq.C#%6HM C#%6HMsC߁>sD;5(&D;5(D=Dԓk.E]qlF$BM F7oGjG o\0Hc?u cH± dYJ8fLQkK  i K  KѠy ,KѠy $KѠy L/U9L/K LLc{MUkNXbV4 |UPO9Q=7QjȠ9U)4U)4ZU)4U<ӽU<ӽKV ր V" UDV" UDW{?)W'-.%WAT XW Z1]Zu/? Zu/? c[: U [.D| [ \#?m/PL\#?m/PS\B uv\qB]vQ  ]:f]o]o_ $_ _HgL;4 "_HgL;4b`edG aՑaѬaV aNOD aг * aг * bV b b $bc cgŋcgŋceiUcemjcemscwsd dg%e5lF}eQ fO RfO fO fO mfO g#;O` g0rOPA # r]; -s"INsxtStI> # tI> cv"2mv1W* v>.Q jRw;نla?x h) xCRxCy-ֿ(y-ֿ(sy0>kyNt˽s?yp'ayR=u5z;Tz;T{Iߎ /{Iߎ {Iߎ{Iߎ {Iߎ|__- $} c?}$aM'P}}D}XUJY~|3 vvpy?py k$)2$RD5NF> F>QF>F>RB B \4,4D4Gv-GvR"㯭1x2(Ͷ>ͶͶͶͶͶ 1v98;Lr?{SLhI]SN5 aSN5tl˙ l˙ rsU / (qLqd qSbP6@'8 c~sKc~sS#9҃vٻ YԺ_h0.y? hs #/EEtEEk^i$] ^i$ ?~\U [Yh92 cyB #j Mj Rj W% %? t}AReS'$$'$S1| "1""" """ ]b{ i ws̋Ezqgggg;2 I-O]Z?Rw \-dgg$gSg#gg|g c_nj/I"ԛGFS f)]T Вˢ*u c5 #'^] '^]e'^]'^]S'^]޼`(1SmRC>x†^qūsi'i'~|=SH6x AMlXSAMlXs ֛ ρ< | < < s*t ]= ]=?]= $]= ]= ]= s]jN x#oWOWSƿ\  bxo)\ rt›$OvjZy cO O PxN! m!adexS a{sZQrV| 3iaQ d>Rdc kgVfs[e[e[eM$[ 1|*"YQqTSCUX^7wD $߭b # p;AV p;AV̬~j?Nws^ ao c( f " ʛ , ʛj 3Á/c"N ee*Z7 *U *U  F+Zo Ob:e:Rg .n=4=2I4b_rrbS)t?(rbS)tss$ %9lsc(L:c(LََF#r] "MGD<jc$'c$?c$"-uk=30 =30 =30=30ui$۷kui$۷tȥQQ ǽ؋t R\ (b(5b( #b( (Z$U (Eh1dc}MVU=U=LU=PK5Rff (XtH ΰ ΰ |V}Sv i #\-nR #\-n <\? ȐMq ȐMq!,(P!DԬ "d(ڞ#?$y^$y^a$y^'$y^L$3$3&[Qn&uv, &6 ,&6 &פۥ a&n'erNyL'CM '^hqj(8TB(KT]v(d/(:AxL+):Mw)R )N ,u)N * @?*qNt*qN +T?q-;?-Ch-Ch-xot-xoj-xo .W)i 3/] bt|v/^n /^n c0 ,1B9Y23t~"36>o'3L~v? 3L~v 3]:H 3.nx 376e{ 7*N7\ e7\j7\7\97`s:iW#:v!L=cD>FZVTO s>FZVTO>FZVTO +>tU}?B:??B:@ @6JAG c A8mtB V -B(WnnRBzM C{5D#1PvEɲxN EKR EKR {EKR EKRjF;)GJI3(# Ir4K?JX2KM@z ( KM@z iKvfjKvfEL6j4L{X {NQ>X |[iv.}D= ~Ŭ?A,~أb- ~أb `H={N"H={x3 x3 (x3?$J Ɓbz$ 14KS迈Pf t! /t!s"t!tt! t!,//LgP@;v6~ I>)s+% +%|+%V+% $B+% i- B Dl'x[`A_=v`A_=j V[H̴)$~X('S9pC 0Z ,ÀHUÀHӋOZJE!ӋOZJE (ʲ$ʲ \6  #NuA. N  N M,&61 k5' 2V8)s$hݲbLSz,&FݳGL:&X& ,i= ,i= ,i= ¸@hI IRIK$jh.P{:~L{NQ xRqs%k#? ۱s c߂bL9 ߂bL`8`8]hDe& Fn{Jsafs`c !`c `c U 0^aix 0^aix 94?4 M 4K)8Y K)8YK)8YTITIZkL =Ĭ nDGtO' GtO' '+ISt'+ISb'+ISk"L7Z"L7$"L7Kw8m2 ,({- q+.^ݢ^ݢfZ?foj_g4 2?zYD@?zY*?zY?zYa?zY/?zYRSFSFK`9 dHҫNHҫ!HҫR "[c Ir5oJ{ jujuKyqRj@sLJs 2K9*餭Ls} #n n -:蕏 ^jq89-ʬN<&1s0s0 s0H sϖE(ϖERSQeae21  \> { <{ /EVLZ NiKB%MN33^R/?P/ Y2b O 6䑄[4ޤ cL?PL?PL?P e L?PkL?Psȣɟ7h"ItTs3|s3 ˖z  ˖z ˯8 Mƍ ̩FgiN)x(pV ư,א?ϭ TQ ϭ TQ Ѣ( \ѣp aѣp .n .n eԎ||vy㮻2IeF?0gA 0gAt,g$ ' Nv}hOs ׆ |[ ט8 Π vJ+?Ym W +"' ƒ1 , ܉@sJRm*K1a<XXT^ FDJeM"+ gsmS6$& 6$&sB6$&h?6$& g 6$& 6$& 6$& ݱ}U ;T ikz ߯XkGb^߯XkGb^|I=1nƣx'nG'hh 'hh'hh ,]kNavjWR7X.lR7jR7ZU4%U4U46\yK _fA>fA)>fAR?S@0꽆 AZE.PAZE.PAZE.AZE.A$A$B&S1ۯ.B&S1ۯ.?BRsBx͟ C%I[ 0C%I[jC%I[ , Dż CDn 0hDVI]DM QDM QREhOZE3(1E3(/E3(L F+HT$NG;d΅GGX F cG}x%*G}x%G}x%]G\]@HZO/v$HZO/ Iڛ{ iJ!z} iJ!z} J^?bМ+$Jq" J6? JW) JW) aJW)JW) KXC LRL_rmLRL_rmL`wjM|&vM'xO M'xNM;NM;NM;$O0ԱO0ԱOAPԦ (OAPԦ?OQkq O~>};4 (R+ R+ ?R+ R=&L@R=&L@QR=&L@TFJUz2TgtV/Ql WCjWF X aX X'? (X'? 'Xi9 ~@XÄ,F-sYjR.Z6k{XvP ZL:ZMÀ [[pc r. \.!Iv\TA;K\TA;J\FFV5C^ E^N`XϊaLb`b|pA $b|pA b|pAcB 9c cc?dhg  -dS|fL & fL &fL &g xW gƛ0 ( gƛ0tgƛ0h}NRis| is| ij UNj!ʞ knkAX?kAXlgGm%ؘ[`m{G mJ ogm5pˣupˣupˣupsTjJpsTjJUq?qsq as92u qX uLmOࠩsvbi #v=1jv(WP v(WP | wV]ozwV]ozx9y{_xVY$[xVY$xctHi?xq@v x@?(jy;q"y[L #yJWPxdZRyJWPxd{=K {=K?{:Lh{O8?|sA |L$ c|L$ #}"7#p,Nls_ls%9X $%9XN_~% 7Z (+cRTtPTtPou9thYthY ()NCQ1)NCrkrr}Zy8K" + " '2L~k~k~kUU'U'# j ^ jL j  j  jQo #PF (DPF PF|PF PF iPFhPFsf$3N)_"P?Ԡ?o I 8 Qdv8$6_Z e] h\uI BX &ak0M:gM:g <  j &o=kğ gğ ğğR tdj]wH`[S{iRCF (CF`oZ\Ej`oZ\E ,2M H" J$s4^^V cL^^V #^^V \Uʥ?CS 2 [ [w>d%/ `]qntSqnt "\.2"\."\.tTA (1-. 1-.?]#੟+ !li 'ul S>w iuM⋉V3p ],"]r #:8v[Wj [W#v&-v&-v&-T/R%x#|4 o5oYr r  |rV?}&& aUhP7a z I ^qÈt/ $!t/s t/h t/ t/ И* D.zh {N̓ kE/skE/ ,HkE/h, ؇`4׫Q K"4׫Q D4׫Q K`g0K`gA{ $\:Ɯk ? #(\ -7 -7 .=ʐx aS,v FZZ oN74CfRG字wèYwè ܍N88Keigs7k$.¿ <-<RߖY{tߖY{b\i  ,&_(]>NRjK >NRjL>NRjG߭bQkvqUyrIM# M#Dt|_ t|_jˑ!Ao?$~SCSݺN 2`k! u#Яr]E Яr]E* * KR3e_ ,ҿ ^A; e{ 6$*t;s֊^S?;( *ط8` ط8`g> g> }J#0Q }z]}z]}z] ޒ~# cɏ2Ust~|( t~|( '6 \h&)9\h&)\h&)2thQv䇩Ly t?<|j?<|dTݫ/! i) p^ $4zC pN, t´ t´LdD` )@; 'Fv *a ipo=> 9e"B9e"9e" 9e"Yp1 $UV&xx: G_O)I G_O)IC\tq31H%\&ƹ,(i>ɔ0i>ɔ+R\MN< C]s:2RHZ  䋟 iSQS' cBY($PBY(SLAo?,Ao Ao 0oWj9@Q?ckz ( sw>/g@q-*hj *hs 0#0C 2#N c{t 퀮ΐ 퀮ΐj 퀮ΐ U1WN2 h?hj#&")/ecH )/ecH θڎ ( θڎ?W5W ,/WWW  =  C{` >v3  >v3s >v3  >v3 s >v3j >v3 i POb n킙c n킙c O 镁 kdQ? kdQs kdQ  kdQ t tXrj   $ - 3N"0]ך "0]ך IxFK5%Dzoy/9 gst[|Z~ cϮsb"!veIC932N 2N 2N2N2Na2N!dsA =W'h´<?/q]+RPNT} (T} d, ,)O]sfNv|fNv a7tD 7tK7t\MZw_w|'ۇ . v#/ܖL=RdMSjCvDOCvf9R %WNR %WN R %WNUrHhX i nw s95~1$+kRF8y&}Pj^s(yajIhj(yajIh a()`d)9SZ?*N*Ju*+.$ *q0,Yt-x4R.֊Lb.&9.& /_RD/_/Z`p/c|GA0?Dy[0c8 0|S1Y0 Zю 1Z@e1Bx1MN2(4?2ecP $2ecP?40@*5lc8,5lc86_˚7 ܋X 7+ m7+ 7`{9™7`{9™7)7)8f%s_8f%s_8ȉ,?9Lܰ\h::MNG;[2EA ;Jô<# $=Ff? G&~?|u?M Y? ?cZ s(?cZ ?cZ ?N`h( ?:L @^[Y $@^[Y@^[Y (n@^[Y7@^[Y @Č-V A%F AxLAЃPNB@W<B@W ,B@W B@W C!Vmea #DV|ϓtEHG #EcqEF8F9ҷ϶F Y/G9nH凊)xH凊)H凊)DH凊) H凊)H凊)H凊)H凊)_H凊)CH|W'tH|W' H|W'sH|W' iH˱VanH˱VanNI Ȗ1Z$I.MK iI:CIC?&J?1sJo6TѕJ͏J͏J܌WhiRLC3#k L0$U MP[NN6S N$RQJ;RQ{Q{ Q{DR6/SUbS(.SݗmtSݗm2 S:SU Tl[U^T 2]U^T 2aU3V,zY|R VWU>s sVWU>s (VhKWxWxYEWx?WxXRMXR XRXۦ 3RXۦ 3Z7]D~s]M8ɶ]J+9 ,^ p}^ R_f? af, %af,a [a+6ia?U_qaqיc!6Ra^ya^y a[fˢs a[fˢ i bj,5bj,5bj,5c9W m c9W -c'Fe6ьtf@b[f`!䡇 ggQ6hD͕R i%b&{aj*:$ $jyͻ jyͻUl Gli,smsm imkZr j$n)=nSnS nSR n%z$Nop'֢ q\Fr hXhr=RzKrrQ sRquJ?u#XD^Ru#XD^Rju*u+? Au+?jw@hetx]/v yO gz=\*fz=\*fDz=\*f};2U }H}}S9}얮}NrK~n[탡Yjb@Yjb #!% !% !:- - !:- \ 1k=/-%5? ZK LO }a5|y \ e6_ ic A;v!8A;v!tA;v!A;v! A;v! A;v! md?;_9AI NrNQ <-&֘T &֘Ts &֘T iO dUt<Ž  >nRNVSí1 Ic *IcS>n>xqu ,[.Ґ<Zrsw?x犍iٴCٴSٴaٴ " AL`U:HvO ``$(ߕiw9:!u#J^ 0}j.L bChR !! $B B KB H:v #H^H^_BmeD[.x5mjIܿ Tj [_A \G (2xd$멨 !HV]@ɯ D@ɯ?K/>JL90^ m+L90^)L90^ C6 mDOI ,OW&WWD:~$ :~$ $j* j*tx *txt}5y }5yCag\?oH 60T <{vT%/J# T%/J# FI c2o?IIYI ?(;yV (;yV?(;yV 󕼩= 6&`T>v^(U .3 )/SWWKLY3T3T3T_, -X7-X7 cƆth cƆt8A(Z~T %@Cl?V -S5cIPYMN (.)2JW \ߥkTHvR!> ,u é,êf0evêf0e k0K}?;?; *pֶ?@&շi nds ԛ[ ET# ETȋ/q EcA mEcA16  u<\n ̺w~PR[#9` 3 o]͡V#v = 9k/= 9Y= 9 = 9su& $묌?y>a Nx1.=?1.=ϹAT:ђO:ђ:ђ:ђ:ђВƲjxC! e eheK%eR eыZYbі𪦻RZ=*3(J7*3(J7 *3(J7*3(J7ҏUiD HBDD?BBY? ӣv ֯h#uPZC8?/Ծ5< Ծ5< iJ7 zWmK N*.4rTm \ _R?M sop PS0kbނ ӫtނ ӫ ޏTn6A AYG u% !zฒ-l ฒ-lh ฒ-l  ฒ-ls g(K- g(K-R1?PG;6jPG;6JGxt!)G 2\$_h2\$_hRHLZi:CꋆȯL!y? K4RQ0[-9KlwhUs E705bR5b w vg3 vg3vg3 ivg3tĘBĘBS J'CB1]5xc?lztlRg|mtg|m g|ms g|m y OXNϭ? ##R ##vzj vz % 0Y!dOt (3M #Wz6+ iWz6+S7a ,57a 7a7a &!2{?!2{ !2{j)XaT#cO  .k8=S]_k8=Sk8=S9hlOCOOXHR zt'  ( N ( K (R0 (|! a!I-oyjkJ kJ m  $hBEm->d0T SÐmYSÐm  7}L c!' F \     @5 ]y rUR EO=j .u IR)( IR)K UNs UN  UN e G' ( ?f;m" ?f;m"  ckWu? ǻ]  ǻ] $  Vk [$h`CSFQ2_|FQ2_ $?,Ni ,Ni ,Ni ,,Ni .B8-pmRd ?X{t?X{ $p#ַ(= c1 ($#Z"$q?q ] ]] 5D& 5D& $Mdb G^K!oș[K!oșLK!oșZ^eiZ37_-C7_-Cž]Rž]d*h k+x]NI k+x] " "9,Y-X "j!Yg]#衠t$+@%G&%G&&gDB&W&W &$&Cl'^O '^O  '{]C (vnR5](wY $(wY (wY (wY(wY(< (), R)kin)ki)C3@3 g *е,! c, ,i.@Z5?.7MAD.7MA/ ~Ӣ6/ ~Ӣ6 /пK0#/пK0K1wf,?81.Y1I2:ry2w~j2w~ 3`a_3u拨s4dRP $4dRP 95q?5-I #5^bM$$k>1'.O?y?y ?۱?@c(tA3kACf~0BW4g?4BDPR BDPC*ˎ_CnAD kV D~2<8Df+ZE0 F>40:F0a=g+F0a=g $F0a=gjF0a=g F0a=g aFp=["Խv"F>J G4مߙGW\(ϧGW\(ϧcGW\(ϧRHI,.msH4H4XI/vP (I=?}aJ bJC6JC6KJ^RLJ^RJ]`KTp"Kg%RM^yWPM._GkM._G ( NZa $O;5 O;5PQ?ȟQW-K4QW- Qat6S Qd3R V$Rf$RZqXZASmm3=lSTKè sU1?U1U6twbYU;( U;(Uքlo"V= $XMzB? XMzB Y pYl' $Yw YaNZB,Y ,[QtɑN[A>d0v [5%!\jIR]V$?]Zm^3Q[_:飨{`U `U-`{u= e`mX? `bd}t<@Cd}t<@RBd}t<@d}t<@d}t<@ed:_ (e9* .e9* $e9* e9* , e9* f0 grtrVhfc iO(lpH iO(lpH #jf9  j<*jg" kXU kXUKkZB`l2\ l2\ ,ld3#vۘUl(\mBcGk mm&an@S[n@SX n@SZn!}nn!}n o& " oD>@-qo s<ptyktykttAJ ? u'+tL #utnr^N utnr^dv;~ v;~ v;~ $vB/vBA};HRwI8n  wI8n QwI8n wn1q x!> sx!> yWW $ys^d@C'ys^d@C'jz9PR zL'zX%f.%{=t{=t e|COj|q%|HS|l[M }|6;  }@u~r!? ~BS e~BS ~BS ~BS 1b9 "W. ^T7_O aO#+q&ndR- M-ۜ/*``rn#G8f`k?!8f`k 8f`k r6Q  s u5[7u5YfLݘ ? ? (?? G{tG{ k>|F?l; Ul; l; $l; ,l; MOMOC#Rϗ?QeK,ϗ?Qeb% lJ* >J*ᦺoLt DO ,#DO DO 7)-GK7)-Gj 㵊Ԏ kC] kC] ,AMU Tr;¨Qwru zF m eA /x>A $żD?$żD 2H!N ``O ?FO ?Fr!)#+IFH a>8fpxK+pxK * HGH ,H "LQ ¹trQ ¹tru2Lu2L , o? AnKAJL8 jA'v$u!GKee ͅܯab $ˍ $ˍ b^R8ȸ ;}sWQWQtO~weR!.Z L8#[}FoN!S3ed s4!S3ed s!S3ed s!|Sj a!|Sj "]M<[Ts -#8Ӭ.#8Ӭ.#8Ӭ.#`@w84 # RŠ%,JF|%,JF (%,JF \%x%x%C& &ߜg'{JS'=f'=f (D(s+K(D(s+K?( gD)2})* #,fKU]a,hA ,OQes,OQe,OQe , ,,i  ,i  ,i  ,i ,W S,W ,,y ,*kY(Y ,*kY( m,*kY(t->-0 l-0 ".*n}/M," / ĝ] / ĝ]v/\/i6)K/1N0 ɹSN0+D=*1c~Je a1c~Je 1c~Je1,{/v !3`am< i3XYG47/^ e5ΒuH6KR2>v6e>851851LH LDXA?LU/pMVG,IM,[M֨/Ne/&v lO O O |OO&Osn PlğQLX Rr%~?SFS~zBVnc9W(:K+3 W(:K+3 iWy3b Wy3bWy3b e Wy3b Wy3b aXDӷY Y  Y _Y dY0N06 Ycz;L[ iU7Sh#[ iU7S ([/ADf \.r \.rh \.r\.r\4&5yV\4&5y]Ʒ# ^{qy3^%%Y^o ^,cMOd_ҽ_az59_az5_az5_z~w_z~w _z~w m_z~w |_z~w _z~w eF_z~w ,_z~w iE_z~wj,_z~w a_z~w _Æᙙ[`N!6`xK `i@c:)զt? cX/xs acZ@ctUct[w e {:Ca e : re :te09\eX5 fk-j fk-j gNaT% hhFS hXfiLs i;vj=pUwjg^ l'ƹOl> 4l> 4Sl٭N l@& N m"ĸᧉjm#!ѐmD2pmD2pm&9 oZH:/oua)֝o}x o8Tn^qbIiz qiHw  qa2ƑNqǒE ms"'ft2؅ttU-\ tU-\j tU-\ tU-\ \tU-\ itz:|D etMȥtMȥS u\r?$v ֆvq2%v/x v/x vC@ w62 xT2?xKjxsyiM y'+y'+{ /( { /({ /({!7 {!7|&pv|ܮ3%|ܮ3}0"V }lg[!~ 儩~Dh~%3(~@E~@E~q~}Ѧwd ) [Stf4NKa)=tь am3 j a~ ~ӥ6w} To(y✲T? ✲Tifͧ[`\m+ `\m+sPܿjUCq %u P P?1\ S!wXaĒ Xm*UtiiIEiiIED iiIEiiIEiiIEdiiIEiiIEDѯ}2}# {R6 q[*}NB1 WsB1 W B1 W42A nTs Ts aUUN5UUN2w\dw\w\Q H ('~!f1n?1n \ 1n i1ns1n63`)63`)" #8@#8@< L?ŰX*SƠ9~tȊ=?Ȋ=9m m \oZ oZsɝ/U0 ɝ/U0 $]0:S #:uo#A F<2k5F<2t]k?]k t֊t֊Y̥\_U} } ,}} $} (ЏŌYY?жFddd/~шN0: ufaG x|0iwRCO$ #Gv-s}{pc4֍0<! L"ק;N. #׽]jX c^? f_)٧d^R٧d^t5*Ō֤+ Ō֤+|Ō֤+ i qa \d|vݢfxC"s]ua $fD $fD uFC[KE #V/ {ݩҐ?{ݩҐ MC+ 0yPz0yPzx0yPzN0yPz#0yPz"0yPz.J6.J6.J6}mt;?)Td7)Td9)Td cڙ }Q\fX a \fX ?"e? 6[${ c!W"B_ds6p2- % " T@ >` ((` ` .` SϡNNR kz&SSdڛJRPdڛJL I |SI |L[0he詋ޮ詋ޮ 9$ \6_19tWP;p aWP;p?SS`ΑY!l9"si h i h%cg"?_V!@b!@s .4ֿ[nl jzMt |5 SDN5Ir fH(0 F 19(GE.Z GE.Z"p̈ " NUb e>>`i'tXtXXtX&b{ &b{] a. a.D a. a. a.Q Ӽ·-K Ӽ·-  Ӽ·-R Ctn# !zS6 !z !z !z !z aLh #  F  Y# C\h misnSM'~?O I.Sd.U)6c-? ? j  RlUS n J$?V3kT1 (KbZ'KbKb8ډ 8ډj8ډ (8ډ @e swZ,XV;:W ŰHٺq~[Z\=\= \=K6R6Q 6K69Ŗ@On l@On '@On @On ,@On $TUZ:$ %:$?'Y{qRNi $SXul#F ,z$uM{5\ : z: yKںs=ρ{x, ob [13FS 4 -Yi-R v  =HP?!Ts ,!Ts $&!Ts!Ts9 !Ts e !Ts!uIUR!}0* $ "6pd "^ȑ"^ȑ "zc-1?>c-1s>"lo >VR>VRY>VR ?ex!b?z{?-`?0!T?@9#@jp BwBtȇ mBBjCBCL.|kT Cpz[ C`B?C`B?Dۇ8E3Ӻ1 ESP3Eh臽?F sFXPPG~4G\lGG iH8-) HCAGvHCAGI~ I*Q*JPo,"" JPo,""J J0mZK.Ŵ^Kb(m KuW KuW (Lu8JL4 7E P! Qg͸ZQ3 vFQ3 jQBBټQ)|V $QC6R_0S e`k&S e`tT3d T3dLT3dUBW\KjX7EeX|GzYBGv ~ YBGv \Ys~P-Ys~PZ|lD[w% "[>v+?[>v+ \),J\0NS\0S\ˎ \ˎ\ˎ\ˎ $]DK7 ^.Y^ lv3^ l ^ l ^0_ s _{QR=_Q@?[ )_1$ : _1$ :`α `ōA`-GYL`-GYSa(&a3dibʴT.bʴT.c3oz#DdbkFd&e6 { e6 {Zf]f/yf$h]:9sh]:9kMh]:9t h]:9ji'A)Vcit#R j {vjdF ijdF jl&4>CRkI_kI_kI_kI_kI_QkD}@zn`nb4[{ #nw4#Unr=K?pl/*pUpsq psq?q=iqaDoQq3 rm2 ^ s_?wszotMatyO[j tً eu Ru u  vSC vSCv:6)R vyu#pw& w `Cw `CxCy%Cx,L0x,L0Z x,L0y%ojyD` yyvn$yvnzW z{YWjZK{$tu e{$tu |9=R|\]b]|\]b} #}Ot>}wR7 2}wR7 '}wR7? ~W..#O0f7"N`|-YN2 { n2 n2]( f 5Sf 5\=:}rvؾX2ؾX*(s *(73q73q"Q 0S1"Q 0L"Q 0"Q 0l-'US2OS2O]TH& m[uY[u[u [u [ua@1{ 3ؕ> |b*j$l#"Q]$l#"7$l#"$l#"$l#"w/0< y @ jtuR &2&% &2&%s?h|o&Vr4 #J1 ЛfKЛfZЛf7=Xa+7=X&&7=X f nX?Zfd _F ]ҹꓳ3 $ꓳ3 ꓳ39Z]<0_<0_B<0_ $ <0_ ?# ?t  ؛ ؛a:a /Q%[SѴm.7[t-:e+-:e+R=Z^Tv JKJR4Db n_ dwn_bn_ ~w-n~w[~wSL#ӿ hᩆ,%8{\4?+-? * kle*MQZ|@? QZ|@jX`1X`1uk"uk 9Mh _mp \t; \ \jA9?w7?̥/}E Z"?Q TY^ P}UP}UP}U P}UGi47?AN[.O* ...$t$t!E' !E'?LǙTf,OH&$*H&$ t? 1= YLvԊ )YLvԊ YLvԊ|YLvԊ (3q6t6ks*djp4#)ó (4?@4s]MP U(\U(\DU(\U(\1n?1n (1n ɲ lDwHQN i5N NN \NsN Ӹ h.Ҿh.Ҿjh.Ҿ R,puJs puJpuJ=?GI^KxE( xE( ^6@` ,FݕDjݕD ݕDb9ݕDtݕD ܈nO)#XDZ]fȦ ‡a>rM|¿NT?¿NT  s5vJ2 J2J2 ,WU؉WU؉Dà.2,?;j~~LSJL4HG S8{iWyR'Wy Wy1mPPRɂ{1 ɕ 7c t })hW5 \hW5?lsB 2lsBlsB -iq(Yiq() e ͓5 H.ho<φK&suM \F .$gi a >Z?Ҷ졧@ -]h]h]h lԳ?RN_󦊃 2巜 + ;LR r;LRt i"DuW 'hl_Rؚz' ]LL]LSq]LQ$]L]Lt]L9]L]L9܇X i9܇X9܇Xb= c#tܯJSܼ+󺑇)U^U^ރJv`vPY;6Rx{Qx{x{x{RFR:@  +l+f7eRg$ej NRr4 %2R_ UHA_?io% io% m8V. %r'^a8ź o oo ߣ!Z #nߊH i[ZO"vp esQI{޳P%{  $8E  7US, 2 k6 cQMLV+T𨩥@[Ko|:+Ko|:jKo|: $rBvsBQ  /7 /70wjFGx!%%NXCmNXCmNXCmNXCmqNXCmS ^3gq $X8_oJ$ʒS$ʒLRpZ3RpZh'رt 'رts7>Q iZWtU ͠Ƽ $8 H&m%A`bjtbjtsϚٲ;ٲ;46kj6k?@LW% 'CV]d\oU?9J`$IƣR csc X_ c? X_ c aO * s ($s|sHp #ce4#ceR~#ce#ce#ce  ] r!'k?!'k  ̘' ̘' ̘' W ( sj !9 !  ! : ccm !fR( !fZ 6F 6F ay<] D-R D- D-( D- D-L D- D- ~ Q#' 1?6pJ{64 4w 5IŮhdIŮ3Z> #uN8a:DإOH`'RH`'o(p<̨[ډ_E!U~r?W) x `$]K,O (4W?d* x-f>T .w'*aw'*Rw'* +w'*[0 "[0 Yv'I^ cI^ #HgGNvwl| {=~-6m<?59{eR4MS{eR4ML{eR4MaGp v :# ̋%ij   a W !Y "ԽU a$x$VZKPP$>F-5$nH i%EjODK%EjOD +%[͕\]&:IU|&4 #'')%| '䊋C c(f;?(f;)Y?)Y?)t ;?*gMb*(3G \*wtL*wt+ 2+ 2 + 2 +O(T t +O(T s,MIܯ  ,^p ,'"w,t-۾/ i.W: ,."T!K."T!.(/j s1;bh29*?3W=j}\S;3W=j}\3Qxn{ s 3Qxn{ 4D#“7ybd70mWc7ӋS9.'?9붇w9붇wa9/@v :a O7:a O:Ȓ'R; ǥZ?; ǥZ;Bl;#1[ٔY>ٔ >;Y宼n>;Y宼N$>;Y宼?Dk?Z?P *?@]*fp@]*fp@5^\R@V D @eNA"'f?A}sB4`CYNCuц CuцC ?c C ?cD [NDސkEvde W G+OLG3r} G>$HAK cHzc0(I"eLIY #IJ J55K <K < KH/ K#ûhK#ûh?L =RL-1%k L1oY M;: MM MMvN!E ޿ (NzqO>4e?OdOP.|v QF%'NRS+ aS3C\1((N Sk* #T"Tu)W?UU/@IOV,J |V9V9W<p^k W<p^ W_mÈ"WdZWdYWuPx?%WuPx Z,rp> , p> q Pٙ^mqx8rsPj rsP r=Š 5 rJd}]tC_%tC_t&9 uf&* #uՕƊbvp w~NtcwUHQ w6{ \w}pݮ?'xyEU{gSNk |uJ~L|6sR~g&j5S~g&j5 ~XhD'BSeBSe/; k_1#Pm"Ƙxk͒N,PPPiϰ il_& -l_& j|D XA8:acK exext Fa?Ӵn<N ,ΜS3`$ސ/UMN /UMR  v~ + Dײ?׿  "e?1ڏ3DWW- $ G -6G ig >p#t78| (78| ,78| ~hVZa?(wN, .3?`}D}]S}]d,}] }]}]!'RATs5Qu aAw futJ# futJ[u ~# ?!u ~# j Ӿ(D0Usb0UsbE|_o"Uj_o"UDj{l/@f'{&ׯ~LvhA , Pn ˌ+ ˌ+ ˌ+h00~ymkL5o  L5o , L5o w·v ,]0ߑpUCl UClUClQ=TaB% 8<88 u':} ~& s ~&|~&~&k{)anNBM?)N2Jo6M'Jo6M'ӴvgMV $Ӈ8uF j-erO=terO=?ferO=k!erO= a erO=9erO= 0ġ|%r?|Pr(xRv (ךb6nf OY Wj~p[t7߷ sÈ`&*v`&* *:a a $hL$h '5 2xۢw w w $Bԙ-Bԙ-Bԙ-$#Vň  ,5ň |ň ň  (ň  $ň  aŶxưص  Ǥv#F4L"b;{~s<v1t s#䙆Gv˞B\%T??  $h> ̼RJvi͙IA a ͙IAt}4|}4 b? -ϕ ϕ Ϩ=c?{Y Ю2FЮ2(Ю2 5"^5"^РfVC [*z  [*zҷK}ҷǙuN| 7uN| *uN| uN| Mxn> + E uAu?N8o N8ooMNoMR oMթMw A8N6b?8N6b (C*CS֋ tL֋  e2 a ,e2 a ׃\ $fUBNfUBN{^8 (R\2jR\2 ,R\2 sR\2 (^R\2 <ںsCSf$~H|X ~H|X? ܂/k/t܂/k/ ܔ0L #*ǝ0v6Ogdޘ8C| ޘ8C (߂z%gNTc+zl0'"}2#W{Hz55? 5 ?v ޖi c8 c8 '<S '<'<B(뗠  @j @? @ (q8\PɷAW.[phY L]/d 韟W"7jl9ꝟ+$64CQP}EC;)~ )~uO cHTX[!5[! '" CZhRsP; P;tP;jht:WF  y? ay? (y?YF "-p *08 ’Qs,Sj|S,Sj|-wjNYwjNwjNA{ ij ,8;f3 cծPcծKcծKs+isn.9 (ob%_ob%_ݐ ݐ Kݐ $8& j.j.j.?r:TXKr:TXPa+|p|@XAUa81zک_Nک_ ک_  ک_|Y W?8U k ~m ck ~m k ~mɅ^+Z n Ʌ^+Z ^Ʌ^+ZɅ^+ZBqcHBqcH BqcHSWsc RB # Qۜ?TlCx׬N <ZdC <Z o H+ # ؓ5 _[V <S g>J  ڝ3VY 1 BWS_a BWS_S D.% h D.% h D.% hP D.% h D.% h|#||5"eREP Y2.C!w sS A%|RA%|R`A%|R 4A%|R A%|R plB Rzy)R azy)Rszy)R`nZAj ,`nZAj J% cۚÐ?'ۚÐ? )  ) }4Z vG ޕޕͲTo #c2R*V 5 w. i þ $siF;$hs̨R1mkˍ\Dˍ\$N$  YGN, YGR y *!P@t"j(=:#%XY$d@ $d@$m $m $&B8]Rm&B8]RS&B8]RL&ng '/z@۬?'ŀj 'ŀ(!u?)(U@'w *^xw $*^q +""貛+¯t,؋){zh .Qj.BS Q/G" ,/.όj0!0iq1`q1`q1`q1`q1⪪,?1%֌O1%֌O2A^ e2A^ e#3r; i3r;s3r;3`L4}Q1T *4Zu?*57 \ 63R% 6,?6  S7FJt 7>8;{+rF8;{+r:8;{+r 8;{+r8;{+r8 "S 9{-:zh$v;<݊?$<]>6 ?ŔsK??7V4\U?9HL?{ -E?ͫX}u[Al̺Az1 A(?BAQCht)evvCo| cC:@DĈEsDĈEhEeRe[ E:qE=h|SEmvE|Fܐ RtFܐ RRG'GH;' S ( HDIgHx IgHx SI"szY?I"szYsJP dJr5 Hc K c_PK c_PK c_PR KQLOq` M1 M7RN?dyNyTG O$KPj_PeNS1o/ T6(viUTđ>NTK1 -WeZI WeZI W| = W| = W©TYI^ZIݦFsZS/EۊZS/EۊZb c \V_Hb\ VL]#h` ],7(]B0l]B0l$]`Be[^"7^iŬ!G? ^Q _E1#+`fRo`~\A (aI<=aI<='aI<='aI<=aI<=aFaF:aFaFaFc7#ʵc7#ʵc7#ʵc7#ʵcv5tc.vg ,gy_ g-N5=gojC?|hW1"i>eRjЌjЌk!>Nk&; ( k&; g k&; l$mv] mvmv[mvSXmvU?mvmvmvLn!F~n!F~ so47@6o47@o47@o47@eo47@o47@o5Kko5Kko5KkRpr!qF (u>F u>F vq.tvq.Yw{w{Px2yLP \zh Rzh zh K{<k^?{ _|~tu~BF~ծ+ +b,wR ,P=V7K|mR!t|RYj }djiVvJFo4JFo4GJFo4Q(JFo4DJFo4 JFo4JFo4Jx`tq]hq]jq]| < w| <|ֹ>ӡ^ YT 4 -}Ӭ7W݃4 6m N׼)?N׼) N׼) X9GX9GX9Gq)tOt%tO ( tOss | ^<̺'/ /?D𗍵G , [R@ v:KSK~{4 \ `5 LϮ#+ &SRTA#_ȑܓ;v)?#k/6B "#k/6B g#k/6B s1vh rccڣ.ݲ; $?0x[YE 6K-a mwy!:$Fxwǟ c"e;SD2}ER2}EL2}E 2}Ea `@M8#l]UݕK g \ 譿 譿Y!Ap[v:H.|[38 AYkv<K f r&\#XR6sFXR6 XR6bۧGL$wL"y?a?$hnn ! $ {!$ { $ {Z$ {Lrޝy&u2SBX +#[ q ^P?YMpYMp 9H9H9HH9Hja#ĜRa#ĜSa#Ĝa,;JI?5y| Z8Z8 5 j9 X Bm3RMH;Ne \ e?Kr" aOOY~SO@N;-N;-ۺC;XVߊ ߊ kߊ t FŅ; FŅ .7 "o]ԟpm͊ #šcُ #6OjKʹ ~O<bO< (^,s^,^,?^, ^|ǗC? gGOx}e_ eM/6&>gDs| c \DcCkDcCKDcCDcCDcCDcCYDcCDGdg L.xǯV[jGjY{$'D^l "ϸpT7jϸpT7ϸpT7 iq2)HЊc|w$и> &WY&WYcS?ѳ/2f3ѳ/2ѳ/2޲-' ѯPե 3>q1h4!1h4 \1h4 1h4 1h4 Fj.L{Y INRk֨@u $tH> -$> -$> -$> -$]> -$?.j@ Er/& l#0t K  rүj2Ÿڳ@< ۄ\k>?C!C܄ =Sf܉h_ ܖ_~kܠ?pjܡZ-iLܡZ-i R?2]bSm 2]bSm I@d;SS?֋-9|Lᡒɿ>ѿؘR(>@s$5`p 㒏[$FxRL0s d˚ ( '9Bs'9B i '9Bj'9B?~h7 - ` -9`.f[ aAb<LnCVa ,LnCVa4Yr2R4uM -+"C? +"C? =i'})%=i'})irn _hz * >:•a:%%;Zj>bJ`^n_v9 odRodKododh  )g_4=t_4= (>Hd>HMv3=xSO%G ,O%G qO%G AO%Gj)F2ls6 ΍T ΍Tj2fe]ҍΖ aSOL902SOL902]ѷ ]ѷ ]ѷ Dv-l4w v-l4wRWA?iK* * TEdJU"4z& ,M% c n;sn; ,n; O垛%yibdSTnSfbO^ bO^ 1  $?mP!R"e)qMk i &Nj &N j~"U0R _io  ;` *( c  cvRU%RU%Rۍ+SZlY:+\s  ccT{i iQ} 3} s*L&!*LZ*LK*LP'Rg yn06L#NIL}נi+ \ נi+?Pr=^4cz ]z Rz z  z z Kn*M1,+S ])-J r )-J I*3Q]S *3bj*3b? *pD( *pD(*pD(*pD(Q*pD(*u?=d*N*;aMR+yira-Մ; .0Rk .0Rk.0Rk.0Rk.{ -.xW^..D0JnL& n1YX1?! 2?릢? 2?릢3q:+3q 4 I 4 Ib4 Ij4 I 4RE5xBKR {6P&N 6߀;*] ,7Ҳ Ts8$g 8)`R8^ߛ8ShSGv931B]Q:co"چ;G{M{<`z ^=OKo9=xM~ >{IQ?p͟Y3)N?U&]!?U&? !kB"S2 C%'CK,bL D݀_ E+E #EnhE:E:oE:+E:Z(F+`JFQF+`JFRGq7H?@S Ii=ljJYsx|JYsx JYsxjJYG =K^– jKAKCA @yL?NnLH`1N LP+2 LP+ LP"MVm,s#OΓ{a P3nP3n?Pj^8 Qm|9QߘE{&vRwvS V.S VSpSeTBI & TBI -TBI +UG>SUG>UG>Wh 1eXkrCy Xvg0 (Xvg0oXvg0tXvg0 Y`&6QΡY~686jYd׏ i Z;rI [ ZLCs [-Y\Wa]]NG7[]T5]$Q. ]$Q.^; *'^M$B_$DNr_$DNr ,g_$DNr b_$DNr_$DNr $_$DNr _$DNr e_1a`R16`R16 `R16Q `ֻ9a5V4ȯ?arXao>_b ao>_ am< jcV$jcV$tcQReG) 9 # eG) 9 eG) 9eHٸ2 fL f>v%*[gXI?hXMM $hٟ ci8 iiCiC?jqhjqhj'w&< ,jGY[ jd jdkji`xdjlQd]l(<̱sl.g@{slb'lblbLlbSlbK lblbQm^nn4N=o{߽<o{߽<o@B o<q@,q@,Rq@,-q@,Qq@,q@,q/q ,@Rq ,@Sq ,@re nr'Trۀ rۀ s O56/s?%ð|s?%ðt%INRuޜ͙t$uޜ͙ vS i vS wd\mw_DSCxU)QxK{xeTg5xeTg xzYtyJyz7]$RzFs? { CJ{(ÎS{ޖ[igS&{ޖ[ig{jL݂?{jL݂ "{jL݂ {jL݂jR{jL݂ J{jL݂ i|u ~jU s~jU?q5t'q5j q5 yțIZu IZuRQT!&D[ɴjUqC >LA#7TQwv$6(t?Tmn$ Tmn$ c'~?I ,$On: $On $Ont2pNm?2pNm 2pNm|/,E$j j<l $e/Se//NWj/NW. mz< hz< ?f9or|;}c;}c;}c|;? 'P 9$TvS$ݻ5hSKIm\r 6 6:D,0k}X!?\K \R q)i \ EP s EP EP G/? cM \%i l%i %iG^acsԀ,j& 71Z&DQR sDQR 1 Sb:Z\?{}'%{}'d{}'&3U (!v ?5 Uΰ 7i9<A]T A]TPƯ^sQbDR&bDR&jF(LL{>)~B /{  G q?gv쑹 ik&;QZNg SNg n穠~(?vҟqt6 Mw:?!b6ڠ?5ڠ ڠhY7²sjUY7²sIYS%֭v5S<D5]G KBBHZ; $E~aME~aME~aM߄ "H!y!yK !yP !yAC l貞slLn islLnjslLns LR4vM1$KWssReRe O.: O.: ,O.:sk &k &k & k & k &a ,Mtf*t85N $#NK%#NQ #N#Nd#NC#N#NR{Ga?Ga ߯߯"أ9RA #T Ć 81Kĥ͇MSĺKz(j6 va#as ajk tQ" " ɴG I̍` gsu aWN 4F!WN 4FDͦq`H A?54.j54.sL54. e#54. 54. $54.j54.={L΅&oj(ea c7Z -efef]y5wAZ AZ]AZAZҊ7nU0Yvx?vw2÷xW)8בQ^|a ,o} o}Ռ$/ 3լ| }Z891d?Z891djZ891dZ891d s֮ac;ֳ]pR1#xmw !j?%[GRWdA/g`?؈sԬ؈sԬa؏7r 3i%H $;/>>yP%E %Y?|q\mTm mSK{[8&bB  " g =j DNN {s  ,Ims.8GLk : 3+$$_Nk  c^ms_1j`Px AoEAo 2к 2к UQæ k  i  ( t a -CW=٥]{3V `k}$ k}_ g%.9kQ9v!ΞLYSۺn %,, * $z?4W~JqP O>4 #J! #0KF'?#nQ$a?$vj%g?'0t  ($ig}&)BvU)Bv)Bv*HS:?+Gcgf +*MsG +*MsG+½օ n,._?,Hb,Hb,j-@} +-*% -*% -*%-*%-ISb^.sr2.G$.0clm m.0clmt.^0)q?L"0)q?P 12}} 12}}1iz1~"XJ<W1~"XJ<L1~"XJ< 1_BS2>#d2 K3E}Y&93E}Y&93}K3^cz3^cz4iBt5a?52cs7!a~%78 j7DI7,}lbt8ͦ{ 9d[]9d[]+9NUU :7KSR; |; s;; ;; ;НDw<"< <"<<67>~>U%>_[ ->iLh#>g͡3??\0J8!AexAexB#.B#.B#.B;gC_LTC/k F:lFv녃G GlF!SHLGYH Js^H J ]H J<H Jh H JH9 H9 Iy eDI]o+ # JA'KJA'JOa:Xp Jw,K4ڄ- ,K@dǨN <L&͗f LlaSN_do kN_do ,MN_do  N_do N_do (Oc | PcآQdx *QGQ`w[QGQ`wR !ș iSlaSSVWџ`Wџ`XHXHY)~Z֭R mZƏjaZƏ["ke \lq$ ]T$EG ,]T$EG (]9Ge _1$~U _1z` `_Y`H$`jlLZ `jlLZ `jlLZ ao }Sao } ao }La֘YbMX ƬjezOeYoexO exO \exO ebjf?R7f?gɀ h="gh="g i ;вd i ;вQi ;вi ;вiӓIDiӓIj7{ jZ3NjhM4~jk~ jk~ +k-JNkqr+ kLJYhkLJYhkMZkMZ)l) *l/2*Uhl/2*U ,lk& ,lk&lk&lrӨm l~Ll~l~l~mw|QnpRn5OL]n5OYn5OSn5Oo]y@%co3C o3Cp.?]6 pai)5n8#rӈ, ir `r?r?r?r?sxC s~u2 ?v/ג7? y|UMj>4|UMj> |{.P|{.P|{.P}xMiWs}Àj~tH?HiQ~b]~ o*o* iVD(Z4K]6%`r Mjj CfC Lva*pW (*pW *9 c*9T4pt T4pT4pk@ѼoɊ ɊɊ|k}Uj$!UdA/5 4ץ b2 !oftQ@hRsBhRsB}*s U{jUp|,W oS_9-a?-a-a 1j=tƦPhnAa\Ͳ?\Ͳ $ 3A?3AsS`quKC9Z{tea1 WSd܊I,7NJݟk~T)SS ᒙ1hA ᒙ1hA+: : %th=] +Ň̔IŇ̔IR}yQ= a}yQ= r{ ,r{ $u;yjʘH_[x$ Zo!b.L ͔o͢J)sXX AC~ AC~ С893cL nkQl$l̤Zj ,l̤Zj (ՙ;]pX!GH N } ]k } ] FUsFU iُ\tBAT`RqYx^ϭ iSji%D i%D~~(~*9՞ )ƅrY<$"3 e3ܣD {%ARakz #g ~:a> &^?{AZFR@6g C:X餚L- e ߹R /*l6?ꃴvK? ꃴvK i< K< [   ,XJ \ XJ \ !jBhH \!jBhH D D=KL冢E_ 冢E_jδkt$j E" ee8)e <.X<.X x|r )C.))))Q T"6tkSIp |v ;) cX'^ʁ|y|2jn(jn(jRn(j嚖O $嚖OlOY#@я9Qf9Qf%&}9}io L_nL_nTN G X;]Ǽ: o\b1V3f ~  s, 8s, a;qA/ #p0 lTLR=g[erlȯtJؗ)`SR~t2LY 2LY ;@$XV G sRN) sRN) R   =}&2 PiE + :f :f :fPZ( j?y? eO9\r{nC,p-=gTVH6=gTVH=gTVHT&iTP [Wt=4lRgM F F UטQU&Ghd 5' dU}KdU}KdU}(J 6{ ad #~y@΋)Ԅ%%=? %%= iVy4tB*K"{|\U?"{|\U9"T%e?"]#$s@t$ it%]sUCj%]sUC %]sUC?%]sUC &r0ÅI s&d {R &d {:&d {&d {Q&d {Y'rAK'rAL) G͟*v,s*v,t*}`m*ۅS+!,d0>N,v@@Y4,v@@Yj,v@@Y (-W?.7.5j/{5wF b/Cɿ?</Cɿ?/zс/(e:t00h b#}N1y\.R1)"|1Ѓo2RA|H"2~ԐFf?3" rw 45w,84fX^ad4lʓ_s5H°!Y?5YK5\hH% $5ZrDM5Zr5ٜRd5'6J#ؒR8Ìkk95!j9-dv:J5n:2&č :2&č:3GnD;cKBt0;UyO?>z (? ?@$ {|@$ {9@f8?A@]Bٟ} jC8(sUCVtJ >V JEҘjJEҘYJGi4JGi4J ˰ KiNv cOU6r OHvOHfOH$OHOwQ Q4l /AQ4l /LQ~V%SXJ~"1SXJ~"TݾTD#: /TD#: Ul> U=)}7tAU=)}7+UN$v Ubs<VY=nUVmX nW\߹WZ%STSWWMؤSX*n XRtN Xhp:+ cX/}5XϰsJ XlpЗXlpЗfXlpЗYDY HFY HFCYfys Yfy Yfy YfyhYǔ +>Yǔ +;Yǔ +Z;5EZ;T9 [ؠmQB \WB_k]*A]g) lP]' ]'^P M=^P M^P M^P M^C8qXwQ^iF_{ `4]D`4]DR+`4]D`V`j a&]a:6LJa<6|a<6 iahUv #cKHtcNDaRIcNDa$d6Y dW*dmtdܾ5 edVe|:W1e|:W1e;fdbf vf v igFË gq E gq ELgq ESh^jSah^jSh/Wywh/Wywjjŋ a!jŋ altjlh%nOnOo]*Z![o*tDzpj j p_J p_J iqTAƩ7]q52q52r(YrjQrjQrt~":t~"R"t~"tgstgYuA؁?`v?YLtv"[) vR#Jva %v:C vGG! w[,OSw;Lw;Kx9%xA(ybjKz`4v{My (|fL*v}R)"~<= "ukmL ,Ig4 @m?e " tO7e~ w Vin1 cY͗֞?l܋ ) H{1I`## \b{8JOֱ \JOֱI 6 ֈ ֈ / /|/RU<` nTSEc (SEc SEcYw;/18L K] ] 2GiUEPGiUEZBZ9J/U?61;k<{#y~Q`X;FbebeSbeO &FO &FQs %(%(%(]%B}#?B}# B}#jb# ҵ8jv!F s '=?Y;`Y;`Y;`Q%H_X (%H_X %H_X $֙?j ֙?j _T9,د-I زs ؽ~Za)5ܶA` RաRա c ,f ގFp( R{{$TKU`["Q[#\EȟHj ⫒?]&R ⰑO"X4G( 90DF Y2>e[w >e[w >e[w|>e[w>e[w>e[w sʮʮ\<>V!SjK^ "U 1^ "U P^ "Ut^ "U ^ "U \ Xdd3#R#H6tJMӡ2-ӡ2-ӡ2-ӡ2-K Ppv ó}2z A(# +8#Kz؀tyz؀k+z؀b(z؀ z3%_6;%_6;LAKZR c, c c7)2$ c[ q WY\ssKo=Li@U j5[0 h'N g,-E3#~Z"R"";1<;1;1@Ҹ $?HPy`PyR0iʎ0iʎjԇX umoRW >(Th l cASM(RaL(?aL( +Quo^ Quo^jJ .jJ mjJE,Bs E,Bs KpPpN]Mi,j h75d鏸dje ,jeje (je IO`z#ScJAjfN  Z  $DF : Rd # 'Iw  Y~V Ђt  *Z$% *Z$%Y L'/ΓΓ m)ΓΓ: ΓΓ0)t0)b9$S? 51 "s7nI \D˦>K Q! ~L¬H^3 H^30J2 0J2.H$).H$) e<1xAW>6W>6Hf #ʇ 9jn 9jn 9jn (aP{N $qIR&k ) x) U)s) `H|d\ l%C sf{aZy ZyZy \Zyhᝲf )ᝲf ?x.u :g~ 8DŚ!gU}DL ""=(J#v~ $N %7 &d '#mܣ- '#mܣ (Sa:(>,F+? *HAX9Q,Gov ,Go ,Q-nK-(Z.Se!.Se0t5l+1!6@2S]Q 2S]Q 2S]Q_2Lh2\eJTR3hv3ԋ\4Y r7@ ^8I,Z9B;9+Y:V?@:pr \:pr i :pr:pr|;TDC !# ^v># ^Y># ^s3>7Z~?v^E?.#nC?ES̘ ( ?ES̘ @@,@@,@~.?AHv2LdAjnSBd7+Bկ9C>sC>D4 BsD]Jn cDÂtE;RFYttJGCT7,r GCT7,r#G-Gu\ HN5;Ho|I &I KI RJGI # JGI JhjJYZK&£^  KlKlLݾ!s MsRMs#MsMsNINIsNǵKO7DOH8bsOf2l7Of2l P?T|PjP rl=QEDQ<`f*QeNS&h S*$S//KES//K!S//K]S//KRS//KSF3 =]U&#?< ^U&#?< "V u{VONV3H[WYbjWYb? WYb (W5gW5gW5g W5gWO\h[ W[VxY& WRLȥNX G Y qb[ c [%s\a ʺ? \a ʺ:\0^R#]8L ]T~ j]T~ j]1h]1hs]1hj]0ɬ (]0ɬ ^|*K^Pu^Pu ^i~K?^ћ^ћ_QE _A"S`W^F`qEcMaaCj's aRc bQK bQK]bQKLbD 9bD D bD bD KdS;d[Ćkd[ĆteY fp]˺ffG3vfA!d:hT! h5'iȣ iȣti& 6 iUaiUai= *i= jY-7QkYm?@k-Cީ%k-Cީm;4Qm;4 m;4m1rrkSIwr)(|4rƶbs W]s W]s;z?sP<j sP<t%< %t]dBusuP+u'u uKv3yeRv3yev6v kwbޛCN"wbޛCx(fx( -x9鉢?y }z 5&[zS/[ }Y~l ~S?4 ~a&`~g+ ai5<?b#b80|Rb#b80|3b#b80|b#b80|HS \HSjW&eNt>| ct>|? E"E $ % ij ܆fs.܆fs.NMNMRR!sR бSPK [7a?K?$|vm6KQ8F LlBLlBq= q=?ou $Oq^ tQ =ӋYcmφͫ'q Qͫ'q- {m BXp]BXp! / H/"3! prhlYQ+C_@S_@SDP"/ @}D]'֑  _ a> 9I(&DI(&RWAΙ u a W6. E_9 R"LKac"LKL%"LKi} oG*i} oGtU $tU $G]ddP_5 je3je3ÂĔy6UfÂĔy6ÂĔy6EÂĔy65rϛDD8 DD8 Ą@čU Ē? y Ū`>Ū`N Ū`"x`}v \H[h? dRP4\Rɫ(|ɫ(ۈ: ۈ:/shyvd \ʶ, 1sQ?ˉHt ]ӆN̾wѤ| 2RS: ``L \ \sni ni vf( `ӂA[ Ӊm$ (Ӊm$ |Ӱ ǗR5 {f2Լ5  Լ5  hԼ5  (s? i6hl2baOw;JR4 a JR4,6Q7RO]/:EK0<٬Z=$4  zlEk3>lE4(k54(k 4(k {- 2R! R!R!P_4GtGhdb Q "PkOm]R+*( #6bH0 ue # S",7Y1#?,Z`n eԖVQTkԖVQTsԖVQT-)>zRg |f1tFʢ|si#&a;2/8 2/82/8;*M# RgV Vl ͌,K 1u +jC$sp ]Ma- s}Qr # NN0'%-6 ߛh1i?WW!.HiY? < Tx&DlZ@y?"9,s 1," $1," Ҥ"x$Ҥ"xEҤ"xL Kw ^`"N i js v n? Mw Mw 7 7K 7 7 <ΎRmm8i?Hœ8t2bV2 ( 22Y9B@av\(%sblKp{OVNQ?  ~h) ~h) v63.^$ .^$Q,E?;G|S;G|)hs4ZF | ԣ_Lԣ_ ԣ_ ZWZWB}ub $0/R  y r?jr??5Juv3c/03 ZzQ3 ZzNNP%0[_v 8"6+Qq?qq sq ȅ9hP`rdY &c (>' $'''( '(.W )hD9/Ŋ )a<t*SY*bMA0 *f*f9*f*f ,m}R-/]=# .Q] ].?*hSH.?*hS/&Y-8 /B)Y0<ϛ0<ϛR2ql)сG 2ט^L3T~E 49& 49&94l?46w~#;5U 9rR5U 9r6K/0A s7u!k72v\R72v\89^7oa8g+&~ \9({ e;_?;Hŀ *FQ3(|>_Y) >_Y) >DPP?'?0?0 @٥SAHv) jAHv)j-Bn4Bn4jBn4 D"L5s1D"L5tD+n6 D~EN[ EEؖÈ a Fn IF0) $Gz G='Hv (H@ I'~"|e.^fBbfpj f.4TNf.4Tf.4Tfh6 k *hPv>4shVhb-Hhl?im߳i~g{iLAii (ju!j0$s l˨u clhzmߛWmpn$rWAs8FZKs8FZu < v]~>_ wBwr wrw[Ew㫤x:x;xy+8CRy2褉f yg=LyᲇzS^ c&ģ ,;( (Ƴ'S4Wt4W4WkGҽGҽ a䱁[F[F 0IH[A_ :õt.A #+Lt+L (;) G;fQS G;fQS rd.ozSK@8.4<bvS bvK1 1| 1:19ܵ  (eH/Tb 1/Tb zkA zkAzkA $>UӮ(>UӮPrWs(0 9c::RvatyKyKDK>#uueK>#uue h|H|ArJNvt)vt vt|vts vtvt ivtIȗ4 \g)(|/Qj7j %:,:H/?26G-4 G-44q? e4q? Y@[''?cM_yW Ύt Qm%S oy oy?tEMZ4soUȍ0 oUȍ0 oUȍ0x]vel[ Dst. \`2 F~T~TC|kC|k f7_5Z(RYW #&YW 0YW aoYW YW (>?r jLC+ v.V{| ӟ . ӟ ӟ u0cjvS=  $\{_? )$Vj>S  !E?Sg2N N3 $5sWR˼mN Υ5 (μAIzb μAIzbϱJ$ϱJN,mB?BN}HbQyd bQy i6^9cь!ч JօFJօdCS"GO S"GO 2)~ zm #)"pot"po iS"po ]BS.]BY]BQ]BLr6$:L׎KBD׎KB ׎KB+?3 +?3a8k &@,TDG ِMP/ ِMP/|٤[l?_F?\c\c \ړ\l6&Sڸ}>ۚ[JX"sݮK{O{O{O&pGߤ߲z u{5ruw)S{)w_ ${)w_ ,?3vYX1۵/j  }Z jF6GP i/!K /!F6RF6RF6R^+ ( ^+j ^+ ^+؈ \nzj nz nz nz i/$lT #%8-;|[%8-; :%8-; i?F0O ,NjX jXjXzk/ zk/ aLa aS֌H g֌Hv,BO'? kU`r i+գyV?4Y :^F' 0e5D#[ (pPz+t x iak/ 0Q%6W)1 M Kk)74dRxŃ-gN Y> cs$ -s$ \s$? s$ "<+Z B1 (a+8vgSN; DCNDC }s Ly? o~9 tb( kK  '8 '8 '8 l,: z#{C{CksU sl]Bl]B\9#ljv(TfC9$djfthtfthtjftht:)֏K@!#Z ךNPI Lf6 Lb?ָ?!3RsVh49 J}v:@$ #Z6& Z6&P>3RJ>v?njbӝdRcԌ zmkAzm=zmzms\\\到N^到N^!g%[$!g%!g%Y!+! !Q"$f7 "\,ÎR"\,Î"l7hx /":1Ps#ا% )>%?6M#u'jcy?\(psN(qOEcz({Oq (. (.)ey)m* &j**O{V*StY?*StY i*zkt,Vu ,$q; -2Y.&%U.*k.*k .*kL />.rR/n}$s/ /n}$s0xsؠ{ 05._j0ć5F a0ć5F 0ć5F? 072:vų;*|2R)*? 2tIjmv2٢U:( ,4s_T3d4s_T3566,<$6,<$ 6je (6ļ? [+7 7u 9]&t:/R :/;Xd;%fs ;A (1;A;A;A ;A;A <.\`-L!Q=ռ >_d/ !P>_d/ !>_d/ !>2ѻ?2; &?Qɳ0?vN?-KаK ?E- " ?(i- a?(i-s@4u@h @:v^ @U@Ut@WhR@ƶR?<@8CZCe{ iC̄gdD1qnKD1qnDI XDUakD{D?k D?ksFua $BFua?GG[v iG[v HgHgHgQJ73K: \K;NkvKSt.7$L1JjLBb/6NNE?NIOMP XHsP XH Pt[ u (P0}5P[R+fJR17B#vT_pO LT_pORT_pO?U+='EaU+='EadU+='EaU+='EaUд&'5U;YBUV (U7`PVN?*VE8f7#XW&)XW&)eX =|Yd1\ Y[|ZGu0YZGu0Y Z`DRZ"Mm lZ"Mm[$ap a[$ap?\t ,]/r7  ^*wR^Q7 $P^Q7!^Q7 ,^Q7 _0h' M`>(9 `Ê)d`=́_]T`=́_`=́_v`=́_d`=́_a`=́_`=́_b Mj $cWUdxyeSc Bf'{bT fp25 Hfp25fp25 hWʈ h"] h迢 jvhϔ2hϔ2K i$1ntiT8?i.i j7(pnY kE5GskE5G kE5G ,nOyx=qz\y!qz\yqf+qf+rĤ | r5 rr4ds+!C&s+!K"s+!ds+!QsF` YtPhu^HvDDIvDDITvDDIAvDDI@va vH ,x1{q cyx{F>{&ui{e߁X?{x {t U }lCh}wua}  F~Zte?~g ~/0=`} ji*-h G-K]G-KU֜0|pTa) $bXI (OF \BOeA{ig lv8R:"] bX '?!m?(ju,3p5yl]~) $lflK DB 5|a eQԫ m$Pzq9 >Ɇ.Y+Ɇ.YQ(Ɇ.YɆ.Yggq]ggqQu, Я ( Я $ke}?{#*! (  > e?j> e? n֔vL~=E iL~=E?qݩ J k , J kzq ע @0r*NN"R&Z N"R&S P R 4=y8'2 HqD5 $KC̟KC̟ 0{80{8 l|l JmTrJmTrQ׹׹t h j{m!?Gz&?? Gz&? Gz&? VZ tҬUUҬU Kn Xx&?3vR Mc Ri"Se)jwe)jw|]> ,\[ d ddddIwIu~ktXNoJ.D[TuNTuQTuTu6 7B^}[p}gPK .^bP?Kd H]0pDp yF[pMlX1so+>pdmO" 2u ,C`R $Cز l,U? %Wh |^ ,sf iJ a \h!S? P*dtjP*dtG ao2^ \cB;O9Q --H--W]G,kr1 01p e]1e]1DGl:?l/C{(Q ? g ? g y `:s FY/SqR'9xȂ9 '9xȂ a'9xȂM=Vzs( -@TX *`w}vq `w}vqN*t6 #geyXYT_K,IV vw5_vw5Dvw5Rq} (|d}C%!. SP| 5ھA*b<R/ ,Kr ]@WK/Qv /Qvt/Qv iX^9 G~GRg eUm{ #`tR+yws] bAEbRh,?h, @O6D *p 5f0 /| /|/| P=Ft|:̢j|:̢? _Jn_Jn ,_Jns_Jn _Jn L (^L (^9#x ssT F]@1mû?Jí!,t b @9_, ά7AY r4 r4] 4a9  LjJcC LjJcC ͓? /]; s?7[8#VފZVފmg> ~T@R{D 浧ws浧w XaQC XaQRұ޶P7cq-i̝a #gKU4inVj bu/% ?)I )I)I)ItAGn q qS4E枤+ DckSnRckSn +ckSnckSnL^h0t tִ c tִ # S%H? S%H a laZK!%[V! !S! j"]t"z<~x"z<~x "^\|-#?l"j #?l" i#?l" $9\hJg &#1 &#1' R_ ,(KrL )#W )l ^*5v*|0j*|0 +Z +sg],Yd -2v-w - G-KC-ڳ .'x ny /q/{d/d /wy9?/$/#40=0h ?1: i1: -1: 1: 1: 13GYTh49pov4Sj76t:%D8_GgAL (:F=*F[:F=*FQ;W F' w( #>+W?bK^?鵲keJ@%ća@Ih0@~t @r@rAYOEBl` ,Bzzw , Bzzw $ Bg\r-RBХDF D>D>DtDtE ]$ME ]$E ]$dE ]$$F?:aZFt;CGUAGUAGUAGUAH"H> H>Zx=H>Zx H>ZxH #H#_Q s I#FZsJ "J "4JS"1CLI]3W TL-ȯhL-ȯL콕؜L콕؜bN-R,5B -N-R,5B g Nw͗F ,Og75SP\ :P\ !P\ SP\ P\ P\ LSq<SqSqS{bSb#RSckS SckY SckK T9}3STKH~T! To1 !V&W8W8WS,WS, WTzW0@W0@ $X4W~X{ ^YF| YF|YF|Y}#>J YxYwQZ+6 \Z[V>XZ=Oh Z煤[ 5x \\\\+j i\z8>\ɖ{C[w]fy^_ :_|i Fj(_|i F?_=!_=_ԕL`amS0a`amS0Q`E a4MrDcbqRHdA^ dCS?d&f dʡ"@\ sdʡ"@\ \ dN e"te k. eKc_eYG~K!eYG~eYG~e5q $ eoG g*^g2 rg2tg2 g2 (hiVZhR~ \iZlbiG2jK)"з sj}u <k4F kTwkEhRm34f-gm> m>Ym>jm> m> m>tmW V&mW VmW VmW VmW V$n?0?n x,nFn&V4 og,kp+B̝j%p+B̝?q$zT\ +q$zT\ -s%'=|sPMi8%sE ,tBxƔRt J iu-8u v>rU v>rU iv>rU ve}u,vl1 w$Lw$L $w$L w$L w$L , x)/(|9yO5ړ ,lyO5ړjgyO5ړ6yO5ړ ypLzt{- |d}|Cf=  }|Cf=+}"/0 }"/0? }# W&}# W&A}# W&Z}# W&K}# W&}# W&]1edY1ed zy sUzy ~ zy \XJtejȽ ejȽKZB  R^+ j^+ ?^+  R  Rًeg \T/ ,Lkz-/$Lkz-/Lkz-/-yu  ᇲR&o *7 _4 # o_CJs<`恜 .՜jii?iijזD8k זD8k a -qƽv5SP= j$2ްT[ _ӂ "j_ "j"j`: \s L \s BR F/7S wNzK>wNz wNzRwNzwNzQ)@Ϭ kgUYk1R J i1R Jtߢo ߢo &sB&sB[dnvx ! nL4@j3k36 b7z o/Spo/o/ĬF* 3mRņtK` # q?̽eH *hMS,MS,"PpRw뺨Ԑ*~>sN J|9 <5c7 s{Q*vqShkVB]tt.b .bR.b\qy K$ K$ ,~NFXFX?FXjj݂ML-$DMWGDMW'DMW DMWDMWƁ?y 0Ɓ?y $ Ɓ?y aƁ?y ,Ɓ?ysƁ?yjIEL5(D@j\w +)ss!%)ss!k It{|L lS?]L`b #zZ¾SzZ¾zZ¾L1A-Qt'.L.H0RDY?=*?=* FEK? =I&BqK/f  ~j~?qESJſF[S0v vm vϽ*Nab@kgt l[csHm5R 9f?5#Ժ}3QKmo <۪? Cv !BqyK8^?8^ (8^ gSv y_% $g` z0ɻ@ `a3y zZi`4LG<[ TWER g*Z:f4W^(K5Z5vc) ~ -a4o cS%v $S%vĬ E[7O[7K [7F[7@,,%*h *t232vG)S y4{ ǥ=[ #UJ&̜ Y/hN'Y/hq-?}k] ˬ7T IyyRIyyQ h+~g $ Vݑtm 1J8*ӆ<ҥjub10utWUWUԥ2vԿ~. '5n '5nA E ZE Ջtj2?֖8S֖8S ֖8Sjֱ] (־xa730 ɯ I S u8@VÏ9@VÏ9Q盉haěgc_Z?$Z? Z?s6M }06&Qt41P*> m  m % .: ~./Ywns] sv3!*A m" <7? T K_ K_$ IB L>K5 L>D# L> L> {>C  {>C? 2Xz ii #-=  Dc @st ױ M2ϑK M2ϑS[g?C s x>Gjt8AQ 'u. \x׃e 4Eo aY7CY7Y7:5˂|^aOYve^aOYvej^aOYve^aOYveh %Y  7iTˆ |+Ar;=%q6!fGOātR "G BPkBP ;C׋&s䡽.T9= (r r g)s<P$K_{??!)zR?,F?,?|i @N  ASִ;BF |Bv8BF |B BnBnLBnSB}eO+CS1o D ʨsD=U/ D=U/?D=U/ D=U/ iFh !C FrT a "GD:GaP 8NGs&o Gs&o Gd9MKH#B3_ I)]J0'JqIJG_ (Ji)f]4J\)JT?J16vKxC;K$" !K̭K̭K̭D KC6L )a L )atL )a L~ۙ,8DL0 =LąvAL]ޙ7 M'>kM5N `f ,N< OY??jOt Oht3 Rb pjRnޟYRnޟ#R_lR_lR_lYR_ljR_lR_l7R_l S^6?SYYTgj Tgj ?T T T(;$T(;#UyŘ U;U;VSE!aVXZMZuj,^B["E \>)f0]T˓_z]? l]? m] ,^]֘S _K__dO_>" `Z@h`  a>2#LaBm ?aQ4JUaQ4J ,aQ4JaQ4J cbd #bd b3D2b3D2Jb3D2$b3D2bt)btc0N?cd/ d 2djP djP e/#e/#Sg =$tg x; g ihu x i.ԙhvi]xMi sSiʊ l3OVl#j nl#j lqm6\bmb oRՄ oRՄ?o3^CQo,JW|p:Wx0q- r1osm.)_Nes؇ ssN t}? u}#p u}#p u%gvf-nW $vusvᖏ[-w =Ę38 w =Ę38w qP+?y XW" y42eS; ,z}[|5j~X> ,,P , ,P ,P a,P $Hn?[K ,7Z.{4`DjscO7cO7cO7cO7Rn| YSMZ SMZ SMZ !k0Ă̹Y菗 (菗s菗t U? ,h$N~8 m m+1N^0͎( fYᴰD<L)j ΍ cJTt b s N> 4s0'4s0fXR>kORd5Y4KW}N?KW}{*VQYbB$sbB$k`< Ⱥ&De"{te"{ke"{ +7, ged4̖ Êy Êy d*lM!EʴbS} ?9 maߑJ5 &<ݠ #R#RrL 2t 2txb:xb:LD|)'%s 3(%2 $߀Nʩ 1%᫥l Xͨ \*E]Hq  DR We\ UCNJ|T>&`kb|d1 kb|d1F#%F# ,8IbPR.$!yN#!yɿ/gsR|x@sQ[; go aD? DD ,#U]h,$@Rq,$@,$@,$@a ,$@L,$@,$@],$@Ӿ'K1 (1,R , SjzC sʸSsʸG!OWeU$5bd {']'dr z'b$@F!ƾO`" s[B a l0n jzh*>zSh*>zLڌYj 2iNT.Z]ST.Z]ۖt 7t U)5 HzP i~!7l8s~!7l8 iWR 78L dpW nt*5s`G%߫B {tc (ᙊ@;$|ᙊ@;$ἻʹbS)-1!)-1Q )-1Lv -Q&-Q?[%m4AYQ"Q"M{ M{ M{ pGpG 楟 ftm ,f|م-6696 aAo"aAo aAo a-aAoaAobaAo aAo eaAotr_K0 *r_K0G Y4 5oegdcXg L.&NkO57itxQYH X{3a$} $}:2Y*ǭ.VR#==uN(b1.hb1.sY I 05J)O 5J)O YWO #p{)ܼ`W sܼ`W \Z9*Fg v= #N$&6VjCM1yNۚ #^vN\bbS bbS cmgT8ti.!&ti.!!fB2jiH$ꈌ  ťI=NJDz߾ ԒJf< 6v= GȕGȕKHe`.~yܬ"~yܬR~yܬp' p'ʙΜ֬~?QRQSQ?|8٠O?s_ U Y^ ºP CJ a] ] `G$?!\ 9gLKdf| #Dgf| #f| #f| #f| #f| #- 'K? 'K i x: YS Um?v?/?4^ mCR9[ҙ s?;6g ?;6gN:] :] zkܺ2|t2|t iӭc`v3ӭc` Rꋵ (SL& $*SL& SL& .T 3[5Ai  $ Yj C=r C=r #ORRsORRh q1M lv iܫ  iܫKOM|OM|KT4Mջ qz C*J #C CCC>{ҝ )M s(r s(r MyvTq ._  _ "O !Y" "b` "yG "@N#M(ХR#M(Х#Vۻ$p $'e.?%EH $9%EH %EHs%EHh%EH %EH%EH ^%?[+&cD *&} e'tkȳ 'tkȳ(ep(J (* "@(w')l1r)l17)l1]*)l1)l1Z )l1)-m`d+F4+SRq+S +zI+zI+zIP+zI+usX6+usX6+usX6,sJ?,]H ,]H,]H-2 -N@Ȳ-3-Y[^ (.jpl .jpl.U(' 03rC 03rC1eKU2'73h3DGR3DGj3DG 3DGQ4"O,=4"O,04"O,R4"O,5My]5w -6 ^ 6!#g6!#g 6!#gd6ʂ8)K7ɏ܇ m8ې8e4j 8|K9:\;& k%9G>1X;}C,;k#;V MtLyA3>5 ?ך 1s?c< l?h_<?|t s?R @9JO!o (@=E AGAGAi(ybAi(yb ,Ai(yb Ai(yb $B otDM "DyADyAsDںB3~ D< iD< \ F $Z* Z*Z]Zl Zl [(jWN [NNԚh [NNԚ [NNԚ [ʔ5_w]_w]h_H - ` :` :bʄC c( 6c/.SMG?dse@ ePQG eFZeFZLeFZeNHG_jhe5N fz{m&Kf/)P fϸ袼jgaTgaTRgg.JYg"vMg"vMg"vMg"vMgE 0a ,BgE 0ash!M 8li_"j@ޕtkD7U glx0 lx0 m0) #qm0) c m\ #nl'jpd†^ q8&Xy qFps qFp (qFprjqrv8͸ttX@hrvuFE uFEsvҨWa vҨWvҨWvҨWSvn3Yvn3XwĮ]RdwĮ]Rẘhxޤz ~yg ?z\ R{[Cks Z{[Cks {x1ŘL|nU|<}A|<}A|dd$|" $|" (}a,#Fs}a,#F }`~$T &;sMxV-Z> xV-Z>jRZѕ[4Tw} ,kkkR9>q MJ\ MJ\ :jtiL Pà  Pà 6j| ?p!j .(s*7?.(s*7VvAVvAVvA ,F,CQ)Q)]Q), o rN" $N Y |K Y |S B k%vW 7ҙ ( 7ҙH7bH7bעC;ߑUdY?UZrR2P}2P}2|6-e_ Uw"Uw"RUw"_ɯ(+/"XQ" XQ" *SuexQQ 1 .1 .S_d{cgu{cguK{cguS{cguLwQӉXM|Q*y%sw%swTN( c@*@*WfB WfB (dWfBj2WfB WfB WfBs<2<S<< < < <L{#I 7%mT1$ %mT1#;FU iFȖiFȖi]FȖiFȖiZK- W3 JY3H,B= %(,( tpIJ5?`N5?`N 5?`N n}.e $I}.ehJ}.es }.e }.e}.e <}.ej}.e (}.e }.evx.V> uOd Ϛw@ e:N  e:N  e:N  <|g *"|g|g]|g :5#8]1o|յյյ TMHäN&6?!*}pj !s l !AeR"ZD[: $"ZD[:j")qN8h "ޫsv#Z QR#Z Q #ԋ#$J@쬗%|\ɐ%+ *%}W%}W %}W&9y1 &&r|k 'e"Q (>:/ (>:/ (>:/ (>:/j(^Q (0P (0P)= *xomu*r<  +3@c~~+Y<+ű1#+.f+8=? ,<% ,E֨ -,Mj.|>c].}SlC0Sjj r3I?4IpL #4akFb56E!57)) ,5h?WZd96eCw2 7T7E&8~:1ăgrK:4| =7t= $ >MĎU.>MĎU>MĎU>MĎU>MĎU?#Djt?EIhD?<77AeB<vAKԞ C "B bGtB bG B°W(B°W(KB°W(B°W(FCG+ERBE$+E#F-GPdH]HR5|HR5|HkjW[ H=3jH{uj L|j ]ʙjLߟ LߟM ]rfJMS` M\$MQ4~-MQ4~ MQ4~ i MQ4~? M|2pN5k׶N5k׶O6{.R aOpC < OpC < OpC < PNĘP\vaP\vaP{$RRdWdRdWdRdWd$SR®vTw'MsURHV ~=V3Dsi bV3DsibVgC0j?WbūY ybYyXZ zfLsZӢEbZZ[9na0R $[y* >\<&]kE ]kE]^{1^V3* ^C_)1 a_0_@t_@ (`( `Y~bP \`Y~bP `)0]$`)0]`)0]K `>BPʻ`J*7 a ~c dar罎eQn eUQ״f Qf gd7g%kgl++ &gl # h^CFF hn2&Rh/Vi)c@9NCjq#4jjK'J !lE#4ll"h?m6;m{a:m[_/ m򻣳 nFjí nݶyV n7NnY #n⟺m^vnol_Ko>K&Lp1+A ir/NtrPVP r^7!?r^7! ls$^τtvuuڅ auSIh& u(Xj u(Xu(X uB1v<l \#v gN w| xOL2xOZyETPy'~C{-`$N ${Z>b|bae r| }N>| }| }|.U}Էl: c~Fn Q tm9+>9+> Jc!Bz |Ӻtt?`Ӻtt 'Ӻtt Ӻtt Ӻtt $ҕ)Z}maLma mama%Նb$e݉#kj]čd9d]čd9$K*_MaPѐwo a_!cj xn}>Nn}>Nn}>NoG*bc w$8 ({k_Uw wt0ww-/]d[ȈpsR폴?]폴 ,֩? e $T 8y~c&rT9 eI kfjM NJ'sJ' h/1 $6/G}0)G}0 G}0zcxmvSNg1N&,X ,rA*Lنn  /[O7Cj[nS_Ѥ ® cr S ᛼x  [* [ [ [Qrw01 Pmz5 `0] gxbJ擳BO`u%ڵMȲ MȲ :Ac #VwwVwwVwwdkrC$* C$*(ghOc4&}SR9-\ c9-\4iC{k A>] ZA>] S<~Ȥl<~Ȥh<~Ȥ <~ȤR<"?2:`2:` 2:`<=w]V@lI+_ \lI+_ lI+_t-9S? s y㝛L V;Z{3LLs1uA xu{+D韎LgC* e * e $* e , * e G B-]^ 8ks 7_wr wYpQ8RP0ie? bh3 bh3[ bh3D bh3 -O$U)]ՔW  _  _jjF]sFڲ dV sdV ^}.A7 \u}.A7jY}.A7 ,OSH0 0GL1v0 &+ s6-k>6-kC6-k b ߑS'm.+ SZ|] af??|Ah ?|A ?|As?|A o-4 {~CFļ), İ1I>5L0tpL0 L0kqafuWLm0 Lm0 A w.,F|()v1F|()͹~tuWxJgCz#^?2* 2*2*Svu 5XCUj jP+nPҺ+m6 Ѡ~;S sԵz/\ 3o9PJo׻] M! S )I)-)D)Nr|nwS8t-C|,,>CIL L tS0|i;\|i;\ޢM @EF. # 㦲՟TjV#ye ,Ӱ( d٪[z?֯׀I"} (Ms ( MsG?t S!|sYq Sp~L RꟜSn $9 j i;jHi;jddSdd 2 n[9 n[ + n[ c n[ <ǀn gZN=  X7+H.h??iͶiͶlOPR̯ ?wS]FfNo2IIo2IIo2IIݼ40Gf zJ$8%$)t ,q7Q ryȬMryȬ^s H[ wi.+{ i.+ \EuyEu HEu bjwH XgJXgJRo׼j- iii #xQXQ#xQXK#xQX #xQX#xQX~zSZ~zSG-k-G-k G-kQG-k=Z? =ZC:bj!q $Ƨ#a?Rv88l&f MY a^x'^xD ^xj RM cD}6 $!  OPQ ᗦL ᗦL h h] m5 heLR 6¬ v v Ls-S-$m-TQui'N(u lFwe& $pKV :<":<RGQn !nO Ѹc S SXP XP ~XKh60!+^ h60!+^|h60!+^ ݺwu$ $mu^ HSmu^ Hmu^ HLFmu^ H$%mu^ H \XK \XR \XCZY Sj?D2:2Fq30pO NTZr?Rj b$L#O)  \a 2x! B%-6lwK-6lwf"rp a"rp i J`rY J`r8 J$% J$Z"=l3o7v:"=l3o7j'"=l3o7#4;[#6Y#=!##M9! $`h&s$ jN \$S$]0x$`1g/NQ%]&5yI%)  %҂#w&JQb'_xeY (mB (mB *UL| +Dd~ $+"l&/ ,CBa,CB ,j- +V $-(L)ɳ~Y-0}` (-x+p -ۧXht-ۧXh -ۧXhs;-ۧXhY. 2i+ .q9.wA)a .wA)a.wA)a /Gx 8/9@' \/9@' c/9@' (/nq 0<%0v5 0 0e>03I03I ,1o1eVU`E5j1n@J?2F9c 3 a2Kqt_ 4yrY4yr 4#zֶ ,4v~rb5&@ 5&@ 7U/cj?7|3V8 - #8b95s9?y s9/}b9/}b9P? 92F<U92F<:B'UL \;j$)];j$)75 !>{ s?&ܔ ?/$f?/$f?/$f?O?O ?O@ ݐ=@vK90Ah3#Ah3# ,Ah3#Ah3# Ah3#sAȪ̵ PA$.vGA$.vG B[~ B>7+C3y]bC3y] C3y] aCD\zC F GGrr>G] HwmsH9( Iq.CI\KI2~K^} $Ln LWSyLWSyML Nh{S:Nh{SNh{SPïAvQv  Qv Qv  Qv  mQ A+{QoEftR 6? R ~-j)R ~- iR ~-Sg922muSz% "VϸW"bW{@W{@:XU4 X|M Y|K`(s Y|K`( Z?P!e Z?P!eQZZ2 ZW*ZM#ɂ!.ZM#ɂ!Z鴽(' [EWq i[{*\T[ \^۩s\ta@j a@ aa aü/Z a4'-b~Eb}l۷Rb1[!Nb1[!b1[!RcH(ve |RYmh^R h^i̚wk!khBLk9,dckNkkM \lkea?m)6nKs7xnt3;nt3; ,pkn?pkn (psjq q?KnJ}vrR] $rR] s*IF[s*IFRsmYO[ tj[At9fj8 u@RDu@`u@tu߭au߭av5IFv;kwDRwaHn9waHnwaHn$waHnwaHnwaHnwaHnKw$ #x/;Rx~a ,xG_ xG_Y{$-'k} ˆz } Xv } Xv} Xv}HǞ|R }Ja}JaR~L7 I~L7j~i`؏~i`؏~i`؏ ~i`؏F>3M4L"38T8TL9[8?I"vN%:4P4P Nw3 3dm , dm`Mh $]J:X& "}rB?K TA3?A3 ^v@4r86%F_=?c.sc.s 9c.s azi4?,KmU!,Km&a@`65Omjϣ(\YXo}ax{ emv, '>jn`mq n`mqYzJ?zJ zJb B*a!B*a!sRg_RRg_Rg_Rg_Rg_Lu#Fv \Q !K!'B ?EO?x 6GY*% T{V@~R9V@~R WFxy۬=wHiSwHiSSwHiSDYYgXR|/wVǹmX[ ǹmX[ ,Y$9RXx\A6 n1A6 A6 ;zt;z Y;zs;z;z;z  mZiR)" #Pq*w?R EC S!s (tYpv+^/ `]xsB,LpB,SB,yB,B,B,ZB,a B,V@Lf<9&v&bw&bw;X95;X9;5Қ N+eN+ˎl^N'z (B1R B1QB1  # :ch7p_Ũp_Ũp_Ũ# Z#[SXDetRT mKetRT s)etRT  etRT v+.n ,_|?  Qߘ{ xg$xg$xg$s\R)_mc_Fv5NM@%: M@%:ZM@%:KA# B|k=;]]]׉Rb_bVZs);9hRoƕUlWv UlWsÑg Ñg ê^ˋ hê^ˋjþT}E}x edƨ`ƨ`ƴ`@ ƴ`@ƴ`@Qƴ`@MS~5#P.8]b(NF<};#!F<};#L F<};#̓ }xQ} ..Y?..Y..Y Ϲܰظ Ϲܰظ?48?`})`}h{5j{5 \ {5 ZJ ҔT\4i\4i\4iZ\4iXƀ }8֡U(wy(wyjw =$ωueF?@6SZ [2 v} xgvc :v߿*e :6*Qrj6*Qr 6*Qr6*Qrt6*Qr2FbDHJ}л j J}л Ƒgtvk? vk $vkSFNF.< ws#IuOsX A_m?e ʂ8gk gk e gkm ˈg c4hsA'Y \Y $_H?ƣ棭 ƣ棭? "WEYtWEY KnjReR/@a!H dL i\_>| mE?$'{ #"'{ cҕcۻ C\9-qbqǦGUvfr/_?nՓYQՓYPA Ւ[: ^~~>N~~>Rd_uJ((LDE (LDEXLDE \.LDELDEt3H mEWvV/>WS[^ RR͘%Nv Yb%;ȢJ ܰ{^5)yh? 5)yh 5)yhj5)yh @ @ Yo*Ke p: p:Sv vdUw?17~H-p>stTH  q#B" J2R Q,4 \ z9 qR j?  ( uEË? cOF=N< [<  [<  [<? 4:r!K SUN #jc i=) TW CUW CU j\.< :4 &4;9NKS"\EKh' Z;ò?;òY1^ t} \#'ǕR)7ڭKᅇ >" eÜ(E{þް- # obr r r r r Q_f2Jc3|c3|C+C.$.ceRvcecet@ b^S C !9>"?"AL"Ot"e\7% <}t5% <} m&-s&{et&Kvth a 'vf|s '۳5'۳5?(;_)B r~ *_ƙb *_ƙb+@ɛp@+@ɛp+@ɛpC+YSK ],rp[Zvj,rp[Zvs,rp[Zv ,rp[Zv-B:?-a$-aD-aQ/j?A /+00R1@5䎞K5vs9 , 5ʅDO? 5ʅDO6F mpZO 7r1+ \7p|H7pj7\Opa8P@K8ZA; : 7@:Ai{:7_! c>`πIR4>`πIQ >`πI[ >`πID >`πI >:HB s?ܺLb?ܺL6?ܺLY?ܺL ?С?[ @Fsp! AsFA7oB` Bb?]Bb?C}n iD*5DtD;~$ E}l$[E0ĤNF\F.`zPHC cHCHC (IUO{hJ6҃w K"sLn!}?Mqx#Mq., N-w5?N-w5j+Ni|4Qi $Ni|4Qi #Q@SQ Q@SQ Q@SQQQjRl7fyt]Ren?Seq$Tf z%aU:M]RUYoUYo| UYo (VOueWn ,Wn WnWe8Oh 3W&*W&*W&*Ymq= -Yu: iYu:Yu: (YLKG YLKG?Ze߁{[<դY[)zU[V脿?]V7'u ^G ^D^Y7Zh^Y7Z ^]s@ #^]s@ c+^]s@_xs_yIO ,` Zs`$` `$` `HQi `HQi ^``4a& e`EOe bu,gb=c6PKUdcCdoepBhQ afG'1fG'g\g.)miT:,viT:,v/iT:,viT:,viT:,v j6 kP  (l9n-vlIKZ #m ʳC{N#m ʳC{ q*WJri:rjs:ӴLui {uHav Q ZwLǴVwHdwHwwNW3wZȪȸdxZ% Mt>xZ% M (xQbm[xAJy*L y5= y5= y5=y5=|y g{ y~s cg$ gdr;41 r;41 r;41 $7hM?.=Ea`E{ }2KՐ rbA(rbA(Yŭm|R!T|!T|vd+$+9 c1hNQiDЬsSm?qìj ìj ìjìj aMf H7]eB4$ ҁʞ?_BeK +͟W4{ (͟W4{͟W4{tC?z$p[ 裻$`s]R]oJ,"QoJ,"+oJ,"aoJ,"L ):U\<zrq $C"oP Mp;46 $"% k "% t I{Gl|?TsRl`N m#2I1$Vrk p  p ]!N)1 ߨ' \)%':P2:j:syG? yG? ]V ]V i]V $]V 'TPS$'TP]#'TP'TP 'TP9gTG?wCmHx +]ĩ+]ĩgZ$(gZ$(gZ$ ,@]j Ģt$~1N0/OȄ e(/OȄR/OȄg r34P`:`:|yh,@6Q' $ܡ=< c!v6Wq@j zxbPN m*N`t m`t9Wɠ\2 T~eIL`1y^24+2 -.T ORDvпDvп讷D9)讷D0.LV.L d rA ntN\}FS N\}FLW$Ga<%?Ga<% ( KQK?ZEEv A666Ks_16]$0# i$0# iR$0# i4^kQS䜖 \}K輿sS,h AA3AAAQGwtr tr trj tr)jl)t!{uk/0X $/0X /0X _')a  _')a? _')a (5 h!)#^1?#^1j*sG@x{ I?BLmX (mX $a k~tb4t&tb4tÑPZo#g,dƦBwP M1)%ȋxą\RMa?Ma? m%f %f %f %f ʄ>:ʄ> Q̅PY ̅PYt̅PY ̅PY ܵDz z4X0` 0` 0`VOn;EVM#4{hح ߆|j=߆|j=sюA֍i[ӈhTȱZӈhTȱZ.@DotSot Ԕ.Т[Կ#i!N28L)UQx?)-KO779Nb畊 ##תZtH?תZtHY ؓ ؚPR Ҕ?Ҕ (w;w;s]9s SH*DSH* SH*K o9Nưnxzs/W /WJV?sQl<,*Nll<,*nk7?  ?)g\=RߜQO eߜQO ߷V0m-߷V0mS߷V0m7߷V0m"߷V0mR߷V0m߷V0m2<ő r]]v(T@] M ' aዯ (tUq/J]+>o|MR o|Mo|Mo|M6o|MQ5H["%j<H["%H["% H["%H["% a۶Q)s& ?#CA|,?A|, iXAz>@k'+ k'+H"eT! 発+hg_v8 qcGIZJS#Z-~ , ϚJz ^ZyK Vp_s!L R JtC9!oF=\yb]: (]: $էER? ?IɈRM] (RM] RM] RM]|%EL#i\b QU^K`QU^&QU^QU^DQU^"+Z"+su uR :sga?8sOʙRRO ' iW€˪r+p`Kr+p`  Մ 3DD?%[EQl ;0Rb ;0Q ;0 ;0Y6V1;XŹ g:܎A:܎A:܎A~:܎A:܎A:܎AQo:܎AA:܎A+:܎AR$:܎AK_+ w%W_ 9 j7! j?D y [LV b7Jo? o{=17? o{=17 ( ;Dv ɒ 0 Oi# ||#j 7by X W| " mo - qc_"18iun$O2AQ$O2A$O2A$O2ADy{ iA3matHy?`/FbQbDb>Vָ {lC+? ɀCT\ T\0D0)F0&Sb&St gwbI'koB KSz8)= ,)= TK).[] g},8i c ` Z޿$iRLsiRL mR??7™C]@\;@\@\@\ {_5 R"&Ͳ "&Ͳ L"&Ͳ ]"&Ͳ "&Ͳ "&Ͳ Z~"&Ͳ S"&Ͳ "&Ͳ a"gZ s "v8#Ag} #]otd,#]otd#]otdL &?R'G'/+~ l)tKB#)>V )w#n *RQ*j *t% #+6h!:;+6h!:D4+6h!:2+6h!:, ,}Zoz,@4,@,@-J1ʻR-J1ʻ/-J1ʻ-m]-m]-s~ -s~ -s~ -s~Y.r ?Q /ܯt5?!0a{bT0:<0:< 0:<$ 1_:Q1IhjN 1IhjY1Ǧ: g2 9,N2 9,2G ?2G ?2G ? 2Xy2Xy3BUDAB3DMGPT 3nw3nw (4T? 4}]94}]4:-Nk5* s5($OQ25($Od5($O5($OK6~H j7~ (8ܝt0 $ 8ܝt0 8ܝt0 a8ܝt0 i96p'L:[΢t;lBh;kz9s;Y s ;Y ?;lފv;lފ ;|y;|y=`۱ ,=D#>*Jt? @aG@aG A =$uA =$uAr;o_l n9Ar;o_l lA(u^B$?B *B *$DpD`RG?K=G]L]b^ G]L]b^ G]L]b^ H8Wc JDutJGinRK6g5AkNWK6g5AkK9<9vKzfPM=;R<#M6}*hNױjg!&|za  1  >`/ sjWS jWSU*nU*n?i|Ħlq!6e-:6e-?2J bbb-+lS%&y + %&ykKva&ϖ Dlu i`X,[X,K4X, ϴvv a`Z6 `Z6 `Z6al (Qal (dd}$ٳ TU^=kKH&UГhz  ̶& /UFmQ嶖v& $-jzҒ*1e: Ғ*1e:p|bz@v>R z@v>@| @ s^ õםQ-8)H؃&՘o[؄!|7s؄!|7h؄!|7ƪ%vƪ%vRƪ%vK4 55L ݜsv+c9j9 % NrVy M޹ߡPTb> -F)P Bzu?B %G5mM(k D k KE)bjo_vyZ :G m~ 3uPWNC3uPWNR 3uPWNQ{'[?ٍ%Ot4ٍ%OY $pnvܽ0b&t'P'PK9Q!se9; ase9;tt (fdZ 턺j.9t Sam ︹+rRaͥ(N` ) 񐡎r Z%R2z5ýf2z5ý!- -jc{?QF ( RPj73,LE AP($կӛP v-ZYb .èaM|]?#r #rt#r#rR?[+9<?t*' t*' t*' t*' j ,33s#Na?6ҞI HV~ HV~ 5;eL5;eOZ2 \]K 11*&?v%gZ1?폵 -%]qR󪋲 G.t[&aTje[&aT?u[&aT i:[&aTK-fBpZ) sI<\WAsd9Asd3AsdAsd bFRBǪ i 7Y S 7Y@ 7Y- @[ + @[  H]t  H]t  %H[" ^  ^  ^  eJ} hNG hNG ,   п>mk G/ hh\ )  ".  ^1> ^1>C ^1> ^1>ffp,HpR }? g}?tfQER89bI89bK389bT 89bf?q5 l]m]m]mS ]m ]mPh3j|?'vDj'vDkQn?hQn?Xk6c]~ ssQړ_kxh ړ_kx (ړ_kx ieb ebs(#]Yu>D  ld^?ei=Zw1~v{Gdv{G!v{G=ު, =ު, Q[+ {{{{ J397 J39"'\vK"'\vR"eNb"}Rhf #9l_?#9l_?S$3a $y 3XV%-Q?.%-Q%c%c%ފ!2p& ,&˻5s&˻5'((g(5&)3&)_?*n#: (*\AVUK *\AVUP+q-ǩ; +q-ǩ; (+q-ǩ; $, i_R, i_D, i_-[<%#S.'s.h2 .8l[/٠ c[/٠k$/٠K1o8K v 1o8K 1aշ:]51aշ:#1aշ:D 2r2r2r2Q@Jb2d@1R 2d@13(bE4OYΡK4OYΡR4'HQ54E5t\ s5t\7!Y}79dҮ&79dҮ7V'cNu:?7  e7  ,9 ~8sL9 ~8s 9 ~8sS:I;':I;:VUs?:uzҟ S:uzҟ :uzҟ :uzҟ ,:uzҟ i:uzҟ : p}L:kl[ U;$Y)c`;!sS <ēo#<ēo<ēoK=q-E >3~,.]>Z(?.DW?3K[m?Z+KiZAV ?B(Rk -BP!($BUU wӷ0IZwӷ0Iwӷ0IdxXp|xXpxXpy&Ɗ ,zʩ z)tu $zt?ze  {>Õ<|{6k|iR c~U ~;2&PVERpDqpDqpDqww, #{2? &d~ K.Z]K. U!?Fw Fw ߣ%8r."KR |s"KR | \'iX aСHh $tl&zR?#.[uy m]0)ُ0 jُ0 Ocj&b=\ ^4t @ked'a$ed'aed'a CKC9Ȗ[QF3>DR>DNyU cY֦# 5޷? cń cń cń i cń ;0>6 o/tA)i !US aŏdF $aŏdFaŏdF|F|25sv܀ BoX,< f [|$+V)   =/IXh IXh9IXhkr\ r\ 5f8bSK8bS /fQ .R.vj>asB 7ut{)_quCD iYuCD HuCD uCDt;}!nCWEHEHL$pο;ftY466! t466! e.466!j466!466!466! )ws%)ws$ WTy[[/K[[/Q [[/[[/hYjhY)1 aW׍@" Y9%+ O% \ V6ڷ\vdn}R< jM&*M& ,M& \ @Fw. $ w. UN [ds,W iq[es%HƑ PN`Ĵ G G#.nsF] N8֫ڟſ硗Wv 硗W 硗W f硗W硗W yk>l|w{6L w{6SP/q # “i]v–G5–G5–G5œ- ˚4(7Bj(7B?rkKP) Ʊ(0Ы  &V)F{ i) )ʮe Y-X DDPKfh $*R m3`!|0 e #$Ti $TiL%[K:0%[K:0oj ?.}- ?.}- ,!Ze/ e e0m _fs   ꣂ? ꣂj 7B%N Ū+ ^  ^ l N$Qn j bD  H 5 H  H $ H  H , H}B h~)uvhVyg\~S us_w" }z1aхBaхB s?MP] sD_- Q  Q Rj 0v)=RZ  >7 >7x9 !x9  Srtrj quOLOS EِEɺO} iɺO} ԨO@˫8ٌ8ٌksYksY]]SyKSCC MUI p/ Dh"Kqs"!'g#}: #ʘ lj$#gMw9$Ep$F@])$F@])$]j$8 (L$8 $8J$8s$8j %F6Ͷk%F6Ͷt%2(Lu %yyb?(^?Q( }%( } (|Ir(|Ir(|Irs)L=L)L=,9֧,e - fmc1-{xd -j4R -K.ʐ~/$=0Z0""1ZQ?  1rY?1rY2B $2BA?2R)j 2R) $2R)v2.{-]A3 1?3^=3qާv!3qާ 3qާ 3qާ 4W∪4 v#4 o`t5$Q59~`2 R5jҭ:5%6<+;-v6 72i 7xkr7xkrm7xkr G7xkr>7xkrj7xkrh7~7~D8Wa߇X9+؎tt9+؎t 9}Gt: Oj: Oj]0: Oj: OjQ : Oj : Oj: OjR: OjK:Ş~=$;k/ ;w4݆s;w4݆|;eZ;eZp< T <>ί<>ίPjE?uU >} ~BgCo͂ BgCo͂Dz`ocFixFixQGv%1 GG3{z #G3{z #HOOG I-Ul$DIҘ: $7JZ#J~􀥢5tJުk.sJ-vYKE%utK|0KK|0K K#LܱK#Lܱ LbjfL`ބM> NIN{s-1sOOsZ_OOsZ_O]K P*;P*Q P*CRG-& R2I0 , R2I0 (Sbq (Sbq Sbq:SbqS~ S݄ S݄ S݄ T2o bTesT!"UQKX9W,,? e $f {<> f {<>|f {<>f {<>9fQ?ff_6ff_ hט^ 8hט^ $4hט^ ( hט^ i<: i8u ?j<O9j<OKjB- k hk-LdD[l\_QmsdQ^2n  nR?jtoDsVyoDsVyoJK]XpV>SepV>Sejqx]NKqI'aKSq6o;dY q6o;dq6o;dtq1^6tK}W .u, ZQu׀^?j v>sM챥 v>sM챥QvɡD m w('!Nxx<+(Lz5"nj zV'R{7[Y{aPi?|'k} )~>Lk`\"J? J i5^J`?to*fLd:V#~}\~}\3tu3w\ X V[kLT[* ҝZ, #ҝZ,?N j`ܬ-_ QxLCQR&AJ L J  xu>xu>z-j30t N( mzmz_mz@![ @![."ܝ Y."ܝ \ ."ܝ ."ܝ ."ܝ ."ܝj/G$i6r*"1 m~t*>~t~E$LnܩUfͤ?x󅒹pR%x󅒹pLAT4W^ , lo]lo]jlo] $qq1p ~>%+v)m|O $  |l~JqR`82o c>Ӈ@?T#;pCOewt;tOewt; aOewt; Oewt;sOewt;j(7FD fTx R ٧?v`L cv`L v`L v`L snP1]"oz¥*]q ȫ)ȫKȫ$)8SIm@hN1sn +{ n +{ q5K -}"#-}" -}" ( .& b .&b %$y j%$y  %$y sWt&~4vOk Ok \nȉRd d/\ (ʜ:gu guP(u-̘}R(u-̘}(u-̘}U7pb R$ZQvj$ZQv \s \j.0 .0 .0 .0 .0 g}4hsq&j?ǙvO6v|.,j͙Oo T˥^~˥^d˥^˥^ ˥^ ˥^b lb ? nƪQ-C|L*-C|R-C|-C|9nsr? !z#0vQ"M۔ 59QXUE,{%E,{#jU+vd³o \zZ zZRzZ?zZ zZ \* iEHA_bjźѰSZƲWl7 ƲWl7 ƲWl7ƲWl7 G M!1BvS>?DžDoWbɄH@4X (ɄH@4X =x ,zx x x UxBi C?nv ̩ QW5̩ QW5z ?SëSë Ϝ;'M?t֨#E#EIm=h Im=h aЧq j\л\v-нJ,'MSg2~RӉdnF rnF rRnF r nF rZnF rnF r nF rR lIlI jX֘ǻssґS ak aYiSLW%anZ\RӚ']'@N ֗vTZ m gjܩ  avjkL8avjk"avjk D,0߯"2ZZ#<መ m"6͓ L<\DVL<\Df soo +hZ Ac[?WC:]F峲u O@:iO@ CO@"O@9O@O@ M㳹yr%}3Zk }3Zk 鰐*<6 $U#Z9 izizKٲvEdIKpO \vՈLRJFGJF[JFSJFJFZFx# 䩪JL#sBNޗZ (j򺊒~XD,ttZd C^) 8 Q8 08 r)~r)~R!A!AY!A!Ae'U Dx 1 `ʨA? M|t2 G$O=)f֛`uo_]w  @$s [Do aC,f s;RPa̳fw9RkMlF90 c 90 c ^* eM (7OfŪ27OfŪ 7OfŪ 7OfŪtUtI{/  {/ ^Za*cN9EE,8\?,8\ wC?;@ ]!< ]!<! 4e 4e 4e 4 g G( a R Zy:XYy:XY9v O"` fׁ" yySy_w# ,L9g[tq0q0rq0,q0)q0~  ~ "U "U rdInnsNSsNG` ex@_Qe! !8e!W͸7 Rn=hb.K'ph8 h8 $zRI%T?9Qܭ m C~ -,6 ""Rx"Kv u Nzĉ'ai6 t  È@kZE6W @O  70 !9vd \! ݌5?!Kv!"Ea׺2d"Ea׺2Q"?IMR"?IM ":g#Tb#[@B  $$J:aj+$J:a %uMt&j&Vc?&rT'$Bj'$Bs(m)L(fNl(Y] ,(W|)K (*ez $*ez +Kxz (,AcoR 3,#kz J,#s,#-%SS-_=?-_=.Elz=< 0p*R 0=R1 x8`K1&!,3LP 34:3." s4G@jR $4kN &N #4WD?4WD (4W)95'/?6 =C6G׫`j 6G׫`?6ŧ~j 6.g8YZ{ 8y8y8yQ8 ]* i 8 ]*9ȬF?:f:Bݖ;r;h ,;NoѼZ;ޢ> g a ;ޢ> g ,<-F:<-F:<-F:R<-F:K<*<-\ʆ=8q =8q i=˞Y>7 >W *?D蹔 s?D蹔?D蹔 a?T9 %@0|'2B<6jBOpE7 $BWAh DCCZR- UCCZR- iCCZR-tCCZR- DX6Dłn & iE YE YREwuػQF7y a F7yF_[E FݛUVHӹKI+TLJ~gLK"U KZ{zDCjKt#KsujL@r3KM_Iڔ,N|Ѧ!?NO?NOR NGC e O&_O,tBP6QL(fWQg(_4 Q[RQ[R4wkDRZB Sж& S܄qI9U774yW cV@t[V]5 JZW$km}Xm?%=6Xm?%=6 Ym{) a Ym{)YѢ ZfiZdJ!K]FJ^Dwّj^-^-_7w|t`8^D`s acP~ #bd:8c#$vGc#$cCWd!eԍ:sdE ujd׸ e6B e6Be6BQe6BeNi$]fH|StI f^VdUf^Vdf* f* igZ(i򳇲 |i򳇲 gi"m[iWH jdQQ{lyXl0}d emAC mXŢ^Rm/ vmGxn!@ nb| ,n{VAc n } nw! $n֯ pQyNy pQyNy|pQyNy ipQyNysp97r|D`?r|D`tr? u(^p&u(^p&RuڹW vRdvw'1@9 w'1@9xS&E9xS&E9QxZZ mx SMy&o۸% yKN? yӺ+UR{?|8Zv |8Zv |}GC }>?]}5yέ?}5yέ NFTD>tHD>s,K, Cn02¸ W hRmDChRmDC]P^Z] bfs$5kRxT5kRx eua*Qa*Q#Oo1A &jW" ajW"?jW"jW". ˥@zD˥@z waS-!W$ . LL{,8TgR! }X|@Dvg>A&NRx\RxU/>.>. >. >. r YssUtS UR,UR m0]C 0]Cm%B<t/B< B<K B< 3 m N[o1*[o1J ReiTlbwC싽 _!T_!T${0:'R ״hG9 1 ?1  (GtJj"" "9C+D(eq #0ňoG3_lMf lMf  t*B ѼѼ {I ^+2*j>^+2*^+2*^+2* ^+2* , }<+< D6ǨkUQq]"P ]"P (]"P a]"P idu?b[Ws b[Ws i b[Ws?^$=K6"b7^[k%d2k%d2 {'*ʹ i'*ʹ (k$ ϲocϖO \S O \S iW D b]hȱvjȱvȱvȱv-Ak%=* j rP>X VS \g_G#[HB}I2 C7͹ aU! Ze?ܸk" ܸkj?v?f?v 7d $N*?ʢ ǥNJǥ ,5k8Z%5k8Z 5k8Z 5k8Z5k8Zu䩃 u䩃j%{K%{%{%{Q54cۦ?Xu gc/o99yTjYd& K~E6z  'h\kkjJ[1kjJ[ kjJ[ e6RqHB"KB"R|W9;2 2 Ne&w eve&w e D:8SL8TSL8T \f*? u`yʗ?' \LaB+څ? +څj׹y. ׹y. ׹y.Q(jȗGl % ~d ,O~ £d-?Cpx' Cpx'Cpx'̤̤ Rcڝ Rcڝ yְhJ?w ,~$KRƪV ƪVƼWP uP߸?R6L[ 7q<9fk'S a`Rw Ȭ+S VɩSSQW ,QWkGUdˠd͈щ B@k ̭aeׁV̭aeׁK 9@_u ,λ5?]ՐF ՐF (|* \fBFU}M{w}M{wS}M{wK }M{w>:s $l]dkZӈz7_QZYӖgsv ? O޲B< O޲B<"O޲B<O޲B<t o2A/?׌䇜gR ْzkTc?إvP gDX[秔Bxtk  ۇ*T vۇ*T ۬O۬O۬Oly ܑ'ݷF8,#ԅN8{%Ȯ  kܘ*(,Ƈ8Mpm)soR`CG">P7G">P7{{j7{{m= #4j#vj# j# FlAIh\" \L ~5/o % :p'?+  ty?$xv$x U$x 3$x $x  s6&_QQ0 .~ .~LN aa2\S/; ,K+$cu}Qyu}Qy6$` A^K #[JtrU>HWj'`Ǿ] ( 핰:t $ <tA ++_t iE|יi|י a !lb 't;?B=b;?6ZY$N!6ZY$6ZY$#}9 /w2is stqcm*Zh2ueR6"I 6"I]'B` ]'B`YwI$?wI$ m(tCCKY8t #K?t8R[C"k Nf f #lcH H4j H4 އ JC g  {[V  {[V ? {[V  ɳ#8 |  "<>jR  ߎr  nrf iƧt iƧY V2y V2yU V2y ]A -Ձ $ |Ov |Ov :M*Y)Y7s]j ]?Û/D*Y2 E2?2 i2 \ 2 ~ Ӱn N c dƒ _^V)՟o #=>Sy?Ѳ7: ͺ!LJBߝVTx5S(!apd_5nfd g]TY??#]" 8@c 8@c8@cY8@cOHyfs\N8lE   mPv[!wg t!5^d !>X)g" :" +a" +#" +R" +"7S"7"(%"#z #4#vhˮ?$'&$'& %[Ԋ?0%[Ԋ & &n&N&d#&&Kx&3L' &V{z c &V{z #(Ծj(( : (w#L6K<(w#L6P (w#L6(w#L6R(w#L6*ѳCfTk+I'Z n,u[jo ,u[jov ,u[jo (,HR ,e,e.4 X.4 X/fA/񐰡/񐰡0Z.t |1~^R1,~R2B 5& yQOL5& yQO6T`N;. ;>vXg@;5:ֺ;;NfA<\eQb<\eQb='5~R=}G>ǁm > ~]?1K??1K BSFPB B sC ayGo[CsڇEkQ/sF`9E4>4F`9E4>a G 2@G 2@?G 2@G 2@G 2@G 2@GX:1) H, ?H'DjIf6ӝ6If6ӝ |If6ӝ iIGIB.~%8JT3J#u >k JG$7 'KP K2 9<3L/?*U?ME nME lNeR_O5˱# gP۾-? P2FI%;tP-I$ , PkK QeоtQZ}0QZ}QQZ}RSQry=RSXkMTz'7K ,Tz'7KjTz'7K TKTU{Z6U,RjV WWaɀWaɀW h WQcyXXnh rYmp?YL.?Z6"K~Zbs6U[ej[e\%삠b\/aد!\q j\q?]@s^gY^q&nJ^sXU_7F1_m `K7 `pSb?snblNHM?bvu2&b2M o bIlK#vc"5Z`[cWd£eD0<\:g967jhZsiQkr쐒[l!x3mH{n"-S2n"-orb[[ p$F p;|z p;|zp;|zsp{ssޑu 9u['2wKzy yq 7Sz\d'Rzeze Cze izeRze {- ({-|{- {W'U , {t { i |4A k|4A t=|4A |4A b|' m} (}~KK\ݖ Qݖ??s7>~[ a5J r2G{lv7TS lv7T?d?d} $ } ,RV"' o;f~wIH~wIH 'Q`KQ`K@%""MG ~@[ ʺ9kRh,m~⻳X _,kISYfmhp\\[p\\*5?H< (!H< t j =?x埏hatzs ,n-pn Ùnjmx0*mx0*m{[k"c #ٛ Fxtbm,m,Z? Y{b c7F{}PDbPDbKHvuR$ݑJ ݑJݑJaVv_n_n9' OhOhPOhOhQ`ۜg5A 0QtFAvZMf^h$Y0 {q s ]; s;];!]; ]; |}K }K i}Ky8QE.wsZk#%&L~6F 3}Z!n}xQ.?x.? .?.? xNRA6/[`4@?{, a{K \4 # ԘKԘKR@51JLʅ| & e e 9L vBO8}S*d UjajaK\lSn0=2nh.oKh.oOh.op@M'p@Mp@MPLih-PLi PLi QV i JpsҞ$) H? ^49 ,M xL]ӈ?ZwYD{ ZwYD{8/:TMg | &( |XNisҀ7;Yd cBflRh6Ph6P lY-͏ɥ-͏ɥU-͏ɥ(t , (_$jOnY3m"JB 2k8mOd >k8mOd k8mOd^<E[ ~*jĔBgf# /Vu 7|luS ňV iňV@ TUPA P ǂ}Ea! Y " "3XN3XIRA ,ʐJ9Eʽqkʽqk##q61ww ~Żޛ ̿0h? +Q.+QQ+Qd͆r ͈zBͬBQ`]tvSo εoεo{b~lS{b~lӍ׷= ׷= 9S&! 9S&!gQ gd " oa +*>Y E[ѸLE[ѸO_3njԎ!Itԇȓom6 om6)&|JҸ&rJҸ&rQ*JҸ&rCJҸ&rJҸ&rJҸ&r֣ G ֫eVr St;u֤! u֤! \?O;?O?O?O?Od|?O@?O'?O?O?O?OQ&zۻ-N%@&et # '\佽ht"T?zێ!?aj&۳>-z7pT p-*p2P+ $=S^ 4zF~;j)Jd$ iqWM KSd@ mUPiUrQ UPiUrK UPiUr4V YM?\v\-r2 (-r2 #_ aD).D)D)B9S?<B9S?<-gBgt BgtQD쳹zCqURqU h巩vxI'dp:.hVs ]E܈鏞eR{NN4!~~e9 ~~e ~~e s~~et~~e `^O`^OEa8I`̞I`̞ (I`̞s  eG eFZѵevI5 I,R I,n}" -\U dr{ݻr{ݻdcCdcdc$AJes>DDs>Ds>Ds>D0s>Ds>Ds>DYs>DQ%4(h X<X< (X< Q a#sd #/%DqT%Dq!%Dq%f^&t6k&b nW(YA(p̐|(f?*jSR +f c,91M ,E7 ,E7 ,E7j,E7 -}Nc{]-;7h - AmL- AmZ-Baj.AO1 0r:@ i0OJi 0OJi 1uCIS2۾]2$R3e΀t3k 3[ BD 4$X]| 4$X]|R4hZ4hZ6*١vs6*١vt6  6 j7 r r'7!U7H* 97H* 9t77W57\|?iZ82.88888иz 9 t;T?;n?< <ժY%>&#)2?C?ޭ0@h;F@h;@h;@h;@h;K@h;@h;@׋RW AT(`SAT(`AT(` AZw|SA\f&HB厴#CB`£DE8UDa!t9 EmѮY]EmѮjME؏7AUE؏7ASE*TS=vF+XGD'b/D`GLh3GU qœ I4{& I4{&I -AJ*R /J_+&m?J_J_KxYZ K}#boL PO_bOqPD;P\X5 .QsĬjQsĬ?QB_Qifk ,QifkRl#RlRV9_2R`RS<hS<ZU>MgLU]?U&["Vz`kXSlYgvw. ZlZ*Z*]Z*Z*DZ*Z̻<6v 9Z̻<6vsZ̻<6v iZ̻<6v[ e[[g*|1[g*|1%[wKe-[٠$[٠S\!VXL+\!VX\U\KzeV; ]I; ]I;]]^cB_&e s_Y0 _Y0_Y0 `#u;`#u `#u `#u a `#u ,a$Kc~L:cJJ8cJJ8 cJJ8d d2dA6_Xd8|0 er߼OfV fVSghWRhDTʛ (iz{ NjCMw !ji6îk.Y?l͹:.Nm: $m: imNf^h anT oFvh'oFvh'oAl p2>p2>p?rpQsF-dpeҰR peҰq PGq3:?q˞o grEzkz r*7r87j9r87$r87t'2 t'2 wp[k wC?/ wb|nx7DUxkۂ.xkۂxhdL3syr7ޠwyr7ޠRyr7ޠyr7ޠyr7ޠ0yr7ޠ#yr7ޠLyr7ޠKyr7ޠ yr7ޠ yr7ޠSz6s{'ãU{Ĕ3?~#$ {W|ᅦ {W|ᅦ E? j;DY2ftK87OM?M#=M#=Lubb:}ٰ$Txte[mCKg۳ 5ͅ^,= ' 't 'j?1c \hi\hiy< 7YzR TT; TT; TT;;uo|lBqI BqIBBqI i4BqI (BqI BqIt BqI +WT 3Kt |tX'tX' YH;sqx΄1N߳;7{l%Kl%AvS ?l c?l #pNP-Y ڄߋJ Kic>Kic>|5+Q2`'O2`'7] I*!IKd'SWW7WWW7W ݫR %tAP} 2̖sc.ǯ <(f3B16 16  a D!pĀR_x_xK_x4$$  /x m  /xj&qU$ k;&ag ͙ cuA gcuA ^ lt%U lt%QV' $U/t>U/b"U/`U/ U/kmf9tmf9 (b 7*.?xtɷpQ`D`/tߝ! ]jU$Rl U$Rl aĈ--R 8k4 *f-4 *f-F` F` ʮ =QpNt[ ,c5JL bp$ t\M~_t\M~, i is 020202|02 r5@ \ $GWcs(՛oK $WHx/ IֶMͰN{H״O{H״ {H״ {H״R $ :=6`:=6`?oS+>*:˛f@ wt wj wΔ4T -VD-VD8W!j_ʢ Ƽ{gM* E&]Hka] kp.ukp.?q1ܝY#] s?q(ӑZRq(ӑZϡ[ f,/:猡p/:猡 (/:猡j/:猡 ,/:猡 $/:猡 ^r  ^r  ųM]?h߆"9hƋAݣ Ʋ'Qb~ڜ"~ڜ ~ڜ ,ȁ꫅ e6vIʲݼ $7ʲݼʲݼ , ʲݼ 3 &=?;H4;H4ς[/'h %o %o?DW  DW \Cɚvc#j^ \KuLKuKuSKuKD^Q0vp $ҕ3 kҺ|Pg\)NL?|eAt~|eAtL |eAt 3` |"ֆulRvHK?(+h'J~(?&̲v Kk'aӾ lv?cŸyD٣3oSE\5.?o6|#x̝K n3n y11e#'--,Ə a s5kUIY^UIY^tΎzQ tΎz tΎz tΎz `JĈZf`JĈ`JĈL `JĈf=+ $9ԉ>=q ., .,Q!jcƙ' ~BX?(VskO , dM4B lr7jT1 X1h X1h X1hX1h< l<?_u!`$Zx-d_lL d_lYi9UhL,I;,6 " ~ +宱?: 0Qj 0Qb 0Qh Ӆ,^? u@ , ;% 2xMʮ## 2xMʮ$ pn@_ pы #W #W #Wy.[:әg ,+bby mPՙ[NFڙ$]JRĉm3Y)#BKW+̪>Wb̪>W ̪>Wjr̪>Wd̪>WC̪>W$̪>W ̪>W ̪>W i̪>W a6A ߞBe VCˀ#ΰR #ΰK #ΰ_q>gjs{Y xI!X  m!zh !zh !zh "v@TiD "K~Rf?"m@P"m@P"gR# 6k#R" i#R" |%^ $(%^ |%Ǿ&7t%gt1%gs %gb%g &͖&3&Feؖh&Feؖs&Feؖ '8K'8P'e𤙨S#'e𤙨U'$SJ )EN8)E)EY )[Ϊ ()[Ϊ g )[Ϊ )[Ϊs)[Ϊ|)[Ϊ i*V*-  +]S~ (,CE, *-93sb -93sb-|rt.nD s.nD//.~[0ٕ 0ٕ 1 t2υ2=C_ 2=C2r|YR/2r|Y2r|Y2r|Y3 4(~4A/t.6|36og06og&6ogR6A 6A (6$s77"67ep 7ep8:uZc :umD ; H #;deѭ;|N;2;2;`af >OC?})& ?WD?o<aC @ѷy\b@6z@6 @6A I A|#! A|#! gARsbARs BJkC[tg5 C[tg5 iC[tg5 ,DNNKD )_ D FanشeFuaEFuaEHw} Y#Hw} H>. IrJ:yl5 (J:yl5|JI<ߊJI<ߊ JI<ߊK/=LK/=KVsKV iL*sM,¤1>M,¤1>M,¤1>Nzˆ`NN?O_Th O_T PP~2PjP?QAP?QP?Q P?QP?QQ1jQ?Q (SSQ|STP'A<UԳLI(?+UԳLI( UԳLI( \UԳLI( VժVժVժDV-_Vj2eYVj2eW< -#W  =Xx:Xx:X;X XB-Y +[&j!Y +[&k Y +[&Y +[& (YQ\ ([.w;[.w;v[,[\-2fo \-2fod\> m\> md\> mj^#6 ^#6v^#6 _-XsP_Oj-xZS` 4rn/%` 4rn/t`G@"]`x!މ ` bmzTb%z?b'cdA wUhdB cdT x8dT xvfpШ7?fpШ7f/Kkv f/Kk f/Kksg@(RhM l][iF%=xiF%=xNjowoj] #` lQsNl~O# bl ?l:S͂Nl.uKSm1 m1 Qm1 Dn~hn~hv n~hn҅oPHZoPHSoPHorhLq)?#q)"q)r%crPtd ,rPtd a rPtd (rPtds at߈Ѫ v~tv~tNv¢F ysdL{y ]$y ]y ]Zy ]Sz-}?{QZ|o^v}{7K }{7Ks}= }ڬ&J?x%[f/^{>{>_+*tt+ rpCYQ+CYCYKCY8 BR)9㉘'gg@.jvY KqYU :TK :Tw=3 YK{khQQixt%'4v %'4,~+j Qe)3@pE (_}. p*iS\I qYHS&EƢpR34Dͤ ڰt#}F\K \AYk(\AYb$\AYt 3?"aOG~el*K DpTi7MT+I"L^<ჟL Nctup(xwCR /Vo@ /Vo@YFf*t Ff* Ff*YG;7ht= ۡ^8?/Pj/Pjs\#O{@]TK Ķj Ķj Ķj 9Ķjt/Ķj i5h)9ԈbfԈbf? % #d*= a դyld cæ<#,0D(,0Ds?@ jiX r$ʬtr$ʬ҉xwj҉xw\C n2ڋHY"^S"^ "^K"^L"^QznY nY   8s  GMXq-g,q-g,q-g,sr :a Rwo]N C]6 =zY =zs )77 ,ch 4 4jfo:o:y1qR"QgjGyNoBy oBy ioBy ,}}|DOV= )|^R46:L46:=5R >5Rk@>5R 6>5R a)>5R ">5Rt>5R nw x'C \?i aJl9RJl9 }Jl9 #Jl9Jl9? s M1e$ M1d``? ^k\ k\ k\ ԣWY-*84 sбu %-I:? -I:e[j .6#jCD1]CD17CD1Hl8DHl8vnBwRvnBwvnBw@=C @=C  0r rٍ׎V \| c"\| cUw: $)Ve !A5d t{} ,.d9F.Ц6 #R  Z?H1ErEr Er/Iő /Iőf[d , 2hX i6ySt' 6(%)Dq` ۅjۅjRl @;w]?)},XR $ h S h   ? PRVS l¡/L l¡/ AF J͌L S' ! r|/mK)LM,)LM()LM )LM+:3'2ww+lg*e+,j9l ,,Q ^-Kk?%-Kk i.ȧ\b>R.ܓׂ*j/?g / Y 08vVY0h_16ł+29웧GU2E. {P 2fWͷ 3A"E9[3] 5i5lt5lk6A 6=ܙR6|t7/Fuktj7\N 8pԟs]8v5|go8x9;pA 9TT2:[L޶ ;K;vd 2<3XkX ^F%>h^?Q@ aJ?O@ aJ@)%j @)%`@)% A?>j? BC*5BQfKC9A Cw[fLCb5DHj R,DHj R,a Dp~" Dp~"REz EE]EuxF{L cFϼvFZ ]Hf'HnHnHnJ4RJ4QJcH8ReJAsTL|TLit֘ ]M @?MEV? MEV?]MM M KO@" PWRQ/ Q/RKXRR's; RR's; NTU5 *Tg&tTXZ STTP#vM UQi{5?UQi{5 UQi{5 VDm[WI~[? Wto 4 (XNX{ r X{ X˯YZ$jZ|S[wf[wf\6],\N"V\hȓ+? \ݙl\ݙlj]>ӊ RK ]L/08 ^U?; ^U?; (^U?; ,_ 9C$>`,. Cs i`o8 aQ/[%aQ/[% (b~bcc cccc?cc cc (cMR5GcMR5d#l?d(g`2 d(g`2k7d(g`2 f eױNf?Rh/g iڒg1 g1g1gxNhpc hpcicVIicVIL icVIicVIio&io&jl jlkKkLk":tl2l2n]L֊BQnzL ptNpyW&pypypypyp13Rp13Qpy2pQ*Qq~6B crE}7[cNr̀QEbs1 Ns+BLt09V(u?wF uq<Ǘ)u63v ?v=1gvvdNX_ wZ&w1w[x.{?y@w^ yD: yoBWyZyzƆ(%{O 3 h{[%#{[%|?1Ղ1I|]F~|&,.V-R17j" #ƥ=?! ?gxt$~ymS s )),,Pǡ_\ \ǡ_\ - r7- r7 =g1(>9 >9 Dse ?ԈԜtM 8; (ȈtThncMqWjRxRz$UحAK*"Q !Q ? e 2c#eh 1-v Yh;|VD h;|V_>gvH@wNS + (#r#(a ^ % V% V8JK@d_ jWgovS}lh3}l }l }ls}l %}l ( }lj 4Y@4SZa8< n [@( [@(s~?>>Zi.-dVv :R (:R :R| :R  s-7^# PYi vcHlv cO PNmC ew8T  w"  w-Y02jj& g!W& g!S߼1\ ${@?&tZ&4?L1q 1q ,1qj!_CYgM h6UZx?Bjb}jÈ ÈټAav3 5"5"Ra5"5"fN#\? 0U뻏e\uF,  .y`>]C4Q>]C4.>]C4>]C4&;9/ &;9/&;9/ R< \  m -#ba8FQ?]ayj6I%\PR\PL:#[)!z^HNrzz!Yrzz!rzz!a19]R9Ma{R9MYR9M$ R9MsHߋo ,|?M0 lJpz # eLMM'1M'1 M'1PM'1Ϣ{hVtϢ{hVg{Lt>Y &vi'bs Г!Г! `~Z`xn "';b0 H[#KH[# H[# H[# Br7K pe{th|͂LO ߺ]ߺ"DgC +k[_ snf ! !!}> "Y6 f8"Y6 "Y6 d"Y6 F"Y6 "Y6 K"e^auǓbD"e^auǓ )"e^auǓ c"e^auǓt "e^auǓ "W,$,/ %0Sn& /=j&٩D a'J$ 'J$ (Ճ:N3)j)j *V/U+.j? -DYZپo-ꑺhqN.#.#.ʔd.߇+.߇+.߇+R.߇+K.߇+`.߇+C.߇+.߇+ /?Q/KY/n] 0w1D i0w1D0w1Ds2?;R2K{,2K{?3g=4]~R4]~4g-{4ؗ 5fD 5bP6-INr #6I9*6Vvj6wh8]R8] m8wrM92Ķv;d:m (;Z\mi;Lmt ;G&4p\? ?-3??-3 ?u:M S?I[~Q@4@MlZ@hA,_A} C;1Vc DoDA DA $DA?EC8H EQy~E# ER_SER_/FZXwFWHWH|GzgH|Gzg e H c"H c"IK^SdLIK^SdJ"$n{>KL޲RLbLKJ?MQ6M\8M\8sM\8jINr˿O0@z?O)ҴZjO\?kP)ۭQԛbRQ+RQ+LRsۡ(SW!]SW!TY5r:NbTJ'T|Zx-?T|Zx- sT|Zx- UgV:NEV:NjV6(^RW'= i=W'=W'= W'=?X"{G*5 \X>?vwtX>?vw Xp4PNXwܦ m YyY!NZvI?ZѲ@{Z `H [ { \[h]:( `V9zxbe\ be\ be\ b$b=ʂG \ bQ-XZdv7Q ^e( ce󑥏Ke󑥏Rf!m$f!m$'f!m$] f!m$ f!m$f!m$f!m$Uf7+)qf.JB f.JBRfE K7ZKfzG g`#zB/SgRzVgMk8XNhAm-ti(8:?<i(8:jA\؋ jA\؋ jA嚰7jj&k/hk/h]k/hkM4<Nlu lu lum% m% m% \n 3ZnZVvS;of>)Xom FCj<om FC om FC2oThX. $o}?oVGo쥿Kppvn*p'qTJf rcps60 sf{z[F sf{z[FsX]sXsXs;0@tc9I3 cAtْ\ #t @}w#Wи w#WиwUbxJxjyۦs @XY./*wl./*wl ./*wlKz6= kspOˑ jŖ / ʾv׸{׸{ ޼}a ޼}ۭ:x:x:xQ:x :x:x!pZ8st#L=K^5,7 ^5,7D^5,7=5?u [u|)U (5}Ζ g_4: V;< cJ ^*\  @ 9 @  @ ty+* y+*s_! -}6 .eF ӄNj&$ \*L< sM ϣt~%BbkeesGkY}˶KԙNRo NDzJ DzJ DzJ v=yjj v=yj v=yj >C"BZ1 ٲ5ٲ5\Y6?qFqFqF ¿U!1Ū>Ū ŪdŪZwZwyhhLr3RO k t/  g+KYP,5KYP,WYu* HG0۞} ۞}O-O %ؿM ` kWʌ%QS7\d ?  G[2j F".c {JrJr3>$~v<Z~|~B{|~B{S|~B{P 퍽Vi lA7ms!\ht&!\hs v?dv?dU3=5F i5F{ 8zN[@ȫP @ȫP뼐?뼐%P@%S-@%Sj @%S T ;q;mfs(fYfk(U :Jv,wHtK33/8A6Df /8A6Df /8A6Df /8A6Df (54I@mab2v Ijq])o])S$])kpPèbEM_kèbEM_tľ&}tR6]Œ* \Œ*Œ*|܈ǿBXH ? O7? ș \ŕrqH "7+JǨEgx ] e i-o ̨q,_F`k a, 'W+ ΜwW !Ν7@ ,Ν7@ ДД]e7T [5Sj 1K 1K":upv-RwGXRwGKRwG  -:"lKr=I &'&/{ )t~h?L]L]d" uuut0x \t0x t0x-N%^/ ^/*L `vKqkfd~D f^v f^vQ= f^v f^v~> 7` ^7GY1aZt1aZs 1aZ 1aZ ߠ? ߠ?Aߠ? ߠ? (ߠ?v.yq|0% L%.8j@s 8j@ i8j@j8j@| G? G  ai56-d:GV_eryHhAEf hAEf ^hAEf 3hAEf hAEfhAEf (嚛e3 юA%'P 梦 s cVj iFt iF;īB|œ| 7Nf]yQ  . .NXw\ 5^x5^x 7 U k? iocJP?wIUwIwIwIı*ı*zjt@ Z5+Kty #2  , $ s$ K?Xm`S?Xm`4?Xm`UP;z:P;z:jKK H(A?%Vb9f9fo$7-ښ $o$7-ښo$7-ښo$7-ښ?T " JA9 k dBe2Nt$2Nt2Nt2Nt2 ^o^ntLnt~D # s ˀ|# G U? UK}jUK}jt}[* t}[*7䗥/7䗥/t7䗥/7䗥/YM/Q5}Bh_^?vNv "%ll"! "%ll"!S %N gm|s  gm|sk vcV'  a RRs7 RRs? RRs s RRs ( E!wc> 4o3DB(TeTe H]ZmT R 8f t4 xt4 tt4 Y |8N=v|8N= |8N= oR4Ҋs]Ҋs]Ҋs] ->TS&y]$f[c;UX=(WI? C>,X gS4Hz qG1[C ƨbW}[hS3 hS3s6hS3KhS3 6hS3hS3 hS3jئȰQ橹h?g]Kg]Rȑf a.ŁD!C6 j !_Ěs !s/ R" j":TZ"ӵV#h}#~lYW $nd]2?$f{% _Y s%3ut%3utK%3utQ %3utD%3ut&2&^' XMe'1aҶ'$I) )p+fW #)8< (,93 ,k/},܏+@b-DC (-D_-WCX-D_-WCN/mpF5j0@w:x0p-kI0p-k e0p-kk1%]k2+}  2+} ?2_3^{ 3^{ 3^{ .3Bz4N&0 ,4N&0 4jU5f;4WU 5ODHJ63 7iO, i8, 8Zۑv8,9m] >6 D*rFCZD*rFCXDaڋ dEǦ+-F'ȻQ F'Ȼ F'ȻF'ȻDF. ( F?=R F?=KF?=FUFUFUG\oG\oGĦ iGĦGĦ9GdB'O3HDz<ɁHP4~jdR)HP4~jdZIߪRIߪ^IߪKbH<_ZKQLL N}oZj N}oZ N N Ok߆OrW?QGMd[RЎ RBRBR_0 \R_0? R_0 R_0 R_0jRh!Pҏ eRwrL SشTqJGRTK TRT\LleU ZLUʋ.V8Ve:BV\f #W@jˁD WҪ|WX ܊j.X-*_hZG|:q{ # ZT#' mZQ ]B[czR [͙S]"끥]=B!Cj ]=B!Cs], a],k]e"^(+.^(+.Q^(+.R ^(+.K^(+.^(+.^(+.^څM^څM]^څM_<%_M`Py s`'?_`E ,`EbacNbҰbҰ_cW}AcW}AscW}AY^cW}ALcW}ARcW}Acw'@@tcpLcpL]c %de ,c.'K c.'Q c.'d͆5#S7e[a@a $e[a@a fD gSbf gSbf 3glϱm 8s glϱm 8 glϱm 8tgecfNg"< glEh+vib j.FN*j.FWjl3^H[ j蔹QG?j蔹QGslH;Ͳ(L%lH;Ͳ(lH;Ͳ(lH;Ͳ(lH;Ͳ(]@lH;Ͳ( mWܨe$n\^1jn4mZ[jnU䩳vn^b0  oc# p %FbpO@6hpxNJ p+"W epӃqȣtRrXE`ˆ rXE`ˆ$rXE`ˆSr15]ru<[ ru<ru<Tru<s : s͊ϡ ^ tP̌RtP̌tP̌R t|t|t|Q t|vokYvx*Y vI<ٚwO+-xznT RyS>ܩzyga (z@5zD٢t.NzD٢t.z_, zyS{jwr$ {ϣ |7K |۩}ό~^^~^^~&ݳ ~?KEǙv~?KEǙ ~Nd1•< $@?M@N3gY&qYD eD Cg (RFRRFRFSRFRFK.Vؽvy .Vؽvy i ;mA >IsB #"mW iW/ a?jb* .Z{/n?7{D7{7{T 歛[w9ЂЂR sD/SҊNIރ?:W=Hf|' 1hf|'sf|'| f|' hy;"QbO?=)/3hSj /3hS/3hS /3hS /3hSd~( c6V?dW#1fhyL%^Nm%^NmES *a&=/PCH_)[$bH_)[SH_)[#u# D ҈l*?& (\ bu-hʱu ʱuTT^DƔ>jh8LRGh8L d:a8[\i14N52QQj7[2)*j 2)*YP)w1OfRw1Ofc"c?d6li5 (;r-}d~Nw}NMi9 7pm $ Mx,s?,s ! Aq6 $+>?Hӓ , R6ȖR6ȖCR6ȖK ;-4pf kjkj̓g/_M̓g/̓g/̓g/ ҢhnsUse^  fQ7j0vH. a%c͘R,-Ӎ(,-Ӎ,-Ӎ]'APW 'APWBsƆ.|xƆ.|xBNBPȘ ns-.-W{Q W{Q abfj bfj?>v> a?|]{e O \c2TB |-Bb"Ks "KH H ?ݻ? !èPϐ # [G?kl:]8z?yQ_PY  _PY %f 2L%YL% (Vή0w3$ nv.VUPe{rZ "j9YD 9Y9YG +TKש$΁1d'Χp Χp|Χpώ՝ ϷEiϷEi߁ILCR ^gC){S@іq)s )m+" ](ivd$s }_R1}_ }_L}_ԡ yԡ yR2db2d 2d ( 2d2ds2d7t.֖)g. ֖)g. ָ{fR iɵ&T~ YMSޮkH,wS s ߁F߁FRp0 RNڱ~ ,ڱ~V43QʰۙY&^83 ۙY&^83tͲ7`{fx `{fx *?: * 7˘ ) \%<ÈGΑjyB a dݾpty0 _ *_ [( , [( [( [( (.[(  [( [( tYwttYwkߩQRUm"c3Y s3ЏǴ W;֝?xwjJ VR sͲ'  +,́Nk zWdY +ʾ a w{$fExM7rdJjXy e7Vi[\Xc e$pYc f )A0 ,9H\ 9H\[pb)S7 )RMݚ3-is:@/ +o\>QS?+pM÷:÷:^QzC c6) 4N?r wLOwLwLRs RP4@ D?I ?I ,gEEgEEgEE߷C(I i ]awP  `S( WB]f=]f= (]f=*]#U?r,|P*gvM-/U|K::,VF s$s m ? s 5H_ *. ( p+ p+ p+S p+L j1) j1LĤjͽtqShn9{_b:wd:faD|( bvN%m"Ac abmbm (Y< aXͯXͯRnP 3 c4E@c4E@tdk|?O* @(8xgsDy Dy  RHwGwG>{gWl]eRjK,N? W?J W?Jj A.!0$!ьPw#&o#|Ա ,$.`S&P@ 'bƉN'bƉR 'l)P 'o (Mr[. U(Mr[.+*D?+Tq2u+ h ,B"N,lUѼC ,_k ,_s,_-, W.A\&].]N`L9.t[Y/7뼲04n 1OzXu1|y2Zqr ,3>5<ڦ 5v/5v/!7 %`I78.=>U=>>Z4>*I ?1d[@0bΣu @0bΣu @g8> i @g8>t@ȑ) %B_ߚtjBnbv!BnbvD BnbvCFj4$҆ DN!ODvQD:D: E7H<?F@,Ft{Fʽ65 F/J\%GF. GF. (GF. VGF. G>ɡdG>ɡdG>ɡdG>ɡdRGĹFGA9SH}=JLH}=JHA!djI噵'I噵'R#I噵' JLv#> JYYLJڭ (J7 ȹ "LZWLѵ)O Mu#Mu#DM MlAO OQ/ՆP7 PiЇT PiЇTPiЇTtQ>Q>R"/evR9O"^^R9O"^ ,8R9O"^R9O"^R Հ4R ՀT#A>[UU8+6H?{U8+6H (VPw W "hW%ke) W%ke) %XI2^vY ._3 Y ._3 YA aZRj[+C[+C[M ]\|ܠ^ ^uaSbRbgEbgEcHtc"dDdm| d? (e|Ojf큔 fOeBSfOeBg;gEu%* $hTvh$@ *hSp (hSpjhSp hSp ,i4]?i( j? hD $jlHhjVT ijVTsjVTk fmlkRa&l"G l!hXl&]F@vnzQTI8oS o9FaVo9FaVcpOڅ1X p-4qD q>KsM?'`sIV7| #tnx %tnx uX,ĺ_ugFSLv@[k w[lvwۼH wۼHwۼHOxn93 y#y# iyO/_ zSIbh{w m`){w mR { rL>{!yM{H {H}gvN (}pk}p ~'ZZ ~'ZZ~+T*?W/6{o# 4q|sE *C sKd| jhk `ʀ`,Rx |.RˌN54a V̅ mJۗ ON?OжgwA6o7 j|, e |,|, vjba x #u0Qﺐ1`\4ܦd2tHWpY & S,= /b 9 j7#CZ~ -U%2U%/:Kbd = ?= ?tE= ? 7= ?s S? "gQfb b,RB&Rs1P 1PT@Wu|1pg9N!GM{ok{o s{o #9+PF W#8- # \R` j2-j2  j2RnR1T^y6 W W [n !fa|a|[a|Kdd <`<A \ f.?f. 鵆4)/9"?2/ ՕYՕK PK (r$2U 74?t컻5tf-P- {=W{=%{=8N( $ S n)N`  8H }s(mj hdwį= :  Z~9 ,us$J-$J-oR}5"FtdB \7kD* O ! (? ( TaT,=c0F jG ,IϺՠ Rՠ  OM4j$ޘS4j$ޘ 7 ۶Kئ ]7Y~r8ͼ?CR w/ sïֿ~| 6^RkHBĬ UƗ w52 c Ɨ w52 Ƥ% Z Ƥ% Z Ƥ% Z gWR$6n2~FCþ K0|^ָ Ȭ2&J ?ɨ 2?ɮ/-ɮ/-Rɮ/-_ɮ/-K+|Iȋ g/=LȍN/=LȍNab]ab]$ ab]ʊ52NˈG     {, vƒ,bp; Ǎ$ aǍ$ *ǣ -S% ,S%%Y)ntӆ5HCLӋg? "k6Ճ;-)-)yo T  :)cz\z:7kIVFg p0W?ۈ̖ q1ݨI *ޅWM \ӭ> s/s߈qm +\w?|B(|] |19E!D! 3ǯiO $˦GU c= >󉜀ST>󉜀>󉜀Z>󉜀'c0iZm]N #9eW'9eW'9eW'!>Mr[K3r[r[2ϒ5S2ϒ5K\W\ wARPwT H0@˩ %bt˹b9S 9`kƸj;𓂌  CԸx"]3kvy @{k@{t@{f^pʲ(j *.&xzD8 \23I j 8%| yl1 isA0N >9/?8fAxD8fAxL!rRKPSKPɞ,Uu*u +n80+? ErJ#6ErJ$ErJ p9?p9 $ p9j6k 0%S\ d"C ?G i?G?G s?GߒC^ #ߒC^ c 3 5  WiP nI= Y֛K &^; F;2U  gG@ FBe` FB " FBL FB$ O^> Vhsf],?vE  +x$B=DŽAN ˏ ^ # ^  ^ W) .5e{e{Qe{e{{?_͎ dkz "*6 B*6 ,*6 =& gẂS gẂgẂߥEJ G.6I^Rjl Rjl Rjl H$n ( M +;#C.+;#C. $RhAP*.t\3>jeY*> xުȑ cr."%S1 =QX ǮI ,ǮIWǮIMz ,䜏䜏 )ꫫd O?, v2ѦU"H2MMh["))R#`[#?#Z #rQ Q#rQ $nR %48 %48%!^ &isRµ? '3&Bs(ݼD(ݼ(ݼ)\u.R*ykI* YzD? *т+t>Cc:=?,"+iD ,0_F7j- fOyS-&Ml-la3߈ -@g. ./ 9 .|#1l+1W27? ,R27?s2Ĉƭ\ 2f) 3!;3gn5i?5Whs5=*?5=* (6Fc 6"|7;6.Bug6/Ζt3 7Z훑N7gH 75*?:lD :lD ? :lD (:[ $<5! 9h7 ?lA!CP ? ˂B"UCZf`ZPv [^"P\ 8!\6n b]@ (1]qKf& F]qKf& ]qKf& m^;آ5^A "^enB _ _|j_RR_\wC _\wC_ş (_ş 9`(lm 2a[ja[a[KaƎN&_ aƎN&_ aƎN&_ a]bLwt | cr*Jcr*J dIFAdIFAdpF\w dѮ $dѮ (e<=L9[eB4J榦e~z]9 iejfƦU agVn (gl@mQh% ,?h% ,jh7zIiP׳6N iP׳6i k=kh l널_>tm^Y Kn*!]o) o,p!A pbuy pbuyp^ pܱ%efpܱ%efRp8 |qi/qRjsD o sh%GtJtJv tJ (t^\ajt^\atp #tx&7 vme wESkq*w)Q xWȆy1Hy13y1f&y1 +yJcz $yJczzO]szO] (QzO]kzO]tzO] \zO]Yzb7{[c{iej{[ī7|;_;PD|1Sr #|RW?}zh ~aqA ~aqAD~~#fMJV۟h Q?7ԅ7ԅS썗" ksҬ Pijo&W'pkH֤* #뉇R Xj>cZ I cZjcZ<-} <-} *] -UZHZHQ 줃q\[w $\[w ,D2k=D2k=Qv {R&i g &i &i (X p0Zj 45#+FhF 섉_tRR"㚜 ȇ?>21YYlY os}o? 7>SL}gy2<ZbhtLbhtRDR 哫E7Za|v'rJk"''z ,jI` ,%jI`a=?9{|9 il.eR SX*SX* *#cL|e1?|e1 i:ەw ,` '` n8]nU6n8]nSn8]n n8]n p灺4g p灺4g}3 DP 3:yhj"3:yht3:yh3:yhy4&i?8'G$k (jT(jT(jT'?aYv?aS%֝[+R+=ɺ^B/-n-n?vE: $rKa0 uC->։]'Yl/?+~5+~'$ ` [+R [+R A[+R c/?USI&1j=Ž XT&d cXT&d ~7kke] ke] ike] se iseO/N.k% ,=Xbr|u +ءm^d ^d ;U8HF-X;[`0LK#XL~ ik]ikDik TH}dqHY dqHY|)ʡh@)ʡh )ʡh]d6I6$dp?WmIWmIȎtX|sSȎtX| ,;5dv 5%iA}"eW8 ! %< e! %< j {{{m{{]{ڒQ?+l (+l +l|+l (dP% $d`ȳLq| $ |S a&|Ss|Sv|S/ ,x( az9 Uz9 z9 ?z9 (!=l ⯼t⯼RCYz?Š&l iŠ&l ˜S?a˜S?a"Ns6us /&tc`5ƮtǘwȠ Ƕ Ƕ&ɥ͟Iɥ͟%s$:˟`} $˟`} %bZHf |?%1Upaa UpaUpaUpa>|ruth/+Μhr <_\vpz!" σ'   t?VsYҺ7&/pR qmԻ S %+)EML_?X #yhn^ ס-G¾|U4dU0 s‹Y?tԣP 40 QdRT ڻ~VO&9ÕWi ,ྦ@Rޒ@s+w ES6G ો8j N Sp0+//\Js4R ^&PK:  "uẺ $ؓaؓZ2 2 eL4c?iF8R"蜇_Bm xP KfYbv^zꝪv\BꝪv\B>vf~$@Q'Q' Q'Q'gC%!}40s }40}40 $ d8  A]: x&7= iG[B l  )s"_ ,󊝩hn?󊝩hn 󊝩hn 󊝩hn i8I9'#tGhG?H=DH=D\t o0 eo0j o0-gZ |џh9!8 33*vi?nU?ޣ v\wRuRDj W+W WdI|H: ,-!NPnmz$bju4]*j$g>J+I J+IsJ+I J+I J+I ،  (  HvZI HvZI HvZI] TR T P%6\ĭWS0µ/^ *@c/oɈ [9Dh]tz ]tzs ]tz cv?: Q̺{ 3'Q̺{ MwpIL 6,* 7説Z7説ļ ^ ?> WX mS`@ S`@ 6. -OĀb$N@]-LtQ6 \Q6 2 t) X!1lpj!8ø!8øu!sS !UN" q v"N%]) #b@E3#b@E.#b@E#b@E$ڑ% t [?%Pv%ڸf #'o'+í '*[ (Lj (L , (L )zS )z*8*n*n*=@*bY=U+H-O,6AM- >` ( - >`|- >`.˄!t.=Lm/ /W<" i/W<" /ܞ9h0 (? 00X 00X 00X j0Sv0Sv ,0Sv $ 1-.,1-.2De#ZbR3 ji3 ji 4fV4fVR4{{c4{{S4{{4BW i4BW4m4'8@u 4ܻ^\45o)rK *5o)rK 5o)rK 15_"5= 6)d6)dR7 dR 7Dy)Gi?7:]8ȖM8yN\# 9^8:rBɠ: ;[pK |:vC> |:s >E&/g>#1>"P4S>"P4?YZB?1 @? a@|}6!@$~@~ @@-8A1ONA^A RC9 RCҘ7DEʌtvDӞE T E7WSG T\$CU5Hd Vfr qW;#WC}鬔WC}鬔WC}鬔WC}鬔XKISY2hQY2hY2hY2hRZx9v_dZx9v_ Zx9v_Zx9v_[$cv?[$cv[$cv (\)yY&\i^XD]v% 2s]v% 2]M4^%0^_U#U^ͥ ^߬8_ a_ __ m_ i`f" ii`f" \`f" j`f" a0`f" `f" `f" `(:7#L`(:7#`(:7#a(gmbUúzsbUúzb+ Nb+ c^^ \d-*eSW! eU/U[0eU/U[Red p fm7J ( fm7Jj fm7J?fvňq1f\ R if\ R $ftXPj_>Wkh%Nkh%]kg*a kg*hl{]Dl[mut oZf AoZfsoɺo%oh%7{SoߥCno~BpiO0 rGFrYsr\ޏr\ޏr$usqNtP$?V]t7E u.Z $u럘ZukU tvO DvO YvO vO vT*avxv:C#v:C v:C$w.%և] w.%ևDw.%ևw.%ևwkwkz.;j|f=? |>vlwL|N "~fH ,8橍9QK*W ",j3wUC,j3wUCD >Sj VeN[Ve [0  [0 , 0 Im&|揚 |揚?N ꘒ2 $Eܠ9L%ʯl \oW ,국x EA? x EA [cDɇZI8  Im vk,tSvk,t- 9st/9sR9skI ~ I ~ I ~ I ~ <T]T>T TTLT OOO8Ծt 8ԾtPli Pli ,iK#O̥@;Pv;Pvb C-cΛ S+%$9 OxSnAC(t#{e \Kk=Bv&F`t3Ղ3Ղ ƚS$doEdW!kss; [,v [,vdPumdPum ñj ñR{rDR{r?2}}⻉4\,?wKቚ7 D; ^k2`4k2`4ؿ h'N4&x1n4&x1n;cаR unNwNw_^O3"/ Yh-i4{@lZ+F rc.hc.)d?| R | | $5@5@$7T:ND7T:N\ 5F@? PZS?PZS 2 1^qm,1:[Ь<:[ЬkqFKRKS SKu Ku Ku G1 $/Ko6[ v$?-t L LS'# i %r<I Ae  d;S94tE?eE?e 3VSe(ݴ@7vK|zrc2F 0b*x g5LxK"MxK"/xK"drF iA m#l޽fu?4 l?FP p  $ iE i i i iD iQ@)#F}R7Ƴxa@+~BȐLt ȓK\F%tȦ KȦ-%T: Ȧ-%T:s#JD|3گ3گ3گOvV̑L]zuS ʚμ'm= 'm= g'm= 'm=j'm= in:~ ΝAβ|Kjβ|K M񱔊Z ҋ=ҌY a ҌY iҌYj.+R@v@vCػ ػ|MշWMշWc Z j` /  ,INj,YֹhH)lLv)lLv)lLv9 |桗6%|桗6 ٘Q ^sc;xWLT( wb ܔqrGm{۱څ)8J"S Yq0o7Dɸm ɸmqD*Nei}pei}p̩jCKTŜ4vTŜ4 mt^ajsez%i'(DQz%i'( z%i'(KFY d?d Z ' 'D#EV/S #EV/Z#EV/K3) 1(U1(Y? \l~M#ƪuNt1@/9CC$ZElbm6bq)N/0sHN :E2 cF~jV$ |*S|*wNwx< PHȓ* 6GN6G^jB ^jBr,t~OT Hc*ey G:VTh V8 !) \ NّNSd[?Slj"Od}t7Slj"Od}Slj"Od}:T#E\VUqHnUf v=U . U .U"_gV8 V8kYjs Z.z7*V4ZkaEvZkaE Zŋ{|Zŋ{j[!!N\x?# i]hV?]8x}S]8x}L^3d^3_Og#b_Og#`(? `^5- `$ a>`$ a>`??5 C`??5`??5 ,`??5 `??5 by5?c$F[ c$F[Kc$F[Rc0? #c0?c6ިLd_Wett+?frҁA!gr b>gr b gr b gr bgU:gi[Nh#F[K h#F[KhBziIՋ j!~.jsr j1wjN=jN= jN=jE .k'ljæ=(Rl݈omDK*-@ mDK*-@ o O>o I 6SoWg.oWg.RpPwp=$ukq&2]r ea1_r or o$r or o r o r or ot9| ,tf!tɄ u?ݚ? wQd4 -2wQd4 x>Z8ot%Zss%ZssD%Zss=(,铥 $ wnZFRFFYӞtcuiAD]1 O#m?7th F .j s)Pg)PgN|;  & m Yls?) c„!\ i8o S;/  Qɖ'4jˠO5.O5.DuO5.KO5.O5.]|D  y`G4Ky`G4RwrdwrR<YS`~9bCU%;U oe moe 'tUt'tUvɥu[ = 0 02 Q,w j=TC =TC$H@ |y(PN %& [.7 v son dS 2NS}ES*$S}ES*S}ES*L0Rj-0R ,]G ]G]G YM (YMtYMsW5 -\W]\W64 /yvsj vs +QHOѷ] J l/oSZ P*P*sM1RM1z`Y%n܌sľ\? ./ / >/ B/ / 7/ / R oSl(H@ ,H@  H@ ( H@ |H@ iJ~'b:Q לDI-kO a ?+u'TK sJ \( ]A6?A6 A6 aJ[0 O0 O 0 OjL n20Z*aJm>Zmgt@ƾA0$ ,֮Qa,֮Q] ,֮QRccH5[ccH5[QccH5[ t>3@KƟNQ&] ƟNQ& @ i @ a @4Ǔ}!YKN 稗~2Y?w $E}1]PbIt@?M/UHRM/UHdƿrsƿrs 1Ȧ1?, Ȧ1?, ePnz'z'f=[۞ s@y2ts@y2kAC> ^݂JS ͘Nͭ9?'ͭ9ͷ (ͷ ͷ fD (iY{R?I`kq."I`kq.I`kq.I`kq.#/UH3\4Ѧwï_`^RҼeؗJ \ ׿w%.%..?P`cC=ӏ "ԐZz: 'F ՙwUՙwUA \}юcKE~/!E~/UE~/E~/j֯.tDvr0[ׅ2k3ׅ2tׇ0И9 OUo  l nL6b 5φ # s'6OIB 6OIB h?&c L&c 9s'j O aqp ktϞ j5 $ )*)*a)*Z_" y7_ty7_ by7_Vy7_Y-y7_s(y7_ !N 0Yuv 0Yu $ 0Yu Zr1 "O͐b5 gE'X $gE'X gE'X mgE'Xtւ9 #1Mj\1MjR1Mj1Mj1Mj1Mj\EK fsJ;J;RMΚWͱ -E* Ki^0+_;K+_;/+_;d +_;X2: s8 #;9[Ut=9[U9[UY,]Y+6`"X9?^^Y\4PY\4P3G VԺ8 $!А>m >m ^m 1d4?~(7jdHN EA# Q\ Q\jQ\ ipRqHo@pRqHo , -_c~N{,Ŭt{,ŬZbK s) PS"˹1 \OqK Oq?UT˝L ˝L ˝L_8L̦RJ+~? \ J+~? J+~?tw2 mͼ۷SK%a9R%a9S %a9QPSSlSn  H"u{  r"Wl Vw (8 Vwt#MzTWZ`_fn=p?n=p? AC@GYtlg}I6 #`{ jBD jBGWnk ?qPhw \?qPhwb G'?|(\~- \~- i>_H OjzCU a U UhUj S*? K>k ? k NΞ g W.C b *` e i  i ,> i i i L6cm(8"*vW if'Rv7Kv7(ѹ:c]?܊YJa 7p ^Ja 7p gsc9 ٞ;7^R  Y% $~H  d244NU] ,IU] U] U]|>ACt#>%l] ->%l] PN?*;a a 9xS?YLo}=[I^t46S/$S7L .c9\PDxc v%$IxNd xNj<NC! !ș,!ș,";çR"k=}="LwCZt"(?#%pfV#L3 ~$#L3 ~L$Qb3&, &p2P &p2P \'rM% ,(8*B[0(d:<(l7?([*C.V*o[**"t- -1- 0- "- $ - i- - a- e.'XL.ޞreUj/6R/?s30]|0]|50]|*0]| 0]|0LzN1eMV1{C c1/0bj1Nl8 2D9U2ĥ&S3D[i;3D[i;5q a5ȧ_x5X+?6A(t6a`!6a`!s8v$8v$8J9L:4׺N:t%ؘ$;g;mc;!6yv<Ȫ=<[$. =AG*٣#=AG*٣=AG*٣ =AG*٣>H ~>_ұ?= v? at? aY? a .? a ? a ? a ?b] ?D EKK | E/c#G(DAG2چ` G=leuGuLS SGuLS LHFjHFtJSW1d KOjs?KX0CL͑P4LNdvK^L #MY1NMQ]+*N 1QmZAsQmZAt QmZAkQucQ$U?RRe \TD{ TvWdY T ct? $T ct? gT"+7RU>޶S Uhɡׯ?Uhɡׯ (-Uhɡׯ U"|H U@3?V5fW#w~ X  X8 X"V~RjYUIסYʙuZ![v9PJ[bz3\ >_' (\:E\$`QH]Igfk ]Igfk ,]a&@|]a&@j]³i8ߺv^c$ $^{\H^P].A_R2Z<_]_``4t`4t`NE`W``lR)`l#`l`~TE \` b$ ̬(bW)p b ہSbeF#ctcAQ c\ [ $ cUyxdR]1e]f~# f+-Zfŗztg:?g<0*; ,g<0*; gSPMgRsgՈh(!U3 ,hmV_a.<8Z\ntC\nYC\nk;k;LH;S;K; !Nru%?r򍶁tIo v]% /NzYt/NzYk՚vspj'2dspj'2LbSj 瘔1ꗑuZ &yH5s(s.ZP8_xP8_x?B|Džvhd ę~RC~o)8 |hſ~t8^M<t8^M't8^M(R͎ hΧo>vx} n@.[,(?ч+`v^ ,ч+`v^j}vZ? Ӆ?8۩ #!^Տ >^cs܊s܊Is܊ s܊ N"x N"x rrr]t - ,Bk \؈Te3%bRy6^R, , \, (ݶmSo8͉  T5 ʁovzdpa T K \Đ^NSR$~Wv}e # (9t(9tS(9t5%a' 뢤8R'뢤8RCB3o;*t V3D HZ) HZ) j*V. a)= xiM   $/BG'L'L c0@B >f $>f ,>f >f>f (Sj|Sj|eDTS DTS׻R g(BTK Sdcs"cs"@v60 =Z-tI-tju-t -tY~-t e-t -t ݏ9Y|U nVpMk@aƱ s 0+Fj 0+Fk 0+F 0+F 'E4 ǕԕǕԕ ǕԕǕԕO&Xjsq6 q6 S3K^L ]`D ?-MD $Ze j/j/IdI j*IdI tseß[ "mŘ"mŘ .nL.nKDTDQN  ڎ ^c\|N id2IMRqW209u*g:\Hb'Z=Sk^֏ZY \}#| T.uZ]w|"?C 3 , 3 i ]4 $!d% R!;{;!"fd!AL61 !AL61 !AL61|!AL61j!AL61h# {# g$+BPC$Sxs +F%*P@ %VR6[ b 'Heq ='Heq #(&Zt(&Zt (&Ztd(&Zt)JdZ )]PT +S (+jѮ7Y +z,B 6-E -=.Kj!k .Kj!k .2ÃZ.2à .2à .Fd.Fd .zz/${5K/h<-?'16/s16/16/?16/1^, s24ET婋#2V33v[W4R; )4-4-x4-d!4-4-5-J1Z5-J1,5-J1L5-J15Ts e6o 6=`:!6868687sVt\ 7}\ 84̳i\Q:NL ;h4 ;yn $ ;§ x H k.>H kj>H k $>H k (>2Nr >2Nrj>2Nrv?Oŏb@/u9?A;Ơh$A;ƠhA})DAӔՔ cB|ذ $[B|ذD?4 j'DQ2 jDQ2 D՚3'E H3K E H3 E H3_FEhH9 $ Hml`(tI:YKI:YID*C#ID*C#JDNC JNnKfsK@GKZ%K.>qK.>qLSKN+|LSKN+| LSKN+|DMpә M0* (MOFMN@c]]P@l"0!P@l"0S QE Q_Bi-Q\Q\Q^_lRQ{ڑQx \Qx nQQZQQQRfs?Rf $(Rf Rf RfjRf RcQR ]R*R ]YR ]QR ]ST%T$ ^ - UBv V OAO V #1? Vxc (X7`X7`Y YY YY[)(Z_hY?[O1N[*  [ؚ$OS%[ؚ$OR[ؚ$OL[S g]`XT^YЄΨ i^Uk._m?[s,_I ^2`1/s `B ϙ `o,NN8`ZT VagܝcˑCdq ej)e"efdfEfgmWW8Y g`‚ gU4gg9vhU]{3 m/iγh iγhib8{6 j~ jдgpe $j`kҴlS[Km&?m~)Eyso MRo Mjo Mo Mo MPo MQ q[fr'r~> aMr~>Dr~>r˶kqr˶kqr˶kq tf\Dutf\ u_B!}6.L } !N-]yGePjjQ,d qy?a lCJxkYV? JxkYV JxkYV ch6wh6#u+& C܏G%_nH;tH;yu%}Y)w.͵}С iɒ=v [.jp/<a` , i i i id|1Y,j,$`PdY ,$`Pd,$`Pd= tcoЍP"$#V?coE~ IN !Kފ<&5y {^am{^amR{^amK {^am]!U]``j}JY]&^D@t(,:4?a(Oݦku OTqBeZDLZDK* NL 2QR=Z]=Z jz3sSuo*) %*) *)*)ڧ Qڧ QSB?:۹v TO4 O4  b?=j*mR_d 7T 2>uzjuz] gV] gVaaF -U XU*=\'dn9R@0i&7YvLpX9 l1Q 7Q 7V(j «4e뤵 $ Y i Y nz $yWf Hguh?{Gk {Gk lBkxlBkx b@ { j9u"m:dʡHIZEe{I T+܂T+܂$j$ԝX$7 X$7 RX$7 x sȖ QU Xoߩ{Jv t Jv Jv  |> bd]<|L&v vp[p"#lLdO\N?O\NhO\N (O\N O\Ns0F ;Y(T/5ê0fSf H [28"5) (5Z!rƣط=@%R| %LGʋccS˫X}=lߴ1=lߴ ,UDR9` YP5 #-͢=^h/͢=^hK͢=^h͢=^hԓ/b3ԓ/t-ԓ/ ԓ/ ԓ/ԓ/ (pd҂5$v ҂5$ ^EPt"aN5NfTL4 wϑ.X ϑ.Xt }|EV}|Et k[t3wϡS tXM!ݶɋ#_X7 =v X7 =vsX7 =v$ԜwW lԡb혓Ԯ@c  )1^& a)1^& 1 քH)vօ,O3Aִr3>؞Y [P[׀A`9Ԏ .9Ԏ 9Ԏ m>4uJn?Y:kٴ|.w?pXLYjڟw a u_rԖ ݮ^j ݮ^+=|/t֢K>2 ,03Xn$0n$0fP@Gv_r"Y_r"N_r".FFuPu︽˂︽˂Ru︽˂+︽˂#︽˂$T jj^5 Kj^50w2RS[*[* [*0k?k\^  I I Rr -Rr = w ?/N!z #TJeD~]'XIXvw~"&6LLU@ћ?i~ ~?'s's .FcB=aFcB=FcB=LFcB=!bHR|WkN˿Q~*xyOq xyOq0pc:0pc5= i5=asƅ^, asƅ^,:asƅ^, x, $~ڷZ_ftapjapaps"UfT fm$2 ; zmHAKF|$Ah&YjWQOS&Vj>ewbNz z ez j7j ] ?3ˏ,W>?tB0?=*c3?=*c@$pgR@piEg@.pn A9.$A9.#A9.A;ALֻK C΢^tCZ낉0?C{ D+!B D>^gg UD>^gg DvM, a DvM, iE-m,vYE-m,EDE FR.4WGM% G]tG"zyH5lPɗHWN ;H J H><9H><9IMƹvIb˪[?Ib˪[Iy IPIJ<_( (IѹI{ ?J'-xQ ?JW꘮JW꘮JW꘮DJWa#JWJW Jՠ3t Lk]Q Lk]QLk]QLSgN aL] MMm1A8kvMZ`lM˲ Mew#qMew#qMew#qN6@9LN6@9NJ}" Nց/n ,OZOD\iB?uOD\iB OD\iB iOD\iB 3OD\iBj OD\iBROD\iB \OD\iB PA#}PA#}Q B: \Rђ]wLRz/7RAZRӦ/TE jwTE T45T45T45 Tw Tw?U*AU*AUaiNEj UaiNEsUpm>dV0lB V[VV[VVKH #XK?X=< X=< YZ{"> [qP: \@K;K\}^\}^ \sG2Y\sG2 \\D4]iۇ5]iۇ5CA]iۇ5d.]iۇ5K]iۇ5^ \ a_JLA_JLAS_E_(Y_E_( _\ &y`A_aE]ɤam3CNa¦a¦b#:})Sb#:})Lbn5Cz^dV<'EdV<'EdV<'Eeg΁f~Og\#og Ǩ icj,ivÛ՜~iK"^Ɂ j0/SjJhNj;=)|j "jcүkf5kg0 l$YKv l7a}CSh}Jх}{N~iC ~iC \ ~iC ~kfC , ~DL<։ ~Ki#z $-ŹQ2Ź ŹCŹdYU8s o0`so0`thKiFEK:wSz:,wSz:ǿ'4j*Plj*Pl a4j*Plb j*Pl 4`ŭdUY?8t,=b,=b[,=b^˚l ^^˚l (H^UH^H^DO* i O* ]ds]d(۾o\:]CԞ[?$ kNWk% *-7I1 ;.$;.$hd_ , ·֣*w Vs1  ksM `s dqV qVHB@ SHB@ Lk&. XsZ^0  EnFf9?3(?K6k45N꾱j<(ZEJ nK@RLoTr i@?uBK"g-p ŏ DjS#DjaDjLʔ&.FG ɨs~E Rs~E Ns~E $s~E s~E s~E fKkvY K\s-Y K\ , ,R,o`~v! :ȷ/C ȷ/CU.I .I s>6s>6( ( X/) X/) X/) $z:E (z:E?0RCɚ  3z 3z  3ztU9U9QU9/U9KU9U9RofظB J!? e˯5-ꔺׄHCg` #Nb`Mqsw$rw$rw$rea)+cƉ!,vK BaKBaBaMI?t etҋ;; W|'F|l[9'F|l[LT2.k (O7²T (²T ixF1K=< =< j =< =< sEEbEttE E \óvux^iFux^iFvŀ][t B{ .?TؤjƄGmǦX<Dcd6yDcd6y sDcd6yKѫ[.HgӇ lg:Sg:S ʃ ʅO9 ͷ D%˸y!n $JU9JU9 (՛it #՛R IQJ\|.J\|. J\|. J\|.J\|.sc$t sc$k)+D0d]sV]w  cMѤ?FK|E|E >&S>&>&LiFkiCR "@ok(ogt OlWOlOl%?=0-0-~tfW" ?՘ fޓBKؘҍ ؘҍ rJ|^|DR7RӤjڀy[,8 ~gGaϵOG}A:߬'ۑy %R 4$ɇn'$ɇnjObd\? hjJ` $ J` ,}JXY Z Ē*U$Ed :sV m m +H;IF X"R.%[~h7+Loz5?C c_{B_{BL眖$'  XQQ. XQQ.|XQQ. g XQQ.XQQ. (XQQ. sYN;? ꤾ%3'9Nf_ f_sf_ #B l 봵wf ,;A)W ;A)Ws#s08Za{[*z c 3D r gf@vByeER-*pӦ3 $]Nϻ#oRR#otV [Ց $ Y}5b Є8At FSu FSus=1McdJP "JP F 9F (F F@]#ZƑ]aK4fJߣ6Jߣ!JߣS >R>]LBeu A%plS%pl]%pl%pl nE ]nE 11jX:M3:M3 a:M3ëbԐr;2#_;2#_a ;2#_;2#_A 1a"s}y*9nKݳ<ݳ<N `VX~M# c#C W}j. W} W}t W} ( ?r] ?r ?r > > Mtt! ( Vp q$ e %O[Ʋ $ k!aZәә әj.ә `̩wNooZFD<>4 #>+rU@Ox,hK(jA(ARjA(ABI809Je?9Je (9Je9([L]([L([L T? T?Ty ʕA \ʕA 5ʷREt]?rEt] Et]j՟ mi8/PS 4vXI}ߚ#̠}R|8R,2b/|8R,2 |8R,2tɾ k BUBS by>"t lu !Þ !JӍ}!Xjm9 (d3!Xjm9 (!Xjm9 (R!Xjm9 (P!Xjm9 (! !<#o?"~="I"&s#?w,?#?w, $#G #&)?$6ARA $rp s$rp % ؅zK %du%{T( %4%؟bU&N&N&Ι'x|Q'x|K(f``Nm (tX i(T(/~Ïl ,(pl*ok,?*-+؟L (-WB!:-jC6% R-$^, -N?`A .?-7S._` r._` Y/N?/یBi/یB/Ϭk*N/4zO|0*?Qs0*?Q 0*?Q 1 2f2 @f)2 @f) ,2P¼n 2S@v)j2}_Z#:2P,Z3;h4j3;h43an`y 3*333t3 48: N4LVR 5N(5&zt5ׄL6Sf 78A-m <8ہ*8ہ*8ہ*9y)Pj:U^ :U^t :U^ i:>8s:>8? :&B {. gv>][)>Xm!D >Xm! >ɞO?r@p0a@zI? @zI A*<&AP[6SFBT $BT BoCugSDSA cGD~`v~E]\ErӅ?ErӅ F /© F /© (F /©YF /© F /©| F /© iF F6Q9v G2u/MG2u/k4Hz.E= +I,wJre, ,Ke, KIv KIv aLd LdhL8\RML*M;8\UMNKi:DN>I O ς=OUB (RV!b cRV!bAS: S,NT ~vT[4p?T\Tg,U^;SU W}EY}_ Y}_b$Ywpj9Ywpj aZsZB7a[Gn\ohUJv\p%uv \p%u] -](p,u ]t-^k_%_' \ _'_N( _N(t_= _=_=Y_=t_= aM+dec#j_ c#j_d=C) dOdONepYsepY fXZ g Ng`h䪆w$ h䪆wDiZQg i-tjT5jT5?jT5 jC>XvjZvõkԓ Vx ,kh4 Nl q5 lfO ilgG+vmmZne1noҠ o0*hoLVNF o;P͜VqǛ, qoM^Nq0;-rF 7KrF 7QrF 7Rr aMr ,t#ZHSt8y tO~; N-t7juYu iv7=߲v7=߲ iv7=߲v7=߲jvYy]CvoW7 voW7 v*P)wbwk"wk"w\%?w\% $x) V y=KFy=?yEyFѫy9`ψy9`ψK{s |.& -|CZhܯN|CZhܯ!|CZhܯ|CZhܯ|JI|7 oK |\[ $}v8 }v8?}.!}.?~&2dB-~r ?~r \a^ $+ gJ39[!sFL{' =&֔&֔&֔'/^J?,X,X .Q.. Gn GnLGn7 xS B ՞Mn cC"R _&Kw? ?38z݋? '/'CEe z~)2G *} #: ^5#?lhNS%~ $ } a3?k lx>&G †O.†O.2e o'F+ a/Ӆ>XHO a2#Y*3 HǁnI TN bQ $j?ch)AZZu Rewz #Bwj]a ,+]as ?ܞ2FZ;̚ ,X^:X^? X^ (&]M?)&]Me>]?p7* ^):ۛ8 cj2w|#dKE#d E&KU E&KSJR|2JR|jJR| JR| $JR|sC,ΘC,ΘsKL|KL a3 a H.CZ̫Zv̫Z o Ks??@X3]:@X36@X3LM@Qƒe3CX$JCX$JjCX$J x+x+!>̐l>̐l# " ʦ TÛ[ m9ѕ6jO@ ,Q3 Q3 e"D*v VK Kh֨lKh֨l`Kh֨l5Kh֨l,\nv \Nv \Nj ~=d ~=d"UۨP"UۨH_G)J |R|[@Lo_ĝ&ekAAQTzíQ;b ǡ/ %Xb ,%Xb %Xb ȟgh~ e 5CDVȯVȯ VȯQͶiZ'ͶiZ' ΰ=qΰ=q ΰ=q$ΰ=qRbXr?bXr NAV?sĆE۸ǐBcC aBcC BcC9ѫߍjѫߍ cҠ٪E $IҠ٪E ,AҠ٪E$Ҡ٪EҠ٪E9Ҡ٪E e0 , ڂ Lt)u ?T3vŷ T3vŷT3vŷ[tȘ2@|H ە ە 3    _< (_<k8p^t8p^ ؁"t؜Nx ؜NxK؜NxR؜Nx!K !Rs՗t$yPrsYڂIG T Ŧ SR`ܓ :$k(is5U޹&#KИDUC^7?ѹAjA) jA) $jA) Y*R㓎&Q e1?1 1 Ρ (2_QCJiC)QF:>F.6>F.6 g g SꮝO<?|Syj: ,yj: yj: iyj: PuY , !Qei_foZuy$D9s>{>t*ޑA) pl$U/1F POaUtU D#zx Ȗ'sDŽǪR(s.*մSrմ3մqhǑףC8A ޮl3ޮl3Lޮl3 ޮl3ˋ0%= %= $ y] y] f-sw• *5Y{r}CY{r}+Y{r}]Y{r}RY{r}mOoE"̡eE"̡e\&pN(l_m=M$MS#rv?9#rv #rvsTSjʬ)bʬ) $ʬ) $"ʬ)ʬ)|%t % }w+q: [ 8j :4^ 5C 5,v),v)K,v),,v),v),v)a,v)M %1R"i) ))])j< ?# ҆XS 8!P DC9[Dm #Ff"-Ff"-Ff"-F*9 Fó!uN (FQwYjG Z HFusH\LqH5# Hb[tI~7 3I%yJ wpJm}eJm}JEa5i?JEa5ij JEa5is KJK,KKC KLFPMZA:RNq3k:Oukz1 Q CQkQsmd?R/͜Y R \S lI S lIRSt3qT<T<#T<R UܙVЖ^W'Dk6W+١% XA@YZhSZ8Lv$Z8L "Z8LZ8LZP5{([Z)ة5Y[Ũ,Z[Ũ,[Ũ,a [Ũ, [68\l[0xl[0xRl[0xl2LDl2Ldl^f~[ mv00mv00 mM!g&] #m}am}S n5 qe%x|H q>v?qX]r2ih jr2ih rPr (r`e9v t}p9\t}p9\d u%$ evY9.[Kvh< xjrC= yI%>0t*yIN#zYa zgiz }Ht|yP@?.}}cF~[- " 0j?+7W_[ ֶ  ֶ nڭ2 zY zYjdU ځځKځD{b ${b{b a ? *흛j "Xj i r.xeP .xef4_ĺ3v+4_ĺ3 W?gv ըYr GNIﰟf[ ,>˅~Ds:~D5I鑅 Lo} I^դDCbA&LA& A& A&9It ן nwt57xxCsG $,w>Sm+W?Q P PbF!H<jh#R.? 6iSI<= tðGjðGI?|&ok%.&yy >EBn E ҨX;#:!:Imc v]DXD NLh]! Lh]! nz # W+b3` h'!]RC oouQd\ d\ /=/=}IB @}IBiyS5* 2䥶`eR,af,a ,a,Xv%¡ۥ΀R&{[jWZ[|z.xpD [p1?Z_GY @ ݹȬ 6h&,2N҉ ҉ ?/uKb ljs᱐ ,7 .@< )Z̤ O cQw[Qw[8Qw[ Qw[ ΣTFgBs'{? '{j%a! %a! %a!?o0~`ϒ*إvS JiiS nMmkS&~ Е>p *6T*ՇI"*H|J> U͹YbY b iӤ-&/*39ݏ?UtJ-SFJ-ZJ-a! z: ! z: $v_vØ.3?;nf;nf;nfLBRX?نNIx ?1~< ?1~<?1~<y2|(y2|L{@?%{@ a{@jۊb ۞3xe #Aj5jˑBl!RS6^(, #^y2SP|nY |n^ &J$aFd.B "d.B =V ,hlxuy~w@!VDEi<R   c|^ <ci + !?/~ Ү<5hҮ<5RBSNA NA 6O$L6O$Z؛H @؛H , ؛H $8[:*1*1#F-b$$!GI ;!j~}Ltwfg? 5050 ;222  r@q r@q=z~gr~gr~gr~grɣdJɣdJ.)!{s .)!{kI)n[{C{C {C0}~ ,0}~ 0}~ $0}~ ܐ5BNܐ5Bܐ5BRgZ gL%oբK%C {UJX2 c1H㷄 s1H㷄s|I= eZKH cs}( is}( %ˏ!/?`t CS 9~S>JpJpR Tav,> ۰ \ ۰ ܢkKGˠmCjTE}]TE}]W$oR oo*Vd*"Mᮘ ,"Mᮘ jP7:!yxx{c( ye cqMhR 3D+ i  m0j Y a# YY 8NC>  dRوD 5l =0 # =0 $! =0  =0 =0 , yϠ(-h yϠ(-R  $:0 $:0 ,%ɇ rx &f!?&G+ &G+ &G+ &G+ K'NDK)tt )tt)'+Z)'+)?V *iv ?*֬,j$ i+jjK+ÕZ(-+<L.sm~ 9/k li 0neC1&+8 +1sʓS2 F22\s \5 ú5"։Y6@@ e 6@@78oOki8vЍJ9嬯"98 98 :&ZL:Rk ^:<|:z^R;% e=E8>6 |>̐+D0 r>̐+D0 [>̐+D0>̐+D0 m>̐+D0 >̐+D0s>̐+D0 >̐+D0>zT2Z>γn1a?; s?\6H?\6 ,#A$ZrA/U斛 0A/U斛?A/U斛Cu\ ,C; C)L C)KC>"ZD'HsE/ ELc6FcMuLG <|Hg}.}RHړ =Hړ = a Hړ =H1/ % Key9 #K]KLK, $K^.?K^. K2J t K2J :Lxu|L|"&l Oy)o3O"}@XP-HXmtQ}34 ,Q˗Q v Q ulR +W , RWn (USI*O USI*O iUYRU+yG* (V')^VܽVVon[V ʛ 1V ʛ V ʛYW9w2uNW6 ,W/=sWeAX,v]1*sX,v]1*|Y(«^SQ ZnZn[SB \kõY]ifl ^%a`u!Q? aKD aYa aaǙ=&aʯ<b6\HjS 2 b*C;bYIy c(xDc:Yd0N d,N dĶ dĶ iepZf9L ,gA]gv{6g捯 [h#KAiſs juðdjuðdjO, kiTx lsr slFmMnyElnd6[ n(੩( jn(੩( o(SSQo^W6Y #o^W6Y o^W6Y obl$o,A|q ҥ q ҥ q ҥ \q[oԝ $q[oԝjq[oԝ aq[oԝq>FMH %qq qr|6ELr|6EsD4`<,?sD4`<, sD4`<, svsBsvs ,svstpWu[U1 ivA]BDvw}9w ]owC#Z wC#Ky.Z .z+O$,LziOAzu7j{-!{& {c6){g,CLj{4V{4{4K| t|RM\S}t}tNs , }ט}ט }ט*5;?ܴw - Vubs L¼]t?ϘZ_7I7IO7f&0y , S 0z7d jt? 2G:s2G:  /\ IfHHl* Ll* 5D[RX@h0P j f| tɶZ XM5)?l٥R10V[@[@ .׀?6j7amRlJyR?tyrGg b%V \ a5SEDŸKDj6D?DKEKVEKV{EKV iy4˞# y4˞a(oZ ?R5Z |ewJ $|ewJsU  n7| 34*,6) >a(L2p}3ut? `|2?ƐV%hc Ƒy$ 2$Rl7=׺Ba(7=׺BSlj1A#6`?6`R 5B}B{8P-ƞk-ƞ a-ƞ (-ƞ ʯubs ː) wM \zK #$(霨VK(霨VЇ`GF,7`  ",OҞTW+AyJC \DtD| D3Ʉ& skk ujۘy1.R84P=C \^2 g \^2 w-?w- w-AdB> jݏƱhݱ&޳iY NAQ F c F #FW? ;$m?R56hR56sЦS RI DL7I DI DVDZfP VDZfVDZfKVDZfD뭅 [Z6t$ | |  | Gxnw? { 'w) CKK$\gJ LL^f y  y j úKL %nF'6˺ŝ6˺ŝ'f ,f* v3T#K3[ -~*Pj-~*P-~*P $x8C< }EgMy]nw $']nw p=Up=U #U׏ 6U׏jU׏ ,U׏c!P՟-y jy 2ۉj2ۉ3zw7o(I+b?yR8#-c,, eT eT R<d1r aD$̆PH H  hYnq ar-!ÉiQhBjj$Bjj L=F cWt[b\fu S SDw Dw "[-γ"[-γ"[-γ"[-γɷg_`(O $ _`(O - ֭jUa/ɡ*,AB!Y !GRI2 @{OL )sK `YAL">eG ">eG$3t'$3t%W%W8%W&3 fO &&F&&F&Bj'\sC 'k  (]yF|j(ne1L(ne1),G)GP1%:)GP1% )GP1%t)Dd)B.9* 7 *mA&+Nl`+Nl`D ,-K~ -n涛 -zIsf-~.fS5}Y".fS5}.}@J3//[LTE/i}S/i}0$.j0jWb0ˉ?1lNi 1ŧ`25jN2ee5L 2SY2L7DWt2L7DW2L7DW 3`C4 #?"fr5qt/4^ 6g3 6g3k6g3|6ȸ1 e6D(46D(4 i7i~  7&?=S 7&?=7&?=8-# g 8-# \8Hԝ?a8Hԝ 8Hԝ ^9p9p 9`l:@@Z V3:A9~@fR@e $@e B a;sBDEkC]0D8tDhw6?Eo8EoD EoKEoE=Q \E GZR.ONlIz)jIڍn3KIڍn3SJ/G5M"JR2JR2`JR2LJr  Jr K4 @t $^K4 @t (K4 @t LB>6N Ӆ NLFtNLF aPAt  ,Q}?R6 S S~x (TFJE TWLhT"}@ T"}@ sWWĝI$WWĝILWWĝIX>-*QDoX>-*QDQX>-*QDX>-*QDXaJ XaJ XEϤZL!k<s[6-UZn\D ])` ]Fiѕ]ňH]ň ]ň_ 3I _] _]`g=(cN펏udco-d"v+Nd>Kʎ+v eX馊iEeX馊iELeb C if0>x fߙK" f*vg6z ^h.`[ h.`[ i "?Ci "?Cil6̷~ +il6̷~til6̷~kj.r &j.r j.r k8G?$m*q?7mm~tmm~kn0O/lT in0O/lT (nI>n&n-xK o^׳;$ o^׳;$oCpz527Y qSߊ qg# $qO4q5 . ,q5 .r r r Rre:%Rta\+ku*u  uߕJ ve| M (ve| Mj ve| MvžsxeN%{N& }U}v}U}v~v4( d $%qL $%qf $f if awFE>{lb%lb% ? K ? D j\h~ j\h.}: N^#c+[c+[ M%( sM%(yu^I,ͫ o j~B9 s(DiHXbyT:?'#8z(pgb |cɽ cɽJ"$J"$ r: r:r:sr: r: r: Xj8=K3t!&ku* ; <5]<5<5<5Y; d%i0>%i0%i0<jhn`R?Y? R?Y lJs| cGRM?ނ @V` ?@V` I6n I6n׌  U^o@KLjSjaj jL j j OFRj<]W?ۙm` (ۙm` +?yk} K K #ݥ [!k[!k[!kdw Zb?v; G3u+fEvG6Hߖk5(?NAùN%30@9@9P @9 @9jĆޭ\+S";? +S";+S"; $+S"; -4\Æ8RoGMjȘ_!1Ș_Q'Ș_R['M U@yCt4''/Dϼ+U* #Q $ (C|bC|2Rl@ wC цR цK| ch殘- c *m"E"E&6 s&6tR\Xqvj,M?t|K\RxصГo g00 g00ى oى o , ى o g)^L $ }?l m4 .bӡt ܢ Whܢ Wܢ Wsܵ7_Zs$ܵ7_Zܵ7_Z)]&xNh&x&xK &ycN(l(r(?ʭ i(?ʭ (j- (mL (mL(mL ((mL)kd'a*}|H*}| *}|*}|*)_*,X^= ,i@],N e-2|[` $-2|[` -H-HQ.[g(b /zU~KI /zU~KI /zU~KI /م/j/j$0kZ2~+5o8 a5ѭfs5ѭf 60, c6H|6H 7MEJ1Z7MEJ1v8Bհ:3_?;Ɛײr =twR=c3,K=!6>R,a >'ߩ5 ,??2ztS@E+|͸ @gAD_A篔AkN Aꔊx1QEݏ.^ Ee F7 G45wZtGp` G0,: G0, GĉSGĉHoc HocHBRp{-?Hj?Hj HP (H)g] I3 2IsJ4_T$J4_TJ{k6TrK3\Y##K3\YKKr]->Ks%KTX?K ZCK a(K LYB L ~M+Y$M|/{s MwJN?VMwJN 1N1h cN-O]R PQ,Q]-; NRke"SG# S~T B -T B -KT@OL?Tu!&Tu! Vw) W"Rym \X"ޱXS0 rYqD?ZFߙZ[xI [ %% i\! ]]d \]ғn ^Unݎ ,P^UnݎjH^j_{n `$`$s`bV+ ca4Q)[a4Q)[RaXPtb&#bb# ($bЂ گ icF♘t&cF♘cF♘cF♘ cF♘cF♘cF♘cO%VQkd39d39dxHKsfi_->oRf#PY &"f#PY f#PY?f#PY (gHogHogHogHoQg%=Om g%=Omg(>x gReSO jhzNь h.vhoi˚׉ij Bc &iޱB| j3- jKjKKlHQ n0Ԛ r/c6krWa; Rtzu&HE=#u&HE=u&HE=Lu&HE=]u4Zxzu/?vPuX vyV XvCM wz mw)!0w)!$wRL@wRL@LwRL@QwRL@Swz wz xy> x9)0(&px9)0(-YxQd!xQyS$Kz6|\zg\w[zg\wzlj*z  {Cv{BL8~t|?<=|ڃ} ,|ڃ} $})}2~-D s~b ÏJb}?; b&}?;bo3` o3`t€Rf r€M‚qm'‚qm' \o‚qm' J‚qm'7‚qm'?‚n.:ƒ>„CU„c…-w׏…81?…No \…No: …No…No…թH} †k&Q†k& ‡3/ ‡!ƛ] a‡MRZ [ˆ,U1f ‰ ]f‰ ]#‰ ]RŠ!N3ߤs‹em!‹ 7޾?‹ 7T‹hi$ Œ%*FŒ%*R(Œ%*KgwYK|wK|wKK|w$hŽYPW't 7< ,]ᜪw i]ᜪw W]ᜪw5]ᜪw ]ᜪw|a@‘@b.НL’n֟R’ 6’ 6$’ 6’NQ^ \’NQ^ i“Y\ V38”8hVj”8hV” S•*8DOx•hFr •a, –$1&?–Q –)k%—w6~—p% ˜R p ˜9t˜=Q™SHš 4]?š 4] i"š.o/|šO] ›]DN›Z%OR›N)›NZ›NS ›N ›N-›Nœ88S==ZPp pž g gž? Ÿ jM5Ÿ jM$Ÿ jMŸGH cŸs^?Ÿs^ FqE1  R…6 b, / $ O= m¡P#t¢A<,}?¢ٓ £I£FzI#t ¤v2d¤|ޭs¥.k]¦oE¦3s§#KfO§#Kf#§#Kf§#Kf §?*h c"§?*h #§Ci1t§Ci1§o-z]P (§ ©~ i ©~ªfΞQ?ª`܍` ª`܍`$ªゥ?«/v S«6F{,«Ba«dGQϪw ¬^¬^t­E T~­?0®N¯8B$ °InIS^²M4³InK0³BfH ³BfHs³BfH i´*,µ=6Rµ=6µZxsrµp!\ µp!\ $µp!\¶ Pj·?J ¸9oR¸ܪ؀.¸fT@R¸i`¹;N¹p &q¹*v S¹*v Sº% tºRdºRd»}s9r 9r 9rj;pC^tSSeSSSSRѣUT?R9?R9ja F0 ١g>U!?ei֤wjܤݤN݌N@P ! # އHPb}3: n+>P[grВmgrВs?#7VV4.yi[yi[ ,` e,tZ)ǹ Z)ǹ?dnXt Wxa  R(6)?(6) .Am#VAm#VW#V?%hz#k|c\ e ϗd2ۊ b]l5BKmR5FoPP a/PPtPP :rJ,== JiWdžNiWdžRiWdžQiWdž Huq>% ((>%| >% ^ >% >%>% k p hR &yզ &yզ q# :h[ ]#UXs 2 UXs  eؒ3;e m . -EH  c e  s %  % װnװn x~dL;zDQG7sQG7jФ{ Ф{C } :vS聸 đ t=? ,-^ nSgC*Cp^Cp^Qipv 2a  j{ f v9,-\  ؓAj 6b/P4 AB i iC s[A <[)s j) )̾'s f[e>S o'.Ol@'.OlD '.Ol#]#3? a 3?u4 ,aJscH8dkIH8dbH8djF=q wZ gv=:xjc gU?TH "bbC&k}Y &k}Y]77Zv77Z  l_ lL s=?8\ jC3J?FG   p , ^_EטlO G]j"Jܲ/Y'(*'(* I2L !X'h "ok5# '.(M!W5' )'Nt)'Ns )'N )|uN) 8fvQ8Q Ъ 8Q Ъ  8Q Ъ 88V b8t j9' 9K9$ i9䠮`[@9*5t; uNj>& (>:zFq6 ,>:zFq6 \>l9! >9 .>+M4H>+M4H>+M4HN?\Q?"?MJ@AV? eB3Sr ,Bbƻܨ-BbƻܨBbƻܨBbƻܨBbƻܨBbƻܨC7V`6 2C96e ,CQ<] DآJ|u].DآJ|u]D DآJ|u]E)ny"Em9d6 mKEm9d6 (E}XVFl2#.tFl2#. (GvG;]Z Gw6w G):0jI8sI`ޱNI`ޱRJɮ˙ Jɮ˙KkJ Kz>L)L)M\== MW}^ NG=yN. dPL.PL.PӤƸ:QQ$QQ$R+ktRUqw[SePLS SjSeVmN sT^H$T^HT^HT(#'TVBTQtXpc*YǥyYǥy ,YǥyYǥy (YǥyY># aZ:cap aaZ:cap Z]\]Rs \pf\%=/\YeR^8k_Ŀ_Ŀ_б+ a`  ` |`̶& ha _2u5#aN"pNbDѴcO9Z cO9c4kc []c [c}V?dUf eFky #e?e#ԕ je#ԕ Pe#ԕ  if8?gOr gY>gY>Rh h i6# 'i͂>j%Q} jAR jj  kQ6? liR;na>o:2t ,o#ocYozPS?ozPSozPSRpD-| p[v q9q qg&*4[r:\Z6rQD r9`.s9 2HRt2Q"t2Q"QtV!G (t?ct u&+ u&+ u&+vB(RvJ8Hvu> ivv/xjv>N vwH wH two\}Uz%@[4+z5cZz5cz5cz5cz.hj{)ּS{)ּ{)ּL4{)ּ]{)ּ {)ּ{)ּU{)ּ{)ּ{c)R{p6} |!~Է}8? _8nmØc !|Ør౉aØr౉ÙW5z'|ÙW5z'|PÙW5z'|Ú`ﶨ?=Ú`ﶨ Ú`ﶨ *Ú`ﶨ Ú`ﶨ Ü@d_bÝKO Þ1eßm͗?à$sá'ááQ á áC(áC( â? "â? â4 +a âD?ãx^لRätt,fKå)CI,]Kå)CI,]åwj åwj æ|5Wvæ,psæ,pjæ,pæFLæ)ۑ ,Fæ)ۑ æ)ۑ æ)ۑ çu"èBW$è+R4jè}|Hê{( #êpȊëiRë|# ë|# ë=KZ ë=KZ ë=KZëܖbSìwA6ìwA6íO`?íԮ~˨(íԮ~˨íԮ~˨ íԮ~˨î b0Ґ[ï]2ï]2jïFڿ,ïFڿ \ïFڿ , ïFڿïFڿ ïq{Y ïC1a 1 ïջ }ð`WGUI sð)8ð߮IKñſ@ ò]ܸòlt óBiQóO qd8 !ó#ó#ôq |$ôq|ôq "ô45 mô45ô45 ô45sô8׭T õ/Qp +õ/QpQõ/Qpõ71"õF" ö0iZsöF@%0,öF@%0öF@%0öF2} #öfק-bY öfק-b öfק-bLönן^ö.E Lö.E ö.E ö.E ÷7f@?÷ZS÷;;?÷;; bø2<Kø2<ø 5sùo*/btùP4=r ,û2LJ5 û6 ûNOûsJZgtüFZ*FRýWLþ@HY =þCUyÿbOC (VÿbOCtÿ*~fڂ ¤"yf kp kptk*\?kz0tŏ`aq ƧڡKn9DzV/DT%C` (GC"K #b8VV9t9 9 ʝʩ8~+`9? ˋYr.#1(\$ 7Jj<?] ' }l j̓6hB^ iYvI"Q tLKtLQ)}QOӅГp @Q!T??'暪~qGŐ|~qGŐWRԸT\ LՅ<' Յ<' \ժʞ<<[խl9YջR ۆN1D. ۆN1 ۆN1K ۆN1 S ،18: w ،18:|,Ϲ1?A'dp,f gkݻ>w ""P rQɎ jɎC< &c3?&c3 &c3.? .?P*y-q,tᕹ ? 0 $zb?a0W`GMWI.? I.?# U?d# U H# U /# U 1 _zSu# 띾'$OvCOOTvk l aBTzs큈[t!hCaU 5t8) nߗq@R0i ҀkKHt Hk-AIVV`V]WVV*[*x j:I;%"w>vlIZ $lIZ9 ? R twx >w23!8"31:SjjD/ K A1ϒ ~Mz~Mz cFXg]e!(ιYt78];g@D zV/Y  j  E\! "%[_ "%[a Y K    L &fDĔ  &fDĔ   έ tRyO.*cyO.*0yO.* k+mEt  R Q* I ?c_si N!60 e+Hd.>+ d.>+ $ԍ ~Et⳹ $ ԅ#>Fx/PrѼѼK_6$q?h l蕭Z\>1I0>1I0??gs?gj?gt?8Xk?8XN ?vv+L?&~?&~ @gƸ#L?@փi<^AnqAnqBfAX' C_}Ah6C_}A eCŒ~DRȢ#DDDGOk H/'#LJ Ƭ LkR MeA@LMwG:MdsN~ #NdBH NdBHNdBH O]1%$OdjVJQK?\QNbgNLQ\?zQcL܊ \RgV8i4 2S=Y۽ T^8 $T^8 iT{jVQt V}$ eWsf WsTWlB6Wy lX ܚ!V= XnbX~0> XnbX~0> XnbX~0>Xt$ Yst8mh? Y$IZsC 8 +ZsC 8?ZsC 8 ,Z62? Z62 .Z9-\_?t\ǗuO]tJOH],Vt^.v^݋nZ_K` 0u: m`% `GW>įS+T3 įS+T3j įS+T3?įS+T3sİ2 ijyB(Q(ijyB( ijyB(Yij"ij"Ĵ !8=NĴ26tĵ^RkvĶ+Kkķ$G(ķwķwķwYķwQĸ:wlU.ĸ7wTĸ̻AĹ< ĺ4%BĺW2J4ĺytBsĻ$3 ĻsLļT-Ľ@Ş6 Ľ@Ş6Ľ@Ş6ľwU ľS|Ŀ0,)@ KĿ0,)@ Ŀ # ĿĿ-fJ5at5a\:e m5m5 m5thoXFÓu=?Ib6:PKšmpZ- 3a i?[;\ms'ġ?ɍUIK?%KM\OM\OcX5ONkQ)gCj̫YG?̫YG ̫YG ao 0QSj"jc %L ,c %Lc %LsY,ϒ>*@o qMA #ѸݞNCѸݞѸݞW1S9W1S9_W1S9W1S9 ك[R% 7P=?hS|!8 jQ 8 jQ 8 jQ?aWk'﹵)j?YyhU?tYyhU?Yԋ]eh ~XprH#7C  H#7C֑@֣jN׭AFL׭AFL (׭AFLj؍9| ؍9 ؠp5Rٔ@3k[ ٔ@3kR`hl RTogHbfEDۭ5s 8ݦuN R  n]N n]NY n]N_0g d }Qu gN?gP?gKyjVjVd:Y4/ 4/ J߆W s[:Phl7ƞ{9QK]+ILw 9l%w 9n#< fɄ{' R' !) ,,z$j $jt`S X`S j`S S9SnԑQf:@HNF_X?/ '6Ƅ( \yL+=h 7 7  |j aM>9rU #!jHVU jHVSjHV1k17oR=SDKDKCR2A 2A 2 iר t? dH ]*x ]E a O دN{ 5v Ͼ_< \#ë#ë)ɪ'm g9kg9 (g9tg9jʫTVK N $C>82== R  筳Q# 筳Q# ִ!?䲈 2 !?䲈 ,!zLRn-"X7n "b<:"b<:#"b<:"b<:##yZ'k$20?$R$$޸H %Qv&s4n a(9 (7P)F?)Fs)F (+ӑh4 a, h v,ՈvFD,ՈvFl,ՈvF[/,ՈvFj,ՈvF,ՈvF ,ՈvF,ՈvF[,ՈvF,Md,Md -,rsP-,rs-,rs-=FL#-]-AC.o'޻s /Tk / ,0Z'w?1[wb11[wb1[wb1[wb2BaS4CVgL4=unL4N 5m=kv5|.-6_AH6_AH7(v 7(v?7:$cj7:$c7:$c7X) 8 $80׼bNa78JKŌŎZ*]Ŏ7sŏX''vŐ־v[ Ő#XNSŐXr)8 $Ő>[Ő>TŐ>Ő>ő/AU?œ0v*K6tŔ]ŕ )Zŕ j05HRŕlL3^? ŕRŖnk4ŖjSZŖ͹ jŗEQ ((ŗEQ ŗEQ?ŗ[ŗ`ExŘhl3{E Ř-s)ŘGO_ř|&0?řەsśD \śDŜjŝ+F[Rŝn:wkŝnaY Ş , ş$Š,Š Š\h?Š\hjš/6š/6 Ţ0d<sŢ0d< iŢh!Ţ aŢh"] Ţ>*ţ̗ţ̗ţBVfţBVfRŤ }$Ť朅DŤ朅Ť朅ť8ť8hťDA~QťZGL| ŦsŦ sŧ :J ŧaGD4 Ũ1< Ũg Ũg ŨgUŨ}( R$ũ¾ <ũ˭!Ūj쐓 ūu-Y+ūu-Y ūQJ cūěip ūěip {ūěipkŬyLŬׁhl ŭ @ tŭLd=jŭLd=6ŭLd=Ů=^F+Ů=^Fů( NOůcH#Růϋ k ŰxŰ+[Ű+Ų^9kŲth  Ųth 3Ųz1!RųG~ќ ų\~sų\~tŴyHH Ŵ(ʔqŴěů_ Ŵěů_ŶTbŶ[DN?ŶbFż ŶOzkŷGŷv/Rŷ8<ŷ8Ÿhl?8Ÿhl Ÿhl LŸhl GŸhl ŹǃEŹǃEź8X+yżLK"\Kʆj&USv j&USv j&USvtj&USv i \V*{(v899Mk ^^FyI ;IrknZnZnZnZ] =7$p 0ތω ތω ތω ;Adm8 !1扭J ( L?to9 lJZt?F؆5ʹ?; I~l4][?l(o\  ^s .:.: .:o.:FijsSY^˃2c:dDp-% =kb VAϽd R QR Qз0L з0L , з0Lз0L (7dVoz{ v/6մ?b{:]3b{: u8KqiNy< -¯R jح N/ $$ ibٕs͊CW؀\LW؀\ޭNYL7YKXL7YQ;L7Y1L7YL7YL7YRc;s~9OW- cc@[ wZU wZUjwZUwZU ~L~Prgv8l 8lDo( /|/ / / a8~($3$39q/^a?q/^ajw_| #LuLuLu]LuQ%Rf`eieq eieq rTxLrTxW|$!tasb8E-e^5Yl -24~N aL=R  t  1% |! Qa%.|?Y_R:Y_t2dj d "ˁBeSaKn+ #V/>> ]`tjJ)KbPzq Pzq jOA -2 tfx ?ն c 4;Cp> 7pS7pS7pSd\d\.{ ј:WQ] ]9Kt 9K (TP4h=YM|{+[W a ky?* \O׏6;.wvFk.* '^̈́EQtv RGt*6GE"7wa\&^8$.HU qRXR !߲ #"<㪄>a"`섴i@"jqB "`C "?mج8Q mج8Q mج8Q mج8Q:n,YWO:n5,_Zn5,_Z n5,_Zjn@cPndNޟNnJil Qn,?!n,?!pT -pT - pT - e pT -YpT -tq~ F r,I r+~ʐ ir_MQ5rlPaprr rr-q}!vsFIsTjY s7 ttJ&} cvYv'ӻrj<v'ӻr'v'ӻrvFw^esd w^esd w^esd ,w`W wrb xh y[zmw~X"{-v a}l }kfU}-?b~|  ~| j~| ~|  i ~|  ( ~|  ~ ^OH?~-:Od ?47EuBm EuBmv!U ƀEd%ƀc.LƁR2= ƁR2= Ƃ9 ,ƃf<Lƃf<ƃzƅ)7i$Ɗ)s%@jƊ)s%@ ,Ɗ-P-L Ɗ-P-Ƌ"Y+Ƌ"YƋM᳅?ƌRm.ƍ͈B]Ǝzeԩ iƎzeԩƎzeԩtƏelƏHiƏlIFRƐ?FƐ6aȯ9 ƑdkPY ƑvLƒ;`#ƒe5,:?ƓVV< eƓVV< Ɠmsn.RƓvws% ƕ?Drƕ?DrƕW` (ƕпf ƕпfƖT"Ɩ_x3 Ɨ| ƗP} \Ɨf7(Ɨf7Ɨf7Ɨf7ƘT ƘKƚ4(_Is.ƚ4(_Iƚ4(_I {ƚtzTƛwx1?8Ɯ'Ɯ'aƜ' Ɯ'Q Ɯ'RƜÈrRƜÈrƝ_o ƝBƟIqƟspoQ (Ɵ1RƟ Ɵ ơdmơdmƢ6; Ƣ;1e Ƥ~ytƤlq{Ƥlq{ƥ8ZDN Ʀ $ Ʀl3xƦۉ?ƦޓƦ%VRƨt ǃƨt ǃƨ{hR $+ƨ{hR ƨ{hR ƨ{hR ( ƨ{hRjƨ{hR ƨo/,xƨF9 iƨF9 $ƨF9 ,ƨF9 ƩڳM Ʃ>ƪ=|ƪ=|ƪ=v NƪYC ƪ,kƫ7?ƬLbƭm TsNƭ?e @ƭ?e Rƭ?e  ƭ?e ƭ: ekƭ: etƮcӻƯTƯTƱNӍ73ƱNӍ7ƱNӍ7ƱNӍ7Q+ƱNӍ7ƱNӍ7YƱNӍ7ƱNӍ7RƱ%jƱ%jƱtƳFmAƳ(SƳ(ƴ7sƴ!dƴzkIƶ>wsƶ>w ƶ>w \ƶp~MWMƶR]M (ƶͳ ƷPuqƷ/8GU Ʒg9 -{ƸPP'SƹmRƹmƹmƹm ƺ`sܫP|t?{6G {6GD{6GAV[wHjx ahOsT0t ?Cj|i` |i`u=Iek,PL5= #a6  i M M \5)ʀ|˼?4|˼ |˼ [jy#,1!UV7l?2$I羢x<?HF xOHF xBHF x [B_W 4C#݈i4% ! LP LP LPQ LP LP] LPDcir]' cv׮@!)Reɡt륍Wl9Tl9Tj l9T .(V  5 5  5 5T`?\T`? T`? iT`?  ?ENcg>R ylۃZqC2!4I*N%{{9d( ?ك8K?ك8Mu aR* aR*aR*GGGG.J .J ?DD>?!fy &6_#QledI~ ( t?QC֙spLE ( pLE ҉ n:k҉ n:s9 rLM| K3澂+Lmܷfn rpN 0zS~X , 5a ߏ- >ƹKR ݂KE3 ݂KE3 ݂KE3 )B(!   eQ(H i XFow S A%V)Pi!sZ8l_29nDi9nDi9nDi:gy]?:|p^j:|p^?< _,F =tD$a=ț >CJ. @XC @XC A NA NL A2.$BUACLD Gd SGχ H',A HG7jH[d,  I(gt+N#I+m4 iI+m4?I5Ek?JU JeJ ^}Fq}Fq  }Fq }Fq a}˒G{ NHAD aet_kǀL[* 3ǀMTZ5tǀMTZ5tǁD؞{[ǁbܖǂ k mDŽRslaDŽRslaDžM{O?ZDž~qDž~q "LJP~zW LjX8j Ljr _$kK Njal3 iNjur[NjcÄˌ # njQ nj3?nj3?LnjOm0njOm0 njOm0Lnj{=>Znj{=>anj{=>Snj{=>nj{=>Lnj{=>nj{=>dǍvAƄǍvAƄNǍvAƄǎQtLFǎQtS(ǎQt"ǎQtZǏq&?F jǏvwՙ Ǐvwՙ Ǐ VQǏ VǏ 9ǐ% ǐ% ǐ7Hj ǐ7H ǐPkǐPk ǐPkǑ{I2Zǔ ;I ǔ ;I ǕN ǖ}ǖ!ǗRBǗş,s?ǗŹǘ)8ǘ)qfKǘo qcǚp ǜzËqzzǜBS` ǜBS` ǜԍ Uǝs{ǝơx44 \Ǟv{$TsǞv{$TsǞv{$TsSNǞv{$Ts,Ǟv{$TsǞv{$TsQǞv{$TsǠ1hJ7\?Ǡ7??Ǡ< e]ǡi g Ǣ45 Ǣm\kǣNFI8e cǣNFI8eǣNFI8e (ǣ$'j sǣ5>[Ǥ}NK Ǥ&ǤDSsǥ=1ǥr~MKǦ$lTSQgR/ǧWɕsǧ%g Ǩ &$\Ǩ &RǨ)QL"ǩeǩNry "ǩɽHlrRǪ?\8D(RǪԕJRǫIL0[ N ǭ J 2sǭl]| Kǭjc->Ǯ ])Ǯ k'JǮTCǰ;X9 DZA?:L Dz&p i dz.F'Rdz.F'dzgFt dzgF (Ǵubǵdjǵ؉ ^ "Ƕ?ln Ƕ?lnǷG*<]SǸ9f[Ǹ:dǺ8}E ǺBN2Rǻun F iǼ8.L BǼ8.L 0Ǽ8.L &Ǽ8.Lt#Ǽ8.LǼ8.LǼ8.L Ǽ?ǽxpSǽ/qLǾH6©Ǿi ^ۅaۅa nۅa iۅa (ۅa  `q `qNŠGơ} K ƺnƺnYɣt 30y& Yn; ʾ,3} c 3δɉTə=S 0H 0H iʙLc2 4ʙLc2 ;kJ s Cѹ#Cѹ3 a&3 3 i3 e33 Q sSf<\pG*?pG* +f e nvцiъeM ,O|#VN1ֽ sT sTjCAC fQz ' ƢU' ƢUR_L]qYq 얌q)Lъ^ ',5St ',5Sf:hrL"T[vwn*g9'=$g9'=g9'=g9'=g9'= mυLυx4istx4i 'x4i  x4ijzJJf Z   7BYK(%]/RV_vߵ"< iE3/F v  \+x ,+xh'=LK nK nt~vs     s6[ *J*J*JcI+tO K]YK]Ggj Q`DQ`$;1<(#9*.Lo?` A \SPJ_ʼn!jj|hk_ j{5 j{5>MP zd%w "#1 #1j’>i.RJQ/k mrW:Y,rW:k9Vl1b b6; b6;]b6;b6;VUSK͕*| <=  (XOK9v I .G: u D9f) D9f D9f ,; LK (n-Re8n-Re8 n-Re8V=V= aqؑLEf R U< $ U<  U<j U<4T? 4T4T x 6H͟z*TI ʄp ,:h)WDH, ,H, j{]Lk YF&|YF&,I;,I  b 8Y uﵨi m dmK m dmR9?]\VI~\VI~ $s4:սJ 4:սJ4:սJj y 4-aϸ?a"++@R]ä iNR s VcUGa VcUG VcUGL VcUG VcUG [\R_t [\R_ !nL6S !nL6! u "(n"(n "# [$BWI$BWI&xWXoe &xWXoe|& H j'!jJ'F@)ߗ *,_4:*ٱ e *ٱ ev+_Ni@ +q.hŏ $E+q.hŏ3+q.hŏj+q.hŏ e+q.hŏs+}"'a+}"'a+}"'aR,t%a  ,t%a ,t%a,x -DO.@L.@L.)/h 0p?2n]#2|H+3aeB͍5d/5R:!Z6Ft s6Q13 !7:)R7  7  7 j7  8kP8kP9Sux9 j9.=+d =uRxt=uRxj=L??=Pa@=Pa@{=Pa@=Pa@] =Pa@Q>S23?>=ʺb>LL >hzQ?:sN c?{Q`#? = @WKA@r`BϦܡSBNOZ Bn%[_r B?% B7.R Cj|XEq{E b{FC^X F bDF b$F bFv`dFjokGiW |GEGzDGb3yHe HΦ| !HΦ|vHΦ| HΦ| cH1SIsZJ#j~L:_L (M<2qp (M\jl N[N[N[N[CPupR*@R"R*@R , R*@R R*@R R*@RTuUcC iU h;EYRhYkRZeCZeCZn'sZ [?6[?6\ '\ '\78?^M`^/"k_ #8#S_Rf>_MI i`.$s`;&`; a"`; $a< Ua' a#k bu+ݲ d<(h #vdfN r] jdfN r] eS0YeeB\5 SfX+fN fQg[fΛ;zf\bHhrw=hؙ?hz=[i&L9Qki&L9Q ii&L9Q (i&L9Qtio5  -iY/RiyV+> lvۈ+lvۈ+Vlvۈ+3lvۈ+/lvۈ+-l^EmU~m3 m3 oieo]<o]<o3jHso3jH (qTEduOqTEdur ^' ZSssCsKtK t@]{t>B t᳣ u'B vzkv#ػwYiLw%nz xba+Py,,tl jyBZ9C8>yBZ9C8 ,yBZ9C8 yN]R yN]y;`=jzHRz3y3{Pާ{Pާ {Pާj{hmN [ eȀI=$ȁ ~3] ȁ ~3ȁL vȁ+ ݕȁ+ ݕȁ+ ݕ ȁ+ ݕ] ȁ+ ݕZȂ6mTȂ;'t ȄFqFȅ^E \Ȇ"Wv ,ȆVR>ȆVȇpJJ 0ȇpJJ?ȇpJJ Ȉ!gۯ ȈTȈTjȈT ( ȈT ȈTsȈT $ȈȜ+T"K:ȈȜ+T"#ȈȜ+T"NȈȜ+T"Rȉ#ȉ#ȉ,FȊI=$Ȋcȋ<ȋ@Qȍ{;%(KȎ `ysȎR< Ȏx#3ȎzoȏoxxȏzBoC7ȏzBoCRȏzBoCȏni ȏni]Ȑy $Ȑ%D!sȒ]OBڴYȒkn2ȓ3 [jȓ@jb]kȓ? ȓ?  ȓ? UȔ=[ ȕ)̾ ȕ4.ڎȕý0c2ȕ? ȤvO> ȤܤȥRiȥR ȥv&Ȧ)vȦ) iȦcHȧlFA ȧlFAsȧle4} $ ȧ;:[&ȩHRȫjc,ȫY՝$ȫY՝$ ȫY՝$QȫY՝$ȭ5\nTȮO-9kkȮO-9ktȮG&} aȮmZ#ȮmZ#ȯ{ d ȯ{ Ȱ^67vȱ| I Dȱ~sȱ=aLȲeܥf ȲZȳRٳd \ȳ- ȳ-ȳ-ȳ_ |ȳ_ ȵ|.lsȵ|.lȵ|.l?ȸ-gʟb ȸ1H(ȸE-lzjȸq: ȸq:ȸq:Rȸq:ȸ/G. ȹmEȹmE] Ȼ<=W2tȻE Ȼe*XS$Ȼe*XKȼ)1? #ȿ8wȿ8w^ i^ \̈PN  N K @_\Rhz:nEǶe #*EǶe c @'ro= Ǯ.S M DaDaDa (Da oE+ $oE+s$vߡɘ<4R˽3a ˽3a jH $SΔ6-W Δ6-WΗ SΩ . Cy q" /дk#\N!ѥS$ 3L&$ 3 lt]wyjdwy ~GI> WZf- c\7Ϟ #\7Ϟ ؈v0LV(QH V(QH N/3" 9{c+j l?6sۛtۻۿz\^\^3DirU3DirU pY+Y a Y YY u5êB,\޶d 3w3"A/H $mgu7H/Q7t{$<2`Gsߛa{= .%p{so Csb[MZTMZT7MZTb8 1g$lR!vvO!vvO ,!vvO !vvO $;Ʉq[N&2ks &2k &2kj &2k &2k ο"ĵٖU; .xlӮ;z.΁ "ZpV&SsS 3 vQs?,&ٵ onLAGjDd j2x +!-` {N Op dZ $@dZt dZ dZjdZbMһ5OX i OX OX OX \prKD C0CbQ?#p@ ,xHa xHkPN0V@ X짳2R짳2Q 짳2짳2L !]R b awNb b  ߁/_t$ ߁/_ i ߁/_  ߁/_ ߁/_j ⚴& VV1o KA ,pj ZeHrI s {׳>{:s#{:s#X ui $%_ 7S'fNє>_)tNє>_)  ^"0 ^"0  ^"0 i iMsI;V?[~ V?[~?0b0bP0b^Ka򳠴. ? BL Bn# w]!^1R{paW(  ,fLvdK}\|wu?np $߳12z:A>2z:A>Q4!y5 $6,#SR6(<ȿ6GX?7= X@1R7Z~9dDGy g9dDGy9dDGy9dDGy9dDGy 97\ 9s :?:YLz;xjh? ;7I !;7I !;C^ ;S< G < G jcN![c9Sc9SCc9ScRdRwhdo*Ddo*D ,do*D $e9n>#f^g;f4YfuĔXfa5IGjfa5IG (fa5IG gE0ENhgio3ix7jj$M k .Ak .A kE! skhakhk~s)lϜmƇ(to']{o׸Qo׸Q{pl;r p&ߧ $q9ysq?F3 q?F3 q?F3s'8s\6Au#Su#Su#SSv[FxcyMzKYsRz (z $z {QUp a{N.Z{x|~YIOR}@4` }@4`?}ے>8K ɀ [|W ~ɀIJS ɁI(Ov ɁReN,RɁReN,ɁtBfuɁtBfuDɁtBfuɁtBfu1ɁtBfuɁtBfu$ ɂ, ~Ƀ;o6!Ƀ;o6 ɃʤSɄi}RɄ z!dtɄI \Ɇ1OLsɆ1O]Ɇ1OZ Ɇ1OɇcbYɇz6 ɈNdYjɈ vɈAd3$ɈAd3ɉ0-0?ɋCH0Kɋv3b1t ɋv3b1j ɋQ(AZ ɋfNA |ɌG6 Ɍ5NO Ɍ Rɐu ɐ{NɑCɑIHnɑ\|3ɓO׆.ɓ`_ɓ`_ ɔ@c ɔBRυ1?ɔL hɔH'.[ɔH'. ɔH'. ( ɔH'. iɔH'.ɔi9GC ,ɕ9$ Kw \ɕC':,ɖyjɗ7qdQɗf) ɗf)eɘ ""ɘBrO$əLəSə`Rə`Rɚu \YIZɚu \YIZɛ<tɛ<kɛ ɛtɜ:[cQzɝm>Rɞ?n lɞcɟ mĚt_ɟQN ɠ7sB4%ɠ>/Cɠf}?ɡ5&  ɡWMɡ5'ɡ5 ,ɡ5 ɡ5 (ɢ=}Aꑘɣ}ɥiwi. $ɥlFn< eɥlFn<sɥY a ɥY eɧrq$ɧțw7 ɩEɩz|ɪw1I^Rɪ9ZNs ɪ9ZNsɪ9ZNs ɪ9ZNs ,ɫ5xɫ57?ɬxD`DɬMxt^jɬ^L^鵌$ɭ#cCKɭ9 ɮ Gɮ+ ɮƦ!tɮ}ɮ 0 ɯh WYɯvU4 ,ɰA`G ɲ'j ɲ'j ɲӭ cɳ_SXMɳ޴Qɴ|VOɴ*6ɴ*6Rɵ lYɷs韒 ɷ䂜ʀR SmRkHgK%kHgKK蠿]蠿U蠿L Bls Bl (9|#Xܟ ᝂ+ᝂ,2za9=dhp #5%?;5%A R91Gy?8:Y] c^ ((*6 (*6j3DžkjciZ1^c1^ tz|1 (O\-՗5ERER ih~wtx|1JY 1JYZ " v $ԣHK."Yb[D$E^)  $ﰪ a ﰪƽ,g +gj @QY ,;Y%Y ae D2  YK  t K  $Ps ƬED#)-Sz<=?ioWl=j ju=F*E0.m6"ȗ dtd ad cR&'cR&Q'cR&cR&cR&DcR&cR&cR&찗ND S+N*D S+]+ $ ]  ]  ,/r\ -4Q{Bs 8aY =s4uyj ZqVr"K iz4b? ¯HK FtW Ft "JRs  qtb!)N-qb!)N b!)N ~cX ~cX~cX ek)> k)> jjjJ%* ;gt Y02 ^_q7jF <  <  <K߀O!  vDGvWBD'WBWB'? Z.?s8% |¡P ? ¡P ¡P E  LFqJat#p14 n#p14Y#p14b CYCN cYZ!4a!ѝ0?"dn)j#*G/#*G/#*G/% %PL?&" HXq\&B2'Qfl#'Zի)p?'d 'dD'd ( ( (6Y)NJ;H;)4&f *F32Y,Ոj,Ո-6.vD .vK/Mm(/q4ڭ \0T8' 2i=3 3 334nveN5)k6rF 6rF 6B0?6CΜ 8 8[t] 8Ǵ09yFO9yFOR:g ܱ?:b^[#ҫ>-F> ?-A!> ?-A!>S8/v/?(gv?PS. ?^D @];_$@];_#@];_ @];_A tA*ʄA,U*CuB/ڙ a'B^#cїUDnjE*SDE*SDtFzߤq $Ft"kF#|Ga$Hgh I6IMB[IMBJ2nJ̏Wφ2 J֓J֓JClK\QKlI3,'LF|ٳ&t LF|ٳ& mLF|ٳ& eLucs \Ll%Ll%Ll%Ll%QLyL{ĩTL{ĩY$L{ĩ M>|*QI?M>|*QI+M>|*QIdNs\Ns\UNS|?NH퀽k NH퀽tOa>O?d O?RO?PJrn?Q t?HYQ!q Q!q ?R{S?RP RPSD/vSD/ TTVS.[RVS.[`VS.[W4lW2Ʒ{kW2Ʒ{ iWc靦%vX  X X0_C-Y___[C/ea S]BBN$]BBN$^W(I^G,W #_gs _78 $_WN߂% a q@,, a q@,, sa q@,, |bg9 bg9b5Nb\wփc-qddˋj'dˋ dˋeJ^@jeQfJReV{ efYeHN f=05?"f73fNib@fCnyp>]nyp>o〉To〉Tp`gpS@qW/zNq-mQl sq-mQljrd4G rd4G "rd4G rd4G r_-a tY\-D nt$̶bt$̶bt /bYt /bu}`ubqdGE (wNKPCr aw~Rj\ w%"w%[w%CxzxN y]u)y_&u&{= u4L{=Y{{oP{'{'{kJy?|Y_P|c}#.$}|qS}|q}|qL }|q }|q}kb`=}kb`=~>ĵ> ~>ĵ>~R&Ҙ' 'j¤jʀ_Y-ʁ4qXʂe-#fr \ʂe-#frYʂE/ ʂE/RʂE/ʃ{5_ ʃ{5_kʃ{5_t ʄz.ʄ8X*Zʅ^.ʅ^.R ʅ^.ʅ^.ʅ^.Qʇ9vvA cʇOc* ʇOc* ʈ;{ðʉ' 22ʉ+!TYʊ/N^tʊ/N^ ʋjLZʋK^2 ʌ g8ʌt8{ʎ?ʎ]Y?ʐ,bʐjy% cʑ&V?ʑ&V ʑ܇ᖷʒ ?ʓmdʓʾnq2ʾ]>*dʾbQd ʾ` ʿ8(2aNʿ`bQ 6 ']']|@s0) , )s) $'ƾπLLR  yFE yFE{Y|J9VN BA *BA 3Eiz$sEiz$ Eiz$ Eiz$ \s NǙŮݤx ix9ȺRF R'- ('- Nރ> Nރ> #9d99F!p ͘#c&s΍-{t b b= A7 PʴϪ7 #Y h/ $⋲xjY~f Y~fY*P0mM*P0mM?6*P0mM (^gհp[!հp ̚^k5Rے(N_)ۢQ ۢQ9۩"9N)۩"9Qs ݭR=KT} T}B0aWA"]HSjlawibyV$sj 8 ,۱_z_!z_K -D#C?vDKu儒Gs*j+ׂUoPU$oPoP]oPL ce sEo(&+F?jU+F? /+F? ,+F? +F? +F?1p0^(Ps&0^(P?y-4=|aB' y R S T)h\U fYuN fYu 'x'x i1}!`IiM ?fqh-D h-)QoRՊ& $Ns _Ds _s _| ?R03 0 N # 0 N .(hTb` 3tb` 3YySR qEJ$7>t4$_Dm m0Pj+ g^%&+n8>Wa?U[&g[&gӨ \%ǶS& K47wv(t7wv( äS Zf $ Zfjg Ö()|{W : ?: Xjߏ. #*̳a% ,]k gPqjgPq%gPq gPqgPq EbBL_ML霾K}| }| i}|?H}| +}| }|j}| \  |(䂎> # -I 6 ;  "1sgF "1sg "1sg "1sgS `Ʈ^ N [N  z j 5[C9%V9%VR9%Vҏ] ߟ֊ 7>D 7>D i}P a rRrRd rRrRDrRrRrRrRrRrRbt"bYbbs~~; LO铩+ 铩+䈛kQ 䈛kTM[AXA ,AXA Ԏ? ֵ #? ֵ #*x ._ۨeQJJv-y ,-y -y -y f'͵͵k ^ u szr *Yfs"YfvYfYf $RRURp#[p#z* ûAV: Uj U  Yy Yy 4cnb 4cn !Z%Y %"k"k"@"I7 C"I7 "G, )R"Ǵ "2i#SQnt#[Z \#{M2 [$~Z$Vܚv %0Q<S %z03%ڕeOa%ڕeO%ڕeOL%ڕeO&R<&7X'bbu'_+ls)Q)Qs )Q *,SK a*9'{L+"Ĉ ,+wsF,UzTQ,UzT ,UzTR,UzT,UzT,;Z8 ,ZdL ,ZdS->.n$--#UI3 i.7#].d,(*.ҟh;/S0bb6G 0bw}'X 0(]4 0(]41![] 2fN20+^2:rW 3!$ 3,!441v>4qq[ 5aBP5;L| $5;L|s5;L|t 5;L|k6;C 6: D8+N9zkJ;r :ůJ:ůJ vp >Oo>Oo>nA i>nA e?Y$^ ,@pR@p?@7 eB_R)CoXXjEmŖkED#+Fz6]F#LF!jx G0,dXkG44 Gm]GJ\[ pH \oahHsIYt<&7IIYt<&7!IYt<&7 Im2]SI-JH1%US JVJVJVJVJVKED1sKs "?Lzv)L\ L\ RMY M=L~\ rMP NODO<*7?.O<*7O<*7==O<*7O<*7 % O<*7jO_*O_*P5WB[ PO1zNPL8~jR9n9,R9nYR9H S$T.m?VlYRJB VlYRJBW`8(XpZ+ *XpZ+?YhZ~ jY{h]bZWb3=&'[1Ђ9 \)VU|] P #]/} ]0~H'Z ^!Yg $ ^!Yg^!Yg _Sé_}Yf @R`dha $ka8?alagwԕ b3+dRb{7Ucpb >Wd L d LevR<ensvnتiuoBYjoBYjsp/YK p¥Ip¥9p¥R p¥p¥p¥pMĪ%B"pMĪ%BpMĪ%Bps psQqLqÐIqÐj qÐbqÐ r% /rrr(rrr(Lu+$y?u+$y @u+$y u+$y \u+$y (u=~vaF 9vaF +vaF vfO $vCvp6vJ|wkQ=&yk~?u?z 7=sz 7= az1Rb{_]| }[n_ , ~-}J~-}J eh~-}J ?~-}JY~-}J ~=#N*~=#N*~=#N*R)  g ˀ&0%ˀRC vˀc1d<ˀc1dˀc1dRˀoA1ˁ EˁR ˁ`=b? ˁ`=b (ˁ0CGNˁ[!˂˂˄#Pn j˄ڧ?˅;A7'˅B!ZˆV|aˆJQ]ˆٝ\ %ˆٝ\ ˆ9t2ˇ.*C ˇ.*Cˇ.*C ˈnˈqϘ ˈr{)?ˈĹˈĹˉC5 ˉC5 ˉC5tˉC5ˉC5ˉ)*nY #ˉ…@]wtˊ ^έ$ˊ ^έˊ KNRˋJLsˋ1NˋV:ˋV: ˌl(m ˌzZt ˌzZsˌ|T險ˌٺ}] ˌٺ}ˌhRvˍ2< \ˍ@ ˎ e)Ij&ˎ e)I \ˎ e)Ib ˎ e)IYˎ e)Itˎ4[,ˏqw#ˏ]V ˏ]fD6R ːu9=vːu9=v!ːFl/Xt ːFl/X ːGh4Wˑ+fR ˑyG3] ˑyG3]ˑ8jO˒A˒bA, ˒{O˒{O˒5<˓Yˏ˔ (7?k?˔ik (˕ TJcQ˖d|`'aJ˖d|`'a˖d|`'ak˖m{7˗7Ѿ+ ˗7Ѿ+?˘+5j ˚vN9˚FiD]˚FiD]e˚FiD]˛ `uIN ˛>1 ˛WD ˜@ A ˜FoS ˜{~,|Tj˝+~ x ˝XOs ˝De˞_VgaB ˟fn a˟b˟bQ˟bK ˟b ˟(TQ[ ˠ+_xbˠ+_xbPˠ+_xbˠ/@ ˠ<ˠŭˡ ˎ\ˡayb| ˡayb " ˡ˻(ˡ˻Nˡ3Enռs ˢ-Vz( ˢsRFkˢ Ɔˢr~VˣęA![ˣ}Ό ˤ1k ˤz1e8U !.˦D ˦֎׀ ˧fkW?/˧fkW ˧=3 ˧ԠDbN ˨CpD˩]I9˩%Ng'?˩A0$ ˩ot˪Iz{ (˪Iz{˪Iz{ ˪[xN#Y˪[xN#L˫r˫zs˫zs:˫zs \˫zs (˫Ľ͋[jˬQK˭MD˯_;d˯B t?˯{? ˯{? \˯{?t˰Oj˰UK)e˰L˴u>]˵16<L˵16<˵16<D˵16<˵16<K˵16<S˵16<a˵16<˵VI=Hw,˵'S`˶Z# ˷j"˷N5}[˷N5}˷aK˷s˸zm ˹8 ˹U?˻}BB \˻}BB˻}BB˻T ˻T D˻ z ˼&KsR?M˼&KsR (˼&KsR˼!j˽PPJ˽PPJR˾"[򀃖˿ Gv˿%M ˿RL)k  +/Ҹ±ޓ  -ê7{ê7{G1 KG1 =܁T1Nigu5vV1?hV1? V1? a V1? V1? V1?kȰ? Ȱ? BȰ? ,/X/X/XɜX^ LEb &e)Je)JQ˼˂k"ߟ|̐~Ʉk٘I=CQ- Н( LIUh{*39|B |l(B |l ,B |lߒ_ e1 KydKyZNKy6Ky Ky KyLKyS ^R?dޅ <vdޅ <o&=$V ;+[Ss%+[S+[St wNd {Qy  9.Z7 " $C*N $C*W tI  tI? M %c&k %c&b %c&t %c& >$ $mB s $mB 6_ |usnG?z0mgRg4EFZ!8]Z3(U e 3(U =&k=&d=&V^A0^A0 <`(f @U@} sMsMl3l[d3l[d CeL! u\  S XY 9x{O'S=O'S;O'SK O'SLcf8$R kD?*t,W QVոPLs2 BY+dIp.8M~ c mb t2=  2 !~J[&!^L 3" Y N"8jDj "^#gZn#?u$<ŷC$ *%?%%dB-X )Bբ$)! i*#jl +vT +}w.?+>S+*z+`܏s[-$q)K-fp'Z.\ .\ i.\ '.\ .\s .\.\.6ugÇ 0Y+5=0Y+5=1z? 1򲐇H2t w4WN%2t w4WR3l $3l v3,S3, 3,3<]4&|? 4/TYp?4fOJ߬ 4e59 c 5*A'S7&oO8 ~@lS8?=e>й >4j?L*Ȕ@G:j*A$ɷ A^B?1aA^B?1 -A^B?1SA_lml A_lmlB7 Qo #Bh̲J $Bc %?KBc %Bc % iCksCk!CkCkCkUCkCkC0C0C*zfG'G`IHs(ːSI>XsIu) cJv|s3SKdp9K(C׹I|K(C׹I|Kj@oq K L'duRLD.RL֠h:L֠h:RMsYs MsY NC"WNC"WKNC"WNjV+'NjV+OV'-SO އPRU)0S-Ű inS-Ű aS-Ű Sa)).7vSνs Sν iSyN RSZⲻ1SZⲻSSZⲻLSZⲻSZⲻSZⲻSZⲻ]TO*U&g햡U&g햡 U&g햡Vh \VLsVLkWx; W!C ?X^*/"YtX^*/"_X^*/")X^*/"QX^*/"X^*/"YfavZU|{e!sZU|{e![Y# ,\ E #]j'hR6_;UʹR_^Pe_ X4_ X`T3,D'`T3,D \ `T3,D?`vFnct`vFnc`vFnc`vFnc (bڈSbڈbm[ Nc.|w c=$3cI-KM ad dasf|Rf|ggg1WhV8IWS hb5q iyTd# iiIc Z'iIc Z']iUu i .} |i .} kgKdlF/ $lF/ lF/ liڟj2 l $l gl m3RfS m3RfLm3RfKm3RfmdGZnd=1 #nKP5nKP5 $nKP5 oButoؘu @p F%q# cqGjUqG (TqG,qGq(%>q(% q*?r0 8 r0 8sr0 8r rA" irA"r۟:cs6f_%?tGI |,tGI tFp%Lu8\ u8\ vRHJ vRHJtw?u[w'jgx7 dz:? e{h7|4A|Ɯfp|Ɯfp}X>OvD}X>Ov}X>Ov}\Y~o_ [ c̀I?́"hy ́*9́t,x̂cS=R̂cS=S̃$Vk̃$Vt̃ՊS$̄|W%̄UDO̅&u; ̅; ̅LJ̆pLj̆u/m̡ ̆XR ̇W>- #̇G5#|̈ᾬ;P ̈ᾬ;P̉Q ( ̉Q9̉Q ̉fZUE -̊7K̋It̋At@ ̌*yWS̍L ̍I|g̍I|̍M9M|̍M9M9̍M9Md ̎Fr s̎bDUN̏ %@B;2̏1ݴ!8 ̏\1?̏\1?̐Q̑&;cU̒p!qD{ ̒l9̓X%&# i ̓X%&#s̓r ̓r?̓' e ̓q%̖}s̖}t̖,@}3̖VT~U̖q*0w?̖ $̖O[ a̗ZJ;v̗j e l̗ںw{Sd̘]˭XR̘ s$̙C̚̚̚R̜DzQ̜Dz̜Dz̜. S̜. S̝$̝n ,̞(B #̟W;1N̠IT1JC̠b&̡Q@ #̡bѪueeh*̡bѪuee ̡bѪuees̡ףlh̡ףl̡v ̣,RI #;̣,RI c ̤M ̥'wM̥gYb̥t ̦A b̦'R\̦R: ̧OЀ̨XQq̩vZߖ̩E{a -̩E{a ̩E{a?̩Wt̩V?R̪ 뎧 ̪ 뎧S ̪ 뎧̪T̪T ؙ̪ܰjP?̫6 fV= (̬jA>:̬jA>ṱŧ̭3Dt̮Vd̯Ǥj܃̰@ ̰ة֖ ̲8$Qk ̲8$Qk ̳ ErY0 ,̳ ErY0̳{xr̵5Y| 0̵5Y| 0s̵@WjR̵kQ8j̵kQ8̶%g̶`}[̶`}E̶`}̶a,B ̷Ņt ̷Ņtj̷Ņts̸ 6_̸ZvD+ # ̸x$ ̸a'4 ̺ ̺byi̺byij̼̽m-D̽QyŭY?̼̽/̽d .̽X^ ̽X^̽X^̽X^̿tVFs (̿ɊO}̿ɊO}m̿ɊO} ̿ɊO}s(%,% @Z/@Z/utR/ י|-L< Y:WƓ |čֱYčֱŹd' BĽR"YZ,^%Na"j a"a" cv|PlLcv|PlZcv|PlIt6 dVF%cF%c,y ⋞ ɃH>ɗs[fLɗs[f ɗs[fɗs[f5>K + ((9Q(9D(5 jߍjРM^0 i8<) t_GԃD >n9˵Is-shK/C[ C[C[ n֗DRn֗D n֗D \=) a)jM) )(M_(M_ , dX33s=̄j=̄ $DKx DKx sDKx DKx (5K5qڣpv cC!n ۣ(xR W(q<R(q<8(q<mnO mnO|mnO }2}2ޡLgx ,'_gJ| _gJ| _gJ|ߵeaO ,,+HG,+HG 3cos'NFWAw ,ʢ5e1t~f7@9z,Foz,FoH U ,Us={^ DVR8'{Z Z'$ +K<-+K<"iifT*uGD "]禤?0Hݙk$L>|z$L> (4$L> $L>h dU& ]b B}.B}B}1gov1fOCR+URGĩ r,& E`tdyH ֤Nr q0T]YIL`T F N:--H:@ ٞ.}j".} .} i{1x(]:| $k0i dAo;@.9RH@.9 @.9 ܨtLܨtJb\&m̊敲ZAE ,1hIE5RIE5IE5aL?NY$!NYNYS.EX cK (+K |`IY `I `I E`Ij`I `I `Ib%ZwCQ%ZwCDy"L`~ ISgtqm?PoǕvK;ڢK;ڢ|H5P. cYԺV  !8"8d;RjZZZZZZ J  Jj 1 - A]q * A]q ^+b  cJ + cJ|xp{RFÆ4 Q r>-?#jǞ s1$K1$RCgZQ9ͅx |bĺisջ ,QQ ,QQjd`XtuHK$&PK$&P&P&P&PP>e^֚ iYU fWq{?`jP|tZ^m$ @ R8V  n[  :y ii[B?q|SF (IaIak|H4?:Q |H4?:|H4?:D|H4?:|H4?:Mڣ^K Mڣ^SlUEt h !!%AA #)S$_E4s $=? %tSyR%{ozC2%C/o? '>LO 'b9.GRC&a>} >}b?AMŘ?}@&|h@Ò*Hd B[$CC- p4 C- p4 ( C@ vCA1m% CA1m%CVO0*CnX&YCnX&XC=RCʻ?DW-Q/DW-Q# DDɊ_j E+r)ō EmXt[EmXt EmXt ,EmXt F(UF( F( F R0 F/ ##Gn&$Gk2 Hp>WI]U@[JdF<Jwh̴NJkj K T`K&@XLZ A{vM!}PB Na~ Om>tOm> eOm>P xP xS9P%P|P1wKP1wQ.9d)Q.9QTC#QTC#tQg^ , Qg^hS9FDDS #OL S #O]TTl |T`T\lvTLNGTǙ#"RT4vtT4v U jU #WU \VT&tWtѣw iWtѣw Wtѣw WLsW~ *dXrXk0BVXk0BtY8q=Y;bi $Y{EjYf jZG_*ZG_*Z,bDZC%Q.ZC%Q. ZC%Q.ZC%Q.ZZ(ZD> ZD>Y4[6~^9 a\t%"$ +\ ]S 7]S ,]S (^{^{ _)?sV_)?sK_2 _2 _2 _2 `dKf"? `dKf"?`&NCI`&N`&NQ`ʤ uvaƖϹ aƖϹaƖϹa*™bj=Xb0[>b0[> cNe] adKe2< e=]J c(fϛfyg4ۘUNgo\\v g$h)1 h2r h2r iqiqNjgx #jgx i jgx k$EBPkd+ERliz1 lC\n:l l anG|{ p Wo7 (,qepr,$qepr, qI&ۭrZq= Xr*WѩZrTsXdsgvs,ǨZO's,ǨZOY%s,ǨZO s,ǨZOts,ǨZOks,ǨZOstƧ'uCSdu =_ʃ3uMLFcR u~ x x+B=2?.x+B=2x+B=2 y '2ݠ! Wy '2ݠ! y '2ݠ! y '2ݠ!y '2ݠ! eyO6 zNX9NzNX9|~3|6}?'I }?'I }?'Ij~a ~udD C)*o?JC)*o C)*o ì:V,S̀T̀LN ͍r.t/k ͍7j{ ͍;dn;͍;dn͍sX'4N͎"Mb͏K0$͏ G G͐1hf͐1hf͐1hfR͐u95j͐u95 ͐[!͒e%R$͒e%Rf͒ U)o͒?͒0 ͓:h3 ͓:h3 ͔HA`͔̾YLf͖?bY[] ͖@de͖!͖s͖ ͗cO͗cOU͗cO͗-a! c͘ZDy͘BeB͘BeB͘BeB͘BeB͙g\R͙A͙a $͛ p?͛=yR͛u ͜qPj͜YY #͜YY ͜X 8͜;3` ͜W9 # ͞[|B? ͞5:@͞Ej͞Xh;`͞Xh;`͞Xh;`͞ ,͟.?͟y[͟f( ͠X͠͠ ͠ ͠}It͠}ItY͠Cnq c͡T<2͡(͢͡͡E WaX ͣ=f(RͣEinͣR4 $ͣ\kbͣͤ3Num_ͦP,$ (ͦuB  ͦApͦͧvXU ͧsaͨ:~c ͨ07ͩF \Cͩqq=sͪs29lCͪs29lCͪ|l&̥ͫ+ͫڶ Bͮk\ڔͯE򟕦NͯRQɨt ͯA;QjͰS?ͱ-?$1sͱc4{ͱgͲJI? ͲJIjͲM7. #Ͳй<Ͳй<Ͳй<K Ͳй<Q Ͳй<Ͳй<LͲ9]t2Ͳ9]t2Ͳ9]t2Uͳo.c?ʹ5͵| з #ͶKv/ 2ͷf[ W ͷPBiQNͷPBiC4ͷPBiK ͷPBidͺD+R!ͺD+ͺȺ?ͻ3" &ͻ3"?#ͻ3"s ͻ3" ͻs3 ͻs3ͻQ(Kj&ͻQ(K (ͼg Nͼg ͽRyhJjͽRyhJ ;< 7;<vͿen9ͿenYͿen: #: c ӫ~U#Iӫ~UH[S YN{p"jP ȵǹ NsC ,NsCpu-I\B 8"3{ P%|? P%| ǎ+jY> \ 5= ;f5= ;f (55= ;fY25= ;ftڶHE}S_Wmj،]~΢7uR7Υ۴XU fwR 9-}IT9-}I39-}IĮ]tNYĮ]t h$YN6`W\?աR1L~.աR1L~. աR1L~. m/QCցArO`֒dخFt?ظ Gظ  -qi o{v ire (څ97` aڅ97`kڅ97`t<6%Q0D<6%Q0<6%Q0Vm wwĜwwĜ6{f-+E; w ~"c]Ӣc]ӢQCDњߕO񾒄LߕO񾒄f߿~nt>>5jR%`+vˊȨ iƧu4S䂗NE+OjzQ\K?  73o(bh ahv h =w.yZjyZ iyZ??Ѓuꉠ' |-\|<?B|9ڍ?_d3" mGbym[?ƅUJJ+LMF$F$KDվ<~:T:TR:TC9> 2/V h2/V (L2/V i2/Vj 2/Vh2/Vs2/V !B?F܎"?F܎U ?F܎ck\Mԧ3Mԧ3K Mԧ3 Mԧ3PMԧ3]?skl: # Tfw $Dߡ65GN5e.rse.rڨ8v`xͮ+ ^`xͮ+ {Xf_fshC.? y f], y띶:}1p&v\ ^?]E ݦJGݦJGÿ (0[ ꮖ>X aBꮖ>Xtꮖ>X ꮖ>X /0S/0S ";tp ;tp+77K jS=\1h ( Tr , ì ?7 >M >M c pMfYf pMfK vCGK? @j}3R @j}3K ,QZ Zj7 - ͅ  "BvFJ;  q;ub6^# EuEu 6P4gNQ l JɓI|tW/V /V  ʯ(N7OlOk@M  WDJ);X1.+ xdN9  #su)۬hzmd۬hzmO_K  %4  홬 !z?# !z?# $!W UO"W/SS"½EǃS #N D$77G$;7#$g$Sۄ$K% Y,rss% Y,r % Y,r %9Cv^(D))+w){) ) )`n3)B9_P $)džO ?+ 0#N -˫ .Ks.K.K ,.K .۞.۞QA.۞K/.۞0CVb0$( in0[ͺ2G0[ͺ2G 0} 2]uŴ 2]uŴ2]uŴ2]uŴ3lkkUK3r K4%rrE4%rrE49֕ 49֕49֕72B 8x==?f %8x==?f;`Et;~ӻ; ;~ӻ; ;~ӻ;;~ӻ;K<*T*L<ܼ7r <k>o>@_վ>@_վ???m$']?x8OAnOAnOsA]RtR#A'+jA'+A'+A'+A^\ BzR]tV>]VJVJVd6BWvj)Wvj%WvjWvjWvjX$:N-XT CsCNZѠN[&d[+^  [{j [I~ L[I~ $\i̓o?]B6k])]'A^P_>jazڝasta,- a,-bZ"c2d'xgc=@FWK cV` c竊Vdc竊VddFILd{f,?dm7 "dm7 e*Z?e f G ,*f G (f Gf G $fVU2qfeE fM, #fM, gvۨMy` gvۨMy` ,gxBuh#/h# $h\i1ׅj|Xj5'/j5'$j5'Lj5'j5'j5'Qj5'VjP\9 jSTj徺Vk~dcLk~dcSk \kk k kB[x mTiZAn9 3oe}=v p1ws0p1wYs'Yt&ƦktCU t94Kt@Jt@v;粐wwwNQ&xDaR:zdhz44ѻ?zrŹe} zrŹe} i zrŹe} z#ͯts{`pI{ջ,3s |}<7ݹj|;Ȉ}BU~@zj~WJ y~rf ~@C'+NU^ K (U^ KU^ K|xPT}t xPT}t΁&2"O9΂6΂D΄s$B. I΄s$B. ΅k΅:2W \ΆM׻·l(Ӹ\; ·l(Ӹ\;·YY0)·YY0·YY0 3·YY0 *·YY0 ·YY0·YY0 e·9gj·IΈ@JMΈ_nEΈ_nEDΈ1RSVΈ1RLΊ˺mHΊ|" ΋|SsΌ7KE% ΌrfkvΌFOd΍&aΎ$Cq cΎ$CqΎGHA 0ΎXGSΐ aDΐ 0ΐp` ΐp`ΐp`ΐp`ΐ 1b ΑJ>mΑJ>mΑ[q9M/Α嚽1tQΑ嚽1 (&Α嚽1jΒ*G= sUΒRGΒRG +Γ&4K Γ&4K Γ&4K Γ&4KsΔߪx>?Ε{ʯΖq(ΖLKhΗSmzPΘ{8p a Θ6bf Κh%oL Κ{d3O?ΚN٦p[Κ"PΚ"PtΛ{ )Eh ΜD{KΝV/ Νd M< ΝS0sΞ,rXΞEC41 SΞkgf]Ξk9ARΟ5z:XΠm4ΡY,@u c ΡG p ΡG pΣ@ ΣI!=AΣI!=AΣvby Τd ΥB[YcRjLΥB[YcRbΥH>7 ,Υrt ΥaM ΥaMΥ]c$Φu>Φ ) ΦE ΧZu Ψ~o #Ϊ0 %Ϊ0?Ϊ0 .ΫΫ%[ Ϋ[U?ά.dRέI} (έY]@<L ήԈ VήfIJ "ήfIJ ήfIJ iήe:Vήe:jCήe:BίF%5 ίF%5ίW]g ίW]g ΰɵΰ7l9ZLΰAyαAI eβ/R> β^Kβ^KRγhpvγc=7 jCγǛ+δߢlO^δ\p9ε5j; =εLhD εLhD εLhD | εLhDεLhD ζ8Dq?ζ]c1dζjW|$Ktη}ߔn|ηGtθ=qӖ θ?R&θFF.θx $θ$θ$ι<@κ|Mоκ&n|NλkZ]KdλBsB?μ' μ ?{ νjjνh` ν#$^b ν#$^b ν#$^bξ؇iξ: οr`? .ο2 LJο2 ο2 ο2 :lzo.!dnt ?HO5HO5HO5YHO5Y[.xƒon~?ƒon~jDσ a44K4ÜM ñ3un?ñ3un \feD /t =힌 ]=힌 =힌 U"=힌 ĤuK2@:"aD/ŝ4fAŝ4fR#%#jMes^tƒ֠ ,ƨ rR| pR|Y,R|bR| R|tdzN0.?.rv ,: ɵzsɵzjɵzɵz|-2VLkK 3@. 77 YDzhFhΔ0dr Δ0drΡ1εe ,rb БF1tmd-_K' ѕ ѕѕ eѕ5$ c҅#з?ҩ{C (uKNj(uKN (uKN(uKNsӭHm cRnR cRnL ԍ`TU [ԕpJVٸh ٸ = `jg$u , #f8&^T@@!&^T@@.e U .e UוЬ9S Cgu`ʝS֠> RDPKٶ;x?i× ,i×ډ7GwVy/ډ7GwVy ډ7GwVyC'-<[[bs!۠wJ/ / / - Gov!-eAܓNZ7ff?R Q=EtWcWc Wmkҏ গ=ؚ;Aܓ ,e:l S|cY|c|ct,mvr2N#$芷("$芷(r 3 r 3r 3 r 3$D ?VZ)T&v[/]fyӗuIVbIVLIV7IV.IVIV=b? 1[qmzaRqmza LK?mV/;M $/;M /;M?wȫo ~]8( $Jj Jj *g rRț'J ț'C؏~KHA;A Ma LT}V+o ^ . B (^u]t8N}]?U U83jQ +br>N? s[yG[yGK$B-$BDPj 9Z7} n"9#"][6 ][6 (w V i-D;%t -D;%-D;%KA9e+,d5mL$tR0:VHl t tD@[a O~nr O~n O~n _&4  8 # #S # rR XK\e  XK\e  XK\e| cұY+_V< V<hl ,S& P& # 2 2S 2IJqjJq YA]H( , :-_uz_uzdo cRK/ .d5iY \7s\7~s{g0 T+XC*$v._ ._ ,\S \Lu<3?u<3 ̨b " A4 " A4" A4 m t0;b!o(( ! <5 \#; [$p %2k]o%~j&5%|s'Khj(WK,Q(WK,$(X<7DHY (X<7DH (e) M) )?O) i*Lrs *Lrs+n!C R+d|] ,DW-wV^-@o8T . 0HG2j;w 3]͢YgR4~v5eo5^4vK5eo5^4vj7+% S9XGR:v:G ^ :ŪK;e)it;e)ih;|;.Z;.Z;.Z<~+%~?=>.=ڵ=jb=_iܣ?=8<<>7h 2> [6>ּGB ?< ??XAqL{ ?=$K@J.@#DAUfvAo(z BU| B.׈p mD $DGF$ GKbn?wZSGKbn?wZGY99H?$우jK(n $KSR Kd1 "KRj(KRj(hK֩ ,L=3^LxjJ M\|N"I ?O .vO . (OiFp O-DOʗ9] OQ, O(<YPxoyJJPxoyJ PjqPL;Q =Do?Q =Do Q =DoQ,1z R( gIR(S'ņ TQJDKTQJDDUQҩCDWU(Z?V͘0V͘0W@ٻ Wf2Wf2YWmkLY\ NGZɲr Z)-j=jZ\c!. R[`s_,p -[<_[<_[zY5 1 [zY5 \⢐% /\⢐% _,6_,6_~TO_~TOS__s_ s_˹ `kz /Z`ZqB`韺 ( arACarAQ9arA arAb5 ba baRb=_tcllscԛS eA8 f@ giph/4ViІR| gjh2[ (k svkH~% (k]FElKwlnilK i m"zbm /nm=UK^nm=UKQZnm=UKDWpX?Gyp`T=8DrP c6rPv*sWGWs2'Zs|_^tzZUD (uyk\8vQd- $wO$2x w¬3lKx{lB?x0yU$=XZyU$=XYyqo~)[|hgA|f #} [|} [|} [|} [|}A}o>  }WfS]}WfS] ~ŚC^td1>d1>dBeT} 4b 4bπ;Kπgn?π͊ڴ ρ4Aρ4AρVy ρ iςco!Sςfc?σ[c!kԘ σl/Kbυf&υ +IυU7 υ!3&υ!3&Kυ|i cφ )φTbRφTbφTb φTbBφTbχۻ@Kχۻ@χۻ@Rχۻ@ω\fω\ω\Qϋj$ж ϋ~ ϋOό!go[ ό47 ό߇5])Sό$v ό$v ό$v όDώK\aώh_N'ώ)0ϑWh9zϓϓW |%ϓW ϓW iϓW ϔ8vvϮ6:ϯ^C.ϯ샔Nϰ.ϱ3w ϲOeAvf`ϳ6 ϳ6tϳ6jϳ`(̪E ϴad0ϴ@IZQϴ@IZϴ?{ $ϴ O^2 ,ϵ //aϵK6ؒtϵ$yy'4 ϵ Q^϶@.Rp Ϸ0n asZϷ0n atϷB sϹ0W1k(Ϲ״(g[AϺ 0a( Ϻ 0a( mϻ%A ϻ%A ϼ?GAϼlMϼlMDϼ[pvcY Ͻ[^ƕϾ JG!b2Ͼ JG!tϾ JG! Ͼ JG! Ͼ\ $= Ͼ\ $=vϾя†>Ͽ@3yoh cϿY9R#ϿdϿQ ϿQ ϿQϿQjϿQhϿQ?H˰0IH˰0H˰0Ka P=ӚP=Ӛ&hȌ.\/ t.\/kŜ\ydI %s ƈ ]?ƈ ]  l5,IM;)Hjӡk-V"| e`n?3| 3|җvgxKЂ@ KЂ@ vtd8vtd8χ嬓Z* Z*#xExU*o*o Cu/s ԗ= \ԗ=vԤ?i Ai ֢֢a s?:y"D?:y"D g=udJ8f 7=udJ8f m!=udJ8f =udJ8f e =udJ8f (ٕyR 9튼](?9튼]( iرyۿ (رyۿ رyۿ?رyۿ Vr q( $څf[,3&D8,3&*,3&,3&,3&.(!ޅ31@D 31@D31@DK夶BzUTכ!AR[e켆.켆. 1켆. x! K x!  i! u$k{Ru$k{M딌!sR!1 a֋kQ a֋kQ{nA s0A XkvGڴY2RyQ Q{[ Q{[?.\j8z ^ z JOI $~ (AvbD {<ȶ@j%]^ ##]^ c؜j؜s؜vr9vTJ ,r9vTJjHr9vTJs+r9vTJt|)F+ V9&i3g3Hg3HP K7?>rQ dålr $H{YmW}d M5{[jj%$ 78787878a78"zvm? m? ۉp?Hۉp ۉp ۉp |+7 <*&**Gk+׮ k+׮  8m a R\A >gR& >gP >g *  *  L^Pj FiAS FiA FiA FiA FiA # Hu # H b0dIyENJ\YLqo qo  $w[Z%[v̒Il?Rv̒Il v̒Ilv̒Ilv̒Il \v̒IlT 2ڞ ѤNoMdžd f-V„ uR„ u„ u„ u-1o -1omC7 2 c!t c!b oc;| r b rb i 0άSK K?7[馆[馆0^E 㡋[!aЕK"Ul;"HUF "HUF i"HUF "HUF #W>ۧ5 %/l%֢0R%֢0%9a %9a %9a %9a%9a%-Jj%-Jt&Ĕ8?(lx(lx(oyA)'.e )'.e)'.e)U0KR>)U0KQ+M[&S+M[&Z+,g ,ia.Zʨ.ZʨK.ljZ1Z 1WR22z|,2 2 (3u ,3-"v3Ł$4γz .5cd N6 (6 (6 (7+G@| (8{*"8{* 9M J $9a@ϣa9a@ϣa9a@ϣaK9a@ϣaQ9a"?9;Y :S ?$zJ?$zJ%?$zJ?$zJ?o*<?Z ?/ @:~'A, AT @d9AT @#BZB9V;e)BM3%B{lB{lB`|'MxLf s LʧB| c*M>ByJM>ByJdM>ByJM&miMW{LlNKW+; NZC)]NZC)N<O2Gt"O2Gt OkX_ig PWx?PQwNAWQ:<4*LQL.rRQL.rQîV0R΋^aR΋^aKRw VSU] *Tɾ[wKTɾ[wRT pb@U ZV`|oHW?yV`|oHW (vV`|oHW WB,)1X[6S , X[6S Y* NbF[< [< [< e[Oj\" \"́ \"́\ =+ ]n4!N ^ Z^v$'C_J)zN_w7K`lHoa*Zm/ a a*Zm/saTL[iNaT܉ -oaT܉c eKtcBscD b-RdybNep ,epepfU3eg?{gW!gjg~kh  hC'h1ah1Ri5Nui:=/ j3kkF;Y~<kXA.PLkiXk@۟ kXf=l_ l_ l_m3d #mGe ncn8\8nCMj?nD. b (oerp=oerpj oerpoerp (oerppUs>~tfÓWvw:I 2vVV!? , w |w ?w$?M? w9n|wْ ewْ x5B%SqNxL8s x^Oxx<x<txD x; o_{K c0f {K c0_{K c0K|=$J2|A|L,7t~OroNU h {\a {\a {\a ,!{\a i{\a {\a ${\a ЀWЁGN lЁt@FЃF|ЃFЃF iЃ{3{Ѓ{3{ЄE cЅu-?VЅu-Ѕu- $Ѕu- Ѕu-sЅ,ъ? Ѕ,ъ?Ѕ,ъ?sЅFt Ѕڲ mЅ'Іl 84PhІ 6,pЇTIGnt ЇTIGnt]ЈsMЈם6*Љ`)'_Љzhb'RЉzhb'ЊG~Њc+bek Ќky] Ќ4*ЍЎKB Ўn8 Ўn8Џ,oܾQ"Џ,oܾDЏ,oܾ Џ.4ЏI`9Џ7|boА,P_oААfEeZ АfEeZ АfEeZ $А,Б0) rQБ=^8 iВ޻#FPВU Д7 ZsД7 Д7 XД7  ДgCv?KЖEk ЖE $ИwUyi ИbvЙ:~QЙ:~QKЙ:~QSК芐Es Л8][} ,Л6xЛһTa`KНV1Н75~О]LJ;Оޝ_L_?ПuР"QS&XС3*Y С6 l kУԉh0Ф;pr]Ф;pr]Хc/ Цѩ1aQЦѩ1aC Ц^y \ЧdIЧ u?Чq&Ш cШbШa*Щ"e ЪsKk Ъ>C Ъ>C Ъ\ Ъ\Ъ\ ЪI L Ъ.<ZЪ.<$Ъ.< Ъ.<Ъ.<LЬ SrЬQЬ AЬ AQЮ5;F 1Юljаj аLn|C Qа% 0а% а%Yбbt #бǮVwбǮVw в p#гܩ{CдW^ еCzk)еCzkеCzk е-ж Qз5'=иC2TNиC2Tй"ssйk й N1SKй N1S к5d$M=eкl11Zк&9 S& $к&9 S& ,м(W< м{/Y м{/Yvн'߽п\2NU[J=RU[J=N IUR- IUW m?ҋsU 6YLsGb$LsGbSLsGb]~EgYX =sk s=sksĬ"Cj,-i>}5fFk \11]ζߋζߋ ,ζߋ H"N"Z"p Z"p ,Z"p˲X4˽D}9m0˽D}9m ˽D}9mlׂ Nju#Sgk \t 1GY rscn?>]b (}(bϺNf)瀠= Sѷer?ң2lsk,ڢkuNp)% AE\ !M v|M v|M v| m-Rثc@[ ه\Xrڪ Dhu]mM?26ZP lN Ntۃ/!BQt۽D b` ܩ4䄋L䄋L uYS ^]"꨷ "꨷?6?i sw\6 w\6 ]^L? HC; ɇ ,(; ɇ wBV6 lB_Ѿl=p@? 4Z5}Eo}Eo}Eo?ce#?ce?ce?ce ?ce]JRJehjXv.,4'1 ;/ꟽ@&ƽ=(}|우? -x맫j /[/i$L GoU !{4B{4B{4Ba {4BR2I9$jAYt0.SYt0.)W,j]a#j]S sg6}>P # '|a aD '|aj4 '|a '|a? '|as+b!U+ws] +ws+ws":86Ȱ$6ȰM! Ul c # #'4b%gbF[ ect3s,Dd%riL49 iL49 nS nS%%bUMhn i3Mt3Mk.{żtSّ =S ^0RH)(bPQxJRI+ aޅ} Z, B"?ݍQ ݍQ wu3HE wu3HESo֣3Ro֣3o֣3Q^rQ _ 4ڕ4ڕ˓Q1U\-1U\-j1޺2( 4Np5bU;@ 5bU;@5Q<@Z 7Jib ,86p% >86p%86p% a86p% e86p% $8L49յz95WK :9@&];pY;pY;pYY; Z' ?; Z' ,; Z' ; Z' =4w:.L=Js^=Js^R=(=(=(R=ۏv + =1NX =1NX=1NX>$ gQ>Z`]>Z`] $>Z`] >aF"+?M6y?M6y?M6y?uЙ?Nj?N?N??N?N+?v@BJO0 A+S A:O<A:O<A:O<sCVJg5D myoD myoDO%NDSIF9X[FbDAuD?CFbDAuD FbDAuDFbDAuD F=GFW1U'GFW1LGFW1GFW1GFW1]IɷjaK^c2Z iK23qRLcpN1 LcpN1LcpN1 MSh|vN .] O+?P%vP=sn чq7 чq7шEM шEM ъ)7ъkrъkrdыFd ь[X $$ь[Xэ gstэ2E aю^?~Rѐa.|>tѐa.|>sѐٝ:2,ѐٝ:2ѐٝ:2 ѐٝ:2U ѐٝ:2ѐȆ`XѐȆ`XѐȆ`Xjё4ě >;ђNw ђNw LђNw 0ђNw ђNw SђNw ѓ17(2?ѓ^=ѓ^=єBMdq єBMdqєBMdqєz7Dfєz7DQєz7DєT܊:є  ѕHoіS㢼[іyĦNі4h7їl! oїl! t=їl! (,їl! s%їl! їl! iїl! їl! kїD $їܣ"R [јz5:v|јz5:vjјz5:v љF=<² #њOܱ@њOܱD>њOܱ&њOܱQњOܱ њOܱ њOܱњOܱњI3 KњI3 њI3  њI3 DњI3 њ}{i ћ 3BLћ 3BLћ҇`V$ћ҇`V (ћ҇`V ,ќ!Dtѝf|lѝ)4ў:" iўB9-ўB9-џA$~џA$~џ<ѠiX6Y ѠiX6Y9Ѡ{)Ѣx $ѣZHѤS9Ѥ(ѥ]VѦr% gѧ6 ѧ%(qѨ`Hѩ0wuyuiRѩ0wuyuiѪv Sѫsѫ[K Ѭ n!Ѭ 7 ѬnU#eѬnU#ѭ1}fNѮkMS#) \ѰjHa ѰjHaѰutѱBUѱYov?ѴGѴjp gpRѴ6Uj;Ѵ6U eѴkMRѴ Ѵā V Ѵ=mѵ_#zjѶ9Ƿ-ѹ1=nѹ1=nѻ\tpѼUѼd Ѽ:Wd?ѼiѼiѽ^x+ѽhVEѽhVQ6ѽhVD#ѽhVDѽhV_ѽhVѽhVѽ Ѿ TzaGDѾ.r ]Ѿ.r ]ѾKg{`ѾO3дltѿhHXZѿOp7 iѿ+1`91ĹZ/̘ ,GR8GR~t>E fgYKs >|Jt|JSAQ?CmSAQ?Cm 3SAQ?Cm (SAQ?Cm sSAQ?Cm| Jg Cj"Jg CJg C<T1 Y|du'< |0du'< idu'< du'< s)ObՌ oCB J J JY1(OqPJ kj2̉wM>ảwM>~]H`"~]H`"ϟ| ϟ $ϟ Y|qo?}hеX7&еX7ٍq6?4+4+4+ ёm\&ёm\&ў{ v7~a t7~a 7~a|y:d~c zӢW^P {ҽ06C!R `Ui& Et\˳Zs2sy$vl l  z0Dٌ #.p? .pN΢?^a^a۽{پ{?Ԉ1MԈ18$p j܂\|ܹDq`t݄$sS a %`L %`At_AjA Vcim - 3vCm !ᔖ 7V |ᔖ 7V|(dI&;QʬIw[ "i% "#`?-ENtMFV ,MFVsTy%L$Ty%Y .BWSQ e6?#ITs2-" 4sTlG(kZĪNlSuSHlSuK-lSu?r s?r ?r ^en Z 0"0" GngR`.t`. 8`. (tALR%l2U $&,Ѱ"Biv m%4\|Hm%4\ im%4\ m%4\ E隬 E隬 Kx;6 &zL]\Jv $Q@j裗; R; ;?4fL $4R9P (e*Q6(n|jJ3 sP_f?N8sN8?)NK2Tv J•NJ•N?J•NʾS !1s |^|^b Ƙ] x?f9A=.? v%+?,l9 ^]b9R]b9bD8+}p0Xs j7ł!ǿLgVǵ)Vǵ)KVǵ)Z: ?&a%ER! S6 5{GԼ' 9sͼs CR 0;1 vVneS vVne vVne vVneY vVne vVneU E Q&L "b/ $ "b/ "b/  "b/  ?>v (\k (\ \ (\  (\t .e꾶 r4 L3L& \O >^A",K. cK. #(c(c|CbY`Ms`Msi Hi Hآ2: ]9H~􃲧P $_pevڤ.I ,&.I i ְSs*6Q-d s7#,K7#,7#, 7#,I% >I %utR&ĵq&}'a)RZ'cb? 'i 2 e 'i 2j'b _Q'b _R'v$h(կ(| )sZ8*n 3l (+!WQv+C! j+C! +x0¦R,'p ,'p ,,>ɼ -]/4L/gXg3?/gXg3 e/| I- /| I-/| I-0U1lV 1lV13J13J 371"sN_371"s3{L1 +3{L1 ,4`.pK4vtD`s5G2 5G2D5G2Q5"t a5"tv7'c7'ti7'Y47R pt #7R pt 7R pt+7wQ7wQ 7PS:L6Iet:L6Ie a :\O ,:_U <ɡuQ 1  2lod6xRlpDnI@zroYoG 7otx˘ pBa"q5TtH[r$S s t-BNC?tnVt$Ev};Վ[v~hW-vFaPwlf_KyL2 ayL2 ByL2 ylbz"yzi {Ӕd; |q?Ft c|9>{K, ,}sG ~>ol߁'>~?Ҁ}fL Ҁ}fL Ҁp.Rҁ˲@f҃WwPnY҃WwPnP҃WwPn҃^ ҄7/ED<҄7/E"҄7/E҄NcR҄Nc҅-cݝ$A? ҅SU m҅ک R ҆A0|r҆A0|r҆7} ҇LFY c҈(#f9҈(#f9҉$s i ҉$s \҉$sjҊ i$ҋiiҌ, ҍ0.&P$ ҍv:CҎ3P?Pn?Ҏ- D! ҏ?H<ҏ?Hҏ?Hҏ?HU ҏ?H ҏ?HҐ/ Ґ/ /Ґ顲Ғ ғPl^2ғPl^2?ғ&;sҕ}Pd>Kҕdc|a Җq_>Җ# (Җ# Җ#9Җ/'Iy? җ$ҘrK3 Ҙ'<ҙ!qSNҚ0!M қb1= қb1=қ һEҜMҜ.xUҝsڡҝXPlsҞJ0'R ҞJ0'Ҟp1sҟa 4tҟO;ҠCw?ҠA}9Q sҡpgs ҡg#yKvҡg#yK iҢ23N5Ң23ң (ң7QҤ>8KҤ[iRҥ+s MҦ(duҦL[1Ҧҧ2KHEҨ Ҩ.ı?Ҫo Ҫ6ICf \Ҭ>&YXҬ>&YRҬ|}Ҭ|}ҬqP7 #ҬAX?ҬfKҬfKDҮib5BZ sү{/g+h(ү{/g+t%ү{/g+ү{/g+ ү{/g+jү{/g+ (ү{/g+ү{/g+ Ұ'HxB Ұ'HxBvҰ'HxB ҲRpWҲʦ#vҲʦ#Ҳ* 1Ҳ* sҳh?%ҳh?%*Ҵҵa|C aҵa|C iҶFQҷ\d $Ҹ  Ҹ  Ҹ sҸ " Ҹ Ҹ Ҹ , Ҹ Ҹ sҸ Ҹ9tiҹi|N Һ4U9;ҺM%ҺMҺMһ #һ !һŖDҼqfSҽ&btҾxCNRҾxCNKҾ}HERYjҾg?ҿ]3͉ ihc`[x38'x3 O<9$ aiR| , iR|ºYR$J (b J ( çL] çL] JcaNJcaN ed &dddd <(:n nR(q+kVaiPQǒ\0ǝ? eKYȓuom;R;W5ggy W5ggyW5ggyW5ggyW5ggyɂu|2 ʼrN:vi1 ( ;3AqL@¦N@¦݊' @tzg w1͠|ꏌQ #ͱZǦ- |ڷ |ڷ K|ڷ |ڷ }6t}6 }6 i}6s}6 Γu8 ?[zV̗wd?1( $1( 1(ZuV > Mcek k? k lدҀ)*Y {[/7M7M7MӺhhg1 2 S&-4S&-4j?-/ *o-~.3;_d3;_I $I?I IsٗEG ٗEGٗEG65`  65` ڋ9kk2ڽ.;5+ $:>\4g e^V Hi<9ކnawކnaw߫p #d?]-]-b2 i@2 i@R 2 i@d mɠb?mɠY9mɠ ۵4,):Y8 J47J47J47溻q溻qDA*cQQ)wv[nJ . da2 %da2 da2 $D [msy!zty!z y!z i #` oRo"cDvX&1) 1) $kvjn߿cdz2 $ (XalYGRiVd7 cLVd7 Vd7 #(G#8^ $ =n gn5@ k@5@ R 5@ t` %uTDs <3#pF $vtv _ =* pn; 'س c~-mYB# (y Zѿ? ө\?x~jGk iۻ u0OMo?V'c" gI ,W+姪  ԪU  Ԫ Ԫm(¤6sc".C OJL [ [ :R˸Y! :R˸Y :R˸Y P9# 60h0  oU }H~2    s; t  DR ᑹ\ HyL7QR7Q 7Q 7Q>$>r9? jJYhCJ?נ#K[~fv &䩪 &䩪!?Ñ{~ $;>p eEOk2Cs l$' a> T j [ $ 4/M`vBg`vBg |J ؝j* ؝ ؝  ؝  ؝ e ؝ OIZ "YGHh"`Q-?"bxCZ "w dž \" ?"_ @?s#<}N#Swۭ;#Ti#XX$$B?1t$q8%Uu $%MS}b %MS}k%MS}t&&z%Wp |'w%OaR'w%OaK'bt']pL 'يɵE({K^ ({K^Y({K^)=()=h)=))= ,knx7[,W;u m-Gm R-..+.+ ( .D a0}?~1COQj1Q3pJ?1v>W2isV 3%@(s3%@(3M #4:C(b 4; 4It-j4\J5`IZ-6'e!7[Yag #7e:t7e: 7F e7F 99H:mh:m:rI:rI ; >3;8ziˆDQ=O|0=UNCKl c?w9ӈ=?w9ӈD6?w9ӈ ?sh.?-8|?-8|@dܗAוkAk 2{A)W|Bb| Be?Be Bvx Bvx BdF'=CCICP/CP/Cy];yjCHDCPKE:E: EFQQ,s F9a䷚R:Fן˷RGo VmGo@]Gpk #FG4OvI4O1 *I4O1 JP K)vKS2GUgrK~MNA9XN"ROXw]OςN_޲P$js $P,m$[P矀GjQ R @$R!܉T Re;,ޑR<'}[ R<'}[ gS./# \Ska5U^:{,V$kV$YVy:r?W#-W#-Wsh1XY8M aXY8MY$B|YG![Yp!Õ ,0Yp!Õ Yp!Õ $Yp!Õ (Yp!ÕhYܡ.&e Yܡ.&e [1sZm_s[NR3e i\"u[\vAݻj^} 0<sS!P"0J "0J: Ŕ=2:sŬ`N>kŬ`N>s Ŭ`N>YŬ`N>tƧ 2Fu 8Ƨ 2FuvƧ 2Fu Ƨ 2Fujbګ*a'ks1'k i'k tȒ=C«{h J? tDDw j%3`6 qɾ μ]t:9 (ϴػ:()ϴػ:( ϴػ:(⩙C:.,8t7sѤV,E .'_9. ҶC/C6?/C6/C63Sz>3z>3z>3L+ 4 |j | $ '[RBR$c*dQ ( $c*dQkʀ ,ݮ4p c_!V)sz(FDkJN 2-kb GdXs \C? \C ]! T,=sڬ4 Wȸ) 04NQB04NQ?G- gR/ uNZ42ěn{9S T^ ܏IJ3 eoS |W\v [i G,o^ qHAR\7[S~s S~~ɚi \ "?Pc3}K5ej5e5e"fs"frFKj@K[ ьCьR6^ "Fk jFk ? $ԼԼ , >? zK#c +HmӞ`+HmӞR++HmӞ+HmӞ e +7Yl$4r9Y:SN2I M#B !Kz $!Kz i# $_}v K$_}v $_}v &)1u&D h 3'.&j(%O!s(6n (Zoks(Zok (Zok)$<_K )0:?* *^RTGw@Ui/]Ui/KVf#VRVꂮE WC: E=WC: j/YHNƊRZ5xq ,[Vd5}et[Vd5}ek [Vd5}e [Vd5}es[Vd5}e i]t]^Qf^/^ ߉ #'^l3 o^l3 ^l3 (_ 0xk_ 0x _ 0xt_kL_(Z@ (`Le`m#`ΣDž +a(-|Sa(-|Lb=CQbW$c$hR e 0.e 0 e 0ef]xa e&2f.ЖoNf.Жog% ~ g^ cg hJhf5?Khf5?Xhm~UoShp jD+]^m?je"nIl-X[lYnZ8X?o#OS \ onq%donq%d oebDq$( jsS!lssd4SSs" # t|&ufRU* \ub"`Svw*-vXl|vXl $w^W]N x%kx\1 wx\1 wy)ykLyd 5 (zTۑW {b2U {b2UV{b2Uk|aQ v |aQ !}i'և?}xB}bs (}bs }bs }bsv~V-x!LJ0H LJ0HSԀ0Oae Ԁ0OaeԀMj ԀMsԀPAgV ԁ|*ԁ|*Ԃ Bl~? ԂXgbovԂg* ԂiPbyԃ ;fԃ ;ԃ ;aԃ ;L#ԃ ;#ԃ: ԃJ7D@ sԃJ7D@ ԃFK |,ԃFK (ԃFK9ԃFKԃFKԅ(7RԦeƝR ԧgy"] \Ԩ`ISԨ|W@ ԩqoFm +ԩԪ3#DLԪ4Mt Ԫ4Mt Ԫ֜-9(DԪU jԪU ԬR^TԬ7I`Ԯ@˧! ԯHVM nԯHVM ԯHVM ԯ;sfvԯ[} KԯM ԯM  ԯM ԯT$^INԯT$^IL԰7P*԰7P]԰7P ԰7P԰Ί=u#԰Ί=uԱzQPRKԱzQPK Ա0h-  Ա?gEԱ̡ Ա#4NtKԱ#4NtԱνϫ.ԱνϫԱνϫԲ pԲ %Դ 7MAcԴ; .ԶX ԶX?ԷKԷ oVrԸk( Ժf]HtԺtaԻ@Ի9] Ի9]Լ%ԽD [ԾK{ ԾK{ ,ԾwNԿȱn#s\TF "[d5"[ ֗JK֗J֗Jn5fPqLs ª7#)2K[sX{È!Ww/91 iK =9ĄM -ĄM $߬DLŷˇ[GD] GDGDRREtfGWzJ6?kNJ ǝ٧ 7}fYMj:Mj:~Mj:JMj:0Mj: Mj: iȉM.xhgGs ե0\ndR&s &s $ ? ca? cVhNQP4Պz8%Ef5 l7A\$ DOz 2 ivPܺduEќ1jD RW ,RWsDmtQu]'C"&s_~m_~_~;Shp8]j 6 # h# ; ŊH  " dZ '-Q^ '-Q^ av | av  av  ̻ s ̻j [ ! x|j5  `Uc d8r- A> {c$8C(. [ k G|tȭ! wSξ;dLL ܁?#+T aCu3elfư t b,@K ] ]te۲+e۲+jLIR!j!| 0GKUOh?0GKUOh]\ 3c٨ K(b(bKi"uFY~-`\5Z 3uj 瑗|? 瑗| "R. #"as#]ʉLs $f(?%YzvW #%؜s%Pj e&`?"&`? &`?'nt!1j(MԿS i(MԿS)2֢8*;*&.b,"̕_-8 /@A@/nn/nnR0ڈ^~t01|xBK2+2+2+2xmR 2xm2 kD2 k2 k23~&N@4& 85 7 j5~6' 5ʁ 5ʁ5s: +S6e /6e 6e|6es 6Xi#6r ? 6s\`i 6䈮ۯ 7W݋, a7'@!926~r926~r:[ږ #:[ږ c;:͉^?v;\iC;\iC a;\iCs;\iC;\iCE? ,>%>% ?G4 @/ @]Z%P $@:xv<A 썩rtA=b 6NqAck%fAvh v AG5 aAMB =Z/BA sBA \BA?BA 1DaӏˁDmWhݢ DiDZ6ZDZ6ZKGIIhR?oY RNv+vR©[$ iSKUWaX nV6gk W{X1~Ր aXqG Zx +Zu7? [@f [=}s[=} [t|p[2#],Y]㢀O ]㢀O^^  ^:+ ^:+^:+^:+^:+^y/1R^y/1 ^y/1`LNaU%bZτ bs4 asbs4sbs4t>bs4j9bR DcuxW d=CdD o6|dD o6 eo[e$<7F?g hKcg ahKcg j^k Skq 㺕d>kq 㺕kq 㺕K kq 㺕l)tnlrCR l3tmr"l0 mr"l0 i%mr"l0 mr"l0m ?nppxeg7 r ,sYo JsYo csYohsYo t {yRtoKtoCtoR to u>|auXÎv?MTv?MTv?MTKv_-l v_-lwʲ- $w=Fsw=Fx+yjG`yW EyGpQuyGpQuyGpQuyT yCRye%&Cye% z([ϝ z([ϝj1z([ϝ?!zIyNDze7 ze7 {_B {_B |D|LKA}y}+IZxx %Ձ!1p %Y Ձ!1p % Ձ!1p %Ձ9vdՁmQ! ,ՁrScՁмVz?Ղz'Q ՂeYw|ՂeYwՂA1Ղ!nvՂ!n Ղ pՃ /Ճ xՃy. Ճ % ՄWsvV{Մ{WkՄfDPjՄYBw#ՅIPlQ Յzͧ?7Յzͧ9Յj~D;Նm?<vՇ9սՇ>3>h Ո !ՉNlUK#~ՉNlUK#~RՉNlUK#~Չ*ՊՋ1O]Ջ$B!jՍem@ N ՍC,ՎLz:vՎLz:hՏiz7jՏ,4vՐCbJ^Ցu Փ.0{ aՓ76 $Փ<'vՓ% Ք,}Քii aՔiijՕ0C|ՕYՖ`f~9 Ֆ`f~=ՖԌkP ՗M`b"՗M`b[՗ϟA? ՙs ՙs ,ՙs ՙs ՙs ՚$ ՛YI6dU ՛x ՜Vim ՝W ՝Hr/k ՝bǾ$՞CJJk՞CJJ (՟6r%N՟a \՟_lQՠf5.աl ա#P}ȗա#P}ȗբ6tգk9գk9գR4 dգA ,գAգA $դo0դoDե Փեgե>Eܑզx զȕg^G8 զٔLը Q|թ2+\ :ժq+;ժʩQ& ժ8j5Lժ8j5ի]?իRe !իbK?լKlN լFgRխۙz #խiHF aխiHFխiHFsծK?ծՑ}kկ,*=vկMI#կMIկMIհ71Sհ&ZtKհS3YKհ[ ?.ձ˱+A1# ճျ`wjմ;Gյ ED^յ ED^vյ"o>iյ"o>iյ%T#!յ%T# յ9 նU1SNնU1SRշC]PNոp#C ոp#ոQHp<ոm \ոm ոmsո悋5 #ո悋5Xչ Dk(jչ $չZO[պ4MջxXջxXջ]sջ]?/ջ]ջ] \ ջ] ջ]ռ+lj< ռcU9 սO'սJ?տILg`,տILg`LտILg`տILg`Z տILg`տpDt]տpDtտR;տR;S 5ΕϹAI?zAI AI {_ Y{_  vq’q&¯’q&¯8߄%8߄R8߄8߄p<X('- D@'k ^rj$H?OJ,Qƕ-o(nƼϐ2 aǗNZbǯFXOXǯFXOAm$ m$ \ x:UheR$62R$62my$<#!kC" \?]0PӡN PӡN?Qab"tQab"bϒ4ϒ4ySRIjЈ%YmȸL Ј%Ymȸvw6?S9'#>S8e?s T"Տi>/Z.YZ.YZ.YKZ.YD֞`֞`M֞`L֞`S֡(J`1H#Uo NoY*o  o @5RyjO* $ٕ|>E ٕ|>E8)Yj?zd ^wߣk}? k} k} 1lf2g $V89V8YmR$@ 4SGU , > e > $N/\+v AAdofZ qEj-ⰾg iⰾg gᴆ=t4sE 2Rk1H k1H |y"K輍HKǤlp \e@K(zYd3(zYd3 (zYd3(zYd3S5R.{_+? 얧/݇ z~ TfNbKVj{#P a#{#Pj ޒ2]?'q?TSYn?,bc}R),bc}YeNYeT1І ?І  _Y]oG{]oG]oG CCr ,-v 8f \0 ,0 0YjSS &<b6B ^ 7 ;7 a7t7 \7:ch}B }B u͏{0*ҿ T Nô Nô NôS NôkJ[ kJz  QLHK3\ #o((Qo((m%L m%Lu1 e(mC_ \(mC_ (mC_(mC_j(mC_J25 $J25 J25YjTw k(vzؠhLHvoxox oxj $FZ_^.s P%?9Tݦ p]?N@ یBR *HQ q   Nx0 ;C p<v U`\ U`\P d] ͼ ͼ_ ͼU) ͼ ͼ {g  15 =^ra. ,=^ra.j:W r_ "Mv;c$~.yjv~.yjOa6c r |㭊Z )FE_ ٟz~tٟz~Y3 t3 sxf?O-nrj&% /8"?<3N U# b,߾db,߾i|Y&! X L ۄHX!iVo!iVo !{)"5D #ܙM ($O/L%Ox,I%͑~,&TF&TFS&TFU#&TF&S'\L`'{^+4( * )E֕3 |)Giws*o*s* ***+!1G+3B+9 3-xϦD-xϦ-p-fΛsQ ..a.6ej/%R;j0h G0h (0ht0h0h0} { 1oĬW2U@(& $2x $4 2x $4 33|3=4Iv4-+6ծFpT2?8A v8Y߿N{'8Y߿Ns 8Y߿N 8\ßͰ 8\ßͰ8\ßͰ8\ßͰ8:. 8:. {:ЩgQ=cjN=g~=g~S=i9 C =i9  =i9  =Id?8:l?D&Ys ,?,R@~DdHkN C[+ CWNyjC3]vDǷ: DeNEDDeNEKE8GK+ EMP $E:)XE:)tDE:)GoR GoRGE)GE)GQrH[7TH[7THo [Ho IA607YIgJ2aJxjJ0<"J0<tKgڍٻKgڍٻkKoVB? KoVB LDˆ?L.ort *L.ort aLo1xsLo1x Lo1x? Lo1x iLo1x M*R* +M2ZCN'MPMPNV mNVOH/iOH/i Qi R Qi RNmRNmtSF6SF6jSlúEJ SlúEJ9S2V #U;dU;d V9,H8jVK͗ZWW , WW W WMC iW7n"X&䱮 cXR_Xw3 Y' \gYyJd YyJdKZwAS[T;Rk\os]a.?]l%ID]l%IR]l%I^(m`B!d`swxb`Ls-Y2a`8c1Qvx8 cMQq~fj go g[ #gk2NiCTidSJ idSJi-hi-hjۈ$Kj  j jaytk06{lY"Wm/8] nck nb. #ofoAD AEo} ipczpczLq<D qSqs6< Cs,A@?s,A@tQAmE #t_#tRu#Cgu x'vVU2/ vVvZ.| vVvZ. ivVvZ.vVvZ. wJ0wJ0x?cxA  y *9 y)* y)* y)*Yy)*ty?? e&yGcT yGcT yWyK?:$zyD zyDU zz'´ z4G8zs4?~%H`$~SRsSOjsSO asJ #sJ 5<|ր%hs ր7ޙaր& .ց5Z'FցKY|ցKYsց=4ց=4Nց=4ցL=>t ցxtւ ̂փ9͠ 6^փ9͠ 6փ9͠ 6փO8փzM $քs օP}Kօ]=օn1~Z\$Jև! V) և.oև:# ֈQ]##ֈhe ֈWx>Qֈ-ާ ֈ#sLֈ#s ֈ#s։@!Z։ƠX$tN֊.B} |֊.B}|֊ B+֊ K֊'yp$ ֋GzK֌nvC֍6}x5K ֍6}x5֍`֍בa:?֎Tݭ֎.Se֐*Ӵ ֑d盤_t֒ 5@֒^j ֓ #֓~HR֔Ǐb ֔줛 I/u (I/u %%D}fED c>,g1wIψ O\pjqlAWN|*I.8#"]Xd6^ m6^ޙنa\??'--@Ş7|jЉv[Ƌ%" \nw 2u> au>u> [z C6˰t"$kjN ۜ|H` ,P!{Qt:{WVOO6=#%%Y3s%Y3 ?0ՠ ErI{?z z=Sb@yX (Q sNW Rn$G61Z |61Z (jyU_Z w Z w['l0hC*~k*~kKJTnE{JTnE{JTnE{ڝgD`b+ gy2 gy2 QQ|R N~ \ smoZK mk B[@ D_x å*' # ͟ ͟ ~~ Yd_J @tR[ Le :e 7e /yy -S42Oui-2D2 2צRR:Sя4Aa5clWsa5clWt -t_rh_~_~SŽ nLYu]E4P{ ,E4P{ 擰"^Eӻ$"^Eӻ#h9}:,t # '7ޙeuyMbv/Z ZX_ZX ZXk܉sRk܉s*/* aZ1|ty_ \/(g?0"j )|  46 j  «2 ;sݛ a ;sݛ ! Cu "xL% #,YzU?#B'9$#Mf?"#Mf#Mf #Mf $&Iv $Z &?H\8 ,'} 7i+} '' (u R@(u (u (u (u *2+؆Y?,9!wjD,:2 -֡R-f)t -O_$9?.IY =. /3gNs/!Үق? 0{#0?2VAΐ`2ʦlq 4m *4wWlY4?4 g4G,t797I.y3K7I.y3L7=ڜS7=ڜS]8~zR8-o8z9u`<79u`<79u`<7:2-DzR:2-Dz:LAKc:LAKc; CZ =DcQ \ =DcQ? =DcQ=DcQ >w^8,R>w^8,? $W?QP*@!p-{@!p-{s@!p-{ a@W @JU m @JU @JU2 @JU8@&}/WAO.?AO. A-#1;A-#1 B{c #Cgu DH? u)DH? u DH? u DH? u ,Eh|F4 SGaK2NGaK2 GaK2Gq~|o \Gq~|osGq~|oG.I'HߡIq~Iq~Iя[~Iܼ>TJ+s| KYz&KYz& KYz&tK 4 VKsrc*KsrcL K/Vg L։W $Ld@2 M! N(k]dNPe@E&]P`R ^P`R a P`R |PPє] R%1o[Bso7Z)pIUD p̮Nvqm7Mabq1 Gg ry; ds soKbCsoKbQsoKbsoKb(sz^N u-ɰ3u-ɰ3wE awXwh0?x)Z/x)Z/zA%N{~6 s}Z}?iU p? }?iU p }?iU pj}ZnL? }c }ԕ1~@/MN~⦢C)")")" )" tr I e׀ 3޿׀hL<׀ C%ׂkCV ׅ!7FR׆J_j h׆;9t׆;9t?ׇR!p $ׇR!p2׈bOń; ׈" #׊ G׊v)K ׊v)׋yvWB+R׋csv׌ ׌'\j׍Z׍Z׍Z׍!׍TƋ $׍1ʜȻ ;׎R*0Le׎R*0p׎R*0׎R*0S׎R*0׏DR%׏Qwhs+׏Qwhs&׏Qwhs׏xב799ג0G%MYג0G%M גesu`Htג&|Yד/{sjד/{ss ד/{s ד: " דdg דn4 דn4 דn4הbMJהbMJ הt{W`וJGVזV<_ח5(/ח5(s ח5(ח5(חkyחm,חm חVqkj חVqkטU1mטU1mYי> ,י> iיxz ]יt(י&RWךB ךL=WNכ{ כ.g _ לat.לa לaYםiמlzS ן{5rסocס.p7ע^M ,עdCzף_B&ף_B&ףs! ף 'tBף ' @ף ' ף jףhI פ)ʝפPפץ 'lץ 'lצigצD ,"צD צO6? rק"s ק" \שRשoת xa ת xatת^JS׫Xan׫A׫A;׫A*׫A ׫Ad׬x[ ׬x[׭%Ü$Sd ׭%Ü$S׮)qռxׯ&%ׯ&ׯf&l ׯZnfYZװFײjC;M΢ ײjC;M΢ eײjC;M΢ ״yV#4%״yV#4j׶:Q׶Yna׶-{'Hh ׶Pɭ/׷)nqY׷]6Ă ׷& K׸m3mj"׸m3m?׹΍KDV ׹܉2 ׹܉;׺Tid׺F) ׺%J׻D׻T5U׼86׽f)s׽f)sY׽-7?׾㍂׿Jy ׿Jyt׿V^uPR׿$-&_ _ $jI U ^Oy4j"E( E(wtmgLCtmgLC mgLCY@mgLC mgLC amgLCbmgLC ~8a<j):y $Qw $ƋW4nZ %}sR%}s!%}s~fXs#PTC\Pإ3dX|ofvYɽ"$NZl3a  (R{>jR{> R{> vn]? i']? t-KSTmBФ #V s #Vq #V  #V  u \ ƪoŠ? QFcq xU  # + #Լި%> ' \%> '^g_yր^g_yրlu lu d i>dsdj dh d d d (:*1RhL`X?=P =P Xe |$ $ w$j$ $e\Xs3fkjqRG,XZi J T6>g:YI= \l0'\g '\g |MfTZQze ( >机)>机>机>机QuӦMR< 0 tAԞqj".K".".D".C"ɼ_#$v +$8m&jP&jP (&Kf *'gf 'gfsj'gf#'gfj'gf'gf ,'gf $'֢(jz)[ *̥ЮL+i~QTkj3+i~QTk++Q'++Q'k++Q' ++Q','\? ,'\ a-M]-ͪ.'6 j}d.'6 j}[/"1J~?1J~1L[)F 4E0t  4K 5퉲?5퉲77~09I#v (9~ s:1;:1; ;BG v;BG ;BG  ;J;5;T/< Еpd< Еp < Еp= m > ~/>_q+>_q+??Ov$k{R@Q %%@/-Ǹ@{ ,Af1uY#A  BD$qBiu $CuEDm } (E* E*Fg %G b=*\FUG^1` H8YqYH3i H3i ,HhU8JIGt6 |JKl?_L=KHU?K~uM8WrNM #|MWh MbMbM|iR M|iR M M  M̨|N,'.3 iN,'.3 $N,'.3|N9kh Ns| m Ns| OT )v OhNO:@tOV"ISQUKNQ{j@NRat!?R5F_'R5FfS͐; 4S͐;S͐; S͐;tS͐;Tԁ8 sU|Q2btU˩Uׄ ^V .DWEA]Wz)!+ZYHأfYa Z|x ?ZJdZJjZZo (Zg# 8[#! i[8`S\rak\ra (]ZN]Uԩ![t]ҜX ^=T_ɕna -9aBv b68.@jb] Bc+o;c+o;c0Bj?c u d!)e-3%ResYf?MiDcRf!$z.hέB i;kti;k is=M̌sRi)viJiwu]jQn^Nm \jQn^Nm ijQn^NmjT.9tka yl_kl_ cl\t&l[ m ,Ml n(Lop {0op {0soyAz' $ p@؁p@؁pX,~p:tp:tp:tpkq@$- kq@$- {q`wZr5t r/rs_?sShG s8&js6'K,s6'Ss6's6'sZ@ 2 tv cZ sv cZjv cZsv cZv cZ (w)9RwYEq'Ǘyg) - yj`Y y[? z.Blz.Bl z/J/R]$"|P ,|P ,|IE}Y ~AqY  ~^Sr~*7~w?Ij ~w?I a؀363*N؀363*؀,Dt؁TF( *؂Sa؂Sa ,؃F̮/ ؃9Sݬj؃9Sݬ؄̜& $؆v"{R؇BS ؇1_Wt i؇KN ؈*&؉J@ XT؉x=7 5N؉H}؊xic ؊xic ؊xicQ؋@H ،ci/،ci/?،7p-SQ،7p-#،7p-،7p-$،7p-؍"-j?؍pf>1 ؎aCe|&؏y/:؏`múv؏`mú ؐh|]ؑBOHؑRsؑg_?ؒ$F cؒV (ؒVؒV ؔ,,Y$ ؔ?fnؔwo6kj2ؔ[>ؔST ؔSnjؕdm ؘt{@ 3ؘt{@hؘt{@ (ؘwlÔؙ0-^ؙ-9z aؙXX??ؙsؙؚ0vNؚL]> FؚL]>ؚL]> ؛$B #؛a69F?؜*'؝pI j؝ѝ"*Vs؞l؞"E_9* ؞"' ؟؟t*Yvؠ,hؠE8iLءp أ5Fsؤ8 tؤ8 tؤ˒ \إn6S+إn6إNh "ئDئ5i ئW ا'X% ب9YrxتnaCتnaCdتk{C%تk{C% $ تk{C%| تk{C%تk{C% (تk{C% iث4a ث&c.]جȩEجjL جwl3 ج%M |حοح  ذBBSرlpUeز;Jj س~ ㋕ س~ ㋕jس~ ㋕ .س~ ㋕ س~ ㋕شYxaشYxشYx8شYxZشYxشYxL ش8 ص9YضQA? ضQA طXG@$ #(ظ9u ظ9u?ع%S7UUYع%S7UU ع ع ع?& ع?X غm.ػ&F ػ*x]Ef՟,} .v+f 556j?[t< Z&. צ%* _K׭'sʉ' ^ cS˜1R S˜1 "G[J&RuKj_h_hYWa +P* JzIFv9 \nY# dZ) ﺸ- a29 i29 29 %29 SFۯ $5`( ne) ne)jne) ߸>X8GH5GHtGH;GH<GHR6GH"GHGHK#N%w捗RIAIA6  6 7΍U&Y8^ IB@sB@|ΫW} (ΫW} *v2<`N 峓$ٿgWp n{nqbhN "3E8w"hl>hl> hl><mR<m<mC( #}r-~ \ D?Dsa~:j!l \ [hǗF װ%1{0hei]NP NPjateo (>? > (K\ #K\tK\ ҃SZ P g% b_X_Xst?p f}d)f}d)f}d)f}d)Vbd }Gj`dsqZ GYZERlդ?v|Ec<EcU(EcEc  P^sI P^tN7bP d 0v}6v}'v}Qs !ON0u?>9p FhP)><#k %Ff?T(FsT(F   se -$ - -   A k4L RT )? Ԓ,9 Ԓ,9 e Ԓ,9jkáskM kM ij!mP0?O ;Out UԎH }}ɊsN>}}Ɋs}}Ɋs'2!݈L'2!݈a kDzhQI_j aI_j }q̯?*aTn\w@Z Bu ^kS)kS)Ur3 r3 )G?DQ )G?Dw;+s ZL;+s a;+s ;+s Қ1  und<f<[s [s [s a>c"Q a>c"a>c"a>c"c};> ;>?BXw\8f/1={ 1={ 1={ LӔ{3LL4qα ?] ^!"EC !;l? !;lj"a{0 $ #d5#O6SN #ՇK.6? #3m)Y$#3m) l#3m) #3m) i#3m)t$[-iR$[-iR&3 &n'6\˾ $'s( ?'] ?&Wm[ ?KׁD?u-@u=@M nAt$7Ax A!B sA!BYAWz|AWz AWz AWz iBN WmI #Xsq|?Xsq| Xx>hY h7Y h [==[== [==\&j \f9?6N\hc\ .P ]XR^867a;^s^ GS_nzk`)%p>`)%p>SaK7wЅ aK7wЅ aK7wЅ:ar#|q"1ar#|q"kcs]* c!8e9céfĸacéfĸacéfĸacéfĸa ds3d2f(jBc f}L!ݥ (fBFt4fBF fBFj fBFYgdT ,h88A3}FhTyH0hKhTyH0hLh{u?I hӆ;i=> iSRU4SisjKJjY˾PP?jY˾PP kz>UR>kڱ < lck \hm$! m:5YZp mR= mjVt0n?|#J cnvU n> n> *oR`9Y oR`9Yoq= "oIoIQrg+}R)sl>Hs?s?sU4 ^u6& vjVBvjVyI~u`8yI~u`?yW-/Xz;Rz#vCFHz)!7 z)!7]z*Kz* z*zT. \zT. szϪV(zϪk zϪd{" 3zN{" 3z {" 3z c{C7@h|B|BK~Ҧ~Ҧ~C0 ?v9 v9ـJ 3 ـA|*ف C$فlBA #فlBA cفZ6GL ف1cHbفc|$فkW فkWjفkWsفXk= aف(p ف(pS ف(pقf ق)Nق\* , ق\* ق\*sك (5Tك  مA@辬مA@辬 نUk dهUdوD3sوg8 rوg8 ى>OzيRy&qي{$hي{$sً1Zٌ?:A ٌK,(a?ُģe$ِ B"hِ`T cّkױ H?ْMP\ْo`M- Xْ{} aٓ萷\ (ٓ!Wy@ٓ' ٓT%f ٓrx cٔs=[ٔ{4͸ٔwٕ)r ٖDPX ٖDPXٖV<$ ٖ&/3ٖ&/34٘R/ ٘+  ٘UU ٙ1?1sٙQ/ lٙQ/ sٙQ/ zٚ'.1ٚɦ6$ٛ#ٝRyRٝRyٝS0oV ٝS0oVhٝrAٟ4&4 j@ٟ4&4 ٟ ,ٟ e"ٟٟ ٠#MȖt٠:\5b٠^~ ٢]Rr}LA٢]Rr}٢]Rr} ٢]Rr}٣>k i٣>k٣oFrBQ٣+It٣ E[C<٣ E[C٣ E[C]٣ E[C٤u`K a٤Wy ٥ udH٦0 ^k ٧Szd!٧ncG #٧'6 ٧'6Z٧'6h٧6٨sris٨8C w ٨8Ct٨8Cb٨dN@C ٨/%٪ ?e;٪X ٫ V? ٫ V ٫X٫X٬";?ٯ$V 0?ٯ$V 0ٯPfٯP eٯP ٯPٯP ٯPٯP ٯ5 1ٯ5 1ٯ5 1ٰ5Vzsٱܪ aٱ㧻{ ٱ㧻{ ٳo) ٴ?$/ /[ٴ&Z.7ٴ&Z.kٵx$ٵ~ ٵ_,o bٵ_,o|ٵhٵhٶ,3 ٶ \ٷ5Zٷ`jYٷٸLNcSٺ/0ٻ-ټLAټB # ټB cٽXl;\ٽsh ٽs پZPپZPپZPFپZP(پZPپZP پ,wپC'Guٿ/h0xUEVٿ/h0xUEٿ/h0xUEٿ/h0xUEٿ ٿ|A ٿ|AKٿ|ARi;I b8K9 (X*It n .v_rQ/6; -!=q7o VJ:  VJ:}Ѷ K}Ѷ i}Ѷ aŬ@bN!ԁ|6{ZsƔNafIU18VcYd4C#CA ,Ɠ ,Ɠ㴇>Q#㴇>̒i@ݕ̲ @̳ "0֩+ F F RF "׻?"׻s9+`|9+` 9+` 9+`]9+`@ԧԧsϵ'z  Q0ϵ'z  ϵ'z  ϵ'z   ϵ'z   ϵ'z  L ԹjүP$ үPR үP)үP#L+KcM #ӍKӒ3 aR>Ӓ3 a Ӓ3 aظ%?ظ% ظ% ظ% 0K*^@%398DHl) Hl)g* ׭}Kr @֨bS ֨bL綀FsX[*&EXmok6y<sy<y<jd&< WR뽤7J?7S # - #*! - #*!mX?nl )u` QsQ N8@w1ıW|O? |sl}Tӽ1gRK1gRQ1gRd1gR1 (}^ a;^U;^U^;^U&;^U;^USxEnt[H&taQZ-q1d *76_76_76_Tt] Ҫ^ٗ5 ?ɐȐ Cyx \Cyxy#ns:Hk,Sj5HΖu UL l<Ѐl5bl5b. [_dqI dqI *7sk>? X6 3웞ȡ  ʘX5 Q`慨t g % g g gtX gYA g  g \ Pe_s Pe_t c +FȾj C [ s ܢ ܢ ܢ(Lj(Ljjp[iiIKJ~Q aQ Q &.j2t/yDsNb/yDs"M| $&Q =&Q =#Z,v r*,ySr*,yKZFM^;Su];*p $8^W9&9O T.ՆKt T.ՆK T.ՆK * S (* S?tOG0q, cvnju`u`݅vV "h$ ,"h$ "h$"h$s?<j  bB?]*]* /&kd 9GHTƛt g¿N v!=!?" ?#6gl #O+IC$d#I $qe6R$qe6D$r2ERN $|a%.'( #%Bgds%Bgd%mJ ~h%mJ ~hR%dӛ % %[&<7G ([?ak *K'H? +s"@?,>p ,>p,>p,>p,Q 52,iЃv-D/L-D/>-D/-D/-D/.ZG .go?.sowj/W~4v/v]!Ls/& 0`- 1?^L3`˯}PVP3e[N 3x50N$5t_?5t_ 63*%63*%6~Vu i6~Vu 6l( w6(va 6(va 8 *? 9VF9D-R9c-9c-]9ߞ?X:늇;+*p>>@u'@ tA~0Aw-h B6GkLB=la/B檏BTt B檏BTt BPC_ bCD fC;FM RkFꇄjFeF (FHw[I H'?^f Hrɀ Hrɀ"Hrɀj HrɀsI}|;? aK!.`fK!.`L{˗L{˗DL{˗L{˗L{˗M>\Mqmh^3Mqmh^UMqmh^RMqmh^NBLNn^ cNÑ5FLt O  O O O%] iPz?PØpTQaʚQaʚTsI'TsITT:>SUfTn ,Um) , V)X|BlK jXf ZeEZBJ5]ZZ-, sZZZ-, ^ \d^KmLL\d^KmA\d^Km\d^KmP\Hb\Ht \H (] P;] P;] P;] P;] P;]] P;]A ]梗<^HaE^HaE?`+H(7 $`-\`-\`-\#b[ b[ +b[hb[b[c,Yc, c`(cWNe/ [Hew5^j \f /:Yf=HLHgWf?gWfgWfjg.7?hZbY{Ri6#j==:UjL jL k,#L: khO | lBr}lBr lBr , lg0?nw¥ nBT nBT co:w]t oec oG4o&o)jlQo)jlQpxB0|pxB0q r9 ,r9 sV6sV6 sV6Ysx4asܭ (tMMSRv^v^vh1¨ $vh1¨ ,w|ctkwWHhcwú`nwú`lwú`7wú`/wú`w;tz'w;tz'xT]yZ"̌ymymyϤ3 zE׈z `ᣴ6szszx\8 ${g]cm{qc  {y;@{| {ewU|OuLh |Ǖ |ǕY|Ǖt/NoފA/NoފALAP<]>eW $ځ 6ZWaK ڂ6ohڂ6oڂm]!ڂm] ڂ q iڃU0ڃ2LQH6sڄ6!}]zڄ6!}]zRڄ6!}]zKڄ aڅ = *. Sڅ = *. LڅpI )Gچ7F ڇ] m ڇ] aڈ ߚTډ Px6#"ډBJJ ډcR=ڊ1 _<iڋF ^ڌ 6Ӻjڌd-ڌoɶڍD QڍD ,ڍDj ڍD ڍ#kڍ [2N ڎ; ڎmΞjJڎmn ڏ&;_Kڏolڐ[]|ڐ'ڐ'kڑU T 'ڑBttڑ4=Rڒ.>kkڒưЎ ,ړBB|ړBBړD9` ړD9`ړD9`ړD9`ړD9`ړ9 $ڔڕ/Lڕ0}T6ږK3R&ڗ3}?ڗ~vڙż?ڛ+5+ڛMg;ڛMg;aڝyBS ڞ;gڞ;gڞ;gڞW[ڞWڟjڡ͕ ڢ,J?ڣGJ;ڣGJ;QڣUS&jڣUS& ڣUS&sڤ9&=- \ڥi?Nڧ\ή,ڧ\ήdڧ\ή ڧ\ήڧRsRڨLYڪun^ ڪIڬl\Lڬl\Yڬl\S ڬ:\]  ڬi ڬH]_NYڭ*:ڭ1{Aڭ1{ARڭ1{Aڮ>rگ`,.گ4yRڳ [/Љ \ڳ7 ڴ#-'G? ڵe`ڵւ ڶHݜڶBڷ~wڸ Fڹ\ˠK8ڹ\ˠd ڹ\ˠRں*>-ںmKP8O?XںmKP8O ںmKP8O ںX$ ڻȍ$  ڻȍ$ ڻ2v ڽocھ5ej (ھ`b<ھ`b<ھjwR0vھjwR0j2ھjwR0 ھڿ@MڿcS lڿy#Z) ,;aNŠ_*F6Š_*F6²y m. õ~ǻõ~ǻE`3Lx`3Lxd`3LxQÜs=PKǤa D-Ǥa D (4ylL% % %d=!)V')V?j\ Z(m $î+ Uî+ "Oܕ˪/rS̚cM e 3cP 3cP ,_3cP 3cP3cP |3cPW3cPs3cPj *fu *fu *fu m NT,OЈ`#1Ј`# гU?кm cp0=[Y}هv҈mS{Һ 7xNӨ&%˲U\\n#\n# Ԝ[wDn% cCN95R#L5R#d44 #HsF<'_ u_Hu_H ։,։,։,^jbٸ =ع:R d[sN. ٖkCshmby)HST FSa pܕpn ݦ [ݦ [v #Dޕξyaޕξyޗn`ɱ 9ўRw9ў]l> >x\ @Z J$&] [C%H S鶫,sQ\tU\U\]erFj?` gL U?gL U qi.T; l%j *za !Hnd!Hnd!jhEAx# S# S##眐#+(t#hgcQ#hgcK#(%#0W$ lp$o` $,Rs$,R$,R%GZ5#%ZT@%jj g%jj |'&`C a'&`C (gex (}kc (}kc|(ϩ(ϩ(ϩZ(R1Av )m^)>%V&?R* J;* J; *~Vyo +x0a,},}-˙R.p`ۃL R.p`ۃL i.p`ۃL Di.p`ۃL QD.p`ۃL .p`ۃL .p`ۃL K. .W 1MX? b31MX? t1MX?  1MX? 1PSR<2i Us3Bthx7(4G7m7z}N:W)u;);0  ;܀q";qVxU<;qVx])<6_[Tt \<6_[Tt?WTk>WTkO>mKW?>Bu*~ ?w?A?A[@T "UU@(t's@li 8 @u[RAL>υ AXMC AXMCRB avB`C5jň̠NC SfC S#C SC SDr(L! Dr(LES&_ E ,KEh E (E $FaN MohKsNiH Nhm%# O2qOÜWtP 0bd P]>fP]>f Q0*,Q0*,QWAQWA_}QWAQWAQWAQWAdQWARv|S@T>S]Sf?Sf TqaqSjoUw^ (!tUw^j3Uw^ Uw^ ,bUw^Uw^ $Uw^sUw^ VȻw( VȻw( $ VȻw(kVȻw(tVd=" Vd="VIjRVI VIW-\4@ W-\4@tW(UWgIW1"= +W1"=YIIVk Z} Q[D #![Dh[k\v6AY[VABn[͜ e[܈J9=F*[܈J9=F\Td4 4^[<_ХbQRb %o?Jb ۴C۴3"> ,۵.v; ۶D~~b۶D~~ ۶D~~?۶D~~ c۷':o۷.۷ #۷Dٗ?۸_] ۸}6 ۸kOKۺNA#ۺo ۺoۻg]kYۼ sU> ۼ sU>h۽o.K_ ۿg*,\ۿg*,\ ۿg*,\ۿŸ^t ۿŸ^kƤbd i1=J/$1=J/"q#v ~ ב{CS_T \\WNDfA<K  X3} X3} $X3}9;9?=srr̊) +3̊) +̊) +L̊) +QҾ/fN7BgKyWJLyWJL${GUd4Ζ b )3iiy6 nz/ϔ`[tb tbtbtbGžJ -Оu \[+hu )[+hu ,[+hu $ѭ1r*) rfZrf rfrfSrfҊ  gӏ ;! ӏ ;!YӣC]?Ӥ{ u &< #c#cj)Dk/N=vը)}n1. ?n1. h[ƦYh[Ʀs6\!R[kd:Mt۳ܻ7Kp>?xܻ7Kp> i4ܻ7Kp> ܕltN.fv ntߏbM>] jwo{ wo{ iޕ,#tޛFze?N" Vߠ׷AP $zF}DF}G@uRK G@uRi ׷m׷m$NoYt $NoY sۻw? E& a"t'7 떢s v# i젓sLx젓sK젓s,젓sZ L$BWz* ^#c-ܪY4^#c-ܪL,d,d (t2TZcx%j^V"^k@yݡj @yݡjۼ $Jv`[B Jv`[B?N3qPPWUorYLӊ3 ӊ3<ܕC<ܕC <ܕChvITZ%(!)@c la3A} (a3A} ,tp9^v}# ^S S $1oRxDB%* *j* (* XEmL!oN'yG yG_jRP?jRP y@=*NTe'F(  B B [o ݼ| $C\ɁJИWИWS]N/Lcj ]G F& &dS t2!4 t2! \ 0j5'Kk 0j5'M x x uA? -kR !CECbh CECb #IK aO ȘaO ȘZm :a>VK{{Rثw8|U596R8r@:?݄~ R7kj -D_Z9O غ:m5c U*l b୧t? {2 -g!K?" j#w#rø )$sI:Y$Plތ%>`DR %]*E z& xO6 "&q:'r\}'? b(B TkV)X O i)X O )lhBs)!2)w% )w%L)Pd&*>IF+A#+A#+A# ,:V?,T|^,T|]&,T|},T|,T|y,T|X,T|LG,T|,T|Z,T|- ( - *<Y. 5R. 5S. 5L. 5K.:[ /8Fy: c 0N]6 ,0;/u ,12G2:xL 2]cjz 2&߻Qv2&߻Qv39 |+y4j2wk4 4= c56,8Ċ0~8Ċ0~ (9([R:&ZK:S+<   <  ?<  =qw{$=1 s@ڞxSv8?ApGvrApGjA󧧱/jBnP 3 ( BnP 3jB@O, ,BBCds0pqRCds0pqCPQRDI,?DI, DgC /DgC / D 5kE mE mEV4OK:} $EV4OK:}jE #،"Ef,bjG>HZ565 lI, IOS4` IOS4kIٸ& IKPJO|KJuy $L^|EL^|ERgL^|EL^|EL( iLc+ rN.cZ NU OVrR=OVr"OQnX Pҿ P=ŇvS rVBѓSa+VBѓS VBѓSS VBѓSVBѓSVBѓSRVv3:W,U $W"KW"W"R W"dYROOZE."t> "ZR [n\\2I \]ti]IwO]IwO ]IwO]IwO]IwO ,_ $ _yh=a;Y lb*]b~.C -dA d"ĭ1ds \ e2Aˋ e1ችyevO] e@0EZe]6t-e]6Ye]6fUViNk}L isjpsi|bj|"jʣk[Wl5$lz7d] ,Ilz7d]lz7d] lz7d]m\n|Un|U ,n<'oWB7jpt H"pD(߇pD(߇qlSql$qx. qx.?sF_ HsF_ HsHf ^RsqBAjs?saKRsaKZ saK tY@v*i]Rv_ զe9# B \ݗֻxYj܁3+܃6U܄GR'H $܅# ܆@1 ܇[( U?܊ro܊dt܊dj܌\_z g܌L@t܍q܎>P~_ l܎%>C *܎%>C m܎%>C ܎%>C܎%>C ܏$Ϟ S܏ A ܑWRܑWܑRbaܑ]J4ܑ4_ܒ R^LܒM [7 ܒЛ kܓ?!α2ܓ?!α2ܔ' ܔeE5ܕ.3N ܕ.3N ܕwFܕYYc4 sܕPV}@ܕPV}@ܖ33 R cܖU&^d ܖU&^ܗT 4s ܘvE&ܘvE&ܘ轫ܘ轫NܙG`& iܚQa1 ~ܚQa1 ܚQa1ܚQa1 ܚBsܜөF ,.ܜөFsܜzZ< ܝ@?Xܝʼdܞ8) ܞ8)Sܞ8)Yܞ ܞRܞ*ܟ2΂ ܡwjܡ}6 ܡt|Nܡt| ܥCNe iܥCNe ܥUV*ܥoܦX) ܨ=I 11Dܨ&Z7 ܩ'jܳ3J/YܵR $ܶpu6Uܶpu6U?ܶ';[K ܸ,sܸ ,ܻ؂Eܻ؂Eaܼ"3(\R ܼ"3(\Kܼ" lYܼ" l (Hܼ" lj?ܼ" l ܽA hsܽA hܽ**ܽ|B,ܾivk ܾivksܾivkܾq+ܿЛGBܿҹ dܿҹ DGFX 5n]R Óc,vòv anY䱯RrnY䱯VnY䱯InY䱯nY䱯nY䱯4 .-vRK &J &JRǬNi<& ȩ?}] # ȩ?}] cбzdFPY;ZwmeU);ZwmeʛjM̙! _p # g36|$}j-Ώ+6cd*Ώ+6cΏ+6cQ Ώ+6cΏ+6cΥ7' ϴbϴbώ`YNм/sp&,^ ,CJ^ukFv,ҔB{9 AҔB{9?ҔB{9 ^ ҔB{9 (ҔB{9j܁Z Bw$:̮2w$:̮.w$:̮w$:̮w$:̮ w$:̮ w$:̮Lw$:̮Sթ'F$ iթ'F$| WaNQE ;E (E (nTe>27>27 + aLQ LQs lQXq& ,Iq& (q& _&]_&_&/(bH -ٷ7Ɓrpܪy nOR ?p$rϾn/RrϾn/rϾn/QQy (By<yyt4K9 i}3!A?m!$z-jsz-j $HV s٥[l][%٥[l]jIF^cIF^c IF^ctтt zdz!4 zdz!Y zdz!Q zdz!udlv]udlv]╢_ ╢_ ╢_?ⴑt[jQ Q*Wh'S67&1a1}Sm /{G'痢@ 罒[t,罒[ 罒[jnW0vqVֽ_qVֽ_L虮Mz=? ڑ#"}N }N C W a(#V9fS S5!2 @SL >SWl (%WlsWl \Wl|ľsVR;Mmf}1֔( )[ _m >Hz0?12'2bmO( w'̢?w'̢ }ɜe )%׌  RyB( i"|Nz{Z=a (vlt Avlt?$ d 2j2b2N $M=G M=Gk-j/0~`e4OrD e4OrDwPj5wPj wPj ,wPj $wPjwPjjbwPj (wPjwPjsubkub.@ \]s ,HQ81? }"s7 p͐27 p͐7 p͐$\)Z53 &jK9U}*DC*DCR2 QJ QJK QJ QJRށ8PbIwj4d#}M4]ZBW5B0V^)5 Vlw?]k& ܅iI %a7 a1Q$==[M>;t-6nOiT:T[OiT:T 7OiT:TjOiT:Th,,ǡ#Z ǡ#Z zڷ gQ7=D#3I| i[b}"t n1d? )20 c}ѳ A AX! W"#WL-#WL #WL#WL$WSPL$PoytQ$Poy$Poy p$PoyJ$Poy ^%xă] -&^ƒ i'}'wWE(^)?)γ:+X"? +X"? +X"?+X"? \+*+* e+* +*+*-)@Y^b-] 0}'u00}'u 0}'u 0}'u ,0}'u 0gj 1/Mo1S9W2.q 2> 3!: 3xYQC3xYQC #57u.h 6Q6R66[.I6[.I83F$ 83F$9(6T: m ;G8|>bc??z|Th?z|T ?b@3cI @3cI@3cI@3cId@cgQ@cgAe<>6 &C-$#PCKΔ(DP$CDS]\QDm'bRDވHDވHRBDވHDވHDވH DވH E%[b NEg7 GܨcvHNrH'U>  H J/氨J/氨CJ/氨QKL;~e KüHLŝuvOe™O'hXpO'hXpO'hXpO'hXpLO!</OKBP PIYtQCx'QCx QOrQ1@y cRhEvSzh K\Szh SM"8fvS*.T.Ki T.KisUd?sV[bLV[bWvQ~F2SW'ޮcvWd-RW`Y u X.Y ; .hQ<> ,i%VP ijrR j3?S*k퉃k퉃 #lHչ mmaB jmmaB nNA= jnNA= tndʑfx ndʑfx $nϟptڻtptڻ p  pU$pEC$r%+/rG^ jr%MR r&z s,#=s,#=t&r}ktetAS8 c'tAS8 t t? t u/L?u/L9u&:̊?wM% xId x2f&0xe Wz.(Zz7wz7wz7w}!ZҒR~B/a ~G! ~m@sZ1OKA 1A 1݀p ER݁6Q݁M bt ݁M b ݂ѧ=݂ѧD݂W9k3 ݂W9k3?݂tF ݂=[݃"hYck݃ʼnp62݃ʼnp6 ݄J}Fj݄,Y݄9݅h݆FI-R݆^(݇\0i݈^ʕ݈exNj݈olMH "݊1݊Hp݋0 ݋0 |݋el݋el݋o,*R݋Wz ݋Wz]݋T`i&?݋i1h< ݋i1h<R݋i1h<݋#M݋#M݌3+2v_ݏ_yݏVCXvݏ< Sݏ< Sݑ^hݑq<^ݓKp!V ݓ?s ݓ?s ݔzƻRݔR|ݕqS:Co ݖPnv ݖ'ݗ]zRݗiib? ݗuO)CK ݗ{&?ݘYjz!L ݘё{dݙ>ݙhD ݙLNhݚV9ݛ:l ݛ:lVݛ}*ݜZgݝؑ-ݝksF[ݝksFݝŤ^/ ݝ1߹"ݝ1߹jݞrdݞrݞsBR"qݞsBRj ݠjEݡn%Ȼk;ݡn%Ȼ ݡn%Ȼbݡ厉ݡ厉ݣHѕq ݣv؍dݣ C=ݦltݦz9  ݦz9  ݦz9 jݦZqݧ9Ia;3Rݨ04mc ݨy ݩnΧRݩysݹ9VY> ݹ9VY> ݺ*h : $ݺ@ٽi%ݺ[9|SݺFJZ ݺFJZ sݺFJZݺ e ݻw ݻ곙y ݽP|̂ݽA銣'&ݽA銣'RݽCݽCݾ`)=vaݾ`m\aB"/¤ shvK'vDۨ5 ¸NdA¸NCel4sh  h yi yi?6IJKg/=? IJKg/=hH?RŬn|'Ŭn|$SQKSQKJxX#6dd$<ɂiďKɆgi(ojɦsKC ƺfm = i= i = i= i}bdj>%0j,D RT-28[-286d+Ux |άwoN&?w0wt śEvЁ!TlA g׽iNWR b>}K y]" r*'W**'W *'WsF;JMF;JM tZ / ؾR F.,] Ձ8vߤvշ".7$+շ".7 &շ".7շ".7ހR!v;;75[=#(FR$=#(F|Z e>$ jAuV5j(b4kK b4kD*?M a۸ҵ;)S۸ҵ;)۸ҵ;)=DpjRWsݰfg8 ( y `'aLH(RY{ ޒ:I'B 0)C zJ?Uߕْs[m2 ]2 ] 1q$つJ 8d. `۴}j䷈&sWԍ@+ Wԍ@+ $[ pHqw fK`TK`= (~}~}RJ60 R![ R![ 2R![_L6>L$<Ct+e $L / mЇjYPW$PWk)(?R7?i 򳌉 rX{ rX{t) C]~ x$S ޯF%*3"pzn p?̎)zOgD7FsJ M&(LE! i #Ivɲ0AIvɲ0ī a]gzZ?5I9b| ^[eiF\tQiF\ o( Q4inVZ M .NI7:NI7 V46E n`VTj n`VTt n`VTY n`VT ( C{K ,˧5d v:+/ v:+/s c ? r"C $ r"C k x.% x. XC # ӵNGR JNNp Np Np '\aE $6]:  vN1 ASkVznm-:`M#)  sPC51,`0e t.w)n {D| #PxkVp,Ssp,SsP:zv IL,؃ xqb(Rc snqb(Rcs Mf4 ~:ХTW_?TW_ h0c6h0c &' &E] y.< #0"L0"S+E2rwcf=v:5L5 $ r r iy , iy ! +!!E"OAx e$fb$*<%ni \%{dQ $&qrX ,&f]i '8fRQ'|  '|  ( s(UUY !*!3 (*!3tR*!3j)*'*'Q,+,G2Ф (,PSW i ,j}"{Ft-N$ e.꡾0/v4{Kt0ؽ݄{S 0O i 1OQ1OQ $1D0e3Rd3r4H4i$͗ 4ӵ :v5%6JK>]<Y>lI/{9 Z>kR>kR|>7! S+>7! #?\.6-?\.6j?\.6?[Z醲@ cC @z gA "\DD*w ^RE2gaPZsE2gaPZ1E2gaPZ E2gaPZ Eu mDF%bN DF%bN G2 G\G\ GV- Hj{~ I1tIYg;JH7pJ8:ҰXJ8:ҰXK= iK}$^vL,TFvv MA+m8#MIMc<׌ Ny|)! O_OOlYOdZQPbNP9wPK  PK Q܊% bQ?G; S_䧺tS۟w.jS۟w. (TV'j U9qoQSUgIW5pWABYUx?%Ydp eY , r\a'\ة\ة]b~׉]m`?]m` r]m` {_9cx4 _{",I_#ZY`BMJk`BMJ `1I#b=Уbabb[ `npsb|8Dcb`R cb`d뙇1?d뙇1 \d뙇1j eH'GeH'Ger?f h:f hfyXxqgQ g<՟ (hfdl ahfdl $hfdl ,hfdlhb/xi #l<LmHǭiL;mh[smh[kn; eafsny $ngQʻn hAVo) -pT `qmBEq?m (r?r s~:|es'}9s'} s'} tV;Qt%tj$k tj$kjtj$k {u3?uaҨ uaҨsv, gE $v_f?vV(vV]vV wJHR ewbEsxDw'xHַz-|* z-|* ,{ `VJ{tp-! |-rxhR|OOuR}C> \}/' k }/' b}/' t~ s I!hr $E?Lsހ5:rSށ!?y \ށRui( ށpicaJށpicaJނu ނN]| ނN]|ނܧ'+ NEނܧ'+ d ނܧ'+ Wބ\)ބo<)ޅ犅#Uކ\wR ކ\wRއmCއWG އWGއq-k ވ;ފ# #ދ%]?ތ32uK@ތ32uލd:\zV ލ~F ލ ގ({0" ގ({0" ގ-b ޏw(ZLޏ&Ϸސ[ʙ ސwcBYޑ?tޑ? ޑ?sޒSܪ=ޒ +Nޒc(Jޓ<9ޔCMrޔCMrkޔCMrY%ޔCMrt#ޔCMr (ޔCMr iޔCMr ޔd+C ޔd+CޔҋN ޔҋN?ޕ%%c ,ޕMd -ޕMd j ޖJmn\ޖ~fU 8ޖ~fU !ޖ~fU iޖ~fU ޖ~fU ޗ|9ޗb)b@ޗb)b@|ޗgMbޙ{\ޚp=vTޚp= ޚ F1NqtޛJ+%y3 ,ޛ_y ?ޛ7ޜ2݆"7(ޜ'}48 ޜ'}48 ޜ0B@Fm ޜ`{nޜߘޝwXޝ29rUޢK6ޢ4ۭtVޢ4ۭ (ޢ4ۭjQޢ4ۭ $ޣ#1\8Uޣ̪p\ޣ̪p\ޣ'n> iޤ E ޤ߯HޥDu ޥ<ަّ?jަّ?tާJ\Hyާ;ީ7my?ީ8" ީ8" (ީh^&tު =ު>L ޫ!߷Uެެ/nҡ5 $ެAeĔSެEvPTtެ݃}ެXE="ޭ*?Rsޭ|)Nޱ+6= ޱܪ  | ޱܪ  (޲h4 i޲0Pӂj"޲0Pӂ ,޳\jqK޳ ?޳2R޴&޵pP|޵vz<޶=#޶jOv ޸޸޹\q_t޹tk/ g޺2o ޺Xz@޺hTD޻)zHy@޻fyoz?޽@޽@޽@ ޽@޽@Q޽@޾H|Nc޾H| ޾H|޾Nk sBef{ jR{ j K9ʰڒ ;9؎#;9؎t;9؎ e;9؎ "Ao‚Ҙg j‰;T~ c©²ĉtkZU] w] wğAGy  3 MűL űL jW3Mjǰ<ǰ<YǶ[?Pk +Pk 'cdB1Q qQ $RQ wQsQjʗsNʗs1  ܟ,\ 8e!Q8e!͛S άLάLdεCo|ytTj \%Le jҰ*=(h'ۺM ~G uǥ(3j~ (3j~(3j~Մ?l:qUza ֓mvנ|lj iFנ|lj (נ|ljס٣R3ס٣?ס٣ ס٣ ׸{ʹ ;׸{ʹjj  jjjRtKqv4# $cwq2 2tjќ-Mޜ5$qk?LN5 $CTF ,X>R;? _0F@S) S) m?DtJT=lxW lxW An$!s)js) ,DbK.$ -.$ `(@ `(@t `(@`ZMF _2xXR牻EwC 賞w~ Ƴʴz tKֵRéI h I h ,Jم/C>9#h2ssHs H 90? ?~nW z` )~Fnd'PC -Sr-Sr-Sr*Wn+ Z.xvZ.xQ+Z.xZ.xtUWhޝ w 6 xR xf)9?j*ttj*tSP&SP eo/|o/ o/ id] `[Ts[T ,Rt7}~,*KsSM.?5{~}V"iTl2Xxjˎ0!1 j<PƩT?ڋqH7U-X. Z. ZR . Z . ZQVAUk/MP>jQL J%V ej&eب vJrS #wv 'x  7ex 7em 7e 7e̡_ cftE =ftE D%y D%y" ( "?n> }<|#cņ Qx ±  z  "Kc? "Kcs +s&K5 7? 8q{  8q{t P] b gZ pD% p p p vJ vJ  Q  yy( yy yy yyt z:. L "ꨲw 9`gg snof ,snof $RKN |K"? [lhWQ ^:DH FL N"N&Xm _|ҵt_|ҵ_|ҵ|VvE10Ht10Hk~g?~gR*@o *@ol+i?kKqgU`$!@s*'HQ/WsRjl  ^xa ^xaR &2 #-S#sE i#R|### %]4 %]4? %]4j%0R%9p&PϴtmL&Pϴtm&s, ' .#ށ?(l3+{)41spS$)i- )i- )= *L*f{j *f{*rqv i*rqvt*rqv ,i^-z: i!-z: -z:-z:j-J{`!-J{R-b6<;-b6<D;-b6<00d1=,dL1hu+ 2Fet2Fe2,S3 CT 4j$4g= 4y֚c%4{-4hšp 4hšps 4hšp 4~Ǔov4BS6" 5  6&X0$060r# 6  6Lj$0| 6Lj$0|s16Lj$0| 06 7\?9+W%98Hh9D2SV~;Pk;yJ{B@srygt>ryg >)=aށt.?"(hJh@e t AZMϤ? AZMϤ $AZMϤ #B(9B\D$g1 $D$g1 Dz#AY D7uD7uD7u D7uDmbcHjEs1O]Es1OEu&  Eu& LE!Q #F`j3FcžFcžGh G䌄AG$uHA<﵂?H\QˎHjHIG2tIG2IaSaJ־Y0tLwgI aM5czhMa,`)c iMa,`)cMa,`)cMa,`)cN$TrNsxm@@ a Nsxm@@tN|7N|7P>LU|WHE.j<WHE.XfSXfLXfY XfX4#V9KZ3$ Z3$ gZ3$ Z3$| Z3$Z3$ Z3$ (Z3$ ^Zg0;a ,[sKR\C:& ,D\C:&\C:& a\m$\mR\ xjb_:,@?bt_:,@?bt_f ab7zb $Ab sbcAB< cAB< cAB<|cAB<cAB< cEp c\;c\;-c\; c\;dZ~8 .dV4{eVˁT[esa"eC6fu&Rf;2 7 $g7  gdt  g?hI Z]hI ZhI Zi~?"IL jw m la5 0c iofQUKomQoSp!*?qqUS6qUS6 re retn[tQcEt𤾑N us8,SuTMv1Q v1v1v7JwΜ5^ w+Oa9L $w+Oa9Lw+Oa9L Lw+Oa9L 1w+Oa9L ,$w+Oa9L ewk16} wk16} wk16}wk16}w= zx[psAVx[psAVxe4!S? xe4!Sxe4!SsxÏx;ay+F.Ny+F.NyzgpQzS{)a8{F5Z \{y"19Q{8|8̟R|8̟F|8̟j|8̟ |v[(I|׵^_7 n}IE }IE ߀mE g߀/%ČJ.߀xD1L߀mc߂krj߂#{SA߄>~@ ߅.J t߅.J ߅=w$6K1߅=w$6߆lR߆%bPDt߆%bPD ߆i!m/$߆i!m/N߆ˎkS ߆ˎk߆Ǐ߆Ǐ߇ 7%?߇ 7% ߇ 7% ߇؟Q_߇_߈7PDN$߉KݸD߉;ևߋ>TG1 \ߌmNߍrK]ߍ)蔽Ov+ߍ)蔽O ߎ@+{nߎWw ߎI&CߏjEYߏjELߏ6qKjߏ6qKsߏ6qK ߏ*Ni]6ߏ*Niߏ1?ߏ7AJRߐ o ߐ,&ߐSǩI ߐc9Yߐc9YKߐc9YߓBa>j5ߓBa> ߔA[\'ߔbOߕJUEgߕJUE ߕJUE ߕJUE iߖ硸ߖHjsߗ{ָ*ߗ &ߗ{ vߘKp7 ,ߘKp7 $ߘKp7 (ߘKp7 ߘKp7 ߚ+`ra?ߚ=U]ߛ2`k1mR ߝE>?ߝ/z \ߝYZߞ#Yޒߞ l ߟ8Έ ߟ dߠ˱ ߠ˱ ^ߡONUKߡ˴&[ߢg[ ߣ10Uߣ10UߤM1kߤׁ<;Vߤׁ<;Vߥ1 cߦxUߦ|*xNߧ6? ߧ Ikߨ5T][ߨX ~s ߨX ~ ߨX ~ ,ߩo98 ߩo98ߩo98ߩl7 &߫LFY߫LFP ߫got߫go ߭6o߭,!1߭,!1߮Qw  ߮V ,$߮V߮V ߮V ߮V ߮V ߯0lC"S߯UI^U| %߯sG-7߯sG-7߰F_ ߰F_ ߰F_ ,߰F_߰F_ $߰F_ e߱2 bt߱2 b a߱:wSD߱R0,߱׾|߲qν߲ZK!8߳ Q;߳ ߳ ߳ ߳ ߳ K߳ ߴBϟ!ߵ6ߵ ti`j ߶r,߶(;Z?߷I9o ߸9aH? ߸c7(߸eƒߺ8 H[d,ߺdP&S)ߺdP&S#ߺϩ/߼ܢr`߽OB ߽x! ߽SR ߿'b^?߿`x{?J_R]; (ć5 e ehb<3$Dƈ> ƨ[Z. r AR ~fsɵh0őfes?uK ajheޭ ͊ޔ R͊ޔ l14 l14 aϫ6;3+ϫ6;3 (ϫ6;3j Z9P Z9P?l&sч%?2/j2/z z?Ң8z?g:~2 &v-7 jӽb/d -9 LUBE m黵Dd2a ևה$ ֳ/Xc" TUTUTUDD5[٦_ ٦_ ٦_Uo4[ ڏ٨ڜ܍%[R#-tծv.TT^.TT^ݍgk[̟/K NS.NS.] NS. NS.߂7qitߜQ8Tj〭P'bÚk荮Úk荮 Úk荮Úk荮Úk荮:ճ RF/ RF/YHVQDz BWʺ?^w5 JI+j]ж S!nOD ["ve dl 3/ dl 3Sqq,qoQ ?e K ?e Xny`R&ycvnQnkĶby"G c H( H(-6Sf?b * ? #? B}sFB}B} aۡ X ,!a tYHLV ,51X k )9+E^`Jۯa},#@ (@@ @@L=%?2e'/˟k.sbLjd8$6U@RFWW5D!6kTB'^yh. ,^ #^ cm. QY ,'wDsDdto]g o , 0|, 0 , 0 i?d Y7o*7o)6D' 6D' +< 3P U&Dj SF # IlI? B $ $ 13  13d" syy9oѧ89oѧMn$ Tjs2 iւ`HPjvh)a Q2`3P ^~,yCKXR*m-!clI-!cl-!cl]-!cl-!cl.Xƒ8LAt@g+ ;kI f0})4 Z n[XE^  1uR ! !΅Ӿs !GOaE: \!wO Q!F= "?n4]"W "W?#eB #l\a$H9m ]R $H9m ] $cSK5J$*U R$N$N %*)]&=Pp'8}'(|NWs)\d̺5) C) CS*s* +}0PN+}0PNS+}0PNK+}0PNQ+\O+:qUC+:qUK +b a,n@ \,n@?-0p v . 0q3q 0`I1IԄGS2>S2R:v,3Ґ s3Ґ i3Ґ45Bڇ i5Bڇ 5Bڇ5Bڇ 67RDv6fG16fG 6fGs67676+o;p?7@E.s7@E.k7}2l |(7v8w7v8O7v8 7v87nk7n 7gwM 8GwDv 9@BXL 9@BXL:ӭ]:<.T;-eh >hWP >hWP>hWP?GbC?W}@`bwb@?AJQZAv -BLEc9BODcϛjDoٓG,EarFKwGFy HBI0fGI0fGIEJ;K J0]Q J0]J0]KKx+'vLW"0.$ LSl aLz # L}# LyN%MGZMD#&!dM}  NxS<hNxS<sNxS<NϝS O1pLOGݞO#P@,B -PqQwR`l~ R`l~ UTLjiT/CpUt9ZUt9U9%fV8:; aW%bE aW\2CWN@|? WN@| WN@|jWN@|X- $X-hX0Yk3 Yk3[[K趪KB[K趪\>>c \]P ]`mF__.) ` CjLa۩Ya۩ a۩ ia۩tb:m]?cQcQy Uc`5+s.c`5+ \c`5+|c̻/jdOɼdKsbd޸ sYe{Revje{Rev ie{Rev ae@pK.?fe@pK. e@pK. e@pK. f-vfv~I g.t`g.t`] hxf ivŊ ivŊi j}B5[jj\ j\k~ǎ-ilBmYulBmYul HNmMk$mAz3K mAz3mA|ӐSo+pE:qSz7q(.Zq3#?r[k1 r[k1rh^r4 rSD&rSs >tzS'u*u밼?v Y*?v^^ҕPw4 :wapb xX܉yC AX|JRp e|IL}+z.? }} xp}lC3H8~TGʢ~ibom~ ;aK,J@F myn=bpjKzq''  ] (V*䧵k?p0HpӘN >֨ gFFLv |J]jJ]kл-Q+?+sX;DI\lU M+lkYq  F3! F3L F3<ֹ \ <ֹ 2G*2G*9o 9o , 9o9 9o $L0 QO ,2PN222Q9)9j9 9s9 $9 RCY"kl Y=7 dAj adAj [*Dq+a\ Z1+Hi bG r) bG LˤLˤqg% bsT*@cVR*@cV7_a]aUaLaaa"qNG[C?CnJ nJ?nJ (gQgd|fh q) \ b5 aat;x9L;x9R;x9^9O5s; $;#% ɜtt ɜt (#o;zD ,zDzD -$s O·S))RS)) S))NAlLvn8>kn8>n8> v"=C@࠭J1 gj)࠭J1 g ࠭J1 g (G&&?dt kO ])8s8AW ME/1KME/1$=%0 %eܒN%eܒ%eܒ%eܒVD tʂh]fষ$TKTST਽ @ 5ਿB ਿB[$S  +)\nN*$-K૘ A7g?BSHutr଴߮3~ ଴߮3~j଴߮3~଴߮3~E D IBiDIBiIBi&Fw7E|s s`X.t௘5Wq $௭UjW (௭UjW௭UjWt௰a_ \ ௰a_౥JBm ZcfĆđt c aaN)TO`YXu:VY ෞGBJ.([a4P'0/cϿu/cϿu sdz&e+$ %F#f]s༡l}WT cRkY"+kY" =-J࿪QD࿪Q $-N @O  ӘgL ӘgS ӘgB?\ #(󅮨(xÐ824Ð82Ð82Ð82$(.zbKW5: dğ|ZǶ " 404BDsd7K<SFrhacv(vu̔o܇ -ȟ}?€jY=H#bʅ` g(jʅ` g(kʅ` g(; i+9 7+9 e!+9j+9t+9 t6]ήlS%SdkZ ,MSdkZ (SdkZh SdkZ $^ˠ ^ˠ Ϫl(=W_ `XK]KԔ"jT6݇dR1DuYa| d ٽЂ# {uR?TTO֚ O֚ ( O֚ ^O֚ 5$d*?S\=]:E̬'`'Bp#PQpCszeP^^spoߊߊ?ߖ%[1 /b WY?t_*%R j _*%R +& -:Z^],[ \FmsQˌRQˌ QˌXQˌ?u感DL感DL˒ ˒9w;5K:)n;@ 7au7au7au8mZ}̉i/̉i/ :d vk  Ր}KՐ}D2<U2<RR -R tӔ.p;`i```oL׭P:0 07mPOD}k OD}k OD}kXOD}k=OD}k (OD}kkg'g'Ydcܞ ,_ mZ hB"l?_6ȧGP 辖? 辖?$ 辖?辖?eJa }f| }f| (ZPLn@4,iISr\S2 1j $ s:?:LhSav?O a=˹ #뷧1-O[b T;S2b T; b T;Z:. Z:. ,c{ EG @Gqrg a0GY> X[ 2(R\7/t  4a WoZ6 Զ S ~?c5[ ~?c5$ Z b`? ?Z ?Z ?Z D> !~ +S"[iN?C4$RC4$C4$zslB"9~:W;¦Nd¦N¦NU+ɸM 穈WK0R WK0R "SX '}Qp }QpĜ?=9V\ !k9V\ !tϳ|= = Dp RoDp S\r \r a\r mtR QjT';7VS5h(4 sV ˛8\Sk! c!0a"r@z`"r@z?"r@zS#@lN?#@lN #@lN ,#cZC #cZCK#cZCL$܌T_ (&D" 'g=)H *xqg"S +A+As+At +Ab+A +sX%S,kf4,kf4-ܙ-3r-Gl1t-VE' /@(/@(/@(t/WI/t$ /t$ 1nM1*2$K~r2$K~rj2mӭD2mӭ 3ћKp3ћ3ћL3ћ4ze5mN5mR5x\!#6ƿ6R \8jj96i~?:W*KG :*0#j;2A;#!;X2FN ;P6;_ˇ jCAPFq;tGtGg~sGf:H?HP}x Hl I䄐?I䄐 -IHH I͏: I͏:?Jڂwt KE #LhCrLU7LULsٻvLzԍ|Lzԍ|Lzԍ|LSd=P LSd=PMÅhSVMÅhLMÅhaN=O`D#O O:)C3?P+y Q.=SdQ.=Q1ڲYQ1ڲjQC+% Q_Fp ,DQ_Fp Q_Fp $Q_FpjQ_Fp aR”VT3q2ܻ?TVafvTdю˜Tdю˜T.фvT.ф T.ф Ub cUWǚ+? UWǚ+U ?CV|V|V~ V8eKV!bW׮+ X X`$a7Yi^ؘvS Yi^ؘvKYi^ؘvYϕ¨ZK iZK ([Oٱ\WR \WR (\WR $\WR ,\dm \ltls]W{t]hf+^F=^AF* $`}uo`}uo`}uo`}uo`]I. `]I.`]I.`>́aƈI=cNS[#cxEbH $f*efVE fVE hkΗ-Y6i+դXiz aiZ(iZ iZjQ\R{ j%s-0j '^k,Yk,bk, k, \l>]=, !l8w`%nAĺ; n`AooOAf n oOAf n oOAf npⱯdpⱯd pⱯd pIqV(E+b?tNt7F 4t7F (t7F t7F uK:9z}v?U#wO*T #w?_.w?_/w?_x!dlNx!dlN #xV>ez ~nzHL<tze5E z0z0z0zƼgF$zƼgF$ { j {qxh !| zR)O| | |!|d2U[ }B{j}1v }BW *v}|4S}-s}-s~Rqb , H^& ݁3 ݁3zWW ,2<Ԥ>d Ԥ>d N?([/蹅 /蹅 /蹅{0+{QL|Y(?ᇡ%KBᇡ%$ᇡ%ᇡ%ᇡ%ᇡ%ᇰH; |ሯ8eRׅcw oY/T ች_ኌ6@} w9' w9'ዝsr-1懯yV1懯yROsl>ssl>ᎉʒKtᎉʒKtKᐽie m݊-VX  <&$PNᖂyLJG y9y9 (y9 ,y9 O!l/Rmjnt t%  W:W%Wᚹ[PX7dlY q;:J\ឍj9CEj^ePB>H^{៻ۗb៻ۗt ៻ۗY8(_d9xzvRᠾX ᡙu+:|ᡙu+: (7ô^ (ᣵ>l/>l>lXű mE~ $ mE~ s mE~?s!t/Y yp'᧟e = j=aXAbzyXAbzy}+VyUROdjᬠ44/ ᬡ | \Z؊ӝt Z؊ӝ ᮀiB ᮲VP8sﺈ3NᰄV=uUᰄV=uᰗaN ͘5tIg0zF -MQ$1a‰\heFo [36 $^ʱ *H4'D y[>^ 6ckᶤBμmE9'B=vᷖP e,'K>AhRueUḴXljJH5ṅ BǶ ˧sܖXP<v dOonGf&[\3F C.$sᾗ|`*\E \E ,хx c!wHc@:{/  ĢmhK'bZűUMsxa/f::Q : :R~U2[i 2[i Y2[i q$ *] >*%8)q:G\vc-L? c-L /݉X_tv$݉X_t)xIK} ) |s , $RTbn!*2!*Kg^pF` "# Īq @⧐c 3 F o|XU|XU|XUj'Iv ˿gW٭<0U.VNn<|7 ?gˢw {. aY*R9@RfbQ]Oqs{#&o!κ|Cp Cp BB ?0/?0/D?0/?0/ ?0/z#tݵN,c#c#Sc#Kc#Lpk \pk³8ZpLBu -0~t_*e |hRq`2H^A?M0Q7_`}Ui`}Ui`}Ui"ZY"ZYt{ h`o6p %~C [%@h& TΟx ,'Οx Οx jiMPc ^1vVl  +a2R_c۬ $JWj~w=?lv-&n ? ? I~0[ sa^gQ a^goZo'oZoRoZoTNTTT  ]^nj ]^nj ^nj 3QO^y-pcMѠ>Xt_3v X'S] |/o  E ySXk5 ySXt 2\# P_  j7! P)$d 4 i_~_ ;!g  js  J WD6 J W- J W J W :. \"ơkT. \@^ aoNXUT Cy "6 mF$#4Y$t v¶[$*%Ra $*%RS $oب! oب!Qmb/Wmb/_mb/9mb/ mb/mb/mb/ZC8kZIU^0B1 ڟ ;u|>9ӱ|4}c `2 `2s G!8 a !!N?b !N?b "7\_0";CO # ox #c&$-4%Ń[`'-/'"B2[(Dyk (Dyk (Dyk)"р)"рY+Ii{S%+bܬ0 +bܬ0+uгv,3$ ,3$,dh.d/z g/:fD0R 1]b\1wY 2h2,h9V2,h (2kcajN3. wI 3n E+ -33;*33; !33; i3¸~zt3¸~zN3¸~z >3¸~zs 3¸~zk3)҈t 3)҈t3)҈t4X5S83s6q 6܍+6܍+L6܍+7,H7]N)8`&MW:Q:(vW=7m =!$=G,%TU>}+( ,\>}+(s?{0`?.Z?.Zs?s @-T=s@PhD @PhD (A+ AՍq sA %J ,B!aB!aBYE~ C*Bs hCz> D Rܶ5D RܶD RܶD]Me[D5?Fl^ȋ $Gs;isH> +@HLёmHRN ) (eHRN )HRN )HRN ) HRN )9HRN ) sH6_IavY^vIA\%3 lIɟѻ %Iɟѻj Iɟѻ $Iɟѻ?Ji}O8Jy?qz"] Jy?qz"J$`vJ|(jK_!K_!K.SeܰKGf(gU:s gzQs.h#ޘh#ޘihhihhSikJdj? cj? #j$J j$Jj$JLkTU1jkTU1lTr l tDlIgadlIgaR8lIgaQmfԵQnF npS!fSn`bڱqoORqӽ?t rQh rQh rƩ/_Y rƩ/_swm_>V jsJuq'st<-]sHU it_JnRt_JnS t_JnKtMu6?t۟qd~Ru~RZvI2d3;vH $w=tw=bw= w.fJ twr3T+;wr3T+;wnS wnS \xd ? x7y2ӡ#9 (y2ӡ#9|y2ӡ#9hgy2ӡ#9s:y2ӡ#9 y2ӡ#9yi^ [zc*zsͲ,v{i{ A A{i{ A3{i{ A "{HK{HKY{HK|>n$}]~?}]~} #?xXHnR֗hn P▖@ 4 <kעI-vY0,0 eއ]♧cM<♹STPS3E ⛐яߓsË< a,Z] \ *$S *$*$fPNS fPNSs,+s,➒M(E!K+>kho+j ⟣E9 ⟣E9 \fFj:\ o0aYK  jVE $ jVE ߪM?.o ⦖+jЃs⩜8}zStS }?q'VhZ q'VhZ $ v3e ⫚W ⫚WQ⫚WS⬀{F  䆰e#f ;ˊ sMwQhBasDRFajsKun*X {Tⷑ[x:ⷴ1Dfೇ⸼ӎ Q Ƀ C ⹝L0?U⹝L0LJރ%ddڶ =@q =@q j⻚쀛v!u rgv⽙wpdYa5YaYaYa YaSSISI⿆4] ⿲dV(v+Z[Fu R9 dXQ O| sO| a Í=d@vϟm7ϟm7ev0vt`j` i` ,l>l> l>Ƈ C J#HDR >@nk ]Es ϔS dRA RA $}Źm's_4L=4=4+ !zcߨ{ '̕g (^P8IY $?.z?tWtWShl4HlRG~~yDdIZFu39 aQ-jtR"HE զ9S ջ( ս F1 ,Ī&"#K_~_)֦TcbֻfqשBmPؽQ^L?~~xⳗڇ`H e5ږtQs ږtQs $ږtQs9+f 9+f9+fU/mշ60v5TA 3u+>3u+ @3?gbR@@AFY?zAFY "Av5\ Av5\Av5\B !?B<5dYPBnyo #5EgF)]7NnGȓLjGȓL ,GȓLI?&/ Iw ˉJ*ޛW Lqϼ{@'L1 n N2Oy2PmrP[k P_5! QUb:QQwv.QF SY]T(c?+T(c (U.{#UOzUUYS+WDUbItVl;Mu W-pB Wk_FƾWȭy\DX]߽SXC̈́lfX<XX YW$MsYLZWP9 ZHzpZͧObY ZͧObZψ•?ZAl=\'As\C=]ϢXQv]O[]U}*h]a ]a j^Oĺn [ ^I ^I^IU_mhxa_mhxa`þ `^aңR aңR?a2qN+ a2qN+ a XLcMh#N:t@cMh#N: i cMh#N: cV[%Z,cn cdΌR%d D' 2d D'?dp (dCCe Eke}gA , ev׊ Eev׊ ev׊ \ fWj lfWj lfh1LgkhYydhy+j+8f<{kU:t$k+~jl4(S N l[BG llQw lcsA l6Pb[m&eɛC mr*v r,0cr'd sW gsi|Sg? sql$"!sql$ t~l~Nu yR u yx$g|yHu"yHu ey~"}y~Э<vyf yfRz5 z3)^ ztLo{sr ${sr{sr i{sr m{) c {)|Ub | ({9| ({?}4 }IY akvBX S)EZ\ S)EZ\ |S)EZ\ &U޶v-“ $NJ=R :Y"+ヂ!~5#E'9㄁gm㄁gmԊ}?Ik9?e BR R jY~QkBqXkBqX 3r3r;S2S=fB =fB㈌k\㉪óJ:㉷8Z S s S s9G ( qRTRǹl3)FKInJ  jy6Sjy6jy6㍩4* 6, m^%$ (ZSbKZSbK㎯rp㎻e Sq㎻e ,㎻e ngQ' {Eg H@y,?U~Jq0 pSRJP v7y5*zR㔶j?4=IZ4=IZ ͮiQR3ZR DI>MP|MP㖃*o㖊㖊LF || -h%ի h%ի kh%ի 㗒MnN@K㗙C"  H{K㘖I 㘖I8 㘖I @fUo@fU@fU ,Ifu iIfu0s 0s $'12t.'12j"'12 '12 '12㛷u!D# c%# v |5! |5! |5!?|5!  ( (?_@ 9?_@ M l V~8R V~8 V~8}Kj[ BRU)*੿~zds~zd c k k k@X AQ^ GhwEUI,?I,s㥶s׀۟9YlBQ㧥!=Y]/Y[[me =me ,me~me $V-9 2{n5-({n5-{n5-pe .R -l[KʉRm XʉRm SʉRm Z ʉRm  Z8د+{y㳓 2 D)\i jxa)jxa) xa) 㷲NR 㷲NR \ 㷲NRs $LN =az"i=az"=az"R=az"KޯDoRG R,sv| |㻬 N`qK `q~jد#t),n?㾅ىUql \=m0 㿍QYV-㿍QYV,㿍QYV&㿍QYV㿍QYVQ㿍QYV㿍QYV]O̪UPx{  |sY ю 0 001~" I ĥĠ;QLZa#> ƶ( [#sƶ( [#G&UvWW_h3L_h3R X3V4SB,+va:Rasg呭 (Fsg呭 { sjm0" 7 Ѿ; RԵ` $ؘF ֕C۪. ּ(׌ ؼ vVK AgNsAgNt >Zj p)%Rp)%܀mK$OQ -$OQ$OQ,ms r s 3dDx?<#E?<#EseQ ' Յo gfC%ofC% (VHP>Ɲ HP>Ɲ]%a㿧é; j TV䰋IZґ]ݙp a$%oiO$%oi[Ƚ$ $ȱ _ȱ *c[s*c[t^z ^z!*h!*h !*h!*hQ0 x 0 x9A^RZnN!tnN!t [ f3WU!Cf3WU!RRYRY~vK ~vđL`đL`sNvIN Nq`bF eHIf΄HIf΄Y HIf΄ j?fߞ" c< - [J9[J [J [JL*Ro"_w _wX_wÑ&t1' p]:<VV!o?Ї!o?ЇJ _  x*-Ԯ ? WQ q/O8 7Y3{ ָoH? CUVsHKS yy+QYj]6 !@"0cu%5tBкz{c K 3N r- Tm  r=hX  0,k( e vyE q$J  9D N!uv N!uvas@_?]"S$]"S[~M \3stJ!|%,|v 3/ 5,i*ʖSi*ʖi*ʖLga=Rga= />] i?)mYj`qzЄ s s ,gA2vRK(RRd&ː `1 %^ Jw$Jw$ Jw$ eڥ[qqFnd =-P iX i aML!w "%Tc"r4 "r4"؋t- $"{$ v$=R %D6t%+۪?%٩'E(k$w(DkFuL "*&xS*&xS *CA?,[Ayz},xgk\,ElJN,ElJ-p̕g  -p̕g -p̕g -ۨ8-vTN.5k . +wy .@ S.U k.xs /W*Ms /W*M g/D\U0R1e;1L4[ ,1L4[3뽺s3Az 424"&u> .&4"&u> %4"&u>4"&u>:6ji)(]6#<, 6ŨC6ŨC 6ŨC (77I3s \88؏q:uQ;>);}Բ $;}Բ ?D#`gS<?y ,?t@M)9˛@S" 9A[2?Bixj\vBiPSBiPBiPBo>jC}6{CQL-!DLSGx &J<^͍ J :9JƁxKEx0K`ɴEbRKrTK5%RL@3(ZL*pL]];RL]];M.0}ڈtOUH#4OUH PXv#P;H P;HRkS!5XS,,"42S,,"4S,,"4jTZ.OG \UpP * VTV VTVWaL4^sXĘ3LY9fTtY9fT Y9fTZ ip [  [ Q [ ['F+K]ص*?.]ص*]:@yt]>hY ]>hS]>h]>hL^D^D_7ו `;;'XaCCTCLaCCT aCCTaCCTQaCCTaYc cD+ ^ eGcD+ ^ mdlK&%~dlK&%~d*Q d*Qe!E!jOerdYfC!·g5Ƹhnqh:e?"$h:e?"$ h̠7kiM{SfjT$VjTjTSl h? l5l5l5* n]] ~n]] ~nlЯ n]z|n]z$#n]znǔKe oyApT1pv͈pStq 3iq 3iq 3isIa#sZ2 RsZ2 s7u t9/D t:W& tzXզZ tzXզvD[% ys yȚͥY?ye0ye0[z΀Fzq32' zC<59{ }f }S.#}?䀑똃 [/䀽g#<L䀾/:}ba",}3[ѭZr, 䃙T5٪M䃾 $;|D$;|D ,$;|D :y >:yh%V | bS9ܐu?䠯1 I=Ւ1f'3cSA1[ $A1[ a`L ;6\ZZF"wo gK $wo gK ^Fẖ[i?Pn.A #: : : p5YNq; '!G + GL # ҫ}[ @K $7ePa7eP - EREQ[g 􃙫`? k:5U` ,:5U`s䯟~䯺1Jՙ i(,s9R(,s9+(,s9 (,s9Qm*jm*]kT $]kT 䱈g4UtΧMM i䳟zyzL Pb#%emh#޼ +br a ޼ +br̈Z东p`ߙ W ߙ W34 (34I3/tI~  ?XLI +9S伛\d>DK >D>D 佖wO5F y)sy) <N -;K;;;;QC7/0d|HM?9fv١ mӭl9¿(T;P (G ޏaH ===P ćv/ |LY5[fÇYKN**'N** mYO ,OY Y*OJG JG?JG=JGj\XDZY1+{_Z ,3z׏h ׏h^ @; nU }Z !!e i ǟ)j~ʞ'cwW:  iO{ gH-1J^jHJ^ h9h $hh a|R cqץ!4?깥jMjb0ޕF G\& shL+ >hd+*3 +[v,$z=,s0h.{R-Iv.{R-Ij/'/KA#0K; 1-Hl-1-Hl1-HlK1-Hl1-HlZ2M2[[ⅎ 4ԊD4n =4nh4n 4ns 4nj4n 5%o%k;5%o%k5_ c6X ]C7 r?D7 r?7!/7!/ $8H D8|qy 8OɓQ#8Oɓ 8Oɓ8Oɓ8RiRm 8RiRm (90t90tt<.f}7 ?Ll @/ \@ | @ | D@ | Q@ | #A!!*|B*vBwp|CO/ǁCO/ǁ CO/ǁCO/ǁCO/ǁSCq{C࿾=lC࿾=R?DeUFD) !FD)?F"+ GݢSH> r@NHLS;_HȝIP J~H7e iJ~H7e J~H7e J~H7eJڕ \KVy8KVyK_P|HLIgLIgNiN"COA1IWODžRP?;\h? QbO\ aQX#Qح" jQq .Rci?RQ SYR0IUBďU~ W*Ƕ?XÍRXQeAXQe$XQeXQe XQeKZ)O95|[zxc[;lF [M%w[b11[b1[b1Z[sn@<\q \q]~Mx]~Mxd0]~Mx ^8^8^]%F]^oSxD^oSxD_(G _AR.l_AR.l `8i`%ky? `%kys`%ky ia > OSaCP a| GYa(RaO1 aO1 b1BS b1BS?cQd;RZsd;RZsd;RZsQdM #eYyhTS i)޶Zj58(7 j]]9qk 9lubN l{=El{=El{=EKl{=ElRЛ ,rlB\am{,Qm. .`mWObmh85\Dm3#}qG< qG< rRŖX? sąAt ӯ?|t3OZJPtY?tY tB2Q(u l* u-sz?*u-szu-szuBAuWY?v v $wJjw1h w1h ,x^F yN;2 zF z]_]?{&U{yu>N5{yu>{yu> {yu>{yu>{&}jL~3n?ZY~3n?Z1~3n?Z 們 Iʽ ʽKR: d@=r$僑w#n償[儤!aad*WI4XE a*WI4XEt兕gE i#Kg df~kRZ҄C[ ҄C[v凅&u-? Vd=L͵E  ga:劕pk?劕pk劕pks勃-w ;ߖW&6GhDGhGhQ!Ghނ 2LtR:M`."]KK厚uy tI厚uy \厚uy ^c$*" Z%kZ%kZ%k Z%ky8y8 ,ێyO ^v ɿQeUYUbr 4h _zf49ndޓ:咦!fdBrb)Br ( 2 r"9x6 c]e唹>[^% "H~ iIhXkx?IhXkx 喽|0wyµ µ |µ *µ ( µ µj3%8L3%8i7[[gKT/t|kDLQQ&{Z m e_eRP [)P [2/ZP,Q?Qx?Y?埇LL= -埨j^埨 埨 ?#bxɫ 墚M,m[N .^+ ms #_E1X?lT9 nр̾ , $ ,, $ , $a|?a|妫RLL+d:-s媋$x媜(^)m  2P N:1 yw-BQyw-BQ嫓-y b嫥PU嬾?@&孻(g4彛`[ HWHWU߉CKmM[LkbV*v O‚S EK -8j˜۞wYf N q#Qs]9yN 9yN9yNtc Pj7Ht}d Ӱ !yj3HLZ?8 8 hHRhH 7j/1˪ x]jr/R& D' . i󺙱7Æ?! #AÆ?!yN?S% S%K ====F==IDRP%BXe s0ϩzM E&݀ b  n9>n9>Rb5 ^ һ j  it70I0 .??eW.姑[ aG >8NSۨL9F<s l's nPY [#-.7LRS. S.$)]x 37 % [|9 Lgt H{f H{f [ ! 5@8fc e"/ ' K/C \:-(|<*/NRF<*/NQy<*/N<*/N2%|2%]2%d~ !A ,-E i-EGeQ{ ;  ; >\f[6?ɨUCx%'- 3?Y 3? 3?  3?s  3? (.R +iFo#iFoiFoiFom辕S m辕Rm辕m辕LIm辕 m辕K m辕m辕]pARUNmk/>imvi,Io (RG%/҅n/҅nS A A AvN & ,81^~\I b%l ɋ@O.xs"@O.x @O.xj@O.x i G1j f?"uy~N"MɜY#6K  #6K a#QV;| #hUaW #5?]$^;{)?%G(2 \&̾g(xY ϯ)S#%S +)ujB*??+>*l$[ *l$[ *l$[+mqY+mq +8K-= ֐-d ڙ .*un.h @U.:J .:J .؊H/`Mt/n+h L/ؼ|y /ؼ|yY0Ch 0;2|@ 2|@2~~2~~3 MK:4ֹ\Xp6-fY 6wQ. 6wQ. 6wQ.7*yN7b9?7b99s +9ޖSd 9ޖSK:ź6̷ :=q9:NlI9,:NlI:!W!:!Ws:!W a:!W;"+E < Q< Q e=0kzE =0kzZ>.po ?Q- $ ?ك $?ك@rtsBOy? BOy?C!Sa+w[C? sDa`hEBk $Fa7KFj* eF]l Gz]"dHsu a HІhѭk HІhѭJCUKKri9 KKri9 M ~M ~VM ~TQvzu lQ3*KQ+aQW+Y2QW+ gR NRFS) eSQG|B \SK7  T*!):T  T U+:oRU+:oULP?U{?eXW^pJW^pNXT iXɖDXɖD_XɖD7XɖDY,L? Y,L Zx>t[iQj\Ds\Dɢu \gk][V']Ɇ1w< ]Ɇ1w< ^>8/^Q_R@=gi_S4-V e `9VtA3`m8`m8 agP/vars?arsb c_Q~ c_Q~ U c_Q~c_Q~ ec_Q~ ,cVmZdqδB dqδB?e5(V7}Se5(V7}LefR2f"#dfHSV g ig@4 $h^Q- h^Q- h^Q- h^Q- h^Q- h^Q- h~Kh~KDi7Z[iYaP j߿k'q k--lGdY lGdYj lI_(d lctl6o ?l߅:)m/`c` $mm mj mmmbmك^KSnBM%uXoȺN *o[:V0owSo@,UBb oRqSoF ip~)ݎkp[1 p[1QpkWq+ Fqc Yrsr0Wk s 7DYs 7DjsXhU gtO33gd. tO33gd.t]Ou  ux a u2خ0u2خu2خkvȾz $vȾz wki& wN<w|[ws Zy Ы?{*իt(t}Mw` 2~2$ \~HvE ~v~v~vRYkt?it^]|it^it^it^it^/nؚD2x 9H//R]Ҡ]Ҡ H m Ht  H  H慖] \慖]?慴I2|憧'9 ,,F>9s 懚'e7_e a*7_e EO^ \EO^ ^EO^팾)FTj팾)FTs팾)FT a}(-#拺-驹?%D+@wNKBwN,wNR指cxZN掐T~掐T~z= 揹`XN <N <]q }]q }ݸt (B&P: DZ%"HlwK-;kMakMakMa,>E1?ɦ敵 ;$ fsʆQ B b.qR%.qh Su?v{u?u? u? u? eu? 晱VGLH暡*H;h 暡*H; $)%NXy曲7鉴H杮e [ 柃RKC8H$C8H C8H栉E$;ϋnȪ (ϋnȪ ϋnȪ_ЩF  W;5T 棦D+1棦D+%__O j+D7椯l l v楛s CdaJ c榠Z_v榠Z_v 榣Y$m?mͫ?q We& We We樝$v' i '?[U&[[ 5OS jÕ} bÕ} !;Õ}Õ} , 欛BY]b&殔Vԋ`汓lo?HfcLǩ,us ~ 4b-4bs 4b a4b4bSCIZnWnW@}K j浌T %浵# 浵# $涯3! ^Ƿݳs渵zP 5x!R y!Qb99:kr99:k 99:k 溇ZJ& o HOL3m#Z?>3m#Z?>3m#RY ]{QTlT c6+Lu6+Lk6+LKD6+L 6+LYtvkKIL<X4a z0ܗje9- E|,sա# \\ue$\ueNU[M  2&B J =zJcN VE, m O& O& O& 6.# 6.# ɀ ־ , ?P ?P,cTVD@cTV?cTV2cTVcTV cTVeFb0qș*ș*  Vb!F! b!F!r5Ujr5Ur5Ukr5U ( r5U ϻI ϻI5U`y_ 5U`y_s5y>7H #Yam%Q*p3DPmLCLPmLCKaVU]R(6T QGs QG ::u  Qe: l[2 t l[2 sACt HXN3^ N3^ 680cxZS~wu#GtG D #^!tOK^!tOf^!tOsزzj j߯38 TN` m~u[J~u[$~u[ ~u[~u[#@3h | | wvtNJ wvtQ wvtY wvtR! K ^%!䕃;S!^j!^!^"%љU"+#˜p1,$PNYBv$X"$δK%6y&`.&`.' g'UL&'W7f(R6$9 "(?(Aɶ&Z(!p/r(!p/r +F_X+N j!,X8,X8L,X8,Z/-\]v-~3 e--JC--J--J--J--JK--J.UjD a.X'`000ilKj)0ilK0ilKs0b38R4R4Z$ 4ٙ^:5Pt/L7i_ :7ffmc8tQR8tQ8tQ8, FN80HcD:ڻaV ; 0 ;x ;x ;l d9 Qم> E7[AqjAqA\РtA\Р (A\РsAc CwC0̮NRE8+XRREa<.[ڴEa<.[ڴEa<.[ڴEsqfE1I6CE%YJ FOA # F靣GR5GR5 a GoQ'GoQLHAFiHي> jI*NI*N IsIOyNv0J8 Jv* Jv* Jv*J씅0J씅0jKij- KZ# LmzHOv LcM4 # O`, XO+H$ Pl>?NQ*XNQW|+n R%R"fR.&R.& #R.& S% RU&KhIZ! U_  UE(K(V[c?V[cjVȕ96Wm)LmWm)SVWm)!Wm)Y Wm)Wm)WYWWYWDWYWDWYWQWYW WYW WYWKW~ϴFWД'jX / (Xc +: Xc +:DYY7f{=3]Y |Z$"+ [eQ{ +\쎽\쎽K \֟- \֟- (\֟-]aIb]*^!jD]*^!s]*^!^?_Eg^_ǀq\_ǀq_ǀq_ǀqR_ǀq`@10ۥm`@10ۥ aa"IJbպCbպCc6[>b c @|mvde| TseJtksf+ g(NgWͤ4 gWͤ4gWͤ4Rgkf#? hgqvRh)#E ch)#E ~ifejjl[k=ʗkcm]X(l m/ Sgm/ R*m/ K#m/ m/ m/ Q m/ m/ Lnb? nb?nb? nb?jo_' o_' ipeqr4. qGqW/qGqW/%rPC@rdrhFRrqܓ[KrfN rFNs Cs+Rt@*ttf7u#tЍ SuI5 v<є<vҰ7gxT ڥڥ)ڥ2!J$Rۥӧۥӧ ۥӧtj+ j+[DrEF;L/jEF;L/ xKޓVާ,fV0 D߹0?TaU?.aU"QLdIɝD, Zkt%HUƁKÔ+qAQxZxZqyPse?suȷ7II TI?! ,ZK] 6 ի i4ܙy>RrAQ;>I;><;>SNM}=:=:$mmQ+_+SH SH (*ż 1E"2 .q q TM aRD_yasPwsxG? wsxGxQL 6/= $PR3U=.xr&xr      ( HAig @Q <= .o ץH? VXf f mf?v ^sd< ^sd< GaRGadQ1VC .t. %. ,vy6,vy6[;#R[;#FDll FDll -D k[`z(\ cz|ObO //?T0llfj_T? 6gq , >3 {_ 2L2 O^s pҨ pҨ pҨ*չ b%M {Tlt8 sVϿ+ VϿ+ , pY51Ro6S@ ! 6p@@n4 RGmaSYSz;Sz Sz+YBj-Cj-C Uv 1?1 (1 \ \\F9mZ=?_N!>xe g^ڍl: vtK q|{Y[Lq|{Y[ i"PX"PX"]w_"d~ t"d~ t #xXm#xX #WD4 i$7ggN %“\ %|xa %|xa?&GET/G&Ӥ\"&Ӥ\s&.'K\ %U("@(rU @x (rU @x(fٗ (: $)mѪj)؂/")؂/h)ȳ_Y7)ȳ_ )ȳ_b *8 \*eլ Qc*eլ DF*eլ _7*eլ *eլ D*eլ ,ÔT?-KWS-/ig-L6 e.SzvN".y^8ªs.9; /͛k0\ϟ1'NU #1GCr a 1GCr 3ԃc3iUs3rQi 5Z`3rQi 53]Nj3`47t\w 47t\wt 4{b5+ ك5+ ك6N grG5Q6xx[7j7hk߈ \7dY:7cf \7A "8\@D R :Mt5Ab:T g< ܢR<2{<2{Q X@1ׂ S@J#[y?Bz?C-D cCqrCDDVEBY EB F]b Fb8"Fb8"Fwo FAo!FAo! FAo!|FAo! $Gi02mHACP,HACP+HACPHګOHګOEHeYt&HeYJo|'JUǡJ!$ KV/LWW(P'yUL27yMYicMk4 M΀ Nɾ1Nt O0i(O2yY OծOծDP`J ?Q㫧' Q̥xP?Q̥xP Q̥xP USq3jSq3jSq3jS1 T gP #T%%UfjUfVyw*0Vyw*VkkVkkWQ,t/W2\VsW&MX!X bxX1MX~ Xh [Z+#Z3(Zu[]tDN]tD^!_^Q{b ^g(oiN^q~ ?^2Ae^2Ae|_:Nzi ,_5Q_t&`}_ a;?bMb: $cv:>ZcbMd B]d Be/2+Se/2+fY[ \ fY[ f88yeZf88yeaf88yefĻ/tgfE2gfEgfEgfEhCD<6Si i i iZKkj\kF kF a kFYl, t2l;7?mO0wG mqA( (nnP*?nAYjOnAY nAY n0"2oDRYo~LI]Sp6WTK qNqq@[qg4 D qD8 iqȭZ|?qȭZ| rrYRts, >s}iGtA6 5vgK5>XwVfĔ watQwatxOzxOzjxyKy1U> \yíYtzx0fQzx0f zx0fR{ a{{]#T|W#}kd c.}mt~K㶁H $~K㶁H? 6-)lt6-)lt63# 2." @hC聐mKN聣B, b2ʵh"T<'s肠`H(肠`HR肠`H - 04(sP脄(Tm@4xvj$/ojWЊ l)膠 膩=4bZ膪)h7zw'hhD%N |ʔB!'~dTw芃A \芢Ă ^[ }  wj w?{6?Ӷ۱LnK ^b\Fg (8\Fgt\Fg;\Fg '\Fg S͛d;莆o 莆o h-r-6V|GsoV萍B?萍B Z 7Z Zt [H5v[H5vG[H5v\5?tH tHW p 2;U 薧]O$#ns0c .~UPv)w{O $w{O ([i* $[i* ˓ctK``vkov@j sk 'V[7r=uX=uX螕BpN螕fURGH URGH URGHN7% !lN7% !lsxAT?}ΘMV[ MV[$|裗<{NRDz' ykM}rp4 }rp4褢4bi褢4biS褹9褹9Sq?'%`|x'%`|x襷iCVP>P >P"Ȃ t6mЇLAvujcVxBG $39HN 39Hx  x jRr c x|ϧEŵrhŵr eIps (Nop48 .5\ ZcDȞZ ȞZ ( ϕ:vbV2LvbV2q6q6Rq6q6L4=7 Y78] s΍ys΍y ΍y?o?-{PlAe -{PlAMШp(_`Gw rM>QtJUO 9NҒҒS`|QQobF.s $w .؅z&k $؅z&k BxKnB  nB nB nB m Z `lJT \G̤z;?F ;?F e ~_se ~_jz/ ،æߟr ?ߟr \Zߟr ߟr R$(T8P8s8sHEP tOswI_B3Sx|jz(  8j3 8+ 8 ( 6.e"Rm+{R 4OnLI{ r\-k9Bk9Bj i9j i9T rT (2T ,'T aT^<ʝz*!jT*! R*! i*! ,*!*! $ W!]x Yʗ@%C캺l9[ l lFv9d # WҐ|j _= i2_=._= \_= _=s'Ӯ$ =--- (nm$}Y3qE w4C8nR`\ob?6`\obs䪁`䪁`䪁`Er01f%Er01Keq_q_q_#9 \FU+lD:')- '_|_|R_|_|_|] o ax  G G "L"Sʛ?+#o t +#o t )+#o t +#o t -+#o t  @ ),B(_)?ί?:.h :.b6uD9TO}YW0%MTו1 ktk (kkk . 5tvm@m@m@ (AUُb~RXFLϚ:[[ [ mŔ r0j{ "#$|l& $|l&C?@Wh1T@Wh1Tz-ER Hv?"TY"o{"o{ #$:M 3$:M$KpF>a$KpF>C$KpF>$Pi7 %˨ Eh%˨ Eb %˨ Ej%f CqR&7| 8&w:hN& &&7(: (t%] (t%] )wXg)wXg)phC*7T*79*辎 ?+Q= $-A- `l/nb-9=0. -9=0.Q-aU'Z -aU'Z-aU'Z ,-aU'Z -aU'Z -ct&9-Υo-ޓQ ,-4.5 .ÿ .n.n.n.rxXs.kM/Yz a0J 1``j2& c3gZ'3gi 3634p5.Ґ+5.Ґ5.ҐQ5t 6R&@"6R&@"6R&@"]6hs67=7A67 P 8-O 8K8 \ 8 \9S&Sp 9Rtk 9Rtk99'SC :H5y:$HR:^xII":mחx2:r;01Nu;01R ;01;01;#$R <[c&K<5t*R>n;? >7 ,>7?_H @.Iu@.Iu@.IuAT$Z A^-/ l:A^-/ A2ͅvBAz Bk7k]]Bk7k]]_B(13 CRIn! aC'y.4 ENYl?E1UZF̢-tF̢-t F Ow ' $ GїnwNGїnwGK{GW?n mHVK6*YK65N K;8?Lw ;z?Lw ;z L0LJZMWڨvMۛRMy *&NP鋉 j O&rϹP%w,9 P%w, RNag ]Uh <( h <(h))}!Sph))}!h)}i Eei Eei Ee i Z( (j?*h jpwm-k% - $kQUskRֿ kjKkj(mHmSnk( nډs oW - oÚ8oÚ8Sp7nqJlsqPf s_LKt`Qt`ts'p ats'p tH+t}GQU!t}GQuÍ uÍ uÍ uÍ euÍ iu~E uqdv S+|/wY5f.>?wY5f.>sx $xVJ ry HyvC>k yvC>k z aD z̲fYz̲f'z̲f"z̲f{At]({At](Q{(-X{(-X {(-X ,{(-X{(-X $y{(-Xo{(-X {(-X {(-X ( |0~ue1?p"v /SH #d #d#dU)bL ;tꋙGxߊ``pz Qpz =pzt Aޙv里釹 ݇M: 鉀€ 鉟/銣iS oMlh oMlh?"?Z#`O@++K@++D鐑V4Zv+HǢk ُ?t̶3镆Z/RA@- #6ݬAZ6ݬA6ݬAaV6ݬAS6ݬAE6ݬA6ݬAjqYjk閗t 闆iXg s3b4t阜R阜RR阜Ra,qO[= Y\/h i:mKU fĢfĢ 鞤[`c9 [{S頟zW 顆~Rbn]r*5-thl9:餅`U餅`Y6"F!O,sH [s5v93YFD(&FD(騗OMY+gCpp.6 a|9BVU%9v髜/)(&/j1km jZ"'Ӽ[ ,(T*; qSӾr魑= #魠mؖX`魠mؖX`{魠mؖX`m魠mؖX`]aJ5+kw3 鰁6o鰁4?v ?鰢m鰵U{+?Oѵ( w;,w;, ( w;,jzʙӜUI鲍y @S E:q)xN E:q)x]ė j%t7-i %t7-iXP3R<\\`R]mU *鵜e鵲#7鵲#7j 鵲#7 6Є/:N>h 2yER>˦Cʠ?z&͂ 4  4 @ 4 ) 4  4 S"}`?gKgK鼐s c}b ' AtSHR 3 j mGkmG e1v| [n- ([n- X%*q š ^ I/j[ YNYj_hKÌ;4@u `ٟ+ ?ٟ+  zI2ڋs~7A=%knF%knF (N9fUƈa4ujiK:uR:3v? !? ? ?=tIg< 7 $ WU_eq d!Ghn_ 7I ?˒ɮ7xR CK.~TU.~T/Hym7U0͕YZ дjt  Λ6] $ї&Xb\ b\ ,Ң#g[ҵ"KzXL?aى5 3qL֜i6*l *l L*l ̛bS78 y'<.d Q d Q iۄ aQM> ,QM>s®® (E.W d&+d&K O}-rqӞsejqӞse XBR & 6M- 6M- a2ˇ?<-Qd{[-W~IU0%;+ΑfX0#1L x2O \崋0v׀=#I} iVN6 浢l :Z+8@N]^ }S}"}L}o4SSr#m(K K=kwu%dwu%,] C#x9eny/djj #K #S3|-3|-h3|- 1:²n;zT!vn ,!vn  ?ݦ?"? |T01EѩsEѩ  EѩjEѩs==F}e a~v)̱ߙ}Y\ro%\Rɑ) ,.Ű9$Ű9Ű9l$ ,G3uFQ G3uF֪Ʋ0 kCCmjCmuތuތv95WN܅܅܅&V _. ? bABbAh h A[U#@V[D &0`F @; ZH ZHj !4 To $e $e ?y N 䚺 , | ,  "v|? "v| % "v| $ "v| i "v|  "v| \ "v|  /9 | | | ӭ^ ӭ^!ľY8crt$Ss{9] NQ?NQ xRxxQ: $n3tz1mc(({ lL \4QF |R1 i|R1s}u֣,^N(4P:t~ĖK_'ǎz $aHCf^&z4 xB /udt /ud 䚍_ ~R©VON : \!ƀ?WpdT+jWpdT+;  ԛz v:WML )S Tg K.Tg Tg JTg  "~a "~a "~a FD;f+ FD;f+D FD;f+ FD;f+K i !˿E2x (!JP!B?"'#jz "'#jz a"+10 #'2ːj#'2ː i#'2ː#'2ː#UAH~#+MK#+M #+MD#+MD$B r8$t%}yt}%iI&V02c>02c>02c>q02c>RN02c>02c>KN02c>Y02c>02c>Q 0t~g$1lbWR2']1CR $2abam2abam2ײ:2ײ a3x~ - 3횟M 4k?"4IN4aG7tc 4_&4% 4*= 4/8R4; 5r\?5r\ ,6NԶ \7 M 7 M7 M e7 M7 M 8~.m9 9|o\K9F6B :!ױ ;O ;kx<$,{ < <?>Y;0N?LW7?LW7?iMKK?iMKK?1 AЩkBE# (BjBKDC? ,E-۷* EWEk/FWFʴ,NG9xH` '# I&VTQIN INIƿoL)" J&]o J Jֱd] KayKB{W K&۟K K&۟La |L`gӪPMP a NϢ $NϢO`bNO«tPW - PW -PB QNˇC.QNˇ'SFg/"S`h{T(+U@OBtUM UMdUD-#RVyP ?X3R X3ꓩd%Uꓻ_np0PChsa͏ꔿ1ڎyX&[@&\m&Iފ( tk5[tk5   vɊshɊs a 4!4a ꚹfDxY 0 a j6jZOjR`)?8oW (uU ꝍYh $];N+ ޚRֈsޝ·$b ⻌uKx< cKx< \]}/cT CAThW $R7Ƽ>N1s8>N1 ^>N1 n bc(G\sP@2XAt䀝 井i a井i 井i ^xUC ij!Tzl 偣?F^y)բ;B Ժa aԺa Z DaV YLx6EK.m{FTc5%CiSa!CiS$CiSR   ,+ TR Hi>Hi> D q3 cLD#/P w4!?sf$oj{ {|"{ { {  t6 ,RZ"RRZ"1]1]R1]Q̖" s1KOʄ?hNpp bNtbN oJtH!q6,*f dF[R=.s=. p2Kr%[ Wr%[ RCLXb LXbLXbLXbL.% sL.% jw 3A"3At 3Ab3AKet!/et!et! et!]FQ4mrD? mrD dP*SJJt3$}룚=4 룚=4804 55 ~'j[ dT ):^ AZ"  GSD uLj uL iL uL d  PЖ | =Gu =GuU &K,KULa  |  FÁm\?hdTn&D%Mu{pblCJovGʝ] ȷA9[S~##U gzcgzc$zc]KCO9(;Ԫ2t8 Ԫ2t8 $Ԫ2t8=M@odv.v , /pq /pq!!3fX:C) \,7z߃zdUιZ[B""4[ݵ- |I-*r?I-*rjI-*r %yvwI]wIʺKws(t` Wo Wo Woj!pv!pv"-`{?"Ο׹y "lY# #\m# $$QRJ?y$QRJ V$QRJ $QRJ i'1XL! s'S 'K(fU  (fU (fU (fU Q(fU  (RInN)U4)?Ft)?F *0Uq*;BO *n$ *n$*ڂQE-Ma^a$ -_Pn -_Pn.bܬ , .bܬ .bܬ/f<0Gb R0Nw0 s1-X 1-Xt2>>1 2c1_]2c1_L2c1_24V3 5紙S 5\/7 5ߴ3D6!j8q#ut8̛& s8F|`#8F|`#9*f&9*f&:_D<9G } ?cSS 6 @fyA$+ A5FdA5FA5FA5FBh[BU nQC>9 c CuJsmDZD (DYyDk*EB^)? E]} .F)ic lG(z`?G:qbGB t GGH4g H)q.uIY SI.tA6; cI/ØJO{Jr-?JJKx9ϧ;Kx9ϧKx9ϧYLEb6-LEb6 LEb6&LEb6 eLa,/La,Ma~+7jM敱/ Nh7tOD+o5Orhb OP Osr ) P^]?PNdjPNd)Q6y/RnҶ(_NTgjYV}&jWl73}=XǰXb+hYofZZ 'W [,2Od[7I]f?[DEj[DEjs[u~s\X`F\X`"]ŵH $]5 \^LR0^W^!@ $_Bv _B_B `] ,aaoaaoah(Ia2lb֌5b֌5 .b֌5Sb֌5 b֌5b֌5b" BbDH„cf 9|cf 9 a cf 9 c&Zcw ("cw?cԕcԕYcʈh c c dCl \da?PUf&]EvgrKN#grKN$g|7$[hO; CKhw)iskqi͔ jZ-R mjZ-RYjZ-R jZ-RbjZ-Rk jZ-R (j0  j0 9j0 k[B¥0k[B¥0 lqNm" m"Qm"mѳ @x i oN RpQ^pQ^ \rnjv rnjvraX raX _raX ?raX spHD s֧#H[s֧#HsAOpYsAOp .txͶf tE;;N+uXs uXsYuت~ vswn9 w';@vw';@Zw';@Yw';@ wc. x' /[KxlK:Uy|8bhyT?; yC֪kz%!՚ i{dR3?{qY}v${qY}~P֐6Y k9-5k9-iϳ&JW8zݥrw$b2넘@ L넘@ ( UQlpv/sէ"? _ _j\ ^ N4 |sRr Z9s늟*?늟* i닭5F'2t瑗o <f\d ; \d ;\d ;\d ;?;6S;6S뎩ILj뎹dfhj= a ^*fUWC3 WC3 *31K뒥Pj뒥Ph+|a['[M `J?A&VT 9j.^NW"iW"iW"ih떈O \Ȥ9P1bk#뗱 7b \] L*v뙲xd#뙲xߖi@w qJzN? V?$띪o#t HÏuwLIԏl Iԏl Iԏl IԏlYIԏlt렏LJa렏LJ# `u" Z:뢈=$lh (H (W;=W;=ʁN RGUJ0#v`Om 2D~C\2D~C\ ,;}[R릨QE 릶O맏7!먀F N1Jsg An2 ,.5vz몴v?-fk`Q?Vz^@zeJ묵5%n _'@(d,ˈ,ˈs )i 2>}W4}W}WP#뱉KѲچ볻EvJ7>n>aa뵔_y뵳8 i~@y;  ~@y; e)/&e{ {Y?YvN3YvYvdrZ9뷬154ɉ%g "%g s%gk븒r (븒rs븒rh븒r g븒r |븤 ` lvjXWVMc(SVMc(`\}t(6ĬR <"r}n& (뾤lK뾤l뾤lQ뿺Bi.?Ppz,L N 6h'UεSq>4T&³ɹ(Jja1$ϋX$ϋiZ+rM 2zUdģKvŦ;&t7~v  V ؿ'`Cȩ:ƽm͵?Mq&%H #x}R-7 a!1 p(ntp(n . RXnH3 nH3 H?zbN#?bN# k$gNl| gNl (gNl \H[5H[5?H[5 (KQ?9h֨i֨i , ֨i֨ieFz*Ed~sq\?л. (ۓǜ,[ b j- Z܇K ܠle%ܠle ܠleܠlet ܠle:ݲ)Q &yA iފ$5xފ$5/ފ$5Qފ$5dފ$5XMl,XMl hS 8It(w aV O{_!H ,{_!H ${_!H{_!H9p1y-[gseY[gseX5 (LJ*& $ ]hGv]hG ~4FȉM76ΘM aMBb , ȣǴG/v]$&URqބ;Jki/ȸYX ( ȸYX4EEaZ_R@9Ea| a|x3x3t PN|g)x-TT?$ o 8[v [?G@ [?G@ *)/#5S%yD O> # 0",#e Wq0Z?  $:@ݢ[t!C%  C%  q1Ɛ s Im:N3*qUsK=O'|~)p?.?.pv b$ b> c==$1>ׇ6 j?n?< s?:[@(N @(N @~ үR@OEzI@OEz e?@|@. lGA P?A PA 6 A 6 sAMGAMGAaBE A| ( Bŭ' CjI CjIDD/) &D9ܱDEE%D G,7ZK G,7ZG,7ZUGɅ HwMn@gNJg2sJϻΩ aJϻΩ ,JϻΩ K겓U K"@ #L6J1Mk&LMx\( ,M/?N2`@# N2`@#N2`@#N_UxaNVc P 3*jP 3*P~KOs4P~KO iR4JLRj.n5Rj.nRH. S+pRS qo7$VT=}fT=}OTe!nDT0쀶 U fRUg=6 $U uV̲$?WwK9X5 o $-X5 oX2YX,2 Y]׉qbYkg?Z6jTdZ6jTZS+#NZNdZNZN\=3$v\ \ \dDZ\J'?]N^S!_Atɇ! _pB_y/`]HNh`]HN c` Jda`==6abEh&QbɇU ?b^ b^sdb” 3d7#dÿDe/:i, eH ?*m- eH ?*m-eH ?*m-eTMeV+Q g=3thvXLiQN jD kl&*l`k Dl`k mY8m& X i mrYRnnEsntO{ncY~ nn鐯p jWG* \pg:0ppXRq++ cq++ #qZ1 qe3 LsIv"sIv"t"𠲑u$zm7 auƲs6uƲs6v؟]svLw w.C+FRw.C+F5w.C+FyMzRy^2 e{p|mb}MFk  2LEU?_s_ \_9}ZN̲^' 삂" -]f$z|FHFiYKKab j]8P7fq&~G%{D.Qb8Tj 셑Uo 솑i̥q ֹ((yP|gS P|gS숪y`K쉝c߄[3쉬x`) A Pr~k;, ,xa{{iVtiVk r|b !r|bPr|b r|bD* DI1 DI1DI1 \y+  x hXt/7|q[ (Vj=Jt"cjc ic 5iP+ucx-=K8J V}Un쓀s7¬k #OR;??xֹXxֹXԷtԷ3Է2Է Էw[25dz}DJ{s >S > >~WNYz~WNYz eyv+C+Cjl̟Ll̟ li@ #gZj윌K T-# (S (h"1 Օ>?x@}UR m5VR@y졏=-?g" es sRsK茫 өh x`0ma S/$ZY쥇k(rv쥇k(r g쥇k(rsc L*,K,-s=O r짗2af%$I^b쩌J#4yd %{v5jx?쪒 mV 쪽< vv WC a쬳lvWu |쭇O<# $쭇O<#j0jM 0jM? 0jMYvAq쮊,@*])T?w9 j/pNj &SSyݖ{\ yݖ{\ MZ4&? 쵥g<sYJ쵥g<sY3쵥g<sYQ쵥g<sYi^[i^nX+ 6IVi l]4l]4K췱]!:9 #(=5 (=5 "?C `د_ 컊+<컑T uW>T?쿢78 x#Clx#Kx#Qx#x#[^C; [^C ;[^C?™>gK3™>g™>g™>gz#󐣣󐣣 +󐣣 󐣣K󐣣_ʆSź#&s5,W}?ƶ JG"sMSK`ތ% (ȡ><Hqd#Qk9)>ɦr# ɦrɦrdɦrtI`RtI` tI`hNGvջi5)Ag8Ag80CkS =b4T&Y , ͑mC,cH_ -cH_ N62㴰' $ 㴰' 㴰'㴰' 㴰' ,\bJ(GJ(RxRxRxZRx Rx9V0U9@ JT|JT olDәәԲxNABV>FĻռĘP !ռĘP 5 ռĘPZֱOWP`Sh S $or״5"2ضwkhgB?̛ V? c N m#܋#?%t% &?%@-6?%@-6 %@-6 m߰f1߰f߽~oDqDwx !&q Y8t 坠#坠#D @"=hΟ ᔐy_8/MǍ)⭜Y\& (Ěg 7 il747 7 7|7 (77 \AՉlI $IlI #lI /za?x~ls<7ke<7ke<7ke<7keA5 (BTJ|;d4 KR? 8M .AP {.AP .AP tMD-U Mx'm4tQiM!v=\ $ V[QG \ eք:hL hL|섢@ɧ0rzv\ 9n \99nj9n $9n?A9 DBd DBd8DBd DBd DBd mDBd ^B~Ղ^I-*r8RX:ۉjX:ۉ ( Z0enӷD rMt  |  |  | \ | (Eusf (Eus~sv7¸ ^`7e[ h8h8C,CT> Ÿ lj{2~ lj{2~llj{2~ Sϗ4jSϗ4Sϗ4m eDmj7mmmsm t1'R-1' ,rtϒZJj.t. {҆BD?&$iѱvAk, Ak,d^nxqJz8HgH j{cW[?H H2ހ5  xž v'7i $sZ$FS)K;@, u8+~+av{}~  Nҥ: j:OV c 8F  d@- V s V \ V , I4S (  ( ndI mv CA Șr s Șr ^ ii 4|V 4|V 730R30$$Gf:ΚtrTRq!L!Lr:O[; [ [Q [5 [*PX6 m&5wU!v N)R.`|GhV5 $$ M?Mj5N(1)g?'wo (o ZtZU, (o°$s #)nLCot ԂvT5ԂvT5jԂvT5;] dKSfR>rh A@S  A@S  2t OQXh OQXh  vm !jRa!U!۞`+?" DZ_" DZ_ (" DZ_j" H1 " H1 i#jg$qf# $Se) ,%cށ'<s'(DUm(DUm ,) ͗,U 2)eW_v )u :r)u :]M)u :)u :)u :)u :U*){k*rXzD*rXzK+B_ $-,~/,Gpx - -j .Drj91m1G笽1䨴?2kO|y|2n#ƊD2׃3-| 2׃3-|2g 2g5jwGK5>Uh5>U5>UR|5>U 5{*R68 m62j[ 6o,o8 Q0tS8} 8H7V95(95(9hN3{ 9ӎqyR :_Dzvj:W<Ƚhi ?] ?-v@lH (C[gNCq݇x $pCq݇x C1Vj 1DuWV D}t= D4DuH.YEIKEIK EIK EJ$p!FqKePH+% H+% HpB82H@0u Ie_TpR -J{ehJZ,L%JZ,$JZ,J}K( |L΅*UMC$' MC$' M -DN dh Nw[KO,L^)CO,L^;O,L^%O=^OsNP @ P%TkK2 QgS `m|Sޒ cSDͼ1jS^-?T LP T6(¯Uc$_tWm/1kW/? W/j XGM X`J*X~t?X~t X~t iY.T#pY5<sZ;]* Z;]*D[\B*[\B*L[|4eZ0\# \L) (\L) ^j׸/7 _irLLN`4F` ;V`ӄA}Y`ӄA} `ӄA}j`ӄA} `ӄA}t`ӄA} a]^NaX 'bM_JbM_)bM_bx}KcRXer@ duf GdZnegve e f|&* gwPg: ghtJ{6h`A2h`Ah* h* it i_>'i < jI{ jq~kS\ ?kw@% 'kW5* jk8w$kt~Әk䍧h2TlhlŅ1lŅ1lŅ1lŅ1lrLm.TP ,m]+o)o:7KoIJ pVjHJ[pBbq i Rq i q i sL. sdЋF (t#YgyuuSJ(4ulvu vǪkrR vǪkrSw 3 wGWCwZG #x{ sx+HPyP?tezܽ [zܽzܽtzܽ (_zܽNzܽjzܽ i'zܽ zܽ zܽszܽ ezܽ{h~8 ,{e {2 $}}E[}a4 }a4 ~AEYT .f#!3Z>`5Z>`Z>` )K c nN5-yY ;}%h턅Kq턯?^G?zTc&zTczTczTcR[ux]|[ux ,^#h$퇆[ "VJH? 'v2튴[/{~BsCbsCƃ\.?7v i@V9C y-~K8y-~\~ ejNAL H cNp 퐙hH$?퐙hH$j %+s"K}Ҟ FLS%? ?P+Lq<c/o: C[퓲i]D&픛tX5v핡Q,0+ 햘ɮ s향zEe 홚Zqs{NV!d]avNFb6CNFb6QTvI6`>:6`> ,b@ Y $-흜~ \ ѳ4^?   c  # `(y ,=~> $V?~5+: 720 i[ R:lR(:lR(UK&}:'K&}:s# gܾZQA2 (I:,I:,jn VLILI!AX?,=M c \l4>.? %9PcJ*fFb j@# 57:u((kN%_:}Z[ WF"WF aVnq|^qvpG: t# tK xu 8pR9FDߑLм ǐzH?>Vt/M1t=t/M1k(:m  3 ot ,YOE b&my ( :9<_( (/_( " _:*= _:*=_:*=߬ -2O-Yϯ_ u7%f+C|ǖu] þRþ2X2j-+ aY| o ?o p8OtfBfR ƎB7Lƪ'A *ƪ'A ((3*s? K :ǠM=aǠM=ǠM=$plyr;&~W~W̺@8N:E?M`<кǠksφ@PϺzqmb6? a"[ )6=Ejm, am, V!A31wX Sؽ) sde e %k+ljW[ 0n,! mևC ֍o}MeTP)W+j 6lS?B@6B@6ٍ r; =$"vJ |J |ڟi+ڟi+%w^[0|~$w^[0|~w^[0|~@Zd SN_ &5v t9t9t9ޮ"qY޶~klD޶~kl޶~kl ޶~klQ & ㎙Kzv"\'oxx ?r$vO|vO|#K@FEu߄#iRR ]!Bg|9@29@R|*i7p?p psp 6 4L?P)Dݖv?ٸvv$?9^ ? fuNùr{?  az s+ az # az az  az i az  az h az \ K]  笸  Q&8  Q&8 9N.d  9N.d RT 9N.d Q 9N.d  2Q~o si|*i|*Rz{S=gh1j8$S1d/_UDsh<*Rsh<*sh<*`,ΑE?w ,,ΑE?w a,ΑE?w =_ۏX sC 쏹uG쏹uaǹJR (ǹJR | !B !Bs !B !Bj {;3~ n GjbnJ`= # ɓr) `p `pR&O7_ϭ/_ϭZ_ϭtT@* seƬQ>q!`N?!rYbV !a ∢"ɶ "# /] "# /] "# /]j "# /] # 0c3^# 0c3^# 0c3^#13ɂN'46K\u 4֪Qzt4֪Qzb4֪Qz 4֪Qz 4DQ/ \5 ٍ5?O5?O , 5?Os5OT?6׿uP6^^Tv 6SD71',d7>+$ ; <#a̋<R(> X䤈>_X d?>f U ?>f Ut@d%s*d@d%s* @d%s*@d%s*kB 2 8jBCyBδ&CIXv CXaD֟ELD! DRAelEJb [ E%xǯ F/EcF1u.qG_ % I(3ZI(3ZI(3Z $I(3Z (JZU&qJʫbKt7 \K׊9@ vK׊9@ K׊9@ LCYTM S)MMٙxMٙx O6&KvPϕ}Q倬mRKEdRUѱ\?UTZU?U[KU}*o2vV.ot Va)[V$ V$W<J X_@ X_@Y(Я) Y(Я)Z&AZZ\oiN9\oiN |]J>lj:]Sxqi]TB.^zs&k_%UHs_?e _?e _B+&K`hy9( !`|ȇ`FR`i a>>GcOJaDCDaװ(aװ b)$6S?bKLdmCbӡdd*PLaweE7$fti?fti?fR4fR4fR4_fR4OfR4$fR4SfR4LfR4Yf\CKg!8B ghs (Kghs (hmc [hmc hmc9hmc ehͷLshͷLi6c@ .ik o kik o io$}}Lj vk6ڐ k6ڐ k<?l'@Z|l'@Z| m^sm^s m^smgYnb#%Snb#%oW , orwX2OorwX2Otp>?*p>?*pk-pk-Dpi"a ipЖ^ZqD #qNO (;5~>Oj ;5~>O;5~>Ow3t aN S ɾtɾjɻ YR$o5$,T; ;sּX ( )[X ̓m8N53r x߻0E=v@SH vjNjN ֦jЮf;Hap}Fx#^jvm9 vm9 [  ק(bsh85/U ah85/Ush85/UN GJ GJ GJtl#vl#v ĸtӰӰ i&S \&S ?~m )?S~m ) i0~m )s &7  kF F FE# `40."u4lLb kKGSidf>1Sidf>vlP #(ß*$ KM iKMKM KM &F >R&F >2V;Ll[Bs} #l[Bs} £y £yj£yY£y £y eűAfaܩH 8Rȃ**nQNȃ**n'ȃ**nȒ?JJ#Ji{STjL*z *z?\*zj,2| 2|̡O :Fw $#Vg b#Vg t#Vg aF} џz] M< i,i, *5R85*5dz |ԇ8"Ԟ>b+ "׼4Ԗٕ i5/Լܲ^e)rbܲ^e)r mLJ,4 Tb߻; ߻; ީS?s!W(  ~JZK&ZTYPRb/  P. 7`߹ SM? E-kE-k n%G.tHK  :`N4% Y : LiXs 8,΂OIR bUn 막&=*#1? N%x,CK?CCKjCKsCK a#*|#* #*D$?HD3Uy k | /i..M a/*% % |fM[sG`RG`\(>Zwwdo`s_,o`s_o`s_ .kB.kQ? *S1W61W ,1Wj}d(9=6is =hqO:E*k7U*&.vRY*&.vx*&.vS?Vғn =ט[Aϒ.hdQ%0UPŕ4 \K b{O AU ><s w.}? w.}  R R R 6  6s 6  6 ( 6h *'b س Eb Eb |Lbt |Lbk |Lb i>G9NNh_ÐVA,{*^$&0\Ѝl_ghCW)0m/ ,)0m/ML 8E~  LT]k t__k|ߘpOK|J%;v>%; $>q e?&"p`?Pdގ ?Pdގ?ƙ8I ApTC ~K?tC ~K? Ej(EEj(EFtFhJ.]F?{ $G V?Gg"G80 Hf֙U naHf֙U ^I~^z nI.z4j lIyJl$?JydJMnKFѩsKY2a? Kqu\?Kqu\ \Kqu\ (K:V M"_ fMpfMeԳ iNm jOx$Q8΢UdNQ8΢UdQ8΢Ud Q8΢UdRޜ. 2}RxSRxSSfH ,>SfH $4SfH 3SfH SfH vSfH (SfH ScϔUUj5 yk Uj5 y Uj5 y U=T{/U9KV2x VP--sVWa W;$ XBH}qXBH}q| XBH}q iXTJNX{h)XXp $YDF $ Yp# ghZYB [ (\m}R, \m}R, \m}R, ]n|]n|] iU>I ]% ^:l[K^:l[Q^:l[^:l[D^:l[^țo ,^țo ^țo $^țo9^țo i_! _>Pǫ 6_>Pǫtb[I= cI+gc¥*J "d jf~Rd jf~qd jf~Ld jf~d jf~ d9V0; aeIP (e4e4eZ\TeZ\LeZ\f(Ӛ fx0hJamN<hJami1]H?iښY @jj tj/nSenJ j;J:?1J:J: (Mİ!Oa}+?=+"L=+"$=+"=+"=+" =+"=+"GsĬ2[ ]T[?;}#n#= cBd陵JE; 﨔 efBspͤwr  wr wr wr |QlTQ<ͻ+ ڿQڿQ۬ht3b&稸? &稸 6Pws5Ra)s 6L a)s 6L ܴbCh|ܴbCh| 44)rq 44)rq_yQYD݇^Ujݼwly{jt jtZuzf޾QШߐ'1($Fԛ WdۈĢjۈĢ؁ $/y \rVv%6apܟsL?C'a#|'a#sr2/Ia r2/Ia 7lAOkÒ:>}AZ_Gz?2hW EeRb, a>, $]! h LOzLyJyJk1dh[?91dh[ ( 1dh[ N, e:ܰ?PitPi Pi d,K3<6sH H;L?H;L %0"#a7cr_9 #Tr_9'ŗ^DhQ5BQ5B Hr.]NY̨ks ]K΄k:.Rt ,OKwhOKw=OKwOKw OKwPY-PY1nt R QBJf; ,Jf; CF&j8Z $֒֒Q}bZ 9St;St;Y1KH`KH`$`? n@ ̟ Aj 1°5 zW? a zW? $ R>L 01t 01 qa N Pys PysK >D} >D} ,9 >D} 4ǀ|s6  B#BRB;)Iv(>Iv e))a[)^J[)~<M)~<)~< ),3SX),3SX ,)"Z*3G$!+(RL+OS@,4[,0e>,0e3,0e-s .M "/t%:?/ޓ犙0Xɱv71iM 1F)к2 T2t 2fk^3g#?4@ 4[3- s 4[3-?4= 4=4= , 4= 63Q6yaB?7` /7`h $7`h 80j9 $80j9 ,8:5F8L:;4 ;D]V;[;.j;[;. @;[;.s2;[;.;[;. g;[;. ;[;. iRSnV|TQ=T…"UK4GRUK4GKUK4GUqUlUqUl9UqUlUz5AUz5AV, 5tVF  VFj VFvW J:aW0aZ WO^}jDW\$W\$ X*X* X* ,X!ݛ! mX!ݛ!X!ݛ!X!ݛ!8X!ݛ!:XbE ZB5 m<Z<=Z<=Z<=[\- i;y> y>? y> %y跇\Lz@+yC{'pKh{TUZ|]us|bYid};,̘}X5iD }X5iD?}X5iD g~#OYW## `!I h5Ut_ _ \Ɍ6o$ϐb i{\ \O(F??0gS ?0gLk ( k?fXͫ؈P& c{ Ec{ Sdoyj> Y=HY=Hsf <3j"-N|9$Յ*'aVG eW m5z ]D7lHՊՊ ՊL?N , i ikp3 M7\s\v_b R\v_b K\v_b Q2\v_b \v_b L^7Lu$C;< #zjB*[XvQf   2WY 2WYQ2WYj]b 3z5z5HbS,CP  @g(!;M=Q 36 #]VB ,m7RƢ f<# [AQBEtIkl@d[ SX i Ru& +j"j"j" j"K i _as_at Vd l~~ 'c c 3ВTEh_U4~<]Id ]o Ưfbi T/(݄* #m5  %VN'&J9C8o( }z?. }z?.ʂ.PU$ ]&(]&j]&s]& ]& ( d.R Yu!΋CT $ 9"I S S5bY ;o4( $gk gk |Җ_#l:Җ_#l:Җ_#l:%DH[hK; K; K; $ K; 2U) e* نnW7٣! ~?{( {( i{(s'@+/ %#LJ|'̱#g?RY!p%jlN૥HZ=? @ hs?@ hs (9/@RB9/@K9/@d9/@*^;4`cM`c ,`cNo49* Ǝ4 2@N Ǝ4 2@R3;CLt♦ql"♦ql" ♦ql" o  7o!tㄚ)Szㄚ)&|k" c&sW irAH¨?w|Z' /[3 1/u 9bgp {r2<2<Z?*֞9 D̍ w  brZ";V׹ a ,MxMx|j,|j, \3̯:R ԺRj= .j= ܏B??2-u/2-u/]EL|I|I|IK ,>N .ۇ;.Ϲ <'] RX~>0 a HQv꧇C꧇S꧇꧇15 !2Ax*|E  kM/ j1#ZիZիs(p2Q/M]!TdԬ+vpZ<= a&8s!WX/v**R KK9XD@rW)u@rW)ud3hkwY ص&"uJ (>  D :? ע c=cK Z  >y sObZv }Q.pFR.pFzEz z  7%4R nzm nz nz eBeZ \!"  "  #/S+ a#/S+? #/S+ #/S+ i#{- N# j ($ uvp$ u ?$ u $ us$ u ($\"B,$\"B $J>xdD$J>xdK$d,l8$d,li$pSsA$pS ,5$Ȅ ?,R $ul%K2&5=Cv&mQ(ӝ: )Kp} )rW !)rW )rW)1Y+菇?,=R4T,)ԑ,)ԑ ,)ԑ ,j΂UI,{.TU-ܢqt - o1 i- o1 - o1-]$D-fy[-n#H a -[~=*.IAs.IA \0N(1knR#1kn1U2L=;d3StU14AÈ4\sk|?5Zw v5" c50b50 b5nH 66bo$]6Ӫ 6Ӫj 7R 7 . 7 . 8w0<?9xuR '9xuR9xuRt9xuR ( ;d\f;d\ ,;d\jx;d\ X;d\;d\ $U}1>U}1>=5}K>wS,k>31IAVVD AVVDDAMA8(7fB 'N, B隳lS"B隳lB隳lB隳lB隳lC)MjhtC)Mjh}C)Mjhj C)Mjhs C)MjhD~ D2 wD2 wsDKҕ|?bDKҕ| DKҕ|Eb| Eb|Et$ jEv=.aFzF ,hF GY, mHv(HSPHf:ǧ gI/n&@ IL[ Um ,ItlZtKsKsKsLLN)O(N?g$L N,ߛ#N%Ĵ (OĠ'@?8OĠ'@ OĠ'@hPDR D, R(eQ R90^ S5~/SBYSBYTV!L'a U.51UU.51L&U.51 U.51 U.51ZUF|VYr၈W/!jW/! gW/! (YUt6YUt6 [r:_uZS[2@AZ [,A^s[(\d\Q\ڝZ \ڝZ?\\녴;yR];Z@Z ];Z@Z]&<~u _9@e_9@e_~|_>QK`cb,(?`cb,( `cb,( `cb,(sbH=u= cg/29t dZ5d\S= :dVF ebJ}'BNLebJ}'B.e[?Oe[ fiR sgVJ4?gVJ4? $gd煸fh֯jiZ2h jB(%_ jB(%djB(%k32Eg kvO$?l*{4Cvm e@m׃*?n?nۘ o3!6Z \pMqʧ p}Lp/\NLp/\q{jqKir 3$sfRsg1 u,wQu,wRuI>u su.t juut%sut% $ut% ut% ut%jv_;svG:(vvWy$\Zvj9;vj9;xchܴhx+ ?x+ sLx+  yW)Ez3K:{}>|~GP |~GP *}g }X i~RlN mBM 񀬟ý  ̆R̆C̆c"9 ,3k` Aq}i_S q}L8a =|bL_.<_.-|k6oB6oB[Hf[rh eH4U"$-tkv{~ 66YwN&shdL줧b? ْM~NHKd$pIU-K U-S sj~Lj~L j~L2h<-j+2h<-2h<-t2h<-shG<hG<tf{K- (uus uusw>ml$mw>ml$hw>ml$w>ml$Y  JIl1񎮻a񎮻a9S[&-  x+hi *Wș Wș iV$XU fti?gA^ #g\l1y l1y v X%S#->X%S> b/{ b/{&ec&eSqipjqipbfhc $Nh$Nhj񧳚? 񧳚 񩩤?3񩩤  jc jc jcCj\ c"oOP- i([y _XG_XG g.&uk #X jX sX X i4/_xv+񮼥A'} pA pAQ :í?{2/ʍ #`.N>NQjMȊS1CzIϸpx2  ӽ4t-{.t9HC#&^Y񵈌@ ?mFe c\r:nὫ2ὫὫ m0){Fh0){F 0){F 3[\NDEYuU߀1"1txV0r rxV0rtxV0r %څ- %څ-|%څ-s%څ- ( ( ɻAqW5® &UBUBawdTU v/Y*D X,ftƿunFƿunFKX? ,A,4NA,4NsB,Fq}fc $'fc fc |fc ĒƏ/bu_ORDž$ǶN۬k0Ry:ly:ly:lCH  O MNl?FdIT'FdITFdITFdITFdIT̿Nt| t t u9 a=u9 u9tu9sH3є˧l܍$`< 6$`< 5$`<$`< e $`< $;L sO>)Uͮ4| $ͮ4| ,ͮ4| ͮ4| M%b8 M%b8ni _:]ZkZk Zks-9 \ϔ)qKнFZ"sbz ?%Xv#3 ̮Û1 &q 7;%~R@Dj֣Y y@ ֣Y y@ׄ vfa  MSm[ت V-+ nت V-+ VfŨ]S VfŨ] }=@ x*bI.X3[3QRqICj qIC qICqIC y-ͩ?y-ͩj9+1dG9+1d9+1dU~ .[8VeTR:g$ ᤡR3B $' h.$' vx݋:6z  !Ktxv vjv iҌV>?/s `[Ou p0q?Ee"'4sֱ_s7ֱ_kֱ_tTUg TUgv7>r?&ѧwF}PZ+# d i d ac>|&#xʮo\쀼,J 쀼,J쀼,J^ @LK%#1#1| #1 }^]>N }^]>=l=l |+2Y ִDp ִDpZִDpִDpִDpv,$Vt XPs\r 8˕jv,]!(P( {r+1fYsr?B¤KٛUu4oі{-u4oі{SΦ,V!?$G[A7×̙A7×̙So$ax$״dM mѰ.k4k-Ѱ.k4k_Xށ> cf*s0Sc4=v?J1bj|#[8 L/Nç?JSK +bRc)c)Rc) ә  !2;-S !2;- \ +{&9 u-q7 †Ws r8k ?QnN » &aIP9s/Jǘ?S]P <2OZW? W *Db*D *D PjP O! aea!|ea! 4EjI?`O l +vx$)p` b\I?1b\I?E ʙ& 9gx?ke=qƧv[wk0 m~bo #H ݂ ? ݂ , ݂ ,{{rE@VE@VNdKNd$,Ht,H (4  (I9VCI9VC?3! ,lf !swR"lj"l"]/$_ $rP$rP$:s.%"s'z:V'z:!'z: 'z:'{QfK (((EjD(V)}. ()}.s)&B! i*h;??+!C1(|, ,CX-:,a[! .NGT. 9/huOa 02z#h0`hy 0ȧ^1[ʧ9 a1[ʧ9?3l@3 %{ 3Z'_s 4$4|R $6s;-HN6= 8"НY $9r/h?: ;5$+<5Bj<5B<5B<: <: R B> >t>Lx >Lxs8>Lx i0>Lx \>Lx >Lx (?=&-J?j6KD?j6 ?TH7ANcANcjANc AIQ%$xAIQ%#AS_Û ,Ad [A[voP A[vo ,Az iBO_BO_RBhaKN Be( DXD aEi kEoNlHnHUUEJr6cJ/2v JEqͳ K9 rLx5"?Lx5"N7x \O.UOI,TOZ;OZ;OU P P P #*QTkrQTkQTk[Q Qmy7=t Qmy7=kRb=pRb=p Rb=pRP8RP RPDRPSJK' -T7_QB:?T7_QB:sU0&ug Vmpi iVmpiX:1 XQ:XQtX#*DYQ@tYâ FYZLZ ZB; sZqsϔC[4&JR (\)Fc ]H8'`f]yeQF ]j] ]^16͢$ ^16͢$ ^16͢$ ^16͢$ i^z~8 ^z~8 _3LN}Y _P& L_ b8 cC uR%cC ud U] d94J|e1O(vfICu i݈ZismhWtg_?lNy-\tQy-\k&C&C̡ +=Q"̡ +=K , $ 6$ 6$ 6Ufhct %gZ2~ y r$T'tN؂.'pGpG#pGPpGpGd򟸍$kqSŨ)&?_e # #YY %SrQI 42x ,xhC ep pMY pMYtλ^ $tV{-e_a''Co^Co^jWki3 5Wki3 v@ g#8& SQg#8& L<g#8& .g#8& *g#8& wOw)򬙬#isƔNtsƔN sƔN BOe8MRCM rW;fW;L_W;S W;򰫡j ~]} 8&oN~E~EK7$_-Uv8_TͲ|/=K /=K =%$?򴑈bv{v & s-s-s-s- aF0 OO ODf Df ${Df Df ,Df Df eDf9`/9`/xM -i)(dY:a;Qd]trDi&"N mW TwDR $^$ ,W$ $$wn'7F ]ʊU~njá*bcZU*bcZ*bcZ*bcZ 򹒚D7 )b# yN͗8ūh͗8ū ͗8ū|͗8ū͗8ū +-Q aɶ aɶRd{n #OSY OSY y;[E dr u^b ,>u^bKms@J'vcjձI&^ձI&^#j>`TS إ 䅬 :nQa 04~yR۔ Wvܫ+4W %S^ csKW4 iފ)n ޜh8 2lm^Dm^ m^Nm^ B0 B0YHrhŰ |̤k?Q|̤k?H 7ikp]a`" ]a`"]a`"Sh~ hj?=H 狉Ms sG |K)g*RTGo#7 7rhp c晴(晴C晴Qլ(} 1]S t1]S o.P}oW aDTvs@=M C@=Me޳yCsk IDN IDN (IDN fӔ,} v0;`FtCnSD}sD}kD} \:=>ٙ (>ٙ v*D B֘ $fIT#fIT#LO=E* vs`X0OfC|\ to e ռ RGcL$'@eK"Yo3?!"Yo3 g"Yo3  mTBGlY&ȵg &ȵ&ȵ&ȵ&ȵ\fQ\fd\f!]hN `ߝ7vR&IR&lǯ7M lǯ7MKkv KkvR *:  ^j6 ^j6 qE&ns0(|.b=W!\=W!\ (m 3RR3RQ3RC8WdC8W^e ^e ^e | !US7-B6Z;d # d c撲.. be_ Uƞ$UƞUƞ %'k  %' 9>RRTZ~6Z~6bջ]bջR+bջ!з "wRdwRdK9nǃP) YfD e>YfD mYfD 2X  nlY >  | |D #Pwv ĹR! #D, * ! #D,j "4 j"4 jR##|$r0W'`-dޜ '9pY(O& #)(~L|a*1|8 *P;]s +.>Fj,XM,XM $,JY,JY[.`Q/e붼R/QA (?P.Wl?V[ Aj!¦jF[/WC H&bJH;_K?$HUK HUK ,I( E׸?JG=i (J& ,JER% ,JER%K*,!Kxvq D'Kxvq D L <?LQ_ LLfu (Lfu LfuMr_LM7X? NSz \NN*SOop/"[O7l O7nO7P )1P )1 (P@XHfPcS PcPjFusQRIO RMAL:SJRS[rSq T BTozUiyrRVHJVKdHW L0(Yt[BY nX f#XGvxN)K O{ eLO{ eO{ e C#dtC#dC#d TEuCin1 BGKS s^s^0?0 (Fh?UUPhU[W$W$W$3n H8&Γ$T{Γ$T{dO0r ,󕃙'G󕷧SL y[ ty[ aߨHbn*HbnQI04QI04~G-v*| .`!v]$Rv]$tA@YY(=(n i^=Łv^=Ł |igΰ';w:?󽔑Jy/?4& Svtoh~O;t ~O;0"C%  -IDJS7V 7V ,7V à@H ü# ü# $þPqJþPq ĨCS.vt .vt] .vt.vtX wyvIf IiPZXPnK XPnRi[iS L5˼*˼* ˼*"`Ps旉jxOebT3R a3rR vGAdj*;;v*;;*;;*;;LfEk, IWC?Ѝ]Z3&Y Ѝ]Z3& Ѝ]Z3&QЍ]Z3&SЖY~ c+Y~ ѭ[t.sH Vjt vOr~!Ӌ;yӋ;yjӋ;yb Ӌ;y > I\k[#ZoZZ? h(ƳՋg #լAg **Nw5؂z^f?K$s=TJ iڅVR3PR0j 0jݷˮݷˮq.eE Vp_]-)XSÂs[bZ.kbZ.t=qD09~ cL\ bt;ISWܚ3}Izd ~wq:FN og \5?U8:- ٜJ ٜJ 17(HPo Pog M 60,X p =p =oՅ졑?tRPdB 8pG")?Z_y̹% 񳸐-̜to.VCd3iuj"Kg?8Kg i Kgs-vC{6KHѴLEHѴSHѴi<C2ug 2ug ,2ug  A59N21,_w21,_wG^M,! ;[E;[E`s:_i|{Q?wYJ`Ku }{` (ɠ =!-]23j&HKX gVw V/`z i/ QQ 6* Ǻd|sJRZ# lR]G+5]G+5 =[C au:suz/n#?z,Qu rB; 5D͒t҃$ZH.҃$ZH_jb> a BU \ S Y ؁Zt !?  E~P? [i  e@>N ">Tl  ">Tl 1 Ły(V ,_˘I ,_˘ ,_˘K t  t   /  / | | ՗ -3՗ 6LdQ^jRp3%A✄<\A✄<A✄<HA✄<* L z +4/!zP}o'NS+ ( s5 am m H9 ,,c@zO#p-o 1w3j+ jt{? ntW: >: >:>;B >T ? o֬W Ah|c:z A?1hBUBBU+BUBU$BUD-bޒD1?l OE#=zC36E#=zC3 E#=zC3F= F= G@GLG Go!GH/bJIWQuJIWQu JJHg4JTNJopK8yF>y KA ;g tKR NKR NsKia3<Kia3Kia3Kia3|Kia3RSKia3]Kia3QKia3 Kia3$Kia3LBڬYb LߢwH5M.e+ M\PMčOCN[SHO^GRO|+U?OcCI ORQ5hRQ5hR XXR0LfbtR0Lf ]R0LfY%R0Lf R0Lf R0Lf Rd{ 3RRG RqNRqRS6ii;LS6Ĉ WSe P T T U2&>s UaV!rSӣV!rSӣV!rSӣWK WMB*B#WMB*B Wu7oXAe?XAe gXAeXvXHwRXG ZL%c $Zb \>Z~Z~$[F1k[F1s\ ]hI R']hI R ]hI R]hI RR]ҕ? ^MYQ (^NGR| ^dTTaT[S"v a]m˸ a]m˸a?DJx[aDvzfaR mc޺Z[czdYrN dYrN lfFcf爭Ǖ?h3+si$|E[~-ji@!iԵDsk?Crl nuslIՌmX$!&qjmX$!&qmQomک n!Rn9B o[ߢ'|otGopU?qO2L@4rpr=]kt rXC DrZ' $rZ'?rD thl~th%u\M "uV/c v/jQa& v`#v`#NvW#vnv@/:z v@/:z v@/:zv{$?v{$jv wfKKYwJx%y8nAkz,(ux{' |q1|q1L}mA a}mA X BzHj BzHP BzHp9[ p9Ql/C&\\{ \\{ #N`􄮜m 9j\ $Ra8eR9?)` gu L {Yvaq Y3 q?".5:v]5: 3Ua3Ua CQ%2ksF8YaӃSE>+h`=zXFRIT+̨jIT+̨ mGN Rt~J;j[)[1 \ `  XKKGMVW sO -S\ I$dB1MN4dB1M+p]pWF/ b $3LiK@Y2!0  F\ e[{6 $2.wXS2.wXOzCt/Q[ /Q[ # Ϳ{ xut +N4T'R^a , `Sq]O:"j.O:" O:"h̐P̐0Z}m((D| œL | œ' mNnp'ss'Y? 'Y i4c /Sc/KYt-GEH-GE-GEQ-GEL_;U FUL%^L)-y9tz&o}Rq)Kq) Бa>vfwG`bvas Ob # Y eR[GvGv(@ɡ (@ɡ 0WRg {gG޻a ÛFLÛFLR.bEx $j n/n/a,S8<~&5PO g@Pdj5ۢ?ڪ C #:2fwqNJ\wqNJ ʔBPJPJUAPJPJ PJL*ѭEݏ&*ѭEݏjix B [6jBG1RDںPfDںP (/%DB9 Z2h^qRVV\ƵN ƵR[Qb- $Ѓ5>t=sЃ5>t= ( U| M?ҤN M M W(O ӳvUqkӳvUqt ӳvUqo;!!s! !Kv TՍn.xej&Սn.xe Սn.xes Սn.xe YeI $4YeI |l}57vg>eN{؄;i=  7nU #b}|Nُ ُُ ޳ۓp څi`څi`څi`dڅi`RE.2 ,UE.2 SE.2sо'!qO;?ܔx>kPܔx>ko NN~3,e<3[ _$.#* cm ' #m ' i wЮI b}[ [ -皏inQnBT Yh8[" Yh8[" Yh8["tYh8["곳_׬ N6]atR }PS}PL}Pb7?k蚇 >r>P> %ސd %ސi %ސ , C<=Ltr rV٭';7O < \'< \']vJG?N\>L7x uJxGPZ姍j姍?.Ƚϑ R͉C} } t,r5( 2Z2Z82Z2ZL:;NQF:;NQFYiE)κ>_:>_:qA<sǫ^]mz%N c%z {Po jjZjjZ?HG?oBQEns`(jcu  %ԮK\E$Le-\xL u u6· ;.8 ;.8R*蹠*蹠%K۾si08 X| DM 'A4 Z j= |8 F@+?!$dBC~%]o$o$o$hVt Uquv10W#y#R,? o?}0s%o?}0 ao?}0 qgnR%3 R%3 i; ;jϛ b  bja5uʚ ga5uʚ?(8D ,R(8D c TVX)#-$C2B`S <,kF f̀]2f̀] (f̀]tj۹Ɖ ۹Ɖ.H.HjL%X s 6  `r( `rR k * jl?")ozK&"Jv"mآz"p S"p L"j&o"3/B|"3/B "3/B s "3/B"h#њv?$oL $oLj%.}V)%.}V)+%.}V)-%#&,~F>K-QqCNL-QqC.& @.ƜA c.ƜA /8{j 02& 0_8ou 0_8ou1gY e?1gY e $2b&b 2br3>+  3@ud334 5^ 5O n5^ 5O S5hW 5hU654 7 7͐vm9p@ 9ؽ7;o.Y <::5 l~>LvWj>dwFg >@Qb. @Qb.t@T1z^X@f @*H@*HARDA -AAkB?W_ B?WDȺ~?DyhAwDi@y $Di@y Di@y DDsEv EN#E. ZE1a+QF3_WFaB}60vF 4jGڛGǏH֝ ,Iq J]FYJksm[ KLK٩%6b K!/<K vK3XK3XK3XK3XL'M%pn_$M9+\ M9+\ N=ᾮo~Nj H]? NMLOq*'O.[&òsQJ6 R#wy+s5R#wy+s:R#wy+s*R#wy+sR R#wy+sRwe) NRwe) @Rwe)b)Rwe)Rwe)jRwe)Sd;pS<8S<8ST: $ST: RT! Tp7k TF Unan=XUnan=/UKe^tdUKe^ #UKe^k UKe^sUKe^ UKe^ iUKe^ V{VH?VHVH VHjX7YX7 \X7 X7tZVd)Zzx [͆*j<\&\d C\@{1y-\e.lv\JT ]8 g ]8v ]#^w]GY_& c'_C}ܨ i_C}ܨ _c" __IFfLN`3S~آR`AԖmvO`nȸ 5`nȸ 5?`2kbR`2kbaHh aO. ib)9! bHePNbHePb>LR $c& d=d %b dԯes ejQ\ .e h -~v chUwjnD[ , jS@b/jMMz)jR5 j伞 T jAk{VqSk{VqkF:vlRlR ,lR $LlR :lR (lRlR m^`L ms nWqs nWqk nWq nѥubol S?pypZM~ >M~r^Yv?^w.$Mu(3 %FͲRE'd&V2 aOM6ftl֮\?Qܑ\5Ҿ$z3 eҾ$z3eSUH?>ʺb H?>ʺt$ Ps$ Pt$ P D&mDVpVmTRlhAc# lhAcDlhAct2h\8D -2q d-2qYo 5?@r@_r As$Ђ_6G V5 #k:tsW?v4w i(F#\q#׉ &_{  b$(.\|b aOg=LI@W#;% aY[ !J ո# %ո# .awG(]G(]Y ZHRY ZH Y ZHtچs؏o#D $ o#Dho#D (QcQc" "" +"D3}S:,S: $*S: ŵ6t a@ŵ6t $k9p? k9p k9p *d@ a Vͮ?8*jm A 96 ${8@Ùh ,OvPqU?b$Q.D!b$Q.P j|1yvD1v?gt 0ڒ Y1η5 {˭0 ;Vfy I0?) [ w]K~ jD^^<6 .!H\ śN^,q^,qjvaq(mN q(m!2DRNPNNPRNP NPpɡ/R  U=lZ ^^ i¸<Q jw _ŭAIxƼwBkSLI ϽLuYs uYuY j\2j . (L=9@+z%ϲf#V< aO#V<t#V< !=Xe$B $ Xe$B  (r.>RL\L\R b S T[Re&?3 QF ;c , A:؜ ^JSp5B $odMij2Mi (ӛ\ӛ\tkB}ҡ h3q h3ZL h3 1sY 1Y 1t \v va wzBT ~9 =Z-u-^ZFI#FI#Md+VS+VSlR"٘"٘ "۵j"۵t@l ƷpmƷpmsƷpmƷpm I:C=v:3 u9L3 u9S3 u9Qi02{:^?~t^?~ ʂi4YVf} $A { @R֟up $Y0+b $Y0+ Z /9l i\KSi= 5 P5e/ 0&K 0&d!X\!UĶH !UĶH |"9nh\ #+A@ =#08tD$sٔ $G` $G` $AیH@%s9_ \ &,s?8'\) '\)N(s WgZ (s Wg(E1KE(E1K(E1K (E1KQ (E1Kd)J~)ff9%)ff)ff+—\ǝ+$I:*R.+$I:*+$I:* , hv , hv |,`ꅴ?K,`ꅴjG,`ꅴ i,ƀ -AY.;H=L0#s|02C:a04 _ 04 _ 0!1  1]( 1n}v2$^0D23eFH23Üݞ2SE9NˊS2b0 3 Q3d TR3^3SEd45N<9B63*:S63*:$63*:63*:7aiD6;7dM8'LV 8[|?9S9 9]9M0 ;ں< @IX ,AHzmdA:p/A؃4C60CC60C60 C60 C60 C60 C60C60C60Dp{-SDp{-LDWGDދxEVd EVd , Eb{ . Eb{EagED/U (&E&:NHnIM?Jt:QJet%5J^ J^sK!oLCE]He7t]He7k]1 )]1])G_Bgh6_A $k '_P p an*a bH8b8Y?e{Me8ey_ " ey_ ey_ ^ey_ ?f|?o]f|?of|?ohD6h/n<h/n< ah/n< sh/n<|iL>|iL> siL>jn<~}QjU/Tk89 k^ ~L ikә0Jl+ e jwmq'.mq'. mq'. mq'.mbXmUQ"Ko]z j(pY@p/ ʵ$|qVt#m<]qe)T{qwӐq/ vSr V-erE rI04'Njr2t7r2t4r2t]r2ts\% t;פ?t>E&Ktg?Lt ~x"ttU |tU v"#h(v;_RwUD@ w $w?x 9脙x'R?x|uExߑ ^y,0A y^v zMN{E?{OKt|F0|0=J|l[uO*!t| c}H4JmjݳN?jݳK jݳR}?FQ%>dbCm> cL?ٶ!XHs c(Q U7e3:fERfEfLh,2jh,2jh,2jK%P?~P?~U3n53n53n5j3n5sQBy־pWڠ ^#^# лYֳt#1 g#1 ZcB!Sm *.U!I-yRI-yLI-y6KYF&j F&j F&jsF&j e?P ?PU?Px'}Rx'} x'}DlRSDlR/DlR] DlRUiHiH\s\RUtRU aRU X!+~0T/K7|^uƃ"uƃ"Duƃ" uƃ" uƃ"uƃ" 2 s8!] O %d NF .TWKIЋXS// CvH?+^ZY>?y,!v(:?(: (: [c O(Z [c O([n!q9g /WU$ g.@t S MH c ܳ0WeЪEE Ayh{B0n~H~HQG*tG*b8x]89(8x]8 8x]8 e8x]8iDoijiKH:<ғ52_b44 +cx+sbt1l1$~ sU'sU'jU' K}{ O NUV#UV!b !b aېTmT 1nk1n8}/P8}/pH^w"jx~'ު^mJ.MгHF+Sc#N25N25 Bsef>RPQQ PQQ $:6 (PKZ m PKZ +Vu.ScѫLŨS riQp (rU`M"Y]n ]n |]n $MMCMN$*j{Z|j{ZE  C *$,UEe텹rG㋋ ! 7u 咻 I * *{  x ^Rill'Us"}U{Pwu!Z> >qT sc,Y V ]/:)tÊaát ֖v̩S6Dů1} ů1}j ů1}tů1}  qq0 }x mwLk&mwLtȂuOeɛj@OMɯY@ c. ai[Fv;5݃js݃j0b 0b 0b y> \P.>.>Wi#tmfO ڥ7a b!݁e eݐ}bBtݐ}bB $+P~pN mS0!\7 ; #C -lgGPNG<4_ 4}Ұ?{Wb{W➀4XQVK @G&5 cZq*\ ,n1Ud40?L}gser \gserCSO7(?"7(7(BDZOuueq ueq? xVeqRa:CXue sg utg utR6g ut4'&& a0<] 0<] 0<] \0<] \ߜ ߜQJ+amv;,S _,zQث8?|>υ?߭У S߭У-I߭У߭УAq dDBsR $<_ځ#QtG?[? ([?)?4) B4s|5"eb("eb G}SQDEn6 I𙜬 sXZ sX[x<bSx-L bSx-Qsp ^F| ,QDYɲR $ɲR- ɲRT<;ޱ9LT<;ޱ9pg%}Ju5P-rv -rvS j#S  ;?t555E Mq?#E Mq E Mq i/RtR<px=$۷B~R%rE ~k< Zj>] Lb2  ]G? h [ .τ 4d?= 4d?=j 4d?=  4d?= i 4d?= ,1 4d?=  P& ]J*a Z*aR *aKփ c -2Ɣ`vBt :1'L\ :1' :1' :1'K :1'Z>俶cAGm18 \'!8i<Ki<i<D [ D [ Ҩ;ҨҨҨҨfҨWY9j}R "o<$2*0  sJCsr a dE $ dEs V /]Jl&|p}ي[Zj wgF!9\P"ęP j"@l #BG>l$wYS \$wYS$>e8$ĔE>=&mkR&mk&mk 'U $'Ut(F (?ka (?ka (?ka *Eu(A*Eu( +( +T"- ,Q `,Q `, L],遫u,y?,wZ-Vż-Gd.3t/~ c05e0ET` i0]C]RP1# 18 `t2v3q _844n64^ۅ}lhL4^ۅ}l g6U֬Z8Qe 8R! 8R!;lj?=9xWH=AQZ =C 3G9s=gל=gל*=gל=gלK=gל=gל=gל>@uͲ $?O15?O1R?O1aAW(}tAW(}kA?~JjA?~J iA?~JsAFܜea e AFܜeaAFܜea Aa#B\OeDU_' 6DU_' ,)D*e D>5wF 3 Ftr7c,[FN$G !H8h@a H"[;H"[;#H`^2 aIK))RI+ Kb]ҊtLHqL(vLFL$Lcޛ Me$oP'(A|P7u?Q+ \ Q˗(z6YReNK Rs!R%[R vT%MsT2WC T2WCT2WC T2WC eT2WCsT2WCkTX \U:5$VKX VKX VKX ,VqjV՟-?V՟-?WT pWT pR WT pLY&. Y&. Y%>5-Y%>5Y%>5ZդfvZ:q( JZWN  [mdC\!!'\!!'\!!' \!!' \!!']ZBj]ͧK^w:E ^w:E^uJ ` Y a62y a?hS a?hLcO~ q<|cO~ q< fA/$ fϽ.D = fY.D$fY.Dg_} gmxB ig\Sg\S hR"L i]6W7im j./j$9^itke~Yke~ kO. l 56x^ ml5- l5- lZdlKmT`WmT`WmwѲHnFQp?ncn pEy01^p^h ,(p^h p^h p0 rOfrWRr]u7:swSy?&swSy sD܇tj wEtj !us*Cus*us*u\# u?v"ȯYwGNŽEwfdrw6 xOxrxd sy*ch (yCֵyCֵ yCֵz7FzY(n;zY(n;{+>a{AM;{+C|1t&|1t ,| TZ|+6t`7s|+6t`7 |+6t`7d |+6t`7}l䧖 a}d-2 }3]~BMïab_Q L $7OJi{ iJi{ Ji{ gz,G 7]#'K$ \ qޛaM8 G{Yqv?Ƞ^?Ƞ^[ 5[j&[ &[[ i 3|-Xr3|-XKm1,n3P\)t~ ,at(}!/b/F~c$KB~ a tr -OW-O-O+*0Nvm ?x?xYOtsURC9b dsndsnڐ^GRڐ^GP tNk,  tNk, $ tNk,1d7.:7. g2M!_CRNe$ae$.)ym;!i O=˅W H$fH$f1UlsSs$dHsue< l@ 1vE@OY}ȃ~*^KF c^KF f>F1 Ԁr*Mf 0LMf 0SMf 0YǟeNL#+e[B!9y<vڟ_UUv mt䐍 ^n}' jȢ Ȣ $ OZ'+,i"i"V_S V_SV_S߳ L4 ) .Y뻘y4yP 4yK4y4y4yR] U?֜9 Ԥ >%kJ*t$%kJ* &v;+&v;+Y>V <>VL >V&1:>1:>?։y_s m ;> n`h.h3p_0 a'_0t#r\Œ=#r\Œ=]MpKY.>=? g=? n#ݰ)̂? Vs̅pԒU̱ LyQk Qk[4cNі$Nі]m i]m yCUϺopЭ i ę=FЫEp (гN b$T1Oݤ \NONҋP ӷ@ӻa>Ifӻa>If \.>v.>vԨ2g߽jMSFX>qCs>qC bv n D~ ؇eW:]O7  O7 ف 0{Ɛ4ZƐ4ZʊDʊDGmqڲu7 črSۄ`Gӭj{G (`Қ+j7V0QEn\ -n\ p!E Y28N |Rūh|Rū|Rū |Rū |Rū|Rū|Rū (AJRLAJSAJ AJLAJ]n50{Ze -hE˝hhE˝?|W !], !]B\ ^)B\|"v ^7OJ V} &뼟~bE8>'_ "lb GJ n GJ nChSO^ ac/m !x; G b)&$k1H sR&K(KK^g};$![O s $![O$![O ($![O$![O iD@gnUy{3hFsFI;#d᭗[zh|f /%S//%S/Q>A=s3_&?3_&!fqCuV gCuV CuV s]8Z jOFN?~OFN ET  >S >Sp!1E!1E#t9= Y; PgH.` aLa Dd E%e[ hT ej|̫w w]+9K ]+9rO3d & l*.Hv.H i<zD3:M>` (M>` 7s L ];k%|C IxpL ( IxpL{4t.Wt |T+_ e &,C? b}}2 Oj ߗSL& ߗS ߗS x3Z?tZ?] \s+++IDJvw2 (kwC-N kwC-kwC-Cl Y Cl kCl Cl he:]bŬ8~ryx\~ yiK 5@ ( )c?AS7RauMkJauMauMtbF Is6,z N\k$ T\k$ \k$j`AȄMFGoPȄMFGo'ȄMFGoВmLje iF &: 0D &: 0 &: 0 &: 0U&: 0&: 0'oDs'oDj)xS? +SHt+iu ,Y |,iji,u4qU,u4q-uh. Odu .k/Z'|/o~%j/o~%t/o~% (/,05;4 \0x a 0!= \14S=Z14S=Z1A&v$1A&v$ 1A&v$1˘n},[2>ømu 2Kt,|j2S_Bt2v;Uk)2v;U5Ti6]j]6 6]j]66]j]66oWwz?6M 66y*Y6er75ʷ$ J75ʷ$ 75ʷ$ 7=p9 7=p8S 96UIv:<:dp :dp :dp:G) :G) s;$;$;A$w ;A$wj ;J3<4PxVKP< >qfj>qf ?:..% @]JQ@]JCAT:?B%)#NBn8p B aB;jGBdmjC5LJkDLP:{dE2uSE? FBFB FB Gm YGAsG?v8GH c = HW HWtHa(]8HX?WI`JftIr?NJ۪fL[_KXi/LA"vL 3L *LRikM;Nd`[ MUYdME#M[@Nt&wsO#mKv[Oy\  Oy\vOy\ mO%7Om9Qm7;Io Qm7;IQm7;IUQm7;IQm7;I eRNFRfl_ Rfl_R8Rfl_|SN+)1 aSvsS#FysT*T*S T* T*L T3%d< T6T3T6TT6TU[KVuW$ WuzXvf35 sXkd Xkd m XkdkXEȜ5v X@mbU ZI6O.\N]K\N] _T0&_T0&_AZłv'`32a~$8#[b7@-R(bq9q gc; nc˓$HB[? c% dTT: dTT: dR-'id VjeP,eMeMfv-=) f V# %f 1(vfRYRgC[fgyfh1d' hq_W ,it8>XiЪĩtiЪĩt|iЪĩt ejNw! jNw!?jMP3Ot jMP3Ok kY%? skY%? l6gEl ,l6gElsmfʒTpmfʒTpo1np7 "q.!1-q&0q&0r=d % iwATtwATbwF=*?wYzQCwYzQxYz^ y`+T sy`+T |y'yb/l -zONO| |4 ^ |I}CΣpd}00QUY~gP1?~gP1 ~#:?~#:?-@ q-'Rȗy} c>v 4& o9L@]W$\Wtt=8$^6=8$^3=8$^U939393Pպs]V BdNX+Bsj ?O*ْ {v0vͷZU)bnR>)bn>)bny$ ,y$y$_fʛb8 6$Ę\Pމ-iZ-HSsC >I \AN˥$AN˥ AN˥AN˥K/GK/G K/G i_M sBHR T2k-k-jk-sf .(SM̋%?5&5 IWA SB"]SB" 4SB" 3M%)ej W??7I* $~D?x|xRx  XVVX? XVVX 2"Hj6RS鿨 鿨7)7) V-+e  %>NR~=U #mW-l W-lq@F C:|Bv,[}2c JjGNG~3Q%׹CJnG8 ΑC+I+Lڋd ڋd Lڋd aU dRwzfk! FY2qj>FY2q? FY2q "FY2qFY2q^k! ^dBbBDPĮ2Sk( JSk( Sk( r-RHrj Hrj ċ_L$l? Ś] Ś] Ś] Ɖ8r -cE ǠJY j +@ $ȶFv0ȶF ȶF ȶF us.Vɑ6?3$T1  iʊM& ʊM&Cs߲ o@ o@D o@R o@,?, \, s, ,vb {M= {M= y&m/"q(CZ[8H`MҾx d"/IvAfA j8IxsU2 aT4 gtQ +go a .hs.h M^4$>4?$>4$>4$>4$WS%"~ %˓aD&7ͩL&+Sj(Wrpn(~BmdM,)@ a,X>,X>j,*] ,cXgs",cXg,pZ (,8 -!~ -âgnn-y9j/?xЪY0,$mZ0,$m0_"C5 0_"C5|0֬t0֬t &0Ѻ R 13e? 1?H.2"3|632vm$F2vm$F4vj74vZ4v $*4v 4dE4G[OvR5v _6w~6w~6xE$6xE$ 6xE$ 6xE$7N6w 7N6w7R,_R7R,_ 8o1񶼯 8$G9 6kg:9 6kg:d9@AE% #9vz7$9vz79vz7Q9vz7D9xf\9xf\h98{CWy 98{CWyK:U͘<"ߌ^j<"ߌ^<a<a <a <a<a<a $<a ,>M R >M L >M Q ?>,8 g?듛 ?듛 i@$PM @, A^=/ BpF CG 7S)CG 7S) CG 7S)CG 7S) tCG 7S) C:cUDȕKKF^aQ G嚾ĦGdHuatHڍY(P HڍY(P (HڍY(P K^D&kLb +2LrgHLrgHMfMfN-= N?JO9|NPJW ?Qc)RUO~#e(RT$ R+nI$R>$jER>$?SvK;d %SvK;d SvK;d 1TZm~G1U J W+Y~m^ iZbSZ*Fe j[ӣzj\(K)-o $\CuzZs\UHd\UH]fh= ]WC9]WC9K]WC9 ]WC9 ]WC9]fb ^"/ ^"/?^"/ _DKtiRaAcWwfBEcWwfBXKcWwfBj=c+&$MSc"H8" f/T)tf/T)bfk g/5:E gCRgI|h0]U$h0]Uh0]U hoiѩ #iw tiw t$iz9j f|j f|jx4jSrKkmfk]6 $ kmfk]6 kmfk]6sk< aljf^RlEtmb#" mS xSm<? m<j mFjnIƘbnS΅?pǪpǪZpǪRpo͋?hp# KpTNq|q wqqπDr.<&rRJ rRJjrs) ,s6/u@ev$vJwww8g Vx{*?x\Z y:e y:ey50& zdûRz9Kaj zd9d?z8|)c{Ht[|;;I_|rϤ|v|RN \ |S9v}=SQ}:}뱌8C}뱌8CR~{j~Uqn ^~ơ Z55 T$6w9EN$c &G&tlrS*rƪI \x# q6 #\ 7 o 7 oj 7 o ,#[S$(ue: $(ue $(ue P&UdqJ )tX? RT>s| (rv| (r ep sdV.V)R.V)R .V)R.V)R?H} K@I3Tj@bRy ?wԒ"АU# ,YjqL Jt {{xS {{xS]l5" l5" l5"tl5" (svb:B?n˜?x!wp=Dl:R!J93)[7!MD B #aMD B c]W?Tsiz`헄3| Y>9Wxv`Aj~?e M* M* B;ָ?Ix/?߸l2,s8 i&<(PWHCR WHCWHCWHCR8xSR8xR8x<R8x$8R8x#Iw jN NNg\ 0: f Э608Kg3"?Kg3"s"ow Ӵ2GE77ΐ AyV AyVB^O ۄ6ۄ6KUIYy˓H" $Ѡgb,Zr:񨬑b Z $was SpR{RpR{R愮R`ho 9!qCbl ZR\cKa;"%jїj48 }=?ƭFN?ƭBRvw a^q^ߝRؘ+ZqjHtٙX2 $]QڸV"AO 7's۳l ۳l `Ľs r۳:$iT@D~$ES݁i׆ݖ\$8b0"~7 :n :nJ}L6-@YB(́Σ _KRL_KR_KRR`sl֜9h֜9h ŻQqMꦃ qMꦃ9cHUC9cH9cH9cH9cH`v[F`v[`v[`v[GіvRP?Bse|tQe|td-/< , .G8V ,ViU?" 鰶^7 hڜ @Хo =#?MwePNxcw]   G,m &KXN?ZQGl(YQGl(Y?QGl(Y #•i}•i}Z`zYe~\t* *,~*,~M GS&oJI"Bv *claf$+?0$At%z  .B lvjv* Ɔ=eB=}#B=}f !;}g?PșPRFf4X ! a X !+ d+ c+  + + Q:|#) eJV  H4UZ .Y Bэ+Q v z+ a ^=}? s[ehN s[eh cl] cl]j cl] 3P  h R2a) KhlY w|u`? w|u` ,-1d}R$E#K5RBld`r iOȩ ħx7 \mpv,mpv,=mpv,]9mpv,5mpv,mpv,U  ~)N ~)ꔐ r}l s؝e ֌ !7/_/T (c/_/Tj0>FDJ hv"Shv"Zhv"|1gQv:!< :!< \K0oivg x=Ӏvx=ӀSS S aStS eS m?}EX%Xv s`@ҕ0(Fn #)#/ al?=_6 jW,R0o'? = =- =Q .,!Pm?",tQB# -[#^IZ#ck i# G7$, $, ,%& %Z%%SM% %%%'^-'ĹM'ĹM ('ĹM:'tz (FP p?(FP p:(FP p(FP p (FP p(9?^j(9?^j(9?^j(9?^j(9?^j) Ĭm) Ĭm ,)>-%t)덅YW))L+~.) 2+~.)t +f ,+f m+f +f +HC j,p[k,p[t,},m[,m-A/k]} 0;OkZu \0%  0K/Y0̘ a 0̘2s#}r_ 241?38D <3w6|4zt3w6|4z 3w6|4z 3˦j4кEb5k-v7A:} 7 e 8C i 8ϫyn9 ;<)<24q< vD=u=T Do>^ʏޅt \>lkԂh ?(?+ZVR4?+ZVA # sC]RWK C]RWK C:@* "CK |C+F["C+F D͡BD͡BYE{DE{DFG' 3jF1WGAk[HQC ,XHQC:HQC I#Vi I%, cI+9T۫?I+9T۫ I+9T۫ I+9T۫ I+9T۫ -I+9T۫ iIDID$IDIDfKi-8??Ki-8 Ki-8 Ki-8 KPKKKKM#4~vM(>$R N=8N"Z*Q5jN"Z*Q5 iN"Z*Q5? N"Z*Q5 N} "O%^>kOs#%rrOצ^|&Oצ^|Oצ^|Oצ^|PߢQ!]T wQT%@vTǟQ {U߽튦U߽튦UيmU\e/SU̢gU3-pDVEUمWWhgjX>L6 [Yܮ,ŮZ5#3Z5#3[U0[7Dp i\ ]%s^ c]k#M$/_|(ZR _8_8Q_8 _8_8`23 a#/3oPaHF @7RPajo+c?dUd$Rd^ d^ ew V'/fcָ[Rg*; g=z \h*-8hj6:iV> -j2~P koǝ {slcm?0nQjo}tto}tsoDqN"Pq ! r& vsWsВF at4 vt{dz;u32v#1}v9f= (w$' Cw+ƫ?$wwrTvxB13 x9 yqŁ7z z0-z0- z:ߦl{L|ani2 ~_R&~_ެT9;υ 9;υj cR:"wyy^y)qvf(? rEpL7dNTR7dNTL 7dNTy|^ O!9zIO #VS}; (VS};%hU?  ?s?x_ s?x_Ls?x_S0V 0V U@: #5'HЅ+HЅ+fHЅ+R55 f,U-^j $BLHyBLHyZ؄ .o .oR% R%Lm4 *; ? BzD=A~0 XH(RݻapY64p64p64p64pbN& >*Ck \"D$Aa ny-[ : JC#^BJC#^j<.pWҋ@!xa$JXZ;Y" ^;; (o}(R|]Q (R|]L2{J`j2{J`?`ˠS `ˠ `ˠ] Z@> $Mau>*j Mau>* |!ļHvHkouYK*?GK N'u/ 6R u/ 6R =+q\~ ̃ŨAѻP` da # i@ ZHfqCЛN`[2v s/7 /7 /7|Uݽ?yjUݽ?y?Uݽ?y mr;IMa R|ߚXRuXG!wG. \4FNod*94 1?^tV5 m^tV5rݟf=f [U[՗S 9U[fLRJG.Ӹ•ٴ 3dE??u#R ]|} 4eSL%i®S6Ķ! ܶ~C&Ԓ;T>%rZ>%rZ*Ɵ"wRƟ"wt XP + Hć Q,n=Rjn9'v .M .M \.M?ʏ ?Qˣ  )H $0x0 $A*\!DϹ>DD0`c7sг4k9m9mSܑ RJ\ J\ )s BU FZ յ30n֛Ȕ%ss֛Ȕ%s 1b,jZH%"2NZH%"2}WvmN>К] V>К],>К]i(ٕltTtW[l3QC7C7f @y: ۺEWsfsY ܭSQ vXy]|j?$pzS;Z ;Z ,!R r |)osܑ+LL ܑ+LS ܑ+Lܑ+LY=4ta/ .>U >U R>U  >U ISElYm x$ -顊]ZI@xiGdr s~rC֒6~rC֒6Lٻ jn;TAxLtF?tF tF !@Y!@ r!@ @L 0 444KDDb~(0[Id53tcd53bd53"I,- 1I,- i I,-Yɘ8߻fa͖R͖aPk~|Pk~ $lPk~ Pk~Pk~k?l# xv $9at s@rl )v sWi& sWi& dG' dG'rwNrwN ^-H^-HD^-HU G}t G}kƚ ƚD2l|9tȡ ȡ nfN nf7_v R7_v !@Ngq}_H! Y<=MyZ{K}~g  )!fdW7ɶ\g/ \g/f_fP(7Y?%(7Y 'd,\J+ŸF5t \+P ӯE  ӯE t ӯE Y!AL!,dn?!3ݮv !!!t!(D $ )!bTv.R)e1/j*}Wt+~",olUdB,;\-Wl -klV-klVL..޺iJ/SA=H/)5BW1/)5BW)/)5BWR/)5BW0-/0'509 1YZ&[Y1YZ&[1YZ&[Q2 ?2<63HfκO s3 Y <3 Y 4$h51ZWs|5s@6"6" 7S 7^[ $8h1ߞM|8h1ߞM|9 1u|9d)9d:ua;#HHq;. -Lv;Q9 8;+Ds;+D =q+l>Q??? wYt?E"է;?E"է ?E"է?E"էA'OjBegIBeP: 2BG1M ,Cfr[?Cfr[ iCfr[ Df=$ E;K GA;K Gp H SjH>Eڊ H>Eڊ .H>Eڊ *IIKiJ L@s gM.RѻKM.RѻM3=M3=M"WbNAO4v3QOfL?O[FOCٚNOCٚROCٚPUોPD(8PD(:Qt1a Qt1aQ!L Q; : Q; :Qحju{sRcckT.X0@dKNTn7: ,TN`U^Ok8V=Mfd[Vx!ήf Vx!ήfVW9 UW9 K X>IF2t?XB eXѿ@HvXѿ@HYWCtbY~Y~[ \ee%1 \~\~]5=$A ]=}].Z ].Z ].Z ].Zt]ŗr=?^10Eg ^10Egj^P0)S!_U7@_U7a:Rae $Ta՜ da՜ c7wT c7wTjc8t,,cJ(5f?cTl^ojci5;1ez}~ af#f2Y{v f Df?fhtE?h_2k_?DkF l6sRl(و l( l( $mp2] mmŕ do$ oYΦb?oA0pzNl pzNl ipo qZ@i qȊoa q5ށES rIW% ,rIW%s'ދr s`Ks@R@ jjt$Bt$BLt$Bux=v"a@Nv;Ow37j $w37j xن xن xqyA K(yA yA yA yaB_o|yaB_oya#>zi<_$vzA'dxc{n{1C{1C{щGR|/ $}6>N%}J}B|+?~9dR~: P6~wB ~wB ,~ ##k\}a6VW t<t<$]CvԃGv,ԃG (N.WDQFtxoCJ/^B7ic{ c{  lFGL \2FGL sVa/!dR -RM(R p{)Q #iK\MCڤ #$o a& t⽊vI [N n0|{? { {sp^Ҳv2p^Ҳv .NjAp XW~#/"k$ "k$"k$ǪFW_  tΚ2. H%k *H%k RMlVRF@\SI1%'g]t҈ -08"Q4$ +4$4$OQag>KwL\wL7wL$wLwLwL wL^=R ^=L$ zqR"7o0?6R w6R wj6R w*L3^ヮI_)*c aI_)*c?p9s cʨ+wr<1r<1|h!J`?Ӕ(.xmivgcƅn sJ-NFYfLhFYfL ^FYfLsFYfL \FYfL|_?]jvW&9E ,[ a0Na0 as6* as6) as6] as6 as6 as6lzA9"9 9 lf!m lf!m lf!m?rl<]zA*hzA*h|cEwZ $4cEwZcEwZ cEwZcEwZcEwZ pkZ/!&"#'j%[?+ҭ; U? 9*r]?t҄t҄M=NM=yG6 ?#KKۢf s/XR H3Tj2 2K吨 I_I_KI_KȏKȏaja a0F(S |F(S97q 3UD@? ?Vp (Yqq=͹}<3 (*ڙ| *ڙ ę7Kę7TG6RRwVC c$Gp8YMq'8YMq'?TgPd[]v Š$'Š$' –SL–SÛy}ir>U@h Q@h Ǣ,t3WR Ǣ,t3WǢ,t3W6Ci (Էu=(Էu=(Էu=R<(Էu=K(Էu= MEvM ,ʤB鈈 ʤB鈈v7n"Rk"Rk̓cRwwdwWFwW=wWDM)m{ #c0-.c0-c0-ʹՎ1iRR+}Mm4VWm4VWYΔϜ?ϰ~=P ϰ~=P 8 P 8 PNbz85hM/hhM/ZhM/hM/ hM/-еH*T9еH*T}6RҐe= eҐe=v;Co GI7 "Ӆ\Ko|o| ,ϐ ((V?S`?  &:-ك"`ك";ك"Lك"lB1 Yd !L !pO0 gܸ( la``92la``9? ( ? ? ?R nXnX}o8}oRү*S{ x ߏ K|꘥ G\RU w i.NN # .q.Z. `((W])s}jQfK }`+ WaQf@K!f@R BU Z}d,މd,މ`n' o` mo`v99Sj)-~0)-~煈P漳E t?"Ev?w= $?w=sKJgukKJgut)3;JZ 89Jz ~ ALvyt-ep9jN#b?T +V3 +V3{oQRqMhRqMh2\< 2\<#2\<> l~ $> l~ > l~ > l~$ W#>W#>SHݣvSKQ# aEmr¢`, $Mp 2aҒ?amHRamHGH :n!f VVS f VVLij*Z oXs[so #l@`Yۮs`Yۮ (8bQ(8b IWDo " co " #w׃h]w׃h @uٌ?߂|Xxq?X*&#tf p R {aY_OY_OtuѨ8uѨ8/uѨ8QosY {ps{p8;VAjkxLO kxLOdvFvFvF vF(*zh34 vi7vivi N >w?L3G.4 @:#zt E֢<1/P-] T uǹ ?5 uǹ % uǹ  ʵwp "ԛ+EEO{+t7J"? à àDpti ,I8dمv مم Ks(j5PO0j(/a(5(/a(2(/a(d(/a((/a(j(/a(Km a N?E#nb d޹] d޹Zk- 6{ܾ 6{ܾ i6{ܾ ]VB_ ? Y ]+v քtEt 9 L^  V0d ( { F? { Fs"Kꋹfh$F᫂ j$kV$)Z'0%pvN)%pv7%pv5'dE/(*UC>K(nt':9 (̳y(I#L);q%?+,~nt? +GbN?+#"#+an{,t!}*-Oo -Oo -Oo |-Oo -g\gd/..wy/@-?/.q" /q?/Ct`/CtQ/Ct /Ct0!Ks 0!K0R0 0H00 1R(1m2-,R2uuBS2`/ 2?|4|j05MqNEs 5wnZV5wnZV5wE5ghψ6ˣm? 6&&\ٶ a6&&\ٶt8?i 8}ACM (8L]8L 8LR8L8L8wq9p\QQY g9p\QQYs:2x v (:2x v?;?;-` +;-`<j.I9i9>7DIR >7DI|>7DI ?U$5q|?m^Mi?m^M ?m^MD@-@Z! )@Z!AYUOQAyAyLBZ+BjS<#Bc C~{'C؈ß eD4 D4DZ‘RDZ‘Dᔈ8 Dᔈ8DDᔈ8Ff{sl-Fqk FeO5] FeO5FOݓG1); IH j"|Ic} JiUJٰ;[J'Kt.KT9LBov8 LBov8 LR C4L 4 MW215oMW215MW215RM%ÎY5M%ÎkM%ÎtM%Î N gq&'N gq&jN`6P=tP$}.?QSRv%uGRT F (RT F S$TK3\DR9TK3\D TK3\DTC䣐T>D T>U/. @0|Z'UtcOU Ut38~Y Ut38~ i Ut38~tUt38~ VքjV萱vV萱-V萱]XY| XY||XY|[fX0[fX0 [J<?\ݗ8 $\ ZG\漴s^qga^qga_Ovj_o^r_o^rL_o^rSaPIPc7k;bG -cf8LdtIn[hd栶csd2Ƴ ea;} i$ea;}s"ea;} \ea;} fkC# frXs fGvfGvf $gѓXNhqVhMLbh^=2Diz>^H iJjVmy_jݒ\At6jݒ\As k)" lNYaD m -Ċm -ĊaoMK|oW<v oϴNCK mp '[cYp '[cYp '[cY p;^LW p1[Lj qz/ ptqUqӺ? qr rrp"6rθrθtvm\{uDRuB ,Z v *[vkV wK{-IwڀS ixiVC|#yۄ+?yG2yG2 y{TP̎ z鉟jz鉟 (z鉟z鉟zW)J={:}F{s 8 {s 8{s 8t|7 ,| ;P}kP<~7i5~7i5[:Mh?*x? x (*>t *>j0  CI(}y 9&[ĊB A k/l_nk/l_k/l_ J$JJSZ ZlsZm"Tj4] {x(- ({x(- ,HMM .HMMԇ_&֫6_Qv * gx gxi (  :Yjd\R :'RKt +t -C6\gv1kO $ܲkLFe  &Jt?͏L9 KВ_4 sKВ_4sKВ_4NaoKvW!lAs ݝJ }䬃f(5c5.Ĵ ''@ە a''@ە me|Jme \a!aѼ[Ѽ[,Ѽ[Ѽ[ Ѽ[n>55:ByZ L\RϨ^/rҕ2 jďIďI ďIy2 y2y2y2Ly2y2Ryo$;J? yo$;J $zDt[U~:2(XŶSH8V R0?t0?j0?sЅ5gr-9tMmq| Mmq| ,걦'4 $p$p$plEz#rcf? xF4^t*=. *=.}U6 1}U6 UT%]T% }]3N׍<.FN<.FN ~g~RS}70zQ t< t<t<$e~8 m'?S̮ Vs.tUdD&YIS?t vO?t j2!$|M=|~ B.:[B.:AB.:sgl:?x8)v;V?LΥI e ߅ۭoA厐 a KR Ktg0m!g0mg0mRb , b jϪj OGY1EQ- r} (S\j伓^ joF?V[!+ntvB@Cg?ov^9v^9y ] &? EE+ Di5C |i?2db_tdb_t[A9N:4:=T'UEzj UEzjeȓ eȓ ll ,'i'i ,'i'i 'iJ.p >.v?KbMm'[⟧h ăX 8ăX ăX [1RJNh%JNhŜ-~N?*w [ƶ Lj´NebsXj- }wwqhay -zvր$Ίyo4K#g[} /=pna=pn?IwEӏ7ӗtu,R*R1[=7_Hd%JC iJC?ف%T $ ف%Ts AB 4DYjw-g9*\i0 ۓsܤcݑJ<ӟ>ӟ>S ӟ>ӟ>Qހh] ހh ހhLހhZހh{s+E]QRߠ֎eLߠ֎eRߠ֎eMߠ֎eZߠ֎eAߠ֎eS6ߠ֎e*ߠ֎e ߠ֎eK|mUܖ c&Sz&K #ɯI` $ɯI` ۫8fqQR=k6WM9hkB~ wL# n09 R09 509 K09 S4sꠑ$+ ۱vQ a*Ei*E[b2)? AoAo @|@ ? J a? J $Y /E?Y /E iY /E yMvyM yM^:\ (^ɩW[12&?jr%sjr%jr% jr% jr%b_'e$<~̙DRRDRF5HP wNwOCmӉ =k.=t@aSyM+ !]LlU fW B`+va6'< a6'<vAtFLdb!$Yb!$Y ,b!$Y+b!$Y b!$Y aU/?U/ ~R0Ѓ>a jg)gQ:4#FQ:4n=!Lvjws4hFT#˶3|CM/oM/o M/o 2M/o9I:\Njgk'jg jgjg8%u*\`  ~J} m KUjD KU (= KU KU KU  v6DFF? E|& lPs  Qv _ƣI _ƣ4d:C d:C]k}+')K's+ i%{/?q0A\^N26Uj",}t Ky\|d ] $̜ i/NA?ݭ DwV=c=Ņr=jfbPhR~O Xs!K=UЩ:/nT; KT+>[{c2vENL=p?- CKm8 CKm d%vks @< R ur"R"^j"ӱp j%iuW& ;i -&:5' į`9b't'( ,'1u(I7od]d(I7od])E%t )݇3*#GI*#GIY*Hm"*'o%j+w2 g +w2 \+S) ]g-!kR/ֆg 0S(dM1aXZS 1&fRj2fxŗ2 2o2o4"H& v4r+=aR4 ,44 m5 k45 k45Ò}Z66'xM8\ ? 8\  8\ s8a@9N9qT:sUKj;&S?; 0x ; 0x;mh*D;mh*D;nZ8j;nh =~t= r2= r2>7 R>7 C>7 ?! U?"`?8Ei]?8Ei] AjQAjQAjQAmCr bD⍊|tDMRD( 2EFfEEL7\IEL7\!+EL7\F F^ F=rA $ F=rA F=rA FdF D FdF D G"rŦG=3Tj߸YG=3Tj߸GOHid!B!vH.QH.IplJ\S(I{! J5͝tJ}ӓR LFEaL]' )M@"vrM@"vMޣ8WFNVatNc/ Nc/NYd NYd Orԥ jOrԥ O]~O]~ cOϡA` iO,QjO,Q ( P=.;QP=]NQP=]QQ6QQ6R(B\mmCR(B\mmR$R(B\mmRB,BRB,B ,Sl:_ S,SqS,S SV>]S# " S/V-T:ΥT:ΥU]`"CU \( VߞVߞVߞVĊt c2Wo?3XH`QXH`Q Yb^Yߌ=x Yߌ=xYߌ=xSYߌ=xZTz#ZV̌ZX" ([ [  [  [ [}H1q [ϡO]\ia^rN _rZ`|k`7f`7f aCBb5ϰfLhbmbvPNd &cddE[aRdE[a du3sdu3g2:㣿Ng>99m hF[v]hF[vim+< jK ja)>Ija)>IjK9 l<mтksn.5 - o^{ $o|Do|pbƜuq9sq}? qNI qǑ. saeiSscĮtT0tT0 t\Rv=8N?cLv}v){waO. ,x&yxDjqg ixo y}zmy}zmy}zmy}zmy}zmy}zmy?y$0Z y$0S {Z.?|&eTI-|3R|3|u骻Uv|  s}W/MVs}he {]  !C /Q*1Gѐj@im srcu?-9u?-|;ڲ ;ڲqhá9/á9/R ,A% ,A% ( XHat+!jĘE \ĘEhĘE D[gtR6Sډ9jv, v,s8dXpUt=pbS Tf Tfd (dsd iY +P٧N *|{6lL*-WQA+k]k+ 8`O=(A[F{'(F{'z;45KR Ru5RuRuދ[m!8tL KZKR p*Ym #Lj#L e#L $HD{"v]sRjqY $ qY ,qYZ3a2 , 3a2R)R)C' PcqPcqy\0 sh gDDR'XUӗƢ~ apro*""L"ۮ )pү \6p]ƽ˃AwךaZeN6oj*dS,xs&ŤŤK Ť )=| ( $3EQEY,Y,XD? PD%XHX.X*VB};C?VB};Cj0} R'ɓt-=m-=m[a;s[a; &>v k U= U= a'07#cʜ$ѥJzt _*7hJ?QhJ ^"`= cD+j*?on#on#s on#on#Çe a Çe $ÇeÇeÇeAY;AY%AY AYNʭerŹ2? q+N>q+.Ƨ0w[LƧ0w[S^Kj2^KhǃiU8 Ǽ 23Gf 3^V # c'f~?ɉa1q&D+[! \ 9}Ĩ\XWwaҗ 2 ɊW͏Y0>  0> L0> ̈́v4Lri&4Lri]4Lrivh#N38^8^ 8^?8^ i);ϋ1cE2) %_lUè?P QD땈?g gQ6fE,U|lfE,U #JfE,Uhֹ yָ `; ,خȮ* tG";Su15 ک1L(u29 Npv' iۚ䬉~LkCBW9kCBWBWLՊ} v ^Aё;t<c?<c (F!WO1UO1U8O1U O1UQ 1.Keo me jjZyS#yFi"Lw JTRk TRkTRk ihY=^ 铭I t7EYE 1E E aE oTYoTZOsa-i shNqX^3 ^3 ^3zL9G=OR=OR =OR=OR#lJ ^ ,MP[(J ]I$]׳Dj^G[`U^G[`ζA7s+ζA7 ζA7 ζA7 iE&hej!4UNN,v!N,vN,vYn!8Yn!Yn! ,Yn! 3U8[:E w\p \՞} YH;!/w6sH xJj:xJ+xJBʘ (A3sR6 Sj$hj$h , =E~͗ XFrXFrXFrLXFrB(̱^z(DY ӝK ^   G>?JI$C`^# -BD!l BD!l \BD!l =z 44Z Z2%I t a5| =ls  S   J. ;:N  ;:N  ;:N C `C C C j$2F\t,ZQf eQf .Qf -Qf Qf Qf$4zu"K?5Ѳk??5Ѳj6?5Ѳs ms_ܚ% $ _ܚ%_ܚ% ,_ܚ%_ܚ% _ܚ% V= sV=?Dtc( a`Dtc(s%Dtc(vDtc(d)R?ˍ SZ SZL;hL;jL;L; |oq$Oi j'^LuM uM ދr\H As|ϡ/B8gjC\C\RC\O!r1 $iʓfG ߲=d *R,yXʸa \ĔT: \ `  ` !1GlHD^ a!1.~5"TQnR"s K?"rR'GY"}t"#i& #i=F a#&: &YE:v N'\ΙC'| 'rz٦t (+X9(e/k ,(84=-P(ƻK[(ƻ@(ƻ(ƻD(ƻ(cc*,1vJ?#+?h[F m,q!3k,q!3k,u5\ ,u5\ ,r,5fųZ<.q5R.+&j2 .+&j2 /2N/]0x0x0Q0^8#0j0\@0\@1Kl]î1W{m$1z 1 J_3VM13VM1$45h7 4pIym 4|}]t 4ݨ6F.$]6F.$] 6F.$] ,6r= 6r= i6I K7x~?e7ȖD97H0;97H0697H0:YV_ ; B a;<ʭS_1<ʭS_!<ʭS_<ʭS_=3 s>V a>V s>OPxs?, y a?̳@ @yЌ \ @j@8W(N3[ B^LPBstBskC\>Ca -C^AC^AC3^/C۱8? DGEmւ<?DEmւ< iEv}/EߛJ[DH?$B%I~DIe#HtIe#HjIFX eJL&vKƎqEKƎqELRLo{MAь]Mhd;MhdZNI9vOtGJ P8YP$0v P$0Q6̈NN3Qmk Qmk Qmk wQmk ]QmkjQmk|Qmk ,RIWRIWRIWRVb( S ic$S ic S=U" U<TU6g?UMX>VURW?p&Xn]"UXn]"]Y P\?Y P\ Y?о&֓ Z@>Z]p%!U[ Y[Ĉ,)Cs[Ĉ,)C \^ 8'H$\^ 8'H$|1\^ 8'H$ /\^ 8'H$.\^ 8'H$ (\^ 8'H$ \^ 8'H$ |\^ 8'H$\ʌ╦ ]dGm]+:? ]+:j ^we$ ^we_,S!_,L_,_,Z_L50d^S6a9D|a= a=ja=tartbAu]9buVbH ,d,U?eQB[fzpiwxfzpiw&f#]tf#]kf)WxfL"!^Y9fL"!^ $fankofankoh;r]tiB;v,iB; i = i = jvkf_uClSMKl (l l m {mMڄ^ amYaemͅF ny֊=!n܈. #oF ogQZogQZogQZo5oӿl2Iq q4 fqy,r2JL rZB? ar// r//?s˦ѡX .t, t,t{6Ru#!fv[1?w[w*x-jx-x#x#P x́T?x_9xq`Y?y~^+y޽S{!?{i, b{&<}"pa- ~kk~kkU~ʁ;fg8Rfg8?Ofg8 8fg8 fp fp fp?s?#gBS9E9f9fZ{bPiGS PiG4RUvqy@pbzϠ|m/n Ռf!k ,^?AB e^?AB^?AB 08Ҕ?[#Ữ Re Re* T~RNHCb.NHCt vxvxvxD>rI( ,( AWͺ`,'0Q -b/ s  Yhk܊   4HHrR)nUR))nUN88  TU/!?Pʟ'&t$l )弗;)弗; )弗;CK m_? b bMD im;;Z-ZxEj1zj1z 6@d/ q98N Ũf?Ũf iIfv?R b1Z{\o= #I7RW?εuMr&g < ˔vd1Qz' } T7O (2Y8׽8%o^ #%o^ %o^ %o^ F ]jN] &]&7V4Tvx[9R x[9x[9CzHOa:Є ))Vf{>{ m i;O_j_#ޘN<6HsaSⓂj=$j=U '#3<KH zNKH z KH z -Y(?0Q_}N5>0R= Zh1"?%]|]r]rތ9ߡ(ތ9ߡތ9ߡތ9ߡWarjWarWar War War (WarsWar sWarh]uҲoTPʿIv q]t q] q] q]RGEQ IT?EGsIT?EG?IT?EGc L i|HN$h9dCvLx" $Lx" (1T?1T $ԗKJ'ԗKJ[/y+/y+KgS%@b? _ *x!MmT< ,Ӏ`_tD37U :zR^I!?&ſ &ſ &ſ S˕\C.˨4tȦ9 ̡@1Yܿ ,|UꊖK _a; M@{% Ε kbλ dT ,ќ.}~`ϔ?ϔ~H%(dBP sЎp$ЎpZгyʲ 4s.9^ss.9^ \ўqT ўqTP3Ҋ w+Қd4hҚd4h9Қd4h -'`;b'`;t5'`;"#NX iԈzLet^ԈzLetcsլ@f8&sL\~IC]\~ICLUGE eع6E5T ,6 .SM ? ef~&Ro}b} dBtݲ?^"LyxV}p޶D8 D*{I!⩸]w&䅠Re\ $hiNDÄt޹R޹ꄍ Gꄍ ].ꄍ !ꄍ ꄍ ꄍ Z ꄍ ꄍ LlpӴN渱N)渱NK渱NR} fNAr_McV ,w ,^b ^b (&7v] k?Ds xFO ,2B 2B2B|R8 R8R8R8dCۓj]I ]I 3!VE;Tt6Djse߫  QDv ) )c}Z &)W cCS)] CS)]jCS)] iqCS)]5CS)]CS)]s CS)] r M)=9K ՋR+!?+!? +!? +!?sXAXAd^?bsjs"t  R5K R5KWQl.bWQl.NWQl.WQl.QWQl.O vr6 u J>h7S )KR*곾,Z곾,S곾,  @v{9>? @v{9>j2J(^> {?>5v)Y wkE/$EASYFh wCXsx7af - , iR O_  "ںR ]v aJ  aJ , aJ $ fAL ad/J /k ,pP a F+t0RI qD? .:5`SU2Y)Mb)MbIWN<㗮_j)?j̳t? Jiޱ1?d" "  a] c !Fljl{p $Z%Yd2pE M2pE 2pE iB, O fс]r/#4Տ-4Տ EzEzRe!ܯ g e!ܯse!ܯhdeuj deu \/Wy8]/Wy80ހ! T'C$!8k?!w%˳ /!w%˳ !w%˳ ,"r .s":ts#ɭ8$ ) $LOמ $HD?${a c%NùG%Zt%[t,DKd%kڎ%kڎ%kڎ%kڎ&lFq & \4h& \4h(8cTI ((8cTI)>eq?))]Gbz_)]GbzO)]GbzQ)C *#  #*!^*!^ *ϫ4E*ϫ4E ,+) ,snj ,sn ( -'kst \.M,RM.M,K".s?.ʁNlu %NuS#'NZ+ QO(4AO(4O(4S O(4 O(4LP&X? ePjQ3vQQـ9 Qނ Q[4KR c?RtRKR9XD? Te T iT iU~QtV1vV[VNZj$8\!WZj$8\DVZj$8\[j N \r\rQQ\rD\r \r \r\DԂ)\DԂK]m5]#k<^w2" ^\}Cw ^-R_cGa_ *sa6 7avGFsRb] "#b] ccWdTQk eR f09Sf]6ltf]6lsh /f#hhsKM_hrW chrW #iG]1bYicx/icx/icx/ icx/i$} 0i$}ji$}RiN%3i^RjBy kD-~ ( lʋdkNlʋdkQl:;EKmK2W[mb{nmb{+mb{mb{ mb{m#jn )|o(&p}S,p}Sp}S p}Sp#Ŏ9 p5&_ ژLpCI#q)*q>w r8Mmwp ,rmukKtrmukK rmukK s0T|s sDXb_?t^Oz:|t^Oz: t{q'tu- ~utRLbQutRLbuSsx(_y]LEU1y]LEU1Ky"?s> z Q1tzyTmru {M{{oa ,} qs}4Nl%}4 ?U}v8fWt?}v8fW  }v8fW ~ K ~I(  S_TA?v8?wv8 ZDSqTFɓI!?hmshmvhmhm , Ȟ^椃l?椃l 椃l M椃l 椃l iAnkjj3t& 1/7 n9d&uOFET?+avRE YM^iul&&+ ' 390t jO:bY/s=|Qj{s5 X% $ FGKvJ\ $vJ\vJ\vJ\ ivJ\yN8߯lA8!*;k"Ts99X^9X^jK&+M! M!  /j /xS؇ۥ  "  !tB; فl SUU gB*sRxMM eb 6/;l; G5<"[9A lJԧoa - --sid j󝸘QPBt 1De6~  R OAOA$: [8/3״D 3״DR ,?? ŕ } ,#q,#q,#qS,#q,#q (uK GPvww*Qww*o0?dR {1 Wzz Wzz.!kӈZO ,Q3<?Q3<Q3< M:#:#@޵eY3s/> ilNF il =>*l]Rx 9 < N`" c$B# b)b?ҙFH $\:Ösv%H" s6%H"?4%H"%H"6dhh!:?P^rӘ 9fH^ ^t' cȃmT$Q ȃmT$ȃmT$ȃmT$DȃmT$ɒ6 ɿ8PAT4p oCi (x $PL̉$PL̉?Ҡ| Ҡ ;3;3;3gCjgCjR͌ `a|zr?} | ,+} |jX+ "щ ѮPڙ xQsHjsH MyS|)[5@a~=Ӻsf #(J@ֶJ} v cb_(RL ݗ|U$R 0IU  0IU  0IUt*rOk#KQ#KQ1'a 22؂u):::s_ds_a01? 01j015z? +܀ E \ ܬLRj]7MvՑ Ց f11#RAew}[ pH  !$d  aL8 fmL?oݘkRĸвH? ĸвH ĸвH k?=9 - hwORw q 䞣lSPpAz1YH@䦃sH@䦃H@䦃tH@䦃k`^+-u|9RJ衶 ğqSFğqR]:\Ra0 a0 a0 K!D8IPxDuPxDuk56Nr>S );p, <Rj$b]CEav!CEaj!~Cګ۫R+I9 N R:AYR:AoBKoBDxe[R}Ǚwt}ǙwdM%bg!3'"ӝר 1hs? >K)<d )<[%1U?N   cu ?}|Mt}|Mkal;Nsn ˾_:#? ˾_:#޵EA i M8R{^ypbM{^yp {^yp {^ypV4DA-èi[M +y e"At<Q]oo scid-4.3.0.cvs20120311/books/readme.txt0000644000175000017500000000026211727223077016551 0ustar oliveroliverperformance and varied books are from http://chessbazaar.mylivepage.com Thanks to Marc Lacrosse who gave the pointer. Those books were at first designed for the Fruit engines. scid-4.3.0.cvs20120311/books/varied.bin0000644000175000017500000550212011727223077016524 0ustar oliveroliverh9HutuHu?_u+ 4,C^ .dNkM P#Z'fBK4֪S e XE(6( cJp Bzjަ <5R ΩP* 2  YFR3 ”vRbQ otV aX\xN X\xN m D$, O x<% !]!] n݋ ߜAû(P(Kym@W #(SR(Y( >C> l8 lj# lt l l (!;gݐ#"< "- b#S d #Ї a$|$&_H7&i懃 'eH{p6'tRn %'xZ(In?)⼏Q )⼏Q*m!*O#*JlN+c^3{Z,,|Y ,-& .nj) j .xJVR  1*~/ 1L:ªI 2@!!D 4+kP' 4U 5!L:r5PQ5[5黨G 6a76R 7}[U[9ہ|? 9_Frh9kCm'd :{ ;%uv ;%u;Tf`:zj;Tf`:zt;;/ xt8d ? Kf@cc. A]uJ6_Aw< +ABg]? jBGD)BGD$ D0'{O Dg0HK Dd)DE)E('r cE@a *FI8uv F鴠xFJw{ReJsgW LM,ڒ LAlLAlM*,vQM2d[ N[O*O*c}axdO O|rNPK?yJRv'RD1RD1LRǴ|UH$fR UJY\ VI t"WX](*) i XXMRX(r7j[6cP[IG? [ ]kC^4^L\{^ܔYrp i _0vuC&_]H5: b@Amb_(b'%cyϊ&jhc-<Z fP?!ag⎟g⎟Dg⎟jh>K a?hfjh!j*䤨j*䤨lssl˲.niVzYn;co" +!o(96_C pV $-p`'vpCqU ZK qeV3qeV? t}齫xp@~xj?y=Fyqiye5z}|W9zBh z& {0JZb {0JZ {h܏f{v3H s{#cS"{#cS {#cS|$]@|$]@||;bL a }f , ո$3tո$3 ςbՐ[MbO GuYs @*tY# iM!B/iM!B iM!B,cuEsA[$1L[$1S %,6 %,6O.!  :i7 ge'R!~7`v A cJ cJjcJq.U+z|RDB' ,H g0R(:p?U ?U 0&! sH} ^DK''% Z47 tO.2&S}|K)Y <RuH" Z?ӳH!#ӳH! iEiA]EiA* @tS\ \Vx;dz͟ M= KqS) Bg/$w?q}rϠ Y d?G -(? 0 ӕ+T DPsDP Q]tz?K, 1?E$Vb m Edz p|ϥ p|ϥ p|ϥi4 V@?KV@3V@ Lɯ@ $+zO1+zO1R$ + i(*A  NXn JKQ |]U( =Btc^S!D0M_N5u.c5sy5 Yw J.IJ.I|_q$/2\ ץH MBiizR <-׸7W[SW^ Rv.lkˀ|-&? .}mlO,DdR^^6dq\j Ϊ"]K a>C .* ~D8.* ~.* ~s}4Rs}4Иy\ ѯ1t,N1 N1 ,Twljwl wl4a at)ښJ|{ ,{K~DK!+sQEQ e]ke]kKo I ; e8[C $e8[Cs&e8[C e8[Ch}Y't }Y'kB"  Ok 3K?&Hޒ栍-*C aM*C LC*C Z ))՘ s(H! wz}' ,wz}'8b& SMG*|n. (!n. | IjqagD,lqQ HG3!sK\& ny- J W E&Ǻ7\~Rp+Y0p+U%_JXJ}K_JXJ}#_JXJ}Y_JXJ}gCV6p" c#͑d6c -SZ+jH|5p7Yp7Ydg@|2)Ӷ (g/Kl8s7zQF œoFx vvt 0a,5 `KP r:3;  q b g_?)`I ӓn+\ {Z&\ {Z9r\]U/a[m# 4FK 4F ? ʴK h  `'v_  vnO  R+O :m.,c  <7R  tiO ,Ẻ̛[q! iՐD$ՐD$-Aއ-Aއ-AއW9Q*z/LĆ̍j/LĆ̍ *ōt # (E](E@b5WαaϏ << 2 ֵr\h)mj  'T6f ެ2 Oo¡q iz#1 ^ W\ \!ab =!?>s!s1ݪ \!vh("D|!51 "ݻQ#Ah##S$ }|a &2&=&= ,(@8M(sU *l g*,m *~a B+$7b+ucݓ.$.L 0^-+e 0*o1%+t ,1R Y2=ˆ 2=ˆ3in 4';=>s5UQR6B: (79E"A" :27Gr;U3Q\r=X ˸=X ˸?Vv @}l A~ߜG> A}c{!%A|RFQf !A|RFQf B)ZJB^Nn3DPsp &DPsp DKp ; D[ `DBZGPHRGcm?[ H IPqw.m I k IBVZ IBVZjJaq;O? J0u K"$LjڜmbLps2 eM H"= MJķNWu[OL O P;2bwX PhV"EPXj4Rj>np% RJ"T?ВdT܃GUZ)! VEѤYn׏-hB ] H|s]mr. ^װ%)iR_؝`/ 4u&s a~0 l ab >Nb]u.b;vb;vb;vb;vc͞Nc6[T f_!كbiBVM -iH1iH1iH1j;D7ɔj]>gkl^1R(l^1` ms>!+m/蛡 rn}oK2 pU#Nmp&% q$GxDr!7b`(ir%$EFs 8kth_bwbr[/xAo5y,= zG JzG  }$q}1)}x*۠} M}Bљ )4Vc} e4d+Rt72%ؙl5{o$`t 7%7%7%R 7% ey؅ o:SO Q+?c1p Z_$ 2 f '$nq9xo%W/?I/?IRTFD6[lnຆA z/y -z/y "~70% (Ǚy_L ?݃YR{feV{feV #M SjS"? 2LQ O#>m V:p6^?grS H^.$?&/V&/ u[[Q V|dYKԛgcSIN! z=M Sya o$zAf; -lD@L -lD@d O) 2F  t \S" MSV aOR aOR"`)5D)5DˑS#ˑˑ.SdvC.1 0k4k4y*bMm؏ŊmYw;?n4|R'};nuvo!+j6> ,PR+O'ބ1S;9ɕ %S;9ɕ jG/b~: :h3b$0Q ǔP?Iwh i,WuE^ \>VPm s}Y c\QY RQ }> ci]·s l5g eEJ? ┶5jĢnIbRN%{9}C İk߉[th4 &iov*G] GPPٞ  GPPٞ  sʃ< vXe\$  'kRB+FC RPar⽏C 5 ϱ)R7R}<ٔr7ï[n#9AMLZ0%!- -8٭fFɛɛa<RWW1  >Ӯ?D6!h ?괪  @_?tsf BqR yL BuL8 -Bu[ C]Uot!CtLCtXCd CDbn3 Ew'Ew Eo'L Uloj Ulo Vҭ|,Vҭ|WRFf^# WRFf^#WRFf^#WV}zXE8| #X1  X'mEYa Z34FY.[N. [N. $[N. [N. \J'\< 2]8! #^? ^:z d{a@Gd{a@GejM/e=F3eOUf HS fVhq f:vNg4T2[hV=hVPi8dDi8dDi퟉%l/hb l/hm3]L mRU.Ymt! nmzC-Jsm@I;n4c$ nN.nOdih o !p54 pn=?pF#1X[s gn"s.w{&[sC4sC45tPjt[y t)X^YUu u&Tu5 g vGrjkvGrj $yvaz7~C!z7~Qz7~ z7~z0{_={_=N| \~A~A8ki -19G%  C| gŁ- Ł-؛oZg\yQ_\_\_\Q=_\ YgSt}Md!!Kf&\~ sRtnՍ <=<= E|%j > , jLжжжR R pZIs@-o   | VkX se{ j95#,? S . 'Og'Osv<:#_# Kgzj6 x4)|k1 HwDLh;_ =h;_s@/[^nFK _l*mս3I% 3;-H 5 np jt nѥ6o2fC ;OdcNd5ad OU !yD'[ @ڷ2D[JnXLlO$T= h2} #  DK;LB $ ##7#]ϰyX ( ҄zNɂw DaB_ S\[ ,Kn aȥzq  kj+|~R[.+|~R[ ƴ1& WDWD^W(^W(N7wOuʪCegX kK"Sn.[ ͠,o#/H~,'F l'F s ⪆/ \PLfQ:Ru hӛ|?%Hf]8 =Ր e: \JRA̋d!?խb,EHTqZ: qZ: T(kxDjkxD=H[{ H[{?ϥϥ \ ϥ ]z %UW/7S UOJoR @:SA  >xZx] $sR  k4 -g2C  fy I `?+ ` \ }^5S! }^5b@# [T.rpTN1Fτy #1[ňKN&Z`%6`%|tc[[Juz a1P m*ho~ X'Ys'Y w(v8  i  s#u $<*+$`OY$`O& &)ڮ#'isr[(;fR(;f)YgI)YgI2)YgI)k n i,73O (=,73Ot9-\/oʗ/ {L0s# 3b!# 3G;a3.]g4]5T˖C 5q@ 5 @S6!s]X?6Mn7TNv8h $8h 8h ,78h (8h 9^w` $9y= i:gl0Q:ɪr 7:ɪr? ;. <3 j<3 ? JNJNJNKJ/;eKD SLd9{L1)ZsRLЊyMIo.T M>YNq O+θŽO;[  O(- P+S[ Q<R Q2_R4̻eRiTKfWBRTmu=Y Vj`TjW:>/9X&:|)?"X&:|) iX&:|)sXNfL Zu_[@ZSb\}'$\`\`]I,_7]I,_^%;p_X_*m+`.,`Gv] #`9R `~Qc 1=+ czfY/ du|j du|j fW :j f3kMgtoYgto$hRk T m'ވvmuIot0muIo (muIo nn!d<0naOo|EN ioownpT}zPpl iplw3j t:ζ,ta ita tQ{l t)͜v8t?wez$wezLws]wswsQwgyΜYxBY~h xMXvxs;KZy>i y/z\1{ . v{jo{3< |9! }}o~Z ;;K?P`JOOАX;<^/>;<^/;<^/; n  ;{ Ij]DvaDu aDu aDu ,aDu aDu j/K MB޼ 2j& Sc1aipIfS0%LUޮ#6#6$|=ϸ=ϸp]ܜ  )T)T %SA%SA,P hm U0sAZ_ JxRZ< It. 3<RtXY1 ߝ 5u$% ?.! \ $˖/[M4gZ >˭A : <j31z_Q 3n\j8(:7NRVbEmiߔ:`s?<[4 ,ҷ hr P .E[bԼE[bԼ_TCTQų.A h 2QojQoj%si0Z^a. !a. a.Rl+;a $N΢$N΢# L֎<;? L4> r!glUK۝0C;) $;)s;) zr`Czr`=e_<Y _<|}/LtD? s:w ^$:w ,:w $:w (0{  fG!-k3z+ k3z+ >0  xRFF"ɅWh|tV?T0Y tmQqOA qOAqOA1< $ lWH@  /Hm=`5앩N K?9q%ZR 숕J ~gceYNėgS%(($z-\t I >).,W (únKUɾ ] QK{˩gt? ΄ yK X?/s.|NOVϪYIЩRNtRADѨwbd%S` #`\+g^xQԎQD :ŋ_%:ŋ_M1DM1DmZCdmZCf a f sZK5Ѳ"ӯsڄځvBS ڄځvB%ڟc#Y1L H2EL&_#FL[83Œߠ,!YiYĄ#h HՖDHՖDNHՖDQHՖDYHՖD*I aC ^QQyE+VNZ 55N~?S ɱs3ҏ'R=O?~|T?^Lu^L?^L ijC^aKv n $ϑ?&)FR”l (/:mY P>k-s0)ddwC@!axn(8Lz/1 #O#q>1E+:^f:^ XFsXFtp rR C1 ;_Xu "& M&1 kvFkvF $Y\N/C? Wcz$ -e{ /!_wY  qU)- qU] ͤ'-Z  ej  |…' //b -A | [P?qM# qFYD  uט FR?n $n +(T] #7jJ9h^ J9h^ _=/_=R(Q"<_B6?B6?Rn'2yrK m2Ec7 e  @!^C -"v"v"vs "v "aR"aR]"[n+ #) ;, \#ޚz9$ `{E a$P(v8Cc(4Ya)5w[ZL)5w[Z)e*WO+kɩˮ<+kɩˮ+KJ+|-'K%-3.jR0Rg h0fҰ2sWvP D 2*_m"3Vh /R4_pR 5 ̼~d 5GJ1? 5:3 .5bW j7Q*O7Q*Os7Q*O81~<8\.9 58\.9 8Z8?9%56v:AxdJ:s*e:s*e:s*e+:s*e:s*eD:s*e;>/);>/<:ZaY<aj ?hևP@@Qv"dC1wlbU ChdtChICh+DFOJPDFOJPsErK_hE,r $F#7GZFvGZF eGZFGn%O +Hmg "UIו eAIGIh KASYkMy1L" iMy1L" My1L"Nʽ OihOr,P!RQP$R/lPEI PŒi)Q*aT| aQ*aT|YQNׂ7eQNׂ7QXW QZF|R%ޥ&RpöT=CRT=CWm/YWhW<4nEToГ \ ph(/ּEpz{kr *: r,;|tBEtm7"ˋ ctnTL1 - tr~q^u6||JxPJ'yZhfypez$?E@>${A{5 |+;]|+;] \|+;] i|+;]|@=& }Xv΢}p9Z[O0s[O0pp m ~[LH"˭| SZּp.s ּp.I' R-5leq1 !/laLy2 (te' $mH i8\T` nJ4,#t0ȵ`N"*r取Et/Cf/Cf-Is J #LX? fW qO#@5zc{*hw "" lL@  0`3[KNO[I(NO[ISNO[I/NO[I{EM&7_y c7_y ^;m FB| :sS$1װ3;jCBD mNs:TR~DU8 % ]yj AՏލpY.ơQLơ38OdXZ&TMXA &TMXAB2K[r;6E?[r;6E $[r;6E cQ" ȩ'Է6f?/ X=\f/e::U;kѦ>h)oj&Ӛ ckX V }ɾ}ɾ}ɾ}ɾS1iȰu0r-j# iUxK6ѝN #: $\zt-#H0 _ Ɓ +؞@ ;L@ ;m;dƋ?m;dƋ s5?(vv_ZVˆ_ )(Ct- |/'G Ƶ4$?{cuŐ X<KKũf9v It+݈w 6J ))03AC T&HY[pgK)iќ's*\Ŭ + 4vbj ,V* c-n? g.W| ,.xA/6{Np0WM$S0WM$06tv2L/jP2fk4(A6^?x:#PF+:V'D<>W?<>W ;Sww}>Sww}>S w ,% x9 u0vy %8 y %8zȨ[{4} x|c/4|s _j}$| g2}$| ~nh4 1CD7<K [ n ,}pK"}p|{G?"+LdMZn;Uk< h[7NEgJq48CAh\Ah\ mZQSUS`c[|+ ۃ[;3 s\{&rSV rSVL$x{ųs $x{ų6x 7R.Y 5 M}:Njaz_ \9zE(>QX;mokf C"a^-r@hgsFlh Q̈t@h  bn`R hm MF`by".Oٳjd-0" ʰ ,6(syEu+،TD D  8\,a8 oZL 69B ÈeR@@ f`@ X ņIKA9? %L bzfu)YfC| E .xa0F!CÛ2zk ~^Ī adƯep . sE.0Ǟ@-# * S 8j8j GCE[dQ, g+Αz˰Ĺ_̨IF ϝϴAW ,|3vѰRkm"RWK-? r:v׊]ӑZ#Ε>=/pk x=1n@Kն a֠:Z hY)FV ?R5!wOڡ_gA,@ F ݉݉Q\Z(\Z cSh[Shl-}W|/:B}p~d湋L湋 O 0XpWRtpWND$}Aw C>L F7dPF7dPF7dP KLS)F%B V50b Z[(i Z[(i:^R RnТn  ut{ |)LhDKd Jsh JshoOt}\NcϕtcϕRcЖڀ ty <wV $#'@ #'@KpPx6Y Y+ \x#c ,| swں a*rS&z:#쬙J g \CI !A<  d\4 +`З Jg8KC'+ #Z Ie] jUQF 3jC|C jKX=J ̴jfj$R& -AI C# ( W:Em0?nX x y/ 3Q:Nx_H8MeT $."-@s "S@D"S@K #K`7 !#Y#J=, $i[sb$i[st%)f) %L]&N;R&\)'rv)E ;)ΉQ_* %.O0 0B+- 0צ;K0v0?#R#2 N_?3%3%40M–=a$4b~5n:{5n: 5n: 65>t 65> :5SxS};줡/;-]L;2k<: ,wumm l*1l;l*1l;l*1l;l*1l;Ql*1l;mB Y mB t mt*s8 mt*s mQYns n`1.oRor2or2pzwcq k@  q];r; d*4sTw>t"oi tD8=A u Fw7Dw7Dx^A{ Y<  xc4Y;;3Ao]i QrjT? .PWolo ܙRߦK 6~ J{6~ J{Dҗ2E%,>ȋ X^lG%THgH v  m +cz AFB%>R iT/)kُd1bU|HHCR Ӯ[6WCQx[ m=[]Άl V2 {u \릸6"9E. a0F"N*e" *e"t3h"8قkML# ML$ MLS[W^.fW^.fQ l=<(wY7sN ;&]d{G I-2fdn fdn ]T TT@-j9Hce@[Jr&PTF"3hkZ"3htECs; x >=Yf D>=gy]()/x/xKi/x4%$%  VXAj ײjs¿s¿>{+>{-U-N|ʇ n $Y7sY7 ,?k/EbtGGN>_Ն 3 nQ h/%]}r]ߏ0|$ |$ |$ƽ11Oz@|ǚ.ǚ.ǚ.j $j j: ɏvLP ķ(Y>r9ʆ ů#ˡO 2n!Y #HY cY^ (40_NQ^g Q^g  >tHat ؚdԢPVit՞}4 b*JlÌֹؘsz f a1f Lf׻&mv٧N ?$ 3-ڞ] sp+_8lI l?۩6$v"_rދU'J^f߉E~?,ߐ>\߲sT*fbi<Ei s` ~Lp=adu "sWcv5LG5LGa;[pmW? ;[pmWk r4JE] 蝀XXaR,_bؿOP$aU37]+AcRm+H9Rty7?D `k4T| s`k4T|``k4T|I`k4T|| `k4T|  W[Tr(P; z R z  z  Kx |-wDѴjF )x5@IC6Ypٸ0㥴FT=R FT=Cdy#ddy#d y gm -B2,o=,o$!ϳ ~7x]РTmObeM!CvF,u[\lMZMP~n ~nڴ7G@3DG@34G ^[Ւk|`k 4 `3Yiͥ &iͥ f0x^^ _gOD {G;h + q2h  ]U?{J-&]LJ-& 2y $Bo%\! Tqy a7>yj7>yt8-C& j91l :}e :Q %;|qk<'o L =3閗?Fak @4d #APwb3AxZ֖ tBUCѿ$ B,D Cα:DAn}& mDy EaZEaZ EzAE6D |FMbLF0;GZ9˅ VH"lH"l (ISԗJIW@ hJ_"L"B$Rs L4߾d/ )MX# No#v O S Or.7OLP L)PSäQ2[Di9Q2[DiRS+E)RTQɺS a T Q T QK Tq 0Tq U{j ,ViHQ~ViHQVDaRVDaVDa#ViqW_C^[W_C^Y Y[>;m/ j[zXCa^(4 ^(4 _2_Jn `ZHZR|``a]by6j a dl^i* f[wY jNJߵRkKlcU mf -ni@Y #oR)To\9Y?pj" pd2pbE q$A!H q\j] "r$n rEŔ8#r&i {s~=)s~= u{6b wi x6X x:P| rxg ?/zEFt{@ }(~ۉ! ,}BT d~h2Y'~h2U~l ?bmy/ \Nb$!w )o^^Q&$' Tގg  Pwx;Rh?2*b E#!E#!EUEZxR yT7YzyT7Yz4zt<+{Rf uWL b !b b t Nu/xpfSȖ ,6Ȗ FS9 N8ܯR9!xg[?Jͫ Cy /0{sm v4j)tj[ԫ|q (#JlK {{NyE #fD&7:xfW6`xfW6 xfW6GvA9 (lխ C&t eC&tC&tYC&t (C&t C&t Z_dZ_d ea0 Ev JcPߣ2 r_ \7x>Rao R!Ln_oC a oC RI 0Re0 Ai> 0XC w.6TH'NʬcZ]KAHI{k< ]G L] _G71 cpNYYzt Y(y[ Brհ$ լPwD;pJЌjS(rS(,S( Wԍ eN $':vN<N<PN<LpN<S5ƍ"X  Z 6#$XjRnj!zH dnƙ| pa (ʻ艀 m!Τ=0+ Qu9Qu $|<jҠ$  ϭ < < <D(R@`Cv{֤Hn kٟͯY V  =8  }n  I  [KNyD@z64_9߮i%5߯t8~ -1Kۆf*MHdQXZ^K{ 楪t[ 3+p8=c !@@Ev̯M [ [ 9 [[VSRA9cT + ǾH~ +y O&b !D!Zo\ǁu 'z~v+=+=Y"H8.: (U \L8`%s  5 ?ZGvЄQ}wK*M , XR@S%҆õ .jqr{  58ݣ \ǸScC&؇?}jI2-| ɭoV  u#u c^  \aN ~UoXAet.?_/A< /A< A< A< A<A< sBxlvm mHB m mHol q^2|rJY"sv3Zs+s >\ s*pF tSTU+:tSTU+ u0Jwh.x@DHy3[* XYyG m2z ud}z uK{\υt {۲ ! }Hioq ,}Hioq }#S }#S ~S#v`S~wxC3p ~wxC3pjJ L X-H${^=RN >Z$ I G u\v \ "B8 s 'v|'d(*M/vW94j" zspI "넅 P7w# [ .s\hGrcA9 r  >$(w/2䫭?gvӴ{OTU8=- Sk ОOdt(K a N+ EN+pGzk|pGzk Eh) ]>Rw # 45Nf FY aE}P  >{כValde 2F 5e 2F ];#cl?9T}R H4j; -H4j;8_ktq tqN Zմ- 23 h:ABPh^R[me /or ̦o ,̦o a'dϔ\Ttϔ\TE8>ܾhCQZ>$ sLM mLM LM¨a]VWk 1Ib? 1Ib $D}K1)%eM2 %eM2 90N K1 ]xgq ]xgq ȅbYS"Uh ɭXʜci`5k 䝆[#v ~K;!́ 鏽  ̵~fcͅ* < NwH9Wn  Kԭ@3W׌_Jҭ/pUQәP@̘L{%׮ 1 OqNK T׌]0ql8 eʨڊGO x+#! $, 3ܚҔX~ @0QnA B 0딛` 0t ߦ e br bYu 2K|r6ej(|r6e[cdQ{WeE81znV'c t k" 30E]0Ed6F?)r@2Ld0. #?)  颕g鸭zrh8:I? I: I:k/@7~N7~_ߺ? Mlzv NY 8 =REnE =HKj THXe6T" , T"T" $J@91I J@91I }1e2Ԥ0ԤԤ '>K 8U @J $ @J  Dv~Y {VR 3\a ʁ% Wb!s ~ j=F oLW,# TEh 0GL e 0GL |!x- ̐nQK - ? }I: 2 Qb  {F@9# n N ob| g U3r U3r ( b b -M ,. % pL $ +ט] c\fL @zmpR ߩN _. 5F] $ XHF $Qc#F 3 Q5D CRi h{M _/mR ha,N ns 2nϿxK ?bF   @Sv3 @Sv3 Ac]3IC 4 Aך* Ba}[ C$X7[j CMָ D#( D D E  E N F.d%vg FP FzM F K_s G%P) G%P) H/ 6 - H!n $ IsT/u~. J3  Kb  K& L7x LiP" a Lo> [ Lo> L Lo>  MvT' MR Nˢ_YyK NMQ< O=?h][ O͡b0 O͡b0 Pq pz;? Q.#s Q`d Q`Q Ru, S1L UZ"5e U{q"DN U{q"= U{q"QD WzқW WJnNv X-CHH XHz , [#BzNS [#BzNe ]lM  ]/?sg] ]/?sg ^m of=r ^m of=rR ^m of=r ^D $ ^n- _Jbz `Xz)a. `Xz) ` Pl cDСn) c߭\(0L fd3 f1B= f1B= f1B= f1B= f|y I g1 hI#r< i|~& i|~ k4[hr leU l"IN m {7P mq>GXj mq>GX \ mq>GX  n4eW o0DV pS"h pS"h p϶ q@/ߍ[ r 4Ē rO֫ rO֫ rO֫ i so soD t*΅  tUU  tG!P tҼR 6K u,' u, uzr.[U v) w@9o wc1Yy wξ6f x\p¶tR x'X yZ_AQD" yZ_AQ zۥR$ {2W? {yԗFR {} c {e‰$ {o[  |˝ }b ~\ ^ g'\ ԃ3 a  :DA : :K ;*Z $m $m 3O„j i:$Z " !s x G7>v e,H ""Rd P P , Cp%} p#'s w 1 s ٛ[v X1ps ( GIc &F6 c* Zw  gio m X:\ $|›< 'B jA `-  `-d 1#B^] 1#B^ o ,ƖL= m mt mi m ( &Z26 Ĉ*c Ĉ*Q +h{ %M %MLK %M@ %MUs %M] %M %M %M8 %M Ek'N 9h 2+ <7 r <7L 6Ⱥ> lTe: 9$By g #W ӻ  N> j !S 42߄  5@g5 dI lR lK  "eHt -uY? WD  mv AjDWT | DH#_ :# XB| xQ c L< R p1  mJO 矏 *av *av ,}pE  ғxt ғxs 4N j~ g~}  =ZW*S  e ) 4qs  + j QJ r {ur } k9G c @WU$? <ܖa WƨB o#8  )m  ~ea9* ~ea .) |z;H 6׷{w[j עoCR G[ ȈI  iZ }G0 ͓9L JѮw ΐGt  V  ']'.  v˽6" ~VH\[ һa|S; , # M~wt M_v 2+?N Ё Ё e ׹}FO fA c h Tv 7`,k - o atD o at GN5 a '> ¬qy . ¬qy :ov ݾ8D q "]# ׷?" ׷s @  : 8= j ڮ: v& v&  v&| (ש2 9%B pVw l{"  u =2 \8; o#" r ? ,s W i; OU RR? g #4 s C] C] $ XZK r r n - 귳֭$ Aw c љ<*t љ<*k p/@  ޖw)R  Ŏ8 (t ꝑ by~K: 1wS . xl;  xl; xl;  xl; $ WO;h hL~7 P6M s 7y  s :8Q #ՍC7 eֽ 4t )^/uD  k ~>N f`k hW % (a 2 dޢ 0Ds Ͷt@ Ͷ?5  U W  0i 9hrK ,J tt ! 2s #t _ $R z $'!Mó + $a|ds %ga. %ga. %(v $ '@ '^/  )^@ +3M%6 ,9mTh8 -Y[ -Y[ -Y[ -i|H/'@ " .Έf  0<R 0< 0<K 2[ 2aeha 2aeh 3;$i} 4/ 4+^A 4dk 5P=bE j 5{ 6^˶  7E '1O_ 7uU 9dQ  9|>L?$ 9|>L $ :ZG=$ :Tv :Tv :Tv$ :Tve :Tv :iM :iM= ;?a 4Ld <3s . <~b @2v AԚfZ- ,$ B&&L| Bn+  Bn+  E=IZ F? [ FpZ  F +  GJV}Z GJV} Hb0+v H i I xWs I xW JlJ4 J: 9& JI$s LI L3(| LBWȤ LG'| LA" MK V|y WxvpN& W˛} WȕB&: X2> \ ['ܦ [x  \ QC| \e&Sp \چ ]k̻L ] ^jђqs aFl;a b@\@  c5vb c@g5I  cmt dk RE7K de eD e/Ed eEu c eFvt&_ ffH& , f4 fh gn-[?, h( , h( h( iV:*Σj j] j[8 muGd  nVn(% n}ׅZ n}ׅS oXj oX  pl4B q տ>o. q տ>o. q]w=0e  t:Ah u ŢR u6s v 3 hA v 3 , vDl  x;mgq  y/ z j zC:vI zGI zGI zk " n za^S4 za^ z@~ zD))[ { a: {($O=[ }ya }}[s , ~d ~f6 `d8  mMKs Ya 6 Ϡ )CY z; 8 ~q<d J`Q% Kaus d1t Tӣݨ X E`.k "s] 3 ﷮j Z - h73  s 6(+ա*P OLE 2 Zm # f1Q f1 Im *Ԃ xe6&  /t틩| k4j M  _ߡ| 얺(m 3O5p ؾ/ >L ӽ߼P* ӽ߼S ӽ߼ WA+ RJ e RJ  /F+" /F+C /F+ {N 3Y * [ sX sX   5v , '6 en]y@ BIt 2 BIt  QrQY ntYa ntYa    # Bׅ$ 53 V *  *  * *| * 6P ~ K  ZC !l ]dNb7 ss #Q_ o s =lL ( ( :t :t ' ' zO? H9 af WT_ V"  V"  y$P f4N  Y +2 y{uj Po4  A}M[ O r !r1z "@)Br "@)BrD "@)Br "`$aŒ " } % Oh}  %j8E %*.L &xoP7%Y ( SJdU (1K{'2 (1K{'& )ED)Q )ED)Q )byy  )byy  )y{o  )(m  *P),S *m c +^)t +jw) ,' ,`j 1PN 1xgs 1xgsZ 1b- 3D SF2 3eJB # 3ru 5)u  5$I,7Z 8Dԝ+ , 8Dԝ+ ( 8Dԝ+s 9>Ծ8K 9>Ծ8 9XڵuN9 :޹Ӽt :޹Ӽ :޹Ӽ ( :{=]" :BxǕ ;p"?fl + ?HC* AݏY BB B aZ c C:} z E N c E&Pxj E&Pxs HޛX (A HޛX  HޛX JW |? KCfF?L% K Lp M3er/` M/T"_z N >  NNۏ0 NP'ځ_: NqfA Pׂ6$ Q D SlwBf SGOj g S쐪O TQu(^ 6 UJ,S  W*[CK W*[CK YhɆ@ i Yvb[y Zg܀g [+x [XANg [Ȍ|+  [s$ _58Y _58Y `r|(  `P  bN4 >2: b b , bj bW$ cc9 e×0c'j hKEW6:I hKEW6 # hKEW6  hɯhe+8 kF9;*s * m$ - nmB  ojp--  o,c: oj ߔ p`gO p߄*_ qN& rE smHxT} sw - y>  zV% |Oq ~N  ~NhvV Uك"k # k Zo k ZT sN Nt "{? XHK a"vC m #e i E} E E}R ާfN sV{@ ޯz oOaR `'Wv @-j , IӦ^  Q/7 i"rs *' Jڑs{ Jڑj b3 ,DF QvݠGt 7 #Jw| .™v  )t / [h]" / [h Q  :,%` %|r \$79 Qtg Fmuk Y JdO&C ;LkR G`$g I+D   ,  Úh eCTj M< d' AOoj %p Xzq  u׋2  h  J@  3&3R \su K wjY y  V [1 V~^ ʕ$= ' O 5  ½l8v ½l8 \ P/< + SxR 5J 7 ..9 VX;? k6  wT" XT%d y:ލ a ʓ:I  E5 ́#< ́#< ( ́#< ́#<  ́#<Y ͞RٛC% ͞RٛCq {c wEp  Ϙ 5 @] }~i аCTd0 Cj a R 8çs G n$ ׯQyJ ږq ,CB` ۶Dfhs) ܯRZW52v) CYv Nh[H xD'x !L ߞASv r} =- = ߠ g    S ] U  L  K|X 7(Ҥ X,#gY ji, ߂;R /SgG + oy c oy z qts Z3 i 躧lf & 躧lf  %n$J/ Hk& #9 [] + ɸ蜿  `u  {r 4s ! 2 b. , b. _dL* v { $- v { i v { c v { 펩:D YDAT tbP_ . f/B]N R  e HO{" \ z2  /ayJ ?> C!q| [\ K=: NjR 2 r (4 gi7&? , cY `u   Bx rLb  Y r C ҉ ai Br ] Zs ZsR n%SZ 1 ٩:K C T| @h X!_ } JS q7t 8쌯$ H `=` v Ep/S `]FOW{ b  e KK f/ g% h;wc  h8:" i\| iv)D j5KCC? kGT@@ $ k{c[ k2(0? kSO  mswC mswD n!IpK n!IpL n;ܸ73 ngOZ pueUk p+͝ pbQR4 q>(p  qFKB:  quK r e*? r4 ^N s8? s` t D\P? tg![ t= g tY; uk <3 uۿg v"}Q) vY YȦ w)k w)k wd')FR& wfMs54 xW--N x'ǀC xzdL ( yYKlY {A( # {A( $ }[.Gf  }q\1w ~I# ~]75[ ~b}: ~b}9 7↲ =dd 4Z"S PaY f'Q $ f'Q? 䄵" y 0 y ' vh  9mF  sڭf sڭ Zng , 1B  [? (1XL (1X o@G0 o@G 3P% $ G9  r J 늛Ha <}Y 7 Kwcj  Kwcj &2fY OL  ԫO <n~ WU8 ZnvN? z֜ VT  6B; c @P곪4 ȁ H$K6a- H$K6& H$K6Z 2 P#  v|E [%D  # ws7 j  Ӡ!Z" υ S^i S^i S^iP [M $ z,( ( 8G F  כ "S hTE  y}ҊQ `:_ ,* y WZS^ <}+L <}+ ~*5~ Gj#' pmY s M3?* +i]  .L %= ӵ6v ( Zx|8R _' u a o/pK s` kN[WUoj  - [ oKL !4 C.  wt {| { g { ( ^  8 ZZ peS 8` -c$ -c$ ^ I %@l5 %@lD/ %@l L|˒2z w>H   ‹mR j} * üZǐ,  i-C 3XTQt Pil\  C 7b  =F =F u:l+ eU !;G D.  玜!! 0 U0 &(y$ z>f  mLC щo# w ^ + ؃ӌxS rQ ܠ|?*qK l2'[4 ( l^U l^ l^L l^r l^]9 l^" l^S 2*  SY; ޣRt K7!Y HTg Iݻ] cٔ ۺ`U m~  !e@t !e@b V0s V  ; &n_a jQ MX Y Z[ N\`: m叽e 쮢Ca 1 |U9 -πj -πj zljA s 35 a ΋ t5k Q;t 'IS? b>f7 m  YA9/9 H  \zA8 ?IjJ *L I^j I^d HU `j ? E+gbA E+g , E+g 6 y5ߺK  N&?] g's  g's C z* z*  aSxR 2C s$ 2C , : ; Ň ck 䅶N '_ '_D `m:?j ViR էNh ̒ ),:D aeY u#R $ ? ^k ;  ryTjR ryTj "7J ,{ܻM C ~<  a FM QC xTW= xTW=b xTW=   s y-xv* G x ˑj 5y l XH&/j ׉n m `4I , wƘ]% wƘ #n , #n  #n U}! 1]I "^xK ,L  ,L ( ,L ,L ^ ۏ: gu~! 5sv !VTA~ #[떢s #ͥ*<1s %"0<?9 %"0<j2 %"0< %XCgnL  'sy (\aBd (\aBd +Ă1$ -j&mB . /U5 /f)ض  /|&Q /|&S /ò}ɨ  0s,Wz j 3>u@ 3>u@ 3k" 4sE 48,`  5vq5?- 5akJ^ 5H=L 5H= 6(E>` 6юz - 7ξs 7,Nw 7>v 7\AF c 8}ܗ 9|<  <ȡ < \ >7 n ?T+ ?ט˫#4 @ו AbMO  B2TG i Bvʠ Bvʠ \ CYFa\  C.(U CsPxj DEg E{;d b F;GX " FH.NN4Z H2Av J!}g J!}g KQ\@PN Kpʫ+y; L GE MsR O! O!  R} R} RUE0 Rʟ 2 Sj/*e SؗK S@QlQq S-t S]IK T@jj T ) T )~ T ) UUVD Y#U Zl][ e [ $CR \6*R  \E/  ^yNж j _A _ xY `[*$ `ӽu˿ expZ ehx ft}~  f?Rı! hl/+ hb+ݵv hb+ݵs knR k%Qw kC>ZQ kC>ZQ[ kC>ZQ - l=2(D mVe)I mVe)I  m,U  n rYg , nqcޑ= o Pp t6  t6 a vX w99M w99M% xʢs81#  zOizh z;, |Id |YVsn  | |NB|? }!M[q} }ghՆL }L 9#k }ҙh)N,s ~j^  9% > D % #R =" )? :f'= :f't7 k7X scċ Z. Z.K pV!z <68^C  ԻAg [^2v: $ z|[ VlAS P@8 * #LE #L1 #L g"WH =NWR  IWB?8  IWB?8 i F l7y?$ xdh0 xd ( Kda Kdat 1uj1B; 20 t{# k2 kR @t l9 QI  }9K l zA4  4 o puՖO  96 /" *rN :;‰/ .ߦ 0{ G@? zQ z sR k1M,y e' k1M,y  k1M,y fK@9 RUY RU k {O~B- V?[F,$ӻ}5'Hc4 }Re }Re: }Re _r _r1|1 찊S3}i c5k3 RH~  LQ\LQ\=$ fpdtX?&dpQ  T!N3c #ƈ#7p[#R~xH[#R~xH$-t(}yRS(V(ڡ#)Tt +*<`r*n΁+,q :0 RQ1h#e41֟p \ 3a883a8;3M3M 3R3R3R3R3R3w~13HLR3HL?3HLj3HL 3HL3ƻKH4?@e 4P]i! 4ω*Px 5;; 61|. c 6 7S 93 :G:N|M]<&rujD=>iǰ=  ?^$’+9@@Bj Ac ,AcnAc + Ac Ac \B+)G -B0Y^ B0Y^jEd%4F`HpΛ7H՞]Hٿ m IZbv I/pJ**KJ~JZ0 K7Gz aK]d! ,Kef*:SKx+GS+Kx+GS K3/)@K3H $MnlCRNW']#J $N NpDY(3 $N{)ZZ7O? O\a]ZPβ|R[Xs% R[Xs%YR[Xs% Rnj RܘCuRܘCNUK? Wb࿨Q W$ X'mX'mX8דZ^q:kZ^q: c[,&H[uܤN1\mC]:\?N^[?^ K-{f^ K-{^ K-{ ^ K-{^ K-{a p a-p$q*bhDbݵkF c5t{# d"dudeghDe&B~Q ,)e&B~QfѥM|Dg(xg-Y,XU3gj~z ahW:Zl jI']YE k&% lql #nQ[YNnXLM o'Z  o'Z  (+o'Z  $qcl/ qK,q9`_bas} cs؆K uDv[9M v[9M ,v9@5vU?E[?v2D>w1 (xu2"/9{>sBQ{Q{0g~R|y G;|y G; |d?V~| ~|~%5iLC~W‚@> f_ =A?O7# :y% x?ms ,/tDDxm jpΡC Os\S0˱Q8= ?VЭv sjs ٤Ȼ&sbJxs\?SJxs\sJxs\j ӈRa7o;, l qHY@* $_|a 4 +KN _3e$He1sEX˩F ħ uUR l[J@ \ #3ƀTt8s+^`>+^`bu),5 s?d*XhS c2ʖ2c2ʖ c2ʖ:c2ʖ|RcD9  fƍd>vw /WPpUZ tƭ 9LŇ_ rl v#|v#v#v#L*]̅jP]̅Y ]̅ St*St*dSt*St*j>.RN*~5q ElJ\ŅIJ$ #dEm ,IrTH^Ծe`^Ծe` 4wKuFւF|(h)8 RS#:x!b \X`KD#EXؒn 2E}I:_iذANJ e匞 (кt кs @XSݣj9ܬ*ic" [w GM[]  ZUgtNè]ĢY i;8 ( (T+[жE% ǒݕ =O 󳀃 sI3ӈFc %ۦ ͻi$ ? 5zZ ΍pzi :wN Dc$a7mGRςS c϶qo N{vs_?>SZ2k@{o #Sojfz2 Ӥ ڜ: M1B ױzR9 ZY[8 ~ j[{ظr? (j?C@/\U/C@/\`>7/`;LϩX ܕ^ph` S ܯ4?]_ܯ4?]?D!sxH.ϧ;݃iwEe7\ = !Gs4MFeZ~oڏ OE E`i^茍 }W}W霽'P i H@jH@j"rN%?) 2 >J_~>J_~R>J_~S!ݘU 'StS"=XBqi ( d@` (T,h T,h *דv#S-L#S- A d<θ r}"1F"0?lF>F>F>R5&qqW6VT, c9" )<ҸD)<Ҹ=  ^XHe ^XHe ,^XHe/H64`oCb^s US"=eNy}9=eNy} mr8;"ں}lۦj o{Uq +" ,i7] aï O%\ rt e f9 C% <=b0kIyWmX޴-$\:O +48DDJ>48DDJ?9HU l?+ X]A%h5YAsR$ aA* BBR DbAkrDfѕ EP;vB:EP;vBzEP"JFe: $F;ۮGJ$XL G!I#[*} JpחpSJ&vJ[9M{ϜBM)e? NT<צ7=OaKdP = P;  PvPۘAw jQg8}QkQCsRI6[ RI6[ Rf7}qTeS U7hRV3 $ V*]X*O@ܨsZ- ZIZIC ZX#[bBr[{NJ|\F, %\i`'S]m&s\%aJY( a֋|$qjdE ;fS1ɴD fS1ɴ fS1ɴ hr5 hBzxSi^Di^i˫iIk sjg oljh]^ ljh]^ (mV`/ #n{H 6nyi>o!>`o("soI1 q%X{Yrq9= $rҐUs\e t\IiUv 8` 5 x/Kz x8 xESqC{,NS{~ # |wxλ b|߆ϗ~ V }[ Zә' nhb s"@j &/=~ Yx[p $:#)$:#|I[[I[8kS 8kSUٺk/,b0o2' jvWGŞFsONc=Sc=sÁF p'hf ZpjpC\w$+svR >/۞ר8ŬUNe[Q^ Br?cA h? ;9RJ $tFtvZȿ!t˦I+4oj46m v˾9{h!{h 0B cd {&R 9)8= +9)8=9)8=89)8=P` ih („ ƴim i` ,@ (uN `k֯7un ߪ}*oz4x az4x 21 21rx {`D #Lw`L Ų5TŲ5Ų5RŲ5d l g  gd܁ɳ1~7ubH4aH4aa1ݞLvg 7" 3%e xZLDN *ARZTz>r* G'vG' ,/ zL,zL \ : > \ : > $9D ʂ FDS \ʥF^Cʳkg ̭2{ݔ酠)Q> )Q>a*Z +X;+Xt+X+3+v+o "-bb .M.r /lټlVI[08L (1Ơ @ 1Ơ @ 1 vV e1( 3ty3}Y&8#3ÖPG4/yPh 4Z) *4Z) 6 V{Gcc69e \7QvM7cVԟ H#7cVԟ H7cVԟ H7gM 8.pK8yQ[9?F2d :vY:vQ:vY:$=\V:5#`iv ;l,-;l,-Dood<BY=P./ =n^(o jB?8,D :t1Guc5$St"*St" ;00>YBkR{v ! X>A:#R#b'[D~NpqS  pHw:Rt;`)Ũ Њ0S. Vl1=Vl1Vl1 P)Иڨ ?m 4 /4 V sM>e+6g 4Ǯ7f t |mIJM ;R_Q.b.bVy"  Vy" y+Sb0 ']/0 '0 ' !AW}thnR SftD>[ ob t *: ɞg{VKHBTe/ be "*40% l_d $ _r0N7Uk WSMqDlI- ,{uu#{uu YJ;f}=a[ KH/%`w/%`wě47qT]&5A~Q!*Y2R * a0Yi #&'Pc'?  gA@gK=?s v[B[h&r [h&r \ P0bP0b 6JC b [2]Jr_{5 QKSę( *s@Y Y$# v|I^uRI^uTY TXQХuu 27'~MT hP9{[s_  Wy 3œgn8y G Y!Tk*e솑 $  L 2 C@kQ E! &3o6 [֥ 5 bb sq¡R sq¡C Fabs7@Ho BTBTBTRBTD RZ# ,$# ,UҊȮ \$! TT'BC hvL 8- cOV (P^b Sz  2HLz\ ocȖ   9\[ _e ";!| Qr• oD| 0 \ ,s%@WHPکә _f_XKs6A ^7k^7?D^1 Ks_` o @xN^ Yu;U2W޶Dy jcbjc{{d{{R D{ L{ L{ztsk pR$$$ p8 , p8 $!|r4S !|r4#x^r#¢ Y $ۈ|%YH &r[[&r[[ ' (ÿqL0 (ÿqL0(P )8}8 (9)#|Mj*YKP*H3 ,&ꧮ-Lhz-Lh-V?.r%aR0V'\ $ 0 2 D2DbQ(2`/d 3"b&T$4Mb2 4Mb25dA ]6@2 6@2 69=69= +7A&>9m"A :R9 :A`<'v q =zf-j@@7uAH(KAH(A$@վA$@վ (A$@վ BoqE BoqE C(á C#:Du?E E0ERftH;8 H;8 H;8_ H;8DHW鷟C#HW鷟HW鷟Q HW鷟IlALjsrIRA Io:QKFd L/7kNsP҅Qz{+RĹ!S5GsVMWm VMWmSWR01CWݩWݩRWݩQWݩDWuu\ Xl/Xl/YGf7_Z+W $ ['w d$_&_蟅 R R RQ"Ej f4b? (P5-v"q iSSd 3 , d 3qZ (cx̲U?LbeCiLbe9LbeTt^|`s! ">9 NXw?i e%s ! !6v*H{)v*H{) ZaݿN`8U)U)ИseC;Fµ<K6B׳ .BW]KR~W?KCK mK NfTNl{S 1ϔ?1ϔQ9;؅y. xm%3t; ,uPu lsƦX,ƦX,<Wz`? ruY  hDR D w"&'|Cm L]#^]bX?k)k) Q V\ jE"- *#S*#VOxQT  ¡瀏  挝 Wʮ Wʮ2Vw RcK(  ?  UQ#dpvp~L pvp~ ϚRwkSTD, fpvZhĀ6f -s9Y1(Y]5 ,Lc;d c>p Rfb'iDG+=ZUQ!х d4N d4  d4ϢvjOy`%Rty(;y(^3 52?ݲ GsEGsEB0ENP nyutF$sZ \XDgj̫꾩 Sd!JBםxeC!Ԑ /7,* M6L IhjjژdҊbQ,cbg"X ߲?t)hZkVf42Tm s wӛ2 zJUև5c/} QΟXy  / ([)ͦ6 dQI  ]y &~N:J  &~N: &~N: w7 *j9!j]2KVY5f%v$9)i &ЏPUzG; ]"#^_??a#'ީ 4 -g j]2by zA@NYK 7O\ >Y|gs叒?  W i "$޹ "$޹ "$޹ \#1] $ &m!W(FL \*>rW *Ybё+HO +VGNR .RH w/Y` j/W%0yvj,1ˎb3]3]3]R3]3  4#&PB *4 Y63 6΂{ 8]-!D":zP°;wm.;karf5 ,>Tia>Tia?TdHD1?TdH?,dP @r: @CA%NnLA/ ?? AWa B8!B8DB8 B')ERIwS H3b_/39Hh2TtHI<I~MGI)nG7 IS] J4U<v KDOobLS'2K LaKg: Lh};m M9*NgFYtO7_LPܢo cR!>)S~T?jTM 6i TΎ UJ9C ]UJ9C U=Pu U |V7/5 X$' |Y þ \\P1) ]l^J"8`8eŇZKaA[Q! sao:sSbѷ ( c7$ cף> cBzd5 Q ezACf/{]f>?. gd, hRj <j 2~=l$i) m3w>$mB$+mB$#nm nS$1t pz,˔Ep3-j g pI~p{y`pǶ9驽[p٭F -q{!NZ,s47s£W vs# u͉=X! v*Z $w稵2C {'\ |,`0?|Oi;~#U2 ~c)6!?iSt BM~ j6v4όU4όMlo r 2N޸&L}i 4 c>i#?Md OkC Ir%Q cISK t>?t>j٧ m?J 2 i(2jۿ@ۿ]ۿ%AQ ؞}N<` avҡDQ$'OPijA(]7MDȾWðS0sL<g"+N cfE DQvfM{f&Em f&Em f&Em f&Em $f&Emf&Emf&Em ,M} t"rɖ $/:) #Wȣun.Ov+ 9`k6ƬVNYƬVR ,3(KDaRr@sW ^)~a- 7"7P 7"7PؓŦ) t7ar-șH -șH ,ֽh;K3T+G" 5S qF#(*cLv.=<Ƞe 7p f s? N^}uVU'^*RVm" ES" -pNȈQC#S:~|DQH 7e ᧪sðEeptKa<bŀ5닙8p1f ǭ߷=S)%+ ^ ț#D1,G RIL xILs2PȊ#B LPȊ#B ހK UހK f mxt`?Ԩ="‘a VdDGQf4=,/ p^N׫ R.XD{e"܎FҖ ܨ2 5&1{ qG" _#a ⧣t ?Yn9Z4ƆFU -aN-V ! e (}(}Ng xs?J7 R;b c]=_7ghWLL"q h/H#* Q R] R] Q] ּh sv{X7O. ; Od~3Q,O $o4|"o4 \&O_1n * n3[tzUn9l 3 ,d\6 RZCU[P b h-3 (O b +jLL*v 7>r )7>r 9Zw -,88TT)l8 WDdރk^3eoHA{] s 6 6 , 6( Wņ `M$c  øw(  si A+*lV3P( {CXK FcnͩͲf gTD{G@ ?W{\|WMGS|WMG|WMG8ss @ /ozU~+u_i&]ڂ &Las M$+?X[!qDKV4hV4h&{FGOrC}PQYZg{  SG i SG iDS SG i SG i  SG i SG i!j "DK~@"rwB $H\T; $ɔd?" %L4N%L4NP'No{g 'No{g (g(10 (10t(Px>#?+0p|0?,sAr._g/ԡ.<h05?1Ff675Rr 5#& 8_98h 6R;_K 1;` <$ J=Q} e=!~G =h= >N:N> $>> g?$L fAyg@B nVBPy+BDQOEWW ,EKsbTtFY7 FH ? H#J޹C.H#J޹IYnT !Lփ!QL&>]MG| iM[ NP;MbN%zOuM?NS SS S SASΒ DS<0BH T$ }Mwo TkUfUBgU W V38Y"oY-)8Y} Y-)8Y}Y-)8Y}Y(0? ZDP\S\V ]&ک' (]m; a^:>ʥ'Pa.1!UI gaph .am3 \a״  b(ȫ 2b& bZscɀ]c(!|3 jcfd g dz# ld8ieJ!hBei4kei4 (f9j (h3No 3ig8 kDukeٰ (kkklve lmHLlmHl}r mIG nc#o{LGotprp^+kk p^+kkqDqNOp|rZQ_ tbC^?tbC^ (vΚ(YQ7vΚ(Y vΚ(YRwoB w"^ x2Ytz{YDQzm0 |nG'Lu \}u2~<،q~?n$ ~<\T~`x^$]NNu 0 QAm'RPMunD4U?wunD4U toh\{ ! ɾ\d|: ?s#: ?v R8($q D$On!J0R JPhY'WsGp&J ^+iXAxqew8d XL[i \ZI{5YPlv #aB l " F;Es1I cZ Z Z ZYs@8(o% , H?M Th&&Tq7]#򅌗C5򅌗RX{7mR L{" L{] d !-*ߪ*KV(NÛ Yq WRz~ GD @%rYiu6JªY3;yyh $d`sKaZCKaZ Y ( ̝…Q  ̝…Dޚ^ aޚ^ 4򊃟4򊃟SQZ^_S!%^”BNp! M7aQƅ ŌY Ō (_q4~Ț~ I C%vIZXmcSʳML%¿g]puR%<0# ()ABR ώ]ϼ@QrN{C PmTnz  az tѰ)T#Ѱ)TQQ#ksսϻ )`bdC+Iץ~ YfXQfXQ!+ٶx@7] L{H̨os  س+ D~`= ~1߃zrh#)Z ?nK/1G dzt$ޯBKnޯBKnCSr'<Sr'< X# %, 4L+T8} *Ŏ*Ŏ JN4J 0Y巫c^h.0^! eMc \CYC[|[|5LC (  {v>J%u_Hru|:YDoN" WVZ &}Ǧ]h:'j |A*C/*C/K ,(;},(;QzkQQzkQ?Q?/v}Ih#ss0Z -ѫ IoxfޜoHoq  XqN8LG  \v.Y;5 קKS קK K rKeee esCK)>Z )>ZF)>Z P"!l$ P"!lU}~SO ]RȰ? Fe  6 , |R  |L  :ƪ8+ -  㝊 -M*  -M*| -M*  Lu6w'dB2U8_@$L'v \k{ --RV% [1y譓3MKȝwa%?~ %=%=D%=UuRCZ?ف" 1 tL x. x. x.?!{=e-L !{=e-Y!*X1c :" s "Oe܂ $p1G/&/UcRz&Koa'0U )(6*|o).\=?y +\=qX`",}>-ԗ,}vj.G+`/:#80YQ1 WKv2n׻ 3b?S8=3P8ִ) :8 -;1<1.Y';1<1.j;͓V;4N*<^1! =c2c=iXE=Uy` M==>xWN>@,5<>wS_ >AV] ?# ?# i@|aB. &Byg|Cڲ? D](֬(q DnTF]w0GwH&AF_f?IDh%z IDh%z IDh%z eIrƘ sJ@p!kK*K:) cLʶ%uRLʶ%uM??YME~GMOmi P![P![R&-lVR}mS@+S@+S@+ BS@+ TTBWtT@ UqO1 # V$7 aVkS8 W(} W(}dX*Y\KY7UZ-28+[f L`D]SHXGJ]ƵCJ]ƵC]D+ ^j Bd^_bH` _R13D_R13D_@uM m_?_ (_\rL_rq `0-a?ocZ;70eau e(Md4jgitCsj?9k) lNrl%yl%yD mH6q$mH6qmH6q#n-<)Nb9; pM?:q; s.ò>'RsU i tlfKt$lNvLr x˘>d0zW+o}zY$0?z[Ӌ@8z[Ӌ@?{2{)f |V|V|׫H&~Y/!vR(!SorLuSŝ Nr'''\DhQL\ i1L\?\s!(  bS    Ѵ $  { Sſ)?s-s-˜ 9yH  SsaWRk Qs 5Ð $ :@ ;')b?;g!Q:M: :R\DBua%u|%u %u s%u9y1O;75h c C'T= #C'T= ^N J1 ,X bu.!  bˢHC0+!QC0+!BY6erX y8G1> ! {$j{"$nk[E}6 K0mB[Fun&_ 8fȿDd [dxK.w - Nܡ mWj}R}h}Q34Ѩ  |x*J7h|_%| *RZA aH(\R>m# F؟ ֠~' \Re`e (`ej`e / $8,̀o 8,̀oC\TKO 9h ~! +D 1G ,5_h 0UK ÜgUr   V{\4>d~{!~{!~{!Q~{!R~{!aċLkt۪3K ~ЄV7  8ogV SksA8F^DF^D ǷfsjLɅ6) arɅ6) ɡBIzņy> /'6/'!/'ʯ7 kJJq̩SޯA̰ qgs2͈Gk WdSҴP| ψ*KRnϔOdīO1ZkD KnG$ {hJ(g :{hJ(g \l~  y1Sӻ~J{y  w'ypk բMl@CvRqZG +pz1vm ۃo(TBsXok sXok ap'ˎGɹ? \3Z -> cGYcG cG  #ၠV KЋ$5D1S6 s%CH N4Y !B1 䅐 ) EGYs 9s 5+UoX $^&Z [׈'1*c!ӌU a^ 4 " 4 "j vx@cVVTZ"@Pq1z󑫨 ,+@˖˖˖NxMK^  )AYu4`N?Pf| \!?!j m!?N1X?J C"4C"4Rb pE0` R2R! m"G ]7Y ]7Y $}Kscڥ 9X"  xt= g`yyB%  KyT+8s`^h$kM R7O ea<5K;0yc ,% Ms%QM  ߡrs iUX +rb =.u@  N:haS9}I'# # BPnA3A_y<6 cxlJ $>S}  ?g "cZs#H$1#H$1#R/v$5] $YA[d.'$YA[d.P $3C%`'7# -'7# ((~` (s5|)?LOrP OǛJ P#r ?P+ꇲ' Sqd s Sp'TUaD TUaD|UrE  WdWdWdWdWdXt4 cY  s Yo3i|\WZ < \`Ե~ ]4Wn? ^gI a^ሸ(fR`ٝ aAk3%&aAk3%bo9lg2bldcޡZ>dl) (dv}Ud9x fK gb4K iii ,i (i;n id k% k% (kz;+ ilTZ[XQlӪz mbF no( ,pc A_ rU{ru60%rvӥFrj,s^~= ssI7.u$Q v[̜Kw8F]^ w{'yUDyOn4z~?23 |2O |{sw|6t} `͐j} `͐}]qٝ?}ml}m];}m!}m~"kDN ~X#/K=~Xldbk k!Rkk!Rk(UŽ#*~:+>d +> f Hw%Ck dbn ~r8sV;k v0N^.[;D}@l-? \B bZa$> Ad^Ad^ `+ yLkG| s骍:"`Wl;#%nÌh}  ,9}gbO?:, -|7 -|7{gQKgQKk+~ n|=syjBWۭ]O! O! stSGԂjCHv^ge@ h#pI Ň#1dz,K==B jvr @ɫCBCHR ʸ/!x _p|_p+_p ̷ݭ-ͽO q#)V Q-O- - ->xp[ z@z@b ЭZ:Kj yY7.bє3{ j'y"L96 sYO׷¾ ׸"'Z&t??C7U?C7URH$k̵VsS#'ޓ ->Sjܚh !"DRE ޠF%V6I|hN;D beVbX1QbX1QNd1V d [:*\`c9|?c9|c9|j=7$u&f? j<yu i 0fR 8ڝΙ|y#h "#rFc 'l-Z"8-Oq:vWNrs1 ꫾|2꫾|꫾|꫾|]o!Q!!S}o S}o U \. i6 lY'6 l  n/s [~CM8R(7Js_"!yz,I: Zj.NvUA WޠoJ  f3>} 3>}kiH&gqDؔ#*`p Ӓ ӒN KƃpN;KƃpNKƃpN|U~ o@E3 mYoҀ{( ԾDN%SBNT P*排Y 4 35&4 354 35]@0NWM8 + }  X ( X+ Xt ־y  i  4  Ru:  Ru g =[  V  WV!# \ `M , `M  Jm?fQN ԣY $8i`^jֺt h }ђDr Y '" qVLjRToU (Ե`'w i`'w{*xhco \Y k EZ;Z;Z;R Ox I>|?"/V $%+y[&g>?G1'3h)*mK*&|7q *XɊD*XɊ*XɊ*XɊ*lb!a*5CO e ,:7a (,j !,D兑|-mOG 6`.o֧.w-y[#].w-y[#/zA:P 0\<-1|cpf+Z1|cpf+ 1^%1pI3n2q 5 3] 6?j6žQg 6>P"7/=:H7be e%8k.9?8΀ 8ۅB9uf :|S[ ;_c3^Z *$= 8s >8؟ >Sd" -?ZvA6}J #B; B(m9B(m?D ED ED0?CEjqF*/wAF*/wAF|Wu HQ=JN2eJ Jjl9 -Jjl9Jbi=JbiK JbiDJIHƒfJ!GsK9p\ K<ԺI=jLl-?L 6L즆 a L ^]NNӋ ZO2<0 $P7~`PX[?PB7sQ.<?R'JdR'Jd TZ9lTw(,RTc{ Tc{m U;_ |V;6r 1U V< `V U_?X3 iX3 X7 o;Yһ%Ŏ Zkcx擼j[lR\M[lR\M[+́T\OXs]Ig^ ^A1w2Y`6'Ra!6#ݻb)C5 bG8CC5bSn<ˆ c" d k ԶD d k Զd d9e X[-df[8?gWX #g<Kh2v4h۱GObh۱GO aiLin5 je bj}F&sjq~,lPSlͭXĨ&l[3qV`orOr_1$ f2reth&D at 'tt ' (uؖn5d]6uؖn5d w@&][ xi߄\}x~VJ-{8x]Z {W3M/ |TilB|Til|Til f;"h \lZz JiKk̀L.̀L. zZ_5jzZ_5 hNZ#ns_*QW|*R qz e:l-Qw -] =:݉`u<R<R .p Mx( abWɫ31ʄѳ \Ӱ: $ ކYs Dȧ s) _9 eAɔIG&t&t p4 p4 i  !e l1+=Ҍ. LCR LC,\kRn 9)4d9ǚx? ǰ[_ *;fβȽ/ڮ )#S. 0t gEʢU͞G #[;*{ `Ȣ`Ȣ GqTZ ^ޕ ^ޕ +^ޕ ] j=uԢia}\ a/Cr0~~fZ Va/fO`uԡ^D$6.x]m Ɏ¤  Ɏ¤ &tFרoq L` sahO?%/t iЍܙٟLY< ڢ^ʕ?ʘ^=Íb ۰v=FF/ ^E)}p L 5^=[(߃hYk o g Ooj eh*cs 6cs Z&[囚yɸ:K  -t 68j68 ,68濄U G \ >Α|>Αk֏vG P SeUגt EM)+o9W"W" sꙊ7TꙊ7T\qehjҗY j6$s }dHL+޾N򧛻 ?AZ|ã0`3wkFX7` Zڥہ &x3äR1p] ^}e J} |V VHߟgTBOJ)ygd)ygK ?}EaV DC UDC e+DC  y֌=1% s_ug w^@  Y YQ58/٠t'2P`S?Ik `t ط$ A(jΨ s jΨ+ U wN6N  ٨vnOZ>0RXifvWu2 ƅ;/ƅ;8WB  ! -j  -?;'t;'s~TUY!ܙ9){wz̡! ,C'( K!9 M|%zN  tE@=t"^t "^t ("l:N<"\Q #gBЖf#~~Z F$,";$BQ$dS%9b^ %PBc &X62U&,*A5v +#o$ 5#+u b+7} ;-VBۮ-y] .F# /f/R6K$ /\,K 06vh 0tһUnA c0ԆMZ 0Dd2=n=2=n= )2=n=2ݽl3a  4^_?$ 4/5~ $5EM 5,̖56:%a \6u;K 7LL8w@E9Y8Mg9 :q&:jBj >,?6;D?6BE@;?u % ?R>":?3L@D"2^A-ۼd BRl/[Bv:Bv:BtGx:,Bº #fC 4XC5h"| CyoEoM EoM F QY4 FЈtHfRI?#BKL0ImެrLc1çLM4z  MΚzOKOo{$OFvB OFvBOi_T<QOr\ "Oq%^XP>z) R`̨DbR Sid RƁc NSvkyT}I U| .Ynvs Y$bY. ᷆ Y;p`̒QZ5kWU\8/rT\p + \~ `]\Cf ]t#l" _ǕUj`:")p| `:")p:`:")pzaVYSaVYSa>2a+a+Ra+a+a+c C":nYc犀-h9d?0< , eV=TIY eKHsip-k2^G] k|ٶdkK|5j#OmHğ *onI6 ,pҤRqAHA t[Œ&Ut2\tήu2w;έxZxrty4OZ%zOe@r zOe@[zn b{ A{&g }ۃ }Q_~eW~t r<jsC.?Yo |$ Vƒt =pf4 cf4 # i: QrAmd ̹:PilFPilF ;?} fԑ 3>(v!O? À3YSÀ3YR3sب>vbDi *bDi33GTS ~` -bU~ xڗ/zzN - "0?uwsf_v7<vuL - xU1Vs Vh7[?) %:dcAW  \vbWbW bWX_ !{ {wnAL% vWn5*4 "}h(* Wkj"LmM$ Z[ <^Wh<^W13MX3%$? rbh{i ZD(d/ov^# g /#y #kݬ ?_!=nPs /urU*K//urU*+/urU*MEU > ï ]# qS'ol[€@A[°ޞ ,¼7LՒZ6 + çL|8 Ź(5j F(KY0Hdjy7aY>cxaCDǾFɖǾFɖQǾFɖK k]՗Q q5/Yw_4J s"G!GxSɋ؃j.i i jԘ: 6䈣ʑ 2Df&!ݒAN\d/I92qTpŮӐjhԪ-"G  xT *]*]Í/܋-Í/܋-YÍ/܋- g GyG? N3LjSK'D4xE50LD?`W :YN.jD`D!`D!UT/%>T/%> vY ڤD(JkoSp܇'K+,ߘZ䍇 ߘZ䍇6Eɇju|ٲ7v XS{mOLQ&i5*r~#D *r~#z*? ;^( |jEU ,=޾I}ca xa< }I %|mf m -Oe?Ly Am) a%P$Jqj ,@#']/ -@iM&? 7?HRZi?7=PR;iC C] (4  h6F7G4Ds8Xj؞ e؞k1Y&Ld`wx0~ltCRr 2 Es`_}udz:1svR1sv {/dY  {/d 4G[  \̷=08 ;|;%Q|  u%N ZxyK 2KTF 4h* -"ؒoj $mptR/˹Kf?Qur`;f?C/cĴ ! 5A+ `#$莞$5&BBViL'<;L%(:\8(,ל(,ל*&nHC*26![Q+@J'-*1a .z$҈.%X-k .t $.dֵ(/eJ^/ŗ'Ԓ 0 s]#1826{D826{29D2c53۶B3#ʫ3#ʫh4jf 4F9?5XӇ5XӇ5XӇ5XӇ5XӇ64b 64b9Mڎ9͚= :g6i~Z$=>~Z=2R-=mCD=mCDR=mCD=mCD=mCD>d? i>$`F>^e ?>& AS= AjpsDFc Eaz sFvW4 H+6oRH+6oHB`8:HB`8 I I]v Jۺde KkE:MtRMtM`M?ui46 (O [j? O 9 P>n P?J PZySQh  RRePd SQݤTMvΞv 3UȫW (<VC~zNVM̛*XXXS YkAtRIYJ Z <Ó]\ \ ]pK \].^G3_@0Ұ_!3`{nnAaXS֍p|@fZ @f#F5> hwm \)%LMs>v.:zF _r {onQh (onQh#onQhonQh \ YWL] `ۻG! .T##K#2u 7'I1k4 ͭqY#q 3,K6Ƙ*Q cYbΛ<[B +Rk`LK OQ$ ? S6Ny FѝVӝ\S?,ӝ\S !V+9 !V+9  tR4!Bzດe #px" +I&IQohOC-I-IC80id$ m15=jE15=|15= 15= 15= 2 )L nL`. I(Qx!s緃M3a VNX]VNX]R"CS\ކOK a)YG Yj%kNEL0 DlEt] Et]:ʃ%Vfy ug^|V=| و ؙt.%*:I  JQ iX U mknxPO&-|j c%6= z2F+.#-PzL|[  $$0uR~50a?&d &G&G 8VS5SO] ǔboÜs#ڻ~Ӑ iH P9~Qb NC6 XFSC6 XF l2#Э&;<[t*11 11 ,11 8Zr Ok|E r5^:hi|; bbSPFbbS/bbSpnpLpnp"pnpS% ia3 *ia3 FF44]M%}Rt̬9`;?ΈSnNRn' ޝUtvo/n,?wk >v mY *Yu @k @k +ʃ $ çM* çM* m.çM* Y çM* ͋ B,Y $5LN5L悩l5 5  ~ ivZ O-.R!O-.R  M1~ e(c:( ecE~ xv̗*L T/2 Շ9q eG`j1ZHeʰ+ʰ+5Lo96QyXC6QyXLKT2/:)zX[ X.N{P{PՐ |؞Ԉwc!n` +Kβ NF! H HˏU w #ˏU w PL% PL% `uɣyf$7  y'| S{[[ y<q.m  m?@iK?@i ?@i ?@iW<{Q-Ðxr2=MD} M> $,Ka,v J , _VE* !^A"Ʋw"",V $$e֍F $ZJs$*UÜ$ $*UÜ%Ms%`6 &K1D'B`'J @R(ZݾY (Zݾ(i(i)"yoN )(/:k/:/Yb /"Lo 2y:92y: s3޳4O/c 5,) 5,) 5K 5.ћhn=600R6^$ :Z :Z<$LU=kw =}>]k>]t? ~k3? ~k @{@?@{@ A|LS lAVln jCm0LF D` Л?EFp]I+7yLI9XIMvs*IMvtIMvkKcլ]1Kcլ K-N:LKj] M#\j MEkHN?O.fOn>:_BYOnpMjP6ePQ*ptQ7Y3WsRX?dRhcRƂ"j_TeV.6&W(bZ\t *[Jw f\=-bd\~rT\~rK \~r^M IS_6e%H `@})6d "ao sc/.K6D c\&ߚ]je -t h+ rh+ Ch+ hww iu$K*k2|G l%bDl6Z, lqn2lt?s ,nJI-rn^rnX6? nX6 oډ36Zo_j p eCp*32I (}>2ItBy IiGϩҡA .- 4r +}`F:=f $Βd~#$Βd~:^;m`G bf(ոmEdhCZ$ͣa &^< a"q_aLY N_ԐsS iMsS a FC FC FC (p^ $)BsNdeheO,Z $1W) =N]ЉZ \s2GJF]նe:3@@bPԿ@$ ypEJa G@ gUVJIFK*R$1] Bz gU)ؼMZ9U)ؼMZk\\)\SBfƦVd '*C<)t!Sٹvk0&m jSm-Sm-?Sm-j7c4y a;V61|%}7[G !s4[ +: t"t" P&@&ߏf0eB> $rX ϶ iAZ9ng #b  b vnR  u%qH Ÿ ˬ¸yYL kLP?t&Ĩھm\j/TwJ?>WR ˣZ#lKd >w >w9͌,-ͽY#:2t󦄚..t.. i.. .... .&NЈ"z "Ռb eqL  չ7 չ7: !ȕQj$ S ׉H1zTU((قtDLgمMi] jj  ,1 گo+KUe0P}t0v[#WJ ^(r @]0(r @"(IC0|@a c (c =gv̼FIq |`t"ʜw,* ,v+   ,JUo a,JUo Ene) #~g:4B6 G||S||N  vO **cC9Bu#e{3d1Ӊ{ 1Ӊ{xnsxnhxn { #"\(H[ġ8T "1g 0"1gs|تs|ت"`  !r &i.dZ?G>Z|*vc rZ˹3F9N.so<?b ?VO`j B $BjBhB B $ [  ,zVV(`>ylU Į L  o o b-1 dOd7j  'v9e  W" cdk-( }GV=Snn -V\<8AP6_ Aï  {֕M] m[b ms ``H )DEMx A 7o! z & j!g܌"\SK"\S#Ors$Eْ}$zf, &li a ([9F0S(([9F0([9F0 (s|.K*!0z+(Q -@8xb -ӗ-{ i-{. p/8z_K1=?111ؠ) $1L8`R1:h_&s;QB 2;*l~` ;\Fv tj?ෆwAZ a%Beʋ C%vC[$n D3 P6L Dbcqu"$E%?j,9 EEʰI:E*R HAw H4?+ I:pKI?V \JıWsD|MV5 ,Mz?N^erX (Nq0Nq0] Pe j QW  Sb SßB L7SßB *SßB TM1 $Ti0"UAh?Vfե x W WBh5&Xb jYG])U YG])[jR"{bq \F)\V7k\V79 \V7] ^^9 ^LQ b X bd& adRCd3( bf}?hĚޔ%ik> i}$|kvb 2 mPma#mךX Qm#nyU ny ny9ntb"݂́Q * = }t| ,Z'" Ƈ8<X <X U64``k|a旎Ii jCP $hхZ)W e%$Y7H{6!ox ISq%Z4C2h0慠1wCQyc9\>@Sd \(@Sd 1#DZ*hh , *hh C01Ajsuz [ (|Ɣad}@0Qy }@0Qy #~&?8~&?8t~&?8bhgYl#) +ʤpȳ%( ȳ%( ,mQ(mUز Ǿ&?5iIþ{ e>[v_Z}R9W{t!J%~:D kDH~\ *iF-c C;)v׼ v׼dV*!c;Z!S$pSO1;Ǯ1;Ǯ$udI v8}pfଅv ۃABɏگ彻=Y't'tRJFX*SJFX*LJFX*]n $nsG  8L8;v! |] M,ԊH = {1}Wq -^?^?^U6>h:VQv;izf( ?{-rJt0'z= 0'z= (;xrn aTIFr ޟ~CS,n[ RyvwLd 9)o SJ +м+\ x] ;'LD]\-k   s43.D_RNX_duZ>inW !v ,&Cl  lK l#8L2(_- :QJ (uo[  G_g& g&L /@`#3j Ұ_ BȬ}pb* c]} 1/AE.%?r* O ׌n,, 6" \k"l #~$ Ѻj|Ѻj Ak< \ YILe YILet҈]I Ӻ1v_? 3 b#f\81 f\81{ +Ik+ vw\ޑ9ޫ)pߜ! Yh YjsHO:Åt"Åtps /܄5g >~b o5E Mٯd [''] d~_=V2}텾{6q ,[×HF/ :+}UPu8Z c |pXs x-FluykXgR+ 8ǭS \`ߨ yehyeh} *QG*U"Ա 8 3 mc~ [O/0?!f@q˴] s$ k .}qm 8q 认 &=O8tz&z&rex( E gէ gէ S땁 % ,8ʺj $# 5p =B+yNc cK p RL#q a gش'Za e+ؚ*d/yNc!;)TR p̠?u".' tf p mtf ptf p5$e`Q!?7`Q!?7t d6n.31c9Ot Z"Z"Z"M{lo :Y1B1g 4Ri ,|&ax#Gv:ĥ ̞  \ P dU C}c9!FR~z!FR~y"ŏs "KڌS# W޳:$ # %dB?' &k(n )b1)kF *ئ- ԌhΞ .ب/H0+f a0+fj 19D#1V`N!]2=? 3Л=4S/R4`r 6Y д 8N88R9smk?9%:|ƺrDY;f>PrN < }=~A(s&>ѭ7Y?Gf+U{L{CP^V8XD:PEIVNF"XFT9TKFgcfFgcf H@E"@H@E"@ "J8:ه4 Kn[hL.,[L_qP #Lz% Q~ZMe NMhzI;NfaԡQ+ $ODQK\DR5R~S:1<$T?]lyTTB"A;jTWDU~LIQ]U?TViXˤO { Y{X/NRYR4ZnuZnu Zq[ Zq[ %\KS\ڿM'R]a؝[^kj|`qLvaR aFɱ)b`6ߢ!b!jMc3- fVQCRfc}vfc}vi,jI2?Wkb" 4kjS4 ,m9޻ +mR:KmB]nP4:7nC,- nIR owh!fHRpӪ q;(`[+q? q{DCq֗2Ss;ܛus/2s/2tz`$t٧> wuJ <!w_E w_Ey` {mbxg{H!? {{|vQ}-~[Q ĩ+)c?  g U-kˤ{: ciq`Ep?A:o "xVQG&YišzQXpfyvYy4:|3- ]*iH#]*iHo;#4\ 3"3EB  àͰ6 j"iX6"iX6  n. $d9~`3R"Uicy"UiccF8qF8q{9qZ5]^PEء"SD-"SD-jPKF jDc #6[mL ,9p cNv(Jg f=1Lj"0V ,-"0V $;l>R'*F~v."  #5LBG  uk36 \kZf2ƌ m|},jxgC-1Z~)O L=Vžk  L> T+AjT+A?  2N ggJD@!` PϖKjC lj%őQ|fLi_HS9 uzAմkv&?[ŧg7 )ŧg7*#n/s) [8 c)Y0^կ]t <V [[D.kM @jX' KMd+=XÕy0'Y7C7CK +=KFC1vzfǀ~ FCvAt́Rt?t]`EREZZ SdmσGvCv B9e>Zџ=#ځGځG ?VR$i9ԿU=j_qK ƛO)ƛOLƛOhئ{E>٨8[r hm;/ ,+T ݶw(h X1IY)h,g0Ak?JYt7 ,6$ *D t ʈf^ʈfSʈf&gt1' 1'V>rJ#W >rJ#WKq5v-_`I( s`I( |mUdYmUdC2mUdQ$t Z}KϷ & @ʋ 8; EN Oof  $Oof  Oof jOof  (^Oof sROof  J8%  Ԩ=s'qXx^Q #@#Rn5F X3Y|RdX3Y|ZX3Y|\ȥV  \Иy 5GY5Gfz x|~3 #k5N ,k5N ak5N2 e 4 [7M(L rP5/9Gc 5K <{CG<{ ٹ MA @3 eX ;ZK a*K b?n=$sfѝ yLՐLsXm V*   V* :  V*  ʷ 4B-i ʴfUm0ͤA 2X<* 2X<*~ Zt ٜ  !Vk9? yaKj bWp&0RІMQ&;8? A;k7/fP&Zl oSk(y?՟:9. ,sD}gW{RBU JnkSJnk ޘe ޘe.|č"!k4w 5!3Ga!4tt "т- #2^ ##d/Ȥ $JWʆI$7I:%o6t%o6K&Ұ| ?( 3*(B1(B (B(HwF:C(eNj)yg!)5lt*" c١h+/ /@KG / ~DɛtR~)Zi$ ~)Zi~T612~)Z!\ a+\ W\tOXxu*\+ au*\+u*\+ju*\+ iR iRYF7CLU?WY(3\לRUlh=3 A <'ɩ_wFȶ wFȶ wFȶ wFȶY %%! $h|MQz ccjloP  C^Xn7?RVh[RV RV96U# (wU@b: B4[Pf0 Pf8^ËT{'  q7Bcs $1|n+t  (f Jj0g 0gkx ' , 2bb0rQ"} \Rzx{%5x{%N}} *j%ngL4ڇ^Rzk9Ӝ" d!)?=VvY\g) J@{[t]Ekua._R 9%?t͛ }f4j_:KY0x+ `Uu p(F~0e]1;NhG4ʨj+L >6[DZ @y6nIRel s_ )w:$)R|Q |N |hmKuTIuTri+ri+Y-c\$ xh m}[ zT zT I@ l $6x$VA x$VA  >D XR E.`=LO7R H8hT4t]6-qvg qvgտs, # Pj K   EK!YzQ !YzQ"&Ga"Ӈ|$A \% B'72 '72K(kr(kr(krS) k#)K)1Z# *')P,G;*ۄʹ c+$ -19&/S\0XM.1T  1Vy*%T1pٔ1n,4?20!%cm2H-NQ (2H-NQ2Y-VaP3|%VE 3|%VE (3+J4r + 5mY:n a:sc3# \;mpw;mpw ;@\R;@\RR?@ezQ A=oAP#[BQPB`X-CMg^1@ CLi@CLi@Cs !D,E G?zSH|-dHͺgj IXMvI3<vTJ?[ (J?[J?[jJ צ  J9[l?DJQLM];cNmbO`.1Q?ޱYH QVHH \V8  V;b@Wf+Q~W&GZXnp.sRXqZ\X%5'DrZ6][w\B&R\ j.(\FP]c2XS ]eũa]eũa]w- Y]w- ](g ]}KE __ e`UCF;b=󷚋n bx c q| c q|g4'xP;h3ziGkj#^Il[ nn+ neo 1?sq_#rjocksXD0yRt$ԋqL$t v9?y짓zH\ (zH\jzU܁|jn0}X2 }X2~%Y~`,qLlxZD)h P:%Yrhg Orhgv,Ga,Ga,Ga  ~'@L~'@~'@ dl_8^IMkjTg}Tg}!4(o {9 ,^j=6MiKN.twޱYY .uO B`R@aM?$ $(6'$(6d6COMLr  fb:n+[_I?7 oy:D D;D; C,:ʹa CR 1{s# 1{ a 1{=nQxD k (a6 lH}!OC a:Y5Z~ xsV J&<J&< S ^ 6j9$T;j9$T;9$T;Ƅa iSiSci-t%R2\lksA cK  rC ( I.:N?ն ?LTzt]a?~^dZF 9f bl}- bl}-NԠkI , v#B$ *# 4_/* ( t)|}ổ%E(P%E(U%E( |$4 sN+Rg?g?g?g?dnq(K q(K ,q(K \q(K q(K l2Y# l2Y$3Uou<'R<'N!I ҇Ei aZ{]Z Z{]L.qD x]3D$pGat g䥔Sdo!={vOCR 0OCRw>f/?ıh{\Hpq"ɎS(/ɮkCɮkC\ɮkC` =ISTV[VV[VN̷Հ< V V Qr=Qr=$QbC 8gLs;U1&ԒD Ե5& n(|JV?ՍբSրXVf # dzU;V|hؠa&9ا/"Gk@ "Gk@ av/5b )w՚)9GG$?0JHM(KfiՌRfiՌC;Z$Uy;Z$U?ޚ?};Lj$R+q]>AwNK;+XYh9Wz `,, #Jl Ε+Ε+D $%S"|PZw n#{8MDTR+'(R+'(j@Uz^ wda s`m[: ALS MsH N@hBq|$1 n>~~܇Щ93VCЩ93V/q  +G,H$X=j jQPKHˣ Xtů6jC S,w &AxLdva$vaSva $ʯzɒ  2c RN  P/N P/N  D"  Z ]"zs ]m#H5 .G=̴q|@e= lګ* }TBj CSe?ȳ vkWZ"v`"S #'Hy%"` ~ & Ͼ . &8C (>!b(19ټI *!R#+:S8- -34S.:q p 2 .!v/}# 'U0ȍ 3% _D3% K 3% 3 %31?31 31j7s4h"74o| 8@/K8_ 9"GR 9H0W=À=4_.D- >/\ʲ>t)ú$>t)ú ?w~y?JeZb ?`l@ũncdA.Ak?BoD[eDtgDVb<EʺT?EʺT EʺT (FD#sQFߒ3G a& k G H?UϽ H4DJܝ q7b cL GЗLu$Lu Lu Mg\l UOY P_ Vg VβYk XP Ƨ c X4RXd Ypo ZP4(| ZUP {$Ze˅ $[ &[ e[ 9[nBn\2hcG \L]2Bd ]2Bd]gFZ]Y߆_C]d;8^5-~nj ^: J_:_!MY `` s `7`7:byk)cg{k dEPd<< f #f $gș. ag.H ( i T1d 6i T1d$ iMjiݞL^ j/j/LkWM9K kk`# l,%l,% oM!杞 (qsdAȌ!uVAa uVAa&u3o?ud$v6 ~vG xf, ^y, -z_l`⩽ {6W [ }d$}\bh ~ɓ ~Pm1 r~;9q>- *bk Kr #.> ,yMjcp&x?߀i߀i2w2w 2wLVxoR{bœhs@hs@  1T|7nu|"qlhO$tRE=RE=RRE=P/ pS. \)еu]ndm VӸ-d [  Z NL; %ŽSG%fa '~H 9ƈ GJŶӳ*2Ŷӳ*ƀ 9 hƳ naB s}򷐍s}򷐍 |dKU aǃeGǃeG<ǃeGK5ׅR/|T *M#b [B tƾ +ӟ-W- sԥHDb@(0vb@(0v_׉8n ȯ:6S  +wN ؙj c6?R l&ڛLގ@ b%Q#$C?tN/a}%%~IO$ ᫝Du s M=ṔBgЋ1tBgЋ1YBgЋ1 [;0DՄ?Xs @Mb -B:v@o;:v@oK^RkxX\ _ 9G[?> \s: em[%NKD jJI5VP -+q r%ʪ. 'QN\ 'QN 'QNd mft,q [=2d \p (n>)tn>) in>)j u -u -3}_g ށ.?vϻ0R%Ͻ%[t<\`P y:,3 ib/!= \Њ1;@*|eh;d;w;w(:`?O T LV K A4/ ,޶# |- e oQ`d  i 8>i kf ~bi  M†X l  N  ?vw  lqwH4 13s 13g 13 ˋ= 5 5j 2刋 2刋 w_( ' ~8R 3Y# 4̪[ BJಔ[& !1.) !d "HʄA l #z( #tI4 ( #D^W % <  %G0 %iEJڇ %iEJڇ %iEJڇ  %JV ' TS 'WE&Q (JH c ) 2 )Xd]?D +\d ,k ,,{ ,,{V .jjC$ /Q  /Y z}D 0=< 0= 0= 1! 3 2oΧ 30ϯ  3q\] 4Lz65 s 4Lz65 4  5J> b 6Ebb3? 6ߘӗP 7 v 9dER 9 E± 9~[C9s ;]W7 g ;[+Ns ;[+N  ;|_j?S ;|_j F ;|_js Fk > F} > F  ?}j ?} ( @rI AՔ$? cR cTs2 eH( \ h+tk jcr $ jcr ` lZ m$`c3 m$`c m_sf nJLǤ3] nsx? pt%V ] q`j}v q&e r/tP rG |  s0$S5 # s܃QICN t͡39Q u }Y u }e uJ ~S upEbl l. v  wY+ $ xeg` y? y`C9: z 7@  { {x] |֜f0  }2rD }2r ~o  +2 L*'4 b3Y Фk1FL ;W [K# 015̳  3/c a 3/c  M @)<d 4P % ٖ0uv !L !S ! 3BL  baGN - a>ވY a>ވ m& Bc3X aq` , aq`  aq`  aq`  aq` $ aq` Lޱ  fn0Y esm c {˹. {˹. &N &N  &Nt rw< rw<  Xku ϯyv  _dā N-  Fl 3 ZeK Ze u \d  G}a 'ab` gl zTr9* s EK  ; hIˊ] ./ 5 5 X[{N 5s j 5s  $uc) ^c $ %nr  4K 7/\ RQQ RQQQ _$ >gS Hz1xm[ rj Z:  /4/ tY !vv = ,"U$ ,"U ,87L#, u  4L [ &QN ' tj  ;S ! ha \ hah* 38U ^h>R ' ͂ D ƧYZGK ̦ӕ+x?% k\F x5 }xud s?[ \!T a|n{ |?_q keo tB'8A ] M C  M C  ͚}_? γGʙ Ƙ  w(As  o>t ԭND> fp1  Nk6q  fD  {tw  ݼ$;tX }âv JGj$H ES +? #sº  ٪ ŊhR ŊhC __  __ ۛ {hcD {hc Q:f ݔ? =#m; H@J ጆo ^ }- 79 t]\> ]5t %˜0 +  [   穾'N 穾' $[ f+Zg< %? ȷ _ qZ] o L] ( ְL lf^ C?ݾAt g!? L ], ^([B ^([K oK? ƙ"FA !?o.!@ #k !AUoަ!B8x$/!D| !D| !D!;) !E\:Y |!F < !GCFgS!GSv!H#{P!IZt>z!KFWǑ?!LFZwE!LFZwE!NFc!N@& !NWdi!Q&!R;Aq !R  !S1j!S{k!T,!UQ%"ϓO f!UQ%"ϓO!UϏR !Vm,]!XQʿ.!XQʿ.!XQʿ.!Xc&/ ] !Z~?!ZT![[9C;kj!\}Y̸!\}Y̸!]#<~ !^MK!^5#K R !awI !hȎ !hJP e !hoxf?!hb2 !kv* !l YK !nmӤ49!nmӤ4 *+!nN H !p leK!pI>`yH!pA{W !q?PU !q?PUt!q=+/;:!qB>)!rz;s9!rz; a!st˔pt!s q" !tBc;!u"f8!ua7A!w "!w !wz~M!w.q!xvUR!x(%B !yl}7W !y|n a !y .uybQ!!y .uyb !y  !{ލ3y!|[̛Rs!|u F3t!|u F3 !|%YS n2!|/W64!|:‹!~g_!%`>!Ld_R!!U7J! !uf!0 qz !=w85!=w85s!hE|!hEs! >}s!XT \!9ŗ !\!B)!?!6Y!!G !um +!!6鋵 c!hff@? !I~ !Hpqͫs!Hpqͫt!8ek !fX[= S!vs8d !N9!֐4J!!֐4J !D5`!V}t耐j!̩WY!+K@!/Uyo!G?K!v)|!v)|B! Xw (<! Xw!ٲͩ ![n0!(]N? !vѼ!t!}:{-R!#IX!tWB0(c!X/[ \!X/[!ndQ,s!ndQ,!ju!k"a!#j!`!`!`!`R!oSr h !oSrs!3b!Mg_T !J!gz!ә!|!M)!;!'0!Vzj?-!u !nڅaQt!MfC \!-!.Ɩ !c-!c-R!O̘8!e8 T!0^_ ?$![ J!߼[7!ZR !ZP' !Ke!|<>!|<>L!|<>!av{#!av{#?!v!k:!$Bd!$B {"!$B !$Bk !GP$! fW! f ! f!0y޶N!Ê \ !1E'!ĵg*1!Ļ[=C!Ļ[=!#F5 !h*q !(J u!B!ȼҏt!tWt !e&#!e&#L!wAf]R!e, I !e, Y!!ˡHL !l!MY !R,c !/ ![0Bg/!ܠσhK!f:>v!.^,$!f^ !tw!$K]!< 4!MqR !Jui^$!6x !i3N!ۅK!Pm 6!0N!I%5|4"!' ]5!' ]5 !Ԣ` !C4 !!̧D+!nDj !z3 !8o7EY!x#!}P !}P !dbA.!/n!/n!/nR!'pJx!ps ! ‹C X! ‹Ct!*ލ4K !*ލ4"#s"<s"RYj"` "ۉ?"ۉ?D"JRUGR"HI0 Y "}6"}6R">xf">x"Z (" ǀ" ǀ" Ka" a#fY $*" ~` " ~`"/{ "/{ "|~yh5"|~yh5s"BXឬ"i&H"N4Zc"ŚgF" ] ") "6Izs"6Iz $"CxD"Cx"ȩn"fH]ҡ"fH]ҡB"nt "9 "9j"85?"!gru/ "!A "!zC"# z "# z[ "#lv"$wrO \ "%>_"%]2g9"9AJU ":d>0t";'m K ";HG`"&Aޕ "?Eʽ"@c?)Z0D"@տ "B<v"CBK!R U"CBK!R"En"rsE "r ~|"rw"` "sJNtN"sb ="t`>}"tm>7> "u< "uz\wD "uxa"u74!R"vkqR? "w^jt "w7K"xVʗR"zDA剌 -"|v p"|廰c"|廰c"}kubZ3 "~}=P"~DS"~DS"~DS|"~DS $">|r"S#: i"c|"T> "H! "Jop "w"'}V"I;Y"K9rR="x.56 "6W "1`  "u8 ";Jmb &"=| ";; |"^ "ͅ`o v "  "/0"Ϊ%?"hKL"ΰg1? "k"ɔW;?2"zmfm"n #" "/e"3 "U잾"εWQ "εWd "\"hft"I:G "Θ/"Θ"U"v "s "qbKڿ"2٨` +"N%+" \j"{"{ =":1 g":1 ":1R":1 a"$ rR"/p":٨k":٨ ":٨"-* \"X#"L/Z"hr"wyᗰ"'[G~O g"'[G~O"T״"T״"T״s "fH "8i_n""]!Y"xp i"xp"xp "xpj"U24 "€%X- $ "Cn2 "Y-"";aM "I* "R"R"R"RR"R"x%z"陮 xR" "'Tl "9"! "d""fM9h " )!}Tt"p"2 i"! (" &:R "=i"p!n"BT{ 5"t9"7"*?"7"* "c'4 "7u # ƢP# Q2|# nf#l1 ( # nf#l1s# nf#l1 i# RI{5$*# RI{5## 43; c #:] #X #RR#'#iNw #˕w #)[n#c\}>#O_u#O_u#O_u#ɲ\?v#A9 #, ##ԀLb#.@/mJ#.@/mt4#.@/m i&#.@/m #.@/ms #$]#$]F #lc=H#7Rt #7R #YMR%@#ѰX#@jH#7*Y7#!Ź## Y##HmؒK##Hmؒ ##Mul81##]##]#$V6?(#$~4#$&@#$uؐt #%gEQ#%m[D#',zLduS#'>r#(gzD#(gzQn#(gzY<#(gzK#(gz #+J% #+1O&|#+̔ #-s#-Q#-O_$#/\&&HN#0B #0Qn #0Qn#5mf#5StFC#6>#7 @Z #7lY#8, #8#49#:p#;՜|#;?;6 #<5!y(#=.x #>KL #?ԔjA#@&S#@JX #@7( #A9<#Bҫ C#Bҫ #C&ǿv#C ,*#Dϣp #Ez3f?#GJ' R#HDnLs#H& #J0<]~O#KTv#L$tj#L$t #Mf>PU#N7)9)#N7)9)$#N Chz[#OW?U #OP #R`R#S*X̿ #S<TJ #T!_̳]#TVZ #TBj#VA#Vo=#VSS#WWC#XpoR#XtTS#[@*ɡi[ #[E ) #[mꭌQ#\Y a#\Cxn (#\Cxn #]-}#6 #]M=~#]p=Ict#`O(+Y#`#R+t#`N #`R#aiHϢ#bPc #cgV<#cgV< #d nJ(#d %2Y#dL E#dnQ #e,c#f? "#fQ05+#fQ05#gWo 5#hݠ"2#hݠ"d#m }8] #m }8#m͗פ%W#nf #qASlC #sJ=#tsC#tsC #wh@ #w7tj #xs9#xs#x(U?#xFR #x>H#y\O #yxm>KOv#z;v#z97 #z9,:#}]ю:P#}vy #~U <,? #$r%&R #ACz#YM #!w#$H p#Mĸ #M #C j#LrA:# B#HmnQ : #n2Ǥ s#-ů# Э # =Ο e#6I{#pY_#;kõ #?Ww#?Ww#Zd1#Zd16#<#@t0K #%^ #v~e# ! #h|O#]@ #\X K#h#h#q /#r4R#N[ #]C[#);m|#IV#cJ #F |#ϰn\#7v #w_ׁ#v6l#CS#1U #1U#ՙdL# Y#t L#o9#o#8>jmo# q#|V#>uCҁ ( #APZf#'&z #(G b #[ p #4EsD c#f&i # -K# -KQ#"M|L #MmO] #p塓#Xv#Y|d#gz## / #(f#Zg.#Zg.#Zg.R#Zg.#Zg.#p2\t#wTk1#wTk1#L`^g#!Y#P\Ǣ|#W' h#X_=v#O#_Yo a#B8:ϣ<#v}U#&D6#X?##$N|%#} Z#k;H#0(`D#]޵B#옗Ē #%RP&v#\[}>a3#Pz #@(#ij Y #Yyt2 # #NJBO3S#t4Y4 #1#1 #Z $1![ $DI~Mq?$ 8 $&@c ,$Ot[ $0$0D$ވ1h" $ Ev $ z: $ B-A $ S $ AD3 $ ü\H: $o]D$w[ $]2'4($Qrb $?63 s$Dom $$$"Prt> \$wd$ʜ$ʜ$N@ $N?)| $4[$ $;Ó? $;Ó ,$f@[C $f@[C i$V .$؈$؈ $G=N $_-wW$ iBb$7M0w?$ b@n5 $!?bFY$!&_$"y$#$#:eD+$#:e)$#:eQ$#(k v$#(k  ($% c $%

    ,d $?\0 h$@9wg4$@9wg4 $@?tF2N$C7@2R$Cz. 9 $Di 3 $D}JF\Y$Ex>R$FW8A$FW8A $GD$Iu丼E$I! $JUCƚ$J&wq ,$J;HQ$Kr 9C$K}ɋ7 $L1$L|v$L| $MUsv&P$O?Q $Ow*~o s=$Roh֬ $SygTLÇ$SU]L  $Tfw \$To/ c$US$i$jdYnx$kjĈ$kƒ $lВJ #$lv{v"S$n fd %$nId2$nC,i *s$pt# !$p[0m a$p`NF$rUTI$uV}]KCb c$v,A՚$wRIy"$wRIy$x%: $x%:d $xR c $y ]$yY'b(K$z8$z^D$|)/|H?$}@[O $~< $+b c $j&#$lk $Xǭa $Xǭa?$TTR${.)$3<_) $=W $ x $aFa$ͪBZ $L h$\K$ΥR$#h$#h$DJ]?$a~$z $%[K$WS׉N$az $az$ўch. $D@ a"$D@ ($D@$/B#& $$ ^$IF0$4$E5$S4{E:d$IFn?$j* $̩Y $x$A!LM 3$خCf$-v}jN$Dcў$S;A$m/3[$m/3*0$MG[#$MG[$$n؆ $}R$x@JJtB$V=S&$V=S&$V=S&$V=S& $Ã'P$t$#]] aQ$.D $*sLq s$ƴXȗ $L(t$}÷L|$ۃm($]$3h$6&!NI $$l c$}505t$@m皾[$kҒ$}A \$}A $([[$c|$Dњ$KIS$efN$E Y$_V]$Jus0$ܷ s$#$5u*Z$@"1ML$v]=D$jF"$e  $!4]($yNs c$$$%} ,$%} $']$aVz +$ˤ~^ $7!< $7!<$7!<$7!<$_d$YA$$^ $5ێ|$](f #T$](f:$_t$$c$smk %)EC'%)EK%Dcr %b{%+au%3oR , %m[ %m[ *%[ %[ K%[ Q%.% `lR%Mu% ϕ݉t% F% % M(% R +% /Zm % 'SA4Y% X% ,%“~ e%yw %%D}%/b%/ %D % J %o28 %-Ys%GqT % f<ܣK% f<ܣQ%̋Q %v%Vv `%J;t %%6ABoR%UM6 %UM6%"p %"p ( %"pt%"_ %% %%zF|< %%zF|< %'.yW%'.yW %(^Il#%*s,9 %*wSyc%+>'Xj%+& %,$H"jO%,$H"j %,$H"j)%,Ad%-@7dR%-H;o ;%/4 >e%0s.?%N%0mȉ1%0mȉ1%0O Ũ !%0O Ũ ,%0O Ũ %1Ǘ%15s %15s%2: $%2%;%2S/c ,*%2S/c?%3&xd %3 %42ES%5 %6J{>6j%:H;%:Ϭ Q %;&HIt%;7CN%2H%c*Re1 %c~"$ (%da8pv%dS %eKœ%fҹ:%g~8$I%gĖK%gĖK%hq9m c %i/%iJ|%j7 %k^ \%k5d&/%lKPQQA %ldW%n:YoT- %n"T"%o֊dSY%o֊dS%pc vyL%prg(e%rICagPX %rod %tьL%t8H !%%uvIi ,%uvIi%vQ|pl %x$(AR%yIHFJ%yo +%yz/Mi %z& S%zQ*$%|x, ( %|x,h %|3 %|&b %|<&F%eg"2\n %9*%zHJR%I-%O[ %iKJ %٣%'&[\ߖ %`KkT \%z`P %mj% lD % L|%[ %{  %A +%A]%BNuj%BNuj%C7C!X %C7C!s%h{뇭v%jp%m}b%Jjʲ %nJ (% tj  %xRK%$S/%T㱸zQ %o6S Y%j8 %%Mu#%+&S%?2N%ͬ%HlwV[ %`v%n%%K{" %V{䶵%iӷ %R4U%`%0ݪm %Ld S %fDK %{Yw< %{Yw< %ڻ|%Ξz{%,堡 %у5%K 3 %I%op%Cax %0%y QQ%NS% E %ȬfljQ%#)"Ws%w > %w >%&"%e%"=d2 %, %ٿ r %ٿ (%M^]0$%M^]0%Ԗҟ@,6 %: %P w%֧6 (hG %]a2z!%vd %)o{l %,M$ %BZ[%ژ-;7%ګ28 %ٍX.v %/%6xv%X%[:V %~f.%߾x%߾x%U25?4%d%4LHk%Me|q , %4~P#% Zv]%S %S%S e%~k@%I{qԯL%I{qԯ%;7)je%F%F%F%0٨k%WZoN%4e  %C;*%2? %2? e%;E RA%;E ,%;E d%m %Dw8%ˁ /C%f %%raR%#V %}hD %Q!%Mԥ ,R%Mԥ&%U}dL %C=dU %> %qna%_.d& /j& -t:\ m&!nf5 g&!nf5 &KQ&c*V&ntN&|+ ( &|!-<&Ks &='.& N*\R& w & "5C m& ks& &;3&/7u + &qp̅k &e5 &J# c&O͎,N&M&WT&jWK&fM_eh3&fM_e&ӆA &>Y&Ct0?&oX٭&x ,&(HH&(H &(H&T& Ho a&!R4 F&"WNL (&"dH%&"q&#V' &$3!2S &&?B &'!dN&'rԌ-&'rԌ&(;fm2EK&($* &(ͯ=L$H&)(=cq&)(=cq&*s}' .&-C)j &-IYZ&-|&.\ub&.\u &/V%}E&/`9&/u&/ c&/ cS &0?n&1}& &1c6 , &1Aj&20dc$&2]4&3eׂ i &4nzO0(R&4-9&7W3?&95.H"0&9)]4@X&:_w &;Ƽ&< > &=}Y&>-p¿'&>F &>Z&Avn`&AIv&B'a &C5piAV &D] 6ge \&D6`k&Hh>6l8&H6&p #j&Hd{&KZG?&LXइ( , &L\&M8$?&Omw+ $ +&O>AOM &O>AOM&QYng &QttB&Qt &Qt (&Qw T&QxRS &Q|&#&RJUڜa&R%Ӄބ&Sŏds &Sŏd&Sŏdj&T E[# &V`{t  &VS&WTɃ^]&Wʦt &XI ba&Y q &Y9* &YC܅5?&Y^DAP&Z_~<' &Z_~<' ,&[c q&]F*#&]F*#L&_tJ[+&_L 9 &_L &_j4n`&`]aq&`]aq] &`*?&a?򽨸&bJAJLj&bl(X&c0g&da]% a&e_Q&f<|&huCկ  &hȘ * %&iT![G&i-֘ &jPX&jx"j&kQŵ@ &kQŵ@&k#兴*&l#&l,I &l,I S&n,U c&om#i &osv@&pĶn &p@ &pC_. &qC-t&qeK7/[&rχ &rǗ@&s?v &s?v s&t6.n&t9# &v,pV&w!&x+V_[&xkk ]?.&xkk ]s&yS &yK&y"J|&zAhk #&zAhk c &z5+&{-U &}m &l\Q/&mZ։ ,&I_:&} ? &~L0WQ9&JԸe[v&(&(&(U8&(&(&xe{mSD&&1D[&'e4&'e &'/&&'|m &c6Q&ұ &ĈR&{0Ry a&;5 &;5&;5 &l Q}&st&Z<&y% &[KJ&0|(F&0|(&Ǜ_C&g8ާV&TaX&TaY&N[&Fna] &cv| &0ٟ&LPk&Ry &Ɗr&3M N&<}{ӓ? &9$&o(N &e|hH&e|hH&{8&Du&Doy=&Gq&ePjBt&Rz&6a&6aU&6a] &U͉S&U͉&Nyi,&Nyi,&䬋o&!8}&-Q&nj &uN&&a, ?&t~ġQ&t~ġ]&N&S{Ҏ&S{Ҏ &Ѯa &=&&ކs&דYl&J= ' &"mW -&P F &zKC&3p<&DL&k &k&-4&6m &6[^κ s &aB)f &EAo&#2 &c &5' &6 &"V.S&"V.]&"V.&{niwC)&[6&ǩdXk_&ȄWIR&1'O& rl&0VvK &Dp_&3^_.d&ް\&ϐP4&| 1] ]&Ӟx\&Ӫr˅ &Ӫr˅K&ۡj# &ۡj# &ۡj#|&ۡj# \&3.`? P&X4&X4&vԇlx &g/ ,&(bSXM&د &6r &ٖQ&ٙbk c&d.*&d.* &Qzu? &ܼ;^E_?$&ܼ;^E_ &w).?&om$&T&ⷕ'u b (&JKPa&$HU#&]cc&A1+ &'Ļp&: .&>С$&>С&㤆_| &zH?N[& &]iZ&fcR i&`6(K&s&^GVR&u t&u &u&11&/v|q&Ƭs&b? &T{S&B&}&I~st&N&L% &N&L% &zqoɟ&$')? &|m\ &&L5{ &&L5{d&(9:D&(9:&(9:&& B! ,&d _ &wbs-&vY* l &Az, &j 'LP 'D-n 'G䆡'; 'DDr(?'|9pK' {(' 6Ź ' jTt' ]toR ' }'BL ' vq' iY'g ,'rH'4{'t '2-[R'z 'b< N 'aZ.O'aZ.O'aZ.O'aZ.O'aZ.O{'aZ.O '|g`Y'sj 'yS'YA{09 d'YA{09 ' K'0=eU'EV 'EV $'EV ,'EV 'EV 'EV'lQ~!']y']yU'kx'&v<9'?Y]'?i!tP'?i!t '?i!t '@qN'@vduk '@N 'DI`+? 'En}s{ 'Ez~7 c'E1 'E 6'E͍ 'Iz2 'I@'I@S'JۤG 'KR-s 'KR- a'M;3_,S c'M;3_,S'Mn#Bx 'N3j'OUDV 'O, "'Os[#Z'Q%r'Rag $'SL;! 'S*m4~'TEGŐ'TEGŐs'TEGŐt'TEGŐ'TEGŐ 'T̛3v'T̛3v $'UMƝ 'V1L 'V24'X\)# 'Y2(nL 'Y2(nL 'Y氯 \'Z644'[gGK'\TC'])sy!']_s& \']ߔK ']&q٢ '^rąjKe'^rąjKL'^rąjKS '^rąjK '_jj '_-?'`"`sf'`"`sf '`:(+'akFP'b*\gz'bG"j'b<'c\*G;'dB'd*i 'd*i] 'f5^'g^! "'kAy8'kAy8'kAy8'k('k 'kM/ T'l} 'l} 'ln  'm; 'm1: 'm1:'mU &5 'nZM.>"'nY'p3I a'pN\ %P 'qIVd?'r='rL颀 'rL颀'rL颀's @` 's#J=@ 'sç|j h'u#CNf'uk{N 'x@rS'x@r$'y!To''y4s-2p2'T۹'PԼ7 '˃&E'_}> c'̙>(s'Z0t'YV'YQ'-p19'iZC 'iZC9'k '51'PGk1R'"x '@a0?'>M + '@v 'L '|_ '҃腆 ' gk '+^R'N$p?t'"(7v'h%G'F6i ,*'.roU 'a䤏 $'ށ }E'޷`>'.i $'Gng$'؈'v `'9dye's\a-{'''|!U`Z'4Dt'K '?gjT'^N'c ?'ߕi< ('(i+h'챷VW j'7['.U ''\nW'x1L'Gqt '׆H '-$b e'Bb( ajg|( eN( |HR( %F( 7?( o|\l8 (r(!V (!V(,wnM (m%5&(XD N(AS6*(m>](^ (2" (c) (maas(K]: (Ί"D (8}'@ (DQ()Q(L$2RF ( kk( @0( W*c9( vOo? ( & (!sVMY(!sVM (!sVM 1(!sVM ("{t%(# (mz($#w:($q8 ((i#L((Dx,((D/C((s=N()9_,()3v()3v()` ,(*h+,_SC`(*Lw@(,C,*wN](.(/ 4(2":u(6wmP/(7`)(Y(7Xoj(8ې (8ϓEM +(9.(9.(< N((<=2(<=2 (=~AO(=~A (=kf_t (Atspk$ (BF)#(Cq$(C6ɀX = (DY"(DY" (DY" (DY"(E2(EA]b(Rnm(TѪV (T%Fa(UHzt $(Vi gz9(Vi gz(V= S? (VaQ(Y[Bq>}N(ZAtOC (\v (]u|(_ 07 (_ 07t(_ 07 (`7dg(`MϦ.2(`П(`Fr (aXTYR(a,H]_ (bv (o8cHt(o8cH (o7 x5(o<^R(p)QXo (p)QXo ((p VY (rW}B (r;E(rh:hR4(rw^(d{ (s, (s, a(taxD(tQ D4(tQ [ (tQ (u꺀e(u꺀e(uuAP(v:L7 j (v81V ((v|0 (v|0 k(wH (}״sL(}״sL(~ ba(~2L (~2S(~=y~J$(~Fz"D(~^ (bjs(m(чvny (Τ(PJ( d :'v(h(/D=" , (ݷ$t i"(Ɲo (qhe (qhe N(qheb((ӂ( (lkUd([N (%@ (aQS(I(Ϯ (GTn \ (`L2z (3׈((Gt j (iuK(iu(pQ(p (%0 | (%0 c(Y# c (M* \(l[x ("m (AGZ(AGS (AG (AG(iqP( ( (4`K( (Ơ1J: (v(M8W)Q (]8#  (kװX (kװX(<: (O`X (`HVl(#"9.(4Zs( XpB ( XpB("b(4{(c{(t*Jt"(ug ,(uz{(Y(;o(}\(48F%Y (Q?d(i(le (T.A(^^(^ ( '?(UtY(,i܃(/P_Z(1!S](K gD($L (I-lI c(Į]T(a~*R(4k(µP3K|(Ü0t()nI1*(0(yR ([П(3'Hw j(s $(Ƌ $(\L (Ǖ9R(?s5j(~# (S)vT(k=v(k=vR(qk47(˺dPY (˽==/& (˽==/&(@\ (Çf(hj(u6 (. X(. X^(w-ɵ(ԗzʝX (1 R (1 R(f| (fzq 5(rї(جLyW (}h\(DRp(ܤ2輽N(ܶqEZ |(*^*v(ކʂ(ކʂ(Fj?K(J7 (⚅iq (!rH 2_(.S(ެ׈9(ެ׈ (aPt(aPt(aPt(aPt( r(S2&̈ (qE (j(V j(yf(Tp5(mvQֽ (mvQֽj(mvQֽ ,(uM (wi (ﻸr (ﻸr (a (_}/(;: $( fm!D i(dY({6W (2/?(:L[U (P7K(PEp1L(}?(_;N(nU&"K(/zR(-, (lLeN (d s(1_/ m(=K(=(39J^(4 )(4((4( (x:k5j($6[(?)(پ ,(9 (*V )ʸdv)zγK )'E " )Gy)Gy i )us))\)y^")y^Y)) H3} \) )< 5)  h) 4. 5) F֚ ) GC )@.60) F ) F \)%=J9 )X i)r )ara7)Y#)uga)+W )+W )@\@[s)Mq )L p ){ ){)P)#B )E )Jv )+ a)+j)+)~1$)ڐ )M){7A;)UU4)'- $) MD ) 3{zX) ЂN) ЂN)"rs*)"r?")"þr4)"þr )"þrR)#v )#v)%`=zh)&Ci )+.ݥd)-d?ta).7 x)/S8)/ )/i s)/i )0>X2} )0˜,)2!]u)4ֺ)5.vQ)5[cv )5ލw )7BMxm.  )7CGJzk)8Z滚ڑ))8Z滚ڑ)8Z滚ڑ )8Z滚ڑ)87?9 ()8V8)8V8$):P?# ):P?#T):41y?):41y %):41y):41y ():Y%J):Y%Y):У, );6 );J )=: )>6K )@@)Y)@&m)? )Be%1j l=)B\<)C(OM %)Ć8 *)ExB)Glw65C)H;T5)H])I\,S)L:E!R)M8w )Ne)Pr T )Pl4[(R )PaaHv)PaaHv T)RBB)S?$ )Vl?)W.}R9)W.} )Xз@x+)Y $])YTI>W)YTI>S)Y v" )ZQ8$q<)ZQ8$q )ZQ8$q)[ i 3 m)^+f9$:)^׹A5 )_׍- )`B,wSS)`B,wQ)`|%(G)d# c)e Uh)e Uh h)e>-v )e  )f.9 )g3 ,)gE)*)hO}j )hO}t )jwY3L)j3r)km, )mZ݋ )mpK)m9N$ c)n%H)n6#U)n:$)o>,*)obuF)pC[ )p6~u})q )RS)q(h>)qcP )r\L)`)r&)s]B bO)sw)?9' )spA )t"ؕ)t%pʿT )tmcKL)uu]*Ky)uu]*KyR)ux9 )uu ^)x^Xn|j )xvu )xvu)xG~.[)yxP)yxP ()yz;^ g)zOl)|_gS+v)}@hYǸ?)}⛱As)]LD I);N)-^?)&7 $)>q;X)>q;)>q; )+z $)W?Mt)W?Mk)b#& )SShoB)/7 )})}R)2' )vs+h )WD$)G )[05_Y)WS48 $ )$(YwQ)$'Pk):*K")OKOy )A86 )/Xf )/Xf?);aD )Ɔs)O1( )+`)y )KC )x,ȅ)f >Ft)f >F ) }+) A1)=޶K])R5hB D)R5hB )g.\)ixAC)X:|s[)4Z80)4Z8 )D/b)&ñx)xe[ )Hl^ = )7M<.)JgU[)o6*d)FQH 3 )eep)L )-))-))Jw)h ) 4)GW)HWq!td)i<9x)nO`;NE)nO`;)Cdv)Z).). ))%n;U )@ќ){j)bZм -)g(% \)9j)-Xۺ)Csx )Csx)Csx)C 1pK)&hr $)w9m )XL-M5` )df) ($9) )–$)[qm)cUk)Z_lGIS) Z ) Z ) Z)q! )ks)8ب" ) )QMg)xd}c ) X)S^v+)?3K)6 m )7cR[)ͮKN2)OIX))! -):)%KUF8a)%KUF8)zͧR )ɄN)籅 )6OB )/#)/#)/#)6<)~??)$fL$ )YN $)C)CR)Zn ):% Q):% Q ):% Q)ӄ?k) ,[ -)َF)َF)َFK)sq˻ )4)< )} )7.}r)[Tt )'c& ). a)ܿl )O=M#)|:!)gݓ )!Y )6"A#| )Zv2 ^)-KL)–")–"D+)\QJD9)Zlm)g];)g] \)a )m)2qd )'Zf&u)QG?)BmЯ)-n8(L)5Rl*)?+KS)?+KL)6 i)̆?)8Y)52|d)52|)fJ ).va)pzS_)\E) )k )#o!C).j!)f)NCT)Wk)tW4)'?J)1(k) l*)AxR*~ pB ( *I` _S*S/$s8*) I*5., # *sY *Oz*j * nR/ * 8E 3* W* Dj* D ,* (ͨSB* (ͨ* LY* P0D*jXJ*jX*h&M $*#`rZ*ގi%*M&*M&*>܉*4qV*"R.v*q!* 6< *6M*{*6Uod *?d2*ɒ *!8; *™*i J:*xD%O*EGԉj*X'sL * 0L$f* sצji*#FQst*# euD*$G0İ*$^Z~xOB?*%L_ *%N(k $*%7 *%7*%7Y*&T.hB?*&\*(_rr*)/$b/*)EnC7NJ**7*,mCw&*-l3$*/(iա]*/-ʀ */-ʀ*/R$` */R$` *2IUZC*3֝w<*3 I4*6i]rq\*7oy 3*7գ2t*7Ȇ0K%*8#`\5*;Z2TV*=B:H*>I`*>(շ *>>zbVS*>4 *? |th *@ *FOt|*|*FpQ#AF*F*Ft1*G1)z $*H_Kn *I4*IҶ3ty *IIp5*IIp5*I:LR*I:LS *J}R*J*Kg%*M'RXKs*M'RXK|*M'RXK *M*Nf@ c (*Nf@ c? *P 67*PΌy *}J\' *}0zp =*aZ*g (*5,Y*5,*5, */UW2 $* {[G*TjG *dQ~ *dQ~*3~ *~{[!*R. a *pM +*lԲRE*f(Y*grިB*T9< *p6s*t|*Njέ% h *vΏ*vΏU *vΏ%*F坰t*4e*4e*H؋D*A *+*T6;*ܳ6* j6"*{ӇE*,y*6FZ$*Yjݔ *|2WQ*Tˊ3/0*Tˊ3/0*:`p'|*B*ob * V+t8G* V+t *Ҩ*4' *yIt؅gX*q , *t{To*t{To *N'L?*2NMI *E&1 -*\&L *qwc*}iaN s*jϻ2*>Q*&*,/ c*_7H D*G w*G =*Q #*^8DX8 ,*ɇt*Z!*Z*B+ $ *c;C*m}Q **z8SJ*^:} *ٓB*ЁRu"*du["M *N *L#*N *Nh*c *F;*L3۵q *`sr9*̪ק*qIP z*1^-*R]T?*o.*9AnP*9AnP*N!j *}Vj*;W,u*5X*Ht*Wy$'R*cX**Li*ĉ멳iD*zĭyT*!QL *6v *)?*r{(g *Qp`?*:}R*PS) *)_F*Dq's*'ð *$^v $*s *Χ?*ᤡ*b ;*DpB*hyS* /װ*@*:u .*+9*Ҝ'v[ *Adx  *Wp*A)j **'*7*DJCkn *1a *nKz *qjwg *vl^ݣ]*ڤ= S *s^ * zZ|*Nf-** *? *cø2* \ `*RBዯ*6R*qӕPQ*qӕPQ{*X=eIt'*X=eIj*E~S**!Cd *m`*E> L*$ **׬ !* *̱*DJ*Qq\ r*nq $*aZPu*aVD`*H`H6$ *rVg! *F* L*go&*go*@VRQ*@V*eF*koh> c*v * Y" !*Ph*Nv*s9gR *LSTZI/K**C *_ٯG*L+*%d*P ?+=u/eV +Z?! +"UtV! +"UtV!=+=+Ȅ2ii+: +suJE+nE|o ++|/Zoy+ćR+ !K+ {zej +CN +˃c>+Y3%+3 +Phbv+i+kӻva +҅Rg?C+R+@7 +5miq+/5+>7 +>7D+A#( ( +A8+BtC+BԷiSS+Cl3y+CxGkj+Cд~m# +Cд~m#+Cд~m#+D%!0+F<Z+GZSK+HYg+K钲*/+Lp|(K+MRcM/ s+O7+PI +PW+QBP +R ouyWr +S9gK+S6= c+,Ut+_^?-e+ڀE +`S&#F)+ +W+/j+&=(+KTnF +j's +FOe+@+@d +zXtt+rT +!( $-+H` +)NWq +N$+N$# +jp#|+1_1:+1_1t+rCo a+" +/AB+C;+C;+j5+~F (+xN=+&hNv +aos+ao+T +UD Y+UD Y%+Rե8T+S , +&@s +}^q +S:'R%+1Of\+ I_~+&il+ǔ0+uA - +y(ՙ +`l +4K +%y +y'+ DS +c?+ט`&S+u+҃ +(q +dnpX+o9+VfPK +kǩ+z8?+]+C_$+ÌgQ $+_o +$NgZ +wO s_+䌇 \+}f%+w|5w +w|5w +w? +A-#?+ s a + hN+TC( #+=X +@\}L+U3ݭU '+]  c+6S+s11?+ \mO+oj+HfK+bq+/+Es+{va +g.kv 1+ʮhS++f|R+' -+{ڙ +A + )jyЌ+۹7xx + W'< ,+` \+KƧAv+KƧA8+KƧA+KƧA+5Z +[K +z7 +z7+z7 +z7 ,+z7+z7 +6s˜c]+ Vk(+Tc쐅#+Dž@0:+~ f?+yݲĥ+ʃI؈ +˺[-+Wb+ڄ};ys!+ݺ9OH [+f+jcR++OT}6t+\y +ҍ,+Ӫ={+'t\+lu+ +ؼ9-+ڼ7p)+|CXdL+ێ  +a+ܯR^ +ޥ7{ +ߺh\4+'U+']+5CY+2(+EpsCR+EpsCS+=l5MWL+=l5MWY+t,}| +(E+X.z+ O\ o +-[++)@mnC+c2vN+c2vR+uـd+' 9 +$[a/?+zQ,+1H+ڜ2f+[X+~++Ubt+隹 f$ + `I + `I ,+]@uU+'G#+>(+k 3+=)+=+ti^ ވ \+Oi2 +EǍ,+M ;+M -+'N~%+ +~Ƿˠ+$r*x +ٲJ( ,-#h$,Hp9 ,z#|,[:,?Z,,ɓH$,t4 3V,CI*,w ,\v * , 89(?, 89( , ^D?, kY, ,fL ,ۜ8,-'X,} ) ,3 `D&,a|,rgw+,oE $,? q m,*HpS ,*HpL,od,],Z\,I{\.,I{\ ,t,kV l,#ɑ,o ,4u,WۛG K,0L,>2 a , BH@ 5,"&ϴA: ,#^).,#^),$ǪHlw ,,$Q!A ,%v8N,%"vNK,&U G,''#O ,(.Wf3,(.W,(;6 ,(C࣪ ,(EpY,(Mys,)* _,+fiTf,,kyv,-GbZ,.P> =,.í * ,. f j,/5qt,0nv+Ƶ,0w ,0w ,0?]" ,1S~<b,1T ,2,D,2,Q ,2,,3#  ,3 x,4&ѓ9s ,4&ѓ9j ,4./,,5;|2oT ,ekwZ,,fE~ ,g,,g} ?(,iؒ\,iؒ\R,iؒ\,je Av,jw@,k ׈ ,lV'$,ng,n*Z ,o?(5 a,oq2'<|w,oq2'<|,p+,q_ǥcC ,q_ǥc ,q_ǥc,q=R*,rvDk,rB#~,tQ<b,tQ<QA,tQ<.,tQ<K",uLR,u 1 ,v5̸@,v5̸@L,x EDN,yt|,z.=if,{/y!,|Zeݧ m,|\ƴY[,}@,~|\'jN,~|\'j ,qSfԱ,аJ,,vlgo \,vlgo g&,^t- dW#e- r%\,*K- r%\,*K- `C- ]-t$y> j -n7-.hQ[-.hQ-.hQ -.hQ -9WR -o " -S➸ -@߼c-+0F)"-f3 a-.IXK ^-if*' -wpT-%מB -n3--tUmt-c*v -)d-6-`O w-BoK-mcfX (-7U?- գ#xQ-!,`ODS-"c -"c -&+Ė/-(d4Ld-(w]XcpR-*]rx -*,S $-,P/$--=X^ x-/ Y-/bf-0UV(P?-0UV(P # -0\nR-1t!|j-2^i-3 I9:-5N-5N (-7o5^!-77e "-8aJ -8aJ?-8aJ -8*<@ c-9 UL[ -:|yY`u-:|yY`u]-:ԞC4 -:y|# l -:-;6#y -=E--=OG{-=l=W->=-a ->Ňm-?|DD-@eu]-@eu-@eu-Bfip'j-C=\ل]-C -Ej D-EW -F%fA9 -F-h-HiA[!}-HiA[! -HiA[!P-I3"cRm-Idq[9-L& =?-L;5]@-LD -LyK-L߾Q-M`XY-M-MR-N._ K0-N._ -N._ -NcA -Nd?)-O>!Kv-Q=׉=1-R, a-SvѷD-Svѷ$-Svѷ-Svѷ-Svѷ -T:6P -TuU -T{[-U; -UI|f-V}?Nʌ-WO -WO-X'Z/ a -X'Z/t-XOrI -Xn = -Xn -Xk}l (-Xk}l .-YYp -Y)tTO" .-Yk-ZQ2,q-[%F#-\QTg s-\S) -\)[#-] S 6-]! -]!-]GX -^k-^XWF -_"(D-aY &;pe -a~g-a/o-c?U{*-egN-eFt -eFk-fp=-f]% -f]%s-f܊v-g --hYːC -iB nt-iĬ -j5 -ju-j׺2a L%-j׺2a Y-j׺2a Q-j׺2a S-k :-kM}:"-kJeZ.-lpYL-n]՜-n]՜-oH. -p[l` -p6 -sc -t4%  -vk! -v) -wVZ"gY-w;-w;-xpl\sL-xpl\sLN-x ;-zѯ -zl?M>]d-zCQ -{f g-{OZ!t-{ꏏ` |-|E_@qO-}SN-~F: z -Ϫeɢi -`mtr3-L3B-L3B-Idc| -Idc -`rJj -Q D-1: -1:-"/2-̉`U-Bۯ 3 -uX -q|-Mz3d-{|qjE-A;k-u -u -<_SU-*ևQ-GJ = -3] -3]s- \-`#gYK-`#gY-`#gY -ሮ6 --e (-e -/-.^j -M1 -b ] -l' -L-\FX%\-Juf4-(֟ -2PR-( b-w9+ -ۋ0 -)3Y#-5JB| 2-5JB| s-<{Y-OM -V\w5}#Y-5c} -0ɘ-+pV - <-- Q -bʢD-^Ӝ+ e-ҥ-v9ws-*xZ n-xY $ --N --%7-%-[bx@-B/` l-qFhP -F7 -F7?-F7 -F7 -YK6-G_9 --[ Z -ca1Z->ik -:m]L-X( -M-2(*v7-œ\ -Bf^j-@-ƭl:K-(7v-@--~`09P-耚D/Q-ʂ0Y -M9Y-iϙ0K-'Υ-'Υ-O[ (- N-#z9-#z9K-Q _"-Q0-֤?W -6z-}l- ,- xqm-GcN-ؕi  .-vnKk%-vnKk?-ڒ F? -ڪ*OV-ۡV -ϊܻ7M -(-- -UX"@]-ާlA -޳y3 -޳y3-D$-˄tI -$2W[->1$W$ -N$?-N$ -d=x-.& Ev--z>06 - # - # -Lpq -کq-罴0M-$[H۵-}B[D -šR -\!4S-\!4SU-zHCG-]Y - UG- U;- UK-eՍ -'LS -[ r -"X~S-Jv -. I -]pS-owLt-6c-?b D -xs6*o -!OFr -[YQL-[YQLQ-ʾZQ-ʾZC-ʾZ -ʾZ.G@.G (.G?.ֳ \ .ɅK.#k .$c.$c.vGot.vGot =.Tt.K6L&.lTP>.oH)._.i!_W[. e܇. CN. ) . J((\.ƯI .f\L_ .f\L_.qɋ .q׳".S0.S0.S0.S0S .S0.\I {. R . s. >o .I #./憌Pv.:T/.";.v,? (. .I! . )|d.=bQ.uw .uw e.uw .uw .VΗj.=Rt.[K Y. ?.".os.#@-~.'/ԕ1@k $.(F,j.)q6t.) {=.) {=.*|,!w8.*`ﭿ1L./ȩj ".1pN .17sܞR .2mC^.3g p ,.7y%m.8;ngj .:BNc5?.;aL .& #.PVU .P.Q.Q#'wiR.Q`LhoK/.STʽ.TDO c.Uךv=:.VOZ/!.VcwR.V`j .W1\^?.W/ (.X+} _.ZAl V_ .Z8 *V $ .]/.^~%._I 8._S4 .`FB2.aNϲG% .aڽ.aڽ.a۪.b1۸ .b1N.ch%*7.c^^ .d^A30G.fg*x.fYX.fؾHEL .g; , .gEgY.g= .it .i7A}.it].j!38a.l}.l}.m#N.n!w3U .oH(4.o"O.o"O.o~&R .pD3F.pyMR.pոx?.pJ[ .qB-pH ,.q(Z;.r-.sKx .t{L᾽ .t\ .t\ .w¼$.w .y|C .y1-U$.yJPo.y,f>.z$ 2X 3.z}ϮR .{< v.{!T.{b @+.{b @+.{b @+.{ʋ.|8 ^.| .|O; .}/+.}/+.}/+ i .~zqh .~ }.J.'K.t \.FF .Mq j. i?.Hf.f"Y.f"Y$.di; .qj9R.qj9!.C@ |.DW T.f.bQd.(剷ͱR.(剷ͱ.2^#f-.}ypqC.AMҝ[.%?.d!Q.}}Vgr.}}Vgr.H .H.ĭC2mK.ĭC2mR.5]F ;.8^ c.2 .<:'d.EnJ. I m.HaI .|Ѹâ.a.@w].N!2.1, S.H.Kˀ.:X(.I#I:X.| ּ \.Ic R .§3f.x 3.l<| .QY.fe1./EoS.@콾iQ._RۄD.e4.K" .WD.یC^y.K<$+.t].t.t.tS.7 #.C Y2. .$_'. b*x . b*x.4_VU%.νq a.@.G,s.6U.C6U.v. .Ed.qG^! $.(.>#'.l5. s .z$&b0.--.bNk.VW9.4lL.`j:.`j.I .8I .~k.M H .c& Ė .ż2? .ȁh&N.c"k!K.0.u .xY.@t.o XS.͆c\]jA .͔hٗP.͔hٗd<.͔hٗ&.͔hٗK .o ^ .S>5l9 (.AQK?.ZQ .26Sygn.Ę .ՄtqS.;>W.חH w.lm݅) \.I[ 2.+ńˌ.xwq.ژ[ .ژ[ .68[P .DM .uS=` .Ϝ~.޽0xd.׸ML. .2Z.u%Q .J .hgxe .GENV.RbwZ .ʪjt.lbm.ģ?...Bc+.d\}`a .70 .MDR<.r .> .; . Q}.h >@ ."-q"w.0j{ .O{ #.b&Sa:.tg .xJid.,.~wĤ .~wĤD.Ё*l?.Dr.Kg}6s.u :WQ/sE//| ߒ/ we /(Q</e l/mMQ= /5s/I.ة(j / r<@j/ r<@?/ g/ 񻅢t / 7K/ /v]/ eOPSL/3NL/O֌ /+w /$LNR/1f _ / _Y/42~0/42~'/42~/42~S/?@ i/,c/-^6߯z#/-Ban/.<(H //հ /16"ws$/1"s/ /2 \V'/2 \V'!/2e޽.f /2]ʷ/2(ǻɑC/3C:Ze/4 ߸?/4>o0//5 /7b1/7e\ 1/<- />n,ȲS/?mCk/?5S"o?/@2b /@Jѝ\R@/C?Jg r2/C? d ,/Cctj/Det/DWg\ /ES2!JC/E 9 j /E ?/F.i| /F.i /F^3s/I(K/>+Z \/I8 /Kq &/L?՞X4 /L 0/L /NaR0/PPZ Q/PPZ /PPZ /Qlg10< /Q˔}=Uk/SJ/T/ULcRH #/ULcRHk/V/eɪ[ /V/eɪ /WX2px /X>5[/XWgL/^LnJ /_@OAZ/_Ee'c c/_+[</`dP R/`dP /` /a/bvN * /c-"9/f7_M|/gAq s /iT /jaS5/jkgosN/l1k/l/lDנm1-/mԉM×/nv~ /o|gW/p4ʔC/qX,/qr&[6/r=/r/r /r$s X/r':ye[/sC[  /s)ʼn. #/t~iϭ/uSաif /u%N/uj/vVa k/vVa/vVa . /w9٣ /w1W/x/IhTd/x3P/x3P/xK1k /yόN\/zKхb/{,# k/|E y/~0inn/ Q/01v/!j j/`Y3u /rN/x)-/EdsgZj/A# /A# 6/A#t/H}3/H}3/H}3k/H}3/ZtI|/!\:/!vu/hB,/~9/V.E[/QGt /QG (/QG//'/H`ju$ /3fq/O0/Cm`l/iAt/j  /#R/ /sN /Hc-/+]<? /1-v/nI4$ /R| /R|? /{mcAnS/u C^ [/  /;z^h/P]C \/Xֺ/{  (/}R˅( /Iy/ ozD # /oiv+/۰"/k/J:< /<yC/ U9 /*K /CI?/7;8Ť (/7;8Ť?/7;8Ť /xE}t/xE}/2mO/'ţ /'ţ/G I/X4j/܌9Wd/sz/͓d /Ei&O /W'k/,GI{ $ /z U /|My/u届v /zK(- /W?w /ٶ9*/ٶ9 /j/N٭v/Sϯ/Fl /r1* c/"7K?/%l /cυY/O!/eeS(C/ĬX/Z/2]/+L%\[ (/eAj/;=]? /]SvN/]SvNj/]SvN /˅BQh /˅BQ /4r/= /΂±f/΢եO?/lYe /7cK/= Y/'/'/'@sN /.[s|e/[xT/ҚtfS/Қtfe/Қtf/Һ{u< i /ҼA (/ҼA?/ҼA /+s0S/E"[/{E\ZR/Њtt %/2 % /שO^v /V/"%aG (/"%aG|/؎ a /W/̧?//ۥHA"/ۥHA" /|oD/UYv/#`S/#`L/#`V/TFkSx/TFkV/TFkI/TFk /TFk /TFkZ/ uv]/:5/:5 /:5 (/:5 /፮6,/\, /@m5 ///)'AG[/@b/uO/=s /x' /f/fN/T)/WxtwD /9L/`X1 />$/d/P?(/(hW /E/bi /zTu/71?/3k/ǎK /ϸke d/F /3 e/f4'/f4'/2% h/O /l 2/2j/2j? /QB0B0Bk0`S 0j0sF0gj03 ;?03 ; 0_m 0K9QD$0ǚ*+d0o0#s_yR0 PwoU0 >v(0 fYwB 0?bѻBm0?0@0:wR0A+4wm0Aky2J30Aky2J3 0Aky2J3P0Aky2J3D0Ci;R 0F7[!0FsbkfQ 0Gw}Z 0I}0Iv0JQ#0L0shhR0MZ"ku[0MZ"ku[0M32 $0N6t9ݸ ,!0Nf)o0Nf)oL0N{.{0N{.{<0N{.{0O>}X0O>@}S0O>@}L 0O>@}Q0O-L<C0PNkk^N0QET.S0RO 0RO 0RWКZ0T ;Bͱ 0TVb^U0TVb^50TVb^0Tq]A"Z0W@lV0W]?0XEƣf0ZÍ!Q0]TBG90^r740_ȕ0aC\ j0a 2z0a"We_0acP 0cAj90dZU|0dZU0dP`~0d&#v0d0e]fY0eêas0gq &0g쭳 $ 0gv"v0hozR[0hD"py0hD"py0j e 0j?! 0j(XK 0my&DN0pk%*A 0s gS0s g( 0s(^e 0t볃O 0tN]s 0uh;d(0um 0v+z ,0{+C0{+CL0{EiX0|Hv0})V0}%<=0~>M0~>M 0~>M0K߉Y0`/j0wx0~p0Bo@@fV 0Bo@@fVt0Q rT0\s 05% #_0+ SaI 0\#"0%b_S 0S 0,L0Q=Q 0=v0U[ 0U[^0U[0q& 0'kY80K&$0 0t՞R0t՞R i0,҂' 3 0\ 8qL0240eҞ0eҞR0eҞK0E] 0Sv g0hO_%L 0gD m0Y{|0W'- 0/Y> +0y0ʹcRU0sO 0Frc (0*^f04 [ 0:7~t0Vw_0'{aW0n^0Gf0s0l# 0iUC<0gǾ0gǾ0LȾ$ .0?Q0&@k0/mF4 0eS#0 ˇ?B 0 ˇ?B0~m40mbF0o׃05PQ0Yw 0tK('20tK(' 0!m 0!mt00;I= 00;I=s0<2j.0'0;b0Ty%0kr][+ 08_^0 (0; 0]0#i| 00֚{}d0t0>(0>0>0>C030n[0Bvj0Š[Ko0=v0HvM (05CS05C 0ĥe,X0ĥe, 0ĥe,0ݛpk0ݛpkR00ݛpk0K 0>Jl0[|0Y޿"0ȬmSy#0*QT;K 0ɛY1 0ʐ[?&w0ʖ12 0˚ozxRt0ȉR~0:BjV0̪Z[0͏Ql0͏Q?0B~ٞ0p0ϑ?=(d0ϱҘyRR0ϱҘyR 0| 80Ѽhx0iq0ҾGZs0G$0G0\O 0_b10_b10_b1D0~ \0UR-u^ a0T%0?F5 0v* i0ٔiy<^0589 00{#w 0:3S 0:3L 0}YZH0SLꁛ|05sia 0;*} (0n0cLY 0z8Kn|0(WR0ߌ5d0S0q&m0q&mk0@\ 0@\%05b kR 0N>ww9/0N>ww9/0ᬨ v0EB?0ۤ,!0 '0 0=0.Z0M#N0}^*k0i|0xQ;ͭS0Y2 0kZ00ac'0lsܾ 0侥`; 0\=3 0\=3 0yd0,܌Q 0,܌Q i0ϝh!0+V94t 0KU!ԭ0ZL 0340oۇ04ȡ096Q 096 0h1& 0J j0#o 0zN0$z0$0ɔ f 1]R1%F 1%F1# + 1{Es1zO1!1! 1M%8^1SI, $1 1R6> s1 ug_t1 &d1 ޽h 1 aE , 1 /i'#Is1 /i'#I1zt16j391B| 1B|1sK ,1Nqv 1J41ʰj1h %sO1vAd| S1s`S1B %1kYx! 1 ^. 1W 5z.1Ľ2nI 1$Z?1%O 1%E1%EL1&_~;G1'kib1(2G6L91(k81(OV$31*D;( s1+\|`81+\|`8L1.`XuR1/glk 123 13[e2N14" 14X0N14$R15hdG{16tT 18$W0)19#=E~P19#=E~R19iqL1:Q`.,C1:(-?v1H"gx0b1> n1?N }ǕZ1A%T ۃ $1BzbhQyK 1BzbhQyK1C7dW8 +1CvzIT1C[yON1Dz[1E~ ]1EKS1EKS1F@rN1F$U7[1GL@'f?1G{ 1G91HE1H"31KL3$1L&@~1LH41M֓1M\ 1N=mR.O1OA /~ 1P& ?y1P& ?;1P& ?1P0_[ 1Qqq>%1U.?y a1Uei1U_9#d1X oN1Zܣn1Zܣn1[md Z 1[0_(1\{f7 e 1]lĭ0 1^~{a 1^ca1^caU 1_w1_``Jch1`m-1`m- 1a=T #1a{h (1bz4 1bz4R 1b 2O1cv~ 1c$qdX1d܍"j1dk ]v1e} ʪ !1g1h7t1gޭ2C1hRzZ1ijE?1np;1oZL,'1q k1sɜA!j# 1tc:QO#1tK1wGV 1xuD1xԽm1}+! 1~"`-1~F 1~L1_2=?'1}1=t~1MME16X:$ &1r89ug8J1go;Z1bZ 1>r1nF 1eR16Œ3R 1I? 1@+1*> 1*>$ 1{↽R1k a11 Q1,C1IJc1B1B14, 1ǚU?1y6 11rܵ]1 u:19? 12f1 I/J]1 I/J|1 I/J 1U 1vm\$1F Vt;1F V 1 717v}1_r (1X<1R"40U 1y a1,K$1.c1"s 1Fu1( 1i;R1sXc1ט?1-?X % 1j]Q1lmn 1͞71,mIq 17E 1ew (1ew 1ew 1~]& 1*){1?~1?~1?~1lq1uS41KpT1WY[S 1at,sy1at,1!XWx< 1a½h161(2_ 1EyI j 1p*1p$\1qw(1_)H's1wJQ+MR1)z 3 1$Cն?1h&x j1,1C8ꎖ N#1C8ꎖ 1UnՌ 1!1Ĉ͚N 1B[RF1B[ 1: vw12>u2TK512>u2TK12>u2TK 1ɫ,1Vndm| a1ʠ ?L1ʠ 1˂ M1C 1̃55qt1fc?1^GQ1R鎜bZ1ЎVnQ1ЎVn1b 1fuS1҅zk1 1c?ER1H  11#c1JZԯs1j^$1)k>gD1Iyc 1٥"v -1KcR1KcS1-' 1ބHa !1,iVS?1OHo1Np1rr]U"s1/V[-1㫩ͅS1v Y( 1pN1 VI ~1Ayo 1+H{1as1'䅨' +1 j 1 1z->? 1&7 # 1Ru%% 1E`  16yC1Pl:7 n 1Pl:7:1&~4 1Wv5h 1#^)1o ,1l1ls1Cu-IL|1$C^ 1vY 1Y?1,ԉ b 1YSo+1Y2CndR2>3B2gmL2(G w 2LV[2з}^ $ 2Nh2 /llpY 2 /llpY2 v7k 2uGyDR 2s T2|/3ej2'rϱ s 2e^2k2m2_r 220{ 2Uс 2Uс2MizO2`j2f% 2"X 2hAc 2=zޑ (2=zޑ 2 E2 li2#$Df c2#ƈdx i2$&{JC 2$&{J 2$&{JQ2$&{J2'8 2'*5V2'*5T2'*562'*52(bSc 2('~L2)raT2*srv2*srva2+ " 2+ "2,_I 2,IY32- b 2-#2-#K,2-#2-#2-#Q20gdZ.;21&WNe 21F,zLe 22D(Τ24jRv24=e24!0I 25EDq 25Dm{26(\28H~29 =D29 =D295Kf 29jGa82;`,߼I2 2eP9> 2eVI 2fG 2i Z2j1|2j/R2j1eN)2kjPl2kqVE 2l}xt h2lU[2n22nlH~S2nД$2na ?2o2qQv2r89l52r0m(Y2t4; &2w 2x7:t2yl 2zǍ2zo2|a2N2|j2| .2ilDy2ilDy28+Zq2Ne 2uO 2w"& 2kz 2ѐ;2NNeR2S\42T}uL2j28 2 P22ZUt2ZU21LR0f2^fgw 2})X2}) 2}) 2})D2})J25w 2- 2@z2(`k 2%j~!2%j~K2l3C28s22,nj2iH 20G":2i_ \2'l2BY;}2@|w *2a /d2N7 2}%Ka2čok 2y3Ck2y3Ck?2š|lfN2żGg 2?Kq.?92Lp9]j2Lp9] (2Lp9] 2U#W"]2slD# 2I . 2(F 2<{"2HM$N2R$2XVf2ΧG_ "2sͮ 22ϯOp z2ϯOpX2ź2 2F[x2\/ĝ2ܹ @~$2L@v 2Bx{2.np 2ܯՓ($2Mpd2Mpd 2q 7\22N 2! 8dQ2#cU4 $2#cU4 2#cU4s2FQ#Z2Ps'2-s;}Vj2ᇧS2ᇧSZ:2ᇧS2ᇧSU2ᇧS2lc`L2lc`2^2S2l2oi2%+[t72Whst 2>N 2_L2_3Dc2_3D a'2_3D 2v7/2v22y="K/N 2^e[>2Bpd$2Bpd$D2ףV2ףV25Ijj'25Ijj%29b{ 2Z3!2Z3 2"6~2lm D27'2 )&( 2T$.!AL2T$.!A2WEA8m 2ZH'&n2|:|o&2?022ȔO=52+| H2V1u2D2a:ub212Li2UxnI2:4"2(M?2^V]2 2*"3UJ z 3υcЉs3uhxob3Yɷ3T=x3gzs  3Ww֒ 3`a"43QMK3_s|3'D$3'DC3ڠ˚K \3^*3e\ 3e\)3e\ 3e\U3e\3e\D3 gS+y i3 op3 xe!U3 kme 3ʰ`3욡/3"Hft3=˺;3=˺;3'H3b-@?3r .=3/!Y 3sVEoB3o~< 3w3w3 Jm23rPX 3m3!_R3!_}v3"Z$ 3>Z$ 3>8!t3?| 3@YZ3@YZj3AQ 3AQ3A\+ŦQ3A\+Ŧ3Aj׸R|3A3C0,(!3C=Su 3CtfL3ELG*ٵ3EvZ*$ 3G&?c 3GfKe3GD_3Hc\)Z 3I\5'i5 23I\5'i5 3ISҸP3J448Dh3Moj3PK=:?3PZ4+$3P>r3Q XR3Qm7h3T)Nw 3UUq3U"kz^ !3V c"fm3V,>3Vf'P*'# 3Vf'P*'# 3Vt% 3W*2&:\?3Y5R 3YJ:HU]3Y 3Z? ,3[, *$ *3[(Bs $3[* 3\~3\%vV]3\%vOM3]1ۯ g 3_/`2[.3`@? 3dՐpD 3e1@3e=3e\"3ey A 3e^x3eBmL 3eBm 3h \u _3j/!zj'3jΏ1` 3j 3j 3lI9@G 3pBZ 3pD3q 43q 43q4IN 3rN¥ 3rUMc3r4f 3ut3v@ +#3wY"! 3x  , 3x 3xm+v 3xm+j3xŒj2S3yO S3yh3y8l3z 3z3{f3{jX3|Q%3|Q 3|Fk?S3} 3~HE 3~iSmR3~ьyKB 3ת{30 (53f~63f~3B"B3fβR3 (3! 3!? 3! (3ĴUM3Ĵ 3Ĵ3Ĵ3rJN3rJN3̈́x?3Ip 3?3}wW3CE .3 4:e3"ҁ"Y 3"ҁ"C3> $3mn3v!)3v!3 Q903nd3L iY35V?3IG+3!EZ3h #3ibiR3I< UU3(]3(3#6j3k`ҷ3\ʯ3UƼ<3<* 30nק 3+*3! Bi 3Ie3IeR3w 3(9 .3!-+3CfL3CfS3Cv^366 4 3Q ̂ 3Q ̂S3}CVC3c_.Q3'Q 3δZ] $3A/=vL 3y e3yj3s&'2SH3Yo 3Yo3Yo3#|K3%ز 3XL3n3BY3 #30pAN3J(+T3J(+3h_w3:A"3S.3#3)dA 3)dA{ 3B63roc 3 3maou 3N3 l\6 3sr锳13xA}>3| 3G%j3H3K+?( 3K+?(3iGVR3u3S3{s R 3>a43*6!@3wFP03sJw 3B? 3B?3H9 3c05s 3$x\:3$x\t 3$x\3$x\ 3]7? 3jT)3x 3rƇtg9? 350S33|R3eL(3e$3e 3e3}WDb3dj 38 3\u 3ѫYȕH 3@1 3@1 3j W&3ҪF"e3ҪF"!3>} 3to+3z 3d/Y0$3iAR31 3X3ڣC4KM44KM44nݜ,4CI4Ol'4q?lF4&4Wqh 4ڮՔ4sz 4Fs 4DlC4>º4Y4h 5ea4~ 64Q%q? 4ZJ~4ZJ~]4ZJ~4~8t4N}46~\4[C -4[C 4S;I 74cǓ &4Չ 4e Y 4#Ì4#Ì4#Ì 4}~_ 4 >=ϼ!> n 4 G\ 4#w_ . 4$8b4&r=74&偨ɪ#4(;iI4(s{[ 4(ʙFqk$4(xRR*4)SR4*D+@4+ 4+ J 4,X{| 4,X{| m4.ÙB40d]; ^ 403$41x>. 42BĈ 42.,Yn46g2$47 LK_'47%m147%m147%m1a49+dl$493{L49 Ǖ !4:O:Lxs4:aGٻ 4;8E Y4;M_IT ,4;l~G4<)FR4<)F4>F 4>0wv'4>0wv 4@I`30 4@4 V4A-=v4B+f 4B7: .4BJ4B 4BE#O~4C9 4DVu 4EEAJC4Eya 4E@C]4F15s4F15 4F& 4F%% ^4Fhm#P 4G6! [4GJ)U 4H)4k 4I/7_ ; 4IX> 4J9G,*D4KFBC4L_ȑ#4O5&b@4P\!v#4Q94Qs 4RӫGz4Tcr%4TiÈf4T t@_4T t@_4Ucr4U]44 44 4u 4˂;/r43 4pG 4̕R (4Ο74k4;]~jL4Nĕ{s 4}BP c4Ѧ=J4ӎbٹNR$4ӎbٹN 4t 4t 4t 4t j4t 4t 4g8?4g+:4ؽQ4j *~J4ܲ GC4ܲ G4ݿ^n 4F8 + 4'liRD4'liS 4߉j)7s (4m. (4m.4m.j4m.4?4%~4%~L4NH| ^ 4NH| "4>)K4؝1N4zt_4n-14E퉨R4FadT a 4BJ}2a4Q񼱘d4:4-l[4}[J 4霭 4 S4 S4i]:4!8m$4˨՛x 4Wh s4 R46L)4M4ߟ;K48 48 4GUѱ4#,W 4LVW 45v< ,4\+}81R4mJS4mJ:45ȅ|4r']4Ѫ v c 4 40t e4+h6s442.r) 4w 4s 4] LTV4] LTVs4aO4aOR4ݲ',a 4ݲ',a4ݲ',a? 5<~pa-5<~pa5C h5"*5, VH 5, VH5GީP5Gީ>5Gީ5SA#5zR 5>"5@SS5V=5V=|5xu^5xu^ 5. Z@j5=h^,5=h^,S5=h^,#5=h^,5zxj5 Ds,5 ^Re3 $5 g0< 5 g0<?5 2>8m5 |z#D5 #44F35 U5 q;y 56 X 5q{wF 5|ڒܫv 5IGx5Iin;?5Yo$5fǥ[5'[5<%v 5<%vK5| l50<5r\5p^?5.ޤ5\e| 5ޠ] 52٤x 5oƒ 54Wzy 5~95<߽? 5 n{OL5!)CCe5"S&Xl (5"^9ڃ 5"P7ӎb5#p 5%Blx?5%#8|C5%#8 5&`aY+j 5'F#j5( @5)h  5)aN)5)aN)5)py:5)(c5)(cs5* a5+i?|5+I.\ 5+5,Z5ɋT5,Z5ɋe 5-1d?+e 5-s;h 5.A{9|o;v5.ex95.I,j5.s , 5.s51S: S 51S: Z51wܥ53Dzc 53siU54B[ 56^Zyt579%58,E?58ޒa590vz?59׮U; - 59伧 v5:G5=FPr L5>, 5>, $ 5>, 5>v;5?j 5BG5Cl|M t5DW=L5D.D<5D. 5D.5E^oj5E&5F!(y5Fh^X:5G]?5Gr5Gd5IPP|5Jcqd5J.b s5JtS5KCR"05L~T , 5NIW$C5NIW$Y5Oo:pT5Oo:pT5Oo:pT5PL0G5PՒ g5PՒ ^5R&d;5R&d;k5SR0s5T-p^5T-2fA5Tr}.%5Tr}.%5U7xd5U9ű/ 5Vd5\? h5]"%UOH5]"%UO$5]OUؠ 5] 5^{8B5^qK5_;ia:5` dE)5b< 5c7!uD5e,_vq m5h 5iXG5k S5|5k1s1 5kh9  5kh9 5lt?5lGz/ 5n0{C5p|} _ 5s+3q[h?5sp5uA"!5vnx J5wsso-%5wsso-5xDR 5xDR5y> 5y\A6X5{~÷|^ $5}@{n5}@{n5~&[}s55Ov59's59' 5V5V5E-: *57X -5( 5n58 5b.Ȭj5Aq5= 5c C5E5Lns 5Ln w5k2?5=5c5ZM 5zx&H 5~?L#5Ԩ+!5Ԩ+$5g $ 5@WM ib5@WMj@5@WM?5@WM!5@WMs59K5͆? 5ݔ1 a5a&8LK5ts* m5ts* 57 57565/ 5sNOK ,5sNOK5sNOK (5sNOK5zsj5Lh5X9ٻ 512εL5=~ 5|5 5pIWR5;9 5-𓴉 5/0i?5Sm.5!F5vjc3 5496j5Lx5L5ΞZ5a Z5tS o6X 5nպs5y5ޞVC 5s.5~?/5= a5M25 qF>5 qF 55  5b0]8 5iSvk5EvQK 5r w?5 5$ 5t;5V[d 5SX(L5vͯM5RC5aJ ( 5rf5"Sk5T/{]5uК  5HDg5ew'1U#5`'`85k5vњ? 5'b  5'bD5û?_& 5͗#5ŷ-_s 5ŷ-_5.W $ 5.W ,5.W5f| 5 +8j5 +85yU&5ȹ5]H8eN5k5Z 5c{EIh 5geZ 5ltho5Y!5Y!5[<+mv5̹ޑf5Q-Bc5Q-Bc5Q-Bc 5;ZL50׼S50׼5xZُ?55ׁ 5ٯ\ 5;Q@N)5;Q@N 5;Q@NS 5LQˡ 55!Xi 5ޕ򌈌5L7\:[5-qlq5-ql+5-ql5:-V5"PR55:5z"~5"ce75݋͜5ğHy 5b  5b 5ߦ5) - 5ߧC֐! 3$5ߧC֐!51Z 5_d^B85o 5$j!ޯ5$j!ޯe5Χ25" Te5fHD5 ykG5vvm h5¦ 5¦ 5¦Y 5%"d55 X~ : 5 X~5hG\P a5ԍ 6B&6{Qҳ) $6{Qҳ)966xrؕY 6$6n #) 60@8*6r6 6 6 61slZ6YM k6YM  6YM 6:$_?6IX6 S=K8 6 x)eX 6 K``#)6 Q6&(]s 6)$=c(] 6*RG6*ܖaλ c6*Ϯ?6,-76,-76-\K5z 6/wc, 6/7T#6/7T#K61 l5.v61GN62'#})f639Dw# 64%f / 64+O?ez 64(65{m:OV66>67"167J67Ӯv68e8e 6;vY#Mo6qsx # 6>6>H6?Q #6?Q c6@NB6AŘ w]6C;D6C;6D?o4 6D$y{W6E˜Y6F俤k 6G; '/ 6Gf| l6H.UO-6H.UO-% 6H̯mN@[ 6ITj6K`p6LR|6Lͫ~6M~5:  6Mj6Mgj $6M0- 6M0- 6M;<6M]iW6NV7 a56NV76Osf;B6Q^Ȋh6QpzM6QZse4tv6Q0pL 6QP/K 6T2=j6Tyz?6U5 ~ V 6U3 "e6WKGQ6Yk~l6]b6]bD6] CJ6^7s6_V*~)6`SvL 6`## 6`V $6b* 6c9(Z 6dru 6eP \Q6eP a6k>Xy>Q6n:$6n:$D6ohZ}< 6p0K 6qM#6rgI6wwsZK 6xIR"}h&6xIR"}h 6y n?6z9sa6{<Ȥ6| 6| o@6} &.J 6~\B5 6~d 6C 6Lb ^3N6&p,6&pd"61T?6_/7Z6_/7 6_/7 6_/7K6^ձu6@o{6R $06f  e6ԣ` 65x:?6O1f 6-`V ,6 j6WS@S{86d+of6_`06_`N6_`6B`_6<= 6Z YtQ6AYs6l@Q6>6;xVS6]196(Z6o2:) 6"3ar j6-?> 6q?69 69 S6/3 $6/3 6/3 e6 ``x' 60A3N $6:0P6:0D6!]h$6]$nv6( 6t<6+s 6C> 6Ys6 8Ԙ (626 6m9| 6m9s6~36~~\R6"u.6L;% ?6oTi6oTi6  6 e61z6wFt 6 P ]6i6" 6BQ`;Q6qHgj}6ЧWj #6ʭM"S6] 6HkY6pnHr 6 6 XIK 6Snj6Sn6Z76+=R6[6kj6t?:-[?6*_6 rcV 6g66 o86 o86j%# 67.I 6u6!o6km 6km 6P1U k6P1UP6P1U64[CX64[CX6bP6bP 6bP6l^?6 H@d6[ā K6x޵6÷(z6÷(zD6;]|6 KcJs6 KcJ6sM6ȕ8[6LoZR6̀ٺY{6̀ٺY+6͋k&6S>I) 6SOs6О>Nz`6ߞ͈32 6ߞ͈32686+R6˩&mM 6K"yP26;,O 6xW*6| ^6ks_k6ۚ gRS6ۚ gRJ6ۚ gR i6ݳRf 6KshՆY6n,Jv6^TN6co 68| 65Bhf6U|P66tT]U 60M' 6oD[" 6oD[" e6;QC c6B-^PQ6ꦏo6dț6@0K 6Z: 7 R 7 $] \7 jU7 }|7 L\(9 7I=2s79o7LUs( 7ᄼ5F7`"IC7VL?l]7?ü (7qQ + 7 7N a7 (yf7 (yf7% " 7tO' 7D$\57d}jN7ܚE 70pM]j7>:,{7A c707 _ qu7D IN'd 7Dx7E9m 7E9m7G u ,7G u 7HMB!7H%At7I&aN: 7I A7I A7I AR7I AK7IY[}7L7M:: Y 7Q(g>7Uu+%7U ҟ7V"#E/7VU.7W>-7X 7Yc-7[h:7^єIx 7cBG'ǵS7e2Ws 7e2Ws7fP-7f&UA 7h _ kS7h‹V6N7l)@#7n{7rx̯Am7s: 7tfys7ta6 ,7ta6j7ta6 7t-Wf? 7wHY 7wYE3 7x`<?7x&xZu7x&xZuT7x&xZu 7xʦYK7xʦ,7xʦ 7{ ]7F 7~]*7t7~]*7t7~]*7t7~]*7t7~]*7tU7~]*7t]7~]*7t7~]*7tL7~iS9h 7s,8+P j7?bDI7J[ 7GN 7J&? 7YZ.Q7,Ck7^87^7+tX70# l7{L][ gI7G6j 7Pu%+7 7bʾ& 7c7冚 7zui??K7y 79؎b 7,*7Hms7z:)7lCiML7(D/#7(D/#7#5R7udͯH:7R7cG7c 7Z8y7a.:k<7a.:7y,J 7BC7g}:7Qzjj7. 7Ֆ ,7 !t 7go7g,7g7gR 7gA?tR76 a7k9+/) 7z 7^Օ7O17m7:ok7$D/d 7)1?7d|1d c7opi)7tK;7t 7lF,7~S]uR7te-R7E,47fpX 7Wy%K 7Wy%7$秜 78D 7;ڰ ڜ 7ozT 7||t 7j 7j (7jj7jt7jY7p7p7\oh 7cs 7cs ^7XT K7줱; Z7C4oM 7DD-Mk7Tj746 &7ZK  l7}>? 7A0t7` 7` 77JyE iL7JyE (D7JyE e#7JyEs 7!^` Lv7ioƪ 7x7>Or 7>Or 7!B47Q>EGx 7p..wN7> 7kT&7kT&7kT&7kT&7h~w7_T ( 7_T;7Pz7ΕM0 7);֎ 7>j7ф[7ԆGs7ԽgӥL7%14 7-ǃ 7tD7[R87:aJ *7:aJ 7:aJ 7Dbl7إHUu#8>K'id8?N8A|# i 8DeA=#8Hm^T 8IGltU $8JIjR8LR1$ 8MʒFDt8Nkase8Nka 8O,3Gm8Oo4k8Qj8Q8cVa8 گL8nəS8o1 $8wg 8/ 8FrյR8FrյK8d! 8ڋt 8 ԒclD?8/' 8q Sa l88oK 88o88oQ8I! 8I!R8#o8T[b8$3 8$3 i88тz0b8тz0b8L8x: 8eG 8f٘8!;2:(P8Au':%8L,- 8*w S8c5]4H8}78͙W6 ,8ۄL 8D̓n:8/g s8g;;B8p9T8 6? t8{ZK 8pm\ 8P 8"؄R8fS#8yE $8#,;qR8>^;861Q8NY^8W(ox 8p 8IǬ[8tR8c828;u 8C88dă8&#!z8@ 8m m 8U]e 8JhH -8'3EHMR8)2 j8 W8EI8b?A c8Ɓ?Xɡ \8ƬH0c 82~$t8%HhI8%HhI8'? 8U?y%|9 8خI58gY 8h?(A 8ζ@88ζ@88ζ@8d8ζ@88VFr. 8v93 8q8/aS8ўj8x!8dgn8k"Z 8ڮ54̎8?} 8?} 8a׿kj8yo ,8bxa8ކI\h ,8i)~8stfZR 8x0͡n8x0͡8`2tc8NbR 8]U!/84<ϛ8X֪҆[I8n]8F-78SSR8篫eo: [ 8v8vj8v?8/_N 8{=8{= 8쎾tR8씲278[{9 b 9@ŀ9redc'?9 f]e9 [9 ð짃 9!fR , 9"4. 9#Z\XN9#YcJp9%cr[2r989%cr[2r99&C354 \9&"i?9(`F[MK9+ NY9+w 9+w9,?k +9,qw g9,qw _9,qw 9,fj 9-)?9-3 #9. yC9. yC 9. yC9/[lRf90r394'j" -94K95$QA $95$QA (96Os i97FWis98M986@ 98f99wG, ,9:? &9=P1'9=S{9>hZy 9?ЯH 9Ai.9AudR 9B05j9BwD c9B! x9B! x9CǐHR 9CǐHR 9C UD9Dȵg$ 9EH R 9EKS1 9b% 9cqME_ 9dR(9dF9g&[y 9g;ɾ8R9g;ɾ8 9h*et9i9xR9l`^(:9l`^(c 9l`^( 9m.X(9mꬴ 9mgD 9n[n 9nQKG29nQKG;9o9DV 9o:~99o?=^K 9oRJ9qa*? 9rPZ9sES?9smx 9t0>9t,mw o9t,mw o9t,mw o9tAKNx 9ux)9v$S9(9v_^/N9vԜ| 9wj^Oԅ 9w#v*9y0ԫY 9y0ԫYR9{3j$j9{K a9}k28 ,9~EQez.9~gPì<$9%  90Tn9 9dz(c49Y°I, 9"~ ]92HU39Pn9X񈙐' #9$ޣr9+w{95J9*9*9&V؁P9.l{?9#o79yN-j 9W=fN9_EG9 F z-9pp,' 9$B 9$BK 9\A@ 9L& 49L& 9Jx 9*poZ9*poU9*po 9*po]9+L&pQ9+L&p=9+L&p'9+L&pd9Th11.9^ρ.WL9KNB-9KNB-9KNB-9%qb: 9;[9|=Z!9Z 9Z ,99N|[9FP`:9hff 9$I 9ɽv 9/Վj93K9<~jc 9n.' i9H9b'T"9 IS91'91'9g÷9}] p9W  a 9^W>9^W>9]lW9]lDN9]l9]lQ9܏n 9R -)ڙj 9R -)ڙ95v 9 9qP> 9qP>94Q9 93=;2R 9}rml:j9 2(9[w[9Aj9At9Td9ӂ< 9{v9r)9Y!t9+4j 9+49+49A/~w 9A/~w? 9I89`j 9`j9Uq91aG\d 91aG\9`PH \s9`PH \9鲚H9鲚H9/Kj9/Kj9/Kj9灡0N9W[99%\v 9%\v 9:#Im +9A69A6B9s 9&#+ (9Ks}ʶ ,9D)F9-$} 92ێ92ێ9b 9+'"9"o:Q9´oO9´oO 9ä(J2k9Ċ\t9@' 9 +9b/qq 9fU%_9mQݴ 9ȵq[Fa9_b&5T t9ʟnpC9!hqAu9('9('N9tLU9&a|k #9 ^|9ͭ'_19ϝ>;19 18k9 DQlk9 DQl 9 DQlb9 D 9҆x޿6 $9҆x޿6j9Zv N9Ӌ`u s"9Ӌ`u? 9ԧev{ 9Ffaf9G 9G 19$ lT9X=_Z9X=_Z9b֌[ 9<8#9ڀՈ.-9ڀՈ.R*9ŇR9S P9ݸN/9gۗ7S 9Id$S 9Id$S b9_ 95|Ɇ9B 39LZ+9ozCN (9SJ9e6% 9 7az 9甃J$9p94T c9MG593hU90 )89ʺQ j 9ʺQ *9+s9\^Z99\^Z9roP0 9Id] 9C 9eEU97.rv9YG"9X 92F=?9KdtL9^@[z#x 9-چC9cSK`9t89 (/9 "9Y 9wp X9j 9t4d9B8q ,9'S"9/ 989?n!9Y| 9uL9Iӷ9sSփZ%9|k7j:Xi(D$:l e:̒dR:A98:Q; : j:_`:o3:o3:oj { j:2G:t%R: :8/L: I) :P ]:P l: A : 26Y.: 26: p;)R: p : XcP : ZD: Z: 0^: JX;t:} b.K:϶%::U(:ڇі ,:e/U :ƀ :;Ի:  -:X44@ :X44@:Ĝ :]tY :4^^> :jO?V:J":w0t:^Yh3:z~@( :sw l: M :S :#aS6\ :$T4:)q  :)q :+w噚?b :+HeD[:,!S:,;;)j:00%b^:1~! :1~!:1~! :3$:4`K:4` :4ՙ:5KcW\:5KcW \:5 f :5CJ|R:5:62h ,:9 g:9::)R c::ۄ8:;9apA]:;S? :;S:<˖#K :<J :=T>| e:=ms9:>N :><:><:><R:?fz ^:@T>8 :A}ʪE:A J $:A(84 :A=-:BUګR:C3. a:Dˏj:DpOi:EQ?VP0:E4?:Fk({G i:Fk({G \:Fk({Gs&:Fk({G :G[B :Gucmh:Gڱ} m:H?Rb :H:HDÖ,:J-Z*)Q[:OM g:OaIV=:Olމ}jI:PWߙ:PsI:Q_0 (>:Qa.3[ :Q=:h ^:RFlM $:So/:TJbf:TJbf:TJbf:V!Fp{ e :YJ :Y5}ԟ:Z8K}^:ZGG%:[SBӧ.:[Y:[zFz1 :[Zc @:^~:_q:FY#:_q:FY:`~^_9:h*k:-:h MH:h1iK:i]#XK :l 2 F:ll71":m#iR:mu`_T:pu, :tDnF:u3:f:u^ :uaZs:vo3yO (:w/̣iN:wQ&VL:y':ze5| P:ze5|L :ze5|] :ze5|U:z!j& :{Ln~PS :_g!I:_g!a*:Vjg :fhk:fh ib:fh ::,6i:.:l/ l:s:kŞD( \:$-AgK:ou (:Ca):Ca:ӟ5 ( :ӟ5:P :{Zt- \:\TD:w:C :Iw|:^Sr=:kowYb:Z(b`? :soGx:,[:: :ӢU-5b :: :c$0H:a# # \:R[ n :w1}: 454 \:&C :(Q:S]:ь8:p:j[:<2:t"$ :1C \:D7 :8%:ݜ=9::[:X=c :fDwv :9W^p c:}BK:D:p :ޭTT:ji :`.VDR:`.VD:?& :#$Q6?:i:T' :IL4j:L,A :TuF-:TuF :W63U: d%:Wlt:t:9c:0 ,9:0:0 :"Ԟ4 :_PYl:DVS:_{ӇR :O ,:T> C#?:U :u:‚W8 :K .R:O  :RmN:ēaa:1n:S-:z6%Fs :\q1!gQU:\q1!g:F :^^c :fG-K3c ,:fG-K3c :i8N:˅Wl $:ˠb :R^O:R^O$ :Τ?:3ಆ :Ѡ}_j:Ұ(#ct:4]'/:ԟ} :֦*^ :'yK# :~HZ :c:Ksa :j:,5ȢR :,5Ȣ :gN| :߰)\N :aT  :D:rk:?A:DӼ:EZ:®Z :息=9:8(:8:5큉/:誝M D :@hi :k?$:k $:k :yg2:w:43 : W :& X:'&?:'& :iR :>6$$:>6$#:# ,:x\Z1C :RxϢ b:RxϢ.:RxϢ:£kfR: <~:DXF a:- ^:"3:lb :ck\T:9# :H񣜌 :w)Ps :@| i:VoEq|:OӚUq:h)YS:ss':ss$ :b1p:d4K:G;9;;0Y ;m(*;m(*;D!;v2;5PeD;;L x^ ;;L x^ ;ހ^;@;LF;;~dh ;2 a;u0[Iw;]x ;m6sU ;JS7;J%-j; 1:; B5); B5D; 2u(PR;  ; ;Sىy;{-i;"c;sU;e g;ᝳq ;aPW - ; 6; ;DžI&;ʛ\ ;/~ ;dAy ;-Hcj;%-; #kZ;xR ; ¿MY; ¿MYL;!vJd;!~ ;!!+ ^;!9I;"(Of1 ;"(Of1;#Uݍc;#q ( ;%ŽR> ;&QՖV;&'^k ;&U!;'I\ ;'W@; ;'B~N;(zht;) ;-6~O;.ޕPJ;.Iq ;1N͘;2l*:s;2l*:;3 ;4Y7WR ;4cpL;5N;6g ;6Q˖;8q@ ;:C3;:p};:f ;;lXǔH ;;lXǔH ,;;lXǔH ;;vX ;;m;/:[ ;@@f;AqyP;A~;B ˬ 9 ;B ˬ v ;Bf@$;F3v#;GmZ ;GI  ;Hf{K: ;I= m;JЧVC;KknI@ ;Kň q;M;$)uF2;M)/iFt;M)/iF a;ObU4 ^;ObU4;P HQ;Qc\;R ,;R ,;R ,K;SoL;Sң;T`;UW ;V>nG[;V>nG[;WwbuH $;WJ;t $0;Xc+|;X< ;YeW* ;Z)ٻňK;[B͖\ ;\VyN;] 1*Ki;^ACe ;^r0 j;_*Z ;_a)>Z ;_4 C ;_G:TL;aG- ;aM(f;bM4#UilL<;bdQEn ;b $;cu؀F;c#%TM_;c#%TMSV;c#%TM ;c#%TML;eJTHY;g,S;k6V , ;m.[>s;n$ݯr;oe c ;oU { l;q -;q -;q -;rdQpN;rDE()(R ;r4< ;r6av ;sj?;tT^jp;v)| ;vp"zsm;wFn[;wރJ*;z_]? ;z 5 ;}#0 ;} ;} j; ;DUB]Y;\}ǰ ;9 ;djY$8 ;~RgK; 9t;*};Pq ;Pq;rH;d. \;|1j;+>P ;Mr5dZ;gfk;.QRRj;7 m;; R;" j ;*0r9;7;VN;Y] K 0;L8*;^7 ;%+`~;=hPQ;=hP;@Su ;u)X;S ;<T;1 ,* ;;R]/i;h^;Xx ;3 ;TB&;TB:;I0F#6?;e<| ,;Q]1 ;Q]1;Q]1 e;(6 5;\K]B i; ڄ ; ڄ;Y%~;{s;S ;[g#ت ;04>"~;u}"\;X9# ;N|;y;[` ;[KPY;oJ ;*C! l;-sb ;?.t;};43;Ri[;nm;vkӸ~{;AYZ;s_H;s_H ;>I|;>I|;Ƿ,?;xr@lY;ɨP%h ;锾4;'? ;\; ;\; ;;h;ch5 \;zG#^K;eW6;= 1V;D7 c ;oR );ђ(g;R ;iYf ; [w";u>*;`V^`;փ< ;ײ{d,8;NZ ;طKl-;لξ}j;لξ} ;M  ;M ;M e;>;*F#7F # ; )H; )H;K h_ 3;ޡ1"!f;ە@;#,w ;ߐֱ* ;3 e;J;J ;Jd ;JP;yF=V ;{w\y=;笗 v c; :Ѣ;E'& ;?L !;Ո;]|{B;o`S;_"%M #;dn ;OIt;`eϟ ;Ckv7K?; bt;¼?t ;Z* ; A;xP", ;ɠ7) ;-i[ i; C;yC ;k|Q0?;N`;į5;į5;=ҧXr);x8C;%a6<M]Ap <,<S0<S0 <Bra<Q<Q \<g <[ <D(P<cİ< yxL< FC-!K<DᓷCI<Dᓷ< <q3Gdd<CD<bN<N"r<L ?<j-$׿</;F<<D3<fU<6Km<6KmX<6KmZ<_* <8p <̦e <̦e $<Q#SI<Q#SI<Q#SI<Q#SI<HU-Y<Pk/< <Us<Uh<C{ <2^ ƿ<.JWr <0GxM?J<0GxMj1<0I ^a<0 ,<12_fD <1<ΖӾ<1kc/L<2bkgb<3LR{ <38f+ s<37I<$<4̚КQ<4̚К<6!`d( <7;| <8*ea<;7NyȐC <<0gG <=|Jn<> t({ <> t({] <>R& R83f <|?@ $<|?@jR<|?@ (<|?@ <}\| <}\ <}/<~&4?? X) #)<7uR !<$Wa= a!=#&=6]  =& 'm5=~ƒH =z@=&9S =G5=G5 =;w =^J),9 #=E=Es=eN/ =Ӭ<"wv4 = c_Kpk = )ږI "= 93`K= m_2 = $q'= ˘= 7 = ij = Ob%= %a=mLo5=mLo5K =@XG =D&i =ڠC( =d0t3 e =}| =}| =J^Z] =]![=>Hg(?=SÄ8*L =SÄ8* =SÄ8*_=Uv =e@k== a== =}:RC=ta=(NF =]O= =yTIJqN=9xI =1 =[L=#TA& =#l-C =$DbEn =%&=%) ?=%RA=&6ND='\0 UL='>Ѿ='Xss=(RYR =)N}`Z=+E  m =+,f=+(d n =,Z.d/s=>dŒ =>J>=?>`=?ƼqAf=?).G/=?).G/U=@f =@@,{oߺ=@gN?=@w$ s =D;ĵ=Eo =E?ޕg=FJ=GGLOuDZ =G =HVV9\j=H el;=I  N=Ic7=JvS] =KccQo*WK=KOHos=K v=Lo1ﮒ a=ML;NRO=MWk=NO<\ =O5J> =P;=QRR+h=Q?}=RY=R JS=SF =Sj? =U>fs=UqjI* =Vټ> =W^}!=XB4iv&=XgmCQ=X%}0=Xyz =YS`=[!(e֌?3=[!(e֌ =[<^ e=[Gvo]=\fl|m[=\fl|m=\i`k` =]%j`=]@29& =^׊p6=^׊p6]=^>p=_-W/RIR=_-W/RI=_JD=_g4yB=_AN 4=_AN =`.bK>3{=a??=bL=mΊJu =mѯe"=nA \=n@n=o1F =p*bc =p*bc t=q[LR=q^z9=qݬfs=r`ͧU=s U-`=s U-C=uN)R;[ =vbVRt=w6՛K=zP)=z={(ӟ"K={usL=|B$;d =|Fi a =~!cOg=M-@ =6eSA =.̢ \= !=C3  =V3j 6=V3js(=^fIb?=KDe=KDe=[8 =g =_^A,[=CށnA=cVY=~^|H=6(@){ =Cm+[=kSF=e3@(=e3@ =g =Ih{=PY=&^R =RU"E  =RU"E  =2acY =<&=پ=پ=پ=1GZ=|XqJ=t=;| .= U:v=~f=~f=͎I s=5g=ǥM8=A =ѨV2]Z=j8ٹ=G.V#=G.V=ڈk ,=H=Ծfj M=[(wknQ =[(wknD=[(wkn=֫Go^ =@3, ^=OY=؄JɄ =أb -=q  =<*θ?'=۬j`Ftk =FžC!=Fž=Fž= Լ=w =U$T_ = 6p = 6p a=z>"t=ߐ =ߐ =îUt=îUt =îUtD= -V=DK=Rжm \= G!C)= G!C= n =Clu=#~Q =cjdN ==x s=P:=P: =%V=,3 =,3 =뙻5v =~r?= E!@?= E!@ (=(-=;@j=@bj=C =tv/b= s=vbC=1C^X =zb^=>0 (=9j={]@ =X [+=Pk=s;%'t l=5n*S=b!F ,=h˞ =Y(=H; t=X~{R=u#o=X* >>  !>qN #>S v>X;>Q`[ >8>+ >d > d> 5j > 3k > \7l1 i > \7l1> Ōys8> 7  '>s>#>#>?9;Fd>?>G^e>G^e[>dn >c>ogF{>, q]>s>P >Η`d>"> >cv[ i>،]>q<>q<>>q<Y >^4>a#ZRMR$>oV>&>$w3 \>ͳ > )>!r|>!r|>" K>$ޫ >$ޫZ>$b9 >&Wo >&O=ߦE>&v >&ŝ >'`1gg->(A/: (*>(A/:*>(A/: i>(A/:>(A/: >(Qw ^ >(|@;>)+JR>)+Jd>)+J>){R >*r7 a>*l >*lU>-UA >-UA>-q#y >.]Ec >/ 䴩>/#xQ>/92 aE >0Z9N>0Z9N >1!=>2Jӓ >3^4r j>34GaV >45 6 >4Y>54|>6mW; >7i?g>7i?g >8/z2>:K19o>: ZN >< >=nn~^/ >=V.>>d5>?=>? !>? m>@Wy| >A =p>BUhI >C6d>C6>Cc~V>DI.x5L>D=\>E >F©4 >G{ӈY >H;76 >ITL >IzA + >JL.|?>JkLt>Jgv>B>J7@>Kp|^ .>L쩱Ͻ m>M$YD>Mc 3 >NQ>OB#>P^_}E >Spfɷj>T >TQz07 >U% >V0i~ŊL>XF Y)f >Xꖶ">Y?b\>\ R,κ>\+π ,>\08EIz >\T >_Qvj{ >_d  >` 6c$>` 6c>`B"&>`m/1@v >ah >aqxy@>av/ # >axEzt >c-&< ">eCIΫj >f$R&>f$K>gA{S>gO!i>h6EzY>iՑ~H>j $D{5 !>j;8N Z>jRas>j$Wg >k S >l>!{ L >l>!{ >mT-. a>mT-. >n%nZ Q>ra+ >ra+| >ra+ $>rIѦ~4>ro -M>s2֜>sCǒ7 >s{S",B>tD >x[/>x[] >x[ >x[D >x Oa>x}>xνeB >x#>yYDu2>{oCm?>{AQ}>{pg>{?>}Oп>}n">}C>2ԍ>j:& z% - >>J><Y>."s>x c>=h 4>w>Q$M>Q>Hz>u3A\>u3A\>(2K>~A>34+! :>@;UR> a˖Q >C >O0Þ9 >7R>: c> +-[> +->+2>3mz۴>ÞU/f>Rq}!f>~s:y~>·bD[%>oR >]]>]]>$0 >%q/d>F<L>o1 (> \ i>>h~ >08 ,>08 >08>f8! >#>{& *>ݣ>zX>0Eվz - >~>~S>"F`>]- >&Rd >&R>x89QX >I>( ;c_! i>?\j>=kjs >k4+j>/C=7>u >u>F79| >K5~S >ܖ%# >£S8y>z >[> o>Zzazt>ZzazY>Zzaz>c c>QM3 e>oou  >a~->O)"?>̩R$ds>̩R$d >T[R>ϕEulC>ϕEul>ϕEul>e5 >e5 >!6K[>ќSj>j2fSt>&B!(>pWD>pW>ԧs>ש%4; >ש%4;>ߢ^(.>Rm(> v">ĴTD>iō Y >V m >ܘb> ųbY>ރ7K7>ޛޛM4>ϲk|>H㉔[ >#ޢ >׏U >x+z9A >WY>9m >lO2 >UZ>#, >,iOZK>2[v >$ vZ>$ va>{ >N:Q >zѕ@s> O h>돐B>(D>ϝQ6>][F >][F ->k4f>HM> ="V>5QxW>N̿>[}$ #>2^y%>mq>/\Β5>>3.>lr>q>=Z>l%5>ȈL >CeM+> ]u*>p ">=)>Em B>^{Jf>! y; >vDkY>*nuzv?>^?aĠ ?{w>ݧdw?B?>?iu^?sc?sc?sc ? HiӻG? {K? {? 5kC ? @  g? qnU? PR,#? a`N? D2V?r?/ n ?1X?f-v ?VA`?&Q?|ut9s?Ks?Hn]? uFS?(yV ?"C?Q5~ ?.9C[?8??$`$?: < ?@!2c\?2#h9?J/D?[ϊR?b?b< ?8d36S ?Te?%c- ?E$ ?",JdL?"LKk?#QU, ?# @?# @]?# @R?&xem g ?&xem "?(nSB =?(P7?(PU'?(PL?(}4&% ?(a]  ?)<?*8 ]f[ ?+7?,8 "?-3$]??-eAS ?-7JWQ?-eI?1T?1*,z??1[aX?1jk?1N, ?3f8F -?4NZ0} g ?4V?8'F"?9yB , ?;??<_&g?<}Qi3?= v?>?b/?>?b/?@ ?A04?AM] n?A'L ;?CKK%?CKK?C:ɶ?DS3 ?E0 ?E0K?Gi}_ ?Hց t?Id\ #?JFAߥ ,?JFAߥ ?Jc;a?Jc;?KN2d?K0 x?K?M_{?<Q?MӋ3??NW@>S?N3l"?Nb\- s?Oe?Oe?O9?P R?P)YBNj ?Qڔ 3*?Q$a?R)^*"?R3evsy ?RtEZv ?SkhmCv?U;t9f (?U|ps?VR-I?Zx?[r]K?\IRi?] { ,?^GF ?^qϬ?`/j?av3C!?a/Aј5v?aq;o?bL@X?cRc  ?eplt?fd ?g/^ $ ?h$ҞU{?hh*N ?idY?idZ ?i!bV^j?i ?iQL)?jFJ8q ?kãx |?lu$~pr??lu$~pr?lm , ?l= ,?nCr'x4?n[{J[?nuO?nmY?q O ?sp (?spz?sp: ?sp ,?uhNq b?uhNq bP?uhNq b(?uhNq bL?uhNq b ?uhNq b ?uhNq b?wpCtGt?wuDM?xOz ?xUzI{b{?xjZ?zaR ?z+?z+?z+?z+?z+ ?|N?|R?|?|C a ?}W&?}) k?}e ?}a/(,?~71<?~%v dZ?~%v dZ?~/bN e?~/bN?~ ?L0 ?r|`?J`go ?Ethb' ?a5~g  ?j5?j??R ?gIY?v ? 9ɴ[?~ ?3.lنv?; j3?ԭ=U?B&YS?Ǭ" ?-NL?-NLS?|_|Y?\噿.?\噿?\噿? _?'TĎ a ?_/?c?(_I ?Q &?C?EK?m:pu?j? ?&O?=,ǧ 5 ?x$R(?x$#?#~L?KK ?6?n+?N X?>N?>?H?5wR? o? oZ?`QMz ? 0K?\G!U0?1k?fi?D̿:?D̿ N?D̿ a?D̿9 ?}gn ?2aK?6?Ws:R?R|?^+<?k7?c]4?[s.R?\!,s2?ݳK ?}g}?U SW ?U SW?b뒸b%?UV/~?70%3?70%3S?Ao, ?w 7b a?yh0$?Fxxi?Fxx ?3*{v ?w5|": ? V5 ?5ž)m|? +? &?]шj?_EaLt?9` ?c\[%? RqK?~Au?j?\oh{$?č36^s?ę?D?剶S?ƼFK:/?ݧ }?]R't?+gj?vdz ?ʎ? sK?Q?pjFv m ?pjFvt ?tc?tc ?y-t \?t?̲?[ z?[* ?O ?A1K?R`b ?:+ ?n >?ҥY]?Jt  ?+NR ?<8>?s,?5K?PV?E] ?`'3 ?`'3 ?RNd`?RNd`$?K(?DKj?ps?Q\ ?)jj?}?-?ԷGRC?{t? ?EN? K+?%iGC?-GmHU?-GmH]w?冠4?屸/qkZ ?1P ? ?謲o?g?\L?삷j ?GSpA?by?!l?-Is 9?)"?E4R?7* i ?Ȕ^b?a#?a#?a#?Ea[? ?t< v?*|G ?￯?&?&?+@R ?/zcp+?EV0]?s?*`_?Q`ԧ} ?Y?h?Y?h?i6?c08 ?̸K?̸K$?̸K?=t?pF?@c !@ I@Q4 %@=Q@׭H@4=$>Lk@6!M $ @I%G @6bW,@" fQ @LȜ @p @p@k@k @k@ bJN @ gXR@ gXK@ ?Q@ /HZ @ :JIgC (@ :C@ :C@ LO@5rUB@ءrxM@8}X*z s@no:@♸GY] @♸GY@♸GY@틊"@틊" @틊" $@f@&k@qH @$@7IS@YL@Iv>j@Iv>s@C1E e@4צ@߆ v@}!7@uJJY @T@T @T@bH+vK@29 i@'] @ ~nG@!98~#@!>@!l , @!T@$1nJa@%B4@&{:&[@'xOv@'} K7d@'p ;@'` @)Y@). m @,5AL@,n=e @0"dT@23M@2Řb @3"pt@41?@4KKf @8CM| @8:$N@94(8 @:. @:+w@; U" @=Qʵ 5@=|`\E@>r739@?.(DG@?.(DG@@] @@] @AW˂ "@A7 ( @AhsU?@F.f #@G9.ȗ @G9.ȗ@G9.ȗ'@H:t@Ho!v@IE@JppO@KJwybt @KT RR @LvdY@M0 @@N =@N+XH~ @O0Mʴ{@P  @RϽ&@Rݝ-L# @TJ @V1nѬZv@X l.@Y*h @Y*h (@[j @\Dڼ!f@`v{@`v{@`v{@`v{R@`pp@`"$P5@` 5 @aU~ @bF+ WD@eFx m@f.׺Pj@gUʻ@g   @gF%d @h/P| @id@j*w6@mhR|(@nPUmH@ou17Pt1 (@p ; $@pZ @qύ7@q՗m@qW0|}D @svS , @uQ)@uK]@w6e @wVCV`k@xq@yNN j@yt@{t V@|JZ"{@|~@~iE{{n=@v^ @3 @U_ @2 @~LHR ,@MPQ@1-@@|JO7o@|JO7oQ@|JO7o@5E]s@l T@l T {@ݒ$ ,@H溁PK@:ÌN9@NAJ@ź@ 4?@ 4@rv(@'Ӓ:@'Ӓ:f@'Ӓ:@1̕*V(@1̕* @1̕*d@"R@5(@5(j@Hu:I{@~D2 @8|4 @%pp@V@ֿ@qg @b,v@b,vR@U!@U!S@@{\ @,A@6@|G, @:[K@@ύ@v@@%f+R@ } N j@'̀Gs@5y@ @uSa @uSR@0ؑU s @b{@FTcV@mmd0U@o^Ed@|V@X=@03r @03rR@LC. @kú@0D8iZ @@ CK @`> P @@5@I]@5ƒa @񆋩S#@d ,@d \@ୡN@#|!% @#|!%t@t?~9@t?~d @''җq s@4s`@Tɨ:` ,@P [`R@_P #@\~]R@!7@hY# g@G茒@Bp< @Š+L< @Ĭq pU@p< -9 @A @GF}v@V)w @p^?@x(M5K@ j@ >m'@')r+d@R|k@ʸ[@]cR@5t@ˉg @iC@$tl @͕Hq@;j  i @;j  @·}M @Љh}s@t&`vL@"d@M0:k !@cfg:@cfg3@cfg@cfg@cfgQ@cfg@/J@Ծ_^\Y@Ծ_^\ @ ~( @6D?@å/@)Es@)E@)Et @e_#@q^`^-N*@,<7 @El R@жҙd@߭oӖ a@RӒ i@XV2vjR@XV2v #@XV2vs@eS@ea@F @bp @$@? @_o@ݓ~Iw @{R8+ @{R8+@=m@3{8+Y@I ATj;=x A?](AROXA4n]Ap AQPĦEAQPĦEZA>SA|WkA0SMd sAv:f AAMW(, A|mJeAEA 4kA p ? A p  (A H4A >ߺZA lh A O (AfP WAvr66j AB$K Am-z AK[*KbAK[*KjqAK[*K ,A'A~d AT=IRAYuA{A{A{YA{A{bA̘.V $AjVh AD"AAA_WjAsh Aܗ:4?A(Nj(Y A)2fvjA)2fvA+Pt A-]CgA.FeB A/LWѦA0݃pnYA0DA1$̵RA3@,$P A46ia3~ A40' A6GmRA6MvqwA7UQa A76zA76z A8;M ZA8;M iA92*W~$A9mkQS#A9a A9f\qA<[&YA=ܷ >] A=A>"?A?h(=>A@Ɣ.JYA@Ɣ.JAB_I a AB_IsAD aW ADC-fRAEGO}tAEASAF\b%m AGAq3D ? AJڎ{AJڎ{AK)[AK3G? AKZE_ ;ANz3 AN%6 AOYO APdAPAQKP"AQKPAQKPLAQq/OYAT~AV}/dm eAV?;>mY -AWUAX(fZAX,PJ8AYLR + AY|6?tAY|6? AY|6? AZ95{c AZlt ,A\jhNA],RQA^\A^\QA`UPAa^vvAa^vj AaajI)Ab_i2LAccR[]AdK+BQ AetAetAfS Ai=9Ai 7xZAk] & Ak4 Aldm*:Al>jAlXp3+W 9All ! AlKAmȽAn Ap ;o|&Ap% k Ap% k mAqmTAqet# As-2AtSx AuB+?Au,QAvD|#AvD|#RAvj[kU Aw5'`AyJ||AzYߞG4A{vpNYA}h0A}k:3A~3tA~JUA~ko.W ASH aA[7 VAc; cAc; kA*,:krAA oatA\B A Ǡf=|A Ǡf=A>%:A$Aiկ OAiկ 8AdԵ A/h KASN47 AǞA(A(A11? A= iAdqe9 aA Ak\zA+e A SAD A&DA&A6.uo AB;?CAq AOƇAOƇ ,A $A- lAb U AZa Ap Ⱦ AH^YA'B AM|cA7ad]A7adA?_A>Sa $AAJ[ AY&k8  AD# A@;HWDA4|گvAWHWRA"d?AaA{XAS&UAS&U$A9 $A9 vAF~[SAͺAC~G A.Ǭ AV> # Aь@ aAь@ A-#!.fA[ 9RAǹpA.Au*m Au*m A'[G i A,#8A[CsA.kM^m Ad횯{AvQAfl?Ah A1GAdNAَ]qLAwttAwttA$%g7 (A}8, #A®m~E A]\tATȠc]ATȠcAq2[S?AÅ'" A2%jfRA=LK8A=LK8+A=LK8f A6h.$.A6h.LA6h.eA6h.A6h.SAqT: A,L-A67НnA)Aa, #A9 aAWGNA͞ U(?AW#nGAW#nAb\&nI AЕê0GAЕê0A12kN AҸpj Axy AұZCjA慨A/2Fd %AWvSApwZA&5JYApYA?LADA:A9M%A(Xkj $Aهv%4. Ar~A_KA, = )A, = -AFKR $Ap{n|2Am>~T Af "A34 AgdxA~ڢ*+UAܰfAo߶6 AAxhvAm . AOJA汣ne? ATBA} iA.QA 47 SAy' LAy' AB@91B&Wd B&WRBWVɉBdcQB֖+B|IB Bk B BdhBfTBD^ BNAͩ`BpPKAB;sA B B'B ) ( B )BA@ Ba>M iB rlB!nϦ굓 B!iT B"m6 B">KB#SPZB$c6 cB$F= B%klϜB&LJa< B&OB( B'RB(MBr "B(ӹ/B)_ $%B)_ ,B+@PB+]"W3yB, P B, P B, P B0@nB0Z d]B0Z d B0Z dB1` B2tJP B21 B6ҳQB6,ye 3B7 eB9ẁ @B9ẁR8B9ẁ aB:0B:0$B;}x| B;:B=gB8o #LB=tL B=v+B?vˈ9B?vˈ B?3<j[ B?3<j[: BA,թ LBAymSBCZao \BCZaoBC֗ԩ 9BC֗ԩL,BC֗ԩSBDf kBER2 BHWIcGat BHA;_i BH嫰rSBK\Up+j.BK\Up+ BN2J aBN{>c BO4S=#BQI8 BRjLBSyd=BSyd=BTA)Z BTA) BU)d9sBU)d9BUV,UBW|& BXjD4BXy9}% BYpBZ ݙ BZeB[On sB[i B\t>Ȭc_SB]z|\TjB^)2BaDBb(?O BbM#߸BbIBcV: BctԍRBd/D BdñB_9jBemhBe&gv BfF} BffLBg5BhVDOBBhw%i BjH oFdBj\] aBj.OX rBkqr Bkqr Bm*dBnIBnIBnA] Bna@KBojqk,)BovBY {Bp*" BpPP? Bp׽ aBsܜD~R#Bu=6r*BuDGW]QBxH qBxH qRBxm^5)\BxM0V.ByVbcBzDbJ BzetbBzzsCtB| &o١ # B| ZG| lB|e  B|ۓպ B}wk*B}wkB~lRB~->BaU*vB) Bj@lB]XSBE-TsnBq$>,BfIB$ ,B$)B$)sBQtB9zlmB+B1t%B"k@BTo5^PBb绕nB,q^v Bނd $BtjBB BgfTBgfT (BM6[Bu% BBK BEG %B,ZBz# cB5K BLJCwB-*CBlB|Bӵ ? ,B[O-n BD諾]/B$\)FBe+ ,B4 Bn;s Bn;B6B6EB B90DCB_`L BhXsBt:%lBiM2<LBaERBjBْjYBW8BH|I֠ \BH|I֠BZ&QBuqK0B3M/ B]SR B:j, B^aB=jBɫB& P Bʕy+{ Be_e$KR Bˈ@2NBMhB2BY4*cB8 ^ BrwhBHBB\B*Hk8j B6;?P?Bk#B׾ , iBN" B5 :&QBNyY Bc+iGtjBہ  SBۡ.V8B.H Bz4?iB~J$ jBX35W4YB9R> Bmr)Bn4RBʳK B"uX&B㥛/u)s Bɮ BnQ"@<0BnQ"@<BYuQ Br B =0MRLBxx B Jw<B !%B< )&U Bu.H2Bu.HBLA.Pg Bb1x$Bb1xPB4h$B4B.fk rR B:AjhlBv jBM4'?ABVcoB ABŒDeRC?SSC?ۡJ2C?_R D,CAe~sKCAe~sCAe~sCAvCB3h[CC?9 CD:%5# CD:%5#CDPMqCDi CGϔi.{ CG@ .CH0/aCIЕIQ i CKIyCKW0B#CK+kCL)M CLQz1CL~$ CNjCO[DFCOޜ(˿ a%COޜ(˿?CO4Ư CQVuuCSXh<CT!Y CT!YjCTwC.. CUEOSCUV]D(|CU"SCU"CU @ #CU'ԶCW(m CXsCY$yZ CZ,n }CZ]2/jC]lyC^jlDCaI;SCb Cf,CfݱACkȚþ?Cl7 G Cm-Fe9t? CnE6j{ Co2{gCp%J~ aCp%J~ ,Cp6c?CtiYCuJ_*QCu_dI6+Cw"Ѵ Cw&[Cw޹[mCwD Cw|Cx.CxY`ͭCx_Z\ ,Cz&! c C|k7 OC|k7 1C|]e C|Oٵ3 e C|Oٵ3 C}N^ܗqC}APC' C' C' cCu CW^CaRC$K6C|  Cj^ C 8PDC?C<%{-6C {sCpAB CF,CiH:CΉKC;v CaWd,CaWCS\C-CS\CCS\CSC>m.*CC>m.*C5sEC` 4CKm s C\P aC[SC|K CuCm- C=6C=QCmZFC""œL$C""œC""œC1,=1C1,=1C[tC[sC2**C CE >9BdC)38Cr[ mCC.HC?fdC_ Cy C1 q?C)G'FC2鐟 C=UKLj>C=UKL (CCRCCRC|sCe7*sCe7*NCéOCéOC,d Cb zCutb4CG;CHCPCnCNCMw$N 2CXp/ t<CXp/ CXp/ Y CRRXjCt2 $CYC5¼CL=jj CL=j Cڭڔ2Cڭڔ2]TCڭڔ2Cڭڔ2 C$0C$0CK|>۞Gs CK|>۞GC ۴Cy8Cr `PCFCSCjC CjCCQjʰC^+ 6C^+ 6:Crn[vCu C兡K9C+GBC $ CfGC NC'MW$C|NC6`C6`RCBfCyC+Cݏ;%"CB_DCƘ۸:Cc -CcCc C1 IF +C1 IFn C1 IF \ CX{I Cș9հ>& CDd{ Ct1Rl?C;[t: C;?ߏD Cau?C,qA$C{n C 9CFէ7CΕ:DCANje7iCC?#CЛe3 C&rSCѼÁw0vCIH =CgǜUBCCFZ CԖ8ʓC:l CֈCַ@T! CZYC^`SC^`S C^`S Cۧ,عCۧ,عCۧ,عCۧ,عC }gC(qCۇ)+C֏$UC C@J!WC݋TGR C5pD~5CC¶XCEňC~MC@isCNc.qCU CUC浈 C ]9 C ]9CQgrCccC,N C a"1Ci-CV"RCV"KCV"SCp C9 C쾛:s C~ʻC|ātYCDkCRG CbI C^ g C :M% C$= C4{SC\ CIyV C$fW]C3b  CCaD#x<D#x<UD#x<KD$(jbRD&jD#hDY tDw|'DKdԉD DSYM D0[(tD0E$DaAd|D#S?MD_p}Q DH DB63DїBDї D-*,DyaZ4D^+D >QD >Q D >QD u[# D D (p |D 4㸉 D 9PVD>` DITj( 2DjaRD CE D+Ћ$X D5Hx &DΚ@N!K D : D9R D4J D4J \DsH &DsH  DlDkRZRD~gD D;+% Doq0aDmJ ED?U7D_I,DD0@d!DLzh#EDW1&M  D^GD Gƴ D"-l D$ 0[ D&?!q~[D'$‚@ ^D(T6FD*3˜W)D*yD, jdD-eΨ!D.n2D.̸<}QRD0@$j?D03^I\ND1}^D2:[D2 ΀D39yED39yE D39yE D4eJND5a pd D5 >?0D5 >?0D7a)pBD9rΏ% D91^D9o #D:@D:@-D;A@.B D;A@. D_8vDýz_D'Eɾ D^"Dɲ5K`װR DʒaD?b}YDT $D,Eh *D̸x,YDwMCD͟:|$Dkf6jWD D DϿqK D3ڰb DЀvc D7\] D04^RDVs? D?8s D/;KDٱ)o DgZ(jJ DڝTRYT DZ} D܆ugq D=>Dݥn cD[ $ D[ DC?c(Dߋ3\DI0 Do?DN#hSD3{-Z DF{,e ,%DF{,e DF{,e DxveRD意DDq)m DK D8qlDU!D虍Dz!,;DPTy DS+K>DYl DK| aD]o_D:@=Dxof)Dg7A( Don'!D(q;Do ێ Do ێD(/avSD(/ava D(/avLD[Np] D$C+[DSDH:DckV`DHwkE}>E}>|E}>tED^} (E ..E4E)՗Q%E)՗E)՗DE)՗E ,EfފE}gfCE}gfU2E}gfE AW.E z E D|E: )+ :EY.mEzG $ENs3EⰟ EW ErREfɚj|Ey9 Ey9 Ey9 EkޯE~ , E7èlREv*KE F vE{r E^M 4Ew UEU܏*E R iE oEATaE|i E—R'E_̡\b%E_̡\bOE_̡\bEܘf Ea*STEa*ST ESkE=TE 7Qav E!wi E#%{jUHE#jx E$!kE%jFRj E%?#E&~'Or E(N W aE(N W ( E(N Wk E(m[ME(~E4|E)>> ]E*Q&KvE++xI$ E+盧 E,(MJ2E-BE- &iR%E/ hE/(/6N E023E1wau. >7E1wau. "E1wau.E2}( |E3P뷳q E4McX[E56roE56robE6P(E7;F3?>E8RRw$ E9io E9 E9덈 +E: /]q #E:  ժj;E:V)E;O=3 $E;E<E< E=vIE?`E@Uc}jE@(v EAF EDeiZ] EFh/jEHQ* EHQ* \ EKzA $ELOƫ;ELL EL#"S_EML`(sEO /EO &EQZ aEQZ 2ESeSES'RESCM5ET!E璥ET $EW <"EWPtEX˱~ EXu-j iEXu-jj EXu-j aEYdY5v EYwRj E[.X/ E[Ũv ,'E[Ũv$E[ŨvE[ŨvE\1{E\PKX!E^]SE_R]DgE`u`_0 iE`u`_0 Eb,[&C Ec ٤?Ed8ˋn5&Ed(} Ed(} Ed(} EdzZ Ee&K EeϾEh" \_Eh" EjMVh? Ejr EjU Ej} JQx Ek&ş CEn){juEnoKnX Eoi^o"EpI,kEq#/NF$Eq#/NFEq#/NFEqM} ErdEEErO EsQEsǿ) )Etcfl`Ets BEts Ete*Ev5 Evm"?EvQB aExXtExʻsExʻE{eŦ7E{L E|IE|IE|3~i*E|2RE}1 (E}1jEX7E,8Eӟ];?E|R E%Jsj E ESiESiEgq  E:y  EKX|E/0 ; EXxgEXxgEv}K%%EM,m E.?EyE.?E1E.?E E}>Yv E}>YEpe$ E>e* CEk- Eos~E<(9cE| E[{RE̎ EEoCq dE~KKEMGEjKE4]qMEP; Et/EC2wb E}A tE]o E2 bEWfe?EGt;EIOEo&2z |Eo&2z E&V`dEfPZEf0Ef!EfEd&- E; E)EkEIF@E'/RE'/R8E'/RE'/RE[C?E[C?jE[C?E`ٕ9dEi0D.A Ei0D.A s Eǘ LE|I ?Eȭ+iEȭ+"E;lEfpư iE h EEQ EϝHoE?/dE} KE7ZGCE3E+|sE!EG_ZK$EG_ZEG_ZREԜ_eD: Etfϴ sEG%(<?EG%(<E֭Ӆ. E6DD >Ed;@G pE֓}-CEځn E^| E۞i睤E|bmE܄z nE\` E"yxE"yx JE"yx E"yxEEb{ E:EiL} ! E"i@EFMzV EFMzV sExisE칂:%- %E谳Ecvb %E$" eE@j>?E@j>REjEP &E~d# ETvEdWE-ໃ̻ E]h}7 E1jENR>RE}VEiʀfEX&O]Ehpxf EhpxfEb EbE +E*< EQO?EE;0 Ecm$ E"XEaeEa0 " &Ea0 " E]4 ]E Ǔ6EfcgEX-gE4m E4m iE4m (E4mjE4m ESrH{EۥiNEEOY|EOY ( EOYE7J7 r#E5VE7s;fk FZ8≸,FWjiF4ذ QFc,F"]r^F"]r^FrFnS+W FnS+WF n#S| F h0[F }SMj F }SM?F AR} =F ױQ$F 8zF<5R F("wBFQuFPF9FcPFcFcFK~em FN-×F]]7FEB(F!` F_-O F_-OVF_-OF_-O0F܎ǦFW FsH>f5 FJ' Fk} FW8ȓF>2 Ft4 oF!A>1F!A>1[F"MwF"c$?9 F"c$?9+F#!E+C F$Sj܈DIF$Sj܈F$Sj܈F'f:0 F(V! 3#YF(ց\SF(ց\LF(ց\F*B F*B F+/јغ \F+1F,KF,KF-HpxuvF.nF/xP1QF1:ZW F1CE2 F2K̓ F25F3{KF6s F7.*x F7MPF7]N @RF9FGBx# FH`FHGګ FIqW FIχK]FIiـaFIiـFKd4WFKj<D FK<FLhx5 tFPkőgFPymPdFP4> ~FR(FR FRKFS2D)FU7zB45FUK+FX_<XKFY,aa˖FYx?'3FZGJ F\QvF]B^: + F]xp= F^ɆF^m F`G\e5 Fa( -Fa۬i>FdaHFe#D3 Fgԯ Fg3Fg3Fg3Fj sFj B \Fk-8ޒ FkiFlGe"Fn/qFp_O e FqtlfxFr/DX Fr/DX Fr,y|Fs>mRFv50F FvOa FvRFv̨h] Fv̨h Fw=FxOj]rFx~;'EFz6V, F}Ay'RF~eS&SF~e0;6FK9F1K[s?FYP lFDU ,F [d F,IKZF1j'FJBs#FsxN|F. FlTJFoO=FoO=Fy锝 F8y4fIFhboF}.VFGŞ F5FH'F f@~F F/FSjFarVF6Y Fp<65r $FtZޛQF_B( FvןtFvןYF!L F!L FtLFl#YFl#OF ]F@f .F@f F@fF_BF2)FⓥF?F&flR"FiFQ5w@ FȴPF8:F8:FR (Ft- boF#nF ;)F园0 5FE}FlF.]>FƊsFM螻|F;+F;+ FS;dF2%=| \F1C iF2*ֽFU3QF=ɞ ,FS ,FV FKFr4>HTRMF]wR Frê "Fհ=lL"Fհ=l Fs'M nF2b:7PFGF33|*FIKF5F5$ F5$F5$ F/q&$FѧN{F,k8 F7B  F7B F7B FT/Au Fi:ĤfFg[oaF(NF۞dm Fy3eH1 Fy3eH1 F5sa!!FYP+ FYP+vFYP+ F!i FOqI cFt+| F@J` Fp \FXOO-FXOOLFA ]9 |FFF|7s#FH w] hFqTF; qF|Q]F R F]htF]h F]h \F jF@F@L F@F@SF}4qdFeuFAQFX F9F99bx #G. } G]p⺽~GHuNG0T`QG/4ˀGFN37GC+5~aGE^ G bX*ZSGKG^Z|/SGxJvGI+oO|GI+oO GI+oO a GI+oO sG[,:G 2E G =,E9 G  C;RG KK'pI?G $!D G =Y[Ws0G b։ZG !o #G$ c3( G$ c3(G_B^ ;Grp]#G/fSGeeaj2GeeaE.G!hGnFG]V ^GzkbKGzkbGnq G/?P-GY@}sDGmP%^RG<& $ GPʳ(GY@G3&-Z%GbS#n;GbS#n/GbS#nGbS#nGfGhkUGBl?Q?GpXvGŐn?GgM.jNGgM.jG߹S G Ch{G!H> WG"l G# s3"G# s3`G#IG$±0[7{G%֘߄ a0G%֘߄ G&.ZtG&}9ez G'D@ZN G(+R#' G(+R#' $G*nhz G+BBɻjv G+ӄv G,F0 G.7 7GV( iG.NQcG.q G.q -G/XksG2&iB G2~f>K G32OJG4x>J86 ]G6vG8·\G9$۫G9ݤG:)M'l -G;8ƊG;8ƊQ G;8ƊG<\YG< SP G<"jG=qXG=sѵiq G=0c G>0GARGBS>@FGC4h9GCgcGEIOGF}QGHpp?GHs3tsGHvxbGI-l GIGK=Sj GLZ ~ GLOfGLu(sNGMKGM r |GN/ݴ?FGNG+̞ GN{R}GOuCRGOuC%GOuCZGOuCdGP|`A# GQۛ}sGQۛ}kGQۛ} GQ0#( |>GR7%m# GR+\ GS> GS9%Y GUYc rGV D?GWc˴~GXe^\ /GXe^\ ( GXo}~ت GX߾FHGXiȟ GYPZ|GZk}OGZy (GZfTGZBMG^y G_> qѱG_> qѱKG_~W G_0Vk? G`bbg Ga憇GbR#rGcEI6m Gc~/<Gc|PGcl#Geki<-GgW'  Ggpm;DGhj iGhs\WGhs\WGizH 1QGP} cGxuiGm\OGEGyXK GG zG GM9ÆG. G<KGDFۈGar GFbz iG?)Gϗ凹GZ> iG KOQG KOGE"Sl{GI(UGI(U G[  G̑PGOG]Hj G5B> G (rK8G*oG"ԑm< G|5Ff;G|5FG/w cGy [2 GɆԺ #GZosS G<j GRk$G t_@aG t_@9G3RY~G+u@'G7MGÊJ 0QGmGKR9 G٣G"  GG)a |G)a s G)a GƝz GD_]GǦYGj\?GɤUZc G 7YGD tG-FRs , G̝`HYG̽!RG <^MG6ZG6Z G!VGzYG)>QGʸ(GʸsGMOq G{x GѕN GyJJVGb@ Gs G!?l ,G!?lG%jd3 G>O"vGEr ( GEr G3$b&ZGPMPQG ʾ|c G`FĆ$Gl0>Gߤ$j eQG߮07E GfBf@KGk -`Gk e%Gk?Gk GkG9p G`v 1 GyG'G nlGN#jzGGMag GHjG[U?%eG^?6l GڰGt aG.;G G gG! GΊKC G0`J _G0`JsG0`J?G0`JhGk1 Gd;<GamnG.P GE{ cGy^a G똋G K G똋G Gϡ=e9G%Gu jGxkHސr[vH22`pH22`pH22`pH|=PbH;JP9jH ?HGèHGèH65vrH fs H w{[2 H .D+] H .D+] H x sH yt H aTw=H b3v Hu}"."#HؔU HؔHK9 lHW#^?HŌ H_;WH9~DM HR6D dH *r HG=, sH4 a HY@( H%hFHE̖,HmzHHK@jYHM RHO~+ H$?H^hY H.A"jHN[ Hs "H 4Q HmFA H8 H#UHT< sHTw7HTwH!62C- H!>9 H! > !H$.JHH$u>lH%7~zH&7 /H'$ @o H'j  H' H(o ZH(ݲ sH*c\¿ H*c\¿ ( H+$# H,tk;vH,uiN H-2K4CFgH-igRH0kh)s H2 @yXH2[3ow H2uiItH2zpH2M wH37yąD H4Љ*H5z'zy H5P H6Rf (H74${k e0H8 8(H8`sH9?!qH9Q iH:gj:H;`0:[ H=U)#= ]H>UwVZ#H>d# H?1H@%K<HA蜜 HAM2Am%HC$) 6sHC$) 6jHCQݡ HCQݡsHD E HF*«iHFDEHFef% HF . HItjo{HJR4fHKqHOd) HOƨHOjzUMjHP,Y0HQ刐;HR٭L7HSO HSvHT%kv|o HT#/+ cHU:6`fVHXk_? HY` HZ80YH[fPC gH\nH\wFPH_l!H`$`Eb HatҞ#Ha&Ha'Ha&HZ Ha&HSHce1Q?HdMkh3D HejRRSsHejRRSHeU+:q a HeU+:qjHfy[UNHi@.T/۵{Hi~ˮŘ& Hm aHm! j{^KHn-uZܝ iHnn@8HnY HƝRHƝ HV5IHI{hu Hs HZ?Hs/DF[HMQck7f HڋYHǙHǙH H iH.2C]E,H.2C]E,QH& HH5mPDHzjJH߫H( a{H-$?H3fUkH%"? H<4H sʩH  H8/ H8/ Hq]g$4H8:u% H⁒ Hd~-j Hd~-j HDfZSHOBZ H^qpS@H^qpH#M YgH#M DH#M K;H#M 1H#M H#M H9?P@vHVRHVRDH†)8H9 tHiXyfHihwxHihwx mHr $$H|@-?H|@- HL zHܕAHܕAQHܕAHNIf`HiFHVSsğHLr H\ˇBHC$& Hd/oHɯ H2VHHm ,H"R Hx+K\H{NxQm a HµR H#J sH&8J0SH=kIfH,TH΢RH |uH |uH/J:v?Hc~"Hɔ9Hs3 H0Z H0ZS HX&? H_&5#Hل= \H<)TY HMxEDHИuDL H_SczHt%X H{Zߘ s HHCHzy mHԃ=Ѣ#HԚYSwHX5H5s H{g\\eH֤A9H\gH^NH* } HؽMH\r ,H\r Hٸ/H7oEHgIM H~?dQHzWAAHo$jRHHBR H,cl sRHKm gH^,H"p# H"p# $HGs+ HMSFHs8" HIH=fH/Б &Hڝ wHڝ aHL:DXHw-9H"|g jH>I=gHQNvHX<<?H,W';H + H (j H< =+?HAeHk.H1Ө $H󨤂  Hݴz_ HQ벩 sHvWQHcAQR H +HJ'nRH˴1bH|'H| H]aH]YH}h#H2t¡ jH2t¡ sH2t¡ tHFwxUHFwxU H#[&H,gѭ * HfB:Hב)H)gDHҿbHaDH1%֩ I Ii50 ,Ii50 $Ii50 Ii50 I)IIDIK II UI$}? ILCQ ILCIW IA7^I9ImAqGI Њ~!#I 5ÐI MVA;I t9 I t9I u}I u}I#*QIB'~ IɖYam# Iˏv8 EIˏv8 IdD #Iy)G*U6IÔ fIY!I z3aI( I6j6+ I/64] I]|@ I!;; , IWV  I;yK0NI7RI8n_I8<SI9U  I9du I:BI<(;CI= io8 I=Y5QI?@O IB^NIB+aaID nRID)IDsIG]Xz.IH@] II@TWII,ny II,nyUII,nyLIJxeIK{-2IMr } IM%s` IOOIQ1 xDIS.w?RIS7PxIS7PxRIS"BڇITdIT_"X7<?IT_"X7< ITeHF?IV1\IVEX3E IVQ匿IVJX?#IYNb $ IZ }لIZ }لIZ=#I[2| I[2| I\~GBIY-I\~GBIs'I]}]?I]44s I]44 aI_90OSI_PqOI_ I_ըp IaTcXm?IbM"Id!Ie`xIe`xRIen\If/.=IfWN?Igh) IgXRIgP IR7 LIеY $Iݫq(Iݫq( Ig+m=|IgI/Im#SI*p#I`CINvfWQ= I,ƃQ Iȫ.j}I碪9 $I4U dILAI͈;I) I͈4aAIij9IN &Iu?'IщL?O< IV#jB?IV#jB?IV#jB?IV#jB?I=/|Iq > IՊ/:IfS1ThI=3 I=3 $I+jIajINJuI25߈Iٳ-ԟU ;I!rӠIB/aIgXJPC IAۧ% IP?YI᪗)1!}N I& |IX{ (I.9:3kI LUI LUI LUI LUI LU I LUI I?I>cI:B=  IS $ICA< I02:I蛡)[Iꩽn) eI8IS 'U]I5I9@u`Iv\y ,Iv\yIv\y (I=I" _ IpFbI'i IDWIeԸLWI9uZUIS az]Iq IwI X eI4YI4Yt I4Y I1 RYI1 R I1 RIϗueLIPe\p &I͝OQ IoI`Ⱗ I-Jr&g~J-MJd Jm0 J0) (JۨmɘJ?p?JJ ;9  JsلU J\Fo J ,JJo1qzJ RK} J UQdlJ Rb 1 J Rb 1Y J S)yJ b p \ J \ /3 J 1@pJY=sW ,JN}J= J"-󏃬KJWq ,JWq JWq Ju[J.O Z J.O Z J.O Z J- JV)C JV)C J3~:kJs!J֪7eJ/G5I J5H $JhxJgz JRVzJ6|+J, !J@ՌJN=!J ބ?J!FsvJ!<1RJ!@ X|J!; J#jISJ#nNJ#kDJ$2J&?Dm?1J&?Dm J& ;J(W9hJ)|9 2J*/<5sJ+/ J+[@ |J+񞘯J,{J.A? J0m!7S J0twS? J1ݾPJ17n DJ2odHtJ2odH J2ZEJ35 J4'J4TM J6Ĭa J7!:J7 J8 X#vJ:;Pf@ J:;Pf@J:D[L iJ;! JRJ?d%őJ?d%őJ?]x@J?$r`J?KIM : J@nf2JA^W JA^WJBJj +JB|A4$ JE5/{@JF$>"JF-uJG JG9{B JH a=JI%ۖ-JIa3hN#JJ.A׬JLdλ]JM? cJMfyUJMŽrJN(ܜjJNXW JOkmIBJOkmIJP|\6'DJP* JQ+:lMjJQ{JR2؀BUJS=SCtjJUl)IJUzU]# JYA`JYH/ ,JY~zj J[? J[?J[*J\(.ĩjJ\+k쉆J]ޤ}jJ^_,4\, J_cFEJ_jt.VJ_ J`aPR JaabK Jb@qJb샜f_SJb샜f_Jb샜f_UJb샜f_Jexȝ[Y?JeHzn|Jfl Jf* UJgm|jJh# RJh}¨JjJn}SJk_ Jk_Jk$P#Jk[ aJk$k$PJm+`- $Jn?PIJomC/Jp0* ,JqC 3 $Jqoh<1zZJrɮ0]Js*À Jt5 Jt5JtCYJuh?B JuJХK JuJХLJv uPJvf| cJvvZYJvvZJwC(tJwW1t# JxDUʵ Jy5qvJy87 @J{J۾J{c!?J|p"J2 J|!ϰP&J|!ϰJ}:)"4vJ~f̓ jJቦdObJ}e\ Jɲ J%SK J'R͙ e J'R͙ Jg ^Jj/_?J[ U a Jsj JsjJH$e[JUuNJUu J<ف^]QJOpv JOp Jt]Jz/1 J?w0 J?w0 iJ?w0 ,J?w0 J?w0 J/ nGWsJ6|| JH* JȆcJE$ JqV@SJ5vc}b%JUJCc J J W+JB ^Jֈ1J(lJub J#5 Jh"JS0J2 J /KJ:JfoJfosJm-& a JFP $JPJVJ^J|x ,JXr^i'JjfoJݐ , JݐsJ"ȣ#'JKP7?JդnXyQJk JSYJSQJ55JJbb(% 3J-dSlJ}Ӎ #Jm$J Ss JĐ%!J/)08J^UJ=;qX JI`(sJJjW JJjW:JĢ~ =JCGZJƶg_tJƷтz {;J*]sHJ*]sHJ^Jˋq7Jˋq7UJu`sJͳg'XNML JΘDJЧrJZɥY ,JZɥYsJџxZNJ1>HJiI k Jm Jm j J-mgsћ Jӎ ( &J("=J*gdJ% Jنg_O Jݭwh@s JPD Jގ|FdzJn mJ߫[J߫["J߫[J6;cJ,KksJ,Kk ,Jဏ< JW ,J "v,WJ?B[حRJ4 !t!J< JL6 J'" JFJ@ JԖyWJԖy JԖyJ-]oMJ;q|JtMf| J &VNJO巎RJcvJFcEվ +J& !J@a)J@aJzHJO?bmJv0tuJtRJ{ t JC| #-J?< i#J?< ,J?< {J!  JqfE9JqfE9 JtK(Tƒ K*E:K+5"r  lK-%sVK-o K.NK i K06$CCPK06$CCS,K06$CCK5s~_WK6 % l dK7Cv?nK7JK9ZK9I K:gzY iK:gzY -K>s# # K?%$K?5"SK?5" K?5"K? t#K@ bKA]B?dKA `vt KBh#KBkr%KCDڏx7KEUqKE!KF,ģnvKF,ģn KF9 KGj^2KI<} KI<}KI逸L KI逸L KJ;KK$KKWrGtKKe1q|]KL{$KMq"+ lKMu hdaKM DL" KNE rLKO{VKO{T KP?9DKP 3+sKPѾ_#(UKQ[ތ<KQ#s!KRp KR jQmKSW%KS>]KTF- jKTJWYKU>-zKUYn=  KWZmT KY T-gKZ{0 K\Y sK\ʑ=[K]]9/"sK^eDK_r72K_r7jK_2? ,K`DK`DdKafjKafj:Kb^QKbPB KdEn'CJKdmмYKe q KedKfчx?Kfe Kg6Xڜ<{vKh>z:Kh>z: $KjHqUXA v Kj5`&C Kj5`&C Kk8DKm 'HE eKmgFKn0+{e Kns\vKn&z>S6Kn&z>Kn1 Kn1sKpIBV sKq(KKqQ1w_KrlA< aKr_E Ks*{5 Ks*{5 KtLZZKt :LKuxTDKwg~J3 rKy"g6a4SKyM Kz"xz KzyIKzE"\ Kz[ K{  q K{t K| aTK}w# K~RGDÍ K~RGDÍ $K~m0 K~ &c iK:G C9 + Kz,ΨLK?e?KzKG * K ~*UK ~*K ~*iK ~*hKKC8Ki dUKF^K&}(? K.8_GKL>KSfJp KoXl ^K3C\uK`Ѭ$Ka*p8sK`p iK`pK`p eKNBc{| KƧ? KƧ?Kp*K Kz?K,TtKOKCƕ]\SKo~ K{~ K$P6)Kju ?|Kw \ KV%&KiY$ K?*V?K)R)KPgi# K҉b KK|vKBL K*%@?K^ KMtK3m) $ K3m)vK $YCKe Ke iK]oV KK5 (KFUPKn3 iK;ұDC Ky[?*Kx/69 K?jK?2K?K?K UXXmK8N㻺KKjyKmk Kxq6؛K'jKgrX% K & K & Kٓ:Kƚ"+4KO?KLe, l KGQRKa7, KZSK42KHr.Kۈ|, KSA KV KդsKHsVZ $6KHsVZKHsVZ |KHsVZ KbPKzLjKe^ K&Qj K8$oKd*8 K?gvKƥKÁw:Kr GF, <KmW:K!] h| sKDAKdz}KGKKUtKɌ(Kɭh>RRKɭh>RjKɯbY K.TK7kEغKKhϩ6 K0FʢNK1iqۀ K̲FbK|ņ"KLr Kumn NKXhJ K$g%KKHK"{K8Z= )K?okKЍĨ KѦF0K7{ K$z,K6 S KR"iE. ,Kԙh K0:؈8 K_`n? Kמ*KeKLN Kid{K戕_tK. lK߅>K0yk K{OmK⨞7/KXaAK; KdhejKdhe ,KH +KgDGKgDG K0ŵ9K"#&/K杓_Q' e K%UH \K갉۶: K_3^ K_3^ K ۦkC K6 uTK`Ed Kb!:SK- cKJ. %KtLKFx KnUS KKa86K$BRK 1-PK 1-KbK??d K&$&. Kf|Ky.hZKdhm LS / v L%LiS] LL9 L]u aLG6fA sL$M'_L L \9KL e\ aL ŝ L ŝ  L  \L R֋/C L T-^.L T-^.L3 L3 L3 LȨQuOLkqm L으/xLs,!.v LáNODL3%.?LI/)W % L$/(L?) L[?I ,LOSLp9 O 2 Lpbedv?LfZ L# LL9B $L4 LIin L؅kaL^#D4Lpeo!L LZ, LYR LYR LYR LYR L *;|L TSuL TSuL!h aL"UelKL#Z^L%PMhC L*C3 L*H*>L*L?L*`  cL+ 㽎}@L,&Q)SL.s(`L.sa__L.sa_ L/YD 3L/YD NL/M1L0*,] L2N& L2utX? #L3ՠvL3#YL3FD]L3u|-gL3~V^^L3~V^D'L3~V^RL4 VM#L4Z|V-mL4Z|V L53+L66hXL7JK| eL8"=H8E L:o ZFL:o ZF L;΢L;[[L;[L8XL>58z0L>58 a!L?6gyL?_~YHL@L| LAp'_LAq?LB:LErID ;LFmyRLGV$ LG\LGn[]# LGn[]KLHtLHDsOlN LHͼ&LIg5" LIm眺;LIgƽ LIgƽ LJZ{d LJS%ZLJS%Z LMBfaZ+LOJH LP jLP (*LP LPHѣ LQ=H LRQI 06LRQI LS.?: iLS&LT'2v*?LWV@7"LWOM0^SLYkź$LZRusLZƹ;rd !L\9 +tL] sM L^ d0L_=EeL:LaT#: Lc6-vLc6-Ld`X LeD`.Lg {p8Lh0 Lh/ Ljsg[E eLkbzLlؐ^lMBLln>(w Lmgu]Lm*(LnڡR mLnڡR LnmSlTSLpe)wLqbv LqSBLsk҈ Lv>? mLvހ)RLvހ)Lvwv*+ LwjaLy)JAlNLy1 Lz8PŸLz@ L|Z-_CkL|Z-_CjL}:NNPL}OIGj. L}. Qb L}Ӣ-YL~:~HjL~i9 L~i9dL_DRCLzL(9LnVLw:WzK L}kL LN-nhKL%*L7$L<)jILdD L#t +L[5c?L[5cLDwoL#D$?LlA!L3N?6\ LOY1L&'\_ LH Y5X iL~PlQL?ے vL?ے L (  L ( (LUlPK L6䴂 LjLp`n[ L;LjxLLR䡀DLR䡀 LK LN}< i"LN}< ( L@OQ L&+?L`& L0aLq1 3L$ L$ eLɕ٤'L#?1; aL1&sL1& $LLqo7`Ls. %L LؓeLΛ?LΛ LZ8D?Lݢ L Oh LUZ j >LUZ j$L`Q!1 L`Q!18 L`Q!1 m Lo~$, * LL6D" e LO"LBÛBL#&x5M]L#&x5ML#&x5ML#&x5MULd|\ L{RLz?LpC iLv&fF0Lv&fF0L 1$L7@s e LܹIzLpoLn8 L#dw Lj}LjSLjLjLjLv5i1 Lv5i1]L'0L8c | sL8c |Lb~ Lc<9&Lc<9&L|mL=Lֹn)~DLo/L_a8_ LkvfyLA)L1~.LL7YiBLɪr縄L.%wL8L6]L:dLʹx3Q L@ERLsI L\{kcLL; B L1ufG? L τ: L τ L/q LӜ[4L}iKL! ^LϟDLSZL訟 ^LjS&%PLELLjٹ_+LڗV S Lڗt1]sL ^#L ^LCLCYwLu8x $Ln'{7 Ln'{7L*:#LðzX8L[dN LS$ Lgi.L{ q LSLWyp ,L0i1N Lό Lݭ7jLݭ7LT{YLwLUrg]dLUrgUL?L,U\ L3Ѻe LD 8@Rd LE RLgjg LblLk~LL[kLZ%e L@[$Z.oL9FmLd ߽{dsL] Lp2AYLad4LL1HP› L3!UL['LնfK L} [LtaLtLpuB L\pkjM0glMO0!A!MhI MhI M+! MњIe MњIe MV!R3MU6M m #M cfC+`s M \ vM pRM_D$M;sxMAY# MA7 M4+Q)M4+Q \ M_$BlM?Ch Mp}T7Mp}VM?"%M-n)4 M; ,M; (M5R95 sMRvКM39)OMN# $M ITh| *M.Mҡ,MҡM %i qM lDMPC4M lDMP"M |{H # M"]{M# oˉLM$ʁOA ,M'pW4f M(Bv M)W M,mWM,C$ M-B7M-'0M-'0]M-'0M/{bj M0l M3h+eM4o \MH AMIE<MIV MJ?H8+MK_ۧMK طdcMK طd ML*gSnZ$ML*gSnML*gSnLML*gSnKML*gSnSMLiMLiMLiMN"ZdMN\9MN cm MPYu MRWww cMR/ jMRBYQMSŽ`MSF( MSFMTQf> cMW0o ,MWts<MWt n;MWt \MXSt[MXwuF_sMXwuF_s= MXG<_MY[=B` MY5WA8MZ,ry` M\K`M]RڻsM]aD`VFM]m,8 M^$]wvRM^cM_z իI M`b ZM`b Z Ma`MafMbW߭Bn Mb $McJRS McJR Mc(1em Me;1eMedNGMedNMedNLMedN MedNMf]BlMh3dZ Mhv1EMh^dMiּMiּMiּMkೋ^[Mm-?MnE%4A  MnE%4A MnUsYMnUsYMp@w|  Mq"Gf (Mqm)Э9Mqnc Ms3d=-'# Mspya2MtQ!Muֽp&MuֽpRMv-/3UMy~Ye8Myc 9MyĉbjMyĉb M{lF@ M~gΓ5fM~gΓ5dM%!MQ<MQ<LMUOAMYSMmD MSnMQMQfL$M; $M;jM;YMÖM^MÖM^ M~PM֦TkFM,U-< , M/MvMMɤ% MJDžF MR//Z M帵AM|!bMd8>k Md8>tMO*c MAW2 M]OAMLu# M] M 3Y M\M@M NMe>@M/ѕ0 Md=>Md= Mۂ \M>**MF'Mn/8Mn/8M*M*MŎ M__I?Md~RMPJ M"MoO_uY%Mp Ic MÒ3`,M= M^f]> , M^f]>M{JeK M+nA1] MLYmCM \MD M)_р{M)_р|M)_р M)_р M4HtMl"%tEDM&ƾM+&=MiK MiMFWJd|b M7N M#- M'7KjM{@M$`MQVa MжG}jM )M )M}|xb?M,<zMMxfMdžu,Mj M|f[M|f[MHpM­L Mõ$kMõ$ktMõ$kYM{ιMǛ,*tMOѬvMl?'RMɖ/ L RMȦTAMQJnP?M˗m?M˞r+VSBMͻ%PMή~BMЛ&jM;MW#݊?MkB!M;~il$MDgMՓUv MɏdG Mjp Mֺ? "M]p MRy7Mۑ 5ӣdM̏ $M,oVM,oVCM܈!(F MK=ZM┪5 (MRЯN M޸H| MрӳD cMkE?MlϪW MlMM\XU Ml+Mꈷ Mꈷ MH n'TMȁxM)[ MdWO Mo9$M<p"M} _jRM1M $ M1M ^ M䃰.mCMV . MRT9s M 8MeCjMeC M ^V %M? xZvM? xZ MR' M&T"M]eu7Q M]eu7 +M[A%jNMlYJ Mz MifjM)Qދ{9MEp1ܐA M@ c M RMO7b Mse MseM4pXMU͍C m a M0MN:BM)gbMM4;"bM4.< #Md!I \M ~~ݲM ~~ݲ M ~~ݲ M@"ʬKM* u8KMMUe M;T?Nܞ'b NUP~ NC?N a> N <N  ɝ, N ͖5s NԗANNESNg'm7YNz)2NRڽN>NTN& ) N+Z Nj \h$Na N`1NB~SNv# 2NiXNPjJN2.ԠiG N>Hvð vN@ { N@2*_ N@~fONAnn!DNB#IKYNCs  NCÁ[OqvNE_ NEGp?NEcG sNG9;KYNH &Q NH]~6RNI溪`gNNJro mNLIaNMk/HhNO,E JNO,E J]NOw NP()r NP/2T9NP/2T NQ*͙NR Uڬ a NR Uڬ NRW: NS@NS-NThBOvNU $\]NU7ƿNNU`j&NU`jNU`j NVZ7 NV}ܦ &NXUNYD jNYD jYN]uX޲[N](dCRN^9N^N_ 5KR N_Z^+ &N`SCLNay9? ,NbPq (NdtGYe' NeuFLNe0n*Nf6zkfNiQX] i)Nkz[Nl@pk Nl_Nl_Nl_Nl_Nl|D L.Nl|D S(Nns1(Nny|kl` Nnj:NosP d No䭄 Np%`t Nqu_NrpdR_Nrpd Ns*o (Ns*ojNs*o $Ns*o ,NsvhI NsvhI NsvhINtxsR7 Nu#Nu݂tvNvaNwBB&$Nzv Nz]$?NzdLN{I06{d N{" N|5*UV N|Z&$k N|xK N|koʤ -N|koʤN}sN}G N~{0_lNn$N@#GN4 NpkNh @k N4[N87WNAOgNwzkQg NwzkQgNwzkQg?N^xNƧ9P! NNU GN% F* NC>/ NNio"&*Nio"&Nio"&NpEۜU"N)YN)YjlN)Yb N)YkN)<q Nn1@J N@Ǻ2m NT;NB2N7P|9:Nx^_( N?fNJqddY]No_9N.v:_ ND"A<XNwMslY5NwMslN'[VtN'[VN.;NcȋZNcȋN,G -N]GtNy3U(Ny3NKNDL?Nm&asNexdNOP`/pNF,fNqrP N_ N[u 0N({ N{[ N{hNZ< #N_,| NK7 NmՎC ( N94,: NOƑtNg| _NSG>kKNSG>kNSG>kNs` NeNeNf1GKNo) N?Ѥ5LN d&= N d&=N6jN6YNq\5Nq\5:Nq\5NBN j a N j NB Z NxV N.7NµژJ \Na~QNçjÈJN $$N>o8N>o8Nh^"9-RNh^"9NA N\N\N&' iNΏ ;RNK PdNK PNiyN$#{ =D'NЛ֊B}N^]ZNӘ &P NչNN׌HNI@IVN١>NܻNqDNހOaf N3!"N3k l N3k lQN\> NzrRNlQN⌔4 N?ivN8 N+=YN+=N御`[pNoQHd NfN?OvLN/E{?Nr,X Ne]NYde#N JNsb?NsbtNP `@N\|NtT#~DNB \N!1 N aNR cNo,Go| Ne|ta N.z NV?N1ȆRNnXߖQv NN 5 N[T>O'Ъ1 Oc/ OWѸIOWѸI OIF O5," O:,;O)(qO)(q O+N9O+NO+NDO Z@Nj1O hIO l(nbO zD O U1YO \$O ӤBvO >(  O0dOd# O0}2 Ouye_O?cOƳ~O  O^p O_OV O" (O(pO~a O~Ow_aOyrOFga$ONՌ] Ox& Owqa*OQ  Oo詣O0 %f O (N$ Oz^ڶbOz^ڶbfOfV0Ow{:AQOT@I O'H1 DO l .dO"@i O"@idO"֔;t O"㖿, #O#, + O#2R7uq O$2^ O$(O%+CRO&}9O'o O'o O'o (O'hFC sO'Q58O)l6;O)i \O)vh iO*,WO9iXO:ˬF O;eBuFO;Y #O=6nljO=m `0 O>. O>:( cO>ٿ sO>.R OD OEN"OOF: OFMpb? OF`o OGFB8h_?OGTl5v OJu, OLw]`vOLh$]J OM+x3=COM+x3=ONFA?OO; UOQ~OToB ,OUKRqQOVeٚ OX|KOX Dб OX DбOYdT,sO\ O](!jb O](!jO_~O_TGB}ZO`yh{O`R:O`m^Õ j O`8_OaL:OdOeCak_Ofm"Ofm OgxyVNOh?"&J?Oh kOh  OjD/$Oj/9OjOk%C!|Ol*N㉱Ol*N㉱ Ol*N㉱ $Ooy) ,Op-OpI{OqrrgOr8J2]2OsMF/Y Ot v OwKìǢ) Ow`r5V Ox`rs ZOz-~Oz-~Oz-~O{1gRO{c y8s |O|%/O|%/O~Y O8҃O8҃Oro OroO^u8w|O^u8w O_Q18>OQC OCO>wO|}0yYO|}0ytO|}0y O|}0yO?#O?KOqCX* ,OqCX*OqCX*O3B O?):Oj3O0I7 O99 7 Oɪl{ O"u\2HGO듑qRO1ZOA`"0O|q` OKb OKb Oq@Oj jOfs# O|'I᤯ObĻ2O@A`O5 " O,' UOR OזO 3JOurp|! jO~EvO~E O˃O˃O%o iO%o OhNv Os Os sO3Oo"<$O9 ]:O[q =OתOȐ OYLL=OYLO5dټ ^O-x OBn`"UOBn`"!Oa0Oa O++[RO"%#M Oث2] Oi I$O3nO :jO3a]4 O3F̉O ezށU OBP OduvOV0 @ OVUA]? OѿgV  OēO %`FHNOocO }q? O$j~?Olbe(jO6} O6} iO37sNd OG OBd AOS9R'RO'!>T:OC57x (OVxK}O&OI˹וROihO{X<ZO} O" Oȅk"OȹBe&O0тOLOe%` O }B  O }B O̸fW O(mD Oe{Oͣ( Ocir}lROg߭SOv7Or!?OeO?9OLw[-vOwR%O־ UO|g $OΣ^ OB٤Oڅ\O]fcpqNOܬѢOܬѢTO)eaO4= Ohܝ1cOߤs OsO^@%Oފ:sO]3nPjOdFz #OV/\OY] 5OW/SvO^[a P>a P3'P1P&˅Dy -6P] C #P{GcP'D P{I$P{IRP{I#P{IKP{IUPWP05!tP05!Y P05!0PlAP3I1PRG; P bLPNK^bP鞸$P+5)#P 7n"IWL!P"sM+NP# P#4ٍ1P$7WJ -P%~S( P%'P%GN RP&b秃 P&eh cP& ZP'Qf P'ЕekP(`A P(7L`sP*_A1UP,97PRP-:(،9P.C2Xv%P.;Z} P.&P. UN@P/Jie P1d P4;RbvkCP4[oڅ (JP4[oڅj!P5lOwP6Vq{DP6Vq{P6<vP7P7 P7 P:x5Rm P;:B:dP;d\ͼ P;ѼP=mn0W?P=mn0W P>xJP?XYP@)} PAB]O[ PB'TSDPB'T PCqE U PCqE UPD&ٸz ;PD=٬HPDmtLt PEE*wPEK_PF:PGR1bPG7$PHPVz*  PJ߱2?dPK#rRPKЋ|PL ޞPM/?s! !PN ]CPN ]PN9PQPN9PPN9P$PO#Zt 9PP:[,tPPQQŒd3PP' PP R^[0PQp %PQp PQE=~tPQE=~ aPTM^*RPU[#k PU6nUPU6nUPUmPV" PW[[$]@ PXk풀1ZPY?mY PZF P\zAKO P\zAKOP\j\>YP\j\>P]t P] P綂 UPGQ#PGQDPGQP@ArPZ՘GPZ՘G?P!lUdQPʷPUzP PQkwD8PQkw$0PQkw-PhcEP|Pdʗ*$Pdʗ*$P .Piz $Px%1 $P6օ bP@NtP3e P-oP-o9Pw?PB !HJPR)Oy PR)Oy UPiu(SPLny*T PD PIs\s"P;!ѽĝkP;!ѽĝP? PM<8VIPM<8VPA>jP7kPqqP(P=8e-[ Pd@:P߭7zM P;P.;|P_'P7{P(U%UP_#PɬaPG[ d Phr?P|%9PkϡP.CySPo#P!w!P>5O$P盤PPjjD& LP`8+ P + P8˴DP_ƺ,P_ƺPmݝaPxyO< cP&IL PKoܶP  P( I P( I ]P( I RPD< Px) PϻMdP" P(t$ , PҐ?P\6QkP*09K>P*09 P*09 P*09 P*09RP) GPĭk~-P/ 4 Pǂ/PO"PȎjt !PwwdV;Pɩ/ɓD Pɩ/ɓD $PɸP) wPj1JP̉g\P̙ P]Rc mPјhPјh|Pҁ:kP?GZcP< M$Pլe .P LP+{iP[ C%Pv:$/ ~ P۹FFJS P3X7 PߕO eP<:5 ^%P<:5 NP<:5s!P<:5 P/+R] P1?P3&tPj@ %tPu7Pu7P:^DPh앀Paߔ PH嵏 cPsz |P&6 aP +Ї +P9?<ZPJP?) P-u  PJ01YPìtuP:5ź?Pon PvP:I vPIP~ P݋u8 SP} Pw{߆2[PvК7P2aJ PkM W Pv PNE]PFh/dPFh/PN+"sPN+"]Pf;Pwj@Pwj@sPwj@ PgNQ-dž2 Qq`^Q4HYQ .tQK?Q+afTQVQ+ Q Jʊ=Q YQ .Z_n`Q r \Q skEsQ Q  Q(zJ Q(zJ ,Q;i QvD'QZt:.QQHKWt-QNGQ|9V Q.sQ Ի/ Q^RڥQ!A -QȎNf Q8 Q^S?Qh?Q?QhRɸ*QD Q, Qc*Qc +QYz Q5F{ծ Q!ul Q!} Q!ԃo?*Q;]; Q;xsP] Q>ta m Q@LvLQC\`B QC\`B|QD/:2QD/:2QD/:2 QD4ލ QEƤa/QF*QF*QG JB=QGr QGch''QI$S.8k QIW6} #QIźSYQIN QJlzUQK #QL YQL[RQNoי9QOp) QQ"]~k? QQD*T+DQQZn QQ|t&h8QQԋ QR33v:QRdQRQR1 QRߚ鴧QRߚ鴧QS*!c%QS*!c QT N'QTۖ QT@$~QVw S>4QVJ'QXf QYav$QZMaQ\Sɪ Q\Sɪ $Q\Sɪ iQ\Sɪ ,Q];9^=x Q]FÄJ5Q]JQ]gv? Q^4IQansQansQans]Qb$QcQ&r.&QcQ&r.YQc< W Qd=zQdɏA QfPX?QhgIuQk+Bd Qln QlnQlnQm& Qm]tQm]tjQm]tQm]tRQmqj QmvQrjJ i QsE1J sQt?#Wp#Qt?#WpK QtlW QvjRi]"QvjRi] QxlVy QxE9?Qz( Qz(SQz,oWAaQzV Q{lD` Q{#C"gS Q{#C"gS $Q{H0 sQ| @Q| @Q}⨧aT Q}⨧aTC Q}⨧aTQ~n?Q~"z QEm׻)Q']QRjQZXLQj&fQJ2JS QFjQHY1cQ/ QEhɦ/ QXQXHQXP. -QrQۊcsQIz0 tQf|5vQnp]QCaQQZm<QuQuQ*C !QhdQ8TQ Q8TR Q8TQQ񾔆 Q񾔆 Q ЂB&QQQPo0WvQHM3Q6T^+Q%I^4 Qbc Q|w8 l Qa} QTeJQȽAq Q:_]{Q| mQO&Q8ߐ Q}(Tvj%Q\MtQ\MtQQrM$Q?Qֻ MR Q(LQ(Q-{AKQJ\VK  QK6S&Q lr_?QsQX Q5 ֐Q(Q[|@ $ QP0ևK QՊtSQPFc \Q;jQj=RQ{8!Qc3 $Qj:l1m\QQ iQDI|QDI|jQbQyK&Q&g^QFR %ZQ vbQm&RQ³H1hQVN QXʰLQ|v&QYhQGk#QGk$QvaQYQyBft-Qy Ql](QΙo@Z  QΙo@Z QQ;ÕQrc oQ8ζ QAsfQ {CQ {CQҿ!|QQAm QNL QԲȚUQ۟[ܢ ,Q۟[ܢ QvJQՖ4aQߴg Qˡ"::QUQغGkڲ # Q>`Q V Qٔ<3t%Qٔ<3 rQHQHYQyzϵ Qڗr#TQڴ ksQ ^QJQQ ,Q"P1NQMb QMb] QZQQsH Q| QfuJbt cQmP3Ý`LQY {x  Qz~׍&YQr Q|_-?Q hsRLJl$Rq<9+ ZRq<9+:Rq<9+zR=7*0e6R0m R1RjD R(#BSRՓQP?R١?R١R 6kT R .m#Rt|R¥>vKR3ERɆLYRL0m R*+RyM R3TtRʏWR ~E|T^ R!߁ArD R"phup 5R#Ϗ?R$jJ R%"&~ R&s}TB[R&ŗHJDR&ŗHJR&j%VR' EY@8 R' EY@8?R'R*4eR't>XR(&s@R(bR R(XPsR(XP iR(q0 MER)][ R)][ $R*'R+w9 #R,G):#R,R,HCZbR,HCR-k@HR-`B5R0*K[ R1+ -R12h? R35C\w R3PtDR3x]nBR3֟"CPR4qLl cR48bR48R5"mcR5"mcR5bR8H R8Hǃ!i R8U {R8y*}R8USb R9 \R;-`OR R;-`OSR;@ ` R$vRt/);Ru! Rvlt;Rw E=G?Ry|[VR RzÏYR|V?R|VR|AA%R|AA!R}܄)+ \R~qp5KR~:pW?RR^9b |RA|! RA|(R\ R\]R&1Y,!RolhROj h4 Rmg  RNtS^R{ŕW R6UhRR6UhRg<\&Rg<\&sRľ Rp7?QdRp7?Q R R_i R^/7s R_ (R_9UR_RR_R R%~_Ru$Ob,RPOg \RPOg 'RPOgtRI"R3UjRfiR$ט R2|I]Rdx R  R  RZiRRx2*R>.\, R-- ( R2甖QR2甖NR2甖RXDINRQGZ<R2mo RN~NR.~.RRgT= ^ R7e;',RHI; R&`}RѥG!R4m R4m RavN:*tRyRRlj(=HSRLLOujRLLOuRRȫSKRȷ} EFVeRȷ} EFVRȷ} EFVRɇ % Rɳv<R,/iR_Rӛ RӛaRʸ?s R5.rRq3`qR˿s.¦RV2 R/xkOtR/xkOjR?iD :RjV RόhRϷSB#6RЬȒ%N> R ;vR nWR*Z@pR,R&O )RٮVDRRٮVD9RٮVD!RF‚HRیߵHVWR۪mz ssR۪mz "RFt iRް8n5R$R#.V R#.V R$F RS0*U R߁-yf R5Vy+R gR g R^'#B~Rwy< ^R'$RKH0 R{sR:jͱR?K~R?K~ZR?K~Ry R< DR<  R:&y| R誄61RuN] RuN]|!Rh j Rh  R]Re֋GR/L(R<8ATy?R*{Q?Rzv~ iR0.RGņRCRGņR] $ R?3 R':U]R;+` 1 ,R1v%Rn_ RZ!YuS RR@7 REp~ RUӠzRTfuK R[2D+Rq\R R3j sS}GQ\+S}GQ\QS=P;QSA@zrS ,V2 )qL S d,!#S d,!#S mDMS =jS QcF#S &guN aS yV7S S U(rTS:"Sd&] SiڛpY[SII^}SE];~m +Stc (SoS֊N S A d>S A d SY[xdSi+#`'Si+#kSc&E S5/> S5/> S5/> KS"?Zȫu?S1S. S0SѬSǡdS߬ Stl2KYSScbSss5S_* $SvQLSvQSvQ S"Qk SY `~:SY `~ S|^wYS}pS\¤hJS9 gS h.BS Xa: S"kV(vS"/'S%$S% v S%=6BS%Dy S%DysS'QFa S'l&+ aS(7fS(7fS) h oj S)3{S+ea S+ɘE+ S,"Iq?S,nz6 S,rKS-4e꽉zS-X*Y S-[C S.i?RS1#,?U S1KGa>S1KGaS1V.S2Ê?S2+oS3l NJS4#EmS5ڭ S7԰9&D S7԰9&DRS8þ S98S949nUNS9鵮U?S;DJG cS<V S|u<QS>|u<CS>On[RS@9*SAt_?SBSCnCSCIPzvDSDQvҮ SE SE.b @$SE.b @R SEz SG~+USG@0gbsSG@0gb SGn7OSJz4a?SJ"ESMq>sSMq> SMq>jSMV"TSMV"TR SMƁ); SN SNhq SOM%?SOM% ( SPt (SP8i3N SQc> #SQqU@rTSRi j(SRt[SRt SR{DSRTt ST?[SUУvSWnSXZ1 SX<_j%SY:-SZ+3 S[_ÁKS[g+b? S[.@ $S]+ʷr?S]DxRS]$YS]|v S^ƢdS_{Jھ aSac&SacSbkdSbHaQSbHa Sd2.KSdD ?a SgNx$Sh&Shjdt ShZ3Ϡ`Sib{kU Si|܉G@ SiA[ea]Si9P^QSj6A!Sj@ւJ Sk~WN Sl-#SninwS SoIXSp"Xk Sq.7[SrcFSrе ( St}&Su3T Su[Sv4VK<Sx( " Sx( "Sy@ Sz<ǗSz` S{+  S|aRS|5DjS|0sS} S aL#S(As?SCx\SCx\SXzbBDSSXzbBDZSXzbBDS|uB sSM;{SԁV79SԁV79SqQS>9 S>9SIl׎S S_6ISLOLSt \SeaΖr* S5S5 SfC8S+Ҩ^S  S&k| Sz.jS%\?S%\?KS|Ԟ S|Ԟ S4[}I lSM <SX5J˸ STdSS GFdSb9LSaKE $=Sk>KE? S|v{ S{KSE]7S&<'c| S&<'c cSq So$FS SɢtSYbSW13SuPS違 SU8 N So' KGSnN>fSt~yM SsV3::SN SS_́#S\ S;68 SjY SJajNS[,v S[,v -SuC SS]5 #=S,{ ? SyJaSbt[S? k SNTT .S% SSKT' SoH! SoH! S8:S;_G5]S;_G5S;_G5CSVG`S\b?S(':tS(' iS(' S(' SPkeSrX"SrX[SxKQS < SK?S ?Sڱ|SGJ6 ShS:j` S ԖR98 S?}L SFxa$S‚L[S‚L[ S,I" S,I" S7>5QS-]k׶RSmXN 2 SŴE %t)SŴE % s SŴE % S'^fnKS1 *uR Sn^ bS{AS.Xz8S}Y򏮭QSI` S$ԟGdS$q. s S k -Sc;gMLKlSc;gMLSc;gMLSBSə SтiׁSҝx SHb]ZS;U&2SSfJO9 Sln}oS֙l5tS֙l5tSiZcEN4Sڤ5y%L%Sڤ5y%LCS5,$(S5,KSKk* sSKk*9S۝S۳ ݹSJyS8&S8SoaQS8$!4)VSWS~Lo S(V bS-}8D[$SEв܌ S+U S skSjBC7SdOS\?S\ S\ S~  +Sq g S3꩑#ScAϸ mSh9S {!StG*StG S\nS.v SmsTS> SfAS<3SIɚbRS3fg)S^j SHP"SI0 S ( SH SxOtSQSu 5`S_&Sڄ#YSJhvSJhvKSq/,SE~3S|%SE SS?yZSkTq#0 =Tq#0 T($0T(T56 $Tg]v^ #T Tn"TnYTnjT"U2YT1^! ,Tj3]T , T *z5T *zT *z T <=7ATW nT[4eqT[4eqTn.p TyLT !YTnre$T6y>nre#T;"t \T<> T<@L T=M9T=%7 T>R T?}a(-+ , T?‘T?ݍs T@*m c TAf-qTAՆarTAՆarTB1o&\TC@ڸa1 TC\u ,TC\u \TC TD .#TD~?TEFTEF TEFtTEÉFuTFp/% TG, TG;C2 TGH aUTGh_ hTGP ,TJTKe´ iTL<\XPjR<TMQTN\= TPYTPtTS:TS_PNlTTƗTTTu1S TTu1LTTu1YTWU TW^Cry TW[(%HTW[(%HY T\zPKT\5N] T^ET^ BrRT_|pk7 +T_t .T_C0²?T`T`-9 HZT`YfvfbTbU|R Tbk2Tc~GyvRt Td{Td? TdA) \TdA)?OTfO BwTf ZTf͐Fb Tg@:Tg@ gTgxL5 Th/GsRThpڢ a Ti*d \Tj a9`TkW<t TkW< Tk@zTkB/TmgN TmO02>4Tm,  Tmڷ) U TnrTn<MTo~C24 s Tp̅OTqNK  TrlrjTr߲1zUTtgqTt 7Tt jTu_IpTu_Ip Tuy莂Tw+ E rTwCFTxW򸻰 TyM}$DB TyM}$DBTyXl*?TzHRTzU͸nTz]T|'-ڃ T|Pn{ T|؍TiTKTIh)?TT8XYT#T$ZcT1KQ/Tv%* T| T |TމjPTl4!Tl4!TtW'T95-~T[" TN1oGT~CeTT#K&Ts4!I Ts4!IDT2&gn:T(lT(lTx|l; \TF, 5 ThT;dydT˻V ToEfAT>\z T\?TdO T?l TL1_T8ƏTD'c aTͰ"T};YT};bTFT5#TH#OTN,TW TWTWT1:T9c~1Tj/KT4Ln, Tt cUT%~ TLOOQT@iLTR[P:Tc5ګ 6Tc<\~NT"vXtT,Ԗ-T:P T:sd T: T:T'\ T'\ T TToTTo9T  aT sTqSTqLTPCڕT{#lT]T]T]T?RgRTqk T8 |<dT ~'T>e"T>e"kT&FT&FE T%GI"THxTF0sTEP>TcRT*TlS.<RT+s!O8T n] T` i T`bT`jT` TSHTHM4 ( TsݘVQ3TB <2TBW@(RTktKqTg4TYg}DT!|Tq 1>TRTTedTž< T«NXt T$Y Tc;O ,Tc;OjTc;O Tc;O T3! ?eTþ gʇ TQƃ&TƸNTT& BjT& BT70 3 Tȱ~YT"R i!TnFq~jTɒ%KTɰoIT8/I!T”.ZTo )Trq-|TTQtT􋦝$ T􋦝$ T􋦝$TtvT ,?T;( iT;( Tϱ[ TѡuRus8 ^TҖ@+LTǕTǕTǕTY=̋DTnft+T٠F !T׈\L W T؃kJDYT~E<ԋt/Tڞ ݿ Tm9YT'=N]NT'=N]T}JTPT"IYT.܇TߌgT-@J "T=T,toi"T_ TS T`sT/ T/ iT8(4 Tq5 ^Tyv[ >Tyv[ T tжO T X3 TEwPj TYT: T)* j TPQ w T bT T'|# .T\KT , T5j3JTGTGTN5ѷT#}T#'TvM|OTvM|TvM| TvM|fTF[fR?T;uV\TtzryRTollQ Tu TSKT ;T4 UgpbU* s6Unv?U%= [UU{3 ,UU{3 +USؖpq "UrUQ̿U=6U )|W`iG=U V1vU ,U1GߗU_r@U*LUE ,U!aAL ,UY͉U8oE^U1jjU= E Usv|w1Usv|wULο U>U-U>UKU>UPUgVUS25Ւ?Ǔ3$PdUz:>Uz:>Uz:>U]i$vzU]i$v:Uq Uղ@KU R-8v gU ʘچnUU!XK UU"#p { U"#p U$!_8U$eUKK U'j?U'.X U'ɇqo U(Sf ZU)V.U*;&B%R U*AjeMU*A-U+ a<U+ a<U+ a<U+@u U+@}Gf U,fy&U,&X,\U. tt U.ML:يU.!UU.&YU0^ U0.v ,U16}z1 ]U1KϡtU1ThU3U4D.)?U5ji'vU5VŤm bU6VLu ^U64[Q.M U7 k#U8J_e U8ōbR>U9b{ U9U/U90tU;Ŷ"CU<~^g5 U%Uz]<Z U>%Uz]<YU@{>?UBfN sUCs0;$ UCzL UD83^2D UD83^2UDLUD~UD̫ ?UElcUF %-UF8ˏ UF^0UFͰpkUG K? ZUGDSKUIvnUIr?$UIUgUIUg"UIu iUJUR cUK !UKC bW iUKsUK7]UK4':.ULsUMrQ]UMGiwLUMKUN@C_9UOq6 sUPo9 UR>t; 4UT5 UUn(NUUn(N UUQ3Xs UVzogcIUVzogcIUV$YUV$ UXh`}d UXƸ= UZ ?UZZD)?U\uDU]18kZRU^h0(~$U_%, U_~;{kUaMBdOYUd[ºUe'8$ Uf3BUg-n` UhZlUiC; UissaUissaUjR iUjR UjW6MUkCfGUk@qNUlN 'LUlN 'KUl cUm&6Um]*S Um~K mUnk #Uo^&9Uo^& |Upf|EY Uq҇MRUsk~ջUtlX( UuML]UuMLLUwgD"jUwu M Uw+HcfUw+HcUzb~U|JgU|T U}ݙNU}ӷlUͅU9CXU. #U q6dU| U}U;_i Uib}Y U HHU(.U"-Dz c U4-U`'UZU6nU}%FU eU}o W ZU(yWwUD**% U.-tU>6RhAUk/RU UB+UzcUz#Uk^ Uk^QUY<ɩ$U ]!U'hŜ? UH҅YUgA Urᖍ&jU*Baz%U*Baz U1&Y7UfpY UԆ Uy U!9' U9ͪaUDfEpU4 & URU4h tU4h `U4h kU < 0U <L URykU5f U5fU5kG+DUt Uv-N/ Uv-NU6݅ U6݅ Uw-U/Dl U-'#U֖˩oUgC7: ( UkN$U6+UiW Uu;y 0U"@0[ U>nw U W $UC:s9 UC:s9N Utx'U3UͣxKUnjxUmx׊nQU?p̾= U?p̾=UE~9KAUE~9K+UE~9K U[U!&b8U!&t!Uans Ui4U䢜ЮU<;hUj?UaUKȟfOU˽~q U˽~q?U0ݿ UiKhR U)R#URU7cN" Uƅ SUHNDUHNU.B׮͟D UƉlVU˜ئUv,>Uɑu$>RUʨ Q)U\#UQD)ssUQD)s aU˚ÎZQUHbcUԻ ,UlÏ< i Uͅu U͓U;@|U+PU' dUHh?-U]9U` #U` cU`Q L U"z-RUԬ~xR UԬ~xRU& U֋^f~ iUֿ-sU 4UUi3"Uڬ,f#ß Uڷ>8 #Uj.Uݠx%U!+i U!+i US|9 U(\!2#UCL}Ϛa Up#P sUIZUKUW<n]8U… mIU4F U'&ARU'&AU'&A U'&AU'&ACUdC UWzU @UWzU  U67 U67;U1ao}U<1sU"(E: U&),sEU(v ,U%sY jUW)g½Ue-]Om8kUe-]Om8$5UDð # Urٱ|#U9xB! V߶jVAVfe^VA. 3VeCV0sViͽQ Vl%T "V _V V ҳM V LY{DV i V _ eb9? V|1{ V Ppq VGRV2FV-IV V͵hIdVq]/VSfT VV2c@Vd_@^[Vo Vo sVT jVg- V E)J4V E)d)V&:/BVվ V꿦i]V O6XV O6XV輾?V!3[6]ݠTV!nXb V"p~I8-V"jdDV"jdV"jd V"jdV$^EZV%WUV%Wxp V%H{ğ#8V%H{ğ#8RV%H{ğ#8V%H{ğ#8V%-x" T V&rnr V'T;ԷzV(@2 V)S.V)_[;" =V)* V*qKh3V*r)>E0 V+O:V+O:{V-OHV/%rX V/CM !V0 :MQtV10i~J V1JusN AV1|s V2t#V2'V2?IaV3^V6fSp V6@L.fV8{X 3V8`(/ V8ܠsV9پLJY+V:cΩV<H RV<7*sV<7*V$&~V>>eL s V>>eLjV>>eLsV@VW2V@Fƭ) )V@wm[~VAE>vVAԗNVBb5[ VCnm`υSVDmn sVDu+ا VDu+ا VD*b"VH{J= MVH{J=  \VH{J=  ^VH{J=  VH{J=  VH{J= hVHYe3vVIQ5 - VJ]Ɩ#VJC^~$?VJC^~#VKm/*VKm/VL嵥-!VLRyV?VL7tVN( ]VRcYVR FSVT ,M VTi7JVWF)[/VW+xza: m VW+xza:VWQ|h)VW`0LVX]` l $ V[BM V\gLRV\yʄ V\lH@V\É|V\\_ V] d{J e&V^:]νVV^?1 &V^1 jV_00W V`V^ V`V^ D V`V^ Q VaKe5o0JRVbYV{sVchd|VdW2VdW2VeKO.MVg<{VgHǹ Vhs| Vivz Vlw  Vl Vl VlxfVl+B iVmT7 Vné Vo8t& Vo=txcTVp+ג Vp~VqcrVr(2)Vt2Vu2MVu2MVuE VvW9yH5 mVw$Vw/VzԒI_V|acy V|ϲX aV|ϲXV}A=]V}Rd`XV}f/-ZV~W D jV~}t V GCVCD7NVw(]o/V*|T)Q = V\rcR HVߋ Vܒ޺$VU B$fWVU B$fWV?̏ V&8<QVs 2V-x}QNVpqsiVqwXVN`mV: 3, V? \VxBt V2O Vδ 3 #VxW_Vj& KV\r9<[Vrs:VrsV|> aNV[E*V@a \ V?V nV:V:! V|;z V mc VHF<1OVHF<1ORVmg iVIFwdsV<;E_Vܘ5ws VS?VS?VS?VS?RV9Vb]K V,oA(UV?嵽a=V?嵽L9V-3A VА4 VGz(?V' V$\,Q VNl# oV[+(3/ V㎪IV?P? VaV<SVn= V @?RVCxPVZ~ tV5:PV9 V9V՚< VTb c$Vd L\Vd L\ V9~5 VbiVyT[V V}V@u"Y V?CV&67V՜P V=nVRWHb tVv@U V7 V7-R [V: h aV: h?VL*Vъ9 V\EhV7UAx RhV7UAx Q Vu%* VŚ  rVŚ  hV£7X !Vv& {V,B? Vl謍Vřx:{VƗo VƪN2^;V+ mVV!(AV!(AV@ V9|b!_VOBVÏFc VaVx V9V iV752Vν}jq^V϶ j6V'#kbVrqVђYAw+V[AT jVվ#oˈVվ#oˈV̢j?VGk/V aȪ cVyh@j Vyh@ V<[V2r# V [P5KV [P5V=$ Vub} dVW̋Vj]Vj]LV||V"Du"?V-w Vߘ0۹QVjDcj`VjDc?/V̀ FV6w f .V>o[?VUVZr VZr#VV SUVqGijVqGi V@,V@,VSqV`} V.Hr VAj cV" V"Z V" VV}|n .VYYdVSͣ tVSͣ $ V tt V/eVEd =Vn fsV蝱qd VztVzkV%LVn_K]Vn_K VdA V짫Ր VRu5l?VZDٻVDŽ+h* V譿/z[V<5+VsR׋V,3b;VTwY\Vx5V) VOi~Voւ Vl=[W|рW[W3C=W W WRN WsjOj9W ^aCW WvW EP,5W eZd sW]BZvWLѐ- W?W?W\_;WC_v0Wݬ_@hWݬ_@KWh#[]Wi}\0W3h>@W* WR) WInW$mW:h:3W:h:W #W!c Wj>ֳpWwW܇ ,W. aWzc3 W4Gt W(G8 W^Ih|W^Ih WwA[!WwA[] W0k iW畳b# Ws6Ws6RWs6W"j+LfW"/( bW#:wa W$KPT$ W$L{W$δ W%YzyZW%̟LH $ W%;? q W(>nD W(O a W(,*rW)_&) W*VbW+Я[ W+ЯW,["9 W.AD W0̆ W2c~E W2|#W2qf=W38ޑ W3X'yE a W3gz\D i W4^$æS|W4AvW42 W6ŮQ@sW7%?C W8Ur>5RW9zڭx1W9zڭx1W9ۼ W:7̓W:^<~ W<:-p= W>>10W?6l -W@?#l W@(K3W@(WAUl -WAUl |WANg# WA?jWA g?WA WAk#$ ,WCg,WF~8d WIJFķ WI$C2 +WIݟ?S WJDF_WJ WKߦ+ʀWKy8WKy8 WLBPTWM!i?DWM}9SZ WNsv@ WP#2)WP1?WRHby?WT|j WU_3YbC WVH _/WVH _WVH _WWF7TWYI Yx WZEpik WZ>jUas WZ6x9q?WZ’ W[g!sW[ûcW[֭A.3wW]n$ W]_MW^3u?W_GGm W_B+̶ $W_@娠Waڡr?WbP:NQ WcWd Wd#:8B] We:tWf+HOWgNYW.Wh{<Wi0] G%WiWh[;P?WjBWj}с@h WlqxPWmT Y WmgU WqU Ws/ Ws/jWsi* Wt3' ,Wt3' iWt3'jWt3' WtWtNtWws<' /Ww(,Z WyŤ W|3"&F|W}Mƭ1 W~*U WXWҎfڰWrP0Wc׍W|] & Wj?W5Ie W5Ie WaW4V&g}W4'f WKWư W٫4WGzMWy"ax+W! sW! W! W! WG5`WR RW k3W6 iW*ɸQ%WTdWay\{L WngH? \WIW]!]W]!DWlaE.WlaE.WX\'+WdQ, W^ W^W^ WWjW= WȶWJjWiF>WiFW ZO "W ZO $WS?WThx,We $WO-KWm0SWm0gWm0[Wm0UWm0Wm0]W W*wSWkWŴ#a WC*#W$ W3FODWyISWEgkW#+ W7 XW_y {Wctg({ Wφ ?Wz*Wz* aWC uW8I^{W?jGNWixA WViu 8WM fO ( W4夃WE<#2 W"!+WaיWs iL W[:C eW{8/' ,WD{ c W uW uW}Q Wފi+-W  gW  WfWIgqWA}LWA}W26?!W26WbWbKWkp W`2 aWjҙSWjҙdmWjҙPWjҙW:wW:wWmZK W jyW9/Wnԁ *WZ1Q -WH.9?W_$1=GdWècWŇvض4WS~ĒWƃqiWǥ?rpWǬe4W߁-WaN iWaNjWaN Wɟk Wɪ\ W 3D*W 3WVvW n&?Wi߇ W\g Wdk~| W;)-WϱZ &W_rfW<`8GWԑg W#~XhL aW{W8d. 3Wr.Wچ|۶/Wچ|۶/WT *WۦjBHA Wۦ0_ W۩+| Wܦ?h:Wݤ>\W~ W(W^yķWkGWߑܗ5 W%c W(ĮT W(ĮTW6PFvWӯWER3iWyvW-) \Wf\W WN1ވ WݶW/{ aW |W)ǦFWHs.WVwWbt>SWP̳mjWUT T W`bWQ-Vk WQ-Vk Wg) WŘ!SW6#GgWpu< WQ> QWQ> WQ> YWQ> WJs$1ZW YCvWDo #WDo WW cW׸t}. W:ʽ/\W>WT XMRi~ XHmIS~6 tX /& X<6bX<6bXDwPvXE6B XLRXiJ;% Xn (X XtXZ" XZ" X /vXRws !XpȀz(XpȀzLX#qX_X#t XuDfX a X&VoF 3XB+ZTYX쟐LXs & X79*: iX>n SXQw( XJTw X" X41jX7xDXØ$ Xg-XP([X0?XD.Ƭ $XzkJX3:P:X[FfX xASX!hL&uI X" `R X"d}{'X"ݰ U?X#%LJX%"WۂsX%`.֤ sX%V‚X%6G]X&`X&X'>u X'dPICX(cX;suX)[T X)]\? X*UY}SBX*i}DX+0AX,B*8:X,B*8:$ X."QDžX./[xzNX/^ U (X0tt.= iX0z"kX4? X4!Ϥ X4!Ϥ X5+ !X6u?f%?YX6t04 cX6]XDX8ָ~X9Fe VvX;Kc QXEnRX>SZzX>SZzX>SZz]X>.[ X>X?> $X?̣hV XA'ex,XA=XA=XA=XAZb>9 XA10 XA10 XB.;ۦXCeMXCo XD 1Xg(> XhgB> &7XjG , tXэ X?4XEݡ XJcXJc XQR|3X~%] X.{Xˍc[ nXCRa X*+X|ntGL{XtX8mdX8mQXKXP`r:Q?Xk55* Xk4݉ X~ X~X~ XmDdXǿGOZXǿGO'XǿGO!XǿGOQ XǿGOK Xz+v'XXƼ Xcb( Xcb( $Xcb( ,XB/X XI7zX&s.jXɶ:?XЖX)gvX)g X:>N XX" X_,Xv%˂X9;߁ XI/X} XXXnXnPX #X5|yXr@Df .Xr@DfX ; XɛRw& XA Xʒ[ XʣDX0u>Xx*]Xx*]Xբ/Xբ/XͶ_pX&.XІ3XІXЯ+X X)0r3zX5&ZXR|"ZKX, X,|X ֺYXgL&XgX4o7XՎfXdXdX։m xX։m rX؉c5 X [?XENXي~ fXω_uX:%tXοӼXuaZ 0 XXɶ X NQX1vH bX-ԬdX- X貱XhA X2)u`XYLXK< iXl Xl XsG|9XwjLX]2X}XX&~ bX?X5ݕ X1ZSX}f4XF0QXꑏtJ<jX:~Xd_LXd_LXeX֋%N Xg4 X79} Xrz XZR%X[?tX=]$ X.X'KgX!G7 Xúl cX!$ܻ X,DEcjXET?Xt2C$XŌ1X) XINXid pX XR68 ,X-](|XDXB13YZR$z zYZY0SY $YtY" ,Y""Y"K Y߼HYKM ^YFY]aYQZZ wY &|y44Y &ݷOgY j?Y j?] Y j?Q Y ](USY%IYX[ (YIUYIUSYIU Y` pK$YL Y(: iY(: Y(: Y(: aYYT YbVQYH Y?GWYJވk YIR+&YqyaO# YjY [|p\&Y C aY!Y$>t ,Y$mjeY%^aw Y%t.Y%t. Y%t. Y%t.Y%lz 4Y%lz t%Y%lzt#Y%lz Y%lzY%S;4 Y%+_?Y&STY&STY'Y'c3Y(B(ZY(SV|Y(SV$Y(SVY(SVf Y(SV Y(Q Y)cC$ eY* kWS'vY* kWS' "Y*GY*GY*GY+ Y Y,"s3 Y-}H:Y.AZd YY.V٫Y/^`!8LY0 Y1J&SY1w?Ǖ Y1(C Y1;Y2q;PY3onY3on ^Y3!)wY3{ Y3{Y4 Y4͑FpRY4͑FpRY4͑FpRY57dsY Y6[| ]Y7M4Y7 {b: 0Y8RY9/r} Y8K Y>o~RYA&C YBwN"FsYCvc5˔YC#*<VYDpZ YD}c, YDUYE`##7YE"65.jYEš YEŤ@c YGgV $ YG_YHGiYH2KkYZ3YI2sy ( YI\\$]YJz` YJ 0YJEڛ YJ\ɽRYKbG (YMZ"j/YMZ" YMᛝE mYMB!/ sYMB!/YMbhYNIO*0YNrxoYN+ V YOtCR~jNYQ4F|YQ= ;^ YRvvYS{-ϟ ( YS{-ϟ YTq}P.- YT;WiYV>y9YV~54U ,YYCw%YYHXCEYZ,?1Y[RkLY[$Y]I'jY]I'Y]X,VHK Y]#cєY^qY^;Y_}m/Yae&BUYb<}mdYbCrC`YcXЪ #Yc2ڵk YcNYdT8,v Ye npsYeqh Yf)Ԃ3SYjF:N YnܴYn'?YoEYpm Yq`/*Yq`/*YqF.>p Yr2M.@o $Yrw;Yt|YtG2sYu/ YvWk$i3 -YvY/1f<vYwU)s YwU)s \YwU)sYy}xEYy􃨠RYzza(YYzza(YYzza(YYz5Y{&18Y{,&RY{S *x Y|G @J EY}C'/4Y}C'/Y}C'/9Y~ok^ Y~ok^YR8 YyNYyNKYd2> $YJաzaLYaiwY`B]] YvX)LYv'~ eY@1z YmtYo¦ ,Yy* \Yy* \Y# YkU#YH`= YD~ sYx#IY9)EsY9)EsYJёa%nYzyb YzyYҧ?Y=bQY{C Y/ Y<0[ YeflA1YY< ?Y< s YՕds8kY a Yh1RYz^YY zY zYIpr>R Y҉!Y(M{2Yu YT.WY u@Y$YmYOe Y$,Yw)YPL\?&YB/J> YviYYT?N YcYk&Y1/b"Yxۣ iYmYѨ+R}YATJ|YATJYT)ݾVYݬƮRY9 #Y>021Y>0YsZ- YU Y XkY XkQY XkY XkYlG"@UY B:} cY [*- Y [* Y [*YT] YO&45Yk"{ YQ \YZxpY}\s =Yx&n-!C YiN6YA 2.YA 2.Y 7KY,]9LYUҚ%YUҚ%YUҚ% YUҚ%YsN#Yo]Y U Y¸]i YB-`xOY@j Y%䐀bY uY%Y߀\Y} Y3tdQYyd?Y ( YW ,7Yϻ (Y,BdY,Bd eYt"äYxjr:Yxjr,Yxjr YxjrYpd- aYէk Yӗ %SYӞ맧RY<&H2RYԝUYԝUYO>-Ya&?Y$Tt Y.TW̊Y͛EY͛E mYF YpAYދD?Y^ 4&Y^ 4"Y{ YeGp Y. Y5 vLY&b{?Y&b{?S Y: RY:  Y:  = Y4 S?Yգ Y5#O. Y5#O.j Y5#O. Y~I s Y$YGk YkUƀ (Yh"zY}7rDnY"Q ?Y+1 Yj/ "YfxdKYˇAK3YˇAKYy^xEY ZSY^IleYH2)YH2)Ye2Y: Y:Y wVY wd2Y w_YXb YXbYΕR_% Y ` Y3c:yYp45 "YY\nYml!Y9E6Z0r۪ZJ y ZMԧd Z,T Z7 >ZZd ZSVtBZSV \ ZSV ZhZY 4MfZsτ{NZͿ Z كfV Z ,Z IKv Z F(aZ%\?\N Z\ dJ Z"ZO.QY ZO.QY $Z.ˍ^Z Q@ZEۥ4ZEۥZEۥSZEۥLZEۥZ ZEۥdZEۥZ>[ZZ-`l QZ\/ cZqOCZX8Z‹y+]Z yKZ: i ZG8"ZyDj Z7rRZNIiZݑ_Zݑ_?Zf (Z|FZ!]-SZ"ᆬ#Z#xZ>e`Z? էU vZ@<)(ZAMt .ZA{N~sZA(aPRKZCareZCUY5 #ZC選RZDC,{K ZF4^ ,ZG,0' ZG,0' $ZG,0' ZG,0'ZIx᪕ ZIR. ZJ  &ZJѫ#`̶ c ZKp:DNZL ;, ZL#_N?ZM`ZM(+GZO ; ZP+sZQYP}T-ZQ+*Y iZQ{ZS ȥkZV/ m nZVM>?ZW0; !ZXSZZ" ?Z^RaM0Z`FfZbbA,%Zbz ZcDZe-I5 Ze'{˫9 !Ze] ZeR ^ $ Zf[yZ.{Zf[yZ.QZf?a Zf?aZgYd.YZgZ " Zjrj #Zk.c ,ZkgZlMUaZlR ŒZl[wZm\k ,ZnU&$ZnU&$Zo (ZonȑPZo䲳:RLZofZp0 Zq?}aZrM6 Zr5JMZs9wvZtސ2. ,Zu_t Zz+ǥ Zz4YZ{,kZ|?) Z}U*jZ}U*jZ~ *ZB%OUy$ Z!.ZC8Ztj ZNi-Z9 :E (ZLZ5Z[w ~m +Zy;ZP1ZP1Z#k[2~tZiUR tZF[AvZ̙<ZiLvZiLvZiLvZU a iZ$bnwv aZGE9ZGE ,ZGE Za%BRzZa%BR:Z|ZLޙ ZJ' SZ<&KZֱZZ1(#Z]e ZxlZZ =ZifZifZH! {Z4RmZzpk)W ZjZ7,CZ7,C i ZA:qZJw`8 Zo(]ZqP #Z\#<Q Z{t|v.ZݺyJYZD_ ZD_ ZD_jZ"~"Z1tXZ1 (Z1qp +ZIZ! Z yiZERZڮew ZV . ZV .D Z1Yx]ZK_sZuS1PZy* sZ8Z?ZONZtjZZ#Z(\Z*sRZ9Z8ZRZQZڡ4F/oZU幷p9Z\agUSZRZ_r8Z^$$Z [.Z [ $Z ' ZW"!Zu >W"Zu >W"YZMQZZksZ>i3kbZ :Zj ZIZIeZJ_ժe ,Zo ZMrLZMrZO Z8pDZ>Xɰ ZeZƉPѶl ZsJ1Z;]C ZȔ "p4ZA8 ZN✦[ZXޅ8ZXޅ8DZu½,s |Zu½,s?+Zu½,s Zu½,s iZ2FZ}Z%[(y ZuKRA^Z W= Z' (*Zа ZW34 \Zo5S6 ZڙNZr|3HU Zr|3HUZr|3HUZּ]MWZg%<>ZQkXZ ]$ZĺS Z7XT0> ZTEZ6!扜 ZMhZLZ/ D. Zv6 ZTBr ZSR؀Z Rs<Z2FΠ Z?n Z=4 [<q[T*V6# [.0c [5t&[H|e$@[ֽw[[pvШ [[h a[z@0n[-FD[-FD?*[o ([n*O i[›$5 a [jp [޶0%9[2H [!gT[!aBw ["n5EfLC ["[ a[#,C [$ 2\C[&.tQ ['7w̃ [(,;\ [({y1 +[(u -[(u[*+H [* [,y&a[,y&D[,y&?[,y& t[,y&[-F@~ $ [-F@~{[0|=I~"[1PX}7Y[2{|[2{ "[2![4nK~q [6j8 [61 [7;;fC j[7;sE+6[7hLj4 3[8vO+d=[89۲R[9Q7*,[9m)8a [9t?Q[9`~Ik[<5%[=E~tv =[>ꣂb?[>ꣂb?S[>ꣂb?[>ꣂb?[>l A+a.[>l A+K[>0XH [>do1 [>do1 ,[>yJ S[>yJ `[>yJ *[?*&[?Ib{ٔ c[@3x/ #[@x? [B\#%_L [Br>`ؿ[BΤK[Cʆ5M $[Fe&X [FpW[FpW[GY+s[[GY+|[I[J5_I i[J) [JN= [KƓ:g[Ki [Ki -[N,E [N,EC[O`g [O98tW$[P31`V [Pv,H &[Pv,H[Pai _[Pai[QTls[QTls?[QmE$ [S C4Y [SlY[T˸S[T˸SL[UfU[ULf*[U\LbR[W &[Ye [Zrɭ R[[Lp[\hyZ[\s9?[^$d a[_~5#[`!{%#v[`Ov| [`-VU'[aW&HN[b\v#:s[b}Vӛ[bG! [cG[cB8w[dlFn[e%Zƨ[etHs*[fO& [grr[h<뷼UH[hxH[hdwC [j1B*ⰑR[kC~ [kC~ [kC~] [k(v. b[l Yp?[l8%[mlKYL[pO_:[pO_ [q&h?[rF?R-[r@!H [sKgrYF [t_{ i [u?~b ([v &+t [v0 ]j[v0 ] [xk-q[{Rr[|,7? [|@D[}GM: [}E|w`[}I [~e$[~`N?s"[~폵! ( [SV[¬óR [cl[[lKNZ[lKNL[t&[_a[H[Eq|[Eq[k.* [}80k [}80k[rJg9:[rJg9*[rJg9D [rJg9 [rJg9[rJg9[Chu)[B6v([Jڤ[hY[[_[H:(@j[H:(@[m:5R [m:5R[#hv[c [&GU[[gŀg [c j l[3 >k[=lx[M?I[[Q1 [#/u|jR[Lt [y)>[vHT[L5[o [pl? [?e * [(:[@$o[F!3K[ϴ [z%R [Cv? [i [T}37 [HM [xVֺY [@o,8[@o,[D=@+ ^ [~[Ac9OW[Ac9OWb[Ac9OWY[āSs [V:`P![[[c5`[a=xt[6[,s[&׶[XUG[XUGd[gR [} [%Ww][{[k]\2[ i [|4r[;d|[)2 n[W2 [O9|v{ [`F7j[ֺoj[d˯' e[d˯' [d˯' [L[")Y a [@l[T\\7 aI[T\\7 e[Í [Í [Þr)[R[~Qx [G [$[*S[J [Ǣ:B[ꕿ$<;Q([ꕿ$<;([ꕿ$<;[ePr& [䍐+[pE`KA[}. g[ [ƣc , [COJ[̦([̮Þ[>ÞR [\kY [BB[:r[=+#[_ *C[F̓ [0$Lke[室rBf[¢[I \ [ Ac [XXW[9[;3[Ňս[u[݁}$[딨@hH[drҶ \[S9 i[p#g F[T4D[zG \[FrL[ h [ᄍP*J[զ [\'[bk[aqG [1]t[(`[n7A[ [iS[i[3\R[Sݭ a [c^c$? [`[$ c[ȂwD [grb [gr[>b [r [r[rj:[r :[r (#[r ,[ta[JX $[Z"й \˅sqZ \Z㵎\Dvܼ i \C#Xmt\vqxoR\ں \e]<) \v7]\ݐ \ zX \9  +\ӛ\ jb\ pF\ $NEe\ c40 \ c40 ,\ $V,:Y \E\}<8 \}<8\!\Wc9Z\ILK\IL \}nb | \Ӱ(\^K\m s\q(c)\xѬ \xѬ\gݟ \9F &K+\פS \/R \MD4\f4/ \ x,\ x,\94\t\$?\XV\3\^\r8K\r8K\T(2%\0g +\#2?\!Mg\!Mg\!.Z\#n4?\$ۻv ( \%ӘG$&\%v \%j \&̑w@#\&̑w@\(zx,\)6n?\)Xg \*Q{)| \+cC\, =aK \,`mdnR\,j 4 z\,ۡd \-Jr \0ϭ]Q \0 ~(\1&"S\2dz l\2ϏkK\3bu \3bu\5Ό \6Ai \6\VvS\7P}0v\7E\7E\8s \8 B)j\8 B)k\9:\p\9al $ \9al "\:)g͆ l\:-&j \:ٗ8\:-< ^\;7ҥ\<>B\<>B\<@ W\ a\`?\^J2\^Tڠ9\^Tڠ a\^_[ e D\^_[ e ,\^_[ e\aM82~ ( \cL_ \cYDи\eJ,X\gg a\ggEX\h ** \k1"Y\kǎ\lM?b \m <G\pY3Y \pY3Y \qh_ΛA\r)p \rgs\rt J \s8³g 2\s8³g \s" \tfo\tfo\tfo\u$Q=\uBd\vt8\y55NGv \zSp/\{QdR\|H2 \|$jU6d\}eΚC\~d;jV\~{w[V\V>.Pf \ V*£]\s\1 \1?\s6~.\` ,\1SXH~[\+6Y?\9#Vk \'05!\'05d\{ɑ \Bc~ \O\ \@> ]\"k\#:^|\HUt \#K"\K֕{k\'VkN* \^> \ S\zCus\ z,\l;gX \hh\LMp\^R\{B t \v{ \v{Q\ b{4!\+2Y \™ %?\ >\IE'R[ \@ \M0v\׹*\׹*L\׹*\(L5;\(C\`JOJ!\v'$\|4s\dP>(\Xv\t|M \t|M , \t|Mj\S9l\S9\ͷrP \P< \ӃS.\|ZB< \E>yI\& DlN\s} . \s 0V\Ft \FtO\U2 \0\\>r $\v d\@1\7QK_\@^ k\B^Q&C\׭Q \_S= \v( \O!4 (\;E "\;E \\\ \`\9BwM2\z  t\z  \z  \%>&'\cyגN \r\ş\et0D\t"\- \-\6ɠ \E'\şg\zW\;+j|(\;+j #\;+j \;+j \;+j\cA.Q\cA.QQ\XuZ\4!I]1/d];{D];{[]z ]V-] Ϧ] W@ ] ?] [j] d:M} (] 5s] _ZS] IU`] }=vq c]|?R])KYbK]YBek]@ڈ]Rs 6]fo@/]fo@]fo@]eL%?!]ܛ]!ZG]zV1R]8J]m ,]8t§ s]MF]]2dm;]3.$i$]4"\q]44"]5l*C ]6sX ]6sX]7މ]8 IBǞS ]9JR@ ]9}I]9}K]9B ]9~} ]:V넌v ]:-<U ]\]>FV]? 3]@IUuu]A?S $]A?S ]BS b]Bth\R/]Bwj ]Gǔ&j k n]GPFC]H~ Y]H&aP ]HN]IESTu]I^%E]I]jDs]J9t]K?)b]L}z L]L}z $]L}z ]L m f]M5]YSI r]Z"aiR ]\:GhQ ]\:Gh]\[aY2]\[aY ]]rTQ ]_ %]_]_/G]_Խ ]]bE , ]cG[Pr -]ci{!]dL'qd ]dL'qd]ee*]eY]g˧s ]hzm]i/xv]i&vk !]j$A]jϐZ^6 ]l ]mNٺZ|]oATk<3?]scG\]soGl ]s r ]sOR ]wD.> l ]w_\v]xErt]y9mXS]y9mX]{p)S ]{U$]|!m ]|p:- ]~䊟]!Rؤ a]+TL]Jj]ϫm e]Qk,K]"K]j]q]{] rQM ]hlS1N] 'C]B wD]I4A d ]$pS]hgC?]efRC]5d]%ˈ]Kh;x:]m;C8`} ]m;C8`}Y] g]N ]2* u ,] ]iI]K:`aN] ]#GZ]OIY];HgQ]"p̀]x\1 ]! ]s!p8xK ]vUӳZ]$&S]Ҵ<=j]Cj]C 4]C g]C ]c (K]8k]]s]4J(^R]~]\ ]M(]zG2Q],n|Ѳ ]8@:Z#] ]145S]O ]3d|e ]>IVS]>IVS ]>IVS]]bc ]X=Q ]X=Q]X=Q]7 Tp=v]>1+ ]z7$\]JNT]Xiq)]IyZ+]U]UL]&b]&bS]DlGj7]K"+|- ]K"+|-]ZAt ]k?]$U0 ]$U0]$U0 ]$U0 ,]$U0 ]F:+N?]gL ]_y]^ŌBk]T{jj]7R*BK]cVs]>{ 3].]k A],0],0]ȠD1[ ]kW?3S] C ] C ] C] C]]L筍` ]{_y]m pP]ĐϿ7]:9s ]M_A "]|D^ ]Ҵ!SP]ӕ ]*V]jN ]t $]&+ ]ׯ AUZ]٪+qfC$%]#U]#U]5@a](Y; ]p;wv] L! (]o&[Fq ]er>uK]HJ],R],R]* `<:] HPHv]V< eB]V< eBw]nݾ ]nݾR]}}CshD]}}CshR]oj]׎f]n$ c]tN?J]tN?-]n8w]|@ (]6i]&К]w_0 i ]w_0]B]")e]>q ]hv+ ]hv+ ] "윸]Be@Hu]>e@H] `]䫻],tsY1]@0nj]O"'( R^ ]9 ^;7^;7M^R'K^ &$^' ^P~ ^P~ i^7Oec^f҇<@ ^ IR5I^ IR5^ IR5U^ IR5Q^ IR5Y^ @@"^ {'_^/JE ^"9 ^ ^ˉW^c9VP -^X51N^Wb^՞ya?v^cA=LD ^|DIl^ܪ5^DH^kaRz^L2^X/p^%ܶ ^ Sn^")ҍ s^"=r. "^"vtKo2 #^#} ^#L4^#$^#a^#S ^$z%"O^%*߂B|?^&mVdWƃr^'d^(&hXyxP^(鍓iy'k^(4C^(.C ^,@]u ^-s6 ^-\^2EYc ^2ǕZn r^2X_'^2A^2AY^3ư&2 ^57^80L) ,^8l%}j^:'ng ^:ܶCQ ^<PFFC ^<PFFC^>FFxW?^> t_ a^?4KfB ^@zI=^@m@p^Bj? ^C8[^F&Z-D^GzO; a^Gϸ= ^G4/s&^H͘^H͘d^I Ş^KʻM #,^KÎ0V>^KÎ0V^K}ٺV^L^M?ϔ ^N\$c e^N=q [ ^N=q ^N=q ^Pw3+_9^P˓=nR^P˓=n^Qן c^Q$, ^TCI  ^TrBm \^Tw ^Tw^UN@[^U^Um^Um^VD֋g^WM?-Q^YҮs^Y]aS ^Y]a^ZM^^[6wzY^\#PoD^\Q/a -^]dGe^^lxjS ^_>;^_Ɖ^_Ɖ ^` p=f^`iy^`iy^b[d^b" ^c!ըO# ^cG'Ȇ^d= Z ^e,jW^e,jW^e.bN^fƻS^gL ^i"b>^i>TfS^i>Tf^i(1^i(1 ^j҉ODG^j҉O^j҉O^j҉O ^j҉O^l3;gd{^m =P ^m =P !^m_s^oLtY| c^oWE: ^qGh * ^q> i ^q^ ^se ^vetB ^wozE^wozE^wozEQ^wozER^w ^y^zaKE #^zqJ0 s^{ \| ^{ \| ^{pB^{^{7|D?^|:}^|:}^}RTR^~]Ud^nߟ!c^n{ ^o7*^1m ^y(NL^Q?^)D^  c^h<2^{>tga^{>tga^ B$/i ^}[ ^yl~-[ ^5g' l ^2rD^4T ^N2s^\MNz^"^4{z^r:X[^@|M ^7Wrָ ^& ^@>4v^FU^q a"^0QK ( ^0QK ^F^ ^F^K^F^t^ا s1 ^zf^r~[^/[6J$ 2^Y},˵s^)^,k ^^ ^"O' ^GIF*^GIF^GIF^ѽ<|˗^ S ^)^sʜH ^ML& $ ^7M ^զ _^զY^ MB^[ d a^ j^ ^Ƅ* ^aK>t^aK>s^aK> ^ u6?X^.ΐ ^ R*g ^ 85 #^;m^pIZ^ w`=^!kСL%^!kС ^FFX^u^L8Y ^ost^z?˸ ^^X] ^ J^<j ^<?^c@} ^JLj^0iYkM ^À l^Tl ^'D^pGSR ^6f!*^)р ^v$ (^æ9F =^:#t^B<^+ ^y )' "^y )'W^ŶV`( ^ ?F5"[^ ?F5"^ . ^ȔK?sSR^ϨFzg^䪪'^ɶ?^ɷ^e+^e^'`L ^H i^-U1U^F%+^S*5, ^iLP %^f$ ^f$]^Ͽvw:^Nw{ P^Nw{:6^Nw{ ^ѵKF^Ӕ N^Ӕ  ^Ӕ ^ӹZR; ^՚'ѩ]^:nb^ءĆk c ^YCvz^٭^o5m ^^tER^㮉5 ^ ^t^&”4s^zwd ^:^Z`zoe ^;+ ^*R $^n.+s^M7 +^^c?^3B% ,^> bΦ^> bΦ]^Tw ^:t ^uCp^Hٜ:^Hٜ^}kv9 ^}/;5^Hnn ^w^ld^,5R^?G$^ [^rG< i^~~ j^LZ^ثϷU_b^ԤaY_\_-7 _-7Q _OR_o\,L_1u_s^h{ _؞Z4_Lt_ cF_ B= _s R_'l_  _m -_ ?_  f_  Q_ 9_L}㰛_~;l _ ðh_ Dtc $_ %~_ %~_ ci~i: _ |5P7_ |5P _ |5P 3_ |Ϗ_ jq,Y_ jq,_H%_m L _ !#_ Ѩ _=KltS_qNM _KYfĔ_KYfĔ_W*s`"_l_|h'm_|h'm"_|h'm _ 5?_ B>R8_[@S_[@S_A2} ~_)AM_y`6(S_y`6(a_%(@A__%(@A_|c_! Gw_"Y=}Bl9_$<_$vI I_%[|S_&qyYS_&g'_&g' \_'r&_'56_' Τ\"_)g+ _)g+ _+dD_+%1%_/!N[_/sH_/r _1aܨ~oS_1Sc_19 j_2zڲ_2zڲ_3I*[_3v*_3OU# s_4IsDSJ) _7;W5_8C_H_8Uf_8<_9_|m; _:'!_:'!]_=lxa_='|e_>CA!_>$^4!_>  1_?|u@ _?Q[_@5[S _@5[S?_@5[S _@f$Y_Af_AR$| _A _A}H&SQ_Bn1h_B6$_Dgj _Dg _D_Em#1 a _Ev?,QR_Eq_GhWC_J؅!D _K'BG m_K!d_LbRS_LU! _O/_ܲ _O{), _P0L b _PrӱQ _Ptdq?_RC._TR_U,p_U71_U71_VspH _WqR%_W<_X9/P0_X<j_YE_ZBd _ZA |_ZA _Z˭C_]vN _]^J__`+_`Qn@Y_`&MجF_`.ƋНJ_`.ƋНJ _`!Hu_a H;1, _b]Ϻc%#_c4_c4R_e-C9 _e\fdKd_f~ _h)_i_i_iЁ" &_iB\)E  _l9 _lѠk_lѠk_m?_n2YI _n^f0_o+8_q9tbs _q9tb _q9tbh_q÷D 8_q÷D|_q凓_sΙT_sA2_sA2_uM nԑ?_u.2 _w>lh_wAt _x ZbYZ _xL7"O$_xsV_xsV_yz _y̽Z_z|F3 N_z~Qz _{L?_| M_}unm0_ b _ bh_w7S _o'_ˣQAB _ͽ"$j_" _ݮ_љmZ<_B4u_+ۺ_ E $_k9ˤ_6B-1 _]Y\_e _DV_DV_ٱB`k_ٱB`k_ٱB`kK_ٱB`k_ki@N _yL$$_ڑ>-_8g _-6 ~_G _܄R_7 _g_qR_.̬x _2cy{a h_ _RnAP_`{UL_/J'?_a,Ś _}x _ bKV_ bKV_!%:Y _셥D6j _HSZ e_HSZ_ئ D _덦 vv_4 _[x _[x_{"d_H gU_|uc 3_! _\9/*_=4_g!_ #_g!_ _do#R_Cr r_nͣV _{= _OB _Ȟ !_Ů_L%lU a_L%lU ,_#" a_s9'_s9'`+_:a`z(g_ `h`Ͽ`? k` y)`Ҳ `G `Jô` 57^n c` g ` gD` 0C ` =@ \ ` ^;Ip` ? `F_`ˇh`F_`ˇ`F_`ˇ `(ڟs `(ڟsR`(&6 `(&6 `.1 `ݟ# `rn S `0u ?`bU2`ׄ A`s4 `"vBX `uh`PQ1`j!c `R5ǀd` ͻ `t ``کa; # `ڰha `ierW# `.7k[,` ]j`͑z`kN`!\ II|Y `"5X :.`"5X t`"5X a `"m%֏`#G -`#+[Y g`#tg %`%aQ `'^t7`'oiZS: `'WQ `'2P|`'2P|!`(6rq ^6`(6rq `(r $`)ۑ `+/ R`-"3`yU `. ˌ i t`.YY`./⠣?`0=\`0=\ `1`^R?`1o- `3t}`5?Sw]`5'`5'`5'`7Po-R `7) `84%)`:Rh!+`:Rh!:`;4`<+#`<1 `=\p5 `=uD `>Ԑ`>Ԑ `>KK`@劍?b`A>4Qe`BE`Bڅ21b`C ^L`CY=`D 1n 2`DP!;r`DP!;r`DP!;rS`DmfƤF:`FRhD9y a`FRhD9y ,`GD `GD `GD ,`GD`GDs`IS>#`J0VL&I8`JME$ `J١7' ,7`K Q`K K`K K`K_8 Y`L1`L1 `L1`M'{eT$`NRi | `NRi `O?zY)R`Q2e/P`Q?90`w`TZmoW`Uz u`V|p`W2{ c`XQ`YU/̸*`YU/̸ `[f~˼j `\ *Y>j `\&M`\ԄǓL =`]AB@`^CS`aQ&Y`cӇ8> J`dĔHjL`eM P `e j`fž`gCyls`hq+q-z#`h֔;`i$M `iPeN`iPe`iPe`l)wst`l= `lTЪG`nhZ`ow`ow`o?"-`oԓl c`qܱ j `q=W`t"xo`vE.`vޣA`w8NmY `yE]KC`yE]R`{nKQ%R`|V܊(t`}˗(uj `f9`5F;s`5F; e`5F; `Ʒ1`[e[#`[e[`=a `h#4? `9 Bv`]~y! `os74`?Wks `g|[`JvO`* -t`Se/1 `u =9`y@]dpd`4s`"`\DN `& (` F` `))M`]gXe \`8xI'[`~}&f ]`OQa`:C ^?`@8Dr`"$`(9Q"`d `qD `Jt `Oѹ&`lX͇{`lX͇{`?T`ˊ( `P]f`lk`wU|Ѵ `q<`+3<F |`@l:`@l `8[`i8`TE `ȟ5`ϬDD7Rk`vw0 `ؠ*R` G `FWac]=;`FWac]= `]b n `n`1}7q `g9`&D`kE# `:-|.`:- `fW`fW `y;{ \`OvC`XϑrV`} g`Tfi `g aQ`U`co\1[`j2 `l2 `Y ` Qý}v`eLҤܱ `m/n-C`վ7Q e `վ7Q9 `վ7Q{`,'g[ `"sn`Oe ` ( `šy=s`»s `?p:` }|8?` }|8j`T㕙 `Ñ(W~t`#9w Z`Z ` 1%p`Ɓ`ǂJ k`۬Y `۬Y t`ex[`m  `͍`Js`J`[cs`Ϧ75 `Q`ML `NW}MJ`hu `AQ `}Fe`ROw`Ŷ'[`Ŷ'[C`B>+`B>+``7 $ `s:ʒ `se)Dp`hQh)$`b `9Zk% `گk`S& `۝ vw c`Ac`?>b `Y$%`ݨ6` Ѵ`\iX`kBJ `hs`ht `h`hk`! \`KvFR `-"s `\8bv{`>2d `b[KY`攰t2V`攰t2``-r]`蝘/W `~ni`jH- `鿲 l`x˩`PP o] $`%`%`%``x~`i @ `i @Y`ﰨQ9_*[`eҫ{ `ռ (`ռt `o? `xE+Q `3h$?"`TZq `Ѩ1R `&'t` K`ѿZ`IդQ` E ` C`kFb`O2`Eugd `^ 2`Hv`v,.@`.X&?`.X&s `V7"`c5J`=G: `2&# `Fr`aZG#Ua?j3ͨ NaAXr'aA? aBH aEU5 aGi3!T -aH 3aHVwzJ aH^0C+ aH}ݓy=TaIPx aI7x aJ˙aJݸ Z j aK@ aL"F4?aM'T aM=*2aM=* aNWaNƋ aQ; oaQ$ ۥNaR w* ] aSE .rjSaU8M` aUיxaVүaY[=_caZŮl a[AEra[gUVa[  a\ݨuuMa\8 a\8 a\-a]tSBa]>bJ a]o)a^,䱢Ya^,䱢 .a^6 an5ȱan aqhO s aqhcIaqpK8as ڃas ڃ6at$7ߙat,Fat3 ^ at3 ^au3s.JdauabQ au;avb] ayAZFQ ayүazrI azp`ۯ a{ <#Ra{XIa|h夈 "a|1 a~.վj a~Ou$ a~g;"a61t)$av^^ av^^? a >Ra aZ,WjaZ,W|aD aiTo a/C0a/Qa/aaUYaWZ.aWZ.aWZ.a6Raf]9:dta~g/a~g/a8';OV] ar naMs> $a~৷jaQCH aV>^? aY6ga` }9]ar@? a' j!aJeaEUa|9YC 3 a{.?a4a&ۋa0  abھH0:a'v af`7ٓSa1{l caMtZa]a !Gza2ja6}X |aq8b aú'S#aú'La#va%^2b1aJA% a*W_pa*W_qaI]B- afGa"%S+?aH"W8aYNh aFUc gaFUc a8ajץaDRae6aƢaƢaƢVaYBV ajNaBX aP+X aP+XX aZX aEa)Zdka)Zdt a-~:a" aU82 a̾ +?arN1 "bHFO b:b;r7lb gbEfe!bEfebb\b]| b[_vb bO>!bO>? bo7bo7 b WHs!s@b b|]\qb 'K"b7ឍib^}4Wb♺o2 b)7babb"nf aPb"nftBb"nfjb-edSbXk ebly -bL,P]b_n4b_n4$cbAszObH)b4_@ba[M bg'v[bb ,bx' b _l $b.W;PbeWbeWb}5" +bҬdD bҬdKb?9=aCbrQSbrQS $bF be_bE/b!]l b%>Prvb%h #b&iQb'흸% ab(jڋ b)eam! sb,>nոb,A  b,/sb,/ (b-g-HL b.=* b/FC b/Lb/Lb/׏ b/Q+8b/ԁxehb/ԁxetb0!rtiXb1 (b1b2&b34mb41f!b5mxu;!b5'b7 hLb7<M b95e|b:Lrôb:6h bA ? bMCw@tbMCw@ bNV cnbNV cnbN<I bPN鱋q bPN鱋qbPdr6 bQH= ,bR7 kXS bRQ! bR%X\bS+~jj3bS+~j -bS+~j bS+~j ibT?kbUk~bUŇcbUŇcbWVbWe:+k bX \Qe bXVLbYU U b[mo!Bb^Dcb^Tu+ b^oQb`B+@Pba lVba]CbavL䗺Rbabb-_bbb u+j bbw:<b bcbcU be% zsbe48m ]begJ- ,\be=beϓbfsYbf7qja8bg|"ɢ[bjWB bk[ oZLjXbk[ oZL $+bk[ oZL ,*bk[ oZL bk>bkNtblt./ ablt./t.blt./ bl쯠bm J bn% bn~~jbp@ bqt brT[ٰb!QhP ^bmÚ{bmÚ{bD?bp_^? bp_^sb3mlzb3mlzbtIP ,btIP?be " bk<|6t(bl~ bcj,E #bmZbͺbO<Lb| bpka &b}7 b7kbN΀ɭ$bN΀ɭb8q6{b% bV:DbV:DDbr/= $bWM= abWM= bPo3~b˂ bƃZ jbCb`QJ bzNb ] bZQj ,b- ]b6bc \[bur gb?H@brK obrK obrK obӔ Zb;K? b;Ksb5 b5?b|5ib|5i bw+ b(ܗbL^b );@_~? c {ӫc z'c \cы Pc'[k 'c(FuBqc(Kc+oz(w ac,|=(c,|= c-8 ~c. bH c.\k D c.\k c1׾j'%c2,',Nc2- Y`t c2iL;c2iSc2iYc3W c7)j?(c7)j?(/c7)j?( c7zNc7 c7mK;@Ec9iϒwz]`c9\65 c:#-Jtc<L2c=Kuƺ'c=Kuƺ c=Kuƺc>Fܒ%c>Fܒ c?, c?, c?`sTZ cB=yPcBQE^ZcB/ cCS=s cC ۘcFBK? cGN(cGt cH9" 'cI}>C:cIꎴ)WacJ'aOtcLg&cMiߖ` cO @0[acO_W=~,cPO( cPZ=TcPs cS`g;; #cSiRNcSiRcTl{ cU3͞|cVTwfcV icW0w:CcW0w:CcWg*[cXcXStcXScYEyit) cZX-pcZX-p -cZX-p:c\Pߣc^N}|c`pxc ca-ܣcbnONccnڥ) cc\/zcd,҃/ cdwsD cdaq1cegE0V|cebp $cgU:vcgjSLcTnScTnSc!$נcݩ}~c&c^ cCc.IAcԨj2U7cԨj2cԨj2 caA<$cQ:c!:屃Uc!:屃 c!:屃 c!:屃 c!:屃 c4hc2H c|Qc|c'B caKc;YC c;YCS cDoKc±Ncic³XjiKcÂZopcע{vcĭ֑ cHL^ ;cƩyg`cȒ,(cc - c˵Ncťmfcj:1.vjĉN4PĉN4Pcͦ0 (cV!ndcLQVB cfT cfK(3cfK( cfK(ch5P$c㸿Yذ csvc찭-Jc찭-Jc"c #Nc"" -cWxq cĖ j,c+DIcsccgCtces;ro?cZ06kcp c S cz&<cV:D c_c?ǘ1@ ccZcZcZdc\Qe d) zls.d5%HU[dڧ ,d5ޥ ad5ޥKd5ޥsdMLds5 d âHtd âHkd Md ni$d ho+'d mSkL d mSkd ^5vd /gMչ d-ɏ |dsdp P de$R de$Rd@ N~d7ܰAr% dYnVj.dwYdI[dI dul3 dhd9P dPZSadPZSdz- d;zK,d;zK,dqQd#(32 $d,9dd"HS} d"HS}Ld"HS}dYC[dYCD dzLi d~>d7?? d-+ Z d'V_:d'V_d'V_dt; dt;9dG|d Od d Sd_9~d mCtd!=d"A{ 'd#R+=HRd&.0 uCd&P3 ,8d&45bld'榈[^Ld(8-d*/0 Nd*/td*Kwqd*Kwqd+uI?)s d++td,Lkmd1PZ_iQd1"d2tp (d2tp d3+*|| d5π^nN d5J|d5ORd6 -=d6Řd6Řd6 L@d d6 L@dd7,.3d8w m sd9Vٽ?d;|+_ l d<Is&d<$ d=T^ d>e  d>} Ǝ" d>-G}d>Ժ! d>Ooױd?63Mv5d?r)K9d@X!fQ;dA1B! dA{,dA}dBjNl Ć9dB}N-dB}N-`BdCJtLdCZ YdC/UdDm"hxdDoBdGddHxBdI~:dJ!BBʚDdJ8S~KdK5p$ s dKJXW dL@ dSKSx dSKSx +dSxu7$dSv1*dTQ(QdU@t.LOdU@t.d dU Wn#dV ?dWsK-D dWB|UdXQّ+ dX^X ,dXè?dXè qdZ|FdZI0J (%d\<NKd] , d]{g )d_ZH d_Em #d_(wPAd`B|c daO+lYI gdaIF dbu_ϝdbͷY) sdcQqq% dcD (-dd1Z  ddQS dePe`5& dePe`5&dfvdgaSps"dhĿ3O?Y diOfr dk2m3?dkd& g*dl ]dlu.;dnj~1dnj~1D!dnj~1dpD.B dpD.BdqP}(1 \drKo)Fdse.dtoS + dxy)zdxodz<{wX dzt i3 d}TS/ md~ EYd~tn \dj jdqA IdqAjdb^ْ*db^ْ*dPP Adpdpdxֲd;(d;Q d -3d.?)d.?)S d.?)Ud!! dUσ d݀3d ATZ d}$d#Udꤴ4d# cdM#dl sdtO d0f]g d0f]g $d0f]gd0f]g df$hdk} ed.(VYKdͨ d+ޢ-\d/ NjX1cd\Jd\JYd\Jd\J d@ 08"d d 5× ,d#6s sd#6s9dW2W:dY4r9dd^8 Dd[-!d&Y"d&Qd4?dd{n{]d{n dgz -He d>=3L-d>=3S dN4dN4td3>9 L dƿ}?Dd)n"dd)n"dQd)n"ddJ t d #Gd&uԿ j;d5g`xY dQ5T 2d/ v d+vmp? dkzm dkzmRd:w'D d ]KdkӎDdyEk  d h$ d p8dIdL edf$rd4B\ dc.d1jULd7z@dYzTdYzTdYzTd;r,d(#d~Z d< &d< edV tdV|dd7=  dQnWdd7h d7hd7hd*7l[d*2Gd"y"dkRd8Fd9VZ!tdq[dM@dM@ d]tdťF dgϲv dƼm3dǘΘ`X' d@sdo@9Bd k dEod_ d3E) d3E) d _!<d^&Wd >d-&; d6h}Kdս8-aLdս8-aSdg{?˽jd~@] \dS d dKx -dtTd;҆4R d> ^mT dޓ$z;3 d d'F.d߲* d߲*jd@W?d@W?d&EW$d&EWd&EWdzi4 #dH dqt! dir": dn- d|~A$d|~Ad 9AGd莅X\d2udrP'C=dUd :* d@kUSdQӸ` 3d\աsJdڏO # dP9dg:dw]Vdvo cdbP['dbPd%@t d6*pd6*pRdg d"KdB!d^ld Bl Nd[+dv}D e9dJ eZ4 6GeZ4 6 ,)e3 + eM)v e0?eU( e"oö e)Ӗe֭speo3IL9 $eIse &he +;= ve l{G !e f e fKe y;qe g` e DMw !erƂu erƂu aerƂute~wU6 eܤ+ee`e+Z e+ZLeϴ$T e›<eu>deu>deuz&e侇 edSece e6o9e$eaieAFeAF!e2Cl  e$W .ex/nei:SY4e+ e{8ekG e? ee e x' e $U|e!LKpe!G? e"HTBYe"HTB e"T\\1[7e"=e"(G$e$@o'& e$@o'&Ye$u:e%9e%2m5e&.e&Q߆d- -e&^De'*ͧe(DDe(3e(JI%e* e+n*&:Ze, OFe,d4L e-Ocfe.0*seide.0*seie/6#e/6#e/dd e0I.Re0K/A e0vM e0vM e0\Be2 \$ uqe2 \$se2N e33%Re3@?e4l e6mRue8 'DH e8 'DHe:Ą(] e:Ą( e;M+UVFfe>* YQe>^ՙVLe>M e>Me>7"tRe>7"teA4iheB'|s eCXbveDr'"LeDu ?.eEg eFEç eFOeFUyoeGL2I eIԴYeIw[_eI^~ eJg{ZwReJTK .eKub.NeKW eM eP42ajeP42a (eP42a?eP42a eP;CeP;eQ=z eQߧ,>eRuHQKeR ]eSPC seSTP- ,)eT\eT\ReT\eT\eT#: Z eTC8 eToW݌eWEqqeXn?ZeXF'SeY_kjoeZ3)eZ@(ӀeZ e[gΞS e]}_ie`(}،Ye`Pאe`n<x eanebكfeb7 ec  A iec<jec< ec<Sedkee8 efTU)eg^cjeg_I<?egegehߧeh0Z%B ehq u{keiRNjfeiRNjei蜏5~ej'ej9[ejt ek$@${ 8em}:eo6j` eqij8=5L erer qW\ <et;#E>y$evMd@] eyyez!qezM:2e|J,e|J,Oe|J)gPe}e~OOI me-C j e-C ehڣehڣehڣehڣed*ee˖R7N e\ IeK5eʈTe=~leGUx ae.euRe6a +eem.?eLtLyxeLtLyxeLtLyxe߈ % eJX2/e4}@5se|/*p e8Leiex`eػ elcpe9Z iMeȍphe/~eɣ嵁rYeɮa.e =N eNU/e͝Ȇ} eg$e2t/~ eϴJfeV|eV| ec/mVeb0MEwe*e?Re,# # e5JI eE8e8t[ezN}RqLeȼc e'+pe|aKt "eݺΤ< e VDN eyh@e e je'_Jf e .e㉎tF? e`CJe2ʛ e%Ce稯w||eqw ze+Otje]@V+?e-Be-Be-BeUi e *eϻMZ6EeϻMZ65e嗛ȷ|e2LDe2LLCe2LS e2L e] e,q e\3 eUW >e?Z9|eo \ehleɛ Rebfej3ej3{e>ew2 !egA e<e,]ӣ fq`f40f40 (fr!6fMJD fTc#Lz)\fTc#Lz ,fTc#Lz fywrK"fUwT $fz'-fPfZKf/Lf*o f W Yf A[[Yf Q/]Of]|Kc[fTw}f?O fCN fGv.Kf j!X f9vfյq1Rfcu f$9}Bfkf#~[dfS*j fSM,Qfco=t| fHWb#F fYR/9 f" f@Fϕ $ f~Y?fPa fPRf }J!f =ןnf =ןn f"|tnNf'Jatf(*;/f(*;/U f(*;/f(*;/f+G]!bf+R9Dtf+ZBf+[j f.Lav!U f.XuFf/Np(f0=cgf0=cgf0=cgf0u?f1zPf1j 7Qf2HĊu zf4uf4~hG[f4~hG[f5@ d f5@qf5c&^u f5c&^uf6*@Bj f:nmc_ f:q1Kif:Ǧ/Aef;%WL !f;)tf;) mf;Cա c f;yy[<fh eJf>h (f?=&Fwjf?G< JjTf?G< Jf@$N fHk 2f&3Oy f+]6y=Cf>rjft)Vx\ fWYRf$ afbʞ5af5C&; fL6 f O±L fхQfs: fSQeNfSQefPCa fūNYfcfIfžf:Ng gf䫻ݫdfKPs?fO>FfL3jfqqU fRcFSvf>ɀf>ɀ fSnDyXf_ZE" fVT5Rf /ڔf /ڔ $f1D fdRn1f ef#-@ f#-@ -f afz_pffȅR fhVx fd阨fVϕ[fVϕ f'L fsKf{;$OSf{;$Of{;$ORfG< if{m Bf+KfchkfόՏF  f6fǴhPRf+8N> f:,äjf#50 fXdk_fXdk_Lfݑ#?fAV?Wd (fC衲v*fd~1f͹3%)fζR fIR $fIR f]f`Z f_fUNЋ[fdO \:f"ߘ00 fAU f!mez?f!mez f!mez f50ϻ}f  f=j:f1Yz4|f=/ЇDfNi: -f.@xf98b'R6fBgh:f\"f)Mf9M f²^Jf*dn)Df*dn)$fò f-LfoY~[fɄWXfɉן = fɒYΘ fDd=fʊG (fjq)S if<ᴮfˮ='fLf|+Yf|+sf|+t fͱ&v| f6fΖvjf> 1 f)\w if(p =fUþxf5(f5(f4 f62 f62 $f>\?f%[nt[fԚO!f=HFa fGfbZx fٛLjfڃ{L$f:v% f V %fZufd\{uf(_f(f0볜Tf~)Rp?f_$֞& -5frdfDʐ&R)fᯈ+f*9gw:RfU \f ? f!oشNf`uf/@{  foUpSf m f efj fsfrh f눰Z e f\"]f\"Xf\"'f&,fҋԡ kf3) $f}8u f%fDƵ f"Lzg  fI< ( fzlf vf[cBfXuZf[Lkf#>f#>f$f&7;/BvfWjfm Yf%p֙ #f#*)]G $gd}gx۷gM8 sgpAy]gTh(gThg3G܌t ggȀ6gc g.gt gC\hg 0W % g %Z g %Zg %Z ig %Z g 2| g 'Bh g (gIR g %:UDj$grnI/ gC.b gLg:ihw gNX%gNX%NgP \gV ˂. Jg9 g9 g>6` $(g>6`Ng>6` ag>wѐ igP[K g g?gT:s gKD gݺY mg{Y N g9H! gZlNOgga@){gkgk g 6jtgYg^Kg $tg# }e{ g#? g#,+g$0ѐ g% {g&a:g- g'g'TN g(3g(8MSg*!vy`P (g* H7g+i)ng,g,z.w g,z.w g/'g0g0lLJ g2I]Z g2Ҁ !g3+z71 g3+z71 g3+^g g4-oZ5 g4iDg6](AbJ9g7f: Rg7mseg7d-g8f})g:$9ug;Bnt9g;G2"g; 3wvYg;;)8N8g;;)8Ng;;)8NQgHP?g>+g?T>XRg@έ $ gBfx?0gB:D gC?IZcgCF{WKgC_gFΣ ZgF%4gFv(#ƇgG2  .gG4 gV cgIMTW? gJqeEgJɠJ $gJI jgL X _V gN0H gO9IKr9 gO"jWDgP$t袸;gP;dngP"Vx gRhػjgRhػ gSb`3 tgUj%gXGgZe/gZ|4ɉg[ڎ?g\N< g]#K g^j/qg^,!!g`|1Xu%ga\6.gavxRqQ gavxRqPga9' #gctge !ge@vMYBge@vM?ge@vMs ge@vMjgf TDWgg1[8 ggE߇Jgg̢ ,gh:YghghCgi rgoh4gokbsgokbSgpeat gp6K\gqui> gsQ -$gsߋgtG'aJgtG'aJgt-h gul gw-r . gxZ|^s gz>PT[ gpu2 gGJNgE, gE, g;tuK'g;tuK'g9Kegc3g>Zg #gHR2rg\^{ g[@ g[@Rgֿ~c7 g0kagƭ7 eg Uj?g X g Xg7Rmg[1 ,gTKm, gTKm,sg&ODpvg[ g,'sgyr gyr gKds$gbe/ (gR9g~e?gt%i4 ,gu51,g m .gX /  gX / Tgu bg PQQ gYW} iMgPE; geg-g-g=g Ug{ٖ i gӍLG g0lPg*+9hj4g*+9ht4g*+9h ig*+9hg} g} g;cl g Ngl71hg:#ٖB!CghFg gKFgtN1*gY]0gQZ1gwgw[gwkg)iDgJ- gJ- ga9;Dgsw g|YP8 g YgM\ gz!gTghbCghbDg퀀- gp]gnL0gJl gEE# g4%6 V g}DAy gs`gs` gBYB (gXgc- igs^VDgs^VD mgj9iO{gsar gbD|9 gc]T!gc]T gKJF gKJF gY>w g]T볅g/~ӫ g*R&g$ܞ #g#?g_V[ $ gϥgwa gg)Pk1Rgdܫ*g0pL (gEQigчp3 gLoen vg½E?gK?QgK(gVjOpC gm̴gٳhg ag\q-gǟ-cg - gɒvntgp5x#gof}K g\'4h?g rg/4펮[g A+f_gBHUj0gBHUj g'=ghVd]ghVdgѶM;gѶM;d gq#\g*,lhgCjg՘w[I \ge^ 9gֺd8#&gq8NrkSgؙR glxS?gCN gݿ[RgsЪXg WJ g "A g "Atg+g ?gܓ gޥw: ^g#m dZ/g#m dgRJ ?gRJ g'qt $g\OHtgŗE{g^|g厒(Ng#| gPaf1.gPaf1. g+V+g>ZdgcXB2gw7[ g!lXgF_'Tjgm $ gmk +gmk $gmk [gJ/D g=7S.g~oS! g@ZUWL:g@ZUW4g@ZUW#g@ZUWZg@ZUW g@ZUWg': gЄY ge^gyJpNgZuKgw%d gw%g"WИjgbH\ g g4B[ g6Pjg6P ga2:{ga2: jg/UgDDK'gDDRgtմ J' ,goXgTg3u~x #g xM9g?fg8W-ej gTY hu h*@th|Ӓh] hahRh5"Hh F shfm?hfm h!'umh ) \h \Tj h @ARb=h R>H|h 8O4vh $\Y h y;h y;hzHŝh"+l h2hKah?UhQ s hsuChsuCdh&ju! h(I hh[:Yh ,+hZ]h}*=9hӇX6e 7h-< ; ihOh9)~hrG2 aXhrG2UhrG2jhI:zh!-Tvh!kz6H% h"%f)oh"yȋ.">h# =h#<h%th%vK h%wSKh&,[U h&n+Pݫh)n"_h)x h* ah+\Ve] ch,nx( h-vh/WHh1o h1¶"uh1¶"Ssh2.  h3&ild )Bh3Qф$Q? h3֖Rh3֖Nh4G[h4Iy5 h5e2h6tBGes h6|0h7FGi<]h7sh7e!h8\ h9Fx J 3h:)$hshO( hO9hP?ΦNhSQţO ivhSQţO i hSQţO i hS΄ hSsthSs hT`Up hU3H]hZ)Hζh[>h[PDh[ $h[th]Kbm5h]Kbm5Rh]լb h^Bȓb h^Bȓ c h^Bȓ}h^8 h_ g5-v h_ejh_0~ h`.|haP"haP"DhashbEbjhc*"#TUF hcǞhd=H!hgҢYhgҢYhlvD$hm 8) ahn6GF hoY hoR3ho0(z:ho r" hq,@ #hq{hq76 hsLHrh hsw/m ht, 7uht, 7ht, 7kht, 7$ht, 7ht, 7Jhtׂjht^ö huMhx8p #hx޼ #hxր 3hzAz '. hz[h{3Խ h{9m[^h~~Mh~Ն hFQhk hw.,eDh0cF:h5 haRܓNh)Mq,hshshshJqfR!h1g~=hǁ7h>[WheJSh.mbyhJ<aZhJ<aThJ<a$ hJ<ahJ<aah`Oɼ$hsHn9\h>.Rh92$h哮hm4 hm4 h\wӜhg-C hg-CYh4AvhZ hZ  h0hͶ dth<̚Bh͂k hSh=} hCsٰi>/ i?  i?:gi?Ci?:D^i?:(i?:i?:i?|Ri@E9|i@$-&_i@$-& i@ciAD+ޕiAD+ޕ[iAnqiBv]??iBv]iBv] iCj1[?iC{/AFiCebYK ciEMrx?iHhg]t iHwK>? iI'l iI'l (iIZLWliJeiK7@ iL-H n iM\KiMiMiMԷVriM% "iP}ZcKiP6~LiQ9eZ?iR1E-iTL'ti ,iTɷ;iTɷiW  # iXx/IiXzn9 \iYk1iYkjiY}a$iYCzi[E3i[qDSi\z"1Qi\`i]I  i^X[X3 i^Ci_A:%i_A:i_LgL $i`vO i`LŃi`[m i`Нl* ei`@w ib1TIibb#icZ<icZSie)Yݬ&ifwB*23ihO. iitQiR ij=<vij*9%ijZt[ijWu jikU <,9ikU <,9ikuvilzh4 im)GURim% iqޱKir: is Ͻis6"DisT'> 'iu &ivQwW iw ppPixmxrizyz i{CvOp1 i|e)L (i|e)Li}X3 i}B}: i~{NHGixC i˂Ct}it)5DiBiBF i86u ,i>S. i`Zm_i`Zm (i`Zm| i|AhgNi͡MT -i͡MT?i͡MThiϵiXiNi먔G*i먔G* iD ,5i i%xai%xivi:ASiVyY?i#Rȡ_ i!4 #Ni!4 c&iS?&i}&~(i  "if i(ٰ=S-i(ٰ=Li(ٰ=$ib\4r?ibdui貱ERR imj!imj ,imj irki^`iH$rdiK:iq/ iq/ iq/ !i5Zyb eiG"|G iİ u|Xi HUiԞiԞSiicZesi=ԵZ$iΣG7iO3 c i%{ iTAe:8iПn)i7FiDiDiDi@fC@b#i@fC@biԮ w i|ni/;~ Qi/;~ Q i/;~ Q ,iט  i׬|Eic֍ ii! iَg̺ih 33iW rɾ|iW~_yiۧ4d:N i(uÁ:.i}U#si3I2j iU3 ibiиfp i몕 viK„ +i: _isN*(R isN*( i?.I:D\i2t׋ iЖbjiA OiJܳGi( iF+i4@Kib igclf i+׳ im=vi&I"diX i\ i\i>bv ieO i i LiN#i[ (iΕih(@0 #ibp̖iv{iݡESiоO:i# ibNEi)]i+]i[Cf(S iofk ilPiHc2 iHc2?iHc2 j Hy j7kj jiGjVjLjmx%Ljmx%jWw0js^1 Zj<j/5>:Z jlE3d "jljj lГ j F2Wj ,%PKj A+K j ݛ޵j BxAj BxLj Bxj (۟jS3j,H㳣j'_kj \{vjO( $jn C' jpsYsj'eY$ ,Ej'eY$sj'eY$ j8ڋ| j j$`j$`j+++QjtMajo;rd joaA9j {jZ.kj^,h^j'ƌ QjkR # j8Qj20s8j1 jlྲྀ˨ji j!VO%j j"=/ j#X#'j'q̊/ j)w|OYj)/j\j)D^L%*j)*(e ^j*Br j*[;j,aZkvbj,mvij,mvj-1 z2Rj-1 z2Kj.ֽliZ"j/O'-j0k\j0>4T j110;j3Ԋ#sij4!½Uj40KEQvj40KEQ j4~bSj5zj5,> ij5,>j5,>bj7{.a5j703 j8w[o j:ϓgp  j;x?  j<ĨcpCj>tBp; j>}Vx5 j>R1R"j?YA\jwG<jwG<jwG<jx- # jxX-8 jxj$sjyTsLZjyy #jz?7*R3jzzA'<jzN&* jz :j{fsv@ j{z܋Sj{zxj|pEAw9j}Bj\ 'L-jW-j,s ? jnPIjPvjgMZ jaj]`j|bjWahje- jSjj0oQÉ ,j3%nj\ j|Cj|Cj|Cj|Cjo(& jU"KjpyqjCg jQeajV 5j s`jM}NjXe$hjXehj?/ *jš) V# Nj?5Y#j?5 ajҤoH j= j40TDjC\ hju/` jŅ(jƲh­dj5j. jr'zjٟN{ ej/XzjO LNj=!jA{:rjX, c jX, \jlJ¥jj W'f jMzVKd jj j)cW0 jЪvĐbR jfN cjfN JjҶԂ M jӰ iQg jl,)Q jl,)jl,)Kj}H-v j՝Mj#² jnqC jj.`Xj-YF$ ej-YF$ j-YF$ j-YF$ $j-YF$j-YF$ jC;d gj޸:A6 Vj4"j4?jW rj[-Jjᛂ=dSj[t j Ku jj4Abj?G kb"dkÂᶕT k;GkYˈ#L-k7>k k`4k >k"\ ko1Jko1Jk,4DF*NkcHQ>k ˘t8kk ϗS k ϗSk9(ƀ*kgkdkX+q $k s{S$k!І5/ \k!ɠ3IXXk"g2JiKk"k#.ݳ)Kk#̼Tk$BrF k% ltƗ k%7vk%j~Uk&Ks k&Kk(u#=[k)Kk)IDT~vk)r k)Fk*tVAt\Kk+Ƣ*K#k+47X?k+蝂.m k+;l^}-Z k0u#S>Ixk1< k1K [R k1΋:q|k3eMssk3bI)&k3bI)&s#k56m (k7h k9-\n?k:+k:`$?k;twYk@W!k@I{}TkAΨ/W.? kBo=hxkBE2 kBĕ- kC DaY bkC12w #kC4DoskCB |kC@5|8 kDlA1 kDd kE)z skE#/gkEkF9=10kHAj kHAjdkIo [kIo kJ6]RrQkL݆-kL7NW^ kLUy kL Z#kLˮ*kL&eskNk1 . kN}M'kNM6(kNM6 kNM6kP%Sav1kPϒ #kS60KkS60R`kS60kT,92 c kVbPkV3X{ !?kVUi iLkVUi $(kVUikVUi (kVUi|kW*zRkW! |_kXYSkXj+ ZkY|`bk]M/<vk]+k]Yvk^J~\#k^v#b fk_2ǛMy k_2ǛMy ik_U k_Ukaxka @ ikaФU9>*kb`V kb"R kc !kckcm}Ekcm}[kd$@Jke%,]kekf2Q$ kf^v`]R;kf^v`]kf;ǻ ikh ks>ksZpW)ktRC kujX͇ kw[vkw$gcz?@kxqt<tkxqt<jkxҲ kzKkz32 kzq3e)kk{*ڄ t k{ԙ#gk{ԙ#g;k|LOUk|LOUk|X20 k|X20?k}Zk}Zk}ؿk}ı,kk~q*~!oL&k~D|kX# ak RnƎwkAG/ k$<kk ekYk0 1ksk kT;_k1kH nk@Qk5VtkS03 k[O k}rkjl]Qkjlk8t$ k;J?'] kHd kHNkkR k(7 kuskMr@k4;= k T kKqvka e ka ejkE8(kyk:k:8*k:kk= k= r k>8 k>8 jk>8 kqr kqr k3) ckKk͌ѫ k`Okg &k(jYpk(2N?k3ksk*hx k 1qD k=p3Nk4/ (k4/j k5 k)L:k)L:SkX;gGkX;gGkF*R (k'bAkw m k/Ah} -Zk/Ah})k~ kj}Rk) xNk2[ i kd] kNfy kN sk!!k!kqa,okĮ'PDkڡG w kg#kċV| a kdCK k!75 k01f 2k4LvL ka2r:ka2rkuׂkʎ. k־]4k{skSyks03Ck ]k9W %k9W kmY kƩϏ0kҷQF kV*|?'ktd:#k, H#?kHJ kHJkף[d`k״)` k52Vkgk;UǖkY ks^$ ks^$ ck>@k kjY? k5gC ck>Î) $ske kXJ~ kGk` (k:N kμ}kTkQf=}j k `;  k `; 2klakp k Y kTXӔ> kxk-1kLk `@^sckU&"MkU&"jEkU&"hkmakﯹFÒ;kG| kG| $kl]m-akDL c kO5 ak1e kB \kkiڊY k k62R k1֧> k1֧>k'2Fojk'2FokQR詗k6jwkVO6SkCMokCMoYkNdDkw k Tj lэ lgF?lk.YwX !l-0O l={li^$ldNP8O^lx$ ^ lx$l?l> \l:v>7ޢ?l:v>7ޢlDJ,& l3RH a lPldlYs_FIjl PD0ͩl \l ha l ,>Vl )`o al l{Bujl[[Llg [loQlWڷ lWڷlWڷlZ)K|s l<Ya l1$ l?l;#plx( l36Dl'V=l'Vl'V l?lCp lW =l3Sð lߦ'lG_Nl{ )[l~ol i l2h(l; ,lt2l Pl"L_jjl\l=mdM҆ &l=}D,l> ̗R l> ̗l?#+!l?#El?#El@0}G8Z@l@7Տl@7ՏKlBhH| g lB'< mlEpB lF8{| lF)lF)lF"GJ& lF~/%A lG20 lGfq lGfqlH KlH9bFptlH}DV ilI7- lJ&rlKeCP WK lMlN_쒩 $lNJ%lR!ba?lTS[{1lWG>JlXD lY@=lY~ p[lZrmR l[ 0Zl[{Dyl]^, l^&K l`0543_ laK7NO lc z lc*ejlc*e lc*e?lc2ldi"?,ldi":ldyslexw lf͕vrlfZuzz;lfӸj[lgS@ v lgm alg#lEQlhF lhF lj ?,lkƨ ll#?8ll𫸥ll𫸥 ^ lncx,lloP ;lqIJ K lqyA lqOtlrH N alr S5lrز3Zls"] lsc? lt2lu/tlK lw* $lwiՄ ilx)5!h lx`xf6 lxx_έPlyfs&j lz"0k ;l{PSx .l{VO l{\5cl|9Rl}FRl~!x\ lutKl' l!) lr=f l@{Blz l#eW%Rl7&wl7&w l7&w l7&w l7&w el7&wjl52l&%Nw rll(o\$lRe lv)݆#lMe a%lC lK $lib5+vlib5+ lν c lTlSQ l}@ jlg'l1Q&dMl1Q& lNYlq el l lK l lQpR lT( al`o0 \l0Z?l0Z?sl1K ?lR \l;bb ilN6cp gl $K l{MWleF m lcJl b̾sll-`$ll-`Ll2M5k $ l2M5ktlU1BASl7 ,lY;pflY;p lY;pl? lY2# Zsl<6mh l<6mh\ l;l9 lEDpO?lzwSHR{l&  lf>V. l8lKNl[ψA[l^SBluPܷ* l_MA l_MAYl-Ql-Ql-Ql~. !lCU^h lT=5 lqCdu lqCduD l8l lRN ll?*lASXlaqUlaqlaqleKl+@l lw?ZlIƄl¥[ail0KlwFvlqŘ\ ^ lҽ:dlNkTr3slijlĨϑ5?lG$ly,GǚdIly,Gǚl˵>߹`l ]Gl%blzsYlȳ)6elS@(l* lNuelx}D lg lq xLElq xl"! l"!9lTA㝆 lTA㝆 l&c!l&cDl"7ǭl8ƀ ^lK@ Ոl͇ `l"Sl],l> RSlӚآ9l! 3 lwttE?lj pJNjlڠ=lۘݪ-QlL)]Bl=#klOZ"lOZlOZlpH(rGhl#gflSl.F9 Nln"lMLHV8l^$R l^$R ,la.Il㽭H&s l$YlaBlLellLel l׹%Uqlx0*l l76l76 lИ l؜l"V ld=rlՐhy ldTv l(", ilY"luۨXluۨXl)eN loc n lLU lLUlƚ\slsK lsl#  lpf{v lE{cl1xr'Y lި+Em?l4KrSl4Kr5l4Kr%l4KrlTZ l@B7%Rl@B7%l7_3dl(d?l(d:m!p]cnmǎNm sim6m): m6- sm> m>jm{"WX1 m EVMm36 m{C'#m^jİ m^jİm?uɐm}hyτ =mIh&vtmccG?msM mӳ1m^,zKm^,zKmΘ9uKm'q`gm3"Om[:ZDm$?m$?m m:mHv+! mF_'m;0m+͝mg*y m:@Mm l_Bfm yHm yHm!ʘrvm!ˍۼ m"G0Bm#&=R  m%f m%ړcm&vC+m&vC m&vChm&p9m&'i m'4*m'4R/m(}Udm)JhK Gm*xt m8;<lm95T m:MV{V# m;t],%m=ۨ*; m=lsc)m>/Gi&iL?m>l\2S m?*m.mAB.φhmAg*YfNmC+YmCNdmDۚmD͋zK mE~imFK] ?mG` D mHE  %mH-oVmI(VVmI=ު mI mIo- mR̺t&cmR̺tmR5jmR mk%cS ml5'PS, \mlG$=Xml]$Zmn-x{mnD*Mmp_6T mqe=ms]RELmwim/mwҳ4mwUqwmxYmx *mxemxhy$ my[pL*my[pL? my[pL my;r"my;r"Rmyysb?mz>.T|PYm|a | m|a *m}('ݩm}9JZm}9Jem@smArAmu Z cmu Zjm8/ m):/ mFZmk4 .m)ymRm "^K m "^ mwMH0mYj mYj msxҹ gm|2NAtm m~ڴ;mbmN ml_ $m~$m~$m>bv am37frm J mVu]'mhL%$m^ m  cmwcN mD}bN m(WC m*q%m[l? m xm0" 4 m; dm; Em(MV: mLI m2Bw e*me mNX$)//mXW9?mv+m6 CMZ mڈ.6 =mڈ.6 mv#-Qm" m3 "m%3Rm}ΝF im"c<mhzYS mpD_A$mq|m"†;mNm2A m ӷy $mWp amWp mӊ# m# m#m,ޞ=)g mM; bmzka m(Dޚvmwe \m?mN"mN" mM+mYfL m mpR mI2mɕIm'm'KmڏBd# cmj='Rmj='m3NmO. OmO.mЭuUm ?{C mū!5Km,|{ m7a`y& m!NMem9 #m8$)m8$m ܴm\eLNUmL5F myIՑ+mJmЗl9mcau$ , mcau$mn2 m_eVtmրomֻ: Rmy(em{b)m{b) m׺t4Dmη6 m` ,mU mUm]dz b mٙ6cOmS<-f m[C{ mNWm!CmW RmW mW miWs mt(|]mBr<1  mjmSX3mAkm&fmMk Lm{pډEm%~} m%~}jmLܿ m0jP m窃~m"@wbm+mfLv#vmmY=sma> buma> bma> bQmaermپ"m+J0 % lmWӘsmEXmm[Hlmծ_j mծ_s mLPD:mkam}UZm7 cmHEMC ms( m%qv m%qvjm-& ,m4m~7 }nEnpԧn1ts{nf] ncxncx ,n򦝽 tnܡRDnܡRniepUnMFY nMFY n1jvnEQ nm{n? n?n? \n UK34n WVA1n p#%+n jcP'~ n jcP'~n jcP'~n uS n c c n톸n톸n Iݭn in~)ejn$0>n$0>qnwLnKS\Vn~S4n~S;n7n2lN nF:,l nF:,lnY|,n憞 nCˑz n2A1n^j nP#n":ZŕCnijURnij)nij]n~yInzzs nzzRn$tUtn$tU#n]35n68k$| nRp$nRp0n p#j'n!xf[ Nn"> n#+Fjn$^ n$'5n&M_uNn&M_uYn&[çj , n'x ,n)"c/:n*hm n,>tYn,>t n,WFn,|Ջ{R6n-uLLn-uLLn.`oyn.W\n.~g}o n0s*H}!n0s*H} a n1Adr/ n1]dn2}9n2J;ˡ +n4-pZjn5MS}n6 \5(? n7Kch-sn8:Z8, n8GS{ $n8/n94n94n94n9RRnQn9RRnn9RRnn9RRnn9RRnn9RRnDn:?-Xn::wkn:\& ,n=GYfnn=0}8D , n>v'!Fjn>v'!Fn@A;? nBK( (nCu![nCu![nCu![DnCu![nCu![nD02nEޑnG>"n nG(tYnH+R?,nI.,bnKǃ nLto XECnLto XEo nLto XE nLto XE nLDǣnMAKM,\k nMƒyb{ cnNG4jnNj6jnNj6snNE"lnNE"lR nNE"lnPR!+/nPlH nQ}2SSnR6>nSfLܢR nS $6nS $6nTB]nUKAnV2inX`nX|ConYlWX+RnZ~MnZ 1dnZ`'1WcnZF anZFn[Č/, n\zn^Mncv nd $ne6﹐ neZTnfHۯob nfD #SngYt5jnh;ޜk$ nh;ޜkDni#)I ^nk)b#q nliՇTnlqnlq nlqnm~ $nnQc> S1nnQc> nnq[rPtnqD>_nqb{ͺ nr,DZ8nsl{ W jnt46xZ nt46xZnvz7nxF]]nxF]]nxKb nytU  i n{}An| *{ n|wD n}P\NĊ \n}P\NĊ? nc-k)D nVSndR nbnSryn)d8!n)d8!?nKunV cnJ!nPlUE nDXjn9`t \n9`t n?ӥnk_@s n"XU Q+n=kt np0?nU QzSVnyp: n ov|n`ARnt}/x ~nt}/x sn3P<nHIÓ??n뫶 *jnp;n4P P# mnW¯C[n^/I i nz:nŰH #n3Rnt*W 'nt*W|n~8n~8YnP>mn?҆nm&=, n^6n{]bR nnm nvg7hbnvg7ht n $n4?qn)%[Nn9 \n]auJ+ n'on<qn%L ,n%=UnWnޝ% n fCn#+"n#+" (n#+" \+n#+" ,n#+" gn#+"nN5BD nUc nUctnUcn{YimnȎ nȓEnӉSDnɹPnk" n{+Qhnd2C nEVp{n adncqrf nͽ@9?<nvn{@#fn  nV"#.nRi"nIȥ$nѼ~ nۃ/ cnu ns{W nՖ]Gnڣ*nEScnq&nI "LR$nI "LRn1Ό , n/%LKn5/?nXië`nXië`=nXië`Y5nXië`*nXië`L"n#7u n /Rn%!n)n;qvnب c n҃@ an~|fn rҎg n/!n/& nI Rn̫y9n}o Sn Jn k nB;n <sn jF/Kn~  n~ n1!Mn#Un#U nfXi1nxEtnCHخnX_/rng1M,n gr2 1n_; i n⽱kn.XlnCut nCunZ:Fu(n({hnXIQQn󠣷d2n7n^vsj:Sns@o= oR)KoR)oh齖 oI*o Opo 燓o ? o 8hT o ]m= o y, ^od,Sod,Ro=RA e!o=RAs o=RAom14Dov# oAJb$: okK|oPA, oe; $ oc5oo+4&o<[o<[ eowo^+XR oc[ o Bs.@o>s.@ o>s.@do?yfkY oFtՏ4oFȠPh oFϮMoGSH&=oGSH&oI P[oI58+oI58+oIv^SoJƂS>dDoKI~?C oKd9-$_ oKAuoL%uжoL%uж oLP"KoLP"QoL#/}oLҡkoMK,boMئE- @oMئE- oMئE-oNZ9 oo}UoL `ooi)F- o٥o=ד o,-i o8Ήoco/goL (oL]b o& = oB8oθ. o%)K[ o^l\to`9)=o?o]oRK?XoRKjo Eo(֪ZotS6op(9o*ڼGbo! ,o!oI= o  oR |o=W$o*=[l]oԷ5RoԷ5oԷ5oԷ5oԷ5SoԷ5oT-o؆2oO5oO5oK.( ( o[E o4#I oO"6 +o 7ՃoݰoZ2Gowg} o-"p!zoOVe oĻ&88 ox,9s'ox,9Rox,9joYe!o o.\Uo+?ЌoFK*on"D oJ8j oʌ/u o˛oZ! o̮wko̵/o0; so}g/o#  o1-ȟ oEF oVH _M|oVH _MkoX?&oӟ<' oTc oTc oy ho՞LT ;o8MݣQ oغ[S;oغ[S;YotHoܳ]o7hYo}w(To1N opy)?$ oeb %oeb  oeb o0]'Y o_^ oEE@ oEE@- o鉚/B o ۷>oro/d6{ oO'D?:o6odxXo]Ѯ^wTo񹉘m<`s o񹉘m<` o y"o yj o]C oO̬oxw ohi 1ooYoocA|WKocA|Wo o//Շo//Շsoet pry $p̒\p̒\pP _p. 9ꀊ p'Z  mpW3y@ pW3y@ $p 5p8pPr p Ssp \R \ p \R p ůZFp ůZp B\/ p _ xtp _ xkp _ xKpJPKapou-pr pn bp9~ap>/]p 9pq@_KpxO lpVDX ap;;s(Rprp"|F gp2 eNp3հcM jp/zp#x1 #+p;l[ZVE p#6r #p(}ڧp,s p4/ p<}|p ~ o[ p ~ o[Rp"%`Ҵp"%`Ҵp""VDp#> p$i$ƶp'xWF_p'!? p(`Ajĵ% p(0WLp*koh+4 p,ozp.mqSxڡ#p/( p00ڲv p1nwicp1nwic hp2lVp4b z'p4b zp4l7.&?p4p5|p7[{4N p83vXk . p8#p8*^<[p9 $p9H؂p:-W5bp:c p;nsJ  $p;#OKp;wN*p>;?#p?=.;p?=.<p?ɭQ =p@Ԏa$pBXRU/ RpBXRU/ pB9" %pB9" +pCci]GKpDO0G[^pF|@ pF!0zpGV,:^pGV,: pHmLyZpH ZZpHpOUapI2SpI&spKS> #pNb@v[j pNaСZ0pNaСpP̪ڦ\jpP̪ڦ\ $pQl9B\]pQl9B\pR4 @K pR3\xpRM=jpT1i[pVSzpWSpWSupXdq!/ pXdq!/U pY97pYdWpZ^OMp[mC}Rp[isp\PT p\Ӝ^usp^sVt p_uT p_x?*p`Eu۫8Y#pb)1pc0pd#)*a'peTNPpf apgvj,pg~˵?s ph'20ph'20pivNqrpj{5IKpkz^wJ (plE`plE`plN/RplN/dpmf Epmf Dpmf pmf  +pm}# pn4iqpnJ pnC po a -spo a -pokaUpokapokaLpůȌpwt}~ -pwdY/"px vpyq]pz kmZ pz kmZpz kmZp{(% gp|'q p}Q 8pTFp{eoiqp/fm=-;p jRpV yb]p.H4F p U (p1Kzpp%-vpst pIZK~pS pu6Yv pDmp銥$pi5W@ = pc%XWދp…w Lp“?, -p1]p|0pĊch \ tpĕspĴa ;pĴa pƕ=L pf pf Qp~Rp~D pƌd}NpƵS5pƵS pƵSpSw4ap%–p?p3ypɫ(pp13`\ mpuB>pQr4 pQr4Rpu~1pA-spDpϰ9 pKHxZpfGIjppM6|?ptM"pӰ۽s% p B(v pT]6 pg8ʾpxwq pJ.:SpJ.:Lp֜ҲOp[](p Ĩ,p)=TCL3K p;%hpJoM;pܬ4c p|Ō9 |p&tB #pj_. Z pww4Ͼ p[m_|p'3NRpצ ,pU#p5w apO{>pI6pIp32Tp;<pqT;pynvp~WLZp~WLp~WL,p~WLp 1$p 1$ p6 p1*}Gjp1*}G p1*}G ,p1*}Gpї_pї_p6ZKt pLC(BpKpo #p}Np$O|4 p$O|4 ,p  qU2 qq?d 2 q]/-$qB qBAL q"[qg:k"q0wLR q(5gq<:q<?qD,(?q N cq bN\!q O9 q 9fsLq 9fsq  $q  $q S q IK q}4 ^q& kq& q*YYf q7q{j(E qIVpڶ;qIVpڶ q67Sd;qzn2f )qzn2fqdNCql-) qE3 qZ6_qO q-]q ,7Sq /= #q!zQ] q!R0H} q!R0H} ]q!ysq!ys q!ys q!q"bZ+w?q$r1 #q$7~ q% z9&q%Xa]pq%Xa]Qq&|1I> q(q(5d?q*R8d ^q+,u-q+Y[f"Bq+_# q+p>oq-?&=:q-;l q-;lq-;l q-0@[18 q/@q1MqTq1[&6)H+q2qo q2e\0>U<q4Ow q6Bi5 q6v̧d4q6v̧ q6v̧q6v̧q7L [/ q8 (#q9YLq;~צ q;rq<Uq=0q>kY @q>ng-:q?`BϴI q@)8 *q@߿6 ^q@ KqA'j qBJfB qE)5b#qE ޷uc qF/eikqFj4qHQ6h9 qHWeA qHh"qK>Y]N qLζp?.qM؜ 5%qN!-yqNLY%qNLY%qNLY%qOIX3[qOn qOnqO}qO}qO}qO}KqO}QqO߶C qO!6 ^ qP< >S(qPEqQ x $ qR-X+qSAS ;qSCqSz?jqSz?qTHUi*[ qU/6t qX t qYeS.$jqZ"yq[@>u1Qq[t: q\̊iC2q\̊iCq\̊iC q\̊iCsq^3 q_GdYq`*=+q`s; 1jq`צq`צRqaB~Qv qaB~QqdA2NqeJ*- -qfGx qg:*[ ,qg:+Wqg/vxkqiqxgtqim qjQzȕR qk\ Xql֡Vql~`^)ǁU qm^A qnZЮqnF Ig]Tqn[# qn!y2Uqpi#m "qqhv]5qs* » (qtnQEڐqu#KOqwP 8 qws qx]K q{aSYq}۪{$ q} q}~dŪq~q}`qtHqqb[q\ %qa(]Rq.qWWCq3\q/Uq9`Tq}Fvv qtfq)Dh{B q`q] \qSA qSA iq)HTh#q)HThq×A9Iq×Aq qM:-qM:-YqM:- qi.oqi^9+ $Jqş3DqƒJ qqBۡqqBۡ (qqBۡqUzq@mqXq\G[qb6c qqe@qqeq'f% <q-< (qJbqehqKQWC=qKQWqԺ k q֌0U rq֟di#[qmqeX?;q؏‘_yqx \qވE qRq+VsqߙԐ q㛐KVFqrx qrx qL qwiHqlq qnמQ q/q4XalqʊxS>qʊxLqʊx$qʊx q\P q}9 $q$dC9q$dCtq#tSIq!Lrq;fq+3fRq5 # rϒ;!>5 c rݐTlOrSB 5r:ۜx( rg=/@F Drx.lgMrbVr r= mr?< $r?<r0rl7r&Rr /(ctr /(cPr /(cjr ,r!~R"1r#1^ O/vr#J2m?r%{Mj?r%rZgGr%rZgG]r%?ވz cr%G ( r&9r'T|t.r'e]kAr'/ r'/ ir'5^x r(Nz r) J }%r+!p+ + r+H%W4k ir+Z>r,s ?r-P՜r-iE0r.O< Y r.+$lt(r.+$l r.緗R r/Lr1jr1jr1K*tr2.\Zr3;NرRr3wşr43at^ r4hA]`Lr4UzPb r7-j c r8-&? r;}O er/.cr? &23 rA^uU!rAɽ 7?rA+rBg30;`rB( rB( rDU,rD'q [ rDku̓VrFh!C c rGU{vc . rHDZBJrI5SrI`pJ rI`pJ rL"rLP&9q?rLs rLK4rM'U_ rMr4LhrMYZwsrMYZwrMYZw ,XrN-\\L rNxYpFrO ( rQ-z 4rRr2rXU#bՏrXU#bՏ/rY~LDrZ'T r[9#zk r\z g Ur\z g U er]1r^r_%xdr_yr`aZ2"r`$@] rbB͉KrbB͉#rb]*<rcse[ rc#C ?rc#CKrd?Hrd}^X rd 3%rd"j!hdreϓ3 %\ rgxUri/1rl/ lrl&sjrl8ZzTdrnLK+|{ rn?ҩkroڍ3ro\qby rq+8 rq+8?rr.IWշlrr.IWշlrr.IWշlrrtĆ{ rs4 ru0Ѿ/*ruh2 [ruhbruhbrw[+w25jrw$ߛv rxm}rz.Z #r{fwVer{۩, #r|v'Yr|v' r~d)!r~ uCr~ uCKr.{(#rnxr/a r# r# r*/f()r#=Vrܐ(; crܐ(;jrV ,rrw:RrꁰFcrgo rxkt[rcTq r+P7ˏr>WF*r>WF rD7]V=r[m, rD5/RnrD5/Nr}s #rDs r9|rx~rxbrxDry}0Yry}0 ry}0 rEiT rs \ r4CWrBEpXz rՑ/vr .+drv*ySrv*yS rZ#]4@r}Br}B r' r' r]v # rAz erAz rAz rs%w$ r0` Srhm}rwE/mR rH?|rSLVr%XrЭNr D cr irrj sr (?ropru ar MK r]P{oo 6r rssr5;irQ L r׻T r/x&< r/x&<N rBSWÿS rCh=r%: rR2b rpOnVrpOnVrpOnVrpOnVr0rx j r@5Zj?rpb r:rن_}3i?ryDG rۀ,ANr rJle2jrܵ"M(Drܵ"M(Krxŷ brݸM܀rML1rMLQ rMLrd#AKrl#GKr٦ (rj@ruK{eCrhKB3? rir|?ycrFBr{ߗ rZ *B:>U s> sOWWZ s^is ^0s]#w s^y srǑSsE_:#c/ sJp)F[LSsOr#_J ns'ϵ@sٱ)б sSss̊-Ld %s0xN[s G/ۭv_ s u{s"+."Ls"Fs+Rs# s$V$s$V s$z yPs%g ʴ c s'%% s']/  s(G^B>]Rs(G^B>]s(G^B>]s)MV s)Q eP s-x s-x s-'ts-R`bs.-`Q5s.}* s/UTUj?s/Pgs s0LDss1Nls's1Nljs4;m; s4R&fs4R&s4}9Rs6"*Os9Zs9tuO (s9tuO s9vKs:.AeUs:;s:Ħ sġzs>ġzSs>ġzLs? |s?Af+$js@F s@sچsAfBtLRsABdsABS sCYР?AsD" rsEX$ό%/sF kP?sF kPssGveA#&?sHiqR sJ:קsLt (sMçsM!jsNH*tsNo) #sO>`RVsOf|vsOkYlvsPW{%.sPW{% sPY,, sPm #<sQ[hQsUY? sUYsV1ˉ]sVJsW椴!P%sW椴!sW椴!sYO^ sY1 ٯlsY1ksZsYSi  sYSi jsYSi YsYx>sZ+m sZDys^.递e cs^O-7 s_ ?8s_ h s_%#s_b݇Qus`ɀ" s`IR"saJpȌsb6 ˙:#sbv_7Ysbv_7K*sc%PTsc.r sc7]|sc7] sdCce߂RseseVpP" sh + sjSSsskslBi sn(esp5Q҅`Pss1N#7stITϰi stQqMKsto mstdT!svV>y sw!u; sx_ڈF8ssyuJm sz4)dr s|p|k{s}ans~bs~h?s~\-%sys"Ο(s yss ys4E| ( s4E| sg燀sɅ7 sgׇpRs] jsTJ ,s=m-tNsƐʐ2hsƐʐ2 isU s,  s,  s$]sQ6:z/ s|Lsks Snr ,s\gsTCsio<sa s4% sԁfsԁfs:fOsj|<s^DSsRs*E\:s*E\ s szh.szh.s1m>sۧyc $<sP$ZsgϽG,s s^e s^es$(k[ sJm+Zs qs ࣿ9 s ࣿ9s s5{ s`n usT4CuWTs+!SzzsI% s as.x7s^$K sUG-DxsUG-lsUG-s$sƾ͠js_iNs^ cEs^ sTԁs17{ *s_Is_Is*4s\zRs1S0Ks1S0KslsqJOuj4sqJOuss̮97s̮97sb='Z sf$ str>Dt`m/ tI at8qYLt [| t t ]t ^$?t +nt M?tGUTtꝯ (t2tzfthAЀthAЀ tz6,tz6,t{Wtq3:ftt t&- a tm $W t' t i}:N tW{tt<|;|$tt&aat-V=x#t-V=xt1, nt1,?/t1, ^-tftZ tKE]pst@ t:{]ot P|t!r>_Gt!b4t!b4t!/S]t!к!} $1t!к!}{t"$ycv t"sP0 t$ڍ t$дHvt%lԈD $t%dft'4 ; wNt'?`W' t'TaT95t'{x Kt( VݡYt()e# t(0tt)6\gt*018`wt- )Ct. ]2 t.͸-t.͸-t.r6vt/d t/d st03ct10Kt1$oG_)*t1%wC t1ebUD t1pVˆt2Fw t3KDm t4=fթKt4Ct5\z t5`"vt61c0 it6=Kt73}2kt73}Yt87Hat91YNt:=At:ۍ t:.=t<n/+t>v:v ! t?DCb]St?DCbt? HQt@`st@3s$t@3s t@3stAx$Aoe tAhY$RtAhY$tB1<tBR"tDf]tDۗ%?tEl@?*tF}|LtF@T?tFtj9tFtttFttIw/ \tL;mtM"9+  tMT}!tM&A{tM&A (tMvtN40i itQ;zf RtQn]=tSXOtTTVwf tTTVwfUtUXņy tV,!KtWByvD tZ_XMttZ6%$]t\$РF t\a^ c,t^qFWyCt^y>tc^0cjtd.05te7te7Sth9"Wbti7=x \ tib8oti'TftjWÜ}tjQ]% tkH9tk~ tkctlm.= tm toivCwntp./Ǔtp./Ǔ tq/ Q&tq/ tq/ tqmT%?tq%tuy~GetvDsx4tw]tw { ty^et{}$-Lt~=&tawL to1ZKt>zttctG*7̙ .twjVt8N8tHt_‰\ t#'C|ttSYjttSYtUrtJ tB?utgX tt?tz tP6tP]-tP tPLt,fmftҦVQtaK@2 tzt#Zڋ}%t~VtoA5et2Lt2LtA& t]8kSDZt~+Y*? tW ]YtW ] tg>Ihtg>ItQHkt󤲿zMht󤲿zM t󤲿zM , t󤲿zM t{-t+uStZF ct ?t" pt=Yt=Y tYGڮ~ 1tYGڮ~?,tYGڮ~ $ tB't+ʓ좆Rt=ak! itC & ItC & tC & t_("tA;ttEv ! tY gtʹ\" JtZ,[tl&vZ tFXϵ itVxhGd t{t{ tF6) tF6)td?dҫ9t;]ӚJht񫓧_tN4L?t\Ut Utl77W<taGtд({t }ktK] x,q2tznt ,t6Yt6Y tխ?t{iLt{iLLt 3S t 3S ?tp]EatԵgׇ  td tn9 ]t`L1[ tkn;t[޻JGqt]gktUqtUt~Ėt \t.x鼀 rtf tŨ+t$&]tU&tU&tU&Qt4 7 $tŐ G U tktotL[ㆢ['t1WbtlRڦ tǹtǹtǺuZ$ t;NtȏVT tݿ N'tʴ* tʴ* . tkFtˈ-ȯ i&tˈ-ȯ tTAf.tTAft{1Atۭ^t6tG˨ t>)~; ata²~ta² ^tP W tftM#yktԍ TJtz2 tۄ8,t)` $ t2Nt؊^ t]PFBbt7x tT28" et`p3t`p3t&Ij taRjt\]bt (t>kռtnSp t")M;t2u[9t2u[t]/}tp4=~t奻*E tRLtyϨ"ttStl t}A" t}A"Rt-wht鲿۝thz@ st^ |tC t)t)t)t(J_tBDt=9 \ tX\S tX\Stv^^otΰ> mtHgpz t tc ( t2+tsQt6 tMoNuɢ urU_ aVu9',uwI>2u 8Zsu=MS2u?S% : u}IPc uS u!W>|u )>&֟u %7͉[u !kMsu nhBu IO uHu[=] 3 e u*FP c.u' u$  \ut9VrZ u>} ("u^u(W su~nu{r. uȈ9^ u鐺 Ju鐺 Jut-hZ u/Z3g u^t uSփ uR "uR uizƯIuizƯ uizƯubsRu’uGy@> e uS,aU \ u LV;T4 u! au"u"bbY cu$u%'?ܸdu%AK u&^} ,u'.@)Cu'.@)Cu(%^DZu)*%N u+[7A $u.G,(u/Ȍ~[Zu0d†$u1'`xau2/3u2/3su2/3u3!ݹu3Z<sLu3e{Xu3^g̐ }u6d_>-u7u7r{4Nu7r{4u7&. u:`Wj[u:`Wj[u;7YRu;)hq +u;)hq =u;)hqu;)hq*u<Zu<Zu<Zu=(1:Au>XWGu>(bolR-u?5u"( u?5u"(Su?kJLu?JwuBR muB'MdT)S7uB'MdT)UuB'MdT) uB'MdT) uB%E # uCgN uEm" uF; nP=\ uGL,PuH+;0>uKy v uLfIe)Z/uL uL51 uM|Dh{uNoC]& uNW%uN" cuO}֢JuO}֢J/uOq* auUa&5iuUإuV)"2E uWyP%uWyP% uWyP%SuWyP%L uWyP%KuZ- iA%uZ- iA%uZ- iA%DWuZ- iA%R6uZL0; u[fcڗ\u[fcڗ\ u[fcڗ\u[YÜLu\ɞeRu\ɞeu\ɞeu]uWu^>@u^5дjSuad!ua ~iNua ~iubYW #ucnl*x4ucnl*x uc![N!juedVRbh cufeARufeARugc! uhs^r}uh_uiu8uj VQs&uj VQjuk+um$OCYRumȖN}umȖN} umȖN}]umBuquqlkK ur] ur2& ^ uri7 usg"NiutcuuGZE8?Guw. &Zux=wGLuzX&Ft^{uzkDRu{WvCu{WvDu|rqu(u})p %u})p um?^( um?^( u?tM Nu~g Ƥ{ucq|6Ru Yu.n3 up<uhfuF%u%_z{&$uf͒ bu2訓$u3{z2d uٸD~9 uٸD~ iuÌu5} + ugB>M uv=x8 u#9uw'uwu_tuƒ!@uTQ7u*V?ݓ u?VtjKuRW~7uBK u E auQVvu^;eu4] up,&uju~Qa iu~Qa (uHp u@|hER u?u:`dvu$yNup1x$up1xRup1xu@4 uֳ]  uu;u*Z ub؟ u8uָ&su-'u䐲u/i·unaun{J$8un{J$uxG u}V k7u}V %uj ?uj su ~ udruSnl; uD6su6fu|J-ufb u+&ZNu`` uAR uUuÙ+yue~ u~b,/ uX.)duE"UYUduE"UY]LuE"UYZ=uE"UY<uE"UYL-uE"UY uE"UYSu˃E u˵Gˇu&\ u̠} u8p|Qu@qu u uÒ [ uϮaP ugg)YuЃ. uA3* uуd: u҄Q?uҠ/huҤq Lu܅MI $usnSu}yuӊt u{qq u3 u{ uZ}G u֫Suקh u2KyZgufY=hur&)Q uCuCuym u"TauuCz9sDuSG uSHy~muoVub9d u Vka[u(; u(;ku䶂Gu5\4u5\uŰ uG6sO\fuY,Wukrukr (ukr ukr ,ukr u-fu]1!u =u|[uXD9d;uXD9duPv4rlSvn{<;v!e1ve^y6PKvSnvM cv9 vFi v/|`u6vͷvjv"r` o%v"r` ov"''Q#v$xvv%P~[v%j!iv%r9P(v&m6,;S v&m6,;v&irv(i{e v)3uPv+da~[k =v+|peC v+{> v+{>vv, ƒ  v,tIWv,gU v,L v/dD7d]v/]Ltv0SwA- \v0ژuL v0ژuSv0kzN0?:v2; Rv2t v2L[v3_zUcLv5>uu. v5ޣ av6DRiv9">av9E*{KU|v>*{KU ( v>*{KUv?5A!vv@ч v@xK vA 569vAo!b&SvBIAYXCvBIAYXvB3N UvBAtvBHrvC]vDz~ܥf-vD0vD0RvEm:PY vGEnjvGF vHU% vIq ҌvKN;u:vKe[vN9bvN&|Λ vOb vO|OQvP+# #vSMn A vUsЧvVgSvX~u4vX KRvX KR vX KvY`y$ vZգw& vZ!Kv[;Ej3Lkv[VmNv\v^}d\%v_Xisfv_j&1ѽv`djYvaIZBvaSl vdve5R vf:rڔuvhhvhOaZA vi/qvjD37K vj[pvj[pNvkf~? vlb{&vlvl~6k vmj0e vnU? pvowvo$jI$ voSltKvoSltYvr@ 1=s vt *0qvu-u8\vwyaW Yvxovy20v{Eev{mRgvNڽsvA_bEvA_bvkFe # v/RZv/Rd1v/R)v4v$ ?vfh vfh ,vfhvtDv2v)}O vȼKvFXYvGf[s v8Fe&v8Fev1tEY vܛ= vܛ=v vL?vNΨG1 vV#WkYve5Yvt'v,Ȃ:v׏7l - va@vava vFXuPv-_kvPG- vPl5D vRSvk^4vFIv2cv?I  v?I v4#V v9,j v2Vv2V vD{t vY̫r ev#vov G>v ?v v vvô)?jDvvô)? [vӇWtv&ھ= vy}s " vy}svy9hv[q< " v@z v@zQv=Mu? veV+  v`c vg|M lvw[vu(+ #4vU jvhg@p v|1vpT|; v Z v EO vaH0' v^v^?3]RvqVL vqVv} 5 v+zv:v: v: vZv/ugv֧J) g v֧J) sv\F ,v`?&v_DvB2! $vB2!vunx@] vunx@]vDvvΎ v~Nt=u vϖBF1ZvBkvȨ{"vȨ{"vȴ4DvI`b `vqF (vɆz v[+<KIv[+<v[+<[v[+<v[+<v+@ v˺UXvs A v̉ipnv̚g#v2;!UAvGmv"^% v5RcYvTI/zv7 Dvֺ0Lv׈v׈(v׈ v  vؼ>1^ vے~ iv ިv%p v?n2 vEtjl vkž vkžvkžv߮:Dvl,`? v~V+v vhQvjlzRvvFHLvƹ*vT_vX3 RvX3 vzR v|Cpe vۗ}v6^ ^vm~viY lvw. vĜ7bvo0Wv!M ) v[v[v[vG, v+ v҂jvy3chv z K(v z v`ӕvv,  #vZҪmv,lsvcKv .|v_ J(R v>|sv^UgyvR,NvşWRvoYve3:v8CP vWF?v4 c#wp{p wZw_.B we1T woAE2v wBt wJº awUH\Ywő`lY waaY)w!{hw!{Zw|w4ׅ%pw(,w Dq w epw 9WC_w e wA 1 sw;Kcwm T`wΈ bwA-gNw " wf+ Tw cwH2VwwMd-twMd- wCn<sw˓s|wjn Hxw?wbx{ w6w\ wS8 w6̐.wmw j|% w &? w bus w%SkSw%xb w% w&Ơ mw&Pw&L 0D)w&L 0w'h_^w'KGBw'KGw*eӨ:iw+8H aSw.{4Jw/AP(3qAjw?.:f_ +w?(!B(w?(!Bw@d}%8b <wAM p wAM pwC= Ѩ wC?1NwEys wExM wH!]ݹ wHϞM}RwHϞM}SwIdvl \wJZCF wKX(+ g wL/_ -wLD!DwLEU3wOR wOTFUwOսmwQz_&?wQ"٘owQ"٘owQ"٘o^wQ"٘owQ"٘owQ"٘owRh 6wSu<wSuwTQ] @UwTSg ZwTa05wU`akwU,j06?wVfFjwVK{g&+wVK{g&wV9Lc wV)0KwWA sw[4#w\=DAM ,w\onw]>5%i w]Ɓ^KZw] Lw^>׃bsw_pwZ jw_8DLvw_Hd?w_^<`w`aDw`i**~ wa?9wdFB`NwfһDtwgXDwg6!/ wj%L & \wjCtA wk+ 1 wlSxQ|wlyr wlIpwmcULwm wopd_ws;f?wtJM87Pwu+5?$wuSQ{Jwux \wvlp{ $ wvlp{ wv/D;k*wv/D;k wvй wwSbXs ,wxwy[ҰQ/wzXm]wzXm]Z w{awbw{vǙ0w{vǙw{*=F|w|9xK w|*:Xw|jV6w|oF[Cw~7p:w~7pw~7pRwQ$"w^lU+wd3Awkw m \w ^^?w  iw sHw_ wVwnKwjTL/w[у?wbwnobwy +wAgȆwͣ$?XSwT w f" \w f"woS.zwݠ| wυ w& wJFJ{ w% w%w% w% iw% (wu*ZNweuyNNwZ}wB ,wS$L wS$ZwS$Sw*C0w .w: w5K6wIVw1`3wR/sw?}wOfĉb wUSwU w= Fvwb^h ]w$lwQ %wQ iwQj w.ڢ wu.T rwN[cERwf/ ,w Kwq`Cw, Cj! iwP6KK wWj Ew)%_I4 w:N^62 rw/5 w^ [ (w?a wZ:wVBwke wt wj wo/ovweSDweSweSw[ Ģv wEp #wW wt w*B=xE1_?xF[D xF[DDxFzMZvxFzM$VxG܈sxGv/K #xH*z xI?T xIٻ~ xJ&d,&xJ&d,xJ"xKӅI xL<\3 3xL<\3xODuvVxPt2xQ]c3xR xTQ xU \"xV,5W mxWeCǭA xWg1zxXY0xX:xY>-DxYJca?xYI>-HR x[ Qx\r)@Ux\¤.x\j x^ct3tx``U bx`3wpexa|Z^?xa lxb"kZk +xcUxdMrԺxfl xfɁ+xgLuysxhExz O> x{Vw`x{0p|x| +'5x}7jx}f ix~ %x~ %xHנ xJ 3xMaп kxQE6N\xQE6Ox@ tSxG[ +SxIAYx*f 6xNx&d"GFxL$ xL$ RxM 0Tx5l t x@x,4{x,4{ x,4{Kx,4{x9S  lxuz[ xŮ|`x&?` \xp/zxl~} -ycu2 yH% y4Zc9 ywr%[ ;yh\?yJY a yJY9y {{`?yuHz yuHz y{r yhzy o]y%VKy$L[7N%y(÷ y86G:y^tȲmkyIZk y+eu' yLRNyYo^yYo^tyYo^ yȸm6 " yQ&syQ&y5}0y5} y5q%?yR y 2=6y!#jy#|WtUy#5k !11y#[[ $y$;Ry%s y&`{v"N'y*%d!<y*%d!y*%d![ y*JMj y+ f{$ y+ f{$y,@|`Zy- y.n}/By/R4) y/\>]y/Ly0t> y1Cp]y1DJ6S?my1DJ6S a*y1DJ6S y1Ea<y1Ea ( y1Ea y2 n * y2!E y24'y24' ay3ٮ)ay9YϟBy9`0vP y;v5|yyB %yB ]yB yC:xǞY*yCADeyCF=CyCF=CyD. 5ZZyDU6q+yDÂyEfyE며&B (yG7 8*yHH yH6e?yI}\ iyI-K0\yKNN2 6yL;4 ]yLx6ȵ:yM.a yMfU$G syQӴٯi2yQӴٯRyQӴٯyQӴٯhyQӴٯyS5?a?_ySŇJt!yS͗D? yTV yVLЉmt yV K"yWBDjyXM)A9 $ yXM)A9yXTxҵyXTxҵtyXTxҵ yXTxҵkyXܚ! yZC^_E yZԧ\uyZԧ\u yZԧ\u iyZԧ\uYyZԧ\u ey\} y\zEy\j} y]J (_y]py]x y^5#y^5 y_c y`<39jye} lyeD5ך KygIMOғ:ygy7KBNyhu]8:PjyhB'yk BymgQV/yoS=6yon cRypTQ5ypܡ#yqFG#3yqfJ" yr;8:yr% yrT G jytYD nyt%ebytC!E i ytj`>jyuK%N iyvo@jyv;ij67yyafyyrBT y|#y}FVa| y}v6yc<yL yd+}Sky0$yA͹y `'yx߳3 yਆ yƘyn XyHcjy`#$y`#$ys17{ yqB'y, - yqO5 yZ| eyj۳b? iyHS y"_,ĪR yu,?yE5<yLy R y R ydⅾ y}4yDy0a,t yJ"uvy)'R`syC ylS $y՞MD8 y{ l $yK y7 ѣy#y:@AWyXv{y!u* y!u*yG yG ysϦ%ty Soly ynynKy"שR=y߆! yNaZyNaZ zy(;6yce yݫ-"oy1#q Y y> *(yݹ{ y0JyJ ^y"t&YyP}~pmt yTsy%WJ y0:d?ycgyy ­UK $ y؃y| yy5y:| yf! y -ARyQ;2 yU-tyv,NyDK'@ \yd {yM  yM y`/>!yn, yoEYyBfyfRrj y- yP]V  y+r yPy y[y)hY yѻCx0yѻCx0 y2`%yWcgTS yWcgT_ yCe& y %#y nyG yGyK:S5yK:SQy9ŸBy9ŸBy9ŸBRyc1NvFjyqCgky@ݮ{yTa^v+ygbJyɏnhRyg䀅1y *o> *y[ ^ yM[y\nWytek yͱVIR-WRyͱVIR-W@ynK -y΋  y΋ y/|TB yPt?yT6`[yf%_4W yրƄyUGv yUGyؒ yEy:Dmy:Dmy:Dmy(=e`yqh2RyƦe[yϱnh!y" y:rٹy,ay~ yᡸi yYlL y*c]-y*cyCQlb5yCQlb5Uy&`\y@񜢳_ y<vy#Ad y`^SyB2 yB2 yB2Cy2CHyҔzyk)e yk)ytL0ytL0yZ j yQipy RyAV@Ty}B y>tyWL y?@ި ypd Bayn$yvj yvjQyvjy-B?Yy)nF yty2+YyݍCS y0yR !yP_3y{&)j y|ʮ$-4#y7yv,yS qsy= z cNzvxi =zz# z(;m[z=z̾ʪ[zS zlyhGzRVzORz< 8z< z;h/z& zlaJ0zº zº (z Mjcz!9yC z"(*Tz"L! $z"L! ,z"L! 6z"L!sz$j z$V4; z%S*:z&(!z&(!Q z'|9$"z?n7z?bwk4z@zaz@z"z@zzA[=zDA`Mf$zDJi DzD`qfOzEWС0 zEL| zEȤEwzEOn\ azFhb?zFbij zH#t1NCzH?]izI,zJSdTJzK*U zLo?_rL zMY zOn< zO. zQ ֻ;VzzQw6 zSJD7ZRzTI&RNzTYzTYRzT[IQ>c?zU  zVlzX6ٮ (zY5}=)YzYK᭧VN#zYҰ(bz[٧`cp?z]CE<z]lX!q{z_<) z_St4Kz_St4z_St4 z`% z`2{|z`4]ȹRzaw4zb\؉Szct*RzfÄD zg zg zh@%=t zht7SzlHUUW#zn*@Gznj՟czofbu?zoWzq@;: zr vpzs!I3  zsةןPzsةן zsةןzud8%2zum&U zwd^Mjzwfɍzwfɍ zwfɍDzwGmzxﳂzyc~w% zyozyR zy, zzC\ӎzzC\ӎDzzEr #z{[ߗLz{[ߗz}dq z}TAv z}TA z}}o%z~KCl $z~KCl z~0,9 z~~Gz9z):zgɆ oz3.bD zauz9 ]z=ePI 3z=ePIs%z-*Jz7Nz[i5 zAavzN0Lz׺jqr zVu8zKB z ! z !zzQM\$z4zYzY jz5#FZ|zIJ9 zZXzZw zBET ,zBETzZ%6kzZ%6tzYa2zYa2Q zHTvz>Wz2zܧ&rz): zƔ ,zƔ $zƔ ^zƔ szƔ zƔ zE zVEe]zzz?. Ҕbz[X [jz}=$z}=z}=zP+  zt4zEn Q z~v|tzai0gzai0 zu0gрz@@/ aJz$ P z7ozs3%zڲ " zI9[z\UtzU%uVbz 8N zjτ\ hzjτ\ szNxg $ z/zzosz_KrDUz_Kr*z_Krzz}>|zX \Sa zo@C zi / a zi / zu2zE rzzCz|N,zʅJO?zυXzHEVz7A- Q zx6kQzҮNVz|:ߝmz:$H z:$Hz5] z5z>C zl*?zl*zƎ C.zƎ "zƎ z-V Dzs*zȡx( z禚%V]zʸҷPz_Brz.2[Jz.2[3z}h =zm' zXzg zG}U7XztztDztRztK z/cv Uz/cv izv8 zӲjz,႞z,႞$z\D#zHZzO^CGIzO^CGI zO^CGIQz֦5`ev zֳeH] z*(R z9 hzwkB)szIZz=FW,zo/,zۿ#<6zۿ#<6z6/ Kz^G+tzޓ݈zf zܮYz)~e zމ*I{z;_q zd$/zLYz\T] z< z$S+; zL˿E Tzfzձ;jzZٞzC_ z )7Q'z/Pz$.2z38WJNz|?zְ Ͱ;zm1d zdIzETeGz z jz3}&:z'pszG9/ "zhpP m*zhpP +z6_zTkCK zv* XU z]@, z*kyiz>C;tz>C; izbkL,5zbkL,5{ %{vMa {* ʝ {{J{{J{(4hK{&fKH{&f'{xgS-xu r{V/o %{”͟X { g#v{ g# ({ 4; { >&0" { qWð[{gx W{gx {w,{'/t${H {eYӤv {rA)C{j{>?{]OaĘ{*e{FR{F{%Nm {haqN{7?Kk%{[._D{r.v{uB̫Y{h4S#| {Ņ&b2{Ņ&bK {Ņ&b{I)jLL{I)jLe{Qdv{7T {^x>={4eFh{b/ܖ{ lY{R/ {nY {} R?{ @{$iZ{xbn { k׮W3 ({!L7d{!L7dD{"\{SX{%mt{%L4F{%ʍX {(ҁi{)W) {)4#z{)vZ;^{*J ,{, hvt{,Ĵ ,{,Ĵ{,Ĵ ({-uZ8T{-"rv{-"r \{-ƏϰY{-%s{-^HV {.  {.@0{.@0{.@0{.@0Q{.@0{0ީh {2SY j{3""!{3ޭN{4$$,I{4̯dž; {6`w@ {7F:{7zp!@:{9YJ3{9 Q> g{:ҟ8K|{;yRM;{;yRM{<PUb{=t26|{>s6 {A j{A {AEL {BP0L8{eFqh& {el֠{e.*E{gP {gP a{gP {gP {h`_ {h.{iA @D 7{iA @D{j_N{k6_{k{lv{mcYK {n0BXz{oc(Y7{o  {pũU8 c{q. {rH153 {rH153 E{rH153 -{rH153 {rҀu{tp58b {tYґT {t^ /?{tf4} #){tf4} {u5"l:{vwV0|{v^:{wP)I  {wtv {w$J$ {w$J${x,X {y A{yOF.{yT ? {y^ cR{zlB{zy;-{}UT!Y{}UT!Y{~D%{~D{5V'Z {Kfˎ6]{Q) {Q)L{9t#{9ta{%܋7? {%܋7 {*cP$D{c7{{ s {l׽e{f?[{ S{ix˷ {ix˷R{Hp:{ {Tœ {nWX a {ʖj{^H { {Ag \V{Agt{!K {:-~{\ {\ {HZS {nɤ {TN9~{߹eS( ;{3%{ɜJ[? { {F&P{6[{o{Wߝ{F9S5 {o{^5:t{&P#` {&P#`v {{c {*uL{_t=3 {KIj{{ (M{Qmz#SY{Qmz#SLM{Qmz#S{D{D{݄3_6{݄3_ {:{f{i/,x{i/ e{i/ {]aY{6A5;{!.gk{l|Ed{]ɍC {wD: {C{D{d@Y {L}$D{"6 {^dzC{T,hFq {=R{* {b_吘s{>ߞ{E {E {a A ${YR{e4{aB {E ޺{n81;{e , {1?{ t?{HI ${^ zN{C^{C^v{ı|>t{8X {Ȁ04;{pN-{zʹVY{@} +{Rd{nI m {ˍ;{dT{ΐ.P@ {Ε1_ {|iim{Ѿꞩk{a {a i{a {NB(d{n{vDAR{vwO {P:{{ֵS-9  {kPJ{%^ {3;Z2j{n \{hNV {3k,D {^{?BQ{?BQ{'moQ:{`m9{5/2j{wmK{5(#@ a{Q3?{Q3 \{Q3 {Ui$!C{)kt{)kt e{)ktj{)kt {pY{C?!#9 ,9{ &M= i{hHl ({yv{2gu {dO?+{={=9F{[f {7N\{daAv{<{<{.3{>G{qi[^Rs{j) { -U{v#6{)Ǜa{ | Y {>פ{ J{enD -{P6\{f1>8 ${ z {Anj{l^${ ɱ_{8Y {?3{AKWZN |3>[|gb) |I.|j>"|=B>|۞"|2gv|a, z|a, w|a,X|}|t{g&|v{ ? |F'=|F'=d|ԡ| g | <"D d| bR_ S| yy! | pӻ| =D7tn| /=%6!| Bmrqt| h?|/V|NI[C|:l-^|:l- |л i|us% ,|]Kp |]Kp (|è' |y{<|y{<|y{<| }|WV $|Fl:|;eGsp|;eG7|;eG ,||Y|> |\]< |\]<Z||W;u|a6 |)P!|9|"t?, |$5$w |%Fk|'R'#u &|'-p|([|)K!|+ggˑ|,!(R|,;= |-1g|-D-1|-v* |-v* |/[lB h|/7a|0lCg|1,?|3  |5#r|5_o|5sR|5. s|6hH7it|8ۗ.B|9.W S||93B | |9M(p |9T_*(|9o,|:j|;C%s|<߽^0I |<߾,n_|>&}^2|> kL|?+x?|?v|Pz<>v?|Qd;lQf|RqI0|STn! |S"ψ9|TK FUI|TO|Trp?|UrD|Ufϯ|VxY c|W9fM}|W2 |W2 ,|W2 |Wb[ |W=d |WS/R |X:~?Y|Yndž7 |Y o" |Y99롬ws|[7vZk|[Q $|\%i~ |]y!6Q|^jkɈF|^jkɈ|^jkɈ|_(;^|_Q n. e|`l텽|a<&_\|a7"q|b\|tW|byj|byt|b d|cI!3|cy$|@cR|e>=pC|f,0|f  |gLy "|hv00?|i~|3 l|j#ʾXl \|kcۤX! |l $k|mWlW|mpX |p C||ptq #|ptq |qEH޳Z8|r#{lZq t|sSR :|uƱ |v)2k|v)2k|vLqj]j |v`ޖ/ |zOtb|zOt |zOt|z#-(|z#-|} |~p|[|)y|*@S c|Jk |[BV[|0et|0{t:|0{t: |y R*|y  |8`&OR|#K M |Jv |N ||V s|G ]|_EL|Q\Kd}|Q\Kd}|92j|uz}|4.8P |{B#|{B#`|~d^||F%sӜ|mj|hS|I|gNG%|z;g?|=z.<|ߴgK|ߴgd |x2# |e4kB|sT?|sTRw|Rixr|Q;CE |FS"L |ݻ*= |`IVJ | "Yu | "YuQ|w|6A_|4f]R|S^fr r|UNjv|.|.K|.|.|.R|_ժ |Yh~|f7S|f7S|f7S|f7SR|T|4A3\ |?il|@Oh |26|}Z ||fYׂTC|~%# 5 |aK*/ U|aK*/ e |ï`A~o|ï`A~o|LN|ĸa|Ū3Բ|A |2 (6|24|2 |2 i|2|@tͻ| |]|Y |ݜ}I?|,@FZ |C 8i \|̝d |RZfY@ |͇Q ?]|rS*|0N?|(%|<TI'|B'[|J&|P $|eپ֣ |[x |]%Ut|׊$/D |Nq |4nR|ډo- |ډo- |ܬb1 c|㖱i?-|ݏd1G ,P|ݏd1G |ݏd1G $|ߚ|>k |<N|㠝N a|㠝Nh |!5R|[3hS|F$O|F$?|F$ |b (uL|鼥 ʔ |ԘN$ #|!|?|62+|,6 Y (|xeC{ |*$* #|*$* ]|+`H|\i|\i|\i|  2|B0-|B0- |B0-e|rN1K |x.Rr[|Rj|Rs|ʮjL| |lo| S |O\R|O\j|O\$|= |ry`: |Aq,I|Aq,|3/DS|,\B |\(|'R`= |z/ȍD|*D j |V^LK $|V^LK ,|% | _ |-|t|-|k|-||f>?|osQ]|osW|os?|-f }fO@}HҴI8}.} \};Q3}D*};?}; }(z*b}(z*b (}(z*bj}4 7}4 7}J9]}}d> }mE}?Q}4X}f, } L} Ղ|0i } +*X} S?} 3d} l \} |}nBy$}~Rw-}e}DM[_L}| }> }Ѯv }S;)R }O;&l}AP}A}cZ3G}Z2J]}Tw a}(~S } Ƨ}2_}o^ \ }o}ZF }ZF#}Y1} nzs } nz }!die}" y}ֳ }#; }#;|}#;9}# <R)}$n̴?}$c!}$Vk}$V}&jڻ-}'1H?`u })oЫ})oЫQ })uUYs e})uUYs })F})g }+2TS}-$Qs}- "}-r;t}-\о K}-0#|}/e ^}/V i}/׸V}1z#W]}1|xөu}2?1}3v@ A}7; DB }8Z}#}9ʠ)}9qWt}:[3I  } }lt?}}m?_ -}mߖt}mߖt}nH15 }nH15 $}n&_ = }n* a}o[ڃ"ut m}q~SmS}qA*(S}riB9 }s)7Z}sR?ΐ}t,[߂x .}tE^ }wOjR}wOjs}xOں N/}yվG  }y[r= }{2aN`b}{h$ }{[}}!*"\ }~Yt }ޒ]$}ޒ]K }X҆;&S}X҆;&}2n'dj }7 {SJ9 }HobR} >8 } >8&} >8}S}L} W!R[})7z1O|}h } ?La }ꭖ }Dh10}z׺7 i}}HxF:6 }a)}>l}֙+ &}oL$-}+c }# }) K}8F~ob}ş.z:}};4n&"}" },֧w }7 Y}u- wK}u- w}W\ }a97?s}:@ek[}x }0-Q}0-}:{=V}hkxr}hkx }2$%a}Z'}tJ.}֌Q?}[PB }KV= }#HmM e }d=kA[}L}emH}h(U }?^8 }.^v};j};}L<iK}[.̬ } }P $(} ,bd}2}2 c}J-F 5}@^P+ }ET?}d=ٝ}M^xW }Oz# }LdD}1}qz}qz .}$qk }Ei^j }Ei^ (}Ң+a}E }!gt i}F>}㣧?}Pnl s }Pnl a}ñ;<}ü+z2d}ÿ;_}y(\)}ņa?}J] }v5c:y g}v5c:yY} p]}B͹#Q} }}Z}W:N}$s0}8ې }~ z& }"ig }gzR}k}3mIF}[tw})$kq}u{T }לw& };(! \ }c-ږ}c-ږ}7.}k*Wn>d}uPB}*^UлD}3}}Z1y }@ }c -} J-!}W8S}\y`i}&e~(~ 8Ga~I@ ~I@~8&/?~#2mS~#2mS~#2mS~A-. (~JoLbR4~do&Hj~r; >~]v~&ʼn~_se~pyHU ~ ҳ ~ K#~ K#~ y~ 2"T$ ~ wwT ~P/B ~XEa;~}'~a (~+5~Hfs=O ~mǗ )~yiT.]l~$~\m ~r~}HDD'~(*'~~j~ p~ p ,~!^7 ~!^7 ~!f9J ~"? ~"D`JU ~$?y0~$q@~_ ~%UN~5P~&k~'}H ~'fX K ~(?] \%~(TVNe m~)c ! ~)~. ~*f i~*f~* ~+i>_~-|b~-p!* $~.$6 ~.;rGǗ~/ޏ~/r;JfPQ~/z (~1$E ~1d4~1ݘ{@P~2ʽ~3` o$~5wX ~5ݼo` ~5+BY ~7TYa$~8Í)~8Í)N~8/pK~9#~9!J ~9=@K|t ~9=@K| (~;N86[| ~;S"~;m~;/;~;Xu\ ~=P D~=ɶ$~=-[ ~=-[ ~>-~>-~?^^>~BA'Z` ~DYB|Q~Ey()R a ~F>_ ~II~II ~JdƬIh ~JdƬI~J5%O~Jڦ/;K ~Mjt ~NZR+~N` ?~Ocv v~Ocv ~O`I b~OOT_~OOT_ ~PVėMe ~Q=ǚ-!~Q=ǚ-$~R6 ~S'Џ l ~T 6l-~T" ~UEg9~UEg ~U<;5h (~W4*j~XFx4ņ~Xدq ~Y{HX ~Z}R~Z: 7s~[~ BS~\ol#~\ol#R~]y'Nk~_۴~`;"~`;" ~`A,$~`\5;L~aq$Wa QP~c1dÅ i~c5Y(b~d: ~di~d?.^Q~ebF~e1A~ga% ~gɅ D~gɅ D ~hk R*~hx~hx~i qy| ~jGo' ~jU^|~j8mk~k B{8R~n+o:C-~n+o:C~q/u!Y?|~q/u!Y?w~q/u!Y?M~q/u!Y? ~q/u!Y? ~qMǮ'> ~rK24~s7>ggI # ~uM@9ٚ ~uM@9ٚ? ~uRA~w-7 :~w_8 ~x]W*~y#>xw̧N~yǵ,z~|=X, ~|Y_~}{~ $ ~LgS[~WlI~ ~ZC|~`~k\~#h7V'~ʑb4~S[OM~dF\~E;+6N~wu$~ҫFZ -~?pd ~E݊o~E݊1~E݊)~xfd ~<{~ # ~7"J j ~[BB ~ ~ ™H ~Cq ~tsՊY~QmK ~/? ~+CV~tm~*<]~? ~? ~n~?~'n ~! b $ ~z;",~ z\~+T "~WM| ~9j~DaS~RPj-~H1ҏF ~%iٗ~Hb ~Pa c"~)֙e~ ~ j~fsK~fs ~fs ~3%~">% ~hX~It -~[C~g@|~g@C~`|I7 #r~j0 ~QN(Ŝ ~1K~V~V ~~L~ ~ǧ6V~S  ~;U ~9+[~\udrR~\udr ~\udr?~ߌ ~ߌ~48Mt`~48M ~g[[~𥽇NR~: % ~"R ~)BRrV| ~h!~L~; ~XNՄ ~|c(h~Uߨ(~Uߨ(~i'T%~RC.~ŶrE ~< |~Ñ1 ~ŹW~ŹW a~L:={~{1~.w#t ~NAd>tB~c8h^ ~ˎs0~˚(I~˩>HQd~(~3aL~VOdF ~r6=R~r6=~͊^~͏G0X i~K( a~6RP#~ϙlQ^~yӳ~yӳ~Ѫ6' ~ѸIgl~wPj~wP ~wP ~wP?~Ԥn~3~3$~-ڊ_ ~ع\{~k&G#~ـ%|F6 ;~ـ%|F6D ~ ^<?-~ ^<s~ ^< (~~oh/Y~oh/ ~۬_)PuN ~͜/ ~RQ+~ޕψQn;~7\S ~$~1P~9V8~9VQ ~9V~%2~%2 ~6Fj6o ~RM ~r ~r D%~r ~hx ~ӭFlR ~֫ ~v=~s_j~~ʓ3He ~By?~p;@ / ~8YH(u 4q6q6%MN`}k؜ u m{L1S=mp 01S=mp 1.K^2U%rv3yFU$zY3 4&8L 4I/0h5/n86XST 6nNx7K@W 8fx | 8xk\ 8በK8t=1 :C JX;+h& =K) $=_ődU=]>7??kU_?kU_ @m~@B:AR4 Aĩܟ @ BS*FLDY?jDDY:!D EH E0sF{H $FguGlE 8 GlE 8 G-ӧ Ho7 LOY Okt9O O js O+Q ̕2 R4+R(tjVI_4V["VYW' ~Wu;uW.l} "X(OzZbZbZbZGpaj1r _ rǙA3 \sBH uzV_ w`)/xz5oAyE^yD ^yn]y? zgG0 . zk{d}Gk {j13{V| {TnI }n? ((?hx6=ߩ]O" YbBKi] Z+w+a~, |N"f^ (;ōU @$m :??U LzP^ R  l!J; ` + ; ` ,"U "Us"U (]B  "7CSK&ŀ<: }^jPφW+ PφW+jڒ!~ Y bX4Jax/L eQ[ 9P5PPPK=8x cnV Q YO (5n`_f  "8 LHfRa>8\㰈4 C C ^C \r4:U[Ft IPdqviDʞl&q10X{Wuٌ "c. ]pdl vTzvTzk43sgi.W f"^ S1(o*(o*+J +q?   8,Ad5Ä å ,c \d5Nƌ8CjT+ʃYOʚ$N:2r k˸<]X6X6KΘVs؛AZΘVs؛AΘVs؛Aad`D:d`D:Y к+a h.W(;kw^{ g0Ƽ o$C C 1K). ؝CUGBq<1N7 ip8=` p8=`Qp8=`g;T7C!@/KzP YՉs%CAx0ǦdDw>- H>6p͸hݪ퐱%M $Y .ްm+9Sްm+9߻l6 l-K I֮I֮ $=7#9.K [/TZFuʐ NxNjw) jPOvL POvPOvS!zꣻVꣻV#ꣻV$jy\[ ^}l:}l: " (qi ҕt:f,1j2{FQ':ELYv (򮩍|^j98^j9t -Ή]?[jL gvQ $&T˫9^0A5R|:PyZ#1N )7x $)##)##)##0,EyC7 Џu Џu iЏu ,ЏujЏu NG* )piR ?. h2] h2] k qc ȃ[ O j kb翽  V'r raM raM Zd}['NwNwE W]'S nL:PS-Z#W2 Q)|  6>L yI.s"V"ܦj e"ܦj"Dt##4b$% $[$Yh){R$Yh){$Yh){%˰ %b{? &"R֭ˤY&"R֭ˤ&|Yw'-Vz )! s)!t*i Aa+h*M0,[,YML,[,YML-,bf,bfD,bf02T 042UP? 1ӕ8 2 I3s4jY74jY74jY7Z5zX6'B  7l| 9U_N^9yv :${;m ;m ;2֤ʡ;x <_X U@ h A쎆A/N AE˘R CnHL l DMOE E(YE BF8, F*ؑ! IAz[ IJ Io .'KZ KZL-xLWE{݈ MAu'Qлcf S~S98BS98BS98BQS98BDBS98B&S98BS98BS98BTwTc{ h Tr("{1DU)cUȿ1P WoQ[W={*9WRC WLÖ YR&QUYQrw[Yc#YcYcYr4WdY?w?Z>3bZ޵p`9Z޵p`9Z޵p`9Zd?Zdj[T: #\ Dx #]m6[]p?^?_ڛv_ߔ1 _駲2e`0/\٦aDKa> % `4b|`Db|`DRbe"NbUbQZ"c-{ mcl.tdz'nG .e<e<e<]fLfgVgr sgmڗg$dqh.~]^"hEd h+m&1hĈ iWYjj_}9jekt}t%#k s=l\ 9nְnְnְnְknְnְ mo=6CHNp˱ $pcFtlqSlq]Uqqi?Qk q^nr }mWs&# s  s'&E%s'&E%>s݉YsC:RtG? vCLKvt iw96Py gz y gzy gzLyI;yI;z_ m%{G  |QЀ:}V[8F*~;+ۗT~;+ۗT~p ~ Rf /ʵ - GC %X%Y%X%tH{Yrx]Z8Zr"  | x U-p,:lwpC+Chal toBQ oBQ }v*Σ6rI loKs]eˁRd]eˁR N]5/?loLԛq sRSO i=# { -ך cֲ|e( e(j$RSߧ* ;kK?] 1 Ns "S "R ٳ*U ٳ*Uٳ*U m m (t c !f CGC 5M5R Z )1# 2y' S+FݩYpݣ`{?C;hI ~f|?OiphS]2j$ ' ./+u (J ☋ݔN,kC&ˌ=2kLH a 3 3DA 4O}4"C i>lrSi>lrsFǼgm gmCjC ,a ,aF&sl [ _r^D #NX j$/K%B (%PU%JٳNCHp7CxcEElY,=E֩si Gs G@L H3 IweHeJ ,LJ!YN )D P x"LP4L?Pl#,Qw 9R($sRO TS VO{2VO{2kVĨ/A V8W&0t`YQ ! Z Fm\bZ  ]%kv ^En7t`c ja_=U|!D a_=U|! a~ybID c/E #cǗ0eWGyf_rgc +ix jY_l$M jbі kdKl_ l? $ lV5ݥm "R!m_E oH pG`Gq6m+sUs-b* tvt .6tvt . tvt .ftvt .tvt . + t9ĩ u (lu (l w Xw_GD w_GDwצ'oswצ'o ,xuMQSxuMQxQ/} zh=]zURzUzўkoT|3}a'F}#d }^ {~SDρ~^8*tڍXˉbC$ F Ž 0KHJkY{Ke;q z9P3t'M e C[YG_ω -9 ajU ajU ajUc7 LRqp NA/jo=^ a? 5%0_8x 1IT O<O<R/ PKs42齜? c߾saO'gv|P.B (uFfIx,,%\ (_,W#I54N54_Z"N$ tQ eV2ձ V2ձںI$}K+$HV ǚkr[Y++5 R;]R;R;k;#+##үiA g qA}B,@@mc-eٮ R]K-* P%P%/Y0eER !ղRK-y3fRIUn w?ٙ3[ A A ,³V\CE'pSSxQ"Y5Vl[ЉGց:w -M9qֵ A)˫J9_Ýp+>!Q<ĝR)?4jĝR)?4tĝR)?4 ( NVc Z/ۄUܫ| a(`qQ:Cji%&1.aOɍ(U (ɏuD1bBH #<#N퐵079075Vm3?hd*MVΡJE ,wJA As Жm. - %T Q}:Ӡ¿ݡ,7 R+c1= ( i; i; qMvwaqL]BR?Rڭ@l ( 3 {  ݼkƴzI0=:cDH4g{L{ՙu) ,U3:Z5lRBjuye.qKCZ$RU G7ۊ aSK aw64 =ϳk[$s3f )ǂTfQv9+(`Gw Jʫ:(M Uh\aćZ&taćZ& a wX| 썤[dPg n8R VwYIӆ=?E T`n8o? !K,= !K,=D'= ( |"|"2 e +n  \ +n cs dVF jkO.ݥ*ѭ (s7 @"Gry(dtI?i 4\rpD  b HQD EY (> RRe  \S[5 х%0  s.+K s.+S s.+L ȽC i' ȽC  i L>`?B'v?Tmh7:) h7:) g ԝ him W1?b, YsrWXG ,qrW;A.G ,Bjd_D^|0bE^yU 8fn'l  i ŀ\ HY:0K =^A J\ i sETm # Y$@D W MRc W M W M |"GQ۱ "vI?{L"hU"gj-"gj #{Q$y.$ܪ%Q% %R %d ((Dx\"((Dx\ (_]Y (f|ld(c<9XS(RaR4f)q|*,Di!*H\p(s*kd+Yu, n,s-98S-WԢ([-~Ds-~Ds-q< Y2sV5*6?(Y 7$sR80Z{3k80Z{3b 80Z{39AP9CLF;O'9 >;O'9 ;w6<2uD <2uH߼ >H߼ >H߼j >H߼R > d>@m&?:,r??(0b @2 AdF@RAO% rBۧOCP0S}8#D]37pEDrG ENbF7yS GC*oK3 GC*oK3GC*oK3G87LGǁ=GǁIb,ᐔV IgoJ'' ;J[sDLKB \AKl…7vMdMdMhv a N"%o> N4,o -ON1zR P!gzoYPjR9&?RmS.N  U?N B,V s*;l VI ŎVxQ:Z􋰯vZ÷TNZ÷T\0G5R]d׆=2S]d׆=2]pң ^YR_="IK_="I_="I`f-QaKv@" b$o[bbf4gdqimoRiDH \.kA lSCtlSC: m'o]3 9ms\Bpib&p*#~ qJY q7RW"Nr~&#>~gVaa 8R' 52q g!s ;({Ӵ T[?5]\ $##Է!i% AA@!MN ""%)""S ^܀. k }@ǒ}=}@ǒ}[ ll۳2ƻz ƻzbƻzjƻz $\ѧj " z &)8Wa懚{kۥ Lϛؿϛؿv2&8RƸ2L M9[? QcΛh y:Tߠ ? /j dJNo`Z>o` F!ERTjM s17{ Ǡq # 6@*E_EywmSK!R*NcMNBs rP ; rP =_`Sm.5t,ߦ&p ˜ +R7#2,HZsv],SÐ݇dWê3LO"Yê3LO"YLCê3LO"YS@1X 1X " /L|nR?lDm^z N i \Lj9 I >̤0ȸߵXke{Vnm 10 tyӠu̦}[bSK6 eۻiBS\ nV" #onkgK lsyWayt,1 J|~3R|-R L| ҡ 2Kodۡ&u #lQ IHYՂ ?!]" ֺ}>ֺ}>R*vED ; ~ eQ/{->@ ږ蝵B s~[!Ti -M#T$| 1K ]&i cglRglȢ N"E?63 - u>c 0zP%R Tuu t e =NMζ ^ q k_W? ^'Y3C &n6)+S6 !+S6 +S6 $ GQ%;Q 4_SlR-K&q e(MF?1H7[C]8J-8J8JUtUDe SP5_ڏC[3x l @Os@Os}@Os0 |{bGKm&N"4=_%2y>j%J %J)g|Z%WB1xc \ r2a T a T U$ ຩC $ dre?XX X X ,X jX%#xD  cpj6aj6D#W?]>euR+h8hv hvby} aby} $AJK l3 t W=a_g FL3ZoEd eoEd vf R  $@ɸV?fޥ6-!}& a!Ț"w| #Ap$dn]%x=ޞ:%x=ޞ%x=ޞ g%n.%F[! %F[!%F[! ,%F[! (%F[! &J./ &Pe|C 7&Pe|C i&Pe|C ((4iR)x )Z i )x )Z *T6*i+;+;?+Fձ /)l\b/C}r s(0 0`GT028p! 1{ 2|^E 2B_># a2B_># ^2# 4~fA4~fAt5y/ Jt6o'7S 8Π:~oX;a^M} Qm?QÚS?^be*@XOJS BhPB}6ߐ%C5l2dC5l2C<֡E!t, mF^QGWX@GWX@ tbGWX@QGWX@ OGWX@Hp? HH\RJ;dB J vJfH/JfH/ KNy L 1?L䎫@RLr{M[ jN'n>ϯ \NXLNBY[ mS K S  TiGU8F}UK VK^O# VW^ [ eWW eW W XGUXGUXGUYXGU?Z9MmsZqQ<RZBޤ ZaG[s\t2z@-_ ]Mh `H amamab4LYab4b'Yb\b\ md0 $dpcei}.eZ fR6/K2fR6/KfW#kg6kqhkTi~ɶNj? jRf"I kTdo#k]Z?m J \m8{j nF *nQt" nT\gnDLo ;_o^3a.o^3a. pDfq pDfq p1/Jq{LA q Hron s|"&z^4t<۴'[tG)4t_? u 8dS  u 8dSuy/8 v!,vwC@,x.7i{x2_ݼ' ey*dy,yM) ( zMj zMj $z0+z0+j{P)Kk{J#g;||9cf |g[R} >~* 3`~* 35~< yh&N r<&N r e6[KA mbR0 JX| c&XJ'(mR54fk54fs_QH 0NbU Ml6خ , 7*9]1ߩ/3 is  < L<YsD1 Et-v?(M: j z$ xR7z$ x3A/H? To , , Bdjn .n4)َk|h#)O9 ;f? Zqt ]#" ZnZnf,f,-gf,. jίES#RL-KfYge j=V̵I !A S $g99R;R ?9Y kJ y)%0y)%0'9OV#Hxj%5 |\h.`|$]f@Ok ]|$2Hd{,dZRv9 # "D,MD' ' 7O x Qx 1=1=:;] HO 3)LB7Q#- |a> ݔ{ ݔ 3 ;v| Ÿա;?-v*S. Kv2Y 25+;-4?kP\åbq  ǃP >l t N?L`:>3ΡE#O ,Ϧ4-C tlMvf\-Ō1b~YyOp sv0A v0A v0A v0A M[ $w e|#>6#>6 #>6#>6|x& u (}L  S/M 祰?  ZFw໩{K =@>Br g ~D[KC Yc1?6* # T0> $ 噹91A噹91A JPEOP O1~R ʕ׮ ꏲ'O⃾sY O⃾s;w^ ;w^yZYUu;)Y Fs 娼ev娼ej娼e  ,s , -B *XvbisO6]1wubz~tlHf;su5|!˔<Z}U;t*LC; 7?y5 06w06wRC ""ؚʿ (v^;; 6g$ 6g$K 6g$ 6S  lz5  Qe E,R Xg} H =H) ׬ D  D'*GW S<#f_Y`oN 8\  8\ =CAY!(% r!tC!GNz!}!gj?"O7O3T ("O7O3T?#!2~S$ RS$pr &a '{02'}M(u*Bё$ *Cl - /YdX /΢/ΙCm /M| 1NR!1ZY 3)64lj\5 6{C =6~ 6|؝ 99EDSD:.,:,3;h K ;h K<՞^S<՞^<7T0=<7T0=?ԉ"x-?y@uDE#B2aE!c< ECf?GpPsdG|=# Gx@dGGx@<Gx@ JJԙBFJԙBFK fvM`ٰN7$NY_ Nv:~|@? QrN0_l~VS4#m !6T-hju3hju3D iWkZ j-r i j FDulNmamQ43o.oNKo.oN oxcX p}" +plWq*|t:qrϱ-ss&TtR)bu,du>?v`Hvw+4TayQRyl~UyS yS yEdSqz業*j|(z業*j |{.o |̨\MH~cf ~gd=~p|Ւ|򉢔A||򉢔A*o(W %eHkK,Trd 5#>K Z]ht]M%:c[QYѓs QYѓLa ="؟E`&?}& NNe] `n8rՍ[; #;s ; i; s\PME A.Y U s * F?%I&vbMx  h h ^i"[tS_1{ i]9T@$ Bo^d ҴMp O.D O. %PD%PQ%P%P%Pp̗ ml[JJpKm0Rg $ l_%t -PO' *Z1sq+>c=a?@]3O |$?"<7:"<72vK?o\a DRheXjSgp _W3K ayL6'k!/C >YU)bYU)b `j7qZ^=mBG:QK $:QK ;)x iĂ .ĐjIY@-6Oz0z0sp̪s+A s+A $ W} :esLQx˂} 303QR jjS{xs5S{xhϯUW"֖5K#֖5Q w8ZfL cхs*|ђ%w^ j xSJbh j%Ӵe&4Ӵe&4 $\G} n[DRm (Tn[DRm ȅ6:TK-TK-jݥ LC  ;  ;b RO  ܠ{QmAckT'f 'fTH_aOH_a 50 KS#UNyjNy921 oiۖ^$U  ,‡Fp O? RvI +_l f(1"183%rs}DDrs}D +InMYIp1 %?~? N9O|/iiRK I=S=S=SBΣb] 3 ^  ܤZc!2? Fd$]!SrOYkxO}+7`)v ]J58oT2s+T2 b_.` 6Ś+4IKq kV"kVk\W,,?vt!tB ]?%_ +kMN  rIa+a2&52&55q j THK m ZJC - I -  x_v $Q, ľrsw ٪ ٪ a]a~ Ӏ|˷ Ӏ|˷|1 pX5YSx `F  cD | ( 4 5UeXdY-zھ+IiELns+],wfTnNg*Rl1)L![/ (|:cւ|VB+z j\& םY ( 2p!+(R!f,b%; &? ( '^ \ (<ʣ._)+^A? ,e?-0 4:e-17.;yC*0.%1o#/ojuw /~ ehL /N 3Q /q/qd/qR0c( #2(#t2l]#N2l]#2흑=b3>S4 -4\omԜ 4P"]5b:5a(6I|76lpDxr 7쐾R83ǭ8RG i9zDj :>$ \:>$:?) $;Qo;Qo;eԋ <۶zR<S=h?R>:|?9 6[N ?^$ ?^$??Iv@hIgca AbYAVpdA= QDqt ErM: EmQXK ^LEmQXK|Ft7sGxtt$$GYv@N*IfQdRIq$eȗIq$eȗJ |J |Jr0kJq^&|KJq^&|jL<O9LINjMxO M_+ ,NH4_ Nڂ7ZR4Nڂ7ZQ NWǏX OUyzO4Ƞ<ߨP#UP%U-B9W4u9 XRvXǓZj U Zj U #]n|Q^W` ^TaH_IP3[ ]`^{} a앺bzU Hc8 ΅z5d1 e3: -eE~>b eE~>beR e|cYe|cf>߄gwx~uv h-|Li!Gyt i]I8 ) j .{nljag jj~R!U jMɳkxj- ,kxj- kY">kr6kJpĵ ,mP_|L nfnfQoNoS3L3[pa /N pa / pf4XrEsw c s+vin`s^vVujw#MwOE ,x%WC0RyHg0 2ygNGzOp z-Q{R2|C\iB~%0`tr?zs'sھdsھd $ھd t*ꑞD3jlB E7?Ƴ^_[QPı)[EY~w eQΧ  RL y3M ˿w #< \n .x.&w1v0=hL WW; :|T%(u Mu1]/VKE \hY7QZKkcOZe cOZe* c #qэ R#Qλh&R#Qλ |; 4ʫ# 2R/?yE|xPD FBCħgFVQJ^ٿu??j@2 @24QR|4QR|dk} k}Yj: j: ?j: 5_p)u fw?/ 6U?/ 6r7^rKf%=3M? #y |RD?(/B[[$&"#DӅ b ZzQHm ;QQ$ Q6y#° [ }3UۅRPۅRJkY! "G $ "GQ);ʼn کz" sprLJa$Ve)(Ve)jVe)se % <pO~  m Ci{~ )GgDSˆ-Sˆ- Sˆ-siSˆ- iSˆ-j.x&IWFŠCA>{ t=R 6%B` Ə2C<{Dž#e6:5 %̴0lpM  v7* @7y%89R; ; a;/#[Cy/#[QՇ%-ʉM( cʉM( U8b$$8& צ147}ꈞeK7}ꈞed 7}ꈞe}a+;].E \hbyj Z ܖX/W ^K/R~si  Q &6` E/6: yV\ ㈕IQ@79"Od+ ^z_ `7Y#V  \q>EBIK^uxfѶ L Z ,F?}F?|wVwM b iQH z%;jk?/%;jk %;jk ,8 qP=8f-ZL #ZL1 (f fVשn D]?{18 Rn:s!'Ys!'XF'x5Vje-] hunhunpb~0,*g,0$ -CRs .̠ )]/b2sLS2.}|4!beav456h&4O2[$4+(s4ƚj4ÓR5ăV5d[ 8"Uz 8ӈ 88ӈ s8MUj; ;߇`t( s4y;S?A i@?@ B3ܫC>M CI FA; +>GZOc]0Hצ{I0 LD'JI0 LD'I*?J UKzK`NLhTL7DŽ (L|.bM\ֲ=M#6tMB- gMB- g M`ox ,N hOZ2kQ QHB%/RsԁV71$RJ9]SH j?zTlIqTlIL1TlISTt,T8ycTc*YUFc\ U۰cX$y94YSޏ YSޏYSޏ [C/l S[PNae[PNa[ՁM \.ZAU\cU vc(]]((K$m 41Z%}qr]+؞S4Y{oF6AT+%iH-|ON 0ib0ibQ0ib0ib0ibaf~܀k f~܀^w j $ ^>9As 0§j0§0§ C^SC^SC^S&Bj&Bm  Td@ = , =h,  ?z_Uvq_UvbyS딧 8wL ]s0 BFc8 )G&ۃʿ4HsFTZQ.=R vbvkv yb - Ra* ^$ )⭅YiR| a$'$ Z' tc5) Z"  CAj p; E-P VFNfbU^G >d4|d a:9-f &dAN :5F)5 *?(C W *jf5@hn>5Mwjj&45?Cd7i \j7e8{Z9(k=9Zs 9`'d :yӿ;_9m# ~DK>h >h ?sujAGE%j AW!y( CϏ=fCϏ=fCɘ6FNqG F]FG Yם $ G Yם aGd!Q IGOt_IMpGCIIpX + JX4Qo: LD䉗PLD䉗M{}#PX Nh0OrTP,PdÏZ'PQI? R`#Q SL\tSuA>)KSuA>)T&N&<[Z؇ c1 - -? , , *IseHyD TQR3TQ =H-% '@ z'@? B poU_GsoU_G ?%9 3c./Cje* ƅ; 46 ˳yZX aMjaM aM?aM }Jj yY 8j14\T+] Ev;#=ִ-l e2mhyxo.hyxo L^\Uv `Dv!Y?[]QR?fKɤ~[~vo?GS $0 < U %[ kּڵ^v՝!%4[1$ St`p .`@MyH[tv5G2 \Ӏ.\Ӏ.RR>*]eu' 1|Z 28Jk WrILBwf ąiWN śv2 jtfꟹ̻q'6 ήή-C?PЇ5cM3Ї5cM ҆>=SVԋdk߅q E4!m E6NYO 8ٿoAss Ass ULĮ s f kP@6: )i ڭ&!9ڭ&!9k"z:.]k"z:. ے)g i$'ܢ`?%cjX( DP2'P2kP2 I]2I]2I]2?Q^f'N kv7%( 8 ;%Y i%~$HA $c.f܃?K~jR]tK=c|`CV3IN jv(z#g4^F{聆>fE}fb1qUofmsGjV 4I? jV 4I Ś/j*W[ea c < ' g+8C} c6? \<]4 +rV&= kƓ(X*21 ̑R R6z1[,r #(,r 2` /;y5kDXՠ aDXՠ $2t%'#$# =][-WL }QE *BbB+)_P )_P1T?1T #)Cl #\ogM m!Hӄ{ *"xS o 1 o 1 T ) }K7 } } }* } I  @&  DZb r wB CgwTJ\6[(N7\ kmz km 3(?_pns-Ptyp'WOj HPOK2M}й( TCZ :QzK \D*kWKdμeoD!,*vsMi6 WO!h (&#l.1 #l.1 i# @$N;>Y$N;>D$hۢtM $xy"($El? %&e%{R]A#&Vׅ4 '87/'(}-(:x (@TN)@[xڅ *sU=t *sU=k+Rvo6k+xum ,$,Yr -Ӻ /|ur?1/92sca3.]k 6"<"5s6"<"58upb857 - 8sXe :U؂f!;  f;  f;xzx;=B> >k݀՟; >{o0 ? 2jd?鈆:*B3h2 B3h2] DeaEu-G/کDHrMjO K/#U- gNP)N#tLNP)N#hP*5 Ph%5fSQk98{^ S}T DdZ TX4/4Uw KU~Lt% 0Xf]t!X2P X2P Yۻ5%t YA&2 YV8 YV8[ TD[cE\\fӯX \{Db\F~( \* \* ]ghY ]gh ^DMJWb_m$`_ZYQ`_ZY`|a,*bDcVKd]WkQ #d~Ikd~Ikd~IkeTCP2 e#eKI{fQ4tO g  g9PNj thg3 ,|hAP c jمPLjمPLDj+ѼmĮLn8O]oPQ[{$ pJٙKp[rr,՟)r21^Nt ™u nwG0w~w# L(xoey,Vx y=9Ts{w45nJ(|DT  |DT }$y\}> $~]ͬ7~ů¥ cSeq\ΏoR 7pY SoHh ԏ1E?ʖ= w?gޔTQu $i> \ϐQ lNP`vɞ;<񧴅NZ}m (- UcDsWD8D84smdXbDRcG Os_" jͽb A!>A!> ,S &] x5'x/j<a*zU`~8# oo o Ϟi/U -i x<#u5v4nSIy?!~a tm@q9m@q:غCw Yiw t6_'vK'v'v/\p!-C,fʩ>d9no9no 9no TŦ [9)@~yrޅK'SJU ieY3F3&sAR[sAR[ {Rc y %m%m%mDPj\\EQ??qE/ ?b.dD' e jjk0jjk :Z6$ BB"+j BB"+k { ''>ަ8M cz yoCjwlP wlP wlP wlP ,E& E& Hs~LJu> ˯h 8pHD[xyrK dK K aK K R· Є, m c8;d $%ѓg;SdSQ dSQ Fkb^ :m $ :m{$z ( ` EL#3^ . /| KmV ZYD *_ ]ӲI *1  mJ1zt%J1z a _*X3?'G<26fUtU}jY7 Ux`Ux` AjJI[bEޭ_EN)9 _ ,<!%j 5xCh  EC Pk Pt Vr'  Vr' R*  ^C,] h^9^D k}p ry,_ V/) V/QPB?)PB?|PB?4 4Aq">]|kb^: K2JAo g.z /"G /"G|/"G ]WҰ k!\}"ji&֕_:„X>:6m[ڹMWf  ͉4  ͉4 ! *R ! *R "pc %"+r]&dl'JU 'K5l10'Zu((r˹>(~w )])GVt)m]t_)m]j )m]s *v v +u*R+L[RGC++L[RGd#+L[RGR -?v .[.eg]K./[ D01sl|1HZ 1HZ13 (8Z Af ,8هa98S>5n>5n>5nK>1 ?WϙR ?;y:?R @9!e@)`Ac m C) C^;sC) C^; DV 4 E:6CGWG Kc Ib|T Is:DIs:Is:#JJn #KP-v N-oNNQvaDOtT5Ez OX% , PGuQf_SxW Qzl҉!Rz[Z)R"S"5~S`7S`C'S` S`S`S`y;VUTYY[Vd'Ф \V<VWrr' \ Wrr' YCOY~ѥu Y~ѥu ["6 k[=qhof\FlEk \FlEk\|sk hN]=]R%K],+ ^ "4j`RaebX$e  cèC} [cFv^e2,1$eF gն h,NL2h.:=$h'j1էjy6khĤzm] 5Oo=bD ozomj pU'pX>0r3䣾! sؐw ur?q vAF B xbH {PSdɲ |*΅(@m |~+ 3}ֱ) ~56y7ZD 4Y-Hi žE'0 ?oH}D g sI c <'kc <'k g- sANA ANA (52D:|X[|X[ M!IHatBSd#7JkF]F]ՍaՍaQ|R{Z#ž5fPT+ƈ |7й й?25 ~Xw  xs[Rί~A0S~#!F+V`> ar6@r6@ 2a + };Jj<>7/Qi+ `g*BY3}Rh͝j`@ٓcP) c;ce8m 5yR>yR> oEWnjz oEWnjz oEWnjzD&B(xٿd ϧo 6/KkJ&t%n 1!Һ҂$ Һ҂5{ q\GPܕ-Cz j\b!Su-~]g9# {yS='^L4 7 Aic I B}| , n@rn@rk%5V#KS5X auH;c ")SR7l' \f7>~p?3 irt pHF;XVLaȉC8c-e{ d0 d0 Q .[  Wb2tj~veQ T~ =3q1]XS/ |2%SS c$MoU1x ,ģ'{#ŋSWԙwIvȿ1rۂɅJ ˑJ[^ \UU7|2 aH[%^MMDR ѯTJ I{- eԃ=v Եz Լ㖕\RYk՟eh)՟e (c=B. ֮Q?q J׶N:|qʿە M;oA ٪d٪dک2 Y ,ےִ?cciCDiCiCܗQ ^" \lx`' , nX ށX[ ֆ&yWOU"kA sQ]QAo%Ch۬@d ෆC=bq ܐ V.bMn|\D SjptyGhf$vO[!vO[!ꛁ8 BIlUV *h4r eQ|@bYx. e!E  \[$Fgbl' nZ`#eOP/lҏ(kR2ҏ(kL$=oP";Mo ({N[DVw[u Q3>#(i Ti2cvcS7RscS7RspFV D?J4d6I - XsXj?("rBQ! l/ e 1y䂤v Q? jqD+, i :ov%@>% Ex  0cq  Wˋ7{ mK |>  H!gS _ ,$.2R@ REՎjEՎ (d |OQ /Fp>^ !xjQ !xj#f5P $䂢$=R %Y8|%l j^ %W: G%W:?%x i&) 'k|( 0*@V]s,`3Q, n - .܉Vj /~u0Rk4(0{@<0iHm3R2 2n=$*2p2S?2p2S 4O>,5j Oj 5|;K 6 6@ m6@ &7PE 8CU/V%8Яٕ: $=q,>[>%('Q@zUt@$ϲ@S<[AT=qRAT=q AT=q A֯BbHBv^O DINE.¸ EU{rEϹmmG؃4G؃4 G؃4 ,G(Q=8Hu@/ Im)JWJT[JJJ\7{K(5G;# L]RIM[fNx2`P} gR?[>tS}ʑjBtSO2NT( Tݰe@ ^U5X WWD(XkXB+YY*Yv ZN/^'RE$^] _nЗ `3a /(WaVaw a$ߺ'b,G?*bBi%bKj@ mcW7߸s#cY|tF?d3HЃ;didW.-]d|T drOQ eg>Zex"'ex"'D ex"'hzM*jCa?knkd&lv\S lǝnm@ e%o:UHfAù'-2߁#3Jf @q]X0Y(Ǧv* iȵo&ɬ.2 @!(oojw!׉Dw!׉ Je VJe VX mNW~6P 6P?!sƆ )U@S΃e1L=Urj nѮ61 c8|u.|3d*; ,<|3d*;; /\ / oS iԼgUb/?.ռ褠f^ g➳Rfik9 CQ"CQ;tf ؎j ؎j?؞al mgR~~d ޤG!Q 4 "g"D SMD}gR}g ߓ#o ߓ#oKЀ~s&tX)) f㻧^@ڞyGP9? F^/[D A{3(܆3[1vd,/~1vd,/u1vd,/$1vd,/K 똂aY *zv ,p# 7a BK4EBK4E(N $ 7+$ +N &L񽂆; =L!39?U5H3c7k|NxS xS|_Qd ^ ,6_# aW5R |k w`"X 'A3b GHX$j ZO Zv mZZ :ԯ:ԯC:ԯٯkٯk c5 Ii(X GQ, ڛ!xLR@jR@ G&ZZDl E\uf# iS|t c_=otO?3\ r ߬1 +FT ';MAxuaAxuaEUt@^fvqx jOĀ!MS!M"<#ڄ*f%]}X8& 8K'm4'v= )ͦ^g, +[Q#W), '&iN,T8n \,tsB -yuų  .a|?.{z ,1:*z 1[NCl1_ d 2ogq3mQ7: 3mQ7?3t&H4h/34pjS94pjS9s5 @ T50 5e[Hw5SS6+ K7 7ѥ 7z3Ĩ c7|ba7|ba ( 7AR8y=N8y=9ˆ c:+j (: !. =z]Fj=م% EI! $ ES{ Gб\IkfDA2 rIkfDA2LW2~ P5ӾPL)jQ9Ppǵ Qf[xB\ R|G]R cSvzX@CXJgYjY\j#Y\jY3k[$G \ 11)^Y ^5 ^5 _:P#_6)~ _6)~_%9<%qa .lo a;ea̪E bzb'.C bRveAƚ^Ydf;Rf{{mzg=&Tv g :gV jZIp@k@x=k '"zm{uJp+z.!pj{, $qr r"uRrR(su^ u^ u^u4vm^}SDwfCa x| gvx?1+:zD"zD {s{{+Z S|oH?(B3 (B3̔`#&"  JybWOYȈ1F#Ȉ1F$댋(i;U?3i;U? q5ALsq5ALs1ż$ , ]}DӻӻK C m'X (D5 w&:Jj lWR%[g1Rg $] |k =D Q=>I53Y2Fasj\s\(j [5vb?€.gKg fw(O fw(O (sޕzP$ P[,ÂX  G%aG%ae*{ 4n #;%6hCvH(ds$ T>uf ~jT~jm X7{k"=y<Pb̥ & bu jpy7YɪNM0?ImCZ if=?{.T Z$"TT4xXmiMuk ٱc^]'1 ^[ ", 轢jB=PMqM?y; \ [Lmx`*R֦k9 q!\a{|k7|yac菆E$|菆EK%4o)#bh Uz>hjL ng.dR<9 1fY)=5l͖nss\K".˚=d a׹[)׹[׹[3+ ˘ { >  \\ Vij (0P7!BGm_ #: c[1p]v+&r CTJ͝2@<SRkRkR |dR$e($ed " ưR #%1 3 $ M0@ M0@ : +iOq/iOq]iOq{i,-C <\ @egS{-)ax |  j]|}>tU\ɰ̷] w.e ,w.e ^ ksllT:^?YEq 8`!% 2:]  t l ߻l a}d)kG7c bIcZ  wK "oqqm?"r , "SW%"d3 %z$ ' t(({2 %(\+W` (z c(cZ])72g)Gj+JQ0-dX1J-dX1J-z_.Kߩz.Zb .Zbj1,mOaJ112і5x\s\5x\s57,TY #6 FѸ7#d:'$q; jɝ = :V*f=ɝGa?d`Ӳ ?d`Ӳ@ȖG BIR~ C$`PD 5D 5D 5DQCEqZG$:ieGR?I.$&IN>E?J9 J9J9J!RfKnz\/4I L1t M*[M*[ MԩΥJCMTCt: M^6 jYNA7?D eN͕K NHB O8x ( PremCvPf QEpgTQy\8 QD # R/?|Ss!Rj`O S]Ӯ^~]S]Ӯ^~TQ8_?T`:! T 84 UvpD[ eXƈNX> <9ZVEB [N \^4\^4]1{!f]5w_N_b _ `U]aLu[ awvUan%Ȩ?b2K b=:b ZIb c= .W c>8 # e=mef R]gU hWBhm*h3]zipz L jDC j\-ja j\-jaRkRm$)kRm$D&kRm$kRm$kRm$k'hLN lӁEPQSoC p'B soV0M s$=ssGs[7dx9me+Fx{\wYx';J xVԛVzGNh?zGNhzGNhzpg.z߱ہJ z  z {O4t<|gI}h |gI}hh|L # })#  (XIV 6bSY 6bS t |#@VsCۍi.޹P `~PkRȫw2ja^ _݅_݅dVNj R fl v3vD /`qK%7K%7 n@H*׸ IJLeY(JLeYUi+~$ %h^ uj|N SZ=6v\SI(} W?=+uVHM K ]h[gY}dJgY} ?ʡ ʡ -Y]nJBo_W a_.Z , {(rQtd $3=n3=n}8D0cp`xiCU I>7><$43s /NRYf ]wƫ jƫ  nrR vD vD:tM2B}9N *-F6CcU3ZҔ.h R}IC `O M^$Key   nm[ 0IY sL .*7-J?Hg-J?H:-J?H-J?H-J?H-J?HF 7m; Η̵)6)UUJS zJ9Żb\K^~#^~ ^~*q40d:x} %U#`C/Es/E , _Xϒm֪Bʰ0_ :YJiJiJiҹ̓ZӾr!Yլ T,5x\ ]P-=5- # d|Q ١0QY[ $_O &ףt&ףt3l ||5M]R ހ:˥(va3zW>a3v@%n %;q| Mk~z 5s  ]B4+B-XQc D D.}$s3D.}$ D.}$ D.}$ {GOQ Z.(YZ.(Y :/(0l xV a (d)9mVqHh| %0 _8aWRUrZVւ SX' ?f $) & -?'-?'Q aчj<R!j 7&:umwyuO'.  \F]ER ߘ ^ M ^ M Ms lV>  / Ⱥ / Ⱥ \0ov 2.}a $b, # $ >Du a ]ֹ9)]ֹ9j ³&³& Sdn Q}  i ? 0H\y#Y HT{  r?CK r?C "l"@rÔ#!} #_ /#_ #_ #_ : $Fk 'L ( a [('Z(;1H;*-?+.Yg c+Ԕ C+Ԕ,M-9 .F.'p8.'p $/X!81cR1pь $3׸7 4qAiD@ . 52_ 58AgN5Ngg $7kIuAe8e`98~!/n?9OK $:3dS:3d :ޅt&Y;;mD k?%͔U AyBAyB AyB eAyB B8"P ,E.^UՂvEgHvEr_@ZF+#wM?G:l&~ &GO2$HAЛ Hh Hέ+I I.g cJ8j LY{'O O mO]&U0OJ Qh\ S ~ǛaTpj<U΃VhZC,:XoKZE1c]ZYPRՃ [W?l [W?l \-B ^mH6W ^8p ^ G! ` CQbGOr` 2cq¶tcD e&"~gT gT gUe h݀!hz;"Zi,.|tyimj$j9jaߋ:jaߋ (jkZӠjkqǶ lsr+m a# ? nUeIRnqYJnJ(l^<o))'7o))' poT\ poT\ pnjX? r@&xu? rń s4L ~?u]4kurTJz urTJzwK]?x(۪Lv|аHm |аHmt|аHm a|аHmb~ٓt:A  6vjl6vjlNzUUDKaK [hd"y:e(@KP.LCc*& μC.0Nk! 6rti -9ٷjIpc Ip ȬV ȬV qȬV?1ȬV 10= ,#9= ,#MT̔< uʔ| k}k dK 9-L 9- 9-S n #e)¨ )RpRo+?9 eA- K K :M ) 9t*08ITH >_r >_r $; E ) 걭 =cWdLjWz? q $(q q ,qIN9  A V stEW l_Ky7(T5k6[3Z<R]0H a+zg+z +zi5 #{'[/|OxN /|OxKeG:D%9>p b=OV J  J RJ  (#L*N8ϩįk^tv įk^tv # 75 S%Ƣ#m|ǯ9ȮOR1| FHlk>T Jf[D[T#{EZ? jS /+όcN7 !] ] .W$ [͝)4?= agQ9َD,ڛoԠ gڧj uQ̖ 4b<Q}.qiQ607BRވGb0#ސ3ME ޾]޾e?)_޾e?)_޾e?)_ xo ߯ା`? ( J;f^;dXGP0 ̓`\u \8u ((x ᵗ2jbᵗ2jb?aq7vw kG' &FX" / +/ w+ dOD4:7 .!Q> G T }E м\ :м\  sL6܍ c L6܍ QlZ_Kk,_t!q] #yeo@z1 oxS1asD ~TE +񷺂}|j 񷺂}|s <, c:}[L 0f'C , 4S xqgjtW[N?-h Rm Q an   ;t w! ! /#/a /]⇼⇼Sn 4bj ,n tVkp.A _VeVb 9k+)n$ U"8L,U"8aU"8] i sprE \&j,{- g8j;C "!"N ֩qe$\|$=4L$Yc%jD%j{%j %j%j%jR&1⠜ 'J%Ύct\'J%Ύc a)4%0@:,>@|:.nr.nr/s4O7 w!0C0ˈ;k 8H c99\W*? \?0Or]?0Or?0Or @mֆ @mֆA=A=C)]C) DBF7 lF]w0Gs7 GhR HZH~R*IldvJiJO ʾ?M?دM;zN GxN$P%xNpXCNpXCO N5"DN5"QJ#S*j S*j jU zUnl YzXq`: ZYE*[ \6^0j\JMb, a]&J_HsX1_IlN: at cs cG# adTo> nQe;O/ e} eʰէSNfIL: g{h_T  iKYiKl &#mZ}+ nلY2 pSL{ ap\# s8UOs[i*tr8zt)vgbLKv :R$wБ ,swۚޞYxGxk7 )z:F||e w|iR}"# }"$}" iu< UWf-zz%5vF5 |g PɂAgµ+^X 2t ڿSڿ 'tz2#y -k -kR -k$g tڎI5 -?|n47Kq'. i4Ǜyi4ǛyUغZ*8?߽ʢ?߽ʢEzsm#sm (K6B\(K6 ęB LN`? x($ i h q m@-5px],ݳT !C@=09k7v謫N<FN GH k>R+ B6 s q%B̔=ƈ;_/#sƈ;_/SC !C o: ^>: ałNIt =r1ƏuHr ƾH-v= ; L2[tP rbj.˚SҾ |y .*ɠ̾\sUɴ l ,с=tѦhl'Nѩm*ѩm*jѩm*^5;@ub? ӱ@쎞t`̨*Kֶ!:g Cً:n^CL?_^ s)~)z , )~)ze-XSډ?}jܙMv/RݟS|ľC ݵ|- ߋ"vL ߋ"vS=՘=՘=՘eLOz=H: z=H ݔӑ c+%z :5mbsXt k=' l/r sRڌ*tJ|ܥɍꚚ*Ꞓ~aZ ܵt"'sl lLZR%W ]'*L6a&,v \l? uQ[8 80c"80cY H gH H s~@h~@s eD edѽѱҷLkeuw&d(~M dC;dCRQdCD=dCQ6dCl,9ky/oĘ9dq p] 2r&  ( O1ZSO1ZRwO2?"ܞ $"ܞ  "= dh  #  # je!je jejk' {R ~ = *>2 h r2Or  s0<jW45 #3bt*Z,&D& Y j>Lz# 3g" @41* \!?>* !-籂N" = S"Kr"K&&?,'ocJ a(~U),S)M\auq3*gE +WEy ,NQTg@.Y: t.fOq/Ʃv L0/`Q 1ltxH1#סкO1#סк1]IA -1{R 1dQ3ؠhPa 3A3H5D+,6IL 8>N9@HP'R9!\(<:E -*{{6aj R hAch?Ach i%_4c 1%(?tR$es83"3"Y 3"QT>]TE8>]TE8ߖP`?ߖP`ǿ4aj=k*7H =6w ih3k1 $D n$Oyf m!FVtD۠Y;> Ov aQiZ?j= 7!N}$f $[: [:D`]oXC < .>Sbt|\&.w{q ID9}UzXB 3 ڮz]FBڮz]Fڮz]Fڮz]F4*t w%3 \CRCQ gfsS0(f p|*HZZaeq6 # M2> ?Ov. C$+ -. C$+o|# c*Ή/?ϒTawt4P.I\fNI^R  !37 f YmF 0=s ]PQ,Z! 2/w? ЩD|Qv YD s km?!99)k !gpk #I j#KX$x-v-$x-v"$x-vS $x-v$x-v$0v,%LWB%/'͓(z9j( N%K( N%K) - *v)6,,*`c, GY-?^ . x?/xgh 0F ZC\0fxXt3SQ[4\x/R~5@3)27 2JHDG7 2JH9>+ 9u:` :<9L<=C5<=Px O@}!@}!@D AHCj"nfdCj"nfC;( YD&.lQEuQ}?EuQ}?FOd] F217G`}Hn~>mY@Hn~>m ( Hn~>mk H:? ImIAMyjJ56]+J56]J56] J56] JI sJI K!CKrlWSK+a (L $?L)fA  Nȉe:]O+CRP6FVP R sDSEpC? TI' , Vt , #VOb@VOb@?Wu܆X餥+ (X餥+ ,X<:Xj X.sX.sYV3' tY Dg\_;G]#md_&PRj`_3ha9 $aѕ|jbpj#Pcvb4dZ'd'Y\DfnQg(O# gu (hUf7 i(i(jBkB?vl<^ptn(Wev nR tpȥnrzΗEjrf $sm>[tX>- uCg!wWk< x?;RHxq Vx[3UjyYO&)Ny 2ݿ ,y 2ݿ z] ]5}Rfܵ $}ќU%}7y.~g醡C0~iZ{s~؇m;~gh j K JҗltD8#;z# [ )[ WqB[fT wPK쨖 ~~& Q !9} Τ }'sɅ= ^@Lk @LkF%* (F%* t`E]ovT_hh iU86:tlIZ55555Fq\P(FAY Lj2Tumqw4^4x*?;dj*j 1 9k a Jl|9Jl|R%Jl|Jl|Jl| 6   6  6 6 ! be.Vc}Ryc yc| _S_LIRHIQI@i v RA% S(:t,Z3#b2mˡ aq8qUQw k$ (TqSL-v׮ k  >' RQY O[!R框NZ框NS Fv SW=uo?W'|jbٵj5l ňҧ *Y*F  Ak_ì0-$eE D$eEY 5Ű^M ]@Z?Ǿb! jɋPYT&g]U $Aj0|D{ \Q uBhvt ,͕%+6 ιfߨKo Ў S Z!?{  + ` xadi@i@K*lJ t6Ba?ebhU bhU uq? ׂ޿(| }E  }E٣7S[CV9n2Y? \vk, p ێӪ۶ ܱ|.ܱ (ܱݛ*u *>[{o {oG ?C NV' 橘W'| L3@_)-9ZhNGR Ve}nd F: (s* %} *͑& ͑ ͑D B i nJޅZ XL B lT?]0}:}Ao~A6\>" G$""SI b? ؒ %ؒ Cx sSj* (j*s() aG0 !j? TM aW]pFfF- >%Yk!:L ;%R K4V 8q+ a*>(͛(- s@v;7jFpj"Fp rq?T 0i]0i][ӿ<7 -k-k~tGŊI H _ H 5ֳ~*YQp$@ Qp$@泿[ŌS"U@ߛ%&O%' 'u'egoS( tD([΃)6BU)&շy:)۪:J+g,h~U6Y,lػ,%aB\-.Uir -K5Lv0w 0w ,0zFxa c1pmkU1( 2o74 2iM3^뱋C3^뱋CS3^뱋C3^뱋C3vfE 4?;G?Bt.X CyȀӻD͸;EALf E>DF@ę\ dG'_ I9I $Ku_5Mכ Mƌ7QNbO)C=:QOUuP? Qk!R̦.kR̦.kUR̦.kS|2 SM]Tst{ $ T*] T-BntKUX%UUn27DRU.'NUr[ WǶASWǶArXOe54[XOe54Y;o YZ3uZ]^۶ [ \殕\殕R]<&\ ]_p9&]_p9&]_p9&*]y"1ʖY ]y"1ʖ_ s7_jF %`oUapÏ dc.f7;e& ` e& `g$N`$g$N`gJc( gKq2&  gkeAg@kH;i *B alOEQhm&ݸ~%ms}_jm͚ ^[n^pPI˵tq#^dq6ܸ qg r, are=&?>R rjkSs¹agsș]td tGմ |v.",] wnj#S wnj# ygO D{$~HR}RF   tjO.c "KU % %tU&| g9 M2 d29 S (] 3ej lM5% j T#KRJsYseY i DvnӲ %t?tAs<YF|? yrq< Tu?F.3>χ$ i<|i# #[SYUAOQ#i't~οsFY~οsFkƈxffG$ 3lR='TY=  U UsD]t ,?NΌݳ a{ 7[[7dpj旘dn bd鼴BTis꿎e_e ^g \:bD iNuKF.ԼU a T qqY qQ \ =d =d R=d =d } ֹrJS yM AoK/AoK// / ,95+ L #;B>`n uB>`n (B>`nj>~_s)^"`Oq4pKqԖ  9T $N^aOL[H/8B&rYp@?V`Ö  בD 6J  KR8 KU K ۃ sF m~k  9s1 wՏM8*,ʪ Ş")mJ/B^c{ HY"j-% TT ,V(V(?},*W%L $?!9qfU fU 4;es3>hsKn L XA  C6c3V"Ԍ )#+#Z # ,P$'$UvxF i$sPA;M %\@iR:%(3Z%ݙW_ &|Qo8 &|Qo8 &)6v'V_s':' ($rj*)S*|u @*|u*@'+Cw ,U$(-NpM-NpM.PbRt._dJ a/2&f /ހ /zc6?</zc6k0 450 3 4~]؟ 4Ĥ;0461Wj 51-US?) ?Mq@>ɥn7 @>ɥn7A<;K DZ+.E|/=F} GkֹGkֹHY|VI<JNvJ? K"qϲ N70N0ru:Qu8A.^Q?S 改&#S S Y\.[wj[3\[]4sڮ~&N ]g>t_4Ҝ.n` PQb6'] u# b;Cc#?&jR c#?&jRcEk d2:˅e#NP+ xfyj_t?ffjkO=Ykf l%lOI.sl'\lðXf:km^m|쑮0 p & rqw\ zz$ =g{#~|'{\F;q{\F;q {_^KU({_^K]"{_^K{_^K|hžO |Y6; }WuWrX pJ': (DO0^ jM uu?KAqվojF9$F9w"dp  R nz3 $d=R~ T %hzh8C8vZjOo%_|?_|  U:2*G&\ ]Q*w%‘Sf=ZM_m::: ax@ $Al էhfE5 ({$='K -#xK&ZR \ױΝ_C g5J.lVCг93L I+gOV z V | Q2 V*N"Z tV*N"Z 1kR`ܻhs DƋ35_ b9ԭ [ Vy j vjgBhI *C@C*2.W0B?? pS AŠAŠK@K%(hU}RhU}Ra3KKoQ}V[о  /rKJ %ͫ~CviAm viAmQ" #K?:{ؗeVF l Eg}Eg}Eg}Eg}REg}H% H%Y뒬wSQifQiN H-]#.vt l!L? $6Rw & xLL蠱M:^B d5 d5܍> jmSv0<ǝKǝɫpl}˺7*f˺7*f͑j- ,L:nWU 4/U 4/R5?ӽ,gO TVh>)T>)T *ѐAq%GCi 9ع$ IZ(2ըxX Sc-[}1!↎ B  z无&7,KzH@)+1 M Ճm?#NС tG Hܱz@F1j部R3J& _c5⋬wzbރSzbރB!ȱHhd[<1TK H?"ƐY7qPj 峬 zQܪ? (er uN > 䀫#ҽkɻ h1#zj+>| i Ɩ; J)O8#n>q 3nLAq ic>9d@e3 :{ǂmwg$ 3cM<4Q 70Ǒ*] [k_g GP1 GPS m  v $ tMkS >F:jC3k \ 0kt9?^`׮+8c8~) 5z aenXE enXE N? G9ed8?ϊ &Wns1B!l @# bM`Y ap.]tp]%ocȹ ocȹL 24:L=)Yr~d{!x P] Z.0͸IGU aOR"SK#ZL&%P[=/(uK1XS(uK1X(99` (ű- ("\,#*㰊D,7&y,7&yL-1x .9|L 9.o;X"[ /Hs /Hs i/Hs ,/1U/1UQ01XR`s 3{v4 %L6E.\hY6E.\h67"0 $7ȅ> 7. #8_;. s)8_;. \:~R :맯EG? <`(2=h?>q?S?8KcL#-+?8KcL#-?ѺJs@h+yW A*Y Aߘ?AỸ!יB- BC`  B_/1QG,Rd GOl GOl G-ywJBaJ'Jf,JNq" KB? L L (NǗǙjQAAC/ ,!QAAC/ ^Qb37RRA, TnFTP8H ,W sWvp$OXevY|B aYcwZ0Y [qvj]TNh ^`e \_q_Yb c`|;^aNzX.bV/;*bs+^% c QczV czV|dqӨ`OdqӨ` +ffn" ffn" fu!fuFfug}eiud kjm@Ījj jjk@̪8'  ldm/QU`n#|1]n|ԿBStn|ԿB n|ԿBo;a#o=f ~oe-]oe-]oe-] o@l p)yʾN qX%3YrjٽA/t)]e" u5RUu5"u5vUx}Hvq8-+ vCXtx :J| xx4vSWR{()pZL|1ғ@5}!WDZ}T,4$] }[RfI~NE3?n~mP}&m_wkJqq" Jqq" ~< \CG^װ; \#@ i $WMX( ЅАP酢Sk3s< lfr)'K_%˄a?E] 4,f12+ba,3 l%a,3 DŽ̕?Au* ,[9%7VWj7VWj7VWj ;?& TW vynZ끉 R '&屔 .Ow OwKڤ({ x9;~BϘ]"ֵnjj W$XA]S:Zf +_~d/>sYYvpuIۗ 5{R'Q^ 7p\T7p\]7p\1vc[ OYy Ūd!,[_Kf0fLQ(15 r SRL ڄT$៴l2Y-I  v 2= 8Njb)NՆpsS#[qFC9[>Vu" aJ1 3K,`-WbB9G{ FpûBBUA#&[,ȁ?E E :meg 3 ŻJȈ S a1ܪC nA #8#;'[,S2,S2| aXZͿ6re/-|pOr!Ѽ 4vN4vK&l M} )W*?,l_( ړI 60 }^:"ۥ5K)ܫ"XKs ݋406'XX#?{ = {*E NE NE NE NE NyM`f6*m ⎙Q<R֪<R֪ <R֪>Qa?v1:c4:c4RFށ f)Eaf)EL躉̡vSLZ>d V͏8# }\" ڔ8 "$ }#$ }4+ L/ -*I0 s y\Ǜp}LߚĞ]$=Q02h2ޥkCh2ޥth2ޥbh2ޥ 7OQI/8G)<SVde $~a vU# {?3~T5H:   Sn䖇 j d#th%M C# )wT]^ƸƸF8# ˪k n1> \ Y)ł dZ = *t(j\ }#h  k0 W %=fG̍ J#g ZU6vlIvlI ޡxޡx ,ޡx ޡx Zl 6SD6Sz0 ?Jt ?J   r  wm+*Uwm+* l *<5S ;'3:d 2 1on "Ovt?"7 $X%m) QW $&8{0. &=SS &wM a'c/$(Q ()y% C)y%j&*(l;k *^Yd+6t|r =+iF+DN ,UN^%,P2)K,~ɟY.|>0Vn:4>4]i^ b 4 ?6U?7w7et` 8]${78(w8(w19['y)9~O e9ؐ^[\:Q? a:Rʹe :ĂD :ĂU:5` ;KH;hU ? T$ (? T$?Z ?$0.oi@ h Ah&0jAo&1yeBBzZ BBzZ BUC  |E$xG#} ( G\iMH _h׎ d[HmԮI^LzL&I^LzJ=]PK͐KⰞfwyM#pMN M3 Nz =OM [k OM [tOZ^KQP^>/QP^>QP^>SR SXSYSyXTT~M TOhET{{̈' a UU,1V\NV\NVo{EoVo{E,Vo{EWy[',ZIܾ6f#\ a ]7"v_d*{{?bdj"ine8( eX~! fs-pfs-p fs-pfs-pka N ka N $kd^lѿg o'~joCs omCs2ol2Zoł<ołpX`pX`qbr' njqɱ qebtBn1?tcd;v^&?/Q vǠvRwP/E s x`Cyg*~ ynQN z`3Ez`3 z`3z2U6# i{"VV {_}`t}ٿ/?}v_ ~Of~Ofcɻ C . ƾ]QW3 c*_m Ⱥib߻ s)ዀrxDsyw Y~s̹5H \@ zOcRϺ6?s+uig1P?v>ٺhf/ҴW7ys`Q85~" c ԧL`hRg N Ռ+4WtղN[ x , s_C =`Yj#^/ (yU.sLW& ک&v ׳l~9| ܚh JC1_b  dP^eM "(t( ( cFs?0 &w $ZE)5p1f" ^; t M+ƣ+a'堟c;Z b>L{H/k-c銵6R z . p?b}` ep?b}`2$dRJ҄o.bYs XZN5t=T"=T"d=T"ph kn|+tum U@um UQum U um UY um UAuXbY[ { :a_ *Ǖ=Y6 Z㣪7:cN ^à|9xȟ6 (d%> RG *=R \w܆`vKұ;u\$̓?p:  Ė]nV㫶D{nV㫶t] Ex Ex Ex yWy_9ʵ<] F b Ɗ ! wU!;J>Tt"g3-#NR!#N#:f>T?#a3^v $K# $&A0}&ej< !&Wc(^ X)p_ *XԌ(R+ՏON+B\ n,t!jU -E+v2 -E+v2 -Ye?#b0:TL0b,Q 2UcLZ2UcL2UcL2UcLL2UcL2gFHs3(/DU !3D48l/5L7P|b7t:B8ȟ;R9먈:ޔc; ؒ,DQt=ON8>CI=ON8>K>=ON8>?Oym ?g,?g,e?myׅY Dv'֭9{D}7?FoG#IG[uh a G[uh ^GW`պIGW`պUG B $HY;.2 L {޽3SL {޽3Z-MHg *MHgMHg]MHgQN6?KOK (OaE,6Q6IV3?U/bk U$ 9U$ WPf'|W Y["aЖ - YqYBKdYBKdD [ ' ](Z _' _[_K_pO_`6t`6 ab Y J2#b Y J2 b Y J2cM(YcC[&QcC[&dcľz*?:d[d!s2d~;S0Odz  dr@K  fZ ifRgրVik-$(ik-$ ik-$si[q|Qi[q|i[q|Niܼ KkqqgƩkqqgƩogt pB4p"=tp"= p"=h q:70tqۿs$ sYQWsYQ s8tQ r t%ƪ? v Av׭PZ+w$58w9.rx ;Le $$x ;Le sy> zL6^s| `d| `}5R"~T s 3~돛Q߉ .#jۨ!h5zؗDE$\?T UDkdE5N&koRî " ?o;*$0R?Wr(^T>h9f0  -7s$L Hy`U l &s r&s |"&s P st˴ C}W C}W2TK* uD #yj#Qo}u?o}u ajW C䇱>M+Oh$) $BJNBJ0BJH&EPR  /RV='v JYC$ ;aȊ/ ] ~w2e:Xs:X,cK? VU|VU|'pɳ ޿1t̓~OIK eo~z o~zU>t?׎a]l*h -^ͷpo 2 $N[ e [?g:pfvc{$DB˃@p+_˃@p+_WOR ѪP&VA&VARoOA?H!]XPs>V^)~4x'qgGd1  $ÐkF+SWK@/ (@/ 9#b} :ev)q%$ )q%$ʖ:k ٯ펶|!B˚N̕[ɿ a"̕[ɿ̕[ɿ?Q6MV$?Z F: Bk~aB tjG:`SH$$H9d#I-di7 I-di7:IOYOrQ ,IOYOrQ aIOYOrQ IF:ѰI\nSJz` DIJz` K\)fRNx` R5@ RNwmGS M_= aS v'<$Ov'<$ acxwylSi{Zp.|yL |7Scre G pNk7 t[h#Fykk(\ k(\nHL7GW eKqqYTܤ? ?)j]@ G%32G%32!,[sNaZϭ aZϭ i"A *| jƽL jƽ jƽRe]? rz$ߍDt$?;Sd[;;Sdȕza 416 8ZbE#z)W7,(["!4? 4yjP4yjd4yj9ҟ'R< v&y.< v&yyDݛ $K(%CuM CuM[4ϗGRΖE $OWFDKXt q@ ngJ8Q J8Sȑ Tv p} *v o)q DBz ?YҬ 3YҬ YҬ YҬ YҬ S##4#D#>]O+Hnkf F/ f F/ auV Q TD 7TDK  c YZSYZZ*iM$D ? ,| os*.ɿ>~ e<|Ut<|U<|UE: n?iUR@n?iUn?iUQps+R 'J1[Xh /t \EHx CNʟD Fni e AA:e AA e AA h\] .)0?|pGx]RQJm,oj bFEbFbFTCuo:1v}Y+ $ )N)N _J:D΄]#&g::1&g:]z%RMv, Ă}GYĕtř$ B0ޅ $B0ޅ (| S%hΫYڍ9 5. ̰[ZU֬ sdвKM8N ў$)2[r{{#x-zp ֟~* T5T TRضUw  [( 0 ۃ>\HǗN l$ls6dK=dK=ACOA|Ӗ cKx7 $'tc#Q0c#QH!YY[v?#BH ,[ "Z_|%"rRuHN i`@o %5_)Q?W2U ~U ~ |#1 `z Nr f3Tخ% =#  I IM= w^"  d+G!Ԍz%tZ *sL *sS *s *s  *s  *s jW qE/RqE/ZqE/qE/qE/qE/;Ls5( ?o{v Rm*@j pMlH ( pMlH pMlH { (J8R (J8 (J8;;|#X "}(;tZN+ڨAgƗ (U.Aj PMs$?˶ {ɻ. ¥bZmCT mCT i}/yhG7p -GA +gZ; qKRW:.~u2.~u (_iPULj: Y yQ!28 "F|#,dД#,dД#,dДK#,dД #2cG #H<$zzS$uTV$ى u'2&ds )n? )rqZQ *~8+G|d+J\K ,2=UU-i2C -q.o$ ,/vmE|Y4pH2h4pH2h 5-7r5 9mh>5| : (E* h;ޒ< [= 4 =ae\ =ae\@6 #@6@cR!Kt@cR!Kj @\@\BFn \B;i BbjNHs-BbjNH cB]/BtY~? Eښ65FS-[tHHkHHIX`g[xa y*ea y* aTE` =a X9_5$ cɸ~Gp?d|21SeFd] $eδٺNf3q\BVLgoDQ>Zgq/bhbUhIDhbUhIQ h{3 ( i (Ksi4 cZ j٘A j^ jէ4?k/#k(k M*k M-k M k M m&݈nk{nXn H \o>oqi p0XH Zq|J{nqwpQvr)2x6m?rh;, sI1/ s ɬ s8Nt5y u< vn"xb]հxZ. yBqyO+:ysyO+:y zX?1Rz6 Uz6*z6 j$z6sz6 sz8gv{:{:{U?: ( |_ßD}`t(~,xRY9$Wa E E  9  fM| ͡RN\ȹ # Z  Z ؘh" ؘh"cU $/i|d| kK (bٲöK:ֽ_R2@w2@w$_C_@MF?t QXj((Z Lr<Lr Lr t[0 tH gWDx*?ޫ ]D) ^͓1 #MUv #FM , 5߇Y 5߇YYk'~rK k'~rSk'~raɑIɑI>dK "IY;к + iB _q NO?xUx02pSz|5"q"q"q Җr? tw@D (숤  qrN {Q:UI ‾m%^(9/! Xx`A6JsjΊ ajΊ PT w#9=~DKV&׺bS9pV ~~popoV]FB% x3)\ zcԟbsUOVA #A 7G{<N*3bVs((D M ?& %h~=B ,{Z] q Gf; 5F %d8JRD*ds?? v t' ,UN lȀ~Mghzaz ʵF/lOlO4̀vad̆n  ̆n &i}i}зw= sʢwu jV&).D-NTpKԔu * w{&]ؚƶ ڹ ` ڹ ` _JW h>z lH)+tBFXP AXP Aݟiv,ݱ+rdݱ+r[ݱ+r ݱ+rݱ+rݽrY$a߿g ~?(g-xK 6 $伬koB }N Q*.> iQ#Ѵ E-x^ sꢑG[o (|ܫ(|ܫ(|ܫ\[ ]PA]!3] ] 16Qe #Zi34 P"/" ]>{T{:q e l\Nr|XjrN K#N~6RVlq#Jt#J DکF:F|kWȾ$U%P U%U% !}8 ( f, m*9lbrL lbrS ݋ "݋ m E:S r =#a? 8o>  i  4#} >VX [?8Х  ?9L ?b\m ( i?wR? dA6:BA6:BB͢mB BSB sCP %D;5(EC,E]ql F+*=RGjH,m5 J! K  i KѠy ,L>#0`NNXbV4 |UOեPO9P PQ=7Q`Fo<Z Q WT^ T>25U<ӽUN8{#V րV" UDW{?W}'w W'-.XQ|F#Xo2\. XFͰXFͰ Y6S; Zu/? \#?m/PL \#?m/PS\p̈́Cn]o_ $_HgL;4`4kA aѬaV a`R (aNOD aг * aͥ b b $ceiUcemjdg%fz[" fllfO RiT2 j0@ jOA=kjF}OjʘkZ|B7#m=G nșt??o%_:r*DrOPA # tI> # v"2m vE-vQU |"vsv>.Q j7xhzqyC#! yp'ayj yR=u{Iߎ {Iߎ {Iߎ|__- $}$aM'P}XUJY~: . 0ܿC k$F>F> F>Q ʼwO*Ǚ 4P^+]c aͶͶͶ Ͷ;Lr?{NLhI] 7W  G5W \ B==-l˙ ΍.t qd"ߊ SӑcUn 6@j j RgrL% լU 7̓ c1| """" Εm ]b{ iH:BA gg-O]Z?Rw ;FS,g|g LNԛGFS f)]T  ,| c'^]eC>x†H_ #^qūsi'rrP r 3]t wUSY];!k B9FM \ b^ҥtwJYNBv0_U' |_} # `0ܐf E Y1nj_1nj_1nj_1nj_K1nj_1nj_R1nj_s?ˠ7 c5D X i"w5DL1 1P{lCVD qo 7/8^:yªh_?: u4u4u4oZtJŲ+=gr D*!~5՜-(0SY> ǦghlY?K$MdX H$b2! B3QB;?fڲPe& s ̮ Δtg δG0JϹ`3 >FZVTO sV>FZVTO >FZVTO +>Y]K?B:? AG cAT @~B V -FB6o C@pWpC{5EKR FRS<FKV Fh'U#U HSQmH@;EI @9I3(# I3n1I8}qKvfELYxZL{"@N{NQ b߂bL9 ߂bL X4" X{'z|C`c Zn (h80^aix (4 M K)8Y K)8Y VQt~Q'+ISt'+ISb '+ISkw#~"L7Z"L7$  ^ݢgfVE_g4dq ?zYD?zY*?zY?zYS?zY?zYRFhQ HҫHҫN{Tn&0ܵJs 2Kq a n Pn :蕏 Wt]չ6a9kϖE eaϋ \ x { %NiK `"/?\/ Y2b OA\ ȣn,]ɵM   s3|s3 ̩FgiN(pV ư׸l<ά?< f| \Uϭ TQϭ TQXuQ ҂7A} .n .n e%C4y㮻2I 0gA JA=Q,gH{׆ |[Ɠx4 c"kE|eM"+ eM"+ j 6$& 6$&h-6$&s߯XkGb^#:w  E̯T{;"!QVf!QV5[n'hhJMhR7jR7X˄_7 sU46\yK_:1ťC-b$mU' -BvE] 25lBmF>u8x yX!?ذ(5H #Kߊ #Kߊ #Kߊ jy;jiY iڬ = uB? QS w?%wa mPT"}U:!ӐV( ӐV(? ӐV( ( Lp5\D]DOE ]DOE?0\U:k 3*s3*3*t3* `XiZG?`t*r61ZεȆFU usXoM=eijtEٰA85O!Y]K pxe px!XkZ"0;#QpĒ_J #ƿ3 $!5FNlS`$!5FNlZ$X0Spe_$dү $ Iώ$$N$ Iώ$$f-@: %\KM( &:)my&WP&@s9&GE"'H )o"T)o")o")7D j)7D*fA>fA@@ @0꽆 AZE.PAZE.@A$ A$ B&S1ۯ.C%I[ C%I[ ,Dż /E3(UE3(FE3(LFnpo+F+HT$N F_ЅkNG;d΅G}x%!HY$HI_ Iڛ{ i J=\bJW) aM'xOM'xNM;NM;O0ԱOAPԦ (OQkq Q~k=RAPb1R=&L@ R=&L@QR}bSX T+wV%.oWCjWHR3WFX'? (YjR0[ۧK #[pc r. \TA;J\FFV5C\] ]Vcv^ E`!aapᤚfb$ͥb]MѦ;MѦ; ] 2M H" ^^V c^ [ |g qntS "\."\.1-. 1-.? S[^ v#uMY #><=K8y# j ]jI?]r #:8v[Wjv&-v&-T/R|4XQr |r z It$%gt/ $t/ht/ JU9lrw{N̓ w a(kE/ ,kE/sXh,4׫Q KK`g A{ $\:Ɯ -7 = .?G字R $wèY wè 88K; g!ր'cCØBoĦ0vsL ,iH[oRG߭bt|_ bXl[Ao?otWn μok Hky)j#h;섊i Яr]E Яr]EбGcp a 2&AcD+~Y.%Hb s o {ir9ւᆻ ֊^S?ط8` ن@_V ن@_ }J#}z]}z]bP|:cͽk\h&)=\h&)jY ݫ/! i) p^ $pN, &c&c )@; _Y \ a iAd겶臻9e"W9e"9e" 9e" S샮035샮03 r'Ƌ8Ydݗ"U $iCD*!Gy xx:$[U;} C\tH%\&DJi>ɔ i>ɔ k^B  g`[ BY($-BY(S!Ao?Ao z ( sg@q-`*hj =W@ (#N c{t퀮ΐ I# h?#&"kq )/ecH)/ecH W ,R >v3 >v3s >v3 s n킙c   $ -"0]ך "0]ך |Z~ cfl[;ݿ efl[;ݿ q 2N !dsA 0´<?;T} (T} Q4& d, ,fNv|7t7tK\MZw_'ۇ 8`m j1dle . v"iܖL=RdMSjCvDDR %WN R %WN+kRFs sVWU>s (V6] KZ/VvqWxWxY]J}\k^ p}^mtt ^ R^6|_f?`+ Lz a^y a[fˢ i bj,5bj,5b파މ? ckH?d)XYdCG]+mdmL dmL e6ьt fe%kf@b[ g g`h~|4{j*:$ $l+a/9#znS nSRp'֢ qc B r=Rzrp]Xrt}Ru#XD^Rju+? u\`0 w-#5w-#5Lwpɲb}H}}S,}.~w Yjb#!% !:- -/-%5? ̉.}# LOMo)jA;v!*A;v! -'mIyo+Fo+F8r E,I!7 (dj <2&֘T NL:#hLdP6| ElB .џx;犍i ٴaٴL`U Z\#J^ .L bDq]FIFIQ z/$:hRB B KW\' i,' H:vIz_oh1hY^*ۤIܿTjeYtvm @ɯ @ɯL90^L90^ mDOI ,9W WDY a)h AmJ,jZRT%/J# FI cɸqFi(R{< I ?(;yV 2(;yV?󕼩=>v^(U .} ]3 cƆth~T l?V -S/}IjΝ#Y>˓3 JW y)NE ay)NEÃ.%2ghf" &́tž9Hnž9Hnf;?Ƙ{ $R ԛ[3|Ȃ:zVE?EcA m ෽ lzOu<\n  PR[4#9`= 9Y= 9ku& iBSsiBS ":ђeKee і𪦻Ȑ{!2 *3(J7 *3(J7@ѕ+BBY%PZC8?Ad)YzWmKQ] ( #Q] ( eop 0kb AAYt+@+0ฒ-l ฒ-l ฒ-lhJGxt2\$_h 㶣X1$㶣X1#㶣X1rnDGQ{mDȯL!y? K4RB7a5bR5bw vg3 ĘB J'ClztlRg|mt 2T?a (Y ;OXNϭ? ͂  #`տ3 ItQ\;p 3M #7a ,Ә  *!2{?U!2{fk8=S] `IZuډm# Z ; [$pϜ HR  ( > ( 4 (R (| &yKkJ m }Iiϗ}IiϗK>d0T ˎH47 a 7}L D  dU l /  rUR IR) ` #3 ckWu? ǻ]  VkK:N ٨{3>v0 vFQ2_ $+w (`eS?,Ni 8-pmR$p>4? 1 (~k@%2@%2 e #Z"$ =! =! j q?i] 8 Cߧه\$? XlKV4K!oș6K!oșL7_-Cd*h FQ"j!Yg]# yU#];uԹ#&$ r &$'^O '{]C(wY (wY (wY )ki;)ki )1 j*>!޹*е*ǀf. , -w2 .@Z5?/ ~Ӣ6/ ~Ӣ6/пK00<|ߵ0QmV0dw{1wf,?1.Y2<[3Xnϗ?Qe M2۵f"/# %W %W)(Q%NE.D\i?E.D\ishL5tpjxQpjxQs4qp s4qpz"DY{;tltlG!*SD\Ѫ9 yyl}_Cl}_C\l}_CN2l}_C2l}_C,l}_C{wZtme 1fs 4ځ<]s/Y 'd&; $JЬh [$JЬh  ԯ ,ΎƬO,ΎƬO,ΎƬOS@' (hud XkLgE`o 1"}!,c]b4fX??ئ,zvRz~1id1id?ũ .:O[z:O[z:O[z:O[zv  ^yq/it^)u؇Eսa  sZPu9ơ" b4қ,\r zYǔe@ : s [L<jɛDdR ň Qňt ňk ʫk!r%)̠q[GJaxLlxLR%eU6 j ӯyy & 2s7!6 n4zF4zF4zF]q= ]%GXjs\Xjs\ֱ++Uګ ^w ܢ2U &ܢ2U u7^ilQ \["=$NoNg$No?˭ e.bnA ~ ᦺoLtDO ,X 7)-G*H͵?=,TrzF m9N '#'eWlK:-RUǏrilvzJU—u G{7Z( G{7Z! 3bQ n` tKn` tRn` tS޶0#ufj& "{bMX3{bMX,~=h ?O4T2/ a'2[u d[4R0d[4 }{  vd4R 2 |E^gt $Dȹq W\xRr䪮 g+bK\e. &<vf $ W])@@l  rD |}j|}m˳puv"z .w( ;?R HM~ WoФ u+? /x>A $żD?2``JW!)# 07 >8fpxKQtQtHQ ¹tru2L ,AJL8 Eh#8e l49&$ˍ8ȸ T?_ZSir} 5 }FoN!:!S3ed s=!S3ed s!S3ed s!|Sj #8Ӭ.# RŠ '>i'>iD)** ÆZ*{RH,t6]&ދ ,OQes,i ,i ,y -0 h-0 / ĝ] /1N0"ߒ'0kIU1c~Je 1m*2S30Y83`am< i3XY5ΒuH777K8b8qIf96$\ g:zc W%J> J> JNoZJEU|LH LU/pMVG,NH8UŵNS63NS63QO O OsnQ  Q6.8+?Rr%~?}Rr%~Sv&f&UL=Z UiVA7pW(:K+3 Wy3b X1N!%X1N!S:Y AY Y0N06Ycz;L YKGZu49\4&5y/]Ʒ# ]fU"Q]螻 _az5_uJo _z~w a_z~w ,_z~w _z~w _z~w_z~w _z~w _z~w i_z~w _z~w e`N!6`RQ`e`/@'vU*c1F dY^ dY^U e {:Cae09\ e8 BUf/֐RgNaT%hJY!iLs jmJ # j~l> 4 l٭N l@& NmD2plmD2p n,EnXTZp'. bqbIiz qiHw  s"'ftz:|D etMȥ tMȥStwA u\r?v/x wvyiM { /({!7 {!7{Ex'{Ex' |&pv|ܮ3"|ܮ3}0"V }lg[!~~W hfQ ~Dh~%3(nÁ?}ѦwdK?^c {02Mk^~6w} T /jj ]<UCq u P SwXsXm SL iiIEiiIEDiiIEiiIEd}2}# {R6 B1 WsB1 W42A nTs :; UUNUUN w\?1n?C63`)63`)é6#{  2A \< L?ŰX*S ИL=#Ȋ=? m \oZ mߐ?ʌeJ0:S #:uo#A F<2k|͛8@H@t֊#Y̥\_U΅ZU Ύ;q^s}жFd ufaG !C5˻ zb!RW+$<5$Ԛ#( Gv-s֍0<ק;N. # ؈ A bB \Ō֤+|Ō֤+ Ō֤+ i ąo?(4TJCjd|vuagT2d/OVq dV/ {ݩҐ?0yPzc0yPz@0yPz0yPz0yPz.J6[,9![,9JBBK)Td)Td c"|S i1Ì' Zi!hSv s{ h׸z] 8F^ZR@ > s ` ` .` (SϡNNRSlXlXQ<")dP7{; NN8 ss _V+!@H> \ f H(ZljA(2 ZljA() GE.Z " r'dMʎ 4NOC#G Ӽ·-  Ӽ·-K !zS j ȸϰ 9 2 9 0 r MqD Y#nS.Sx.U&6c-? ?RlU"gF  J$?8k씆ns8ډ K@(;L[>/#l \=6R 9Ŗ@On @On TU:$ %'Y{qRNi $l4q$u"em #=ρ{xV_S 13FS!F9'3!KmQ!Ts ,!Ts $!Ts!Ts9 ![w E!uIUR"6pd "^ȑ"^ȑ"I:NuQ"z;LR r]LS]LL]LD]LQك{b ܼN$x{Q x{Rx{FR:@ & ﲿa)5q7g$ej N0r4 %:RCO 1Om: ~K;QZ䏵y喋C2<^a8ź p:Xz5K& QI{޳P%{(N 0o o  7US, 2z~0WV+T*7&t𨩥@[Ko|: $Ko|:Ko|:j@O -sE/7 0wj3r]EZQ3r]EZNXCm{NXCm,NXCmqNXCmANXCmSe"I['رtl}>Q i8 H&x\TTEB'CVԞz*[ Ԟz* ƣRcs X_ c?X_ c aO * s (E{oHp #ce#ceR ̘'EFZBoKY h7  !9 !fR !fZ D-L D- D-R D- Lݾ g ~+-[p b  q!4IŮhdLDإON;0ډ_E!U~r?W) x `$@qQF w'*aw'*R / [0 HgGN{=~59؎s{eR4ML:# !1* -!Y "U#/A0 $>F-8%[͕\]'')%|'t]Z*/'䊋C c(f;? (Zt9)ܱOo?)Y?)Qx@)Qx@ *gMb*(3G \*wt*wtL+ 2+O(T t+O(T s,MIܯ  ,^p .LÜD."T!K/+ /j s0H 1;bh3W=j}\S<3W=j}\3Qxn{ s8C9 9붇w :XSnJ :a O6:|U; ǥZ?ٔY>ٔ->;Y宼N>;Y宼>sXPoA}s CYND [NE:wQEvde WFc G֖ mHzc0(J@/݅ JzK <LTGͬ[L1oY MM N!E ޿ (O>4e?P p Pu] R&ƧS $S3C\1((NSv3U6wc Sw*́5T"UU/@IOVu \W<p^XK^ XEޮZ,Wp> pݦ'q Pٙ^,rMggi gs?bbP tC_8uf&* #wOx Jxðx緕 yEUy޴w  yyGyyG~g&j5 BSeț -͒N @Y ]iϰ il_& l_& jXA8:ex *쑋7Rj ,ΜSZnR3S;ZnR3Y <@R$ސ/UMR/UMNײ?׿1ڏ3D9MC/*&( $78| (X78| ,Za?YlIYlI }]n͛o!'RfutJ#u ~# ? u ~# j'`rDj  A{{l/@f'{!%|cA?BEYi .$6= e ׯ~LvrHR ίAJίAkGίAt zh{  '?Z% rz#a )J ˌ+;NgW90 ~ymkL5o ,UCl T@ؤ aB% 8B88 ~&UunNBM?Nu] \ۄl pR Sh1 h1-erO=?WerO=kerO= a?ӰgL(xRvVb uG x*9/ 6͓Y Qwk ޒF#|sF($hLX;f:鏿?PWgw ň  (ưص ;{~s ȣeL wh ">fy&Y˞B\%  ̀<ԗEJvi n͙IA a -Ю2=5"^<,cOҷǙuN| 2uN| Mxn> !hG \&U7R6gk\ uAu?oMRg1OKj ֋ t֋ _ /qfUBNMR\2 R\2jR\2 R\2 ,R\2 (ڙߌT5??v c8 '<'<q8\Pɷ e"uV ߛdY hv aZH`豮/O?ߵ/Y eL: %Mg?G1H;CQCQP ˦ )~\60HTXg.zF ' y? ay? (  ͪ{/c O&Q ,Sj|S,Sj|-ߛ>A{ iWC\d cծPv Par ob%_ݐ ݐ Kr:TXKԠYs5's5'X5ک_ک_ Y P !SɅ^+Z n *@?D27>W $S WscRB #Qۜ? <ZdN H+ # ڝ3VY  BWS_S BWS_a D.% h D.% h D.% hP| A%|RA%|R A%|Rߪizy)R a$O ۚÐ?2?;1 \ ny+ w. iZ0%s$h l^>&Ws̨R @j YGN* YGR y *"!C)J#0!H% $m$m $&%zC&B8]R5'/z@۬?'fLQ?'k*( _ (!u?#(!u?)f1k+¯t+$n0!%0 8/1%֌O2A^ e2&3r;s3r; i4}Q1T 4Zu?5 J*6c c63R% 6,?6wMu%8;{+r08;{+r(8;{+r 8;{+r 9R> j9{- :۬WJ;<݊?$<:>xj >wZ >wZ>6 ?{ -??I`A~˫d/ Al̺C }@d]DĈEhE:qE|GH;' S (IgHx JP dJ|L_J=c0K c_PLIL<+bM1 M8$O$K P!Q#fU,7y Q^ R'Q ESgNlT6(viUTđ>XVݵGoWSXW| =Zb c\V_Hb \T\L\+C .!]B0l ]B0l$]c.'en ]]^U\aI<=aI<=aI<=aI<= aFc7#ʵ c7#ʵc^Y! da0 fZg !z g !z AgojC?|i1i>eRjxdsh}kM'LDckM'L#kM'Lk!>Nk&; g k&; mv]mvemv>mvS,mvUmvmvnsп [ nsп [n-@8OYo47@o47@o47@o" e o5Kko5Kkr$Z]eDs/OI@# -sG.a¨RueZX v0}(Bv*6vq.tvq.YyLP \zFvn Azh R}c@ +~BF ~ծ+ +eR2Vx<6$RxmSSd4L2|# Z䟖T9:P[!StEx .T0 -#@?ڝ3;~!v/KRsӯ?Wy!$a7'n&5Q'n&5Q jWHH l !t|RYjyLDdyLD JFo4JFo4QJFo4q]htOI5 CJ4K$ODS 3C`u3C`uqA|6m X9GtOtD𗍵G ,TA#^/1vh rl Si$A` 0x[YE  率P>s   2}ER#l r2i r2i%CD7o GjY{Wc s/xν鲷cUϸpT7 фd|фd| ѳ/2f:ѳ/2 ѳ/2 ѯPե *1h41h4 1h4 \1h4 Fj. Fj.rL{Y Jk֨@u $ծ > -$> -$> -$> -$?[J Er/& l/0t үjڳ@< ہ\y (C'C ܖ_~kܠ?pjܡZ-iL [Ts}7Jì6L BE]YOQj㒏[\/}[;dz{k d˚ (MQݕS'9B i'9Bs'9Bj6iz iT8(, n7 -ˇb aќ $f.s c4Yr2R6w: =i'})K=i'})Low irn _hz *>:•aӲSl6N9Kt]7odR ; j's_4= (_4=t>HdiXvZtfO%GjO%G ,O%G F2lsY76 @)  ΍T ΍Tj]ѷ kL{$ v-l4w WA?iK * TEdJU4z& ,n;sn; ,fyfy #K)TdSTnSfbO^ bO^ 1K- KK)qMk i &Nj j~ |n4@ j _io  D9 j " ;` I0 t I0   iY ty{=]tM  IJT:gjF=1ؐuY:+\s x􊕶Ci *L&(*LZ*LKNMoNTנi+ \vN*I Pr=z ]cbTn*Md֭W3SBCF 6;T] #G+RL (Lh~ッ X@ /Z:_8 !#&x' g!#&x'j "<,n#NEe!#NE #NE% x % x % %  s% Y@% ?% t&,')'43f$ (J2 J ( ({ $ s)r>])-J r*3bj*pD(*u?=d +ϭ +@p?M, v .0Rk.0Rk.0Rk .0Rk .c} :..D1yFA 2C 2?릢? 2?릢3. 3_ Z$3q:"3q4 Ib4RE5xBKR {5KhC 7]$i 7Ҳ Ts8$g o:co"چ :=xM~ =N~Ex ?p͟Y3)N ?U&]E:ZE:E:FiGhFyi7G4lH ]c\x 1H)׹ JT H%Ii=ljI9gHQJYsxjKX+\K + L"z2H MnD* P"NP3nTBI &TVvI~Y#U[$dUQj UQ Xvg0 (Y~686jYd׏ iZKPTZLCs \Wa%]NG7[]$Q._ %j_ %j_$DNr ,_$DNr`R16`R16ao>_b eG) 9 # f>v%*[f_6 gTke1Shbln8E@ hbln8Eh&x\ si0c jGY[ l(<̱slTsG lblN1mp tn4N=p4pm552 q@,q@,q@,QqKwq!< q ,@Rrۀ rۀ rVfuwKvW[s xY xeTgyy$X nya zFs?{ޖ[igS{ޖ[ig{jL݂?{jL݂ {jL݂ |:7bq ~jU sq5tq5j ]Ev]MA;_ ;_ O yo՚Cyo՚Myo՚wv>Q Tmn$ cxB ,2pNmkk#@q <l $zk]XS;Re/S/NWj. mDl r-b Y9/gf ?;}cⰀ 'PIm\r W[\K, EP EP s EP Q "1A G^^6׃ #Ԁ,j& DQR sDQR 1qغ yI {}'&3U (EaUΰA]TyY##{> ]1 ]1$72W{ Oikf5rYݝ"UuJ(O?n+nt޼Mqm/Ea$߁TK j&Nᇍm.ᇍm IT 0b {7'\ 撅3 fT Mg$'i8R7*s `_PGdj5Q{S[i ( )uTSvU}~3$n 2(-\2 jSYNd$hrSB[=)sjW!<vFpQ) ,>̭6 8 , `qN:pY?V0#jȝ絶mw&5䯾 !׵lթ=5? ʻDz6bR++=xO y$y sq-r >!F^Ղ F^Ղ $ |Q 깥qMit꺾\zNQ$_NX `Px Ao2к 2к  k  i k}$kQ9vΞLYS ,, *E#[LE#[UE#[E#[b:. !W~:"A =:#nQ %V &5 \ '(f'2'`}t'2>)BvU4)Bv')Bv +Gcgf ,j-@} + -*%-*%.4"<.^ /KW: /LO=]/^\0)q?L 0)q?P0X 1iz1~"XJ<,2>#d2v#G=3E}Y&9 52cs7!a~%7,}lbt 8kwkhK%8kwkh:7KSR; s=2=2 >? ?\0J8@B 1WAŞ< A_6Y+ A (A9P1 A9P1 A9P1DDMVFv녃G GlF!S HLGY H Js8H J +H JH JH JhHuj, \ I\ I = I]o+ # J JMG}?K@dL&͗f N7wgYN_do OKX Oc | PcآR)mn)STꢾ:UǓ@?} Xk)K XHXHZw] -\lq$]-26 ]9Ge^K9^`v枤||`H$`jlLZ ao }ao }S aR c, d|d:ezOexO \ebjf?Rfdo9gɀh="giם jkMZ kMZ)l~Ll~m{M<1؉n0uPhen5OLDn5OSo]y@%coo7?pai)5n8#q9Z0fWr?Nr?Lr? sxCtAz"vv/ג7? w=y_7 z[ö{fJ! ${ t|SQA[|SQA l|uP | T)|{.P|{.P|{.P}xMiWs~Fa@~b]~ VDCq2UAV}j AV}h mkv$){fC *pWT4p@ѼoAb2 !"\Ҏ#p|,Wj=t Ʀ ?ӾBD8fPhnAa $\Ͳ $3A?S0  c?d|YaquKaPJ!9S'8C9Z{thSc[jA sk-L gtњ)zEr:QAn!ow:k =ÌYLz< .j .?.X3yz?Z6`"~QRƨG% |V% |V% |V&=i' \W+BWTHf6Q=l 2r"w[ !'1 {ƦeJ8o׬"`?WۘzUT?)ڎٓ%n s+.dn$iנ{d9?{"$2(Yuh* oQY9/# iNQS } ] BAT`RSYx^ϭ iڃJ0'Q ,*WJKi%Di%D ܏Ϲ6 2<'݉cU <$qr3 ~i~~ƅrY<$"3akz ~:a> &^?WAV C:Xl.TꃴvK? ~  ~ hq1Z $XJ \XJ \ D} Dδkt$8)e <.X)C;)) T 򇂬&pR}G| iX' ^:7{S-n(jlOY: $9Qf#"ʳM ع eV`^~ .L_n@5 3Š"~ X]  o\b1s, 1s, a :<R :<j;qA/ #lk"5K}'< i 2LY  sRN) sRN) R   =}& PiE +( C,j :f!u*L `:k t<-BĹ{,l^l;=gTVH"=gTVH=gTVHOybC >bC>A}•CVJI84Jo>)MKtܽ OG;YdOHvOH$OwP xQ~V%S|ܞ Z TD#: TUbdU=)}7tUN$vVXdW\߹XRtNXS2 Xhp:+ cX/}5YDY5g ];YfysYfy YfyhYǔ +CYǔ ++Yǔ +^P M#^i/`4]D8`4]DR`4]Da&] a:6La>8-. ahUv #cNDaR%cNDacӝFP/d6Ydmte|:W1f v igq ELh^jSh^jS iddjŋ akEER_k ѯ m iZ 3oL np]Vɧ Wpj j p_J qTAƩ7] q52q7x \ t~"RtgYu*) R uO suA؁?v?YLt v! vR#Jva %vGG!x Mϻzs˒ q|fL*v. mL 99[z: TtO$[" N -܋ ) c.Xnb{ K( $-֤z$JOֱ \Ok&| Ok&{U<`SEc (SEc >ftqchGiUErR8 FGT FG:+ . O &FFҞ3? xe ¿ =!1PG AhJ~{?1hJ~{KGmH(R4s$ 8 K]=t}r%h%(VH ]e[w >e[w&4 ^K>5R ^ "U 1^ "U ^ "Ut%dmt  zJ?5*82MD,?tJMx( u lӡ2-ӡ2-ӡ2-Ppv f_ i ٜsT$㺸 XWava (XWavaXWava z؀tKz؀b,z؀k"/A@U1#!;-!~D ]AKZR  c[O%,q uP[d"R;1$;1_QV #s &PyR0iʎk m umoR aL(?Quo^ jJ $jJ mK YkuD D& h70p9 a<܃ Yn Et `S  `  j IO`z#S%w݌V %w݌NFɈfFɈf jĢ* '. t Ђt ΓΓ ]90)t N\ݸX N\ݸXVpe.b9$S?kDaM#r D_ 519D˦>K '_ R(  gaz P.cbz\ 0J2 <1xAz`  67 V 9jn qIR&k) ) A)sOs?.RM HZy ᝲf 'ᝲf  `S5HU֏9R"z](fa*O*͉Y s,Q.K'mOr0_^z 1 ]2S]Q 2S]Q8I,Z88C_*%9-ԕy9B; :pr \ :pr i # ^?.#nC?ES̘ (A AHv2LdBկ9B 'C^3GĔD|PUEjhF;DWFLt7vGCT7,rG\8nGI EI KJGI JhjJYZJsa K&£^ L;ӳEYLݾ!s MsRMsOH8bs P52PD*DP rl=QEDQ:CSAQAH5_FQAH5_FUSS n S&h S*$S//KS//K]U&#?< ^U|kVONV3H[ WYbjWYb? W5gW5gW5gW@СNY`A7 sZH  [ c[7s~[h\0^R]T~ j ]1h]0ɬ ( ^~|d^Pu_ӍB _QE _c`z`W^F`ňAjs#`ňAj aaCj'sbQK]bHbD !bD Kc dAǗud dS;e:.ڥ3 eY f(uf- f- g h5'h{vRh6ڲK Ziȣ i= jָ/% <k-Cީk-Cީmr+ mr+  mr+  m;4Qm;4 m;4 mo0 oz tzV9!t]dBuP!uwbޛCNy }yPիKYr= , 4z+?&vOmv\)]Z v=WAo $f%jh2LjH,s}&w*a&NDL+QtJ W8c^SkؔW+aRrZ[zT% eC(׎[BSVZl~ | c E"E $ -jitẁ #MNDR-s?K $[i$[i$[i$[iSq=?Oq^ЬyeS \aͫ'q G7 & 7 &{m X'U BXp]_@Si=b aC$#ɩ{Y!aO> 9I(&DWAΙ&259 W6. "LKaMi} oGje3 ÂĔy6UÂĔy63ÂĔy6-rϛ_ӣjDŪ`]acx[8cAFɫ(ʶ,4K_ѹ ?+ѹ ?ѹ ?Jqѹ ?c 8c|*kX}&F(s_X-RbaOw;Vd#O]/lEk 3>lE4(k4(k {- 2 R!H0 x"H:YzRI ypл\a 2/8]Ma- s ؿ%}E6[m # pJ> ۂ87 \ߛh1 )( t쓖  W!.Hi Y?lZ@y?"9,sr /1," "Ҥ"x$Ҥ"x( \* g \*? . n? 7 7Hœ8t2b<2 (& _ N^VL#H9`#,E?;G|S )hs4ZF | ԣ_LZWrNr !x^wgF] 5v͛"3 ZzQ%뵩7 q?o0!;(! U "pg i"pg #UJY;$qYߤ c$3 $%& %& \ &c (>&@Q &@Q +'(V (.W )a<t)zsG.*f *qSe4 +7(Z,0n6FW-/]=#.Q] ].?*hS .?*hS/S/&Y-8 / Z +0<ϛ1?2L~M >L~M>DPP?AHv) D~EؖÈ aG3 5`GY8b. H!?H*.R{2H*.R{ H*.R{ H*.R{ H*.R{ INYINkIдks3K ~? My3W2 NYN5W +OU@3DPa P(r3RJRVP]K S_[@\ Sn Sյ EYTd,| U7v]YRUSĴEVJbAVsWTLX¹9Xz[ eXz[ eX2\ Z!qʾZZ_Z([p"^I8#S=?_#_Oh,_Oh,a_R}~؇X_R}~؇s_HAm ` y?a~W'a~W'abC:ޥ`!d]ӸCe>_] )f.4T$f.4Thl?hbގQ (i)3cYcxKim߳iLAil.kqg[m@[ampn$oOofu et!C,vNH1 tvmyM"swr xږy+8CR yLRfY{)tv-{~v |SH; \.}W}?~z)  ~FVS~FV ]  ] kN% ,}s,}gurrKb#r9R* (CT"m_p +L ( G;fQS 4N c&ʲQ bvSK2zkANZr (NZr ,>UӮ>UӮ2.Xi  Ws(0 4OΠ+kl]J\w|Avt| Iȗ4j7jG-4I- 9 day Qm%S oy >qoUȍ0`2 f7_5ZYW 'os>?r jLC+  ӟ $L!$R L!$R L vvHv%!nDݚJkw3N H ߔ}*D F7sS X_:jZ n2y)xe lsQs Y.< '<SZ 2\r7FkWlW#gX a+K|ýns,ݑoql" ̷f  _ ;]] &/: (I-j6E?ȿԈ=Sg2N| Oi~ e @r; rt#rtDgEΥ5 (Χ ? ϱJ,mB?bQydbQy!Xь!чJօJօd+͏ {"pot"po i8"po ׎KBa8k ِMP/ِMP/| \cڱnn+ &xm !ݮK{O{Ohr ߰B&D ߲z {)w_ $E-_K۵/,ѽ_ D=}ݫ}ݫdX{3L髄חjD$ ^+ (nzj0ρR?b 텂>o\%8-;|9%8-; jXjXGfVY zk/ aLazQu-NN&N ~j kU`r i+գyV?:^F'M_4 3 3x y$v M K#ط J~eS÷N]T%?> cs$ s$ \ "<+Z)a׈= kaZ`B\BDCN '8 '8 '8ƾtd\9#ljv  TfCfthtftht6-A?a~@!#Z~ + aPIJ}vZ6& kz\|zmk7zm2\\_ " Tg* !g%[!&B+׫e !!"iS "l7hx .#Ҝ1f i7%&5k%?6M#u(psN(qOEcz({Oq([ޭ (.)ey )m*O{V +uͳ-*t -f :.*k .*k.*kL/>.rR/n}$s/ 0ć5F 072R)*? 2q i2٢U:( ,6ļ? [7 { 7 {8Ѽ $8tR`:/R :{xv;A (<.\`-L!Q>_d/ !P ?-KаK @WhRB'w0!|D1qnKD1qn E_uRFua $(Fua?F1y$G[v HLl7 eHg JЀ@K0K;NkvL1JjLzCME7yzM ѸN {Zqx P0}Q)8($ eR+fJT_pO ET_pORU7`PVE8f7XW&)XW&)eYd1\ Y[|Y[|ZGu0YZGu0Y Z5I|]/r7 ^Q7^Q7 $_ngz _0h' M`=́_`=́_]`=́_`' c,O0ۯ \ e JYeF)/XXf'{bT fp25 hϔ2K iijvjkF@kE5Gsm&f8‘ n}۹RQ qz\y qO qf+ rĤ |r5 rr4ds+!C!s+!Ks+!ds>osB^Y s"B+vDDINvDDI vDDIvDDIva vH ,x1{q cx~Myx{F>{&ui{t U |HF& }:fR ~/0=`} jq~~M|-rxC6= p;gSp;gD/ jSD/ aOF \m 2|f < ?p5y  vl]&%~D]&%~D| &%~D yƒhK?U ;;O ^LLYj% jq9 #Ɇ.YQɆ.YD: Я $L~=E iqݩ J k ,1@0r*N^NC+\U~ . P4=y8&u= h jUm!?Gz&? Gz&?? ҬUU'ҬU f[pMc^*`e)jw"e)jwC>  ,\[ dddIIJojsKTuQTuN6 PK .ʖDA H| A H| ip'ZmT -yF[I֘ڠ1so+mv 0/Lε 5: (=rv|s  GݷRpQ RpRpL%K[C# &6 hJM| $M| -R SE 38UXۯe >u ֯%C7 5< Ǡn5; R?tR?]^aYVvU b% "2HjQ?Zo6̎Xk? 53 \y %fy jۀ3O %HYB.J, c\u>Ժ8?.M ׉o ׉o 18c٠c@lp٠c@f9Ğ0dgAݩ p~OE|^ ,sC "Xl]  o2^ \Jy%敢g#--,kr1e]1M 븏&<L 첞U LC{(Q? gy `:s F> in7pB `w}vq_K,IV L:8Od5ھA*b<R/ $;wNSiX^9-5tEzGR ]NQxCW^Yۚ>j  h-5 h,?h, 7"x\-f+Ȩ?|:̢j_JnL (^9)sT m`QF]@J RO  Ȳ6"Qw Ȳ6" ά7AY  QD LjJcC -qQ /]bfL Y KxVފZZjO՛O՛ XaQ3 XaQRU!lI,7cq? s`aj6tAGnckSnR ckSnL~ uL+ l tִ c S%H?!\B̻V!j; !%[V! "z<~x "^\|#?l"j$]>A ' R_ ,(dx )0k-)0t&)0 )?*5v+"pa,qo -2v-w/*m/*Y/ %/x/#/$0B.KUD0=13*\ 3*\:4a| 4a| 4Sj9 jWz9T<: |Y # :F=*FD:ƍsM ,H>ZxH #H#_Q sH;WƗI#FZ\J "K<K<K<Y-L ? L콕؜N-R,5B 'N-R,5B g Nw͗F ,PF3X YPv YP YF| YF|YJlBY^ 6[Q\\+j i]R2E]fy_|i Fj%_=_ԕL`amS0aaB< aa,$icd9 cbqR/cO@dCS?dʡ"@\ seYG~Ke5q $g*^hR~ \iZlbiG2 iqJj0k4F kTwm> m>Ym>jm> m> mW V*mW VmYC8 =m!&|og,k oƩ- p+B̝jpߵ3iq$zT\ + r[7" sPMi8tbL $tdOju-8u ve}u,vl1 w[;>Lw$Lw$L $w$L yO5ړ ,XyO5ړjJyO5ړ9ypL0yÏ ~ zpFz}|Cf= }|Cf=a}# W&}# W&}# W&B}# W& }~D" YV V΋ f8! zy sXJtwJA4؏V^+ a,˘ RLkz-/-yu  ᇲ R&o *4V-Ŷ d<`恜 Giii?ij זD8k a |$5r4؎ }R_(|;Uf:Z$2ްT[ g_je"j_"j"j-&PĬF* ̽eH/ T+m>sNqSh.b.bZK$ FXDMW0DMWDMW Ɓ?y Ɓ?y ,)ss!8 ; {|L lS?zZ¾SzZ¾-Qt!nj.L#_ ('6e g /f  qESJſF[&ҹܣ i v vl[cs9f?+^ - ( (Px[z 3Q8^?Q g` 40ɻ@x4? 4LG<[W^(Kw-9 c) ~ Ӏj a-a4o c S%v $ Đmw[7O @,,% 1pӣB # 32vG)S y4{ UJ&̜ Y/hNˬ7T IyyR̉y'I; I; ҖGyr10ut6ډi&OgcWUՋtj2?֖8S ־ > ;_HR $ pXUbzQc|dU UWsUWVhx%N"M)`*¬Rs?ZHiQv 1fdw1fdwP`  s좥N ) mꏞ] W! ,J_ Aw) l #_ I1crLk {xO`t {+[ag >]csWXk ۥnRۥndv9yJ4 #6~Q!30 5Z?Z? NegAeg ceg # pJ%}06&Qt m :Y{>Uu: ~PF,J d{ \C+ [<T" JZJ jD L>D L> jk jkd q} Ő Ő M2ϑC shQc?Ȓ< 6_^5R Vv#x׃e&RKI Y7&Y7Y7^aOYve H%Y ,sa6!fGO : ātR;C׋&9= ()l )l }~$!X"!g& #!sSkr-#QHJH#BP#FN%#X %jH?~&%Im$j9 &=&&mS&Ha`K 'T(8 v(۾ › " - LR-0Ij.mVaY .ح 0#M0FQ*90MeP1VO =1VO "1hz#- 1051H t2Gc 4V%& \4}OqvR6mjb6 Ct 6瞷DjD:6瞷DjS6瞷Dj8@ʨo 87 9A)|K*:];zo$:o|;0bDkN-=N< OOt sP#Fg| P(1 R0d#R_lR_lR_lR_lT(;# U# #VSE!aYPZeaZuj,^aZuj,^]T˓_z^]֘S_K_dO`  aBm ?aQ4J+bd # bdy3&[b3D2b3D2b3D2btc0N?dZk B \ dZk Bd %e\7A leig iif:,i sSiʊid ijn|l#j l#j m6\bn?;`oRՄ oRՄ?o,JW| p}hwKPpp(. (r sm.)_N:ssNvusxU$jx%5kz [ zTB{TkLye{j`Q{nZ,P ! tQ"yÞ/?7Z cO7cO7RSMZ SMZ @!'!kĂ̹Y +?EР{*菗 (1XT~8 / ai-"hekկ^ e^Ӥ5T v %nhcj ΍ t b sw={NObN>3(%DbB$?O>ƻK E} 7ed4 ];my#0E; $σ+N +`Kig$B_jO#R#RcG2t 2txb: V_"c΋D᫥lZ} Z}*\YBLSFv= , DR We\ t޾I%t޾I?q ?q&`8IbP\' n!yNɿ/gszÑ<|Q[; n]<zڌYj_I ۶αIY t*5k.H% Xi7 i,|ʹbS )-1! )-1Q v-Q%m<}"f|م- aAoaAo r_K0 "~)v%-`?5oegb6ӺdcXgnW`L "L.&NxQYHX{3aǭ.VR8ihuN>?4i I 5J)O ܼ`W sX.$A- iN$&6Vj r@z? yN/UDAE@K!bbS ti.!ti.!x 0 x 0Gp.#WIJ BGG:ԒJf) 6v= He`q~yܬ~yܬR R QRQST1z Y^ ] ') `Gf| #D_f| #If/ 'K? 0@@H J`w6' s L3 ??mCR'Kj?;6g:] :] w ^w ( ӭc`v.T 3[5A YjGu*N#>HXTQ?c< l?h_<?R A5<-.AJVAi(ybAi(yb ,Ai(yb CvVvDDD< iE..NF$ FCUZ,? VR ,VR %VR V=T[ Vyn[^v8Vyn[^v WG:ۘx YqgxA! Y# 9R/Y:)fhNYY?Ziu[NNԚh[)>$\sdR \8 $_FĶ^ _w]_H - ` :bʄC e5N g"vMgE 0asjQ:WiL k0I-A[k½m ( kVHkVHXm0) #Jm0) cqFp (rv8͸ttn,+tq:TuFE uFEsvn3Xw\`!SswĮ]Ry֣{ zwYY z{[Cks S{[Cks |n|KA}a,#Fs }a,#F ~$T &xV-Z>  O! $k$>(9>q :jtiL :jti Pà ;"$(+]`VvAVvA('Ǚ hV@!UzUzޖq:P|$NY |K/ 'w oy5Fz U_xY zR%vW 7ҙ ( עC;@  TbLS ;3Dp?;3Dp:2P}H2P}#70HMenӶ'\Uw"Ii̾NMN r* ruexQQuexQ!7*/МAD /МAD{cguK {cgu||d TN( c@*WfB (HWfBj<< <<S<%mT1$%mT1#FȖi]K-`Rڭ6]Fc5mJY(5?`Nw ruyo}.e $}.eh}.esm}.e }.e }.euOd0 "Xٴ P]P]s#@NbD cRg95i75Gij /4_x-Lf羶8R Hn .I̲Ke I̲K O3f<$*.| ELRN  g\EG}PtzށSC'k5R`U:ģQM9+=N+=wGxI ( S,υ̌y [*bó K+^x"Ҝ$'kRK[ K[ ڔ+ڔ+i i - Ժv"I ɵ $$ɵ|B ך$Iw84ך$Iw8 ך$Iw8ך$Iw8כ k+oBq+oBq+oBqks?ځcZکV- X"LRLSV_ܶӂ#?秉n5"1jE,]ScqYF $ޔnq X/bk ZQA . Mh+Mh ڦJF`%Q N k {Udxzz?xzz (ɋ ,T!铡$Ts+ v s7RQQz.  +@$EA  V)2AwDGvL r(;Dc^Jib)Gb)"b)b)Qb)*Cbt *Cb l\fs!tWP"}dpYd}dpY 6o "6o js ֟Bs ֟ lf;8; p*<Ik  NB&珙 + Iŋ;P۶  ܍G!*&YYwlO Ggk Ggk Ggk /Y /" Mb Mb# ڀ OW+ H4 5U? 4O<d mM _@/ Q _@/ju-ݥ# tUntU unm$]GF# F#?f! T  <Gd~|g *|g G :5#8,?!*} #-9h#Z QR#Z Q#ԋ#%'_D#fj%'_D#fj] %}W'nO (>:/ (>:/(OaŔE* *xomu*r< *#cA 3+8=?0EV 0-R4Q۾*5h?WZd95XZ69W0 ](6eCw2 :Ȑ:4| :j T ;\Z= $ >MĎU>MĎU>Bq,@; Ayr ,AKԞ C AS*SB bGtB°W(B°W(KCf%sv+E> E8Ǚ$ aE$GX H) HkjW[Ile\ICAKd LߟMS` MS` ]MQ4~? MQ4~ M|2pM 04O6{.R aRѥR SR®vT);5(Y TC +TTw'MsT{Xq h #XD Y yb Yf ZZ]kE]L{6k^V3* _YN.m `Y~bP `)0]`)0]`)0]K `>BPʻ `A3t*a`9ԧD#d RD f Qg%kh^CFF k> N +m[_/nz+mpWcq5ҫr^7!?sm?YN?svR  tvuuڅ atիc=]u(Xv<l \v gNw} ax ?794xOZxOLziau {+"x| }N}IsF Q 9+> Ӻtt?Ӻtt  P rma]čd9dK ѐwo a_!c j xn}>N{kwtw 폴?0P@+z.>0R'}u٠ 6/G}0%; ] 7e@ # Z1u-:/ `0] MȲGGVwwoTOc4_c|9-\ c{k<~Ȥ<~Ȥ7YOs2:`&wNF-9S? sy㝛L y㝛L Yc Yc$:]3 :]3 $韎Lc* e* e ,G 6* YpQ8 ]/ob: ,ўV bh3D bh3[ bh3 Fڲ H7SdV s}.A7 \-}.A7 ,+}.A7j|Li s Oܱ|듅|6-k6-k;d(Qr5 bq - &A&A.+ S (cf?o-4 ڽ L0t=L0 L0aC+ԥ lfuWLm0 >Тw.,F|()v#, v ˳,aCz#^?2* (.kiE co׻]܇R9T!lv6}LS"޵Ydp)*))D [Kr|nwS@EF. # .Q-R^7#rӰ( d٪[Ms (?t S|sYq U͘H Z %ꟜSn i;jdd n[ + Zm" R̯o2IIo2IIo2II0Gf >sZi\ǝ z =q7QryȬ WP+ ^s `X i.+ \]|`.~1ӯEu Eubjz۴!hR$ `@vK0Q.)ikP ]- i ~zSZ ~zSG-kG-kG-kE{#nS=^x^xD# ? i4r ᗦL h] heL ]| vQui'Yr N(u l:<=!nO  SR SgV~;3tUmu^ HS|mu^ HL'mu^ H$mu^ H\XKCZY SJ ߈ [?׽~jD rn~sߜ_ NJj ۨՙM 2x!"rp a J`rY J`r8 J$"!- "=l3o7v#4;[$`h&J$]0x$`1g/N&.n" +D<,CB,CBa-0}` (-ۧXh -ۧXht/9@' \/Bc&"/LpCM (0 0$){ #2Kqt_4#zֶ ,5&@5&@7|3VT9?y s92F<U$;7e>t&;j$)] ; (HoU;  >Jd i?&ܔ i?&ܔ ?擵;AYDZ/Ah3# ,Ah3#AlO5 -C3y]b}F3Vd. G&˨'GGrr>HwmsIq.I\KI2~Ln MB `*Nh{S<Nh{SQ4) QZl.YQv  Qv  mQJw&R=5kYR 6?R ~-jSZdSg922muS̙dW^D2t -W{@Y|K`(sZ?P!eZPrgRZT2Q;ZM#ɂ!HZM#ɂ!Z8 [5 # \T[ ^SvE< a@jb~Eb1[!Ne S eR7Dv} eNe f=fXkhBLk9,dcl}+im)6nKs7x nnJNovs o pU>Zpsjq q q?KnJ}v r4K smYO[tj[At9fj8 u@R3u@`v,6BwaHnwaHnwaHnwaHnwaHnyCWS6 z"'Fz2d }HǞ|R~L7 I~i`؏~i`؏ >3M4L8T ɧ|L9[k/3]_m.Q%:#;: dm , Mb5Jb Mb5J`Mh $ /}!- #A3?A3 ORZ^v6m8 c.s c.s,KmU",Km406[`65\YXo}an`mqzJ? zJ zJb8M_kV\ Rg_RRg_u#Fv pS% T{ϲOIV@~RWFxSN/wVǹmX[ \6LA6 nA6 A6 )l;z Z;ztWY{+].gm| eSa  :Ypv`]xsB,LV@L<9&v&bw;X9K`;B!CN+NGގˎloxsg? ':B1R;{bY s`s1 $*:ch>:ch]p_Ũ#+etRT metRT s etRT Qߘ{ A# 66 eB|kKiX s);9&G oƕ²Ir4dDm8 dDm8ecSpB Ñg ê^ˋ hö͸þTr ~Q WsR fƨ` ƴ`@QM\Z$9ȷbӑ"%r7'"%r7'F<};#Lͭ z*;]ͭ z*;}xQ} $% ..Y? 5HYCϹܰظ АL АLx.>`}{5 \ZJ ҫֲ\4i\4i\4i8:i3}8֡U(wy׸ߗ ]=$ωueF @6cHӣ AJI|:߿*e: rn9 vk? SFNF.< *;q gk gk eG_%; +_%; cA'Y \Y )ۏy4녽MdY(ƣ棭 TWEYtWEYKnjR]Na!H -UHG/Y *f  m2΃M>'PAPoJ((LDE (GLDE!LDEEWv[^ RR LJD Yb%0@ @ Yp:õ q#B" MI J2R @PRw @PRw j? *c _Kӳ"  ( uEË? cOF=N! Ohͳ .a~ru .<&4;9N Z;ò? )I%NM,};Y1^ tH| #'ǕRڭK  ( mSmmL>" (E{þob*ja r r +C.$5ceR}ce b^S C !yi W"?"AL"Ot"e\7# Z$,.  $Tdâ:% <}t% <} m &%u-'۳5(;_(~ )B r~*_ƙb+@ɛp,+zZP,rp[Zvj,rp[Zvs ->X-> .2ܘiz . * ,/+/$-:q 4вe6`sL7:w 4k 7:w 4k7t|D$7\Opa8SA+:7_! `πIR>Rg'Ԯ>Rg'Ԯ?EQ?ܺLb?С?[ @Fsp! A2הLAKNBIP?DtE0ĤN F.`zPHCJ6҃wM mYMhMq.,N9f N9fN-w5?VN-w5jN@o|OZt s P8?]h$Q@SQQ@SQQhJQhJ|QjRen?Se -Seq0Tf z%aUYoW&*W2/# Z-h][-9v a\gzy]@a^]s@ c^]s@ #_xs_yIO ,` Zs`HQi `HQi ^a<}zb.K[bwYuEN bu,gd&j #d=-j dԵ/ (eu)ҟYfpJ -f1A ; g\iT:,viT:,v-iT:,viQhj(|j(| j(| j |w r j6 lRK -lO&#l(1x: lIKZ #m ʳC{NnrN  nrN oW, (o'קrD˚. u- v Q Zw&z(@w&z(@.w&z(@ wLǴVw~Dc$DwHdwHwwNWxZ% Mt,xZ% M (xQbm[y$ y5= ye!z3&|`R{ y{t_`"D}12! e}^ , $sGBH g$ va!: ea`E{ 5WH-BѤ >InUKZ ZaB{ r" !T|ׯz8 ;A$hY$hj1 =T#x fìj zBzB/(K cH74$ 17q >aR- cCQ-<n&aP "rxAAAtrjtr {uk+ 5 h!ohdM mX (%k~tb4t&tb4to#g,d&ЩȋxMa?Ma? mɵ:<W%f %f VYٞ VYٞQ]m9i# ̈`lr]0` 0`йHK<_ӈhTȱZӈhTȱZԔ.Т[AGAfDQx? O779N7>(wG`MQ ؚPRs]7sSH*DSH*9LOlDۡ1"?l<,*}u d8  V ߷V0m߷V0maEDM - @ F?(T@] p dz6Yo|MRo|Mo|MQo|M+\/b@sH["%H["%(a%)s& bv.vE 9eT! 発+hgqcGI]+O(SKq8Uɡl8K "Vp_s!L v JtK$& bxOVRM]RM] &ŌQU^K5QU^ : Z,K r+p`K Rj   3DD?[EQ ;0RK ;0Q ;0]}GG_s2r\W?aܽR>j >{!<2@aG @uyɻA =$uAr;o_l l AykA(u^B$? CKi|G l G]L]b^ G]L]b^ G]L]b^ IQaIQaIQaJDut K6g5AkNIL?`/ sjWS jWS i|Ħ #E# E#b b b+L %&y +ƯP2)uJBf lBfW` f.` ɽ$:X,NX, ʙN,Kˏ"oc ' Kh s̙LC[Ғ*1e: #41X^Ƨ9z@v>Rկ(H'Q~hח̾ʹ ƪ%v ƪ%vR.U5 ZAXILݧ 9jC95Y j }P]YG5mM(k D⹘-"m m&\M^%{$ yZ :G m~ "Nf(gZ 3uPWNC3uPWNRٍ%OtD9Q!c ︹+r%R2z5ýf2z5ý!^{y 8k-  QF ( RPjE A ` ጉ%.èaIՠJ: #r #rt#e|9Q+9<?t*'  ru!pj, L8` HV~ 5;e@q _M %Izz@D %]qR[&aTK[&aTj[&aT iiu: ўOAsdAsdAsdBǪ i /9FM  7Y K 7Y' @[ 7 @[  H]t  S2WR ?  hh\ \ %s fp,(v (vdHpR }? g89b|89bK489bT89bf")2]m%]m]m75/ 3j|? Qn?KffLss]&<Zړ_kxheb )%'* ei=Zѿ" , T' $oAmj {{{{Rm"'\vR"}Rhf#W$2 -$`Iz $t0 %zebQ%c%c%ފ!2p&mKmh /'((5&*\AVUK *huu^ , i_, i_R-f, /yaD/٠ c/٠k*1aշ:1aշ:D 2ڡ 2d@1R3(bE4yC ;5>2 7f I" 8mnf 9 ~8sL 9޸]:I;:T)$:uzҟ :uzҟ :kl[ U;!sS<&KgJ<&KgJZ<&KgJL <#xI<ēo*>*}k>Z( ?oڇq i A`X!BPlefBP!(!Bj D$-DBK:&F3ⅳGRG.Hb#ޙRJb{H\J"SdJ"SQKÜL) 0, M@:4M@:RM@: MGJm M9|Pa:&|RkSQ-Wb SzN0 SߘMa6? S| U&O"oPURby)|Wu Wu [XO'B X!{J e Yj:O [ aY[ 4 [8C@|]u2b^ ( ^? ^F+8_|v`Kf;a FI$?a FISaIaBbr lbkvH $d(aW e43e4Q e4[g\aN;j kosA l'vvHǢlo+$(n XnX f nX o3p?Vs)p l} a p܄E֔ q̅/ rA9gGtsM7sT *uuuQu v5Gs"w! oLw! o ww>UUwN^dwӷ0IZ wӷ0I wӷ0IdxXp;xZT69xRqXYy&Ɗ ,yJۥ {.SKO |{6k pDqpDq, {2? & K.ZK.Fw {&YE{&YEzH cni cni "KR |s'iX aСHh $ %:*Yx ]`I* &͵#z e7͵#z9 E&b=\ ޝFto]E5 @kĽ\ CS 9Ȗ[0>DR>DN0haVY5޷? cń@g o/t ,:> A)i $*6 $ d \ hnM Ea\ 'ggF{ n*IXh 3EvKC ޺  5f8bSw*wQYuCD uCD inCWKlx)L$} $ Y/]466!j466! )ws%05da[S "9 [[/K [[/3榒)) h/Gu $Y9%, O% \xyI` M&w. $t9`Ĵ F [|ɁS #Fl:S  @-t硗Wv硗W AHa,F P/q #“i]v–G5EyO EyEy1YrvrkKP;d({ ;d({ twȘdȘd|) ʮeui DPKfh $*R͎&L %E6Ѐ$i=, Ԭdɛhs վػJd ʸPj)qL=g׎١z iיKcb# [ \  >ӎ2| >ӎ2 -BR8ڃ6IrYڃa=vۈ@ 1sے]աmۮRԊ $X<|4 w'Ay1c"FnDo?ݕb= ݳ"6Et?~JX j~@ ߤKJ߈{!`t{6DR sx3}T ;wJ;wDf?/#f?/ euU佽 \垀N36S`e``w׳W4sBh#-kh?w%)Ew%)`{A  $[~J .. ~륩O ɬoUjEt{Y. P)3C2|LPu a >|pM{GQ@ (=`y X@% =ޫH+e  pe3ʵ  +E?Z ( HV ڥclJ?p<a p<o3gyjL_' cmSQ , ^ F  N$Qn j <8 u@ H  H }B hhVy r#c[=`<s~ - Q R >7  >7x9  x9 rjrt:=l2n>S!quEِEe<]pb]7/F<[~> .0 a Dt;$!}<[P!g:,"Kqs$"$]j$8s$8 ($8 %4'r1P'╭Ea(^?Q)L=)L=- fmc!.ʐ~ .> /$= 1E 3^=3qާv3qާ 4@P g"4 v#4ѻ4 o`s5r~]6~D7xkr7xkr7xkr 7{@9+؎tt: Oj: Oj]: Oj: OjR;w4݆s;1J ;1J ;eZ;eZc< T <>ίw<>ί?=ZE ->B, (>jE?uU">c+t>c+ ?<׆C irZG3{z #IҘ: $JZ#J-v,MRNhZZOOsZ_OTPA; ]PA; PA;uP*RG-&R>!R2I0 ,R\( ;R5  R5 Sbq (S݄ Tƺ9`$T2o b!TwcT!"WY%u +Z^_I1Z^_I1 [V,: X[[]đG^V(^V( ^8e _l+a`]b=Db=Dcаdwmke $ ff_(ff_ g7Qh$. (hט^ $hט^ hט^ (i6!= i<:jg[WGKj<OmsdQ^2oI \oDsVypV>Sej pV>Se q6o;dY q1^6 sS[uuv}u׀^?jv>sM챥 v>sM챥vɡD m w('!Nxx<+(LxlM zV'R}-* ~GVk`J? 5^Jed:V#||N ||N `WeR8;./π \9Z9N j`ܬZJ U]e U]e.싷xu>mzmz."ܝ ."ܝ \G$i GFEum6֋|V7Uoh 2z{505 1U??N jW??N; Gd Oewt; a Oewt;t Oewt;s(7FD @wl3#t Rv`L Ov`L ss=sA$ od1tLȫȫK ȫ$ t# lq5K-}".& b.&bWtd *ء O H|(u-̘}uЪ0Z*]ʒ%  !%$ZQv RlZnXU\s.0 .0 .0 .0 C: 4hsqsv%svsv  +'˥^n˥^˥^b b ?5U / |nƪ-C|L-C|R-C| I  ,;E,{ ?JιN݄ z .l3ExzZ ƲWl7 M!1Bvǁ !Jr#+Ox ,xBi s-l [j ^,X ?PSë#EIm=h Im=h aЧq {Kī ҈AsQbҝ"Kh'MS nF rtnF rRnF rnF rnF rZ nF r lI ak aY g;N(hHa" avjkL$avjkavjkߞHVcZ#<q(h}L<\DfҦ_o +hZ Fj>O@:O@ ;O@H YizdIQˊpO \JFAJF[>b ޗZ (j,ttC^) 8 8 r)~r)~R*V!AR (?ʨA? 2 G$uo_]w @$s %Y Pa̳kMlF(EaxA 2n;* eM (/N:/7OfŪ9i?Y-UtC@K {k_C OD |z \,8\ ,8\?6 >O֙ H q" ]!< 4eh 4e jJ8 :> . :>  4 g C@ *k, a6[$9X`_v N:O"`y bH i@]] q0q0~ nsNSsN:Z x@_Q  de! !7 =hb.Kp zR 9Qܭ mx;"K""Ri6 t % d0 $y!3{A7> !'K! ݌5?"Ea׺2d"?IM#[@B  $$48 $J:aj%'5YS(8N| T(Y] ,)ع_)>Pc)Vy_ g )K (+$,#kz J,#s-frF-frF-㗵Z . l0. l0/?R #0p*R04| $'1 x8`K 2cg 3]u%(3." s4kN &N # 4WD?8YZ{ 8y8 ]* i 8 ]*9|#2:Bݖ;ޢ> g a<-F: =8q i?= *@֞;u: BWAh DQB0%SCCZR- CqWcDDłn & iDoEIWM EIWM E%u'QFS1GO˜ Hӹ4I+T.Ib-|Ib-J>v J>vsJ~gLL@r3)NO?NGC e Qg(_4Ri*]Sж& Sж& iS܄qI9UTlV\Xm?%=6 Xm?%=6Ym{)\?z]% 8]#,P_^|FV _`&mruna7*ة[a|נH"bnk cK/, d׸ e)HT e6Be@O#e@Oe@ODeNi$] f^VdUrfh;}~+fj lbfxN9 $f* gZ,l4*Rl`syu|l̺86 mPA na)n{VAc n } o1 p97r|D`?u(^p& u(^p&R vRdvvcwxKU w'1@9 wzآ  xS&E9xZZ mx}D x\B|x S/yKN?y\@yӺ+URzpaղ|+eCsK|_ÉkS|8Zv D>tD>s,K, 5kRx|)Oo1. 8s˥@zD ˥@z -!W$ .ٲ?? 3c3cg>A&N RxRxU9>.7? K UtSUR!m%Ep;B<tmj [o1)[o1J iTlb wC싽_!T_!T${0:'R "I<1 ?$(eq #0ňolMf ^+2*jȥz Ϯ1 }<+< UQqUkaUkLf?|b[Ws 4p1Y (k%d2 '*ʹ i'Mxϲoc?$n0 ,zޟO \S ȱvȱv"O %=* j ܢ>*ܢ>&#A"`kb+ A !( A !( sU! F7[;9{Ze .ܸk" ?v?00qoǥN%5k8Z5k8Z 5k8Z 5k8Zu䩃 8[] %{K!%{ %{_D R_D;y]- kjJ[6 !c}].2 N \f*?$<%  +څ? p*ȗGl % ~d ©֙? sCpx'Cpx'cN҇b̤XRRcڝk} ls&ŒȬ+SwwPfC ;3QW QW ,B@k̭aeׁ. 9@_u , 9@_ujϿn j}M{wd>xTӈz7_QZsv ?O޲B< 2A/?B] \B mQr3՚~Qr3՚~ؼkxu}e,262]DX[k ۇ*T v۬Oj "A#U l`C/͆GG">PpHd c %N] m= # dw- .צ+Qצ+Q!8צ+QD1!WQ9M~5/oxr%(`ˉ$x $xv$x lL mj) K?t8R[7 f \a ̋ H4j1, {[V    "<>jR 99t" & iƧt V2y -Ձ $ & c :M*Y)dKUi[t]? ]j Hq ht`K} 2 i2 2? c _ 6L^-{ =G+ a_H[ͺ!L5nfd gTY?8@c OHyfsօQy    mPv[!5^d!C h !2b l"7S #I0!FP #z $'&$ߕ|%[Ԋ?%[Ԋ %; z%^N&Ϟ &&&&3L' &V{z c(( : (w#L6K%)n2ƵL*L8X Z+I'Z n .4 X .b~+DQ.b~+Df.b~+Dy.yM/Ob3 . 1~^R4BbH5+5& yQOL5& yQO5l?'Q5l?' 5Y5G j8; "9,O1;;NfA <\eQb <\eQb=`N R >? > ~] ?1K?@@[@¼BF BqKB SB sBO  C MA D|Yu F! G 2@G 2@3G 2@ G 2@ G 2@GX:1)H, ?HkxZ If6ӝ IB.~%8J#u >kJG$7 $Mf; NNn"#P۾-?P-I$ ,QAbkjQZ}2QZ}RQZ}QTz'7K TK V WaɀWaɀYMdX d? YL.?Zbs6U[ej[e]. _7F1_O4*:`pSb?snblNHM? bh $ c"5Z`[d£eD0<\:f&O fM ihCJ3y k_l!x3orb[[ p;|z qnt r n ryt͒ tΒ}  u 9wKzyzAp'{rzedze { i|4A kR|4A t|4A } 5 } ( ~KK\ݖ ;ݖ?-a5J ՐR >RVx^ = 'Al~@[ Jb^" m~⻳X_,k֘p\\[ H< (@y( у_<0M+?n-pn Ùnjv;4s x0*m{[k"c C9 m,Z?Y{b cg PDb$$]wnHvuRTZ2 >x_nԫm Oh 0Q ZMf^h$Yog 0 {q s]; s3] Kg7E\}K 6F +.? xNqmL@?{, a{KǡA.#ԘK e v#< س5r \U Ӂx\l""g"zSn0 =2n h.oOp@Mp@MPLih/PLi Ҟ$).U@ 1.U@| M xL]ZwYD{ ZwYD{ &( |XNis 7;Yd cBflRWN'!^qm ,(t , (_$jk8mOd 3k8mOdk8mOdµbrX 7$L0E[ĔBgňV i@ T E8u|)Z)3XNeZx: z \AṠޛ ̿0h?͆r P&]RtvSo εoεo F={b~l׷=) f% 9S& *>Y 7 .i" om6 JҸ&rJҸ&rCJҸ&r֫eVr St; ?O?O?Od?O?O?O?O?O&zۻ-2N"?1"v1"vcK ,UᚒUYE -:/ǃ2P o~zF~;jKSd@ mUPiUrKUPiUrQ\vD)"D) D)B9S?<B9S?<쌢 sBgt 퐗\h5qUR xI'dp: .hVs鏞eR {N N4!갉 ~~e9~~e s 2H 09y`^OHZݰؤĐ2(' Y Q8?h ѵevI5=RQ I,R dCy*,] ΄^ zdcCdc s>Dds>DJs>DDFs>D s>D ʢ s?ws7v K,:X<X< (eCJ IUZq4 P ]m^.oR T t1T &[lPuwql ٹdODB&7E j$oy-Tv  ` i * O na l8 ö +> +>: +> s V}t 4@}0! w=1 w=1 )ꐍڎ sЯ3 Я3K֡lU[>U F*oJklp*` ?nS&>=rEOQ:h[LHKsH&bԚ vdD }!6Ps 2(%$Hp7!]m ʾ7 P3z4dP3z4K "$Z) ,#sd #%F``%Dqz*jSR+f c,91M ,E7 ,Wj[,**$,**$-Baj0I1>e0OJi 2۾]2$R3e΀t3 3k 4hZ 6*١vs6*١vt6 " 7 r r7889Ōt=|:ta ?fIE {?C@h;@h;F@h;K @^p, l@&f@׋RW AT(`AAT(`AT(` AfaZC#JEmѮjE؏7ASFh(ק GD'b/D`GLh3I4{&I4{& I6CZ?I6CZ?J_+&m?J_KxYZ M9+QQyROk,z Q["QsĬjQifk ,Rl5RlR*&wRV9_2 R𝣩u Sv* Vz`k V<ZWڨJ$ X|˽ { Ygvw. (Zzv Z̻<6v Z̻<6vs [ e[g*|1T[g*|1\!VXL \!VX\U\KzeV; ] U ^=_"#%_0 _Y0_Y0`#u`#u`#u a^6d b8"z?b IcJJ8 cJJ8e6u=e@Cke((.p+fVh9ֶ hi9?k.Y?l͹:.Nl7 ='9o OZ oFvh'oAl p2> peҰRpQz cpDq˞o gr87jr87)t'2 u`mҎ u`mҎvb6 evx7!H xkۂ#xhdL3s!yr7ޠyr7ޠyr7ޠyr7ޠyr7ޠLyr7ޠyr7ޠKyr7ޠRyr7ޠzfЍq #z6s}lr{W|ᅦ "Oa2z?ȧej M#=M#=L TxteȽ[ -I/ LqQH 't\hi k9Ύ 7YzR;'B ;'BPTT; TT; upwSBqI BqI (BqIBqI WT +^: Y&߳;7{l%l%KAvS R?l ch?l #+pNP-Y 2`'2`'O&CHR8L@\ WW7WݫR%tAP .ǯ̨F3BsZ 16   a_xI_xKv 4$$  /x m` &aHC2m_ 's YmcT ct<  lt%Uk{sdk{s -^U/tU/`U/b*:7*. af6NJ&U$Rl aU$Rl Ĉ--RЁ}2)84 *f-kp \ ʮ TBb =QpNt[ ,c5JLbp$t\M~E i is5n3c0202cs (՛oK $Ao! IpdOH{H״{H״^t1:=6`"1# wt wj w.Δ4T f6#do kkŠ;|kp.[s :/:猡:2 % %{ ~ڜ ~ڜ ,ʲݼʲݼ $̋(GA';H4'Ò VS%o DW ҕ3 k"٧ S̢|eAt KkaӾiD٣3oSݟL xz .޳(m:,Ə aUIY^UIY^ڋ5b @_ESNnrݽ tΎzQtΎz`JĈZf7 : \ld "=: ~BX kO ,ZJ3ZJ%w $Wb'Ym(eREa pMD c I]y #Eɋnl[W+=f c]t]k!T H<7l|u_ r[`܊"F?01{wNsa#p~ .iu΅kl08UWr9$UB{DXB{$${3d5B % $^ւa`= ^v+ P>T1X1h X1h_u!`$hs zP m_ " Zx- =Fmsd_lL d_lYsFEQ7 +宱?3 `2F  0Qj Ӆ,^? K 2xMʮ#0 2xMʮ$ pn@_ Jh (O pы " ,5ʪn h X fs)#BKWj̪>W̪>Wbg+ԣM ~~]t#ΰK #ΰR _q>gjs{Y  kGz !󜉔!O`J!zh !zh "v@TiD "<ޤ^k:"<8U# 6k#gƁN\ #%^ $%ԎIX`i%gt&L&L'8K'e𤙨S&'e𤙨U'$SJ)EN)[Ϊ g*-  +]S~ (-93sb.nD s/3Ż[/.~[0ٕ 1v+92r|YR2r|Y4(~4A/ 51MF3 5Lqxv5YBD 6og6og6ʸ 78XQ* 88ՠ f @6A I  AL?BJkCqtVsCqtV & C[tg5 E; CFH3Z< Hw} YHTMv IrJ:yl5 (JI<ߊJmL*sM,¤1>yM,¤1>MdPN.(p \ N?PQT ( P?Q5P?Q P?QR'阸?R:̍ R:̍Re8VUԳLI(?UԳLI( Vj2eYWF'Wu OS pX X|X3~Y +[&j Yh}wrY}+ZpTh [.w; \-2fo\> m\> m^#6v^#6 ^*,H #^N` 4rn/+`gxޗ.`x!މ ` dT x0dT xv fpШ7?f/Kk h>& %i A(PSjowojtclQsNl:S͂Nm1 Qn(gX n҅oPHZ orhL oԹ5UK ,q)?'q)"r z͞ rPtd ,th?Dv4Nk0wN›n#ysdL{y ]y ]Zzo$EyQ|3 |o^v|aNS#  | iw )}o#D~ohZ = ~XCx%^. l ,.Q*~tt+ rCYQ,CYK g Upv kԇ l .ld i:TK~- (CO %d5'|`ȫ[ |a) |a)D ,~+j }ik }ik Qe)I ayys !qYHSR34DގK \AYk"\AYb\ /s ǿ Vel*K Dp :8)!<ჟL?åB TbZx $/Vo@j^8?) Ķj Ķj )9 Ԉbf% #;4 a &Gwi c ,0D&,0DsOQ =$ ciX(?Qw‡ r$ʬt{r$ʬ<Qi qq i|"^SADVla0[Y3^+vnY 2nY cpD q-g,Rwo]N=zY =zs8"L; 2o:o:)Gր *2uGyNoBy =®g i x; g=5R >5Rk@>5R 4>5R a/>5R 38x'C  Jl9RnJl9 SJl9 ˰ j1zj 1zj M1e`?`#ԣWYбu % lPa CD1CD1Hl8D@=C 6QM\| cU$ )Ve9FtQ { Ц6 #Er f[b^ d , hX !t' !ۅj:XR  h S 3  ?  l¡/L نھ TfN4U 1u5u?:1u5ut {#/RF2 (ӹϪKQCQgdaK"UK"UCϲdh.$dh.Rdh.Ko݆Y~rL ? $ !!I ˊ , Vt/y[Y֔^ !~sRD ~sRD|8~sRD ~sRDR hT e".?s.jC. (8A|8hR .s]8DaràβCv 75{ؿF K K!^'C s !^G_"CS%m #xH y#x2h#?l%[eƣsD&,7-'ʽ)LM)LM+lg*+,Q ^-$W/ Y 29웧GU2E. {P 2_(#3] 4Z( 6=ܙR6 7\N7e2%'8x:4:6]LY:"am$;vd =Z#OU~k>F%?Q@)%`@h CEK CEDHj R,a D4^!Dp~"Dp~"REɃ ߌ F{L cFFϼvH/Bs wH/Bs Hf'Hl?Hn I]Njg Lit֘ ]L7y (MEV?O@" PWRQ/RXNXw3IX{ r ZQoB[ts:[uo[ 7[wf\6],\N"-\hȓ+?^U?; (a)i , b5i cc (cMR52d#l? d(g`2kd(g`2 d2?W>;do4`Ef eױNf}-,f?Rhhpci]ZB*DicVILio&io& jC$Kjl jll2m⽥ )ptNpyW&pyFpE rh΃b s+BLt09V:tVqk=tr suq<ǗvK=7q ivAFBw)nATw)nAT]yZ{[%#{[%|&,17j" YivB Sd, k ?}LG ,L,P- r7>9 ԈԜtyN04 qWj|Yzm$<)n0UحAK*i9j%;OQ Q ? -< m-< e*c(P?Kq *HUaL6H@wNSz@-ߝwJ_>5j>p G8ÇiS jWg}lh}l I}ls-}l }l (a8< nw$vW ًTW~?|€Mh :R >s!Yd \ŎRl˲D -7^#cHlv PNmC ew8T  w" AHΥ@"s & g! & g!W &tZ7: #M W}Zb}juM 3 5"'5"R>]C4 m &F=GDtZ'C \PR :#[.&{2 19]R9MR9MasH 4 \brn;E $ dl xdl xE*WE*W9xS9x 9x9xb0* b0D ɲ6#={ {jai|UMO'MO'MO'MO'MO'΅63(΢RYt"̥ب̥ب[.UXilZ Ғ۳r  ]c0.ZJ?0.ZJ@=v`/?H_THH_TC՛wl נd (ؕC͉ `~Z`xn "H[#Br7K ͂LO ۄWQk%mD CwCQA[_ ! {'x ɖ1f ɖ1!}> "Y6 f"e^auǓ "e^auǓb"伭j##v%h§}s&٩D a'J$ +.j?,}aK-ꑺhqN.# .hWY .߇+K.߇+.߇+.߇+.߇+.߇+R.߇+/KY 0w1D0wXD r1wB] 1rs' 2C( , 2K{39~U24]~R4"Oga4"OgaO4ؗ 5fD6Vv \6Vvj7yɐ_9ǙYR;Z\mi;LmtN8<>N8< @4@h@~(B]y1 CD H:YCJae3 DbGx vEC8HER_/ER_SEܸ{ FZXwH|GzgH|Gzg eIh"d IK^SdJ ]m݆J"$n{6KL޲RLbM&M MhTM\8sM\8M\8jN0V=O\?Q!7LUQԛbR( RQ+LROR T'РUT'Р T'Р T'РTY5r:NbT|Zx- V:NjV6(^RW'= iWIxh eXp4PN Y!NZDCZoٱZѲ@{ \[h ]*Rf]:(_O, a`Ǡ& be\be\b=ʂG \e K e󑥏Kf!m$f!m$<f!m$f!m$f.JB fzG g`#zB/S hTeRwv i(8:?i(8:j&]j&k/hkM4<Nlu m% mPinƩ2y:ynZVvS; om FCj!om FCoThX. ioDel~+oVGp'rcp sf{z[F tc9I3 ct @}v > w'%wU]wzxjz*Xz*L z,:U{uTly ~^U ./*wl׸{ ,x ޼}a:x#L=K#L=( z]d{m|1]d{m9u [1VZm@_4: !j cLZ5< "$ YpJ -ϣt~Gkhfk,ϫ a3Q%`suj1TDzJ DzJ DzJ v=yjj| l{qF¿U!1Ū r3R!jx   g tKYP,%AȔ  Z%\۞}BÛQS3 j?Q$RS)]9ago FW K{cwoV %ؿM ` kWyכ~r j~r}2jJrJr iA;|~B{SP퍽Vi e;: c4!\hsv?df|==ܞ9VE  8zN#@ȫP @ȫP 9jEUQi g뼐?뼐!^Q@%S(@%SjRD2 l&d.ofs-fYs2yus2yuQs2yu\ .dL-@:Jv3r g3r 3r  7` 4]){Z0GY evw 1aZt 1aZsߠ?ߠ?%% 8j@s XZ;h ai56WKh eryH hAEf嚛e3 圥{Ȭ| cVj iFԸQm$4K .P .N%w\ w\ 5^x 5^x Xu t#LF\]m/] 9 MS (ywJ vN %N gm|sk > / &1a vcV. RRs s RRs ( E!wcM/ (Azw#MȂc $TeTeH]Zt4 |8N=vLW2KvҊs]Ҋs]Ҋs]->TS.$VZ{ (WI?C>,X .Y&K4HzvhS3!{ #$>n]d$˄ ;%3utK%3ut%3utD%3utQ&2 &]Oy&^&=X ' XMe'[D'[D'1aҶ(Ng~) *wߛ i+q`?K-DC (-DC (-D_-WC-vUJ8 -w[3K/3g|/GœC 0p-k30p-k e2+}  3^{ 3Bz4N&0 ,4N&0 5ODHJ5WJ6kV6/ZL6df\ (7#lU8E@U;V峕<(J"=~#)>56 >& &?Yb %?ɤ[, a@,κ \@p 26 AG\rA1-V CmCV@#O9F. (FȖ gFB GĦ ipGDzGD{GD9GdB'O3HP4~jdRIߪIߪRJukgsKCKe sK-Pw K-PwL DM3dNH[MNNjPPN  OQ԰? -OrW? Q@8R~ {Qkv h9 RЎ R_0 \ R_0 R\$9R@ SSWXShCShSkجrSش TqJGRTK Ul:JUx= V8Ve:BV\f WQWҪ|WX-*_hYW<ZG|:q{ #Zɍ|T[czR]+d ;]"끥]:8Ջ -^(+.~^(+.R ^ci e^>A^ [ ^څM_\^|`4hnsw # `k`EbacNcW}AcW}AcW}ARcpL]cpLc.'Kc.'Qc.'d͆5#Se[a@a fKĺK"fKĺ fX%Zf?/gglϱm 8h7[j.FNjNxulsOl,MvlH;Ͳ(L=lH;Ͳ(lH;Ͳ(lH;Ͳ(jlH;Ͳ(]mR= n<%xJ $n<%xJ :n<%xJ | n^b0 p %FbrXE`ˆ ru<T ru<tP̌.t|!t|vx*Y v]&" wC]p wK#;HxznT Ryixz@5zD٢t.N z_, {jwr$ {;1 |g&u}(FF}(FKD~^^~?KEǙ~)2EМ•< $Y&qY '_ :zBq RFRRFS .Vؽvy .CQ;mA jSRd=mW iZ{7{D:KRm  :W=%f|' 1Rf|'s/3hSd~( cV?dW# %^NmMĥ=N a&=/P5hRHPYH_)[SH_)[$Z :9҈l* a{6F{6F\ bu-h^DƔ >jO!_O h8LROh8L):a852QST24rw ---?̬sJøP w1OfRw1Ofc", -}dPl]$d++_,s?",s ! M e]VV\xR6ȖR6Ȗ kjͷFئ!g%c͘R,-Ӎ'APWƆ.|xT8W{Q a W{Q >v|R 8H H ?ݻ?hK!èPϐ # Oa OayQ Vή'C0 Mdgaͅ+{ͅ+ 9YD̲wRKש$΁1dΧp|ώ՝߁ILCRіq)s+" B ! a](iv}_R.}_}_L }_ԡ y6:uX bՓ{.ָ{fR׬ YMSޮk؈:$ ؊+桳(h{&gOw $ p0 RNڱ~V `{fx ܿ&={8|-ˉNŜ;k QS?pH B2zV Q vN?rwLRs '$ `S.$7ɘ+Lr,| ? !M-/U|Ksmw VF s X* X* *. ( p+S j1 ZO+ t?Lq%} aͽt,vN% !SbmbmnP3 c4E@|?O*@(8Dy] g:6_k  /o} i]%/o} iwGwG)̌V{g W?J @jZ %y89|%`s&P@ &d Y* &7Ӭ2'o (\2]*6#R*6#*oY~*"H] *D$;R]+*D?,lUѼC,_s-, /)m0;/ 0Pj2.Q30:9K+ƅ;< 7J,lR < 7J,lD < 7J,l< 7J,lK=\[L =>U =>=>=4&; @ȑ) %B12 BnbvBnbvDB;P2D:E*H"HF@,Fʽ65 GF. GF. GF. GF. G>ɡdI噵'!J( J7 ȹ OER!P7 P{TI"CQS;j{|Q>R Հ4SYq Syc/TҮzKU8+6H?RVl8XjaA e YA aYEhHL Z~J5:\Mov8 _NuT8 cam? s bi5>obRbgEcHtd.|jw d? (d?te,f ef!Y Y fj.7u g!g?='gb^h$`[kRa&l"G l&]F@vlrY}Sm/9mFD mFm0ox?`oS oz$ޣd p_ p lR wqDrciZArciZAStnx t`\Y \t`\Yv62=ZXox,zSx,zSxn93 x_  x_ Sx_ Lx_ x_ x_ y# i{w m`&{w0^~bn2~'ZZT*o# 'v]ڃ@x |.RˌNJۗ ON?1жgwP)iH/ ŎOx #u0Qﺐ4H^خPH^خ 4ܦd2tHWBX -U%=U%+qG?f qG?fK qG?f:Kbd = ?= ?t9s$Z=O`*~VBRJf j]VSp:es1?EKN!G"{o #9 W&# j2RnR-E  T^y6 Wߥ`zd U Q) ( <MA \鵆4)0fя$h04Q4e#" kj=q@r2U{={=E ,S nߎE. (N/ =+cc1_DV^ a k(c  D /]w ,˔"bbji,gjB="4Z- T[7͗ jG ,Yu2d_)j \ TzY q ^M󉜀>󉜀S>󉜀>󉜀c mfFGUT^ 9eW'9eW'* 03r[Kr[:  q2Zb@˩  ˹b9S 𓂌 PcPzmM *@{k@{Rq\_YfIʲ(j'ܟ#wmF awmFsA0N8fAxɞ,Upan80+? ErJ#)ErJ$ErJ8^a1 1 10%S\7 gä WiP wn# FBe FB # VY 0;C -]5  b+b# tO9lj ^ e{_͎ *6 =& б gẂS9 e ߥEJ Rjl RjlH$n (+;#C.]oq Sȑ  }Z =ǮI ,ǮI䜏䜏 bmm *fw8D #T!͸K" o#Z #a2  $nR &isRµ? (`2)!a$Z* YzD?+*wv- fOyS-40 (./ 9 .w 5.|#04̑ 1l+27?s27? ,2Ĉƭ\ 3!;4U}R5=*?J6Fc 6"|7;6-^ݎ{7zs #7ҙ=8hQx.+8hQx.&9]רBL 9vp9vpC :6y:lD :lD ?:y^z sB"UN Dl8L DzesD:[$ D:[$ D:[$ FP^՞+F|r~G*gZj>G*gZ +Gcmؕ0Gcmؕ - I>JFgW ^AK]/ LtLtMXOI PtcP,$zȅRqj"u?<Rqj"u iRqj"uRt S-٧ , S-٧ $T"VgʩmW~= m Wƒ\ 8!\h-h. ]qKf& >^n]^enB ^ltC_ _| _\wCa[jaƎN&_dIFAdpF\we6H gVn (g_No Ugl@mQh% ,? iP׳6N iP׳6kk@pܱ%efRpܱ%efp㩐p8 |sD o tJtJvtx&7 vHRRwn cZ I ] )U9N, (4 D2k=3&i8?oRp0Zjbl$ ȇ?lY }o?YZ<Y }gy;Gbg`1g 1 w5j +~lC(+0 3!XI3Iz iЬ[+R /?UauQ auQsvT=Ž7kke] /3{dr|u |4WPX;[Mzik] R> )ʡh%)ʡh A\`8c 7? *Ng e %J WmI ȎtX| ,ȎtX|s\/j U"eW8{m+l q| $ x( az9 !=l ⯼R !5_ 6usƽ#Nc`5ƮtǶ[ nɥ͟#s$:ʽ̲&T4ww/K%bZ>|rut@~|ͷ(1σ'  > %K@'|6æT@DsԻ S Տ_;6yW]Eyhn^ס-G¾U0؜G g P40&9ÕW ྦ@B1 ލxsޒ@sjÞ] aES6G/\Js7 X[^ &PK  2fg 2 iF8RxP %魨 d߬)=1:Q'Q' Q'Q'gC%!!A]: 󊝩hn?8I9'H=D»Zo0 eo05eD Ɂm: kQN {N!8 3rELj5RnU?ޣ vԇ DjW %B: N6I|H(nո!Pjz$VE :ȁR\8$su϶X5pe?J+Is^J+I SJ+I?=  i: hM{ TR T P%\ĭWSbJ ]tz K-sHQ̺{ 3 Q̺{DwM YB_U~\_~\~\ļ ^ ms^J?>x@WX mS`@  FFQ˙S-OĀb!t !sS"veCL#b@E#b@E$q&RD% t [? (L , (Lj)e9*1QX,=Q-=%Sf-hT' - >`|.˄!t00X 00X j00X 0b^{7 0Sv ,1-.3Ks{V4fV4{{I4{{4BW i4m4'8@u 5o)rK 5o)rK 5o)rK 15_"5= 6)d7 dR7ޔ7Dy)Gi?7:]8yN\#9^89+@ :Gv!D:mNdF|;[pK<^<^K> |:s @|}6@& @-8Ab + A ;Wd# A1OND'6 RE5FFkwBUYGd-\  H TEN JsXAK6P. ,LRٗ1L{ NZ2YO07P7O07PPʥk{Z)Q,/ QNjUnԬU5Hd V2v,W;#WC}鬔Y2hR Y2hQ Zx9v_ \ \!Gp ]^_^sS)^sD ^s ^s_ a _ m_ i`f" i`f" \u`f" ^`f" a,`f" bUúzsb+ NbX bFL eSW!eU/U[ed pfm7J (fm7J?f\ R igH'w *if?vYib i 5 /i 5i 5kk  l;W" m{$oѨmut mmzmmzn1J"« .oZf Ao~Br\ޏtP$?V9u%rbYutk?vO Yv:C#v:Cw.%և]w~Ù wk{y7{Ӹ {Ӹ|f=?|Y}ɸ= ~E?! ~fH , l+,j3wUCD Q-s  [0  [0 , 0  Im& : *N ꘒ2 f[L7dd$EHcW ,국 Va4?x EA?  vk,tS 9st'9sRI ~6@]T]7TTLT T TSs#4XR8Ծt=bs #O̥!;Pvb+{eRCަc9 ަc9ަc9 F`t3Ղ doCq[,v S1|ЖdPumñjR{r?, ⌧wK$yBG3 sؿ apY zSH} _dIW  KX<p{ 7T:ND$7T:N\ 5F@?2  ,5Oz ^1^qm,:[ЬkqHѫ N4oN4oK8Ku F- 3% LS. 4t @{ @{ ּt[ &xK"(xK"$xK"F iFPp  $ri * iDҬ5K ņ>ŷЄ] JU5B ֣OvV̑L ]zuS'm= 'm= ̱}&'͟H5e ΝAβ|Kj vl ҌY a ҌY i@vCZ9a MշWMշW j INj,Y _% ؏#ҶZ(pKqJ4|桗6۝' *Jh<T(8J"S ɸmLRD*NO6|ᓖ?̩jCK㎫e~ ( "jsez%i'(D0>JiYN>,d?3) 1(7t1@/9 TXy Elb q)N0sHN F~ |*SjWUhH$V $$6Gg11'liWt+^jB^jB)# HcG:VTh /4sîi ?@Fg?B'7CVsCL#9|D%Ӓ^@CG+,~b?kIr Jy# J`M9ʒsJ`M9ʒ ,K-KzAz]PLz9 LzhLiLe]Lem[ MU;$l"Mh疂NnMTNNOt/Pcњ P&fF& Q> i Q>R2C< Slj"Od}t&T#E\VUf v=V'.Xt#@{\ Yjs Yg|N Yg|N Yg|NYZkaEv ZkaE [x0\x?# i^3d _Og#b`$ a>`??5 a~@PCc a NpE bXhbXhc$F[c0? #da|H eE~;eE~BeE~Ugr bgU:i t j!~.jsrjN=jN=mP<ZmgtA0$ccH5[Q ccH5[ƟNQ&]ƟNQ&Ǔ}!稗~5l[]Pb M/UHdGgZ >۞ ͘Nͭ9ͷ >4YYiY{R?I`kq.I`kq.I`kq.ѦwïҼe׿w.?y>n? \> %(Zz: 'FՙwU՜{- 2A \SE~/$E~/jE~/Uw9"ׅ2k%ڑޭ۷ _t[6b  % S5φ # [B&c hs'j5<< +Ϟ j5 $ )* )*a_"y7_y7_sy7_ y7_ty7_Y!N5$6_ ZR ^*ւ9 #1Mj1Mj\EK  h +_;z+_;++_;dlfN9[Ut&,]Y6`"X9?Y\4PY\4P3?>m  >m ^m .B@Q\ ipRqHopRqHo ,#Qa pr< r<YR^FƎn9qn:yOqKUT˝L9  9 EibEibCJ+~? J+~? \w2u+z# mͼ۷SK%a9RR>c 8?'jl  Vw (8 Vwt) AC@GYt=&Bn} "P`{ jBD ?qPhw \\~- iU a S*?  ZX W.C i f'Rz| Ja 7p ^ 7^Rd7dA244NU] ,U] ! <?*;a amO:ڛ# {' $S7L .c9\Lj<N!|g!ș,";çR"k=}=#L3 ~$#L3 ~L%=R'_ұ? at?bn Bg(B|U B~<BApCejeDc _E MF&HFtH KX0C L #M2[MY1N Ove PS/_D,PoQ5 QʁnTvWdYT ct? T ct? gUKTXK Uhɡׯ (UhɡׯU@3?W#w~X8X"V~RjXoZ [v9PJ[!\\ >_' (\:E\ȅ+ ]z2|N]³i8ߺv^P]._R2ZC_] _]`O…[`NS` `lc\ [ $c`6tM.ScT lc\^Zc,>Dcό[=dhz dR]1e]f~#gSPMgՈh(!U3 ,hKOi !9 \iVǦAa jĞy;hjՁj,;j,;j,;j,;kȇ l`k3qe{? kɡ|?)kNpne Β>p9V \pqiyIyeqmBr`X/o st@.-Upuutve{-w$UNw29'w29x(yxV@ +xI[bKzW{r1{}@ m{?SǨ##{?SǨ# !|;rNiL}}tF+NC JLɜ9®?$- ΁>9;E @Lِk v/fC #&)n"iz!#j Mm c  U J 1/i 1/i] 1/iRIFjIFtIF+h|o Y X`@?hp\hp\CH6VCH6 By1&+^U0Ίi*3![Qx<%f? [h5,`9 u q[pA7+pA78 8Q s@ rU-̪ u[BUw2[p8N<&;/R+D+DwRDKN esѷݑ@KuZ\nY6\nt;_;LH;S;K !N~Mz" r򍶁t %h1Y/NzYt/NzYk瘔1 lT Lj c T~8P8_x^cs܊s܊s܊ N"x{Byx4{Byx., , \?Ix+͎P}e h*JJXT5@ʁov7\* bM Mvv}e # (9tiXpdB3o B3oL *t얍`f <9E .e#$. '@B>f $>f (Be}ߟ%4֫ i"DTS׻R  cs"0=Z-t-t -tj-tYBA N g"Z {4ab3 0+Fj'E4 O&XjsK^Lt2nIdI j("mŘf gDTEmN iX_d `o DQN \|N id2IMRg:\H= TX" TX" TX" TX"J״rYaTP*繙J: $ ji \FK=OyZ $:tܺ6G ${; \ &4 l-ڀt KK 0M k^֏ZY \4K6 r T.u;`$ i ]4 $ !AL61 !9 "KC@Ȱ#F+?#^''c !#.C$#o|$mG$;%VxF %'Heq 4'Heq ' (&Zt (&Zt+jѮ7Y+z,B -)cag!!-E .2à ._7 w .Fd /Pת/h<-?/h<-j/u 16/s24ET婋#4˯^ 4-k5-J1Z6=`:!687sVt\ 7x8 &8Sj8S i9 :NL;yn $;§ x =c0] =- $>H kj>2NrvA;Ơh A;ƠhAAOsށjB|ذ $PC e DQ2 j D՚3' E\q \E H3 E H3KED|d ID*C# ID*C#JNnKb aLSKN+|LSKN+| Mpә O6O6P!7R , P@l"0PIḺQ\ Qx nQ4U0QQ1Q Q Rf $Rf Rf R ]RSSLH )-?T$ ^ -Th,ETh,EUBvV #1?X7` X[ Y[)Z_hY?Z>2R e[O1N[*  [ؚ$OS[S g \7> \7> ^n b[ ^YЄΨ i^ )bb8= d!C'ee fdfEfgmWW8Yg`‚ g" gBeg hb hU]{3 mhB}jYjHNuGm&? n~op ݟCo Mo Mo Mo MRo MpO_O  qpYY r~>r~> ar˶kqtf\DVtJmR vH|7) vt|Uvt| vt0p vt0pYvt0pbvt0p vt0p vp8 ${Rirs|s7K |ϧ ô}6.L }mN }],}Cn5N.Vjŏh{6%8bd@/Lbd@/bd@/Ubd@/a~{ o| .:@n(ha= -]yGePj jQ,d@LI JxkYV ch6wh u+&vdY " vdY?-kH;yu%}YN㙱)w.ȩK>ɒ=v[.j` , i,$`PdYRi (tZBa$#V? EPzbJ pL!Kފ<{^am{^am!U] a`j]&_Dm"f$a(Oݦku OT%2,նC K* P$N#NL Ki? p:XQy iНY-! -!*) %*) *)ڧ QSB?Û j8.> a] gV] gVa`0XU*= i&7YvD'XMj  l1 V(j lBkx:dʡHIZ Ee{I j$ԝe>X$7 x sȖ QUZ>GUmݚ@Omݚ@{Jv t]Y(bd]<8p[pRBi5?ed w X;% Į$ 7[DUA| !rƣ Ǻy$p~E9Brq$',:˫X}޽4hrzkD͢=^h͢=^hK ԓ/b*ԓ/t%ԓ/ ԓ/>B1?҂5$v TL4 wϑ.Xtϑ.X]ƣo X7 =v F_xw k՗Z. 1 ׀A` ק0SCqV>4uJn?^ds .w?ڟw a 7M > u ۮ\|Uo2u_rԖ íoݮ^j޷Jm(T(Lү2lt lt P1J|qkRZWs ;u>lLxXH6 QD.m QD.m izQD.mjQD.m #8r!K#8r!Q ] ^Vˌ ˌ  II c )%38[)%38D  Kae s;4_r"Y_r"NFuPuZZ+3 =︽˂R︽˂︽˂j^5[*[* k\^ MH 1!z #FTJeDX-w~"&L6^gg UD>^gg E-m,v>E% $FF:;YG~H7?YHֹ3 IybDfJWaJWJWJՠ3t Kd I:K 3RLSgN a Mca>KMew#qNI OD\iB OD\iB OD\iB iOD\iB?P,4PA#}RӦ"SZM\O T45 Tw TQU*AUaiNEjV[VX=< Y-}a ^Z{"> \}^\" p7\sG2)\`~p [ ]iۇ5w]iۇ5C']iۇ5d]iۇ5^ \ a _\ &y`pJLnjL`iJ_ `݋ERaU ab#:})LbUv*X adV<'EdV<'E dV<'EeBCV~Ueӟieӟif] gֱd*?g(hͽǟQkf5kg0 l7a}{N}d|D}&ݬ~iC ~iC \~iC ~kfC , ~Ki#+/C n! ŹQŹC ŹwSz:wSz:P%PUj*Plj*Pl a04`ŭ,=b[ ,=bH^BO* O* i ;G9CԞ[kNk% 7I1 d_ ,l$I#R+J x瀷V ksM Z^ EnF"QdKYRnpJ uBSPbi ZR DjSDjaʔ& Zc ɨs~Es~E s~E fKkv gq gq_Y K\sp|rF{o`~vRmȷ/Cȷ/CU T =iqZ@.I Ab89Ab8/Ab8$X/) z:E ( 0RCɚ iw6U9U9U9U9KofظB `TNb`Mqsw$rw$r7ի~M Ba;'F|l[9 .k ( n  O7 ydɥ *GYhHmP A=< =< EEb3ȈƄGm "u/0 QFKѫ[L'"_.ʃͷ ˸y!n $g5` J\|. J\|.J\|.^Y=sc$t )+D0d]>&SiFkYLjL0bW"@ok OlFOl!Ti?%?=~tfWؖY9"ؘҍ ڀy[,8 ڮ{m1דmiׄ<ULP{ $ɇn8c)Xl4g,!GZ Ē*U$Edm ݍB $9GjcOW眖$' O7SsXQQ. ꤾ%3'9Nf_ u߃6ByeER-*pՑ $JP fn aK@]{3 JߣSJߣ3$7>R ]LBe(K> i z"ߦ%plS>%pl]U%pl 1j1:M3;2#_vվig{2[>E a X[ ^X[j/ʞtݳ<  `VX~(#!ϒc0!ϒc W}j ?r]L ?r (8؜ %O }  v 2 [Ʋ $ k!aZәә Vәj"Ie Isoo<>4 #~#} 8ہ* 8ہ*9|d9A 9A 9A :U^ :>8s:>8?=YaC5 => gv?>][)>Xm!D>Xm!>d' a@(6KA*<AI=l - AmQ4 jA,AP[6SBT $BoCx[Yr C+;IDSA c4EY{Efc EfcmE(JGF /© aF /© (<F /©,F /©| Go) ^G2u/=G2u/k$Hz.E= JMpi KIv L ;.ցLdhLd M-MQo0 mNO9rNt,txOJF PoN - PqFD Q2[;ncRV!bS: S,NT\߸- Toߌ:U mugn# Y}_ Y}_bZB7a [[v/  \ohUJv]t-^̊  _=Y_=_=`TաDd=C) fIVj1&Igiìj h#7 h䪆w$ipR{F?iJKiJjT5kԓ Vx ,l=B_i a1l=B_i|'lMdqmU/ڪ mذbmo0*h o8T^&Ko8T^&o;P͜VqǛ,trF 7Q r aGt8y v7=߲ ivYy]CxT=IRx*dI2y=K"|.& -|CZhܯ|CZhܯN|7 oK|IH؉}v8 }.@R + @H?KS?FL{' =,X .Q..| /WNGn GnGnL7 xS ՞Mn cτj@ τj@]|] \_&Kw?pO\tǠ^T * !E+auZlhN9R_Jk^1J w ;r3#ab Øx>&G †O. 2e rNh o'F+ afXw J2#YtQ.Y)nW#3 %I TNMwĚ ch)AZ wK Zu R-k~+ c8ؓyޚA #AdJq ]a ,]as?ܞDFZ;̚ ,X^: X^?&]M?dzGrm /_j G'ō #dK#dE&KU JR|o Ks??lKk;{) @X3]T@X3 @X3Z\QSe3CX$JjCX$J%4|.L %4|. %4|.ʦ TÛ[bS{J?}4xgm9fng9&,VKz)=RKh֨lKh֨lKh֨lJt*`]ۥ I9D-"UۨP"Uۨ H_G)J|R G 4{ @Lo_ E$# \ăNO/ĝ&ekA%=S a%Xb ~ eR2LͶiZ'ΰ=qB% B B&sĆ, E۸ǐBcC aҠ٪E ,/Ҡ٪E $(Ҡ٪EҠ٪E9ҷ|b<Cְ9 +U)v T3vŷ n 8p^t؜Nxs՗t$vdU$ڂIG |_AۣL|#ܓ :$)wʁ DUѹA(0Q 6 jA) ⶪoKⶪoiC)>F.6 g yj: ,PuY ,ei,"R >U/1F UtD#zDŽǪR#xB'C c[aLHL- LHL-մSXޮl3c%= $ y]tǎYsS &f-sw•Y{r}xb㘞v$#:\D\&pNMSM$#rv?ʬ)ʬ) %%t OF $\ v [ 8j \kU \kU  U e *c!k 5C,v)7,v),v)K,v)H,v),v)L(]U%!2(s' ҆XS elT*Sž7\ 4Ä6x4Ä6xAq~Q$81 \g&,9Asm2,(f!мY!) !Uڜ !Uڜ !=? $'/+D!({Ԁ,s(^_d)j+ )j+ ()j+ )j+ i)j+j)j+ ,* c i*km.$;LCs.2% #.2% { /rV /)[l 2pj3ΥwR5:3H t6 S7Țb*7זBb9sP9:h :#;ꉃ <2}ٽ =r@W' $A[CѽbCEU Ff"-FQwYjG2 SHIUH /}|H#܁ H5# I,D^I.& I.&?I.& I%yJ wpJiYKSK&MZA:RNe>RWNt@]PcPc Qsmd?S lI Sm~ T<T}!VЖVK9%ъU V^9S -X?&>{Z8LvZP5{[˗ s[Ũ,[Ũ,Z [Ũ,[Ũ,a\pPs\pPJ\pP i\pP ]8]yi6} ,]  ] S ^C|TZ^:#uU^Ui |_AYr`гt`EiR]O a1A (a1AaXI aYxL bAbMؼcbMؼcdobNe(m"?g1\4: +gTK?` hh p]jQ=ks; dkF6@ ,l[0xRl[0xlT[ lT[Ql2LD<mv00mv00 m}aTm}S n5 oh r2ih jr87؂`r87؂` r87؂`K rVr`e9vt}p9\dt}p9\uV۸vh< xdixaqC3yI%>0t'y7 ZyIN zYa zgiz }Ht|yP@?0j?>4 F? F?sF?hF?| ֶ dUځځK{b $Z jr.xeP1˰ i 4_ĺ3v4f)|Ygv2ϐ j }~DC3] I^դDC`ᖣvAA&,1 9Itן n40X4 7xxCsG $R Pbrvr:rYh# }̈ : ,#UQO! -TP"TPðGjo|&o>EBnXϹXϹv:Lh]! _O nz #3` h']RC m+o -D = rB}Td\ +d\ }IB 5iyS¡ۥ΀R;Z; r?4O|z.xpD ňxG dž?.]Z_GYǴgZnȬ 6h҉  ҉ ?h8Vs᱐,7 .@Qw[Qw[8Qw[ '{? '{j%a! %a! %a!?iiSЍ_~Q6T*Շ{6'сJ>ԙg|KctW4J-SJ-Z ! z: ;nfIU֒:nA) a){@?{@ a{@j e # \<)R ܱ;Aj5j ˑBl!R jS6y2SP^$a.S1> d.B ";#QUIhlxu~s : VDEi<R  c|^ [H,Ү<5h NA sҔ}H:2EE 7dhR[Hq#F-b$ *Db #wfg? 50 TjD\=zV&~gr~grɣdJ ɣdJ.)!{s {C0}~ [ܐ5BNgZvl?Q  c%ˏ!/CS Ta ۰ \ ۰ me2mTE}]W$oR *VdDTz)["Mᮘ ,"Mᮘ P7:!O]B0\ c 3D+  3D+R_4 ? _4 l_4 Eo ԳRōC[ m0j YY Y a 8NC>  T|# 5l =0 $ =0  yϠ(-4 a?! e>̐+D0 >̐+D0>̐+D0 >̐+D0 m>γn1a?; s?\6?Wڥ?WڥA/U斛 A?hm B0a Bֹ Cu\ ,C)LHwٗ5Hwٗ5Hwٗ5 I3yYIX#kK2J tK2J :L|"&l M=z3O2KM=z3O2MOy)oP3' )Q˗Q vQ ulRZRStO7DU4# axU4#dU4# U4# UYRV')^VVon[V ʛ 1WS?3W%D|YU'KZ-8S?[,TC^jG?^-@ s_,_,U`u!Q?aǙ=a}{. b b6\HjS 2b;x$_b_g fc(xDd0NdĶ iepZfUt\PQ f9L ,h1 މYh1 މhjuðdjYRRjYR:kQM ^kԥ1^ lq lsr slFmM mu!,o^W6Y #obl$q[oԝ $#q[oԝ aqq q5r|6ELsD4`<,sD4`<,?svs*svsvy,wC#ZwC#KxBnuy.Z .z=KFC{d:ߗ i<*%2UGxDž * r y . 6>'"SY͐( ͐( CMvȵQ %y ߊ N s թ3c,?fT2>[l2\+j+P c_/Dx? $/]"$/ U_ <Ҧ5 ^ ?m( E&TstW%RtW%tW%0T !0Tk0Tt2jj C \!C \=F% q=WV~dM f -. #x. #-?F/ܓCVj/G e@l.P&Z^? ^Pqk%N=~x1 / M/ Me*k K U%j7=׺Ba)7=׺BS6`?pz5:-ƞkʸƣ7 ak԰ 'b ː) wM \˱=nfttzK #5S L \CΌ͎+Ї`GFʤظp2A4 7z)oSM}4O AyJC \Dt"D|kk^ O ؖQy1.R84P=C\^2 w-?#wLΓϰ XFW?VDZfP뭅[Z6t$sV!#| "| %qu^7  ЇAEzq+={ L 餹I{ y úKL \졒:_;@f)xƧ #-~*Pj-~*P $ "x8's ?奵8 j aXYV MyNU׏ bOR@ #8#-c,, eT eT 1rqCH -[;Bjj$ CGh]Es L cWt[@1{f \fu S L m 0(w e5՝-, Mi K c5DX ~lh ?t n }Pۀj C! Cd >_uGT[/3Xh_݂h_݂ h_݂K h_݂ʻ.U<Ft4 F  ˠP/?5- Vi] lC2H C2H]  l; šš&pLlF8M'ws\K=)?-xkz|zʿK{D -~q^l,qm 2Fj3NIT atbR{UA8 y;> `YAL">eG #Ci $Qi1Q $⋃S$3t$3t$=w:%W%W&&F'k  '\ 6 *('ˌq)P)B.9*:m * 7 +Nl` +Nl`D-i ?.@Mk.fS5}Y.fS5}/[LTE /i}S /i}1ŧ`25jN2L4w  2ee5L2}fPNf 2SY3kL?3 :4S T7i~ 7&?=S 8-# g 8jF 8Hԝ:@@Z V4<\D? EH†f?@fRBDEkC]DY'7 EoEoDEjbgcFل9 Fb>/GZR.ONlH/tPHF 'Iz)jJ/G5MJR2JR2DJr K4 @t $OMϞ>NКceNКce Pf!ˮ` ST՛Ob ,TUFVT.] + U1vGD UE{ U׷ݤ5- V%RM V%RM e WWĝIWWĝILX>-*QDLX>-*QD-X>-*QDXaJ XEϤYPh[['SA^\'МM\Ć7\Y ]ň;]ň^]q_ 3I_] _]`Br.Fs `g=(a {` cN펏udcofߙK"hQd{i "?Cj.r j.r m*q?n-xKo^׳;$o^׳;$ooCpz527Y q5 . ,r rS1Sta\+kt܅pר<uT| v/ Rzb,b ] zr{bFbz@gM c|"yǝ9}U}v}U}vf $ f i f ad~J[9u|uk g,ܩF =]L IBzj;䞺=R ?I +1RhRhS։ushushushL L KbjH.H.H. H.@sF֤C f ~ 5n: c׺u)ϝ؝?H"j.1kB6 $lb%Լ@QT j\h3 .^#c+[QxUYX +@ƟdSyu^M~r: . ! wV 5IS3t ; |!_ Ό''j0<5%i0hn`hnRR?Y ނ  U:EoqjSwjajj>inz c SQW[>jm[!kw Zb? v;$4C6W jƭ;G6M̋I *#+i/1i/1i/1hMmz  ,[ #i0;I -`5B \jT)˓Bsg3@1,Q6@1,@1,Y@1,F/ ]dEmM%3?3zPUl ʉR<j-E ,15V K2L4 z ,# ,# ndV  wg$R,4 ,_? i.rZUk*2i 41,q; b eUisl|pݩY)@)@t'0D _A pI1#SN#xa𢡊$f| %G$V&xN&xK(mL(mL ()kd'a)% #*}|4*FA*)_ -$0-H-HQ.[g(b.[g(/zU~KI /م/j 2W3.j6n 5ѭfs 5ѭf 60, c7MEJ1W8oQ :3_?:9$ 9 :9$ 9 $=twR=Rs?~FdC ?~Fd AkN CZ$ - Ew0CG45wZt GX;. HocH>So cHP (H)g] I3 2J4_T$ J:JxWJ K v4A $K3\Y#Kr]->K aMX8֨L MuX۱MwJN?0M 3C aP٩QsK! RSL!Rke"T}Tu! Tu!U$<Vw) WNB aX"ޱ[%#Q[xI \t4\!]]d \]ʶx^Unݎ ,^Unݎj^b:1\ _{n `$a4Q)[b$ofcF♘tcF♘cF♘cp " ,cp "cO%VQkfuTB7f#PY? gHog%=Omh.vij Bc iޱB| m7ˍ1{ oj}Q\Zph>qps;|`# ts)"=u&HE=u&HE=u4ZxzvPuX vCM w)!%w)!$wRL@Lwz xy> x9)0(&xitxQdyR%& yS$Kz6|\ zg\w[zlj*zՌn S{Cv{Sv Z|56S||ڃ} ,|w/# }2 }){vJf‚qm' \‚qm'‚qm'‚qm' ‚n.:„CU„c …No:…No \…No†}.60 †k& †k&Q‡4MTh! ˆ,U1f‰ ](‰ ]‰ ]RŠ!N3ߤŠ_JbT Š_JbQ Š_Jb‹ 7T Œ%*RK|wK K|w6bŽ c -]ᜪw ‘h?z‘?0G’JDV ’n֟’ 6’ 6’NQ^ i’NQ^ \“ ”:| #•rcr4 – F–)k%—w6~1—p%˜R p ™SH š 4]?vš 4] išH613›N4›NZ›N›Nœ88S ,ež?  Ÿ jM+Ÿ jM FqE1 ¡}u |¢xH ¢A<,}?£aN5; £FzI#t¤v2d¥.k]¥F c§#Kf=§#Kf§#Kf§?*h #§ ©~ i«F~«/v S¬^t¬_  ®N®- ¯8B$°#P"²CA[²M4´E5:´SLµµp!\ $¶'G·T'? ·y=I ·?J ¸OܕW; ¸oz熡H¸ܪ؀.¸s_ # ¸i` ¹;N ¹p &zºRdºRd»1BM ¼^X½N½*½;c¾@s ¾@ ¾k6R¿ɠ#*BΩ To?.b7'~pt;¿6'¿6# d9{Ħ.t $=9@oIk go: j&u <.U T &=Ft-_TK;f p̅ObbY s 3SMx@SSSSnm`& ѣUT?0݃RDV! #=ԕXZ S=.  n+>PgrВs% ^>% k hR &yզ c`?1]#<5 l e8iK=agk C'ОY~qȵf m-EH  csװn Ф{ Ф{ 聸 *^= Cp^Qipv2a T IEd jVt 2V  6b/P4 ]'oRW ]'oR ]'oR MM j i ~Ht )̾'s :< >z :< >{ %F %,$3? ak 5*!M scH8dk/H8dbF=c gU?g=, t&k}Y 77Zvqm o8\ jC _EטlO hs!MtW!X'h"ok5#4'# %vN~ %J#Ÿ1&NV '.)'Nt )'Ns):zFq6 ,>[$3>9 >+M4HNB3Sr ,BRvmBbƻܨ&Bbƻܨ BbƻܨBbƻܨDآJ|u]DآJ|u]D Em9d6 (E}XV F*G;]Z Gw6w  I`ޱNI`ޱRJɮ˙JiL)M\== Pn PL.PL. QQ$S /L +S6(>K5STdT6 T^H T^HU]!:VBTQtX+] m X\AP-,Yǥy ,YǥyYǥyY jZ:cap a0Z:cap \%=/ \YeR ]%~If ^$wd_gФZ5h hY i6# 'i<7Bj%Q} j3%>ejn'kY7]^ k_knl9 l=m:Om:OLnaDnn~ߜ n쭙so:2t ,ozPSozPSp[vqcsvg e qcsvgq9qr:\Z6&ris~Pb0t?Du&+u 8 [ vB(RvJ8Hv wH xuLxuL Ry%# z%@[4+ z5c Vz5c{)ּS{)ּ {)ּLV{)ּ]{)ּ {ǖj|-aU~Է}8?À$(/ \ Â7HZ.ZÂ7HZ.SÂPF/PÅBޮ! ÅlOc;CÅd-R Ç}e%KXSÈX]sÈX] ÉAɭ|o Ê{eÊ{eÊ{eÊ{eÊ{eËEr$\ Ì;zh ÌwàhÎ~ӚÏ,yj Ï]Ðfh>V i ÒmÓ n Ó4} (Ó'װÓy Ô!YZÔ@" Ô)R ZÕ_Õ};i,dÕ};i,ÖB5&ÖIuRÖ5,\kRØ|,56 ØǷJÙW5z'|ÙW5z'|P ÙЫz?fÚ`ﶨ?Ú`ﶨ Ú`ﶨ ÛTr[. Ü@d_b ßȌàV\Gwà$sá ááâ? "â4 +a â9= âD?å)CI,]KåG|`'K åsҜ̠ åwj æ)ۑ ,æ)ۑ ç$.]ê{( #*ë|#ë=KZ ë=KZ ëfQp/ ì(1RíO`? íԮ~˨î b0Ґ[ï]2ïFڿ3ïFڿ \ïFڿ gïS\K$ïq{YðF8ez ñzڍñʶzómr` ó# ôq |#õ/Qp + õ/QpQõ'i .ö0iZsöF@%0öF@%0öfק-bY öfק-bö.E ö.E L÷$v&\ ø2<KýWLÿ| (ÿbOCt ÿk ÿrhɤ?8b@ U]f1-Sfڂ ¤"yf e* kp kptŵvA& (V}p hǻ3^!5G*_ɛ\:9t9:xj~+`9?˿^ϙ(\$] ' }l j@)J;`쌕 8̓6hB^iYvtLK 3k чaчa EK Ӆ?'暪 ~qGŐ|Յ<'  ۆN1D ۆN1 ۆN1KO%(>O%(>،18:|n ݻ>w"=W7R/ Ɏ GɎCx! ӡ&c3?&c3 .?]wN% 3q,tᕹ ?wPڀYa0W *K7Yn}UO# U?H# U 1Su# 띾'$Ovb& Tvk l AQo{.2Ξ;ߗq@RN׀ \HtVVeV]#VdT+o ,dT+o dT+o gX3,Ni,;?ε%ƞl/ (ƞl/s %⠡*?0 c7(YH{9= 9=lIZ $  !?Rt \ʬ4 ,jjD/ K=UUA1ϒ ~Mz FXg]edѓ.Ŧ͟H1t78] V-h.CD "%[` "%[a" f| K   &fDĔ  Uo&s 36) iY  yO.*yO.* I ?Mc2\c2\] 5Md.>+ 15.i\"ԍ ~Et⳹ $#>Fx#;t Ѽ +t +ٜaQ .;McCy1ϪBQakc4W)F] :s0.*5)_%*Z %*Z(z](zj,Zȴ,\8$.&Ⱥ &/(C/-eD 2J=ڤK2J=ڤ4jM5DR 5DR 6-60Xl? 60Xl? 8Jg a8 BT\ 8\eY *9Z9ZP; Y b=C =]a>1I0?gs?8XN?8Xk?&~?&~ @F&  @փi<^A[fenUA V  A+pD[D(ŅTI|5J3 ]K )m KnP<KnPL]F8MeA@LMgMU' MdsNdBH OdjVJPq-E=Pq-E= QBU#QKf 5ZQ<}G lRJyRJyT^8 $V}$ eWsTWlB6XnbX~0>YseYst8mh?Z62?[Q\_?t_c&b `G^ nĩG}A#Ī5tĬ9.\: ĭ" \įS+T3 įS+T3?įS+T3jįxKj įݦ짌 ıʡı-w/ IJ0 %Bp#IJ0 %Bp IJ0 %Bp IJ$ij"]}g ijyB(Q"ijyB( ijFv7> ij"Ĵ26tĵ^RkvĶ69XdķV _ķw{ķwķF ĸ̻PĹ~ؕ5N$ĺ4%BĺW2J4ĺ5 Ļ]C/Ļ$3 Ļo jĽ@Ş6Ľ-勾*c ľ_61 Ŀ-fJ 5at\:e m5/ nsKsKhĶ7} ciL3rfUƋ%j) aZ-*a %|6f M\O G ̫YG 0QSj"j)c %L ,tc %L '߅ &ϒ>*y [@o ѸݞNك[R%hS|!. /~%YyhU?Yԋ]eh ~H#7C Tl #أ3 kok.sTogHbۭ5sAx:4 mx*t8ތ5Mch/[-ZȏZS u *lA=#=#Q =#fKٿSKٿ ocǥ+j h[#5 j[0L,R15Pb\K6X}=G#$Pj :ʫTVK C. m:/PlY !/"@ a1[wb(1[wb1` 3xk4 ,5•wT6_AH 6_AH7:$cj8 $80׼bNa%86ɻk86ɻt9_T:u ;"" <I<s?>$ ? >; ?PY @R2Ax eSC+C+ D6KK\D6KK\D6KK\DyE}<j E&1ljFYwI'&D I'&JtU K,8AX K,8AXjK0鬠Mކ Mކ N8p NOOBP cO~~Y\OA栝dPΎrSQ*)#VY0 [5 #6[I3K[I3R[I3Q_7F _ѯt_ܺo `U-a彰5sc! ca݄d+d؏eoete6T e6T e[ܓCewy ei,f4 -g  \gƶjyt? l6N(m m⇴bk ne  ne nˊp1KppW9p̯2: #qת8Crh!i9%)ropP] ]ta t+oqu[iRvkKd vOF2O vm iwגGxXxwy/M =|[.D|gVVٓ }DFY}ewvsJ"}k1) ~] ˯~A//&]+~A//&~Щ]"˘jŁm Xe0Łm Xe%ł d=ń=!Ň KQŇA ň^&ň>SeqDň>Seq 'Ŋ>ӦKŊVlYK Ō3'ō 09ōr $ŏL> -Ő־v[Ő>T+Ő>[&Ŕr|"ŕlL3^?ŕRŖnk4ŗEQ (ŗ`Ex ŗѧwDŘhl3{E ř!+A < sŚe8V"Z ,śVE& śVE&ŜQ Ԍ aŝnaYŞ ,Š\h?š/6ŢD(Y Ţ0d<s Ţh! ţoF[ţoF[)Ť ]~|Ť }$ŤBtjDť,Oph Ŧsŧ)h ^ŧaGD4ŧUY Ũo9Ũ1< Ũg Ũ}( R*ũ¾ <ūu-Y3ūu-Y ūQJ cūBV ūBūěip ūěip {Ŭׁhlŭϲ)  ŭLd=ŭLd=Ů=^FŮ=^F ůϋ kŰF| ŰF|]Ųth  Ųz1!RųG~ќų\~sŴyHH Ŵ(ʔqŴěů_ Ŷ[DN?ŶbFż ŷG ŷv/Rŷ8Ÿw5:zŸhl?Ÿhl Ÿhl ŹLN3 ź=$-{_ *Ž 1P ž35,?jJ:›D;x2: x2:tÂ8QaJ삍 aJ삍 ŀU!w`Y) <?ʪ=ct  ̠Fwj̠Fw ;-<<4rSI&pj! Jҡ]8 0HQӮˁE"}~0( i tdgչ7R YE3dz׵A+ɛm[m [=Ǩj5 j&USv j&USv ^^FyI `H+nZnZnZdm8 !lJZt? I~G ^s.ѹŌ.ѹŌ.:.: 0S4 eS4 ^G"y# bkb R Q͆z Hb з0L v/6մ?b{:]()R n8Ky< -l¯R jح $bٕs L7YKSL7Y L7YQL7YwZU wZUj8l8lD=,h 85ʈ n$3w_| #LuQLuLuLuRf` eieq rTxL ˦9j5˿Z I=24~N aL=R ϐ j? j?Y_tdj;BIDn_ :ҕb ,ilD e.ilD$ilDXilDY OA -2 tRɪrS #fx ?d\$d\ 9KtTP{+[W aky?% RGt7wa\&^8$|.<HU Ꮻ Ꮻ"`C #굸 |$q% #%r3+ &E3=4Y' ^Ѯa'#'j'Q݊ )3*h lS-/e(-8o c.o0 /?|t.yj/ { ~2Q/@ s 0.N3zD2 3s 4+8 4T)??4 6bf6b8]DZ:8l'ф 8xqA J 9o;UCŹ;=iĐ Ov[^)v?v? ?; BaPBaPC[N,!;EplmEEoZFVq84 GLʑ)dGLʑ)G H_2 J ?OuJ ?O&J ?O K;7ް2 K5:KjN] (N,9?Qqы $ QL8 i&R{XHS~5+TCT/@n V \V sV+|O XlcЪ X  ]j ~,]ȑ _ϣ{6_5a!DbukOj b  b |c=pI Ɲ_oƟspoQ (Ɵ1R ƟGS Ɵ  ơdm Ƣ6; Ƣ;1e Ƥ*= Ƥx ƥ8ZDNƦ $Ʀ W<Ʀۉ?ƧԖi>ƨ{hR $ ƨ{hR ƨ{hR ƨ{hR (ƩGzYƩ٢Wƫ[֌ ƬLbƭr \ƭ?e ƭ?e Rƭ?e ƭ: ekƯ*F ƱNӍ7ƱNӍ7ƱNӍ7ƱNӍ7QƲ}NGƲs8B Ƴ[b&" $ Ƴy NwƳ(SƵɚm$(ƶ>wsƶ>w ƶ>w \ƶf$Ƹ:s ƹmƹmRƽ&`ǞZƽ*Z_w ,ƽ*Z_wjƿQ]qƿEpo5P \aZ5s k(A .\oK RR? /  |x k Ê<=\ îJ׿`a #ia c>ĻWxrGś G eũd, +'yZϛ.Կop iX#pp7zn c哗C#<wRxZ RO[jO[O[?` {y\[ˮr@ˮr@Q͓̿#' :[ HBDD 8+iG% vh lm W_W_ ӒEV ӘP{ׇpYAtB 6ͶԎ-;:fȲg -։Y ։Yv׈ 1 ׳ T (ئ4!ئ4; D [D [ڌk@P ڦ5=HLGeMk,T<SAV[C-|i` ˌyˌyZvu=Ie(p5= a6\ k X b9 RKSj|˼?!UV7l? HF xHF x4C# LP LP LPQ LP]ciciR?DHQled t?pLE ( 2a`J ?[J J 9 5a zK eQ(H i(JǙBP9  ^F:d (/s$+ 0{!t)2ZE&3AE&3UE&3LhfX* hfX*L|"2' |"2'S vֻھqYe[95-dWrH@CKD|kA#;JYd. {ϵkt 3̏3̏! C  !cGN+"yAd_J#b_^[#j? #k-J #ѡp. 3 $"$mz#L $mz#% -&ACB $ '8 e(D󨔿H)R7t)(g5S *}5, *3r3Z 3h\4έzC4s 6F<Uqg =?eޮ@XC @C % A NA NL A.1׀ZBUACLGmJ¶kGχ HG7jI+m4?JeZ'nj{=>a nj{=>dnj{=>Lnj{=>Snj{=>nj{=>nj{=>ǍvAƄǎQtLXǎQtS4ǎQtǏKytǐ7Hjǐϝ  ǐPkǑ{I2Zǔ ;IǕN Ǖ;" c Ǖ ǖz[UWǗo}Z n ǗG# eǗŹǘ)8ǙR(#ǝQ`![GDǞv{$TsǞv{$TsǞv{$TsSǞv{$TsǞv{$TsǞv{$TsQǟ_TXM$d&ǟ^:t ǡi gǢ45 ǣ$'j sǣ5>[Ǥ}NKǥBOǦ$lTSQgRǧ%gǨ &$ǨQ`5 nǨڧm"ǪԕJ_ǫuY d\Ǯ k'JǮ8L!AǶ?ln ǷG*<]S Ǹa i+ǸDҔvǹlqǺSih ǻ; YDǻ; YǼ8.L Ǽ8.L Ǽ8.L Ǽ8.LtǼ8.LǼ8.L Ǽ? Ǿi PwLB!8 1ֽR sTd/o} tQz ' ƢUR' ƢUq !F'H('[!',5Sg9'=$g9'=υLOja3~ a x4i f Z K(yH]/Rs6[*J4kF> yL6KQ`$9GɢlҽO eQj{5d%w "#1 ’>i.RrW:Y:y=& gb6; b6;VUSS ;j (XOK9v I .G: u Mf}  D9f# ]6[ ڴ n-Re8 n-Re8n-Re8V= q U< $4T?TI Sf/H, j{]Lk wUʵS^,I[2wDﵨibge( θ(%u Z H#/ 4:սJ4:սJj y 4-1R4;^X,w/͵  VcUGa !nL6S! u"(n #^9{B $BWI%xR &xWXoe *ٱ e +q.hŏ $,t%a .@L.:2n]2|H76Q13 7  8kP 9.=(&t =Pa@=Pa@>nW!>nW!>hzQ? ȁNz ?>u6M@/pB1UOB7.RCj|XC1F1F1VHe HΦ| !HΦ|vI lI; #J#j~ L:_M<2qp (M\jl O` XOf0b;6( PCmZ|Qva47R*@RRueVz Vz . XF*O.[YkRZ  Z`ٵZ`ٵZ`ٵZ4 ='Z [?6\{5"9\ '\78?^|v^/"k_jT-`.$s`;a< U a#k bj& Bbj& Bbu+ݲ d<(h #eyqvsi2zl i2zl9iyV+> lvۈ+lvۈ+lvۈ+mȡ2n-noieo]< o3jHs o3jH (p졐>qTEdus JjtKu=[4:s1v@nyvIwxX Q:w%nz xVە * yBZ9C8 ,yBZ9C8yN]RzHRzö3J{ r ${Pާ {{N4|4s ȁ ~3ȁ+ ݕȁ+ ݕȂ݅\ӝȂ݅\ӝȂѝTկȄBׇ5 ȄQ ȆVR#ȇpJJ ȇpJJ? ȈTȈȜ+T"Nȉ SGkȉ"ȋ@QȌs:pȎx#3ȏzBoC ȏzBoCRȏni Ȑ%D!sȐ(n$\ oȑgYZȒ]OBڴYȒE ȓ? ȓ? Ȕs"ȕJKȪJȖC[ȗfw; ȗ"# ȗ u ^ș-Ț^@} ț E9j + ț)mԂțW(a~ ȜF*aHȜ$vȜ6ȝ"M &ȞƚdsȠ ݰyȠIhȠIȡICx [ȡvN.i Ȣx(?ȢqȢ5Q4X sFȢ5Q4Xj Ȣ5Q4X2ȣ@ 9ȣ@jȤ2ljȤ2lȤ2lȥR@Ȧ)vȧle4} $ȧ¨yCDȨ w[ %ȨݩȨə7}tȩH6ȩtJ Ȫ s ȫY՝$ȫY՝$QȬQT^ ,ȬQT^ Ȯа} ȯ[80ȰjZ]ȲVxYȳ-ȳ-ȴ/2"(ȵ|.lsȵ|.lȵz}ȵMTȷ/  ȸ-gʟbȸ -ȸLȸLȸq:ȹ+ʆhȹ.\ȹmE] Ⱥl:Z4) ȺѬ45kȺۤ5ȻE Ȼv<Ȼe*XS Ȼe*XKȽ[U ȿe7 z:n– 9EǶe #@#ro= Da4Gڿ]ɟCoE+ $ߡɘ<4R˽3a ~o̰hN; Δ6-WΩ . C tдk#\N/S9$ 3L$ 3 ӓt s_qT wyԯ5 W7NC r&jc>aQY Zt k<V؈v0LnS $9{c+jۑ ͍[ۻۿz\^ܝq a ޅl{ .êB, bى bى1ޔjN s-OSKҭQP]u75HjO ߛa{=Dc [J(;M|y%K>[MZTMZT#MZTx GDL8 =!vvO ,!vvO;Ʉq[7c;&2kjٖU; Ӯ@pV&Sd# drӢ0[?s?).s|R \!-` {NdZ $,dZj+t ) bQ? xHaxHXUi짳2L !]R b awNb b  ߁/_t 7hb & > 5{|] 5{| q \ =L݀  )o WSC Q WSC|'' YNє>_)tZz-" " I;V?[~ 0b0b2 cW2jW2 Uh1 O򳠴BLwu?wunB?b!ȴP !ȴP ,!ȴP %se'% Y %*?O&d '2*'jfrR)l'XAd)l'XA*r'w*?F{j*X."8/*sFxL-a}w_ H-_. .;*; /}8 /]N0rgM0`,:0g 0g 1F#Η?2E2z:A>2z:A>3s)*5ub:d6,#SR6>Lр j6m `778Cց#|9?;*~AV;i|NE;wY< G  fa5IG (f z'g3xkhnAlobsIpl;rsso Xs\6Art9ړ$3Yt= Hvu#Su#Su#SS v7h yM z0;9 }asz 8z ${'):f {N.Z }@4` }ے>8Knh \ɁReN,ɁReN,ɁtBfuɁtBfuD]ɁtBfuRɁtBfu ɁtBfu ɂ{EɃ;o61Ƀ;o6 Ɇ1OL\Ɇ1O]Ɇ1OZɉ^ kQ ɉ^ kfɉ^ kCɋv3b1tɋv3b1jɌ5NO Ɏ2S_ 5ɐ|zɐA"_d ɑ? ɑIH=ɒ|+5|S ɒ|+5|LɔH'.HɔH'. ( ɖ,0RɖAjj|ɘ "ɘBrO$əS ɚu \YIZ,ɚu \YIZɛ ɛw+ vɜn u ɜu}'Aɞ2ojj5ɞ?n lɟ mĚtCɟQN ɠ7sB4%ɠ<—Uɠ<—ɡ5&  ɡWMɡH#{*ɡ5ɢ=}Aꑘɣ>@ɣ" ɣl0sɥiwi. $ɥY eɦ15iPɧ.ɨXnJɪw1I^ɪ9ZNs ,ɪ%`wSvɫŲɬ;1 -ɬë.LɮDIFɮ}"ɯvU4 ,ɯ mɰA`GɱZpRG,ɱj O0 (ɲ'j ɳ޴Qɸ O?k m ɺm56wbɺm56wɽϥV7ɽ˼ɽIs*ɽIs* ,ɽIs* ɾsτHɿE;9ɿɿmŰQ'ɿmŰ ɿ97k 3S_5R ƒgW?4 ݲƖYL!RWsYL!RWYL!RWǖ+5r Q@?$#RB%/UΜr *1k5C=R=Ҋ/Ҋ/jҊ/NҊ/_Ҋ/d'S'RTY3fRt*$@ ,{I bJwt֍z 1tfW فRJ#Hň[YLGzbG^RG^RTirȥBn? S EJ Rͩ=dUO2=dUO rD*@A #{ږj7V]d -l&]@ 䂜ʀRSmRo U 蠿]蠿U/ Bl ( BlsP ᝂ ,2z5%?RYe  (  3Džk^f (X (X 1^41^_?T"ERDF b[D$~E $$OY9ʒ6@<Bl0Bl03 z? d ;WP+|\ i K  t$$PsƬED,tp $)a9ioW u=.m6"ȗ cR&"cR&cR&QcR&R7&0 D ,/r\  ZqVr"K qtqsb!)N-b!)N aѥ9~cX k)> jJ%* ^Pe)o|   ;gt_q7j@! <  vWBD¡P E  k  J Y $ Fq 7JJat#p14 #p14Y_#p14b"[c#*G/$P/~%/Z $% KX%7 J%=uH=x%PL?&qpl& MN 'Qfl#'Ưe1 j'}t( ( (6Y*F +LN ð,, \.vD 0T8' 1mO2 a2q6Pj 2q6P{33;#48% 5< \9yFO =ǬW\=+T*`=뵣(=뵣P=뵣=KbpE 4=KbpE  > ?-A!>8SP>S8/v0?PS. ?^D ?yS'I!?Zn @];_$@];_@ҹ e@:tęzAA< AZHA,U*CuB/ڙ a D{ ! E*SDFc+,Xo F#| Gv&XHgh IMB[ J2nJ֓KT 3SKT 3 KT 3[KlI3,'LF|ٳ&tLl%VLl%L{ĩY*M>|*QIM>|*QINs\NS|?NH퀽k Oa>P/vPJrn?QL [R=ƏD(RCn2% RP V;dZV匚VS.[`VS.[W2Ʒ{kX0_CYs][[0s[[0s[C/ea S ^n%'vF^W(I _78 $a q@,, a.LL aOlcke ,c-qd d*5)|dˋj'dˋ dˋeJ^@jewCJ8eHNf y㙌 | f=05?fTaN EgX`W gF'gbO_h 3I4vi~nrZj OR j6[ Zlo[mfyn m؛% mY n 6nyp>]no>K (Eno>K (o〉TMo〉Tp6a9 p6a9pdڟ pgDrd4G rd4G tY\-D n t$̶bt /bYw~Rj\ xaqbys{Z"> ywٖbz* ({{o{'{kJy?}|qSp}|q}|qL }kb`= ~>ĵ> ~RsN/C ʀ ]MʂE/ʂE/Rʃ{5_ ʇOc* ʉ:] ʊNWYʊJ׀ʋK^2 ʎ? ʎt;Vʒ*9v;$ʗboNʗiq7~Qʘ#b0M ʘPh@&ʙZa sʙW޿;ʙX[ XʝN; ,ʝiQeISʝL $ʝL ʝLʝL ʝL ʞK lʟB%dʟjf8<sʟG[ ʟl(ʠ[ʠ[ʡ/}ʢo@8ʢmʢ ʣ"kvC aʣ"kvCʥ{W9 ʥʁ9ʨ"icʨHS5ʪFZ ʪkY!Q ʭgJQ ʭuϽ&R)ʮQ&V ʮɕWI"ʮɕWIʯ}Aʰ@ʱ.jʱw%ʱw% ( ʴF<& ʴF<& LʵbtO@uʷh ʸ>C5jʸ>C5jʸ>C5j&ʹyZVV?ʺR^ ʼ}k*~ Tʽ^A ʽ^A $ ʽ?)Q ʾnq4ʾnq/ʾ9n gʿ8(2aN'] ']|@s) ,>DBAd-rI[I| ƾπLyFEEiz$sEiz$ Qef ˫`_ 5@cˑu̡̹/lкN b RFO/ufY ѺJPY~f Y~fYY}QiN e*P0mM*P0mM *P0mM?հp[ճok;s b̚^5G[  |R۩"9NP:>]9̼_yR7 gyR7 yR7 9? A"]HSwiby z_z_K-DoPLoPoPEo(& +F? ,+F? +F?j0^(Ps ԚNr  R SfYuNfYu 1}!5IiM L {  h-D Պ&^߿#$Ns _s _Ds _d 0 N # qEJ$!>t4s, Evn[nӶbyCn{ _ +n? :.[&g %ǶS&7wv(t %$גQ:4 |&: ?yV# gPqjgPqh^>r 3}| }| i}| }|?  2euKQ*4TkŠ# )w@D vRP UGW "1sg( "1sg 4嵺 [N  z j '䱡 ^ؠ[ ^ؠ ^ؠa ^ؠ ё^Ȗ 9%VҏAR ߟ֊ 7>D }P arR rRrR/bt&bY"bbsqZAKqZALO 铩+ 䈛kQTM[K4[.Qko" _ Ԏ*x ho' ,gف31: -y -y ,5s? Ssm!i' f'͵ 4e9 XfP XfPYfvR Uj 4cnb"k "@"I7 "G, )R%ڕeOa %ڕeO '8Βa 'Jv~z 'bb\(%?)}"C)Q -N~Es.7#].ҟh;31fQ04@EtD c4R 涧b4qq[ 5Id s 5Id5;L| 6;C 66m!@ 6: D9R؄ԓ1:ůJ:ůJ8"n ?Y$^?ל@[g @[gCe[ CaM4sG0,dXkGm]GJ\[ Hbp H;i $IYt<&7I]X&I}AI-JH1%US JVJy>QKED1s L\ O<*7==O<*7 % O<*7O_*O3YpEO QP8PO1zNQ<8|R9n9"S$ UgR U(DV׮Q WdILQ Wsz+XPMMXpZ+ ZWb3=&'Ze c] P #]E* +](,xf |]0~H'S^e?Vmragwԕ bSfhR2d Le  fĿy gcQ}gX) gt^gNgt^ggdjhQjLjtcRk ,0sk ,0sk ,0sKk&-W k&-W kT doWl` %l|;s m{>n_$\nsvo0UtO$?pD }[p¥Qp¥R%pMĪ%BpMĪ%B psq'م.qHqÐjqÐbqla!qlarrr(vr}giĒ t$E:9t ZQu+$y uY2vaF wivS wkQ=&xй@!xQX ayk~?u?yNj yN z~!\zBf&zBf!{ cy{4#<{4#<|Qy8|F(}AɨO}[n_ ,~-}J~-}J e~-}J ~=#N*RL+0;ݬO?  eˀc1dHˀc1dˀoABˁgD ˃am˃ة)b =˄#Pn j˄ڧ?˅;A7'a˅B!Zˆ ˆJQ]ˆٝ\ ˆ;z"ˇ.*Cˈ_ cˉC5 )ˉC5ˉC5t ˉC5 ˉ)*nY #ˊ ^έ$ˊ ^έˊR R=!ˊR R=Kˊa , ˊ KNRˌl(m ˌ@jI 3ˌzZsˌzZtˌٺ}]ˌhRvˎ e)Ijˎv2FՌ$ˎy1~ˏ]fD6Rːu9=vːu9=vːFl/XtːFl/X ˑ+fRˑyG3] ˑ8jO˒bA, ˒{O˔ (7?k?˔16e ˔]% #˖d|`'a@˖m{7˖3o˙2!+#˚FiD] ˚!Rf ˚ S˛ `uIN ˛>1 ˛a( ˛\悧N ˜FoS˜z(b˜{~,|Tj˝+~ x˝XOs ˞] R:˟b˟bQ˟b˟bK˟(TQ[ˠ+_xbˠxN^o&ˡayb "ˡ˻ˡ3Enռsˢ-Vz( ˢkx ˢkxˢ f(ˣ`ت#0 YˣęA![z˦@˧:B۩Q ˩]I9˩%Ng'?˩ot˫Ľ͋[KˬX(DO˯OC˯{? &˰H{-˰Oj˰$v˰L˱{" (˱H ˲0˳&.J˴ţ*˵16<˵16<LL˵16<a˵16<S˵16<K ˵16< ˵VI=Hw˵'S`˸X>(f˹U?˻T ˼U ˼&KsR?.˼&KsR (˼!j˽PPJR˽PPJ˽[`J{ s˾h_R9gS·$ľ %Ar s T1N2FƎ)$ /V1? Ȱ? /X-:̐~Ʉk٘J'd  g L36= 36=36= ,^R?dޅ <o$V ;+[Ss QK A+I vX8 9.Z- K N eY $C*W $C*N tI %c&t $mB $mB s 6_ |usz0mgR ojúfHojú4EFZ!8]Z3(U eN+ N+ \' ^A0^A0 <`(f@U@} % G{j a3l[dbZ[O'SO'Scf8$RAVDо  *eM V%hp6-kDDIp.8M~ c t2=  ʽNY 2 !~J[?#gZn $4~ c$<ŷC$V>!f$j&R%?%% &+>S+`܏s[+QT %+$ ړ i,+@,cfEN-fp'Z.\ h.\ iP.\ .\ /(~: /_ט(0h 1򲐇H 2t w4WN2i!)= 3,E3,3<]4&|? 4Gn|?4Gn|+5#͵^B? 7&oO7dGX 77! 7Q1 8@֚X8HX9pX :EuH;F&g+ ;ish;N;g_L=MZ| ,>=MZ| ?a9g A$ɷA^B?1 -A^B?1SB7 Qo #B'n? Bc %?,CkCkC0Ea .EΙ3OF G' HO#?J K(C׹I|L֠h: NC"WNjV+OV'-S O އP S f4CS-Ű iGSa)).7vSyN R SZⲻFSZⲻS SZⲻL SZⲻT)] U&g햡BU&g햡U&g햡ZVLsWm DX^*/"YYX^*/"FX^*/"1X^*/" Yfav[v]zn \Gb89CR]j'hR"] R}d^"XR|[`T3,D `vFncb) I m bڈSbm[ N c(~Т mc>bAd dCoGNQ (ev5Jf|RgIhi ahb5qiIc Z']i .} |lF/ $liڟj2 n]UOc -oJouX%~zo^\0 \p=OvD }X>Ov}\Y [ ĉ azf ̂.{"̂.{̂.{̂cS=R̅ۋ; c̅&u; ̆pLj̇6CẄᾬ;P̉Q (̉Q9̉uM^C̊y(s̊7( ̍L ̍L ̍I|0̍M9MR̍M9M=̍M9Md̏1ݴ!8 ̏1ݴ!8?̓X%&# i̓X%&#s ̓' e ̓\u̓[, ?̔23*!̖ $̖F> ̖`̗ZJ;v̘2(( ̘]˭XR̘ s,̚d鏸̝Hp; c̝n ,#̝n̞%-̞%-̟W;1N̠IT1J>̡Q@ #̡bѪueeh̡rDn_̡ףlh̢iU: ̢iU:Q̢գ' u̢գ'̢գ'Ẉ,RI c̥t̥R~T ̦'R\̦R: ̩vZߖ̩E{a >̩E{a ̩V?R̪ 뎧̪T ̫6 fV= (̬4aqR ̬\]g̬)̬\_̰m^EQ3̲8$Qk ̳ ErY0 ,̳ ErY0̵kQ8j ̶`}̶`}[̷Ot&̷Ņt̸IR̸ZvD+ #̸x$ ̸a'4 ̼+q̽®HC̽khS̼̽/ ̽X^̽X^̾ҭ.a̾ҭ.a̿ɊO}̿ɊO}@Z/ čֱYčֱŹd' BĽR0a" a"j cv|PlLF%cF%c⋞ ɗs[fɗs[f %?&f7U&(5 ?ߍϲ?<ϲ?|ќZ8<ҁuv2Us( s(Q_G: >ҏ-shKC[C[ =) ) a)j(M_(M_ ,؏7q=̄jDKx  DKx DKx s|7$L>hB}t>]=Ki{B2d68b0H:@ ٞ~FF @.9RQ@.9@.9oܨtL&mZY$=ZYIE5aIE5RNYSNY #k٘Ck٘8tBm K (.`IY`I `I %ZwC0ԪV[ }Dy"LOmyUv 8۴K;ڢ[y 8  J  Jj ` A]q # rRUS ? (d.Cxp{R>-? 1$KCgZV*XjeQ , Q Qj Qd`XtuHK&PK&PLe9@ R8V  Hח  xIaE%|H4?:DMڣ^S "/; V$_E4s%C/o? '>LO 'T`d )E5}?*x L,jL),K* -j䪴q (-j䪴q $-uGQ -uG/Is&3 /Uj/U i6/U{0'B{T L0j6rgo ^2w3H ,47XC47l,D4C]N4٦*+5A_1M5賿ؼ6km 6ӟ 5 6⢚È7?+ u \8w2 l& $:\U :\UQ:\U<6YÀ,<-z.m=U?>}?}? AL$YCA1m%CA1m%C=RDW-QD +DDɊ_j EmXtEmXt ,EmXt F(F(Gk2 HO Hp>2JdF< J{JVJg9JgDJgJ cK T`N8ńad P xJP xS1P1wKQ.9d6QTC#S H>S?VS #OL S #OZTǙ#"RU j UMo U #8V@D,3Wtѣw iWtѣw Xk0BYg8FSZG_*ZBKEZC%Q.ZD> [6~^9 a\t%"$ +]S ,]S _)?s_2 `y%%`&NCaƖϹa*™bfTzb0[>d-c w^Zd]M=e=]J c'e)&8` eE~U-g go\\vh3+> biqjgx jB8z k$EBPk-YIlڌK liz1onp Wo7 (,qepr,$ qepr,q= qIHȲs (,s,ǨZO s2A>}uMLFcRy '2ݠ! yYXoyӬ6yO6 zNX9Nz8 |~3|#}?'I }?'I }(/Ƿ ~zL f ~udD C)*o?iC ̀ÓỲT̀q ͚Wl@(v ͛H|6 a͛u ͜YY # ͜W9 #͝?ˠ͞[|B?͞5:@͞Xh;`͞ ,͟y[͠ %͠͠}It ͠}ItY͠Cnq c͡BH0͢͡͡Yje͢Zhͣ=f(Kͣ=f(Rͣ5r ͣM7 +ͥ=}$ͦuB ͧvXUͪͽ{=#ͪs29lCͪwY޾ͫ7@XO̥ͫͫuOJ ͬ)+ͬ)+ͯRQɨtͯ,8cGCͯ,8cGCͯŒM2ͯA;QjͰӎd% ͱ-?$1s ͱQwoͱ ͲJI? ͲJIjͲй<ͳ=Ij$ ͳo.c?ͳ||J ʹsp͵+#8ͶKv/ 2 ͷPBiC'ͷPBiQ&ͷPBiK͸́}C͸́}RͺD+R ͺLC ͻ *[ͻ3"?ͻ3" ͻs3ͻs3ͻQ(K ( ͼg Nͼ^-% ;< Ϳen/tf$w[ r r: #: cӫ~U#<& <&[ PIFz NsCNsC , P%|?Y> \5= ;f5= ;f ((Mŗ Mŗ|hzUV }S_WmjGJDkL kLkL#͕dͨ΢7uR^a`WdCE%âfwR9-}IQ9-}IqM KvTFUҴ`2Į]tN3Į]t o$ -ԞK) ?աR1L~.֩ظ /ظ  -qi -qiVm~"݁T&݁Tac]ӢߕO񾒄L0H_ dl#qYY:ٙP 33o(bh a?Ѓuꉠ' H[| JJ☗;c_:TC ,=0 8>9> 2/V (+2/V $2/V i !υapIpd ?F܎%?F܎U ck\EMԧ3 Mԧ3kl: #kz _W ihC.? u"}1p&Ggg?]E jsr a5VQb1qG1qGꮖ>X a~ꮖ>X Aꮖ>Xt!4K ;tp e N^ cJS\1h ( +W"- >M >M c pMfY= N>) @j}3KEuC~ I|tV ,V  _udFS@ Ɋ |8?wfqvm֗ 1<} b ۬hzmd O_K :I:If ˕!! %4 "W/SS "½EǃS#_TG#{$ N󹤸 % Y,rs%v~~) )džO ? * 40+ 0#N .Ks.K.۞r.۞K0Pm m%08l2]uŴ3lkkUK49֕49֕8x==?f :XMj[;~ӻ; ed_ >@_վ?ԧ ?-A @qvbRASqrAnOA]RtR)A'+A'+Bk-?B] CuO|ACuOC&NEDEDFPs]rG"ŗ SJm!5;?KCxN K9wuK"#E ,$K3q #MH7ñMu!Mu! N=Na/9 O|: PʷUPݩ0NPݩ0Q\*G cVJVJWvj'Wvj WvjX\1X\D X\XRX$:N-XJGUcXT CsCNYA ZѠN Zݢ2E [j 9[{j]B6k_睮7b_`n!4| `n!4 (ab+m] bEAc=@FWKcfS .cv#3 c竊Vdd27ORe{u!{ f G f G ,fM, #fM,h#2j5''j5'Lk~dcL k \km4L oS )oe}=vp1ws/q "TtCUt@?t@uu~ewZktbjw wxDaR)y,͍zrŹe} z#ͯts{ջ,3s |vE:}H]a=}WN~~@C '+N[IxXxPT}txPT}t΀$R΀ZT i ΂6Q΂Ow -΂S" ΄?g@R ΄s$B. F΄E;" j ΅3ΆNZ= ·l(Ӹ\;·YY0·YY0 ·YY0·YY0 Έ1RSDΉ#owjΊ˺m%΋|SsΌrfkvΌOdI΍9jΎD ΎXGS ΏXE #ΐ aEΐ @ΐ 1bΐDx_ (ΑJ>mΑ嚽1t"Α嚽1 (Α嚽1j Β*G= sGΒRGΓ&4K ΖАΗSmzPΘ{8p a Κ"PΛ{ )Eh ΛW xΜRŵR\CΜ}PΝS0sΞ,rXΟ5z:X Σ@ Σ_C;Τd ΥB[YcRj>ΥaMΥ]c$ Ϊ0 %Ϊ__ iΫΫE6N ?,ήԈ VήfIJ ήfIJ ήe:ήe:ήe:jίF%5 ίF%5ίW]g ΰ2Qs ΰ2Qs:γhpvδߢlOnεY6 Uζ8Dq?ζjW|$Ktθ?R&ι\ 2 κ&n|NeλkZ]Kdμ'μ0, ν&߇ ν#$^bξ؇i ο2 L3ο2  3 $:lzo. HO5HO5Y çi feD =힌 ]=힌 =힌 U1# $4n 4 ŝ4fRes^tƒ֠ ,ƒ֠sƨ ri zZR|YR| C^y rZLBr ZLBr D~ jkK>}" ʰ/i )~{t\7tLɘ 9bJ^ г(~v%8N?_K'ѕ ѕѕ e %BJJ"r "ҩ{C (uKNjzL!\Z cRnLcRnRٸ = ` ?\Y&^T@@ .e U! - Wu i× PO_<[۶9GWK -eA9{~a?9{~a s0  4'IWcޭ% ޻z a*`S"ف;%B mkҏ mؚ;Aܓ ,?.S< !30 |ctV ,mv!$芷( $芷( r 3 r 3PȭVZ)T&vR 2j;w2%C+Lk4ĩxm5eo5^4v(5eo5^4vj5lu 8@n0qYY :v:ŪK ;`\;e)it;.Z<~+%~?.=jb=8<<=B>oY>;z >Y[ > [6?~vnl8 ?/v] A BTkCB \ CFs?ZD F$2?5 FqƜFsWkFsW KPo) KRj(hLxjJ MkZJ" X M$:e NvpsOc)OiFp O-Oʗ9] &O(<YP- PxoyJ*Q nW.7 SE* TQJDKT% aT &UQҩCDWV͘0W@ٻWjYhi Zɲr [[7}# w[8 &[<_[zY5 1\%P\⢐% ^!w*;^,uLQ _,6_,6_~TOS__s _k|`P`ZqB`韺 (arACearAQ!boR$h/4Vj9 ,j!kH~% (lK i nm=UKDDnm=UKQ&nm=UKoi :pH* \rP crPvtzZUD (u PRv%kͻv#RQw'Jtw;| xpY< xq4+f y;f1-f yU$=XZ|hgA|F˵ |4!ބg|/s9} [|}WfS]}WfS]~j$~΋: d1>d1>ρ4A ρpeF *ςfc?σ[c!kԘ τ0Q3ɻ υ +I υ +Iυ!3&φ )φTbφTb φTbB χۻ@ψ ω\fϋ~ ϋOό!go[ύvG+ϏM.Ep ϓW |ϓW ϔrQ H{r*QYmW}d CM$61{[j a78787878`,@t `,@t @ۉp?ۉp |+7 <*&*5N ^ ^vi U >gR ""% wz˶ - wz˶ C b0dqo y??7q +%[v̒Il?&v̒Il"`{ "`{RT 2ڞ ѤN„ uR„ u„ u-1o -1o ;Ζ e;Ζ c!t *];r E ar b-b>(Z -b>(W|oeim _ v֦|BN 0άST1YK?N][馆0^E 4S!Lu!}=!iû "HUF %/l%֢0R 'Ip [v(ؼ] (iy-9h)'.e)U0KR)+M[&S+.{+,g,FE~ =,ia.@)VAt0IwK1Z 1O2 D,WR2IډO2IډO2j~]6 ('6 (6 (8{*9M J $9a@ϣaK;-;3[ S >&]!>&] (>&]?$zJ?ZB9V;e)B!; D>`D>`d D>`D>` DQ:W EY"Eߥ3WN!FSp F # $F] \GuLAk G=SH s,I'% IN`W? JףCJ"p!K6QfLʧB| cL^} - M>ByJdM&miNZC)O2Gt O2Gt OA/PQwNA1QL.rRR Z Rw VS䳣 SMP  #JS~kR뫩TuLʐPUTڅfUsPU9h UݒDUݒV`|oHW?tV`|oHW (WV`|oHW WB,)[< e[Oj[ "\"́]n4!N ]F4c ^S 奴/ (bޅ} nQ />n"N&]O=`ݸ o5kBt_R "Zko_ ãt 7sZRX"$Ƿf #&-#$U d?$~%أ&_a')ʝ$'P< "'z);6?)Z_)Z_t)ѿ:G*,t*ko +VCw-6yrݭ-I[ -tnTe .S 1U\-5bU;@5h4m86p% 86p% a86p% e86X8er c:9@&];pY;pY$;N<y}t #; Z' ; Z' Z`]?@ l ?E}*+ s?M6y,?M6y#?Nj?N?@BAIl @Rn^A|XEYG9Y,ɞ iYP2[qj?\TpKs ]­ ]^o]YpWD^ƷDa _C b_jV;b\m'h cqJld:թjeg1=QgJLgtCv+hx}Uj/[Svjhqخ k k|lѹ  nqaSoX Np!w8 pfr w҈Rs1 Ncs^o7 ?s Lt{tH)sHtH)?u{g vr&Xs!x j  yYi yU3A(|~uK~y%+~jh~jhR~jhY~qWe|xq# ~WA!р"Rtр°р9a&1Sрb8SMhtс !Kjl#фvZE (х彫 cц]'ϐ цڥ?ц>sn чq7ъ)7 ыFd ь[X $ ю^?~Rюd. gя(vя.I nяh? -ѐٝ:2ѐٝ:2U ђNw ~ђNw #ђNw  ђNw ђNw SєBMdq єBMdqєT܊:єIlє ѕV$6Kї Fїl! їl! їl! tїl! iїl! (їl! sјr2Dњ/њOܱDњOܱњOܱњI3 њ}{i ћ 3BL ћ 3BLћ҇`V (ќ!DtўĜ^[ўĜ^џh*Wџ>i џA$~ѡQwEKѧ6 ѧ%(qѨ`Hѩ0wuyuiѩ0wuyuiѪv SѪr}3 ѫ[KѫEP>YK ѫ|R6ѬTz ѬTzfѬnU#Ѯ;ѯf: Ѱut ѱYov? Ѵjp gpRѴѶc?FuCRѷRkh:ѷܸdFѷܸdFѺ8$# Ѻt2|%Ѻqk!ѽhV-ѽhVQ#ѽhVDѽ ѽĥZѽܧ:hTѾ TzaGDѾ.r ]1`9.GR? e9J O Ks 4|JtЮqSAQ?Cm (SAQ?Cm|Jg Cjݬ$7)Oa3 ] qPJ kj#̉wM>̉wM>ag3~]H`" ~]H`"ϟ| Y|qo?еX7еX74+rJh?ёm\&7~a y:d~c zӢW^P 5S;ql l ׵ س#QyED ٌ #70t 7fbcv ^a3U Ԉ1LyQqjܹDq`tbݜ)ݖ|I! ݖ|I!Y %`z@;AtUAj"z e/: ʬIw[ i #D U Ty%L)Ty%YGM[ 4R~33IJ.lSuS?r s 0" 0" Tx`. `. (tALRBiv \mm%4\|;m%4\ iE隬 6 & ]wmZQ@j裗>|; 4R9P (6(n|P_f?N8sN8? J•N?!1s|^|^0[VLA=.?l9 ^ ]b9R u7ł!ǿ$ga%ER4AK">S6 ͼs0;1PP/< vVne vVne vVne 맂 - Vs9 \ "b/ $k "b/ Iw * ?>v NL NLXJyNZ .1[ L3ݗL& \", 3euu IC7آ2: ]9H~.I ,.I i 7#,2m [ c*V@X0PG@"E |A4 ї A;1A=g Dݤ a F[.bfL $ F[.bfL , F[.bfL G*f jG3b G3bDG4JN܁8KM*Kް= L4A V \ Mw]#[ My3 Ps!iLQΒ2YTӂX UܛSV{L"Y D'd'Y D'YV YwºU Y XT? Z!/eQZA ZzBbL[=Y]\O^f9+_Nm.4_kjr _kjr`D/,a)# a- dI Q eK #f]p)fcCc& i߹j' jξK9 k|KY]lU l>1  (mA_٦`  nKlKn_?i nI@zrp[lsp[lsq5TtH[Kr$S sr}2 l wE= xJ@Hi yL2 yL2 EyL2 z"y {B0~dE Ҁ}fL Ҁp.Rҁ]'  ҁ]' ҃WwPnY҄7/EDE҄7/E'҄7/E҄NcR҄Nc҅( b* ҅ک R҆A0|r҆A0|r҈9-NJ0 ҉( ҉$s \҉$s iҋ7b|ҋ{<!+ҍ0.&P$ Ҏ$Y? Ҏ- D!ҏ?Hҏ?Hҏ?HUҏ?HҐ/ qҐ=j ғ&;s ҔO~ Ҕp&Z ҕ}Pd>KҖT,Җ# җ$җ#sdҚ0!M ҝ-=W ҝhxҝXPlsҡpgsҡg#yKvҢ23Nң:ٶIҤ :)&ҥ+s MҦ(duҦL[1ҧ6!ҨILҪo Ҭ>&YRҬfKҬfKD ү{/g+tү{/g+hү{/g+ ү{/g+ ү%F YүEP1)Ҳʦ#v ҲW=rҵS]ҵ;#@ ҵa|C aeҶFQ!Ҷ߳bx ҷ?ω3Ҹ s$Ҹ "Ҹ]^pL -Ҹ9tiҹ7*: Һ4U9;ҺMһ һ һŖDҽ#b tҾ!` ҿ v thc`[x38%x3-V-ViR| , ?*(MJºYR$ +d<(:?Li*ǒ˓ǒ˓ ǝ? !ݐ. !ݐ.%N gB< Z gB< ;;R 2 @¦N @¦݊'͠|ꏌQ #ͱZǦ-1w0t#; xSɣ; }6t}6 ̗wd?1( $ZuV >k?ns<ٰ S&-4?-/ XP[o-~.r8q=3;_E3;_ I yq :"ٗEGٗEG ٗEG 65` Bi(ڽ.;5e^V  k[& ]-q]-bNƄ2 i@2 i@R mɠbmɠYmɠ ex*螖&J@w_@wnJ .da2 y!ztEy!z oR"cDv ^/fe GDVd7 c/Vd7(G# 5@ k."$jũDÍfa: _ =*'س c@נ9YB# (y DHN? L8ѿ ө\?\N5\N5 ^R6I lV'E=x!;c"W+姪 y( |ҭM"¤6s ¤6s *)j Bye  [  g: \ iJ%S }H~2 s    DRq[  q[ 7Q ?&-'_jC[S 9JOA{&䩪 0T&Ñ{~ $ ;>pϟ Dr1Y&c%:b (:b (9 l$' aOYM6( βIa `vBg 'VF RY" ؝ ؝j!'"`Q-?"bxCZ " ?#<}N#Ti $q8 %J8Ċf \&%MS}b %[+W&p&!ќK&_(l & 'SS| 'SS:({K^Y(}l)RƊؾ ()}g]:X)=( -&݈p9 0}?~ 1hP76# 1o%+ 2!a 6Pb6Pb 7e:tC90! 9ZTm :ڦVQc :rI;8ziˆD;=slQ ;nu]>*Q ?w9ӈ?w9ӈD?sh.?-8| @dܗALQA)W|Bb| Bvx CCICYCHDC:6 {E{ E:E݀r0*F\Vy Fd FO$hw]G\,vGpk #!I4O1 *I4O1 IGwI,ŻjK~LeMNA9XN= QR<'}[ S<S¹I #S2 T҅MV$kVd&EVy:r?W#-X%- Y$B| Y)jYܡ.&e GZ @ 1)[ J \ ]H.^Κ$_1(_1F _u,2= _ۑna\0ԁ[bQfnXc b|.cDɔ icDTrTcDTrTc2Ud"& [ e(ʖm #fcRPA \gQzZ| h_q3k?NLlH m/~mG oT*brzo/@ pKNQZqٓ?3Ls$&uy v ?Jtv ?JvFcHvَ wkCxg7ܢVxmb#w +yl y|zSR{4NUt{4NUR{uԓR3f3ӓ{pcsӔ4Zӕ$ˆd ӕ$ˆdӖt@.vDӖ@)V |Ӗ@)V ӗ11>ӗmJ1Uh ]ӗ61hӗ61hә +cӚÍWbӜ9fj}]Ӟ#T %ӢOO ӢeQFJӣXd ӣXS ӣXLӥO2K ӥ`t iӥ'uX ӥh7 Ӧ~9 ,ӧV #ӧ`[)M aӧ`[)Mӧ܇1{jӨ#mM),Өh'Өh' *ө.!: =ө.!:өY{ nKөY{?1өY{ ^ө-KӪQ ӫuӫ^씳 Ӭu (Ӭ׻#"ӭ$.ӭQ ӭg+ӭ] ӯDY ӯj%!ӯj% ӰZvӰ0ZӲba3r&ӳ0]"% + ӳDT ӳgr:Ӵ>L15x ӵTN?p'ӵ9d?Ӷ65KӶvO5 Ӹ$8 ӹ%iWN ӻ6` (ӼjI ӽ[ktRӾmJ,XӾrȓv ӿ|MRl8XmAC \ |e{S{|e{S{m8] #Î]O9>0<sAZ`S!PĪQ@2qK6Ŕ=2:sŬ`N>k Ŭ`N>sźL?C<s7;eJB+ Ƨ 2Fu 'ks6'k tՐ'μ]tπIPqr ϴػ:(C: .' _9./C6?"pj(<< tNiD ֓t 䚝K3 QSvˍW<j/jDc[ " SL+ MvۦM>۬}S%$i9"7tt| ܅WV?( ݞ LޮdU' Ąd~s]CͭtiIx!r e g/|r6"t=ć+ .+ſzUOI!iKKȺ: fo ƪc;"MbN R prSG5.wk i [f l^J AsqY ߠ |j '[RŢ j $c*dQ (,,,i 헕H{ʀfN GdXs \C ]! TBvu ڬ4 WF͏,=ȸ)  3/&a 04NQ5 %L^LuNZ42{9S($ , 4zk ]Zc \ :9,? G,o^J4tHgjS~ "? Z +tS5eьRFk ?Fk j<̡ ' {  >? +HmӞU+HmӞR+HmӞ e tQ 3#ա +7Yl$ 4z4zDY~#]#0Ybr#qФ2$_}v K'wWcsU'W'kG,'kG,d'kG, 'kG,f(6n(Zoks(jpl )0:?*~ =*~ +J +J +n5U+n5U ,V7OBR-.' ? /H3V :/P&J a1'N"13 3&Nl  3W vU3W v@5`T5`T6b776)>7n58N:?8 P*QOv8\ 8{cj28(ypY9`GF[9`GF[R9`GF[9]8 ;H ?<~62?`?@ɦ0?*@3MBԑ_X=Ci&f C~K0 D7 kCDnĞ7r D'-DmDEZ@lE%zC"sE%zC" EߨF =EĀQn F6ӟDG'zFvJʛRԧ+pyԨPb&*~: Ԫ4Mt [Ԫ4Mt ԪbH@Ԫ֜-9(DԪU jԫ% ԫu!K ԭl X(,Ԯ9T\ [{ԯHVM nԯM ԯT$^I԰7P0԰7P]԰Ί=u"԰Ί=uԱzQPRԱ wūԱ0h- Ա̡ ԱZnD Ա#4NtKԱνϫԲ pԲ  Գ!8xNԶX?ԷwLQԷwLԸ ])Ը+r$& n Թ\bI ԺC@ Ի#gSԻ#gSԻV6Ի9]Ի9]Լ(v}~I Լ%ԼԽ)/dcԾK{Կ; :9 k A %k A %ĄM ĘeOŏ mGD$J6?kMj:Mj:7Mj:.Mj:Mj: K9O) Pe.Rd.R\I2[ ̮i )?ЮΫjF 7 7tɨj?| H +z /٠: J"ڕ>[EhEh^C ڈ;Vu] El'Rկj\ .-I .-I!yjY``@ҩ/T'sZ} ֬NQ"w} 7VV i'ro7ˎ ҩfR &gun hh9{w긭a5 xW` 5 ryF6 uNH NHLfWJFaYE!OFaYE!AFaYE!v,v,|^RǕ۽ +s!tv ~gGsIJ&s&s $5 ! .7H% s0b f! iP7= /O|VhNQPdWf| iD RW 2_~^_~ L\Pk mJS '-Q^  av av | ̻ s `Uc(B (c$8C 2j1؟ ȭ! wSξ;dLL #+T aCu3 OPn e۲+~-`\5Z  瑗| !s"5*7C"3 ":6E)$f(?$= 9P i$Hq3 %؜s%$-(3 &%Pj e% W4:&,޻)&`?'@<)#  -ٿ*ܘQ/ u y I/@A@ /nn00 0KÕt 0:hBcR0:hBc1|xBK1=4J 2+2@J?2 kD 2 k3Hbrd>5~(6e 6e 6e| 6r ?6s  6䈮ۯ 8S,/9~*$;\iCs;\iC a;6Ȉ ;6Ȉ dSbP&> h>%?Fsi -?Fsim ?G4 A=b 6N@AG5 a AMB:Ϥ`Bk +9BA sBA \BA? DmWhݢ DZ6ZE;XE9AF[aH .H),PH),PNH| k IGt7 JK6_L2i՛x՜< %՝W՝/MR՝bǾ$՞s/4 xՠf5.ա#P}ȗ բUUx\&բ6tգR4 dգA ,դo եgզ9 զȕg^G8 էTlτ Zթ2+\ (ժʩQ& իRe լKlNլFgRխiHF a ծK?կMIկo8i$հ[ ?յ"o>i յM(յYھ;Hkյ%T#յ9 նU1SNոrwNBո悋5 չ\~ պ?jպ4Mջ]ջ] \ռ+lj< ռ2y սS ɢZվ{,տILg`տILg`LտpDt]տpDtտR;տR;S AIAIXv FtW8z u sVh;’q&¯U¿vHd8߄,p<X('- D@'k ^E/2dĴEb rj$ ?VK\Ws; ǯFXO[ǯFXO7m$ ʳx9nQhe+|D]0Qab"t Qab"bЈ%YmȸL(*?K+" S9'#>Slݵ_#T"Տi4֞`]֞`֡(J` %x;K| o ٕ|>Ek}?k} k} slf2g $vtyK(VV8Y4SGU ,AdANaRqEj-ⰾg iⰾg gаes=C j 2Rk1H輍HKՓK R&O[ AF ( [ AF (zYd3&(zYd3{_+?얧/݇ {#P a,bc}RYeN YewM;? ]oGr]oG &<b7 a 7t&\a;!3 }B }B 8ejQ޷4FNô Nôz nRo \-3W -3Wm%LG\ t(mC_ O|J25 $vzؠhLox ox^.s::N 6? gVֽ یBR >  Nx0 eȦ6h p< ͼ ͼ ͼ ͼU`@F m zo)|$*N8sX8;s Sj ~.yj< `ya`ya6c r)FE_ ٟz~t ٟz~ (xf?+-Uf1yϡ?#f}P^?#f}PT?#f}PL1?#f}PS ?#f}P@t6@q2ե A"vTBuxKDbbݼ0 (DeNEDDeNEKE:)2E:)GoR GE)IA607YIċ*J/ƣ^J0<J0<t JTNjKCM[L.ort * Lo1xsMk+gu]NV mOH/i RNmt RNmSF6jU;dU;d U7Mja^ VrVoK WSu7O[?W ,XR_YyJd ZwAS\-ER\os]l%IR `B!d a^>d a`8b%1cb,KVP bہ&Cc1Qvx8dW!gdSeSe.th&p- h}S $ idSJi "jۈ$Kk06{kRPЈl^ E m/8] mpm2@x/mpm2@xm^C0?o} ipczqs6< CsۈszzksIyru#Cgu x3u xwD2? xA x/ zy)* y)* zyD zs4?{*vG)~m{"~m{~%H`$sSOjsSO aM .sJ #e~.ր7ޙaց_u#bB ց\fxMց\fxMց=4փ9͠ 6wփ9͠ 6փ9͠ 6փzM $ք)- Bv օn1~Z\$օ* ֆE # ևRȣ ևֈ-ާ։jw|֊iyi ֊ B%֋GzK֋XOt|AR ֌nv-֌])M ֌mBf֍6}x5K֎Tݭ ֏ߡq ֒ 5@ ֒ÈRj֓~HR(֔Ǐb ֔= # I/u (SED c>,g6LE F:d sK{~C'[WX8 q vw^8,R>y`?I޼:@!p-{ aA-#1A-#1BЙwB`P셰DB`P셰J DH? uD_Ip -Eh|eFG呂,| G bQGaK2Hߡ Iq~INIܼ>TKsrc%KsrcLL1LtMQ'N(k]dNOF^PPbA Q9| R#kwDZR#kwDaUt]AXƘtX7p|Y~SyY9bq (YΤKZ[ Zby[HBu\5LE\^'eb? \/WS\(w 5]rUE ]4$K^ns^1\ ^ &_c;s_ە0` *`bW?5$ `bW?5aom&?a~aeWVhbk((RAbk((R bk((Rc-R dkfLD]n bf #/ɂ gg_fbN h=X h=XUh[(/p? hx@iSh~71ir –v iq5ONj6BCc jF6jP0 ik 9Rk 9|k[[;)#kiz<tk1t >Vl_v Nmn:l&m m/}qn4s c o7Z)p̮Nvr^Zd(O}ssoKbXsoKbCJsK1sqou=Gp\u]>4u]>4ugS0-B vg wh0? z1bzXL~{~6 s}5'd}Z}ZnL? )"׀ C ׁr_ߓCׁܒNA ׂĭBׅ!7FRׅ_F׆;9t׆;9t? ׆VVXT ׈ 6^ ׈" #׋b~:׍Zy׍Z׍Z׎R*0LN׎R*0X׎R*0׏Qwhs,ד/{sj ד/{ssד/{s ד: " דdg דn4 הbMJח5(חky חmחVqkj יxz ] י&R3ךB ך1>N ךQכ{ לatלaYלa םzcYמlzSןkEl< $ףs! ף 'tפPץ 'l צD ,צD ק"sר7HL -ת"]*׫Xan ׫Aw׬x[׭%Ü$SdׯZnfYZװ%a~)װӕ2M;״yV#4׵4W}D׶-{'Hh׷]6Ă ׷´"{ i ׷´"{׸m3mj׹̠R`T׹܉)׺^-2w׺F) ׻`B $׻T5U׾㍂׿Jy ׿V^uPR~ MU ^E( % bVVfCFmgLC mgLCtkmgLC mgLC Ś8|%}sR%}sXs(~N LP= !RE) u* a1$~S" ,"i"iua 0?? Б잧 `g9 6 ` e `  AgxhEԭ2#8 6BI Nh@0"$of-3 Q 2NT.c%a޵rg_R)qߖ=s m<(* %M jIUR|om vPk~·n 9 e˞ - e˞ {n.sd,t;5Q_-\f6w ). H?׿ 7ܤדC[7}b \[7}b s1s 4"`^Bz+ -r *'O0d&wdpk ⼫@ %BW- ,p }Q_ #R04G6t R04G6 a/To]p0h;?j0h;? 0h;?bU  #V s #VV u \ ; wn? Ny X QFcq ιjDM ιj +qD9 NԼިڗLjH $^g_yրlu d i9ds dh djd =P C-w,L$ $ 맯맯U+ϘRq S ú >机>机45R c< &!DZm ".K".$S75$ ,eH s%52\%_q+Af1uYAU6 "BijSUErvFFUMcFunI8h"_IZ_NSIQzCKl?_L= KZKT@RMbM|iR N,'.3 i%OT )v O|`R; P}PwQUKNRat!?RfD܋R5F_S"# SO S͐; T~cfG-T9i/ Uׄ ^ ViN.zVvTYe}1 ؏`mú ؒ$F cؓx×+ؔMEU[ؕ8e;ؗZؘKu} ؘt{@ !ؚL]> ؚ|1$ ؝ѝ"*Vs؞::DY؟ ؠE8iLؠ H ءpآ]ؤo ؤ˒ \إ[إn6Sئ5i ئW ةoƕn ة=Y تY`} تk{C% $تk{C% تk{C%|ث&c.8ثwBRخ{ ذgr3n رQ@رQ@ رwT(شYxشYxaشYxZشYxص9Yض; TطXG@$ #طuþ ع%S7UUعع غ=ػ&F ػ*hl> 𘌡>;S8A }r-~ \D?- *cCǗF0hei](Yr>? Pderec & v->o4tf}d) f}d)f}d)$D : lդ? Ec@EcU$EcEc P^s@N7bPd @/o7%v}v}J7$Jn7F`#>9p P)>< #k %fm: ς9U -$ Ԓ,9 zys ;Out}}ɊsN'2!݈a kDI_j aBu ^ kS)U,n@Z3U7  undtI b SN K2 SN K  SN K[s ma>c"Q8 ;> *m6 {TßdL4 $ !Y`@ !"EC"a{0 $#d5#3m)j#3m) #3m)Y#3m) $C2X]%,KUD%c O4&3' BY's[s>[h >[j>( @ -Aߝ[A@J@QM j A!B sA!BYAWz| AWz Ci8 C| F/ E/D?F.b0jFQ HJR`If ^?JaCL $ JaCLJ=kJKrK|~ LLe MNrjjN?{<^P^9ǻRyWaM vSfnq&S2Sfnq& Sfnq& ScBSy[ n TFN-GqQTWlU|VEރm<[Vw RpK W& gY h[==[== \&j \f9?6N\灳]mOt !^s_nzk_]`]`%x`)%p>aK7wЅ ar#|q"aTcéfĸa ds3d:f f(jBcf˙G fBFtfBF guSdEh88A3}hx6 'h{u?I kz>UR kblck \FmR=  mjVtoq= "oI rg+}R u6& v{JX;vjVDvav yI~u`8yI~u`?y F`Xy F`z;Rz#vCF7z*zT. szϪV |B|BK}ȮZ}RO! }ROC~Ҧ~C0 ? s;v9 فlBA # فlBA c فkWjف(pق ق\* ,ق\* مA@辬هzFw2هzFw وg8 r و[Ѷ< ى>Oz ى>OzSيRy&qً1Zٌªsٌ'YL ٍ^_ Tٍ2< ِBD* Hiِ`T cّV`/U ْGVْo`M- Xْ3:ٓ!Wy@ٔs=[ٔw ٖ7zkٖDPX ٖV<$ ٗQ{T٘ݖ!DٙQ/ lٜHc͙ ٝRyٝS0oV ٝS0oVh ٟ4&4 j3ٟ4&4 ٟٟ ٠:\5b٢]Rr}L\٢]Rr}٣>k i٣ E[C)٣ E[C]٤u`K a٥ ud*٥<3Z\i ٥Mv٦S8TY٦0 ^k٧Szd٧ncG #٨8Ct٨dN@C ٩Z ٩j2U ٪URLK٪>] ٫ V ٫ V?٬";?ٯPٯP ٯP eٯ5 1ٱAٱ>pٲ)ٳo)ٴ&Z.Dٵ~ ٵhٶ:rٷٷLuٺ}[ ټLAټlM fټB # ٽsh ٽs پZPپZPپZPپZPٿ/h0xUE<ٿ/h0xUE ٿ/h0xUE ٿ|A X*Itn .v6rQ/6; -IyV $ +}Ѷ i}Ѷ ƣ۸I ]WD-? !'va]18VcYmٹ~㴇>㴇>QF F F R .-9+`-9+`!kϝ"_uϵ'z  Qϵ'z  ϵ'z  ԹjүP$үPRӒ3 aRӒ3 aYEYE YEKظ%?ր{K Hl)g*JF?JF? ^ij IN (aMz :-DܯoY;Yzz;Yzz;Yzz|9w+ uQpCpC }> Cy9]໙ u .9ڗ,WԎ'RN8@w!$])]Tӽ 1gRK 1gR1gRd}T5V }T5^kT l0=k ;^U;^U;^Uʗ?-ACx<rPGNB1~m!t(2h|9:V-usb<^4D"T75%:Hkl5bdqI k>? 5GH" f[]{ j M$NYtNj=S &{ a] gY g  gt g  g  l]% l]%  G5&`V ӽW>s 1E  ܢ ]5/t $J~]y&4YQ Q aJ"M| v )j8^W$9 \Df piae9&0:T.ՆKt Iz4" * S (P&f ~DVRG0r5vnju`"h$ , 9GHTƛt g¿N v#!L>*!d)$qe6R$r2ERN %:%Ka &<7G'=, i"(HEH`r([?ak (\KX*K'H? +KtKV,>p,>p ,Q 5/,}W,TmAy8 -D/Lj-D/-D/5-D/ -D/.,\ω/. 0`- 1?^L3l1af33e[N 3װ 4n@K50N$5q6(va 8 *?9c-:늇;'X ;+@u'>@u'>@u'A~0Aw-h B6GkLCD fDAJRDAJDS`8 aF3GKA/Fs G}4 iHw[IH$&UHrɀ HrɀjJ$LKKx7:L{˗L{˗Mqmh^ O TsITUm) ,UGnzXPӎ)8XE0dKZeEZZ-, s[ \d^KmL+\d^Km(\d^Km"\d^KmP\Hb\Ht]5Sw] P;]A ]梗/^HaE`B|aWb[ +b[ ew5^j \gWf?gxZ\hEn$@W4i^A5jL jZ k"* lBr l7dOl7dO9mⓆMn xnBT o:w]toG3pK7ZKpdE,OsV6$sV6YsV6sc&>tn! vf}.w|ctkwú`wú`wú`wú`wú`yFj"ymzE׈z- U> z'| Vh>? |+"|8|OuLh |Ǖt}=J }B~Eܭ, /NoފA/NoފALAP<]>ڀg cڀՈ!ڂm] ڃU0ڄ # ڄ6!}]zڄ6!}]zRڅ = *. SڅpI )Gڅ~،څ\9Yڅd! sڈ*z4 ډ Px6#$ڊVڊV aڋ_wp ڋFڍD ڍDjڍD ,ڍ [2N ڎ; ڏ< \ڏolڑU T ڑ4=Rړx-acړD9` tړD9`ړD9`ړA'> ڔ Wڔ Wڕ);l+&ڕ);l+&|ږK3R ڗΨڗ~vژ&vڛ)AڛMg;aڝyBSڞ;g ڞʻZy ڞnڢ,J? ڣ1~ mڣGJ;ڣUS&jڣUS&sڣMʸn (ڤ9&=- \ڤhV/ "ڧ\ή#ڧ\ήd ڧRsR ڬl\Yڬ:\] ڬ?mڭ1{ARڮƍJگN7/گ4yRڰ7-_~ydڲT\Rڴ*} $ڴڶBڷ:;(4ںD@ںD@ ںձ;% ںmKP8O?ںmKP8O ںX$ ڻ2vڼ鋙"9ھ`b<ھjwR0jھjwR0vڿcS lڿy#Z) ,>6 mYQõ~ǻE`3Lxdƺ`t ÜǏ Ӡ \ % %d=1)VU-wᩋ Z/U+m:*^tw1f-3cP 3cP 3cP3cP ,3cP 3cP<}}5R*fu *fu NTЈ`#ЌNn гU? гU p0=[J}هv\0] Һ 7xNZ\n#Ԝ[wDn% c5R#L4u_H։,׸ T|cع:RHST FS8HST FZ [!α mv #ޗn`YfyUd ٚ 39ўR-9ў]l> xUsO>azHPĽZH "gD goC c6c6U) ꕀbIn ꕀbIn$ f4 f4 >I+">I+Xk %_N Gt( - y;v,jK3*JK EQ 4{t4{RGVvNs fl#fl#D^&9 A 5 SfY 1$  #& t c @CV ·ԙXg# }+d <FaFaLԀrp30x0dxɱs k{  /ZP_q39 HBy!jjn' ;q LDq Uba g$E~d s &] [C%H S VQG`a l%j Qi !jhEA"&n."[  #hgcQ #hgcK$ܰS $,R$2W(|%WTk?w@T "U@li 8 @+puAL>υAXMCRAXMCC SqC S/C S%C SEג7[E ,!EhE (FfP]>fQWAQWA_`QWA QWA Rv|S@T>Sf?T X>tTqaqSjoUw^ ,Uw^jUw^Uw^ Uw^ (V.=K Vd=" Vd="VIjW-\4@ W-\4@tWgIZdóB[܈J9=F"[܈J9=F \Td4 _# ,a谋C]a?b{01; }*Bf:}t4 (~G`U~G`U EfNVշ3;DۀPd< ۀM2ہe cۃ 55 ۅK-- ,!ۅfa}ۇ"( ( ۇ6$لۇjUu ۇ#2^ jۊ|;&O$ۋ_ 7 ۋİ <UیHyvۍ$_֕ێ1'@. ې%4jے$Ⱥ1ۓt 9ۓY.۔a6x =ەyyۖI3" ۖR\ ۗA*D, ۗ*??ۗOۙY0>EۚBpۛؑ+d۝_D !۟O۠w?۠Xr:۠Xr sۢJ,2KԴ ۢS ۢS $ۥeb a ۥkGoۦ_ۨmO7{۩~C ۩~C ۩7sۭLf ۭz,(Zۭz,(ۮ,z ۰X ۰Dަs۱61wv ۲unp= $۳K9Q a۴> ۵_-gĺ4۶;} \۶D~~?۶\-~:۶{۷1;۷1;ۺoۺoۺ4! ۽o.K_ ۾ivqd ۾?( ۿ?YۿŸ^t'IW< 1=J/$4hŜDב{CS_T \K X3} X3}9ɋ3\L; e0ŌyWJL$yWJLnz/tb tbtbGžJ -[+hu ѭ1rrf rfZ Ҋ  gӣC]? Ӥ{ u&<VV JPJPn1. ?ַ,|a+{;4葑 t٬4 .0'rwuK ۳ܻ7Kp>?IM>] j e?N'xA68B G@uRK phPU ?JE?Rw? \+Ù 襥N@$3W \ 젓sL젓s젓sD젓sZ L$^#c-ܪY1몑/ 5 @J ,dB (~ܝx ~ܝx 1Ui_#Ui_Ui_^V^k @yݡj Jv`[B ! N3q?TmtZE *IXZ`PPWUa]W?<ܕC<ܕC VBh1oR~[5“ %Lp] !oNgzKPF(  B  HA"Tv+/ݼ| $<S]N$ZMHBc  x kc8_ f uA? 2F>G *f Q*fCECbh CECb #ɯA:I8x(} $uK  *l)ի *l)ի $Z#{#U.p [  R7kjXrIk 9O j;*a. | )eC Fa,{7 b୧t? {2 -#!K?#Of7# c #F5U S $Zo1X[$Plތ& xO6 "&\J_ 'S1'Si,$(B TkV (Kzv# (]9)lhB)No *J4-+tr +&>+A# +A# ,T|,T|],T|,T|,T|,T|,ݲ8 3- *<Y. 5S. 5R.:[ /5pSC/8Fy: c/IB0[G'Ju0mc+% W (0;k1{=M`2 nBث20>n l20>n n20>n s2&߻Qv4= c7^k98OeUE8Ċ0~ (;#37 m=qw{=䳭O w >{;>8/ApGvBHdn BHdnBnP 3 (BEV4OK:} $Ef,bjJuy $K`o L^|EREL$ OVrROQnX TKy` U(#-VrΤ$"VBѓSaW"K W"R W"XݵX\˲Z7M[n\\^wC"K\_Y ]IwO]IwO_P~_ l܎}܎%>C m܎%>C ܎nPK ܏B s܏ A ܐs̷ܐ0zܑWܑWRܑRbaܑ]J4ܑXjs sܒM [7ܓ;w3N} \ܔ' ܕYYc4 sܕPV}@ܖU&^dܘƖӥܘ轫3ܚQa1 SܚQa1ܚQa1 ܚQa1 ܛ&4ܜөF ,#ܜcܝʼdܞ8) ܞܡwjܡ}6 ܡߟ{'ܡt|N ܡޙd0?ܢoRr 5 ܢ}# ܥHܦX)  ܧ9UfD ܨ=I 11Dܫ U;)ܭ:6vK#ܭ:6v \ܯd'=ܯܰC?ܳeز+ܳ~>'jܳ+Oц ܶb-8!ܶpu6U ܶ';[K ܺqȮ-ܻS7zQܻZ/ܼ"3(\Rܼ" l (ܼ" lYܼ" ljܽ][l ܽ26 ܾ>BܿЛGB ܿVa|Kʄ- W" ی`25n]R N"[ nY䱯nY䱯RnY䱯nY䱯nY䱯RK &J(oHzTȩ?}] c$)S;Zwme]  IQ?ʛjM;"G bΏ+6cdΏ+6cΏ+6cQΏ+6cΥ7' ϴbϴbώ`YNCJU ^ukFvҔB{9 ܁Z B\maw$:̮Kw$:̮7w$:̮"w$:̮ WaNQE E {`Tl,LQsLQq& ,Cq& (_&] /(bH -١A srϾn/Qy (8y*y3!A?ޢo" ٥[l][ IF^cIF^c 9S(|_9S(*59S( s9S( 9S(тt zdz!( zdz!Y zdz!Q 1I1 XΫ!u1udlv] LN*Wh'S 䳩&1a   +罒[t$罒[j罒[nW0v ڑ#(# ȵ`i9 V9)T fS S fS L2L >SWl (&Wls;Mmf gtU P7?SN& xN& x2bmO( X(ow'̢?P$%P$%:P$% yB( i ]& vlt NQ ` ` 2чf;чf; QJ  iSC B_ e4_ؘIwj5B0V^)5 Vlw?$]F -6nǡ#Z 7=D+}"t c}ѳ 4! 3xYQC4"fs6Q 6R6_wr7m=k 7m=kK :Mx9:tmc]<@9J=n1=n1Y>bc??jh ?b@3cIBMAIH <BMAIH mC-$#PC6h[CS$ץCS$ץCf?Dm'bRDވHxDވHR9DވH Gok H'U> Hk; HI:{? jJ/氨KL;~e Kub?MJϤM' Nu {- bO'hXpO!<TOKBP OTnZbP(> QCxQCxQ1@y cR%#uQR7L Szh KCSzh S׏gT.KiT.KisT_/OTtCI TtCI%Ud?sUrى jV[bLXB(/]?XnOX r Y ;dߔ|?eʣq_ 1f<>O&[fk;?gFS(XkgFS(X gyhQ<> &i>#x !ijrRkDgam lHչmmaB qNÅZԹ qNÅZԹ r[YlSs,#=t&r}k t7=ylStLuLЌtAS8 cu ƨg (v4( xIdx7A58 xrmnxe Wz.(Zz7wz7wz7w| }4t)~m@sZ A 1݁ !.t݂ѧ:݂ ۘ j݃51N ݃ʼnp6)݃ʼnp6 ݃ʼnp6݄,Y݄Pȵ݆^(݈'=3E݉$݊Hp݋0 ݋D+c7 ݋el݋Wz݋Wz ݋Wz ݋WzL ݋i1h<݋i1h<R݋#M݋y:"7 ݍ y]ݎ)=ܥ0OhݏVCXvݏ< S ݏ< Sݒ[Yos ݒ[Yos ݓEH $ݔzƻRݗiib? ݗuO)CKݘYjz!L ݙ>ݙP5ݙ?ݙXD ݛ}*ݝksF[ݝV9I ݝŤ^/ ݞsBR"Aݟ%&4ݟ% ݠjEݡiYC f ݡn%Ȼkݡn%Ȼݣ(N=Y ݣ C=ݥ8wx ݥ[Xݦl ݦt+dݦz9  ݧN-Nݨ?S ݩy ݺ@ٽi% ݺFJZ ݺ eݼ^DHKݼ^DH ݼ^DHݽT̾ ݽA銣'ݽA銣'R ݽÕ's|ݽ[ݽCZsvD¸Nd@yi?yi IJKg/=?P1KŬn|$SQKSQK Ӵ>ƕ#ȸ@ɂiďKɦsKC = i}bdj̯[ RT ;*vVt -28[h eB׽iNWRb>}K y]" r*'WF;JMtZҵs'? շ".7$8շ".7 v;;7 =#(FRe>$ jb4kD*?M a۸ҵ;)۸ҵ;);s =>^`n $ ݊\v;[= 0)C Doa|OKt!?DUߕْs[m2 ] 8d. Wԍ@+ pHqw PK`荵1 %~}BJ60_ JK>lI/{9 Z>7!  ?\.6/? ܐ Ath D>CBfDDR$F DR$F9E2gaPZE2gaPZsFiVb:B[FV^nG.u4 G\H,0?IEZ}Jz8+ JH7pJ8:ҰXJ8:ҰXL,TFvvM*1F MA+m8)O_OPd>f@ PK  Q܊% bTp2{CT‚ TV'jT3 YUx?Y , rZMX\a#AR\ة ] W]M s(J]m` r^ܖ1_#ZY aw bpDcb`RdZW%! Jd뙇1?Md뙇1 \f hhfdl $ hfdl ah˦TAh˦Tkܛ-n; eafs nI(ck[nI(c o) -pfn7Rr?s99!1LsNL]rI sW|p: s` R? s` R s'}9uNML ( uaҨu`!vVx$O1]xHַxhN@]{-币9|7is|; #|G;%J?}]@" }׾4 ހ5:rSހ8jrGL ނܧ'+ Nނܧ'+ dނ` ބFbc_Uބ^Ө`ކ\wR އWG އq-kވ`ںܪފ# #ތ32uKJތ32uލ~F ގ({0"ގ({0"ގ-bގk/МjޏN|ޏw(ZLޏ{d%{ޏ&Ϸސ)4A ސwcBYޑ? ޑ?tޒSܪ=ޔC7g[ޔCMrޔCMrtޔCMr ( ޔoo[dޔoo[ޖ~fU ޗb)b@|ޘZu.Uޙ{\ޚ~i ޛU\W ޜ2݆"7ޜuK]m; ޜ'}48 ޜ0RQ ,ޜ`{nޝɝ#ޞ8Q!\Hޟɥ >ޟɥkޟɥ|ޟR|ޠ1#ޢ4ۭtޢ4ۭ (ޢ4ۭj1ޢH%ޢH%ޣ~uޣ̪p\ޣI{ޤxY;#9ޤ߯Hޥ0Ĉiަ;sUU)%ަvE ަ~BhX sަّ?tާ s ާ;ީ8" (ީN<:ުwmxm` ^ު܁  ޫ!߷U ެAeĔSެ{2TެBE gެ݃}ެXE=ްݖdJ ޱ+6= ޲0Pӂj޲0Pӂ ,޳2R޳ o<t޳Ps޳Ps޴& ޵8i $޵vz<޵=޶=#޶P% ޶jOv޶W`@ -޶G8f8޶[ CK޹tk/ g ޺2o ޺Xz@޺bSX7 U޻)zHy޻fyoz?޽@޾H|N޾@maV{ jR{ j;9؎(;9؎tv\x%‰;T~ c©] wŰ'+űL ƇwKQ Qsʌwa 5̌8e!Q' vi) +2΍Omh άLάLdVzߡfdѡ^T Cd s'_ ((3j~ (3j~aJ :qUNoנ|lj i>ס٣Rס٣? 0ijjj L7 c(SOK jќ-MVw• CTF ,?DtlxW lxW.$ $dix ֵ Jم]@ #h2ssCu?~nWnd'PC-SrTF&8u (_T&Ũ dc`Wn+ Z.x xRSPSP e, 3{+=d4^[J<5 o/|nv`SM.?{~}} $ 7 "4@Bkxjˎj<?D=Gk_|ҵ| ݖU{ݖUYW< [h]kVvE)?i#0s3:9 ~g?s6Us6 \g< r;ݥfIP?W@ v\R~@Vnjl ^xa #|[& #R%]4?%]4 'Cx{ (!mS$)i- )OB{)OB{ ,i^ i -z: i-z: -b6<//2Fet4hšp 4hšps6Lj$0|s7C2k9*Ɩ;98Hh:w'=q =u%$L=u%3=u%j>rygt>)=aށt%?"l?"l?"lC?"l?"lDA,B GC^!w7KD-n+ \D7u Es1O] Es1OEti sF̻c5F`jFcžIaSaIX iJ־Y0tJa aKOp L9  N +LQKBN 2Ll zM5czhM5czKNsxm@@ aNZL8#O7ctPzS,w+F?UGYWHE.j=XfLXfYXfSY IRZ3$ 5Z3$ g\C:&\m$\mR\ ] Xs]pM[^&` f^`_:,@?bt`ԧa aMׅi b $0c5yD?cAB< c\;-c\; dA7z dA7z dZ~8 .esa"eC6g?h'ʤJhI Z]hI Z i~?"ILl na9=:?p!*?q<M\v re tn[t𤾑NupJZyu5vj vAN+ vAN+ \wΜ5^w+Oa9L ew+Oa9L w+Oa9LwQQ|eqwQQ|eqW x$Nx8h9EYxe4!Ssy+F.Nya$!KB$ya$!KPyQ yzgpQ{)a8{v_>{|x-{8|8̟|8̟R|v[(I߀xD1L߀mc ߂1uuH ߂1uuH߃)nȮ ߃DYQ߃ʢ*!b߅.J t ߅.J ߅=w$6K߅=w$6߆lR ߆%bPD ߆i!m/+߆i!m/N߇ 7%?߈7PDN߉8ˀS1RߋB7Uߍ)蔽OvߎWw ߏjEYߏ6qKjߏ6qK ߏ*Ni]ߒw?laߓ2 ߓPih aߓBa> ߓr} ߔr6sV<Q ߔxzV ;ߕJUEEߕJUE ߗ &ߗX\ߘTWm aߘKp7 ,ߘFQߘr7 ߚ+`ra?ߝE>?ߝYZߞr7N ]ߟ8Έ ߟt8QߠobeAߣ  ߣ10UߣVR| eߣVR|9ߣ_eߤ?'ߦҶ ߨX ~s ߩ ߩR{_@ ߪHV߫= ߫LFL߫LFP߫IhS QS ߫got߭.|ԙ !߭F߮Qw  ߮V߮V ߮V ߮WQ ߯"m=r߯%Iv` ߯0lC"S߯=/߯^ aJ߯^ q߯m|߰F_ e ߰F_ ߰[_߱ }'[߱2 bt߱2 b a߲.ň A߳ Q,߳ ߳ ߳ Kߵ ti`j ߵ{߶r, ߷5V߷ _1 ߷Kሀ߷I9o ߸9aH? ߸2tW߹HZ ߹2δ:  ߺdP&SߺdP&S߼*, q߼Ja߽x!߽SR ߾oq%=XgNQTu D! zu(v;z#n ڑ ^ # % i U&Dj w' Fov SF #   A6>Y =9oѧMn$ ?z86{m )ñ7 "-(K ,Jk.d2;Q2^~,yC -!cl-!cl-!cl-!clWT=D@ w}ϵ*N g f?lhD _a -ՃQF8XE^  Ld -J w !!F= "W#[ _Z$D t$N%N' &v&=Pp&ef Y(C]8)\d̺5) C*-Z]*-܅0%-*5 *t<+}0PNK+}0PN+\t+:qU+rB ,n@ \1;K 2R:v3()f  3()f 345}xR5 v15 v195Bڇ i5 5 6vs6fG7@E.s7}2l |27v87v8S7v87f ]'8GwDv 9@BXL;1ĸ=5> łKv>hWP>hWP>ݾ}8 ?W}@`bwb@?AJQZ Av -B41mTdBLEc9BVBL&DcϛjDlrdDoٓGFKwFW6.)FW6.GFy H8HUXJ0]Q KKx+'vKX LW"0.$NIeRH + NxS<hO0Q(KOGݞO8 P@,B - Pq QWJZ[ l Q+ |,R`l~ S5rÖY g WN@|? WN@|jW[k Wͮ3) ^[2[K趪\%OO ,\]P]!4t ^zڏ[ s` Cj)a۩ cQy ?c`5+sc̻/jd2 djDoVdjDoe{Revje{RevKe@pK. fta6t fv~Ig.t`hihxf ivŊj|NlBmYumAz3Kmh Wne nN tzS vXDwapb xGF2xım y)SzBՁ |IL}+z.?}pr i}pr ~ a~ibo~ ;aK,B;dB;dB;dB;dL?p0FF&%S` e} Z 1}x,QJ]jsX;Dm`Ӿ9 Cؑ s >-? F39o , 9o9L0 2PN|%/m!T m!T GJ2 9f׋ fl Y=7 rSh4 Sk bG r#[߰)qg% w *@cV *@cVR a]*aUaaG[ xO #nJ?nJ q):l \ b5 a;x9L^9O5sci1#% ɜtt#o;SH%zD ,S))RNAlLvQ n8>kro]9 ࠭J1 gjG&&P_v9#o? ?dt"c "QME/1K$=%0 %eܒ%eܒNVD ষ$TSਆs[ݚV਽ @ 5ਿB$S )\nN5ʛ6BSH଴߮3~ E D IBiD A(xOSyfC ௭UjW (௰a_ \௰a_AWLA)O] RG  ZcfZcfC#x l a "k(¯ ෣Yro'0 /cϿu /cϿusdzZ^!F#f]sL@$ uM^8=$:s@O  ӘgS ӘgL Әg.< =\ 瓷 瓷 瓷w.((x \ hdusÐ82Qğ|ZǶ "ź䱐 Ym=YmKYmc+JYk$g l } Tʅ` g(jEMY+9 +9 e8yXIήlS% 4m lSdkZ (SdkZh^ˠ ^ˠ Ϫl(={r#ӹZZS憲 Ԕ"jT6>IQ aօL& +֪G@ ֱQ bRm_$شi< j ٽЂ#LSȋ VS\=]#ezf;#ezf;`'Bp#P)YY c^spo tc ߊ ߖ%[Ʒ tƷ +& -6A \Y ^( hr dcܞ ,_ mGwZqe d?B"l?S辖?}f| r\S $!x VYѾz=˹ # EK5b T;S5Z:.)c{ !GפP'dYH98.> Ia) (R\7/t =  4a' H zw[ ?Z ?Z ?Z Nou v4KC4$RzslB  hx !5O¦Nd?g?:Im6:2AK"r> N" XN" U+ɸ3MSQoj ]ްS0R}Qp 9V\ !k dDp RDp S\reUҙ+Qj'3:)!6? "r@z$">i#@lN?#cZC #cZCK&3iT(6-U[a*xqg"S +A+[uc9.Y=M s/WI2$K~r2,VY2mӭD3ћKf3ћL 5x\!#5fx 6^70h?7C= 8OU96i~? :V8:W*KG ;2A;# ;P6 E]ftAA纳>jB-o2CJi48p F;I4  IHH IҰ hJhm9JڂwtKE LULULsٻvMÅhSO $yxO:)C3?PMC 8m jQ.=S1Q.=Q1ڲYQ_Fp ,.Q_Fp RUE{+TSD^T.фvUWǚ+?"UWǚ+V8eVW׮+ Wt>0 X`$aY~W\SS]Pgj]W{t^F= `}uow`}uo `}uo `]I.`]I.b=njcNS[f*efVE i lG>*iJFe j '^ka\/k,Yk,blisB lvO e0l>]=, !lI~lI~LlI~Vl8w`n "J?n`Ao o=& V= \ o\MiuJoOAf n p#kNs p< pⱯd q 6vrH ϢsN~#tNt7F t7F (tC|Z1w "e|. */w "e|. $w?_&yWh읇Zyv,XL yϝ sz}RZuz0z0 | zR)O |  ||d2U[ }1v~a9*iR~Rqb ,~ 9L  ݁32<Ԥ>dხ."/蹅 {0ᇡ%Kᇡ%ᇡ% ħdw9':HQH1懯y@1懯yRf csl>sl> ~ :* #݊-V 5n~SYEs}jᖂyLJ ;H^{៻ۗb ៻ۗt8(_d9xzvR?O@^ aᠾX{-\ϼk{-\ϼ8ᡙu+:| &NV Xű mE~?HD = j= sXAbzy᪘ #& ᫾ '|gDOdj ᬠ44/ ᭌCGﺈ3NaJ ᰄV=uGᰇGR tIgթs ?laᲀ_3X_MQ$+n/vᵁL'XS=n/LBu -|krJtr"V1~t_*e X67 `}Ui%@h& W8"8"Οx Οx , +a2R Dm?aկ vS"%r n ?a^gQ oZoTTN $ ] ^nj ]-Ѡ>XtAjij X'S] |/o  E ySXk* ySXt 2\ Bi : j7 P)$d % ;!g  J WD$ J W\"ơU:VChoN(!3 3Y$t  ^0Q!ҡoب!Ox[ mb/mb/_mb/#mb/*y/ *y/ ZIU^0B1qNdU4 !5vڟ uTd|4}c!N?b N!N?b !/b t!D˜(";CO#/&tL(9Z;!(Dyk (Dyk(Dyk(; /(;9*mvI,l+Ii{S+0r ,3$,dh /SfF 0@B  0R 1]b\ 2,h9X2,h (2kcajN233;33; 3¸~zt]3¸~z +3¸~z3¸~zs3)҈t 5S83|6q 6܍+7N`7( 8`&MW 8n,8n,s8 : D :/qN6 =G,%T<>09 r?3aee^ #?s @"`9T@PhD AcB!aCgD RܶD&HFG Eb'.EY_SF$7+GM"q GvjHRN ) (=HRN )I}_ IɟѻjIɟѻ?Jy?qz"] K#hBK_!K_!K#]LB,:{M.H$NMsbMDg MmKVwMrA aQIgQIg]QZy R}ig!$R-Ljku?R&}pS8 RbSp # TOgߦTd-fWU_o?UlFMW{0|W W Xȏt!( g Xȏt!( |&Xȏt!( Xȏt!(XTk \XTk (YhhZwJQjhZwJQD[LD uzD[|冉[\ [\7՗8];^ 69 a5﹎a5﹎a5﹎ah=a]6aV!rDa#q a`UybtXB b|8[cBd" >.Sfkd sfkd if_ gkgU:s ihhikJd i%u=mJjIrٹRj? cjq=zj$Jj$JkTU1j k @WlIga;lIgaRlIgaQm'_W YnF npS!fSn`bڱqoORqӽ?trQhrƩ/_Ys:~;t_JnRt۟qd~RtJuSE uSE w=t w1Qwr3T+;wr3T+;x?PcxJvi//xaqHT7y2ӡ#9 (iy2ӡ#9|by2ӡ#9h+y2ӡ#9s y2ӡ#9{i{ A0{i{ A 0{i{ A " {HKL{HKJ{HK ~~o `D a<R 2n RO`Nd⁌6kͦ U y@?⃀:  .# co;B i"tj$-&$-&D ∁ÄvN]9 bD ach $ach ,r⌎# ⌎#s H U; c8!$␮d ␵Nv␵NvKa~Zd xXHnR╋/*+&{s3m6T3m6 ◡4|`◡4|`T>$ mdO}Y蓵3E ⛐яߓs ,Z] \fPNSs,⟣E9 \⠑20`6⡉4 ⡊O;\⡍}⤦ǣ"St v3e ⫚W⬀{F ⬇ IT}n⮵e䆰QTC 5@]]NOrSPKۤ(KC ⹝L0?Q⹝L0 LJރ%dd~n 'Ƣ'Ƣ+zJP> Ya!YaYa YaSSI⿲d=⿻hj% (v+Z [Fu 29 dXQ PPO| aO| s `jl> l>l>HDRcƁ a>@nk ]Es 's_4L xZЊi/Rzgz їЧέT'd:TL ҿW _-08(i̸H> Rz9{_~_ֻfږtQs9+fU/m5TA fj`K9d  B? f3<)! HtS+6CsbD7B'ONDe͝DOc%et#DOc%e@qI #9@qI $tnG \Y˧ QB QB )+ )+K>^#69tQx& KϾGjs  SO$ 񑾒3ZDAGEE/hiGl#@_n# f e?YD !MN z >j8RI (q"NDî /gP ӧl )$־ g ~ eu: l P%Bj ,F(qVwm2iK v"@Q Ct?"P?"Psf,O Ѳ # I34Ypzt n{` u u nS-d}l/Gw@d EGt s\ك9ͬxR={ o E/t[:U ٧!Sy !e\~ #r|ye]#r|yH$uR!$51R %ie5P|% }&#źd(õuD(=GR(*}|; ',Y܀m \ ,C  /.z)/.z/k01'l2F14 Z=.S 57dR6RsjY6om #6WP7E4c35 E7E4c35 7W; 7%oV78j/* 8Sr(?9|aR9w;/)v ( ;M4jC;bD =[QP ?>3u+>Ho@ @3?gb@@q3 AFY?AFY Av5\Bqa5B<5dYPBnyo # E7(*6$F)]7NGȓL ,I?&/ IsIw ˉL1 n P[k QF  RpqSY]T(c?+T.HPUOzUUuX2 +W-pB Wk_FƾWȭy\DXXYW$MsY7R iY0XR Y0XRY[ ZWP9ZD:  ZͧObYZψ•?\-\C=]#P?]a []ʑ&dV^Oĺn [^I_mhxaaңR a2qN+ a2qN+ icV[%Zc;5c+?cz czmqtd D'?fWj l fh1Lhy+i[bjD1} kU:tk+~j l4(S N l[BG lcsA m&eɛC nA~;Q r'd tNa u yRvM0?G x$g|y~"}yfR{sr {sr m{Gf {) c }IY aS)EZ\ 》bU -“ $̶?;T:Y"+ヂ!~5#vFH0!ㆍL  BE4W@ R kBqX㇦[2, ;S2S=fB㉷8Z ㉷8ZSė(\~& 1 9G (KInJ jy6S㍩4* #㎯rp ㎻e n㎻e S㎻e ,L~Kr_: gQ'n5hFU~Jq0㓡EE 㔤{[tQ ͮiQRT.cv.㖊ҹ"|h%ի 0g-]-㘖I 㘖I 㘖I8[ʬ @fUoIfu 0s 0s $'12j'12t2M& 2\PzZ[㛷u!D %# v *?_@ 9?_@ V~8㟥 ੿ ~zd c Tor/5]*Tor/5 k@X AQ^c$ cI,?׀۟9Y)P d|gq‡/Y[[sLR:osme $me{n5-"z 㮻QD1. 㰮&;  ~Q# ʉRm XʉRm RKpu[{y^c*՞/xa)jxa) 㷲NR \ 㷲NRs㸌$LNXtыJ =az"=az" oj-4㹩 @G RMid`qKXSe|㾺G㿍QYV 㿍QYV㿍QYV㿍QYV㿍QYVQǛ,Ǜ,(Ǜ,02- /i ) - x{|sY ՕKtFh 6'R fjoW_h3L_h3RXCq S T'|W|HIf΄Y ?UTfߞ" c-[J[J[JL[J}C5㴣j_w_wXXQP1' q}+@e!o?Ї "tYYR !z ̩LC Cۡ2# ' 5]ZO87Y3{ ָoH?CUVsHKSw2 zAzڏk oG S?) \yݧdLEV`  Tm  :8 vyE 9DL$q "]"S[~M \ stJY+hz,|v$ct@(, XVÀ+3/ 5i*ʖSga=Rga=/>]a+  8)im، m ، mRd&ːZOfcƂ!_ 9Ƃ!_t Ƃ!_ ( ">&|M:NڭU t yDڈ"{ %D6t%lPe &s.8T{'E'`S~`'`S~'`S~'`S~'`S~(DkFuL +(c"7) 2J2*&xS *&xS- SE*R- SE*R-K -K R-p̕g -p̕g -p̕g -{-vTb.tG!.A.U k.. ..xs /W*Ms 0'/S 0LR1QS*Z42 4|p(94|p(4Nǵ4"&u> .4"&u> %4"&u>4"&u>:5$p' 65$p' 6ŨC6ŨC 8 ;}Բ $j=+W>PQ&>S- >eqӻ?D#`gS.??t@e|Q3 i@l飀C3]Dm}9pdDLS Fq`e[G^DO< $Gj I9J :9JƁxJ茄hy Lg] L@3(ZM  O2qF?y 2OUH#Os[sP;HRkwS,,"4Sb1@ aSD=TZ.OG \ U@( VTVVlK| VʌX%XpX sY9fTtY9fTY}P`Z ip [ Q \ps3+]ص*?%]ص*]:@yt]>hS ]>hY ]>h_7וaCCTC1buEcD+ ^ e/cY_r4 cY_r dlK&%~hnqhƤh;Q$^ h;Q$^ h:e?"$hp2=h̠7ki*YO iw߁,D jTl5n]] ~n]] ~n]zn]z$nǔKen` oݰZ1 pT1pStqU rcPrj sZ2 Rtv/ tzej u)Z nvD[%v*X6xUŜ3y;6ɛ ys  ymMyye0zTP~k {}f }S.䀑똃 [䀽g#<LѭZr,r,䃙T5٪"$;|D $;|D , :y | bS9KuE hXZ9YQ 䨣ɭϛPn.A #: : @Q{? GL # ҫ}[ @K7ePaER HΗkL$􃙫`? `rd:5U`j(,s9R?(,s9(,s9(,s9QUtΧMM i zVw#$䴬F{ 䵣ӱq[8PGM#Pb#%e ޼ +br a ;32ߙ W ?XL>DK F y)s;;KPG "P |LYMQ6vǒJj@RǒJj@$\_DkB\_Dt \_D*`{ -Ȗ췙Ȗ췙43Z $9luol9>*³OFqt 7{{+h}4M΄Cdοh[?οh[ ڊCK H- !ЙkZF?B%wbէ? - է??ў PHdEï&Ӣ)¬" @!Ez @!E9 \i %<R5 3x(w ;NYH 5H bg  $ڻ7BVCzx]Czx5=v6F}c ? 8xZ2&7 ,:  w  (1  (1 $IW l7J -ZU.[xJdN瞁Lb7=?}B52 }q T;vxRT;vxd8T;vxLQZmdApYdAp  2)ûB4)ûBR )ûB[i| \E  <ˁK<ˁC2_| ?V q1yb1ybQ>17| cD2OpQ ;_LU:r3jEOY  /vh nJG.e_Z ,3z }Z !~ʞ~ʞcwW: Jg aۄ ۄ%f J^jI0CW-c:>i Ŧ)S8,b0ޕFu+c<t G\& |/YȐ& > '[ ꭁ_ ꭁ_ 4$:=h CL E."  깹d|va0O8@?}b; nA$Ъ&RH Fҝ ]M/S? KD+` k \J44H}K 쟂|5dҩ [TVS Xc6 A A , Aj!ϐV"KT_"KTQ<"KT "KT#%2#%2#%2 #,aͨI#,aͨR #,aͨ #,aͨK#Ym!?9$*)mqC%:RD 4&ɋ R&c}#'FӘ j', i', (3;<t+ >hL,J.,SO$C,SO$,SO$,SO$,s0h.)KvKt.{R-Iv0K; 1-Hl 1-Hl2 5 2 53.zE 3.zE31 4t 4n 4n 4nh 4ns 5%o%k5%o%k7!/7!/ $8|F8OɓQ94 ; sƺ?B?#P_4?004U@ | @!\AA, B0{_]CO/ǁCO/ǁC࿾=RC࿾=FD) F"+J~H7e i KVy@KVyK<qK_P|HM 3N7fOA1IWOCʆ\ODžR Q8QXQح" jR @SQ6Q0SQ6%T' TcRT m9Urt sXQeXQeZMG[ ZMG[  [M%w[b1[b1[b1 \|5lK\|5lP\|5l]'u>M " ]~Mx ]~Mxd:^oSxDa > OSaYv?aCP aO1 b0@k b1BSd;RZsdM #f勇l< =gk[|&gk[|&Cgk[|&Qg,NFg,NFiG(lubNl{=E l{=ElRЛ ,\mh85\D n%ߠPqG<rRŖX? rBrrBrQ sW35 t ӯ?|tTHetY?tY u-szv v $w~] ix^F y6RRy6RRyN;2 zF{yu>{v }jL ~(~c ~3n?Z^~3n?Z3~3n?Z/ rL ʽ d@=r$償[兕gE iKg df~kRZ $/`5ws9 `5wsY? Vd xu4C.xu4 }O|=LJ劕pk?;ߖW&)GhDGhD匠b:M`. KK厚uy tZ%kZ%k呟gN kgFr 4h _zf,<Brb' r"]e"^ m~mI µ (µ µ 9ȋ;7O ]f  A~JIۨa3D A| "UeAP [)#s/@?5Qx?Y?埨 堩*C$q#D m[N _E1X? р̾ , $ 娧$c0N:1 yw-BQyw-BQ 宓id"ZA&C'ճcK m.? v W嵍2hYw2 #tIA帱7c"xEc 幯 LT$ALT$A 庇 x/ 0ka {Im^弑/4K = !Ef彖5彛`[KmM 忽(3 >x'kbV*vO‚SEK -8j%%˜۞wY mM  i =2ͫUڔ6SFc  bA#ݝKK ގ ޙ&/|ޙ&/ s~ÆtP}-tP}- tP}-|0[ t[CD pxkص. ۝7U ۝7U ]D @$9yNt 9yN bR?@~wj Zi % hHR0 [aT gK1eI 4cHdy 󺙱7Æ?! #===0ϩzM ,x,xQ bƮ0 ^ һPj0-% 2F@Y "K*>j"K*>j/xDU?? qRG%vN ZgBg'"ɋ@O.xs@O.xj@O.x  oS3D (!@ "=m[9#6K a#g,M%G(2 \'J'.u<'da(xY ϯ(D)0 )uj-*wXQ; -*l$[ +mqY++e\P7+e\P7-= ֐-d ڙ -P'.gu/n+h L/ؼ|y/ؼ|yY0Ch 1Y[ (1ewS2&a2|@6wQ.6Y7q') 9ޖSd:Ug:!W;*b=0kzZ =0kzE >.po >.po>V2@8B7q ?BOy?B:p B:p C? sDT4?Hsu a HІhѭMsl P~-QsEu] Q+aQW+YlR N RŋԿL SK7 S@_KT  U+:oRU/ZW^pDXɖD~XɖDOXɖD XɖDZS[) f [G\ 0!! \Dɢu ]Ɇ1w<^>8^Q_S4-V e_ _ ,``4 7Q `m8`m8`M arsb`pH- Hbc_Q~ UcVmZdYzs_ dqδB f, R g4ѳ8#h^Q- h^Q- dh^Q- h^Q- iarIiYaPk9Ph lGdY *lGdYjlI_(dm/`c` $mx#N|? m m mك^KS nLMG n-^CoT[/Zo[:V0p~)ݎkpUmR>p[1 q!D"$ s 7DYs~tO33gd. u)ߍ ux au2خkvGvȾz $vȾz y,q_~2$ \~HvE ~vit^-jF">djF">悞F&7B]Ҡ ]Ҡ H m$ Htdz慖] \慴I2| F>9 ,7_e a 7_ejEO^ \*r (XR$V5e $ wNwNKH55t)8C$掑Pb Ǟ'HQ.N <N <+|[ ]q }ݸt ( 摱v % ۪<t|ƻ/ n DZ%" kMa~I)ɦaS敵 ; ʆQ z\%.qR 1[M u?u?vz4}晱VGLH MJ_ 暡*H;hًL L[ 柃RKC8H$C8HC8H栉E$;桩P& 3桽lZ $ϋnȪ (KϋnȪ _ЩF o #棦D+椯H |i |R$ We/~P>: Ql ' i[U[[&=|CB'Õ} !# Mai殔Vԋ`qT氓,|" 氹[U[UjĈ汓lo?4bSCIv ղ=YI3%ƿs浵#湘pd{D湵nWF湶6>tsXK8 99:kzk {3m#Z?>3m#Ro};t&*!C y + Ot*OïL3 ^DPzD!E`хZ hŴ 0yD? F@sA\0fhe!Wg0ͽ.Aͽ.A'61 c '61 #rټ6+U=U[Ж' _iV<-0d} Oaչ 7Sõ aջ츕- %CM?p$ ע3 i^MQٷqAE"䶤*"䶤*%Yܕ,th=ZRkџNiqu'Hr HrU 7UvFoU!Qu 7v  <. <.G&8] \kY= j9^ #S~ w){lj[ BE i[.dBFG ,JN.,JN `Gv iWZsWZ i'1X'1R'1X'1]d#+C{ ae7 J~|CA/CAb]?7 { 8p  cV|~ cV|~ B;#-BL$0@hD)tri:pN|ɺXA6+L6+LX6+LKQ6+LtvkK͛e d a \| ա# \u qNP  J VE, m O& O& b:j b:jU b:j ־ , ?P ,cTVD0cTV+cTV Vb!F!r5Uj)OTs:XWo :XWo_PmLCLllETX QGs::u : l[2 t s9N3^ N3^ 9:pjGt^!tOK^!tOfsزzj!Y~u[~u[$ | ~&]0 wvtN!^l!^ !9!Q#+4C:#+4C#+4C #+4C$xJK$X"%|½ &'V6' g'UL'W7f#(Aɶ&Z(!p/r(!p/r+N j,X8L ,X8 ,Z/--J!--J--J--J --JK00W=΃0ilKj(0ilK0b38R3~A ( 3~A?4R4Z$ 7+P)H 7i_ 17ffmc8, FN80HcD :ycy a:ycy i:ڻaV ;x  lGR5GR5 aH@mMIsIOyNvINQJzWJv*Jv* Jv*J씅0L )6G#Lc M4 #O$1!;OWJ OklxO+H$ P+ZPl>?N QW|+n QϤKE $R.&R.& # R.& S-UN%N~ V[c? V*4_ WYWyWYWQWYWDWYWWYWKW~ϴF WД'jXc +:Xc +:D Yp\쎽\֟-t]!dF]4̸WDb]*^!j$]*^!s]*^! ^tWL 1^ ( _f _ǀq_ǀq`@10ۥQ`@10ۥaE.a"IJ bպCc6[>b e",e"gWͤ4gWͤ4gWͤ4Rgkf#?hnM $ h)#E ck|k=ʗkT $m]X(l mqпm/ m/ m/ Km/ Qm/ So_' p0JyqF"QqF"QQqGqW/r!+e \r.~||rVq irfNr{@s CDs+DRas ts+Rtf7u#tЍ Sv :y( ~GP ;&~9i.E*~YT3 -"mYǞ 災t-sDJ kDҟ7"Mލ 熞U.燧cI) e燧cI)爩Yn1Q$|ͣR牒oxQ 牒oxQ Ņ`&Ņ`Qs 狼~rM珃|sWj 瑂ϩ@N&CM~] h9瓫}) W1X ?ֵuֵu$ 疌~bpxz MIac瘌+nO|>s O|>j皃z/a? 皃z/a盝 UgHKv l瞘Ϝ`L ,~`A65p0Pwd:N (N \gjgjtxqiC 碤1 碤1@` z\ٜ]NNٜ]NaN 祋YR8(L EEҮnҮV ҮLҮ aFsGK]@ UHCOYbˋ?窭A;  7Nr 7NrLW/őx $W/őxv_H1q?˾ct@筿c|Y 箹f ^R 篽=D 簹ZU/簹Z#Hno3Njp1K "_ 紨rݬ//8O d"wv M`gC "綥T=(Kp "%? i%? %?V- d1Ed1Ez |pmz |pm z |pmwL9> B˵0s8E\6 aL^?L^ (2?*OŽG ǐsǾU; 랒VeQݵ ([Y, !2?il_Y̰Od̰Od`2R csMFOjL|Dacezњ}9YKӷ}\ բտlե# ն? | "1[ױ"H<  <0#Y~ڥڥ)j+EF;L/jdb&z ާ,fV0 aU?㕰4SA?澺9Ud'h 'h 1ɋU.! f'T ;>P;>5K,x0 i핣Ƚ $=:mfmQ/SH (SH żd T@k<P YPR۹3U?<xr;xr   (C@{ ץH? Q1VC yOB| g*. {!f™VFDll ]f-ޣ;d 3 ޣ;d tE k[`Qx> 2 ĝ b pҨ pҨ pҨ_2@  8 sBP VϿ+ ,VϿ+pY51R_;].Oo(@r] "SzfE cK^X [*  UvhJ0Y5v| F9m _Nxy@di9$$LtKtK "d~ t"d~ t "n #xX#xX$7ggN %“\ %|xa?%aY(R%Rtcd&=1?(\\A> )mѪj)؂/")ȳ_Y*eլ Q7*eլ D5*eլ _*eլ D+!9j,\1],:*B{,:*B{ ,['R:,ÔT? 05E߷d 0V" \06{ [06{?1'NU #1GCr a3iUs3rQi 5Zd47t\w 47t\wt 4{b4 pm #4 pm a4$2X[ 7j7A 8\@D R:Mt5Ab:T g;5 <;4k <*8<*8Y='-W@1ׂ S @ThL@ThL@ThL@ThL@ThLfCqrC DDVEBEBYFAo!| Gi02dGi0)HACP+HACP(HACPHګOHeYtJ4׻D JKz.L wJ!$ L27y MYicNB?~|Y O2yY O7Ri3} ! Sq3j Sq3jS1 T?U`Vyw*!Vw.KWQ,tX bxX~ XOY荟c Z> jS(Z V[\{/; -^2Ae_ZA, 2bGdqb"8 bSr× *c])L gd B d 7nfY[ f88yeZgfEgfEib|i i i iŖ j?ε kF l, t2 l=+oB l}(nnAYjoheo~LI]oI mo@v o@vSp6WTKqN qg4 D r nsrjn ru~.4er_ nr_ sz -tߗS4tߗS4wVfĔwQ#gJ! watQx xOzx.w y1U> \| u.|4E |o5 }l x">~K㶁H $ 6-)lt耿|esma 聐mKN聣B, b2T<'s肠`H-04(sP U^EJ{4xv腔B\ WЊ !io D+"膂$ 膠  膼38rFL9 |ʔBڐm  } /苉%r %LIfړ) \Fg (\Fgt\FgF\Fg \Fg 莆o h莆o 莆o 莵d f-r-菋GNM?S .oV萍B 萍B?萨g>HRZ [H5v}[H5v%tHx I薧]Ow{O $߼10=%"[i* $[i* ˓ctKg9"((蛎5'u|k 'V[7URGH 蠉SkxAT? }ΘMV[ {}rp4}rp4褢4bi褹9q?V!@UCV$豋L>$BWgP O&\nJ趯Jt 趯JtZ #(,k/KyJ*D軑@C0軑@C0軑@C0S軑@C0軑@C0輗QP2輥l+)bk_{8u c _{8u  l~ !R)u,դ |eAvuj x  Rr cNop48T-ȞZ 5q6q6R̘o -T?Y.˕C-{PlAe }mVE ` UO i ! ҒM{;tx| F.s $ w !ךx#؅z&k $؅z&knB m ZAƑ e ~_sߟr ?wz $(T8POswI_B3S9/li= n 8 6. j i9j i9 7 SJT 9T (h:@ *! i*!j*! W!]x  6 emYWҐ|j_=_= nm$} Y3qE w4C (8nR`\ob?-`\obs 䪁`S3jEr01Kq_f#9 \')- !_|{_|R _| _| rvx-+#o t +#o t <+#o t +#o t yɗ$yɗ#$KpF>$Pi7 %˨ Ehe%˨ Eb %f CqR&7| &w:hN& (t%] )wXg)phC*7*7,J#,J#b-A -aU'Z -aU'Z ,-aU'Z -aU'Z-4.x3rt.x3r..x3r/Yz aN2& c5.ҐQ5;Bv6P@#6P@ 6R&@"81Ƞ;8Á$ 8 \9Rtk 9'SC:^xII" :mחx2:r;01N< >8I]>7 ,@@.Iu @`:rRAT$ZA^-/ l)Bk7k]]_ Bk7k]]D: [DB(-UF̢-t GK{H~z?$J$]K/k7yL0LJZMWڨvMPp@NP鋉 jO&rϹP%w, P%w,9Pe*Ų#R\RXsR[W2 , Rxqh[ SKir (TI2D)U@ VfbaHVy8B eYYf \֚ یX ]Mf ]"o%]VU a]v^އ `sF[ a>. aR-`afs|b bkb bt cY,8 cύ!khd=ȏw dD=-dD=dD=ebmAo0f ʃ1Nf2p_ f!bh <( h))}!S3h^* i Z( kj'kjmczm^_nk( o/aaooÚ8p7nsrs_Ksrs_fsrs_Nsrs_sqPft}GQUuÍ u~Ev S+|/v4 xQPZxVJ r y HyvC>k yvC>k z̲fYz̲f#z̲fz̲f {1 b {r( {At]({(-X ${(-X {(-X{(-X {(-X{(-X{(-X ,}< ,~u"v #d#dV|)bL $U@ 郻[\p$ 2pz [pz (VD_] 釹 oMlh KfY# {UQ#@++K@++D `?$ET&l "bI{:Y׈K 6ݬA 6ݬAZe6ݬA6ݬAa闆iXg bCᵼs3b4t阜R ,qO[= Y\/h 陱r  iŻ!K Ż!Q y0 fĢ3GɱE3GɱR3Gɱ鞤[`c9h 4 M 4 ' 4 !z%"NNgK 7 D jc}b AtSHRM$' '@u `ěPBT 4pS4pX %knFN * 1 ? ? ɢ] PP CuY[N j(WU_eq d!GB} ]= a_g= .~TU.~T8ɾDPl,hD ГA )WRea o&>%pcՓ Ը t7Ը 8Ը *l 78 i k>Zd Q ۄ a QM> ,®d&ޅ֥LO}-rXBR2ˇᫎy4th\ qq_V;KsZAՏAf VN6 炓TS -:$}L3}}r#m(Kwu%dwu%j3|-DA i)xx!vn , N1+ "? |T0)Eѩ s7@o%\RԨČŰ9G3uFQ ֪Ʋ0F_jΒ yΈ$yΈyΈ8HM`8HM`xK)0UW`uތuތ ܅Bb83bA2A[U nUtU, 4d mR ZH Aoh?Ju [" ɄU} $e , | ,  "v| i "v|  "v|? "v|  "v|  k'-I|-I|!ľY8crt{9]70  }F  VDcxRn3(({ lL|R1 i}u֣]3 g/udt䚍>곯<;jvȄkML  Tg K+Tg b!  "~a "~a "~a FD;f+D i!ӷ( 4 !J0 !7sMq "'#jz "+10 "$}"t??*#t#'2ːjA#+MK#+M%H|%}yt}&V02c>02c>02c>Y0t~g0 m1lbWR2']1CR $2[ : 4_q x 4*= 5r\ ,6= 7 M 7 M e7j 7j9|o\K;kx<'x < >Y;0N?,)`?LW7?iMKK?~@Y @?~ҌJ?@YCC}qV C}qVE-۷* F!SʐdFk%e aIN IN J&]o J J3[ߙs Jȸ2nKB{WYK&۟K K&۟ Mz= MP aNqj; OɨOɨ' QNˇQPwQA Q U)rRw SFg/TKz#K " TKz#K U{hUpaN WZ3Z iWZ3Z WZ3Z WZ3Z WZ3Z WZ3Z aWZ3Z ,YSކ?YZ [/ c\T5иs^x!< _;Jj_1a `[`|` O\ e\e tИe辡O?f: %Zi9k[i]clRU lc :mG[o7p5#q7̤ş iq;S 0r~ 1t, ur~&Ov BwgR+)[ wuwwsxsZyd34HyRx/z^-. e{o+8w|i)E|i):|i)'|i) |C*L`|C*L`~۩ޞwt~kAڻ) sYꃱ(L?%ꃱ(L i:V t9x)fDx@ꈳA`! ꊺU>_! ljwgMr e@J- ipEd} pEd}Z pՌY-yS7)ca6z \ Ϡ(~>_uVx69ꑙ{[ꑙ{[ \M8 cꗒ:C<jjZ꜄'R3f 8 M=c9 iR R?}C ,d*!6ꥠe $;Nt/K (y+ FJZ#wꯥ)R p 3`LG $%`LG (h\nu AY 겂R= & Ƌhr(cm bC 9ZAR aU()U("ӓ++{H 귴(깗.66*2L8g껇  ' g7 !AE$?l{C9 __p (__p __p .F|cS ( Z vj ?aM]v{;G:ꄆsL R/ $ WyC aɊE|i $IvlY)]͕J~ 2=R - ‰Y*hO&ϒGt $Ӌ`j Ӌ`j Ӌ`j1 ? (Ԯ kwZa֓uRؐ! ,׌{+ @G(CIou ڍ&@ڍ&@ ,ڍ&@ ,` Gq It$d p*ޝ·$b⻌u 3  ( Kx< \߲*70{ %!x cT  sJ~f>N1s;>N1 ^>N1 n^ t #bcc kW mG\sXAt 䀝 井i a ȫq q բ;B :ԋ. =>h jkTc^Ҕ 3 CiSRCiS$CiSa  + TR  D ;#gUR\ g)"s { HX0 6e =.% 'hNoJtHp2KRНir%[ *; LXbL.% s43A3At et!!et!et! dP*SJn c Ͷ0vPg 5y*x)L)n4( 5gBnO= ~'j[A Cbs 'TN uLj d  PЖ | =Guve_ ULa &D DGjzczc(9(;Ԫ2t8 $ Ԫ2t8 Ԫ2t8 Ԫ2t8 Ԫ2t8 ir "f%宑! xwZx; mlڳ dnu-*ԥ` ιZ[+63%$s""4P?wIws(t` Wo"-`{?"Ο׹y"ػM"ػM"l "l]Y ##\m#c`ҧ #Wբ $QRJ 'S (fU (fU (fU )U4)&U? )Wj*0Uq*n$ *ڂQE-;E?V-RY.bܬ 0DRkF0d 20 s!1 " j2,os+2>>12&!)3J+ds3 5紙S 4h9b54ط8Djz!1 8b8J<TH8b8J<8z4f 9OLM;9e;nA<=^ ,>a|'> } ?cSS 6?Z_b!@iyʕaA$+ A5Fd AYT-Bd'o% BwmCf DD (DY\Dk-HIRwhI3ňJO{Jr-? J{=>9 Kx9ϧ;Kx9ϧY Kx9ϧLEb6 LEb6-LEb6&La,/La,M敱/O/ Osr ) Oy?OyP= PNdjPNd)RnҶ(_NR[)" ESq*hpSq*hW_5 YՂ S [u~s\X`2\X` ]X¥W i]G$ ^_f a gya R b֌5cN  cf 9cf 9 cw ( cw?c&dg{K g|7$[htZ ^hn9hw)jZ-RkjZ-R jZ-RYjZ-Rbj0  j0 jP lqNmFJ m"otJKoN RboS|W5 p$-; qvm1d4qvm13raX raX raX s֧#H[ sAOpY tE;;Nu).kuXs vȐ+ wn9 x' /[xF-yH .C?C{qY}v}1O \}1Oj6Y k9-k9- JW8 zݥrw$냳: b i9넘@ J0MY( UQcVf Z+/sէ"? _5hNzh\ ^sRr 6֓O|mey늟*?M닭5F \'c瑗o <f\d ; ;6Shj = a CQRWC3 `J?W"i k#7b \XAR |뙲xdߖi@UzN?#& #&Y띪o#tYrKJ[ s <RC=  Iԏl Iԏl 렏LJa?X9b)CQ`u"  (H RGUJ02D~C\릻M75SͲB맏7 먀F 먀FBNu +.5vz몴v묵5%n@(d=)L ,ˈktο )i 2}W}WW!#8gy? gy ++C볹Ec볻EvJ !TIC뵋X"} $붅7,I: 붅7,I:붖 q,4D{YvN7 HY+D HY+%g 븒r (븒rslvVMc(VMc(S@e^: &)뾤lK 뿐 kX 뿐 kX8뿖PەCfFS% lL N $ϋ|BMaŦ;&'un&H{VV \  \ m͵?@P.A M|J M_'~]N R̮9gaH -ywNQ"2stx}R/7p(n . cxcx nH3 bN# ԆuI k$H[5?Q?9h֨iފ2 ފ2K؏ '{k؟Oݎ л. ({q}y ڇ#X`ۓǜ,[ b܇K ܠle$ܠleٗ ^%|F ފ$5Qފ$5ފ$5ߡJ& XMl-XMl(w{_!H ,{_!H $p1y[gseY[gse 0VJ*& $uo yQ[ΘM a&URȸYX (aZ_RD9Ea| LD/ >F+m sx3E/ק  *bКMvD~+5yD1*?.\YPXaBv~jyS_f %Yh@_osngɄVH 6 ( G@+!Y5Y !/Y"EwR"EwX "gFR#QO z#R#khR#kh$UqC %6Y&\ '+1 a'}P$(40nrY*?** * s]2l?F. 2v!/Fs2v!/F3_<]G 3_<]G?63Y= 4]f؅ 4u{eN 5@{ y j5;) s 6]of#7'\ 8?W%28Hs*9$E{_ 9$E{_9'ϋ*9'ϋ (:7)<5e R=<;^ ,=<;^ ( =>> c> & J?n?:[@OEz eAMG A| (Bŭ' CjID/) DD} D9ܱDEU FrR{G}#GeIOHwMn@gNH0U NJg2sJϻΩ K겓U Ln=M/?N2`@#P-ah P~KOs)P~KO i R | $$R4JL Rj.n0Rp&{R[vR[v RH. S+pRS qo7$!T=}gT=}YU fRUU VJj4 WS#YX,2 Y]׉qbYVzZcQG\ \ ]N^7_%DaMAa]gUc/O eH ?*m-fI0 fI0 ( ffhNhvXLkl&%mE'mD;w mrYRncY~ n o78+ pPn qZ1qe3 LuƲs6w.C+Fw.C+Fw.C+FR{O|]=v}>:RM  nC&c#j m_sN-/q   &~G%{DU5 `3X#}^?LW$n iVtiVkr|bPr|b *DI1 /7|q[>1oe=Jt,]/#:vc i"z 5iP+u V}UO?Ja_@W`ԷԷԷw[25dz}DJ{s >S >옙ЄJl̟Ll̟ li@ >y}Z |] 윲GR/ \qj쟒JuN@}UR pes S/$ZY 쥇k(r gc Le*;d|oP_$I^bve= v:YJb Jb ^Fw {쭇O<# $ƞH &$|Y&15? gMZ4&? w%w쵥g<sY쵥g<sYi^[l]4ʔr}h(=5 "?C`د_ 컷 /) W>T x#CYx#.x#Q[^C;[^C?[^C ;™>gK󐣣ŕ1$ŕ1DƊd[OƮɦr# ɦrɦrdtI`tI`RFo ( w)\ 5Ag8 0CkS =b4T&Y , ͑mCcH_ cH_ 㴰'㴰' 㴰' $㴰' J(RxRxZRx ѹ~WiYһe @C OR7ԲxNABFĻռĘP ռĘPZQU2 h S $ ״5"2̛܋6.'"#?M)àޞ i%@-6?%@-6 ߰f߽~oDqD&q Y8NcNa @"8/MǍ)bI\ p@"9w|^7)lI $lI _:1a|ba!<7ke<7keA5 (fm$8氱I/ $>+TJ|;d4 K8M uWJp =\ $\ hL 횗}j) a DBd 6DBd83DBd DBd DBd mX:ۉ ( siOADOAӷD  | | *HWk^`7e[ h8t< C,DTю8lj{2~ lj{2~ \nJ+E mmjm eN_.t&$9yv#vAk, L([O.1=h .1=sj31/? k:%1 i K.v"{}~ N ۏ:OV c d@ QKA  I4S ndP 3 3O 3V J  4|V 30RqUkTmF! Lr:O[2m&5wU!vN)R$)g?o6C4OU, ( g:$s )Q9| ԂvT5 ԂvT5jKSfRA@S  Uz$E+ c OQXh  vm !U " DZ_#{c%Wz5(l̗U ) ͗,U 2)eW_v)u :)u :])p(&*rXzD+B_ $,x˘- -j-v.%c3xd.Drj;1w?,E S2n#ƊD2g5*bq i5>U5>UR5>U62j[6k 8} 8O5 95( 9hN3{ 9dګG 9ӎqyR <A hS<A ha<Ƚhi BĮaBĮTC' Cq݇x $TCq݇x DuWVD}t= EIKEJ$pEsP뤮HpB82I%usIG ALIG ALJZ,LJZ,JZ,J8Zy} Kx MC$' N dh NT8#NgB O,L^)lO,L^;O,L^%OsN P @ P%TkK2 Q]P:URhmR R힥DbR힥DbU |_WUAf< XGMX`J*X~t?'X~t iY!{o֪BY"kn ( Z;]* [!V[QT\#_ /nt:`ӄA}YaX bM_"bM_duf Gd?R'd?RtegveMs gwPg:hS h`Ai=ERi_>'is<jkw@% kt~Әtl93lŅ1lŅ1m^#vP o Π?pR/pBbq@uSJ(4ulvu vǪkrRvoPy voPyw$ x`)Z>` )Kg gc 956)p7! xtzTccm'[ux]s "VJH?퉌=J6B sCbs ^ s ^ ƃ\.?C퍉*Ay-~y-~KTy6 Ty6 e\~ i=퐙hH$? % %%? ?]u̿Dt| Ǽ#[Y 7( OT p1 <\O홚Zqs NFb6C 6`>:'6`>[ #훧џ# $흜~ \힅w l  ѳ4^?   c+:ʇqP:lR( K&}:K&}:sI:,I:,jn P]ZLI E4>.? [@# 5:}Z[ WF"Lмd}Jk_prn_prnH?>Vt/M1tt/M1k(߲z߲zK. `b&my (_( ( ~_ c_:*=K IhK I2O-YRX 5 ϯ_ 7%f+CþRþ VKrLo ?=;Yq) $fBfRƪ'A *(3*s?K :ǠM=a/?i jaq-"r;&~W cIkb ̺@8NM`<кϺzqmb6?a"[і6+85gi ^Y 31wX Si#Yk+ljW[A, W(jF+j B@قxB>+ٍ r; ٫?J |ڟi+ڶ٠"Pv mw^[0|~$w^[0|~@Zd )JO "Yi ^݅>69݅>69 K@xt9ޮ"qY ޶~klD޶~klҹE 8 2z(0q)RُV& ㈊}< ac㈊}<㎙Kzv{ۆ5Z:ot*~禘A r 禘A:P xPGTJY4Y% bH&uvs [ 썮fc #Ӳ" r[=*Q $: ($:: $: [215 ]av av ?r$vO|$,y8| ߄#iRɉkV ɉk!Bg|58 [ 9@;9@R|*i7p?7D7Ǽ$6C{ -@Sd ("G# 4L'23tY ٸv9^ ?'# o - az  az s az K] $PA . Q&8 Q&8  9N.d  9N.d R Mti|*Rz{S=ghS S n 8$S1d/-lOsh<*R,ΑE?w ,,ΑE?w a.'<sC 쏹u !Bj Pd]3~ n z( # _ϭ_ϭZL*L*;Y 2[n ^!aDls!ۺ7i<"ɶ "# /] "# /]j"# /] # 0c3^ # 0c3^#D܊ #ԥv|'%ujo%u%u&$K'o\P 'q ('q +1B7c"+R5<+R5<,N ,c"8Y9,c"8%,hs[-kV7;-|Yb  /&| /=d i/ӝZ0[0(~ѩʦ?1 ~y$ 2rD3#'ՋS4֪Qzt4֪Qzb4֪Qz 5^DD 5OT?634 6׿uP71',d7>+$8Rm9Rgh;YkӔ<#a̋R-> X䤈?>f U ?V@@ @d%s*M@d%s*@³9(B 2 8jBδ&CIXvDJ|D֟ELDRAelEJb [F/EcF2RמGa? H֐H|~[I:4I(3ZJZU&q K!(:K׊9@ vK׊9@ KqOA : Lg\)Mٙx!Mٙx OihrUPTz[RUѱ\?Sfl  UTZU?U[&V$W~`"[W<J X@ $ X_@ Z&[Wj[#s\D' b]J>lj^"_%UHs_?e _߭_B+&K_}? aDCDaװb)$6S?bKLdmC c n/}c(μ\? fR4fR4GfR44fR4%fR4ghs (hmc9hͷLsik o ik o ki/Ё iD*)j vk6ڐ k,ѪQ nb#%Sp>?*p>?*pk-r; ms۾? sM,?t5xm t8BuÔ u'Gux8lx&?Dyô%gy_ry4.]y(HTz2 l zh {}S@d|z!4|z!4L}|J3[D}JH Pvy@bt o{? 69Jt < lo(Sf`R l[{t l[{ )@3|BS29 ?kYzWE "9 !AjCRw`p5SA–zB y] ]`/ ]`/]`/e`?[ 8y]N REp5 gL mt[1 t[1jIg 38 ;5~>Oj }}`G4 ɻ YR}Y -( -( hhth )[X pЭK5NF֦jЮ;HaFS ʽ%D6 ((&I (&ILa  ]@   i0Qah85/Ush85/U al#vՇ"TӰ 3> i!+ # ~m )? ~m ) i &7 F iJV`R2V;Ll[Bs} #l[Bs} £y=si YR aܩH 8Rȃ**nȃ**nQȃ**nJiɅ Ʌ ɣfN =*z *z?'n_+d̡O 8UXuDBu%#Vg b#Vg h)}  NE&Ki|Ki,5R5 /[߸t߻; IdKB 9 {pj0SЏ6j 䩦s~$䩦s~ GY <#E-k7E-k n)崖'Kv)mM   `NY 诊7iXs  N% xCK?G#*|#* Uy% |% {/XG`R\(>Z wdo`s_o`s_.k1W>=hqO:*&.v*&.vS*&.vRXBWR } UPŕAU  G,@8K R 6  6s 6 ( . .Y س EbNNhVA, {*^$$l_g vt8*)0m/ ,8E~ k ߘpOKIo%#rm.? aR.%z z 5K %I 'p: yZprpr y  F',? 3L\cs!tʙ "#F.R $ "x]"y.?#]"|}1#翺d#X3;0?#+n#V%L$W0j_b c &F* '_|Pw -(~PW(~PW($D(ta g)J)m,i+m+{o M ,NNNaf, zhk,0/F4 /"Y 0 ye!b 0 ye!bs0#X, "1QX23j 2)4p?p^+ a 5[ ɣ9 5[ ɣ9t5ʳ6ҏQ 73fs8s7( b 8cj{9 Bkj7;7T; \y8L>%;v>*?nז>ߍR?&"p`?Pdގ?ƙ8IBEgBC ~K?tCJH@WDeUj5 yUj5 ykUj5 y U'M -U9K WaW;$XBH}qZYB ZݲC [ (\:& g \m}R, \m}R, ]Jn ] iU>I]YzW ]%^:l[K`^:l[_>Pǫ cCTUR d jf~d jf~Rd jf~e8u]eZ\>eZ\L eZ\ fx0gvhbtY^hJamh,U.h5ih5ii1]H?iR5s j,"jJ:?J: (3<a MİOa=+"L=+"$=+"n#=3N' 陵JE; فm fT  *K5 Q.=2j% ؚ #ﭗȎo  )Oa"wﯬ}P 4`?_ 2ﰭCIaﰺdEWT V WX o\0MjjNQHQH e&Ws&WY~9a.Qﻢ8ѫx[ fws 3Y)iÿcR ġ"-Cġ"-CŅsŋx[`Hz^RƯ\A ? BŠOt b='ɂ5- *s ˀ,vdp t˳T 6}R?.]. HAM|HAM VMS>|_f`d awD) awD)hջ>:؋:؋kNKkNKkNKKfBspͤ wr ڿQ ڿQ8iZ&稸?6Pws5RIcIܴbCh|44)rqݼwly{jtjt NNONN DFɚN eWd'a#sxrww6' Ѥ=~'Hta \UQ \Q Q y, d=1Njػ wKw AF1 C *TY `G<<ۮk"a>, LO 1dh[ (yU5H;L H;L?Fc!nh1 L(U jŗ^ Q5BHr.]NY̨ks gOKw^OKwOKwOKwPY-  .'K}bZ #ϰ2-ϰ2 bЌedKH`)')' \ ̟ o/[8 A  A # ْ- qa N Pys Y >D} >D} ,G CMZ2R"U.6  B;)sׅ$R?+&ވ%'Nh (+`))a[)^J[)~<),3SX)"Z*3G$!*D U +(RL ,0e ,0e,0e -s.M "/0{}" $?Uޏ]?' ?{vAv d&>ve+GߓL e+Gߓg7hg i7Yg ic|icic jL0j㍾ 1-k$8$kP(kRkZl l Ɍm{ o0o?}ʿoW%ZNo 03 p óhe ( p óhe?q9mԝq9mԝqf+rԒ sI|p sI|p $sG tbrv:?8ad1w*|x)byz:İ y> i}X5iD ~lŸ%  ~~d~~#!a$[ OYW##_ a _ _ \ Bn  Bn u/4E^64E^6OOk (;!Y=HZ)!Յ*'aH Պ?N ,1^b9vu'.6YNzXRvnC[3 <%3<%3O<%38`SH𛩖0Еt( Ɂ nvD=S?&1dv  a %I ()VK_q (K_q K_qt,vi;mh𪱽R =3} ,=3}ss#%" 4%YY4, Κ{ez\٥Z٥\H?\H 𮨨\v_b \v_b R\v_b \v_b Q0 z^7LW[  6 V[+K|Nl . S, 36 #u?wMZ4*X*0o t\ W f<#t7 # QIklSX ij".R 6~ ВTВTf*`wabmb ^9m!^mmB:dpmJL(-V؁M0\%VNʂ.PU$ ]&]&j˒pX> Yu\P ̒kt]~ ͧ2j* +3\R΋CT $9"I SŁyy{Բ 8sќrVҖ_#l:Җ_#l:y%,%\UoK; K; ΤGEn )mrS {6q ٣! ~?{( W9r=? @ hs?$:ߣtZ9/@R19/@K`c;`c ,No 49* Ǝ4 2@RƎ4 2@N♦ql" ㄚ)SAㄚ)X(a"X(a 'ܴ #)(#]!#)(#]YMJݏ2ȫb2ȫbLsS(W1,ɠK7,2m7,2mTmD BgnV ,_:;c_?ָ{?ָ{Q Md`e 1xDD!qY"qY""nf]|?w8])d])L1= 9*֞9Cdy!dD̍׹ a , Mx8七FVZNňu + + <'] \yC} W ꧇S15 !sl2slx*TZد iZի(p2Q-X: V{) pZ<= a'_,#Q !WX/vY }M4aU QhkwY lN߉9 D "RD$:?c-[Q .pFR z, 7%4R nzf nz eBeZ" #/S+?#/S+ a#{x[9#O@#O@ $ u $ u $\"B$d,li $pSs$pS ,$Ȅ ?,R $ul(U' (U' s)rW *kI + XM,)ԑ,)ԑ ,)ԑ-ܢqt .IAs0Ir Y 1knR 1U2L=;d3Yl LB3&b -4AÈ53s63a66bo$]9 E 9 E:9xuR 9xuRt9@k:g ;d\ $;d\j;d\;d\;d\ ;d\ ,;·Y#U}1>=5}K>31I>31I?<2A8(7fA` B 'N, B隳lSB隳lC)MjhtC)Mjh7C)MjhsD2 wDKҕ|?`Eb|Eכ.F ,HSP H=N6INy˶kKs KsKދf LMxkۥOĠ'@?OĠ'@ P @0<Q]R90^ Rq.1m%R^+fS'a4EXS T,^ TV!L'aU.51UeU.51U.51ZU.51W\vXW/! gXRB#YRLuYAAҔp ?YO@D0YO@# Y|+YϹ [tB [t9]6 \m ]2\B];Z@Z]|+PcY^Z-0 _9@e_9@e`~`cb,( arLCcg/29td\S= :dVF e[?2fg{rtfg{r sgVJ4?iZ2h(jM* ҒgvjB(%_jB(%djB(%kX.ijmUeys m׃*?n"4HpMqʧp/\q}qŎ~ sg1 sO +_tet+=u,wQut% $ v|mo$w4Oex+ ?x+ sQy-!> sy-!>zGW ez%U$ d|~GP ~E{{{r?񀬟ý  ̆R ̆C[s[[| [ [ bj" =|bL _.F_.!,O!,O [A>= eHU-KMO]f:j~L j~LhG<ahG< ([ uus uus] `W#e?w>ml$:w>ml$3Y g?-|ΩL x2dm/>XU Ċ L稆$7u ֊y%7E : 4 4#=  XY\JWSJWSJWSMQa >NR} ]%m $>X%S#ډ$HHu?uv09͉b9͉b? b/{ &e&^tZ qipj qipb" [$Nh݆_wf IDN1 I 񩩤?%Γs9 ΓsF|aL2P jcCj\ c9f"cd _XGX jX y Ex(pA:í?{22T]px2 y֞(t-{.tW6.#񵈌@Ὣ3[\N DEY 0dVd dVɻAqW =h= c1 a%G[ %G[ iFq}ħEHOQsį@ [cQyV Ə/buƏ/buǶN۬k0RN8q9 u$ Qu$ FdITFdITt t| u9 a-u9 ˃7 c$`< ͮ4| $;<'΅=Bhι~Ij$ZkZk '#уJbZM (bZMbZM:@DjVbm g Y?@B֣Y y@֣Y y@MٙV : آB']ت V-+ nت V-+ &VfŨ]S VfŨ] ڡǩIqICjqIC9+1dzwNC ȦR$' h $' 6z  v SDyB 夙b`?/s2fť: p0q?C@[\ڳI*Y3tY3 ֱ_kֱ_sC0s;a&ѧwF,+# 쀼,J쀼,J;*p #1 ?mz\sf sf sff ;aH=l=lz%?\e ִDp ִDpִDpVt RkY RkY|ӎ'k[3t[]Ggh,yh C\,o {r+ "kllu1fYsr?¤K@{(B4''u4oі{.u4oі{SΦ,Vf*s0S8ջ `d*@ =vX+F[4qr[.<@n +bR !2;-S r;: c \ +{&9 †Ws 4]k m%;&aIP9s/W *Db̶ީD +vx$ p|3B p`b\I?E )ʙ&Vay+ RÎ~A sv4_ ]$>t vm~bo #R,pL ݂ ,Ht =W I9VCI9VC?)"l?"l "?ckj""zQ "լEN d "]/ #qB$rP$rP'z:L'z:'z:'z:'0=j(N*[ E -M2-M2/huOa /VDS/VDS]0U`@0`hy0x+q0C_S0ȧ^1`NeX 4$6:r >6XU(A6W 9BG_2E (:#) &#:6H<5B<5B<: R= (3T=+Q>B>Lx >Lxs>Lx i >Lx \ >$k ?=&-J?򣨅?j6K9?j6ANc AIQ%$:Bdct BdcCIndDXD aEi kEoNl G|hq HnWHC?PJ/2v J7MKr;Lx5"?O.UOI,TOZ; OZ;O{ƁP #QTkr#Q.%,%HQmy7=tRb=pRPRP RPT$e:@zTfvTUdKU0&ug V`y $V`y V2 XQ: XQtX0tYZLZZB; s[vd= [C;]H8'`f] ^z~8 _HI _3LN}Y _P& Lb9 pbL57NcC uRd U]djځKe׿* U e;84MDe;84M$f*V*fudi݈Zism<x zxǏdx5(c z)?{?{nj6 {ཀȧm?{w# |WDL~eux~4t~\4㢨J㢨 Dfb n 'St7 Hg솹2r3zU @,SX  X  Hdt RAN$So=]T) I)%򊡶5rr%ZmgL.r X GRP? QVZQDY5;rvu (&C &C*9w̡ +=QK , 򙿳U K ,T't򝦼x N؂.'U pGpGZWY %SrQIX 74]JE K~[ $D@ DŽ DŅ\l'Co^ Wki3 5 c= e"Gg#8& S*g#8& L$g#8& wOw)11 sƔNt xC:; BOeW;/W;L>W;SO$ wt򰫡j 8&oN'XrK7$/=K2%;+þ s-8YhY? Df Df $Df 9`/\w#b 堆j* xM -$ ,$ $$*bcZUp*bcZ <*@j;Bh9pp |ztJQ͗8ūh ͗8ū ͗8ū|aɶ aɶ[x s3XV g>(OSYQTTymXYpiN nj u\6cvĻ' CoJS ,`t%Vjȫ[MX u ,MoF2ʯo q׍Ͳu{ JJT:m mЊ ]МMi:МMi Т{ނ=8 м5d >u^b ,D(6ZtXjf"]ѻ .4 `ٺG8 :nQa ܘ#Q;݂4?ފ)n E?[m^#m^⅍|̤k?Q }LcIF ]a`" ]a`" hj,RTGo7晴!1]S t1]S o.P [;q}oW aDTvsk Io eMJY D}sfIT#g \9 to e < JwYg&ȵ&ȵgR&LR&Kkv"  qRRT[P2LIRPJƗ4 MߔhnbջbջR~d}TwRdwRdK9nǃ!YfD eN 2X  nlY!b*sj z"4 j "4 jR##h z $1(C'`-dޜ*P;]s +ܳZ?,hя` ,JY/T͕|r/e붼R133F 3@-3bv5)㿁6\4&V7Kg8s7w QKc9Ҹy -: n͍y:|U';7OQA (?xq!?{Xc3?{X@Kf %Aj!¦ (D?M&uڭ;E%WsղEβ?DSEβ?DGuvGΐ| jHUK HUK ,I1交J& ,JER% JER% ,Jٛ}+ J#rrKxvq DKxvq DKLfu ("Lfu M/g|1 M7X?N MzO7lO?1 $PƂ a PCPcS QSJRT BU"tRV+L/V+L/$V+L/dVKdHWzާ -Y2R`v8 h`PbV (b&ժJG)>b&ժJG)b&ժJG)c rRdIQdqbҋ*e8ۓ/mZf<:,? a*g&0i. ##iKftbi]Hisjiy al`Relt7lv1 nQ)U{n3-f=hn@?s n@?sQn;iRo栜|pZs qѱ/;sl' sl' , s~ s܊," tNCtNvb vȅOy wuDwO7T{x9;|fvz Y {X {Lz cf!sSG8 sN%-{Քd7wJ0 tԮ4Ȃ Ԯ4Ȃj 1hȨNi# sNi#k 󇍦~/ \ 0}_MxL0 ):O{ eLO{ eEuCin1 BGKSs^ s^ 0? Fh?PhU[W$󕃙'G󕷧SL d{9%./[| 0-^mJ}r[$%\%WiYyhmqU dh$/pEQZK Jw!(t3nŘ!/̫EU A ӚN~i=ޠ\ iїS]Rj^BxY:"]󦍦d0 ~z5HO SD$jDIbK+Ib? .*5[@]\CkB&8P󬃲󬇉Pe?ߏ8o/Ao/ F'Y e ʾ"qY4%)wMh<󱗟TF|  if}Fv (pY״ ]f cHbnRHbnHbnI04Q*| v]$t';w:?~O;t󿠚\~ X=c5SN/  Z -7V þPq2þPqyD~.vt]If i[iS ˼*˼* ˼* "`Psa3rR *;;fEk, ΆC XC]IWC? Ѝ]Z3&QY~ cӋ;ybӋ;yjӋ;y>I\k o> t0Y$XS0Ջg # ՟/ƴլAg *N gJp mK$sK$X-%W3PR).9N %X jbZ.kNP=qD?1"R c~wC9b5?U8f1΅졑?t̕4 cB ")? |v=sd`y̹% o .VCd(iuj4C=By =\P -HѴLHѴHѴSg21,_w,.g l;[E`s:_{H (/X;g| =&HK{ }^ Vw/ QQ 6* Ǻ1; SQu rB; 6JuHp 6JuHp 6JuHp ,r:đ % ahw!'  /ͭhBBU \ S IC q  v4  y:R 5 $F. ">Tl  ,_˘ yk' yk'| ՗ -gU!! p3%A✄<A✄<A✄<* L z ؖsm XQ2A73. ? ntct@ )#6 e0. l@ 9ijh  %xdu`XY!O~V!.'"j_ZYp "!U)R "O['"~: .#Zd#JTR&%F nR%F n &o&#D .'%C $'hgI'7{S((|IJU(|IJp(|IJ`(E (Ti/  (^U(^ )ch^ j)­R*ﱴ ,*`) +Fd{,&7͕ $,*+b,.-Ε7?/ݏ-d/ݏ-0G  , 2y\rs 3 T *3yP55N$ 5a.bQ (6Au{b7 7 78̹D8$Z=-]8oP9J4< c94 :;uZ;uu : >;B @AH` BOEBUCn 8D1?l 1Daxx EcBWR F`Q F GVGLG JIWQu JIWQuJopKia3Kia3]Kia3Kia3M.e+ MčOCN5Pa5! P~HɗDR XXR0Lf R0LfbR0LfYS6ii;LSe PV!rSӣV-#0 1WA'# ZWMB*B&WMB*B W^J9:Wu7oXvXˀ8 iXG Ye~* ZL%c $ ]hI R_i( ea]m˸ c#2= c#2= d#:dYrN ldYrN d~S fZ9[g;M \i?ۂi@!Ri@!kZb kZnc$ hnc$otG qO2L@rpr=]ktrXC thvnDv@/:z xJq {rԌ{)x[{)x[|l[}mA a 갥u>2{f( ^ 􄮇+􅢦 \ yE̊D Ra8eR.?)`gu [aqQ % x>FmX'+h` =zXFRk2ɸ 7ݒ4 $ sO -S\ =YdB1MN A$ V {p]{~QK/ b O"Q!D \O"Q!D (ŗkDdbwM- 5 U'}& ˈ 2.wXSOzCt"A+/Q[ #Ϳ{ =1ˏ /R^a , O:"j8:e #$1| œL )Ȳi #'Y?϶q:ga+v@ýz ýz ,(fB,ǁZXTm $XTm ,XTm tXTm sMXTm XTm j-GEE8%^Lq)q)K4 el asq]9q] =q] 1Y eR8v+G}&+G}Y1YE Û/B*v  Û/B*v:ÛFLnVPwb2Ċ mj  O\=l9)f,S8<~&,@ 9= 1@F9{Yǁ.IS-? ڪ C # :2fwqNJ:wqNJ# PJUPJ*ѭEݏˬ<3kjix JeKY=BG1RUw)x  DںPDںP (2h^qR2h^qVVϣh !g !g ƵNЃ5>t=sM M ӳvUqo; Խ6f Wj Սn.xe Սn.xejզbl[UYeI $2vg>eNQעkܔx>k%\|bMY^JF7)$S,e<3[ _$.#:ějB m ' iwЮ v="Qsa) nYh8["j;6G곳_׬ N6]atR}PS}P];$tC*П>@>P %ސd %ސ$AN +*i WIѭ =Lt u)ǽNe} -$).QjujD 姍jv姍?!/Oy|} '̏J ,r5(a4@ 2Z:;NQF :;NQFYiE)κa֢z mz%N c,z k{{Po j2,Ens`cu \E$Le-\xL L- =Q/o[ u6· BBAJ;.8  !_Fa 'A4 Y-vvdBC~%]o$;\5#.hV1b1b,? o?}0 ao?}0qgnR%3 iJ b (8D ,TV  "8f̀]3f̀] (pufTt `r* f!p  k *")ozK"Jv"p S"3/B| "3/B #k#њv?$oL $DeOb%.}V)%.}V)-%P* *%W [&+ 5Fv95hW 5hU5XA654 7<@t 8pl/ 9ؽK:MSΐ ; qWs<::5=4 t=p;/=@sm >naQ{D > ? S@Qb. @Qb.t@f @⯟fQ AMJvY ASZ{P^TA -ACDbΧ4$CDbΧ4 Di@y $ENE-` E-`F3_WFaB}60vF 4j#GڛGڛGڛHϣlz%y H@,5 $)IA>PucIqJU"Kw(A K٩%6b K!/<LaxM%pn_$M9+\ Nj H]?NjdOq*O%z =O0U OܜW"Qo([P eR#wy+sRR#wy+sR#wy+sRwe) Rwe)jRwe)bS~B%4Sd;BS<8ST: RTp7k UE*_X\ UE*_X\ Unan=Unan=:UKe^tU־ V$b9A VpY\ aVH Xzc; %X7Y Y2]8v_ԗ_& c'_C}ܨ i_IFfLN_]e`AԖmv(`nȸ 5bHePd %be=q>E>U%es hUwjnD[ ,jS@b$j[zj伞 Tk{VqVk{VqkF:vFlR $lR ,lRlRlLlMm^`L n, nWqk nWqs nWq nѥubp;x rc<sʺb$ PsD&mDDzkIVpV!5lhAclhAc#t-2qY2â H2â: 2âY6G(F%@E [~R9t9 7 Og=LI@W Jո# %Y ZH چs؏o#Dhpb spb a Qc" +"S: $S:;ck1b!k9p k9p =R *d@ aIpt{8 b$Q.D b$Q. 8 D^tZsP![ $TJ. ] #3<h!H\ Ik$ T6q e T6qT6q|Zva NPR[5jw _āKfos Ơ, e=ɔrN 3[v˸u3 O 8}Jd =e?=e?GuVCy&\cӍ.+Yd @HKE $&u [ohhքx4(u #-x4(u d 1^89.`\[Q [1H1Tb 1H1Tb (QӒ[s;Q#Mَ ۢ-QN݈>e?eH< ᫠f<,0g FW (0$v +v:Y+-^D?U txN_ [ز1^jФ0휥qREQ휥qREL#휥qRE휥qRE$u=q{tۥQ tۥzR AE? #`+ԈX[JB:]z&竿aJj]έT}US S3^/R3 ;{nP/U)55:.`R ϽLuYj\2jrd6=UIKf sBĞTS#V<  #V<tjHQXe$Br.>R L\ L\R S P$)D|o%8Re&?0 Q][K;c ,\c Mij0ӛ\tk \B}ҡ B}ҡR f h3 h3Z 1s7 %7a %7a: >`< ޲vO! /g /g ?:Ch 3uj  e[+VSҀ= #lRR@ =4c"۵j @l Ʒpm:C=^?~tA { i= m_,*|5 P5e"9nh\#`mk$G` $AیH@ %}BXUvQ%s9_ \ &,s?(+Q(s WgZ(E1KQ(E1KQ (E1K(E1K*@&*E %*SwU+$I:*,`ꅴ?2/t 0#s|02C:a04 _ 04 _ 0!1  23eFH2+S3 Q3SEd 4c63*:63*:7 au7su 8'LV 8?Mt 8[|?9a矿:KLYbs:ގ;ں< TxЎ=2@IX ,A:p/AK]! A؃4C60CC60C60C60 Dp{-LEVd EVd ,Eb{ .Eb{EagED/U (HC[I: H,n~~ \ISTGKJet%J^ K!oLCR]1 )]T#2_A $k a{6c bH8 $c?^@9kc CN- d0~ ey_ "ey_ ^ ey_ ? f|?o]gty@K h/n<iL> smq'. mq'.mbXmQD%tnvÂLngr *nVVrI04'Nr2t3r2t]s}H` tl*"uUeYd !u}?Q#u}? vFXIJw $ x 9脙y^vyD 9 |0=J|l[uO*!t}d+f1D)jݳK 8 ccL? ٶ!XHs c(QfERh,2jh,2jKP?~U3n5 @q1>Y QBy־p `0  ^#  лYֳt #1 gi iC %.U!I-y2ްń_<L ?Px'}RDlRQDlR"DlR]Qb?iHiH\sRUtX!+~0T/nmTVnmTVuƃ"uƃ";f Η?y,!vS = m/WU$ g.@t SeЪE Ayh~H+@|t,8x]898x]8 iDjH(])Jd"_b44 +cx+sbtBUV!b !b mT 8}/!  +N25PQQPKZ + PKZ mcѫLrU }D%8MJLJEe텹 rG㋋ !"˂ sNgiY@ c. ai[20b 0b .>g)(ܕZ ^U30u2݁e e+PmS0!lgGPN'ES{Wbh~J%9[M 9C SOX 'p |ueq ueq? ?mOjg ut@g utR &5 t0<] 0<] fqK C Vč>I𙜬 sXZx<bSx-L[6f Qsp ^F|yBzɲR pg%}J-rv{-rv+55E Mq E Mq?nmq"C3 !/R tRu H%rE Ҿ]  Lb2  #* # "X9 4d?=j 4d?=  4d?= i 4d?=*a փ cR[1Q "I #R vBt  :1'L)>俶cAb/D+M5L imi . i i<i<K- Y( Y(])\􅺤 g 􅺤 | +ҨҨҨ Y|  LAQ :EŨ sJCsr adE $  V Jl&|ي[Zj!9\P#BG>l#9N #[V: $PL -%{O &Nz&mkR'U 'Ut(F (}T~[(?ka (Uq)SS2})x#q$* * * *Eu(,4(gD,4(gDb,Q `,y?-Gd1 ʶy 1# 1xh2&*u5D;fEZ5Eci6U֬Z9s>jw ;mJ ;lj?;ߕ 7 jAW(}tAFܜeaB'Xea DU_' DU_' ,D*e G9oPIK))RI_5YmQ;;[;bNR\!!'3\!!' \!!'\6m?~> ]ZBj]ͧK^uJ_Ha?hS a?hLbq# cO~ q<|cO~ q< cIH8e+ Re#fϽ.D =g*k=g*ZW|g9 hR"Lj./ke~l 56x^ mlN1ml5- mrf۠nFQp?n L o'ceAZ?oD2 ep2~#p _x jrOfrɨ6]tswSy?sD܇us*v"ȯYyL9 yCֵyCֵzV#h{HuZ[ |1t ,|+6t`7|+6t`7|+6t`7d |+6t`7| |yV }7LfI- eq':o$"o @3)V[ Ji{ ilCO l>xa>[z,G #'K$ \ $S8?Ƞ^[j[ 3|-XK3|-Xm1,n}!/b0rtk  Ҟys-OWpeo%R mY dsn`fPQڐ^GR7 tNk, 7.:7. g[-U 2M!_CR3e$a.)ym 2&rR;!i {=˅W V| "H$fsS s$sue< l-Gz](G eMf 0YǟeNL=pJHzMXy 1djR t䐍 ^c OZ V_S V_S~u4n _8A #4y%kJ* &v;+>V 41:>։y_2K)Lx F^: g $]')r ?MD' u Dcf&[qK 4cF W ]f,Ah q $;>rWӏ_0 au-9̱ Lyx iQk NіNі]m iyCUUW o ( >$ӪMv[ ӻa>Ifq4ɶ"JW rMSF'>qCshJ ? O7  ف 0{ʊDčrS v[&Pc }@ }@`Қ+jLkYt*l ݈1+D|Rū |Rū ( |Rūh|Rū|RūAJR̞t hE˝h6` vu^S bB\|5U/2ڎn cظԡ^Y T]? GJ n $~=SW ChS sRK-$![O ($![ODeGl YYFI;d᭗[߭Pzh|f xy|~: ) HNHHQ HH- giQ93_&CuV g/tOFN?JOFN  >SgH.` a*Mٸ   =]+9 ]+9K Sv z[ 2 l V  dTtAh D3:M>` (M>` šfšf>5 IxpL ({4tcKB  Gv ߗSL ߗS x3Z?tZ?Z? Fod:+  [x  kwC-Cl Yyx\~ 4* :?_q[` AS7R 8W hauMk/auM \k$ ]Vx!ȄMFGoKX;H 3Hl[Y?5Hl[Y^5 ;q+q+q+R+GGx t oe \ "~F7"~FS "O\Ԇ%'8D&&AuT&EL>F &]_&: 0D&: 0'`~s'oDs)xS?)[ Qc!*etQ,A5 ,Y |,iji,u4qU-uh0x a 14S=Zh18f1QVX2>ømu 2v;Uk5TiL5Ti6]j]66]j]66;7+6;76M75ʷ$ J 75ʷ$ 75ʷ$ 7=p9 8S8#E8k?;|:dp:dp:G) s;$ ;A$wj ;A$w KP< >Ւ?)-@]JQB aBdmjC5LJkDTs DLP:{dE?FBFBFEؾ g FjkG飼GL#2 Gm YGAsHH c =HWIr?NJm-K YLI8y LA"vL 3M({vjMUYdM[@ Nt&wsO#mKv[Qm7;IoQm7;I RNFRfl_ qRfl_RT*T*S T*LTS1 T6T$T6T UdFU@vޝ+VuX!`^/Xkd m X@mbUY:!qY峡{[vM \N] \N]K]#!e]:T_AZłv_O3a~$8#[b7@-R$bq9q gc˓$HB[? dPE \eP,fv-=)fRYRhS*a7MjMP3Okl6gEl ,mfʒTpmU. mU.nqKo6' io_Gfq&0q&0rj hht"\J[QuCפuoVwATb wYzQCwYzQw?E GxRP/* axq=pݤIxq=pݤ yb/l -zONO| }}~Kc~#:?4m9&4, izǧ a +ܿ$ c>v 4&ֿFY!û늣Z-L ]}hv*/qd'cD=8$^-=8$^)_ݪgV:93 93Ui ?;K s6D_ X+Ih?%J& jHO2l M }r_]et U=q {,\0) ˎ=j<ɻR :|6! G`kSء $rqE=By?Q5+`nK=a_Ue%U _C!‘[ t O)n䝙+ aK+s+t +jTYtDuËLX=k ( fc>)bnR>)bny$ ,y$iމ-iZAN˥$K/G EN aAKׂE ^sk-k-jf .(S5erSB"]SB" ~\Nej :9 TT T XVVX Fv鿨 V- %>N7 [ gq@F :|Bvck{f {({f JnGڋd a X "  FY2qj8FY2q?orUzfBBD³5?Sk( r-Rç/7oFjċ_L$Ś] Ɖ8r -ƭ |> #ǀ_ΌkXǠJY 8ǠJYtȰQd ȶFvʊM& o@ o@ o@ ,?5 $<1 j><1 j><1xR4 c'ne i[ g  i[? n< [ C%#? C%#?D ߓB gNv ZhH M  2 e X քN  (_m BW .9}s^tfDHNy2[KG =M>vb))Ò7 q(CZ[MҾx |0!@ L1Pa?YN ̱rtQ +go a sS%YgQ M^4$>47%˓aD%/S &7ͩL (Wrpn(~BmdM*?NS*]ݤ_ ,X> a,cXgs/?xЪY/?xЪ 0*ec0,$m,1]Ju2wJ2^M L>M R?JZ @$PM AM*"A^=/B*q(ߗ 6B\NshCG 7S)CG 7S) t CJS8s C:cUG嚾ĦGd H?AkI:P704JͲfucBK^D&kLb +MfQ[+5 tR>$j&SvK;d SvK;d 1 ZZ ?]WC9K]WC9]WC9]/Fr"]fb ^w+e0^"/ _ a _ `rKVwb#+z cWwfBEcWwfBX:cWwfBj1cë% d9ߵ!d\uFZh0]U"h0]Uh0]UPhoi!ڧdia$u?iz9j f|j$Ķjkmfk]6 $lnlEtmS xSm<? m-] n'X  n݃Ꝃro rRJ rs6/u@e v$vJw|ϻ0 %y:ez9Kajzܫ9z8|)c{Zv-#{Ht[|;;I_|RN \k|S9v}:}뱌8C~IeK~`J ~ơ Z^G"0^G" e @I 55 T$ Y  <>ʎ q6 #Q ?9L. -WL  7 o걓tl-:ŰU Zx" bR ϥM4è OG$ 9O+H} K ^f$-%Vz qXQoR 1( #ѪVEž-l5" svb:B?#ڷ(!J9*MD B #$G G * ´ rp);tL ]W?Tsǁϣ9V Y>9 Y>9 Wxv`:cAj~ Q|KIx/dML<24q?( ?+ZVR@غ]H+A # sA`ݫc)B<:i|C $)C]RWK C+F[3C+F D-4 D! aE9R - FuaCFI~UH_WL HQC ,H ,]RI+9T۫ I+9T۫?I+9T۫ IE#; c IDKi-8?+Ki-8 KKKL;^svM(>$R N"Z*Q5j+N"Z*Q5 iN"Z*Q5 Os#%rrOKOצ^|Oצ^|Oצ^|R$(Su,\Su,TT wQT%@vU\e/SU֩$ U3-p"VxUVEUمV)(WX>L6 [ Y Y?]Yܮ,Ů[9oLa9[SzP_|(ZR `PD`/N&a#/3oPaHF @7R!aZޗ|td^ dwB=jhaѽvlhiV> -ilHOj]n?l,\3YlC clȠ}x;|n cl+]o=o=Yoh<p6\]RtE %ui0| ,u32u]d\v#1}vgxB vrDw+ƫ?xB13 xXimRDxXimR xXimRx9xPjy:#=D ym7h] |:?|Ȓo~_R5` '5` oLe]j yyHvf#)qv =̛+!  U%+ U%+]yJC#^j(. QudjvcKs;Y" ^o} LXm(R|]Q oq05oq05e `ˠ ZļHvHk,fr YjK2V c/ 6R ̃Ũ"ѻP` ZZ_*½p)-:\T/7 1E2Uݽ?yj Uݽ?y?s$ i W/NW ԰0@ de9U3de9C|ߚ He}J.XRX!wG. 'o[} odU[ v3B,|eO ?u#RB4)8 4ex#®S6 Ķ!>%rZcn;zƟ"wR=6{xG ˣ  ϰѦ/x˥~г4kA2ܑ RJ\ J\ Ԣ<4 Ԣ<4ۓM FZ v2w"_{ 5 aSYnQ|HZ'i7#i7 9U>К] ,Is@eȋ iI1cNW 3S45S45: @y: r@'j %fsY ܆31{TT sܹR]J R]Hqq5 ;Z c s r d`|.fRܑ+LLܑ+L=4t b3Yk?l+ + >U >U R >U  6M ISE顊]ZI~rC֒68H> ,j!;T<3P4h #s WMS&s.AAMVkL¸k K붼 w X% ew=ܦ;Ͳ R@ bi 7yЦ7.=*7 tF tF}ƽ !@Y~#p@L44 [I d53t^I,- ^pB͖R͖LPk~|̬4x -k?y j# e~N $9at U^Y %[H( dG'4˖^-Hk; 0qTSG}t ƚ ȡ e7_v +6bw+*?ϙ +~" ,olUd,;!oq-Wl #-klV/&we/SA=H/ c # /)5BW/)5BWR/)5BW0-0T #2 ?3 Y #3 Y 5H+5V\)6"66ľ7x77FQ??? wYt?--@ a@52NDCfr[ iH SjH>Eڊ KiJM3=]N70/GOCٚ)OCٚRQ!LQ; :T W;T;9WIUɵĘ #W9 KXѿ@HvYWCtO]N_]dE{ ].Z ]ߵ~Ê!"^P0)S"^qN ^u"|^ J $_U7aAic7wT f2Y{v f?flm ~]8m@~*8l lmp2]oryMʥ pzNl ipo rIW% , r櫂qs^Oxs@R@ jt$BuUDEm cvH4V aw37j %w37j x^<PyA K"yA y/_yB {1C}SW ~wB ~wB , 1U VWf1A驽 A{,sA{,pDT7OWԃGv"xoCJ/^B7ic{ FGL \)͉Xcߤ(EɤuVA_?p{)Q #a&I [Nn0| #snn cp^Ҳv p^Ҳv2$_Nw~#/"k$} b/nQ H#.u6q qX.km?ǪFW_ *BK? *BK?  t Κ2.w* 4$ + 4$wLFwLwL wLyH.f^=R$ ,IxR6˱LDjURl c|h!J`?ƅn&GNFYfL ^jv8a0N as6] as6 as6 as6l!^ ށt~ lf!m lf!m lf!m?6V3b s3֌G]^.|$ cEwZ $HcEwZ cEwZ T U? 9 *r]?{Ȧ7dd +M=NPUq $>PUq , PUq /XR O?{G g1(_ s]6 8?2 2K;? a F(S |7q 3UD@?bMkS p ^*^{tDW<3 (N:O aC^K$Gp8YMq' oȤDoȤK,9 Jx~kÛy}ir>U2Z Ǣ,t3W (Էu=2(Էu=(Էu=R)(Էu=Kʎ'z+$Mˠz&zs"Rk]~JvS "X3 CwdwwWRwW0c0-&c0- m4VWΔϜ?N &ϰ~=P džޔ~b FC bz85hM/hM/Z#hM/hM/ hM/SеH*TQ׊qҐe= eҐe=v;Co"2sS`?  &ك",ك"ك"L۔=Pula``92la``9 ? ?nX}o ޥ \{ x ApU|꘥ # ..)s}j䰘yb f@Kf@ BUZ}d,މd,މq  $D%99S ?w= $KJgukKJgut єBsN6m"Q3  \ ytgPT +V3{oQRﴹ N4 a 2\< > l~ > l~ $> l~ > HݣvK7uޔLamH amHR>h f VVS 質:sA7p c`Yۮ \a, i(8bQLlK w׃h]"w׃h tf p R{aY_OY_OuѨ8uѨ8o T6L:K $S4 nFz j]C ok"QݾvF(*zh&Z viviޗ*u9>ʆ " uǹ % 9:V zV| R1 1 b  à_t+Yxű eqo ^مv م0BD2:?t O0j gr  E#nb.kz s.kz ` d޹Z d޹]6{ܾ ]VB_ zzY З}З} 9 V0d ($_)r6%%pv%pv%pvN'n`(n (nt':9 )mi);q%?+#"# , M '9 1,aLD,E~E,e7Ѓ-Oo -Oo |..wy/.q" /Ct*/CtQ0!K0000R2J}M& 2-,R2uuBS2`/3i g 4,ʂ 5MqNEs 6&&\ٶ a7J|ij^c8 sB "8 sB{8}ACM ( 8L]8L8;BI \;Xi{ 3<j.7DIR>7DI|?]ڬ?m^MM?m^MD?m^MAYUOQAy`AyLAyfYB$eE+BZ+Bc CI,ͣ?YD4DZ‘ Fqk FeO5]HvXaCKJH)6Jtx4Y Jl !J'Kt.KT'LBov8 LH*vM%L!L MW215RM%ÎY'M%Îk Mc_N gq&Q \QClR?>DR?> R?>KSN[Vi#TK3\D TK3\DTC䣐Ut38~ iV萱-V萱X₍g|\qVA!^`6 ^`6 ^qga_Ovj _o^rb_o^rL`H'hbD2cDDDd栶csea;}sea;} ifGvfGvfּ{ g6>6K gzQ is j?B/jݒ\Atjݒ\As lȑ an (oW<v p '[cYpgںs$q$҈ jqӺ?rL:T8rθtvm\{t4yubq%>ubq%> v#NKv9 *âwiPN"zx$H;xX DSyۄ+? yG2zx+4z_w?{#"E*%{:}F|1eڟ|Ty i}L  }L ~x ~7i5~7i5[[x (0 8~Y0 y9&[ET k/l_gk/l_ J%JZ ZmTjHMM . ; O'|;O'|ml Yne{L C6\gv+kO $>|OI8 W!lAssD''@ە ame|Aa&vm2@:?Ѽ[Ѽ[Ѽ[Ѽ[n>5:ByZ ҕ2 jy2~͜ 3 zDt[U v ~ 2(XŶS=J3v PZ ug?,yЅM+FiKj(Mmq| $pxF4^t T%}]:<.FN~g~t< m RI=B.:P8)dnJQ ;V?Ll KR g0mb ,ňxf9 (>2h4\f-K4bஓZ UEzjeȓ ll ,Opb4&]Y, ڎa, ڎ, ڎ, ڎa'S 'i'i ,'i 'iJ.p Iz.Z;ϻăX ăX JNh Ŝ-~N?&|ʹ ӱ:y -zvր$Ίyo4 ΂ $ g[} // =pn8f$E j{0 a4L ,Rӏ7ӗtu,RԱx=S (i]uJC iف%T $ AB {D]ݑJ< ӟ>ހh ހhZހhL}.2+E]QRߏC{ߠ֎eLߠ֎eZߠ֎eRߠ֎eߠ֎eߠ֎eS2 ɯI` $ 09 K09 S09 R4s ꠑ*E r6n)dr6n) Ao :Q sgV8e:D@|yMv yM +э ^ɩW[2&?jr%Yjr% jr%46 9Y{a N mӉ=k#&]Dx yM+ pK8![5w ёtkd=w b!$Yb!$Yb!$Y ,U/?~R%Q:4#_ #u j((-]FM/ojgk3\` KUj KU ( aN x R:  R:  E|& Ano. Qv _ƣM _ƣ% R'KNhè  6A ʎ ~؁ %{/?(UU 26Uj",}tKy\|d ] $̜M[+ i 3; ; e6/ zÄfd\$*E̸ DelhDȷ]<nЪrg&5x=U&5x={c2vENx  Řt CKm8 ur"R E !t "fdzc3 #D8 a$*xY%ML(%Ms%K~MK'%? (8}no )4BV*#GI*Hm"+w2 g+!8s+odu,Vڈ.(ɻ4  /ֆg 1N1aXZS 1&fRj2fxŗ$2 2o4 -aq4 ,5 k45 k45m,jb:8\ 8\ ?8 9儋 :k; 0x ;nh <4 = r2 >uK >7 Rs>7 C?"`?8Ei] AeEAeEB<|oD;eΛ7D( 2EL7\`EL7\!5F=rA $FdF D FdF D Fؕ؈G=3Tj߸Y H.Q!H.H|tm IplJ\SI*OL]' )M@"vM̱LvNc/NYd %Orԥ jOrԥ OD|j<?O]~ OϡA` iO,Qj POWQP=]NQF* f:QF*9|QQ6R ?8R ?8 R(B\mmR(B\mmRR@lSKK1bSl:_S/V-T:ΥT9I U]`"CVĊt c Wo?3X7Yb^ Yߌ=xYߌ=xZP: [ [ ]/Gy|]Ui6_rZ`^M`7fibmbvPNd &cdf_q i:x;&im+< ja)>Il<l* n.5 -pm`:q}?scĮtT0tT0 t\Ru-^ veH ! y$0Zy$0S|&eTIB|3R |u骻UvmP! im ;ڲ;ڲqh á9/á9/R sy2}5A k2}5A?gEnBv,sJҠ}nr=pbS =pbTfI3fs(I3fs tw+P٧N+ 8`O=(A[ F{'ziDGc8m8Rum! N!5 N!5$Sh= }KZKR ) %1>VqY $ dLiR)Pcq Pcq 3s0 3s0 ,N D,{( $ )zEQY, ;( (XD?XVB};C? o]pC8[a;V|1C&>v U=c;xKHMþ1djJCþ1djH $ѥJzt P; KZhJ?aH\K$on#Çe:DxH°\AYAYJjfA<NŹ2?q+q+N^KjǝCI[Ǽ ԰K ihY[ ihY[D 3^V #c'f~? p>y̸ 0> 4Lrivh#N x R Ϋ|"Ak Ϋ|"AkйHbvܻnO *sMLNPS6fE,U #"cl 2/j҅ ikخȮ*"1HC(ک1L "-r Npv' iܾVɩ:w (Sɩ:w ,ɩ:wzɩ:w{ާX'Q ާX'RF!WO1UO1U1.Keo mejjZyS匷% \x >ͦ 8E鉞#EYE 1E aE oTY^3 h+Ouk%fluk%ff=OR _"g$#lJ ^ ,I$]^G[`U ζA7s*E7 X -?,>UYn!Yn!:E Z.9jEY H;/xJܿBʘ (kޭU }:g3sR6 %j$h j$h ,  ь8a ܸfܸfU`~ XFriMaDz C`^BD!l 4W@QdN5¥?Ҟ3 I& i 8"k j 5?C C j$2 Qf e Qf `C?5Ѳk?5ѲjCˁfDtEĕmsG=_ _ܚ% $_ܚ%V= sV=?Dtc(vd)R ?ˍ SZL;jsdދrH AsB8gj UsQRC\C\RTmiʓfG߲=d L91R *R,y gb: \ Fy[  bj%  ` !1.~5!ں6G "υFU"#i& #i=F a$^'%l{9 '| ')\(q/(ҟm(ƻ(ƻ )|!.|*,1vJ? ,u5\,u5\,5fųZ,^ ,^ .q5R.+&j2 0\@2ZsQ 3VM1$4pIym4pIym 4ݨ52:5'T^??5'T^ 5'T^ 5'T^ 6"(PAe 6r= 6I "8YOPxs?t5F@8W(N3[A)r BstCa - C$QC$)C۱8?Emւ<?.Emւ< iHc tH H JaDy< }KƎqE Lq˪s MeX/ZCMhdNwN}#?N-|l'N_<O0D,OtGJP$0vQ6̈NNQmk QmkjQmk Qmk Qmk RIWRIWR꼽=LHL T̴4w| T SU" U<2Y P\? Y?о&֓Z]p%!U[|O[Ĉ,)Cs [Mu|L\^ 8'H$\^ 8'H$ \^ 8'H$ \^ 8'H$ ( ]dGm]+:j]Vͱ"^we ^we$ _L50d^S#`N a9D| a=tbH ,fzpiwcfzpiw-f#]tfKV%fL"!^ $fankog ydsg2RgE 0gPiB;vj[A= j[A= jeq6S l (l l mjn=ny֊=!ogQZogQZ q t?' tdb \tأeatHdu!t x##x#P x] y޽S zf2?zn;Gt{L~|.gh2 }"pa- ~ʁ; J6 fg8?53G*BS9E$  b5P5PiGS qy@pbzϠ iS08Ҕ?!#Ữ* @" )NHCbvxvx>rI( ,=ķb@ő@F 2ɍhAWͺ0 Q ӊdJ %6 SDd nVq|b)nUR))nUvƂJn]/F:2n]/F)弗;)弗; CK "M]jĊ+ xEjwIF1zj q98N  Ũf? B%[$ ({\o= #7RW? 8텉MsTբB3k"V:Ro8׽8 %o^ %o^ ]j]] 4Tvx[9Rx[9m i;O_M`xT& e*D e>j=$KH zN0Q_}N 3N z[ 1"qYq | 6S q e]rތ9ߡ ތ9ߡ ތ9ߡ%b+B sWarWarjWar v4IT?EGs l |HN8; 1T?2JԗKJ0KgS _ *< , g w/hWN)i[oIj &ſ ˨4tȦ9̄$ R{ͳ9CXM@{%.}~`~H%(dBP sЎp3ЎpZгyʲ ўqT '`;b'`;" fTv.? է CqBNrsT UGE e6 ݴn@޶D8  ޻fh߹"_ iMĭK~T !YZЍ #j* ꄍ ꄍ ꄍ ]ꄍ 渱N.cB Ar^b &7v] iM  2B \Yu z 3!V Hd \2 $ QDv) )k; c}Z)W c CS)] itCS)]]J?Q4m ?Q4mkXA R5KWQl.b-wۆ곾,Z곾,S cc%#<`In=+6N>V;# >T"N?b{ ?ݠ)Y @͝ii @͝iiA1%d}tC'_ Ebr F[p]Fw# F G.NA Gp-2N?I:mPFIHN I|| K L\ժkLP M_]ă M_]ă NY8O(4!PzƀYPjQ^r(RS> vR9XD?SS}v~T \QU=<"j8 Zj$8\!PZj$8\D5Zj$8\[Y0xx[Y0xx[j N\r{\rQ%\r\rD \r ]L ^w2" _s˂_ 3#_ј mb] "b? m+dX^ f]6ltf]6ls h /f#hhsKM_i5IZ i5IZicx/i$} "i^Ri0 j?&ӓ lʋdkNlʋdkQmK1]N- mb{mb{o0ycp}S!p}Sp#Ŏ9rmukKtrmukK ssDXb_? sǗ[t^Oz: u- ~uH auSsx(_ x6>}%y]LEU1y]LEU1 z)tvj| zyTmruzX,zX, $ {PC *~JP s( Z"0woF 9t vJ\ $ vJ\! |߯lA8!*; 6c] 9X^5 " !_B;UU KH3A $ډj G5<κ5 s- -sGh cBt  1D'Y'9Ix c͙ Kic͙ !c͙ Q {P OA[8/;*O1Q ,??,#qB2D9B2D B2D ww*Qze\"L<U|l|l ia| dR Wzz Q3<Q3< $qh?HοX/>@ԠDRT . 煇+$? 9 < O—ev@s°#N%H"?A%H"^rӘMd ǁʠ*SCi&),^Q̬RҠ|;3Z ;3 ͌ `aJʢA } | ,&} |j! ГH 9 C? aѮPڙ sH˖]4L5@a~)S c f #"[Y J@ֶb_(RԶ Ք . 0IU *rOk#KQ#KQ 1'a ֬R:=zY:z0 01 ܀ E \ew}[r$<hwORz1YH@䦃s H@䦃 f0> J衶ğqS5F/!F/i{C a0  PxDu% r>S,{Rj$b] ~ CEavګ۫RI9 (oBK xe[R L #ӝרy*,]K >K)<d )< [%1UY=+݀}|Mt}|Mk š_ š_ ˾_:#?˾_:#޵EA i M8R7WB%{$i[M +CD^W^W]scid-4.3.0.cvs20120311/books/gm2600.bin0000644000175000017500000124516011727223077016171 0ustar oliveroliverHutX ΩP*9N!]ym@W ym@WDx ( !;gݐ-& .f (Yv7}[U[9_Frh;Tf`:zj;Tf`:zt=h,?I"Bg]? jBGD Ie'H?N[2PK?yJ^ܔYrp ^ܔYrp_0vuC_0vuC _0vuCsb'g⎟Dg⎟g⎟jg⎟Rh>K aklȒQvniVzYn;cqeV wjV({0JZb}f ,ո$3tiո$3 ո$3 *`9> ciM!Bn jcJ -cJjcJcJ ,H g0R0&! 91d$M}|K)Bg $w?7sDPs/K,V@?V@+zO1R +zO1+zO15u.MBiizR <icCt.} O,DdO,DdRs}43s}4Re8[C $e8[Cs3K?*C L*C awz}' , n. ( Ǻ7\~Rp+Y 6p" cS0Z p7Yg@|2zQFg_? R+OK R+O/LĆ̍  /LĆ̍@bWαa\h)mj iz#1?"ݻQ$&= ,`&= &=+ucݓa2[9B,}tA|RFQf I J0u OLPXj T?Вd Tbn bVEѤLXiM_ \^װ%)i`/ 4u&sb;vb;vb;viH1l^1Rn} n}r!7b`(iwbr[%ؙ7%7%o:SO f o%Wo%Wz/y -*z/y ݃YRSSjS? S iSINa )5DˑdˑSk4+k4m؏ŊmŊmDC\?&}# tҢcaiNY#KKc NokP6?(bB(bB̞7jt c>چ:s3sⰽbps cxP 0%Z6[0%Z6[O 97< -6<-6<YG/b~: ԳNdPm s$ }> c┶5jRN%{9 GPPٞ  GPPٞ ϱ)R7R}<ٔr7ï[<R!%<##f *PGC*PGC9eHwj@_?tsfBqR yLBuL8 - DI aDaβGA7 ,I-?L)NSO{WFlAREuVҭ|Vҭ|jWRFf^# gWRFf^#7WRFf^# X1 [N. [N. ewIeO$hVhVi8dDi8dDnN.pF#1XdpF#1X[qg2 u u&Tz7~Cz7~{_=N-1 9G%9G%؛oZg\yQ_\W_\_\_\YgSt+9tNZ͞KC? jжIжжM*uZRR ##R  R 'O| h;_hh;_ P'߬OU T= 5)NrO##\[ +|~R[ +|~R[WDTkxDsCkxDjCkxD kxD kxD (2$ 箬y%[ gN:Y 7vR7vR?H[{ H[{?UW/7SJoR2ų -g2C  -g2C? fy  `? ` \  }^5S[(T.rp TN`% G@8 a'Ys#u $uдѬ(;f)YgI)YgI )YgI,73Ot,73O (0xutU3G;a4]5 @S6!s]X?8h $8h 8h ,:ɪr <3 ?>|H@Wa8^c@{~b B('hFrob JNQ<RTKfWBRW:>/9X&:|)?]I,_]I,_^%;p`Gv] # `~KeKKT3} f?a2gtoYmuIot oiXownta tQ{lv8t? ws]{>auq??P`_saDu ,aDu 4aDu aDu :aDu iaDu pIfSN=ϸ7=ϸ)TU0sAZ<RtXY1ߝ.!$˖/[ ;Um |.E[bԼE[bԼa. _<Y_<:w ^:w $mqԪs>0qOAR 숕J~g YNėgSS` #ڪPڪP`:ŋ_M1DM1Df aڄځvBSKH2EH2ELg"W:j̔s3ŒߠHՖDN9HՖDQHՖD HՖDY5N5~?S^L?$ϑ?R”l (z/1 MT1:^   Wc&3i Q_=_=R B6?B6?Rn'2ye  zMws"v>.jR2*_m4*'M27Q*O 7Q*Os81~ :s*e!:s*e:s*e:s*eChd#Ch ChGZFvI팟7[IhMy1L"vP!RQPEI ,Q*aT| a QTj Qܸ6/ $T=CR[v^Ͳ[Fv?_k hPaRфXb h}z@vz$?E@>ּp.s5leq{*NO[IlNO[INO[I | :pVHQg[ơQ [r;6E [r;6E?[r;6E $[r;6E i}ɾ~}ɾS}ɾUxK?&@ ;Lm;dƋ s ?G 렢ܓNӫMbӫM aMcݴ=B p x l_ M)&:YQ^ 7d V93qEq))+5A?o d r r{3J: R1{]?(jT .W| ,.xABք%FY1FY1F'"NF'"MQS MQSO l̖ O l̖? PDV7 T XDINh\oHn \oHn #^+ s a+;Obl}^zb`bl}^zb`jSjoS(oSNtpC ww}>Sz1`R |c/|s _?}$||{G?Uk< Ah\ mZQSrSV$x{ųsjaz_ \̈t@h.Oٳj.Oٳ m.Oٳ wZZA "@@fC|NfC| ~^Ī aϝ,|3 \,|3v_r \Z 湋LpWR<pWND$F7dP KLSoOt}\N cЖڀ 6Y wں i ʢ  +V d\4 %*{'V??#? ? \FW)ΉQK)ΉQ_0"3:D5n:5n: 5n: Bgo G:#p"tIM=0)7jQ\R"]NY^CHKC^CHKCat'ab iabjd cdFd'dRde ]n #l*1l;(l*1l;#l*1l;l*1l;QmB Yor2or2sTw>tk`t"oi z=|5WtY;;36~ J{,>ȋ X,>ȋ Z V K {u \{u ^릸6*e"t *e" 3h"8ق  l=<  (#) ##) c ]T"3hk /x'/xK /x JאZ Jא%U-N|ʇY7snQǚ.j Y # Y c40_N߉E~?5LG5LGa r4J +AcRy7?D z Rz  Kx|-wD@IC,oiͥ  {G;h J-&] Wh ?$ aƞVRt 3kKv4m! 5t2-5b6<˧ ?FakEaZ EaZE6D GZ9˅ GZ9˅ iH3O: $H"lH"lH"l (O SP L)Q2[DiRViHQ.VDa#]W1/ ni@Y #ni@Y cq\j] tͨ)o Au{6b u{6b|}(~ۉ! , Nb$ Pwx;Rh Pwx;R ,yT7YzGZi] GZiLFZe/xpfS/xpfZȖ ,Ȗ ]eYRxfW6C&ttC&tC&t <C&t 7C&tYea0 A8~ A8~?Rao R0R YJS(S(S(kS(eN $ũlRN< N<SN<LN<Pʻ艀 mי98xNٟY ~ -[ 9 [[VSǾH~ +Zo\ǁu ǁu ǁu 'z~@S\Ǹ u#u  u#u t?t?R2K J{sA[ gܟgܟ+  ?["ߨYDKK- i2 c-˫[ /gҐ?19] ;9G 9G 9GY;Y <Ƨ#`M?=!Ǣ =!Ǣ=!Ǣ>t.?_/ A< A< A< sA<Dn DnZ>DnR6Dn]*DnFt& F5Ol/ Gx'b~L/xS#{n T *RYT *Rj ^[Rb eggQbyi`=hom.9 s*pF  z ud2z uK{\υt}Hioq ,K}Hioq }Hioq ~S#v`SI G I G|\ z79-bW94N+ N+ pGzk|FY aFYte 2F e 2F #cl?fh{ Dn̦o a̦o 5̦o ,0̦o ̦o $̦o (LM  LM m 1Ib $׮ 1 -00 i딛`b  b|r6ej0E0Edrh8I?_ߺ?KjKjT" , * " j=F b XHF S*L/   Lo> e O=?h] Ru U{q"~ U{q"Q$ U{q"D" WJnNv ^m of=r ^m of=rR fd3 f1B= j]2.C, m {7P mq>GX mSfOHs p϶ rO֫ t|܆,w # u, w `Z#] wc1Yy wc1Yy  x\p¶t a  :D 3O„j i:$Z 6,Yө P P , b . &F6 c Zw| gio m jA d?Amgs Ĉ* {lj %M) %ML %M] %M %MZD %M %M %MS %MU %M Ek'N E" 6Ⱥ 6Ⱥ N> j 3n 5@g "eHt AjDWT | DH#_ : {ur ­~bq  6׷{w[j V  M_v fA c h Tv }  ׷? J v&  v&  v&  9% ? ,) o1  n - p/@  xl; xl; xl; $ xl;  Fږ(L Ͷt Ͷ?  W  ,J ! 2s %ga. 9vF. 9|>L? :Tv :Tv :Tv I xWs I xW  RN UKR= WxvpN [x  \ QC \e&Sp gJVR h( h( h( , oX  oXj oXs u ŢR z j za^S `d8 | 1aA Q/ ^ 4{? qBq C M_E< $ 2d  j jj j j ; {x @ [ כ(P s7Ռ Ðs  ] CE ug8 j &v  ܁T , ܁T ܁T 5:U ^ 5:U \ 5:U n :~ :~R ሐL] ]3ėL "s] "s] ^e j OL Wmv ӽ߼P sX BIt  ntYa  #  v Bׅ *  *  ' ' zO? a y$P  f4N Po4 Po4  O r (1K{' (1K{' )ED)Q *m c +^)t +jw .*v 0EO 8Dԝ+ , 8Dԝ+ 8Dԝ+ ( 8Dԝ+ 9XڵuN :޹Ӽt ;p"?fl E N c HޛX ( HޛX  Oc g Obn  Q4Ɋ  RI [s$ `r|(  bj b , b hKEW6  hKEW6  hKEW6: oj ߔ r߄  sbp0 sbp0 v.rb9H v,ﰙ  v,ﰙ  v,ﰙ  xby i }X?BFs ޯz [ `'Wv @-j0 , Q/7 Ͷ;t*t Jڑs QvݠGt / [h / [h] / [h %|r M d' AOoj AOo u׋ u׋ ' O S7v SxR J[c & VX;? ́#<Y ́#< ́#<j ́#< Ϙ 5 䜧  ܯRZW52v ݒ0N\ - = U / L # S  ]  V"T Z3  躧lf  躧lf  %n$J Ѱ F H  gi7&? `u a Br . q7t H @N $:s  ĝ &$rN &$r ),m憛 -.j$ /cu 62} 6&"r 80) A# f' IΤ IΤ IΤK IΤ Iּv R2GO? UTTUsQ UTTUs]" UTTUs UTTUs X] ? `]FOW{ b^o iv)D k{c[. n!IpK pueUk pbQR uT.  wd')FR wfMs5 yYKlY yHظ= \ y y  sڭf 3P% z֜ H$K6 v|E `:_ , WZS <}+L ¬Q%k s .L ӵ6v  { ( ][< i -c$ Q1ϋ =F z>f  !L , l^U- l^+ l^ l^L l^] l^ l^ 2*  8)8 H m~  lr 쮢Ca  a ΋ YA9/9 ?Ij E+g E+gt E+g  E+gb E+g  g's  2C s Ň c 䅶N '_ 5AK 5AS ViR ?ա [w,ö xTW=  xTW=b xTW= y-xv ~,  #nj #n 2 #n , %"0<j %"0<? ,nj/ /|&Q 0s,Wz j 3>u@ 5H= 5H=L Bvʠ Bvʠ \ F;GX  P,*0/ T ) T )D T ) T )R ^<?s `ӽu˿  r  t6 zOizh z;,  }s 7tj 6 )? :f' :f't :f'  Z.K Z. #L #L xds xdh 1uj1B; k kR l9 0œiL k1M,y e k1M,y  {O~B r4j ʆبv _na !'C ~C% QCUҶ i QCUҶ  QCUҶj   - - - 8| j=+v  ׵Ig ׵Ig b߮ b߮M+@ f?K 'A-S=fg=fg ;XMscȅ[F,$ӻ}5'_r 1|15k3 RH~ 3Rq3R03R3R3R3R3HLjg3HL?+3HL 3HL i3ƻK93:G B0Y^Kx+GSKx+GSK3/)@N{)ZZ R[Xs% R[Xs%Y@R[Xs% *RܘCZ^q:k[uܤN^ K-{ ^ K-{g(xg-Y,XUm-mAm-mAo'Z  Wo'Z j o'Z  (o'Z ts؆K {>sBC{Q~| -~| ~| ~%5iLwCf׋٤Ȼ &sJxs\?>Jxs\L~j, l +KN J@ \ #Cr $s?dc2ʖ /WP4kQ v#<v#9v#v#L v#]̅jN*~5q  E\ŅIJ$^Ծe`!0P c_*4ւF|{5*j 2E}匞 [w(T+[̍Qʋ ϶qo No #]_Zby¾ Gs pD&i ,M ڏ [v!}W}W'S #S-Lmr8ۦj rt eR06R$\$\ $%@V%@V-ZHj44s a7)ݎuP 7)ݎuP :b!tA* Dfѕ J&vJ& NT<צ7=NT<צ7=?a֋|$q a֋|$qji^Di^Qx8uI[pC\w$ UNeJ $t{h9)8=;9)8=9)8=~?`kz4x aH4aO1`F}bO1`F}b?}`@2Sɴˮ#ˮ#ˮ#Lq'S 2:> 2:> !`!`_5%}b $Dy14jddCb  $YqaJ.r7}#Ohw?Z Ohw?Z i1Ohw?Z (Ohw?Zt۷ r!MM?ououx!CE1 (6wd6w;6w)?) '17yR)Q>)Q>)Q>4Z)  4Z) 4Z) a7|1:v:vQ[t *:ɞg{V5A~QQ:gu 0Yi #Pc'?[h&r [h&r \[h&r  LMP0bffKI^uTXQ|Zױ3Wӫ,ָ00 ٵ|wK1%ٵ|wK1 ٵ|wK1dٵ|wK1ߜ4(Ĵ׷F?@P{=ۓ{VtK7 xiZM?R솑 $bs7 @Ho BTBTBTBTRBTD R!# ,$ # ,TcOV (,cOV ocȖ  ";!| Q.^jc pR*$  p8 ,)8}8 (-Lh-Lh5dA 7A&>7A&> :A` @@7uBoqE DWڡ HW鷟CHW鷟QHW鷟KՉeL/7kPG#od#WݩWݩDWݩRWݩQXl/].K_ f>?. g~whR1m3w>$mB$mB$pz,˔ p{y`pǶ9驽[u}f^N~c)6!? ޸&t>?2 iۿ ۿ]ۿN<` aN<` sҡDQ$f&Em<f&Em -f&Em ,f&Em ƬVN ƬVR5oj -șH-șH ,G"(*cLv"? NT]dzIL?IL ILs IL PȊ#B Ւsf4=,/x"M?) ΥAz%0դqG" n9Z(}h/H#*] Q ] R ׸ &O_1n *3)l8  6 ,: 67 6 {QYZ SG i" SG iD SG i!zV?d $)er$Z"U%L4NP-!~;_K H&CPK S SS SS񃜱G TkY-)8Y}0Y-)8Y} kk_klcM1S p^+kk vΚ(YQzp/]|nG'Lu \}u2~`x^$] b & D$OnhY' ^+Plv DK aQK H?M ThKaZKaZޚ^ gޚ^ a*ZXmcL ϼ@QrѰ)TѰ)TQQ#ksfXQ1fXQ߃zrh#)Z, 4?׌~M:Y:Y{6Wjks ˄ :zl abc2 )>Ze)>Z -M* \k{ e4%=uR CZ?8ML 9Y`-k!{=e-Y&Ko&Koa+\=qX`,}vj8=3P:8 -;1<1.Y;1<1.t=Uy` >xWNBORW% IDh%z IDh%zIDh%z eP![S@+PS@+ S@+S@+ VkS8 2Y\K^_bH` _R13D(_R13D_rq g?{lNmH6qmH6q$n# p1 ݪNsU \x$.3Zz[Ӌ@ |V#~Y/!vR'#''L\ i::Hq]$C'T= #C0+!Q6erX un&_ .Nܡ }2}R1}Q *R0aH(\R`e 8,̀oÜgUr ~{!~{!a~{!R$~{!Ʌ6) a\07L ̩SޯA̰ qg SҴPbSҴP|KnG$ {hJ(g {hJ(g \l~ {y ɹ?%CH  B1 4 " vx x󑫨 ,f^˖˖˖!? ]7YR7O eN:haSI'#H$1#H$1$dž$YA[d.%w$ '7# ) *UŨ[/NGr/NGr/aL0/aU /a2W3l 9#Z9#CR/oCF6"O=-˃>Wd.WdWdWdWdWdXt4 c aAk3% bl g #3g|4\ i ,i &i ("ii;n *lTZ[XQmbF }m]~X#/Kk!RkwKd8؟ @A6}J B; F*/wAJjl9 -JbiY=/mj}F&st 'tt ' (uؖn5d]ns_*Q<RMxT/%>ߘZ䍇T6EɇjZu|ٲ|jEU xa< C] /wKƛ#+LW!Ys8Xs ؞ e ؞;f?A `R  `(,ל.%X-k26{D5XӇ5XӇ5XӇ5XӇQ5XӇ=>~Z=mCD,=mCDR=mCDG=mCD7=mCD?aH+6oR@H+6oJۺde KhS?OhRePdYkAtRd1"S/d1"d ;m;R#d ;m;ad ;m;f6\ڢ& ia<N n*ytq0 8te+*Suāp R uāp z/ B{_#km  m JYt7 ,ʈfʈf`I( smUd mUdCmUddOof  $JOof  *Oof jOof sOof  (Oof  Oof  i Ԩ=s'qX3Y|Rx|~3 k5N a2 <{CK aK JnkSޘeޘe#2^##d/Ȥ %o6t%o6K&:ͫ( (B9)yg!/@KG0oi!WR 0oi!W +1Y" #1Y"18t3\]g`ڕZ 32N 8Zk$ ;8ss?NJn A3j& #=Kra Kra KraO * Zpv # ZېŽ [["瓯 -[\ i`fE cc?gQ;n(xo [ \ a\t \ u*\+1u*\+ au*\+ u*\+jiR N&tU?pNAh|RVh t (  j N}} *[t]Ek}[+&?s@G(|NG`+8 (V a] y  az dH    fQ)X$twD.C@ b.C@ bK l55Rfl557l55l55  <1=-j /=, $P3K9tP3K9bտs, '72K(kr9(krS(kr) k#)K1T 1Vy*%T20!%c3|%VE 3|%VE (@ezQ CMg^1@DledJ?[j*J צ J9[l? O`.1[w\FP]eũa _ e _fz$ g4'xP0g4'xP;qon9at$ԋqLw/\ʲBhA EʺT? EʺT EʺT (LuLu Mg\l R Mg\l UQ)4{$]Y߆_C_" cg{kf #iMjj/Lcj/udzE# Z}'D% 9Ц:]7T0O ,ţ|RE= RE=pS. \pS.pS.?Z N-9ƈ Fk BGs E`ŵH , Klb%_ L|a:R S8"Pv  UpآRj UC ]_݊ 4  a‹zz a‹zzd a‹zz l q`j}v rm֏we x ; L*'4 >. . 015̳  M' M HHH? !L aq` aq`  aq` $ aq` , aq`  ; &NtN &N5 &N  &N  ЊV a 5 5 X[{N X 3us w9 X ;S ha \ ha  hah 2? R  *f  ‘n|v ^h>Rl ^h>U ƧYZGK tB'8A M C  o>t ۛ Q:f }- ]5t + C?ݾAt L tU . oK? ~۔]!ni& !n!n(!n!n!Bar!drRW!E7#t! ]t! bUU"!'RiVCt!'RiVCt!@ k !@ s!@ !@ t![!{Ŏ!' psc!'VW!'frj!-a@bT !-ωN|!/۩S!1E !1EF!93,L!:)e!:)ej !:)e !>$ ,!?o!AUoަD!D| !Hi3> $!LtejM i!S{k![[9C;kj!^8 !^8 !h^? a!kdN!nmӤ4 *!nmӤ4!rz;s!y  !z?|i !{ Oa!|%YS!|%YS !|/W6 !hE|!XT \!6鋵 !8ek !D5R! Xw (![n0!tWB0(!ndQ,j!]iub $!]iub s!`R !`!c-!0^_ ?!߼[!XF> !|<>!k!$B,!$B {!$Bk!$BY!$B !Y*B !ȼҏt!e&#!v!h|MЇh!2?%L!Pm !0N!Ԣ` !É!,=ǒh$!E-g (!/n!/nR.!/n!/n! ‹C ! ‹Ct"RYt"}6" a#fY $"I񡗯D")"fH]ҡB "fH]ҡ"9j"9 "#lv"%]|r">|r"S#: i";Jmb "^ "ݡ| ("AC"A "AR"ɔW;? "3":1R":1 ":1 g":٨k"hr"T״V"T״s"xp"R Q"RR"R&"R"ˁ"ˁ"ln?"~a{"h2C"K"CP<"bu?"bu i"DlY"᪛=P\s"U&h"2"! ("p!";1j"7"*? "7"* "7"*"c'4 #@Z{L#+8 #³N # nf#l1s#O_u#ɲ\?v#.@/mt#.@/m#.@/m #.@/m i#YMR%#YMR% ,#YMR%#!&*+##HmؒK ##Hmؒ##],##]##]#(gz#(gzQ#(gzY#/\&&HN#:p#;?;6 #@&S#AO[e#Fe{?#KTv#L$t|#T?7ɻN#[mꭌQ#\Cxn #\Cxn ( #\Cxn #\Cxn ,#]M=~#]5o/f#fQ05#tsC#wh@ #xs'#xsK#z̞#$r%&R #ACz#hk8 #;kõ#Zd1 #Zd1#h# os#,-!ys#'&z#[ p # -K#Zg.N#Zg.RG#Zg./#Zg.#Zg. #wTk1 #wTk1 #6,n'PR#=Kk#K#W' h#} Z#k;#t4Y4 #1#1 #XoT#HGޕ ,#HGޕ#pޑR#u.S#u.Se#u.SD#u.S#, M*N#3+#GB#]J/xut#ǘ?F#ǘ $#ǘs#AJUL$0"$Dom $D$$;Ó?$#:e $#:eQ $#:eD$%

    R$E>FS$E>FS$Iu丼E$J&wq ,$Roh֬$Vl$WluKR$_>H $d)47vN$fiUT$g$R$i$i${.$f@@y&$Ԧ$%$Ԧ#$ghD$$ghDS$ůW$)k $z$az $$az $az$D@ a$D@$D@ ($/B#&v$-v}jN$m/3$m/3*$MG[# $MG[$ $#]] a$#]]t$4k^$u df?$^U1$}÷L$}÷$ڂqL$ڂqa$Bv$%&"% t%M^]0 %M^]0 %֧6 (hG%֧6 (hG %U25?4%%Me|q ,%ZU|&' &l&JԸe[9&("&(&(U&(&&1D[z&'e&'/&r kL&xKL&ĈR&g8ާV&3M &e|hH&u#&Gq&!8&&5" &T_&ȄWIR&ۡj# \&ۡj# &ۡj# &3.`? &3.`? &ܼ;^E_?&w).?&+I+&>С$ &>С&>С&`;&$')?&(9:&&(9:D'|9pK' jTt'rH'aZ.O|'aZ.O2'aZ.O/'aZ.O'aZ.O 'EV 2'EV ,%'EV 'EV'EV']yU']y' '%T ,''J] _'+:b :'+:b :R'+:b :'+:!X',TkwQa 15',TkwQa ',TkwQa ',' '/QUiD'3"֢N'87-x ': ': ';I6QO 'B(L'Ez~7 c'TEGŐ'TEGŐ "'TEGŐ 'TEGŐ'TEGŐt 'TEGŐs'T̛3v $'T̛3v'X\)# 'akFP'ln 'u#CNf 'x@rS'x@r$'~F^;'~"餖'~"餖N'[~ c''<n'em8h'em8h'em8h 'em8h'aߨj')u@ ,'? '&и'}'C/ j'RBr)c['8%m_v<'m Mi'[Ij'`oks'pRCa6's@ 'Ƣ/d1K'ƴhVVcBk'Y '҃腆'+^R'N$p?t'F6i ,'F6is'.roU'@\H?'m'8:Gs'u* 'u*'kF(n{" c:(l埭l #(bw (9 $(2" (maas(!sVM 12(!sVMY(!sVM (!sVM ()9_()3v(*h+,_SC(**݊(<=2(=~A(DY"(J iʔY(J iʔ(PW{ (Vi gz (Vi gzd (Vi gz(_ 07 (_ 07 (_ 07t(`mL(a,H]_ (a@L$(bX2} )8Z滚ڑ)8Z滚ڑ)8Z滚ڑ):41y? ):41y):41y )W.}R)W.})Xз@x)Y v" )ZQ8$q)ZQ8$q)`B,wS)`|%(G)e Uh)e Uh )g3 ,)gE))hO}j)o>,*)q(h>)q(h>)r&)uu]*KyR )uu]*Ky)|_gS+v);N)-^?")>q;)>q;)}R )}):*K)/Xf?)O1()4Z8)4Z8)Wt-HQ)aФf )o6*d)o6*)-))h) ~7)$+Dv)nO`;N)nO`;)-Xۺ)Csx )Csx ) X)S^v)?3K)@W+ HTN)%KUF8)%KUF8)ΰԻ $)C)C )ӄ?k)َF)-KL)QG?)?+KS*zWw ,*zWw *) I;* Dj*g՛S*i J#*i J*X'sL* sצj** sצs*""R*$^Z~xOB?*)EnC7N *+>X (*+wսR*7գ2t*;Z2TV*;Z2TV #*>(շ *@ *FOt|*|*Kg*M'RXKs *M'RXK *P 67*_ͰW*_ͰW*fԮ. $*py.:s *py.:*z ן a*{(${G*T9< *T9< j*t|*6FZ*Tˊ3/0K*q ,*t{To*t{To*2NMI *>Q*^8DX8 ,*du["M*ӏ-*L#*Nh*N *o.*m*1a*nKz** *6R *qӕPQ *X=eIt *m`*E> *aVDZ *aVD *@VR*koh> a*P ?+Z?! +|/Zoy+ćR +Dhis?+ Q8{R+2+ss+'W~I2R+*Q +-$^ +1/ j+8#R1 "+>5+P, +V8+V8 ,+V8 +[)G Y+^zWgR+_Ms*@6+h+] +iFcV. +j %eG+j %e+tV+ +tV++u#Z+w CQ+x>/= +x>/=d+RD #+&=$+zXtt+!( $+N$+Hʍ:+~F (+S:'R+uA +o9?+z8?+]+]  c+6S+oj+Es+' -+Aj+۹7xx +( +~ f?+jcR+OT}6t +'U+t,}|+c2vN+zQ +~++Ubt+ `I +M +M +$r*x ,[:,t4 3, 89( a, 89(? , 89( ,a| ,,a|,(.Wf2,)* _,. f j,6J":x,,^S #,^S;,(ZZ ,؊8mM|,œ 3 r,!W,C,T,Lwl,Lwl,oS ,oS? ,oS ,Me ,»[ ,»[ ,[v\, K% , K%- r%\,*- `C-n7-.hQ -.hQ-.hQ -.hQ-9WR-@߼--#p-)- գ#xQ - գ#x-/bf-4=?sRDO-5N-8aJ?-8aJ Z-8aJ -:|yY`u->}ap i-@eu]-@۽i -HiA[!-I3"cR-Idq[ -M -MR-N._ K -N._  -N._ -O>!Kv-SvѷD-U; -WO-WO-X -X띄S-\QTg s-] S -]! -eFt-fp=k-f( (-f]%s-i? -iĬ-j5 -j׺2a L-j׺2a Q-j׺2a Y-l+WPv-lp -lpY-n]՜-oT)VQ[-w;0-w;-w;-xpl\sL-{ }-|1{Q(h-|E_@q-|E_@q -}⳥ls -1:-{|qj-e (-e -l' -C];K -s s-a'q%-u~t`-J m-Juf-5c} -% -%-F7 -F7?-Gޭm->ik-2(*v-݇#s%-݇#-ؕi  .-6N?-$2W[-z>06 - # -šR - U- U-2uk-6c.G .V .fCdb .^x.S0./憌Pv.u Z^ .uw .uw e.uw .uw . ?.)q6.) {=.6.:ed.L L.N*th .TDO c.V`j.XISdR.]Fb?._I 8].ch%*7.fYX.g; ,.gAxh .m#.p/V7ő.p/V7ő.qB-pH ,.uI|.z$ 2X .z$ 2X .{b @+.}/+.}/+.}/+ i.t n.Mq j.Hf .Hf.qj9!.C@ |.5]F .5]F .2.I#I: .QY.t.tS.t]. b*x. b*x.6Uf.z$&b.z$& g.`j:.`j.c& Ėd.c& Ė.ȒjdMUN.jA;9?.ă⇟{?.͔hٗd .͔hٗ.͔hٗ.͔hٗK.o ^.AQK.7).ژ[ .68[P .zR@Bz.׸ML.GEN .MDR.aP.zr .0j{ .O{ #.b&Sa.b&S.b&Sf.Kg}6s /s /t/ 1fKb2D/3NL/42~ /42~/42~S/&@zdV/7k;P/!3ݪ4b|/&.?l/&./2S2/3C:Z />e8Z/@Jѝ\R /C?Jg r/ES2!J/E ?/L /iT /jkgos /jkgosN/jkgosQ/r/x3P/x3P/01v/A# '/A# /A#t/G(Ҹ?/QG (/tlZB/ V>1?/xE}/xE}t/xE}s/'ţ /'ţ/C L/xجV/ٶ9/]SvN/]SvNj/˅BQ /= /= /=t/=Y/΢եOK/ԅ9ev/"%aG (/u$ \/̧? /TFkS/TFk /:5h /:5s/:5 /፮6,/=s/Go%?/f4' /f4'/2j? /2j03 ;?03 ; 03 ; 0_m 0 PwoU0 8m 0 ]"]0=Tѱ 0Jz 0 96t0 96 0 96 0o^j0o^0mg ,0fL0M.10M.R0[]S?0>[]S0?bѻBm0A+4wm0A]G,yj0In7W1S0P@ǩ 0QET.S 0RwWK 0TVb^U0W,99f0gv"v0hozR0hD"py 0my&DN"0r:0r: a0uh;d0~>M0)ʪa0.iϣ0t՞Rt0t՞R i0,҂' m0240eҞ"0eҞK0eҞR0E0W'-0%h~n0iUC0gǾ0WI ,0WI0DpmOb0q'g 00;I= 00;I=s0<2j 0t0ݛpk0˚ozxRt0ȉR~i0ϡ#`]N0ϱҘyRR0ҬKzV0?F50{#w 0Rׇa0n0(WR0q&m05b kR0M#N0}^*k0~y v0+V94t0+V94 0\wuP 0dݮ 0dݮ (0zN1]R!1SI, 1?1 &d1h %s1K^ 13[e2N14X0N19iq1:(-?v1=s7ÕR?1=s7Õ1BzbhQyK1C[yON1Dz[1N=mR.1Q#* 1R&J%1RŠĜR1U.?y a1`m-1`m- 1cv~?1dk ]v01k?1}@'g{,1~F ^1~F i1~F 1}1go;Z1&es1eR1qZɗ1{↽R1,C1y61 I/J1ݫt1l%Ct1X<1.c 1"s 1'Q1ew 1*){1?~ 1?~1at,s1at,?1wvUυ0R1)z 31C8ꎖ N1UnՌ &1UnՌ 1B[R1B[ 1Şw0Zs1K)v1Vndm| a1ʠ ? 1ʠ 1R鎜bZ1҅zk1 1c?ER1I 1٥"v -1KcR1㫩ͅS1pN1Pl:7 n1#^)1ls1Y?2>3Q2^KҚ?2_r2f% 2#ƈdx i2$&{JQ2%/8*f!2*srv2-#.2-#K 2-#2-#21>kt02;`,߼I2==o s2?m2A"Nhx2A"Nhx2A"Nhx2Gs%t2I G2KTwR_t2Mތt2N4FD2NP&ٳcR2Szmޝ42Z%b.?2Z%b.2[id@]} 2[id@]}?2\I=2]=vR"x2_~Ygwv 2cU)` 2f&A@ .2i"V: 2i Z2mlۋF12n2"2qQv2|a2N&2y $2#3H>Z3Q XRC3Vt% 3e\3hs-^TA (3j/!zj3q 4 3q 43rN¥ 3r4f 3xm+v 3yh3yh3z3{f3|Q3~HE30 ( 3|`3 (3! 3ĴU3?3v!]3v!3L iY3)S3IG+3ibiR 3Ogl 3IeR3Cv^3y e3yj3s&'2S3n30pAN3h_+3sr锳13iGVR3>a 3{L[3ĢM@QN3:(5 3rƇtg9? 3eL3@1 %3@1 3@1 3ҪF"3ҪF"3z 3޲uq?3Y3#l?*s3S3m?3ˠ3kVk3ˠ3kVs3˗'? 3C\i 4 =4nSlQZ4B%d a4B%d s4 ?.uC24KM484nݜ 4q?lF4Wqh 4ڮՔ4ڮՔ 4ڮՔQ4h 5eK4#Ì4#Ì4#w_ .4&r=4(xRR4-;h4.r9Z47%m1H47%m1%47%m147%m1]47%m1a4>0wv 4?͘&4F15 4Mv%4OƇu[4T t@_ 4T t@_4UYZ 4{\T[[4C]f24m`qd4͒䔄O4͒䔄 4͒䔄4vIx4(- 4M;4yo4̽(4̽4ō~v44 4u 4Ο74k4Ͻ}4}BP c 4t 44t 24t 4t 4t 4t i4t j4'liR4m.j4m.4m. (4m.4%~4%~L4-l[4霭 46L)48 45v< ,4j4qpd 4*aU 4ݲ',a 4ݲ',a5GީP5Gީ5Gީ5n>5V=5V=5=h^,%5=h^,5=h^,5 #44F 5|Rm5p^?5\Iy$K54Wzy5~95~95j 5j5<߽?5)aN)5)aN)5.I,j51S: Z51S: S56^Zyt59`NF 59伧 v5:G5=FPr L5D.D 5IPP ( 5J-y(5NIW$Y5NIW$5Oo:pT+5Oo:pT 5Oo:pT5Oo:pT5PL0G 5PL0GR5R&d;5Rm. 5Rm. 5SR0s5Vrc"L5Y;5[2f5]"%UO 5]"%UO5]"%UO5y> 5}! k5= 5@WM i 5@WM5@WM a5@WMj5sNOKL5sNOK ,5sNOK 5sNOK5|55Sm.5L 5ΞZ 5y5= a 5 qF5`Է a5#me[5^y53AFQ59ြc6 5 +8j5ltho5ltho| 5Q-Bc5;Q@NU5{5L7\:[5-ql5"PQ54c 54c t5ٙs5X 5X (5X?6)EUN6:$_? 6IX6IX6 Qqsx #6A_t6E˜Y6M֔DB 6Mgj $6NV7 a6Q^Ȋh6Q0pL6Y}/ a6_V*~6`##6c9(Z6eP \6k>Xy>Q6k>Xy>6x2GϠ!?6y n96{DK+i l6~d 6&pS6&pa6&p 6&pd6_/7Z 6R $6 j6WS@S{ 6_`6_`N6<= 6ύ瓱6/3 $$6/36/3 e6/3 6]$nv6( 6m9|6~3 \6BQ`;Q6 o86P1U 6P1U6mI)6ߞ͈3268׵66ݳRf6^TN6L\$' a6U|P6ތP[6shw96}Pp6}Pp6}Pp6LW g6LW 6/v7 i77P7t<7@ht 7µd{j76>s( a76>s( 7?üj7"KL7 (yf7 (yf7@`n ;7%##t@7){|C 73Z` s76* c>7<.τR7<.τL7G u 7G u 7I A7J:=x27h‹V6N@7n{? 7n{7s: 7ta6j7ta6 ,7utǩR 7wHY 7x`<j7x`<?7xʦ7xʦY7~@0< 7~]*7t]V7~]*7tR7~]*7t.7~]*7t#7~]*7t7~]*7tL 7~]*7tU7~]*7t7?bD7J&?7,Ck7bʾ& 79؎b7c 7Z87ʉi!7a.:k7B7Ֆ ,7 !t 7g7g7gR7:ok7)1?7tK7E,47j )7j (7jj7j 7j a7jt7js7p7p 7JyE i7JyE e7!^` Lv7kH7Â7ijTc 7ijTcj7ijTc?7 K 7[R 7ۻwu5.7;?}>7潬ޥR!7潬ޥ7潬ޥ76= 7 ( ns7a< 7P7p 7!L7v tL8]# 8]#8e?8ԣZ8 :s47k8 j1 8 j1 86Ee8<#j8j=HR8"\8%P'd8%P'd8&T{t8&6W@87s/j8AD m# #8HGa6 8JIjR8LR1$8Nkas8Nka 8X3Dv2e 8Z7dL8[}8d?8gtZP_8r ?8tBZ 8tBa 8z'l$8zȭ|8~õ|N8~õ|R88-[ 8@=?8@= 8 گL8тz0b8b8Nv8#,;qR861Q8NY^8JhH8JhH -8JhH (8EI8h?(A 8a׿kj8ކI\h ,8`2t8`2t8wF=8篫eo: [8v?8vb8vh 8v8{=(8A38A38ALQ}k8ALQ}ks8ALQ}k e8"I/8;vW|R8;vW|8ӕ^ 8ӕ^L 8ӕ^8ӕ^U8D : 9MPb9D9Bԡ"N-9Bԡ"9Bԡ"9's9r++ 9vmg? 9c)v?9c)v \9`>L9G))(N9G))(N e9 [K9!fR ,9!Lߥc9#Z\XN 9&"i?9)TfA?9*=֙-L9-}QYL9. yC9. yC95$QA g95$QA $95$QA 96Os i9;BkM9I4UB#9Jȫ#X9K% .9Px)I ,9R{x2R9Tj|B~D9W"4ИG59W"4ИG9YS bj9ZE 9\ߊDj9\ߊD 9]V{7:D 9aqR- 9b%9b%9eK g? 9r&!9v$S9 9v_^/N9}k28 ,9}C Cg9$ޣr9#o79+L&pQ9+L&p 9r > i9KNB-F9KNB- 9KNB-9Z 9ɽv9 IS9]lD9]l 9qP> -9qP>9ڕZ9Td9{vR9`PH \s9鲚HY9/KjH9灡0 9ܰ?9s 92ێ9('N9(' 9&a|k #9ͭ'_9пRr$R 9Ӌ`u s9ڀՈ. 9ڀՈ.R9ozCN (9@9MG5 9\^Z9$9- ς< 9t9B8q ,9uL9sSփZ:Xi(D$: I): I): A : p;) : XcP: ZD :X44@ :X44@:Ĝ :sw l:,!S:,;;)j:00%b:5KcW:5KcW \:5CJ|R::)R c::)R #:><$:><:><R:?fz ^:Fk({G iT:Fk({G \&:Fk({Gs:H?Rb:OaIV=:Olމ}j:Q_0 (:TJbf:TJbf:Z8K}^:[SBӧ.:[zFz1 :i]#XK:j?3Uv:l 2 F:ll71:ll71:ze5|:fhk:fh i :fht:Rs:k:{Zt- \:A:kowYb:::: : 454 \:$y:ޭTT:`.VD:Wlt:}g :_PYl:_{ӇR:O ,:T> C#:‚W8 :RmN:c9(r 2:˅Wl $ :c:} Q:k?:>6$#:>6$$:*aI:"3;m(*;ހ^;2 a';JS ; B5; 2u(PR;lBiP; '; ;o7m;dAy ;-Hc ;0/ ;; #kZ; ¿MY; ¿MY;.Iq  ;;lXǔH ;;lXǔH ;;lXǔH ,;@`At;GmZ ;G,ɲ;Kň q];WJ;t $ ;YeW*;b O;bM4#UilL;bM4#Uil;c#%TMS ;c#%TM_;q -;q -;rR;z 5 ;}#0 ;} j&;} ;9 ;djY$8d;djY$8 ;djY$8 ;~RgK";rH;:#LR;VN;<T;3 ;3 ;|ΎXv;R~;(6 ; ڄ;Q;[KP;[K ;[K *;s_H;>I|;锾4;\; ;zG#^K;oR ;NZ ;K h_ Q; ] ;笗 v c;GDy ;OIt;Ckv7K ;nn$ (<S0 <Q <Q \<DᓷC<Dᓷ<<isz<6KmX<6Km[<_* <̦e $<̦e <Q#SI<Q#SI<Q#SI<Pk<Us<*q<23<*.H{ (<+O8j<, y&<- Ÿ/(<- Ÿ/ <- Ÿ/ <- Ÿ/<- Ÿ/Q<0GxM?<0GxMj<0 ,<0 <1<ΖӾ<1<ΖӾh <<գ.8'<6J<2<#bRm<#b<#bV<#bQ a \=#&=& 'm5=mLo5K=@XG=@XG=YӻN=q! $=ڠC(=>Hg(?=(RYR=)N}`Z =*^ =..\j- !=1FLE=<%`?=<%` \=<%` g=> #=?).G/ =@w$ s=E?ޕg=I  N=RY=R JS=Sj?=Vټ>=XB4iv=[!(e֌?=[2v =\i`k` =\i`k` (=^׊p6=^>p=_AN =_AN =bLa =bLa=g&bEV]=g&bEV=iQN1L=mYeu ,=s U- =w6՛K={(ӟ"K={usL=V3js=V3j =ۢj=&^ 7  >#>>cv[ >ͳ>!r|>(A/: (>)+Jd>)+JR>1Boj>4 >4 >4 >4Y>7i?g>7i?g>=nn~^/ >A =p>Gԏ3>JL.|? >JkLt>JkLt>L/b{>L쩱Ͻ />NQ>TQz07 >W7k>\T >` 6c$>av/ #>jRas >jRa>mT-. a>Pnxt>Pnx m>~&?>7R>߽@[ #> +-> +- > +->Rq}!>·bD[>08 >{& >zX>e'>~S>~>&Rd>By >Zzaz=>Zzazt7>ZzazY>O)"?>ϕEul >ϕEulZ >ϕEul>e5 9>e5  >ҟ;T >ރ7K7>lO2 a>lO2 >,iOZK>N:ϝQ6 >][F - >/\Β>/\Β>p >=)> 8-? >Em B>! y;?R*VP?sc ? HiӻG? {? {K? ~Y? D2V?? D2V ?8d36S?"LKk?# @ ?&xem g?16Xq  ?4[?Id\ #?J*5IN?R)^*"#?R)^*"?h$ҞU{ ?nCr'x?uhNq b7?uhNq b ?|N?|R?}a/(?~71<?~/bN?~/bN e?~yehj?J`go??R?-NL-?-NL$?\噿?CD?x$R?`ťg?$?KK?n+?N ? o*? oZ?Cs݊ ?ytʓ?2aK?D/G c?SN f?\!,s ?U SW? ?. K?\oh{ ?\oh{?t2>Y?δǽ?yXL?`'3 ?`'3 ?RNd`?-GmH]?-GmHU?(ts?!l?a# ?Ea[??￯?/zcp ?Y?h?Y?h?i6?pF?@k@ gXR@ gXK@틊" @&k@r{v@ '@YL@T/@bH+v @bH+vK@!98~@!98~#@,n=ea@,n=ed@/6GZ @3[!FO?@8CM|@=yƆ@A7 (@B˳@F.f #@KT RR@M/ @RϽ@TJ @]*?@`v{RQ@`v{@`v{@`v{Q@xq@ c@~LHR ,'@|JO7o4@|JO7oQ@|JO7o@ݒ$ ,@:ÌN@ 4 @'Ӓ:W@'Ӓ:f@'Ӓ:@ z.@YD@b,v@U!@@0D8iZ@ @d \@#|!% @4s`@M|Y @A@RE?ڋ s@ >m@%l•m # @cfgT@cfg@cfg@/J@/J@@ @Ծ_^\@q^`^-N@,<7 @,<7 @XV2vj@[ eR@e@_o@ #@R ,8@QTg @>~Iw @=ApAQPĦEAQPĦEZA lh Am-zAK[*KbAK[*KjAK[*K A{b8A{%A{YADAAAI7x A'U* RA/LWѦA8U A8;M A92*W~A@Ɣ.JY A@Ɣ.JAB hAPdAV?;>mY -AV?;>mYAX,PJ8 AY|6? A_ţ oAa^vvAi 7xZ Ak4 ,Ap% k Ap% kAs)AAvD|#AT?MAiկ Aiկ A1` A!t`* A A- lA7adA7ad]A?A4|گvA4|گ #A9 $A)* # AǹpLAǹpSA'[G iA[CsAd횯{Afl?ATȠc]A)Aa, AW#n AW#nAЕê0A/2Fd A[2f AL )Ao߶6Ag1oA& Cș9հ>&tC}p!l iC{n CЛe3 Cַ@T! C(8HE IC^`SC^`S C^`S Cۧ,ع1Cۧ,ع!Cۧ,عCۧ,عC@J!WCV"SCV"K CV"RCDkCp8mvD#x<UD#x<D#x<KDw|' DyaZ4D D=Hh/KDsH &D0@dD$ 0[D39yED5 >?0D9'1 ,D:@D:@D;A@.DAR DEKU0 ?D]uBPJ , Da2cTDa2cT $Da2cT Da2cT DeYf;DfPs~3 DfPs~3QDfPs~3CDk sDl~Dm 1 $Dt*n Dt*n Dv{ o3v Dv{ o3 DwnT*f DwnT*fsDwnT*fD{\k,6D{$wF D|z=2D|z=2Dn8% $D)l+Dl2cD/NiDGR/DGDGDG`D.1 ,D4DA;vADt%$#D5DtDsDDjD aDv2pvDU͡ DsxbkDSٛ D8ZD. D. D ND NtD N D4}zD4}z cDݵ$9NDIHfU D'EɾDeȂ& Dύ_s; #D3ڰbDЀvc DڝTRYT?D܆ugqsD܆ugq D[ D8qlDP-C a D(/avSD[Np]D$C+[9D$C+Dn+>vE}> E}>Eꄴ` E)՗QEfފE}gfEyɰDE: )+ :E: )+ \Ey9 Ey9 4Ey9 Ey9 EJ >E^M EU܏*LEATE—RE$̵E$!k E(N W aE7;F3?E=vIEGL#?EGL#EL#"S_EO EO  EQZ EQZ aEQZ tET!E璥 $ ET!E璥EW < E[Ũv E[Ũv ,E[ŨvEnoKnXEpI,kEtcflE|3~iE}1jE%O> E%JsjEr0 iEr0 Er0  Er0 jEr0 Er0 Eף\LEe^{NE:y E.?E E.?E E.?EE[{RE2 bEd&- ES E[C?j:E[C?E[C?Ei0D.A sEȭ+ Eȭ+E;lE} KEh'E|bm E"yxE"yx E"yxE"yx E"iEcvb E@j>?E@j>R Eiʀf!E t.@KEb Eb E"XEa0 " E4m E4m (EOY|E7J7 rF= F"]r^F6w vFrF }SM F }SMjFc FcPFcFS.2fK F!A>1 F!A>1[F,KF,KF-HpxuvF7]N @RF;2F;(AF; F; F;F;Q&F;]F;RF;YF;F@OY+?F@OY+ (FB{W_OFGBx#FGBx#FIiـFW` .FZGJFj B \FlGe"FnFq?4 $Fu x FvRF1K[sFDU ,FJBsF}.VF}.VFGŞF f@~ F f@~FSjF_BF_BFXUF1C iF$66sFr4>HTRFGF33|F7B F^nѕF֎q-i %F>:) F(N FYP+vFYP+ FYP+ FXOO FF|7sFF|7jF RF^o8r(Ftsb,Ftsb F: NDF: NF'F`,0 F99bx #G4nDGC+5~aGaF8RG# GI+oO|G 2E VG!hGY@}sGbS#nGbS#nGgM.jN GgM.jG!H> G# s3G'D@ZN G.7 7GV( iG/tC'G;8ƊY G;8Ɗ G;8ƊQG>0GBS>@FGCgcGCgcGLu(sNGN/ݴ?FGN{R}GN{RRGP|`A# GQۛ}sOGQۛ}kGQ0#( | GTjfGUYc rGXe^\ GXe^\ (G\>+L7NG^y Gbm4GcQ/fGl.\.% $Gn!'R?GqǓ8M)Gx(I[  G{7.|kvGX GvaIaGS4VG · G$cG 8t- G?G[ G̑PGOG]HjG/w cG t_@aG t_@ G6ZG6ZLGʸGʸjG{x 'Gk -Gk e Gk?Gk Gk G0`J G0`J?G0`JhG0`JsGamnGlx| G G㯏^E G㯏^E G㯏^EY G㯏^E G㯏^E iG㯏^E eGwQԥGȢJHNH:AREH22`p H22`pH ytHKZhHW#^?H%hFHmzHTwH,uiNH2 @yXH5[bZH6Rf (H74${k eH?1HF . HXk_? HZ80HZ80HZ(7 ^ H\wFPHeU+:q aHeU+:qjHh)+%Hm,`\Ho.tHp>oØRHrƁ[ $Ht'oGHt'oGRHt'oGH{MŔ #H}? 7H}? 7Hs ֺ۹HI,_t HI,_ (H[ HVGc,NHVGc,Hi%_)uIfHi%_)uIKH5mP HbVn #HbVn cH⁒ H⁒ H#M KvH#M D\H#M YYH#M H#M H#M Hr $H|@-?H|@- H|@- HܕA=HܕAQ HܕA HܕA HgBkH/J:v?HɔHɔH_&5#Hل= Hل= \HHCH\r H,cl stH"p# $H"p# Hw-9#H=YH|H]aH2t¡ jHFwxU H,gѭ *Ii50 Ii50 $8Ii50 , ID III9I t9Iˏv8 +IdD #I?^Iy)G*UI( I\ubIi:tI'ڈ I+Nsn&I+P9I.fU.I3P; IB^N IB'jIG]Xz II,nyIMh|IS7PxRI[2| I\~GBIYI\~GBIsI]44?I]44sI]44 aIcyRIe`xRIiq~vt Iiq~v Ij Iy7a SIy$:I@ iFIs3It2I-n.I3L;Y Ih Pb I-tYI-tIǦIǦIO*bIO*b eIC Ib~ It`I0Z) I~ItÇ| I6lq! I6lq!-I֪([IHIH I+\I{ I:NIX2.VNIݫq(]I`C I4U Iij9IN I=3 IajIٳ-ԟU IgXJPC IAۧ% I LU`I LUI LUI LUI LUI3+"T$ICࠍI5Iv\y ,Iv\y IpFbJ 1@pJ.O Z JgzLJ, J ބ?BJ%㶊J&?Dm J&?Dm?J(~=J,{J2ZEJ4\J6ĬaJM? cJN(ܜj Jfl Jf* UJk[ JpuJtyof (JxDUʵJz?J~f̓ jJ=JUuNJOp UJ?w0 ,J?w0 FJ?w0 J?w0 iJ?w0 BJ?w0 J<Ɖ*vJcߴ JcߴRJhJS \JSjJjfo J/8YJ"ȣ#'Jƶg_tBJ.[JТS,~ JZɥY JZɥYJ1>HJm J߫[J߫[" J,KksJW ,-JW (JL6 JKdA?J'" JԖy JԖyJf+8$J! vJqfE9J tG- Ku"dK +YK t|W KfɃKfɃKP%[Kig ,Kvr (KvrxKvr 9KvrbKvr Kvr e KvrKvr KrM{-KTQZK#-' Km1DKm1KK bʿK!ɨCRK%x>K%g򿋮K']\+K(YYl_ ,K3<ݙ4K8/٩?K>s# #K@FE~KsK@FE~K?KA]B?KCDڏxKMu hdaKQ#sKY{(?KY{(?K`Pܱ:K`DKdEn'CKeƫ Kj5`&C KrlA< Ks*{5 Ks G[sKzyI KzE"\KzE"\ K ~*h9K ~*UK ~*iK ~*K ~*RKC&K3C\u Ke{(K`pKp*KKCƕ]\S K Ke Ky[?KOLKx/69K? K?K'j KbPKd*8KÁw:KmW:KKUtK/Žf K"{K8Z= K$zK(YROVKR"iE. ,K! {(H $KLNKڴe.4 K戕_ KgDG)KgDGK+#w?K+#w iK_3^ $ K_3^ K_3^ K_3^ K- cK??d L T-^. , L3 L[DLYR $LYR LYR  L",u?L.s(`L.sa_L/YD L/YD L3~V^ L3~V^DL4Z|V-L:o ZF L;[4L]S:L>8X L>8XLAq?LErID LG\LHYd[ aLIg5" LMBfaSLMBfaZ LP j@LP (LQJ~?LZRusL^Sτ3Lc6-vLc6-Ll/"]Lm* Lz8PŸLOY1L&'\_ L;LjxLK LN}< iLN}< (LLs. LΛ?LUZ j LUZ jL`Q!1 LO L#&x5M]Lz?L(wR`gLjLjSLjL .wcLe[L{ tpL1~.LLsIL τ:LӜ[4L ^L ^LCLCYLWyp Lό LT{LUrg]LUrg$L1HP› L} [LtaLtLMV!R M E͂ "M \ vM4+QMp}TM; ,M Mɂ2MN# $M.MҡM lDMPC M lDMPM4o N?ivN+=YN+= sN御`[p Nqm[sN?OvL N6Y~ (NX;8NoojNYde#N Ndr_:OWѸIO+NO hIOƳ~QOӖ8)ROFgaO!O!-O# UO'o O'o O)l6;O/hnw  O1438|=O1438|OLw]`vOM+x3= OM+x3=OQyNOOToB ,OV5DVOX DбOh7֕?Oi~;Ol*N㉱ $Ol*N㉱ Ol*N㉱Ol*N㉱sOz-~LOz-~O{1gR O~YO|}0yYO|}0yO|}0y,O|}0yjO|}0yt OqCX*OqCX*OqCX*OqCX*O99 7Oj j ObĻ2 O~Ev O%o5O%o O%o iOYLL OēO }q OVBu2&O0тOLOe%` Or!?+OeO?OLw[-vSOwR%O־ UOڈ) !OܬѢOܬѢOU^NtOފ:sOdFz #OV/\OW/SvO/nO/nO! \O~YOXPO@ O@S O@LO `RP[W+, P /MP?U%P?U $ P?UsP?UjPE!P>a P>a P3'P{IKP{I$P{IRP{I#P{IUP3I P b Ph< wP 7n"IWLP&b秃 !P-:(،9P.C2XvP. UNP4[oڅ (P4[oڅj P4[oڅtP6<vP7 P7P:x5Rm P=mn0W?P=mn0WPD=٬PEzE PO#Zt 9PP R^[PPVQPU6nUP\j\>OP\j\>tKP\j\>Y0P\j\>sP\j\> P\j\> P]z PauhuPPbTE@PbstPg$V Pho_PiQv)r?Pvt/~5)Pyh 1Pyh aPYGC2Æ PGQ PGQDPʷPQkwDP|Piz PIs\sP;!ѽĝkVP;!ѽĝ P=8e-[ P_#P_#Pf볙jtP_ƺ P_ƺP*09KP< M$Pƍx:P<:5 P<:5 ^P<:5 P<:5 P<:5 P<:5sP<:5hP<:5jP3&PYTr #P:^Q P:^DP:^PJ01YP:5ź?PvPdsP} PkM WPwj@sPwj@Q skEsQ(zJ QQHKWt-Q.sQ!A -Q!}#Q$7M^Q$7M^Q'1&N"Q.e죵RQ.e죵dQ/{֑cQ/{֑L]Q/{֑SIQ/{֑"Q/{֑Q/{֑ Q/{֑Q/{֑Q0$A J} Q1o?Q<I #QHzDO QQD*T+D QR33v QR QT@$~QT39 aQ\Sɪ ,Q\Sɪj Q\Sɪ $ Q\Sɪ iQ\Sɪ (Q\Sɪ Q]gv? QansQcQ&r.Qm]t Qm]tj Qm]tQvjRi] QxE9?Qz(SQ| @Q}⨧aTC Q}⨧aTQ}⨧aTQ']Qի|9 QIz0 tQ8TQQ񾔆 Q6T^Q\MtQK6SQQ}QdkQPFc ,Qc3 ,Qc3 $QDI|jQDI|Q&g^'Qu<^ItQyBftQ<{QΙo@Z GQΙo@Z Qrc o QІ \?Q {C<Q {CQ۟[ܢ ,Q1WПQHQXg R?Qؑ QDxQDx QDxQՖOR QՖOQՖOQ棰 bQ=;S Q=;LQ:/CQj%<s QMb]QfuJbt cQ hsR١?R .s SMq> SRi jSR{D S[.@ $ Sd* PSu[Sy@S}^p} NS(AsjSFSTdSSaKE $ So$FSS>G,y SjSjSI&TkSK?SM:S S ?Sc;gMLSc;gMLKSUvSK $S۝S۳ ݹS8ES8S(V bS\?S_SET($ Tg]v^"Tg]v^ Tg]v^ TnT Sd:R}TUUcf Uz:>Uz:>U'vƄmU" (U'ɇqo U+ a<2U+ a<U+ a<U+ a<U+@}Gf U. ttU.!UU1 w U<,V>N UCzLUElc UF %UIUg UIUg UIUgUUn(N UV$YUZ ? U]18kZRU^h0(~$Uk@qNUm]*S U;_i U`'[U eUB+U*BazUdlTv#U4h `U4h tU6݅  UkN$UiWUC:s9NUtxU!&tU!&bU˽~q U˽~q?U˽~qs U/KLNU/KLUQD)s aU"z-RU"z-KU;UU!+i UKU… m U40Ue-]Om8$Ue-]Om8Ukcj 3U@|@qjU@|@q?UN$tUo V @LgV2FV2FVq]Vd_@^[Vo?V^ӡ9V"jdV$^EZV%H{ğ#8R&V%H{ğ#8V%H{ğ#8V&rnrV*qKh3V*qKh3KV+O:V+O:V1JusN V1>eL s V?!+CVD%$aVH{J=  VH{J=  ^VH{J=  \VH{J=  VH{J= hVH{J=  VIQ5 -VJC^~$VWF)[ V\yʄV\lH@V]rh\/V] d{J eV^?1 VfEVixAFMVp+גVy-:< $V}f/-ZV~W D jV ckt V\rcR V^&Ƹ+V?̏ JV-x}QNVpqs;VpqV|> aV@aVmg?VIPYVIPSVS?VS?VS?V?嵽L#V?嵽aV<SVTb cVI-V VRWHb vV: h aV_ ^RVL* V7UAx R V7UAx QVu%* Vu%*s VpZV£7X V;GRVƗo VxV9V iVվ#oˈSV%xl Vv2LVjDcj VjDcVjDc?V@,V@,VAj cVjqũ[?VRu5l?VsR׋ VsR׋jW|рW\_WІ= (Wj>ֳpW. aW%;? qW(,*r W,["9W42 W6ŮQ@sW7%?C W9ۼW?X%X{Uc[W@(K WAUl WAUl \WA?WA gWA WIݟ?SWM!i?WM2zWNsv@WVH _WZ’? WZ’ W]ЇȆdWc`I~uّ We:tWf+HWi0] G%WiWh[;P?Wn65SN Ws/jWt3' ,Wt3'jWt3' pWt3' iWt3' WwKo2Wws<'  W}Mƭ1sW|] &Wj?W4'f WKWy"ax+W! ssW! W! W6 iW^ <WiFWm0#Wm0SWm0L Wm0Wm0WHB2 bWC Wx% bn?WaיW{8/' ,W^(vW;G't W;G't (W`2WjҙWjҙd WjҙWjҙPW)3, WZ1Q -WS~Ē WaNjWaN WaN WaN iWߑܗ5W6PFvW6PF W&niWJ۠'!WQ> 4WQ>  WQ> QWrIXWW cWvv Wv (X<6b X /vXpȀz XJTw XzkJX,B*8:X4?X>SZzZX>SZzX>SZzXA=XA=XA=bXA=R XHf6v XM^XOl3hXZ-Y,m?Xb"^ CXb"^ 0Xb"^ !Xb"^ R Xb"^ QXeYb( XhgB> &Xmkn51Xp&{ XrքSXs*("*׺XsY #XwS#'@ #Xw͚;Xx6p% (X~\ٴ Xa& Xa& Xa& (X9;Z3X9;Z XGV׫-Xkt$XkX/gR X N cXz cX_ 9X򌤩X^7\ X<NXQy XK4&?X|ntGLX8mdX8mQXP`r:QXǿGO$XǿGO XǿGOXcb( Xcb( ,X)gvX)g >XX9;߁ Xj$ NXІXR|"ZKX4o7XC-kRX؉c5 XοӼXꑏtJ<jXd_LNX"YInbkX[?tXd9 \Xd9 X,DEcjX,DEcX)tX) Y0SY=#c YIUSYu6Y(: a.Y(: i$Y(: Y(: Y%t.Y%t.LY%t. Y%t. Y%t.tY%lz Y%+_?Y(SV/Y(SVY)cC$ e Y)cC$Y* kWS'vY* kWS' Y*GY1(CY23>]jY4͑FpR Y6hB$)Y= mX YJ 0YMZ"jYMbhYOtCR~jNYV>y9Y[$Y[$ Y]I'Y_}mY_}mYc2ڵkYc2ڵtYoEY}C'/Y`B]] YvX)L"Yv'~ eY|Y|YF'3 Y\RfYE5VYE5VYT)ݾVYsZ- Yϻ Y,BdYxjrYէk Yӗ %YԝU YԝUYԝUY: Y4 S?Y5#O. Yj/ " YˇAK3Y wY wd]Y w_Yp45 "ZSVt Z%\?\N Z%H ?ZnV Z yKZ(UZ)D $Z* 0T]Z* 0TZ**C&Z**CZ01n ZG,0' ZG,0'ZG,0' $ZIR. ZJѫ#`̶ cZL#_N?ZL}o?ZV/ m &ZZ" ?Z_!;GS8Zf[yZ.Zh"? aZlMUaZl[wZnU&$Zo (ZoZo䲳:RZts ZtjZiUR tZ$bnwv aZGE .ZGE , ZGE9ZGEZֱZifZ7,CZqP #Z\#<ZD_jZD_ Z_] Z_Z1tZK_ZuS1P Z*sRZZZZ\agUZR Z [ $Z [Z [(ZivRZO (ZO ZO ZPo,iZMQZZjZ8pZ:abZu½,s #Zu½,s?Z,H9Zּ]MW ZTEZ6!扜Zm ЧZXib ,ZXibZ~I{$ ZaE Z華j Z華j Z華jjZ- ,[X k5h![X k5h [ (X& [ (X& [ [ y[ Ee c[n\|[-FD[-FD?[ot[%p-J|?[(u[(u [,y&[,y&[>ꣂb?S[>ꣂb?L[>ꣂb?[>do1[>do1 ,[>do1 [?Ib{ٔ c[@3x/ [GY+|[GY+s[O`gS[P31`V [P31`V[P31`V [P31`V [P31`Vj[Pv,H [Pv,HR[W [W̑c4 \fA+8z i[aW&HN [etH[grr)[grr[hxH[kt ([k\ [nV?[r@!H [sKgrYF[v &+k[v0 ]j[v0 ] [xk-q[|@D[~`N?s[SV[9\? [aX[aX[aX[_a[ [H:(@[H:(@j[,"*d[M?[y"D k[?e * [~[Ac9OW [Ac9OWb [c5`[Vpժ i[ i[`F7j[T\\7 a[ŵ)[$[*S [Ǣ:B [ꕿ$<;Q[pE`K[R [z[х} [ѨW [VO[:{s[:{[_Xw-?[_Xw-3[_Xw-[r? [rs[5[փ.*D[փ.*[փ.*Y[9 \[>Þ![_ *C|[F̓ [t1<[p#g 5[ h [aqGt[aqGK[aqG [aqG [aqG[i[q [r3[r )[rj[r \ Cv\ jb\ c40 \ c40 ,\ILK\}nb |\Ӱ("\9F &K\/R \r8K\r8K\!Mg \(zx, \7E\7E\8 B)k\9al \9al $\`?\^_[ e \^_[ e ,\fע (\i_3^\rgs\s8³g \tfo\tfo\tfo\ڕk*t \1SXH~[\+6Y?\'05!\^R\\™ % \׹*Lr\׹*\׹*\׹*\t|M \t|M $\S9\ƑBpEs\՚X\|lv.\Z6dZ\Z6dS\ \\Bo fj\ӮR_\Ӯ4\Ӯ\Ӯ\▼[ \: \\yX"bo\@^ $\#O߂\f}[rH \;E \z  t\z  \%>&\E\;+j|\;+j \;+j \;+j\cA.QQ\:cZ\4!I];{D] ] W@ ] 5s]YBek]fo@]eL%?]'j9]<*.]=]= ]!#]!L]! ]!] ]!Z]!]%M ]'P5[]3r>]5l*C ]9} ]9}K]:-<U ]H&aP]L m ]NDG]N<@6]ODΝ]T!("8]VUD{J ]VH ]VH a]\[aY]_Խ ]co/]eY]j$]qhs=]soGl ]sOR]wy[d6]xErt]{{;v]{U$]|!m]!Rؤ a]{vN~#:]{vN~#:]{vN~#:] rQM]$pS]N] ]"p̀]x\1]Cj]Ch,]C ]Cs]C ]C]C ]~]M]X=Q]7 Tp=v]>1+ ]h]DlGj]DlGt]DlG]$U0 ]cVs]>{ ],0],0]ȵgD]Ԇ8#]5יִ>?]A~~|<R]{_y]{_y]m pP]p;wv] L!t]e0j]e0j]e0j] HPHv]V< eB]V< eB]nݾ ]6]>q ] "윸]-K, ] `]@0nj]@0n^ ppf ,^du^ IR57^ IR5 ^ IR5 ^e<^DH%^ W0b^#} ^#j@S^# ^#L ^#S^(.C^2ǕZn r^2X_ ^2X[^>~>< #^@m@^@_LT=,K^@_LT=,t^Bj?  ^KʻM #^KÎ0V^P˓=nR^Um ^b" ^c[~ ^f[miQY^i(1*^sʊt?^wozE^wozER ^wozE^wozE^xVULH^zaKE #^ft^h< ^{>tga^{>tga^4{z^r:X[!^q a^qj^F^K^F^t^F^ ^F^ ^r~[^^ ^"O's^GIFY^ѽ<|˗t^ S^զ ^[ dh^Ƅ* (^aK>s^aK>t ^aK> ^!kСL^<j^y )' ^y )'^ɶ?^ɷ^e ^e ^e^H i^F%+^iLP ^Nw{: ^Nw{ ^Ӕ  ^Ӕ ^٭^ ^t^&”4s^n.+s ^^c?^w^ GOpc^L? c^{j4qY^~~ ?^t4RX_Ed_Lt_ c"_m -_ %~_ |5P_ u_ ?NV_ Ѩ_9+ R_KYfĔ_|h'm_|h'm _|h'm _|h'm_p_a_A2} ~_y`6(S_%(@A_ _' Τ\J_/!N[ _2zڲ$_2]7_3I*[_411{ r_=c_>  _@5[S? _@5[S _@f$Y_Bn1h_Dgj_J;|v 2_J؅!D_Jn_K"o+_K'BG m_RwDfR_RC _U71 _WqR_X<j_YE_bv@ s_c4 _c4Q _e\fd _e\fdK_i_o+8_pP G_q9tb _q9tbs_w>lh_ b _ bj_ bh_`_!b;_Z6xR#_P _x _X6_  _ s\zk_~\+ _(_j_ _;(TR_;(T_6j2Y_ɕQk_ɕQV_ZUq[ _+~  _+~ _$N_r':|_˜U;^ _\+s_ǂX7^ _ɷ)_".) m_" _yׄvi_yׄviN_ E $_k9ˤ_]Y _GlϢjR_GlϢj_ٱB`k _ki@N _.̬x _HSZ e _\9/_g!_ _lA#o _L%lU _L%lU a_L%lU ,_L%lU _s9'_s9'` =@ \`F_`ˇ`F_`ˇ`(&6`rn S`bU2`.7k[ `"5X :`(6rq ^`(6rq`(6rq `*2$`, #t`. ˌ i t `5'`:Rh!:`:Rh!`<1 `>KK`C1`FRhD9y a`FRhD9y ,`GDs`J١7' ,`J١7'`K Q`K  `K `O?zY)R`W%.\?`YU/̸`YU/̸ i`\&M`^CS`_$9tS`cӇ8> J`eM P `iPeNe`lTЪ `o?"-`uh;G;F?`yE]K `}˗(uj`=a `g|[`; `Se/1`& (`&`:C ^?`lX͇{ `l ~]`ϬDD7R` G `fW`fW`Ov`g a` Qý}vl` Qý} `eLҤܱ `m/n-`۬Y v`۬Y 4`ML `B>+`B>+`s:ʒ`hQh) ` ǭM?`Y$`uI =` Ѵ`hs`Gi`鿲  ` E`Hv`V7aQWWT< a\p) a = $a E[ ,a ]H& a2d (a2da2dja 疑& ga 疑& |a"gH`0 a&33BV #a*Yk0?a*La*La8IH aBHaM=* aM=*aSE .rja[AEra\8 ea\8  a_у% a_у%a_|Na`3s}Sac }Sah aneas ڃas ڃ at$7ߙau3s.Jdazp`ۯ av^^ aZ,W|aV>^?a' ja"E- aa1{l catr?a\"  aQ;IohaxQa%Oa% 0a%a% eaN2Q)Ka?SDa?SKauID?am a=;sk]a=;skayw%aؽNa8, a8,a8, aq8b aFUc gaFUcta:Ŷ a _a|ja"bEfebdaJWKb}eh cb"bO>? bO>bo7bo7b"nft b"nf ab4_@bx'brQSb'흸% ab,/vb,/sb/Lb/L[b/ԁxehb/ԁxetb/ԁxeb7<Mb8ݍGBb95e|b=O # b@#j=+@bAw#h?bAq璷bAGBbAGBRbF%.'bF%.RbF%.bJeK^" bMuы c$q>ы?c*Cf #c. bHc2,',Nc2- Y`tc2iLc2iYc7)j?(c7)j?(]c7)j?( c7)j?(c>Fܒc>FܒcB=ycDUTjcDUT?cH9" cIꎴ)WaXcO_W=~cQ^9UrcV icW0w:CcW0w:Cc^N}|ca-ܣca>|cg7"tR eA4iheFUyoeH`\vveHQeJg{ZwReP42a?eP42aj eP42a $eP42a eP42a eP42a (eSTP- ,eT\ eT\ eT\eT\ReW=iR eW=iRean eb7 ec<ee8ӱ*QjegR&eg egeiRNjBeiRNjei蜏5~ ejt ek$@${ erevMd@] e|J,(e|J,e|J,e|J)gPke~OOI mehڣehڣeGUx aebJz4e! e!eڠDHWse[[3MK e[[3MeiR'eO]b em. $em.?eLtLyx eӀ eierdS2seV|eՈb e /e e e2ʛ e稯w||eiǨh eCT eϻMZ6eϻMZ6ebftej3ej3f - `fr!fMJD fTc#Lz)f/f}m#ef n N(f 𷔆1fTw} f9vf9 f#~[df+[j f1zPf5c&^u1f5c&^u f:q1Kif;yy[ff5C&;?fSQeNfSQe fPCa f /ڔ $f /ڔfdRn1f afhVx f{;$OS f҄RAfόՏF 6f+8N> f+8N> fC衲 #fC衲vf`fIR f_fLfUNЋ[f!mez?f9M foY~df|+Ypf|+sf5(f4 fؖ8 f_$֞& -fDʐ&R f?Cl|f?Cl foUpSf\"]3f\"ffӳ| f[Lg I}r]gTh gThgF߄C ag %Z8g %Z 7g %Z g %Z ig (gIRgbgNX%Ng>6` $g>wѐ ig>wѐjgZlN g% g,g,z.w g,z.w g5˦Ng; 3wvg;;)8Ng;;)8NQg;;)8Ng=BD1F g=t&XsgC_gJɠJ $gK~LgK~LgRhػjgRhػ gW^h%:jgZ|4ɉg^,! g`|1Xus g`|1XuggE߇gh:YgiPT[ gz>PT[gE, gE, gE, gE,  g #g Uj?g[1 ,gTKm, gTKm,sgTKm, g,'sgKds gbe/ (gbe/ g PQQ g=g0lPg*+9hj g*+9ht g`״tg} :g} ,g} g0jg Y \gY>w g/~ӫgLoen gKgof}Kg A+fDgBHUjgѶM;gsЪgޥw: ^g#m ddg#m dZg#m dgF_'Tjgmk $ gmk gmk [ge^g6Pjg6P g3u~x #g8W-ejh \Tjh y;h"+lhӇX6e h_Ao*hIx?uhrG2 a hrG2h!kz6H% h1¶"h1¶"Sh3Qф$Q?h3֖N/h3֖Rh6tBGesh8bjQQhE91 zhE91 ,hFe*CD ,hHPlkhSsthSs hTnh[ h_ejhlvDhq76 +ht, 7ht, 7ht, 7ht, 7 ht^ö hz[h{9m[h~RBhaRܓNhshshshJqfRh>[h*/Rh4Av hSh=}h!n9 h!nh W hT:uhF1PQfhE8hE8|hE8hN5haRzhaR"haRK hXh(@ h(@ h(@ Kh(@ h$;5%?h u)KSh xSh"`: h{j h4@?h~ڴ{h@ -h@ -RhRmzh)h(N i6>Qivi:ASi!4 #i!4 c ip9i£9tiԞiԞSiTAe:iTAe:?iѹv> iD iD i@fC@b i@fC@bi/;~ Q:i/;~ Q ,ic֍ ibiK„ +iA OiFibiۯiGieOiHc2 i=iHc2? iHc2 iHc2 j& p# jWw0j TL4tj A+Kj \{vjn C' j'eY$ ,Jj20s8ji j,aZkvbj."mc|j3Ԋ#sj4!½Uj5,>j7{.a5j8w[o j>R1Rj@;q]NjLjN[S@ jN[S@jU# ej\jj]gfq?ja%k: ,ja%k: $uja%k: uja%k: Rja%k: ja%k: ja%k: jdi2 jft{ 0jft{jh@jvӏ7 jk^jvV9jvJ\Sjv'~tjw>A\jwG<jz?7*Rj|pEAw j\ 'L jW-jBd ,jBdsj?߅j?߅ ,jhsSjTjJ<jJ<# jW{AejphrD#tj3Xj߮>vję+b aj|C5j|Cj|Cj|CjCg jš) V# j?5Yj]bj5j=! jS׍ʣ1tj͝47j-YF$ Aj-YF$ j-YF$ $j-YF$j-YF$ j8(? jm j^oNjsS?hj ޱ&jpjeqIǷk_ He˂ ak_?9k Ε0ENkw!'kZukkYˈ#Lko1Jk,4DF*NkkX+q $k$BrFk% ltƗ k& Xk)rk0u#S>Ixk0u#S>Ixk3bI)&k3bI)& k3bI)&k3bI)&sk3bI)& (k=4ikC12w #kC12w kCP.~ jkC@5|8 kC@5|8hkE#/gkIo [kNk1 . kNM6 kP%SavkQ%߃WkQz:kS60R kS60K kS60kV3X{ !?kVUi $kVUi ik_2ǛMykb"R kcm}kf^v`]Rkf^v`]kl*bkoznd rkrjY?kw[vkw[vk{ԙ#g$k{ԙ#gk|LOUk~OsY|uk~q*~!oLk kjl]kE8k$ U kP??k>8 i k>8 k3) ckKk`OkR ikRk;*N km!k*sk/Ah} -kqa,okĮ'PkgkL ktd:ktd:kjY?k>Î) $ ,k>Î) $ kGk`skGk` kGk` $k첈Dk첈Qk `; k `@^skU&"j kU&" kU&"hkG| $ kG| k'2Fo-k'2Fojk6jwkwkwPlэ lk.YwX  ldNP8Ol?l3RH alP(l \l'Vl; ,lZIv lO(vl1Σs l):b2 #l+\cl+\cRl,@!Sl.{|l:zxpl:zxpl:gPRl=m' a l?#+ l@7ՏKl@7ՏlA0% lF)lTS[{1ElY@=lY~ p[l[{Dyl]^, l]^, l]^, lc*ejldt lgS@ vlgS@ vlg_[$Rlncx,llt2l:lz lz i lz l7&w<l7&wj1l7&w l7&w el7&w l52l ~ݦ[lib5+v?lib5+ l1Q&dl? :Nl== jlY2# Zsl-Ql-Q l-QlCU^h l8ltleKlNkTr3l5Kl%blzsY lq xL l8ƀ ^ lըä* lwttE?l.F9 NlLel -lLellLels l؜sl4KrSl@B7% l@B7%Rl(d? l(dm m!p]cnYm6m{"|><jmwҳ4mxz&jmxYmxhy$ my[pLmy[pL?my[pLmy;r"RWmy;r"mFZmYj m b$ma> bmaem+J0 % lmծ_ m}UZm7 cn? \.n?n -acsn< %n톸nwL n2lNn":Zŕ nijn$tUt/n$tUn!xf[ Nn"&f] n"&f]?n&M_uNn,>t n,>tYn,WFn,|Ջ{Rn-uLLn2}9n6 \5(?n8/nBJߋR nCu![nCu![DnCu![nCu![nI.,bnLDǣ nNE"lR nNE"l nNE"lnRF" nTB]nYlWX+RnZF a nZFn[Č/, n_`4 T ,ncsWgneZTnlqPnlqnnQc> nnnQc> Snsl{ W jnt46xZnt46xZhntPuzr\dnxF]]nxF]]ny2zbn}P\NĊ \ n}P\NĊ?n9`t \An9`tbn9`tt nt}/x snw k n5c%5 n90oBE>0oL%uжoLP"K oPȩIoT0u Po]2S $of澢2Koj/KokM cokXoomQV\Xov|q c>ov|q ov|q #o/Ap: ogґkoP7jSon?oR?oVoVoc[RoZ o/Fxo,8oo!aQNo%+Ao\ o@ݞ= coξpo^l\toRK?ro E(otSoԷ5oԷ5"oԷ5 oԷ5RoԷ5o(G ojG3JKoğ*p1K| oğ*p1Kho-"p!zoYeoJ8joʹĶVYo`}g1oVH _MkoVH _M|oeb  oeb o6o yjo yohi ooRoo//Շs pry p̒\UpW3y@ p p ůZp ůZp _ xtpJPKapsR p#>p00ڲvp5X5q p;nsJ  $p=olL p>;?pB9" pGV,:pH ZZ pP̪ڦ\ $ pYdW p[isp\Ӝ^u (p`Eu۫8Ypd#)*a pg~˵?spkz^wJ (plN/pnc0L? pnCpokaUpwt}~ pwdY/p|'q p|'q p}%L]Qp/fm=-p;Bp p1KzppIZUq8 (#q@ KqBJfB qE ޷uc EqHWeAqK>Y]NqLB&SqSC qV mPq\̊iCq\̊iC q\̊iCqdA2QqdA2Nqg:+WqjQzȕRqnF Ig]+qpi#m q~X`JHq4Zn cq qY' \qa(]Rq5q / qN2?qhjqˊ" qˊ"tqˊ" qˊ"qyZq9n q9n , q9njqg|Hqg|Hq{ q1WzbqSAq)HThq qtqqBۡqqeq'f% q̌EqKQWCqKQWq׳6E4qeX qx \qވEqވEqvRqs"Eq#tSqf.qg8vqblܭgq2w| $rw<̖ r1?r<&4r 5Kb ar 5Kb \r9?|rϒ;!>5 crϒ;!>5 #rg=/@F rx.lgMr /(ct<r /(cjr#1^ O/vr%rZgGr'e]kAr'/ r/4( r1pt jrWF!rD5/RrD5/ r}s #r } ry}0 ry}0try}0 ry}0Y rՑ/rAz %rAz erAz r%X r?NKropruvru ar5;irpOnV0rpOnVrQ!?rJhvejrԙ'(rƒF6ΰpr;PZ# r;PZ rɑKFXrɑKFX]r63 rkURn rPR rn`rܵ"M(KrML rir j6C r j6rJ ;$r)`7% Kr sF9,Uw sF9,UwsLO%? sZc?s4] sNs7S "s?s^y s# }s$V s$V s(G^B>]s(G^B>]Rs1Nlss6"*Os9tuO (s:.AeUs? |s? |ssAE% sF kP?sL~jRsNo) #sOkYlvsPW{%sPY,, sPm #sYO^sY1 ٯlsYSi j"sYSi YsZDys^.递e cs_ ?sbv_7Lsbv_7Ksiǒs] js Snr ,sio<sԁfsԁfs:fO2s^e9s^e ,s ࣿ9ss^ cs^s17{ * s̮97 sd sdsƱXohs̰esrx^sM0sM0s^J"Fv$s^J"Fv s^J"FvL sq%s\@w s:~h{ss ssoUAS?sxN? #sO@7s.` sW j s&Losct #1| \t #1| t3I'%`KtmCt [| tz6,t6 tm $W t.Iw t1, nt1,? t1, ^tZ t:{]t"$ycv?t"$ycv t"$ycv t'?`W't*g$t03ct1$oG_)*t:ۍt?DCb]tEl@?tF}|LtNօIt󤲿zMht󤲿zM t󤲿zM ,t󤲿zM tYGڮ~? tYGڮ~ t̔ +tN4L?t6F6?tխ?t{iLS@t{iLttU tĢ0?< ,t  #tˈ-ȯ itTAfta²tz2 t)` $ tߎV? tQN tJOtt`p3tktlt)Dt)5t)t)t=9 \ tsQ tLW* u=MSu )>&֟u*FP c u^u(W s[u鐺 J-u鐺 Ju^t u^t \uR uR u! a u+9Ӑ1Zu7r{4N/u7r{4.u;7YRu<Z u?5u"(uEquO}֢JuO}֢J uQ ? uWyP%SuWyP%uWyP% uZ- iA%D uZ- iA%R uZ- iA%u\ɞeu]Prsu]Pr u_0!vaua ~i ua ~iNucnl*xuh_uj VQsum$OCYRurZ(ηusg"NuuGZE8? uuGZE8Rux=wGLum?^( ucq|6Ru3{z2duW,x;uD4Ip?uZ* uwuȵuƒ!ut榿s?u?u*ZuxG uJX BjuJX B?uUuE"UYL uE"UYZ uE"UY] uE"UYuE"UYUu֫S uym 9u(; u(;kukr ,tukr(ukr (ukr ukr uXD9duT/v ufa'ufa'ufa'jufa'.ufa'uӉ7uӉ7 ^v%~J?vz~hHYv wk vv)f]sv/|`u vp[}i9 v"zMv(i{e v(i{e v, ƒ v,ZV3c v2; Rv2L[v;= v;= v;=v< v>*{KU v>*{KU (vD0vGe vGe $vIq ҌvO|OQvUsЧPvX KvZ!Kvi/vj[pNvj[pvn;ZyvnζA[vnU? voSltvr@ 1=s vr@ 1= vr9oudvsbQvy2v{Eev{mRgv{mRgY v{mRgv{mRgvA_bvA_bv/RZv/Rv$ vfh av:ĉ v 00:vӊjv\-|v׏7l -vFXu vFXuv2V v2Vv Gvvô)? [vy}s "yvy}sjv|!#vu(+ # vhg@pvhg@p?vRW-v\F ,vB2! v2;!Uv׈v ިvkžvng6vT_vX3 RvX3 vĜ7 v[v[v[vR,NvşWRv4 cwJº aw K/Hwm TwV\ wA-gNwH2VwMd-wmBwmKw &?w+8H a w,Iovw2,~9 w2,~9w5m3,{|Z-w: @R[w:F*C iw:F*C?w3qAjwB9sRwQ"٘o@wQ"٘o wQ"٘owQ"٘owQ"٘owQ"٘owSuwSuwVK{g&wY7V{kw_^<`wdFB`we\=iR wopd_wzXm]wzXm]w  iw s w[у?wbw f" \wcL4Kw% w% ( w% , w% iw%weuyNwB , wB $wS$LwUS w= FvwQ iw, Cj! iwKDwjLg--awjFNw1]gtw[QP w[QPjw[QPkw[QPw !Nwf.~] wqLݣO rwƻR[A rwDw?fN$w[cGWswN NwD]B w+׍zA w ! 2sw\b0w咽&;w/Z2dWw/Z2dWZ w/Z2dW] wT||< w=-= , waw4ٶ w#1w^Yxb^b x ɂVGM x BD@* x [?Jx%U6R/xQsxab %x^&R x^&RxFjx֍1 ix#  .x%-yRjx%.~ ax(OIx* gC x3G9vx3kDF$x;P,1^x?9XV| xE?vxEɢLxFzMZ(xFzM$xG܈xQ sxXD xa|Z^?xiUvKxqNR{efxtX<{?xz O>x{Vwx}7jx~ %x~ %xJ xQE6NxQE6x*f (x*f i xm%L xm%Ltxtx3` x3` xE xX':KxOk?x( xPu x?xxvxdxvxQx쉝c&L x`p;h x`p; ^xD@MJ ,x?lm/xͧ}a@xͧ}Zxͧ}xͧ}R]xͧ} xQR8xQC xQx~ xšm0Kxץ;M?x^? xc7 ix佑 КaxZ/x8hxS;jy}Wusy}FVa|y ` yjه, yiyj۳b? iyu,?yu, yJ"uvy7 ѣ+yLőeSy`/Iy`/IyNaZ yNaZ y(;y(;yyyQ;2 yB?yM yѻCx05yG yGygbJy#  yͱVIR-WQ'yͱVIR-WRyͱVIR-W yրƄyEyϱnh!y*c]y@񜢳_ypd Bz cN $zPt z k4s z _LS[z`EUDa zt<]Yzt<]bz\һ>z(;m[z=zSzlyhGz< z< z& z!Qfb=z"L! ,^z"L! $[z"L! z"L!sz*_v&@ z. j>itz7Vzlkz<)l׶[z<)l׶z@z zA[=zDJi D zKU]dzKU]zKU]zNoS/zYK᭧VNze0?zfÄDzh@%=tzipBznj՟czrXwKzsةן zsةןzum&UzuЛRzwfɍzwfɍz}}oz=ePI z=ePIsz׺jqrzYa2 zYa2Qz} }z=z #zfd \ zƔ ,jzƔ $MzƔ ^zƔ jzƔ sz[X [jztz~v|tz6zai0-;zai0zi.Oz_KrD4z_Kr z_Krz_KrKzX \Sa zE rzz!z|NVz_vszƎ  zƎ CzƎ z.2[zG}U7ztD?zt>z/cv z/cv iz,႞fz,႞$zO^CGIz{61zӻQ?Pz^G+szXx z/P zjz=zhpP mzhpP -{ %{(4hK{(4h{&fK{&f{xgS-xu r{ g#v){ g# ({gx {>9 {> {haqN{7?Kk {Ņ&b{Ņ&b{b/ܖ{',% j {,ĴF{,Ĵj{.@0{.@04{.@0#{.@0Q{0{3""!{3""! {5#xׂ{6Ȳ{96p} ({:ҟ8K|{;yRM{;yRM{AEL{BP0[|u(?|۞| <"D d|8YEqL |]Kp|]Kp|y{< |y{< |;eGs|\]<$|\]<|\]<Z|W;u|%Fk|/7a|1/v|5. s|5. |5kCv $|9T_*(|;xh[2 |;$: |B zg|E7ɂ[|Hk 5 $|N*&ܫ |N*&ܫ m|P,|PPS|ߴgd|ߴgK|sT|sTR |! |4f]R|.R|.|.M|.|.|_ժ |Yh~|f7Su|f7S|f7S|‰Fu |ï`A~o |ï`A~o|,# |2 |2 (|ډo- |ݏd1G |ߚ|<N|㠝N a|㠝N (|㠝N||[3hS|F$ |F$|F$|\i(|\i|\i|Rj|:xcę6R|Aq,|% |-|t|-|k|osQ|os }fOj}D*}(z*b}(z*b ( }(z*bj } dѥq} ya}DM[_L}`}A }U }R(4~} Z[8h}"(#ɮ*k}"(#ɮ*t}# <R }(20Pݙ 2})uUYs })uUYs})uUYs e})i})iY}*ǹX s}+2TS}+]?u }-r;t}/׸V}0r^2}3v@ }5l:}=*V~}Am}CZG!# }CZG!#}F3Q; i}J+!s}J+!t}JR}M ?}O p}O pQ}U?u }Y}O[ }\gm }g_E }g_EN}g_ER}g_E}k"׼ŵ0 "}lt?}}nH15 }sRՎ|}uXl | $}{2aN`b }~Yt}ޒ]K }ޒ]} >8 } >8}S }}ڋBv})7z1O|}oL$}#}Rxu?}d1C}d1C}u- wK }u- w}.^v} ,bd }E}!gt}Pnl s}ñ;}J] }v5c:y g}v5c:yt}Xعv}a}} }]}։2;. }ב.|}ב.|R}="}e_ }RS%N}`Sk}`Sk }~ z&}:"f \}>݄̊}[t };(! \ }?l }h>?}Jh~ 8Ga~JoLbR~r; >~u@Z~ K#v~ K#~ K#R~ (\~Q7l_~&vVR.~&k ~(?] \~*f i~/r;JfPQ~/z ~1d~1ݘ{@P~5wX ~8Í)N)~=-[ ~=-[ ~Ey()R a~J5%~[~ BS~`;" ~bpxN~d: ~d:v~hk R~hx0~i qy| ~i qy| $ ~i qy| ~lXa-N~lXa-~w-7 ~y#>xw̧]~#h7V~E݊~E݊ ~E݊ ~xfd~e:8)~*<~*<]~+T "~WM| ~RPj ~̺<~~)֙~ ~ j~  ~2|jj ~; k $~MN?t~!O1贂v~OoR~Oo~Q/aa~">%~">% U~">% $~g@~`|I7 #~0r~0rd~\udrR1~\udr ~48Mt ~: %~L ~; ~ŶrE~NAd>t~PHLjJ='~r6=RB~yӳ"~yӳ ~j~j~wP 9~wP ~3$~3~ ^<?~~۬_)PuN~ /nDM7K@W 8በK8t=13bZd?ZdjZd ^SQn ^SQn #_駲2ea> % `b|`DRb㪢x>b?cl.te<fW6YS hEdnְ m4nְ(nְ nְ nְkpcFtlpcFtlqSls'&E%s'&E%vxa[! #yI;yI;z_ m{tt|QЀ~ RA < : s" | +Ch al toBQ 0oBQ ,xsloKs Ne(j e( J] c)1#)1# (J _ .i>lrS(i>lrNX j$/c Z aqI̼z)* ̼z)*? ̼z)* ̼z)*spYELhys?FfGwqsFfGwqҞڼBzZ BzZX (vEC ݷ_g&ݷ_gK#]Wt#]W#]Ws/R^Բ cewV #T T  . pMuƻt lBW , lBWs & gi0!?Equt+9 ,+9 $>JٳNH3L LhB|LS LS VĨ/A lV5ݥs-b* tvt .tcbJu (lzh=]zUzURzўkoTˉbC$d>.$FK?AjN4@{ R;] ##P%ЉGM9qֵĝR)?4tĝR)?4jE2VF4x070707BBKDH U3:Z5lRBjU VwY ӆ=? dk_? \S[L>`?Bjd_DBjd_R| #0KY$@D"gj"gj#cj , !80Z{3k9CLF;O'9 ;O'9Y ;T<a;w6R Z}i=Z􋰯vZ÷TN@Z÷TlSCt|pyʗ |pyʗ |pyʗd X ^/5#>~ 5]\ $ #ԷF*0""S}@ǒ}ƻz ƻz ƻzjH% H%jۥ Lv2&8Ro`Zo`  )kG*NcMN.5,ߦê3LO"Y,ê3LO"YSê3LO"YLê3LO"Y1X "ƪqvH[v !Ղ jՂ ?]Ѽssh  ږ#T$|glZglRglȢ N Ȣ "E?6 3  (8J@Os@Os bGKm&_%J  T aXkX X ,X X eX KX XjX X a#W?R+h8 by}j0}Ľj1dP3ZoEdoEd eoEd oEdoEd vf R!Ț%%F[!}%F[! (3%F[! %F[! ,&J./&Pe|C +;/C}r s/C}r?GWX@GWX@ GWX@Hp?W W WW W eZ9MmsZaGLZaG b'YfR6/KfR6/KfR6/KhkTi~ɶN*n&qܶAo ;_Bo^3a.o^3a.tr`JYٞ y> | cz0+~* 3~* 30sL<Yz$ xR3A/H?  ,4)َkZqZqtf,f,-qP=V̵I y)%0c~zrx -v*SL`:>3>HT?v0A 1v0A $v0A v0A ר5yn ,s , ]1Q 6S  6S  %  #QR(#QRȞ v!GNz "O7O3T ("O7O3T?"IrɹL'}MR/΢/~W?/ΙCm 6~ ;h K<7T0=<7T0=U2C5 Uz5A=:? VKWU{j cX,m3Y@YEi\Κ*h ^׳fv_K a&& mary4^ Nv`HvyS a{̿L~gd=D48So(W ="؟EaX`&? $Ս[-; ;sZ1sq+>cq+>c&4)6v"<7Ju? a DR/#@:QK :QK $s+A $S{x , S{xsS{xhfL cӴe&4Ӵe&4 $n[DRm n[DRm  n[DRm (n[DRm| ;b ; .2NiO? _3(t _3( cf& a=S=S=S 3 ^  iFdr5D \<[ -KqkV kV+kMN -  6 iSx  c-z Ilj8go םY (!f,b(<ʣ._0c( #83ǭ9zDj:?) $;eԋ ?^$??^$ EmQXK ^ EmQXK|Jq^&|KNڂ7ZQNڂ7ZRZj U #CbzU eR jMɳmZ{תpa /sw cs+vin [EY~w eM ˿w # \n d|T%(u3)L R#Qλh R#Qλ 2R+S9]?k}t k}Yk} j: j: rKfy |RD?6y ?+Sˆ-Sˆ-sSˆ- Sˆ- iSˆ- .x&I.x&It* @7y%/#[C8& yV\ @79Odz_c c^dql F?"F?%;jk?%;jk %;jk B}n Rs!'Y)s!'t#s!'j1#]  'C ? P  p\ SY$䄳%`;c<%`;c<*>~04+(s=2ҽ C>M $FA; +I0 LD'OZ2kSH j?zTlILTlITt,jX$y9YSޏYSޏ `# !R `8lc~AM idE6rR m\TulhNy0$\sy0$\vd?\1 13NH-|-0ib0iba0ib+0ibR0ibZ 0ib wj  ~j1.~j1j c[kELZG\j&q k ck # {KQ==l+?cwP a]kDvD K{;[$e{;[#{;[{;[{;[{;[S{;[* i|rͼU$ vq2U^& A/V?֓!e~ !/NIү4 T^{ ^> $ ^> (0§0§ C^SC^S C^S C^SC^S = =h, 8wL vbwn j[ftq)[ Z' tc5)L Z"  |  VFN-f $ & yȿ)[ ? -6_th-6_ -6_sn-6_ M-6_A-6_Y41}󙅒5@hn>5@hn>5Mwjj& > aMjEDj[hyxo{ .s`4?%[ 3֟,iśv2jśv2 T(S$-C?EЇ5cMm 8ٿoXXI]2I]2;%Y iG \,r #,r WL $bB o 1 }K' } } }  LTCsMi&1Þ"+ , - 6"<"5 6"<"5s 6"<"5B3h2 EXGVLNP)N#t NP)N#hS}U~Lt% YA&2\* d~Ikd~Ikd~Ik o>O%­ԏ1E?ޔTQu $ &XNkYQLr?ɞ;sW#A!>p] x/j~8#oo:غ[9)@ ieY3 3LsAR[/sAR[)[h %m\\e jjk"jjk 'ю2wlP K dK K R)8;d $ 8;dtzcVvRlAf hj \dwta?v]ӲUR_ , !%jPB?44 i)/"G|/"G \}"j ͉4 !(-vs"pc(~v )m]t *v v@)`@)`BHm <vIb|T (Jn #Qzl҉!RaB1#vTYY[V<VcaIcFv^g dh,NLj1էr^Fssur?q x{2; \d#7Jk]ՍaQՍaK0S~#<>7/Qǟ5{Cz j\b Ai j _'7 \c-e{ [  U ,bǗ ȿ1 1XԼ㖕\R՟eh ෆC=b n|\Dp@2<]L[ iVw[J4XrBQ!%W: =%W:?0%W: i0iHm3R@$ϲAT=q AT=q AT=qRG؃4 G؃4 , G؃4G؃4jG؃4 Hu@/L]R SO2NWWD(Y*ZN b,G? dQ-#dQ-#dQ-#dD oH e sޤ9߂ #t&s&%ur%-Ijw { y75j |Ygj|Yg yd C69[ Z&ĵ+'p.?c'p. 'p. 'p. 'p. $=UZ~qtZ~q Z~qk;ÖY ;ÖY;ÖY/ݣu /ݣu =} cA%0*8 7 Y 7 kS׻;RhRhR\N-rTΩ -rTΩ '2g @w!׉D7w!׉ԼgUb/?ԼgUb/sԼgUb/;tf ؎j?؞al g gKޤGЀ~sA{ 1vd,/1vd,/1vd,/BK4E=S =L U5H3xS RWY  D\^Khm:B c Z Z ZGQ,R@jZDl ;MEUt@^fv!MS,T8n \,tsB ?,tsB.{z , 3t&H7|ba8y=N8y=A `hCM " D>%LW2~ P5Ӿ R|G]R|G]TӔX@CY\jY\j[C ^5rR(svm^}SDȈ1F#Ȉ1F$吩i;U?ӻKlWR%];< wth Sth th L th Q~&<8 s\( sޕzP8+CY =~j ImCZ iIQ4xXn] \ʧParD%L r̜HR<BB PMqM? ; \ mx`*菆E$/Uzg.d׹[׹[׹[ 0lRk$ez?j]|}Cw.e ,w.ew.e ^2:] w$*RIu_+JQ0.Zbj.Zb 57,TY #; jɝv?d`Ӳ?d`ӲD 5IN>E?J!RfGJ!R -QEpgTQ.Si jR/?|SR/?|SsS]Ӯ^~]qS]Ӯ^~S]Ӯ^~T 84T«~ "\^4 \^4^#W kRm$kRm$lDilӁEPQSxYN Ny5_-z ~x.`~PkR_݅JLeY DfIYWebp*@|#z& (#z& |MR /N Ҕ.h }IC* tMf-J?H-J?H -J?H-J?H-J?H-J?Himl P _XJiJiJiӾr!Y5x\ 5x\ ,5x\ &ףt&ףtJ;% a['H%zW>a3*zW>a3vD.}$sD.}$ GOQ GOQj ?# Ms B`2/ Ⱥ 7/ Ⱥ \ $ ]ֹ9]ֹ9j ?  i%ex<жR(;1H;,M-9 /X!86 ?7kIuA?%͔UAyBAyB Bttv bEgHvLS ~ǛaXoKZPLA?\-B bGOr` o))' o))' poT\poT\pnjX?r@&xu x(۪Lgz/> \|аHmt |аHm ab|аHm \\|аHmb!|аHm iFkQ #  6vjlKKGFX?ȬV LȬV ȬV?ȬV 1= ,#= ,#o+M )8#`; ; E =cWI c /|OxN9>p b 75 SJf[D[ ޾e?)_3޾e?)_޾e?)_u u \ u / + /B2w+w+O4S  3Jz / ⇼ aprE !hk%j%j %jD 'J%Ύct'J%Ύc /s4O7 w7~!=4t?0Or?0Or]Gs7 (N Gx[ e;O/ h_Ttr8z wБ ,|g PɂA]e_f X 2tڿSڿ _- -k -kR7v謫NFNR+vƈ;_/#  t ĩ2ĩ2ȃ^>: ̾\s5ɋ *K}j}j=՘k=՘=՘z=H:sX?Rڌ*t'sl uQ[H gdѽѱdC&dCRdCQdCD dCKdCp]R%p]O1ZSVO1ZR # :k' 5{#3 *gE0/`Q1#סк 3HEUX)vJb<W#sXbrB| XbZDkzZ[Tj[-b^v48K_#y׫W!_#y׫Ws_[*{ gzolW q%! q%!q[#q[[thjvsQ w2A R h>]TE8>]TE86w ih3k1 n$O ahoX>SJ+jF<0RBW¿ ?BW¿ j|?7v r[xzj7J=P5 9% =Cvl9% =C ,2Y2ps -/? e!? lu$= ?Ov. ?Ov.?# cF  v.| v.| , km!99)k#I j$x-v $x-v$x-v(i;R. x? 7 2JHD @KU \Hn~>mYHn~>m (Wu܆X餥+ X餥+X餥+X餥+ iX餥+ ,Xj Y% pcvb4jBsm>[ uCg!x[3UjyKay 2ݿ Py 2ݿ ,1y 2ݿj|3}΃ b~؇m; K[ Q}'sɅ= ^@Lk C@Lk U86: 5545555jjJl|Jl|Jl| 6 n 6 `9dIR.IQ RA% mˡ a<xoH$#2 䃂1010d'} RQYFvA= ,$eE $eEY]U $D{ \D{ [-oNbhU  bhU  e٣7S[ iE ` {o @_ 4a F:sF: (ޅZ  ؒ Cx j* (.M\ e(S e(-k5ֳ ܶ^-_K,h~U6Y&.ك}0zFxa c0zFxaR3^뱋C;?yBB>?;G?B>?;GjMכ Nc \QkQk R̦.kR̦.kR̦.k R̦.kR̦.kXOe54[XOe54Y;o S \殕]_p9&*]_p9&]_p9&*]_p9&]" 3]رy- n pPI˵tr, a rjkSs¹agt3" % WQYsY i tAs<Y\|yrq<vTyrq< yrq< fG$ `n @B>`n (X4W (H/8 KRG m B C6c3V"E3/2 -%ݙW_(--*@-NpM/ހ/zc6?>cyؾs?)N?)?)?)S  S VFAhM 2Y\. ]9HKb6'] u#fyj_t?f kf lnj4{\F;q }{`ku uqվoj  Q_m: aг9гkR0[35_ [ [  e vjgqEg}rEg}Eg}REg}fEg}Eg}Qi`*-'tl!L? $ R w & o;zv?h`?hR1q3R:mgO  *ѐJ$^% (zbރ zbރbJj Ɩ;Ɩ;LAq[k GP GPSc8~) ed8?&WnsbM`Y a.]tocȹS2 aOR("\,#,7&yL/1U6E.\h6E.\h6E.\h 6E.\h 8_;. s?8KcL#-?8KcL#-?8KcL#-sBC` BO܇tGOl JBa(JBLJBJ {&dQAAC/ QAAC/ ,RxTP8H ,%bV/;cRs1sdqӨ`n|ԿBS o;aoe-] oe-]qX%3Yt)]e"u5R vd wnp덹sx4vSWR}T,4$]~NE|^װ;ϏhW`#@ ?Au* ,7VWj7VWjvynZ adOwKtTv Iۗ5{R'Q^ ,:jEY3^W \ՆpsS FC 1ZŻJ)nA #7 @KOr!ѼٖT&a ݋406E NE NE N$E NE NE N:c4Fށ 躉̡vy\$=h2ޥk h2ޥb g?%M ;ƸƸ g d n1> \J#g vlI ޡx 2ޡx ,'ޡx"ޡx1~GEz0 r )y% )y%j)y%)y% i.|>/B654> 8]${78(w9ؐ^[>}U'/ a@ hH _h׎ dHּ dI^LzLM3 Nz =OZ^KQP^>V\NVo{EVo{EWy[' _d*{{?bo9ołp(lz qeA__cqebvǠvRz`3 z`3t z`3sz2U6# i~i@qxj n(gUaTvfY88. 88. ~tLPGc FPGc PGck`a y`aj, *g$ U29[ xDN"xDRY; $)(S mJKK mJKC3dsj]~: ~: (~: ~:tk` P]my my j~nȆym Ȇym &x2 ( &x2?3> ^0 +X6zÜȭ9 ēY6G ߻ s\g1P?v T'k  =`Y_b?1_b _b _b {H/p?b}`jp?b}` ep?b}`sXZNph &ѥv R:R 3G{ Ǖ=YcN kˤЍ=R \nV㫶Dy#NR2UcL2UcLZ2UcL3D=ON8>Q=ON8>C=ON8>IܩR^L {޽3'L {޽3ZO΍NLBv U$ U$ U$ W{xhY["aЖ -J^NE`6Y`6t `6 ik-$i[q|Nti[q|7i[q|Q iܼ Kp"=hp"=tqۿs$x ;Le gx ;Le $zL6^s'ؗD $\?T&s ;&s &s s&s  C}W ;b #yjo}u?#o}u"ɐֶ` /Ro]:XOI K e*h -&VAR &VAN/> J ~I> G? R]  :ev ٯ펶˚N'̕[ɿ a- a_l   \?ܚyl u5u uu޳QBdU?IvFEv (D8 (D80ٕ_SIG(s./ cSx cSx&6<eHl $jU#SU#   i _#`zz ]t3SHry! J m=8!'(re'Y*z2y ,v9|?.G4Oa5&ve]5&ve5&ve5&veK6n+GD6n+GDR8" f?@@DF/f \IF:ѰNx`tR5@ RNwmXegb- ^#d*Qg4s gѤ iTX iTX (j!Y j t nO^  #r6{?27%j7s7 $7 7c#Q%``%`` d *sL3 *sS$ *sqE/RbqE/qE/qE/ qE/]qE/(  pMlH  9a{Cs (J8R (J8 (J8 ;sŞO?(5mCT +gZ;.~u.~u2#H< '2&ds/vmE|Y4pH2hq;ޒ@6 #@cR!Kj@cR!KtB]/H$H4H2H Lk)YTNU44]ېFa y*d|21SeFd]eFd] $f3q\BVLjէ4?k Mk M*sI1/ z6 z6z6 j}o5O #& v Z kK ( kK j##QeKLrLr t >dK"q"q"qL"q-ܫM]Ǽ ɐVgy qrN ‾w# xEYpo D M D M {j {Butv t' ,lOlO lOg&0 iw{&]h>z ݽrY$a}N (|ܫ(|ܫ(|ܫ]P]!1+P i{T{{T{:q eXjrN K#8rN K#Jt .Q jyR=u{Iߎ py?k$ F>4GvͶͶͶ;Lr?{ #j j R"" c '^]i' B9FM wJYN_} 1nj_R1nj_1nj_C1nj_"1nj_ 7 c7 #1\;u4 k3n?! B3 ! B3tδG0 ^hW acbri bri abKv j;c YjYt!QM,Yѽ4 W! m [eM$[ 3Á/c"N *U:rbS)t? c(L"MGD<jc$ c$"c$?U=/K R #\-nR $y^($y^a $y^&[Qn&uv, &6 ,(:AxL/^n 6e{ >FZVTO s >FZVTO?B:?B V -KM@z (On$uPWSi<2WPQKW޲RX $[7wb [7wb ,[7wbjbm cbm #DqW;qW; v^Uv@ (jw$ s|[ivH={Nx3 gP@;v+%$+%+%|+% $+% iӋOZJEʲ6  & ,i=9I IIK{NQ De&4 M "L7Z^ݢ?zYD?zY'?zY*?zYR ?zY ?zYHҫN Hҫn ea{ /?s3 ,g,Nv}hOs 6$& -6$&s 6$&h R7XR7j~_fA AZE.AZE.PE3(F+HT$NG}x% L`wjNM;OAPԦYjR[pc r.\FFV5C ^ EdS|fL &fL &lgGm%ؘ[pˣupsTjJv(WP |yJWPxdZ{=K rk rr j  j jPF (PF Ԡ?o $6_ZZs cğ ğğ 2M H" ^^V cqntS1-. 'ul3p ,"|4t/ $kE/sK`gG字<}J#}z]D}z]\h&)\h&)a i,(i>ɔi>ɔ  g@q-#&"W ,W >v3  >v3s"0]ך b"!!ds´<?7t'ۇ CvD Cvf#la· (yajIhj (yajIh a/_R/Z`p5lc88ȉ,??cZ s@^[Y $@^[Y ( @^[Y@^[YB@WF YH凊)VWU>s (VWU>s sWx.WxYWxaf, a[fˢ if@b[nSrrQu+? }H}}SYjb!:- -A;v!ٴ" `.L bB KB @ɯ @ɯL90^ mW*tx I ?(;yV _, u ;?@&շiEcA mPR[C= 9k= 9 :ђe eeKі𪦻RPZC8?5b3M #7a ,!2{?1!2{ (  (  (RSÐmYSÐm  IR)) UNs ?f;m"8-pmR(= cq?K!oș Z3ž]Rd*h '^O )ki , 1wf,?6c*f-jBW4g?D~2<F0a=gBF0a=g $&F0a=g F0a=gjGW\(ϧ GW\(ϧH4%H4 M^yWPQW-KRZqXZXMzB XMzB? d}t<@Rd}t<@e9* \e9* $ e9* ,grtrn@S[oD>@-ys^d@C' {=t e {=tO a#+`8f`k?u5[l; l; $ϗ?QeK)(Q%N.E.D\i iE.D\iss4qpl}_CBl}_Cl}_Cl}_Cl}_CN l}_C{wZ{w|%8|?AA o?$JЬh  dA, g6!,c]b:O[z:O[z[L<jʫ ̠q[xL %e 7!6 n4zF]%GXjs\K>Xjs\ Xjs\׋iay $ګDu7?˭ 7)-G'#'eG{rilvn` tS{bMX lctZKd[4 d[4R4RW\xRW\x &<! u+? u+jpxKpxKHe8ȸ !S3ed s!S3ed s,fKU],OQes -0 1c~Je a851JNoZJEU LDXA?MVG, Rr%~?Wy3b 3Y \4&5y_z~w=_z~w _z~w A_z~w w_z~w >_z~w e0_z~w ,%_z~w i_z~wj_z~w a`i@e {:Cae09\fk-jhhFSmD2ptU-\jtU-\ u\r?vq2v/x }lg[ $P'7$P'7L$P'7$P'7S.IVB/ü3$QYR 7c-1?BjC`B?Q3 vQC6S e`k [>v+?\0\0N\-lj^ lvf$h]:9s h]:9k kI_rm2 ^u R=u w `C|\]b]}wR7 N2 ؾX "Q 0S [uY[u$l#"Q$l#"7=X&<0_<0_ a-:e+n_ d~w-~w ~wSuk}E Y^.O* f,OH&$YLvԊ|YLvԊ s*dj4? 4sN i N h.ҾpuJsݕDjݕD ݕDbWyRuM \;LR r]LLZ]LS5]LQ]L]L ]Lܼ+󺑇g$ej Nr4 %Ko|:Ko|:j NXCm_NXCmQNXCm NXCm $ʒSRpZm%A`s ( #ce)#ceR#ce ̘'  D-Rh D-[IŮhx `$I^ cI^ #vwl|{=~$>F-')%| (f;(f;?+ 2:Ȓ'R<߆E>ٔY >ٔ@]*fpA}sK <L1oY Z,q Pٙ^w}pݮ?l_& l_& jex/UMN78| (}] }]d futJ#u ~# ?{ˌ+L5o  8erO=t erO=?ň  ,;{~sЮ2Ю25"^uN| uN| ֋ tfUBN R\2jR\2 IR\2 ,5R\2 ~H|X ܔ0L #c8 G @?$ @j$ L]/d)~[!F ",Sj|SɅ^+Z nɅ^+Z <Zd g>J  BWS_a D.% h|A%|R"A%|R A%|RA%|R ۚÐ?ۚÐ}4Z vG w. i$h YGN&B8]R4}Q1T 7>8;{+r8;{+r8 "S9{-?{ - BUNߎ \GHDPe Tđ> W| =`~\A aI<=5aI<=aFaFk!>Nk&; gk&;mvmvS mvU mv]mvmvLo47@_o47@!o47@o47@o47@zh RO~BF!v'n&5Q!t|RYJFo4JFo4QJFo46m  tO (tOsAYkvXR6s$ {9HY9H9Ha#ĜR Z8N;-^,M/DcC DcCKϸpT71h4 \1h41h4 > -$> -$> -$ > -$Er/& lCC` -O%G ,O%G O%G O%Gj ΍T ΍Tj ]ѷ v-l4wRbO^ j~z ] 3SBC6;T] #L (-Lh+LLjN!^"oV #NE#NE#q "+zv% x %  *3bj3q:8$g 931B]=OKo9?p͟Y3)N E+E #E:7E:E:JYsx|LH`1NS V UG>SUG>Xvg0 (Xvg0Xvg0tY~686j\Wa_$DNr_$DNr , _$DNr eHٸ2q@,q@,R q@,q@,rۀ uޜ͙txeTgy{ޖ[igS{jL݂?{jL݂ M{jL݂ :{jL݂j {jL݂ i{jL݂ UqC wv2pNm. m;}c%i G^DQR s {}'dڠ?=ڠ 'Y7²sY7²sjslLn iO.: k &k & #NQ#N̍` gs54.s 54.΅&ojo} Z891d?ֳ]pRK j{fT Ak1}~3$n 2SYNd[=)sjW!<vFpQ) ,=xOm$_Nc^mskQ9vΞLYS,(Mx,Hb.^0)q?L 1~"XJ<1~"XJ<L; s;; |?\0J8Fv녃GH Js H J N_do , N_do  SVZƏj]T$EG ,f?Rh="gh="gl~L)n5OY n5OLn5OSo3Cr?r?z-9X"n "{fJ! $~b]~ @Ѽo b2 !S % |V% |V% |V2r" {Ʀ UT?UT* s&gX uVJ >VOHSXJ~"TD#: U=)}7tU=)}7Xhp:+ cYǔ + Yǔ +^P M^P M^i `4]D`4]DR`ja:6LahUv #cNDaRcNDadܾ5 gq Eh^jSp_J t~"uA؁?tOe~ w 61;k¿ hJ~{?eh.}r%b^ڙ%(]# ^v># ^?.#nCAHv2LdBկ9FYttJI K&£^ MsRMsOH8bsOf2lS//KVON [%sbD  h5'k-CީsP<ju u+?&vH,sI?t~immr*v? 46c :׵SNRB RB? |`Nb#b80|RNb#b80|MN Rͫ'q 9"LKa i} oGÂĔy6U1ÂĔy6%ÂĔy6ÂĔy6Ū` ۈ:O]/DPP?AHv) /AHv)jD"L5sIдks NYU7v]YRLXz[ ef.4Tj0$ss8FZK? K &ģ ,4Wt* (>UӮvtvt YW #RYW YW a ӟ G,p*9[̷fI j6JօJօdS"GOzm # "pot"po "po i]BS{O'{O${O w){)w_ $ ۵/ nzj %8-;|%8-; ÷Ns$ s$ \s$ s$?"<+ZSN; DCN Ly? '8ljv fthtfthtfthtnjzmzmk\! 0ć5F 0ć5F a6ļ? [76&`;A (?E- "@WhR@ƶR?D?k Fua?Fua $P0}T_pO VE8f7ZGu0YZGu0Y^Q7 $`=́_] `=́_`=́_`=́_ is+!Ks+!CvDDI8vDDIvDDIvDDI vH ,x1{q cL}  ~/0=`} jɆ.YɆ.YQЯ (@0r*N h jGz&??I I TuNByF[7 R?VvU  c: is---<R/ |:̢?_JnF]@ bVފZ+ XaQ 7cq7cqQ? S%H?!S! j"^\|- G/#1: i&1: 1: :F=*FZxI#FZ L-ȯhP\ SqSqS{bWS,YF| _|i Fj_=cbqR dA^ dʡ"@\ s eYG~KeYG~hR~ \m>Ym> mW Vp+B̝?sE ,w$L*w$L w$L w$L $yO5ړ , yO5ړ yO5ړj yO5ړ }|Cf= }"/0 }# W&a}# W&}# W&Z }# W&zy s^+ jR&o * iiiji?wNzKߢo dnvx !o/SĬF* qShDMWƁ?y -Qt S0v v 9f?8^?g` [7O@,,%Y/hNmB]UE #ZHiK) mW! ,Aw) lI1crLkۥnd}6'ڼKZ?: ~A m L>KY7^aOYve^aOYve<P$K!g& !g& (!sSkr&Ha`K'T(8 v-0Ij0FQ*9=wABz?=Mz=Mz =MzZ =Mz]?, ?|i J\)JT?J16vK̭Ot FR_lR_lVR_l7R_l'R_lR_lT(;$U;]T˓_zaQ4J b3D2-b3D2btl#j sNvᖏ[SMZ 菗sKW}N +7, g#RF# Q[g\`U D,$@R Qv͙tQv͙K   [wtKva<7NHa<7N9/ ?!ڌYj U )-1!-QpGaAo1aAo [aAo aaAo r_K0 dcXgxQYHǭ.VRuNZ9*F)ti.!4ti.!ԒJfHe`f| #D f| #2|ts(r *s(r %EH $%?[)l1V)l1+SR3DGRE3DG4"O, 4"O,6!#g 7ɏ܇ m=i|SAi(ybN*q,N*q, Oa@Y QZNYQZNYRkyT߲ qUZ,?VR KZ* [NNԚh` :eNHG_j gg.JYgE 0a , kD7U gm0) #uFE vҨWavn3Y{[Cks |n}a,#Fsk7ҙ2P}2P}Uw"?S_dWfB WfB (WfBjWfB < <JY(}.e $}.es}.eh }.e }.e }.ejEL Of<$ HvjwGxI (S S?SEs ? ɵ $ɵ|ܶӂ#?秉n ,5"1jX/bkxzz?铡$TsQQ8i0'?c^J!*Cbt*Cb}dpYd}dpYs ֟s ֟;P۶ ܍G܍G _@/ unmKq%|g|g:5#8"ޫsv%}W'(0P+.f6eCw2 >MĎU >MĎUB°W(MQ4~MQ4~ RdWd^V3* _@tgduSIh& u(Xju(X yETP| }NӺtt?.ѐwo w {wt폴?M N6/<~Ȥ<~Ȥ 2:` -9S? s韎L7_wr w bh3D bh3-O$U dV ^}.A7 \}.A7j}.A7 ,6-k6-k6-k?|A L0tLm0 Cz#^?CUj jPJ-ۧXh '-ۧXhs0v50 0e>7|3V9P??/$fAh3#C3y]bIq.R ~-jY|K`(sY|K`( Z?P!eZM#ɂ!b1[!Npsjq u@RwaHnQwaHn x/;R~L7 I~i`؏c.sc.s Xo}a zJ?zJ Rg_RJWFxA6 n;zt";z ;zs ;zC S!s (B,L$B,SV@La;X9 #  :ch p_Ũ#etRT setRT m+.n\Roƕƨ`Ϲܰظ Ϲܰظ??{5 \ҔT\4i\4i\4i (wy"ueF?3SFNF.<gk Y ƣ棭 a!H  m?'{ #frLDE (LDE LDE \LDE3H mYb%@  cOF=N j\#'ǕRobr 1r )r +C.$ ceRce% <}t+@ɛp,rp[Zvj 7p|:Ai{j:Ai{>`πIR?ܺLb?ܺLN-w5? UYoUYo|W&*W&*^]s@ # ^]s@ c`$` fG'iT:,v iT:,v lIKZ #m ʳC{NxZ% Mt xZ% M (!T|v!T|ìj ìj +͟W4{ (oJ,"oJ,":P ]V gZ$gZ$$~1N/OȄ ezxbPN讷D9.LN\}FSA)j%f Q̅PY s]SH*Kl<,*N ߷V0m#߷V0mSo|MRo|Mo|Mo|MQH["%jH["%H["%)s& eT! qcGI ? ?QU^[EQ ;0R:܎A/:܎A,:܎A):܎A(:܎A$:܎AQ :܎A ;Dv ||#jA3matT\)= ,@\"&Ͳ "&Ͳ L`"&Ͳ ]2"&Ͳ "&Ͳ Z "&Ͳ  "&Ͳ S'` +6h!:D,@-J1ʻRs-J1ʻ.r ?Q2 9,=`۱ ,A =$uAr;o_l n A(u^ B *K6g5AkNK6g5AkM6}*hV/fW%oY®Ɣd_6rj_6r ,gr'+R gr'+iea!o3: o7$pŨqz+P(r!yByGk sM&] 34&]0#s ,*t f4\Kߍ4e%Ie%Ic9RE E P}P} P} I3{lq!X, X,Kϴvv a9j3uPWNC3uPWNRٍ%Ot2z5ý!2z5ýf- #r ,5;e [&aTj=[&aT?[&aT iAsdAsd 7Y  7Y @[ ^1>Qn? sseb v{G! J39"eNb, i_R, i_ /٠k1o8K v2r3(bE9 ~8s<ēoB(Rk -C:("Jb{H\M@: M@: N:<|PEZRkRk S| Yj:O^ (_|va FI$ aI p?Vsq7mw! oLxXp{>Õ<pDq, {2? &K.Z9ed'a9Ȗ[A)i $+V) uCD iL$466! 466!j466! eM& \M&q[es硗Wv硗W 硗W w{6L–G5–G5rkKP) E6\ ڃ6IrYڃa=vkh? ?.}- ^ ' H  H OL] p/ D$8 ($8 ( }- fmc 3qާv3qާ 4 o` 59~`2 R7xkr7xkr7xkrj: Oj%;eZ;eZ<>ί=(V8IҘ: $J-v/P*T!"Z^_I1 [ [b=Dhט^ hט^ $j<OoJK]XpV>Seq6o;dYvɡD mw('!N2{7[Y\"mz."ܝ m~tx󅒹pRlo]j)m|v`L v`L ȫ-}"%$y j%$y (u-̘}#\j˥^ ˥^˥^db  -C|L ƲWl7 ƲWl7 x ,xBi Së nF r)nF rR ]'@N avjkavjkLO@:O@ JFSJF8 8 r)~r)~Rc!A7OfŪ 4evq0q0sNe! !=hb.K,6 "("K "R! ݌5?"?IM(,AcoR 34WD? 8y=8q CCZR- CCZR- iCCZR- Kt#L@r3 NO?c#$vf^VdUf* x S y&o۸% D>t@D>s%5kRx@Dvg>A&N UR0]C B<tB<KB< [o1_!T_!T$*BѼ^+2*j]"P ȱv?v?ǥN5k8Zu䩃 kjJ[ kjJ[ B"KCpx'QWQW ,̭aeׁ ӈz7_QZۇ*T v ݷF8, (m= #J$xv$x $x  sa2\ /; ,$c6$`  <|י|י ash2ueRFf )f  {[V  iƧt2 ͺ!LTY?" :$'& &K&& &d(w#L6K,u[jo 5& yQOL5& yQO?1K?F`9E4>G 2@G 2@If6ӝIB.~%8JG$7 K2 9<ME nQZ}QZ}QQZ}RYmp?_7F1n"-Sze ze |4A k|4A tݖ?@%~@[ *5??Oh0 {q s]; s6F .?\4 #Owޤ\lPLihk8mOd k8mOdňV i "ɦ m?̇ޛ+Q+QQεoεo 9S& 9S&JҸ&rC JҸ&r JҸ&rQJҸ&r?O ?O?O?O ?Od ?O?O?O&zۻ- 2N"?1"v#1"1" %D) xI'dp:~~e9 `^Os>Ds>DDs>Ds>DX<3T t na l 4@}0 %Dq'4$X]| 4hZ7H* 97H* 9t?ޭ0@h;@h; AT(` AT(`EmѮY EmѮjGD'b/D`O_bQsĬ?Z̻<6v [g*|1_Y0ghWRghWPnT p2>q˞o gr87jJr87xkۂyr7ޠiyr7ޠR.yr7ޠyr7ޠ yr7ޠLyr7ޠ{W|ᅦ TT; TT;BqI BqI i BqIBqIttX'?l c"pNݫRQ%tAP_x_xK&aU/tU/bU/`U/kߝ! U$Rl  ʮ t\M~t\M~02n02)02 {H״ {H״:=6`kp. kp./:猡/:猡j~ڜʲݼ $Һ|Pg|eAtL Kk tΎzQ`JĈZ`JĈL ~BX<7l|G?\ \B{D:-O; hL 0Qj ;%y]JR)#BKXAT5M[6?M[6 M[6 i;x ;x|̪>W,̪>Wb̪>W ̪>Wj̪>W i̪>W̪>W%^ $%gt)[Ϊ ,CE, *2=C_4A/t;`af?})&@6ARsbJ:yl5 (L*sM,¤1>PjP?Q P?QP?QUԳLI( UԳLI(?Vj2eYW< -\-2fo`x!މ f/Kkvhyl9Um1 ysdL{y ]$%'4vQe)p*iSDpĶj =Ķj ĶjtĶj % #,0Dr$ʬt!r$ʬ"^SnY "QgjoBy ,oBy ɨ}V}QzWb~ $-,{GI -?# yXF -ԣL}|zo }|zo}|zoY}|zoZ_?̱rd1ô i 1ô 1ô 1ô?㓅R 㓅R㓅R ۜ!/했>5R >5Rk >5R a>5R x'CJl9RJl9 CD1CD1vnBw@=C\| c5d9FErd , ۅjdh.R dh.Kdh.$Xdh.#9~sRD ~sRD| ~sRDR~sRD .?-.j . (#xH +lg* -Kk?16ł+;K;vd @ aJ?@)%j@)%`DHj R,J4RUQi{5?UQi{5 XN[wf\6],\N"cMR5d(g`2 ;d(g`2 f?Rhhpc io&jll2t09V vU؇ y|&,- r7UحAK*Q }lh}l }l }ls >>Ziw8T&tZ5"R 5">]C4:>]C4 dl x9xSb0D b0*MO'BMO';MO'MO'MO'΢R΢̥ب[@=vH_TH_Tנd נd $ؕC͉mA!"h3 ,"h3 DYGN*E *E_}M* 2~ hR-2~ h2~ hu ߋo4ߋoߋo ,H[#ߺ!"Y6 f"e^auǓb"e^auǓ "e^auǓ c'J$ 'J$ .߇+.߇+R.߇+ .߇+K2K{6-INr #;Z\miIsB #Z{:W= f|' 1a&=/PH_)[$9H_)[S u# 2)*jR6Ȗ R6Ȗ̓g/_%c͘R){S2dڱ~ ,43Qʰ *?_ [( , [( [(  [( (tYwt>QS?wLR: j1ͽt vN%XͯR|?OxgswG"wG A.'bƉR-, < 7J,l< 7J,lR>Z4?1d[BnbvD:D:GF. <GF. GF. Mu#R9O"^ ,R9O"^ U8+6H? f큔 fOeBSi( tnx wۼH{w m` o#.RˌNJۗ ON? u0QﺐDŠKU%U%= ?.= ? = ?t1N!G{o s{okj2<鵆4)ՕS njG ,kHBƗ w52 cab]  ݨI *|]|19>󉜀SE>󉜀'>󉜀!9eW'r[K r[xzD8 \ j8fAxErJ#ߒC^ # FBL FBe FB  ^  ^  MǮIǮI , 䜏䜏 #Z 27? , 27?s5=*?:lD ?:lD (Dl8L DzesD:[$ D:[$ D:[$ 2G*gZj G*gZ cRqj"u?Rqj"u iRqj"uY>]@ (^enB k=tJt^\ajtx&7 zO]szO] (|1Sr #7ԅ\[w $D2k=RDRjI` , i:n8]nU n8]nSn8]n3:yhjn-n+~[+R XT&d cQ7k)ʡh)ʡhȎtX|s+l |Ssz9 ⯼ ɥ͟ ɥ͟ UpaaUpa>|rutP N\Js2 iF8RqxP Q'󊝩hn?8I9'W WI|Hu4J+I J+IsP%U!+C ]tz ļ ^#b@E%ڸf #(Lj*n0Sv1-.1-.4{{4{{5o)rK 7:]> |:v>"P4S@|}6A1ONH TENLUJ?t O07P Pʥk{ZU5Hd `f" i`f" \`f" `f" ab+ NeU/U[eU/U[Rkg*ho~B tP$?VvO DvO Y|f=?~fH ,VeN 9stI ~ KT]TT8Ծt8Ծt#O̥F`t1^qm, kq K KuKu xK" xK" i'm= 'm= M񱔊Z j |桗6 z%i'(Dd?1(1(q)NF~6GDL #Uhɡׯ?Uhɡׯ (U@3?]³i8ߺv0^P]._R2Z `N`lR`liVǦAa jĞy;hjĞy;st@.-Ut*w29 w29yi8 #zW{r1{?SǨ# ? 1/i 1/iR 1/i]IFj3IFt/IFkX`@?hp\Ίi*8 w2[%j:hY\nY\nt; ;L !NP8_x81| c p׏ń0t} n@s܊s܊, \, B3o DTS-t-tj-t /-tY& 0+Fjd2IMR TX"$ TX" TX" TX" TX"QʽGyZ $zO$Sxs +%VR6[ b'Heq 'Heq -E .Kj!k /h<-?4- 4- 4-d5-J1ZB|ذ $B|ذD?4 jID*C#QQ Rf $Y[)[S g^YЄΨ i^Uk_m?[s_I ^eejhU]{3 m iγho MRo Mio MGo M4r~> atf\Dvt0pYYvt0p >vt0p vt0pbvt0p wMq& .u+&!Kފ<{^am {^amXU*=i&7YvV(jlBkx#:dʡHIZX$7 +<- Jv Jv tbd]<p[FO\N?YP5 #ԓ/tԓ/bԓ/ }|EX7 =v ׀A`֢K ︽˂1︽˂Rj^5 Rr -Rr ׹)!z #X #S>ћ?|WkN0pc$~ڷ z j 5 5 , 5 $5 5 PO홚u5  \&ɖU$Sz'[ kC !~d^ !"1X/lBS/lBS/4Nt0H6Is?6Y+071W ;r5`R?3ˏ,W?=*c ?=*cE-m,vIb˪[?Mew#qOD\iB?MOD\iB OD\iB iUOD\iB OD\iBjRӦTE jUaiNEjV0lB \sG2\\D4]iۇ50]iۇ5C]iۇ5ddV<'Eicjj "u?wA8"R=wA8"wA8"wA8"UwA8"xR3M7~iC ŹQ wSz:wSz:j*Pl%j*Pl aH^ kNukqVZ^<(ZEuB&S#OlZ Ē*UXQQ.| 3D #o#oRFSu JP cF@]JߣS%plS%pl] 1 `VX~ W} W}j ?r]k!aZ ә!ә әj,hKBI8Et]? |8R,2b!Xjm9 (d&N3;h4j35&zt8A-m :&B { A*<AP[6SF /© F /© (F /© G2u/G2u/kHz.E= LdhMNKi:DRV!b cY}_ _=_=_=Y4_=th䪆w$jT5?kh4 NrF 7Kr atO~; NvYy]Cy=K|CZhܯN |CZhܯFL{' =\3| ^.Qo'F+ ach]a ,]asX^:#dK@X3] @X3 Kh֨l Kh֨lKh֨l"UۨPǡ/ %Xb  ȟgNVȯͶiZ' ΰ=qsĆ 8p^tڂIGjA) "jA) $ 㓎&Q e iC)g yj: ,yj: ,ei >plմSմ ޮl3Y{r}#rv?ʬ)ʬ) $ʬ),v)3,v)",v)K,v),v),v) ?2R:*en lT*S&!) (`[Y?d)j+ )j+ ,)j+j)j+ )j+ ( )j+* c?0* c .$;LCs.2% .2% {0^ H5# Jm}KKQsmd?T<T<VЖZ8L [Ũ,Z\pPs+\pP\pPj\pP \pP (\pP\pP i]yi6} ,^:#uUaXIbMؼcdbMؼcdobNhkF6@?m}a$yI%>0tyIN|yP@? ֶ  #gv~D~DsI^դDC A&iQZfx;mX 8 8%d i} ,[;hs[' ,['ðGj/>EBn::3` h'd\ 5* ,ab lj'{?%a!?%a! bYJ-SJ-Zy2| {@? ෵4mml$a hlxu ~w@!؛H 502ܐ5BNgZ cCS Jp"Mᮘ ,"Mᮘ P7:! Y a YY =0  yϠ(- $HH$P #X]zC SD SD(iVx (mxC4?W&K? S L<׽,t#w]ie99嬯";% e>̐+D0 >̐+D0 >̐+D0 m?\6?\6 ,FcMuLK^.?L|"&l bYIy f9L ,mMo^W6Yq[oԝ $ q[oԝ aq[oԝjsD4`<,?sD4`<,svssvs svswC#Z{4 {4M5)?[@DjXaB~$R͐(92\+jtW%tW%RtW%I ,0TkC \C \%N=2L瀔0+e*k7=׺Ba6`?2zK #Ї`GF w-?F cK$\gJ y 6˺ŝ"#x8]nw $ U׏ U׏jy jy 8#-c,, 1r C! Cd vh_݂Kh_݂h_݂<<šš&p&{D - $3t $3t%W@)GP1%t)Dd.fS5}.fS5}Y6D(48Hԝ?8Hԝ :@@Z V<(D@e $Eo E GZR.ONJ/G5MJR2K4 @t $ ST"}@ WWĝIX>-*QD X>-*QD]ňdcod>Kʎ+vi "?Cil6̷~ il6̷~tj.r j.r m*q?xeN}U}v*}U}vQ \ushushushH.)ϝ؝?lb% j\h .c+[ ; )AͰ<5]%i0jSja[!kw Zb?v;NA+S";?Ș_Qц *mt|K\R ƓFƓƓSƓѝ[Sѝ[ i%2d z_Q22o i/1i/1  ,-\jT)˓Bs˓Bs |3?15V? ,#&DB6&xN*}| /j7MEJ1G45wZtHocHj?J4_T$Kr]->K ZK aM+YMwJN? Q]-; N^Unݎ ,^Unݎj`$cF♘cF♘iޱB|x9)0(&@x9)0(-xQd}?; b‚qm'‚qm' \‚qm'‚qm' …No \†k&Q‰ ] ‰ ]‹ 7TŒ%*RŒ%*]ᜪwa@’ 6–$1&?—w6~š 4]?š 4] i›Z%ORpŸ jMŸ jM¤v2d§#Kf§#Kf§#Kf§ ª`܍`«/v S ²M4µp!\ ¹;N¹p &¿ɠ# ¿6go: f p#Ka $3SMx9rjSSՙͲ ܤݤN Ẕ*Rn+>PgrВgrВsRi6# 'ozPSt?z5cD{)ּS({)ּL {)ּU  öF@%0ö.E ýWLÿbOC (9tiYvӅ ۆN1DɎ ɎCᕹ ?a0WI.?# U?# U 1 # U # U Su# 0iV2V V]X3,N ƞl/s %⠡*?j~Mzt78]yO.* yO.* I ? akc:s$ڐ Ga/-eD2J=ڤK3h[qN60Xl? 8\eY *C_}AhS=Y۽ T^8 $T^8 iZsC 8 +a$wgNET c lZKn?UlZKn nEnNx?ow#/~qY& .xgytc ?ākH Ă ]S7Uă6wă6w Ĉ h8Tĉz ĉzRĉNeWď.֊9Ĕ֬Ĕ֬ ėJw'ԉRĘK;tKěģdG& ,ĦlO|}ĦlO|}Ĩ4pĬ9.\: ķwķwĻ$3 Óu=?̫YG c %L , ѸݞNBW1S91W1S9 W1S9ԋ]eh ~ٔ@3k[[9*f #15Pb15PbQ}=#$ jD12t0? }Qu gw 9l!) ,`S X 7 7  ]E a1"/q"/q"/q9 8]6=6=N k , R ("b<:$"b<:,ՈvFD#,ՈvF,ՈvF,ՈvF,ՈvF[-,rs1[wb6_AH7:$cj+80׼bNa 8Jw \ƶ>wsƹmR;ƹmƹmRR?³$lG a # a c 19O[j/y\[4ˮr@͓#' :[Dvh vh sׇpY ։Yvg։Y ։Y 3\D [ AV[$HF x HF x4%  LPl9Tjl9T 5T`?T`? aR*2dz lQ}$y+k>?DpLE ( eQ(H i2ZL2ZKe[9- *᪾t#! C #k-J I(gt+NJeaǎQtSǎQtLǎQtǐPkǐPkǞv{$TsǞv{$Ts Ǟv{$TsSǞv{$TsQǞv{$TsǤ&Ǧ$lTSQgRǨ &$FǨ &RǪԕJǮ ]Ǽ8.L Ǽ8.LtۅaʙLc2 Cѹ 3 i3 a3 n #VN׮R@ÄN M' ƢUR"' ƢU!',5Stg9'=x4isx4i 7BYQ`D *.Lo?rW:kb6; D9fV=qTI ,I4:սJ  VcUGa! u+q.hŏ $+}"'a.@L/h 2n]2|H6Q13 7  =Pa@ =Pa@?{Q` Cj|XHΦ|vN[`;bu+ݲ d<(h #eB\5 Slvۈ+ lvۈ+lvۈ+qTEduu'B yBZ9C8 ,yBZ9C8ȇpJJ?ȎzoȏzBoCȒ]OBڴYȓ? ȗ"# ȗ u ^ȜF*aHȠ ݰyȠIȠIȠ[7.#KȡICx ȡICx ȣ@ ȣ@Ȥ2lj1Ȥ2l!Ȥ2lȤ2l (ȥRȩH ȮO-9kkȵ|.lsȹmE]Ȼe*XSȻe*XKȿ8w^ iEǶe #EǶe crf2z:A>9dDGy 9dDGy9dDGy gA6 A6B2]sFBFBHϛXm@IxP{`d^T9r^T9rRS^T9r0^T9r(^T9rQ^T9r ^T9r_7Hs\6Au#Su#Sz ɁReN,ɁReN,ɁtBfuɁtBfuDɁtBfu ɁtBfuɆ1OLɓ`_ɔH'. ɚu \YIZɞ?n lɟ mĚtɠf}?ɡ5ɡ5 ,ɬxD`DɭѕɰA`GɾsτYL!RWsYL!RWyYL!RW'Q@?$#Rk5C=R Ҋ/ ӊƍ,فRJ#SSmRkHgKK蠿]!蠿U5%?  (^1^K  t d acR& cR&b!)N- b!)N j v¡P  |*QI M>|*QINH퀽kPJrn?VS.[RbVS.[`X0_Cf=05?h 3I4vMnyp>Bnyp>]o〉T,o〉Trd4G rd4G rd4G rd4G t$̶bt /bYw%xzy]u{{o }|qS}|qL}|q~R ʁ4qXʄz.ʅ^.ʇOc* ʋjL ʖ#. ʗ]Vm ʝL $ʝL ʝLʣ"kvCʪkY!Q $?ʪkY!Q ʭuϽ&Rʱw%ʴҘfmʽ^A ʾnqʾnq|@s{Y|Eiz$s2Eiz$ Y~f *P0mM *P0mM?*P0mM հp[հp۩"9Njlaz_-D 儒Gs*j+F?j0^(Ps.1}! ySRqEJ$ӨtgPqgPqjgPq }| ;}| i}|? }|    "1sg9%VrRrRdrRbtbYbLOAXA ,*x p#[!Z%Y "k"k"I7 %ڕeOa'bb)Q)Q +"Ĉ ,.d,(*0(]43}mx?441v5;L|s 5;L| 5;L|k6;C :ůJ:ůJEmŖkGJ\[ HXY IYt<&7JVL\ MPO<*7?O<*7 O<*7= O<*7O<*7 %S$XpZ+ Y{h]bgt^gNl`  m{>qrrr( u+$y?u+$y u+$y \vaF vaF yk~?u? ~E;~-}J'~-}J e ~-}JY~-}J ˀc1d ˇ.*C ˌzZtˎ e)Ijˎ e)Ibˏ]V ˏ+5c &ːu9=v ːu9=vːFl/Xt˖d|`'a ˛WD ˝+~ xˡ˻ˣęA![ˤz1e8U !˧fkW?˧fkW ˫r˫zs:˫Ľ͋[*˵16<L˵16< ˵16<K˵16<˵16<˵16<S˵'S` ˷aK˼&KsR? ˼&KsR (T1N&V1? Ȱ? Ȱ? Ȱ? ,٘-KydKyZKy Kyf@ (\/$??"\/$?Lc R.A_a1[ CϚ ]2%s Ĉ[vO:whn (JP -Ġ1?-Ġ1j qY;\N36=.36= 36= I<?dޅ <v+[Ss 9.Z3(U esM3l[dO'S3!~J[$ *.\ i.\ .\ 3, 3,;^0Bc %?Ck C0S-Ű iSνsSyN RSZⲻLX^*/"YX^*/"X^*/"QYfav]j'hR `T3,Dbbm[ NqGj%qG (qGqGq(%q(%̄|W̉Q (̍M9M̓X%&# i̗ںw{S̠IT1J̡Q@ #̡bѪueeh̡ףlḥ,RI #̩E{a ̩E{a ̪ 뎧̫6 fV= (̵kQ8j̶`}[̿ɊO}̿ɊO}čֱYBĽRɗs[f ߍ_G-shK)j) aDKx 5K5q(q< (q<(q<+K<-$L>|$L> ( $L>B} @.9R ܨtLNY NY$K (`IY"`I `I `I `I  A]q xp{R&PK@ R|H4?:D%C/o?-uG -uG-uGQ/Uj/U i/U{6V뜎s@Ò*HdEmXt%EmXt EmXt ,F(Hp>Om> P xP xS TǙ#"RU #Xk0B Y8q=ZD> ZD>Y_)?s`&NC e=]J cjgx jgx iq=  s,ǨZOs,ǨZOss,ǨZOYx+B=2?y '2ݠ! y '2ݠ!zNX9NC)*o?̀X aꮖ>Xt S >M c pMfYb6^# V ʯ(N@M xdN۬hzmO_K .% Y,rs% Y,r.K ,.۞ .۞Q .۞K8x==?f8x==?f >@_վ?AnO C&NEDEDEDdFPs]rKo&&O MM #?Pݩ0NQ\*G cZѠNcV` f G fVU2qfM, #h#j5'Lk~dcLk \mTiZp1ws t@wzrŹe} xPT}t΄s$B. ·YY0·YY0 ·YY0 Έ1RSΊ˺mΊ|"ΐ aΐ ΐp`Α嚽1t Α嚽1 (Β*G= sΓ&4K Θ{8p aΚ"PAΡY,@u cΥB[YcRjήe:(ήe:jήe:ΰ7l9ZLβ^Kγc=7 jδߢlOε5j; =εLhD ζ8Dq?ζjW|$Ktθ$κ&n|N μ'ν#$^bο2 L =힌 ]7=힌 ŝ4f ŝ4fRƨ rR| R|YR|b7ѕ eѕ ѕ&^T@@<[Govmkҏ ,mvr2N r 3 IV IVIVIV-D;%tR O~n # XK\e hl P& #, 2 2 2o c " A4&5%|s)?,DW5eo5^4v;e)it> [?< ?H?$우j O .vOʗ9] O(<Y8R( gY\ NZɲr [`s_,p -\⢐% _arAC,arAQlK inm=UKQnm=UK nm=UKDrP c} [|}WfS]φTbRφTbϓW |ϓW ϛ}[`ϛ}[`Ϣ,OJ ϩhJ/ $Ϫp*Ϸ0n asϹ0W1kϹ״(g[ϻ%A Ͼ JG!tϿ@3yoh cϿQ H˰0)HjӡkKЂ@ =udJ8f =udJ8f =udJ8f mرyۿ رyۿ ( Vr q켆.켆. x! Ku$k{ u$k{RA s.\j{<ȶ@j8]^ #؜jr9vTJ ,r9vTJs r9vTJj 78#78 7878 78m? ۉp? # Hqo 2ڞ ѤN „ uR,-1o 0άS %-Jt)U0KR6 (6 (6 (8{* 8{*; ?$zJ AT @dBZD.؏ \Eߥ3WN FSp FUAGuLAkJ"pNZC)]U ZV`|oHW?V`|oHW (WB,)\" aT܉ -m3d # n8\8oerpj-oerpoerpoerp ({\a ({\a {\a i {\a ,Ѕu-?pЅu-Ѕ,ъ?Ѕ,ъ?sАfEeZ Н75~О]LJ;Цѩ1aQЦѩ1aCЪI LЪ.<ZЪ.<ЬQаjа% иC2TNй N1SK кl11ZU[J=R IUR IU=sk s˽D}9mϺNfܩ ; ɇ ,}Eo2?ce=(}|j]a '|a a '|aj '|a '|a?6Ȱd%iL49lSgE5  /rB q- H)^rQ,Lmn ,X$~'P<h-tnTe .XL ; Z' ?M6y ?M6y?Nj2?N??v@BJO0D myoE3SFbDAuD?GFW1LWb. Wb.YP^_Z`ѣ| cx0Uvgg"gg r w҈Rs1 Ns^o7 ?yU3AyU3A ~jhр"Rtр9a&1Sцڥ?ь[X $ю^?~Rѐٝ:2ђNw ђNw ђNw  їl! (їl! їl! tїl! sњOܱ њOܱDњOܱњI3 KџA$~Ѫv SѰutѱYov?Ѵ6Ujѵ_#zjѼ:Wd?ѽhVD ѽhVѽhVQѾ TzaGDѾ.r ] 1`9GRKs SAQ?CmSAQ?Cm|Jg Cjdu'< |еX7,7~a 7~a l ^a-^a %`LʬIw[lSuS?r s`.t`. &,Ѱm%4\| Q@j裗; N8s\N8?ʾS |^l9 ^7ł!ǿ gZ: ? vVne vVne vVne "b/ $ "b/ L& \C`Ms]9H~_p1  q5TtH[yL2 ҆A0|rҎ- D!Ґ/ Ґ/ ғ&;sҙ!qSNҝsڡҢ23N$Ҩ;[ѭ Ҩ҉ep ү{/g+ ү{/g+tҵa|C aҺMһ  һ  x38d }6t }6 S&-4 ?-/ 3;_I 65` ]-]-b2 i@mɠYmɠ mɠby!zt Vd7 c5@ k5@ R_ =*y :R˸Y  r 3 s!7QR`vBg$ ؝ja ؝ ؝ #Swۭ#Ti 7e:t;8ziˆD?w9ӈh?w9ӈDBdF'=CHGpk #I4O1 *R<'}[ Yܡ.&e ^Κ$_1(cDTrTcDTrTc2Ue(ʖm #k?NLm/~uy uy {4NUt {4NUR{uԓsŬ`N>kƧ 2Fu Ƨ 2Fuv'k i'ks'k t{h w j tNiD7tt| 6"tOI!iKKoc;"Mbc5Lvz̅N j R#= c,z>3S04NQuNZ42 G,o^+HmӞ+HmӞRe (6n*iոp#ջ]s ջ]ջ]?AI?AI’q&¯ ǯFXO ǯFXOm$ Qab"t8e?sՏi֞`֞`֡(J`o oYk}?2R,bc}R]oGCCr 0 ,0 7 o((Q ͼ ͼU ͼ~.yjٟz~t&% !iVo&TFM&TFS!&TFU*s* 0} {1oĬ4Iv 6ծFpT2?8Y߿N{ 8Y߿Ns8:. 8:. =cjE:)E:)tHo [J0< J0<tM2ZCNU;dW`B!d`swxbqs6< Cu xy)*Yց=4!ցL=>tփ9͠ 6փjx;քsօn1~Z\$և! V) ֊ B֋GzK֌nv֕-?֛F;;5L ֛H{ *֞--5֥+,'CN֧RH֮K<< IR֯xS֯xRֱ@q. ֱ@q.ֻ@]dSvֿfۉZyUv{91p {91p -׌癵ھ*|:5&HIpy @@)kEaI/u (I/u [z O6=#NW RB^uyMbZX/(g?#,YzU?(u R/3gN4m *A-#1DH? uEh|GaK2NGaK2]4$K^n^nSaeWVhbk((Rc-R iq5ONDk 9R-k 9%l_v NpIUD soKbQ soKbsoKbCsoKbsz^N׀ C׍Z+׍Z׎R*0L!׎R*0 ׏Qwhs ׏Qwhs דn4 זV<_ח5(חmי&Rלatלa ף ' ף 'tץ 'lשo׫A ׫A׬x[׶-{'Hh׶Pɭ/׸m3mjmgLCt mgLC %}sR%}s u* a u*s޵rg_R . H?'[7}b s)[7}b \o-!?0h;? 0h;?j0h;?0h;? i]? i #V s #V^g_yրd id dsdj$ $ < ".K&jP'gf 'gfs'gf ,+i~QTkj++Q'++Q'/Z o5퉲;BG v<;BG ;BG < Еpd"Af1uYNs| mQUKNR5F_S͐; ZJjZg# f!$z p@؁p:tr/rs_?s6'Kv cZ sv cZj~^Sr~*7؃9Sݬ؇1_Wt i؉x=7 5N؊xic،ci/?،ci/،7p-S،7p-،7p-؏`múvؘt{@ ؚL]> ؤ˒ \إn6Sئ5i ث&c.س~ ㋕شYxaPشYxشYxضQA ضQA?ع%S7UUYػ&F ػ*?K\ EcEcUEcEc P^sP)>< k4L ;Out;+s a;+s Z[s [s;>?#d5 #3m)Y #3m) #3m) 'sURlck \mjVtoIrg+}R vjVz;RzϪV zϪk{" 3z~C0 ?فlBA cفlBA #فkWjٖ&/3٘+ ٙQ/ sٙQ/ lٝS0oV ٟ4&4 jٟ ٟ e٠^~ ٢]Rr}L ٥ ud ٧SzdٯP ٯPٱܪ aٴ&Z.ٵ~ ٵ_,o bټB #پZPپZP6پZPپZPٿ/h0xUE ٿ|A8K9 (n .v 6; -}Ѷ 㴇>Q9+`үP$үPR Ӓ3 aR;Yzz;Yzz8< (8< /Y ֨bR綀Fs- #*! N8@w;^UC;^U;^U:Hk  g $ g gt gY(Lj/yDsN"M| G0"h$ ,"h$ $qe6R$|a,Q 5-D/LV-D/-D/ 6~Vu i9c-= % Aw-h FF FHrɀ HrɀI}|;? aL{˗DZZ-, s\d^KmL \d^Km] P;b[ +b[ gWf?lBrlBr nBT pxB0w|ctkwú` zE׈{g]c |Ǖ |Ǖtډ Px6#ڍD ړD9` ڕ0}TڣUS&jڣUS& ڧ\ή ڧ\ήdڬl\Y ڬi ڴ#-'G?ںmKP8O ںmKP8O?ڻȍ$ (ھjwR0v ھjwR0jǤa Dd= 3cP T3cP 3cP3cP ,3cP NT Ј`#p0=[։,ع:Rݦ [9ўRv~y( n~n~n~h \9g 2c6ꕀbIny;fl# 7bOjn' &] [ l%j!jhEA #hgcQ$,R$,R'&`C '&`C a(ϩ * J;.p`ۃL R.p`ۃL .p`ۃL D.p`ۃL Q1MX? b1MX? ;);0 ;qVxU;qVx]@li 8 C SE ,EhE $F?ܻ7Kp> i젓sL 젓s ,d (^V@yݡjӊ3 1oRݼ| $S]N 0j5'K 0j5' uA?غ: {2 -&q:)lhB+A# ,T|2,T|],,T|,T| ,T|,T|L,T|. 5R4= cp:S+<  =qw{ApGv BnP 3 (Ef,bjL^|EL^|EROVrR OVrVBѓSSW"K[n\\2I \d"ĭe2Aˋe]6t lz7d] , lz7d]pD(߇v*i] w% b զe9N܎%>C m܎%>C ܑ]J4ܘ轫ܚQa1  ܚQa1ܚBsܜөF ,ܞ8) ܞܟRn~ `ܡwjܡ}6 ܡt|ܥCNe ܥCNe iܫ U;)ܭ:6vKܯܱM,5ҵSܲ lO ܶpu6Uܼ" lYܼ" lj ܼ" l (nY䱯 nY䱯R nY䱯 nY䱯nY䱯<& ȩ?}] cȩ?}] #;ZwmeU;ZwmeΏ+6cdCJ^ukFvҔB{9 ҔB{9 ^Bw$:̮w$:̮q& ,Qy٥[l][IF^c 罒[tnW0vڑ#Wl (2j2wPjwPj AwPj ,:wPj wPjwPjj wPjwPj (ub7 p͐2 QJROiT:T OiT:T OiT:Tjzڷ  c}ѳ $Poyt.$Poy$Poy $Poy 'wW +*+* 0}'u3xYQC57u.h83F$?z|ThDވH&DވHRDވHJ/氨O'hXpO'hXpQCxSzh KUd?sY ;ݝksF[ݝ1߹ݞsBR" ݞsBRjݡn%Ȼkݵ'ƜHjݶ ݷ QaݽA銣' ݽA銣'RvKh yi %yi?IJKg/=?ɦsKC ׽iNWRF.,]շ".7 շ".7ٟsH ۸ҵ;):۸ҵ;) ۸ҵ;) pHqw K` ~}]<>7! S>7! E2gaPZs E2gaPZE2gaPZE2gaPZ G\ MA+m8PbNY , r_#ZYd뙇1?o) -vVނN]|ނܧ'+ Nނܧ'+ WއmCތ32uޒSܪ=ޔCMrޔCMrt ޔCMrYޔCMrkޕMd ޕMd jޖ~fU ޖ~fU ޚp=v ޜ2݆"7ޢ4ۭt>ޢ4ۭ ( ޢ4ۭjާ;ީ8"ެAeĔS޲0Pӂj޲0Pӂ ,޵pP|޹tk/ g޻)zHy޽@"޾H|N޾Nk { jR ;9؎‰;T~ c Q Q $ Q Qs8e!Q נ|lj iנ|lj (ס٣R ס٣ ס٣?׸{ʹ j jjI h#h2sZ.xZ.xQo/|SM.?j<. Zj 7e 7e"?}<| pD yy9`gg |K"?WQ ^_|ҵ|#R)41spS-z: i-J{`1hu+6Lj$0|s6Lj$0| >)=aށtF`j$Hx=Nsxm@@ aWHE.jZ3$ Z3$ \C:& ,\mRb $c\;-dV4{g7 hI Z]t𤾑NuTMw+Oa9L $w+Oa9L yzgpQ|8̟R|8̟|8̟|v[(I߀/%ČJ߅=w$6K&߅=w$6߆%bPDt ߆i!m/ ߆Ǐߏ*Ni]ߓBa>jߓBa> ߕJUEߘKp7 ,ߤׁ<;V߫LF߮Qw ߮V ,߳ Q߸c7ߺ8 H[dߺdP&Sߺϩ/߽x!+)} s2+)} |*t}1*t}l14 ϫ6;3 &vڏ٨NS.NS.NS.]RF/^w5?e KB}sk^ # '( v '( i '(j1"1 (, 0 7o7o U&Dj2 i-!cl<-!clL-!cl&=Pp'(|NWs+\+:qU2R:v6fG7}2l | 7v8(7v8>hWP>hWP@`bwb@?BLEc9BDoٓGNxS<hT/C[K趪K` Cj a۩ a۩YcQy c̻/je@pK.?e@pK. r[k1~ibo F3L29 Hiqg% a]@aUG[;x9LS))RME/1K%eܒ %eܒN TK$S)\nN଴߮3~ E D ௰a_:VY ෞGBsdzkY"࿪Q  ӘgÐ82ʅ` g(j+9 SdkZ ,  dp#P+& -感DL̉i/vk `1`#OD}k OD}k OD}kOD}k OD}kB"l? c{  4aC4$R9C4$¦NdU+ɸDp RQj! c"r@z"r@z#@lN ,&D"-VE'/WI2mӭDl>lXű ᰄV=u H4'D  Ģm ::Q2[i 2[i ˺3QFr #J'T?- 8?-  c [ c-L?݉X_tĪq  n<|9W9W?0/Dz#tݵNp '{LBu -a^gQa^goZoRoZo^nj ]- 2\ j7 @^ amb/Bmb/_3mb/ !N?b ";CO,dh2,h933; 33; 3¸~zt3¸~z 3¸~z 3)҈t 5S83s6܍+6܍+L=G,%T>}+( ,>}+(sD RܶHRN ) (HRN )HRN )Iɟѻ R&}pXȏt!( g.Xȏt!( XTk \Yz,+N ZLIm ZwJQZwJQj[|冉a5﹎2a5﹎!a5﹎Qa5﹎lIga lIgaQwr3T+;>xd ?y2ӡ#9|y2ӡ#9 ( y2ӡ#9s y2ӡ#9h{i{ A {HK{HKach ,rH U; c␮d ␵NvK3EfPNS➒M(ESt䆰⹝L0? ⿲d(v+Z[Fu ֻffj`K B?)!HtS+6 @qI #Y˧ QB QB nQB iNw? i pks_n# '$ w=d \I (q"Nļy:j ļy:vļy: YDpYS ӧlm2iKCtj"P?Ѳ #nSͬxR&#źd*}|; ,C /.z7E4c35 8Sr(?=[QP >3u+@3?gbAFY?Bnyo # GȓLGȓLjP[k T(c? U.{#YW$Ms]a ,aңR cMh#N:t cV[%Zev׊ kU:tk+~jm&eɛCz5 {sr 3r S s㍩4* ㎻e S㎻e ,3ZRh%ի h%ի @fUoIfu ?_@ 9~zd cGhwEmeme $me ,me{n5-{n5-ʉRm ʉRm Sxa)j =az"=az"㿍QYV㿍QYVXƝTV$%oi$%oi[*c[s&*c[t!*hNvNHIf΄ c*[J WQ]"S[~M \stJ,|v3/ 5ga=ga=R-vT4"&u> .6ŨC6ŨC ;}Բ $?D#`gS?y ,Dǔ:y Pn.A #: 5GL #ER(,s9R޼ +br a佖wOF ;KP |LYfǽnމ *η ,ηοh[?Lοh[ H  $ }q %T;vxdT;vxdAp ?V qJG JGJG ~ʞJ^jh9 Wajj!.]Sv4H}K A#%2 #,aͨ#,aͨR #,aͨ #,aͨ&c}.{R-Iv1-Hl4nh5%o%k8OɓQCq{C࿾=KVy]~Mx ]~Mxd`%ky?lRЛ ,qG<u-sz?~3n?Zd@=r$償[f~kRZ? Vd=L;ߖW&GhD(GhGhQ厚uy t Z%kZ%kZ%k _zfBrbµ (µ 埇LL= 埨j 埨 .^+ yw-BQ 嬾?@宓id"WN[L2vDYϝ((J $.Z ("_@*ގ ގ ގ pxkص. 9yNthHRM󺙱7Æ?! #=U==IDRs l[#- e"<*/NRB<*/NQ 2%2% 3? 3?iFom辕Sm辕R7m辕UNmk/>@O.x )S#%S +)uj-d ڙ &/ؼ|y3 MK:NlI9:!WM ~Q+QW+ gR NT W^pXɖDXɖD XɖD][V c_Q~ dqδB h^Q- $h^Q- mك^KSr0Wk}@+B it^] wN指cxZN敵 ;.qRh Su?v2u?ϋnȪ (qͫ? We  WeÕ} Õ} !ǩ,us ~99:kZ?>3m#OtïL3 ^Y?ٷqAEٷqAEcS3 CUvⷿ9a w){l '1X'1RJ~CACAb]?cV|~ (cV|~ 6+L6+LK6+L9- cTV cTVD cTVcTVr5Ujr5UϻI QGs680cxZGt~u[ |  wvtN!^$PNYBv/(!p/r+N j,X8L,Z/--J0b38R7i_ ;x AqGR5 aIOyNv)Jv*J씅0R.& #R.&Wm)SWm)Wm)LWYWWYWDWYWDWД'j]*^!j ]*^!_ǀqc6[>bh)#E cy( {%t"{hmX ~9i.E~9i.E ~9i.E|燧cI) 燧cI)燧cI) eŅ`&Ņ`狼~rM"!u^7j i瑂ϩ@N瘌+n盝 gjҮ ҮSҮVW/őxvW/őx $W/őx 簹ZKp %? %?@%? i%?d1Efz |pmݵtcsMFOjLZktƁK;> ;>mWSH SH (3U xr Q1VC .  pҨ pҨ pҨ pY51R 6S@ !  Uv#xX#xX%“\ %|xa &Ӥ\")ȳ_ *eլ _ *eլ Q 3iUs3rQi 5ZFAo!Gi02HACPHACPHګOHګOHeYtJ!$ Sq3jVkk ]tDNi i l, t2xOz}kd cWЊ  } \Fg (\Fgtj\FgZ [H5v[H5v[i* ˓ctK'V[7裗<{NRq? 覮}Q覮}覮}fc< s c<;豯BhxN8tg趯Jt #(, 軑@C0軑@C0BG $x|ϧE`UOw nB nB ،æߟr ?ߟr \ ߟr  8 8j 6.T T ,T (_=_= i_= \--`\ob?`\obsEr01fq_ ')- _|E+#o t %˨ Eh&7| )phC*7 -aU'Z-aU'Z /Yz a5.Ґ6R&@":^xII";01N5A^-/ l A^-/ Bk7k]]_U@ \֚ یXb btd=<\ h <( h))}!S kRֿkjt}GQUuÍ uÍ v S+|/xVJ ryvC>k z̲fYz̲f z̲f{(-X{(-X ,b{(-X 8{(-X $ {(-X{(-X {(-X "v >xߊ``pz pz pztoMlh @++Kt̶36ݬAZ6ݬA>6ݬA36ݬAa!6ݬA\/h 0fĢ餅`餅`Yp魑= #魠mؖX` 魠mؖX`魠mؖX`]魠mؖX`+kw3zʙӜUE:q)x<\\`R 4  4  4 ? ? .~TUb\ 78 d& qӞsej1}ST0o%\RŰ9 bA h  "v|? "v|  "v|  "v| i "v| \:Tg KTg  "~a i#'2ːj %iI02c>=02c>02c>N02c>02c>02c>R5r\? >>Y;0NJֱd]KB{WQNˇCV cT CXAt䀝井i aբ;BaV YL ,{ ̖" soJtHr%[ R r%[ 3A3At ~'j[ uLj uL i =Guzczc ! Wo$QRJ $QRJ?(fU (fU /f<0Gb 0 s=^=^ ,A5FdDD (IDYLEb6 LEb6-\X`\X`jZ-R &jZ-RYlqN|oN RraX tE;;Nwn9 x' /[{qY}v{qY}늟*?늟* iW"i뙲xd ߖi@띪o#tIԏl 렏LJa (H 묵5%n,ˈ)i 2}W뵳8 i%g s%g 븒r (븒rh$ϋ˼'BN Rx}Rp(nnH3 ,gNl|֨i ۓǜ,[ bފ$5dފ$5ފ$5Qފ$5XMl{_!H ,[gseY (LaZ_R 5S%yD,#e  / \CH;"Uv H;"Uv aJ"m0o+.HEF9 ^ij& ֑ :&N -z~e  2T x#x#C͑mCcH_ 4cH_ 㴰'J(RxRxZռĘPZռĘP ̛V? c߰f坠#D坠# @" Ěg 7 i 7lI $Mx'm4t9n \ DBd DBd X:ۉjӷD lj{2~ lj{2~m e mj1'RBD?Z$FS:OV c d@ I4S30R [m&5wUN)RU, ()>rh 2׃3-|5>U;5>UR 5>U 95(Cq݇x $O,L^)T76X~t?KY.T#p`ӄA}tbM_bM_e i_>'kw@% kt~ӘlŅ1m]+pBbq i Rx+HPpzܽ $zܽ8zܽ (,zܽjzܽzܽtzܽ i.f#!Z>`c [ux] ,^ƃ\.? y-~Ky-~퐙hH$j%? ? 흜~ \K&}:K&}:sI:,jn cJ*fWFt/M1tt/M1k_( ( ϯ_  Y| ǠM=aM`<к a"[ؽ) s B@ B@J |At9㎙KzvG` plN{ۆ5Z*~Ss [ $: ($:[2[2vO|߄#iR9@p?p  az  az s az  Q&8  Q&8 9N.d  9N.d R/  !B_ϭ%uj+R5<@-kV7;1/=d i4֪Qzt)4֪Qzb4֪Qz >R ?>f U@d%s*CIXvI(3ZU?U[ Z& _%UHs7aװb)$6S?d*PLawfR4UfR4fR4fR4 hmc mgYvGSx&?Dy_r|z!4L|z!4CR`p5S R t[1 ,xsht h h hKh ~m )?~m ) i_д\?bSidf>lP #l[Bs} #ȃ**nQ*z C*z?*zj 5Ry8 E-k `NbUn CK?Uy8!%;v?&"p` FtHf֙U n JMnKqu\? Q8΢UdSfH SfH SfH $ SfH ,Uj5 ykU=T{U9KXBH}qd jf~Rd jf~eZ\ hJamNoD} AOq AOq&6 чABsk;(k;R k; 0.au!I%V/3i)^J[,0e-s7` 80j9 $ 80j9 ,;[;.j ;[;.s;[;. C# Ihm=L*ZSdL*ZL*ZdX* ZB5 m Z<=uZ<=cV.F0ictic|j㍾ 1l{1nvQv:?8awWAV9y> iy> c{ <%3/<%3 <%38a ?&1ds=3} ,=3}s Κ{ezH\H?\H\v_b R\v_b Q^7L S,~ ВT YuҖ_#l:KҖ_#l:$K; {( {( i9/@R No49* Ǝ4 2@N♦ql"ㄚ)Sㄚ) Bg?ָ{Q?ָ{+ ik" c9bgMxrV2꧇pZ<= a nz" $ uv$ u $ u $\"B $J>xdK$ul1knR;d\;d\ ,;d\jB隳lB隳lSC)Mjht&C)MjhDKҕ|?F ,HSPN)O(OĠ'@?U.51U`\ڝZ `cb,(?`cb,(`cb,( ebJ}'BNEe[?m e@p/\p/\Nsg1x+ ?"}g _._.2h<-jhG< hG<w>ml$w>ml$Wș >XU l1y 7E :4 :4Hci =&e jc{2:ny:lFdITt u9 a$`< M%b8 -9 \.X3[9+1d9+1d$' h $'  p0q?ֱ_sc>|&#1#1|=l¤Ku4oі{Su4oі{A7×̙Ѱ.k4k +{&9 <2O*Dbb\I? E m~bo # ݂  ݂  "l'z: <5B> VB{>Lx >Lxs9>Lx \>Lx iAIQ%$ BO_EoNlHnOU QTkRb=pRP^16͢$ cC uRismBU \ ,_˘ | ՗ -A✄<A✄<A✄<* L z 0.&^Lsg w'7{S(^ )ch^ j)|o4B/ݏ-/ݏ-1Q #6SX 8oP :BUBUD1?l  E#=zC3JIWQuKia3[Kia3FKia3 Kia3RKia3R XXR0LfYR0Lf R0LfbR0Lf WMB*BXAe?ZL%c $]hI R a]m˸ qO2L@ BzHjl/C\\{ #5:v[)[1 \-S\ dB1MdB1MNp]b N4T'O:"j| œLXTm $1XTm ,'XTm XTm sXTm j-GE%^L(@ɡ  ÛFL ,S8<~& wqNJPJPJU*ѭEݏDںP DںP (VHVЃ5>t=sՍn.xejYeI $vg>eNE.2 ,zܔx>km ' #姍j 姍?2Z2Z $Le-\xL;.8o?}0 ao?}0s(8D ,+f̀] `r")ozK"3/B|<" (/r/a (/r/a(/r/a-QqCN 4m7C|5hWA -ENK٩%6b K!/<Oq* R#wy+sR#wy+s R#wy+s Rwe) Sd;+Unan=Unan=UKe^ X7Y`AԖmvjS@bk{VqkF:v)lR2lR ,lR $lR nWqknWqsyKzAMyKzAVyKzAHyKzAyOu-NFͲRH?>ʺbtS:ŵ6t a*d@ a D1v 0ڒ ^,qNPNxtS=e?GuVC@HKE ,@HKE $1H1Tb ,1H1Tb 1H1Tb (1H1TbQӒ[s;QAܐ= (bz #=Og휥qRE휥qRELzRUSnPuYs#V< aY#V<tL\ QMij h3 1s^?~t P5e $G`&,s?(E1K)ff9+$I:*R,`ꅴ?,`ꅴj0#s|04 _ 0!1 5N<9 63*:63*:7aiD6@IX ,C60CC60C60EagJet%Lˆ%-YvLˆ%-Y M!bP@@M!bP@Xl)DSXl)DZ\d,w\d,w\d,w\d,w ]*>C ]1])Gey_ "h/n< sjU/Tl+ e jmq'.o]z jrI04'Nr2tr2tw $zMN|l[uO*!t jݳNbCm>K#1 g DlRDlRiHRUt NF eЪiDH8}/ PKZ +M*$,UrG㋋ !c VátmwLk8 8 ( ϗP i* ϗP ( ϗPsc. ai[݃j0b CSO7(?7(ueq g utg utR& 0<] 0<] \ߜ߭У #߭У-)? "ebɲR -rv'-rvS jE Mq  JM/ G 4d?= 4d?=j 4d?= 2 4d?= i 4d?= , P& ]Jփ c :1'L>俶cAD [ ҨJl&|&mkR 'U 'Ut*Eu(1# 18 `t4^ۅ}lh=gל=gל=gל?O1 ?O1RAW(}tAFܜeaAFܜea eR vT2WC V՟-?*Y%>5 \!!'ke~p^h ,swSy?us*v"ȯY yCֵzY(n;|1t}l䧖 a[ [[ 3|-X3|-XK tNk, M!_CR .)ym;!i H$ff>F1t䐍 ^ OZ %kJ*t>V ։y_F^:;>̱ LyQk ϺopЭ iӻa>Ifӻa>If \ bv{G (|Rūhn !]B\ ^B\|sRK$![O sFI;3_&? OFN?& lM>` ( M>`  x3Cl YauMkauM\k$ ȄMFGoȄMFGoHl[Y?q+/o~%j14S=Z#6oWwz?7=p9;A$w 4 $>4 $>4$>4(~BmdM*]0,$m4vj4v4v $6xE$9vz79xf\ 9xf\ :U͘<a@$PM F^aQLb + R>$jSvK;d SvK;d ZbS]WC9cWwfBE cWwfBXc"H8"j f|r.<&rRJ rRJ is6/|rϤ|v|RN \$|S9v}뱌8C&$(ue:!J9MD B #?o o v?Q 2 dQ 2 /uD#A$R8xR8x77ΐ$pR{R48b?͹/ A  i i i  i Yl i i ( i jиD?x]иD?x]Ydk, N8b0"~7J} `v[`v[`v[`v[sbf + + mpv, mpv,mpv,]/_/T ( S a?}EX =%T%ZS%&@%S(FP p (FP p(FP p(FP p(9?^j+~.) +~.)t+f ,0;OkZu \HQC , I+9T۫?I+9T۫ "I+9T۫ I+9T۫ I+9T۫ Ki-8? Ki-8 KN"Z*Q5jN"Z*Q5 iU3-pVEUمZ5#3_|(ZR aHF @7Rw$' Cw+ƫ? yyyyU R>U 顊]ZILٻ j S& s X% -tFd53td53b͖R͖Pk~|Pk~ $ 7_v   Y<=(7Y?!3ݮv!! !t%5? %5 ,olUd-Wl /)5BW0-1YZ&[Y3 Y ;Q9  M"WbNAOCٚPUોVx!ήfXѿ@Hv.YWCt _U70ci5;f2Y{vs@R@ j w37j yA KyaB_o|VWxoCJ{? tH%k wLwL wL wL jv as6 as6 as6lf!m zA*hcEwZcEwZ $!&"#'j2UD@;(Էu=(Էu=R(Էu=(Էu=KwWwWDwWhM/hM/hM/ZеH*TҐe= eҐe=vك"ك"la``9la``9 ?}o. .)s}j)-~ KJgukyt> l~ > l~ Hݣv`Yۮ o " c w׃h]tf p RY_O!uѨ87uѨ8{psvF vFvF uǹ ?EO{+t(/a( (/a(  d޹Z $)Z'0%pvN%pv,t!}/Ct/CtQ0!K0R,00Bߠ֎eL,ߠ֎eR&ߠ֎eߠ֎eZߠ֎eSWM9h09 R09 K4s*E^ɩW[ jr%jr%jr%=kyM+ a6'<b!$Yb!$Y , b!$Y~RM/ojgk jg KUj E|& _ƣ _ƣ"ӱp j/ֆg2fxŗ5 k45Ò}Z8\ = r2>7 REL7\EL7\! H.QIplJ\SO,QjQQ6R(B\mmR(B\mmRS,SVĊt cYb^`7fbml<y}zm|&eTI |u骻Uvá9/RTfF{'<Ru R)Pcq"pү \AwךaZ( $XVB};C?kchJ? AYAYq+N^Kj8^ fE,U|fE,U #خȮ*ۚ䬉~LBWLO1UO1UEYE 19E E aE ^3ζA7s ζA7N,vYn!xJ xJjBʘ (AR6  j$h ;:N C Qf eQf Qf ?5ѲkV= sV=?Dtc( aL;hL;j j'^Lދr/C\lC\ C\R߲=d (+X9(ƻK*,1vJ?,5fųZ3VM16I  97H0<ʭS_<ʭS_?̳@Emւ<?KƎqEMhd Q6̈NN Qmk Qmk Qmk Qmk RIWU< \^ 8'H$\^ 8'H$]+:j_L50d^Sfzpiwfzpiw fL"!^Yfankol (l mͅF oF x#x́T?fg8Rfg8?fg8 fg8 08Ҕ?NHCbvx`,Q  )nUR{\o= #x[9Rx[96)EQIT?EGs< ,гyʲ Қd4h'`;b '`;t 6  &7v]Ds ) )c}ZCS)]/CS)]jCS)] iCS)]CS)]+!?XAsWQl.NWQl.WQl.S )KR ad/qD?IWN Ez/Wy8/Wy8!w%˳ %kڎ&lFq *ϫ4E ,snj.M,K.M,R.ʁwrmukKtt^Oz: t^Oz:|y]LEU1{M{}v8fWt v8?椃l? 椃l 椃l iRE+ t9߯lA !-  ,#qdRM ilN9 < %H"?5@a~f #:0101j܀ E \䞣lSğqSa0 ګ۫R oBKsn M8R{^ypb{^yp scid-4.3.0.cvs20120311/sounds/0000755000175000017500000000000011727223077014751 5ustar oliveroliverscid-4.3.0.cvs20120311/sounds/b.wav0000644000175000017500000002037411727223077015717 0ustar oliveroliverRIFF WAVEfmt +"Vdata JE.<}+MQ-;Z o[nq&X"4%t+ZT,8ls=j"mo aO4ZUye nwJ nIJ!H"|t*3X^dp_ZG5V B.s4|Xa]tB9f1V(M u[%4?@x*O!~;4iL__O();e>3t4  Y  }  = hI \C&$SrRDG k9`PTcl = I $a((/4d598;A=$?98<dhƲ ^xԺέW۟# ?X0 /8_١ڮ|A 5A 1, 7;z>1*9 b-<6-v2AECNRWl^Yjk}uwg($ mͰvkɧ '"P5Iv*z"H`H$D c]@F&,5%"AapЃ9XŅε!ݡ <  &'*)C446)..U(,0,\/,_5A?FHM\Xa=Q$M.1AeLPTQ]^aX?.4D(aK/'Ń] ߩW fҥ1 i,/s1257-  O&FZo+bjaTYs>Zc/`}~k< 'T*+z/7=DPJ GNZa`Pfq_F:a,t*YT>䨍Guɣ[ң>sD;%-s/5<@:g1'GoD=ԼV#ܹޣ_wM/(.@Ix܏N9#j#''/+2b6:Bk9@K&MMJY+W0D=W5+<8ܱ5ZVWۋ޼g1"-42-)_*'>cvh1߽ o%9 ?:l.d] 0 I d'K/-Z4 8+=\DlCLKVQ`V0NN9AD3])#𷭛WI%{T˼0 A%-u0p.*.)&($J` / xAھ 9ޚf=DVY>Oi[`cie&*B)*r3;:@TByHlTV&XdNB@E5(:$~ Kyb d,%O:*s#&%p(q*()/%g?88"U^>Rh-*$uTAxBM W[`Y[UK>6;o!~氿S %Ơ+@^Q(*+P"$r#&0 2!""Ҹ аݡܯjpl uD 82  u )P4-U#!#&-R044=BIB?<^E2+N4G  H78y7'@))X 2EͷϹɼS԰׼Zu5q = PF2@/9 LV~vޝv(A%߈: |"FGo ~ D #"$Q$!#!D$I'")*&/+/700.."+&Bhp Aͳ@nWBɦ3y7Mv q [r wiR U0OHsMԇxҰjDs0|/#0: k wq$6XF:Ur" A#;!%# $! >X"ًj7'Ӯנ{Ճ?ViY 6 d VgE`Z & GOB?stC6e.|}07 y DpI,`\)#  sp%!!R%&$e($_S # *.ߔۂӷՄ܅jkސ R[]%hC }K)z ޱ2݁v8kta# ` . B c % D ` X E<%'&%.()v*%$"[!3gDOՑ\3j(? *;FNq['$1wc4ޓ3m"(vJb n | b  3 Vjg~MW!TZ,Nq.=}Q0&޵ډ[rR,Xut  W 2!#lkW1:X!JCBtUiM  d : e R hY.4`^ 7= (TZr( oDl;=6 . J&I[Q.\* E_R:43(gzh ]"'i ngKSM-}Dj* iX pa  l q ! R ]  g a : O_W ;]- C l[-%;~%  o | ) ] )uC' @/;4'2n/7h  B B ' ' @   7 @ p \ >, isF\3 1AA TAcU<D R` X*7ubc (//D(Lo NYKMj9 c h  9 Lq  n 0S  b M .  c8 W X 6~%TH5xL.d}d!?'nA * J^R+!k`-mqq4Exw  k :,X  z m R p   7  r h n 3 Y \ # w $/Gj!x^ v=MC>@7Xh T  q  <V^pZ/^Hbe5DX'5R4 R"PPxl f ;|Z> n i X q 5 < 0 1 :   +WUw mr}$C}*py= b^6Z>r*kPQUrI?Sv"  I}V#W K* / | m o 3   C  = NeoEK( kS+%-OVU$hjy@ej<r07wPS_"v_]LRs7o yho?lovNoW%-,S$(gc X x   d  b 5 1[Z#6BH|IM!mnX.0vQ1r .ZxHHP{)r'+icD)c #^>[:|!vU L W ;  T?.eZ4[/B^cBZBOM731^ n_F#^74b%>BR:_(S1,E < * ^  +   IUT&K jufrw8yWALMI\,SP"@7sp1v6QLP$ daJs8t : c{aYD>Uv\_h;&w; Vb ;rme"?,^bN=S\[ud{R.E_ rYJn_wov,h0[0Pl!B<aA+Abku{S#ntP,-!d W;WszKi(5*Bx((R:$peZKR"g+ eQ@ 4N'm~) MG# oYscid-4.3.0.cvs20120311/sounds/d.wav0000644000175000017500000002270211727223077015716 0ustar oliveroliverRIFF%WAVEfmt +"Vdata%rK#{yw%FFnx Vh+89swg%iP}(Ee*`_3dT"3 hP:3hPPH#Erx>=rp \RJtG(y YcrZd3<DKY4v3OYU_LJZ\ 5~fDe)L`~<U %Xto4'vnL&@43yfZjN5>> WdPc'fZ!\gb Sl|< -P UY6i03r?h1p4,n fiV{ H4UDN q59 ^9  K  :|[s B :(-we:':WjXIG28J }1C1+ s2Ls ` (q(^hAC  B8 Mq[qcVkv`cs*S*D[&6,f5d k"!!`%'%(''+/!51r1F3X) .rƿ6KDiނl#E"#p'hLިxqYE `TLSFta٥x/e"`"&+s+4*%+.18b4.!3(;-;8:=/  { oϜXbˍABDZ^%b,Ix!& 0#p 8<TDlk"  'evc9ډ" K 2K - *!'M&,-&(N264t039-6p7BC5/&Sm׊ȸ=?֝$A#""&(/%%'v'2us?s֪ZM:4v$07, %gA ڷK. c#> G#(6%"Z')()+,//727319sCCB8-9H ūzF_7P( t3Z,^&|S܎B\d;#H}dS"Sɚ/Y^  H!/$um!j*( ,!$!q!!#'& $)398S?=l79T 1&7߹LmǝOկav G !;]+v/%!%: h%LUz"V PL/jq%&Rݏ+S!"N#7 y}|z!.]%'\'Y-I3 =$A?AG6=]&2t/\#\֪+aeu ׫)M*F \#!F#J.7ϽmތMc ^!EU '!nk!*&'),V:.B?@DH * {"- !W.QG> 3|'̮֔-ܣܖ>%;Jr 1 r]ZHJ  40E@0V Z G&'*'`32+)+"$ &Զٙ#ڽhNY >;& A- }h GC92!Bkr*z`b:|B Zs ?OzpM.f),*%.5)(.)+AC۴*ݲ)ޱ`fVӜn T#%lS D~:SeTdG IXZTi.n,9: [jf!S&n ) #"=CaW X^8QݐI5=0+9]Q e!x 5T/ `Zg `Pߥ=J4 rQ3 Q ~ m r-s?ZwmK%h 8 T K ~v=VL* \u,?<%Y{G- ' } ~ R 's ;$f\LU 8b*~ RUU 0 B A   E  , ,  i * w*i 0,S\^ -Y=8w>Sp9UoL'fLe<7i972^7'&#~Ok S  5  M 6   #p@   X 5  " 1  v LU{#\(+C~f ?Ucq6BAvJ x=J >p%R~.k1  (F( 4 k d N G  ` W  _ + d a $sJK  r & @ _@ KFaTz/QZstI:pI@^z}aP C] VX{qT T P)XRT\ z   Y  %K.  L K  *t7nz=aw<U6n,;3^Tnf k#CRX<'>DT-'%cd(m!8 _ `  4 }  w *k?K(@ o   i+s qeK[vBa%%sj9Utkuk_lR96!ViWdHR.=m(XZFJa Vl z V(X8 @f } f =/Mh.R @;Q5c z%OcZ*zPPpP?2Cw\a0_W`16ev7 Q,5R m 0@gF=b>j^1xXiorB 1DU6=r[ |@FJu9~zIE7tk0 Vg@x,Eg'V   %Q\[&o1 / 8Q c|VD~:?-e6G4[Y,cFfJbk\LX]@(S|53|8f4[FwVL()W$D; 5RE: e k(E[  X( qN}u(fPNy"/!cVc$|!_G*@lN]}aUg VChP~rh|H1426_nM%S5 U I   >s lJ 0J6)z_hL!j_RB-D.( F[D %AL}_ "nSrz4p:Nq99C-O) M~+G4O q 4P>2Xib MUmL"R36!(<NAGL 4~0-Sm 4_PNtrF#G`| |g0y60E]#U zY9N PwePO,sC-JO{ 1>IAl%bwy} .KPR e#H+ a q  f yabx 3 % _ 1 ; 2x7,BN-0dL>QsWw'an(+jTC7p V^*:|ps .K Y| |g'd&|j=7H-p'Q0ivT>}wMl"^zl {GT?j5c:4~3^rwT1Dd@0-nedo{9dz@x)<+-F"~h#j5A(ibsd\SV6~lvBl}_2|en\T?D>$POIwnNC( F#+q_W5 FRO}Rl.A=-wL7Mostw0C#|3:}q 3>fHx Ou1Zs?VMP&xFeGJ;2qx6M^kG_MqDkc8^vDvt*1dIc :Kb,$JK!y x8f^\3UH9@@rsC\)] )&z5$5ZobCYu +G*{a?% `FyV BKg,2'-OBbs8`(3lv@BHCSwSK v/JC> 2QH1cxv6q.3+}8 R&F6.t56.&Fd`ZMicq\=|G%E- #s@W.`E[.%Gh{ ~*Qj9A;}a=xm + x1(2" k+0scid-4.3.0.cvs20120311/sounds/c.wav0000644000175000017500000002262011727223077015714 0ustar oliveroliverRIFF%WAVEfmt +"Vdatad%vnqO S;0HaEQq{=aK(6;%-oNKV"E]o|NtG~Hc 6Xw`"(&FM?f 9s2XZyrY-o_ T=XwI1\ Q;qp-KSNof XLdN P~ / + ): M:pP>& > <h|kN m|7 R h^O }gk i+TX &j_1YW8czN $jw !}| {m4~]/ \ "gTzw >~ ;nf9 0 Z+, x @s0e 'g e L[>;  s[< 8 N p hO~k|o0  bxBI 1v CfeM]; G(so&,YhZ ub(9J^ :lBL 8%z*j1HL5j#++N(go rv=? Ezg5  >vS9ZF pY#os: |  .X' R :< " b|o} }  ~3m 1f jq C2L# -] Zk 7X<6a}6 5o \ g.-wi -4e.1[+rx6* R fT .A}8 p[( I=~ KkovyV -OX C:5" !| /a wKgBOlZZ _/w+}m D8` z(]gLy^ rw3E i4 nߝ#=8 IiS '!}3  %~M  !N")R^ sp;,-0! 'n Dj|w -7  5 q~ u m%/|J   t HtQi9 ^Jpn  GkZ [ Cg(3. M: Y   >Y7 *t GLB< [ ^U\Z LىG{/#S_sI8=.tC'%fsR +L#/b6Uq+ tK& Bg^9Kv n93"Q mPrgȽ ݄uM 48 u='rrPߡ"Ziz"h fUJ+r mJ (,/*w,.Z286 >>AKMcT]aL"6  +ޛ+.m2\ ,()',* `Ĭ1ѻB_lf  s C K`ߦuhڤS7cݾ2$  ?H C_"&.--F26> HJRlZ`hQb&33ߥfnN_ɷ&!"(2.- (&5TMf{#֧ƪ"u ,i B wDnץ՛e+ݲL< #rgbn_"!y(&)(?05A'C>GbRTM_b.w7# zǿ Z {+>KSNTYNmq7c޳Ǹ~00Ȋ~"*H mJ&*y!6j<ݎI ܬ^+*qy|Jb jt   txxWq e'#1)1(S56{8CBAPS-:,j&/L2ңю,.ǰ4@&ǐ^L-v rk!9W M|-,+X63y#i`i%  +Bp 5 %`%&5.I5?FMID>4/2#g֒Ώȶcp\Ș]>q;DN %BbzfAܧ٘$)2MrCdP8E3sfdN Wwlz!,$9 %2'1)12>@@{YL6KE8 (vQYfC*ƴ}}?r94;!+>5c 3-\|/sab480y& R61T  .P 8+p  zj ();/;5X?HAx>$2DBi!Pڹvįԫ1uA(+d g55+) p` x\BpM=Nl sk*eS\= lyoB8 $].0Jk^xa-n+]? !m%#.1;JA0O*dIZF'ITsE:׆(>rt-; 1 y:b#!BW+y& Un 4٫d,[!g3qE9k&}t= YCb  H['"-[/7:k9@.^K'%mW|vצk /d W 6Hd *_)+!>,~u"TE_\LP! q}JDW!%'$(3+/"($ YQ9'a4ѹز#~a UlHi" `L.;lf#g!^޴e #p^--'3PU}A0+ J $ in   0 Q R -)`?#B B#%#6%]! "-?82a*\_~l@%Fn Q 2r" N P WGR\n>QM&t?]  ber  M N    8     m ,W ` 3LNaw{ a:05$x&r=Hf+J 6ZR1FKP976KgW;3ksbNS =0[1 )   2 wd 0 \ [ e}T e R7@.t,\ ~ ? f=o y 7 w :\y6U-MG cR)17 q R4,,SfsP /0@hYV| yvOq'#\#r^ 4ZSyQC{niaGl_@]dywDi]c%pXATEZ C ' T Q v  cP+HJSyPM#o<7 z!#c$~rBM7H8,YESPw/QUpjMTWNVp&\G"  e g yu*^?}{.94xU}"6B^(kx1EP(U}b|_9)r,HnouAK+HFYbh + 0     8 hh_^&]`8~rldL01L3" MKb3p'@[ .xq\8}dnpzvZ$Mn*}g]E9Es&GsTwBeX~Ep|k{d^TY+S4YKg2W6Vn=f| }49vr ^^ wTYh|>kSqGs,[zIIVxNS w1gt0~}8t4)j<>{5:em&:M?<Ekt~Ch] U=90;c05GAscid-4.3.0.cvs20120311/sounds/4.wav0000644000175000017500000001540611727223077015641 0ustar oliveroliverRIFFWAVEfmt +"VdataAP:8S.Q]h!ISFTt =_9)isg]Sn;V5Rb v'X7vJ+jhcYa mPh,mg/Y 5-4Q )D(G +W4Xr" p a?>:OV(.-JkO7GtydCPAh!%FT <^.V  [ b ] a v /K,oߞKuie[l /="  8 B a  } X15l"&A,4151;OCfEb3(Sg# -Z!6?@_;1U% CUi<$v (2[41&[}׭Ť?ʺٸz  m 5 / */&"%J')7+.T106;AkEIK-D/h$3E)4BFIKNI"8e6 8š 1P_cicS=I!+Թ?_cʠjByh n +3c99T1t Cø-AQķާk+ /+I%)#*g w *05!775A2+.+((@)+0683$3L7_kԬ̣2M]\aZvJ2"#ˏZ]\Vro _-=F#%$vi#,IѡIͽ<$?.0&,"a S;"!n(}-//B-R*Z%t!X #)18U90 wO!H8{0FaQQ J̽;*pslp q)ܮoVHɲi["",/+,#& V!4"$#" -![bx"(12881O#5UDۗ&o˵$p70$ GfZ'B2K;Y>;0L 羿P1G *?KOMB:/HΏ;Ǔ + 8 > R>jF9ڢyA!HZ$F'$B@R^B+p q  -m  FM ^'X-39>=4~'p9`z@/>EQURFj3_2̭r]8XPfBW lg9oE0(O._/)m -Uk DR2 jIzw  oidr W/% +1F8;92%j ܶ'%dtsŮQ0BSMN"I<*{kpvw X " _ Q O*ԌŴ0Hne&/ 1=+$E%.fR 8 T%1|h ^ sI. C c44 $)O055}1(Q%Կܝ򩔼'Vh3/BvQEVPMC1qB̰Dça1&K ] a\ AƜ8}@ !!ݐ݉<49 ng n ^  Z}<1$D"c)M0S4|1/+ b{)tZl1EoRUO:@+^`ǒ2Zwi H if= "b!9y ;hF%|&m!K Okh٧؂ާw G t * K gn1 K 8qO&>-d5;~8-_ Rְ| H,*;MT#RHV8 |s eώ؅P .{C""9 Syž3 t@1 \(VLtf"0 o:!` C  }L!#Y_ 1(fR ]%*G/ 4m6j1$_ƶͧ($ghb0EQZQJG 7D"_ _CT }<' Dt"3$G"#Mtum1ε[bK ZCdl j{nz H Z \.2@+   @"1'P`(8"'R.0z*$ݧik6KV)X*MT7ԉ^cKJ6 )0, u$x'%y X:ɘ1ҏ\!!6)Rm߃UW>(on ) x@M7 - ! :To[ C E+)F2j5/)Ϩ@jǬ *AlN RJ7:"PK5Vg^M q )u-A*~ \κވ # p p17@a-h1 $6k 6 rL w &.XRQ  { G#!g)/2E-Z *xgٱ| L " 4&<;4'z;Ebpar? $'#f wܻa[֨*n }\!Y^U# q.\WH>+ m3 0 &)-\3e8@2쟛 `9Vd]M :*E Ct$X&0'k+F74-#" ިa ]%$ YIq$U(P L -[%zpzht\[#s1e o { $ q i =37 [%*,( ۪d06I(2 2p)-)oUMCu 8}مiTtL,j,&mVhg F$!faQq w T `q; q8 { gH -#%&)*#E~~$8IT K+, JZxюL<,0D1]1(Pܕf.ʖa T)<~۹reLT  5L M)JxBn 9w \v !. 8 > '5 o s" YH!ּ #a'&+bO|%0Rx  \m0 I<J* x b L ;Wq<v]$ ?  A@[4| agu /=VOf [n ` |. @J#C1 ڽѼuM Cl~u0 % kf1>YB \H::]B~nC4,k e =mDk $k;CA>%!(\( =ޡ >/6?>*:x/s R;8a-! (b2 4&7 '*"HN* % W F  J( 9O C^I1  wk3xdY}ZFAj;BUj<Jhk1Fi@nACo={,_JNUi~3X\nEPA ocf{; v-R_' 4QvIto6|+Mc wXF5#,j84MqX260 Nbr Uba2,PjX$!89-$cbs e  t :  t r  0  O y %#Mjj d Z^nQvLmkE }:\=h6$(R%Oo;,[CX|dRch)h~ly2,85[lNe 'wHX& |yM}niTV4f\W,+fnyZ'Z )ivf`Fsc_}z KK>@ g{-0~O| Zu{NvKQ8xY,d#mu.O*NckVHGO9>${ PX:PO5ADscid-4.3.0.cvs20120311/sounds/Knight.wav0000644000175000017500000002250411727223077016717 0ustar oliveroliverRIFF<%WAVEfmt +"Vdata%Ng$UA9:QV5;8h<4 ?8a;wJ0m%ho|yl}zjlzp-4RF<k$8 >b _rHJ d]=Ku:1x{cYe_HW )V3(f[l/6!  T!i'zzy[{7Ws/k=j+>#}< 4 vEgDT. Nt] -K[6$OtqIY5U{J3ILqXa8 J " ~gwAOKO 1,.eC&InU^e)*,+TkPw H : ] { B y S f  % L N z {Pfip j7:>q?/TO#Y2\>0:x[1muN}) *{"   G W H ` # I0j;dw  g&&/fka-<3}VRfLfdtz_ix&4^C& D  T W  b^- v j;NQhz('J)&sKV$m M iH s a4TBBb-[+I] { S  c G zq& :L J  3O-bs%1t;EB n' g"d"7C4H4p  =߀؜`}VZ Hb8AWC]z {K[! #s K n  ^ m @++RY  Y&T';.?37G> A,,ѹ͓I`446jD+): ?a R< q6hT*}-uUBݥݟt ?tf 6DQsH C    [ 3 s/]X8A%,/*9FʠO}AmZ^}xoE9 S4 @ o#CjA7R#kuZ&a?GPKQw7@"wT kL9 cVf  3  z 504i&"/441>ۅ~%." &  Aa:,#m^t C 1"ZM#0:D[[' ~3 c~ G S q a  9  z 2 D  =   U q y@ ^#(7=/ 9KTղղ9! 4F BPA`ݖ_ޖQ +  vulw|!3GHv_ , # * "=  jRMmPI#H Sw:jtGg%c1R*M9nr\E @zW5fay!8.B!yJ@%=@YCqKzYmKy[  h``Zyh 4bP@pcmgsjb!Vi=p RRwjG      pw'|?:y4| c|leulqhZan~20:}6L,m":yI7% Ed[[,.CEB\B@lc7YH?ID<,=p1@zX$B4W$)q@-F3#dp}4P8QBjcEP_C:<hL~/ E ?P6  %  X  5I 4c@d/  *iknT9 i7 p[d*@6v/F^AQdIVYHY8Iw]NIQjt(Bm64]I A&xNOmQ7z,T~#_ WLH*\rjg.:K<97r4|n2S XT~W Uf H% ; q[z'(Mh_C@.<w^s}ThzuA""[YpGO{.di4\_?kO4u }Y(@#@Hmu{:T/q H1Lp]M/]y{X|[^qlh90nE& Vzp&}hW+c~iQ q>c*SoPL(;r5lN PY MpQm *PkU:0u#!E|dSbpc6&7?.>3[ i%=IurK$2C90Ufc2X7b'$qKaV6@rf= (PR3bAOv-mD@*O9IVf C$?u3(tO)mWokya4(;|1uJS&y;wad2[DS}B 3R\eGceZ$%5Q0`D]IpbqFAIZ?z4!!lq 2dwz}M =B]6:;{ nb-tkrUQ 7Bc\Cp:@j6/3I]D0)]*+*aqp;8Jf `he%b 3kmw<%&c |!|'yg8R5b'lX 74}@gsAa1'0 c\k ^ > Ao` zUE@@ R?ht xU nD Th DKG O| + -U-R `+qLpWS@ s (&'dB z}X ./Rl VvEml b p8b'  hZq\Y(AE FeLGm;,R U8|9xiamR)yhIS"9LVNG\kyof8py^s4;j  G"&,pfVyo~/2h5yb3AMJ.%q;6]b&9"pN]Kx&j(,%bQr>`Id3 U7X3A{ h9/a8x`svxL g7ri6,(33UM]O CEYnY=RbDj19,j%]YZ&Boo:H3k\qA+rkbkzA:BDA!;UD_Y&A8?Z;~A.YGOB} \Nscid-4.3.0.cvs20120311/sounds/Rook.wav0000644000175000017500000001716611727223077016415 0ustar oliveroliverRIFFnWAVEfmt +"VdataJaQ_h( -MTk?i-fZI:iK I0P#b3X 2r{+)K)Aq! d_ F"u$m~"tkhZj.RiRY02R\hoO:P'(dW  L u l f 6 ;V1h+.0 wK6MHK\ $ G t'cJH6 4DR y p mQGZ [up !###%&'(*U%EzQ-iׇݸIPO TX`z L#c~0Nq+]B L:8x+i<&RFZ[ u w!#N%S%%$X&R''&|&&(]*-//$ &<̔ ڼy Y yL;weTLٝۓU8 ]@%jQ22uK5;_  $'**+/,I,--,.27>5)gP2f†,ִ"&֫P/%),&p1 g"xLӛ"!(g2Ti(tRbEC, o!  D!y%i()***,d////=036?:?>!;AUΏ1 ՙ/B75}3M0BBC6C@u9006AVMaU8R`hQ:@Lއi2.nW8TysZ1mR` ޟv30{ ":;GJUgQ3-##^bΈTaRUH&p d0&>'#i$"f6 !/;$RXJMs6 X,7g>>90h,>2h<%*@_𧊱RɺmZI@$.9@>) # L{k|G 6&z^)˶̕en"yYT&m373*Mj1 R6+38::99'4&д[Ϫ6dă QeU0>B6 W L{YӉшF<Ԣ>>&l28928%lN4eeF   !/pݤ@ &'&" J$)".13-%X(78OCZC:*Ó;(XjbDX8hG@q*cC RδհG*7i9o0!s<ЁѱԢl 0[r  0 2 ?(/.I+%\4 j'3S?Ay>8#fҁ{ݼ!&H~2$JEGw3P}F܊Yя 2^?s<+!BG8dғc' J  hټȴ]   F^mt "(1}9AE}D?/=J⹽5oB#\. 3%.yF4MhC&4! ֩{p"c5b|&9y=f5k&dHR m >a#ϱزa s _%/*NpExMJ9 @+ _O0f } \ @ *rJ& !i wFJhoU`d"c? zBE>rl R T G[S5> 9:KPG7G8<D c *UB+Nw'WA Ch0H16N[)54jyANA`4mo,i<]Ga&|#[\0Z-}rZ=cXWWBnN f"u>/vV8 ,e27^5/p7nq*;MPKx0~~3_sEO= ioY(lV~O4rum+DCL^m,zMd:*">5/-F;6#w0T;g6C4my+5(HFp2d$X= , =4 "$k} Qn]pC$Eb/$tc}!1~?bcqk%Y]|RlkyO|i}49, Vn`_U2TjG\aX@w*Rut#ZcIs I= ''g=E"?IE$"QLQHg^R3sI_HNLhJ7m]fu>he#lfE^Z\je  v)<vaF7\tX/v+)|cy4{_T&{i/8usk:J6l6J#KXX.-rh%;f#bH-j,!  >;&;O`rQ*)<1`oI+~] +\;7Hr?R}H{qi/Q[8j6"H*h[IU&VW+Am*9 1YI2H/1.qYT#;=jBeKV?QE<^u@#Ht4nW,DF {%B*?8f3G:D}dYid&lym=r-`g4st'np|>     rncE$, M2$@AO:$# `g[)`k@ qY(r 3rgl N $Im:w!6w+|}I ijEQdOB+io[C.hJFue!0t6;~y-fUy$%sS[B >wV#K %SM I'cH*?b5Y%GV;" Z _\?_J}^\q0s*b8|/viw56jynfmt1@MUYRA] ~fBz6K 5*fS6eK9ZIXG_UFjK69^bu8y5Z[ W%piAB1(  D[eJy+1vu5~l(U}VO(_ "g$q'kmKBaa `K=>$sf7PA$YD]DD E^oJL?RQaV{qpiJ9,[ YN P`rHmW04 uK CZ\WCQ:8:*m@7C (  DH|u2 \P }r]X \ 9tSMvQ(pxHiDb7EwtK+fxN1xgu  z_T;&z%.)!7#_& o4V2l "^g {`NvIK5.lN UihC}H_~0BrKJYp)'Zqx #\3:2+07I;](;b4D q,;d' &$fOl&-oe(. L,% ޖ b8Yxb Uvl ^ l!?7 "a"x,56>>[9??J=!4>#UdŐ[ٺ{sE};I8wnG8z Lh"( ߽P'LtF c q>;r F]  I F .vg , --+.?L!WzT+:K Z_o˫)֯^I_| 0j1 &q4c. !̴{Cx] !U/- P9Ӳؙ⛿^˒Kҹ2ԩ.T0_yY; 8*Q%}b!1"!'.,9F<8O6x!N7wheMm~~=h;:Z^c"Y6t Ovġݨv֣/xrN C$$  =m&͵˾z)Pe   cd  "K 8k 0 3 ' '#<,[-PH} U,H5U(N\5i rg (n3A] Xlx^!AA{N}nQߢc 8G<^Ae * S 3xX#u!<+ db]F6n[Wyl2|~hm IUC}e >guz2G 1}~o_^Qj+ Z 1 A    8+ދYj};z*C% % 5= PT 0 UNl sckm$ OjG0xjWY$?g_FQML/M384 F T1 t Sbdm?DA)pK  9J)i;aQf(QW= "}kWbwTbEgkrkU\BS!zt<)dm%'%-;K 96^"15}ssID"PWo MhhxC  JaVr`iD.s?/2<i7\f3l2waY]/z |9'BNPwc/_|7PQ+.2RBCdiHk| SMc+n2NL->lDH_ 4s/<+!N~1.Lh\l3lPP5_ftXs)=.da WX79PK5J+ =/sG#-< P$#bHm8]4U|7=m}B*[#84[nb}@R8D1@IUn)s GDi#5QjGtWEOTRCpFiZ}'=XM W_$/  X,DY< ?Wpw0{Bh~ ], .4 ln " b % \5)VJKU ~B ]B6 N{?j@n`\(-*j tGi1yU8)O @i.S HVq\p4uq!1U{0 }&kx`>&dDmqek,JM\ iL ~ T0ktW5s * ib5kn U Z B'TZcx  =\i "<Q P[*  jh7xcyq Or WzK ig6_pev(#K#RUzL0K:5e<B |# 6-$(jۗ K2*U 7Uo k`[ k ܃ + AH< u ,L-Rݮo:{"!nbKl zU#Im8ٗZ*ݚW# |!U%`t s HJ )g8E5`Vv*&ev*/D H oeG9jrQ*q  >YXQo * 1 Z $ QAYW?DCdR5|?z+%zt|<7W*Hw+$*3o5?,:M9`aJfY6y[2a>\iZU7(:TT17Gdd;x9@&MbO_LDN T6 apPGScBe'`!-lbwKk{E5 hJqeYv>g>J1C<*P5 !)GK scid-4.3.0.cvs20120311/sounds/Check.wav0000644000175000017500000003766411727223077016525 0ustar oliveroliverRIFF?WAVEfmt "VDdata?N_g]ac]ba`_b^c]be4N+d6&$cg[d_b^c\fd(d%8j^c^aa^c\f[kl<nmuHFgmOsXr  }ZqO`d^aa_ba^c_`a`a_b``a``b_aa_b^e\b__b^a_`_c]ba\eZfZda^b`_c_`dYiXhZac]d^`a`_jKvn\c_b]mSz)6qX0r0?j\fYhZe_^f[d__c^d\d]d^b_aa_aa_c^aa_b_b`^b``fK{d RhjMme{x__e\ab_Uv\fRb`d^ab`ab^c_`b`_aa`a^c_b^b``c]ab\gYgZf\kL L^Yr\d^kMo[d\e[f[f[e\d\d\n[Z0R,h`aeU=Z9ieP8OP:Ygky'j^d_ac[f[d`]f[f\ba_d[e^`d[f\d]e[d_bKclc7Sga`aa_b^c_b^b`a``aa_b]gXg^]hXg\ba^e[oh`a`^c\nqwsU&dB 1W.E,!W"(fWsAXQK}kR!fgfe0XQOy/{X:qb* rpq!2.ih4r4K+_#H w4_^za\kI5UccL(B<: c*IwL05R;@ \"U+rez(QnB nCt3%w7=1!#dF!)"cO:Pp~QK@1Lu~DX5mD6vMBu!OY=,gZF<Ea Qiw[AGI'~)|4OK-1B9Q G~EZ2[.F~P<L\>y%VV..wa^cEX iaR;li<cYjhH OY (!VkS{,e<R% H_G T VQ|edoE /BHuQv[Txt_ -Yb-J K @TjFQzJq n^3g_|;Vj-- 2V>X fW D{Bd W6#W AIY>oT# ]yMj2 M (,dmV- :%`w I M WeW SWz2" 4 'UFaW 2>%Lo3H=b:1. !y"HBu9 M2 KNl#> $a 1M~# ( '/ H y}1A4ry?n#8od { F`=<`SI $_  Z R  dV(~X X}3/iN *?[R)q&CSq$I 0@Y>d  T^\ ^2@\F + 8 # z 6+ Yq\$;$R ) uNAm4ZOd3-R 8 Fdh^T LC? 79P <GiqVtXJ XTP, xs# 7 WKUrG1:l 5$Wt -g5 BS<\>[h 6.701 qP]e,*VUn' { '(]O, jzNg mlc3oX1 WMJ87;-4" R}L  7 *\|KEP92?i o=w L7=  D foD%NWo^@* 0C l\eN=7 'yI:EJ_ +01 (3B +> TMY :n Wp@sc0.z~2x*p104U;)] UPM#( xc)$WS{v *gG 7xH( >tb,&c3( .%FdJxh30q:?T O=^{#tV'f6-j Z I\.J4ca`Z|` ^c"6P(W,/*#+7V! f7_9e[n"OBa`cbDNS&Qd 7H2`_l<l|z P: " 0q d "! V )\S2[S:]' q 3; OQܴ,E܁;ݺx d~a"= 7  n = 1oQ \e q  g<0g v #!i"!$,#1U34;438B!HjJLP+TBYV|9 NjH%=db Ѷ  AZYvD` &Z , ,)EY pbE]Yr_$,> kV5|^ڳ e\\Qe .(n&{qmB%!>@x \  K 6 I kxo  [cn3 "{%&b'*'/+1287:V.7jcVFykRx AEKrNJ3H NW&V8oųs*8UTF`Nt `‘'#K9wz:&/_$=ޱ1n ֱ܈$ zod;>'iK9?15 uVbK.39K>Ia0SHQ[B?$0 W >  F ; 5 {   # | 4 k%K d/^%\+..^--4<:8>eCDJQ~NtF;hŴqAS=}py ӽ %uz!L ?#)Z!["DDEuߕ߼G7@2Ma z 2%Kg!O9+Fa,s U3G{X IK {SY r; *  y b! n?  gNq>lv>!<"$&&%&H,S242, V o&3.48G Y:ٌިZ.akg @q}NE u~ul3?+a!-5_Yot?" kZGJ mvr]j?=bnX *gQKS2oV;.Eu] hkO8 jkfk{cI2g`iL*\0$&&$'&$''$0~TlnPqRi>((%#1*#$-(^a^gJ]{un[hR5_i5W_b^k >,C[&jb]c\fSjXb^b^ly'.  '!`Xt(0dL2#'&%%28,!3Qf]d\e[e]bb__b]c]b``aa^bR3 +!+"(,_Zf^hZcb_a\lT'.^aZyP$\b^c]eaJDgaa_b^d\e]b``b_`c]d\l o[mGk`ajk__aa``a_aa`WRfS/$.Z`aaa^e[g\fhDg`a_c`aRg\f[e\d^b`^ucUq.)@7?egOJFje9&S#]A;R6E^!agdyIKQJdb````aa`a_aa_d[e\gXhZe_``b_b_a_c]e\b`a``b]d^`e_K:h_i96[9Z@:Q32Lx*j`ai7o8+s)L0@7)fd[f[oaTXdOUcc_eF7ebd[ec<%r0'% ka_c_`i[sbj`ai-eb^eZhXf`_a``b_a`a_d]c_fPt{Xtzi bA .L26P6<)emP\1rU4qC+'F/Q*|q6Js0u@FMzY_|h-{l\m"N71N<&C_YzUU,{6V5r^tm3eM6LQ: -`y'Q<ag]gHsN2ZM<7.k41}%I:s**m=|B TTt`M(fb_Y,'#.[][/ J'&#+"k.*$)5&Qma^E6F($'0-^ic%(!6Ei|wvwxvuysywl    + B 6 @ 6 J QX^._biw#FVGIvrJOEY+ULMLMMLG{:suMlGN;[$$AoOrTac]e^`a^b_aa`a`b^c_iY4ie9Ag`_dZbur^_`a`b_b]aa1&, +!,"'(ET1oU(>W-.,!)*\`__dU Z_b_d[d_ab^`c]d^_b^c_a`_c]mUde]d[hWiYhXrOp[c`^c_aa^b_`a_aaa_aa_`b]e]c^a`b````ab^bacUKhoP^kU_tf\_4,01:M'Giw|% %!  ~k uXU5=H"(I)D_,u_<?>mZd_`b_b^c__d\d^b_b^d]c^b_b^d\d]c`__gPhLsa`d\fYhZda^c^ba]d_`b_`b_````_a]d_``jPn\e[e]`b`_c^`b_aa_`b`a``a`b^c^c^c]c`]dSY`c^ba_`Y\a^d^`b_b_a`b]c]bc[e^`c_``b]e\`c<((&?d]b^ba``a_ba_c\iCni`LHG@C&l^bf4j`aa_a_c^b^a_b^ba^c^b``b\d]b^b_b`a^k !mYg[e^`aaa`a_b_b```a_c^b_aa_b_ab^aa_c^b^d_bSd``b``a^d^ab]d]d\c`ZrU-'^aXxm{Z^]c]c^b_b]c_`c]c`^dZgYe^a``aWsOjVi[e]d]c`ab_`c\f[d^c^c^`b]fZd__fYhQjWc^c\b__]jWb``^b_`aX .$(")$'(#)"*!, +$&&'%&&%)"(&$+2b^`b^c_b`a_b`_d[f\scid-4.3.0.cvs20120311/sounds/Queen.wav0000644000175000017500000002604411727223077016553 0ustar oliveroliverRIFF,WAVEfmt +"Vdata+WR0W! =Tkogz%P%J}FKy@"T!3; rjl_4"I+,K_4"_(FnBP&H/i#+(7VZC2fa"%df"!FDPNXZl |s0'7D.L^vujw zT'O1Yg2[j)@7 %/d{vJ/M7YGJ1[l ktaD&9yDRt)5 \=`LMYa$]NW%!@ ^$WDDg$?IO 9 [3'\@w-vYc|xp?G>9\ Iko0jMy6Nbk6O2]'o:] -_iB` 7v-&?etrQv@][;@'|"YZKm Ic/n-` % `M0?9H+`JziQ >.nwnYz c6vXv zgqlAk%6\[@%<[yTZNu8vpO(*) LIGW2gJA/ZnRF%PYI\Z/600%rRw!jPVn"^C}tj$_x77spMF'*l%TO q E"M k "&^*z/V4M:CFMPM-;7Cݥik,j۾]{*m -K" :T =\¹ǩBđV^p DX Wߘ2L [ KP")c/23M2.F*7%d#"")'.7=AFIMI="&' Zj7y &  p37 `-\ֆeNȹÓ  b: cebrMU>!X b$+.11,0.,-/3$9D>CFG$NaX3c]42Ϻc0 NC!b+.p(#MӘ1q&1UDP W$ ^{=69Z@6SK|p##8 - &.->)$!%39B2PXZY`Z_ccNh-춑^P:Š k9:35WUX;Ʃ&V'OI(3y+josYΤT, $<" $ :](/2#0+,6E0T\#adgdCw qӗ/ kJh md=/u1~QCܨȔ1ٯʐ}0 4B p#4  w{$%&%").6DJJwM*NJNUcniET:#)J$0)%NY%y(ę֖~ hG 3 JI'_~Nާ5L:vwM,4 K&PU$', 5:ZAdIfQnQcLNAYcgY-U-(b mwB󿗸Q;  R OʝTa 70S iDqvܸ ޠ!jA - a v D ~#b*38*8g;DKL#HbFJJpGSD&>$kv3ۇQ &KY hSUl+5E+! gK`z|32\, ' (B\ %3++8+044<56665z378W7>7b}Dl+Dx J m<,ܚJue |:Y-[jf{ bs!&'2 `ttyV$:(!_U /"ډ0yǹuʫo.p7" HNl"l__4 WfW!QTpQ :ti1J qM4"\11Z|&sh<E!~ {gV {>!XؠPk.{@INy< J&(\{?f $S8;3]*G L / 28"~mBCEgka 0AF|K.eyX>3I`<_8cJhurViA0 R$|Ef1 Z 46Qo/FjmuTf  !px/Cc0Bwy+}W`e G%~Xhy w ] tC~AU Ll_Ys*^w krmr1xjfQ_%32K,9kcNV,AU=K${R8z$ O =; /Ozo_a 03AV%s1eXba P.*^Q `B]]"S"_]|njZ   \ - + #a]xcP:RF/|WD ?K r* b4z Nu Ae9PbY8O  V<CuWC5k0o$ h {G Y " ' hj3H2JOt~U 01cx9 xNQP: 1MzoM52WP: J  > Z Z  $K >  # - f Ks=&GhcFF P8 +s`j]k7o?*tW'8@F@= }  r  $ P O ` X ^ S GYrw{"s"xv #b` %4RGQ$%P&a`| tH.Q!g?2V@&6~4;v(y7"R 0 . R L  g ,  j  2  | jB X!^YcIX&;A]@F;~$.BXgklkhSl@OFo: m Q wB:!K ,   K E    -  `?Imy@SgF`BH1- !08D+W3'.r_v>uzTJbo B Y N * H * x m + i ^ Z | $ ? i K  ! \z:;HelrZ*Hgq+c6m?~2H+v2QkUQl`H|R@TY w 1 < s h _ ;  P 5 S9ya]x M z   / X iIf+_K xLJa u1%bQ -|3P*/^,U_xb) R @ f T  A"{K ^H  < = b b gg1| =A8/$Ro4X=uV?bo$:H7)s;hZBt= [ t  X q ,  Eh     D T   ^)#ahaQ{oXb)8vqQ6VEVI :syB{`O}p6u~(  % _x?  t X k  c , 8  @a* [ ySf/{ PV3  ==d2]$~y k~}aEFqZ4Y)i~NRd4+Q4 Z & v  5 p a 4 H    x @vT <Rard S g c'Ic%~ d`t&*@x(L6~AJ6 (5;IyyrU&k  K wv@t  g  HYHDC@~t P * 2_,?)xvrVl}MM]G1 4do`usp`KR^|Y)&A d:Q^3 +'Rbl :P^ e DqM`} %T Ng( #>jgT FpooL P=iB//,rM HYz kn)fYiG$#x c[:0);RA'#4+%KI,) E;Vx*.{bY z|yC]1\Lxv:A4aT@O6OJI2*  v/<u;: #E:EBIS2yIC$4Jo6LI$ 4vL.&!k(J}T`IFtx1:[SNmL}V>,T |J]NG_JwLn`H^II[E^aE V8'}zT*v.+^" uty /[C] @.F, !\IaHr]HU4O4$U`l6 uUl4"4 V WWvy29{V&CD<+?Nu`qn| ~Byr/!>Hx7,EkOk@l0y6vsr[4WO1LiWs 8Q.jO hO{[XhFrgkJ9zBj*3@O-}~=]SEeUrIIco/#R7*mz_o_4U}YM&T0`|v Nag}( 5Y[l,}8 #no- BgfVhg/R!(. dK#0e%rN XVR18lw5.scid-4.3.0.cvs20120311/sounds/3.wav0000644000175000017500000002375011727223077015641 0ustar oliveroliverRIFF'WAVEfmt +"Vdata'vbvXg$'w /> M 6ta p4l m tU* 0UF iJ ~ w A 5^E QC5w 3j P 4j q@G:P N| @ 8b gZ3F  o PcF  q!KM z` Y.9~ .v :HEm4D FDK WK(g gl _xZ $~ _ / &M uO ^'R/,Efl 5?; 0X!M{\KTca  J 8? mUQufG=Q m>S!' jf/*10Q wss/j^X5Ka9  HW\kNXp%X7\:m>YT]BcOJk?pe 30r71CM(Xl_y"&TlZt}bxM=2]LjD?AMomR (i<*}U8[ ZW}/J1)<V,ajC>uc qx5L[&G~xl;Hby0 Lm Nx!J#$$%'+C+c=$sb-JRe4 7 k f` 3֓|Ţ6d\RN9c + d+yU]N;A J '.236v;@CJF|GIGNU]]Ni*Iˠ4攫߁'j Ք" j-31~36+l}S oiL B? 8 |\f פ٬\i C *  j/Z(+^#P)c,/339?EKQZ"fb4~ht݃|, џxF -20065$u~#?u߂;EHÖ{B |% Y *|ނk v9 W(Her"i&"V#!I!(0k7498m>F:Q]\3`d."*:f8$P*[4ADP$"z|v3ф4ul&? / -Q AX.'/6?E-MTX`j,wR_K pSOOʲٟe9VbBg.19JWDqBAɲ#5>V.\  j)v;o5_zU!H,ϻݖo:{cMzAJ  u f&:/&9?=?DJS[.a"knxb ϾIGZ&op!<7l_BLAnBOhaypuSpVf`9Ʃ(j'űң8/!(oPI15+2%F=fӓߠ#~t06 191< $T-')೟۾ؼEٱTIyzP&8-  o$141/5BIJ5IdL:V+^VSv6"2v9pͷeܝH  1@mGA)',S mAБ /P":2ޔ ? H% }HpςE& 0 w ] hn j4f Y Lc u?3$.39F77>GRT?T@SUOUG 0;ޕӨx$k'cZA'1Z:6j/2/.3+){%֘F(~B # c'&}"VX³TnŮIY  E~ > &kED![4IVd ,& -/,.+-5F,4*")'+~ CojHԋޙif >5* 2"' pi&>P\@iA%AzܳBmU x6PU K I  "O #@#V$Q&@'o'i+-)`).I3F7=B?-!%/RL6R|%t,Ԃ= &"i'++#, I.8?sJ#N^4$ 3P՚ۘڋB- p 5ou  ? '4tqB@]  nPf"C%_.6/%1^6z;HVI?;./=k3+\xƚ/Ώea#,G0.'|W!{Mm 3}޿zwF92 qM܏ѝ֢͋ޅܽܒ~m 9 9 d>u(( z2$()*52/j>@ DB284.%Me<#@m/UʼHгٺxh!w,&'(Lj'%1} h4yb g5R&1Cleݞ٤ܘt UF7%/ <kF  CXo Az!%)t(*2J12';;93)  .̿þt@#՞vm O"nu"  5<=gui`= ]ry% ^O ~a  : 1  G$ t>z4Q#"7&$&+Z("OR>?ZzONmp؛o`cb` G7+4m<V+R#v$f(IS I,K f/F^a?^Wy) G  V  K  b U@zO&&"d  =)`|ە,/ZA H  ,J ?OGIyVbwd`ExRp y_; A   C m 1 u  1  A V&HjG LhBy ~$NI(GV3@UbMFa**o9/vLZr#LT,LE1y'X T t K   } 8 0   _ / 92u > hImwhOInSR{@4xeMq)!` C& k_L=pkXs*2\+|PVilq { !  T  ? M  [ * m b Um"+ ro^k668 r.fe(}I`~r`ZA7nwRteLvHQ*a@)_Nl-_Y1LAX$r=:J8TB2v L LmN86 M|Z Tz.E gMg/;de^ & ,oJ;/:V>Rs?e #<F` d&P*zb @\ 3@ ~C/l>r~[D% hXXw=ku3W>i(B=16VD/o 7@!mkz~=p/i~9x`dPEgh   kkl DL R ~o7io6m@&"pL`aYfms5(~WLQWn)5:l ,z"^7j |F9M0 DP)8 e 8 w  ! g z J @ lQoz?GcC}Vm Pq;kX/KFfxuhwm]5;Ya8{=0eICs1b<9"  h()Hr ]wh~eD6FzDF7;91m<Y<F/hU_$XT.|Q;{;}$P$LD64RNZ*{-uKl$?" |^,r2KSG {h{vF#}Vv\IL  i)R "xEqF `3A_;!g (#x,n|6bxgcm 6  #:/yhN4 L B 9 E K p ) (VO<]9cwRSxf2\_PPuP5"/y#PbO}6vHRt5=&]&=Z<t:$lO.`EZ" $V@ a0ntve.)v:xtWF ^;BElDC6;{`nP;2eG!+v: n XP=|j4faPLkE.A@(8:tLuf/50NKAw},Ft[7orG7CZH{@k6~NIZdP FCe !a~iQWn (!  ez6}uxM%, #c8;Q  c-ZYY+f(PLj~$(+e3scid-4.3.0.cvs20120311/sounds/a.wav0000644000175000017500000002043211727223077015711 0ustar oliveroliverRIFF!WAVEfmt +"Vdata c&>>Qgln-^?c%UNE.Z)D%T0\d||_>[6qv|sy3i@ff!^,R6&{DIDCP\O27@!y}YKi|s5s&"Wv#oG O4n+_GD`!e-/OR.`56l5JeHb/)M Bf:Odr yX!-=4|zCPz , 8bO^ #Ju9"iH_U A?[x' 3? Y"F@ =\eS&'7* e3?$2"7")0+-2>IPAPK Hm gE1^19͏$L}%.+^%r!r4i]GV2+d'"*(V ;  hR K UKqo7h0*%ԭ\x!v-RBV֘T'2v>A^> 40 i v>*2Z$es?C:E6 V"!NF, T ]D~&0,361b4q/ 0 , PV]7ƼQڈL#&_? MԆiہܒMP(aD og -X): Stq D -{O7rUС ~OY uc'vr<W"e ,%{ B* yV '  :!M%#w" b$-(1k0#4$i$dj pБѨݯۙN˕ #\7fK҉ݤ+be0\VtlH  6+x⑽X˿i S M dN&' ! M~G _ #T <##"%[*1/M&&%#%jގ9TZ$&(%w$[Ѻݩmv29} f/  [ ? iJݥYH? O ;k8qA [  F YR "V d''q*#''#S dLՈó':&tރׅv   !n x {n > /hi##i#0o7B 3G,Ba,Kx   [;.qRx%qf\'()9'#G 7=BW\տv#-!!w _Eҳ ~= )Gf[Bl^tX0f^KBz$RVqJ  > e#  k D<2kge&=  H%m'$!"SI|[߭þִdBC" V#*~WSi EC {Sm{t EJߎI/uu'ii Bi&^r A2i    ;  v  Q!OZQ }H !#*:%!} KS"͙-ރO-t n&~z#_X N~ s(5/{vI/?~ zJ,{ HS { C l   Y ~ ( : BhZNf)E*#J pp A~؋˖v^9t cR Z) %} .%] @,(C׮&`9k _vC'Q2ijHH  pNt>p8/P  D  [ + #a#$ AH3kږ9(#} : @ %= B20av]t XA }ufpߌ&ޝ/=7W   ?g]6w8LM | s ?UQs( c  u. 34 CtC =Oaol޶Z%Y"'}x=R On, 0($-2"#B $ " o K?x*/&,8X H 4 ?\+73Wp `G(O ] ( gW 0 xv k X fۂۖ<}D 6  XNUBnWTn=-|2tW`U;6Q:#Kg/ 8 W ~ onG50'w,  x8,  h Tk c5  #jF]w@ 0 Qg?tIe#PKdJBF10p0`L2g_p - Y M]0>0DfD X B  zU O$eS3 p 910"0A[bEziY4V9 H"%4"t 88K3/  F p ; [lzP'Ukp  X k? r W#P}p G$&dfj(9m54F[8a/}IpAQGV<:\!g@3VWG , 3t|LMu0 <F j  mx vSC k 6!4_Ym!2 LUjmIake'\UOQ;ttr .%v[-DF0aTpJ`Q]Cpv!=  R    1 F0 f Xs Ic>cq+l$#]hk+MUay: ~%:RD7]F>N!S,B smq]:`v'r% \ ! 9C%D|]cJx Byc~*A\ ~+<_\9uBAW?H4c%}lXA QJ%4:{0&<@`1fe? *2=KAS?ig^@Ib$U%aUw h v + F0 _|q4X|]F5CF,a>y|mJRLJ* tX Ho0wG1KI5*g Ecia[L(:PgI'8aZJc+T(Gld ;"C%:V@?CCOOK1H`h_'ms;}e? ^ ;K4xy4rSYXe:eP~Ydthfw<.7LJV!:plq> ?'& J$&G+ ;pf,;U3>[2To;S{a} N9iQya8R)((9 fU1Ma sy% YwB UX:`P}%GQ_n~scid-4.3.0.cvs20120311/sounds/2.wav0000644000175000017500000001702011727223077015631 0ustar oliveroliverRIFFWAVEfmt +"VdataZZ=0yn>E?a>7IC 0vR6x3   }}2:wevVjO*[$ |EYslV3WE wB  4 zD  t<=' j,bh\LD Oc sGp C" 6yr )%  2 ,8> T:-1 g|YEZ@zQhu`:hc@37:5tP , r ,Y e - >* %  N*uuv q ].F  H"hn/  >c3߷\ 9K#9% 4W S 9W&`V dz t0uh~>5Jp> %=qp *Y .26 &w~(a z 8j-_!0$V Q> 5%X l "< WCG g lNJ k$N SJk J U  )} Tm4"6[Q ta;0WKZgE_ *iU].> = [ mMgh*/,&b3+B< A$('eq *aoL0[:j+9\a%J,unkn+Oi5 9:v|]z[l^o 1X W NJdaFk{p>uo{]u:E(Y)>6!= -eYK%w Z.W!r<f2D] 7.d}LSDKq34|>ksmPIqw>:> J ) Mjc>r s f4+GD>*E !&^'"X'**/45:B>B1I5-Iñ|3C%|!&!CmRl̛k)Pџ-*)rN6D? r=f\6]%x+31-b.-,C0/w+l,))-,08{=?GRE\[樹1lFD "* $ !+4J'>`9 :ţqZ~Od- !!j U Fj . ڥesAh!K'*#k# *^*,/`%%',630.J21v6A!E IJ*O<_G]Htс``fdƽ*%)$!*0-0)zcޭFĔS t޴ޔH  0T fti;@ہ{G7#t#-&,+_+E"#.\//*L":&./O23)+&84@HRt[Q[,ѠWv$Fų b&/|z=G21x-?JE&=1)1-Y^Ǜ՟Wks1)W< e y !i%1!)d-%!#%*&)!).7>JaV'8ޑޮ~LW 3fi*X,:M>s$$"'+17G66TJ)+0&QzM$T!ib!7j`ـJ) ]U*%RPD  K~*xl*#&4mQ!% $#g&$h&), 5{;5:g1v hlыǐ[Y\H T" 2$.(t E/}x$5C>g-k-oLP+9uXl{<~GK`qj XP ] q<5r)y| Q!}: &'(-0%,EA/mN͋`ÜƦLަuNT/ @K!R7 i,@KL8[)">d fXgs8   R vP^:@*e_H_%\!g$%l+c*W n Al+M6(_Q Al0 N+ * > Of@/l/ls:z: N<X   o w  A_p"9&q(v*.(q& HIߥךфгfتR߃Q9 4W-- k |=+(e&")^2+dB L8+.cT_ } : S & + = (mvn7}(LNdfrfNoMpݗ5F"KS 0VK<F 8VRTYAI2Z=]Yu-!s|/a  y  P R`Z</J4pY0@=vh`{PNCq2L  xP   ;x D=2Un"]gk E!@.+Z.  S w _5   r ` i v Y >_z @#;C[{}ZQ: @#:6"S(Zos G u Q1+$< G W U u  !  ; ^ T j d6 \  % *D Y 4 |\b}UL|AI:dBoX:X)wYl |%s}t&=#;@]J8$a9(+4 N Q  F ,  n  |+}^; f 4 A d  s G" D ^.zd][DjEi,YA#WOO`_.tW%:mNSUL;U[rI  j`c=P56M1 ;f8tFiaDdvex*pTrqP)eWSLQ9Tk$qvA(*4 = M 7 1 :dH@%f,k  +PM\kg1ce6k\k_a03w;}2> )9pMN f&V;pfr9q"*z=jVh.CXQ.*S'Fxbdt30GiNj"pS :B&1ZgxvSQ yGN`z+}I|`[keQ=i,QA XAt M)}pt!y@0:/?~<h*GvAg)&[gGzT|A\&mRM(_M+u::kB4 gd@t*z,o2 X?qb1s scid-4.3.0.cvs20120311/sounds/CastleK.wav0000644000175000017500000005420211727223077017021 0ustar oliveroliverRIFFzXWAVEfmt +"VdataVXs|)^iE@J.ddpFru!1)S`4;/t`F u5*p gApBc^6qq[[436KHt]`9X|Ry{]qBet{[tG5jQz%weChBp1O@BQKg On Rpi*ny~[U*\jND"(2ohv @'#Yk) nz69 ]Q^'!x2"/JT|7Xn& wMTT Vy*KjK8<kOaT S-Ewh^.]2 s3I^:qAN^iOLm> `/ Y);vh;IDSfqpoJicV2-iMa&k4M n3m1DOl=9659k.Bc \$f'_h7h7Z>%#]s*^T:_ hSc"(ZmD]>WfZmZ8=1 K| 5.=TBNl=ab`f?96CIsOGKG0y;PQd}y`Nr"=K;NTjX38OO^S5jlG*@zR= LN28!DG",T7bnR9[JjJ[O:3/b6Q*5mj#>d!@Q ?,IB/A\b3{^W\Zs o{hu&_   EA!mM%zbYxr$"~ d5pw&i =E}3 C @   .Y4"#j,Ie6&TnY >c]DR3H#5 oeSEh}0LKv!rw5$4;\?^d'eFs & J :   E]dp1"j*/49@>-촉<7uT3CLAkQmTڳOe0]G6kHI,i 72-\vRz Nk`F1m^<s 3  i N u\+ x  h !3} M  ScZD n%@Q}!8UC.px\"_<I@>>1 c? A" I SG + iX   +-z|L6sB-q b w.QN z|4/Iz\|z >OkZKcDXaSCe8 YY` I _  ! iAy 8 ]}F^!r#q'H,%1ϩsJ Mu it( Q1Mt-q /b4k=fi%#W&baSRvm;641 ; Wh F  5  {Z kU  >-JF I ys ^qsJ% >rCPF.fx;'I=]#O)F?wa1|J^yq_3+g%0 R/   p # vG( 4 ?r },L\=  p*Hi%l*!(F!>E_x: Bb:*#?ELIy-t] `Jm&!Y{2v7 gt;v[ NcR(^!<6 Isn *|>8Vu4+(L=}F|kv{I=!9qL -fO^!|/~\qFyN)* ]U zzj(/_De"%Kv'WTDj4jt]!izkWP7LAxhZ"SdOO502]zFI.8zWmC<jBa [ > bODl.:  j.90pA/H'gxDu 2h\` SFHwT@=Q*fnXJ"48s $  vc- v zh$A OlNy {5* ,(\G'bo1toB>`No )2MeC& * ?5@aw+wC' B! 6=9  *cvEU2R ~6buKOT'Z D}@qtj~ oW 8 |=EY^)QZ(`8 7 WSPF0^jlIgQ`n( _=%[ ( ps h jUL(j / z +I BJ 0sC:'&9  ApX)}Hi^Cs2o# cZJ cIes Cj /I$S4)ryOq7^Am"q z p Sx z E V K-W 3zh1JUh#}Yg@]}ji3H@l7Gc   "  n z on >\<c 7r,a( NWhzB?E;V K7K&i-8o+& Q%H%V) W> $ K (  m S=x ]C>a9W8J7(Pt7"}#`9k?w]"4l :Eh l%f 7@:G [LL* { nz B  g Aj@56WuK\t  F/Yb: F(pcRi%q cn9/_>`~M  qV{)b7] :%qhQ>/x}%1sAK#!gwC`L w /wxcJSn_!u+[zKI>~kg@@}qQKo} qu7?2KSMfe u*w;O{A"K^7>?&Yd\J.0d]nUmf/ex[;I"KqH.0err  .u(=5#s+UVYPwfQ7 J D;PQruIl3g ^U(8<FX3%F!r?@8c?^Dt *XS3$JNBRo8Ic!!f Slj '^WIplFX;mi+3Qol. _yj2^ D1T|ed5gD5;(+s}L$en{"^KUr&d* 3ZHVn}oS >$\{Tue^m;;L(VII^S f55?ek<yA0e> ,9. Q4q+m/C6!`$=  !9 J ~a!'pZ/eXI-X lW  !~.|<6D c %_gkHC MG_`at"; 1lw6 $zC 3T,JI,=E2" f8K*\_. 9Y LMc370 z R Ldn  G$4#[BG#)kY i ARWoCS4$^'~ j?8H{Z 3sLy eX& V RU~Bk.>\ xA_`&\P:8kZ~TbI03%_rI--#_]x3 \Q<5 YTJRII92{gE 54 yc7*[oQ,Mo2p5MXSYs{.CFY x P x |   $!1 p""K&',j.4:3Ps0ʚZ r fJD{ۃ DI[Uzj@rjQJ6$ 3oz uI !"$L&$#J)f422;B+&FV#n35Ґ [ Ck="mjڌj~!}Ag, @]7paR{ U": ""!((`/2&r$ z*&Al;܎XxXYfK)}cּz1e_3 J '9a^rbmRB mx(  !%%!)6804%RI$P],%R^МMˋVڜ|UJ0(Bbi?EPN17kH2 1 # uHsP_n4x omtt "##%'('F+-02=3\0X*(/$ 7ޙۓM1߇ߪW tV*ZY5,i+ '\  Q +`..k` EL!|'|+,1 7+BFC 7t! +]A`ڐ؋ݷl7nUXFB'/eBSPz@ $Vd #Y&)-17H=6CD8#1%E?EpEvh3ߞA7>J?pN_ QF ;v 2 >"&~* -0W6<BC,:R&(F zT֞}1ڕrOT&(C.iWp%sqYG"U'GZxx I 0"%),03c8->C>Cl93'yk޺ԸPT|,_/yO$JLk"1 ; [*3c)& UV7}!%*-80369==5,R"CXZI\ "kً=n:8G,~DtlG0Y#  Pmo?t7Ӫ#-G d fs  u. 4 4 MD).B v= ?" 3.IN7\#^BHu t WX& #{ xf$x  = sI-o2,5ufY/O_SKi %>h  _6T7vHBART@NcP xI8I6 m\95\-[1|;Vfj AW6Pd1lfs>WhY|P*|<f#eO$v:lqqyI&kimdNa']fX&R2}099kCd<3';Z22Ar&  S . iQ  6 kk   Q  u 'p,Eu_?|tu%mOz (v68)O>[x A  09be`1#m#|#(+$q ;IV/]&~  6" C6l]H-:    !N| ;fj-fQ>GYCUCq  1Z1g a i  W JqlrXy, WDiP.e\-.ZM.*./KuIj)<&~j|FVi)ix,m=(  ;  T <# *P!"#}"8g@nk T ur+'yi3 b vTtoIfhw-5vpM5P7Q]A0`M T P 0 :0 S bv@YK # \n$+!UEQ!Y  >&7MnoCM~,Q0OG"WO%zk FJniKK * O y  .l !y%s%!i Ov! K 1(a) ) hQ- & O4;tU  $1Jor:/m,iB^qs78i9 ?T A d Lb^W  _1: Qt3[  dCq5D]vjsWE?uB(E,2L N -8G=oZ8ijG-R^2| _&dy u P f]~s0#V  |+!{0@SQ<L Q1Ztp={}9][%^~N`byy.&FyOGwCdn= $ 2!m  .9Wt}g (yxhF>=O7p FU%wB<6I1^_po2$TqK 6Lk,oSX ]c o8%l-EU/sg^;1 i G : 0t7 {zH yL -0rZ$RbH$$Y0# y  v>Lh6 {JCB|N A%C;||Whc,{ A\NU_ elp.]drML  LMO'.KlEQ=g8L*!{VVa=dH04YFJ uMpc)HJh ' !ϟsev%e4Kjp lSd j sA}O}IEAL2X5[UKo"F'3S~&RWd: {f+CbykDvRI t *  E r; ?G=p- \/3tY>gDYmDk> FFNNiAcd3Aj6pS_Ki(MvC?.D^|>%&{UA u   O * 9\Y޶ۏ3+_st\j :Wf3^?gIZ GM1MlR83])pJ)=xcviZod:kV(kst3zL_XkS8 5 i G yd_ 9IOb}++7`G, H76Pr_3]}%;r}PT0 Jh]xRF p?[~ V ec/1!&VPV49B (  : C # W T   4X+A *s\Bl*W0Ly"ba*J=4|h8#IhQU tW . ].ZhxN wKP0^ S[Eq-gm34[(u{Z}+q&H\/I sRl0eN %$yZb>=EM |z+\ [kT00L(r_'+3v | m {;#wA7~6T&3"i5wzF \r/ @B]Hk)D-dLwt1i. M M[a7?6k8O_1I)u6N8,|m0,|Hk M lsaLghPG17:th-byi!@  - P[3x:]> :1&|R <Y5 25 Y XWRvk%c<fO}.B(i\qEll KRVAd\2U"!)6# $;lj( J?.#nm7Z-^pFgcQ,m\k|eBl s^n9'KY6@sNX%zFs{Ln;_i' T<B{#kX%{L"Z!QrHc:P{S* E>z 3c5C9)^Oo2oL$%-f5s"&C b'eO9.seQ_{3 h6:-zT{EGxa |`pVD9p4WUJhT~&C2Y3Bp5T`sBn @k:?np?<-.nV$2-r I6P$CgPl EVA *yj=9@ '%|XJJV3Epk Jt<[Z7|a$:da917TP^XO9] 7E(sq1EKT,MK9(sCK~F 35NJj`Dg;~`|)u|5o!_$ bbPQ  }Z'?`?}PTety@G|1OD<E<|^ v8b 9LjwM%kY%}C+z,#_QTRjy-wE9mIX`>z{{KWgG(&$qI;VmeR@T}Z7d{Z9^P$1jHW=IS7[V)w -P5LT~CnDy:H{r&X LC}h)< W0w#gN*ae#02tFRszPfN1;KYh*wjE| zud5Jcqw\R3ZIW591DU6&scid-4.3.0.cvs20120311/sounds/1.wav0000644000175000017500000001613411727223077015635 0ustar oliveroliverRIFFTWAVEfmt +"Vdata0LST-'*5-*&Gb+NOOPH|S""vj9 Dqu+KKDD!s|Gx"lv4"*WO~|HcT)My2eNAT#Nfld4\$D'D<aS &~Vy-өӼٗ] K >qT i K,ڼ9jLv43)Md <$()'"=p(O2O:@HDB<-g:@SM;6CEH6@k.O9b5u>!m nweW',)h<#|_⦥x+2*oHKY ,"4=";y1"ZJ3 J&/453R2G23#7:><%-(eQƪ4Tz`W[F$[ʏCQ1fDa)0/S$\1mL.f#)c382?(z ξ|i)$u'= P{\"L:T2%,+w$hWI ?@%"*i-/0v2959?BAW=, ƣہi6 3MOA\, ъϾ0>,s64'W&ȀNշ;  ? cȏqK:vza$#V |  *l264X.O' } &14& KgA/(08`8';9_h2ٮԹE.i8W6'I 9ܡсeckT H ӷCjЩf.ENzՐ=~p 2b= Y4 5+/W,:"i*1^4 5322_32&gpƵ8Kce. :3$!%ם̵̆s7C-I95*(PԒTG$K J$0|@ A 3aoL"tC-p !6C <#?,$Q&z"r)!.0.-j1:CFBX- Ȭ$_22 gʹH +<=,NzpA}%x1q.1 3$F6ޭy}X bTfp0ԴS9 Pi   l  )$&4% $+7EPjUAR,2=EBY;.L1}ٺʪ@!^'{w0T U6ev_[27' % %Oy^D<tSjK [  Bg   8n 9D l#n" l! u!/%d*#-/5r972- Yy6\2ݵ |m{J$vZ {N, A  T `[s{ p[0 6 ` z 0 h - @3 ,=QBof""&&\'))%j)2l\^6'k@f;1*8 S=+dk\3| W:!8U'2Ta8s -lf 3D%/"%5'{'g'$ ;~+$ޕߔ|/ 7]nD 41l1>^!:z^6+BVDR  E7.N1"E !"c! T 4CS `ކGtaW6 h - lW\m:$. PIaac_)fk[# S o BkaFSrE}ce9- /+ l =z1m<2NH^5QyD_ Y" nowwlZt y9#Aay$Ft0T ? u K   u>W T$rPp5JJ12&Nf6/lA x  w g  M_z S+?^%{1bw,\m z F ] a k9 0 u N Su`' r. /;3#:r4A<[ t *e-L2yt?V!E#=:we^^_l6p t ~ D  U ^ {6Rd:q)W\\_TnEw: %JV,&ciMksW.%>0 ; ' y  d l 0|/\"M@"q|I/+[;d) Pyh %h, :vTf4)UWJ"k =hj+:4 Z  (    r [ n 9Y  E %gk3k~O- ^U+C XcEd2L/A*G"3t  W * )      ! e b P  @t!_LCP8 :s{qE+^nI \#D*l4a9U[u~Zs [ E3t~{ h (  ` mK [d!NngZs41KKVi?32|bD4.a8,gE oAT)+,Y v3>a%VS?4f5n rK{VRAbb,Wk> ,-,!R3 "N>#QTqHnm^v&m%h\@m$Yh6PMoTu.*0K i9O~o;W!v+q3{tE%Lz?"x@y@z"uPP]`y9}%XZUhL_)j!i,o#s ascid-4.3.0.cvs20120311/sounds/King.wav0000644000175000017500000002543411727223077016370 0ustar oliveroliverRIFF+WAVEfmt +"Vdata*;J2v9ptNP]&}wJO+jb_ZLdPp??j 'aejzCPNLVq`@&)4S9x 1kpj|!W(dMC.pI+]YL~ z? %Df3( 0tT % ) ON$#$ q! \ En c&O- 8ss Ln Yo;.1@e ;8:|=ޠ#*hT }L tr}D( 6&e5N.$T K~`z2Xm"[CC) M  1 V#' 64`<,r q%@*TO&&() 6'i LMlF 07s,gR #-,X A J o a;4[&| O"A9g ^g  ^#f|Fi1 #$a }u O> M 7o@' ^  .o N8 V2N ] Z d}V  %  N& u oUibE.xnv]81KiE \RY[CV\g]j>Hva#2UI'pYi@`5oy*fF3ekxK{NyJo"ie[x%AG<zLpMk@y~H~bL<1Vs =fB(U5E8f0N0wtC2)dej3$)*Of}Un{x5@5KHWU=0sh~:KDa[]2p Q>{"Z%#"*-,%MX]͝1ɂs"~"I'7VH"\7*^B 3c]?<v(,q1;VD>HIMFXS_gyQgL;UfO>!kb : \q{+]/(r4 h'ռvҵҫ>Q| ,0X b=rz0c&,::>Pgodju8 Q"vQ&қf}| .)a>OI29DSϰz͙ij$sx ; uy6 Ip:ukn:  ' # H  #)0b@JSd/m; t7ڀ2 C  } =  G"$(W+8-:*<4ALIPfzhS^%o/M?E)]:sjx0'Q$- @5P9 Ԧӛt 9 z F  X޵ݠ}/@ * 1YLk7^!W"TR%+)%'05=3;VMHJQ(eW0>/@7,#z`hE6Ä-jL ۓ*Mך \]w ` kݣ1vقC`c '54=-HBi#H|WsL C(*)/534I8?[B@P=O:8.l'ӓЖtz1+ߗ4 Y QES ! V u30Oژ%ڋI  7@Qj%BQRU{^c v8o %e$e!3!"(-,+i29:PAxDڻ [ X"Usv[J;n X lM@kSG) kt^ A/'5 e8O.\ i#a#y#(,f-/067 :6(E}9l7D>   w"VoW C44 0>v. ! ! y    _ /nGrXS"$%F'5+q-26.+D[X}ڿ<҂ѺRHc| QJjDm[KC's {Q_2+m|\  6eX S qF 5   _MDH c$t*u07;7*NYocdY%+OV3WY^Xbv6mTI\ U  G f ^ N |  c ; (  n b A R " +  @3Xe A}hF  VBx/|tUL E3#"DYW)6& zp K  l w l   < ^ q  ; 0 4 bECs ` 7fJ_}HwZs{:Z%wi^<]qb3pxzw55S 2_  Sb H]_"; M F I r\yW:N - G~] yle%=_k6RN09JGX(?mC$_HM_l[NT+sn)\xXm8/  i~LOd k= r Hz5h< $ Z?ZCSV[lgVd:8y;-nmj%~#V)&\@n Qy3H?l R >#b-SNN'yOd j p&( C f-O{pq$ !6 |BYTORJFO(`gT)qBGt#<wsFA Z]CW~050T 4k{s l  y~fo<8 =)Mt@hx^jxv0U;UCO8fl;c6/c`#'^/x  cX* ;(Ix26F6&(.  u r 4IBx X*oGpVv;[g_'[L-_<^'v&r?\L]Sha.P, 9'*Dl[^KZ_G(Utr{+]J/>0KhcC>F;})X2x3+#NL|'7<I08Ap:|? 7= U m>94nN -_r1dlQ>@ve2k%@/V Z<idzk("rC{Re1#Zj[**8_/0rW~nIc;i+VJputk F,|-kV6Db0x9@/\759 wufz/g"~y=ot~2R#s$p(!4&*8|H iTz9[?(i$3< KTfJE' 55 "A5MNZq?H)_ /=(y'Zk~JBp -td#5 s qb7B0Ns6)s_gZ6\IL|x0P)ORJ;_fz1|L2)\HbK4^m8S ([ MS+UHue%KB']Z)^'z.ol 5>cl$@8:$2RJwikO=Oe s p1ET-6C 2(#"x 0;u*Ley%^+scid-4.3.0.cvs20120311/sounds/7.wav0000644000175000017500000002270611727223077015645 0ustar oliveroliverRIFF%WAVEfmt +"Vdata%+@/PRx2nQY7,'k5h_*mbFDK.m_P&~),6CL^`NDJr}B}^SFAcBZHN/j!.( C||0-&6~b?Vnl"VO3YF hOW>:JuW P{/[[LBFLzgchq$n%YH$wwW}1BbU4x7&HR; m} (s~-E@-TU|>QpPMOxDM$1/%>fo?+]Tnq:N"*VT 2p%#/\2zmro]*kU@3(#.5TyIgm\aV:0.&yGbw[I]P kCY1K o$M1X#`9Ob!N Y0[5jLh$^(2kF39#7!j@E6W8/  .R wsf l LpO n{ =/3 * D ~ 3 % Dj'  n [ GNOhNLM?(mц;ϕ2 ,(S!*'N[dϪϤJ͋x Ruߪ\ЍϦ7ަHjFSh e =  c p%x+Q4i8=1JM"NRWa%kj-M&[}Ն'r9: n)5UpGE0/e0}pC+?  %27>>/ JysNΒi$  Q ( K"%A'18dEB>;8@9;W?n8/`)(,@nEJȕ׻}o9Ց |n7H~\ߢWMнJפJ3,؟=td[JVpE0~ ? r "d2-b&/m-\,v. '#).)l+W("*(]4U?Hǁ@+U2ԣ: %'F>L>\Dt j  ,%Q 6>- ^X _9S` t T N#"Tk!(!"M%j"+""(2*+1 ?14E06-*%"?0>q|=ag)P>;0 / mxӓӓނN4\ Ӊڗ0dk(Zh 9S Kn!!'74;?qDCg?[eR2cρ,~&%%G޹j$" p3 k0؈K/D6qs5~mE[ J  r s  }  <B4yW34 tިؗ*9F" A2s9DaDoOF:%3Vx+MJ{D (  O1-n 4eh"} ? [V 0uy}@ZZ,9Qw[idEiQDf2H# X- $d 7 S  o a @ {.AJrrD!5Y.Cqsu4"0dIR>$2]\F__lAmD p 3 O  J W M L ~ ! 6 !&+p/ ,8#&Buda%?Ά9+xm%cbAJr8z*^h1){5p(<+k >{ q    * GW kS u 8 r I% 2V Xai  Ik$M$PbGkLۋ%pG3=d(pwB<#=% a  N&  O > Z  g 'i!L$"# @Iݎ#Hoy]5gh&=-Ub-o"B>S!    z [  . D h " E 1  ' } L 2T D K )D_s\ |ZhX,Gz_4-hP8,A;J rIHP:=(f9jo d )o  ( # . \  K m o &  t fU^Cr3-6=2pOXe GngsP  F  | C   " F n < \ - i A  $ -   E : "> t  VN|yf xP kH{cTNQ9!!dQkTLS9TkPet p ) G  + < & c  l L f L u + rgP: ? .z3;dsYq9\YzEf'_}X"2TS ?  Q C g V | " &   Ay9  Z ^Cc  j <S3'UD FcUev%[\\<nhT?hn<khN\T:'O~| + 9 Qm^6 G'n?ya?mf A 7 y *  | &?t#Tpr(HX,bTlm wFp L;=4&b: xq&CRaDLMX8 f iI $qAhm@r5W } ]  a'W6mC,?[!XKEF1 nM(K9sbq(  PrO% tx !x;43k|MCEQ8RDxF(7K}z H"scid-4.3.0.cvs20120311/sounds/x.wav0000644000175000017500000002375211727223077015750 0ustar oliveroliverRIFF'WAVEfmt +"Vdata't]2D{XB^gny'BB6 c$Ty*1%PnN,, Oy"P7T%( OtCXi>%*a&h h*nU D%w]8|e_Y>vI=~[HG;[Za6+xC)%\F?~J g BUc6R&5rjsK0B5G;Q1d@43CS< K,3W#iX\2fbY4z,2xP#@ 9 2ENnabN|J1Z!=K|J >uP6.7@<;6 E5sB$4]; -{Y4@}!5c.)D!I77\_Ers7(8GBB`~ , MaqHo i sG S  M ' q 2  k 7  I !, ' k0 7 ;i@ AE v=f) 4w;:mO˗Yr E &fn۸ؕpK] FSD }Y SUx0$/}4!@JrQWnZ7T $X"F*tI*L$'5 5694@"͍}u]=9 w0-60%G 41sݯ][߾U ^ A ?wI iۤu] KSzBfys /P$)X156> JV]\:ٲ';$v.3:+81)8eՇŋ`3#+L%!), ?a,݄<xN N'bPTU`1^RnE)$ w( !d'"I#*k-3 6B;FSY5d"ٍѼưʢ3O$Z-;CDl4R ݇ƎuPs %/, L R=>4ߏCBrJ A\ojka{ C %HAX q6""bC?+!-1)2/)7 b\2܋xٌ́ ?EK#Lx ݔg" twlF ^+ VHfz6q|2* t c1 '[ S bW F M [}('#(=04u1% DTkܩ`vJ <4[* i X6" 7oZ;/xae&:֡߆+ \  V 1*  Eh kx% ? v  f A 05mY$+-|"#TX}-7Kgr14T ^71WS"-V9- E )  S RJB8e}m߭rYsLI%  HEFm3 *: 9VgaGEg$8$c$]" ",єy< B%_X~ CMvnH .ZVuR S n+5C%yE%tjVpWyg5 OY}nh o   3 '9*Kn`{btI\+υ!qn] K o#0/~1s1~W-\=F!.,m- X3%1/ B k8s*>'v* > M8< p  e9lN$d i.`eUP/'$FRb6&GC|j%2vhSJ7mqk.gp]t}eY"KL<P UbBe65Zu; a)d"Eh[L'qbRV75hGnqNQY=.>EvO|HAlVG}-|#JnSXSgM}%=!}HO"d)-LFF|MD2u _M)ujjG),vrEUyrk G-&1o#~-(mLs[dEYsoB_s% W.kiyoJ;Yz&iTL+nA~jzsk.@!?f"?!-GF,.b^J3W1A.QF_XKu(B i NG " qaM <: <ENLcf#%|q/fXuaf <vHU (& yUk#xIl U=?q+/+Ipv,7fV|"Dgs^5asc.  cj7BB UrlJpUy(H B0 p :t Fg3yk @e$*XM1LmG2 Sdym?\~s/ ulN/V& R   \ NG>|K d ~b E HRIQP<[ %  (V"ZVEN6 : {Yh n] a@C?[ gZ n9oA .r mJ 3z.boWA?  H e"f|= / ~f8lJ9NV dS  WTM#2yߣ$Pws U-=ےAO{ w0ray&c0xOe[TO<#" 4T^Sp - '$a!d٬.\ DR5R3A  Q+ F[|h& ]s VY5 QX F%s@K  VGH$I^0" s%& Ya <,-o G 2u s] >mz {Vs` t5f+$'VQC -Eq A_w |U;n%S( c1%X0 eT^e0%i 1NP X YSq [vUE=jj sPEy  N$O`?+֘0`Ϻ]% R !ُ#(`YtW]G &4 R  zBQ lo_ D,b %ٹp15M)x#%܋5x7U$:a""-E2! T p)B) F){M!q `B j W  FrOCd) gL%A7Egz* ' enS"SC D ' 7(TD 3</ zm KU I; @ t aIU' 5EG) :=MC7 c>q 9b?w G fBBSbߊ#dRV l0)  T#ܢ :1[`KN  , BGU ި ݈"@a!%q)H #ICEg_jD#h f 78 E<l+O xZ y6 !,7> 5d=^E &H fX߼#އ@|XNDmDR Cw[N rFWH-;W57B5(< I JFVtpE]*:5 :. Sr= f ;d -N _. R* .fCGl+~: jg aE@ ps- jr kV F !], "YE? `t#R< l Tv >{%^ N[#)@3 xgT ~@ ZW8M1kI!l y uSm~q%Qxv.!| V ()%D x TU -/O\  J_W ~dH8pAz;LyXK39&}*:4RCu[z O:K  ;&^XQeo7av1M @42 ID/.$-N@ 4~EZVMuscid-4.3.0.cvs20120311/sounds/Back.wav0000644000175000017500000001606211727223077016335 0ustar oliveroliverRIFF*WAVEfmt +"VdataB~)D 3~T1qcy{<hp\o^\%eIueGA1J#{ZHQ1U]`aP 2d{QXVC]O Z{k>^9U"-M Z-wUD^GB%ZtpQvD{.:JFp>`2&v }i hS^Q 8   'iS"@*Z&*//8J7G2l8%95=AIIh-bƱ%P|Z(EA "m@Ԧƨ4v81h"aձЛdg8lݨ5-2w$hy׫ $$VcT6\׸W `#jd؈ܟ/ =QΦY67 U&@pMNNqORPIDFJKIOS]Ba]"[4^Nc%^GT9PJ?'K] '?SC2FJr6 !#$QGs *];y=6M;?=9R.a-P348;;9z<0<0:879;z!Up r(T2~;CC:?g4'3 b Dt w "ZS6n>x'QlY!F +m1^xgq,#]  O Ey 4b }#S+))2 |3-TK^k8 4 F{  "4)s FI11`ECx Sb,]  D i k( Qc NDk _ ]A %j49JdxP D:.nW $-h "T`kKF < y x n3k-UF/!'.Oj_}V^e X+u!xt 2GoJsF3fKK ) 3#3DL1 t  eu5(-| R]aP9 o9No\'kS ]o@V u 9 o v};]Gz n7$$8)7Hq6(bB7tW1FpcSz~ M%go  QyB lg tL}; r2{rߗ "cw1l^J;e B~x/akHk,bLS ]^ f uy +-}w& , (@QJ%,fut58Mpv=ZL!hA 6.pRW@% R3<c=/ V h57wAYcoO?Kav@Lv+tLCPwx n Y\m8`ߑ 2 ajsUx)I AfxJy-~7fMgzza*^sWrV2@'`X!(x.0V #y  n tk o~|nrV;!bLZ~V&P^IS9CZQq:0r5{ _E H  kp7q4 mD3N|oHDcd?WaH70F4BVyC#:.rbe-4hC<.KA\c]"Zbd#IbYICdkl65pGDz@)?@ynaGZ[QyE S8_! yf{I J@.c |\J& .c s@'=:a< D+ Iq\'k Lt*mmk+l`Pk<_a#g@cV\VY$; ]HS2GWwZN)G!xy<5)N@VMax!3/Nyj/r*kSbp~m_V6T$%7j+qp(*DuH*:QA< H O2vXl@iu'hIkZ* L?70WpXKl{NFxMl@m;hUS[Q8sJ n)qTg>U+tGzDM|K%tRcU;awEUKnJK0{O|"I?cq|h LV#LB]3,MO<NXeo=Fv#Q kh3 3m/n0?'r3P.[:xp[nLqp b|hpD?/[beBHJA%0k383}jSx294u{;Yt} tmr]uaK(?"z/[^xjz9wnXL@,NG1*YlrM{y^>fnN%jf0oC7bNUh\Y]+$x;z(6UAOU.a*,6/\b&X.nk}48wE&AbO{5{O(S.A)<4, :#~6p Hc#~= Gi=}[) !@T ?,K^6%^WA>d1O{; W>b0D I&aGS5x<X C2fWEB "s'[v"!px-(umI=-Do0v30.&8NAwJcOznrvM$ RrA% O 0PDlm! g& v/9A!/Y>y)T6,B=dS*I1}=aH~dh{[5xm2W1XP2T8scid-4.3.0.cvs20120311/sounds/move.wav0000644000175000017500000012620211727223077016441 0ustar oliveroliverRIFFzWAVEfmt "VDfact$VdataH                                              $                                                                            "                                                                                                                                                                                                                                                                                                                                                                                                               Nnz6(rhdbVB$ *"tZ*PBdp>$FLl*J &,8 Zl.b^r.r*v0H:~r|{ws`L2ܷ.ɨ֝JF˼0ִ-KiTxV%XB,p#>Afzv.}uDjT82"Dʮz|Ph.Rv " "@Hݴf"CrLD>RF:!^ׄ~ȚP:pv΂Z*v *..5< 6"/p5;;5-h*R0n,$xL Bt~ՐӎլLdFB:.˸P&;^q"r`pnRf~^PR>@)<:"Ę|ϼǨ0FٜJ((Bd 8&6x@B`MVPtUX\_p\MF4v#FBD<`R^Fж6ffN D(H+)' ~Hj"@$Dմϒ:ڸz& p$'$!#!hPR&lXh4(|b6( "vz6b^~x  hF> @<ϼr&~ b2#+&222*f" ZZbf >V@ŶѶ T"%&0*22\8~>B:((Hf&6^v̊ʆ| 8<b |h n < ^ P @0::z~"l 8x`H݂hԚ֪VޘJX'<,/1"1- )%$($Z  D $ `R8 X$PL*vbJ :8PB`(چԐJDZP( 6hؼp>l 40$T,03B54540Z,% .Nb$Z~vVHrpt J*<@ r8PF^@(:J, RT & 8  j rV8Rpf:H$6 t  ><xVfD@ 8htPtj  Z*|l 08`nr  0 `L< @"j|&L >Pj8JTld~h:` b$z%$J$<$$#B $: 8BPVbx|:v`f:N<V2 &f|*p\\DB.PxBHJz0B 2 N 2 ~^44P X"Xx\ V ,\ *\LpXh^l p 2 4~ tLD.b(nnf8P X|2\ p B JP8ZP jj| h z r :^ , z j   t4zDPPd*>Zdphlj p X Vb DR>"&($(<hZz"V\:4 4 : > Zd2 : @V|Dt^Zjbrl .F$N|\4X:HDBBnXzZj6@ <J8XX@X>HFXBt r 0t|n2 vPVTLtHZ@ nLD<DH @8b.^pp8,2ZN,d R l6&6v*B8f6r@`Bj$$(  T`Hp^r\P|X&>^0jVr f 8 ~P,LV4.zF b2ZlZ0Ll~ R *d @r~2&, 6,H^8j:zDbD"Hd*pJlXF8J@: "8d~|ZN@$""B*6*`<D JtbDvV*|Rd,bz@>\ J@Rnbn6f^ X68r\^8(R\httl*b hlJF fHd^6.4tvRJT,lPjJ0nRP" :~>*nB \rp>0Pr<bN46<Jnn$8v@dl@bdNrvD@DnhlHd@XFh^pt:b^:~2f: z~~~0N:t&f..JfzN@r^"~dP `~^6h,*4b(rRb~`B`H<*, n.FrF4<8Z ~.hZb`z^rtb |t>bfJ$D^tbdXnZV@. ,D~2~2ndJ\V8HDRF.<hztB$ .Jv`~d:  bL0l\z&"@vtLpT  ::t 6Bl~x^@..86HTt*lB\n  ,fF*$$"J>P^\Pj 2RTH@ >jL~88: f@4@6D<NRb^p2JN> F4 n4FHr\XBB,>44Fl||bT6*jTFRJ>`z~^fXjftx|j.j^TT0*&4Z|<^jf> ,h2Rh`hBX(pJ&$@t$4LXjjjX\H^`Fj@ Rv ((6,JNt`N6.0(,$2PNxn^* |`R:84.4.RnB|tV* ~pvl>z|jbL: *NZj|nH6`T,0.@BTfDP^n^|vF@Ndpjdtdxhvlt@0xj|v\ld|| NnlrbL: $BRb|lL~lB<,(2:Xj*@F\xplrvrn~n~bXD6"*&~XTB@$2,    &*8240" $6LbjhJ> xlR>B0.",6.Ln28N>L:4.44.6(:J>T88 ($|".Zv8@:0"(V*rl<@*<4LRd(0& 88prJd8&TtHl|rRZ:0|0jlt^6.`bzp|n *lpJ8.&r@djj>Nl*~tdjZ>6Nv :lH<,H84|~:L|<(&6\^,T\,bv6H2n62  n ~~zx` R܂t>,1,E>+7CAt2X22;V:}}hI 눿r:6Qbed"ch_cjbhXK6/jBlxTػ^*N/ITJXZJ]VdlfR`ZLY^&cJ_L7" D"X‘:܄*L޼x$~(++*-*2,672)L8@BLxǂҊv &)1h4F4F0&J~t`.`0ќnx Z $t(,12\0+#z ^^RJB؄D`2h p!$f%&') ,'N  "@F\B\b|: X!`( *+T/..+$FD*ɜNnlX&*z.$$*B&# )f,"8&( @Nж֪0>^&p<f"T)@*J%j( XxvZpRBj\8>P 4vlBJP @Z8h. ,` "J V  v@HR~8 x& ":~4\ bߠ֢Xܐ:v 4 z z R::$ `,rt^ *Nht $(jbDx&Bzrd4N2R*PR lZ*`"(V` Dl rz  xBB~4vj|R. lT 8 J*0.@&zd`vF j@v^6 L: B D N N&PT"$ldh 4F4(|VJ$ ^! tf\:b >,  Rf48Z(N<>T(V\ < @ F0&J"pV.pnj  ~ * df0 > pPrVL$$dl  $ *B:t,8pt:&L^R2 $FTb `bN6B8<P|^r|f ` | " xz`*\ R& b,H >$\>.V:Nx*n\| |FRxP("@brJ vh4 ZtV|jr0l\`Drf::@vvHFt2*,h.6tjPl( p(FLl4j>@z^:^v 8 D4 tl @2~H 2R&$  : 4~8fJ|$DN2  p  * FjLh B"LNr.b0`J@,>n`zDH$ x : \L*rbF~Rr6|.b|n~ d  TpJlh 6DfP||68t*4"Z P28T&j0BRjb8vxbNDR,( L f8lr2 rbh<`d(d,N."XNpfj"0\X^L*$jLB`Xz"*F`2"^&~N ,&t ,rd@Hv2@2 zT44LZN>r8$>**>  "jj.F$jh,l`Vldb, Z`LFh>"vvN>lzPP"zPx&Rh,T,$2L(dJR8&l*Z@Zp0, BZRdtLh4pbxX&|ZfZ(tp\6P6& ,tXP4\2Fz >nrH<v` FtT>n6$`D"jx|*VZT hj@\4^ vx,LD8t\4vH4\h|.ZPdTr: (^Nt$`T0L`NNZLf\ p<NbF80(jXplpblNpF| >Nn"n|Dh6h8^~|J$l0|>\Ntl:R(z6Vn Z   LX0jf` LfRbF(t^Bbr:dB H*hd zz\J4>rB|X<8"R\rt`,^<$b*\d6( 6N^B8 0.<8 <^tNH8(pN$>2,h2FVR<@6P@,2ztd0 &n$BPR,0 $<@4 *JjtHlNNR8t^*0>`^brnhH<@.n(drjr\\P\n||^T<66B444$0BjX^`T<zxt"NXdZ.dx*6X H``Bl@ *Rx:bhhl`$v`N(86b&\tl@P0,("BTr2f LvbB0 rJNfr JnV 4," 8BZj`rb\PJ vrr||zj2Rhlx>4&"$ *>RpVbJF84 (@BPP@B4B,, ~zhl:nZJz\VNL0* ,* (4PXbB>08.," ,$*>l^^BBB4.BTRZddlPL.* (6VX~lhRH(.  *>BB0$ (8"80D8*8(blF>dtvB,( D.. Jt 2 2X8F n0p \2:T4llbD,ZppTJDj~:j&V *$R|\hXLPL 6f:`nD.lP&.Jbz r`84&*>JTt,R^hRB0 @TpvP, nftpnnt$Nl~zhLrpz.PFJR>(*&.F@B<DF22,JFZJ\ZtXJ:8*xz (">V`pB&hVXdrp~:ZbpvlF:f:.<.<. $(0:8J.* $0(,8.,&$$ *6T`~~|d\8& :464$,  <<L@4.$( $&.@8B>V<B6, (((<FXH`ZX:,$&0,602(0$  *&*$:<> $   (* 0&(2" &0,6<&&  ,6NPbVnhxtndbjV\>D2. .0824:0    &$"  $   *6>.4 ( *, , &2(0B6>(00$  & $& &2*.*        $    "  ( "8(& $  4&*      "".( "$                                   ((           & ( (.                                             "                "                                                              scid-4.3.0.cvs20120311/sounds/6.wav0000644000175000017500000002544011727223077015642 0ustar oliveroliverRIFF+WAVEfmt +"Vdata*DgIFBD olA}h E*,/GIxwb_v]7okcg7e 5}F@.CM<*y! 1[zlYP|MSPKj,r<W7&c H- bpY@5 % vrMZOA J| ) `6+y f>q  s`r/-2C F=H{$ vH( z\xx ) :<bU D&; +s D&-^zy5!jQQm #AE %ta/YH $t w bw)  -Bu> =o . B<K \ $ )7S oa e=8j2l}G  +w(2?ւv w&O֧-'$nC |([tEd 5c r3 NB,TqwL=7X `P MB}>z(,\jQAT/G% _ n -2 OdYCo rP-,g 4) tܵ!xj [  0۳%3Έ)H#)HS cN B=ou:Q;ec` |"_ gJ=+$ʚ>w'w y710m-$HW$n.Z(>PFv!|0$޸CF݇*+O'-s6b `nر/3 k%p/E';;#)$R7.2g#k8h W9{)}0Ϣ.$ " @ң2f 7831R'6X J(=z K i()[#K߭ k AG h{A#؝.{π6P?yȧ+ݘ$UY[[v  KC&&׸!Ӛ,Q! ) 3%  w$ rCp#ڗ%NU@WM7}-64(: UK{ sH>rV%Uba M ZL'$ 2]iFl$ wP) M.%;S u'c: -+^!'F 9$ 6#qO(д ZB1b|s_G{w nTc- $ =v lIqe$ K EH _"  D؅.>D֏0ټ &N)۸ Qe,7ۘe5| T ;&r3e  B>,3& a\o}V[B](gQ - M1 s KIt?   z* Q~\ELJ~* xcsP0tm@Qu o \( = ld+, +<1T lcyo ] dagjh^|, c?-X!;r!^d2 b >:LN%  eeGC x4K dqZ` %  ! |e%<$$,-&&(@,+0(!8-]-xYp"AS yr:"5J {  ևжb͈ )C xg xDN;cN"_&D'c,-}/w9=DDCOQIM\ 4ckG{PǻֆצtP$,FBNFi;# G##KQqW4#'W hcXqnəѠЕúQιR3  `" zkNS 5'd4V>7B>~DI"Udgkg_&çf82" , I׍*W*Q?KCH+Wœ ͩSa`Eݹ 94"=HLA5[n]s߆o?J "  ,7$ H (Y68;">A>CHEO!^VCC8> HèlrwCG;XK9+;O.`Whͨ"0f!#|,9s;8:7<# FoKyRAa cc +F8 ge$/3-.m+28{3.+O7<:EBE6 Jd Yǹ 6Ҵ̅7 BCG% oF(^"DͅЩ6M0_ 2`>0*Mtf< ^ κ!{qd~y3w7vy&<L K p+"5$ "%D4C?=+e߄ݲwP@Ś1 Oe )3F"nDں,PA}A I$E#SK E/W]x*^ 5qF8 N6Bg` .I % +  Z F*z ?@B|Ic'T1  N?Z ml$]9+gzz.; UbHy ] 3.C8]FMZ a)ab:`&ldNGssA !L./t&d  * 3!_?(@8 &\P%DZ$K78M$r Bg_km6 tKy<+pm$1Bs r }cdO*hV EXRG`wD?1zG7R$.c J#6$i rRobAJ9Ce.T$= !$&4K1eJ\Iav;f@Q5go4 7U@/6:#3&=2@*_$\9iUG_NU/*$`WlVG' ~ b3nYIsH|B55KT6> Hht*q rh |,K2f-71!k*3_vvyNO^iAI+@r~+w=@l*e/hJOl{X.PsnTgEJn(lBHCApK++~HK|adS7,1mv`Ev|33Trbs||[o &)cBy[u&d(YF{q!? asr{?oB8*Vc9j[S5\6l 7%RF6sOuD#.s;<Y@z<;@pmo yOn%IuWhT''O Ei= Tc~lM*` 4i%i"hau`y@Uwk;Y(pkBDj WNi N9#sF7*RB`EiAC4;f?6":-I!wkJ 8+O/W.8[S<(_B=QaDs9 w{/9FfrQ`?L>kH<p2#:SAo? k8&oer ?{ CL,Ti3 W=& ^ R w2 / A V ?/<~FzWC : L  QPMf GYThu Z IB'p1 .'G!}["\S mY V$>g tyOc~i[ 7) TL.9_vbP8i$|tGU 3 ,;vzete f3vj 6faOl<~ $ kB?s%N__ H !" -^% N 3N J^S1=[C \vm<xk7 [ 2w .X)n2e?ew_;AX k3 C!&bT< td t S X5= t 8 /  T. 6<]Zfds#.o!G"R}Luz܆&A ;`(Y0{&H kި3#8ӳ6W .(?U()`lw` i,'t%ە(Ӷ/D#D܁*] -# Dt e (ܸ A "{w UQy u_Od> z^9N : ?# 4 WF %~9r_8 &: . c<1x L Zo  &3 "A 'T|,fz , N?)Xm9}}Q W y6G V?o' %b=in6uf/itamsh ,iEi, LsvM\b G w)   )w| :H} T F5  Sd  t l?[j1HlF Z)  glh W ;`Z 5&F;=Z 0c<O_"Fy~ Eu^FY \ UU{T $ p:H)e<|\nT\> *Ql |# Vv]QO9] h)r{," X f +2" zt]rO^4 +AYfTc]$Y Ekd'jWaJu1kC' W1/M&0 _z W 0NH.GT(,E {U5X-;s&N\KQ:x#5,,|;;v_{3q5Au)d_HWC395FP/scid-4.3.0.cvs20120311/sounds/Mate.wav0000644000175000017500000002724211727223077016365 0ustar oliveroliverRIFF.WAVEfmt +"Vdatav. #~e^&2Y8H9qZO{u _2OuUdY/~`4aWl)7y]yV .Wy1kO8%H`l Vd'T7Q E \bWO?FQb+fdQ~'RZ'M~u=X)*YqH6uMjb RI|0Vq?SJ;o&$ QM/g+{ A 6O vc4DP+ `J&)r .!H73a5a=y+nX8(%" Di&n 5;Hc"{ : [ 3K6SdC p ^V((9  *n ![ ;I d *!{ 5Ec0E`% 5 NT+ L$sQM t n>Z|< Q 1JTy <LI"&< 4v Z'k Jܒ IAq&L @0 M ^PWSa(+X[ j%^+81ؐ "M N2 MW 4r>rV%rD aVtHM5 >l K_p_<x PY-cy)K@`?Nd1p>eZoDbL'}UD!%#i+7s8AMSW\}SMd<.ZGɷZ9/]Z'W5;*1+0QáÇ Kйy t: 0  \(*,+:u=*A+ 6K4mr8o'Oamp)¡ԟgB :8 q %Q^x'&L")*37@FL1<"Ğ+;ݦ3+= ?: ؀}ٌ̣׵ЃlX;A5P4 us ?M_%S:N>X7:7F$LV\Y5:•'9H1 ~@\Z7Uv׮)0V ky" o8 Ъ5U!N#.'%3=*2B/D4SZpX,bkbx+@\o S !4[7aF5|;xHCapkA Fv֥ nэ~ 1S# W 0.k$-4A9W:F<#*rerY:Ep,+y<&*N Je͞ qV, :Va1k!{ ^+@&U(%4-K>OB1SYXWZW'Oآ=pس !oWT0P=,z fEZ4h|zkl9 3n *E t@|1Ej<2 Sb^S1 "\:Z0e@qy-s:h1> 2_KsvWZ g^s2`.@z2'/7l 6/{#hRy/92|":ge9}B^` {pJ3bD$XTs5~:GE!y +Y`d^zCr"% ~g|EZ`~VKam.gI34}7rNbku(V>?=`eU[:VA,9CJlcKqd Rv2hQN@|D..n |Z^J;qg1syP=k6J|n}qt:4 uu!vf6V +/SoP-T$@*B@^52 FqpQTPP'C-7FMQ$ X =3vlV4-A;ME;S_e[%>[R<YEsT%\Sdw+O@ICYG/y_a;o7!(e`20VfeY _@52 U*cjgpGa'@} ޢ ! c .6b3o'Ce%o 'n y 0h<=+! 0Ce^~j/9i8Hx$5a[#i`qb$aQu6_ZBnb4;!^aOH_ Q J @ wBgjMo[JXzD /ThP:j $/jz:X"52-+(S)Lz#it1B4woR7 g.7Q~FxvAx]C]!MHnd1aOi =>K*UQzoRlIGgQy:QT71VL= QnnP7L[u : bRvBfhn] m x 8  ruY mav_-?~w[ 3 GihL=vzG"',O/(&;  Y{(ۏ$QDj| A ` \-Z%\$Gb fQTf;'~(#'+N29BHF/;:#7]?0m"DQ NW .lbI5u qJx9@UadK [Dk-ko{#y ]"%-+2826?HMOrS[SU#+:v0Zݺ?;g4 FeB>7N ¸ΤO[qZH",Qi= Hتmߏd72=oG@,$9i ^ *P0:/O2R2C245:0AoCE?? ~6Nڇ r tT">lQr  FYڃXqcfNxGnic.6n7@}?/DTWR`?eO1"Ɨ6;zĖ@(A-y O>U-F, <"j xy!}7Ͱ]]MC<+}TQ{Ҧ /f  ''q.[;7:J?8?MVZI+놻C<:@a"d% h8|2?'( iQ ^М" iٮ|>~Z_B /$?!H'1 4+>16?BTCC?{ELBx{&ɭ>i&A e$ %J5t1)w:[^^ .H"#'`/1N36:=< :=A Dy>J<6~# :n ߮ߣQڂI {`/* r&ah,K7m= x{_if$51C.1 3G;GYF?:>L?M+hLƫ:3tua"! Yuڍmp+Qy1K 唾 ٔS |;L*(ֱ;a~"' " n0c2-:mBG/gcٴ ߶ +# Uaߌi9h  F `'ޑS7G@D#2 .|S5: \'(*v0j23~7%a4.>5@<=SdUɻ!8m@SB 1R->LՀE YcF^riT) -/ C."*+L.0/K01|1654=> gfv]džU>tR$O/JB]>/ *Jke9JbOZ#. .h 33 D  h3|:a ;\?- >-`+ :^Aemp q%!%&((&)(*5.*,3 |>۟L{XxVM % %N)T /S  O@FGA(kM!#{$E&z't&&$"{! J;?U~.2>B! ; 7zD}  <;uL 6Z9+W4(&MaT !-!!!}##$#(ߙG?! >wB hZ/t_-6rvZi?@UG :u H#&(+-5P5"Fm Y,0w)P c K8kELJ0Amb o! ZcEYc3w(m[{6fxK5'[2& F ? F/_5`k!'l#V^4(a)( u3#|h/H :  7 ( ( 9+a% ( vvfG;jy8~r=}flIm&P* "AR<8{%">D`mr/`Tn1^L&j<o20Z5!6s;&7l;.lF:|nzS s+:T]S*LGXnwo7peM>*Gokr/ n1ea qjHC2!rBW;IV$M7Uk+^R:cS lc oAn.^y`}DY}>kwYgSf-UA:4?a>m`vb:}q^NxE90Jyk;kA2`_UhNlyo=n-fe;_z 97sPBLMD JU4/zvL-I"*}$RobSI$mctz 9Hbx&Mdp}:ST@5GA0T-x.`A!x^XYZX#.RT)]Y7yGVy"`j/e`I8N%8B\gR,wWk ;X AC'?t<m Q) }5F b-Qg4!+  y1p  VC:Re*5*<[daPS^\2`(l 5I k   !'nhK^p uAt4* *qZlqxe9mn/=wF;hx [,x/] #BMH ?OBh'-LKY^<b 09BaG4 1 gpAvH>uq0'`]f`$pI$:p(eXGtRYKGaEDW-!LY W^A`aV`<S,4?o#PbUPxErO=M|RK Z;N>ZTKVKk#Y~~%Wa x(Zvw4gD[*;#]`iAmCvI4fJi 17VVjscid-4.3.0.cvs20120311/sounds/g.wav0000644000175000017500000002130211727223077015714 0ustar oliveroliverRIFF"WAVEfmt +"Vdata" )ONB; "-^PXv "!K# ;TP ArPCdJ0Xޤ  }H=FR)Y 5'0* vH^.@Z^D&ޒn$c'/V1qiR @2 HxzfsnKػ,(V+[a2=V!I 311 tM;2u ܮVn b.!<%d hj&#nzl]7.\0,w i /:O!CD}G&*>Q+C:Y[MgdfK`TL[ !H;Áv"ċ.O֕-DdH< "!! ,% fӑ 8鵙ǬºrjYWH"$!  \3 wYb:%)d6pCKF"MUYq[_?YgVLU#C4& Jѩݩ٨$R簻χՃc h#)#_#$%P!!J]Ǧɞٿp ÿ|N(!-"1$L! /! /  X [*-9K9SBFD!d`P`e^9b W_XL@AB/8f#'̛H'iZ̠d - -*-v)$C(%A V`zʳߡ,X BʾG]a i P  L !v18'5YAFG SSI`CO]V%DCL=)H2C:2,1-%K'3߳0ܒ~܎nh\$$r1\eslC@pپ19*S<$ FF}ik UL!B$,c+b49tD9p8InO@=]T&A2a@ES/), JŚ̹ܺǓƀ>Hg.d~ / '\i ѣԆ[fsΔإ5>(.u `\"),0-4Bo8:QT>1ROB8=IJ,/K,#4) ^c±tؽ`ٵÞ`İpt  z$[nr Vg \ֵ֍̵cчxXVá$2b [yTC 9 6X D  2 c#~"*`212p::;:75?"7 /(=9\8:?ZB3\9J8!/C&f!3Olˮ#`ݵP Z5>Z1&0$L$r ? SM/hcڱfc!Fmj{iY|jeX? e  (Zg$+C-:+=)~5OB13484dB.71`88>,&5C62A5))@Q?PfvjSf*dflۄܰ` 6 8#! R D?:#) S׉ IE1(-(3Bhqs W  \QqU ##&H(-0171Z3B6617=6:3757213& ݶ{JҾL>mξK~ن;~ Y vPl%v̍ϯWp9ٵnY %*  yXI 4&z#'*q**-W(*-$*-'4-!!<(&")"%2 V6G֪R=j_ײ׎44hqEO/q ֥ 7͑ t]؛8ރK69  S " w(!: &#j&" (}!!#-'&$&#,-b'.#W&L'z =Eϕ—zŋUD*s۩. 9  j0Wg\: fl:BߨՖ'ГGlͶOoג Vv ON  U86 t<9)6"{$i&&%'*{#j  ,$f&CUؽٝߜ5G(q > @-u"9 |3~&Y͢OwdcCםt :DK0d j  Z Nh ro F|PuJt$% %,u+)-*()G-%@!@ xԡpc8БK؛ߗI8R6= (  +{EͻN uNЯ]=`\ Ko ` IX_ eo9'l\/   %$l!KI QbYٍ݉31ڛߛ;k%]| z O M ,Y0إQ3dU֌\sU l }[ n ; ` Z[]Q3snO ( Z :~ll=^ R&Vd7%V . EI] 83TI`3i?/ݚ.3R] * P  $ j 4 ; ue2jpMY0p|!R {R c vJ:g` &Crt3wQ 3  WYcOj9;ߐUwjyf f|   >C x  u-7q  G^)EUsWPm ?h G v36M!I+3j"R\IA _']RW=ifomhP  H 5 { 4 5"  L 8u:4Ok t(@+/h}G0L `;.ekE/#LNTf`\[%(q  {  >  ! ?  h 8 7 c   b k@R  p ! 00SC} y-;wh*9%+=G8xXPtYGqt eu&;c,^ru"Gw1oS (z  i X  ~ 1 7 K  ; " \ lA 3 bKGV:.>c:Ev\RTh C2-Mq8#zO` {(SL \&>5756v[  fX< D2 .m!8w\XNG(n}+!#RX6u|`}%|L#F#&: :#MR\}E{h(y.bM2VGEKP4.=4P6Dg4*x^j:/ g_WqXdY@m D/5I#+\0_=q_Zn|->_&VvGjc J.LfmhzBDnBj02frB@;\NC;:U/e'!E_B9 10v;=T@{\glN]-4 ^h ^)+x ^W!iT<)yGF^3P!h+##J#scid-4.3.0.cvs20120311/sounds/8.wav0000644000175000017500000001533411727223077015645 0ustar oliveroliverRIFFWAVEfmt +"Vdata5STBt.EUfs& ljR# f=-Cd3s4aKq94a|Y#LCvz$m5LVL4Dk3 "683NNWlGxI_" u#KA#ike*Nm3 %$ ܂@b (! %kR(\. } 8(=%JM, ?a4& @@Q vGn( iI M sXZ:}k Wgq._Y&m* 2kc (a\%2a""{#|-.22//M,"0EO ޶@ݪWZI5 5 UMTN@TӇڝ:0S'UY4_W/qNO%\ R } :eN` !D))!%4|4/G0/0`4=@66)S ;ۧx% ؂3u K}IvnXKhbͭcMGfeٽέn m'[VdWSD_$W<&'#&7+q-H*5*1'D)0%08/ 1U04@C^AG7!C u~R=Ō&$KeE= '=o&u,2 6s]k,ZA w+CM{|bi0 2F?d RR "'l(!,,#t*2C6 N7t67A;M#.=WG52.+%U\Fcϋ2Gn6 r c {ޡ5֓FݕqIu@rv>v1b0ڑVKy}Hzy>%b> oe&-%0%{%&%(!(e'Rd'([&K'(++*>*z05L8p@h6(." ׀mmʄ:  Y )7l-  0ߣϤօϢv/q>,p wy6 .sήCߍVhTk&!;ބw aRҩ˘QX,gВ #Wx}/ WL.C(6`-a/-7<575k>DD@)9:K%N51M50}f98޴ 0%9z)cV&GM/52) P" ٹޮ{8<֗{.x r =%!~^>So燣9[JОl0W$*/)rh  ".#$NG4E8>d>JRH MIKH[*(W<kf o/ȅ5[FRO,%>`H`? $D6 Pܒ  sGKWU6k[؜57o:)\!c' x$!fz$,1,%d")$k"v0 -$[,@SF{=BzE?.5QX ߭w5ɾvjӥ=:t (7 &Z6K_DPDN߅کܔ,8 .R1 "[,x&l#&!.4l.21A:x<.A8V5}9(+(' t $ӣ_ӼpyΩ,;O  I  dR! ] O#KX~s/88X]}cy?.)}^$ #$(t(T+1(6s0*,+)S `t(KyҐаqםTkAEf +Q;V6& ?,I :\)E7rEKA>/QVc Vnjg ,8oDV :A  f"t/=.$b,C$2!yG ygZ} w h i 0b J{y$#,|sV! P#EjC %%zR\T[0 Q>po zX)K'iW<N*Bba,R[5`9/E9W0a  >} B>S$[ u,7pE?2;~qW  X #,_Q.;]nJ1)!4dJM 9 h4_DykM y\'Beckst=b'P?: R{MF_iA~*XGn>n=FOps|\(@9.|49qD- gzpdF>M $,Ay6f!dJ:FN_PeKi+|=6wxfk+]Rj\4Wm3+1{e? K{>+{cKUZCch;#LiG _},]4O.i:5oq{Mf|],$ y"`s;_otx-G0=6]VQ,D!/fG+m23T|xUr9G&XmUtzI5 /J&<~Y\/&.n] b=V_:yfm<wA:!9LF0iQ jsG>?Jd(LT+Fwֺ~drZJ3 " %N`HC$%ZN\T( m$>; I<i;U#Ek 7f |_ LD VYlQ XJ} 2 pl ; K"6R IH 2Q-,i j>SV&A< -y 1C U/ O @g$lnI' `=RQ) ES W5d;`*^2 !2-x@L[\B=@dYoUc6Ro/\-c-N]_% =2n?#hl dERsd+QIw+Z$$@0!`xnM7 GX,u*|11zaol.sg:vKmbJCfbFV:g*jq%N%AT2Q[k\'RtwL[{#p+ 9"i^4BTmzCuq5.QGFG3{YI&Vvscid-4.3.0.cvs20120311/sounds/f.wav0000644000175000017500000002277211727223077015727 0ustar oliveroliverRIFF%WAVEfmt +"Vdata%<=2mh +PFcGVs|'kW/[9qU$Z(+u;KU1Do]F.giS7ZNR]3KCO5 JKu"k'~3ejSZwvY%PaDw,CBYpuq21)8;#87~ Fr$ YB{B So5;mje @YOu@#9:TIB N g !IQ  P x_ytad]\Xw^1TQ3C NU = \ 4!] "%5131q:D@IB ;!:Eҙڅ /55I6N#·ܑRr,#6 56/CwފпςYڻG9gR G 7 V  $,.E;3CsF^L)JsOR3Fj>6&cuʭֵؗ^мߏ ^2FA3)97TIK>aq7޽37û!*`RuNhKnQv,w-  A# K\ } &+28tCzH0DP.VSpS7% ~ .. ίΒ7I?2^+&4hE>,,GΟ9.+/ܰʹ࡫н0)!8&W'0R9F2}#$V|ĿIgI@"$$ 3+ozޮڨ~ȓѨF?p X m Qf8 %P)-40z7?:7*1_9%Ct=3o[," ǛתS [pשZI9 )-$<MjŜ}xͬlit= NYNܯ&Kk-k Dq^sGf C]+,~&)"!8Zgw )"$M6Dg8| <LjKPƘ̀G )q/T"gg#|!Ҡ׹_ x  $CU.HPt  FyI^~f r5 s[  k. ( + #+2|BPJ ,d2 KC҂l߰̽[Of Y2O: 5?.) &r݄ĐUʪS 7,3q2}(#w.3ݓģ Ɛh֯-Z 'P"&/t[7b m !: |!r 2 rf;(;sPh_aN5:#; |` Osɱ_xe*X4<0B;FBA4"QװüXT+$έH5 +l7=A:A9(<MMƮc+} !)&* +fQB  %"(R#)$&#0U'i |$,C7=VNckiT+ ׀Ɋ0 )=F'8,:QmO+.>c ZG˶}283-1N7>9"@Z+Q+]&ڼ۠q%%yqdC )( ' *"%M ?m$%$i*3?i<.X M[i&n9&.["[l%q  Xk m  bdr)> Jm C) S+ LI p y\41$W'nA1PAEy:]Gu ux R 9 kp [ U L(5j!#?}qC ' /vo=cDX5Z0bkmW:$)(p= CR| r2T0V*E{,3X;+op5/j!&}Z &oD}UE kck1 ]T#:p ^@]z1+H[e[!_ Q szxG44kSk_' i85n9wu]i\tSb-.{.wm#ls$3qW,C!Vu<=>NZOmf;:.$4zsY`MZO'9X~O;! '5!}TR7`Vp{9nh Dk:{ V6WT@T +=0w(58KK ';6!2HKqdqkl*@5PO"(.`\xb~bSkz\DqvG(A%bO&}v)~{%c4L!z,|g  8eMr9*h"AsY~7:hV ]0YxI!_#{,Zhg1:o^W:"w|.q2HV*l@cw 5A8?h~=Y=YL~n 4yV/`^v-yI8Pd.zV1e7DrOFIfmOvS20 u)1Z47 /M$x*$s|6A`=U*rcFL w|!dTtetb'@/[)v#L/;u .$X{ k@Na@!0C>iI64w{)O4kXuF'{>yEy;): F>vwy)7jR~^9SZ SU'IWp1/PH,8(A#eM@==0P-q ~\CdN6IgDKyf*yvKE1<{u|xWcs8(~Mh>v!cwzZXwnV4>A}PU dT[+I%5[$CLh]+?f"3L_H`PvW5D(Pp^0OHFx&k E}pL]&AK{tA#PF>TW!8S  `4 2 Z wo$Q$P$SZ3S*-&DlEW(\tPOkd\h_~'3s|xdamYF]hwIn[ C8 *W'|Mbpt~<^nB4WT}?n\I%sel[ .@t G4%yr|2 F/#"  z*EuRg%RDp u r nYRMo@B3t)P=jf#5 UcD b1z 6Y-{Ae;B)LQ|uj$ 97.Y>o1* A@uZ?\mVf !;)WS&{(Q'\c#uzScz6GPr`C3z[7-,jx+<4y7/dMInV,y7p3mJ7ktmrikXBXgG4_}!oa #0KZcKkS#$p =U,Yd `aV10QJ%<hi=b/,JSP2+4C#n}B0^(yRqN,vka{b\O8x-kXU]VfEx(c+Vxz?bT.d^70uxQ7tf^o$bKF5uI"~OlHNU3 Wm~p~*\ 3B& )a-/A YLXYhv\>9(y[b7]C5o0T>zQ'3|dY L ov$iw7!Y%sFX'f pzm2=um:b*s+)ioESY*n!0GY`[iHF"{ m !9c ^&0f3w/K3X%S-p,h%/T&_`(} CL8<,hkZ4%XZ! a;@n6 -B 0; Z%RoUzVIY Ti-uE 07P1,9"N>YduAJ?dx!C,b9JL tgE(X~6?&Z7/V+@,nH|l t"^>Sscid-4.3.0.cvs20120311/sounds/CastleQ.wav0000644000175000017500000003676211727223077017042 0ustar oliveroliverRIFF=WAVEfmt +"Vdata=1,YP|yogm:a}x" I :(wmH#?;TOL+C@ V2R9=r\]KXU>sB 3FK-/dEu0Z4v!~.vV8sf5 `<?av)O`Iy*?"YA sJf} }u,odsaK]v |F=CD@ lF5/  hd(OUkO'9YgJW[y80ԯ٨[ }# j|L|H=9_rMp"U ZkyI \vD= !ef5}?Y ~ = nuwF'  vv 67.!^_z )!6Ev F(x?]#NT G)qIs>Jqm[h*WFjNc[?vBPe!5 \{t yRm  W W : P).(}e &i Nzn~ x{\_B1pGHk{GHy < "Q /  zyXwNFk 7 ( ,0777:|?VB1GQ+ػs!r(! پc`փ+`fߧ]A74Fc8y V {4,-M "#R%(X-m{5t{RX1 V %Xr1vh=[ !$v$# 43BO9|SeBP:b@ƭ܍L/Tm.%x="& f o P' C4s!!0!e$*-829B+DFN]eaKX,b ϣyy*b+26 >CDnr?G %O ,L#1 {!"0&&G!F$d'- g)"w-Q#d2n cmG &I$݅hC(xc !'D{ BQp5a-41?4b7I3$)$\ W:DcLPE#7as%0)a"") /-&M30l'ZVg J20^1J3Ln[ ' "  C-^&9y  ,H BV+@-O*G.9ިt O?$ex MzN/}; [g4  Aw tY =R 'G ^ = A "X#!3J$e,6`EX "B HVxL-U(G 7hK<0d  |P )}h%l GG7aPV" &*e?2f RV Y%/; Lx ` [ %] `"MVv8-{_} I2 O v9 4 s+}(t(-Q/ 1;F'xMC`g vmLS;8-%6I](WJJzEte': q  I /K, E K U :2  P mC=XcnfTf]kw--gGidL200t7Z  ~ Iw&   "L7I.R "z'+*)&_` 0u/iA6R)8T{NA$;ߣ;ݵb @A70}w1 FD n  { eoKQ<_=.{B "%s0|5<70)޻v">$ʲٴ:(=  > -2M8{/V]ttmUCB* l]$:'2t1yn9 F <o#S X lz K,  9ܩݺ?al`7n 9p stԓrѧUYg)qZJtN! J ]_ j h \Q eX3!#=`  @&,07ey*yZC;v 9m: E  ^ b H e . F w`PnQv $%'f($} x F9mb'%nD |  M 03 yIQ4L,8m %Y ? P @ " "p, [ n *uSB!#5A] ^>LA(8J3|x^Otas.8$G$a@HJ/i *D+u w*=Elo=c|Z/.+sGq-d-C+O<2iUEB&ew DROf3@D +]^MTJd KW3}H ] G  &{TQ5W!p;:U'JZ bL"fb9zCn:l !bgo+r x'uLDevZ AU :;mqO6'm"CD)E.%9]mMxk75< }+_ !6's*  %.Mk | GZn #Bi `S݃nBL&(T3=pmX~+u0JYnTa.i @tCw H8'X`@o8 [G* %@ n ~ @' Q R SMd [q *S W|F@5fj~T0k~n%~bei}"sg:W~FAWl)uk..rBWic(t>uh,t4UIQt=>UTb*=SK:3G x}nz L W -   <:Zb9^ %,e*Kt|k-GAQ^@1;/U-,sso[#_o[}/fafOt\dey_Yd_z`to!J R@>4 C v O9 >N ZV 6  ( ? w 9#{15is~HD1Op6K ` 9Gz QJ14;WK$).3H76/iU np›lJ .N")53܊ݺ,qƘ>՗`|9X 7 F $ h C2R#"'t/79 =|>@>B8LyZmltUkU>(M VؚÚϙƋMfB? Q# /{ظҙфҶ5MA{dzjT(|>_^ qH#0*07=@`FKRX\\ae~mqmf6S'9V+tx܎%tN`'r58ue4CVWԟօ8{יTfBk58@3 m&{'.8?ALfPS_'cheno{=}dK<(y 񏬤Ec.Fԣ(J#< V:(>[7K>E+7J'W%qN2=PH Q&a-q5>@GdPV^^7`.jq{t8VCq/6Ȁ# *㑀In"Ľ;](t+P( y^ Dċݼh-wp;V]r  r"*m3Z:6=BOW1VW_Wlonk?WLA%@iEGL{MO%NFA5&Pפӵiwg eʴٳX9 Aj3  >j.wT"`H<m+  n ; = *g d"$q&')/+-M0X368:; ;#80#%2c]߽BAzǏXI=Đm;{ Vl q _1 $i>w x{(?^  , S 6 JTN,?SQ: N !c$&M)*,--*:" {T;55ޜ؜qEΟߎs7 L `  aA+ZI|t:K{:23f5iI d  WR+z"!X!b")a%K=܈ڑڇ/n#L8}{,Gr.;"K~mx',v-M3r#Com?L- 8 uz'Ay]BbK C?Rߗ1%c0.AK3[ wFtA|WL^ dC4    * Y S f  y @  r1,,[l^2QA/"7B IM%kH':F6w6fXh p-5)\ g 9 Crbpd;2/?[Dh{n*B ^ T}j > p)+9  0%~h ?I : ] :* vo  %; uK [t3\9~T'#Z+O  ~c%7bs . 3  0L(+$ߣ6nNBE` ` "v*"T!; *2 '|<J{ S!/Voc7CSy{l;# fGTKP FN#C .33e!b7X l zuyvE$rh+( A . 1j 3|1O9GvBN #+А% R3"  vQŐB̭xDF0%x!I^R15 3bBE {Bݳ"-\b [UJC@);2 F-V!!e@ ( }!ݿe  E [ P$|"ݮ7 M 0(JYRj5yt]F2J6hWG/q_&~ean;e" WJ>y T0m|WT CM4OS"E ed > o cpWYۭ mG Q{y.9 k8,   >  Yac,U$BV  'Stv:e@y b %  &   ? LJM  ""$d!/ 8Ej7Qq~y % 9^d^:xٳp2u5Kxzp<M1 % @A E D gBeM;!,t1&o)-~5\@;MY!XLE4,&7⻙_wQ1=,pHh g~Gۡ"Υ@Tol.A'3 1DY4r ^%{ldVKH^h |  ! x3 ~.iFR @ +C>)D,,lA^@ X-+k7 -vf{<2m'ZmLgxYY*  e 2/  ^ p AKE=eR* n*'\ % p\c^ #S+  3&h{ڂ;55VU' |.ۋ/7-ep.e.DL-y z RP Xn"  OUb MZ!$ W *hZ:N@733I)/sBh<5d ft*`oSYavtZj Rou e q q|_ &n 50u #s`P  Wt?e g$W|9`> w\QJ aKջvD/8 | L    ZxJ  h%#=  oay L,.UIAG\> _1?di*c TcJ-=, g1Kbs:/=h!h!sd"_p`'u-<P9yH? > X ;pu ;4S k C DYj R )   avH" n /zzh@X@1aXc iV^V W @  f>^=B,N0qbqߵA^ tVUG e`=5G?$+H b }pQ53L)v'kh* } V M 1 3 # /=W?Lޝ>pV~ /0@a>F_Jix<r' 5x/`7N`t Y`@&D^(kIj>G 7 i   V !   K ?  dXL;{yQHc2H"*VQv Dm6VS=IwZmw5w$q3aBgMWO_xru| qnB[I^K`viK7b)j0}*k{Wm_IZ}d$r%V{Z>k5:G&yt['Tq#J wqQ m[FZ6v!oqz'5kU^;4z'Iot#$Ptw1HL5%ld_8WVQ$T#PuWscid-4.3.0.cvs20120311/sounds/Promote.wav0000644000175000017500000004215611727223077017125 0ustar oliveroliverRIFFfDWAVEfmt +"VdataBD$E)ISti$o {sxJo=QP > i|"<a335F=s?LJ:h /?"L2u ^wxp#Q*zcAb/LF[yrXVDQ%*54kH@T Q9xC2p/=J%$I~hp-l; At ST9dN-3DAEn_%;!#O57$N^B_o5y#&A,DNJgHq2NT%^#si!vN#e/Un 1 . E D8S a@ 9%5Wq1CF)&hO _1= FtwpBtriuY jt $ 0EiB{B#3}B  { 7P8 'c xyu]G"4 k  n[:!yQ P6=6R ~N, ft fi} t+>? 5uQhM365)  nlk3 R R3pAslW~`B19 : 7R p<7Sx;+ S *S _{B;`s b_@| D=v/IH]3L6"F` l R X A %m  L X kV =  QU  F9Y& > & I VKQ|^&ދZiQ3ew# 7T(6Lr-Vcu?TRjG>.fGGtY!,$%',3$>1FKrDk.xwL~\^q!'& HPJS7.1I'_w@r'WTHCneT w^ }_2 B#(k+*T)C(&&h'&0(E(0(*+/L593<;@XC:EԨ츇b+8}'}45M, 4m& Y2r3(x]l|yG!&Z< 1W* 6LOv X!i(-2 8<D\MYfs}x T9&C  D?vN RY!V""#&).I4p "z$('))=**,.e./1~6>C[.IT 5;Fq8͊!WzP j|J }  X{h=?2CR2t`cb[ 'M6 H>N!h"#y&A(2)(),19C;E(_(DHuBrY) ^ ' -=. |>'?O;j`v[TAZ VGIdNjs!#~%' *,/N14U9A]H7 2D w\yH֟sT۝e3&F3=Q% ; yKih6yB3:\{\{!2j:   5C!%*;.16:v=ACGKnPsTZT+JС[˧%ʠÞAS8 V H Y 4 C)2ڦW< "L'q?ލH!*׫ص۵hDCu 90H 0 g kN{gT0!(!08>|DILQXbCqj:m؀Xc 2*FR0WյDڪ ]6Gd@*mU"G`d(| ;Y\Eow8 3CQM+QP̴߷. ("e mK!%+G*$~#0AOVXIWTEUXcy4UM  ɿiERU]T*41w^GUY:[B%8^ņkz51r^fK!J: 5ۦvؘ @ݜ׮h -DP4'[ Xt== ]&1:>^>b:9>J[gBwy2ņ&Յf˪-W\P2)f䧭TE 7kBJ ;AȮ2,-4ɡ,܅./lJD)>d (9"1S3Py͠..Wv% 5ј%)]y*T[6 <*(&4:B1B$G",=O]gMiektnw{j#Ҟ)VRg :]~[K&(ņqS{ޛs$e6[,? F۾؍Z! ) ><6%Az˽Ysʉ  l{ܓ7}jLf'%.-"x}&7YGQVWZY`pvt(;>?dbPaOm/b> g{We#݊2ٱ*"+NaGcה0-6&0 5v} C[U,  e|#  p&A Ic$&<$#i)2T=!I4S ]``iyt)쐔ΨıկƏGRH*Js[((  J|]^`$81]]e ?nPXx;.Е0`b  >E uraK*Q6HRO7_o‚$ ^b -s(Z@xC5L uR tYT4"Z#ԩzڪ֒)pJ=!CH*L^ A JwO) ,7@FH6OW[]S(?1] 'pqʼ[~'1-32 1) ~?Gp=j* 0 $dy m^?a=ŭeӥҽIUC7 @= k(eS!+,#2:@:57. Tx܏.̲ʨ_ۯOS0,[]!%" %QVc`N7e0j rryI$ [7e/yrWhz LwM \ !c'*,)!O"0/ e#*} `;K M puY2^~ C[JyH %Dik5y3DP%g=8VeH3f;_ A n%+  myuq2w`~p39.s)|1q%3pd\Y4`9H dSZQNWResY:{NYi?u61IFis, $R@4#DtQy|Y3'Js&.Q@W8c xo"HtX?ZFTQp$. GA)mb?*CGW/56 !ip/`4#U cDBH 8_O>4#SgmH!X0)>/b&#T _>"2z?z}t.d-K]lU>+ q~?|d4h,?Yp$r=*jpC 4tj io:2#_^T_*mH$YIB1;5*2^f.}e~R'![ s= 5fZkq(5]xhJ';M2: o, c?gfg1"jZMe< W M#NH;@@-aq Z>pXq|t6teV1j~ \ZT(@u IY*! Tc-Ly5 ysU3i tnp)#j@q# Gf oR G0DO* +l + >V`"u0/r` `; < ~i  !k  o ~ 7 W!{ ,L FIv? /+ Z  .QAi 182 _yBR  g LBzh 5< o @ 4M] O da  X؆'2o 0<  ; m# oF) wb~ d -ߠ&M%;Fxa"E"!ko  20d# ǻ-^'!DŦ8rw/f8 Y - 80 1c  S0kFEK *0D Ӯ-,$#}ڭr*!#;A) * o ! ('5#֙?+E6P,,hH%=h~^8۬F$kB&1<;L )B']r%zX$y-e r%J q%S6 txӨ-# I\--Qa5-H9oxA;l!H*EC $B>.az(3z$Tl |/a+$K0'66#7#h~!e?q3*߇]c#+zq0Y QKCڂDo5 ,vv"3ۛB\+!c'6?LPFEClX|>r(; "N@WZIZVVĪU^Ӧ RI;`;AFyAdK;͖I3 ;pig!>v#ْEѩDҰ(Dg6O*H*? q25;&CJڿ ) p0i+-%&wl 9`8ۖ1-|M!ui4F90O!@F ?P%,#"Wz7%U%b=)o˛$wL? ր*Gq9U 5B^ݱS 9IN%z"$Mbh IQ8 5f; 7>m@ U"MTSsr= x_B \:yCf.;H &h[) |n ?ccqPKQLB?&_o:e$}/KLZ9M~,7T;S`Zd6(ym73V J_B]^+'?gevYG| B#\iOkx^RA:*YWWQ`!Dlmbd6=)m^|DVBe9|3F7$+ -@8e<_BMX4n dBoHz$Qt-nB 3EaMq#B0c)40MaH"l'[;F ,W >FsBsb u04uz}6y1}4r4f)j IWJ(#]?lsKRtpo{LD] '; |hAnA Y +71 j0"_ C2 2 Tk/UQ [x B+ /w6XEYUqy F xL 1k  k ~W 4If ZIL |?`, *`P D|8s _Iu&Ni}uSnQX}>0= T Z kgs4B,f}Nx' x06QmS8l :]2&QtH|L(}E=|2'w(&9.UJw`z>$^S/lp5nNA " 1 Y 4 e @  v W = v T -Qg;^AH:Y+%V@:fThO0W(Ui/ ok#%'{,2w8i<>?AH='ۆczKaЉxb 3.-?34ɬzʷx^wBWk~B 5~5")#2q56?NVsX XYftfd Ź e&!Ut|kW.#"~DGH h6R+U8. $a 1f.^F7l{ 9 kb< u)*d&M,? E@:?eGHG+M8Yb<ޚ¥:zCau) &3H6/H[4?U.b_Qц۰٣U$ -!Q Ytg`z^Z Q)8' *v:jBB?]AJMLUbDDB _ޕƳPĦpܣ΄ <)*;, ,:=trXtҖ܅MMZIтАH M  zQ0#X$$Z)4056w c Qwbi%>K >$)07:[@BGEG41Z(Um̓8ݾ( /3:Jh  A$Pߍ/֘-s@R z8  *@ s I T#*04^;vA=,, AΩ0՜]Фe9#NR{ e FSmՎ -՝:9x *~NF x 64# ?"kI").3m6.FP%.IWw.߭%=D<x a. Ld ު?Kٹj qb~h`G}qv ` \rL"(_+)-x%R? @ MjyVܬvr 6  %omU݄|Y^a  ? w =!X ] Wm y [L? |l 3p[zsތ6'cnCGqD/2s: /~aiv\EIJ%BlU{ ^7A:LfEvx2 w3^~4Nw0_k'|T"`Il#JcA=9uUI}* !WnCm) ]4 m`(APB?gnJ2vcQ<=SN }xK&xRB.k c qv+b & * "Q% qRbJ52o-} !T4!!%gs {Q R8)53?f&v<R | U/i&{4.)?W|t>QA@}( 8 jnW $ ` e x ! wT PwFzp.D\)M-l/Nzu5M)InI)6$c2  B s f 5  Rl/_XSZ/|,4[$HX>u-NJdv& 89Nv8 | 9 ]lk-i6J@0N&+ IQjAO4`{Svpi9 l{2'!$ PR*iee0]ezE^&jfn+c${J|:TS~HzE)~,|;\Dij/n!(j|SID %>ds*-Z |R!` B?'Z!)=: 3qIzp;$JWI Ms~<O1, !a]$$0H oJ*_zQ8T0s,T,CCV",{gDl~ q'"SAB` {{wRi1YQ_`scid-4.3.0.cvs20120311/sounds/alert.wav0000644000175000017500000000410011727223077016572 0ustar oliveroliverRIFF8WAVEfmt 9data4,_#@-tDc S9LtΜwήP&iHB1X5<1]Dfj &LJF?7E7@X5p ٮ Q~iHgHu3o3\5A7;&Fʳ\gy-!NBu3Y5;-xޱa|8 &SJBD7(9>1,ȳuΰQ"zFB&9<@10ó ׍̲!O"dHF;>Bu3 ʳrΛ<4$7LkHDF7T ȳiBҩij۬F~F,9*9ၹf.4&@fHE7p3>>:d ݱGm +9FY5u3<&ƱtijE-F;s3<@)2̚ظͳz+F>o3o3 יEh@Bx3<7F@7\5;A79Qe/ îFn <FE7p3+9)9 !|1\@7hH-91D7;e ȀBۋ̚1gH;r3(9<&K|zó F-F<*9<>(Lʙó$u+D;B7<<(Kʖֿdz+gHA7B7<@/YОأʰh4$F>t3;>/BҙxΔl6N"D>s3C7>1ւG|Sf B7*7ij5;@1u3<)97"4 q )9Bu31; ; Qγ@Ң[5Da51;;~M-ٽȲ1DB71B7<&dP^w}H+B+9/F7;(1\h`d;"&B=1_5(9++f1M8"}@>//U51;6m*<@v31I7V5< z;,9@11;'98Ě+ԡZ5@t31-9;~3ƙ[1@u3-H7%9<(ۢʛ-BB7-q3+9&I\RYZhw(@,9-W5;++O̲.4#O"@;/t3'9-R.89>;-/D7/k In<>/-t3r3&kpA;@1/]5p3$%āX @7>11C7X5iW \5<1r3(9E7#~T -9@w3n3;=7Ø,ԇ C7>w3T5;$9ȳuθ1;11&9,9|Ɣaгv3>11;;a ƜA/>Bs30 YN,LG1scid-4.3.0.cvs20120311/sounds/e.wav0000644000175000017500000001315611727223077015722 0ustar oliveroliverRIFFfWAVEfmt +"VdataB))sGe$m+B[E|xPH?JEu/o?D]}jEz o+3/r׷?;8ND cQg'Y!N!,6@WEOZdalnP1DL,7ʼnB­XU ] -6):h?:8& 2zg?_ȹPzjS!L3Il3(-9B_&%5EMNTX.d pwbxzpLzIB<۫eTݍ̛eN*H5J6YQ[/8O i-z1X& Z*/l9&EMNFX\p]emgih jiHid%[4?6: l2%)~@ϗ{, ƭrv NK"W&'"#   * >JّKϓVBPeŒgίwۼK B#w L eL"$,e489=JH;JOY W^t[!]w_dC`6[0`/]E6=@.q3Sd^sQ]Ak  !E0"%--3#,!YI߲Ṷ Ox "/ոbaTDI{ r /#Fp!$Q'z,.t5T̟ "bfQڪ^ X":w!(%&+)(B$"$" m4Z 9ײǕ_:}4Ck!")*+ *01&-,6(1.456/>BLC HGNWLMHt=Dc25),6R%Ѵ+ٮPj0~SɌ[ !#"*1V08,.,0N'(A(e &0Ò7i%īr Zҁ\M_K  Ia#C$C!D) )#X!&/p'p"-*.3,./5:$,8?>?DN`%%y%.?)"$* I5W  W$+0;2tݵSԖ}W3 !',((X0p/-`+7+/-,*@, ///.g,+.C-''>''{%V%'7!d' ZXX"p]Krԧι) -Ri   +  ` }؄@¯Ʀ1ƽ翗3΀M}# !-)'/+/y.M*.4*)'*$t#!$#7 7C%ccGaYA %uٽ_Ӛہ)ӎ#ݣރUPNCu ~ p6 cz)ZxԉڱM¿t*W-l >tQk ['%$!&h+-('$]"i'"qqFcM% Q Q )Y=4`($w&n J:hXݥ٬՘A։L{L[O xZ >OZI J BplqNؽQ0KGqLY') (Z[;W~D(qv v!k#!""ht ۂ %`Յg]}u1,n.$E 0 rTh1  Rwݫ j\j12pٽY05L U n ! `/"O69%SlD\QG@:6E$,Xyqܗת9GUBBv&&  3,a 'Ywj߮c_׫C1/{{)B} 7 M! # B R K  E %L })u{7 9 ~ ]EcA>`yxYZ1S4HM\m=,= JBMK! ] W @Y7+R vba=%$ `e?' i+=TPMN} BR9'>b}EHsVw_l~UI* eiuKYY m   & $ pMU#RD G "nLa#\s|r(EKIb>1E1dY~K][7}t.q5# f M ` 3 N rFcgYU'  _ ?  r~L.-4hkC Tdd&MkS@'kjLLN\f? { p  { L l&Vg7 #k  VT^7 f Q'gidk )yA`zDlx&&=v x|wn  o A F ' Z K ` k$ q  6 N 8 vaSv pgf ? &+}^)UAeN/$tQ 3%h    b<:r]Vu9JM07Hscid-4.3.0.cvs20120311/sounds/Bishop.wav0000644000175000017500000002334011727223077016716 0ustar oliveroliverRIFF&WAVEfmt +"Vdata&A5zZZ&6s:}HF+#KVf-R'+"\DUZjs a57|N ~I|W[>x%jJ'BSc6 [g ztM89eHbr^LzP[!kS@noSLu"53ES5+4w6fO;">ffLl1  ; `G :^4 DBCPs`?~0EDO3HTi0yz< R N N#})8!f(W,V02 6O>FOR[gX @K[̶\Be]WP1cH>!(_!YlkS#NZ9 Pgay)!,2$%9!g/?XI4B9S>MW^_O^g[>m 8sldӻm j,V.-.6{8}-7߬x6+ٖa+ :KMױ[ߗjҒ5g:i`YC !JVX'/\('S9?{GJCPZ]m^VQ? k>ʭ ܃0 8K!; ? :ݗ#촕#$ڭWՍR%zv waL`ksD&{m* } !%4~  }#q!$fxk<}9+vU)Gw*9-A)BJTZ>;KN( ϾW!cZH ӂ '΅@&"j:d!w&^1]A-\([] %yP Jm}'%R;[Z̑#h S_#LFY T ;]:ݻ1ѷ  YA1h{`C2s) (=,ԥ$%ZYXZ}&0] (V' kF6hp!++)'^#&] :e4~ g'l@7 ;:W &DO EFvV-w ^ &\ɤ<'{Y;?/0)E1J&cڠ^u- zX 'x*~)N&+!*t&/R Tf' m. (8sKc3ݣ$?х0j$c&|:r q]XgOD -~+!tS +{+T' wn ;o[' Fre 1% Z %-|h׃#$'g_ jJ ^ 3UY l=S:?wX\He CU { Zx m T f t8c3]b!mGIiJ%+ }QaSTL$ o $A NR96F[#"\$(#$#+ g8Qئٟޑ"]l;fj,H\\d0o5V2pE .!!>3 &x)''-.%0Z475"5311$ {銻н7L ɤ<  &,/ ד}n5A_X q(M"  klZdըc  X};I 4'q0E,r&1:9c8S6*73%3 Ӹ-' ֊2@rw (5 &K|ܐ jԁW '""',% b" ݵݧ߉OO# s m  A wvn2\!~ " d =!C}*h 8C"+-5\;'=9+wy9]Q )`0, $  PU}ߩxS~!D$(+!& ~:(s " %D6k6r# =PqlJߨ>% (+18s:,S$&)T'uM (צ\&w!"A"[ 1r>V8zC8 54) QmU <    rDQ7.Jm+  /> ezA+H`5@tO%N4j&{sYj1VrO0s#/(-m;cB1( D Vxyt=2B>  gY~9e4xsZ'(/yD|fdX~T_^ J$Fk.FNXxb>U{VV#!zI{/ !L4b NKIO/3D,|W1-dRmP_FC2`+^!zuVh},Ys dlSE?V3:yUm2] p}=$)Ddl/2l&vBX6KgR@[hs<lI<4:Ff j-nbz*| suC ch=FR1(# i6eN7mcF}WgM( IxHV,d>@"?*hL@Nnm~H>,)NdiB-s?m6)A?(P{[M l4/[ 5VcvYxwt{XX'g Dv,W{~=n |H Eg9 N$ #3E+Jx42=2O0r L{g(?)(d)oKKQgg4WjyHo*C`Y;^G@5B7v)MabrZbi++q{&jG1]ko0l%iw$jQ1^5F>UYoc.l]/X018 HdP[lr/}(76zVjpmlS;}"{FLKwLZ]5QXsD!2v)9EHb37(/MXn/ = v7p _s9X]osKm38NtK;{9&`PW o]4H6,U],jN% [R\^F'!i$E?>PIp,^s p}[/=>>) T3O-7R_I{~q!0dg&3P'`_M8<Wxg"(ky}"/3K;%2 <uO{nk%34#7QFn+[ qaoscid-4.3.0.cvs20120311/sounds/5.wav0000644000175000017500000002541011727223077015636 0ustar oliveroliverRIFF+WAVEfmt +"Vdata*A1q91=U[ = '(Ttkapd2k$Ag%*@tcngCyGpl;P'FYU-!|V3$-^`ns~@Djt .D:V*xd<_9}zFZLnD5oz fL&gI{_MPxZTW #*ckK:zXc0, G?Awo@[q;RN%'vo\(Ik9gA 3qau7![Vp^m&hx]\\RlyR({XkI$w:LQzG794UAG# CEA$# -O h  F U _   u z na8)cx~m-lX4}  ` i5XiW +%-58/ڮèϢTQf%G00& 2,ϴ`0l$&09[Ѹ.ƭϸ\Kއ2wO%Lf}@ fGW GOSa$%':'#@]'.+6;?FJ4NLXQf!C<^kvkY;nގܫ1zó.˟sGbnfRn1d {@hd|Ec (uwY"1(8A2a̼!ĻDD  A (6w>,9*[A%I*28:9:170" IȰCƭBTAl`+iZ1;wM>Jؿ1bЪ _ o#9FG]8wzƫ "v#"LD_:1 >ՆҎ\Ъ u,0/%m9uNO־#V&"?܆N4 =`L' 9ġŽ " ΨlW 43eC#+% >EJP\e h,3554696h*GA%şfH6$_,* $RIi-{Ǡx$f)!O^Nd ._%'pab  GI ] bwm&X8^ &.',M ?=$(+&+T)H),V4:;0)rvҙ T.3*,"uF$Vd6Zك"lWQ %2/J$hTV(\ *,r"2iZUG j!jL  1 / ;s]0%-,'{ \\x'*" %-330H-(-n ݖɖPϛ 7R&hڹxgF$O_f:A W` 0I@`.o id$?MYIw )!*(KFE:{ ]B jA-"^$!'t03Z&) SēwLZ\    ̍}c"#})y jKɿ +c$ em4+c<<,=Ei#-(!M {\mV",+0" 3`DF0 CƘ-W^!F(S;a( ԣ.+0 $)E|jDh%&'H irqJКӖ9r /FJ3d_2#|&0;6,W/\B %f <* qHV /<=EG>$V#لes |&B'< Қ:na '+ _eCC# S50*PE_mC ]TlhQ&N.(> X?) = K} ZHN'q-1\5m:9-'" -V/ i7ɱ-Q9gq=0 # ScF]$Tqi5HF ? E_?nC/] Rx b)..,4) )|+%v1<ދM  # Tc3Oq P #qD su:؛׬d2)'9/y3 $~%I{Y  U 0@2%+.13.Lׇ;Z-A j Mރy.Ȝ+_ k]  S QI~X)F.M  &yLx+]iS3 T  ~KG h h|ZdzL%*+*,- Iw8ɮ D kQUC ӊ#4 p~GSI1H.k!w:wT [2 UyH  hi k _ s 'Fd `$Y,/,*S,,0^* Уs$.M]i̡'  'eyx~1l{:2 95 Tѡ1 F. ݒa3WH )e- :z B6  x #U!P)<2;#*c2ͶEߪ+*}}Y* j  , m nL |RaC 5 K;P&.H3q K 9XMR $|4I BE 9\ oG &4,/1d3, sO9Q m(x1|+g pIԔ-ES W m &_!^|ra$ceެW>Q0 w ->, X  +O G> s * uTD b 4 fQ X1Ux-97~芶{i7޷Wq(~0'dP;v){ l%T^O md ^ 8  JVLjHM!p|-'/,z^$  D` W Ii<,  |  ( {*}$"'M**$ `* V 96!w);]\3p ` pwI%YL Q Lp   c5 ` b # +m) h & {H)6yv/ _4?N5Au 4$! 1]< bp3s v AbC&_a_i2}@"Z>K9A=ZMO3s9 l N >T$ d   M e2=M$J3\4gzU&Pk[RyJ&%BMM  B P P L  C H  K " w jW.;LE[2Z5TyUMf {` Rd@mfs;JFpS%5rt#;^Kx6j }D1VRaUQSMfSJ i!a Gs6jD"#yNYSb8QPl5<-2avq)D N $%Y!>n*^-|OehgYW0*Q7vu18pP[g/Si*t@fyE }5qTb4bZ;GGHsj}= b.hN%nztw!RS=:8:0TRi=LW/ t]Y!,!JeTL,TZ'=MipZ#'L99%^0t4^YcdbCU PZm_am_BUoUxA`[A:9JD\Y/; 9;F~PxT'+WPFM}[b}Z~-7$C|0* =.r3\5xn9L .[  We![$`:+o]+`SfDRK}e\},+z M-MUVN\kZ!bYrmQ[z,0O &DbdYc'  2T< \2tYJW } pI2&@3<z\3/<Ph?S$%yJG-W<zDJ0JupF SZ!Rq?%Z4-*,+ gg%C +zO=@N~8'2l}3y-bcRl"Tljiu`jXnZ2p}&'P cx+Mg'OL%Fo1Z] hvRB02f 61#R3C:C3$|}Wd5,{nW?w6NN_$E\tZ$hI I #EMeIFAPq{jJr;'PB\oJ'iGjn5Kjzew?C xmru Eg8,8*)e@}d{ubB[9R L46kvr6C{p1x*`SHfYscid-4.3.0.cvs20120311/scidlet.ini0000644000175000017500000000342411727223076015570 0ustar oliveroliver# Scidlet configuration file # # This file contains startup settings for Scidlet. # Settings have the format "option=value" with whitespace ignored. # Some settings need a numeric value, while others take a boolean value. # Boolean values can be specified as Yes/No, On/Off, True/False, or 1/0. # Option names and boolean values are case-insensitive. # For example, the lines "LOG=OFF" and "log = false" are equivalent. # # All configuration options can be specified on the command line when # Scidlet is started. Command-line parameters have priority over values # in this file. The command-line format is as seen here, with optional # "/" or "-" characters before setting names. # Example: scidlet log=on -hash=64 /bookfile=huge.sbk # Hash: Transposition table size, in megabytes. # Default value: 16 MB. # hash = 16 # Pawnhash: Pawn scoring hash table size, in megabytes. # 1 or 2 MB is usuallly enough; anything larger may be wasteful. # Default value: 1 MB. # pawnhash = 1 # Log: Save a record of all input/output to a log file. # Default: false # log = off # Logfile: Location and name of the log file. # Default: scidlet.log (in the directory where Scidlet was started). # logfile = scidlet.log # Bookfile: Location and name of the opening book file. # Default: scidlet.sbk (in the directory where Scidlet was started). # bookfile = scidlet.sbk # Pruning: Should the program do futility pruning in search. # Futility pruning may help make the program tactically stronger, # but may also cause it to be positionally weaker. # Default: false # pruning = false # Resign: Should the program resign when hopelessly lost. # Default: true # resign = true # Draw: Should the program offer and accept draws when appropriate. # Default: true # draw = true # End of configuration file scid-4.3.0.cvs20120311/Makefile.mingw0000644000175000017500000002152711727223076016224 0ustar oliveroliver### Windows (MinGW) Makefile for the scid chess database package. ### Copyright (C) 2002-2003, Shane Hudson (sgh@users.sourceforge.net) # This make file is designed for use with make from the MinGW package. # MinGW is a minimal GNU for Windows package. # If the MinGW bin folder is in your path, run this makefile # with the command: make -f Makefile.mingw # or you may need: mingw32-make -f Makefile.mingw ### # Project directories: you will need to edit these according to your # Visual C++ or Visual Studio installation, and Tcl/Tk installation. MINGW_BIN = C:\MinGW\bin TCL_DIR = C:\Tcl # Tcl/Tk version: it should be "83" for Tcl/Tk 8.3, etc. TCL_VERSION = 85 ### Compiler and linker: COMPILE = "$(MINGW_BIN)\g++.exe" CC = "$(MINGW_BIN)\gcc.exe" LINK = "$(MINGW_BIN)\g++.exe" RC = "$(MINGW_BIN)\windres.exe" TCL_INCLUDE = -I"$(TCL_DIR)\include" TCL_LIB = "$(TCL_DIR)\lib\tcl$(TCL_VERSION).lib" TK_LIB = "$(TCL_DIR)\lib\tk$(TCL_VERSION).lib" "$(TCL_DIR)\lib\tcl$(TCL_VERSION).lib" ######################################## ### Compiler options: ### TB: Tablebase support. ### Use: TB = /DSCID_USE_TB for tablebase capability. ### Use: TB = for no tablebase reading capability. TB = -DSCID_USE_TB -DT41_INCLUDE ### OPT: C/C++ Optimization OPT = -O3 ### CPPOPT: Optimization for C++ only (not C) CPPOPT = -fno-rtti -fno-exceptions ### WARNINGS: Compiler warnings WARNINGS = -Wall ### PROFILE: Use "-pg" for profiling in g++ #PROFILE = -fprofile-arcs -ftest-coverage PROFILE= # LFLAGS: Linker flags LFLAGS = $(PROFILE) ### CPPFLAGS: C++ compiler flags CPPFLAGS = -DZLIB -DWIN32 $(OPT) $(CPPOPT) $(PROFILE) $(WARNINGS) ### CPPFLAGSNOWARN: C++ compiler flags without warnings CPPFLAGSNOWARN = -DZLIB -DWIN32 $(OPT) $(CPPOPT) $(PROFILE) ### CFLAGS: C (not C++) compiler flags CFLAGS = -DZLIB -DWIN32 $(OPT) $(PROFILE) ### EXECS: all the evecutable programs compiled from C++ files. EXECS= pgnscid.exe scidt.exe scid.exe tcscid.exe scmerge.exe eco2epd.exe scidlet.exe ### SCIDOBJS: not all the .o files that make up scid, just the standard ### files that most of the scid programs use. ### SCIDOBJS= src\misc.obj src\index.obj src\date.obj src\namebase.obj \ src\position.obj src\game.obj src\gfile.obj src\matsig.obj \ src\bytebuf.obj src\textbuf.obj src\myassert.obj src\stralloc.obj \ src\mfile.obj src\dstring.obj src\pgnparse.obj src\stored.obj \ src\movelist.obj \ src\polyglot\attack.o src\polyglot\board.o src\polyglot\book.o \ src\polyglot\book_make.o src\polyglot\book_merge.o src\polyglot\colour.o \ src\polyglot\fen.o src\polyglot\game.o src\polyglot\hash.o \ src\polyglot\io.o src\polyglot\line.o src\polyglot\list.o src\polyglot\main.o src\polyglot\move.o \ src\polyglot\move_do.o src\polyglot\move_gen.o src\polyglot\move_legal.o src\polyglot\option.o \ src\polyglot\parse.o src\polyglot\pgn.o src\polyglot\piece.o src\polyglot\random.o \ src\polyglot\san.o src\polyglot\search.o src\polyglot\square.o src\polyglot\util.o ### ZLIBOBJS: object files in the zlib compression library. ### ZLIBOBJS= src/zlib/adler32.o src/zlib/compress.o src/zlib/crc32.o \ src/zlib/gzio.o src/zlib/uncompr.o src/zlib/deflate.o src/zlib/trees.o \ src/zlib/zutil.o src/zlib/inflate.o src/zlib/infblock.o \ src/zlib/inftrees.o src/zlib/infcodes.o src/zlib/infutil.o \ src/zlib/inffast.o ### OBJS: all standard object files for scid. ### OBJS= $(SCIDOBJS) $(ZLIBOBJS) ### LANGUAGES: all the extra language files for scid. LANGUAGES = tcl\lang\deutsch.tcl tcl\lang\francais.tcl tcl\lang\italian.tcl tcl\lang\russian.tcl \ tcl\lang\nederlan.tcl tcl\lang\spanish.tcl tcl\lang\portbr.tcl tcl\lang\swedish.tcl \ tcl\lang\norsk.tcl tcl\lang\polish.tcl tcl\lang\czech.tcl tcl\lang\hungary.tcl tcl\lang\serbian.tcl tcl\lang\catalan.tcl ### TCLS: all the .tcl files that make up "scid". TCLS= \ tcl\start.tcl \ tcl\config.tcl \ tcl\bitmaps.tcl \ tcl\language.tcl \ tcl\utils.tcl \ tcl\utils\date.tcl tcl\utils\font.tcl tcl\utils\graph.tcl tcl\utils\history.tcl \ tcl\utils\pane.tcl tcl\utils\sound.tcl tcl\utils\string.tcl tcl\utils\tooltip.tcl \ tcl\utils\validate.tcl tcl\utils\win.tcl \ tcl\misc\misc.tcl tcl\htext.tcl \ tcl\file.tcl \ tcl\file\finder.tcl tcl\file\bookmark.tcl tcl\file\recent.tcl tcl\file\epd.tcl \ tcl\file\spellchk.tcl tcl\file\maint.tcl \ tcl\edit.tcl \ tcl\game.tcl \ tcl\game\browser.tcl \ tcl\windows.tcl \ tcl\windows\gamelist.tcl tcl\windows\pgn.tcl tcl\windows\book.tcl \ tcl\windows\comment.tcl tcl\windows\eco.tcl \ tcl\windows\stats.tcl tcl\windows\tree.tcl tcl\windows\crosstab.tcl \ tcl\windows\pfinder.tcl tcl\windows\tourney.tcl tcl\windows\switcher.tcl \ tcl\search\search.tcl \ tcl\search\board.tcl tcl\search\header.tcl tcl\search\material.tcl \ tcl\contrib\ezsmtp\ezsmtp.tcl \ tcl\tools\email.tcl \ tcl\tools\import.tcl \ tcl\tools\optable.tcl tcl\tools\preport.tcl tcl\tools\pinfo.tcl \ tcl\tools\analysis.tcl tcl\tools\wbdetect.tcl \ tcl\tools\reper.tcl tcl\tools\graphs.tcl tcl\tools\tablebase.tcl tcl\tools\ptracker.tcl \ tcl\help\help.tcl tcl\help\tips.tcl \ tcl\menus.tcl tcl\board.tcl tcl\move.tcl tcl\main.tcl tcl\tools\correspondence.tcl \ tcl\lang\english.tcl $(LANGUAGES) \ tcl\tools\uci.tcl tcl\end.tcl tcl\tools\tacgame.tcl tcl\tools\sergame.tcl tcl\tools\calvar.tcl tcl\tools\fics.tcl tcl\tools\opening.tcl tcl\tools\tactics.tcl tcl\tools\reviewgame.tcl tcl\utils\metadata.tcl tcl\tools\inputengine.tcl tcl\tools\novag.tcl tcl\misc\flags.tcl ######################################## ### Type "make" or "make all" to make all executables: all: $(EXECS) scid.gui scid.gui: $(TCLS) -del .\scid.gui type $(TCLS) > .\scid.gui # escid.gui: scid GUI with English only, no extra language support. escid.gui: $(TCLS) -del .\escid.gui type $(TCLS_ENGLISH_ONLY) > .\escid.gui scmerge.exe: src\scmerge.obj $(OBJS) $(LINK) -o scmerge.exe src\scmerge.obj $(OBJS) $(TCL_LIB) pgnscid.exe: src\pgnscid.obj $(OBJS) $(LINK) -o pgnscid.exe src\pgnscid.obj $(OBJS) $(TCL_LIB) scidt.exe: src\scidt.obj $(OBJS) $(LINK) -o scidt.exe src\scidt.obj $(OBJS) $(TCL_LIB) scidlet.exe: src\scidlet.obj src\engine.obj src\recog.obj $(OBJS) $(LINK) $(LFLAGS) -o scidlet.exe src\scidlet.obj src\engine.obj src\recog.obj \ src/misc.obj src/position.obj src/movelist.obj src/dstring.obj $(TCL_LIB) scid.exe: src\scid.obj $(OBJS) src\tree.obj src\filter.obj \ src\pbook.obj src\crosstab.obj src\spellchk.obj src\probe.obj \ src\optable.obj src\engine.obj src\recog.obj scid.coff $(LINK) -o scid.exe src\scid.obj $(OBJS) \ src\tree.obj src\filter.obj src\pbook.obj \ src\crosstab.obj src\spellchk.obj src\probe.obj \ src\optable.obj src\engine.obj src\recog.obj scid.coff \ $(TK_LIB) -mwindows tkscid.exe: src\tkscid.obj $(OBJS) src\tree.obj src\filter.obj \ src\pbook.obj src\crosstab.obj src\spellchk.obj src\probe.obj \ src\optable.obj src\engine.obj src\recog.obj $(LINK) $(LFLAGS) -o tkscid.exe src\tkscid.obj $(OBJS) \ src\tree.obj src\filter.obj src\pbook.obj \ src\crosstab.obj src\spellchk.obj src\probe.obj \ src\optable.obj src\engine.obj src\recog.obj \ $(TK_LIB) tcscid.exe: src\tcscid.obj $(OBJS) src\tree.obj src\filter.obj \ src\pbook.obj src\crosstab.obj src\spellchk.obj src\probe.obj \ src\optable.obj src\engine.obj src\recog.obj $(LINK) $(LFLAGS) -o tcscid.exe src\tcscid.obj $(OBJS) \ src\tree.obj src\filter.obj src\pbook.obj \ src\crosstab.obj src\spellchk.obj src\probe.obj \ src\optable.obj src\engine.obj src\recog.obj \ $(TCL_LIB) eco2epd.exe: src\eco2epd.obj src\pbook.obj $(OBJS) $(LINK) -o eco2epd.exe src\eco2epd.obj src\pbook.obj $(OBJS) $(TCL_LIB) scid.coff: scid.rc $(RC) -O coff scid.rc scid.coff ### To remove object and executable files: type "make clean" clean: -del src\*.obj src\zlib\*.obj $(EXECS) scid.gui src\tcscid.obj: src\tkscid.cpp $(COMPILE) $(CPPFLAGS) $(TCL_INCLUDE) -DTCL_ONLY -c src\tkscid.cpp \ -o .\src\tcscid.obj src\tkscid.obj: src\tkscid.cpp $(COMPILE) $(CPPFLAGS) $(TCL_INCLUDE) -c src\tkscid.cpp \ -o .\src\tkscid.obj src\scid.obj: src\tkscid.cpp $(COMPILE) $(CPPFLAGS) $(TCL_INCLUDE) -DSOURCE_TCL_FILE="\"scid.gui\"" \ -c src\tkscid.cpp -o .\src\scid.obj src\probe.obj: src\probe.cpp src\egtb\tbindex.cpp src\egtb\tbdecode.c $(COMPILE) $(CPPFLAGSNOWARN) $(TCL_INCLUDE) $(TB) -c src\probe.cpp -o .\src\probe.obj %.obj: %.cpp $(COMPILE) $(CPPFLAGS) $(TCL_INCLUDE) -c $< -o .\$@ %.obj: %.c $(CC) $(CFLAGS) -c $< -o .\$@ scid-4.3.0.cvs20120311/Makefile.vc0000644000175000017500000003755611727223076015524 0ustar oliveroliver#------------------------------------------------------------------------------ # Scid (Shane's Chess Information Database) # Copyright (C) 2000-2002, Shane Hudson (sgh@users.sourceforge.net) # # Microsoft Visual C++ makefile for use with nmake.exe v1.62+ (VC++ 5.0+) # VC++ 6 and 7 #------------------------------------------------------------------------------ # # Usage: # # 1) Targets are: # release -- Builds scid.exe and scid.gui (default). # all -- Builds everything. # clean -- removes the contents of $(TMP_DIR). # hose -- removes the contents of $(TMP_DIR) and $(OUT_DIR). # rebuild -- first cleans then builds release. # # # 2) Macros usable on the commandline: # LANG= # -- This allows you to build the GUI with only english # and one other language # # portbr -- Brazilian Portuguese # czech -- Czech # deutsch -- German # english -- English only # spanish -- Spanish # francais -- French # hungary -- Hungarian # italian -- Italian # nederlan -- Dutch # norsk -- Norwegian # polish -- Polish # russian -- Russian # serbian -- Serbian # swedish -- Swedish # # DEBUG=1 # -- Builds debug versions of scid.exe and scid.gui. # # GLOBAL_OPT=1 # -- Enables 'Whole Program Optimization' (VC 7.0+) # # TMP_DIR= # OUT_DIR= # -- Allows the intermediate and output directories to be # changed. # $(OUT_DIR) is assumed to be .\(Release|Debug) based # on if debug is requested or not. # $(TMP_DIR) will be $(OUT_DIR)\Temp by default. # # TCL_DIR= # -- Allows the Tcl directory location to be changed. If # this is not set, the makefile will attempt to locate # Tcl in its default install directory. # "C:\Program Files\Tcl" # # 3) Examples: # # Basic syntax of calling nmake looks like this: # nmake -f makefile.vc [target|macrodef [target|macrodef] [...]] # # Release # c:\scid_src>nmake -f makefile.vc release # # Release with English and French only # c:\scid_src>nmake -f makefile.vc release LANG=francais # # Release with Tcl in a non-default directory # c:\scid_src>nmake -f makefile.vc release TCL_DIR="C:\Temp\Tcl" # # Everything with Tcl and Tk in a non-default directory # c:\scid_src>nmake -f makefile.vc all TCL_DIR="E:\Tcl" TK_DIR="E:\Tcl" #------------------------------------------------------------------------------ !message =============================================================================== #-------------------------------------------------------------------- # Environment Setup #-------------------------------------------------------------------- ## Check if MSVCDIR has been set # !if "$(MSVCDIR)" == "" MSG = ^ *** You'll need to run vcvars32.bat from Developer Studio, first, to setup^ the environment. !error $(MSG) !endif ## Check if in base directory # !if !exist("makefile.vc") MSG = ^ *** You must run this makefile only from the directory it is in.^ Please `cd` to its location first. !error $(MSG) !endif ## Set compiler and linker # CC = @cl LD = @link RC = @rc ## Set Output and Intermediate directory # !if "$(OUT_DIR)" == "" !if "$(DEBUG)" == "1" OUT_DIR = .\Debug !else OUT_DIR = .\Release !endif !endif !message *** Output directory = '$(OUT_DIR)' !ifndef TMP_DIR TMP_DIR = $(OUT_DIR)\Temp !endif !message *** Intermediate directory = '$(TMP_DIR)' ## TCL_VERSION: Tcl/Tk version # This should be "84" for Tcl/Tk 8.4, etc. # TCL_VERSION = 84 ## SCID_INCLUDES: included files from Tcl/Tk # This will try to find your Tcl/Tk installation. # !ifndef TCL_DIR !if exist("C:\Program Files\Tcl\include\tcl.h") TCL_DIR = C:\Program Files\Tcl !else MSG=^ *** Don't know where Tcl is. Set the TCL_DIR macro. !error $(MSG) !endif !else !if exist("$(TCL_DIR)\include\tcl.h") !elseif exist("$(TCL_DIR)\generic\tcl.h") MSG =^ *** Tcl source found. The TCL_DIR macro must point to the installed version. !error $(MSG) !else MSG =^ *** Don't know where Tcl is. The TCL_DIR macro doesn't appear correct. !error $(MSG) !endif !endif TCL_INCLUDES = -I"$(TCL_DIR)\include" !message *** Tcl directory = '$(TCL_DIR)' !ifndef TK_DIR !if exist("C:\Program Files\Tcl\include\tk.h") TK_DIR = C:\Program Files\Tcl !else MSG=^ *** Don't know where Tk is. Set the TK_DIR macro. !error $(MSG) !endif !else !if exist("$(TK_DIR)\include\tk.h") !elseif exist("$(TK_DIR)\generic\tk.h") MSG =^ *** Tk source found. The TK_DIR macro must point to the installed version. !error $(MSG) !else MSG =^ *** Don't know where Tk is. The TK_DIR macro doesn't appear correct. !error $(MSG) !endif !endif TK_INCLUDES = -I"$(TCL_DIR)\include" !message *** Tk directory = '$(TK_DIR)' SCID_INCLUDES = $(TCL_INCLUDES) $(TK_INCLUDES) !if !exist("$(TCL_DIR)\lib\tcl$(TCL_VERSION).lib") MSG =^ *** The file tcl$(TCL_VERSION).lib appears to be missing or the wrong version. !error $(MSG) !endif TCL_LIB = "$(TCL_DIR)\lib\tcl$(TCL_VERSION).lib" !if !exist("$(TCL_DIR)\lib\tk$(TCL_VERSION).lib") MSG =^ *** The file tk$(TCL_VERSION).lib appears to be missing or the wrong version. !error $(MSG) !endif TK_LIB = "$(TCL_DIR)\lib\tk$(TCL_VERSION).lib" $(TCL_LIB) ## SCID_FLAGS: Scid customization flags. # Use -DZLIB if your system does not have zlib and you need # to include the code in the src/zlib directory. # The default is to use the system zlib library. # SCID_FLAGS = -DZLIB ## SCID_TB: Tablebase support. # for no tablebase reading capability. # Use: SCID_TB = # for tablebase capability. # Use: SCID_TB = -DSCID_USE_TB # for tablebase capability including 4-1 # (King + 3 pieces vs lone king) tablebases. # Use: SCID_TB = -DSCID_USE_TB -DT41_INCLUDE # # Note: With 4-1 (King + 3 pieces vs lone King) tablebases, # older MS compilers need a "/Zm" option to tell them to use # more memory when compiling. # SCID_TB = -DSCID_USE_TB -DT41_INCLUDE -Zm101 ## SCID_EXECS: all the executable programs compiled from C++ files. # Note: only "scid.exe" is compiled by default. # SCID_EXECS = \ eco2epd.exe \ pgnscid.exe \ scid.exe \ scidlet.exe \ scidt.exe \ scmerge.exe \ tcscid.exe \ tkscid.exe ## ZLIB_OBJS: obj. files in the zlib compression library. # ZLIB_OBJS = \ $(TMP_DIR)\adler32.obj \ $(TMP_DIR)\compress.obj \ $(TMP_DIR)\crc32.obj \ $(TMP_DIR)\gzio.obj \ $(TMP_DIR)\uncompr.obj \ $(TMP_DIR)\deflate.obj \ $(TMP_DIR)\trees.obj \ $(TMP_DIR)\zutil.obj \ $(TMP_DIR)\inflate.obj \ $(TMP_DIR)\infblock.obj \ $(TMP_DIR)\inftrees.obj \ $(TMP_DIR)\infcodes.obj \ $(TMP_DIR)\infutil.obj \ $(TMP_DIR)\inffast.obj ## SCID_OBJS: not all the .obj files that make up Scid, just the standard # files that most of the Scid programs use. # SCID_OBJS = \ $(ZLIB_OBJS) \ $(TMP_DIR)\bytebuf.obj \ $(TMP_DIR)\date.obj \ $(TMP_DIR)\dstring.obj \ $(TMP_DIR)\game.obj \ $(TMP_DIR)\gfile.obj \ $(TMP_DIR)\index.obj \ $(TMP_DIR)\matsig.obj \ $(TMP_DIR)\mfile.obj \ $(TMP_DIR)\misc.obj \ $(TMP_DIR)\movelist.obj \ $(TMP_DIR)\myassert.obj \ $(TMP_DIR)\namebase.obj \ $(TMP_DIR)\pgnparse.obj \ $(TMP_DIR)\position.obj \ $(TMP_DIR)\stored.obj \ $(TMP_DIR)\stralloc.obj \ $(TMP_DIR)\textbuf.obj \ $(TMP_DIR)\scid.res ## SCID_XOBJS: all the extra .obj files that make up Scid. # SCID_XOBJS = \ $(SCID_OBJS) \ $(TMP_DIR)\crosstab.obj \ $(TMP_DIR)\engine.obj \ $(TMP_DIR)\filter.obj \ $(TMP_DIR)\optable.obj \ $(TMP_DIR)\pbook.obj \ $(TMP_DIR)\probe.obj \ $(TMP_DIR)\recog.obj \ $(TMP_DIR)\spellchk.obj \ $(TMP_DIR)\tree.obj ## SCID_LANG: all the extra language files for Scid. # !if "$(LANG)" == "english" SCID_LANG = tcl\lang\$(LANG).tcl !message *** Language file = '$(LANG)' !elseif exist("tcl\lang\$(LANG).tcl") SCID_LANG = tcl\lang\english.tcl tcl\lang\$(LANG).tcl !message *** Language file = '$(LANG)' !else SCID_LANG = \ tcl\lang\english.tcl \ tcl\lang\portbr.tcl \ tcl\lang\czech.tcl \ tcl\lang\deutsch.tcl \ tcl\lang\spanish.tcl \ tcl\lang\francais.tcl \ tcl\lang\hungary.tcl \ tcl\lang\italian.tcl \ tcl\lang\nederlan.tcl \ tcl\lang\norsk.tcl \ tcl\lang\polish.tcl \ tcl\lang\russian.tcl \ tcl\lang\serbian.tcl \ tcl\lang\swedish.tcl !if "$(LANG)" == "" !message *** Language file = all !else !message !message *** Language file not found, defaulting to 'all'. !message !message *** Language file = all !endif !endif ## SCID_TCLS: Setup the .tcl files for scid # SCID_TCLS = \ tcl\start.tcl \ tcl\bitmaps.tcl \ tcl\language.tcl \ tcl\utils.tcl \ tcl\utils\date.tcl tcl\utils\font.tcl tcl\utils\graph.tcl tcl\utils\history.tcl \ tcl\utils\pane.tcl tcl\utils\sound.tcl tcl\utils\string.tcl tcl\utils\tooltip.tcl \ tcl\utils\validate.tcl tcl\utils\win.tcl \ tcl\misc\misc.tcl tcl\htext.tcl \ tcl\contrib\combobox.tcl \ tcl\file.tcl \ tcl\file\finder.tcl tcl\file\bookmark.tcl tcl\file\recent.tcl tcl\file\epd.tcl \ tcl\file\spellchk.tcl tcl\file\maint.tcl \ tcl\edit.tcl \ tcl\game.tcl \ tcl\game\browser.tcl \ tcl\windows.tcl \ tcl\windows\gamelist.tcl tcl\windows\pgn.tcl \ tcl\windows\comment.tcl tcl\windows\eco.tcl \ tcl\windows\stats.tcl tcl\windows\tree.tcl tcl\windows\crosstab.tcl \ tcl\windows\pfinder.tcl tcl\windows\tourney.tcl tcl\windows\switcher.tcl \ tcl\search\search.tcl \ tcl\search\board.tcl tcl\search\header.tcl tcl\search\material.tcl \ tcl\contrib\ezsmtp\ezsmtp.tcl \ tcl\tools\email.tcl \ tcl\tools\import.tcl \ tcl\tools\optable.tcl tcl\tools\preport.tcl tcl\tools\pinfo.tcl \ tcl\tools\analysis.tcl tcl\tools\wbdetect.tcl \ tcl\tools\reper.tcl tcl\tools\graphs.tcl tcl\tools\tablebase.tcl tcl\tools\ptracker.tcl \ tcl\help\help.tcl tcl\help\tips.tcl \ tcl\menus.tcl tcl\board.tcl tcl\move.tcl tcl\main.tcl \ tcl\lang\english.tcl $(SCID_LANG) \ tcl\end.tcl #-------------------------------------------------------------------- # Compile flags #-------------------------------------------------------------------- ## OPTIMIZE: Optimization # -O2 :Maximize Speed # -Op :Improve Float Consistency # -GL :Whole Program Optimization # -QI0f :Enable Pentium 0x0f Fix # !if "$(DEBUG)" == "1" OPTIMIZE = -ZI -Fd$(TMP_DIR)\ -Od !message *** Build 'Debug' Version = yes !else OPTIMIZE = -O2 -Op -QI0f -G6 !message *** Build 'Release' Version = yes !if "$(GLOBAL_OPT)" == "1" OPTIMIZE = $(OPTIMIZE) -GL !message *** Whole Program Optimization = yes !endif !endif ## WARNINGS: I always compile with all warnings on (-Wall) # Note: (-W2) is the default for MS compiler. # !if "$(DEBUG)" == "1" WARNINGS = -W3 !else WARNINGS = -W2 !endif ## PROFILE: Set profile for compiling # -DNDEBUG :Turn off debug code # -DWIN32 :Target Windows 32bit # -DWIN32_LEAN_AND_MEAN :Speeds building times by excluding some less # common APIs # !if "$(DEBUG)" == "1" PROFILE = -D_DEBUG -DDEBUG !else PROFILE = -DNDEBUG !endif PROFILE = $(PROFILE) -DWIN32 -DWIN32_LEAN_AND_MEAN ## CFLAGS: C++ compiler flags # -c :Compile Without linking # CFLAGS = $(PROFILE) $(OPTIMIZE) $(WARNINGS) $(SCID_FLAGS) \ $(SCID_INCLUDES) -c -nologo #-------------------------------------------------------------------- # Link flags #-------------------------------------------------------------------- ## LDFLAGS: C++ linker flags # -LTCG :Link-time Code Generation # !if "$(DEBUG)" == "1" LDFLAGS = -debug:full !else LDFLAGS = -opt:icf,3 -opt:nowin98 !if "$(GLOBAL_OPT)" == "1" LDFLAGS = $(LDFLAGS) -ltcg:status !endif !endif LDFLAGS = $(LDFLAGS) -nologo !message =============================================================================== !message #-------------------------------------------------------------------- # Project specific targets #-------------------------------------------------------------------- release: setup scid.exe scid.gui all: setup $(SCID_EXECS) scid.gui setup: @if not exist $(OUT_DIR)\nul \ @echo *** Creating directory '$(OUT_DIR)'... @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR) @if not exist $(TMP_DIR)\nul \ @echo *** Creating directory '$(TMP_DIR)'... @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR) scid.gui: $(SCID_TCLS) @type $(SCID_TCLS) > $(OUT_DIR)\scid.gui scmerge.exe: $(TMP_DIR)\scmerge.obj $(SCID_OBJS) @echo *** scmerge.exe $(LD) $(LDFLAGS) $(TMP_DIR)\scmerge.obj $(SCID_OBJS) \ /out:$(OUT_DIR)\scmerge.exe pgnscid.exe: $(TMP_DIR)\pgnscid.obj $(SCID_OBJS) @echo *** pgnscid.exe $(LD) $(LDFLAGS) $(TMP_DIR)\pgnscid.obj $(SCID_OBJS) \ /out:$(OUT_DIR)\pgnscid.exe scidt.exe: $(TMP_DIR)\scidt.obj $(SCID_OBJS) @echo *** scidt.exe $(LD) $(LDFLAGS) $(TMP_DIR)\scidt.obj $(SCID_OBJS) \ /out:$(OUT_DIR)\scidt.exe scidlet.exe: $(TMP_DIR)\scidlet.obj $(SCID_XOBJS) @echo *** scidlet.exe $(LD) $(LDFLAGS) $(TMP_DIR)\scidlet.obj $(SCID_XOBJS) \ /out:$(OUT_DIR)\scidlet.exe scid.exe: $(TMP_DIR)\scid.obj $(SCID_XOBJS) @echo *** scid.exe $(LD) $(LDFLAGS) $(TMP_DIR)\scid.obj $(SCID_XOBJS) $(TK_LIB) \ /out:$(OUT_DIR)\scid.exe \ /subsystem:windows /entry:mainCRTStartup tcscid.exe: $(TMP_DIR)\tcscid.obj $(SCID_XOBJS) @echo *** tcscid.exe $(LD) $(LDFLAGS) $(TMP_DIR)\tcscid.obj $(SCID_XOBJS) $(TCL_LIB) \ /out:$(OUT_DIR)\tcscid.exe tkscid.exe: $(TMP_DIR)\tkscid.obj $(SCID_XOBJS) @echo *** tkscid.exe $(LD) $(LDFLAGS) $(TMP_DIR)\tkscid.obj $(SCID_XOBJS) $(TK_LIB) \ /out:$(OUT_DIR)\tkscid.exe eco2epd.exe: $(TMP_DIR)\eco2epd.obj $(TMP_DIR)\pbook.obj $(SCID_OBJS) @echo *** eco2epd.exe $(LD) $(LDFLAGS) $(TMP_DIR)\eco2epd.obj $(TMP_DIR)\pbook.obj \ $(SCID_OBJS) /out:$(OUT_DIR)\eco2epd.exe #-------------------------------------------------------------------- # Special case object file targets #-------------------------------------------------------------------- $(TMP_DIR)\tcscid.obj: src\tkscid.cpp $(CC) $(CFLAGS) -DTCL_ONLY /Fo$@ $? $(TMP_DIR)\tkscid.obj: src\tkscid.cpp $(CC) $(CFLAGS) /Fo$@ $? $(TMP_DIR)\scid.obj: src\tkscid.cpp $(CC) $(CFLAGS) -DSOURCE_TCL_FILE="\"scid.gui\"" /Fo$@ $? $(TMP_DIR)\probe.obj: src\probe.cpp src\egtb\tbindex.cpp src\egtb\tbdecode.c $(CC) $(CFLAGS) $(SCID_TB) src\probe.cpp /Fo$@ #-------------------------------------------------------------------- # Implicit rules #-------------------------------------------------------------------- {src}.cpp{$(TMP_DIR)}.obj: $(CC) $(CFLAGS) -Fo$(TMP_DIR)\ $< {src\egtb}.cpp{$(TMP_DIR)}.obj: $(CC) $(CFLAGS) -Fo$(TMP_DIR)\ $< {src\egtb}.c{$(TMP_DIR)}.obj: $(CC) $(CFLAGS) -Fo$(TMP_DIR)\ $< {src\zlib}.c{$(TMP_DIR)}.obj: $(CC) $(CFLAGS) -Fo$(TMP_DIR)\ $< .rc{$(TMP_DIR)}.res: $(RC) -r -Fo$(TMP_DIR)\$(@B).res $< #-------------------------------------------------------------------- # Clean up #-------------------------------------------------------------------- !if "$(OS)" == "Windows_NT" RMDIR = rmdir /S /Q !else RMDIR = deltree /Y !endif ## clean: # This will remove .obj files. # clean: @echo Cleaning... @echo. @if exist $(TMP_DIR)\nul @echo *** Removing directory '$(TMP_DIR)'... @if exist $(TMP_DIR)\nul $(RMDIR) $(TMP_DIR) @echo. @echo Finished @echo =============================================================================== ## hose: # This will remove .exe and .obj files. # hose: @echo Hosing... @echo. @if exist $(OUT_DIR)\nul @echo *** Removing directory '$(OUT_DIR)'... @if exist $(OUT_DIR)\nul $(RMDIR) $(OUT_DIR) @echo. @echo Finished @echo =============================================================================== ## rebuild: # This will clean and then rebuild .obj and .exe files. # rebuild: @echo Cleaning... @echo. @$(MAKE) -fmakefile.vc -$(MAKEFLAGS) clean -nologo > nul @echo Building... @echo. @$(MAKE) -fmakefile.vc -$(MAKEFLAGS) -nologo @echo. @echo Finished @echo =============================================================================== scid-4.3.0.cvs20120311/TODO0000644000175000017500000001373611727223076014137 0ustar oliveroliver =========================================================== | | | PENDING - WORK IN PROGRESS | | | =========================================================== - Game info area: show transcription of custom flags. ---------------------------------------------------------------------- 1) turn on the "Show Suggested Move" option. 2) create a new game 3) start an engine 4) click on a white pawn with the mouse and move it fast around the ---------------------------------------------------------------------- So, truncating games by removing leading moves has at least two bugs: 1. NAGs are removed. 2. Optional tags (WhiteElo, BlackElo) are removed. ---------------------------------------------------------------------- -- use srand() but should already use system clock? Is there a way to set the seed for the random number generator used by Scid? Now it appears that each time Scid is restarted, the training mode (togglable from the tree window) plays the same moves as the previous time when I'm using the same database. * In docked mode board rotation breaks piece animation for autoplay * Check for bases/books dir not upon startup but once the related function is called for the first time. * Opening Trainger picks up tye of DB only after restart of Scid(?) * Blunder check in tactical game should be for the players moves not for phalanx moves. ---------------------------------------------------------------------- =========================================================== | | | BUGS | | | =========================================================== =========================================================== | | | FEATURE REQUESTS | | | =========================================================== - I would like the "games" window to display the continuation from the current position, rather than the opening from move one (something I find rather useless). Is there a way to effect this? If not, being something of a programmer, I might turn my hand to making it possible. (Mark Mross) - when engine analysis is in locked mode so that the engine remains analyzing a certain position while the board is changed, the "V" buttons are disabled and that makes it impossible to ever have results of a locked-down engine analysis inserted into the game score - Switch sides button for game play instead of automatically switching of sides by board rotation. (komyt@yahoo.com) - Given a list of names create the proper set of empty games to set up a tournament. (Suggested by Michael Blake) - Notify games with annotations in "Best game", show annotator there. Consider sort order: e.g. annotated games on top? - Merge games including NAGs / variants(?) - Allow to save the list from the tournament finder. Drop restriction to 1000 games for this save. - In spell checker: give more information in case of ambigious names. E.g. first line of SSP-file or %Bio lines will help to sort things out. - Spell check, ambigious names: In case of multiple hits, drop limit of the first 10, more should be allowed here. - Add more complete header to browse game. - improve commentary arrows: thicker, starting form the real middle of the field, ending at the middle of the field, get a thin black frame. - Add a Game training ala Fritz' "Friend mode" - use tablelist package to revamp Game List window - Start game analysis at the end of the game to fill hash tables - Engines tournament (with specific opening line ?) - book generation from Scid (re-use of Polyglot code) - Export Tournament grid in XML - Comment Editor: make toggle for the tiny board (Esteban Cervetto) --- Joram op den Kelder ----------------------------------------------- - When merging game A into game B, A is added as a new variation. Is this a conscious choice? It seems illogical to me. For example: if game B is analysis of an opening variation, it's not possible to add a newly played game to a non-main variation of the analysis. Workaround: manually change the appropriate variation into the main line, merge games, and change back to the original main line. - Is is possible to include variations when merging? Practical examples: adding an analysed game (with relevant notes) to a game which consists of opening analysis; adding an pgn-update of an existing opening book to the original analysis; merge multiple analysis of the same position (different pupils of the same teacher, shared analysis among friends). - Is it possible to merge multiple games at ones? ====================================================================== From: Michal Rudolf Subject: Re: Scid bugs Categories: bug: bug to be fixed cmd: command to be added opt: option to be added fea: internal feature to be added ide: larger feature, idea or new concept usa: improve usability, clean interface GAME EDITOR * fea: automatically delete empty comments * fea: merge game into variations too GAME LIST * fea: highlight current game in game list by default * fea: mark that there are no matches instead of showing 1st game PGN WINDOW * cmd: print game * ide: better PGN display (figurine font?) * opt: strip spaces after/before brackets for variations in PGN window SEARCH MATERIAL * fea: find symmetrical patterns (pawns a,b,c = f,g,h) * fea: find certain moves, specially captures (f. e. BxPe6 or RxNc3) * fea: 'any white(black) piece' in patterns PLAYER INFO * fea: filter games selectable in Player info PLAYER BROWSER * cmd: popup menu to load All/White/Black games of a player * opt: incrementally match player name SPELLCHECKER * fea: don't match partial name for surname scid-4.3.0.cvs20120311/Makefile.cygwin0000644000175000017500000002671011727223076016402 0ustar oliveroliver##### Scid Makefile for Cygwin on Windows systems. # # This version of the Scid Makefile was sent to me by a user # who has used it to compile Scid with Cygwin on Windows. # I do not use Windows and know nothing about Cygwin so if # this does not work for you, I doubt I will be able to help. # -- Shane Hudson, author of Scid ### Compiler: Most Unix systems use g++ for compiling and linking. # COMPILE = g++ CC = gcc LINK = g++ # BINDIR: where the Scid programs are copied for "make install". # BINDIR = /usr/local/bin # SHAREDIR: where scid.eco and spelling.ssp are copied for "make install". # SHAREDIR = /usr/local/share/scid ### TCL_VERSION: Set this according to the version of Tcl/Tk you have # installed that you want Scid to use: 8.0, 8.1, 8.2, 8.3, etc. # TCL_VERSION = 8.3 # TCL_INCLUDE, TCL_LIBRARY, TK_LIBRARY: these are the compiler options # needed for linking Scid with Tcl/Tk. The program "./configure" # will try to determine them automatically, but if it cannot, you # can use the examples below for help in setting these variables. # # Location of Tcl directories in Windows: # TCL_TOP = /cygdrive/c/progra~1/Tcl TCL_INCLUDE = -I $(TCL_TOP)/include TCL_LIBRARY = $(TCL_TOP)/lib/tcl83.lib TK_LIBRARY = $(TCL_LIBRARY) $(TCL_TOP)/lib/tk83.lib ######################################## ### Compiler options: ### TB: Using Nalimov tablebases with Scid. Use "TB = -DSCID_USE_TB" for # tablebase support, or just "TB = " for no tablebase capability. # Use "TB = -DSCID_USE_TB -DT41_INCLUDE" to include use of 4-1 # (King + 3 pieces vs lone king) tablebases. # TB = -DSCID_USE_TB ### SCIDFLAGS: Scid customization flags. # Use -DZLIB if your system does not have zlib and you need # to include the code in the src/zlib directory. # The default is to use the system zlib library. # SCIDFLAGS = -DZLIB ### OPTIMIZE: Optimization options for C++ compiler. # -O4 is the most optimization for g++. I have found -O2 to do # just as well, but someone reported a noticable difference in speed # between -O4 and -O2 so the default here is -O4. # On some systems, adding "-fno-rtti" and "-fno-exceptions" produces # smaller, faster programs since Scid does not use those C++ features. # OPTIMIZE = -O4 -fno-rtti -fno-exceptions ### DEBUG: Defining the macro ASSERTIONS will turn on assertions, which # helps to track bugs after modifications, but the programs will run # a little faster with assertions turned off. # DEBUG = #-DASSERTIONS ### WARNINGS: I always compile with all warnings on (-Wall), and all the # files should compile warning-free using g++. # WARNINGS = -Wall ### PROFILE: Set this to "-pg" for profiling in g++ and gcc. # PROFILE = ### CPP_FLAGS: Flags for C++ compilation. # CPP_FLAGS = $(PROFILE) $(OPTIMIZE) $(WARNINGS) $(DEBUG) $(SCIDFLAGS) ### CFLAGS: Flags for C compilation (only used for compiling zlib). # CFLAGS = -O2 -Wall $(PROFILE) ### LANGUAGES: List of additional Tcl files to include in Scid for # multi-language menu support. # By default, it is all the contributed languages, but you # can reduce the size of the Scid program by only specifying # the languages you want supported. # LANGUAGES = tcl/lang/deutsch.tcl tcl/lang/francais.tcl tcl/lang/italian.tcl \ tcl/lang/nederlan.tcl tcl/lang/spanish.tcl tcl/lang/portbr.tcl \ tcl/lang/swedish.tcl tcl/lang/norsk.tcl tcl/lang/polish.tcl \ tcl/lang/czech.tcl tcl/lang/serbian.tcl ############################################################ # # You should not need to edit anything below this line. # ############################################################ ### EXECS: executable programs compiled from C++ files. # Note: scidt and eco2epd are obsolete and not compiled by default. # EXECS= pgnscid.exe tkscid.exe tcscid.exe scmerge.exe scidlet.exe ### SCIDOBJS: not all the .o files that make up Scid, just the standard ones # that most of the programs include. # SCIDOBJS= src/misc.o src/index.o src/date.o src/namebase.o src/position.o \ src/game.o src/gfile.o src/matsig.o src/bytebuf.o src/textbuf.o \ src/myassert.o src/stralloc.o src/mfile.o src/dstring.o src/pgnparse.o \ src/stored.o src/movelist.o ### ZLIBOBJS: object files in the zlib compression library. # ZLIBOBJS= src/zlib/adler32.o src/zlib/compress.o src/zlib/crc32.o \ src/zlib/gzio.o src/zlib/uncompr.o src/zlib/deflate.o src/zlib/trees.o \ src/zlib/zutil.o src/zlib/inflate.o src/zlib/infblock.o \ src/zlib/inftrees.o src/zlib/infcodes.o src/zlib/infutil.o \ src/zlib/inffast.o ### ZLIB: Should be "-lz" if your system has zlib, "" otherwise. # ZLIB = ### OBJS: Will be "$(SCIDOBJS)", and also "$(ZLIBOBJS)" if they are # needed on your system. OBJS= $(SCIDOBJS) $(ZLIBOBJS) ### TCLS: all the .tcl files that make up "scid". # TCLS= \ tcl/start.tcl \ tcl/config.tcl \ tcl/bitmaps.tcl \ tcl/language.tcl \ tcl/utils.tcl \ tcl/misc/flags.tcl \ tcl/utils/date.tcl tcl/utils/font.tcl tcl/utils/graph.tcl tcl/utils/history.tcl \ tcl/utils/pane.tcl tcl/utils/sound.tcl tcl/utils/string.tcl tcl/utils/tooltip.tcl \ tcl/utils/validate.tcl tcl/utils/win.tcl \ tcl/misc/misc.tcl tcl/htext.tcl \ tcl/file.tcl \ tcl/file/finder.tcl tcl/file/bookmark.tcl tcl/file/recent.tcl tcl/file/epd.tcl \ tcl/file/spellchk.tcl tcl/file/maint.tcl \ tcl/edit.tcl \ tcl/game.tcl \ tcl/game/browser.tcl \ tcl/windows.tcl \ tcl/windows/gamelist.tcl tcl/windows/pgn.tcl \ tcl/windows/comment.tcl tcl/windows/eco.tcl \ tcl/windows/stats.tcl tcl/windows/tree.tcl tcl/windows/crosstab.tcl \ tcl/windows/pfinder.tcl tcl/windows/tourney.tcl tcl/windows/switcher.tcl \ tcl/search/search.tcl \ tcl/search/board.tcl tcl/search/header.tcl tcl/search/material.tcl \ tcl/contrib/ezsmtp/ezsmtp.tcl \ tcl/tools/email.tcl \ tcl/tools/import.tcl \ tcl/tools/optable.tcl tcl/tools/preport.tcl tcl/tools/pinfo.tcl \ tcl/tools/analysis.tcl tcl/tools/wbdetect.tcl \ tcl/tools/reper.tcl tcl/tools/graphs.tcl tcl/tools/tablebase.tcl tcl/tools/ptracker.tcl \ tcl/help/help.tcl tcl/help/tips.tcl \ tcl/menus.tcl tcl/board.tcl tcl/move.tcl tcl/main.tcl \ tcl/lang/english.tcl $(LANGUAGES) \ tcl/tools/uci.tcl tcl/end.tcl tcl/tools/tacgame.tcl tcl/tools/sergame.tcl tcl/tools/calvar.tcl tcl/tools/fics.tcl tcl/tools/opening.tcl tcl/tools/tactics.tcl tcl/tools/reviewgame.tcl tcl/utils/metadata.tcl tcl/tools/inputengine.tcl tcl/tools/novag.tcl tcl/tools/correspondence.tcl ### SCRIPTS: small extra programs written in Tcl using tcscid. # SCRIPTS= sc_addmove sc_epgn sc_spell sc_eco sc_import scidpgn pgnfix wmtest #################### ### Type "make" or "make all" to make all programs: # all: scid $(SCRIPTS) $(EXECS) ### To copy all executables to $BINDIR, with read and execute permission # for all users, and put extra files in $SHAREDIR, type "make install". # install: all chmod 755 scid $(SCRIPTS) $(EXECS) cp scid $(SCRIPTS) $(EXECS) $(BINDIR) -mkdir -p $(SHAREDIR) -chmod a+rx $(SHAREDIR) -cp ./scid.eco $(SHAREDIR)/scid.eco -cp ./spelling.ssp $(SHAREDIR)/spelling.ssp -chmod a+r $(SHAREDIR)/scid.eco $(SHAREDIR)/spelling.ssp ### Make a tar file for distributing binaries for Cygwin. # distbin: strip $(EXECS:%=$(BINDIR)/%) tar -cvzf binaries.tar.gz $(BINDIR)/scid \ $(SCRIPTS:%=$(BINDIR)/%) $(EXECS:%=$(BINDIR)/%) $(SHAREDIR) ### To remove Scid files placed in the BINDIR and SHAREDIR directories, # type "make distclean". # distclean: cd $(BINDIR) -rm -f $(EXECS) $(SCRIPTS) -rm -f $(SHAREDIR)/scid.eco -rm -f $(SHAREDIR)/spelling.ssp ### To remove object and executable files: type "make clean". # clean: rm -f src/*.o src/zlib/*.o $(EXECS) scid $(SCRIPTS) ### To make the executable files smaller: type "make strip". # strip: strip $(EXECS) ### To compress scid and executables with gzexe: type "make gzexe". # gzexe: gzexe $(EXECS) scid ### CYGROOT - used to fix path problems for cygwin-based systems # CYGROOT=c:/cygwin scid: $(TCLS) rm -f ./scid cat $(TCLS) | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tkscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ sc_addmove: scripts/sc_addmove.tcl cat scripts/sc_addmove.tcl | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tcscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ sc_epgn: scripts/sc_epgn.tcl cat scripts/sc_epgn.tcl | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tcscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ sc_spell: scripts/sc_spell.tcl cat scripts/sc_spell.tcl | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tcscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ sc_eco: scripts/sc_eco.tcl cat scripts/sc_eco.tcl | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tcscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ sc_import: scripts/sc_import.tcl cat scripts/sc_import.tcl | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tcscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ sc_maketree: scripts/sc_maketree.tcl cat scripts/sc_maketree.tcl | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tcscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ scidpgn: scripts/scidpgn.tcl cat scripts/scidpgn.tcl | \ sed -e 's|^#!/bin/sh.*|#!$(BINDIR)/tcscid $(CYGROOT)$(BINDIR)/$@|' > $@ chmod +x $@ wmtest: scripts/wmtest.tk cp scripts/wmtest.tk ./wmtest chmod +x wmtest pgnfix: scripts/pgnfix.py cp scripts/pgnfix.py ./pgnfix chmod +x pgnfix eco2pgn: scripts/eco2pgn.py cp scripts/eco2pgn.py ./eco2pgn chmod +x eco2pgn scmerge.exe: src/scmerge.o src/misc.o src/index.o src/date.o src/namebase.o \ src/gfile.o src/bytebuf.o src/textbuf.o src/myassert.o \ src/stralloc.o $(LINK) -o $@ src/scmerge.o $(OBJS) $(ZLIB) pgnscid.exe: src/pgnscid.o $(OBJS) $(LINK) $(PROFILE) -o $@ src/pgnscid.o $(OBJS) $(ZLIB) scidlet.exe: src/scidlet.o src/engine.o src/recog.o src/misc.o src/position.o \ src/dstring.o src/movelist.o $(LINK) -o $@ src/scidlet.o src/engine.o src/recog.o src/misc.o src/position.o src/movelist.o src/dstring.o scidt.exe: src/scidt.o $(OBJS) $(LINK) -o $@ src/scidt.o $(OBJS) $(ZLIB) tkscid.exe: src/tkscid.o $(OBJS) src/tree.o src/filter.o \ src/pbook.o src/crosstab.o src/spellchk.o src/probe.o src/optable.o $(LINK) -o $@ src/tkscid.o $(OBJS) src/tree.o src/filter.o src/pbook.o src/crosstab.o src/spellchk.o src/probe.o src/optable.o src/engine.o src/recog.o $(ZLIB) $(TK_LIBRARY) tcscid.exe: src/tcscid.o $(OBJS) src/tree.o src/filter.o \ src/pbook.o src/crosstab.o src/spellchk.o src/probe.o src/optable.o $(LINK) -o tcscid src/tcscid.o $(OBJS) src/tree.o src/filter.o src/pbook.o src/crosstab.o src/spellchk.o src/probe.o src/optable.o src/engine.o src/recog.o $(ZLIB) $(TCL_LIBRARY) # eco2epd is now optional extra program NOT compiled by default, since # scid now reads the .eco file format directly. eco2epd: src/eco2epd.o $(OBJS) src/pbook.o $(LINK) -o eco2epd src/eco2epd.o $(OBJS) src/pbook.o $(ZLIB) ### Rules to create .o files from .cpp files: # src/tcscid.o: src/tkscid.cpp $(COMPILE) $(CPP_FLAGS) $(TCL_INCLUDE) -DTCL_ONLY -o src/tcscid.o -c src/tkscid.cpp src/tkscid.o: src/tkscid.cpp $(COMPILE) $(CPP_FLAGS) $(TCL_INCLUDE) -o src/tkscid.o -c src/tkscid.cpp ### The endgame tablebase code in the egtb/ subdirectory (not written by me) # gives many warnings, so compile probe.cpp with warnings turned off: # src/probe.o: src/probe.cpp src/egtb/tbindex.cpp src/egtb/tbdecode.c $(COMPILE) $(PROFILE) $(OPTIMIZE) $(DEBUG) $(SCIDFLAGS) $(TB) -o src/probe.o -c src/probe.cpp ### Generic rule for all other .cpp files: # %.o: %.cpp $(COMPILE) $(CPP_FLAGS) -o $@ -c $< ### Rule for compiling zlib source files: # src/zlib/%.o: src/zlib/%.c $(CC) $(CFLAGS) -o $@ -c $< ### End of Makefile scid-4.3.0.cvs20120311/scid.eco0000644000175000017500000412030511727223076015054 0ustar oliveroliver############################# # # scid.eco # # This is the ECO classification file for Scid. # # The Scid ECO code format allows for extensions: each basic code can have # a lower case letter (a-z) appended, and a further level (1-4) can be # added to each extension. So the order of ECO codes for A00 is: # A00, A00a, A00a1, A00a2, A00a3, A00a4, A00b, A00b1, ..., A00z4. # # You can convert this file to PGN format with "eco2pgn" and to EPD # format with "eco2epd" -- these Scid programs are not compiled by # default so you may need to compile them first, e.g. "make eco2pgn". # # Copyright (C) 1999-2003 Shane Hudson (sgh@users.sourceforge.net) # Created: June 1999. # Last update: January 2011. # Scid website: http://scid.sourceforge.net/ A00a "Start position" * A00b "Barnes Opening" 1.f3 * A00b "Fried fox" 1.f3 e5 2.Kf2 * A00c "Kadas Opening" 1.h4 * A00d "Clemenz Opening" 1.h3 * A00e "Ware Opening" 1.a4 * A00f "Anderssen Opening" 1.a3 * A00f "Creepy Crawly Opening (Basman)" 1.a3 e5 2.h3 d5 * A00g "Amar/Paris Opening" 1.Nh3 * A00g "Amar: Paris Gambit" 1.Nh3 d5 2.g3 e5 3.f4 * A00h "Durkin" 1.Na3 * A00i "Saragossa" 1.c3 * A00j "Mieses" 1.d3 * A00j "Mieses: 1...e5" 1.d3 e5 * A00j "Mieses: 1...d5" 1.d3 d5 * A00j "Spike Deferred" 1.d3 g6 2.g4 * A00k "Van Kruijs" 1.e3 * A00l "Van Geet (Dunst) Opening" 1.Nc3 * A00l "Van Geet: 1...Nf6" 1.Nc3 Nf6 * A00l "Van Geet: 1...Nf6 2.Nf3" 1.Nc3 Nf6 2.Nf3 * A00l "Van Geet: Tuebingen Gambit" 1.Nc3 Nf6 2.g4 * A00l "Van Geet: 1...e5" 1.Nc3 e5 * A00l "Van Geet: 1...e5 2.Nf3" 1.Nc3 e5 2.Nf3 * A00l "Van Geet: Sicilian Variation" 1.Nc3 c5 * A00l "Van Geet: Sicilian Variation, 2.Nf3" 1.Nc3 c5 2.Nf3 * A00l "Van Geet: Sicilian Variation, 2.Nf3 Nc6" 1.Nc3 c5 2.Nf3 Nc6 * A00m "Van Geet: 1...d5" 1.Nc3 d5 * A00m "Van Geet: 1...d5 2.Nf3" 1.Nc3 d5 2.Nf3 * A00m "Van Geet: 1...d5 2.Nf3 Nf6" 1.Nc3 d5 2.Nf3 Nf6 * A00m "Van Geet: 1...d5 2.e4" 1.Nc3 d5 2.e4 * A00m "Van Geet: 1...d5 2.e4 d4" 1.Nc3 d5 2.e4 d4 * A00m "Van Geet: 1...d5 2.e4 dxe4" 1.Nc3 d5 2.e4 dxe4 * A00m "Van Geet: Hector Gambit" 1.Nc3 d5 2.e4 dxe4 3.Bc4 * A00n "Grob" 1.g4 * A00n "Grob: Alessi Gambit" 1.g4 f5 * A00n "Grob: Double Grob" 1.g4 g5 * A00n "Grob: 1...e5" 1.g4 e5 * A00o "Grob: 1...d5" 1.g4 d5 * A00o "Grob Gambit" 1.g4 d5 2.Bg2 * A00o "Grob Gambit: e5" 1.g4 d5 2.Bg2 e5 * A00o "Grob Gambit: Hurst Attack" 1.g4 d5 2.Bg2 e5 3.c4 * A00o "Grob Gambit: 2...c6" 1.g4 d5 2.Bg2 c6 * A00o "Grob Gambit: Spike Attack" 1.g4 d5 2.Bg2 c6 3.g5 * A00o "Grob Gambit Accepted" 1.g4 d5 2.Bg2 Bxg4 * A00o "Grob Gambit Accepted: Fritz Gambit" 1.g4 d5 2.Bg2 Bxg4 3.c4 * A00p "Polish (Sokolsky; Orang-Utan)" 1.b4 * A00p "Polish: Birmingham Gambit" 1.b4 c5 * A00p "Polish: 1...Nf6" 1.b4 Nf6 * A00p "Polish: 1...Nf6 2.Bb2" 1.b4 Nf6 2.Bb2 * A00p "Polish: 1...Nf6 2.Bb2 e6" 1.b4 Nf6 2.Bb2 e6 * A00p "Polish: 1...c6" 1.b4 c6 * A00p "Polish: Schuehler Gambit" 1.b4 c6 2.Bb2 a5 3.b5 * A00q "Polish: 1...d5" 1.b4 d5 * A00q "Polish: 1...d5 2.Bb2" 1.b4 d5 2.Bb2 * A00q "Polish: 1...d5 2.Bb2 Bf5" 1.b4 d5 2.Bb2 Bf5 * A00q "Polish: 1...d5 2.Bb2 Nf6" 1.b4 d5 2.Bb2 Nf6 * A00q "Polish: 1...d5 2.Bb2 Nf6 3.e3" 1.b4 d5 2.Bb2 Nf6 3.e3 * A00r "Polish: 1...e5" 1.b4 e5 * A00r "Polish: Bugayev Attack" 1.b4 e5 2.a3 * A00r "Polish: 1...e5 2.Bb2" 1.b4 e5 2.Bb2 * A00r "Polish: Wolfertz Gambit" 1.b4 e5 2.Bb2 c5 * A00r "Polish: 1...e5 2.Bb2 f6" 1.b4 e5 2.Bb2 f6 * A00r "Polish: Tartakower Gambit" 1.b4 e5 2.Bb2 f6 3.e4 Bxb4 * A00r "Polish: 1...e5 2.Bb2 d6" 1.b4 e5 2.Bb2 d6 * A00s "Polish: 2...Bxb4" 1.b4 e5 2.Bb2 Bxb4 * A00s "Polish: 2...Bxb4 3.Bxe5" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 * A00s "Polish: 2...Bxb4 3.Bxe5 Nf6" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 Nf6 * A00s "Polish: 2...Bxb4 3.Bxe5 Nf6 4.c4" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 Nf6 4.c4 * A00s "Polish: 2...Bxb4 3.Bxe5 Nf6 4.Nf3" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 Nf6 4.Nf3 * A00t "Benko Opening" 1.g3 * A00t "Benko Opening" 1.g3 Nf6 * A00t "Benko Opening: Symmetrical" 1.g3 g6 * A00u "Benko Opening" 1.g3 e5 * A00v "Benko Opening" 1.g3 d5 * A00v "Benko Opening" 1.g3 d5 2.Bg2 * A00v "Benko Opening" 1.g3 d5 2.Bg2 c6 * A00v "Benko Opening" 1.g3 d5 2.Bg2 e5 * A00v "Benko Opening" 1.g3 d5 2.Bg2 Nf6 * A01 "Nimzowitsch-Larsen Attack" 1.b3 * A01 "Nimzowitsch-Larsen: Polish Variation" 1.b3 b5 * A01 "Nimzowitsch-Larsen: Symmetrical" 1.b3 b6 * A01 "Nimzowitsch-Larsen: Dutch Variation" 1.b3 f5 * A01 "Nimzowitsch-Larsen: Ringelbach Gambit" 1.b3 f5 2.Bb2 e6 3.e4 * A01 "Nimzowitsch-Larsen: English Variation" 1.b3 c5 * A01 "Nimzowitsch-Larsen: Indian Variation" 1.b3 Nf6 * A01 "Nimzowitsch-Larsen: Indian Variation" 1.b3 Nf6 2.Bb2 g6 * A01 "Nimzowitsch-Larsen: Spike Variation" 1.b3 Nf6 2.Bb2 g6 3.g4 * A01 "Nimzowitsch-Larsen: 1...d5" 1.b3 d5 * A01 "Nimzowitsch-Larsen: 1...d5 2.Bb2" 1.b3 d5 2.Bb2 * A01 "Nimzowitsch-Larsen: 1...e5" 1.b3 e5 * A01 "Nimzowitsch-Larsen: 1...e5 2.Bb2" 1.b3 e5 2.Bb2 * A01 "Nimzowitsch-Larsen: 1...e5 2.Bb2 d6" 1.b3 e5 2.Bb2 d6 * A01 "Nimzowitsch-Larsen: 1...e5 2.Bb2 Nc6" 1.b3 e5 2.Bb2 Nc6 * A01 "Nimzowitsch-Larsen: Paschmann Gambit" 1.b3 e5 2.Bb2 Nc6 3.f4 * A01 "Nimzowitsch-Larsen: 1...e5 2.Bb2 Nc6 3.e3" 1.b3 e5 2.Bb2 Nc6 3.e3 * A02 "Bird" 1.f4 * A02 "Bird: Hobbs Gambit" 1.f4 g5 * A02 "Bird: Symmetrical" 1.f4 f5 * A02 "Bird: Swiss Gambit" 1.f4 f5 2.e4 * A02 "Bird: Swiss Gambit" 1.f4 f5 2.e4 fxe4 3.Nc3 Nf6 4.g4 * A02 "Bird: 1..d6" 1.f4 d6 * A02 "Bird: 1..g6" 1.f4 g6 * A02 "Bird: 1..g6" 1.f4 g6 2.Nf3 Bg7 3.e3 * A02 "Bird: 1..g6" 1.f4 g6 2.Nf3 Bg7 3.g3 * A02 "Bird: 1..c5" 1.f4 c5 * A02 "Bird: 1..c5 2.Nf3 Nc6" 1.f4 c5 2.Nf3 Nc6 * A02 "Bird: From Gambit" 1.f4 e5 * A02 "Bird: From Gambit Accepted" 1.f4 e5 2.fxe5 * A02 "Bird: From Gambit, Schlecter" 1.f4 e5 2.fxe5 Nc6 * A02 "Bird: From Gambit, 2...d6" 1.f4 e5 2.fxe5 d6 * A02 "Bird: From Gambit, 3.exd6" 1.f4 e5 2.fxe5 d6 3.exd6 * A02 "Bird: From Gambit, Langheld Gambit" 1.f4 e5 2.fxe5 d6 3.exd6 Nf6 * A02 "Bird: From Gambit, 3...Bxd6" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 * A02 "Bird: From Gambit, Lipke" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 Nh6 5.d4 * A02 "Bird: From Gambit, Lasker Variation" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 * A02 "Bird: From Gambit, Lasker, 5.d4" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 5.d4 * A02 "Bird: From Gambit, Lasker, Queenswap Line" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 5.d4 g4 6.Ne5 Bxe5 7.dxe5 Qxd1+ * A02 "Bird: From Gambit, Lasker, 5.g3" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 5.g3 * A02 "Bird: 1..Nf6" 1.f4 Nf6 * A02 "Bird: 1..Nf6 2.g3" 1.f4 Nf6 2.g3 * A02 "Bird: 1..Nf6 2.e3" 1.f4 Nf6 2.e3 * A02 "Bird: 1..Nf6 2.b3" 1.f4 Nf6 2.b3 * A02 "Bird: 1..Nf6 2.Nf3" 1.f4 Nf6 2.Nf3 * A02 "Bird: 1..Nf6 2.Nf3 d6" 1.f4 Nf6 2.Nf3 d6 * A02 "Bird: 1..Nf6 2.Nf3 c5" 1.f4 Nf6 2.Nf3 c5 * A02 "Bird: 1..Nf6 2.Nf3 g6" 1.f4 Nf6 2.Nf3 g6 * A02 "Bird: Batavo Polish Attack" 1.f4 Nf6 2.Nf3 g6 3.b4 * A02 "Bird: 1..Nf6 2.Nf3 g6 3.g3" 1.f4 Nf6 2.Nf3 g6 3.g3 * A02 "Bird: 1..Nf6 2.Nf3 g6 3.g3" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A02 "Bird: 1..Nf6 2.Nf3 g6 3.g3" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 d6 * A03 "Bird: 1...d5" 1.f4 d5 * A03 "Bird: Dudweiler Gambit" 1.f4 d5 2.g4 * A03 "Bird: Sturm Gambit" 1.f4 d5 2.c4 * A03 "Bird: Williams Gambit" 1.f4 d5 2.e4 * A03 "Bird: 1...d5 2.b3" 1.f4 d5 2.b3 * A03 "Bird: 1...d5 2.b3" 1.f4 d5 2.b3 Nf6 * A03 "Bird: 1...d5 2.b3" 1.f4 d5 2.b3 Nf6 3.Bb2 * A03 "Bird: 1...d5 2.g3" 1.f4 d5 2.g3 * A03 "Bird: 1...d5 2.g3" 1.f4 d5 2.g3 Nf6 * A03 "Bird: 1...d5 2.g3" 1.f4 d5 2.g3 Nf6 3.Bg2 * A03 "Bird: Lasker Variation" 1.f4 d5 2.e3 * A03 "Bird: Lasker Variation" 1.f4 d5 2.e3 Nf6 * A03 "Bird: 1...d5 2.Nf3" 1.f4 d5 2.Nf3 * A03 "Bird: 1...d5 2.Nf3 c5" 1.f4 d5 2.Nf3 c5 * A03 "Bird: Batavo Gambit" 1.f4 d5 2.Nf3 c5 3.e4 * A03 "Bird: 1...d5 2.Nf3 c5 3.e3" 1.f4 d5 2.Nf3 c5 3.e3 * A03 "Bird: 1...d5 2.Nf3 g6" 1.f4 d5 2.Nf3 g6 * A03 "Bird: 1...d5 2.Nf3 g6 3.e3" 1.f4 d5 2.Nf3 g6 3.e3 * A03 "Bird: 1...d5 2.Nf3 g6 3.g3" 1.f4 d5 2.Nf3 g6 3.g3 * A03 "Bird: 1...d5 2.Nf3 g6 3.g3" 1.f4 d5 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A03 "Bird: 1...d5 2.Nf3 Nf6" 1.f4 d5 2.Nf3 Nf6 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.b3" 1.f4 d5 2.Nf3 Nf6 3.b3 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3" 1.f4 d5 2.Nf3 Nf6 3.g3 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6: 5.d3" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.d3 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6: 5.O-O" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6: 5.O-O O-O" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6: 5.O-O O-O 6.d3" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O 6.d3 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6: 6.d3 c6" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O 6.d3 c6 * A03 "Bird: 1...d5 2.Nf3 Nf6 3.g3 g6: 6.d3 c5" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O 6.d3 c5 * A03 "Bird: Lasker Variation" 1.f4 d5 2.Nf3 Nf6 3.e3 * A03 "Bird: Lasker, 3...Bg4" 1.f4 d5 2.Nf3 Nf6 3.e3 Bg4 * A03 "Bird: Lasker, 3...e6" 1.f4 d5 2.Nf3 Nf6 3.e3 e6 * A03 "Bird: Lasker, 3...c5" 1.f4 d5 2.Nf3 Nf6 3.e3 c5 * A03 "Bird: Lasker, 3...c5 4.b3" 1.f4 d5 2.Nf3 Nf6 3.e3 c5 4.b3 * A03 "Bird: Lasker, 3...g6" 1.f4 d5 2.Nf3 Nf6 3.e3 g6 * A04 "Reti" 1.Nf3 * A04 "Reti: Herrstrom Gambit" 1.Nf3 g5 * A04 "Reti: 1...b6" 1.Nf3 b6 * A04 "Reti: 1...b5" 1.Nf3 b5 * A04 "Reti: 1...Nc6" 1.Nf3 Nc6 * A04 "Reti: 1...e6" 1.Nf3 e6 * A04 "Reti: 1...e6" 1.Nf3 e6 2.g3 * A04 "Reti: 1...g6" 1.Nf3 g6 * A04 "Reti: 1...g6" 1.Nf3 g6 2.g3 * A04 "Reti: 1...g6" 1.Nf3 g6 2.g3 Bg7 * A04 "Reti: 1...g6" 1.Nf3 g6 2.g3 Bg7 3.Bg2 * A04 "Reti: 1...f5" 1.Nf3 f5 * A04 "Reti: 1...f5 2.d3" 1.Nf3 f5 2.d3 * A04 "Reti: 1...f5 2.d3 Nf6" 1.Nf3 f5 2.d3 Nf6 * A04 "Reti: Lisitsin Deferred" 1.Nf3 f5 2.d3 Nf6 3.e4 * A04 "Reti: 1...f5 2.g3" 1.Nf3 f5 2.g3 * A04 "Reti: Lisitsin" 1.Nf3 f5 2.e4 * A04 "Reti: Lisitsin: 3.Ng5 Nf6" 1.Nf3 f5 2.e4 fxe4 3.Ng5 Nf6 * A04 "Reti: Lisitsin: 3.Ng5 Nf6" 1.Nf3 f5 2.e4 fxe4 3.Ng5 Nf6 4.d3 e5 * A04 "Reti: Lisitsin: 3.Ng5 Nf6" 1.Nf3 f5 2.e4 fxe4 3.Ng5 Nf6 4.d3 e3 * A04 "Reti: Lisitsin: 3.Ng5 e5" 1.Nf3 f5 2.e4 fxe4 3.Ng5 e5 * A04 "Reti: Lisitsin: 3.Ng5 d5" 1.Nf3 f5 2.e4 fxe4 3.Ng5 d5 * A04 "Reti: 1...d6" 1.Nf3 d6 * A04 "Reti: 1...c5" 1.Nf3 c5 * A04 "Reti: 1...c5, Nimzowitsch-Larsen" 1.Nf3 c5 2.b3 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 b6 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 b6 3.Bg2 Bb7 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 Nf6 6.e4 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 Nf6 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 d6 6.e4 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 e6 6.e4 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 Nc6 * A04 "Reti: 1...c5" 1.Nf3 c5 2.g3 Nc6 3.Bg2 * A05 "Reti: 1...Nf6" 1.Nf3 Nf6 * A05 "Reti: 1...Nf6 2.b3" 1.Nf3 Nf6 2.b3 * A05 "Reti: Santasiere's folly" 1.Nf3 Nf6 2.b4 * A05 "Reti: 1...Nf6 2.e3" 1.Nf3 Nf6 2.e3 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 c5 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 c5 3.Bg2 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 c5 3.Bg2 Nc6 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 b6 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 b6 3.Bg2 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 b6 3.Bg2 Bb7 * A05 "Reti: KIA, Spassky" 1.Nf3 Nf6 2.g3 b5 * A05 "Reti: KIA, Spassky" 1.Nf3 Nf6 2.g3 b5 3.Bg2 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 * A05 "Reti: KIA, Reti-Smyslov Variation" 1.Nf3 Nf6 2.g3 g6 3.b4 * A05 "Reti: KIA, Reti-Smyslov Variation" 1.Nf3 Nf6 2.g3 g6 3.b4 Bg7 5.Bb2 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 3.Bg2 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O 5.d3 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O 5.d3 c5 * A05 "Reti: KIA" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O 5.d3 d6 * A06 "Reti: 1...d5" 1.Nf3 d5 * A06 "Reti: Ampel Variation" 1.Nf3 d5 2.Rg1 * A06 "Reti: Old Indian Attack" 1.Nf3 d5 2.d3 * A06 "Reti: Old Indian Attack" 1.Nf3 d5 2.d3 Nf6 * A06 "Reti: 1...d5 2.e3" 1.Nf3 d5 2.e3 * A06 "Reti: Santasiere's folly" 1.Nf3 d5 2.b4 * A06 "Reti: Santasiere's folly" 1.Nf3 d5 2.b4 Nf6 * A06 "Reti: Tennison/Zukertort Gambit" 1.Nf3 d5 2.e4 * A06 "Reti: Tennison Gambit Accepted" 1.Nf3 d5 2.e4 dxe4 * A06 "Reti: Nimzowitsch-Larsen" 1.Nf3 d5 2.b3 * A06 "Reti: Nimzowitsch-Larsen, 2...c5" 1.Nf3 d5 2.b3 c5 * A06 "Reti: Nimzowitsch-Larsen, 2...Bg4" 1.Nf3 d5 2.b3 Bg4 * A06 "Reti: Nimzowitsch-Larsen, 2...Bg4" 1.Nf3 d5 2.b3 Bg4 3.Bb2 * A06 "Reti: Nimzowitsch-Larsen, 2...Bg4" 1.Nf3 d5 2.b3 Bg4 3.Bb2 Nd7 4.e3 * A06 "Reti: Nimzowitsch-Larsen, 2...Nf6" 1.Nf3 d5 2.b3 Nf6 * A06 "Reti: Nimzowitsch-Larsen, 2...Nf6" 1.Nf3 d5 2.b3 Nf6 3.Bb2 * A06 "Reti: Nimzowitsch-Larsen, 2...Nf6" 1.Nf3 d5 2.b3 Nf6 3.Bb2 e6 * A06 "Reti: Nimzowitsch-Larsen, 2...Nf6" 1.Nf3 d5 2.b3 Nf6 3.Bb2 e6 4.e3 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nc6 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 4.d3 Nf6 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 4.d3 Nf6 5.O-O * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 4.d3 Nf6 5.O-O Be7 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 c6 * A07 "Reti: KIA, Yugoslav" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 * A07 "Reti: KIA, Yugoslav" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 4.O-O * A07 "Reti: KIA, Yugoslav" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 4.O-O Nd7 * A07 "Reti: KIA, Yugoslav" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 4.O-O Nd7 5.d3 * A07 "Reti: KIA, Yugoslav" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 * A07 "Reti: KIA, Yugoslav" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 * A07 "Reti: KIA, Yugoslav, Main Line" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 * A07 "Reti: KIA, Yugoslav, Main Line, 6.Nbd2" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 6.Nbd2 * A07 "Reti: KIA, Yugoslav, Main Line, 6.Nbd2 e6" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 6.Nbd2 e6 * A07 "Reti: KIA, Yugoslav, Main Line, 6.Nbd2 e5" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 6.Nbd2 e5 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Bg4 * A07 "Reti: KIA, Keres Variation" 1.Nf3 d5 2.g3 Bg4 3.Bg2 Nd7 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nf6 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nf6 3.Bg2 * A07 "Reti: KIA, Neo-Gruenfeld" 1.Nf3 d5 2.g3 Nf6 3.Bg2 g6 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nf6 3.Bg2 Bf5 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nf6 3.Bg2 e6 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 * A07 "Reti: KIA, Petrosian Variation" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bf5 5.d3 e6 6.Nbd2 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 g6 * A07 "Reti: KIA" 1.Nf3 d5 2.g3 g6 3.Bg2 * A07 "Reti: KIA, Pachman" 1.Nf3 d5 2.g3 g6 3.Bg2 Bg7 4.O-O e5 5.d3 Ne7 * A08 "Reti: KIA, 2...c5" 1.Nf3 d5 2.g3 c5 * A08 "Reti: KIA, 2...c5" 1.Nf3 d5 2.g3 c5 3.Bg2 * A08 "Reti: KIA, 2...c5 + 3...g6" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 * A08 "Reti: KIA, 2...c5 + 3...g6" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 5.d3 * A08 "Reti: KIA, 2...c5 + 3...g6" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 5.d3 Nf6 * A08 "Reti: KIA, 2...c5 + 3...g6" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 5.d3 Nf6 6.Nbd2 O-O * A08 "Reti: KIA, 2...c5 + 3...g6" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Nc6 5.d3 Nf6 * A08 "Reti: KIA, 2...c5 3.Bg2 Nc6" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 * A08 "Reti: KIA, 2...c5, 3.Bg2 Nc6 4.O-O" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O * A08 "Reti: KIA, 2...c5, 3.Bg2 Nc6 4.d4" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.d4 * A08 "Reti: KIA, 2...c5 3.Bg2 Nf6" 1.Nf3 d5 2.g3 c5 3.Bg2 Nf6 * A08 "Reti: KIA, 2...c5 3.Bg2 Nf6 4.O-O" 1.Nf3 d5 2.g3 c5 3.Bg2 Nf6 4.O-O * A08 "Reti: KIA, 2...c5 3.Bg2 Nf6 4.O-O Nc6" 1.Nf3 d5 2.g3 c5 3.Bg2 Nf6 4.O-O Nc6 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nge7 6.Nbd2 b6 7.e4 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 b6 7.e4 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nge7 6.Nbd2 g6 7.e4 Bg7 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 g6 7.e4 Bg7 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 Be7 7.e4 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 Be7 7.e4 O-O 8.Re1 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Bd6 6.Nbd2 Nge7 7.e4 * A08 "Reti: KIA, French Variation" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Bd6 6.Nbd2 Nge7 7.e4 O-O 8.Re1 * A09a "Reti: 2.c4" 1.Nf3 d5 2.c4 * A09b "Reti: Advance Variation" 1.Nf3 d5 2.c4 d4 * A09c "Reti: Advance, Anglo-Polish Attack" 1.Nf3 d5 2.c4 d4 3.b4 * A09c "Reti: Advance, Anglo-Polish, 3...g6" 1.Nf3 d5 2.c4 d4 3.b4 g6 * A09d "Reti: Advance, 3.e3" 1.Nf3 d5 2.c4 d4 3.e3 * A09e "Reti: Advance, 3.e3 c5" 1.Nf3 d5 2.c4 d4 3.e3 c5 * A09f "Reti: Advance, 3.e3 Nc6" 1.Nf3 d5 2.c4 d4 3.e3 Nc6 * A09f "Reti: Advance, 3.e3 Nc6 4.exd4 Nxd4" 1.Nf3 d5 2.c4 d4 3.e3 Nc6 4.exd4 Nxd4 * A09g "Reti: Advance, 3.g3" 1.Nf3 d5 2.c4 d4 3.g3 * A09h "Reti: Advance, 3.g3 Nc6" 1.Nf3 d5 2.c4 d4 3.g3 Nc6 * A09h "Reti: Advance, 3.g3 Nc6 4.Bg2 e5" 1.Nf3 d5 2.c4 d4 3.g3 Nc6 4.Bg2 e5 * A09i "Reti: Advance, 3.g3 g6" 1.Nf3 d5 2.c4 d4 3.g3 g6 * A09i "Reti: Advance, 3.g3 g6 4.Bg2 Bg7" 1.Nf3 d5 2.c4 d4 3.g3 g6 4.Bg2 Bg7 * A09j "Reti: Advance, 3.g3 c5" 1.Nf3 d5 2.c4 d4 3.g3 c5 * A09j "Reti: Advance, 3.g3 c5 4.Bg2 Nc6" 1.Nf3 d5 2.c4 d4 3.g3 c5 4.Bg2 Nc6 * A09j "Reti: Advance, 3.g3 c5 4.Bg2 Nc6 5.d3 e5" 1.Nf3 d5 2.c4 d4 3.g3 c5 4.Bg2 Nc6 5.d3 e5 * A09k "Reti: Accepted" 1.Nf3 d5 2.c4 dxc4 * A09l "Reti: Accepted, 3.g3" 1.Nf3 d5 2.c4 dxc4 3.g3 * A09m "Reti: Accepted, 3.g3 e6" 1.Nf3 d5 2.c4 dxc4 3.g3 e6 * A09n "Reti: Accepted, 3.Qa4+" 1.Nf3 d5 2.c4 dxc4 3.Qa4+ * A09o "Reti: Accepted, 3.Na3" 1.Nf3 d5 2.c4 dxc4 3.Na3 * A09p "Reti: Accepted, 3.Na3 a6" 1.Nf3 d5 2.c4 dxc4 3.Na3 a6 * A09q "Reti: Accepted, 3.Na3 c5" 1.Nf3 d5 2.c4 dxc4 3.Na3 c5 * A09r "Reti: Accepted, 3.e3" 1.Nf3 d5 2.c4 dxc4 3.e3 * A09s "Reti: Accepted, Keres Variation" 1.Nf3 d5 2.c4 dxc4 3.e3 Be6 * A09t "Reti: Accepted, 3.e3 Nf6" 1.Nf3 d5 2.c4 dxc4 3.e3 Nf6 * A09u "Reti: Accepted, 3.e3 Nf6 4.Bxc4 e6" 1.Nf3 d5 2.c4 dxc4 3.e3 Nf6 4.Bxc4 e6 * A10 "English" 1.c4 * A10 "English: 1...g5" 1.c4 g5 * A10 "English: 1...g5 2.d4" 1.c4 g5 2.d4 * A10 "English: Myers Gambit" 1.c4 g5 2.d4 Bg7 * A10 "English: 1...Nc6" 1.c4 Nc6 * A10 "English: 1...Nc6 2.Nc3" 1.c4 Nc6 2.Nc3 * A10 "English: Jaenisch Gambit" 1.c4 b5 * A10 "English: Vector" 1.c4 d5 * A10 "English: 1...b6" 1.c4 b6 * A10 "English: 1...b6 2.Nf3" 1.c4 b6 2.Nf3 * A10 "English: 1...b6 2.Nf3 Bb7" 1.c4 b6 2.Nf3 Bb7 * A10 "English: 1...b6 2.Nc3" 1.c4 b6 2.Nc3 * A10 "English: 1...b6 2.Nc3 e6" 1.c4 b6 2.Nc3 e6 * A10 "English: 1...b6 2.Nc3 e6 3.e4" 1.c4 b6 2.Nc3 e6 3.e4 * A10 "English: 1...b6 2.Nc3 Bb7" 1.c4 b6 2.Nc3 Bb7 * A10 "English: 1...b6 2.Nc3 Bb7 3.e4" 1.c4 b6 2.Nc3 Bb7 3.e4 * A10 "English: 1...b6 2.Nc3 Bb7 3.e4 e6" 1.c4 b6 2.Nc3 Bb7 3.e4 e6 * A10 "English: 1...d6" 1.c4 d6 * A10 "English: 1...d6" 1.c4 d6 2.Nc3 * A10 "English: 1...d6" 1.c4 d6 2.Nf3 * A10 "English: 1...g6" 1.c4 g6 * A10 "English: 1...g6 2.g3" 1.c4 g6 2.g3 * A10 "English: 1...g6 2.Nc3" 1.c4 g6 2.Nc3 * A10 "English: 1...g6 2.Nc3 Bg7" 1.c4 g6 2.Nc3 Bg7 * A10 "English: 1...g6 2.Nc3 Bg7 3.g3" 1.c4 g6 2.Nc3 Bg7 3.g3 * A10 "English: 1...g6" 1.c4 g6 2.Nf3 * A10 "English: 1...g6" 1.c4 g6 2.Nf3 Bg7 * A10 "English: 1...g6 2.e4" 1.c4 g6 2.e4 * A10 "English: Adorjan Defence" 1.c4 g6 2.e4 e5 * A10 "English: Anglo-Dutch" 1.c4 f5 * A10 "English: Wade Gambit" 1.c4 f5 2.g4 * A10 "English: Anglo-Dutch" 1.c4 f5 2.g3 * A10 "English: Anglo-Dutch" 1.c4 f5 2.g3 Nf6 * A10 "English: Anglo-Dutch" 1.c4 f5 2.g3 Nf6 3.Bg2 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nc3 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nc3 Nf6 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nc3 Nf6 3.g3 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nc3 Nf6 3.g3 g6 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 e6 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.Nc3 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 c6 5.O-O d5 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 5.O-O * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 5.O-O O-O * A10 "English: Anglo-Dutch" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 5.O-O O-O 6.Nc3 * A11 "English: Caro-Kann Defence" 1.c4 c6 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bf5 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bf5 5.O-O * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bf5 5.O-O e6 6.d3 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bg4 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bg4 5.O-O * A11 "English: Caro-Kann Defence" 1.c4 c6 2.Nc3 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.Nc3 d5 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.Nf3 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.Nf3 Nf6 * A11 "English: Caro-Kann Defence" 1.c4 c6 2.Nf3 d5 * A11 "English: Caro-Kann Defence, 3.g3" 1.c4 c6 2.Nf3 d5 3.g3 * A11 "English: Caro-Kann Defence, 3.g3 Bg4" 1.c4 c6 2.Nf3 d5 3.g3 Bg4 * A11 "English: Caro-Kann Defence, 3.g3 Bg4" 1.c4 c6 2.Nf3 d5 3.g3 Bg4 4.Bg2 * A11 "English: Caro-Kann Defence, 3.e3" 1.c4 c6 2.Nf3 d5 3.e3 * A11 "English: Caro-Kann Defence, 3.e3 Nf6" 1.c4 c6 2.Nf3 d5 3.e3 Nf6 * A11 "English: Caro-Kann Defence, 3.e3 Nf6 4.Nc3" 1.c4 c6 2.Nf3 d5 3.e3 Nf6 4.Nc3 * A12 "English: Caro-Kann Defence, 3.b3" 1.c4 c6 2.Nf3 d5 3.b3 * A12 "English: Torre Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 * A12 "English: Torre Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 5.Bg2 * A12 "English: Torre Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 5.Bg2 e6 * A12 "English: Torre Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 5.Bg2 e6 6.Bb2 * A12 "English: London Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 * A12 "English: London Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 5.Bg2 * A12 "English: London Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 5.Bg2 e6 * A12 "English: London Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 5.Bg2 e6 6.Bb2 * A12 "English: Caro-Kann Defence, 3.b3" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 * A12 "English: Bled Variation" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 g6 * A12 "English: Bled Variation" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 g6 5.e3 Bg7 * A12 "English: New York/London Defence" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 Bf5 * A12 "English: Capablanca" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 Bg4 * A12 "English: Bogoljubow Variation" 1.c4 c6 2.Nf3 d5 3.b3 Bg4 * A13a "English: 1...e6" 1.c4 e6 * A13b "English: 1...e6 2.g3" 1.c4 e6 2.g3 * A13c "English: 1...e6 2.g3 d5" 1.c4 e6 2.g3 d5 * A13d "English: 1...e6 2.g3 d5" 1.c4 e6 2.g3 d5 3.Bg2 * A13e "English: 1...e6 2.Nc3" 1.c4 e6 2.Nc3 * A13f "English: 1...e6 2.Nc3 Bb4" 1.c4 e6 2.Nc3 Bb4 * A13g "English: 1...e6 2.Nc3 d5" 1.c4 e6 2.Nc3 d5 * A13h "English: 1...e6 2.Nf3" 1.c4 e6 2.Nf3 * A13i "English: 1...e6 2.Nf3 Nf6" 1.c4 e6 2.Nf3 Nf6 * A13j "English: 1...e6 2.Nf3 Nf6 3.g3" 1.c4 e6 2.Nf3 Nf6 3.g3 * A13k "English: Romanishin Gambit" 1.c4 e6 2.Nf3 Nf6 3.g3 a6 4.Bg2 b5 * A13l "English: 1...e6 2.Nf3 d5" 1.c4 e6 2.Nf3 d5 * A13m "English: Agincourt Variation" 1.c4 e6 2.Nf3 d5 3.b3 * A13n "English: Wimpey System" 1.c4 e6 2.Nf3 d5 3.b3 Nf6 4.Bb2 c5 5.e3 * A13n "English: Wimpey System" 1.c4 e6 2.Nf3 d5 3.b3 Nf6 4.Bb2 c5 5.e3 Nc6 * A13o "English: Agincourt Variation" 1.c4 e6 2.Nf3 d5 3.g3 * A13p "English: Kurajica Defence" 1.c4 e6 2.Nf3 d5 3.g3 c6 * A13q "English: Kurajica Defence" 1.c4 e6 2.Nf3 d5 3.g3 c6 4.Qc2 * A13r "English: Neo-Catalan" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 * A13s "English: Neo-Catalan" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 * A13s "English: Neo-Catalan, 4...c6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c6 * A13s "English: Neo-Catalan, 4...c6 5.b3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c6 5.b3 * A13t "English: Neo-Catalan, 4...c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c5 * A13t "English: Neo-Catalan, 4...c5 5.O-O" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c5 5.O-O * A13u "English: Neo-Catalan Accepted" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 * A13v "English: Neo-Catalan Accepted, 5.Qa4+" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ * A13v "English: Neo-Catalan Accepted, 5.Qa4+ Nbd7" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 * A13v "English: Neo-Catalan Accepted, 5.Qa4+ Nbd7 6.O-O" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.O-O * A13w "English: Neo-Catalan Accepted, 5.Qa4+ Nbd7 6.Qxc4" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 * A13w "English: Neo-Catalan Accepted, 5.Qa4+ Nbd7 6.Qxc4 a6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 * A13w "English: Neo-Catalan Accepted, 5.Qa4+ Nbd7 6.Qxc4 c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 * A14 "English: Neo-Catalan Declined" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 * A14 "English: Neo-Catalan Declined" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O * A14 "English: Neo-Catalan Declined, 5...c6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O c6 * A14 "English: Neo-Catalan Declined, 5...c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O c5 * A14 "English: Neo-Catalan Declined, 5...O-O" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3 b6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 b6 * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3 b6 7.Bb2 Bb7" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 b6 7.Bb2 Bb7 * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3 b6 7.Bb2 Bb7 8.e3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 b6 7.Bb2 Bb7 8.e3 * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3 c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3 c5 7.Bb2" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 7.Bb2 * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3 c5 7.Bb2 Nc6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 7.Bb2 Nc6 * A14 "English: Neo-Catalan Declined, 5...O-O 6.b3 c5 7.Bb2 Nc6 8.e3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 7.Bb2 Nc6 8.e3 * A15 "English: Anglo-Indian" 1.c4 Nf6 * A15 "English: Anglo-Indian, Polish" 1.c4 Nf6 2.b4 * A15 "English: Anglo-Indian, 2.g3" 1.c4 Nf6 2.g3 * A15 "English: Anglo-Indian, 2.g3 e6" 1.c4 Nf6 2.g3 e6 * A15 "English: Anglo-Indian, 2.g3 e6" 1.c4 Nf6 2.g3 e6 3.Bg2 * A15 "English: Anglo-Indian, 2.g3 g6" 1.c4 Nf6 2.g3 g6 * A15 "English: Anglo-Indian, 2.g3 g6" 1.c4 Nf6 2.g3 g6 3.Bg2 Bg7 * A15 "English: Anglo-Indian, 2.Nf3" 1.c4 Nf6 2.Nf3 * A15 "English: Anglo-Indian, 2.Nf3 g6" 1.c4 Nf6 2.Nf3 g6 * A15 "English: Anglo-Indian, 2.Nf3 g6" 1.c4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A15 "English: Anglo-Indian, 2.Nf3 g6" 1.c4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O * A16 "English: Anglo-Indian, 2.Nc3" 1.c4 Nf6 2.Nc3 * A16 "English: Anglo-Indian, 2.Nc3 Nc6" 1.c4 Nf6 2.Nc3 Nc6 * A16 "English: Anglo-Indian, 2.Nc3 c6" 1.c4 Nf6 2.Nc3 c6 * A16 "English: Anglo-Indian, 2.Nc3 c6 3.e4" 1.c4 Nf6 2.Nc3 c6 3.e4 * A16 "English: Anglo-Indian, 2.Nc3 c6 3.e4 d5" 1.c4 Nf6 2.Nc3 c6 3.e4 d5 * A16 "English: Anglo-Indian, 2.Nc3 c6 3.e4 e5" 1.c4 Nf6 2.Nc3 c6 3.e4 e5 * A16 "English: Anglo-Indian, 2.Nc3 d6" 1.c4 Nf6 2.Nc3 d6 * A16 "English: Anglo-Indian, 2.Nc3 g6" 1.c4 Nf6 2.Nc3 g6 * A16 "English: Anglo-Indian, 2.Nc3 g6 3.e4" 1.c4 Nf6 2.Nc3 g6 3.e4 * A16 "English: Anglo-Indian, 2.Nc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 * A16 "English: Anglo-Indian, 2.Nc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 * A16 "English: Anglo-Indian, 2.Nc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 * A16 "English: Anglo-Indian, 2.Nc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O * A16 "English: Anglo-Indian, 2.Nc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O 5.e4 * A16 "English: Anglo-Indian, 2.Nc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O 5.Nf3 * A16 "English: Anglo-Indian, 2.Nc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O 5.Nf3 d6 6.O-O * A16 "English: Anglo-Gruenfeld" 1.c4 Nf6 2.Nc3 d5 * A16 "English: Anglo-Gruenfeld" 1.c4 Nf6 2.Nc3 d5 3.Nf3 * A16 "English: Anglo-Gruenfeld" 1.c4 Nf6 2.Nc3 d5 3.Nf3 g6 * A16 "English: Anglo-Gruenfeld" 1.c4 Nf6 2.Nc3 d5 3.Nf3 g6 4.Qa4+ * A16 "English: Anglo-Gruenfeld" 1.c4 Nf6 2.Nc3 d5 3.Nf3 g6 4.g3 * A16 "English: Anglo-Gruenfeld, 3.cxd5" 1.c4 Nf6 2.Nc3 d5 3.cxd5 * A16 "English: Anglo-Gruenfeld, Smyslov Variation" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 * A16 "English: Anglo-Gruenfeld, Smyslov Variation" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 6.bxc3 * A16 "English: Anglo-Gruenfeld, Smyslov Variation" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 6.bxc3 Bg7 * A16 "English: Anglo-Gruenfeld, Smyslov, 7.Rb1" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 6.bxc3 Bg7 7.Rb1 * A16 "English: Anglo-Gruenfeld, Czech Variation" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nb6 * A16 "English: Anglo-Gruenfeld, 4.Nf3" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 * A16 "English: Anglo-Gruenfeld, 4.Nf3 g6" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 * A16 "English: Anglo-Gruenfeld, 4.Nf3 g6 5.g3" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.g3 * A16 "English: Anglo-Gruenfeld, 4.Nf3 g6 5.g3" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.g3 Bg7 * A16 "English: Anglo-Gruenfeld, Korchnoi Variation" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.g3 Bg7 6.Bg2 e5 * A16 "English: Anglo-Gruenfeld, Andersson-Boeoek Variation" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.e4 * A16 "English: Anglo-Gruenfeld, Andersson-Boeoek, Queenswap" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.e4 Nxc3 6.dxc3 Qxd1+ 7.Kxd1 * A16 "English: Anglo-Gruenfeld, 4.Nf3 g6 5.Qa4+" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.Qa4+ * A17 "English: Anglo-Indian, 2.Nc3 e6" 1.c4 Nf6 2.Nc3 e6 * A17 "English: Anglo-Indian, 2.Nc3 e6 3.g3" 1.c4 Nf6 2.Nc3 e6 3.g3 * A17 "English: Anglo-Indian, 2.Nc3 e6 3.Nf3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 * A17 "English: Anglo-Indian, 2.Nc3 e6 3.Nf3 d5" 1.c4 Nf6 2.Nc3 e6 3.Nf3 d5 * A17 "English: Anglo-Queen's Indian" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 * A17 "English: Anglo-Queen's Indian, 4.e4" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.e4 * A17 "English: Anglo-Queen's Indian, Romanishin" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.e4 Bb7 5.Bd3 * A17 "English: Anglo-Queen's Indian, 4.g3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 * A17 "English: Anglo-Queen's Indian, 4.g3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 * A17 "English: Anglo-Queen's Indian, 4.g3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O * A17 "English: Anglo-Queen's Indian, 4.g3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Re1 * A17 "English: Nimzo-English" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 * A17 "English: Nimzo-English, 4.g3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 4.g3 * A17 "English: Nimzo-English, 4.Qc2" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 4.Qc2 * A17 "English: Nimzo-English, 4.Qc2 O-O" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 4.Qc2 O-O * A18 "English: Mikenas" 1.c4 Nf6 2.Nc3 e6 3.e4 * A18 "English: Mikenas, Kevitz Defence" 1.c4 Nf6 2.Nc3 e6 3.e4 Nc6 * A18 "English: Mikenas, 3...d6" 1.c4 Nf6 2.Nc3 e6 3.e4 d6 * A18 "English: Mikenas, 3...d6 4.d4 Be7" 1.c4 Nf6 2.Nc3 e6 3.e4 d6 4.d4 Be7 * A18 "English: Mikenas, French Variation" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 * A18 "English: Mikenas, French, 4.cxd5" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.cxd5 * A18 "English: Mikenas, Flohr Variation" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 * A18 "English: Mikenas, Flohr, 4...Ne4" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 Ne4 * A18 "English: Mikenas, Flohr, 4...d4" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 * A18 "English: Mikenas, Flohr, 7.Nf3" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.Nf3 * A18 "English: Mikenas, Flohr, 7.d4" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.d4 * A18 "English: Mikenas, Flohr, 7.d4 c5" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.d4 c5 * A18 "English: Mikenas, Flohr, 7.d4 e5" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.d4 e5 * A19 "English: Mikenas, Sicilian Variation" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 * A19 "English: Mikenas, Sicilian, 4.e5" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 * A19 "English: Mikenas, Sicilian, 4.e5 Ng8" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 * A19 "English: Mikenas, Nei Gambit" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.d4 * A19 "English: Mikenas, 5.Nf3" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 * A19 "English: Mikenas, 5.Nf3 Nc6" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 Nc6 * A19 "English: Mikenas, 5.Nf3 Nc6 6.d4" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 Nc6 6.d4 * A19 "English: Mikenas, 6.d4 cxd4 7.Nxd4 Nxe5" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 Nc6 6.d4 cxd4 7.Nxd4 Nxe5 * A20 "English: King's (1...e5)" 1.c4 e5 * A20 "English: King's, 2.d3" 1.c4 e5 2.d3 * A20 "English: King's, 2.e3" 1.c4 e5 2.e3 * A20 "English: King's, 2.g3" 1.c4 e5 2.g3 * A20 "English: King's, 2.g3 f5" 1.c4 e5 2.g3 f5 * A20 "English: King's, 2.g3 g6" 1.c4 e5 2.g3 g6 * A20 "English: King's, 2.g3 g6" 1.c4 e5 2.g3 g6 3.Bg2 * A20 "English: King's, 2.g3 g6" 1.c4 e5 2.g3 g6 3.Bg2 Bg7 * A20 "English: King's, 2.g3 c6" 1.c4 e5 2.g3 c6 * A20 "English: King's, 2.g3 c6 3.d4" 1.c4 e5 2.g3 c6 3.d4 * A20 "English: King's, 2.g3 d6" 1.c4 e5 2.g3 d6 * A20 "English: King's, 2.g3 d6" 1.c4 e5 2.g3 d6 3.Bg2 * A20 "English: King's, 2.g3 Nc6" 1.c4 e5 2.g3 Nc6 * A20 "English: King's, 2.g3 Nc6 3.Bg2" 1.c4 e5 2.g3 Nc6 3.Bg2 * A20 "English: King's, 2.g3 Nf6" 1.c4 e5 2.g3 Nf6 * A20 "English: King's, 2.g3 Nf6 3.Bg2" 1.c4 e5 2.g3 Nf6 3.Bg2 * A20 "English: King's, 2.g3 Nf6 3.Bg2 Bc5" 1.c4 e5 2.g3 Nf6 3.Bg2 Bc5 * A20 "English: King's, 2.g3 Nf6 3.Bg2 Nc6" 1.c4 e5 2.g3 Nf6 3.Bg2 Nc6 * A20 "English: King's, 2.g3 Nf6 3.Bg2 c6" 1.c4 e5 2.g3 Nf6 3.Bg2 c6 * A20 "English: King's, 2.g3 Nf6 3.Bg2 d5" 1.c4 e5 2.g3 Nf6 3.Bg2 d5 * A20 "English: King's, Nimzowitsch" 1.c4 e5 2.Nf3 * A20 "English: King's, Nimzowitsch, 2...Nc6" 1.c4 e5 2.Nf3 Nc6 * A20 "English: King's, Nimzowitsch, Flohr Variation" 1.c4 e5 2.Nf3 e4 * A21 "English: King's, 2.Nc3" 1.c4 e5 2.Nc3 * A21 "English: King's, 2.Nc3 f5" 1.c4 e5 2.Nc3 f5 * A21 "English: King's, 2.Nc3 f5" 1.c4 e5 2.Nc3 f5 3.g3 Nf6 * A21 "English: King's, 2.Nc3 f5" 1.c4 e5 2.Nc3 f5 3.g3 Nf6 4.Bg2 * A21 "English: King's, 2.Nc3 g6" 1.c4 e5 2.Nc3 g6 * A21 "English: King's, 2.Nc3 g6" 1.c4 e5 2.Nc3 g6 3.g3 Bg7 4.Bg2 * A21 "English: King's, 2.Nc3 d6" 1.c4 e5 2.Nc3 d6 * A21 "English: King's, Keres Variation" 1.c4 e5 2.Nc3 d6 3.g3 c6 * A21 "English: King's, Keres Variation" 1.c4 e5 2.Nc3 d6 3.g3 c6 4.Bg2 * A21 "English: King's, 2.Nc3 d6 3.d4" 1.c4 e5 2.Nc3 d6 3.d4 * A21 "English: King's, 2.Nc3 d6 3.g3" 1.c4 e5 2.Nc3 d6 3.g3 * A21 "English: King's, 2.Nc3 d6 3.Nf3" 1.c4 e5 2.Nc3 d6 3.Nf3 * A21 "English: King's, 2.Nc3 d6 3.Nf3 g6" 1.c4 e5 2.Nc3 d6 3.Nf3 g6 * A21 "English: Lukin Variation" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 * A21 "English: Lukin, 4.d4 e4" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 * A21 "English: Lukin, 5.Nd2" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Nd2 * A21 "English: Lukin, 5.Nd2 Nf6 6.e3" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Nd2 Nf6 6.e3 * A21 "English: Lukin, 5.Ng5" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 * A21 "English: Lukin, 5.Ng5 Nf6" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 Nf6 * A21 "English: Lukin, 5.Ng5 Be7" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 Be7 * A21 "English: Lukin, 5.Ng5 c6" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 c6 * A21 "English: Smyslov Defence" 1.c4 e5 2.Nc3 d6 3.Nf3 Bg4 * A21 "English: Kramnik-Shirov Counterattack" 1.c4 e5 2.Nc3 Bb4 * A21 "English: Kramnik-Shirov, 3.g3" 1.c4 e5 2.Nc3 Bb4 3.g3 * A21 "English: Kramnik-Shirov, 3.g3 Bxc3" 1.c4 e5 2.Nc3 Bb4 3.g3 Bxc3 * A21 "English: Kramnik-Shirov, 3.g3 Bxc3 4.bxc3" 1.c4 e5 2.Nc3 Bb4 3.g3 Bxc3 4.bxc3 * A21 "English: Kramnik-Shirov, 3.Nd5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 * A21 "English: Kramnik-Shirov, 3.Nd5 a5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 a5 * A21 "English: Kramnik-Shirov, 3.Nd5 Ba5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Ba5 * A21 "English: Kramnik-Shirov, 3.Nd5 Bc5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Bc5 * A21 "English: Kramnik-Shirov, 3.Nd5 Be7" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Be7 * A21 "English: Kramnik-Shirov, 3.Nd5 Be7 4.d4" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Be7 4.d4 * A22 "English: King's, 2.Nc3 Nf6" 1.c4 e5 2.Nc3 Nf6 * A22 "English: King's, 2.Nc3 Nf6 3.e4" 1.c4 e5 2.Nc3 Nf6 3.e4 * A22 "English: King's, 2.Nc3 Nf6 3.e3" 1.c4 e5 2.Nc3 Nf6 3.e3 * A22 "English: King's, 2.Nc3 Nf6 3.e3 Bb4" 1.c4 e5 2.Nc3 Nf6 3.e3 Bb4 * A22 "English: King's, 2.Nc3 Nf6 3.Nf3" 1.c4 e5 2.Nc3 Nf6 3.Nf3 * A22 "English: King's, 2.Nc3 Nf6 3.Nf3 d6" 1.c4 e5 2.Nc3 Nf6 3.Nf3 d6 * A22 "English: King's, 2.Nc3 Nf6 3.Nf3 e4" 1.c4 e5 2.Nc3 Nf6 3.Nf3 e4 * A22 "English: Bellon Gambit" 1.c4 e5 2.Nc3 Nf6 3.Nf3 e4 4.Ng5 b5 * A22 "English: Bremen System" 1.c4 e5 2.Nc3 Nf6 3.g3 * A22 "English: Bremen, 3...Bc5" 1.c4 e5 2.Nc3 Nf6 3.g3 Bc5 * A22 "English: Bremen, Reverse Dragon" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 * A22 "English: Bremen, Reverse Dragon, 4.cxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 * A22 "English: Bremen, Reverse Dragon, 4.cxd5 Nxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 * A22 "English: Bremen, Reverse Dragon, 4.cxd5 Nxd5 5.Bg2" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 * A22 "English: Bremen, Reverse Dragon, 4.cxd5 Nxd5 5.Bg2 Nb6" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 Nb6 * A22 "English: Bremen, Smyslov System" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 * A22 "English: Bremen, Smyslov, 4.Bg2" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 * A22 "English: Bremen, Smyslov, 4.Bg2 Bxc3" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 Bxc3 * A22 "English: Bremen, Smyslov, 4.Bg2 O-O" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 O-O * A22 "English: Bremen, Smyslov, 4.Bg2 O-O 5.e4" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 O-O 5.e4 * A23 "English: Bremen, Keres System" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 * A23 "English: Bremen, Keres, 4.Nf3" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 * A23 "English: Bremen, Keres, 4.Nf3 d6" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 d6 * A23 "English: Bremen, Keres, 4.Nf3 d6" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 d6 5.Bg2 * A23 "English: Bremen, Keres, 4.Nf3 e4" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 e4 * A23 "English: Bremen, Keres, 4.Bg2" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 * A23 "English: Bremen, Keres, 4.Bg2 d5" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 d5 * A23 "English: Bremen, Keres, 4.Bg2 d5 5.cxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 d5 5.cxd5 * A23 "English: Bremen, Keres, 4.Bg2 d5 5.cxd5 cxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 d5 5.cxd5 cxd5 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.d3 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e3 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 O-O * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nf3 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 O-O * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 O-O 7.d3 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.O-O O-O * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.d3 O-O 7.O-O * A24 "English: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.d3 O-O 7.O-O c6 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.e3 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.e3 Nf6 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 Nf6 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 Nf6 5.e3 g6 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 Nf6 5.d3 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bc5 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bc5 5.e3 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bb4 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bb4 5.Nd5 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 d6 4.Bg2 * A25 "English: Closed, Troeger Defence" 1.c4 e5 2.Nc3 Nc6 3.g3 d6 4.Bg2 Be6 * A25 "English: Closed, Troeger, 5.d3" 1.c4 e5 2.Nc3 Nc6 3.g3 d6 4.Bg2 Be6 5.d3 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 * A25 "English: Closed" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 * A25 "English: Closed, 5.e3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 * A25 "English: Closed, Taimanov Variation" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 Nh6 * A25 "English: Closed, Hort Variation" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 Be6 * A25 "English: Closed, Hort, 7.d3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 Be6 7.d3 * A25 "English: Closed, 5.Rb1" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Rb1 * A25 "English: Closed, 5.Rb1, Taimanov Variation" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Rb1 Nh6 * A25 "English: Closed, 5.Rb1" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Rb1 a5 * A25 "English: Closed, 5.e4" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 * A25 "English: Closed, 5.d3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 * A25 "English: Closed, 5.d3 Nge7" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 Nge7 * A26 "English: Closed, 5.d3 d6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 * A26 "English: Closed, 5.d3 d6 6.e3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e3 * A26 "English: Closed, 5.d3 d6 6.Rb1" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Rb1 * A26 "English: Closed, 5.d3 d6 6.Rb1 f5" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Rb1 f5 * A26 "English: Closed, 5.d3 d6 6.Rb1 a5" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Rb1 a5 * A26 "English: Closed, 5.d3 d6 6.Nf3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 * A26 "English: Closed, 5.d3 d6 6.Nf3 Nf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 * A26 "English: Closed, 5.d3 d6 6.Nf3 Nf6 7.O-O" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O * A26 "English: Closed, 5.d3 d6 6.Nf3 Nf6 7.O-O O-O" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O * A26 "English: Closed, 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 * A26 "English: Closed, 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 * A26 "English: Closed, 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 9.a3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 9.a3 * A26 "English: Closed, 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 9.a3 h6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 9.a3 h6 * A26 "English: Botvinnik System" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 * A26 "English: Botvinnik System, 6...Nf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 * A26 "English: Botvinnik System, 6...Nf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nf3 * A26 "English: Botvinnik System, 6...Nf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nf3 O-O 8.O-O * A26 "English: Botvinnik System, 6...Nf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nge2 * A26 "English: Botvinnik System, 6...Nf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nge2 O-O 8.O-O * A26 "English: Botvinnik System, 6...Nge7" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nge7 * A26 "English: Botvinnik System, 6...Nge7 7.Nge2" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nge7 7.Nge2 * A27 "English: Three Knights" 1.c4 e5 2.Nc3 Nc6 3.Nf3 * A27 "English: Three Knights, 3...Bb4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Bb4 * A27 "English: Three Knights, 3...d6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 d6 * A27 "English: Three Knights, 3...f5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 f5 * A27 "English: Three Knights, 3...f5 4.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 f5 4.d4 * A27 "English: Three Knights, 3...f5 4.d4 e4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 f5 4.d4 e4 * A27 "English: Three Knights, 3...g6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 * A27 "English: Three Knights, 3...g6 4.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 4.d4 * A27 "English: Three Knights, 3...g6 4.d4 exd4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 4.d4 exd4 * A27 "English: Three Knights, 3...g6 4.d4 exd4 5.Nxd4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 4.d4 exd4 5.Nxd4 * A28 "English: Four Knights" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 * A28 "English: Four Knights, Nimzowitsch Variation" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e4 * A28 "English: Four Knights, Marini Variation" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.a3 * A28 "English: Four Knights, Capablanca Variation" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d3 * A28 "English: Four Knights, 4.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 * A28 "English: Four Knights, Nenarokov Variation" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Bg5 h6 7.Bh4 Bxc3+ 8.bxc3 Ne5 * A28 "English: Four Knights, Bradley Beach Variation" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 e4 * A28 "English: Four Knights, 4.e3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 * A28 "English: Four Knights, 4.e3 Bb4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 * A28 "English: Four Knights, 4.e3 Bb4 5.Qc2" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 5.Qc2 * A28 "English: Four Knights, Stean Variation" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 5.Qc2 O-O 6.Nd5 Re8 7.Qf5 * A28 "English: Four Knights, Romanishin Variation" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 5.Qc2 Bxc3 * A29 "English: Four Knights, 4.g3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 * A29 "English: Four Knights, 4.g3 g6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 g6 * A29 "English: Four Knights, 4.g3 g6 5.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 g6 5.d4 * A29 "English: Four Knights, 4.g3 d5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 * A29 "English: Four Knights, 4.g3 d5 5.cxd5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Be6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Be6 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.Rb1" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.Rb1 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.a3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.a3 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.d3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.d3 * A29 "English: Four Knights, 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.d3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.d3 O-O * A29 "English: Four Knights, 4.g3 Bc5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 * A29 "English: Four Knights, 4.g3 Bc5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 * A29 "English: Four Knights, 4.g3 Bc5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 d6 6.O-O * A29 "English: Four Knights, 4.g3 Bc5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 d6 6.O-O O-O * A29 "English: Four Knights, 4.g3 Bc5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 d6 6.O-O O-O 7.d3 * A29 "English: Four Knights, 4.g3 Bb4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 * A29 "English: Four Knights, 4.g3 Bb4 5.Nd5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Nd5 * A29 "English: Four Knights, 4.g3 Bb4 5.Bg2" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Bg2 * A29 "English: Four Knights, Main Line 6.O-O" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Bg2 O-O 6.O-O * A29 "English: Four Knights, Main Line 6.O-O e4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Bg2 O-O 6.O-O e4 * A30a "English: Symmetrical" 1.c4 c5 * A30a "English: Symmetrical, 2.b3" 1.c4 c5 2.b3 * A30a "English: Symmetrical, 2.g3" 1.c4 c5 2.g3 * A30a "English: Symmetrical, 2.g3 g6" 1.c4 c5 2.g3 g6 * A30b "English: Symmetrical, 2.Nf3" 1.c4 c5 2.Nf3 * A30b "English: Symmetrical, 2.Nf3 b6" 1.c4 c5 2.Nf3 b6 * A30b "English: Symmetrical, 2.Nf3 b6 3.g3" 1.c4 c5 2.Nf3 b6 3.g3 * A30b "English: Symmetrical, 2.Nf3 b6 3.g3 Bb7 4.Bg2" 1.c4 c5 2.Nf3 b6 3.g3 Bb7 4.Bg2 * A30b "English: Symmetrical, 2.Nf3 g6" 1.c4 c5 2.Nf3 g6 * A30b "English: Symmetrical, 2.Nf3 Nc6" 1.c4 c5 2.Nf3 Nc6 * A30c "English: Symmetrical, 2.Nf3 Nf6" 1.c4 c5 2.Nf3 Nf6 * A30d "English: Symmetrical, 2.Nf3 Nf6 3.g3" 1.c4 c5 2.Nf3 Nf6 3.g3 * A30e "English: Symmetrical, b6 System" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 * A30e "English: Symmetrical, b6 System" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 * A30e "English: Symmetrical, b6 System" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.Nc3 * A30e "English: Symmetrical, b6 System" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O * A30f "English: Symmetrical, Double Fianchetto" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 * A30f "English: Symmetrical, Double Fianchetto" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.Nc3 Bg7 * A30g "English: Symmetrical, Mutual Double Fianchetto" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 * A30g "English: Symmetrical, Mutual Double Fianchetto" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 Bg7 7.Bb2 O-O * A30g "English: Symmetrical, Mutual Double Fianchetto" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 Bg7 7.Bb2 O-O 8.Nc3 * A30g "English: Symmetrical, Mutual Double Fianchetto with ...d5" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 Bg7 7.Bb2 O-O 8.Nc3 d5 * A30h "English: Symmetrical, Hedgehog System" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 * A30h "English: Symmetrical, Hedgehog System" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 * A30i "English: Symmetrical, Hedgehog, 6...a6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 a6 * A30j "English: Symmetrical, Hedgehog, 6...d6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 d6 * A30k "English: Symmetrical, Hedgehog, 6...d6 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 d6 7.b3 * A30l "English: Symmetrical, Hedgehog, 6...d6 7.d4" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 d6 7.d4 * A30m "English: Symmetrical, Hedgehog System" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 * A30n "English: Symmetrical, Hedgehog, 7.Re1" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.Re1 * A30o "English: Symmetrical, Hedgehog, 7.Re1 d5" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.Re1 d5 * A30p "English: Symmetrical, Hedgehog, 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.b3 * A30p "English: Symmetrical, Hedgehog, 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.b3 O-O * A30p "English: Symmetrical, Hedgehog, 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.b3 O-O 8.Bb2 d6 * A30q "English: Symmetrical, Hedgehog, 7.d4" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 * A30r "English: Symmetrical, Hedgehog, 8.Qxd4" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 * A30s "English: Symmetrical, Hedgehog, 8.Qxd4 O-O" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 O-O * A30s "English: Symmetrical, Hedgehog, 8.Qxd4 O-O" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 O-O 9.Rd1 Nc6 * A30t "English: Symmetrical, Hedgehog, 8.Qxd4 Nc6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 Nc6 * A30u "English: Symmetrical, Hedgehog, 8.Qxd4 d6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 * A30v "English: Symmetrical, Hedgehog, 9.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.b3 * A30v "English: Symmetrical, Hedgehog, 9.b3 Nbd7" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.b3 Nbd7 * A30v "English: Symmetrical, Hedgehog, 9.b3 Nbd7 10.Nb5" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.b3 Nbd7 10.Nb5 * A30w "English: Symmetrical, Hedgehog, 9.Rd1" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 * A30x "English: Symmetrical, Hedgehog, Flexible Formation" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 * A30y "English: Symmetrical, Hedgehog, Flexible Formation" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 11.e4 * A30y "English: Symmetrical, Hedgehog, Flexible Formation, 11.e4 Qc7" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 11.e4 Qc7 * A30y "English: Symmetrical, Hedgehog, Flexible Formation, 11.e4 O-O" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 11.e4 O-O * A31 "English: Symmetrical, Two Knights" 1.c4 c5 2.Nf3 Nf6 3.d4 * A31 "English: Symmetrical, Two Knights, 3...a6" 1.c4 c5 2.Nf3 Nf6 3.d4 a6 * A31 "English: Symmetrical, Two Knights, 3...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 g6 * A31 "English: Symmetrical, Two Knights, 3...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 g6 4.d5 * A31 "English: Symmetrical, Two Knights, 3...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 g6 4.Nc3 * A31 "English: Symmetrical, Two Knights" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 * A31 "English: Symmetrical, Two Knights" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 * A31 "English: Symmetrical, Two Knights, 4...b6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 b6 * A31 "English: Symmetrical, Two Knights, 4...b6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 b6 5.Nc3 Bb7 * A31 "English: Symmetrical, Two Knights, 4...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 * A31 "English: Symmetrical, Two Knights, 4...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 * A31 "English: Symmetrical, Two Knights, 4...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 * # Should this be A31? It doesn't transpose to a B3 Sicilian until ...Nc6. A31 "English: Symmetrical, Two Knights, 4...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.e4 * A31 "English: Symmetrical, Two Knights, 4...Nc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 Nc6 * A31 "English: Symmetrical, Two Knights, 4...Nc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 * A31 "English: Symmetrical, Two Knights, 4...Nc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 g6 * A31 "English: Symmetrical, Two Knights, 4...e5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e5 * A31 "English: Symmetrical, Two Knights, 4...e5 5.Nb5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 * A32 "English: Symmetrical, Two Knights, 4...e6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 * A32 "English: Symmetrical, Two Knights, 5.e3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.e3 * A32 "English: Symmetrical, Two Knights, 5.g3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 * A32 "English: Symmetrical, Two Knights, 5.g3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 a6 * A32 "English: Symmetrical, Two Knights, 5.g3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 a6 6.Bg2 * A32 "English: Symmetrical, Two Knights, 5.g3 Qb6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Qb6 * A32 "English: Symmetrical, Two Knights, 5.g3 Qb6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Qb6 6.Bg2 * A32 "English: Symmetrical, Two Knights, 5.g3 Qc7" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Qc7 * A32 "English: Symmetrical, Two Knights, 5.g3 Nc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Nc6 * A32 "English: Symmetrical, Two Knights, 5.g3 Nc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Nc6 6.Bg2 * A32 "English: Symmetrical, Two Knights, 5.g3 Bb4+" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Bb4+ * A32 "English: Symmetrical, Two Knights, 5.g3 d5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 d5 * A32 "English: Symmetrical, Two Knights, 5.g3 d5 6.Bg2" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 d5 6.Bg2 * A32 "English: Symmetrical, Two Knights, 5.g3 d5 6.Bg2 e5 7.Nf3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 d5 6.Bg2 e5 7.Nf3 * A32 "English: Symmetrical, Two Knights, 5.Nc3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 * A32 "English: Symmetrical, Two Knights, 5.Nc3 d5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 d5 * A32 "English: Symmetrical, Two Knights, 5.Nc3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 a6 * A32 "English: Symmetrical, Two Knights, 5.Nc3 a6 6.g3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 a6 6.g3 * A32 "English: Symmetrical, Two Knights, 5.Nc3 Bb4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 * A32 "English: Symmetrical, Two Knights, 5.Nc3 Bb4 6.Qb3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Qb3 * A32 "English: Symmetrical, Two Knights, 5.Nc3 Bb4 6.Nb5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Nb5 * A32 "English: Symmetrical, Two Knights, 5.Nc3 Bb4 6.Bd2" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Bd2 * A32 "English: Symmetrical, Two Knights, 5.Nc3 Bb4 6.Bd2 Nc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Bd2 Nc6 * A33a "English: Symmetrical, Two Knights, 5.Nc3 Nc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 * A33b "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.Bf4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Bf4 * A33c "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.Bg5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Bg5 * A33d "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.e3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.e3 * A33e "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.a3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.a3 * A33f "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.a3 Bc5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.a3 Bc5 * A33g "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.Ndb5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 * A33h "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.Ndb5 Bb4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 Bb4 * A33i "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.Ndb5 d5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 d5 * A33j "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.Ndb5 d5 Queenswap" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 d5 7.Bf4 e5 8.cxd5 exf4 9.dxc6 bxc6 10.Qxd8+ Kxd8 * A33k "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.g3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 * A33l "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.g3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 a6 * A33m "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.g3 Bb4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Bb4 * A33n "English: Symmetrical, Two Knights, 5.Nc3 Nc6 6.g3 Bc5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Bc5 * A33o "English: Symmetrical, Geller Variation" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Qb6 * A33p "English: Symmetrical, Geller, 7.Nb3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Qb6 7.Nb3 * A33q "English: Symmetrical, Geller, 7.Nb3 Ne5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Qb6 7.Nb3 Ne5 * A34 "English: Symmetrical" 1.c4 c5 2.Nc3 * A34 "English: Symmetrical, 2...b6" 1.c4 c5 2.Nc3 b6 * A34 "English: Symmetrical, 2...b6" 1.c4 c5 2.Nc3 b6 3.Nf3 * A34 "English: Symmetrical, 2...b6" 1.c4 c5 2.Nc3 b6 3.Nf3 Bb7 * A34 "English: Symmetrical, 2...g6" 1.c4 c5 2.Nc3 g6 * A34 "English: Symmetrical, 2...g6" 1.c4 c5 2.Nc3 g6 3.Nf3 * A34 "English: Symmetrical, 2...g6" 1.c4 c5 2.Nc3 g6 3.g3 * A34 "English: Symmetrical, 2...g6" 1.c4 c5 2.Nc3 g6 3.g3 Bg7 4.Bg2 * A34 "English: Symmetrical, 2...Nf6" 1.c4 c5 2.Nc3 Nf6 * A34 "English: Symmetrical, 2...Nf6" 1.c4 c5 2.Nc3 Nf6 3.g3 d5 * A34 "English: Symmetrical, 2...Nf6 3.g3" 1.c4 c5 2.Nc3 Nf6 3.g3 * A34 "English: Symmetrical, 2...Nf6 3.g3" 1.c4 c5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 * A34 "English: Symmetrical, Rubinstein System" 1.c4 c5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 Nc7 * A34 "English: Symmetrical, 3 Knights" 1.c4 c5 2.Nc3 Nf6 3.Nf3 * A34 "English: Symmetrical, 3 Knights, 3...b6" 1.c4 c5 2.Nc3 Nf6 3.Nf3 b6 * A34 "English: Symmetrical, 3 Knights, 3...e6" 1.c4 c5 2.Nc3 Nf6 3.Nf3 e6 * A34 "English: Symmetrical, 3 Knights, 3...e6 4.g3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 e6 4.g3 * A34 "English: Symmetrical, 3 Knights, 3...g6" 1.c4 c5 2.Nc3 Nf6 3.Nf3 g6 * A34 "English: Symmetrical, 3 Knights" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 * A34 "English: Symmetrical, 3 Knights, Exchange" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 * A34 "English: Symmetrical, 3 Knights, 5.g3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.g3 * A34 "English: Symmetrical, 3 Knights, 5.e4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 * A34 "English: Symmetrical, 3 Knights, 5.e4 Nxc3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nxc3 * A34 "English: Symmetrical, 3 Knights, Queenswap" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.dxc3 Qxd1+ 7.Kxd1 * A34 "English: Symmetrical, 3 Knights, 5.e4 Nb4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nb4 * A34 "English: Symmetrical, 3 Knights, 5.e4 Nb4 6.Bb5+" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nb4 6.Bb5+ * A34 "English: Symmetrical, 3 Knights, 5.e4 Nb4 6.Bc4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nb4 6.Bc4 * A34 "English: Symmetrical, 3 Knights, 5.d4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.d4 * A34 "English: Symmetrical, 3 Knights, 5.d4 cxd4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.d4 cxd4 * A34 "English: Symmetrical, 3 Knights, 5.d4 Nxc3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.d4 Nxc3 * A35a "English: Symmetrical" 1.c4 c5 2.Nc3 Nc6 * A35b "English: Symmetrical, 2.Nc3 Nc6 3.e3" 1.c4 c5 2.Nc3 Nc6 3.e3 * A35c "English: Symmetrical, 2.Nc3 Nc6 3.Nf3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 * A35d "English: Symmetrical, 2.Nc3 Nc6 3.Nf3 g6" 1.c4 c5 2.Nc3 Nc6 3.Nf3 g6 * A35e "English: Symmetrical, 2.Nc3 Nc6 3.Nf3 g6 4.e3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 g6 4.e3 * A35f "English: Symmetrical, 2.Nc3 Nc6 3.Nf3 g6 4.e3 Bg7" 1.c4 c5 2.Nc3 Nc6 3.Nf3 g6 4.e3 Bg7 * A35g "English: Symmetrical, Four Knights" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 * A35g "English: Symmetrical, Four Knights, 4.d4" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 * A35h "English: Symmetrical, Four Knights, 4.e3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 * A35i "English: Symmetrical, Four Knights, 4.e3 e5" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 e5 * A35j "English: Symmetrical, Four Knights, 4.g3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 * A35k "English: Symmetrical, Four Knights, 4.g3 d5" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 * A35l "English: Symmetrical, Four Knights, 4.g3 d5 5.cxd5" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 * A36a "English: Symmetrical, 3.g3" 1.c4 c5 2.Nc3 Nc6 3.g3 * A36b "English: Symmetrical, 3.g3 Nf6" 1.c4 c5 2.Nc3 Nc6 3.g3 Nf6 * A36c "English: Symmetrical, 3.g3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 * A36c "English: Symmetrical, 3.g3 e6 4.Nf3" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 4.Nf3 * A36c "English: Symmetrical, Keres-Parma System" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 4.Nf3 Nf6 * A36d "English: Symmetrical, Keres-Parma, Main Line Exchange" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 4.Nf3 Nf6 5.Bg2 Be7 6.O-O d5 7.cxd5 Nxd5 * A36e "English: Symmetrical, 3.g3 g6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 * A36e "English: Symmetrical, 3.g3 g6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 * A36e "English: Symmetrical, 3.g3 g6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 * A36f "English: Symmetrical, 5.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 * A36g "English: Symmetrical, 5.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.a3 * A36h "English: Symmetrical, 5.a3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.a3 e6 * A36i "English: Symmetrical, 5.a3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.a3 d6 * A36j "English: Symmetrical, 5.b3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.b3 * A36k "English: Symmetrical, 5.e3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 * A36l "English: Symmetrical, 5.e3 e5 (Botvinnik Reversed)" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e5 * A36m "English: Symmetrical, 5.e3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e6 * A36m "English: Symmetrical, 5.e3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e6 6.Nge2 * A36m "English: Symmetrical, 5.e3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e6 6.Nge2 Nge7 * A36n "English: Symmetrical, Botvinnik System" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 * A36o "English: Symmetrical, Botvinnik, 5...Nf6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 Nf6 * A36o "English: Symmetrical, Botvinnik, 5...Nf6 6.Nge2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 Nf6 6.Nge2 * A36p "English: Symmetrical, Botvinnik, 5...e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 * A36p "English: Symmetrical, Botvinnik, 5...e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 6.Nge2 Nge7 * A36q "English: Symmetrical, Botvinnik, 5...e6, 8.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 6.Nge2 Nge7 7.O-O O-O 8.d3 * A36r "English: Symmetrical, Botvinnik, 5...e6, 8.d3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 6.Nge2 Nge7 7.O-O O-O 8.d3 d6 * A36s "English: Symmetrical, Botvinnik, 5...d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 * A36t "English: Symmetrical, Botvinnik, 5...d6 6.Nge2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 * A36u "English: Symmetrical, Botvinnik, 5...d6 6.Nge2 Nf6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 * A36v "English: Symmetrical, Botvinnik System, 5...d6, 7.O-O O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O * A36w "English: Symmetrical, Botvinnik System, 5...d6, 8.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 * A36x "English: Symmetrical, Botvinnik System, 5...d6, 8.d3 Rb8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 Rb8 * A36y "English: Symmetrical, Botvinnik System, 5...d6, 8.d3 Ne8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 Ne8 * A36z "English: Symmetrical, Botvinnik System, 5...d6, 8.d3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 a6 * A37a "English: Symmetrical, 5.Nf3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 * A37b "English: Symmetrical, 5.Nf3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 a6 * A37c "English: Symmetrical, 5.Nf3 Nh6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nh6 * A37d "English: Symmetrical, 5.Nf3 Nh6 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nh6 6.O-O * A37e "English: Symmetrical, 5.Nf3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 * A37f "English: Symmetrical, 5.Nf3 d6 6.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.d3 * A37g "English: Symmetrical, 5.Nf3 d6 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.O-O * A37h "English: Symmetrical, 5.Nf3 d6 6.O-O Nh6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.O-O Nh6 * A37i "English: Symmetrical, 5.Nf3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 * A37j "English: Symmetrical, 5.Nf3 e6 6.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.d3 * A37k "English: Symmetrical, 5.Nf3 e6 6.e3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.e3 * A37l "English: Symmetrical, 5.Nf3 e6 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O * A37l "English: Symmetrical, 5.Nf3 e6 6.O-O Nge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 * A37m "English: Symmetrical, 5.Nf3 e6 6.O-O Nge7 7.e3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.e3 * A37n "English: Symmetrical, 5.Nf3 e6 6.O-O Nge7 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.d3 * A37o "English: Symmetrical, 5.Nf3 e6 6.O-O Nge7 7.d3 O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.d3 O-O * A37p "English: Symmetrical, 5.Nf3 e6 6.O-O Nge7 7.d3 O-O 8.Bd2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.d3 O-O 8.Bd2 * A37q "English: Symmetrical, 5.Nf3 e5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 * A37r "English: Symmetrical, 5.Nf3 e5 6.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.a3 * A37s "English: Symmetrical, 5.Nf3 e5 6.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.d3 * A37t "English: Symmetrical, 5.Nf3 e5 6.d3 Nge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.d3 Nge7 * A37u "English: Symmetrical, 5.Nf3 e5 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O * A37u "English: Symmetrical, 5.Nf3 e5 6.O-O d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 * A37v "English: Symmetrical, 5.Nf3 e5 6.O-O d6 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 7.d3 * A37v "English: Symmetrical, 5.Nf3 e5 6.O-O d6 7.d3 Nge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 7.d3 Nge7 * A37w "English: Symmetrical, 5.Nf3 e5 6.O-O d6 7.d3 Nge7 8.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 7.d3 Nge7 8.a3 * A37x "English: Symmetrical, 5.Nf3 e5 6.O-O Nge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 * A37y "English: Symmetrical, 5.Nf3 e5 6.O-O Nge7 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 7.d3 * A37y "English: Symmetrical, 5.Nf3 e5 6.O-O Nge7 7.d3 O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 7.d3 O-O * A37y "English: Symmetrical, 5.Nf3 e5 6.O-O Nge7 7.d3 O-O 8.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 7.d3 O-O 8.a3 * A38a "English: Symmetrical, Main Line" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 * A38b "English: Symmetrical, Main Line, 6.d4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.d4 * A38c "English: Symmetrical, Main Line, 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O * A38d "English: Symmetrical, Main Line, 6.O-O d5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O d5 * A38e "English: Symmetrical, Main Line, 6.O-O d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O d6 * A38f "English: Symmetrical, Main Line, 6.O-O O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O * A38g "English: Symmetrical, Main Line, 7.Rb1" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.Rb1 * A38h "English: Symmetrical, Main Line, 7.b3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.b3 * A38i "English: Symmetrical, Main Line, 7.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.a3 * A38j "English: Symmetrical, Main Line, 7.a3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.a3 d6 * A38k "English: Symmetrical, Main Line, 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 * A38l "English: Symmetrical, Main Line, 7.d3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 a6 * A38m "English: Symmetrical, Main Line, 7.d3 d5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d5 * A38n "English: Symmetrical, Main Line, 7.d3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 * A38o "English: Symmetrical, Main Line, 7.d3 d6 8.Rb1" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.Rb1 * A38p "English: Symmetrical, Main Line, 7.d3 d6 8.Bd2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.Bd2 * A38q "English: Symmetrical, Main Line, 7.d3 d6 8.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.a3 * A38r "English: Symmetrical, Main Line, 7.d3 d6 8.a3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.a3 a6 * A39a "English: Symmetrical, Main Line 7.d4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 * A39b "English: Symmetrical, Main Line 7.d4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 * A39c "English: Symmetrical, Main Line 7.d4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 * A39d "English: Symmetrical, Main Line 7.d4, 8...Qa5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Qa5 * A39e "English: Symmetrical, Main Line 7.d4, 8...Qb6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Qb6 * A39e "English: Symmetrical, Main Line 7.d4, 8...Qb6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Qb6 9.Nc2 * A39f "English: Symmetrical, Main Line 7.d4, 8...a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 a6 * A39g "English: Symmetrical, Main Line 7.d4, 8...d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 d6 * A39h "English: Symmetrical, Main Line 7.d4, 8...Ng4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Ng4 * A39i "English: Symmetrical, Main Line 7.d4, 8...Ng4 9.e3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Ng4 9.e3 d6 * A39j "English: Symmetrical, Main Line 7.d4, 8...Nxd4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 * A39j "English: Symmetrical, Main Line 7.d4, 9.Qxd4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 * A39k "English: Symmetrical, Main Line 7.d4, 9...d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 * A39l "English: Symmetrical, Main Line 7.d4, 10.Qd2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd2 * A39m "English: Symmetrical, Main Line 7.d4, 10.Qd3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 * A39n "English: Symmetrical, Main Line 7.d4, 10.Qd3 Bf5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 Bf5 * A39o "English: Symmetrical, Main Line 7.d4, 10.Qd3 Rb8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 Rb8 * A39p "English: Symmetrical, Main Line 7.d4, 10.Qd3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 * A39q "English: Symmetrical, Main Line 7.d4, 10.Qd3 a6 11.Bd2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 11.Bd2 * A39q "English: Symmetrical, Main Line 7.d4, 10.Qd3 a6 11.Bd2 Rb8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 11.Bd2 Rb8 * A39r "English: Symmetrical, Main Line 7.d4, 10.Qd3 a6 11.Bd2 Rb8 12.Rac1" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 11.Bd2 Rb8 12.Rac1 * A40a "Queen's Pawn Game" 1.d4 * A40b "Queen's Pawn: 1...c6" 1.d4 c6 * A40b "Queen's Pawn: 1...c6 2.Nf3" 1.d4 c6 2.Nf3 * A40b "Queen's Pawn: 1...c6 2.c4" 1.d4 c6 2.c4 * A40b "Queen's Pawn: Jadoul" 1.d4 c6 2.c4 b5 * A40c "Queen's Pawn: Polish Defence" 1.d4 b5 * A40c "Queen's Pawn: Polish Defence" 1.d4 b5 2.e4 * A40c "Queen's Pawn: Polish Defence" 1.d4 b5 2.e4 Bb7 * A40c "Queen's Pawn: Polish Defence, Spassky Gambit" 1.d4 b5 2.e4 Bb7 3.Bxb5 * A40d "Queen's Pawn: English Defence" 1.d4 b6 * A40d "Queen's Pawn: English Defence, 2.c4" 1.d4 b6 2.c4 * A40d "Queen's Pawn: English Defence, 2.c4 Bb7" 1.d4 b6 2.c4 Bb7 * A40e "Queen's Pawn: English Defence, 2.c4 e6" 1.d4 b6 2.c4 e6 * A40f "Queen's Pawn: English Defence, 3.a3" 1.d4 b6 2.c4 e6 3.a3 * A40g "Queen's Pawn: English Defence, 3.e4" 1.d4 b6 2.c4 e6 3.e4 * A40g "Queen's Pawn: English Defence, Polli Gambit" 1.d4 b6 2.c4 e6 3.e4 Bb7 4.f3 f5 * A40g "Queen's Pawn: English Defence, Hartlaub Gambit" 1.d4 b6 2.c4 Bb7 3.Nc3 e6 4.e4 f5 * A40h "Queen's Pawn: English Defence, 3.Nc3" 1.d4 b6 2.c4 e6 3.Nc3 * A40i "Englund Gambit" 1.d4 e5 * A40i "Englund Gambit Accepted" 1.d4 e5 2.dxe5 * A40i "Englund Gambit: Soller" 1.d4 e5 2.dxe5 f6 * A40i "Englund Gambit: Hartlaub" 1.d4 e5 2.dxe5 d6 * A40i "Englund Gambit: 2.dxe5 Nc6" 1.d4 e5 2.dxe5 Nc6 * A40i "Englund Gambit: 2.dxe5 Nc6 3.Nf3" 1.d4 e5 2.dxe5 Nc6 3.Nf3 * A40i "Englund Gambit: Soller Deferred" 1.d4 e5 2.dxe5 Nc6 3.Nf3 f6 * A40i "Englund Gambit: Zilbermints" 1.d4 e5 2.dxe5 Nc6 3.Nf3 Nge7 * A40i "Englund Gambit: 2.dxe5 Nc6 3.Nf3 Qe7" 1.d4 e5 2.dxe5 Nc6 3.Nf3 Qe7 * A40j "Queen's Pawn: Bogoljubow-Miles Defence" 1.d4 Nc6 * A40j "Queen's Pawn: Bogoljubow-Miles, 2.Bg5" 1.d4 Nc6 2.Bg5 * A40j "Queen's Pawn: Bogoljubow-Miles, 2.d5" 1.d4 Nc6 2.d5 * A40k "Queen's Pawn: Bogoljubow-Miles, 2.c4" 1.d4 Nc6 2.c4 * A40k "Queen's Pawn: Bogoljubow-Miles, Pozarek Gambit" 1.d4 Nc6 2.c4 e5 3.dxe5 Nxe5 4.Nc3 Nxc4 * A40l "Queen's Pawn: Bogoljubow-Miles, 2.Nf3" 1.d4 Nc6 2.Nf3 * A40m "Queen's Pawn: 1...e6" 1.d4 e6 * A40n "Queen's Pawn: 1...e6 2.Nf3" 1.d4 e6 2.Nf3 * A40n "Queen's Pawn: 1...e6 2.Nf3 c5" 1.d4 e6 2.Nf3 c5 * A40o "Queen's Pawn: 1...e6 2.c4" 1.d4 e6 2.c4 * A40p "Queen's Pawn: Keres Defence" 1.d4 e6 2.c4 Bb4+ * A40q "Queen's Pawn: Keres Defence, 3.Bd2" 1.d4 e6 2.c4 Bb4+ 3.Bd2 * A40q "Queen's Pawn: Keres Defence, 3.Bd2 Bxd2+" 1.d4 e6 2.c4 Bb4+ 3.Bd2 Bxd2+ * A40q "Queen's Pawn: Keres Defence, Kangaroo Variation" 1.d4 e6 2.c4 Bb4+ 3.Bd2 Bxd2+ 4.Qxd2 b6 5.Nc3 Bb7 6.e4 Nh6 * A40r "Queen's Pawn: Keres Defence, 3.Bd2 a5" 1.d4 e6 2.c4 Bb4+ 3.Bd2 a5 * A40s "Queen's Pawn: Modern" 1.d4 g6 * A40t "Queen's Pawn: Modern" 1.d4 g6 2.Nf3 * A40u "Queen's Pawn: Modern" 1.d4 g6 2.c4 * A40u "Queen's Pawn: Modern" 1.d4 g6 2.c4 Bg7 * A40v "Queen's Pawn: Modern" 1.d4 g6 2.c4 Bg7 3.e4 * A40w "Queen's Pawn: Modern" 1.d4 g6 2.c4 Bg7 3.Nf3 * A40w "Queen's Pawn: Modern" 1.d4 g6 2.c4 Bg7 3.Nf3 c5 * A40x "Queen's Pawn: Modern" 1.d4 g6 2.c4 Bg7 3.Nc3 * A40x "Queen's Pawn: Modern" 1.d4 g6 2.c4 Bg7 3.Nc3 c5 * A40x "Queen's Pawn: Modern" 1.d4 g6 2.c4 Bg7 3.Nc3 c5 4.d5 * A40y "Queen's Pawn: Modern, Beefeater Defence" 1.d4 g6 2.c4 Bg7 3.Nc3 c5 4.d5 Bxc3+ 5.bxc3 f5 * A41a "Neo-Old Indian" 1.d4 d6 * A41b "Neo-Old Indian: 2.Bg5" 1.d4 d6 2.Bg5 * A41c "Neo-Old Indian: 2.g3" 1.d4 d6 2.g3 * A41d "Neo-Old Indian: 2.Nf3" 1.d4 d6 2.Nf3 * A41e "Neo-Old Indian / Modern" 1.d4 d6 2.Nf3 g6 * A41e "Neo-Old Indian / Modern: 3.Bf4" 1.d4 d6 2.Nf3 g6 3.Bf4 * A41e "Neo-Old Indian / Modern: 3.Bf4" 1.d4 d6 2.Nf3 g6 3.Bf4 Bg7 * A41e "Neo-Old Indian / Modern: 3.g3" 1.d4 d6 2.Nf3 g6 3.g3 * A41e "Neo-Old Indian / Modern: 3.g3" 1.d4 d6 2.Nf3 g6 3.g3 Bg7 * A41e "Neo-Old Indian / Modern: 3.g3" 1.d4 d6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A41f "Neo-Old Indian: Wade Defence" 1.d4 d6 2.Nf3 Bg4 * A41f "Neo-Old Indian: Wade Defence, 3.e3" 1.d4 d6 2.Nf3 Bg4 3.e3 * A41f "Neo-Old Indian: Wade Defence, 3.e3 Nd7" 1.d4 d6 2.Nf3 Bg4 3.e3 Nd7 * A41f "Neo-Old Indian: Wade Defence, 3.e3 Nf6" 1.d4 d6 2.Nf3 Bg4 3.e3 Nf6 * A41g "Neo-Old Indian: Wade Defence, 3.c4" 1.d4 d6 2.Nf3 Bg4 3.c4 * A41g "Neo-Old Indian: Wade Defence, 3.c4 e5" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 * A41g "Neo-Old Indian: Wade Defence, 3.c4 e5 4.Nc3" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.Nc3 * A41g "Neo-Old Indian: Wade Defence, 3.c4 e5 4.Nc3 Nc6" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.Nc3 Nc6 * A41g "Neo-Old Indian: Wade Defence, 3.c4 e5 4.dxe5" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.dxe5 * A41g "Neo-Old Indian: Wade Defence, 3.c4 e5 4.dxe5 Nc6 Gambit" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.dxe5 Nc6 * A41h "Neo-Old Indian: Wade Defence, 3.c4 Nd7" 1.d4 d6 2.Nf3 Bg4 3.c4 Nd7 * A41h "Neo-Old Indian: Wade Defence, 3.c4 Nd7 4.Nc3" 1.d4 d6 2.Nf3 Bg4 3.c4 Nd7 4.Nc3 * A41h "Neo-Old Indian: Wade Defence, 3.c4 Nd7 4.Nc3 e5" 1.d4 d6 2.Nf3 Bg4 3.c4 Nd7 4.Nc3 e5 * A41i "Neo-Old Indian: Wade Defence, 3.c4 Bxf3" 1.d4 d6 2.Nf3 Bg4 3.c4 Bxf3 * A41j "Neo-Old Indian: Wade Defence, 3.e4" 1.d4 d6 2.Nf3 Bg4 3.e4 * A41k "Neo-Old Indian: Wade Defence, 3.e4 Nf6" 1.d4 d6 2.Nf3 Bg4 3.e4 Nf6 * A41l "Neo-Old Indian: 2.c4" 1.d4 d6 2.c4 * A41m "Neo-Old Indian: 2.c4 e5" 1.d4 d6 2.c4 e5 * A41n "Neo-Old Indian: 2.c4 e5 3.d5" 1.d4 d6 2.c4 e5 3.d5 * A41o "Neo-Old Indian: 2.c4 e5 3.dxe5" 1.d4 d6 2.c4 e5 3.dxe5 * A41o "Neo-Old Indian: Queenswap" 1.d4 d6 2.c4 e5 3.dxe5 dxe5 4.Qxd8+ Kxd8 * A41p "Neo-Old Indian: 2.c4 e5 3.Nf3" 1.d4 d6 2.c4 e5 3.Nf3 * A41p "Neo-Old Indian: 2.c4 e5 3.Nf3 e4" 1.d4 d6 2.c4 e5 3.Nf3 e4 * A41q "Neo-Old Indian: Modern" 1.d4 d6 2.c4 g6 * A41q "Neo-Old Indian: Modern, 3.e4" 1.d4 d6 2.c4 g6 3.e4 * A41q "Neo-Old Indian: Modern, 3.e4 Bg7" 1.d4 d6 2.c4 g6 3.e4 Bg7 * A41r "Neo-Old Indian: Modern, 3.Nf3" 1.d4 d6 2.c4 g6 3.Nf3 * A41r "Neo-Old Indian: Modern, 3.Nf3 Bg7" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 * A41r "Neo-Old Indian: Modern, 3.Nf3 Bg7 4.g3" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 4.g3 * A41s "Neo-Old Indian: Modern, 3.Nf3 Bg7 4.e4" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 4.e4 * A41s "Neo-Old Indian: Modern, Rossolimo Variation" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 4.e4 Bg4 * A41t "Neo-Old Indian: Modern, 3.Nc3" 1.d4 d6 2.c4 g6 3.Nc3 * A41t "Neo-Old Indian: Modern, 3.Nc3 Bg7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 * A41u "Neo-Old Indian: Modern, 3.Nc3 Bg7 4.Nf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 * A41v "Neo-Old Indian: Modern, 3.Nc3 Bg7 4.Nf3 Bf4" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 Bg4 * A41w "Neo-Old Indian: Modern, 3.Nc3 Bg7 4.Nf3 Bf4 5.e3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 Bg4 5.e3 * A41w "Neo-Old Indian: Modern, 3.Nc3 Bg7 4.Nf3 Bf4 5.e3 Nc6" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 Bg4 5.e3 Nc6 * A42a "Modern: Averbakh" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 * A42b "Modern: Averbakh, Randspringer Variation" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 f5 * A42b "Modern: Averbakh, Randspringer, 5.Nf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 f5 5.Nf3 * A42c "Modern: c4 Pterodactyl" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c5 * A42c "Modern: c4 Pterodactyl" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c5 5.Nf3 * A42c "Modern: c4 Pterodactyl" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c5 5.Nf3 Qa5 * A42d "Modern: Averbakh, 4...c6" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c6 * A42d "Modern: Averbakh, 4...c6 5.Be3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c6 5.Be3 * A42e "Modern: Averbakh, 4...c6 5.Nf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c6 5.Nf3 * A42f "Modern: Averbakh, 4...Nd7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nd7 * A42f "Modern: Averbakh, 4...Nd7 5.Nf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nd7 5.Nf3 * A42g "Modern: Averbakh, Kotov Variation" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 * A42g "Modern: Averbakh, Kotov, 5.Nf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Nf3 * A42g "Modern: Averbakh, Kotov, 5.Nge2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Nge2 * A42h "Modern: Averbakh, Kotov, 5.d5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.d5 * A42i "Modern: Averbakh, Kotov, 5.Be3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 * A42j "Modern: Averbakh, Kotov, 5.Be3 e5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 * A42j "Modern: Averbakh, Kotov, 5.Be3 e5 6.Nge2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.Nge2 * A42k "Modern: Averbakh, Kotov, 5.Be3 e5 6.d5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 * A42l "Modern: Averbakh, Kotov, 5.Be3 e5 6.d5 Nce7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 Nce7 * A42l "Modern: Averbakh, Kotov, 5.Be3 e5 6.d5 Nce7 7.c5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 Nce7 7.c5 * A42m "Modern: Averbakh, Kotov, 5.Be3 e5 6.d5 Nce7 7.g4" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 Nce7 7.g4 * A42n "Modern: Averbakh, 4...e5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 * A42o "Modern: Averbakh, 4...e5 5.Nge2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nge2 * A42p "Modern: Averbakh, 4...e5 5.Nf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 * A42q "Modern: Averbakh, 4...e5 5.Nf3 Nd7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 Nd7 * A42r "Modern: Averbakh, 4...e5 5.Nf3 Nd7 6.Be2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 Nd7 6.Be2 * A42s "Modern: Averbakh, 4...e5 5.Nf3 Nd7 6.Be2 Ne7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 Nd7 6.Be2 Ne7 * A42t "Modern: Averbakh, 4...e5 5.d5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.d5 * A42u "Modern: Averbakh, 4...e5 5.d5 Nd7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.d5 Nd7 * A42v "Modern: Averbakh, 4...e5 5.dxe5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 * A42v "Modern: Averbakh, 4...e5 5.dxe5 dxe5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 dxe5 * A42v "Modern: Averbakh, Queenswap" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 dxe5 6.Qxd8+ Kxd8 * A42w "Modern: Averbakh, Queenswap, 7.f4" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 dxe5 6.Qxd8+ Kxd8 7.f4 * A43a "Old Benoni" 1.d4 c5 * A43a "Old Benoni: Nakamura Gambit" 1.d4 c5 2.b4 * A43b "Old Benoni: 2.dxc5" 1.d4 c5 2.dxc5 * A43b "Old Benoni: Cormorant Gambit" 1.d4 c5 2.dxc5 b6 * A43c "Old Benoni: 2.c3" 1.d4 c5 2.c3 * A43d "Old Benoni: 2.e3" 1.d4 c5 2.e3 * A43e "Old Benoni: 2.d5" 1.d4 c5 2.d5 * A43e "Old Benoni: 2.d5 b5" 1.d4 c5 2.d5 b5 * A43f "Old Benoni: 2.d5 e6" 1.d4 c5 2.d5 e6 * A43g "Old Benoni: Franco-Benoni" 1.d4 c5 2.d5 e6 3.e4 * A43h "Old Benoni: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 * A43h "Old Benoni: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 * A43h "Old Benoni: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 * A43h "Old Benoni: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.e4 * A43i "Old Benoni: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.Nc3 * A43i "Old Benoni: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.Nc3 g6 6.e4 Bg7 * A43i "Old Benoni: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.Nc3 g6 6.e4 Bg7 7.Nf3 * A43j "Old Benoni: Clarendon Court Defence" 1.d4 c5 2.d5 f5 * A43j "Old Benoni: Clarendon Court, 3.c4" 1.d4 c5 2.d5 f5 3.c4 * A43j "Old Benoni: Clarendon Court, 3.g3" 1.d4 c5 2.d5 f5 3.g3 * A43j "Old Benoni: Clarendon Court, 3.Nc3" 1.d4 c5 2.d5 f5 3.Nc3 * A43k "Old Benoni: 2.d5 Nf6" 1.d4 c5 2.d5 Nf6 * A43k "Old Benoni: 2.d5 Nf6 3.Nc3" 1.d4 c5 2.d5 Nf6 3.Nc3 * A43k "Old Benoni: Woozle" 1.d4 c5 2.d5 Nf6 3.Nc3 Qa5 * A43l "Old Benoni: 2.d5 Nf6 3.Nf3" 1.d4 c5 2.d5 Nf6 3.Nf3 * A43l "Old Benoni: 2.d5 Nf6 3.Nf3 e6" 1.d4 c5 2.d5 Nf6 3.Nf3 e6 * A43l "Old Benoni: 2.d5 Nf6 3.Nf3 e6 4.Nc3" 1.d4 c5 2.d5 Nf6 3.Nf3 e6 4.Nc3 * A43m "Old Benoni: 2.d5 Nf6 3.Nf3 g6" 1.d4 c5 2.d5 Nf6 3.Nf3 g6 * A43m "Old Benoni: 2.d5 Nf6 3.Nf3 g6 4.Nc3" 1.d4 c5 2.d5 Nf6 3.Nf3 g6 4.Nc3 * A43n "Old Benoni: Neo-Benko" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 * A43o "Old Benoni: Neo-Benko, 4.Bg5" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 4.Bg5 * A43p "Old Benoni: Neo-Benko, 4.Bg5 d6" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 4.Bg5 d6 * A43q "Old Benoni: Neo-Benko, 4.Bg5 Ne4" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 4.Bg5 Ne4 * A43r "Old Benoni: Hawk" 1.d4 c5 2.d5 Nf6 3.Nf3 c4 * A43r "Old Benoni: Hawk, 4.e4" 1.d4 c5 2.d5 Nf6 3.Nf3 c4 4.e4 * A43s "Old Benoni: Schmidt" 1.d4 c5 2.d5 d6 * A43s "Old Benoni: Schmidt, 3.Nf3" 1.d4 c5 2.d5 d6 3.Nf3 * A43s "Old Benoni: Schmidt, 3.Nf3 Nf6" 1.d4 c5 2.d5 d6 3.Nf3 Nf6 * A43s "Old Benoni: Schmidt, 3.Nc3" 1.d4 c5 2.d5 d6 3.Nc3 * A43s "Old Benoni: Schmidt, 3.Nc3 g6" 1.d4 c5 2.d5 d6 3.Nc3 g6 * A43s "Old Benoni: Schmidt, 3.Nc3 Nf6" 1.d4 c5 2.d5 d6 3.Nc3 Nf6 * A43s "Old Benoni: Schmidt, 3.e4" 1.d4 c5 2.d5 d6 3.e4 * A43t "Old Benoni: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 * A43t "Old Benoni: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 4.Nf3 Bg7 * A43t "Old Benoni: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 4.Nf3 Bg7 5.Be2 * A43t "Old Benoni: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 4.Nc3 Bg7 * A43u "Old Benoni: Schmidt, 3.e4 Nf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 * A43u "Old Benoni: Schmidt, 3.e4 Nf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 * A43u "Old Benoni: Schmidt, 3.e4 Nf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 * A43u "Old Benoni: Schmidt, 3.e4 Nf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 * A43u "Old Benoni: Schmidt, 3.e4 Nf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 * A43v "Old Benoni: Schmidt, 6.h3" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.h3 * A43v "Old Benoni: Schmidt, 6.h3" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.h3 O-O * A43w "Old Benoni: Schmidt, 6.Bb5+" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Bb5+ * A43x "Old Benoni: Schmidt, 6.Be2" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 * A43x "Old Benoni: Schmidt, 6.Be2 O-O" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O * A43x "Old Benoni: Schmidt, 6.Be2 O-O 7.O-O" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O * A43x "Old Benoni: Schmidt, 6.Be2 O-O 7.O-O e6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O e6 * A43y "Old Benoni: Schmidt, 6.Be2 O-O 7.O-O Na6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O Na6 * A43z "Old Benoni: Schmidt, 6.Be2 O-O 7.O-O Na6 8.h3" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O Na6 8.h3 * A44a "Old Benoni: Czech" 1.d4 c5 2.d5 e5 * A44b "Old Benoni: Czech, 3.dxe6" 1.d4 c5 2.d5 e5 3.dxe6 * A44c "Old Benoni: Czech, 3.c4" 1.d4 c5 2.d5 e5 3.c4 * A44d "Old Benoni: Czech, 3.c4 d6" 1.d4 c5 2.d5 e5 3.c4 d6 * A44e "Old Benoni: Czech, 3.c4 d6 4.e4" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 * A44f "Old Benoni: Czech, 3.c4 d6 4.e4 Be7" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 Be7 * A44g "Old Benoni: Czech, 3.c4 d6 4.e4 Be7 5.Nc3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 Be7 5.Nc3 * A44h "Old Benoni: Czech, 3.c4 d6 4.e4 g6" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 * A44h "Old Benoni: Czech, 3.c4 d6 4.e4 g6 5.Nc3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 * A44i "Old Benoni: Czech, 3.c4 d6 4.e4 g6 5.Nc3 Bg7" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 Bg7 * A44j "Old Benoni: Czech, 3.c4 d6 4.e4 g6 5.Nc3 Bg7 6.Nf3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 Bg7 6.Nf3 * A44k "Old Benoni: Czech, 3.c4 d6 4.e4 g6 5.Nc3 Bg7 6.Bd3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 Bg7 6.Bd3 * A44l "Old Benoni: Czech, 3.e4" 1.d4 c5 2.d5 e5 3.e4 * A44m "Old Benoni: Czech, 3.e4 d6" 1.d4 c5 2.d5 e5 3.e4 d6 * A44n "Old Benoni: Czech, 3.e4 d6 4.Nf3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nf3 * A44o "Old Benoni: Czech, 3.e4 d6 4.Bb5+" 1.d4 c5 2.d5 e5 3.e4 d6 4.Bb5+ * A44p "Old Benoni: Czech, 3.e4 d6 4.Bd3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Bd3 * A44q "Old Benoni: Czech, 3.e4 d6 4.Nc3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 * A44r "Old Benoni: Czech, 3.e4 d6 4.Nc3 Nf6" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Nf6 * A44s "Old Benoni: Czech, 3.e4 d6 4.Nc3 g6" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 g6 * A44t "Old Benoni: Czech, 3.e4 d6 4.Nc3 a6" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 a6 * A44u "Old Benoni: Czech, 3.e4 d6 4.Nc3 a6 5.a4 Be7" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 a6 5.a4 Be7 * A44v "Old Benoni: Czech, 3.e4 d6 4.Nc3 Be7" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 * A44w "Old Benoni: Czech, 3.e4 d6 4.Nc3 Be7 5.Bb5+" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 5.Bb5+ * A44x "Old Benoni: Czech, 3.e4 d6 4.Nc3 Be7 5.Nf3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 5.Nf3 * A44y "Old Benoni: Czech, 3.e4 d6 4.Nc3 Be7 5.Nf3 Bg4" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 5.Nf3 Bg4 * A45a "Queen's Pawn: Indian" 1.d4 Nf6 * A45a "Indian: Paleface Attack" 1.d4 Nf6 2.f3 * A45a "Indian: Blackmar-Diemer Gambit (without Nc3)" 1.d4 Nf6 2.f3 d5 3.e4 * A45a "Indian: Gedult Attack" 1.d4 Nf6 2.f3 d5 3.g4 * A45a "Indian: Omega Gambit" 1.d4 Nf6 2.e4 * A45a "Indian: Arafat Gambit" 1.d4 Nf6 2.e4 Nxe4 3.Bd3 Nf6 4.Nf3 * A45a "Indian: Gibbins Gambit" 1.d4 Nf6 2.g4 * A45a "Indian: Gibbins Gambit, Oshima Defence" 1.d4 Nf6 2.g4 e5 * A45a "Indian: Gibbins Gambit Accepted" 1.d4 Nf6 2.g4 Nxg4 * A45b "Indian: Canard Opening" 1.d4 Nf6 2.f4 * A45c "Indian: 2.Nd2" 1.d4 Nf6 2.Nd2 * A45c "Indian: Lazard Gambit" 1.d4 Nf6 2.Nd2 e5 * A45d "Indian: 2.e3" 1.d4 Nf6 2.e3 * A45d "Indian: 2.e3 e6" 1.d4 Nf6 2.e3 e6 * A45d "Indian: 2.e3 g6" 1.d4 Nf6 2.e3 g6 * A45e "Indian: 2.c3" 1.d4 Nf6 2.c3 * A45e "Indian: 2.c3 g6" 1.d4 Nf6 2.c3 g6 * A45e "Indian: 2.c3 g6 3.Bg5" 1.d4 Nf6 2.c3 g6 3.Bg5 * A45f "Indian: 2.Nc3" 1.d4 Nf6 2.Nc3 * A45g "Indian: 2.Bf4" 1.d4 Nf6 2.Bf4 * A45h "Indian: 2.g3" 1.d4 Nf6 2.g3 * A45h "Indian: 2.g3 g6" 1.d4 Nf6 2.g3 g6 * A45i "Indian: 2.g3 c5" 1.d4 Nf6 2.g3 c5 * A45i "Indian: 2.g3 c5 3.d5 b5" 1.d4 Nf6 2.g3 c5 3.d5 b5 * A45j "Trompowsky Opening" 1.d4 Nf6 2.Bg5 * A45j "Trompowsky 2...d6" 1.d4 Nf6 2.Bg5 d6 * A45j "Trompowsky 2...d6 3.Nc3" 1.d4 Nf6 2.Bg5 d6 3.Nc3 * A45j "Trompowsky 2...d6 3.Bxf6" 1.d4 Nf6 2.Bg5 d6 3.Bxf6 * A45k "Trompowsky 2...g6" 1.d4 Nf6 2.Bg5 g6 * A45k "Trompowsky 2...g6 3.Nc3" 1.d4 Nf6 2.Bg5 g6 3.Nc3 * A45k "Trompowsky 2...g6 3.Bxf6" 1.d4 Nf6 2.Bg5 g6 3.Bxf6 * A45l "Trompowsky 2...g6 3.Bxf6 exf6 4.e3" 1.d4 Nf6 2.Bg5 g6 3.Bxf6 exf6 4.e3 * A45m "Trompowsky: 2...e6" 1.d4 Nf6 2.Bg5 e6 * A45m "Trompowsky: 2...e6 3.Nc3" 1.d4 Nf6 2.Bg5 e6 3.Nc3 * A45m "Trompowsky: 2...e6 3.e3" 1.d4 Nf6 2.Bg5 e6 3.e3 * A45m "Trompowsky: 2...e6 3.Nd2" 1.d4 Nf6 2.Bg5 e6 3.Nd2 * A45n "Trompowsky: 2...e6 3.e4" 1.d4 Nf6 2.Bg5 e6 3.e4 * A45n "Trompowsky: 2...e6 3.e4 h6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 * A45n "Trompowsky: 2...e6 3.e4 h6 4.Bxf6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 * A45n "Trompowsky: 2...e6 3.e4 h6 4.Bxf6 Qxf6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 * A45n "Trompowsky: 2...e6 3.e4 h6 4.Bxf6 Qxf6 5.c3" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.c3 * A45o "Trompowsky: 2...e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 * A45o "Trompowsky: 2...e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 Bb4" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 Bb4 * A45o "Trompowsky: 2...e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 * A45o "Trompowsky: 2...e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 6.Qd2" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 6.Qd2 * A45o "Trompowsky: 2...e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 6.Qd2 g5" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 6.Qd2 g5 * A45p "Trompowsky: 2...c5" 1.d4 Nf6 2.Bg5 c5 * A45p "Trompowsky: 2...c5 3.dxc5" 1.d4 Nf6 2.Bg5 c5 3.dxc5 * A45p "Trompowsky: 2...c5 3.Nc3" 1.d4 Nf6 2.Bg5 c5 3.Nc3 * A45p "Trompowsky: 2...c5 3.d5" 1.d4 Nf6 2.Bg5 c5 3.d5 * A45p "Trompowsky: 2...c5 3.d5 Qb6" 1.d4 Nf6 2.Bg5 c5 3.d5 Qb6 * A45p "Trompowsky: 2...c5 3.d5 Qb6 4.Nc3" 1.d4 Nf6 2.Bg5 c5 3.d5 Qb6 4.Nc3 * A45q "Trompowsky: 2...c5 3.Bxf6" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 * A45q "Trompowsky: 2...c5 3.Bxf6 gxf6" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 * A45q "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 * A45r "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5 Qb6" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 * A45r "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 * A45r "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 * A45r "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.c4" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.c4 * A45r "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.g3" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.g3 * A45r "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.e3" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.e3 * A45r "Trompowsky: 2...c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.e3 Bg7" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.e3 Bg7 * A45s "Trompowsky: 2...Ne4" 1.d4 Nf6 2.Bg5 Ne4 * A45s "Trompowsky: 2...Ne4 3.h4" 1.d4 Nf6 2.Bg5 Ne4 3.h4 * A45s "Trompowsky: 2...Ne4 3.h4 d5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 d5 * A45s "Trompowsky: 2...Ne4 3.h4 c5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 c5 * A45s "Trompowsky: 2...Ne4 3.h4 c5 4.dxc5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 c5 4.dxc5 * A45s "Trompowsky: 2...Ne4 3.h4 c5 4.d5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 c5 4.d5 * A45t "Trompowsky: 2...Ne4 3.Bh4" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 * A45t "Trompowsky: 2...Ne4 3.Bh4 g5" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 g5 * A45t "Trompowsky: 2...Ne4 3.Bh4 d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 d5 * A45t "Trompowsky: 2...Ne4 3.Bh4 c5" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 c5 * A45t "Trompowsky: 2...Ne4 3.Bh4 c5 4.f3" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 c5 4.f3 * A45u "Trompowsky: 2...Ne4 3.Bf4" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 * A45u "Trompowsky: Borg Variation" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 g5 * A45u "Trompowsky: 2...Ne4 3.Bf4 d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 * A45u "Trompowsky: 2...Ne4 3.Bf4 d5 4.Nd2" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.Nd2 * A45v "Trompowsky: 2...Ne4 3.Bf4 d5 4.f3" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.f3 * A45v "Trompowsky: 2...Ne4 3.Bf4 d5 4.f3 Nf6" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.f3 Nf6 * A45w "Trompowsky: 2...Ne4 3.Bf4 d5 4.e3" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.e3 * A45w "Trompowsky: 2...Ne4 3.Bf4 d5 4.e3 c5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.e3 c5 * A45x "Trompowsky: 2...Ne4 3.Bf4 c5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 * A45x "Trompowsky: 2...Ne4 3.Bf4 c5 4.d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.d5 * A45x "Trompowsky: 2...Ne4 3.Bf4 c5 4.d5 Qb6" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.d5 Qb6 * A45y "Trompowsky: 2...Ne4 3.Bf4 c5 4.f3" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 * A45y "Trompowsky: 2...Ne4 3.Bf4 c5 4.f3 Qa5+" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 Qa5+ * A45y "Trompowsky: 2...Ne4 3.Bf4 c5 4.f3 Qa5+ 5.c3 Nf6 6.d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 Qa5+ 5.c3 Nf6 6.d5 * A45z "Trompowsky: 2...Ne4 3.Bf4 c5 4.f3 Qa5+ 5.c3 Nf6 6.Nd2" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 Qa5+ 5.c3 Nf6 6.Nd2 * A46a "Indian: 2.Nf3" 1.d4 Nf6 2.Nf3 * A46a "Indian: Doery Defence" 1.d4 Nf6 2.Nf3 Ne4 * A46b "Indian: 2.Nf3 b5" 1.d4 Nf6 2.Nf3 b5 * A46b "Indian: 2.Nf3 b5 3.g3" 1.d4 Nf6 2.Nf3 b5 3.g3 * A46c "Neo-Benoni" 1.d4 Nf6 2.Nf3 c5 * A46c "Neo-Benoni 3.dxc5" 1.d4 Nf6 2.Nf3 c5 3.dxc5 * A46c "Neo-Benoni: 3.e3" 1.d4 Nf6 2.Nf3 c5 3.e3 * A46c "Neo-Benoni: 3.e3 cxd4" 1.d4 Nf6 2.Nf3 c5 3.e3 cxd4 * A46d "Neo-Benoni: 3.c3" 1.d4 Nf6 2.Nf3 c5 3.c3 * A46d "Neo-Benoni: 3.c3 cxd4" 1.d4 Nf6 2.Nf3 c5 3.c3 cxd4 * A46d "Neo-Benoni: 3.c3 b6" 1.d4 Nf6 2.Nf3 c5 3.c3 b6 * A46d "Neo-Benoni: 3.c3 g6" 1.d4 Nf6 2.Nf3 c5 3.c3 g6 * A46e "Neo-Benoni: 3.c3 e6" 1.d4 Nf6 2.Nf3 c5 3.c3 e6 * A46f "Neo-Benoni: 3.g3" 1.d4 Nf6 2.Nf3 c5 3.g3 * A46f "Neo-Benoni: 3.g3 cxd4" 1.d4 Nf6 2.Nf3 c5 3.g3 cxd4 * A46f "Neo-Benoni: 3.g3 cxd4 4.Nxd4" 1.d4 Nf6 2.Nf3 c5 3.g3 cxd4 4.Nxd4 * A46g "Indian: 2.Nf3 d6" 1.d4 Nf6 2.Nf3 d6 * A46h "Indian: 2.Nf3 d6 3.g3" 1.d4 Nf6 2.Nf3 d6 3.g3 * A46i "Indian: 2.Nf3 d6 3.Bg5" 1.d4 Nf6 2.Nf3 d6 3.Bg5 * A46i "Indian: 2.Nf3 d6 3.Bg5 Nbd7" 1.d4 Nf6 2.Nf3 d6 3.Bg5 Nbd7 * A46j "Indian: 2.Nf3 e6" 1.d4 Nf6 2.Nf3 e6 * A46j "Indian: 2.Nf3 e6 3.c3" 1.d4 Nf6 2.Nf3 e6 3.c3 * A46j "Indian: 2.Nf3 e6 3.c3 b6" 1.d4 Nf6 2.Nf3 e6 3.c3 b6 * A46j "Indian: 1.d4 Nf6 2.Nf3 e6 3.c3 b6 4.Bg5" 1.d4 Nf6 2.Nf3 e6 3.c3 b6 4.Bg5 * A46k "Indian: 1.d4 Nf6 2.Nf3 e6 3.e3" 1.d4 Nf6 2.Nf3 e6 3.e3 * A46k "Indian: 1.d4 Nf6 2.Nf3 e6 3.e3 c5" 1.d4 Nf6 2.Nf3 e6 3.e3 c5 * A46l "Indian: 1.d4 Nf6 2.Nf3 e6 3.e3 c5 4.Bd3" 1.d4 Nf6 2.Nf3 e6 3.e3 c5 4.Bd3 * A46m "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3" 1.d4 Nf6 2.Nf3 e6 3.g3 * A46m "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 b5" 1.d4 Nf6 2.Nf3 e6 3.g3 b5 * A46m "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 b5 4.Bg2 Bb7" 1.d4 Nf6 2.Nf3 e6 3.g3 b5 4.Bg2 Bb7 * A46n "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 b5 4.Bg2 Bb7 5.O-O" 1.d4 Nf6 2.Nf3 e6 3.g3 b5 4.Bg2 Bb7 5.O-O * A46o "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 c5" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 * A46o "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 * A46o "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 cxd4" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 cxd4 * A46o "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Nc6" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Nc6 * A46o "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Qc7" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Qc7 * A46o "Indian: 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Qa5+" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Qa5+ * A46p "Indian: London System" 1.d4 Nf6 2.Nf3 e6 3.Bf4 * A46p "Indian: London, 3...c5" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 * A46p "Indian: London, 3...c5 4.e3" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 4.e3 * A46p "Indian: London, 3...c5 4.e3 Qb6" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 4.e3 Qb6 * A46q "Indian: London, 3...c5 4.c3" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 4.c3 * A46r "Torre Attack" 1.d4 Nf6 2.Nf3 e6 3.Bg5 * A46r "Torre Attack: 3...b6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 b6 * A46r "Torre Attack: 3...Be7" 1.d4 Nf6 2.Nf3 e6 3.Bg5 Be7 * A46s "Torre Attack: 3...c5" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 * A46s "Torre Attack: Wagner Gambit" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e4 * A46t "Torre Attack: 3...c5 4.c3" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 * A46t "Torre Attack: 3...c5 4.c3 Qb6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 Qb6 * A46t "Torre Attack: 3...c5 4.c3 h6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 h6 * A46t "Torre Attack: 3...c5 4.c3 h6 5.Bh4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 h6 5.Bh4 * A46u "Torre Attack: 3...c5 4.e3" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 * A46u "Torre Attack: 3...c5 4.e3 cxd4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 cxd4 * A46u "Torre Attack: 3...c5 4.e3 Qb6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 Qb6 * A46v "Torre Attack: 3...c5 4.e3 Be7" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 Be7 * A46w "Torre Attack: 3...c5 4.e3 h6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 h6 * A46w "Torre Attack: 3...c5 4.e3 h6 5.Bh4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 h6 5.Bh4 * A46x "Torre Attack: 3...h6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 * A46x "Torre Attack: 3...h6 4.Bh4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bh4 * A46x "Torre Attack: 3...h6 4.Bh4 g5" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bh4 g5 * A46y "Torre Attack: 3...h6 4.Bxf6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 * A46y "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 * A46y "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4 b6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 b6 * A46y "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4 c5" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 c5 * A46z "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4 d6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 * A46z "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 * A46z "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 g6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 g6 * A46z "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 Nd7" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 Nd7 * A46z "Torre Attack: 3...h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 Nd7 7.Qd2" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 Nd7 7.Qd2 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bf4 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bf4 e6 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bf4 e6 4.e3 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bf4 e6 4.e3 c5 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bf4 Bb7 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bf4 Bb7 4.e3 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bf4 Bb7 4.e3 e6 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bg5 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.Bg5 Bb7 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 e6 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 e6 4.Bd3 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 e6 4.Bd3 c5 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 e6 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 e6 5.O-O * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 e6 5.O-O c5 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.g3 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.g3 e6 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 * A47 "Neo-Queen's Indian" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 e6 * A47 "Neo-Queen's Indian: Marienbad System" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 c5 * A47 "Neo-Queen's Indian: Marienbad System, Berg Variation" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 c5 5.c4 cxd4 6.Qxd4 * A48a "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 * A48a "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 3.Nbd2 * A48b "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 3.c3 * A48b "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 3.c3 Bg7 * A48c "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 3.e3 * A48c "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 3.e3 Bg7 * A48d "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 3.e3 c5 * A48e "Neo-King's Indian" 1.d4 Nf6 2.Nf3 g6 3.Nc3 * A48f "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 * A48g "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 * A48h "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.Nbd2 * A48i "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.c3 * A48j "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 * A48j "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O * A48k "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O 5.Be2 * A48k "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O 5.Be2 d6 * A48l "Neo-King's Indian: London System" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O 5.Be2 d6 6.h3 * A48m "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 * A48n "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Ne4 * A48o "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 * A48o "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.c3 * A48o "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.e3 * A48p "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nc3 * A48q "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 * A48r "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O * A48s "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.e4 * A48t "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.e4 d6 * A48u "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.e4 d5 * A48v "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 * A48v "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 d6 * A48w "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 d6 6.e4 * A48x "Neo-King's Indian: Torre Attack" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 d6 6.e4 c5 * A49 "Neo-King's Indian: Fianchetto System" 1.d4 Nf6 2.Nf3 g6 3.g3 * A49 "Neo-King's Indian: Fianchetto System" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 * A49 "Neo-King's Indian: Fianchetto System" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A49 "Neo-King's Indian: Fianchetto System" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O * A49 "Neo-King's Indian: Double Fianchetto System" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.b3 d6 6.Bb2 * A49 "Neo-King's Indian: Fianchetto System" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.O-O * A49 "Neo-King's Indian: Fianchetto System" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.O-O d6 * A50a "Indian: 2.c4" 1.d4 Nf6 2.c4 * A50b "Indian: Mexican Defence (Two Knights Tango)" 1.d4 Nf6 2.c4 Nc6 * A50c "Indian: Mexican Defence, 3.Nc3" 1.d4 Nf6 2.c4 Nc6 3.Nc3 * A50d "Indian: Mexican Defence, 3.Nf3" 1.d4 Nf6 2.c4 Nc6 3.Nf3 * A50d "Indian: Mexican Defence, 3.Nf3 d6" 1.d4 Nf6 2.c4 Nc6 3.Nf3 d6 * A50e "Indian: Mexican Defence, 3.Nf3 e6" 1.d4 Nf6 2.c4 Nc6 3.Nf3 e6 * A50f "Indian: Mexican Defence, 3.Nf3 e6 4.a3" 1.d4 Nf6 2.c4 Nc6 3.Nf3 e6 4.a3 * A50g "Indian: Mexican Defence, 3.Nf3 e6 4.Nc3" 1.d4 Nf6 2.c4 Nc6 3.Nf3 e6 4.Nc3 * A50h "Indian: Slav-Indian" 1.d4 Nf6 2.c4 c6 * A50i "Indian: Slav-Indian, 3.Nf3" 1.d4 Nf6 2.c4 c6 3.Nf3 * A50j "Indian: Slav-Indian, 3.Nc3" 1.d4 Nf6 2.c4 c6 3.Nc3 * A50k "Indian: 2.c4 a6" 1.d4 Nf6 2.c4 a6 * A50l "Indian: Queen's Indian Accelerated" 1.d4 Nf6 2.c4 b6 * A50m "Indian: Queen's Indian Accelerated" 1.d4 Nf6 2.c4 b6 3.Nc3 Bb7 * A50n "Indian: Queen's Indian Accelerated" 1.d4 Nf6 2.c4 b6 3.Nc3 Bb7 4.Qc2 * A51a "Budapest" 1.d4 Nf6 2.c4 e5 * A51b "Budapest: 3.e3" 1.d4 Nf6 2.c4 e5 3.e3 * A51c "Budapest: 3.d5" 1.d4 Nf6 2.c4 e5 3.d5 * A51d "Budapest: 3.dxe5" 1.d4 Nf6 2.c4 e5 3.dxe5 * A51d "Budapest: Fajarowicz" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 * A51e "Budapest: Fajarowicz, Steiner Variation" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Qc2 * A51f "Budapest: Fajarowicz, 4.Nd2" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nd2 * A51g "Budapest: Fajarowicz, 4.a3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.a3 * A51h "Budapest: Fajarowicz, 4.Nf3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 * A51i "Budapest: Fajarowicz, 4.Nf3 Bb4+" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 Bb4+ * A51j "Budapest: Fajarowicz, 4.Nf3 Nc6" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 Nc6 * A51k "Budapest: Fajarowicz, 4.Nf3 Nc6 5.a3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 Nc6 5.a3 * A52a "Budapest: 3...Ng4" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 * A52b "Budapest: 3...Ng4 4.e3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e3 * A52c "Budapest: Alekhine Variation" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e4 * A52c "Budapest: Alekhine, Balogh Gambit" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e4 d6 * A52d "Budapest: Alekhine, Abonyi Variation" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e4 Nxe5 5.f4 Nec6 * A52e "Budapest: Adler Variation" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Nf3 * A52f "Budapest: Adler, 4...Bc5" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Nf3 Bc5 * A52g "Budapest: Adler, 4...Bc5 5.e3 Nc6 6.Be2" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Nf3 Bc5 5.e3 Nc6 6.Be2 * A52h "Budapest: Rubinstein Variation" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 * A52i "Budapest: Rubinstein, 4...Bb4+" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Bb4+ * A52j "Budapest: Rubinstein, 4...Nc6" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 * A52k "Budapest: Rubinstein, Main Line" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 5.Nf3 Bb4+ * A52l "Budapest: Rubinstein, Main Line, 6.Nbd2" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 5.Nf3 Bb4+ 6.Nbd2 * A52m "Budapest: Rubinstein, Main Line, 6.Nbd2 Qe7 7.e3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 5.Nf3 Bb4+ 6.Nbd2 Qe7 7.e3 * A53 "Old Indian" 1.d4 Nf6 2.c4 d6 * A53 "Old Indian: 3.g3" 1.d4 Nf6 2.c4 d6 3.g3 * A53 "Old Indian: 3.Nf3" 1.d4 Nf6 2.c4 d6 3.Nf3 * A53 "Old Indian: 3.Nf3 c6" 1.d4 Nf6 2.c4 d6 3.Nf3 c6 * A53 "Old Indian: 3.Nf3 Nbd7" 1.d4 Nf6 2.c4 d6 3.Nf3 Nbd7 * A53 "Old Indian: 3.Nf3 Bf5" 1.d4 Nf6 2.c4 d6 3.Nf3 Bf5 * A53 "Old Indian: 3.Nf3 Bg4" 1.d4 Nf6 2.c4 d6 3.Nf3 Bg4 * A53 "Old Indian: 3.Nf3 Bg4 4.Qb3" 1.d4 Nf6 2.c4 d6 3.Nf3 Bg4 4.Qb3 * A53 "Old Indian: 3.Nf3 Bg4 4.Nc3" 1.d4 Nf6 2.c4 d6 3.Nf3 Bg4 4.Nc3 * A53 "Old Indian: 3.Nc3" 1.d4 Nf6 2.c4 d6 3.Nc3 * A53 "Old Indian: 3.Nc3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 c6 * A53 "Old Indian: 3.Nc3 Nbd7" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 * A53 "Old Indian: 3.Nc3 Nbd7 4.Nf3" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.Nf3 * A53 "Old Indian: 3.Nc3 Nbd7 4.e4" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 * A53 "Old Indian: 3.Nc3 Nbd7 4.e4 e5" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 e5 * A53 "Old Indian: 3.Nc3 Nbd7 4.e4 e5 5.d5" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 e5 5.d5 * A53 "Old Indian: 3.Nc3 Nbd7 4.e4 e5 5.Nge2" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 e5 5.Nge2 * A53 "Old Indian: Janowski" 1.d4 Nf6 2.c4 d6 3.Nc3 Bf5 * A53 "Old Indian: Ukrainian" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 * A53 "Old Indian: Ukranian, 4.e4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.e4 * A53 "Old Indian: Ukranian, 4.e3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.e3 * A53 "Old Indian: Dus-Khotimirsky" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.e3 Nbd7 5.Bd3 * A53 "Old Indian: Ukrainian, 4.d5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.d5 * A53 "Old Indian: Ukrainian, 4.d5 Be7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.d5 Be7 * A53 "Old Indian: Ukrainian, 4.dxe5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 * A53 "Old Indian: Ukrainian, Queenswap" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ Kxd8 * A53 "Old Indian: Ukrainian, Queenswap, 6.Nf3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ Kxd8 6.Nf3 * A53 "Old Indian: Ukrainian, Queenswap, 6.Nf3 Nfd7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ Kxd8 6.Nf3 Nfd7 * A54 "Old Indian: 4.Nf3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 * A54 "Old Indian: 4.Nf3 exd4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 exd4 * A54 "Old Indian: 4.Nf3 Nc6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nc6 * A54 "Old Indian: 4.Nf3 e4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 e4 * A54 "Old Indian: 4.Nf3 e4 5.Ng5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 e4 5.Ng5 * A54 "Old Indian: 4.Nf3 Nbd7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 * A54 "Old Indian: 5.e3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e3 * A54 "Old Indian: 5.g3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 * A54 "Old Indian: 5.g3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 c6 * A54 "Old Indian: 5.g3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 c6 6.Bg2 * A54 "Old Indian: 5.g3 g6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 g6 * A54 "Old Indian: 5.g3 g6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 g6 6.Bg2 * A54 "Old Indian: 5.g3 g6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 g6 6.Bg2 Bg7 * A54 "Old Indian: 5.g3 Be7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 * A54 "Old Indian: 5.g3 Be7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 * A54 "Old Indian: 5.g3 Be7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O * A54 "Old Indian: 5.g3 Be7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O 7.O-O * A54 "Old Indian: 5.g3 Be7, Main Line" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O 7.O-O c6 * A54 "Old Indian: 5.g3 Be7, Main Line, 8.Qc2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O 7.O-O c6 8.Qc2 * A54 "Old Indian: 5.Bg5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 * A54 "Old Indian: 5.Bg5 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 c6 * A54 "Old Indian: 5.Bg5 Be7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 * A54 "Old Indian: 5.Bg5 Be7 6.e3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 * A54 "Old Indian: 5.Bg5 Be7 6.e3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 c6 * A54 "Old Indian: 5.Bg5 Be7 6.e3 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 O-O * A54 "Old Indian: 5.Bg5 Be7 6.e3 O-O 7.Qc2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 O-O 7.Qc2 * A54 "Old Indian: 5.Bg5 Be7 6.e3 O-O 7.Qc2 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 O-O 7.Qc2 c6 * A55a "Old Indian: 5.e4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 * A55b "Old Indian: 5.e4 g6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 g6 * A55c "Old Indian: 5.e4 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 c6 * A55c "Old Indian: 5.e4 c6 6.Be2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 c6 6.Be2 * A55d "Old Indian: 5.e4 Be7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 * A55e "Old Indian: 5.e4 Be7 6.g3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 * A55e "Old Indian: 5.e4 Be7 6.g3 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 O-O * A55e "Old Indian: 5.e4 Be7 6.g3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 * A55e "Old Indian: 5.e4 Be7 6.g3 c6 7.Bg2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 * A55e "Old Indian: 5.e4 Be7 6.g3 c6 7.Bg2 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O * A55e "Old Indian: 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O * A55e "Old Indian: 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O Qc7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O Qc7 * A55f "Old Indian: 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O Re8" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O Re8 * A55g "Old Indian: 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O a6 * A55h "Old Indian: 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O a6 9.a4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O a6 9.a4 * A55i "Old Indian: 5.e4 Be7 6.Be2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 * A55i "Old Indian: 5.e4 Be7 6.Be2 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 O-O * A55j "Old Indian: 5.e4 Be7 6.Be2 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 * A55j "Old Indian: 5.e4 Be7 6.Be2 c6 7.O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O * A55j "Old Indian: 5.e4 Be7 6.Be2 c6 7.O-O a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O a6 * A55k "Old Indian: Main Line" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O * A55l "Old Indian: Main Line, 8.h3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.h3 * A55m "Old Indian: Main Line, 8.Be3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Be3 * A55n "Old Indian: Main Line, 8.Be3 a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Be3 a6 * A55o "Old Indian: Main Line, 8.Qc2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 * A55o "Old Indian: Main Line, 8.Qc2 Re8" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 Re8 * A55o "Old Indian: Main Line, 8.Qc2 Qc7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 Qc7 * A55p "Old Indian: Main Line, 8.Qc2 a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 a6 * A55q "Old Indian: Main Line, 8.Re1" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 * A55r "Old Indian: Main Line, 8.Re1 Re8" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 Re8 * A55s "Old Indian: Main Line, 8.Re1 a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 a6 * A55t "Old Indian: Main Line, 8.Re1 a6 9.Bf1" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 a6 9.Bf1 * A56a "Benoni: 2...c5" 1.d4 Nf6 2.c4 c5 * A56b "Benoni: 2...c5 3.e3" 1.d4 Nf6 2.c4 c5 3.e3 * A56b "Benoni: 2...c5 3.e3 e6" 1.d4 Nf6 2.c4 c5 3.e3 e6 * A56c "Benoni: 2...c5 3.e3 g6" 1.d4 Nf6 2.c4 c5 3.e3 g6 * A56d "Benoni: 2...c5 3.e3 g6 4.Nc3" 1.d4 Nf6 2.c4 c5 3.e3 g6 4.Nc3 * A56e "Benoni: 3.dxc5" 1.d4 Nf6 2.c4 c5 3.dxc5 * A56f "Benoni: 3.d5" 1.d4 Nf6 2.c4 c5 3.d5 * A56g "Benoni: 3.d5 a6" 1.d4 Nf6 2.c4 c5 3.d5 a6 * A56h "Benoni: 3.d5 g6" 1.d4 Nf6 2.c4 c5 3.d5 g6 * A56h "Benoni: 3.d5 g6" 1.d4 Nf6 2.c4 c5 3.d5 g6 4.Nc3 * A56i "Benoni: 3.d5 d6" 1.d4 Nf6 2.c4 c5 3.d5 d6 * A56j "Benoni: 3.d5 d6 4.Nc3 g6" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 * A56j "Benoni: Bronstein's Gambit" 1.d4 Nf6 2.c4 c5 3.d5 g6 4.Nc3 d6 5.e4 b5 * A56k "Benoni: 3.d5 d6 4.Nc3 g6 5.e4 Bg7" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 5.e4 Bg7 * A56l "Benoni: 3.d5 d6 4.Nc3 g6 5.e4 Bg7 6.f3" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 5.e4 Bg7 6.f3 * A56m "Benoni: 3.d5 d6 4.Nc3 g6 5.e4 Bg7 6.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 5.e4 Bg7 6.Bd3 * A56n "Benoni: Vulture" 1.d4 Nf6 2.c4 c5 3.d5 Ne4 * A56o "Benoni: Czech" 1.d4 Nf6 2.c4 c5 3.d5 e5 * A56p "Benoni: Czech, 4.Nc3 d6" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 * A56q "Benoni: Czech, 5.e4 g6" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 g6 * A56r "Benoni: Czech, 5.e4 Be7" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 * A56s "Benoni: Czech, 5.e4 Be7 6.g3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 * A56s "Benoni: Czech, 5.e4 Be7 6.g3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 O-O * A56s "Benoni: Czech, 5.e4 Be7 6.g3 O-O 7.Bg2" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 O-O 7.Bg2 * A56t "Benoni: Czech, 5.e4 Be7 6.g3 O-O 7.Bg2 Ne8" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 O-O 7.Bg2 Ne8 * A56u "Benoni: Czech, 5.e4 Be7 6.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Bd3 * A56v "Benoni: Czech, 5.e4 Be7 6.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 * A56w "Benoni: Czech, 5.e4 Be7 6.Nf3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 O-O * A56w "Benoni: Czech, 5.e4 Be7 6.Nf3 O-O 7.h3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 O-O 7.h3 * A56x "Benoni: Czech, 5.e4 Be7 6.Nf3 O-O 7.Be2" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 O-O 7.Be2 * A57a "Benko Gambit" 1.d4 Nf6 2.c4 c5 3.d5 b5 * A57b "Benko Gambit: 4.a4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.a4 * A57c "Benko Gambit: 4.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nd2 * A57d "Benko Gambit: 4.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 * A57d "Benko Gambit: 4.Nf3 bxc4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 bxc4 * A57e "Benko Gambit: 4.Nf3 Bb7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 Bb7 * A57e "Benko Gambit: 4.Nf3 Bb7 5.a4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 Bb7 5.a4 * A57f "Benko Gambit: 4.Nf3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 g6 * A57g "Benko Gambit: 4.Nf3 g6 5.cxb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 g6 5.cxb5 * A57g "Benko Gambit: 4.Nf3 g6 5.cxb5 a6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 g6 5.cxb5 a6 * A57h "Benko Gambit: 4.cxb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 * A57h "Benko Gambit: 4.cxb5 a6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 * A57i "Benko Gambit: 4.cxb5 a6 5.b6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 * A57j "Benko Gambit: 4.cxb5 a6 5.b6 Qxb6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 Qxb6 * A57k "Benko Gambit: 4.cxb5 a6 5.b6 d6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 d6 * A57l "Benko Gambit: 4.cxb5 a6 5.b6 e6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 e6 * A57m "Benko Gambit: 4.cxb5 a6 5.e3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 * A57n "Benko Gambit: 4.cxb5 a6 5.e3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 g6 * A57n "Benko Gambit: 4.cxb5 a6 5.e3 g6 6.Nc3 d6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 g6 6.Nc3 d6 * A57n "Benko Gambit: 4.cxb5 a6 5.e3 g6 6.Nc3 Bg7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 g6 6.Nc3 Bg7 * A57o "Benko Gambit: 4.cxb5 a6 5.f3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.f3 * A57p "Benko Gambit: 4.cxb5 a6 5.f3 e6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.f3 e6 * A57q "Benko Gambit: 4.cxb5 a6 5.f3 axb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.f3 axb5 * A57r "Benko Gambit: Zaitsev Variation" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 * A57r "Benko Gambit: Zaitsev, 5...Qa5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 Qa5 * A57s "Benko Gambit: Zaitsev, 5...axb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 * A57s "Benko Gambit: Zaitsev, 5...axb5 6.e4 b4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 * A57t "Benko Gambit: Zaitsev, 8.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Nf3 * A57u "Benko Gambit: Zaitsev, Nescafe Frappe Attack" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Bc4 * A57v "Benko Gambit: Zaitsev, 8.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Bf4 * A57w "Benko Gambit: Zaitsev, 8.Bf4 g5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Bf4 g5 * A58a "Benko Gambit: 5.bxa6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 * A58b "Benko Gambit: 5.bxa6 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 g6 * A58c "Benko Gambit: 5.bxa6 Bxa6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 * A58c "Benko Gambit: Accepted, 6.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.g3 * A58d "Benko Gambit: Accepted, 6.g3 d6 7.Bg2 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.g3 d6 7.Bg2 g6 * A58d "Benko Gambit: Accepted, 6.g3 d6 7.Bg2 g6 8.b3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.g3 d6 7.Bg2 g6 8.b3 * A58e "Benko Gambit: Accepted, 6.Nc3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 * A58f "Benko Gambit: Accepted, 6.Nc3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 g6 * A58g "Benko Gambit: Accepted, 6.Nc3 d6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 * A58g "Benko Gambit: Accepted, 7.f4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.f4 * A58g "Benko Gambit: Accepted, 7.f4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.f4 g6 * A58h "Benko Gambit: Accepted, 7.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.g3 * A58h "Benko Gambit: Accepted, 7.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.g3 g6 * A58i "Benko Gambit: Accepted, 7.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 * A58i "Benko Gambit: Accepted, 7.Nf3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 * A58j "Benko Gambit: Accepted, 7.Nf3 g6 8.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.Nd2 * A58j "Benko Gambit: Accepted, 7.Nf3 g6 8.Nd2 Qa5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.Nd2 Qa5 * A58j "Benko Gambit: Accepted, 7.Nf3 g6 8.Nd2 Bg7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.Nd2 Bg7 * A58k "Benko Gambit: Fianchetto Variation" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 * A58k "Benko Gambit: Fianchetto Variation" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 * A58l "Benko Gambit: Fianchetto, 9.Bh3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bh3 * A58m "Benko Gambit: Fianchetto, 9.Bg2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 * A58m "Benko Gambit: Fianchetto, 9...Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 Nbd7 * A58n "Benko Gambit: Fianchetto, 9...Nbd7 10.O-O Nb6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 Nbd7 10.O-O Nb6 * A58o "Benko Gambit: Fianchetto, 9...O-O" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O * A58p "Benko Gambit: Fianchetto, Main Line" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 * A58q "Benko Gambit: Fianchetto, Main Line, 11.Rb1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Rb1 * A58r "Benko Gambit: Fianchetto, Main Line, 11.Re1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Re1 * A58s "Benko Gambit: Fianchetto, Main Line, 11.Qc2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Qc2 * A58t "Benko Gambit: Fianchetto, Main Line, 11.Qc2 Qb6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Qc2 Qb6 * A59a "Benko Gambit: 7.e4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 * A59b "Benko Gambit: 7.e4 Bxf1 8.Kxf1 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 * A59c "Benko Gambit: 7.e4 Line, 9.Nge2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nge2 * A59d "Benko Gambit: 7.e4 Line, 9.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nf3 * A59e "Benko Gambit: 7.e4 Line, 9.Nf3 Bg7 10.h3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nf3 Bg7 10.h3 * A59f "Benko Gambit: 7.e4 Line, 9.Nf3 Bg7 10.h3 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nf3 Bg7 10.h3 Nbd7 * A59g "Benko Gambit: 7.e4 Line, 9.g4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g4 * A59h "Benko Gambit: 7.e4 Line, 9.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 * A59i "Benko Gambit: 7.e4, Main Line" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 * A59j "Benko Gambit: 7.e4, Main Line, 11...Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 * A59k "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.Re1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.Re1 * A59l "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.Re1 Qa5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.Re1 Qa5 * A59m "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.Re1 Ng4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.Re1 Ng4 * A59n "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.h3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 * A59o "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.h3 Ra6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Ra6 * A59o "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.h3 Ra6 13.Re1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Ra6 13.Re1 * A59p "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.h3 Qb6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qb6 * A59p "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.h3 Qb6 13.Re1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qb6 13.Re1 * A59q "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.h3 Qa5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qa5 * A59q "Benko Gambit: 7.e4, Main Line, 11...Nbd7 12.h3 Qa5 13.Re1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qa5 13.Re1 * A60a "Benoni: 3.d5 e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 * A60b "Benoni: 4.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nf3 * A60c "Benoni: 4.Nf3 exd5 5.cxd5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nf3 exd5 5.cxd5 * A60d "Benoni: Snake Variation vs. 4.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nf3 exd5 5.cxd5 Bd6 * A60e "Benoni: 4.g3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.g3 * A60f "Benoni: 4.g3 exd5 5.cxd5 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.g3 exd5 5.cxd5 b5 * A60g "Benoni: 4.Nc3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 * A60h "Benoni: 4.Nc3 exd5 5.Nxd5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.Nxd5 * A60i "Benoni: 4.Nc3 exd5 5.cxd5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 * A60j "Benoni: Snake Variation" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 * A60k "Benoni: Snake, 6.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.Nf3 * A60l "Benoni: Snake, 6.Nf3 Bc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.Nf3 Bc7 * A60m "Benoni: Snake, 6.e4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.e4 * A60n "Benoni: Snake, 6.e4 O-O 7.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.e4 O-O 7.Nf3 * A60o "Benoni: 4.Nc3 exd5 5.cxd5 g6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 g6 * A60p "Benoni: 4.Nc3 exd5 5.cxd5 d6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 * A60q "Benoni: 4.Nc3 exd5 5.cxd5 d6 6.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 * A61 "Benoni: 6.Nf3 g6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 * A61 "Benoni: 6.Nf3 g6 7.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.h3 * A61 "Benoni: 6.Nf3 g6 7.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 * A61 "Benoni: 6.Nf3 g6 7.Bf4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 a6 * A61 "Benoni: 6.Nf3 g6 7.Bf4 Bg7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 Bg7 * A61 "Benoni: 6.Nf3 g6 7.Bf4 Bg7 8.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 Bg7 8.Nd2 * A61 "Benoni: 6.Nf3 g6 7.Bf4 Bg7 8.Qa4+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 Bg7 8.Qa4+ * A61 "Benoni: Uhlmann Variation" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bg5 * A61 "Benoni: Uhlmann, 7...Bg7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bg5 Bg7 * A61 "Benoni: Uhlmann, 7...h6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bg5 h6 * A61 "Benoni: Nimzowitsch Variation" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 * A61 "Benoni: Nimzowitsch, 7...Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Nbd7 * A61 "Benoni: Nimzowitsch, 7...Bg7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Bg7 * A61 "Benoni: Nimzowitsch, 7...Bg7 8.Nc4 O-O 9.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Bg7 8.Nc4 O-O 9.Bf4 * A61 "Benoni: Nimzowitsch, 7...Bg7 8.Nc4 O-O 9.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Bg7 8.Nc4 O-O 9.Bg5 * A61 "Benoni: Fianchetto Variation" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 * A62 "Benoni: Fianchetto, 8.Bg2 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O * A62 "Benoni: Fianchetto, 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O * A62 "Benoni: Fianchetto, 9.O-O a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O a6 * A62 "Benoni: Fianchetto, 9.O-O Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Na6 * A62 "Benoni: Fianchetto, 9.O-O Na6 10.Nd2 Nc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Na6 10.Nd2 Nc7 * A62 "Benoni: Fianchetto, 9.O-O Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Re8 * A63 "Benoni: Fianchetto, 9...Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 * A63 "Benoni: Fianchetto, 9...Nbd7 10.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 * A63 "Benoni: Fianchetto, 9...Nbd7 10.Nd2 Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 Re8 * A63 "Benoni: Fianchetto, 9...a6 10.a4 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O a6 10.a4 Nbd7 * A63 "Benoni: Fianchetto, 9...Nbd7 10.Nd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 * A63 "Benoni: Fianchetto, 9...Nbd7 10.Nd2 a6 11.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 * A64 "Benoni: Fianchetto, 11...Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 * A64 "Benoni: Fianchetto, 11...Re8 12.a5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.a5 * A64 "Benoni: Fianchetto, 11...Re8 12.Nc4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.Nc4 * A64 "Benoni: Fianchetto, 11...Re8 12.Nc4 Ne5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.Nc4 Ne5 * A64 "Benoni: Fianchetto, 11...Re8 12.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 * A64 "Benoni: Fianchetto, 11...Re8 12.h3 Rb8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 * A64 "Benoni: Fianchetto, 11...Re8 12.h3 Rb8 13.Nc4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 13.Nc4 * A64 "Benoni: Fianchetto, 11...Re8 12.h3 Rb8 13.Nc4 Ne5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 13.Nc4 Ne5 * A64 "Benoni: Fianchetto, 11...Re8 12.h3 Rb8 13.Nc4 Nb6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 13.Nc4 Nb6 * A65a "Benoni: 6.e4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 * A65a "Benoni: 6.e4 Be7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 Be7 * A65b "Benoni: 6.e4 g6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 * A65b "Benoni: 6.e4 g6 7.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.h3 * A65c "Benoni: 6.e4 g6 7.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 * A65d "Benoni: 6.e4 g6 7.Bf4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 a6 * A65e "Benoni: 6.e4 g6 7.Bf4 a6 8.Nf3 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 a6 8.Nf3 b5 * A65e "Benoni: 6.e4 g6 7.Bf4 a6 8.Nf3 b5 9.Qe2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 a6 8.Nf3 b5 9.Qe2 * A65f "Benoni: 6.e4 g6 7.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 * A65f "Benoni: 6.e4 g6 7.Bd3 Bg7 8.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.h3 * A65g "Benoni: 6.e4 g6 7.Bd3 Bg7 8.Nge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 * A65g "Benoni: 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O * A65g "Benoni: 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O * A65h "Benoni: 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O b6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O b6 * A65i "Benoni: 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O Na6 * A65j "Benoni: 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O a6 * A65k "Benoni: Saemisch (6.e4 g6 7.f3)" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 * A65k "Benoni: Saemisch, 7...Bg7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 * A65l "Benoni: Saemisch, 8.Nge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Nge2 * A65m "Benoni: Saemisch, 8.Be3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Be3 * A65n "Benoni: Saemisch, 8.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 * A65n "Benoni: Saemisch, 8.Bg5 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O * A65o "Benoni: Saemisch, 8.Bg5 O-O 9.Nge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O 9.Nge2 * A65p "Benoni: Saemisch, 8.Bg5 O-O 9.Qd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O 9.Qd2 * A65q "Benoni: Saemisch, 8.Bg5 O-O 9.Qd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O 9.Qd2 a6 * A65r "Benoni: Saemisch, 8.Bg5 h6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 * A65r "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O * A65s "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Nge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Nge2 * A65t "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 * A65u "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2 Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 Re8 * A65v "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 * A65v "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 * A65w "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 h5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 h5 * A65x "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Nbd7 * A65y "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Re8 * A65y "Benoni: Saemisch, 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Re8 12.Nge2 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Re8 12.Nge2 Nbd7 * A66 "Benoni: Four Pawns Attack" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 * A66 "Benoni: Four Pawns Attack" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 * A66 "Benoni: Four Pawns, Mikenas Attack" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 * A66 "Benoni: Mikenas Attack, 8...dxe5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 dxe5 * A66 "Benoni: Mikenas Attack, 8...Nfd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 * A66 "Benoni: Mikenas Attack, 8...Nfd7 9.e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.e6 * A66 "Benoni: Mikenas Attack, 8...Nfd7 9.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nf3 * A66 "Benoni: Mikenas Attack, 8...Nfd7 9.Nb5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 * A66 "Benoni: Mikenas Attack, 9.Nb5 dxe5 10.Nd6+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 dxe5 10.Nd6+ * A66 "Benoni: Mikenas Attack, 9.Nb5 dxe5 10.Nd6+ Ke7 11.Nxc8+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 dxe5 10.Nd6+ Ke7 11.Nxc8+ * A66 "Benoni: Mikenas Attack, 9.Nb5 dxe5 10.Nd6+ Ke7 11.Nxc8+ Qxc8 12.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 dxe5 10.Nd6+ Ke7 11.Nxc8+ Qxc8 12.Nf3 * A67a "Benoni: Four Pawns, Taimanov (Alatortsev) Variation" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ * A67b "Benoni: Four Pawns, Taimanov, 8...Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nbd7 * A67c "Benoni: Four Pawns, Taimanov, 8...Nbd7 9.e5 dxe5 10.fxe5 Nh5 11.e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nbd7 9.e5 dxe5 10.fxe5 Nh5 11.e6 * A67d "Benoni: Four Pawns, Taimanov, 8...Nfd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 * A67e "Benoni: Four Pawns, Taimanov, 9.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 * A67f "Benoni: Four Pawns, Taimanov, 9.Bd3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O * A67g "Benoni: Four Pawns, Taimanov, 9.Bd3 O-O 10.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 * A67h "Benoni: Four Pawns, Taimanov, 9.Bd3 O-O 10.Nf3 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 a6 * A67i "Benoni: Four Pawns, Taimanov, 9.Bd3 O-O 10.Nf3 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 a6 11.a4 * A67j "Benoni: Four Pawns, Taimanov, 9.Bd3 O-O 10.Nf3 Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 Na6 * A67k "Benoni: Four Pawns, Taimanov, 9.a4 (Zaitsev)" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 * A67l "Benoni: Four Pawns, Taimanov, 9.a4 Qh4+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 Qh4+ * A67m "Benoni: Four Pawns, Taimanov, 9.a4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 a6 * A67n "Benoni: Four Pawns, Taimanov, 9.a4 a6 10.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 a6 10.Bd3 * A67o "Benoni: Four Pawns, Taimanov, 9.a4 a6 10.Be2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 a6 10.Be2 * A67p "Benoni: Four Pawns, Taimanov, 9.a4 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O * A67q "Benoni: Four Pawns, Taimanov, 9.a4 O-O 10.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O 10.Nf3 * A67r "Benoni: Four Pawns, Taimanov, 9.a4 O-O 10.Nf3 Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O 10.Nf3 Na6 * A67s "Benoni: Four Pawns, Taimanov, 9.a4 O-O 10.Nf3 Na6 11.O-O Nc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O 10.Nf3 Na6 11.O-O Nc7 * A68a "Benoni: Four Pawns, 8.Nf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 * A68a "Benoni: Four Pawns, 8.Nf3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O * A68b "Benoni: Four Pawns, 9.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Bd3 * A68c "Benoni: Four Pawns, 9.Be2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 * A68d "Benoni: Four Pawns, 9.Be2 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 * A68e "Benoni: Four Pawns, 9.Be2 b5 10.e5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 10.e5 * A68f "Benoni: Four Pawns, 9.Be2 b5 10.e5 dxe5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 10.e5 dxe5 * A68g "Benoni: Four Pawns, 9.Be2 b5 10.e5 dxe5 11.fxe5 Ng4 12.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 * A68h "Benoni: Four Pawns, 9.Be2 Bg4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 * A68i "Benoni: Four Pawns, 9.Be2 Bg4 10.e5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.e5 * A68j "Benoni: Four Pawns, 9.Be2 Bg4 10.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O * A68k "Benoni: Four Pawns, 9.Be2 Bg4 10.O-O Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 * A68l "Benoni: Four Pawns, 9.Be2 Bg4 10.O-O Nbd7 11.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 11.h3 * A68m "Benoni: Four Pawns, 9.Be2 Bg4 10.O-O Nbd7 11.h3 Bxf3 12.Bxf3 Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 11.h3 Bxf3 12.Bxf3 Re8 * A68n "Benoni: Four Pawns, 9.Be2 Bg4 10.O-O Nbd7 11.h3 Bxf3 12.Bxf3 Re8 13.Re1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 11.h3 Bxf3 12.Bxf3 Re8 13.Re1 * A69a "Benoni: Four Pawns, Main Line" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 * A69b "Benoni: Four Pawns, Main Line, 10.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.O-O * A69c "Benoni: Four Pawns, Main Line, 10.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.Nd2 * A69d "Benoni: Four Pawns, Main Line, 10.Nd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.Nd2 a6 * A69e "Benoni: Four Pawns, Main Line, 10.Nd2 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.Nd2 Nbd7 * A69f "Benoni: Four Pawns, Main Line, 10.e5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 * A69g "Benoni: Four Pawns, Main Line, 10.e5: 12.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.O-O * A69h "Benoni: Four Pawns, Main Line, 10.e5: 12.e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.e6 * A69i "Benoni: Four Pawns, Main Line, 10.e5: 12.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 * A69j "Benoni: Four Pawns, Main Line, 10.e5: 12.Bg5 f6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 f6 * A69k "Benoni: Four Pawns, Main Line, 10.e5: 12.Bg5 Qb6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 Qb6 * A69l "Benoni: Four Pawns, Main Line, 10.e5: 12.Bg5 Qb6 13.O-O Nxe5 14.Nxe5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 Qb6 13.O-O Nxe5 14.Nxe5 * A69m "Benoni: Four Pawns, Main Line, 10.e5: 12.Bg5 Qb6 13.O-O Nxe5 14.d6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 Qb6 13.O-O Nxe5 14.d6 * A70a "Benoni: Classical" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 * A70b "Benoni: Classical, 7...a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 * A70b "Benoni: Classical, 7...a6 8.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 8.a4 * A70b "Benoni: Classical, 7...a6 8.a4 Bg4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 8.a4 Bg4 * A70c "Benoni: Classical, 7...a6 8.a4 Bg4 9.Be2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 8.a4 Bg4 9.Be2 * A70d "Benoni: Classical, 7...Bg7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 * A70e "Benoni: Classical, 8.Be2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 * A70e "Benoni: Classical, 8.Be2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 a6 * A70f "Benoni: Classical, 8.Qa4+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Qa4+ * A70f "Benoni: Classical, 8.Qa4+ Bd7 9.Qb3 Qc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Qa4+ Bd7 9.Qb3 Qc7 * A70g "Benoni: Classical, 8.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bf4 * A70g "Benoni: Classical, 8.Bf4 O-O 9.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bf4 O-O 9.Nd2 * A70h "Benoni: Classical, 8.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bd3 * A70i "Benoni: Classical, 8.Bd3 O-O 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bd3 O-O 9.O-O * A70j "Benoni: Classical, 8.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 * A70k "Benoni: Classical, 8.h3 O-O 9.Bd3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 * A70l "Benoni: Classical, 8.h3 O-O 9.Bd3 Bd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Bd7 * A70m "Benoni: Classical, 8.h3 O-O 9.Bd3 Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Na6 * A70n "Benoni: Classical, 8.h3 O-O 9.Bd3 Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Re8 * A70o "Benoni: Classical, 8.h3 O-O 9.Bd3 Re8 10.O-O c4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Re8 10.O-O c4 * A70p "Benoni: Classical, 8.h3 O-O 9.Bd3 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 * A70q "Benoni: Classical, 8.h3 O-O 9.Bd3 a6 10.O-O b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.O-O b5 * A70r "Benoni: Classical, 8.h3 O-O 9.Bd3 a6 10.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.a4 * A70s "Benoni: Classical, 8.h3 O-O 9.Bd3 a6 10.a4 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.a4 Nbd7 * A70t "Benoni: Classical, 8.h3 O-O 9.Bd3 a6 10.a4 Nbd7 11.O-O Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.a4 Nbd7 11.O-O Re8 * A70u "Benoni: Classical, 8.h3 O-O 9.Bd3 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 * A70v "Benoni: Classical, 8.h3 O-O 9.Bd3 b5 10.Bxb5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Bxb5 * A70w "Benoni: Classical, 8.h3 O-O 9.Bd3 b5 10.Nxb5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 * A70w "Benoni: Classical, 8.h3 O-O 9.Bd3 b5 10.Nxb5 Nxe4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 Nxe4 * A70x "Benoni: Classical, 8.h3 O-O 9.Bd3 b5 10.Nxb5 Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 Re8 * A70y "Benoni: Classical, 8.h3 O-O 9.Bd3 b5 10.Nxb5 Re8 11.O-O Nxe4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 Re8 11.O-O Nxe4 * A71 "Benoni: Classical, 8.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 * A71 "Benoni: Classical, 8.Bg5 h6 9.Bh4 g5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 g5 * A71 "Benoni: Classical, 8.Bg5 h6 9.Bh4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 a6 * A71 "Benoni: Classical, 8.Bg5 h6 9.Bh4 a6 10.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 a6 10.Nd2 * A71 "Benoni: Classical, 8.Bg5 h6 9.Bh4 a6 10.Nd2 b5 11.Be2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 a6 10.Nd2 b5 11.Be2 * A72 "Benoni: Classical, 8.Be2 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O * A72 "Benoni: Classical, 8.Be2 O-O 9.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Nd2 * A72 "Benoni: Classical, 8.Be2 O-O 9.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bg5 * A72 "Benoni: Classical, 8.Be2 O-O 9.Bg5 h6 10.Bh4 g5 11.Bg3 Nh5 12.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bg5 h6 10.Bh4 g5 11.Bg3 Nh5 12.Nd2 * A72 "Benoni: Classical, 8.Be2 O-O 9.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bf4 * A72 "Benoni: Classical, 8.Be2 O-O 9.Bf4 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bf4 b5 * A72 "Benoni: Classical, 8.Be2 O-O 9.Bf4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bf4 a6 * A73 "Benoni: Classical, 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O * A73 "Benoni: Classical, 9.O-O Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Nbd7 * A73 "Benoni: Classical, 9.O-O Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Na6 * A73 "Benoni: Classical, 9.O-O Na6 10.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Na6 10.Nd2 * A73 "Benoni: Classical, 9.O-O Na6 10.Nd2 Nc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Na6 10.Nd2 Nc7 * A73 "Benoni: Classical, 9.O-O Bg4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 * A73 "Benoni: Classical, 9.O-O Bg4 10.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 10.Bg5 * A73 "Benoni: Classical, 9.O-O Bg4 10.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 10.Bf4 * A73 "Benoni: Classical, 9.O-O Bg4 10.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 10.h3 * A73 "Benoni: Classical, 9.O-O a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 * A74 "Benoni: Classical, 9.O-O a6 10.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 * A74 "Benoni: Classical, 9.O-O a6 10.a4 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 * A74 "Benoni: Classical, 9.O-O a6 10.a4 Nbd7 11.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Nd2 * A74 "Benoni: Classical, 9.O-O a6 10.a4 Nbd7 11.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Bg5 * A74 "Benoni: Classical, 9.O-O a6 10.a4 Nbd7 11.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Bf4 * A74 "Benoni: Classical, 9.O-O a6 10.a4 Nbd7 11.Bf4 Qe7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Bf4 Qe7 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.h3 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Nd2 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bg5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bg5 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bg5 h6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bg5 h6 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4 Qe7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Qe7 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4 Re8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Re8 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4 Re8 12.Nd2 Bxe2 13.Qxe2 Nh5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Re8 12.Nd2 Bxe2 13.Qxe2 Nh5 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 13.Re1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 13.Re1 * A75 "Benoni: Classical, 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 with 14.a5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 13.Re1 Nbd7 14.a5 * A76 "Benoni: Classical, Main Line" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 * A76 "Benoni: Classical, Main Line, 10.Qc2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 * A76 "Benoni: Classical, Main Line, 10.Qc2 Bg4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Bg4 * A76 "Benoni: Classical, Main Line, 10.Qc2 Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 * A76 "Benoni: Classical, Main Line, 10.Qc2 Na6 11.Bf4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 11.Bf4 * A76 "Benoni: Classical, Main Line, 10.Qc2 Na6 11.Re1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 11.Re1 * A76 "Benoni: Classical, Main Line, 10.Qc2 Na6 11.Re1 Bg4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 11.Re1 Bg4 * A77 "Benoni: Classical, Main Line, 10.Nd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 * A77 "Benoni: Classical, Main Line, 10.Nd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 a6 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 a6 12.Ra3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 12.Ra3 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 a6 12.Qc2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 12.Qc2 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 a6 12.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 12.h3 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 Ne5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 Ne5 12.Ndb1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Ndb1 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 Ne5 12.Ra3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Ra3 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 Ne5 12.Re1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Re1 * A77 "Benoni: Classical, Main Line, 10.Nd2 Nbd7 11.a4 Ne5 12.Qc2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Qc2 * A78 "Benoni: Classical, Main Line, 10.Nd2 Na6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 * A78 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.Kh1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.Kh1 * A78 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.Rb1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.Rb1 * A78 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.Re1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.Re1 * A78 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f4 * A78 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f4 Nc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f4 Nc7 * A79 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 * A79 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f3 Nc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 * A79 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f3 Nc7 12.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 * A79 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f3 Nc7 12.a4 Nd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 Nd7 * A79 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f3 Nc7 12.a4 b6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 * A79 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 13.Kh1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 13.Kh1 * A79 "Benoni: Classical, Main Line, 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 13.Nc4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 13.Nc4 * A80a "Dutch" 1.d4 f5 * A80b "Dutch: Krejcik Gambit" 1.d4 f5 2.g4 * A80b "Dutch: Krejcik Gambit Accepted" 1.d4 f5 2.g4 fxg4 * A80c "Dutch: Korchnoi Attack" 1.d4 f5 2.h3 * A80c "Dutch: Korchnoi, Janzen Gambit" 1.d4 f5 2.h3 Nf6 3.g4 * A80d "Dutch: 2.Bg5" 1.d4 f5 2.Bg5 * A80d "Dutch: 2.Bg5 d5" 1.d4 f5 2.Bg5 d5 * A80d "Dutch: 2.Bg5 c6" 1.d4 f5 2.Bg5 c6 * A80e "Dutch: 2.Bg5 Nf6" 1.d4 f5 2.Bg5 Nf6 * A80f "Dutch: 2.Bg5 h6" 1.d4 f5 2.Bg5 h6 * A80g "Dutch: 2.Bg5 g6" 1.d4 f5 2.Bg5 g6 * A80h "Dutch: 2.Bg5 g6 3.Nc3" 1.d4 f5 2.Bg5 g6 3.Nc3 * A80i "Dutch: Alapin" 1.d4 f5 2.Qd3 * A80i "Dutch: Alapin, Manhattan Gambit" 1.d4 f5 2.Qd3 d6 3.g4 * A80i "Dutch: Von Pretzel Gambit" 1.d4 f5 2.Qd3 e6 3.g4 * A80j "Dutch: 2.Nc3" 1.d4 f5 2.Nc3 * A80k "Dutch: 2.Nc3 d5" 1.d4 f5 2.Nc3 d5 * A80k "Dutch: 2.Nc3 d5, Euwe Gambit" 1.d4 f5 2.Nc3 d5 3.e4 * A80l "Dutch: 2.Nc3 d5 3.Bg5" 1.d4 f5 2.Nc3 d5 3.Bg5 * A80m "Dutch: 2.Nc3 Nf6" 1.d4 f5 2.Nc3 Nf6 * A80m "Dutch: Spielmann Gambit" 1.d4 f5 2.Nc3 Nf6 3.g4 * A80n "Dutch: 2.Nc3 Nf6 3.Bg5" 1.d4 f5 2.Nc3 Nf6 3.Bg5 * A80n "Dutch: 2.Nc3 Nf6 3.Bg5 e6" 1.d4 f5 2.Nc3 Nf6 3.Bg5 e6 * A80o "Dutch: 2.Nc3 Nf6 3.Bg5 d5" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 * A80p "Dutch: 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 * A80p "Dutch: 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 5.e3" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 5.e3 * A80p "Dutch: 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 5.e3 c6" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 5.e3 c6 * A80q "Dutch: 2.Nf3" 1.d4 f5 2.Nf3 * A80r "Dutch: 2.Nf3 e6" 1.d4 f5 2.Nf3 e6 * A80s "Dutch: 2.Nf3 e6 3.d5" 1.d4 f5 2.Nf3 e6 3.d5 * A80t "Dutch: 2.Nf3 Nf6" 1.d4 f5 2.Nf3 Nf6 * A80u "Dutch: Barcza System" 1.d4 f5 2.Nf3 Nf6 3.c3 * A80v "Dutch: 2.Nf3 Nf6 3.Bg5" 1.d4 f5 2.Nf3 Nf6 3.Bg5 * A81 "Dutch: 2.g3" 1.d4 f5 2.g3 * A81 "Dutch: 2.g3 e6" 1.d4 f5 2.g3 e6 * A81 "Dutch: 2.g3 e6 3.Nf3" 1.d4 f5 2.g3 e6 3.Nf3 * A81 "Dutch: 2.g3 e6 3.Nf3 Nf6" 1.d4 f5 2.g3 e6 3.Nf3 Nf6 * A81 "Dutch: 2.g3 Nf6" 1.d4 f5 2.g3 Nf6 * A81 "Dutch: 2.g3 Nf6 3.Nf3" 1.d4 f5 2.g3 Nf6 3.Nf3 * A81 "Dutch: 2.g3 Nf6 3.Bg2" 1.d4 f5 2.g3 Nf6 3.Bg2 * A81 "Dutch: 2.g3 Nf6 3.Bg2 e6" 1.d4 f5 2.g3 Nf6 3.Bg2 e6 * A81 "Dutch: Blackburne Variation" 1.d4 f5 2.g3 Nf6 3.Bg2 e6 4.Nh3 * A81 "Dutch: 2.g3 Nf6 3.Bg2 g6" 1.d4 f5 2.g3 Nf6 3.Bg2 g6 * A81 "Dutch: 2.g3 Nf6 3.Bg2 g6 4.Nf3" 1.d4 f5 2.g3 Nf6 3.Bg2 g6 4.Nf3 * A81 "Dutch: Leningrad, Basman Variation" 1.d4 f5 2.g3 g6 3.Bg2 Bg7 4.Nf3 c6 5.O-O Nh6 * A81 "Dutch: Leningrad, Carlsbad Variation" 1.d4 f5 2.g3 g6 3.Bg2 Bg7 4.Nh3 * A82 "Dutch: Staunton Gambit" 1.d4 f5 2.e4 * A82 "Dutch: Staunton Gambit, Balogh Defence" 1.d4 f5 2.e4 d6 * A82 "Dutch: Staunton Gambit Accepted" 1.d4 f5 2.e4 fxe4 * A82 "Dutch: Staunton Gambit, 3.Nc3" 1.d4 f5 2.e4 fxe4 3.Nc3 * A82 "Dutch: Staunton Gambit, 3.Nc3 e6" 1.d4 f5 2.e4 fxe4 3.Nc3 e6 * A82 "Dutch: Staunton Gambit, 3.Nc3 g6" 1.d4 f5 2.e4 fxe4 3.Nc3 g6 * A82 "Dutch: Staunton Gambit, 3.Nc3 Nf6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 * A82 "Dutch: Staunton Gambit, Tartakower Variation" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.g4 * A82 "Dutch: Staunton Gambit, 4.f3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 * A82 "Dutch: Staunton Gambit, 4.f3 e6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 e6 * A82 "Dutch: Staunton Gambit, 4.f3 Nc6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 Nc6 * A82 "Dutch: Staunton Gambit, 4.f3 exf3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 exf3 * A82 "Dutch: Staunton Gambit, 4.f3 exf3 5.Nxf3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 exf3 5.Nxf3 * A82 "Dutch: Staunton Gambit, 4.f3 d5" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 d5 * A82 "Dutch: Staunton Gambit, 4.f3 d5 5.fxe4" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 d5 5.fxe4 * A83a "Dutch: Staunton Gambit, Staunton Variation" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 * A83b "Dutch: Staunton Gambit, Nimzowitsch Variation" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 b6 * A83c "Dutch: Staunton Gambit, Chigorin Variation" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 c6 * A83d "Dutch: Staunton Gambit, 4.Bg5 g6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 g6 * A83e "Dutch: Staunton Gambit, Alekhine Variation" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 g6 5.h4 * A83f "Dutch: Staunton Gambit, Lasker Variation" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 g6 5.f3 * A83g "Dutch: Staunton Gambit, 4.Bg5 e6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 e6 * A83h "Dutch: Staunton Gambit, 4.Bg5 e6 5.Nxe4" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 e6 5.Nxe4 * A83i "Dutch: Staunton Gambit, 4.Bg5 e6 5.Nxe4" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 e6 5.Nxe4 Be7 6.Bxf6 Bxf6 7.Nf3 * A83j "Dutch: Staunton Gambit, 4.Bg5 Nc6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 * A83k "Dutch: Staunton Gambit, 4.Bg5 Nc6 5.f3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 5.f3 * A83l "Dutch: Staunton Gambit, 4.Bg5 Nc6 5.d5" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 5.d5 * A83m "Dutch: Staunton Gambit, 4.Bg5 Nc6 5.d5 Ne5 6.Qd4" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 5.d5 Ne5 6.Qd4 * A84 "Dutch: 2.c4" 1.d4 f5 2.c4 * A84 "Dutch: 2.c4 d6" 1.d4 f5 2.c4 d6 * A84 "Dutch: 2.c4 g6" 1.d4 f5 2.c4 g6 * A84 "Dutch: Bladel Variation" 1.d4 f5 2.c4 g6 3.Nc3 Nh6 * A84 "Dutch: 2.c4 e6" 1.d4 f5 2.c4 e6 * A84 "Dutch: 2.c4 e6 3.Nf3" 1.d4 f5 2.c4 e6 3.Nf3 * A84 "Dutch: 2.c4 e6 3.Nf3 Nf6" 1.d4 f5 2.c4 e6 3.Nf3 Nf6 * A84 "Dutch: Rubinstein Variation" 1.d4 f5 2.c4 e6 3.Nc3 * A84 "Dutch: Rubinstein, 3...d5" 1.d4 f5 2.c4 e6 3.Nc3 d5 * A84 "Dutch: Rubinstein, 3...d5 4.e3 c6" 1.d4 f5 2.c4 e6 3.Nc3 d5 4.e3 c6 * A84 "Dutch: Staunton Gambit Deferred" 1.d4 f5 2.c4 e6 3.e4 * A84 "Dutch: 2.c4 Nf6" 1.d4 f5 2.c4 Nf6 * A84 "Dutch: 2.c4 Nf6" 1.d4 f5 2.c4 Nf6 3.Nf3 * A85 "Dutch: 2.c4 Nf6 3.Nc3" 1.d4 f5 2.c4 Nf6 3.Nc3 * A85 "Dutch: 2.c4 Nf6 3.Nc3 d6" 1.d4 f5 2.c4 Nf6 3.Nc3 d6 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6 4.a3" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.a3 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6 4.Qc2" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.Qc2 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6 4.Bg5" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.Bg5 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6 4.e3" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.e3 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6 4.e3 d5" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.e3 d5 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6 4.e3 Bb4" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.e3 Bb4 * A85 "Dutch: 2.c4 Nf6 3.Nc3 e6 4.Nf3" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.Nf3 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6 4.f3" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.f3 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6 4.Bg5" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Bg5 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6 4.Nf3" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.e3" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.e3 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bf4" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bf4 * A85 "Dutch: 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bg5" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bg5 * A86 "Dutch: 2.c4 Nf6 3.g3" 1.d4 f5 2.c4 Nf6 3.g3 * A86 "Dutch: 2.c4 Nf6 3.g3 d6" 1.d4 f5 2.c4 Nf6 3.g3 d6 * A86 "Dutch: Hort-Antoshin System" 1.d4 f5 2.c4 Nf6 3.g3 d6 4.Bg2 c6 5.Nc3 Qc7 * A86 "Dutch: Leningrad Variation" 1.d4 f5 2.c4 Nf6 3.g3 g6 * A86 "Dutch: Leningrad, 4.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nc3 * A86 "Dutch: Leningrad, 4.Nc3 Bg7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nc3 Bg7 * A86 "Dutch: Leningrad, 4.Nf3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nf3 * A86 "Dutch: Leningrad, 4.Nf3 Bg7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nf3 Bg7 * A86 "Dutch: Leningrad, 4.Nf3 Bg7 5.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nf3 Bg7 5.Nc3 * A86 "Dutch: Leningrad, 4.Bg2" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 * A86 "Dutch: Leningrad, 4.Bg2 d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 d6 * A86 "Dutch: Leningrad, 4.Bg2 Bg7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 * A86 "Dutch: Leningrad, 4.Bg2 Bg7 5.Nh3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nh3 * A86 "Dutch: Leningrad, 4.Bg2 Bg7 5.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 * A86 "Dutch: Leningrad, 4.Bg2 Bg7 5.Nc3 d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 d6 * A86 "Dutch: Leningrad, 4.Bg2 Bg7 5.Nc3 d6 6.Nh3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 d6 6.Nh3 * A86 "Dutch: Leningrad, 4.Bg2 Bg7 5.Nc3 d6 6.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 d6 6.d5 * A86 "Dutch: Leningrad, 4.Bg2 Bg7 5.Nc3 O-O" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 O-O * A86 "Dutch: Leningrad, 4.Bg2 Bg7 5.Nc3 O-O 6.Nh3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 O-O 6.Nh3 * A87 "Dutch: Leningrad, Main Line" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 * A87 "Dutch: Leningrad, Main Line, 5...d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 * A87 "Dutch: Leningrad, Main Line, 5...d6 6.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.Nc3 * A87 "Dutch: Leningrad, Main Line, 5...O-O" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O * A87 "Dutch: Leningrad, Main Line, 6.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.Nc3 * A87 "Dutch: Leningrad, Main Line, 6.Nc3 d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.Nc3 d6 * A87 "Dutch: Leningrad, Main Line, 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O * A87 "Dutch: Leningrad, Main Line, 6...c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 * A87 "Dutch: Leningrad, Main Line, 6...d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 * A87 "Dutch: Leningrad, Main Line, 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.b3 * A87 "Dutch: Leningrad, Main Line, 7.b3 c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.b3 c6 * A87 "Dutch: Leningrad, Main Line, 7.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.d5 * A87 "Dutch: Leningrad, Main Line, 7.d5 c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.d5 c6 * A87 "Dutch: Leningrad, Main Line, 7.d5 c5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.d5 c5 * A87 "Dutch: Leningrad, Main Line, 7.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 e6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 e6 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Na6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Na6 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8 8.Re1" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8 8.Nd5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Nd5 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8 8.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8 8.d5 a5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 a5 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8 8.d5 Na6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 Na6 * A87 "Dutch: Leningrad, Main Line, 7.Nc3 Qe8 8.d5 Na6 9.Rb1" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 Na6 9.Rb1 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.Re1" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.Re1 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.Qc2 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.b3 Na6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 Na6 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.b3 Qe8" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 Qe8 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.b3 Qa5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 Qa5 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5 cxd5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 cxd5 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5 Qe8" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 Qe8 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5 Qa5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 Qa5 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5 Bd7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 Bd7 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5 e5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 e5 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5 e5 9.dxe6 Bxe6 10.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 e5 9.dxe6 Bxe6 10.b3 * A88 "Dutch: Leningrad, Main Line, 7.Nc3 c6 8.d5 e5 9.dxe6 Bxe6 10.Qd3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 e5 9.dxe6 Bxe6 10.Qd3 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.b3 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5 Na5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Na5 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5 Na5 9.Qd3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Na5 9.Qd3 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5 Na5 9.Nd2" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Na5 9.Nd2 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5 Ne5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 dxe5 10.Qb3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 dxe5 10.Qb3 * A89 "Dutch: Leningrad, Main Line, 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 dxe5 10.e4" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 dxe5 10.e4 * A90 "Dutch: 2.c4 Nf6 3.g3 e6" 1.d4 f5 2.c4 Nf6 3.g3 e6 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nc3 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Nc3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nc3 d5 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Nf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nf3 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Nf3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nf3 d5 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 * A90 "Dutch: Dutch-Indian (Nimzo-Dutch) Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ * A90 "Dutch: Dutch-Indian, 5.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Nc3 * A90 "Dutch: Dutch-Indian, 5.Nd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Nd2 * A90 "Dutch: Dutch-Indian, 5.Bd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Bd2 * A90 "Dutch: Dutch-Indian, Alekhine Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Bd2 Be7 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 d5 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 d5 5.Nh3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 d5 5.Nh3 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 d5 5.Nf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 d5 5.Nf3 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nh3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nh3 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 5.Nf3 d5 6.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.Nc3 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 5.Nf3 d5 6.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.Qc2 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 5.Nf3 d5 6.Qc2 Bd6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.Qc2 Bd6 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 5.Nf3 d5 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.O-O * A90 "Dutch: 2.c4 Nf6 3.g3 e6 5.Nf3 d5 6.O-O Bd6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.O-O Bd6 * A90 "Dutch: 2.c4 Nf6 3.g3 e6 5.Nf3 d5 6.O-O Bd6 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.O-O Bd6 7.b3 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 c6 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 Qe8" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 Qe8 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 d5 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 O-O * A91 "Dutch: Botvinnik-Bronstein Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 O-O 6.e3 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d6 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d6 6.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d6 6.Nc3 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 6.O-O * A91 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 6.O-O c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 6.O-O c6 * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.d5 * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.Nc3 * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.Nc3 d6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.Nc3 d6 * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O * A92 "Dutch: Alekhine Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O Ne4 * A92 "Dutch: Alekhine, 7.d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O Ne4 7.d5 * A92 "Dutch: Alekhine, 7.Nbd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O Ne4 7.Nbd2 * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3 * A92 "Dutch: 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3 a5 * A92 "Dutch: Stonewall Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 * A92 "Dutch: Stonewall, 7.Nbd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nbd2 * A92 "Dutch: Stonewall, 7.Nbd2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nbd2 c6 * A92 "Dutch: Stonewall, 7.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Qc2 * A92 "Dutch: Stonewall, 7.Qc2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Qc2 c6 * A92 "Dutch: Stonewall, 7.Qc2 c6 8.Nbd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Qc2 c6 8.Nbd2 * A93 "Dutch: Stonewall, Botvinnik Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 * A93 "Dutch: Stonewall, Botvinnik, 7...b6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 b6 * A93 "Dutch: Stonewall, Botvinnik, 7...Nc6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 Nc6 * A93 "Dutch: Stonewall, Botvinnik, 7...c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 * A93 "Dutch: Stonewall, Botvinnik, 8.Bb2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Bb2 * A93 "Dutch: Stonewall, Botvinnik, 8.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Qc2 * A93 "Dutch: Stonewall, Botvinnik, 8.Qc2 Ne4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Qc2 Ne4 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Bd7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bd7 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Nbd7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Nbd7 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Nbd7 9.Bxe7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Nbd7 9.Bxe7 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Bxa3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Bxa3 9.Nxa3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Bxa3 9.Nxa3 Nbd7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 Nbd7 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Bxa3 9.Nxa3 Qe7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 Qe7 * A94 "Dutch: Stonewall, Botvinnik, 8.Ba3 Bxa3 9.Nxa3 Qe7 10.Qc1" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 Qe7 10.Qc1 * A92 "Dutch: Stonewall, 7.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 * A95 "Dutch: Stonewall, 7.Nc3 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 * A95 "Dutch: Stonewall, 7.Nc3 c6 8.Ne5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Ne5 * A95 "Dutch: Stonewall, 7.Nc3 c6 8.Bf4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Bf4 * A95 "Dutch: Stonewall, 7.Nc3 c6 8.Bg5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Bg5 * A95 "Dutch: Stonewall, 7.Nc3 c6 8.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Qc2 * A95 "Dutch: Stonewall: Chekhover Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Qc2 Qe8 9.Bg5 * A95 "Dutch: Stonewall, 7.Nc3 c6 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.b3 * A95 "Dutch: Stonewall, 7.Nc3 c6 8.b3 Qe8" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.b3 Qe8 * A96 "Dutch: Classical" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 * A96 "Dutch: Classical, 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 * A96 "Dutch: Classical, 7.b3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 a5 * A96 "Dutch: Classical, 7.b3 a5 8.Bb2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 a5 8.Bb2 * A96 "Dutch: Classical, 7.b3 Qe8" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 Qe8 * A96 "Dutch: Classical, 7.b3 Qe8 8.Bb2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 Qe8 8.Bb2 * A96 "Dutch: Classical, 7.Nc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 * A96 "Dutch: Classical, 7.Nc3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 * A96 "Dutch: Classical, 7.Nc3 a5 8.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 8.Qc2 * A96 "Dutch: Classical, 7.Nc3 a5 8.Re1" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 8.Re1 * A96 "Dutch: Classical, 7.Nc3 a5 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 8.b3 * A97 "Dutch: Ilyin-Zhenevsky Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 * A97 "Dutch: Ilyin-Zhenevsky, 8.b4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b4 * A97 "Dutch: Ilyin-Zhenevsky, Winter Variation" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 * A97 "Dutch: Ilyin-Zhenevsky, Winter, 8...Ne4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Ne4 * A97 "Dutch: Ilyin-Zhenevsky, Winter, 8...Qh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qh5 * A97 "Dutch: Ilyin-Zhenevsky, Winter, 8...Qg6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qg6 * A97 "Dutch: Ilyin-Zhenevsky, Winter, 8...Qg6 9.e4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qg6 9.e4 * A97 "Dutch: Ilyin-Zhenevsky, Winter, 8...Qg6 9.e4 fxe4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qg6 9.e4 fxe4 * A98 "Dutch: Ilyin-Zhenevsky, 8.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Qc2 * A98 "Dutch: Ilyin-Zhenevsky, 8.Qc2 Nc6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Qc2 Nc6 * A98 "Dutch: Ilyin-Zhenevsky, 8.Qc2 Qh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Qc2 Qh5 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 c6 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 Nc6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Nc6 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 Nbd7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Nbd7 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 Qh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Qh5 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 Qh5 9.Bb2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Qh5 9.Bb2 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5 9.Qc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Qc2 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5 9.Ba3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Ba3 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5 9.Bb2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5 9.Bb2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 c6 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5 9.Bb2 Na6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 Na6 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5 9.Bb2 Qh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 Qh5 * A99 "Dutch: Ilyin-Zhenevsky, 8.b3 a5 9.Bb2 Qh5 10.e3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 Qh5 10.e3 * B00a "King's Pawn" 1.e4 * B00a "King's Pawn: Hippopotamus Defence" 1.e4 Nh6 2.d4 g6 3.c4 f6 * B00a "King's Pawn: Fred" 1.e4 f5 * B00b "Reversed Grob (Borg/Basman Defence)" 1.e4 g5 * B00b "Reversed Grob (Borg/Basman Defence)" 1.e4 g5 2.d4 * B00c "St. George Defence" 1.e4 a6 * B00c "St. George Defence" 1.e4 a6 2.d4 * B00c "Basman's Creepy-Crawly System (as Black)" 1.e4 a6 2.d4 h6 * B00d "Owen Defence" 1.e4 b6 * B00d "Owen Defence" 1.e4 b6 2.d4 * B00e "Owen Defence: French" 1.e4 b6 2.d4 e6 * B00f "Owen Defence: 2.d4 Bb7" 1.e4 b6 2.d4 Bb7 * B00f "Owen Defence: Naselwaus Gambit" 1.e4 b6 2.d4 Bb7 3.Bg5 * B00f "Owen Defence: Smith Gambit" 1.e4 b6 2.d4 Bb7 3.Nf3 * B00g "Owen Defence: 3.Bd3" 1.e4 b6 2.d4 Bb7 3.Bd3 * B00g "Owen Defence: Matinovsky Gambit" 1.e4 b6 2.d4 Bb7 3.Bd3 f5 * B00h "Owen Defence: 3.Bd3 Nf6" 1.e4 b6 2.d4 Bb7 3.Bd3 Nf6 * B00i "Owen Defence: 3.Bd3 e6" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 * B00j "Owen Defence: 3.Bd3 e6 4.Nf3" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 4.Nf3 * B00k "Owen Defence: 3.Bd3 e6 4.Nf3 c5" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 4.Nf3 c5 * B00k "Owen Defence: 3.Bd3 e6 4.Nf3 c5 5.c3" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 4.Nf3 c5 5.c3 * B00l "Nimzowitsch Defence" 1.e4 Nc6 * B00l "Nimzowitsch Defence: Wheeler Gambit" 1.e4 Nc6 2.b4 * B00m "Nimzowitsch Defence: 2.Nc3" 1.e4 Nc6 2.Nc3 * B00m "Nimzowitsch Defence: 2.Nc3 Nf6" 1.e4 Nc6 2.Nc3 Nf6 * B00m "Nimzowitsch Defence: 2.Nc3 e6" 1.e4 Nc6 2.Nc3 e6 * B00n "Nimzowitsch Defence: 2.Nf3" 1.e4 Nc6 2.Nf3 * B00n "Nimzowitsch Defence: Colorado Counter" 1.e4 Nc6 2.Nf3 f5 * B00o "Nimzowitsch Defence: 2.Nf3 d6" 1.e4 Nc6 2.Nf3 d6 * B00o "Nimzowitsch Defence: 2.Nf3 d6 3.d4" 1.e4 Nc6 2.Nf3 d6 3.d4 * B00o "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Bg4" 1.e4 Nc6 2.Nf3 d6 3.d4 Bg4 * B00p "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 * B00q "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6 4.Nc3" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 * B00q "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6 4.Nc3 g6" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 g6 * B00r "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 * B00r "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.d5" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.d5 * B00r "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Bb5" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Bb5 * B00r "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Be2" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Be2 * B00s "Nimzowitsch Defence: 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Be3" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Be3 * B00t "Nimzowitsch Defence: 2.d4" 1.e4 Nc6 2.d4 * B00t "Nimzowitsch Defence: 2.d4 d6" 1.e4 Nc6 2.d4 d6 * B00t "Nimzowitsch Defence: 2.d4 d6 3.Nc3" 1.e4 Nc6 2.d4 d6 3.Nc3 * B00u "Nimzowitsch Defence: 2.d4 e5" 1.e4 Nc6 2.d4 e5 * B00u "Nimzowitsch Defence: 2.d4 e5 3.dxe5" 1.e4 Nc6 2.d4 e5 3.dxe5 * B00u "Nimzowitsch Defence: Bielefelder Gambit" 1.e4 Nc6 2.d4 e5 3.dxe5 Bc5 * B00u "Nimzowitsch Defence: 2.d4 e5 3.d5" 1.e4 Nc6 2.d4 e5 3.d5 * B00v "Nimzowitsch Defence: 2.d4 d5" 1.e4 Nc6 2.d4 d5 * B00v "Nimzowitsch Defence: 2.d4 d5 3.exd5" 1.e4 Nc6 2.d4 d5 3.exd5 * B00v "Nimzowitsch Defence: Aachen Gambit" 1.e4 Nc6 2.d4 d5 3.exd5 Nb4 * B00v "Nimzowitsch Defence: 2.d4 d5 3.exd5 Qxd5" 1.e4 Nc6 2.d4 d5 3.exd5 Qxd5 * B00v "Nimzowitsch Defence: Marshall Gambit" 1.e4 Nc6 2.d4 d5 3.exd5 Qxd5 4.Nc3 * B00v "Nimzowitsch Defence: 2.d4 d5 3.exd5 Qxd5 4.Nf3" 1.e4 Nc6 2.d4 d5 3.exd5 Qxd5 4.Nf3 * B00w "Nimzowitsch Defence: Bogoljubow Variation" 1.e4 Nc6 2.d4 d5 3.Nc3 * B00w "Nimzowitsch Defence: Bogoljubow, 3...e5" 1.e4 Nc6 2.d4 d5 3.Nc3 e5 * B00w "Nimzowitsch Defence: Bogoljubow, 3...Nf6" 1.e4 Nc6 2.d4 d5 3.Nc3 Nf6 * B00w "Nimzowitsch Defence: Bogoljubow, 3...dxe4" 1.e4 Nc6 2.d4 d5 3.Nc3 dxe4 * B00x "Nimzowitsch Defence: 2.d4 d5 3.e5" 1.e4 Nc6 2.d4 d5 3.e5 * B00x "Nimzowitsch Defence: 2.d4 d5 3.e5 Bf5" 1.e4 Nc6 2.d4 d5 3.e5 Bf5 * B00x "Nimzowitsch Defence: 2.d4 d5 3.e5 Bf5 4.c3" 1.e4 Nc6 2.d4 d5 3.e5 Bf5 4.c3 * B01a "Scandinavian (Centre Counter)" 1.e4 d5 * # 1.e4 d5 2.Nc3 is listed under A00: 1.Nc3 d5 2.e4 # 1.e4 d5 2.Nf3 is listed under A06: 1.Nf3 d5 2.e4 B01a "Scandinavian: 2.d3" 1.e4 d5 2.d3 * B01a "Scandinavian: 2.e5" 1.e4 d5 2.e5 * B01a "Scandinavian: 2.exd5" 1.e4 d5 2.exd5 * B01a "Scandinavian: Boehnke Gambit" 1.e4 d5 2.exd5 e5 * B01b "Scandinavian: 2...Qxd5" 1.e4 d5 2.exd5 Qxd5 * B01b "Scandinavian: 2...Qxd5 3.Nf3" 1.e4 d5 2.exd5 Qxd5 3.Nf3 * B01b "Scandinavian: 2...Qxd5 3.Nf3 Nf6" 1.e4 d5 2.exd5 Qxd5 3.Nf3 Nf6 * B01b "Scandinavian: 2...Qxd5 3.d4" 1.e4 d5 2.exd5 Qxd5 3.d4 * # 2...Qxd5 3.d4 Nc6 is B00: Nimzowitsch, 2.d4 d5 3.exd5 Qxd5 B01b "Scandinavian: 2...Qxd5 3.d4 Nf6" 1.e4 d5 2.exd5 Qxd5 3.d4 Nf6 * B01b "Scandinavian: 2...Qxd5 3.d4 e5" 1.e4 d5 2.exd5 Qxd5 3.d4 e5 * B01b "Scandinavian: 2...Qxd5 3.Nc3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 * B01c "Scandinavian: 2...Qxd5 3.Nc3 Qd8" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd8 * B01d "Scandinavian: Schiller Defence" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd6 * B01d "Scandinavian: Schiller, 4.d4 Nf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd6 4.d4 Nf6 * B01d "Scandinavian: Schiller, Bronstein Variation" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd6 4.d4 Nf6 5.Nf3 a6 * B01e "Scandinavian: 2...Qxd5 3.Nc3 Qa5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 * B01e "Scandinavian, Mieses Gambit" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.b4 * B01e "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.g3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.g3 * B01e "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.Bc4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Bc4 * B01e "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.Bc4 Nf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Bc4 Nf6 * B01f "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.Nf3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Nf3 * B01f "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.Nf3 Nf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Nf3 Nf6 * B01f "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.Nf3 Nf6 5.Be2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Nf3 Nf6 5.Be2 * B01g "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.d4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 * B01g "Scandinavian: Anderssen Counterattack" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 * B01g "Scandinavian: Anderssen Counterattack, Goteborg Variation" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 5.Nf3 * B01g "Scandinavian: Anderssen Counterattack, Collijn Variation" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 5.Nf3 Bg4 * B01g "Scandinavian: Anderssen Counterattack, 5.dxe5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 5.dxe5 * B01h "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.d4 c6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 c6 * B01h "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.d4 c6 5.Bc4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 c6 5.Bc4 * B01h "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.d4 c6 5.Nf3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 c6 5.Nf3 * B01i "Scandinavian: 2...Qxd5 3.Nc3 Qa5 4.d4 Nf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 * B01i "Scandinavian: 2...Qxd5, 5.Bd2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bd2 * B01i "Scandinavian: 2...Qxd5, 5.Bd2 c6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bd2 c6 * B01i "Scandinavian: 2...Qxd5, 5.Bc4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bc4 * B01i "Scandinavian: 2...Qxd5, 5.Bc4 c6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bc4 c6 * B01j "Scandinavian: 2...Qxd5, 5.Nf3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 * B01j "Scandinavian: 2...Qxd5, 5.Nf3 Bg4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bg4 * B01k "Scandinavian: Lasker Variation" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bg4 6.h3 * B01l "Scandinavian: 2...Qxd5, 5.Nf3 Bf5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bf5 * B01l "Scandinavian: Gruenfeld Variation" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bf5 6.Ne5 c6 7.g4 * B01l "Scandinavian: 2...Qxd5, 5.Nf3 Bf5 6.Bc4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bf5 6.Bc4 * B01m "Scandinavian: 2...Qxd5, Main Line" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 * B01n "Scandinavian: 2...Qxd5, Main Line, 6.Bc4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 * B01n "Scandinavian: 2...Qxd5, Main Line, 6.Bc4 Bg4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bg4 * B01o "Scandinavian: 2...Qxd5, Main Line, 6.Bc4 Bf5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 * B01p "Scandinavian: 2...Qxd5, Main Line, 6.Bc4 Bf5 7.Bd2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 * B01p "Scandinavian: 2...Qxd5, Main Line, 6.Bc4 Bf5 7.Bd2 e6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 * B01p "Scandinavian: 2...Qxd5, Main Line, 8.Nd5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Nd5 * B01q "Scandinavian: 2...Qxd5, Main Line, 8.Qe2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 * B01q "Scandinavian: 2...Qxd5, Main Line, 8.Qe2 Bb4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 Bb4 * B01q "Scandinavian: 2...Qxd5, Main Line, 8.Qe2 Bb4 9.a3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 Bb4 9.a3 * B01q "Scandinavian: 2...Qxd5, Main Line, 8.Qe2 Bb4 9.O-O-O" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 Bb4 9.O-O-O * B01r "Scandinavian: 2...Nf6" 1.e4 d5 2.exd5 Nf6 * B01r "Scandinavian: 2...Nf6 3.Bc4" 1.e4 d5 2.exd5 Nf6 3.Bc4 * B01r "Scandinavian: 2...Nf6 3.Nf3" 1.e4 d5 2.exd5 Nf6 3.Nf3 * B01r "Scandinavian: 2...Nf6 3.Nf3 Nxd5" 1.e4 d5 2.exd5 Nf6 3.Nf3 Nxd5 * # 3.Nc3 here is Alekhine Defence (B02): 1.e4 Nf6 2.Nc3 d5 3.exd5 B01s "Scandinavian: 2...Nf6 3.Bb5+" 1.e4 d5 2.exd5 Nf6 3.Bb5+ * B01s "Scandinavian: 2...Nf6 3.Bb5+ Nbd7" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Nbd7 * B01s "Scandinavian: 2...Nf6 3.Bb5+ Bd7" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 * B01s "Scandinavian: 2...Nf6 3.Bb5+ Bd7 4.Bc4" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Bc4 * B01s "Scandinavian: 2...Nf6 3.Bb5+ Bd7 4.Bc4 Bg4" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Bc4 Bg4 * B01s "Scandinavian: 2...Nf6 3.Bb5+ Bd7 4.Be2" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Be2 * B01s "Scandinavian: 2...Nf6 3.Bb5+ Bd7 4.Be2 Nxd5 5.d4 Bf5" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Be2 Nxd5 5.d4 Bf5 * B01t "Scandinavian: 2...Nf6 3.c4" 1.e4 d5 2.exd5 Nf6 3.c4 * B01t "Scandinavian: Scandinavian Gambit" 1.e4 d5 2.exd5 Nf6 3.c4 c6 * B01t "Scandinavian: Scandinavian Gambit Accepted" 1.e4 d5 2.exd5 Nf6 3.c4 c6 4.dxc6 * B01t "Scandinavian: Icelandic Gambit" 1.e4 d5 2.exd5 Nf6 3.c4 e6 * B01t "Scandinavian: Icelandic Gambit Accepted" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 * B01t "Scandinavian: Icelandic Gambit Accepted" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 Bxe6 * B01t "Scandinavian: Icelandic Gambit, 5.d4" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 Bxe6 5.d4 * B01t "Scandinavian: Icelandic Gambit, 5.Nf3" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 Bxe6 5.Nf3 * B01u "Scandinavian: 2...Nf6 3.d4" 1.e4 d5 2.exd5 Nf6 3.d4 * B01u "Scandinavian: Richter Variation" 1.e4 d5 2.exd5 Nf6 3.d4 g6 * B01u "Scandinavian: Portuguese Variation" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 * B01u "Scandinavian: Portuguese, 4.Bb5+" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Bb5+ * B01u "Scandinavian: Portuguese, 4.Nf3" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 * B01u "Scandinavian: Portuguese, 4.Nf3 Qxd5" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 Qxd5 * B01u "Scandinavian: Portuguese, 4.Nf3 Qxd5 5.Be2" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 Qxd5 5.Be2 * B01u "Scandinavian: Portuguese, 4.Nf3 Qxd5 5.Be2 Nc6" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 Qxd5 5.Be2 Nc6 * B01u "Scandinavian: Portuguese, 4.Be2" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Be2 * B01u "Scandinavian: Portuguese, 4.Be2 Bxe2" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Be2 Bxe2 * B01v "Scandinavian: Portuguese, 4.f3" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 * B01v "Scandinavian: Portuguese, 4.f3 Bf5" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 * B01v "Scandinavian: Portuguese, 4.f3 Bf5 5.c4" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.c4 * B01v "Scandinavian: Portuguese, 4.f3 Bf5 5.Bb5+" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.Bb5+ * B01v "Scandinavian: Portuguese, 4.f3 Bf5 5.Bb5+ Nbd7" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.Bb5+ Nbd7 * B01v "Scandinavian: Portuguese, 4.f3 Bf5 5.Bb5+ Nbd7 6.c4" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.Bb5+ Nbd7 6.c4 * B01w "Scandinavian: Marshall Variation" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 * B01w "Scandinavian: Marshall, 4.Nf3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 * B01w "Scandinavian: Marshall, 4.Nf3 Bf5" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bf5 * B01w "Scandinavian: Marshall, 4.Nf3 Bg4" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bg4 * B01w "Scandinavian: Marshall, 4.Nf3 Bg4 5.Be2" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bg4 5.Be2 * B01w "Scandinavian: Marshall, 4.Nf3 Bg4 5.Be2 e6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bg4 5.Be2 e6 * B01x "Scandinavian: Marshall, 4.Nf3 g6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 g6 * B01x "Scandinavian: Marshall, 4.Nf3 g6 5.Be2" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 g6 5.Be2 * B01x "Scandinavian: Marshall, 4.Nf3 g6 5.Be2 Bg7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 g6 5.Be2 Bg7 * B01y "Scandinavian: Marshall, 4.c4" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 * B01y "Scandinavian: Marshall, 4.c4 Nf6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nf6 * B01y "Scandinavian: Marshall, 4.c4 Nb6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 * B01y "Scandinavian: Marshall, 4.c4 Nb6 5.Nc3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nc3 * B01y "Scandinavian: Marshall, 4.c4 Nb6 5.Nc3 e5" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nc3 e5 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 Bg4" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 Bg4 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 Bg4 6.Be2 e6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 Bg4 6.Be2 e6 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 Bg4 6.c5" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 Bg4 6.c5 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 g6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 g6 6.Be2" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Be2 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 g6 6.Be2 Bg7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Be2 Bg7 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 g6 6.h3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.h3 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 g6 6.h3 Bg7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.h3 Bg7 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 g6 6.Nc3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Nc3 * B01z "Scandinavian: Marshall, 4.c4 Nb6 5.Nf3 g6 6.Nc3 Bg7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Nc3 Bg7 * B02a "Alekhine Defence" 1.e4 Nf6 * B02a "Alekhine: Krejcik Variation" 1.e4 Nf6 2.Bc4 * B02b "Alekhine: Maroczy Variation" 1.e4 Nf6 2.d3 * B02c "Alekhine: Scandinavian Variation" 1.e4 Nf6 2.Nc3 * B02c "Alekhine: Scandinavian Variation" 1.e4 Nf6 2.Nc3 d5 * B02d "Alekhine: Scandinavian, 3.e5" 1.e4 Nf6 2.Nc3 d5 3.e5 * B02e "Alekhine: Scandinavian, 3.e5 Ne4" 1.e4 Nf6 2.Nc3 d5 3.e5 Ne4 * B02f "Alekhine: Scandinavian, 3.e5 Nfd7" 1.e4 Nf6 2.Nc3 d5 3.e5 Nfd7 * B02f "Alekhine: Spielmann Gambit" 1.e4 Nf6 2.Nc3 d5 3.e5 Nfd7 4.e6 * B02g "Alekhine: Scandinavian, Exchange" 1.e4 Nf6 2.Nc3 d5 3.exd5 * B02g "Alekhine: Scandinavian, Geschev Gambit" 1.e4 Nf6 2.Nc3 d5 3.exd5 c6 * B02g "Alekhine: Scandinavian, Exchange" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 * B02g "Alekhine: Scandinavian, Exchange, 4.Nf3" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Nf3 * B02h "Alekhine: Scandinavian, Exchange, 4.Nxd5" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Nxd5 * B02h "Alekhine: Scandinavian, Exchange, 4.Nxd5" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Nxd5 Qxd5 * B02i "Alekhine: Scandinavian, Exchange, 4.Bc4" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Bc4 * B02j "Alekhine: Scandinavian, Exchange, 4.Bc4 e6" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Bc4 e6 * B02k "Alekhine: Scandinavian, Exchange, 4.Bc4 Nb6" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Bc4 Nb6 * B02l "Alekhine: 2.e5" 1.e4 Nf6 2.e5 * B02l "Alekhine: Mokele Mbembe (Buecker) Variation" 1.e4 Nf6 2.e5 Ne4 * B02l "Alekhine: Brooklyn Defence (Retreat Variation)" 1.e4 Nf6 2.e5 Ng8 * B02m "Alekhine: 2.e5 Nd5" 1.e4 Nf6 2.e5 Nd5 * B02m "Alekhine: Welling Variation" 1.e4 Nf6 2.e5 Nd5 3.b3 * B02n "Alekhine: 3.Bc4" 1.e4 Nf6 2.e5 Nd5 3.Bc4 * B02n "Alekhine: Kmoch Variation" 1.e4 Nf6 2.e5 Nd5 3.Bc4 Nb6 4.Bb3 c5 5.d3 * B02o "Alekhine: Saemisch Attack" 1.e4 Nf6 2.e5 Nd5 3.Nc3 * B02p "Alekhine: Saemisch Attack, 3...Nxc3" 1.e4 Nf6 2.e5 Nd5 3.Nc3 Nxc3 * B02q "Alekhine: Saemisch Attack, 3...Nxc3 4.dxc3" 1.e4 Nf6 2.e5 Nd5 3.Nc3 Nxc3 4.dxc3 * B02r "Alekhine: Chase Variation" 1.e4 Nf6 2.e5 Nd5 3.c4 * B02r "Alekhine: Chase Variation" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 * B02r "Alekhine: Chase, Steiner Variation" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.b3 * B02s "Alekhine: Two Pawns (Lasker) Attack" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 * B02t "Alekhine: Two Pawns Attack, 5.Nc3" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 Nd5 5.Nc3 * B02u "Alekhine: Two Pawns Attack, 5.Bc4" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 Nd5 5.Bc4 * B02u "Alekhine: Two Pawns Attack, Mikenas Variation" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 Nd5 5.Bc4 e6 6.Nc3 d6 * B03a "Alekhine: 3.d4" 1.e4 Nf6 2.e5 Nd5 3.d4 * B03a "Alekhine: O'Sullivan Gambit" 1.e4 Nf6 2.e5 Nd5 3.d4 b5 * B03b "Alekhine: 3.d4 d6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 * B03c "Alekhine: 3.d4 d6 4.exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.exd6 * B03d "Alekhine: Balogh Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Bc4 * B03e "Alekhine: 4.c4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 * B03e "Alekhine: 4.c4 Nb6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 * B03f "Alekhine: 4.c4 Nb6 5.Nf3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.Nf3 * B03g "Alekhine: Four Pawns Attack" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 * B03g "Alekhine: Four Pawns Attack, Planinc Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 g5 * B03h "Alekhine: Four Pawns Attack, Trifunovic Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 Bf5 * B03i "Alekhine: Four Pawns Attack, Fianchetto Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 g6 * B03j "Alekhine: Four Pawns Attack, 5...dxe5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 * B03j "Alekhine: Four Pawns Attack, 5...dxe5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 * B03k "Alekhine: Four Pawns Attack, 6...c5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 c5 * B03l "Alekhine: Four Pawns Attack, 6...Bf5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Bf5 * B03l "Alekhine: Four Pawns Attack, Fahrni Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Bf5 7.Nc3 e6 8.Nf3 Bb4 9.Bd3 * B03l "Alekhine: Four Pawns Attack, Korchnoi Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Bf5 7.Nc3 e6 8.Nf3 Be7 9.Be2 O-O 10.O-O f6 * B03m "Alekhine: Four Pawns Attack, 6...Nc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Nc6 * B03m "Alekhine: Four Pawns Attack, Ilyin-Zhenevsky Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Nc6 7.Nf3 Bg4 8.e6 fxe6 9.c5 * B03n "Alekhine: Four Pawns Attack, 7.Be3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Nc6 7.Be3 * B03o "Alekhine: Exchange Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 * B03o "Alekhine: Exchange, 5...exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 exd6 * B03p "Alekhine: Exchange, 5...exd6 6.Nc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 exd6 6.Nc3 * B03q "Alekhine: Exchange, 5...exd6 6.Nc3 Be7" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 exd6 6.Nc3 Be7 * B03r "Alekhine: Exchange, 5...cxd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 cxd6 * B03s "Alekhine: Exchange, 5...cxd6 6.Nc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 cxd6 6.Nc3 * B03t "Alekhine: Exchange, 5...cxd6 6.Nc3 g6 7.Be3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 cxd6 6.Nc3 g6 7.Be3 * B04a "Alekhine: Modern Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 * B04b "Alekhine: Modern, 4...Nc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Nc6 * B04c "Alekhine: Modern, 4...c6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 c6 * B04d "Alekhine: Modern, 4...c6 5.c4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 c6 5.c4 * B04e "Alekhine: Modern, Schmid Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Nb6 * B04f "Alekhine: Modern, Larsen Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 * B04g "Alekhine: Modern, Larsen, 5.Nxe5 g6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 5.Nxe5 g6 * B04h "Alekhine: Modern, Larsen, 5.Nxe5 g6 6.Bc4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 5.Nxe5 g6 6.Bc4 * B04i "Alekhine: Modern, Larsen, 5.Nxe5 g6 6.Bc4 c6 7.O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 5.Nxe5 g6 6.Bc4 c6 7.O-O * B04j "Alekhine: Modern, Fianchetto Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 * B04k "Alekhine: Modern, Fianchetto, 5.Bc4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 * B04l "Alekhine: Modern, Fianchetto, 5.Bc4 Nb6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 * B04m "Alekhine: Modern, Fianchetto, 5.Bc4 Nb6 6.Bb3 Bg7" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 6.Bb3 Bg7 * B04n "Alekhine: Modern, Fianchetto, Keres Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 6.Bb3 Bg7 7.a4 * B04o "Alekhine: Modern, Fianchetto, 5.Bc4 Nb6 6.Bb3 Bg7 7.Ng5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 6.Bb3 Bg7 7.Ng5 * B05a "Alekhine: Modern, 4...Bg4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 * B05b "Alekhine: Modern, Panov Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.h3 * B05c "Alekhine: Modern, Alekhine Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 * B05c "Alekhine: Modern, Alekhine Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 * B05d "Alekhine: Modern, Alekhine Variation, 6.exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 6.exd6 * B05d "Alekhine: Modern, Alekhine Variation, 6.exd6 cxd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 6.exd6 cxd6 * B05e "Alekhine: Modern, Alekhine Variation, 6.exd6 exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 6.exd6 exd6 * B05f "Alekhine: Modern, 5.Be2" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 * B05g "Alekhine: Modern, 5.Be2 Nc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 Nc6 * B05h "Alekhine: Modern, Flohr Variation" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 c6 * B05i "Alekhine: Modern, Flohr, 6.c4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 c6 6.c4 * B05j "Alekhine: Modern, Flohr, 6.O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 c6 6.O-O * B05k "Alekhine: Modern, 5.Be2 e6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 * B05l "Alekhine: Modern, 5.Be2 e6 6.O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O * B05m "Alekhine: Modern, Main Line" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 * B05n "Alekhine: Modern, Main Line, 8.h3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 * B05n "Alekhine: Modern, Main Line, 8.h3 Bh5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 * B05o "Alekhine: Modern, Main Line, 8.h3 Bh5 9.Nc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 * B05o "Alekhine: Modern, Main Line, 8.h3 Bh5 9.Nc3 O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 O-O * B05o "Alekhine: Modern, Main Line, 8.h3 Bh5 9.Nc3 O-O 10.Be3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 O-O 10.Be3 * B05p "Alekhine: Modern, Main Line, 8.h3 Bh5 9.Nc3 O-O 10.Be3 d5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 O-O 10.Be3 d5 * B05q "Alekhine: Modern, Main Line, 8.exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.exd6 * B05r "Alekhine: Modern, Main Line, 8.Nc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 * B05s "Alekhine: Modern, Main Line, 8.Nc3 O-O 9.Be3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 O-O 9.Be3 * B05t "Alekhine: Modern, Main Line, 8.Nc3 O-O 9.Be3 Nc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 O-O 9.Be3 Nc6 * B05u "Alekhine: Modern, Main Line, 8.Nc3 O-O 9.Be3 Nc6 10.exd6 cxd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 O-O 9.Be3 Nc6 10.exd6 cxd6 * B06a "Modern" 1.e4 g6 * B06b "Modern" 1.e4 g6 2.Nc3 * B06b "Modern" 1.e4 g6 2.Nc3 d6 * B06b "Modern" 1.e4 g6 2.Nc3 Bg7 * B06c "Modern" 1.e4 g6 2.Nc3 Bg7 3.f4 d6 * B06c "Modern" 1.e4 g6 2.f4 * B06c "Modern" 1.e4 g6 2.f4 d6 * B06c "Modern" 1.e4 g6 2.f4 Bg7 3.Nf3 * B06c "Modern" 1.e4 g6 2.f4 Bg7 3.Nf3 d6 * B06d "Modern" 1.e4 g6 2.d4 * B06d "Modern: Norwegian Defence" 1.e4 g6 2.d4 Nf6 * B06d "Modern: Norwegian Defence" 1.e4 g6 2.d4 Nf6 3.e5 Nh5 4.g4 Ng7 * B06d "Modern" 1.e4 g6 2.d4 c6 * B06e "Modern" 1.e4 g6 2.d4 d6 * B06f "Modern" 1.e4 g6 2.d4 Bg7 * B06f "Modern: 3.Bc4" 1.e4 g6 2.d4 Bg7 3.Bc4 * B06g "Modern: 3.c3" 1.e4 g6 2.d4 Bg7 3.c3 * B06g "Modern: 3.c3" 1.e4 g6 2.d4 Bg7 3.c3 d6 * B06g "Modern: c3 Pterodactyl" 1.e4 g6 2.d4 Bg7 3.c3 d6 4.f4 c5 * B06h "Modern: Geller System" 1.e4 g6 2.d4 Bg7 3.c3 d6 4.Nf3 * B06i "Modern: 3.Nf3" 1.e4 g6 2.d4 Bg7 3.Nf3 * B06j "Modern: 3.Nf3 d6" 1.e4 g6 2.d4 Bg7 3.Nf3 d6 * B06k "Modern: 3.Nf3 d6 4.Bc4" 1.e4 g6 2.d4 Bg7 3.Nf3 d6 4.Bc4 * B06l "Modern: 3.Nc3" 1.e4 g6 2.d4 Bg7 3.Nc3 * B06l "Modern: Mittenberger Gambit" 1.e4 g6 2.d4 Bg7 3.Nc3 d5 * B06l "Modern: Nc3 Pterodactyl" 1.e4 g6 2.d4 Bg7 3.Nc3 c5 * B06m "Modern: 3.Nc3" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 * B06n "Modern: 3.Nc3 d6 4.Bc4" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 * B06n "Modern: 3.Nc3 d6 4.Bc4" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 * B06n "Modern: 3.Nc3 d6 4.Bc4" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 5.Qf3 * B06n "Modern: 3.Nc3 d6 4.Bc4" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 5.Qf3 Nf6 * B06n "Modern: 3.Nc3 d6 4.Bc4" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 5.Qf3 e6 * B06o "Modern: 3.Nc3 d6 4.Be3" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Be3 * B06p "Modern: 3.Nc3 d6 4.Be3 a6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Be3 a6 * B06q "Modern: 3.Nc3 d6 4.Be3 c6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Be3 c6 * B06r "Modern: Two Knights Variation" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Nf3 * B06r "Modern: Two Knights, Suttles Variation" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Nf3 c6 * B06r "Modern: Two Knights, Suttles, Tal Gambit" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Nf3 c6 5.Bg5 Qb6 6.Qd2 * B06s "Modern: Pseudo-Austrian Attack" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 * B06s "Modern: Pseudo-Austrian Attack" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 c6 * B06t "Modern: Pseudo-Austrian Attack" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 c6 5.Nf3 * B06t "Modern: Pseudo-Austrian Attack" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 Nc6 * B06u "Modern: Three Pawns Attack" 1.e4 g6 2.d4 Bg7 3.f4 * B07a "Pirc" 1.e4 d6 * B07a "Pirc" 1.e4 d6 2.g3 * B07a "Pirc" 1.e4 d6 2.c4 * B07a "Pirc: 2.Nc3" 1.e4 d6 2.Nc3 * B07a "Pirc: 2.Nc3" 1.e4 d6 2.Nc3 Nf6 * B07b "Pirc: 2.Nf3" 1.e4 d6 2.Nf3 * B07b "Pirc/Reti: Wade Defence" 1.e4 d6 2.Nf3 Bg4 * B07b "Pirc: 2.Nf3 Nf6" 1.e4 d6 2.Nf3 Nf6 * B07b "Pirc: 2.Nf3 Nf6 3.Nc3" 1.e4 d6 2.Nf3 Nf6 3.Nc3 * B07c "Pirc: 2.f4" 1.e4 d6 2.f4 * B07c "Pirc: 2.f4 Nf6" 1.e4 d6 2.f4 Nf6 * B07c "Pirc: 2.f4 Nf6 3.Nc3" 1.e4 d6 2.f4 Nf6 3.Nc3 * B07c "Pirc: 2.f4 Nf6 3.Nc3 g6 4.Nf3 Bg7" 1.e4 d6 2.f4 Nf6 3.Nc3 g6 4.Nf3 Bg7 * B07d "Pirc: 2.d4" 1.e4 d6 2.d4 * B07d "Pirc: 2.d4 c6" 1.e4 d6 2.d4 c6 * B07d "Pirc: Lengfellner System" 1.e4 d6 2.d4 e6 * B07d "Pirc: 2.d4 Nd7" 1.e4 d6 2.d4 Nd7 * B07d "Pirc: 2.d4 Nf6" 1.e4 d6 2.d4 Nf6 * B07d "Pirc: Roscher Gambit" 1.e4 d6 2.d4 Nf6 3.Nf3 * B07d "Pirc: 3.Nbd2" 1.e4 d6 2.d4 Nf6 3.Nbd2 * B07d "Pirc: 3.Nbd2 g6" 1.e4 d6 2.d4 Nf6 3.Nbd2 g6 * B07d "Pirc: 3.Nbd2 g6" 1.e4 d6 2.d4 Nf6 3.Nbd2 g6 4.c3 Bg7 * B07e "Pirc: 3.f3" 1.e4 d6 2.d4 Nf6 3.f3 * B07f "Pirc: 3.f3 e5" 1.e4 d6 2.d4 Nf6 3.f3 e5 * B07f "Pirc: 3.f3 e5 Queenswap" 1.e4 d6 2.d4 Nf6 3.f3 e5 4.dxe5 dxe5 5.Qxd8+ * B07f "Pirc: 3.f3 e5 4.d5" 1.e4 d6 2.d4 Nf6 3.f3 e5 4.d5 * B07g "Pirc: 3.f3 g6" 1.e4 d6 2.d4 Nf6 3.f3 g6 * B07h "Pirc: 3.Bd3" 1.e4 d6 2.d4 Nf6 3.Bd3 * B07h "Pirc: 3.Bd3 e5" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 * B07h "Pirc: 3.Bd3 e5 4.c3 d5" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 4.c3 d5 * B07h "Pirc: 3.Bd3 e5 4.c3 d5" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 4.c3 d5 5.dxe5 dxe4 * B07h "Pirc: 3.Bd3 e5 4.c3 d5" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 4.c3 d5 5.dxe5 Nxe4 * B07i "Pirc: 3.Bd3 g6" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 * B07i "Pirc: 3.Bd3 g6" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 4.Nf3 * B07i "Pirc: 3.Bd3 g6" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 4.Nf3 Bg7 * B07j "Pirc: 3.Bd3 g6 4.Nf3 Bg7 5.c3" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 4.Nf3 Bg7 5.c3 * B07k "Pirc: 3.Nc3" 1.e4 d6 2.d4 Nf6 3.Nc3 * B07l "Pirc: 3.Nc3 Nbd7" 1.e4 d6 2.d4 Nf6 3.Nc3 Nbd7 * B07m "Pirc: 3.Nc3 e5" 1.e4 d6 2.d4 Nf6 3.Nc3 e5 * B07m "Pirc: 3.Nc3 e5 Queenswap" 1.e4 d6 2.d4 Nf6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ * B07n "Pirc: Pytel/Czech" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 * B07o "Pirc: Czech, 4.Nf3" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 4.Nf3 * B07p "Pirc: Czech, 4.f4" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 4.f4 * B07p "Pirc: Czech, 4.f4 Qa5" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 4.f4 Qa5 * B07q "Pirc: 3...g6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 * B07q "Pirc: 3...g6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.h4 * B07q "Pirc: 4.Nge2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nge2 * B07q "Pirc: 4.Nge2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nge2 Bg7 * B07r "Pirc: Sveshnikov (4.g3)" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.g3 * B07r "Pirc: Sveshnikov (4.g3)" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.g3 Bg7 * B07r "Pirc: Sveshnikov (4.g3)" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.g3 Bg7 5.Bg2 c6 * B07s "Pirc: Holmov (4.Bc4)" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bc4 * B07s "Pirc: Holmov (4.Bc4)" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bc4 Bg7 * B07t "Pirc: 4.Be3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 * B07t "Pirc: 4.Be3 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 c6 * B07u "Pirc: 4.Be3 Bg7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 * B07u "Pirc: 4.Be3, 150 Attack" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 5.Qd2 * B07v "Pirc: 4.Be3, 150 Attack" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 5.Qd2 c6 * B07v "Pirc: 4.Be3, 150 Attack" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 5.Qd2 c6 6.f3 b5 * B07w "Pirc: Byrne 4.Bg5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bg5 * B07x "Pirc: 4.Bg5 Bg7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bg5 Bg7 * B07y "Pirc: 4.Be2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 * B07y "Pirc: 4.Be2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 Bg7 * B07y "Pirc: Chinese Variation" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 Bg7 5.g4 * B07z "Pirc: Bayonet/Mariotti Attack" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 Bg7 5.h4 * # Many of the B08 lines with ..c6 are reached by the Modern (B06) move order # with 5...Nf6 -- hence all the lines ending with ...c6 here to catch # transpositions. B08a "Pirc: Classical" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 * B08a "Pirc: Classical" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 * B08b "Pirc: Classical, 5.h3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 * B08b "Pirc: Classical, 5.h3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 c6 * B08b "Pirc: Classical, 5.h3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O * B08c "Pirc: Classical, Spassky System" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 * B08c "Pirc: Classical, Spassky System, 6...d5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 d5 * B08d "Pirc: Classical, Spassky System, 6...a6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 a6 * B08e "Pirc: Classical, Spassky System, 6...c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 c6 * B08f "Pirc: Classical, 5.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.a4 * B08f "Pirc: Classical, 5.a4 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.a4 c6 * B08g "Pirc: Classical, 5.Bc4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bc4 * B08g "Pirc: Classical, 5.Bc4 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bc4 c6 * B08h "Pirc: Classical, 5.Be3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be3 * B08h "Pirc: Classical, 5.Be3 a6 6.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be3 a6 6.a4 * B08i "Pirc: Classical, 5.Be3 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be3 c6 * B08j "Pirc: Classical, 5.Be2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 * B08j "Pirc: Classical, 5.Be2 a6 6.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 a6 6.a4 * B08k "Pirc: Classical, 5.Be2 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 c6 * B08l "Pirc: Classical, 5.Be2 O-O" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O * B08m "Pirc: Classical, 5.Be2 O-O 6.Be3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.Be3 * B08n "Pirc: Classical, 5.Be2 O-O 6.O-O" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O * B08o "Pirc: Classical, 5.Be2 O-O 6.O-O Nc6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Nc6 * B08p "Pirc: Classical, 5.Be2 O-O 6.O-O c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 * B08q "Pirc: Classical, 5.Be2 O-O 6.O-O c6 7.h3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 7.h3 * B08r "Pirc: Classical, 5.Be2 O-O 6.O-O c6 7.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 7.a4 * B08s "Pirc: Classical, 5.Be2 O-O 6.O-O c6 7.a4 Nbd7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 7.a4 Nbd7 * B08t "Pirc: Classical, 5.Be2 O-O 6.O-O Bg4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Bg4 * B08u "Pirc: Classical, 5.Be2 O-O 6.O-O Bg4 7.Be3 Nc6 8.Qd2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Bg4 7.Be3 Nc6 8.Qd2 * B08v "Pirc: Classical, 5.Be2 O-O 6.O-O Bg4 7.Be3 Nc6 8.Qd2 e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Bg4 7.Be3 Nc6 8.Qd2 e5 * B09a "Pirc: Austrian Attack" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 * B09b "Pirc: Austrian Attack" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 * B09c "Pirc: Austrian, Ljubojevic Variation" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Bc4 * B09d "Pirc: Austrian, 5.Nf3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 * B09e "Pirc: Austrian, 5...O-O" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O * B09f "Pirc: Austrian, 5...O-O 6.e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.e5 * B09g "Pirc: Austrian, 5...O-O 6.Be3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Be3 * B09h "Pirc: Austrian, 5...O-O 6.Be2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Be2 * B09i "Pirc: Austrian, 5...O-O 6.Bd3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 * B09j "Pirc: Austrian, 5...O-O 6.Bd3 Nc6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Nc6 * B09k "Pirc: Austrian, 5...O-O 6.Bd3 Nc6 7.e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Nc6 7.e5 * B09l "Pirc: Austrian, 5...O-O 6.Bd3 Na6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 * B09m "Pirc: Austrian, 5...O-O 6.Bd3 Na6 7.O-O c5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 7.O-O c5 * B09m "Pirc: Austrian, 5...O-O 6.Bd3 Na6 7.O-O c5 8.d5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 7.O-O c5 8.d5 * B09n "Pirc: Austrian, 5...O-O 6.Bd3 Na6 7.O-O c5 8.d5 Bg4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 7.O-O c5 8.d5 Bg4 * B09o "Pirc: Austrian, 5...c5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 * B09p "Pirc: Austrian, 5...c5 6.dxc5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.dxc5 * B09q "Pirc: Austrian, 5...c5 6.dxc5 Qa5 7.Bd3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.dxc5 Qa5 7.Bd3 * B09r "Pirc: Austrian, 5...c5 6.Bb5+" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ * B09s "Pirc: Austrian, 5...c5 6.Bb5+" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 * B09t "Pirc: Austrian, 5...c5 6.Bb5+ Bd7 7.e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 * B09u "Pirc: Austrian, 5...c5 6.Bb5+ Bd7 7.e5 Ng4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 * B09v "Pirc: Austrian, 5...c5 6.Bb5+ Bd7 7.e5 Ng4 8.Bxd7+" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.Bxd7+ * B09w "Pirc: Austrian, 5...c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6 * B09w "Pirc: Austrian, 5...c5, Seirawan Variation" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6 fxe6 * B09x "Pirc: Austrian, 5...c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6 Bxb5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6 Bxb5 * B10a "Caro-Kann" 1.e4 c6 * B10a "Caro-Kann: 2.Ne2" 1.e4 c6 2.Ne2 * B10a "Caro-Kann: 2.f4" 1.e4 c6 2.f4 * B10b "Caro-Kann: Breyer Variation" 1.e4 c6 2.d3 * B10b "Caro-Kann: Breyer Variation" 1.e4 c6 2.d3 d5 * B10c "Caro-Kann: Breyer, 3.Nd2" 1.e4 c6 2.d3 d5 3.Nd2 * B10d "Caro-Kann: Breyer, 3.Nd2 g6" 1.e4 c6 2.d3 d5 3.Nd2 g6 * B10e "Caro-Kann: Breyer, 3.Nd2 e5" 1.e4 c6 2.d3 d5 3.Nd2 e5 * B10f "Caro-Kann: Breyer, Main Line" 1.e4 c6 2.d3 d5 3.Nd2 e5 4.Ngf3 Bd6 5.g3 * B10g "Caro-Kann: English Variation" 1.e4 c6 2.c4 * B10h "Caro-Kann: English Variation" 1.e4 c6 2.c4 e5 * B10i "Caro-Kann: English Variation" 1.e4 c6 2.c4 d5 * B10i "Caro-Kann: English Variation" 1.e4 c6 2.c4 d5 3.cxd5 * B10i "Caro-Kann: English Variation" 1.e4 c6 2.c4 d5 3.cxd5 cxd5 * B10i "Caro-Kann: English Variation" 1.e4 c6 2.c4 d5 3.exd5 * B10i "Caro-Kann: English Variation" 1.e4 c6 2.c4 d5 3.exd5 cxd5 * B10j "Caro-Kann: English, Exchange" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 * B10k "Caro-Kann: English, Exchange, 4...Nf6" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 * B10l "Caro-Kann: English, Exchange, 4...Nf6 5.Bb5+" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 5.Bb5+ * B10m "Caro-Kann: English, Exchange, 4...Nf6 5.Nc3" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 5.Nc3 * B10n "Caro-Kann: English, Exchange, 4...Nf6 5.Nc3 Nxd5" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 5.Nc3 Nxd5 * B10o "Caro-Kann: 2.Nf3" 1.e4 c6 2.Nf3 * B10p "Caro-Kann: 2.Nc3" 1.e4 c6 2.Nc3 * B10q "Caro-Kann: 2.Nc3 d5" 1.e4 c6 2.Nc3 d5 * B10r "Caro-Kann: Goldman/Spielmann" 1.e4 c6 2.Nc3 d5 3.Qf3 * B10s "Caro-Kann: Two Knights Variation" 1.e4 c6 2.Nc3 d5 3.Nf3 * B10t "Caro-Kann: Two Knights, 3...dxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 * B10t "Caro-Kann: Hector Gambit" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 4.Ng5 * B10u "Caro-Kann: Two Knights, 3...dxe4 4.Nxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 4.Nxe4 * B10v "Caro-Kann: Two Knights, 3...dxe4 4.Nxe4 Nf6" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 4.Nxe4 Nf6 * B11a "Caro-Kann: Two Knights, 3...Bg4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 * B11b "Caro-Kann: Two Knights, 3...Bg4 4.h3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 * B11b "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bh5" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bh5 * B11c "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bh5, 7.g4 Bg6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bh5 5.exd5 cxd5 6.Bb5+ Nc6 7.g4 Bg6 * B11d "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 * B11d "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 * B11e "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 dxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 dxe4 * B11e "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 dxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 dxe4 6.Nxe4 * B11f "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 Nf6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 Nf6 * B11g "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 * B11h "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d4 * B11i "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.g3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.g3 * B11i "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.g3 Nf6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.g3 Nf6 * B11j "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 * B11k "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nd7" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nd7 * B11l "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 * B11m "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 7.a3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 7.a3 * B11n "Caro-Kann: Two Knights, 3...Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 7.Bd2" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 7.Bd2 * B12a "Caro-Kann: 2.d4" 1.e4 c6 2.d4 * B12a "Caro-Kann: de Bruycker Defence" 1.e4 c6 2.d4 Na6 * B12a "Caro-Kann: Masi Defence" 1.e4 c6 2.d4 Nf6 * B12b "Caro-Kann: 2.d4 d5" 1.e4 c6 2.d4 d5 * B12b "Caro-Kann: Ulysses Gambit" 1.e4 c6 2.d4 d5 3.Nf3 * B12b "Caro-Kann: Ulysses Gambit" 1.e4 c6 2.d4 d5 3.Nf3 dxe4 4.Ng5 * B12c "Caro-Kann: Mieses Gambit" 1.e4 c6 2.d4 d5 3.Be3 * B12d "Caro-Kann: Maroczy (Fantasy) Variation" 1.e4 c6 2.d4 d5 3.f3 * B12e "Caro-Kann: Maroczy (Fantasy), 3...e6" 1.e4 c6 2.d4 d5 3.f3 e6 * B12f "Caro-Kann: Maroczy (Fantasy), 3...dxe4" 1.e4 c6 2.d4 d5 3.f3 dxe4 * B12f "Caro-Kann: Maroczy (Fantasy), Gambit line" 1.e4 c6 2.d4 d5 3.f3 dxe4 4.fxe4 e5 5.Nf3 exd4 6.Bc4 * B12g "Caro-Kann: 3.Nd2" 1.e4 c6 2.d4 d5 3.Nd2 * B12g "Caro-Kann: 3.Nd2 dxe4" 1.e4 c6 2.d4 d5 3.Nd2 dxe4 * B12g "Caro-Kann: Edinburgh Variation" 1.e4 c6 2.d4 d5 3.Nd2 Qb6 * B12h "Caro-Kann: Gurgenidze/Modern: 3.Nd2 g6" 1.e4 c6 2.d4 d5 3.Nd2 g6 * B12h "Caro-Kann: Gurgenidze/Modern: 3.Nd2 g6 4.Ngf3" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 * B12h "Caro-Kann: Gurgenidze/Modern: 3.Nd2 g6 4.Ngf3 Bg7" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 Bg7 * B12h "Caro-Kann: Gurgenidze/Modern: 3.Nd2 g6 4.Ngf3 Bg7 5.h3" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 Bg7 5.h3 * B12h "Caro-Kann: Gurgenidze/Modern: 3.Nd2 g6 4.Ngf3 Bg7 5.c3" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 Bg7 5.c3 * B12i "Caro-Kann: Advance Variation" 1.e4 c6 2.d4 d5 3.e5 * B12j "Caro-Kann: Advance, 3...c5" 1.e4 c6 2.d4 d5 3.e5 c5 * B12j "Caro-Kann: Advance, 3...c5 4.dxc5" 1.e4 c6 2.d4 d5 3.e5 c5 4.dxc5 * B12k "Caro-Kann: Advance, 3...c5 4.dxc5 Nc6" 1.e4 c6 2.d4 d5 3.e5 c5 4.dxc5 Nc6 * B12l "Caro-Kann: Advance, 3...Bf5" 1.e4 c6 2.d4 d5 3.e5 Bf5 * B12l "Caro-Kann: Advance, Bayonet Variation" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.g4 * B12m "Caro-Kann: Advance, 4.h4" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.h4 * B12n "Caro-Kann: Advance, 4.c3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.c3 * B12n "Caro-Kann: Advance, Short Variation" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.c3 e6 5.Be2 * B12o "Caro-Kann: Advance, 4.Bd3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Bd3 * B12p "Caro-Kann: Advance, 4.Nf3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 * B12p "Caro-Kann: Advance, 4.Nf3 e6" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 * B12q "Caro-Kann: Advance, 4.Nf3 e6 5.Be2" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 * B12r "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 Nd7" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 Nd7 * B12s "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 * B12t "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5 6.O-O" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.O-O * B12t "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5 6.O-O" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.O-O Ne7 * B12t "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5 6.O-O" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.O-O Nd7 * B12u "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5 6.Be3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 * B12u "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5 6.Be3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 Ne7 * B12u "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5 6.Be3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 Nd7 * B12u "Caro-Kann: Advance, 4.Nf3 e6 5.Be2 c5 6.Be3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 Nd7 7.O-O * B12v "Caro-Kann: Advance, 4.Nc3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 * B12v "Caro-Kann: Advance, 4.Nc3 h5" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 h5 * B12v "Caro-Kann: Advance, 4.Nc3 Qb6" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 Qb6 * B12v "Caro-Kann: Advance, 4.Nc3 e6" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 * B12w "Caro-Kann: Advance, Main Line" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 5.g4 * B12w "Caro-Kann: Advance, Main Line, 6.Nge2" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 5.g4 Bg6 6.Nge2 * B12x "Caro-Kann: Advance, Main Line, 6.Nge2 c5" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 5.g4 Bg6 6.Nge2 c5 * B13a "Caro-Kann: Exchange Variation" 1.e4 c6 2.d4 d5 3.exd5 * B13a "Caro-Kann: Exchange, 3...Qxd5" 1.e4 c6 2.d4 d5 3.exd5 Qxd5 * B13b "Caro-Kann: Exchange, 3...cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 * B13c "Caro-Kann: Exchange, 4.Nf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Nf3 * B13d "Caro-Kann: Exchange, 4.Nf3 Nf6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Nf3 Nf6 * B13e "Caro-Kann: Exchange, 4.Bd3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 * B13f "Caro-Kann: Exchange, 4.Bd3 Nc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 * B13f "Caro-Kann: Exchange, 4.Bd3 Nc6 5.c3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 * B13g "Caro-Kann: Exchange, 4.Bd3 Nc6 5.c3 g6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 g6 * B13h "Caro-Kann: Exchange, 4.Bd3 Nc6 5.c3 Nf6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 * B13i "Caro-Kann: Exchange, 4.Bd3 Nc6 5.c3 Nf6 6.Nf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Nf3 * B13j "Caro-Kann: Exchange, Rubinstein Variation" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 * B13k "Caro-Kann: Exchange, Rubinstein, 6...Bg4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 Bg4 * B13l "Caro-Kann: Exchange, Rubinstein, 7.Qb3 Qc8" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 Bg4 7.Qb3 Qc8 * B13m "Caro-Kann: Exchange, Rubinstein, 7.Qb3 Qd7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 Bg4 7.Qb3 Qd7 * B13n "Caro-Kann: Panov-Botvinnik Attack" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 * B13n "Caro-Kann: Panov-Botvinnik, 4...e6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 e6 * B13o "Caro-Kann: Panov-Botvinnik, 4...Nf6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 * B13o "Caro-Kann: Panov-Botvinnik, Gunderam Variation" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.c5 * B13p "Caro-Kann: Panov-Botvinnik, 5.Nc3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 * B13p "Caro-Kann: Panov-Botvinnik, 5...dxc4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 dxc4 * B13p "Caro-Kann: Panov-Botvinnik, 5...dxc4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 dxc4 6.Bxc4 * B13q "Caro-Kann: Panov-Botvinnik, 5...Nc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 * B13q "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.cxd5 * B13q "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.cxd5 Nxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.cxd5 Nxd5 * B13r "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Nf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 * B13s "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Nf3 Bg4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 * B13s "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Nf3 Bg4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 * B13s "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Nf3 Bg4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 * B13t "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Nf3 Bg4: 8.Qb3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 8.Qb3 * B13t "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Nf3 Bg4: 9.gxf3 Nb6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 8.Qb3 Bxf3 9.gxf3 Nb6 * B13u "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Nf3 Bg4: Main Line" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 8.Qb3 Bxf3 9.gxf3 e6 * B13v "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Bg5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 * B13v "Caro-Kann: Panov-Botvinnik, 5...Nc6, Spielmann Variation" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 Qb6 * B13v "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Bg5 dxc4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 dxc4 * B13v "Caro-Kann: Panov-Botvinnik, 5...Nc6, Herzog Defence" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 dxc4 7.d5 Na5 * B13w "Caro-Kann: Panov-Botvinnik, 5...Nc6, Czerniak Variation" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 Qa5 * B13x "Caro-Kann: Panov-Botvinnik, 5...Nc6 6.Bg5 Be6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 Be6 * B13y "Caro-Kann: Panov-Botvinnik, 5...Nc6, Normal Variation" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 * B13y "Caro-Kann: Panov-Botvinnik, 5...Nc6, Normal Variation" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 * B13y "Caro-Kann: Panov-Botvinnik, 5...Nc6, Normal Variation" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 * B13z "Caro-Kann: Panov-Botvinnik, 5...Nc6, Normal Variaiton, 8.c5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 8.c5 * B13z "Caro-Kann: Panov-Botvinnik, 5...Nc6, Normal Variation, 8.c5 O-O" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 8.c5 O-O * B13z "Caro-Kann: Panov-Botvinnik, 5...Nc6, Normal Variation, 8.c5 O-O 9.Bb5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 8.c5 O-O 9.Bb5 * B14a "Caro-Kann: Panov-Botvinnik, 5...g6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 * B14a "Caro-Kann: Panov-Botvinnik, 5...g6 6.Nf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Nf3 * B14b "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 * B14c "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5 Nxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 Nxd5 * B14d "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5 Nxd5 7.Bc4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 Nxd5 7.Bc4 * B14e "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5 Bg7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 Bg7 * B14f "Caro-Kann: Panov-Botvinnik, 5...g6 6.Qb3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 * B14f "Caro-Kann: Panov-Botvinnik, 5...g6 6.Qb3 Bg7 7.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 * B14f "Caro-Kann: Panov-Botvinnik, 5...g6, Main Line" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 O-O * B14g "Caro-Kann: Panov-Botvinnik, 5...g6, Main Line, 8.Be2" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 O-O 8.Be2 * B14h "Caro-Kann: Panov-Botvinnik, 5...g6, Main Line, 8.Be2 Nbd7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 O-O 8.Be2 Nbd7 * B14i "Caro-Kann: Panov-Botvinnik, 5...e6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 * B14j "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 * B14j "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Nc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Nc6 * B14k "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Be7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 * B14l "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Be7 7.Bd3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.Bd3 * B14m "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Be7 7.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.cxd5 * B14n "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Be7 7.cxd5 Nxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.cxd5 Nxd5 * B14o "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Be7 7.cxd5 Nxd5 8.Bd3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.cxd5 Nxd5 8.Bd3 * B14p "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 * B14q "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 exd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 exd5 * B14r "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 Nxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 * B14s "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 * B14t "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 Nc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 Nc6 * B14u "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 Nc6 9.Bd3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 Nc6 9.Bd3 * B14v "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 * B14w "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 Nc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 Nc6 * B14x "Caro-Kann: Panov-Botvinnik, 5...e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 Nc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 Nc6 9.Bd3 O-O * B15a "Caro-Kann: 3.Nc3" 1.e4 c6 2.d4 d5 3.Nc3 * B15b "Caro-Kann: Gurgenidze Counterattack" 1.e4 c6 2.d4 d5 3.Nc3 b5 * B15c "Caro-Kann: Gurgenidze/Modern" 1.e4 c6 2.d4 d5 3.Nc3 g6 * B15d "Caro-Kann: Gurgenidze: 4.Be3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Be3 * B15d "Caro-Kann: Gurgenidze: 4.Be3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Be3 Bg7 * B15e "Caro-Kann: Gurgenidze: 4.h3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.h3 * B15e "Caro-Kann: Gurgenidze: 4.h3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.h3 Bg7 * B15f "Caro-Kann: Gurgenidze: 4.e5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 * B15f "Caro-Kann: Gurgenidze: 4.e5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 * B15g "Caro-Kann: Gurgenidze: 4.e5 Bg7 5.f4" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 * B15g "Caro-Kann: Gurgenidze: 4.e5 Bg7 5.f4 Nh6" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 Nh6 * B15h "Caro-Kann: Gurgenidze: 4.e5 Bg7 5.f4 h5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 h5 * B15i "Caro-Kann: Gurgenidze: 4.e5 Bg7 5.f4 h5 6.Nf3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 h5 6.Nf3 * B15j "Caro-Kann: Gurgenidze: 4.Nf3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 * B15k "Caro-Kann: Gurgenidze: 4.Nf3 Bg7" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 * B15k "Caro-Kann: Gurgenidze: 4.Nf3 Bg7 5.exd5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.exd5 * B15k "Caro-Kann: Gurgenidze: 4.Nf3 Bg7 5.e5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.e5 * B15l "Caro-Kann: Gurgenidze: 4.Nf3 Bg7 5.h3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 * B15m "Caro-Kann: Gurgenidze: 4.Nf3 Bg7 5.h3 dxe4" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 dxe4 * B15m "Caro-Kann: Gurgenidze: 4.Nf3 Bg7 5.h3 dxe4" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 dxe4 6.Nxe4 * B15n "Caro-Kann: Gurgenidze: 4.Nf3 Bg7 5.h3 Nf6" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 Nf6 * B15o "Caro-Kann: Gurgenidze: 4.Nf3 Bg7 5.h3 Nf6 6.e5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 Nf6 6.e5 * B15p "Caro-Kann: 3.Nc3 dxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 * B15p "Caro-Kann: Rasa-Studier Gambit" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.f3 * B15p "Caro-Kann: von Hennig Gambit" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Bc4 * B15q "Caro-Kann: 4.Nxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 * B15r "Caro-Kann: 4.Nxe4 Nf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 * B15r "Caro-Kann: 4.Nxe4 Nf6 5.f3 Gambit" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.f3 * B15r "Caro-Kann: Alekhine Gambit" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Bd3 * B15s "Caro-Kann: 4.Nxe4 Nf6 5.Ng3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Ng3 * B15t "Caro-Kann: 4.Nxe4 Nf6 5.Nxf6+" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ * B15t "Caro-Kann: Tartakower (Nimzowitsch) Variation" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ exf6 * B15u "Caro-Kann: Tartakower, Forgacs Variation" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ exf6 6.Bc4 * B15v "Caro-Kann: Tartakower, 6.c3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ exf6 6.c3 * B16a "Caro-Kann: Bronstein-Larsen" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 * B16b "Caro-Kann: Bronstein-Larsen, 6.Qd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Qd3 * B16c "Caro-Kann: Bronstein-Larsen, 6.Ne2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Ne2 * B16d "Caro-Kann: Bronstein-Larsen, 6.Bc4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Bc4 * B16e "Caro-Kann: Bronstein-Larsen, 6.Nf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 * B16f "Caro-Kann: Bronstein-Larsen, 6.Nf3 Bf5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 Bf5 * B16g "Caro-Kann: Bronstein-Larsen, 6.Nf3 Bg4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 Bg4 * B16h "Caro-Kann: Bronstein-Larsen, 6.Nf3 Bg4 7.Be2 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 Bg4 7.Be2 e6 * B16i "Caro-Kann: Bronstein-Larsen, 6.c3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 * B16j "Caro-Kann: Bronstein-Larsen, 6.c3 Bf5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 * B16k "Caro-Kann: Bronstein-Larsen, 6.c3 Bf5 7.Ne2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Ne2 * B16l "Caro-Kann: Bronstein-Larsen, 6.c3 Bf5 7.Nf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Nf3 * B16m "Caro-Kann: Bronstein-Larsen, 6.c3 Bf5 7.Nf3 Qc7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Nf3 Qc7 * B16n "Caro-Kann: Bronstein-Larsen, 6.c3 Bf5 7.Nf3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Nf3 e6 * B17a "Caro-Kann: Steinitz Variation" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 * B17b "Caro-Kann: Steinitz, 5.Nf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 * B17c "Caro-Kann: Steinitz, 5.Nf3 Ngf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 * B17d "Caro-Kann: Steinitz, 5.Nf3 Ngf6 6.Nxf6+" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ * B17e "Caro-Kann: Steinitz, 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bc4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bc4 * B17f "Caro-Kann: Steinitz, 5.Nf3 Ngf6 6.Ng3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Ng3 * B17g "Caro-Kann: Steinitz, 5.Nf3 Ngf6 6.Ng3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Ng3 e6 * B17h "Caro-Kann: Steinitz, 5.Ng5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 * B17i "Caro-Kann: Steinitz, 5.Ng5 Ngf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 * B17j "Caro-Kann: Steinitz, 5.Ng5 Ngf6 6.Bd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 * B17k "Caro-Kann: Steinitz, 5.Ng5 Ngf6 6.Bd3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 * B17l "Caro-Kann: Steinitz, 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 * B17m "Caro-Kann: Steinitz, 5.Ng5 Ngf6 6.Bd3, Main Line 10.Qxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 h6 9.Ne4 Nxe4 10.Qxe4 * B17n "Caro-Kann: Steinitz, 5.Ng5 Ngf6 6.Bd3, Main Line 10.Qxe4 Qc7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 h6 9.Ne4 Nxe4 10.Qxe4 Qc7 * B17o "Caro-Kann: Steinitz, 5.Ng5 Ngf6 6.Bd3, Main Line 10.Qxe4 Nf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 h6 9.Ne4 Nxe4 10.Qxe4 Nf6 * B17p "Caro-Kann: Steinitz, 5.Bc4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 * B17q "Caro-Kann: Steinitz, 5.Bc4 Ngf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 * B17r "Caro-Kann: Steinitz, 5.Bc4 Ngf6 6.Ng5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 * B17s "Caro-Kann: Steinitz, 5.Bc4 Ngf6 6.Ng5, 8.Bb3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 e6 7.Qe2 Nb6 8.Bb3 * B17t "Caro-Kann: Steinitz, 5.Bc4 Ngf6 6.Ng5, 8.Bd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 e6 7.Qe2 Nb6 8.Bd3 * B17u "Caro-Kann: Steinitz, 5.Bc4 Ngf6 6.Ng5, 8.Bd3 h6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 e6 7.Qe2 Nb6 8.Bd3 h6 * B18a "Caro-Kann: Classical" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 * B18b "Caro-Kann: Classical, 5.Nc5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Nc5 * B18c "Caro-Kann: Classical, 5.Nc5 b6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Nc5 b6 * B18d "Caro-Kann: Classical, 5.Ng3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 * B18e "Caro-Kann: Classical, 5.Ng3 Bg6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 * B18f "Caro-Kann: Classical, Maroczy Attack" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.f4 * B18g "Caro-Kann: Classical, Flohr Variation" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nh3 * B18h "Caro-Kann: Classical, 6.N1e2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.N1e2 * B18i "Caro-Kann: Classical, 6.Bc4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Bc4 * B18j "Caro-Kann: Classical, 6.Bc4 e6 7.N1e2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Bc4 e6 7.N1e2 * B18k "Caro-Kann: Classical, 6.Bc4 e6 7.N1e2 Nf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Bc4 e6 7.N1e2 Nf6 * B18l "Caro-Kann: Classical, 6.Nf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 * B18m "Caro-Kann: Classical, 6.Nf3 Nd7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 Nd7 * B18n "Caro-Kann: Classical, 6.Nf3 Nd7 7.Bd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 Nd7 7.Bd3 * B18o "Caro-Kann: Classical, 6.Nf3 Nd7 7.Bd3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 Nd7 7.Bd3 e6 * B18p "Caro-Kann: Classical, 6.h4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 * B18p "Caro-Kann: Classical, 6.h4 h6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 * B18q "Caro-Kann: Classical, 6.h4 h6 7.Nh3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nh3 * B18r "Caro-Kann: Classical, 6.h4 h6 7.f4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.f4 * B18s "Caro-Kann: Classical, 6.h4 h6 7.h5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.h5 * B19a "Caro-Kann: Classical, 7.Nf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 * B19b "Caro-Kann: Classical, 7.Nf3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 e6 * B19c "Caro-Kann: Classical, 7.Nf3 Nf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 * B19d "Caro-Kann: Classical, 7.Nf3 Nf6 8.h5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.h5 * B19d "Caro-Kann: Classical, 7.Nf3 Nf6 8.h5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.h5 Bh7 * B19e "Caro-Kann: Classical, 7.Nf3 Nf6 8.Ne5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.Ne5 * B19f "Caro-Kann: Classical, 7.Nf3 Nf6 8.Ne5 Bh7 9.Bd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.Ne5 Bh7 9.Bd3 * B19g "Caro-Kann: Classical, 7.Nf3 Nd7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 * B19h "Caro-Kann: Classical, Spassky Variation" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 * B19h "Caro-Kann: Classical, Spassky Variation" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 * B19i "Caro-Kann: Classical, Spassky, 10.Qxd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 * B19j "Caro-Kann: Classical, Spassky, 10.Qxd3 Ngf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Ngf6 * B19k "Caro-Kann: Classical, Spassky, 10.Qxd3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 e6 * B19l "Caro-Kann: Classical, Spassky, 10.Qxd3 e6 11.Bf4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 e6 11.Bf4 * B19m "Caro-Kann: Classical, Spassky, 10.Qxd3 Qc7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 * B19n "Caro-Kann: Classical, Spassky, 10.Qxd3 Qc7 11.Bd2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 * B19o "Caro-Kann: Classical, Spassky, 10.Qxd3 Qc7 11.Bd2 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 * B19p "Caro-Kann: Classical, Spassky, 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O * B19q "Caro-Kann: Classical, Spassky, Main Line" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 * B19r "Caro-Kann: Classical, Spassky, Main Line, 13.Ne4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 13.Ne4 * B19s "Caro-Kann: Classical, Spassky, Main Line, 13.Ne4 O-O-O" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 13.Ne4 O-O-O * B19t "Caro-Kann: Classical, Spassky, Main Line, 14.g3 Nxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 13.Ne4 O-O-O 14.g3 Nxe4 * B20 "Sicilian Defence" 1.e4 c5 * B20 "Sicilian: Mengarini" 1.e4 c5 2.a3 * B20 "Sicilian: Keres Variation (2.Ne2)" 1.e4 c5 2.Ne2 * B20 "Sicilian: 2.Bc4" 1.e4 c5 2.Bc4 * B20 "Sicilian: Wing Gambit" 1.e4 c5 2.b4 * B20 "Sicilian: Wing Gambit, Santasiere Variation" 1.e4 c5 2.b4 cxb4 3.c4 * B20 "Sicilian: Wing Gambit, Marshall Variation" 1.e4 c5 2.b4 cxb4 3.a3 * B20 "Sicilian: Wing Gambit, Marienbad Variation" 1.e4 c5 2.b4 cxb4 3.a3 d5 4.exd5 Qxd5 5.Bb2 * B20 "Sicilian: Wing Gambit, Carlsbad Variation" 1.e4 c5 2.b4 cxb4 3.a3 bxa3 * B20 "Sicilian: Snyder" 1.e4 c5 2.b3 * B20 "Sicilian: Snyder, 2...e6" 1.e4 c5 2.b3 e6 * B20 "Sicilian: Snyder, 2...d6" 1.e4 c5 2.b3 d6 * B20 "Sicilian: Snyder, 2...Nc6" 1.e4 c5 2.b3 Nc6 * B20 "Sicilian: English (2.c4)" 1.e4 c5 2.c4 * B20 "Sicilian: English, 2...e6" 1.e4 c5 2.c4 e6 * B20 "Sicilian: English, 2...d6" 1.e4 c5 2.c4 d6 * B20 "Sicilian: English, 2...Nc6" 1.e4 c5 2.c4 Nc6 * B20 "Sicilian: English, 2...Nc6 3.Nf3" 1.e4 c5 2.c4 Nc6 3.Nf3 * B20 "Sicilian: English, 2...Nc6 3.Ne2" 1.e4 c5 2.c4 Nc6 3.Ne2 * B20 "Sicilian: English, 2...Nc6 3.Nc3" 1.e4 c5 2.c4 Nc6 3.Nc3 * B20 "Sicilian: English, 2...Nc6 3.Nc3 g6" 1.e4 c5 2.c4 Nc6 3.Nc3 g6 * B20 "Sicilian: 2.g3" 1.e4 c5 2.g3 * B20 "Sicilian: 2.g3" 1.e4 c5 2.g3 g6 * B20 "Sicilian: 2.g3" 1.e4 c5 2.g3 g6 3.Bg2 Bg7 * B20 "Sicilian: 2.g3" 1.e4 c5 2.g3 g6 3.Bg2 Bg7 4.f4 * B20 "Sicilian: 2.g3" 1.e4 c5 2.g3 g6 3.Bg2 Bg7 4.f4 d6 * B20 "Sicilian: 2.d3" 1.e4 c5 2.d3 * B20 "Sicilian: 2.d3 e6" 1.e4 c5 2.d3 e6 * B20 "Sicilian: 2.d3 e6 3.g3" 1.e4 c5 2.d3 e6 3.g3 * B20 "Sicilian: 2.d3 Nc6" 1.e4 c5 2.d3 Nc6 * B20 "Sicilian: 2.d3 Nc6 3.g3" 1.e4 c5 2.d3 Nc6 3.g3 * B21a "Sicilian: Grand Prix Attack" 1.e4 c5 2.f4 * B21b "Sicilian: Grand Prix, 2...g6" 1.e4 c5 2.f4 g6 * B21c "Sicilian: Grand Prix, 2...d6" 1.e4 c5 2.f4 d6 * B21d "Sicilian: Grand Prix, 2...e6" 1.e4 c5 2.f4 e6 * B21d "Sicilian: Grand Prix, 2...e6 3.Nf3" 1.e4 c5 2.f4 e6 3.Nf3 * B21e "Sicilian: Grand Prix, 2...Nc6" 1.e4 c5 2.f4 Nc6 * B21e "Sicilian: Grand Prix, 2...Nc6 3.d3" 1.e4 c5 2.f4 Nc6 3.d3 * B21f "Sicilian: Grand Prix, 2...Nc6 3.Nf3" 1.e4 c5 2.f4 Nc6 3.Nf3 * B21g "Sicilian: Grand Prix, 2...Nc6 3.Nf3 e6" 1.e4 c5 2.f4 Nc6 3.Nf3 e6 * B21h "Sicilian: Grand Prix, 2...Nc6 3.Nf3 g6" 1.e4 c5 2.f4 Nc6 3.Nf3 g6 * B21i "Sicilian: Grand Prix, Tal Defence" 1.e4 c5 2.f4 d5 * B21i "Sicilian: Grand Prix, Tal Defence, 3.e5" 1.e4 c5 2.f4 d5 3.e5 * B21i "Sicilian: Grand Prix, Toilet Variation" 1.e4 c5 2.f4 d5 3.Nc3 * B21j "Sicilian: Grand Prix, Tal Defence, 3.exd5" 1.e4 c5 2.f4 d5 3.exd5 * B21j "Sicilian: Grand Prix, Tal Defence, 3.exd5 Qxd5" 1.e4 c5 2.f4 d5 3.exd5 Qxd5 * B21k "Sicilian: Grand Prix, Tal Gambit" 1.e4 c5 2.f4 d5 3.exd5 Nf6 * B21l "Sicilian: Grand Prix, Tal Gambit, 4.Bb5+" 1.e4 c5 2.f4 d5 3.exd5 Nf6 4.Bb5+ * B21m "Sicilian: Smith-Morra Gambit" 1.e4 c5 2.d4 * B21m "Sicilian: Smith-Morra, 2...d5" 1.e4 c5 2.d4 d5 * B21m "Sicilian: Smith-Morra, 2...cxd4" 1.e4 c5 2.d4 cxd4 * B21m "Sicilian: Halasz Gambit" 1.e4 c5 2.d4 cxd4 3.f4 * B21n "Sicilian: Smith-Morra, Morphy Gambit" 1.e4 c5 2.d4 cxd4 3.Nf3 * B21n "Sicilian: Smith-Morra, Andreaschek Gambit" 1.e4 c5 2.d4 cxd4 3.Nf3 e5 4.c3 * B21o "Sicilian: Smith-Morra, 3.c3" 1.e4 c5 2.d4 cxd4 3.c3 * B21p "Sicilian: Smith-Morra, 3.c3 Nf6" 1.e4 c5 2.d4 cxd4 3.c3 Nf6 * B21q "Sicilian: Smith-Morra, 3.c3 d5" 1.e4 c5 2.d4 cxd4 3.c3 d5 * B21r "Sicilian: Smith-Morra, 3.c3 d3" 1.e4 c5 2.d4 cxd4 3.c3 d3 * B21s "Sicilian: Smith-Morra Accepted" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 * B21s "Sicilian: Smith-Morra Accepted" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 * B21t "Sicilian: Smith-Morra, 4.Nxc3 d6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 d6 * B21u "Sicilian: Smith-Morra, 4.Nxc3 e6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 e6 * B21v "Sicilian: Smith-Morra, 4.Nxc3 e6 5.Nf3" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 e6 5.Nf3 * B21w "Sicilian: Smith-Morra, 4.Nxc3 Nc6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 * B21w "Sicilian: Smith-Morra, 4.Nxc3 Nc6 5.Nf3" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 * B21x "Sicilian: Smith-Morra, 4.Nxc3 Nc6 5.Nf3 e6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 e6 * B21x "Sicilian: Smith-Morra, 4.Nxc3 Nc6 5.Nf3 e6 6.Bc4" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 e6 6.Bc4 * B21x "Sicilian: Smith-Morra, 4.Nxc3 Nc6 5.Nf3 e6 6.Bc4 a6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 e6 6.Bc4 a6 * B21y "Sicilian: Smith-Morra, 4.Nxc3 Nc6 5.Nf3 d6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 * B21y "Sicilian: Smith-Morra, 5.Nf3 d6 6.Bc4" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 * B21y "Sicilian: Smith-Morra, 5.Nf3 d6 6.Bc4 a6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 a6 * B21y "Sicilian: Smith-Morra, 5.Nf3 d6 6.Bc4 e6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 * B21y "Sicilian: Smith-Morra, 5.Nf3 d6 6.Bc4 e6 7.O-O" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O * B21y "Sicilian: Smith-Morra Gambit, Chicago Defence" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O a6 8.Qe2 b5 9.Bb3 Ra7 * B21z "Sicilian: Smith-Morra, 5.Nf3 d6 6.Bc4 e6 7.O-O Nf6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O Nf6 * B21z "Sicilian: Smith-Morra, 5.Nf3 d6 6.Bc4 e6 7.O-O Nf6 8.Qe2 Be7" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O Nf6 8.Qe2 Be7 * B22a "Sicilian: Alapin" 1.e4 c5 2.c3 * B22a "Sicilian: Alapin, 2...e5" 1.e4 c5 2.c3 e5 * B22a "Sicilian: Alapin, 2...g6" 1.e4 c5 2.c3 g6 * B22a "Sicilian: Alapin, 2...g6 3.d4" 1.e4 c5 2.c3 g6 3.d4 * B22a "Sicilian: Alapin, 2...g6 3.d4 cxd4" 1.e4 c5 2.c3 g6 3.d4 cxd4 * B22b "Sicilian: Alapin, 2...Nc6" 1.e4 c5 2.c3 Nc6 * B22b "Sicilian: Alapin, 2...Nc6 3.Nf3" 1.e4 c5 2.c3 Nc6 3.Nf3 * B22b "Sicilian: Alapin, 2...Nc6 3.d4" 1.e4 c5 2.c3 Nc6 3.d4 * B22c "Sicilian: Alapin, 2...e6" 1.e4 c5 2.c3 e6 * B22c "Sicilian: Alapin, 2...e6 3.Nf3" 1.e4 c5 2.c3 e6 3.Nf3 * B22c "Sicilian: Alapin, 2...e6 3.Nf3 d5" 1.e4 c5 2.c3 e6 3.Nf3 d5 * B22d "Sicilian: Alapin, 2...e6 3.d4" 1.e4 c5 2.c3 e6 3.d4 * B22d "Sicilian: Alapin, 2...e6 3.d4 d5" 1.e4 c5 2.c3 e6 3.d4 d5 * B22d "Sicilian: Alapin, 2...e6 3.d4 d5 4.exd5" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 * B22d "Sicilian: Alapin, 2...e6 3.d4 d5 4.exd5 exd5" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 exd5 * B22d "Sicilian: Alapin, 2...e6 3.d4 d5 4.exd5 exd5 5.Nf3" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 exd5 5.Nf3 * B22d "Sicilian: Alapin, 2...e6 3.d4 d5 4.exd5 exd5 5.Nf3 Nc6" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 exd5 5.Nf3 Nc6 * B22e "Sicilian: Alapin, 2...d6" 1.e4 c5 2.c3 d6 * B22f "Sicilian: Alapin, 2...d5" 1.e4 c5 2.c3 d5 * B22f "Sicilian: Alapin, 2...d5 3.exd5" 1.e4 c5 2.c3 d5 3.exd5 * B22f "Sicilian: Alapin, 2...d5 3.exd5 Qxd5" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 * B22f "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 * B22f "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 cxd4 * B22f "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 cxd4 5.cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 cxd4 5.cxd4 * B22g "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 e6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 e6 * B22g "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 e6 5.Nf3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 e6 5.Nf3 * B22h "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nc6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 * B22h "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 * B22h "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 cxd4 * B22h "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 cxd4 6.cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 cxd4 6.cxd4 * B22i "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 Bg4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 Bg4 * B22j "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nf6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 * B22j "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 * B22k "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 Bg4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 Bg4 * B22l "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 Bg4 6.Be2 e6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 Bg4 6.Be2 e6 * B22m "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 e6 6.Be3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 e6 6.Be3 * B22n "Sicilian: Alapin, 2...d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 e6 6.Be2" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 e6 6.Be2 * B22o "Sicilian: Alapin, 2...Nf6" 1.e4 c5 2.c3 Nf6 * B22o "Sicilian: Alapin, 2...Nf6 3.e5" 1.e4 c5 2.c3 Nf6 3.e5 * B22o "Sicilian: Alapin, 2...Nf6 3.e5 Nd5" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 * B22o "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.g3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.g3 * B22p "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.Nf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.Nf3 * B22p "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.Nf3 Nc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.Nf3 Nc6 * B22p "Sicilian: Alapin, Heidenfeld Variation" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.Nf3 Nc6 5.Na3 * B22p "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.d4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 * B22q "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.d4 cxd4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 * B22q "Sicilian: Alapin, 2...Nf6, 5.Bc4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Bc4 * B22q "Sicilian: Alapin, 2...Nf6, 5.Qxd4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Qxd4 * B22r "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 * B22r "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 e6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 e6 * B22r "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 Nc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 Nc6 * B22s "Sicilian: Alapin, 2...Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 Nc6 6.Bc4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 Nc6 6.Bc4 * B22t "Sicilian: Alapin, 2...Nf6, 5.cxd4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 * B22t "Sicilian: Alapin, 2...Nf6, 5.cxd4 d6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 * B22t "Sicilian: Alapin, 2...Nf6, 5.cxd4 Nc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 Nc6 * B22t "Sicilian: Alapin, 2...Nf6, 5.cxd4 Nc6 6.Nf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 Nc6 6.Nf3 * B22t "Sicilian: Alapin, 2...Nf6, 5.cxd4 d6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 * B22t "Sicilian: Alapin, 2...Nf6, 5.cxd4 d6 6.Nf3 Nc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 * B22u "Sicilian: Alapin, 2...Nf6, 5.cxd4 d6 6.Nf3 Nc6 7.Bc4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 * B22u "Sicilian: Alapin, 2...Nf6, 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 Nb6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 Nb6 * B22u "Sicilian: Alapin, 2...Nf6, 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 Nb6 8.Bb5" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 Nb6 8.Bb5 * B22v "Sicilian: Alapin, 2...Nf6, 5.cxd4 e6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 * B22v "Sicilian: Alapin, 2...Nf6, 5.cxd4 e6 6.Nf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 * B22v "Sicilian: Alapin, 2...Nf6, 5.cxd4 e6 6.Nf3 Nc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 Nc6 * B22w "Sicilian: Alapin, 2...Nf6, 5.cxd4 e6 6.Nf3 d6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 d6 * B22x "Sicilian: Alapin, 2...Nf6, 5.cxd4 e6 6.Nf3 b6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 b6 * B23a "Sicilian: Closed" 1.e4 c5 2.Nc3 * B23b "Sicilian: Closed" 1.e4 c5 2.Nc3 g6 * B23c "Sicilian: Closed" 1.e4 c5 2.Nc3 d6 * B23c "Sicilian: Closed" 1.e4 c5 2.Nc3 d6 3.Nge2 * B23d "Sicilian: Closed" 1.e4 c5 2.Nc3 d6 3.g3 * B23e "Sicilian: Closed" 1.e4 c5 2.Nc3 d6 3.f4 * B23f "Sicilian: Closed" 1.e4 c5 2.Nc3 e6 * B23g "Sicilian: Closed" 1.e4 c5 2.Nc3 e6 3.f4 * B23h "Sicilian: Closed" 1.e4 c5 2.Nc3 e6 3.Nge2 * B23i "Sicilian: Closed" 1.e4 c5 2.Nc3 e6 3.g3 * B23j "Sicilian: Closed, Korchnoi Variation" 1.e4 c5 2.Nc3 e6 3.g3 d5 * B23k "Sicilian: Closed, 2...Nc6" 1.e4 c5 2.Nc3 Nc6 * B23l "Sicilian: Closed, 2...Nc6 3.Bb5" 1.e4 c5 2.Nc3 Nc6 3.Bb5 * B23m "Sicilian: Closed, 2...Nc6 3.Bb5 Nd4" 1.e4 c5 2.Nc3 Nc6 3.Bb5 Nd4 * B23n "Sicilian: Chameleon Variation" 1.e4 c5 2.Nc3 Nc6 3.Nge2 * B23n "Sicilian: Chameleon, 3...e5" 1.e4 c5 2.Nc3 Nc6 3.Nge2 e5 * B23n "Sicilian: Chameleon, 3...g6" 1.e4 c5 2.Nc3 Nc6 3.Nge2 g6 * B23o "Sicilian: Closed, Grand Prix" 1.e4 c5 2.Nc3 Nc6 3.f4 * B23o "Sicilian: Closed, Grand Prix, 3...d6" 1.e4 c5 2.Nc3 Nc6 3.f4 d6 * B23p "Sicilian: Closed, Grand Prix, 3...d6 4.Nf3 g6" 1.e4 c5 2.Nc3 Nc6 3.f4 d6 4.Nf3 g6 * B23q "Sicilian: Closed, Grand Prix, 3...e6" 1.e4 c5 2.Nc3 Nc6 3.f4 e6 * B23q "Sicilian: Closed, Grand Prix, 3...e6 4.Nf3" 1.e4 c5 2.Nc3 Nc6 3.f4 e6 4.Nf3 * B23r "Sicilian: Closed, Grand Prix, 3...e6 4.Nf3 d5" 1.e4 c5 2.Nc3 Nc6 3.f4 e6 4.Nf3 d5 * B23s "Sicilian: Closed, Grand Prix, 3...g6" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 * B23t "Sicilian: Closed, Grand Prix, 3...g6 4.Nf3 Bg7 5.Bc4" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bc4 * B23u "Sicilian: Closed, Grand Prix, 3...g6 4.Nf3 Bg7 5.Bc4 e6" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bc4 e6 * B23v "Sicilian: Closed, Grand Prix, Schofman Variation" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bc4 e6 6.f5 * B23w "Sicilian: Closed, Grand Prix, 3...g6 4.Nf3 Bg7 5.Bb5" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 * B23w "Sicilian: Closed, Grand Prix, 3...g6 4.Nf3 Bg7 5.Bb5 Nd4" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 Nd4 * B23x "Sicilian: Closed, Grand Prix, 3...g6 4.Nf3 Bg7 5.Bb5 Nd4 6.Bd3" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 Nd4 6.Bd3 * B23y "Sicilian: Closed, Grand Prix, 3...g6 4.Nf3 Bg7 5.Bb5 Nd4 6.O-O" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 Nd4 6.O-O * B24 "Sicilian: Closed, 3.g3" 1.e4 c5 2.Nc3 Nc6 3.g3 * B24 "Sicilian: Closed, 3.g3 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 e6 * B24 "Sicilian: Closed, 3.g3 g6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 * B24 "Sicilian: Closed, 3.g3 g6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.d3 * B24 "Sicilian: Closed, 3.g3 g6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 * B24 "Sicilian: Closed, 3.g3 g6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 * B24 "Sicilian: Closed, 3.g3 g6, 5.Nge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nge2 * B24 "Sicilian: Closed, 3.g3 g6, 5.f4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.f4 * B24 "Sicilian: Closed, 3.g3 g6, 5.d3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 * B24 "Sicilian: Closed, 3.g3 g6, 5.d3 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 e6 * B24 "Sicilian: Closed, Smyslov Variation" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 e6 6.Be3 Nd4 7.Nce2 * B24 "Sicilian: Closed, 3.g3 g6, 5.d3 e6 6.f4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 e6 6.f4 * B25a "Sicilian: Closed, 3.g3, 5.d3 d6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 * B25b "Sicilian: Closed, 3.g3, 5.d3 d6 6.Nge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nge2 * B25c "Sicilian: Closed, Botvinnik" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nge2 e5 * B25d "Sicilian: Closed, 3.g3, 5.d3 d6 6.Nge2 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nge2 e6 * B25e "Sicilian: Closed, 6.f4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 * B25f "Sicilian: Closed, 6.f4 Rb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 Rb8 * B25g "Sicilian: Closed, 6.f4 Nf6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 Nf6 * B25h "Sicilian: Closed, 6.f4 Nf6 7.Nf3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 Nf6 7.Nf3 * B25i "Sicilian: Closed, 6.f4 e5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 * B25j "Sicilian: Closed, 6.f4 e5 7.Nf3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 7.Nf3 * B25j "Sicilian: Closed, 6.f4 e5 7.Nf3 Nge7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 7.Nf3 Nge7 * B25k "Sicilian: Closed, 6.f4 e5 7.Nf3 Nge7 8.O-O" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 7.Nf3 Nge7 8.O-O * B25l "Sicilian: Closed, 6.f4 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 * B25m "Sicilian: Closed, 6.f4 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 * B25n "Sicilian: Closed, 6.f4 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 * B25o "Sicilian: Closed, 6.f4 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O * B25p "Sicilian: Closed, 6.f4 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O * B25q "Sicilian: Closed, 6.f4 e6: 9.Be3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 * B25r "Sicilian: Closed, 6.f4 e6: 9.Be3 Rb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Rb8 * B25s "Sicilian: Closed, 6.f4 e6: 9.Be3 b6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 b6 * B25t "Sicilian: Closed, 6.f4 e6: 9.Be3 Nd4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 * B25u "Sicilian: Closed, 6.f4 e6: 9.Be3 Nd4 10.Rb1" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.Rb1 * B25v "Sicilian: Closed, 6.f4 e6: 9.Be3 Nd4 10.Qd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.Qd2 * B25w "Sicilian: Closed, 6.f4 e6: 9.Be3 Nd4 10.e5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.e5 * B25x "Sicilian: Closed, 6.f4 e6: 9.Be3 Nd4 10.e5 Nef5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.e5 Nef5 * B26a "Sicilian: Closed, 6.Be3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 * B26b "Sicilian: Closed, 6.Be3 Nf6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Nf6 * B26c "Sicilian: Closed, 6.Be3 Nf6 7.h3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Nf6 7.h3 * B26d "Sicilian: Closed, 6.Be3 e5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e5 * B26e "Sicilian: Closed, 6.Be3 e5 7.Qd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e5 7.Qd2 * B26f "Sicilian: Closed, 6.Be3 e5 7.Qd2 Nge7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e5 7.Qd2 Nge7 * B26g "Sicilian: Closed, 6.Be3 Rb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 * B26h "Sicilian: Closed, 6.Be3 Rb8 7.Qd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 7.Qd2 * B26i "Sicilian: Closed, 6.Be3 Rb8 7.Qd2 b5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 7.Qd2 b5 * B26j "Sicilian: Closed, 6.Be3 Rb8 7.Qd2 b5 8.Nge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 7.Qd2 b5 8.Nge2 * B26k "Sicilian: Closed, 6.Be3 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 * B26l "Sicilian: Closed, 6.Be3 e6 7.Qd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 * B26m "Sicilian: Closed, 6.Be3 e6 7.Qd2 Qa5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Qa5 * B26n "Sicilian: Closed, 6.Be3 e6 7.Qd2 Nd4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Nd4 * B26o "Sicilian: Closed, 6.Be3 e6 7.Qd2 Nge7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Nge7 * B26p "Sicilian: Closed, 6.Be3 e6 7.Qd2 Rb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Rb8 * B26q "Sicilian: Closed, 6.Be3 e6 7.Qd2 Rb8 8.Nge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Rb8 8.Nge2 * B27a "Sicilian: 2.Nf3" 1.e4 c5 2.Nf3 * B27b "Sicilian: Mongoose Variation" 1.e4 c5 2.Nf3 Qa5 * B27c "Sicilian: Quinteros Variation" 1.e4 c5 2.Nf3 Qc7 * B27d "Sicilian: Katalimov Variation" 1.e4 c5 2.Nf3 b6 * B27e "Sicilian: Hungarian Variation" 1.e4 c5 2.Nf3 g6 * B27f "Sicilian: Hungarian, 3.c4" 1.e4 c5 2.Nf3 g6 3.c4 * B27g "Sicilian: Hungarian, 3.c3" 1.e4 c5 2.Nf3 g6 3.c3 * B27h "Sicilian: Hungarian, 3.c3 Bg7 4.d4 cxd4 5.cxd4" 1.e4 c5 2.Nf3 g6 3.c3 Bg7 4.d4 cxd4 5.cxd4 * B27i "Sicilian: Hungarian, 3.c3 Bg7 4.d4 cxd4 5.cxd4 d5" 1.e4 c5 2.Nf3 g6 3.c3 Bg7 4.d4 cxd4 5.cxd4 d5 * B27j "Sicilian: Hungarian, 3.d4" 1.e4 c5 2.Nf3 g6 3.d4 * B27k "Sicilian: Hungarian, 3.d4 cxd4" 1.e4 c5 2.Nf3 g6 3.d4 cxd4 * B27l "Sicilian: Hungarian, 3.d4 cxd4 4.Nxd4" 1.e4 c5 2.Nf3 g6 3.d4 cxd4 4.Nxd4 * B27m "Sicilian: Accelerated Pterodactyl" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 * B27n "Sicilian: Accelerated Pterodactyl, 4.dxc5" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 * B27o "Sicilian: Accelerated Pterodactyl, 4.dxc5 Qa5+" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ * B27p "Sicilian: Accelerated Pterodactyl, 4.dxc5 Qa5+ 5.Nc3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ 5.Nc3 * B27q "Sicilian: Accelerated Pterodactyl, 4.dxc5 Qa5+ 5.c3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ 5.c3 * B27r "Sicilian: Accelerated Pterodactyl, 4.dxc5 Qa5+ 5.c3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ 5.c3 Qxc5 * B27s "Sicilian: Accelerated Pterodactyl, 4.c4" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.c4 * B27t "Sicilian: Accelerated Pterodactyl, 4.c4 Qa5+" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.c4 Qa5+ * B27t "Sicilian: Accelerated Pterodactyl, 4.Nc3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.Nc3 * B28a "Sicilian: O'Kelly Variation" 1.e4 c5 2.Nf3 a6 * B28b "Sicilian: O'Kelly, 3.Nc3" 1.e4 c5 2.Nf3 a6 3.Nc3 * B28c "Sicilian: O'Kelly, 3.d4" 1.e4 c5 2.Nf3 a6 3.d4 * B28d "Sicilian: O'Kelly, 3.d4 cxd4 4.Nxd4" 1.e4 c5 2.Nf3 a6 3.d4 cxd4 4.Nxd4 * B28e "Sicilian: O'Kelly, 3.d4 cxd4 4.Nxd4 Nf6" 1.e4 c5 2.Nf3 a6 3.d4 cxd4 4.Nxd4 Nf6 * B28f "Sicilian: O'Kelly, 3.c4" 1.e4 c5 2.Nf3 a6 3.c4 * B28g "Sicilian: O'Kelly, 3.c4 e6" 1.e4 c5 2.Nf3 a6 3.c4 e6 * B28h "Sicilian: O'Kelly, 3.c3" 1.e4 c5 2.Nf3 a6 3.c3 * B28i "Sicilian: O'Kelly, 3.c3 e6" 1.e4 c5 2.Nf3 a6 3.c3 e6 * B28j "Sicilian: O'Kelly, 3.c3 d5" 1.e4 c5 2.Nf3 a6 3.c3 d5 * B29a "Sicilian: Nimzowitsch" 1.e4 c5 2.Nf3 Nf6 * B29b "Sicilian: Nimzowitsch, 3.d3" 1.e4 c5 2.Nf3 Nf6 3.d3 * B29c "Sicilian: Nimzowitsch, 3.Nc3" 1.e4 c5 2.Nf3 Nf6 3.Nc3 * B29d "Sicilian: Nimzowitsch, 3.Nc3 d5" 1.e4 c5 2.Nf3 Nf6 3.Nc3 d5 * B29e "Sicilian: Nimzowitsch, 3.Nc3 d5 4.exd5" 1.e4 c5 2.Nf3 Nf6 3.Nc3 d5 4.exd5 * B29f "Sicilian: Nimzowitsch, 3.e5" 1.e4 c5 2.Nf3 Nf6 3.e5 * B29f "Sicilian: Nimzowitsch, 3.e5 Nd5" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 * B29g "Sicilian: Nimzowitsch, 4.c4" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.c4 * B29h "Sicilian: Nimzowitsch, 4.d4" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.d4 * B29i "Sicilian: Nimzowitsch, 4.Nc3" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 * B29j "Sicilian: Nimzowitsch, 4.Nc3 Nxc3" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 Nxc3 * B29k "Sicilian: Nimzowitsch, 4.Nc3 e6" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 * B29l "Sicilian: Nimzowitsch, 4.Nc3 e6 5.Nxd5" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 5.Nxd5 * B29m "Sicilian: Nimzowitsch, Rubinstein Countergambit" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 5.Nxd5 exd5 6.d4 Nc6 * B29n "Sicilian: Nimzowitsch, Rubinstein Countergambit, 7.dxc5" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 5.Nxd5 exd5 6.d4 Nc6 7.dxc5 * B30a "Sicilian: 2...Nc6" 1.e4 c5 2.Nf3 Nc6 * B30b "Sicilian: 2...Nc6 3.b3" 1.e4 c5 2.Nf3 Nc6 3.b3 * B30c "Sicilian: 2...Nc6 3.d3" 1.e4 c5 2.Nf3 Nc6 3.d3 * B30c "Sicilian: 2...Nc6 3.d3 Nf6" 1.e4 c5 2.Nf3 Nc6 3.d3 Nf6 * B30d "Sicilian: 2...Nc6 3.g3" 1.e4 c5 2.Nf3 Nc6 3.g3 * B30e "Sicilian: 2...Nc6 3.g3 e6 4.d3" 1.e4 c5 2.Nf3 Nc6 3.g3 e6 4.d3 * B30f "Sicilian: 2...Nc6 3.g3 e6 4.d3 d5" 1.e4 c5 2.Nf3 Nc6 3.g3 e6 4.d3 d5 * B30g "Sicilian: 2...Nc6 3.Bc4" 1.e4 c5 2.Nf3 Nc6 3.Bc4 * B30h "Sicilian: 2...Nc6 3.Nc3" 1.e4 c5 2.Nf3 Nc6 3.Nc3 * B30h "Sicilian: 2...Nc6 3.Nc3 Nf6" 1.e4 c5 2.Nf3 Nc6 3.Nc3 Nf6 * B30i "Sicilian: 2...Nc6 3.Nc3 g6" 1.e4 c5 2.Nf3 Nc6 3.Nc3 g6 * B30j "Sicilian: 2...Nc6 3.Nc3 e5" 1.e4 c5 2.Nf3 Nc6 3.Nc3 e5 * B30k "Sicilian: Rossolimo" 1.e4 c5 2.Nf3 Nc6 3.Bb5 * B30l "Sicilian: Rossolimo, 3...Qb6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 Qb6 * B30m "Sicilian: Rossolimo, 3...Nf6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 Nf6 * B30n "Sicilian: Rossolimo, 3...e6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 * B30o "Sicilian: Rossolimo, 3...e6 4.b3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.b3 * B30p "Sicilian: Rossolimo, 3...e6 4.Nc3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.Nc3 * B30q "Sicilian: Rossolimo, 3...e6 4.Bxc6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.Bxc6 * B30r "Sicilian: Rossolimo, 3...e6 4.O-O" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O * B30s "Sicilian: Rossolimo, 3...e6 4.O-O Nge7" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 * B30s "Sicilian: Rossolimo, 3...e6 4.O-O Nge7 5.b3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.b3 * B30t "Sicilian: Rossolimo, 3...e6 4.O-O Nge7 5.Re1" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.Re1 * B30u "Sicilian: Rossolimo, 3...e6 4.O-O Nge7 5.Nc3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.Nc3 * B30v "Sicilian: Rossolimo, 3...e6 4.O-O Nge7 5.c3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.c3 * B30w "Sicilian: Rossolimo, 3...e6 4.O-O Nge7 5.c3 a6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.c3 a6 * B31a "Sicilian: Rossolimo, 3...g6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 * B31b "Sicilian: Rossolimo, 3...g6 4.Nc3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Nc3 * B31c "Sicilian: Rossolimo, 3...g6 4.Bxc6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 * B31d "Sicilian: Rossolimo, 3...g6 4.Bxc6 dxc6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 dxc6 * B31e "Sicilian: Rossolimo, 3...g6 4.Bxc6 dxc6 5.d3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 dxc6 5.d3 * B31f "Sicilian: Rossolimo, 3...g6 4.Bxc6 dxc6 5.d3 Bg7 6.h3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 dxc6 5.d3 Bg7 6.h3 * B31g "Sicilian: Rossolimo, 3...g6 4.O-O" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O * B31h "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.c3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.c3 * B31i "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.c3 e5" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.c3 e5 * B31j "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.Re1" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 * B31k "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.Re1 Nf6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 * B31l "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.Re1 Nf6 6.c3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 6.c3 * B31m "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.Re1 Nf6 6.c3 O-O 7.h3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 6.c3 O-O 7.h3 * B31n "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.Re1 Nf6 6.c3 O-O 7.d4" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 6.c3 O-O 7.d4 * B31o "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.Re1 e5" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 e5 * B31p "Sicilian: Rossolimo, Gurgenidze Variation" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 e5 6.b4 * B31q "Sicilian: Rossolimo, 3...g6 4.O-O Bg7 5.Re1 e5" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 e5 6.c3 * B32a "Sicilian: 2...Nc6 3.d4" 1.e4 c5 2.Nf3 Nc6 3.d4 * B32b "Sicilian: 2...Nc6 3.d4 cxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 * B32c "Sicilian: Open, 2...Nc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 * B32d "Sicilian: Open, 2...Nc6, 4...d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 d6 * B32e "Sicilian: Open, 2...Nc6, 4...Qb6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Qb6 * B32f "Sicilian: Flohr Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Qc7 * B32g "Sicilian: Flohr, 5.Nb5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Qc7 5.Nb5 * B32h "Sicilian: 2..Nc6, Nimzowitsch Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 d5 * B32i "Sicilian: Loewenthal" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 * B32j "Sicilian: Loewenthal, 5.Nb5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 * B32k "Sicilian: Loewenthal, 5...a6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 a6 * B32l "Sicilian: Loewenthal, 5...a6, Queenswap" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 a6 6.Nd6+ Bxd6 7.Qxd6 Qf6 8.Qxf6 * B32m "Sicilian: Loewenthal, 5...a6, 8.Qd1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 a6 6.Nd6+ Bxd6 7.Qxd6 Qf6 8.Qd1 * B32n "Sicilian: Loewenthal, Kalashnikov" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 * B32o "Sicilian: Loewenthal, Kalashnikov, 6.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.a4 * B32p "Sicilian: Loewenthal, Kalashnikov, 6.N1c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.N1c3 * B32q "Sicilian: Loewenthal, Kalashnikov, 6.N1c3 a6 7.Na3 b5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.N1c3 a6 7.Na3 b5 * B32r "Sicilian: Loewenthal, Kalashnikov, 6.N1c3 a6 7.Na3 b5 8.Nd5 Nge7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.N1c3 a6 7.Na3 b5 8.Nd5 Nge7 * B32s "Sicilian: Loewenthal, Kalashnikov, 6.c4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 * B32t "Sicilian: Loewenthal, Kalashnikov, 6.c4 Be7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 * B32u "Sicilian: Loewenthal, Kalashnikov, 6.c4 Be7 7.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.Be2 * B32v "Sicilian: Loewenthal, Kalashnikov, 6.c4 Be7 7.N1c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 * B32w "Sicilian: Loewenthal, Kalashnikov, Main Line" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 a6 8.Na3 Be6 * B32x "Sicilian: Loewenthal, Kalashnikov, Main Line, 9.Nc2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 a6 8.Na3 Be6 9.Nc2 * B32y "Sicilian: Loewenthal, Kalashnikov, Main Line, 9.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 a6 8.Na3 Be6 9.Be2 * B33a "Sicilian: Open, 2...Nc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 * B33b "Sicilian: Open, 2...Nc6, 5...Qb6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 * B33b "Sicilian: Open, 2...Nc6, 5...Qb6 6.Nb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 6.Nb3 * B33b "Sicilian: Open, 2...Nc6, 5...Qb6 6.Nb3 e6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 6.Nb3 e6 * B33c "Sicilian: Open, 2...Nc6, 5...Qb6 6.Nb3 e6 7.Bd3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 6.Nb3 e6 7.Bd3 * B33d "Sicilian: Pelikan/Sveshnikov" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 * B33d "Sicilian: Pelikan/Sveshnikov, 6.Nxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nxc6 * B33d "Sicilian: Pelikan/Sveshnikov, 6.Nf5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nf5 * B33d "Sicilian: Pelikan/Sveshnikov, 6.Nf3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nf3 * B33d "Sicilian: Pelikan/Sveshnikov, 6.Nb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nb3 * B33e "Sicilian: Pelikan/Sveshnikov, 6.Nbd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 * B33e "Sicilian: Pelikan, Haberditz Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 h6 * B33f "Sicilian: Pelikan/Sveshnikov, Pelikan Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 * B33f "Sicilian: Pelikan, 7.Na3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Na3 * B33g "Sicilian: Pelikan, 7.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.a4 * B33g "Sicilian: Pelikan, 7.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.a4 a6 8.Na3 * B33h "Sicilian: Pelikan, 7.Nd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Nd5 * B33i "Sicilian: Pelikan, 7.Bg5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 * B33i "Sicilian: Pelikan, 7.Bg5 a6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 * B33j "Sicilian: Pelikan, 7.Bg5 a6 8.Bxf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Bxf6 * B33k "Sicilian: Pelikan, 7.Bg5 a6 8.Na3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 * B33k "Sicilian: Pelikan, Bird Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 Be6 * B33l "Sicilian: Pelikan, Chelyabinsk Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 * B33l "Sicilian: Pelikan, Chelyabinsk, 9.Nd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 * B33m "Sicilian: Pelikan, Chelyabinsk, 9.Nd5 Be7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 * B33n "Sicilian: Pelikan, Chelyabinsk, 9.Nd5 Be7, 11.c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 * B33o "Sicilian: Pelikan, Chelyabinsk, 9.Nd5 Be7, 11.c3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 O-O * B33p "Sicilian: Pelikan, Chelyabinsk, 9.Nd5 Be7, 11.c3 Bg5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 Bg5 * B33q "Sicilian: Pelikan, Chelyabinsk, 9.Nd5 Be7, 11.c3 O-O 12.Nc2 Bg5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 O-O 12.Nc2 Bg5 * B33r "Sicilian: Pelikan, Chelyabinsk, 9.Nd5 Be7, 11.c3 O-O 12.Nc2 Bg5 13.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 O-O 12.Nc2 Bg5 13.a4 * B33s "Sicilian: Pelikan, Chelyabinsk, 9.Bxf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 * B33s "Sicilian: Pelikan, Chelyabinsk, 9.Bxf6 gxf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 * B33s "Sicilian: Pelikan, Chelyabinsk, 9.Bxf6 gxf6 10.Nd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 * B33s "Sicilian: Pelikan, Chelyabinsk, 9.Bxf6 gxf6 10.Nd5 Bg7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 Bg7 * B33t "Sicilian: Pelikan, Chelyabinsk, 9.Bxf6 gxf6 10.Nd5 Bg7 11.Bd3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 Bg7 11.Bd3 * B33u "Sicilian: Pelikan, Sveshnikov Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 * B33v "Sicilian: Pelikan, Sveshnikov, 11.c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 * B33v "Sicilian: Pelikan, Sveshnikov, 11.c3 Bg7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 Bg7 * B33v "Sicilian: Pelikan, Sveshnikov, 11.c3 Bg7 12.exf5 Bxf5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 Bg7 12.exf5 Bxf5 * B33w "Sicilian: Pelikan, Sveshnikov, 11.c3 Bg7 12.exf5 Bxf5 13.Nc2 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 Bg7 12.exf5 Bxf5 13.Nc2 O-O * B33x "Sicilian: Pelikan, Sveshnikov, 11.Bd3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.Bd3 * B33x "Sicilian: Pelikan, Sveshnikov, 11.Bd3 Be6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.Bd3 Be6 * B33y "Sicilian: Pelikan, Sveshnikov, 11.Bd3 Be6 12.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.Bd3 Be6 12.O-O * B34a "Sicilian: Accelerated Fianchetto" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 * B34b "Sicilian: Accelerated Fianchetto, 5.Bc4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Bc4 * B34c "Sicilian: Accelerated Fianchetto, Exchange Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nxc6 * B34d "Sicilian: Accelerated Fianchetto, 5.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Be2 * B34e "Sicilian: Accelerated Fianchetto, 5.Be3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Be3 * B34f "Sicilian: Accelerated Fianchetto, Modern Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 * B34g "Sicilian: Accelerated Fianchetto, Modern, 5...Nf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Nf6 * B34h "Sicilian: Accelerated Fianchetto, Modern, 5...Nf6 6.Nxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Nf6 6.Nxc6 * B34i "Sicilian: Accelerated Fianchetto, Modern, 5...Nf6 6.Nxc6 bxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Nf6 6.Nxc6 bxc6 * B34j "Sicilian: Accelerated Fianchetto, Modern, 5...Bg7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 * B34k "Sicilian: Accelerated Fianchetto, Modern, 6.Nde2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Nde2 * B34l "Sicilian: Accelerated Fianchetto, Modern, 6.Nb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Nb3 * B34m "Sicilian: Accelerated Fianchetto, Modern, 6.Be3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 * B34n "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 d6 * B34o "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 d6 7.Qd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 d6 7.Qd2 * B34p "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 * B34q "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.f3 * B34r "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Nxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 * B34r "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Nxc6 bxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 bxc6 * B34r "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Nxc6 bxc6 8.e5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 bxc6 8.e5 * B34s "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Nxc6 bxc6 8.e5 Ng8" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 bxc6 8.e5 Ng8 * B34t "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 * B34u "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Be2 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O * B34v "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Be2 O-O 8.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O 8.O-O * B34v "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Be2 O-O 8.O-O d5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O 8.O-O d5 * B34w "Sicilian: Accelerated Fianchetto, Modern, 6.Be3 Nf6 7.Be2 O-O 8.O-O d5 9.exd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O 8.O-O d5 9.exd5 * B35a "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 * B35b "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 Qa5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 * B35c "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 Qa5 8.O-O O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 8.O-O O-O * B35d "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 Qa5 8.O-O O-O 9.Bb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 8.O-O O-O 9.Bb3 * B35e "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 Qa5 8.O-O O-O 9.Bb3 d6 10.h3 Bd7 11.f4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 8.O-O O-O 9.Bb3 d6 10.h3 Bd7 11.f4 * B35f "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O * B35g "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.f3 * B35h "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.O-O * B35i "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 * B35j "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 Ng4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 Ng4 * B35k "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 Qa5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 Qa5 * B35l "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 a5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 a5 * B35m "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 a5 9.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 a5 9.a4 * B35n "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 a5 9.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 a5 9.f3 * B35o "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 * B35o "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 d6 9.h3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.h3 * B35p "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 d6 9.h3 Bd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.h3 Bd7 * B35q "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 d6 9.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.f3 * B35r "Sicilian: Accelerated Fianchetto, Modern, 7.Bc4 O-O 8.Bb3 d6 9.f3 Bd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.f3 Bd7 * B36a "Sicilian: Maroczy Bind" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 * B36b "Sicilian: Maroczy Bind, 5...d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 d6 * B36b "Sicilian: Maroczy Bind, 5...d6 6.Nc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 d6 6.Nc3 * B36b "Sicilian: Maroczy Bind, 5...d6 6.Nc3 Bg7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 d6 6.Nc3 Bg7 * B36c "Sicilian: Maroczy Bind, 5...Nf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 * B36d "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 * B36e "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 Nxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 Nxd4 * B36f "Sicilian: Maroczy Bind, Gurgenidze Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 Nxd4 7.Qxd4 d6 * B36g "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 * B36h "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 * B36i "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 * B36i "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 * B36j "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.O-O * B36k "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 * B36l "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 O-O * B36m "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 O-O 10.Qd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 O-O 10.Qd2 * B36n "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 * B36n "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O * B36o "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 * B36p "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 Be6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 Be6 * B36q "Sicilian: Maroczy Bind, 5...Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 Be6 11.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 Be6 11.O-O * B37a "Sicilian: Maroczy Bind, 5...Bg7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 * B37b "Sicilian: Maroczy Bind, 6.Nb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nb3 * B37c "Sicilian: Maroczy Bind, 6.Nc2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 * B37d "Sicilian: Maroczy Bind, 6.Nc2 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 d6 * B37e "Sicilian: Maroczy Bind, 6.Nc2 d6 7.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 d6 7.Be2 * B37f "Sicilian: Maroczy Bind, Simagin Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 d6 7.Be2 Nh6 * B37g "Sicilian: Maroczy Bind, 6.Nc2 Nf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 * B37g "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 * B37h "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 O-O * B37i "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 * B37i "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 * B37j "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 Nd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 Nd7 * B37k "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O * B37l "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O * B37m "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Be6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Be6 * B37n "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 * B37o "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 * B37o "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 a5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 a5 * B37p "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 Nc5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 Nc5 * B37q "Sicilian: Maroczy Bind, 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 Nc5 11.b4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 Nc5 11.b4 * B38a "Sicilian: Maroczy Bind, 6.Be3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 * B38b "Sicilian: Maroczy Bind, 6.Be3 Nh6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nh6 * B38c "Sicilian: Maroczy Bind, 6.Be3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 d6 * B38c "Sicilian: Maroczy Bind, 6.Be3 d6 7.Nc3 Nh6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 d6 7.Nc3 Nh6 * B38d "Sicilian: Maroczy Bind, 6.Be3 Nf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 * B38d "Sicilian: Maroczy Bind, 6.Be3 Nf6 7.Nc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 * B38e "Sicilian: Maroczy Bind, 6.Be3 Nf6 7.Nc3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 d6 * B38f "Sicilian: Maroczy Bind, 6.Be3 Nf6 7.Nc3 d6 8.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 d6 8.Be2 * B38g "Sicilian: Maroczy Bind, 7.Nc3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O * B38g "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 * B38h "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 b6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 * B38i "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 b6 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O * B38i "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 * B38j "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 10.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 10.f3 * B38k "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 10.f3 Qb8" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 10.f3 Qb8 * B38l "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 * B38m "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.f3 * B38n "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O * B38o "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Nd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Nd7 * B38p "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O a6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O a6 * B38q "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Nxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Nxd4 * B38r "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 * B38s "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Nc2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Nc2 * B38t "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.f3 * B38u "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Rc1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Rc1 * B38v "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 * B38w "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 * B38w "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 * B38x "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4, 12.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 Bc6 12.f3 * B38y "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4, 12.f3 a5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 Bc6 12.f3 a5 * B38z "Sicilian: Maroczy Bind, 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4, 12.f3 a5 13.b3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 Bc6 12.f3 a5 13.b3 * B39a "Sicilian: Maroczy Bind, Breyer Variation" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 * B39b "Sicilian: Maroczy Bind, Breyer, 8.Qxg4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 * B39c "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 * B39d "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 * B39e "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 e5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 e5 * B39f "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 e5 10.Nb5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 e5 10.Nb5 * B39g "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 e5 10.Bd3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 e5 10.Bd3 * B39h "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 Ne6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 * B39i "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Qd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Qd2 * B39j "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 * B39k "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 Qa5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 Qa5 * B39l "Sicilian: Maroczy Bind, Breyer, 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 Qa5 11.Qd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 Qa5 11.Qd2 * B40a "Sicilian: 2...e6" 1.e4 c5 2.Nf3 e6 * B40b "Sicilian: 2...e6 3.c4" 1.e4 c5 2.Nf3 e6 3.c4 * B40c "Sicilian: 2...e6 3.b3" 1.e4 c5 2.Nf3 e6 3.b3 * B40d "Sicilian: 2...e6 3.b3 Nc6" 1.e4 c5 2.Nf3 e6 3.b3 Nc6 * B40e "Sicilian: 2...e6 3.g3" 1.e4 c5 2.Nf3 e6 3.g3 * B40f "Sicilian: 2...e6 3.d3" 1.e4 c5 2.Nf3 e6 3.d3 * B40g "Sicilian: 2...e6 3.Nc3" 1.e4 c5 2.Nf3 e6 3.Nc3 * B40h "Sicilian: 2...e6 3.Nc3 Nc6" 1.e4 c5 2.Nf3 e6 3.Nc3 Nc6 * B40i "Sicilian: 2...e6 3.d4" 1.e4 c5 2.Nf3 e6 3.d4 * B40j "Sicilian: Marshall Variation" 1.e4 c5 2.Nf3 e6 3.d4 d5 * B40k "Sicilian: Open, 2...e6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 * B40l "Sicilian: Open, 2...e6, 4.Nxd4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 * B40l "Sicilian: Open, 2...e6, 4.Nxd4 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 d6 * B40m "Sicilian: Open, 2...e6, 4.Nxd4 Bc5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Bc5 * B40n "Sicilian: Kveinys Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Qb6 * B40o "Sicilian: Open, 2...e6, 4.Nxd4 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 * B40p "Sicilian: Open, 2...e6, 4.Nxd4 Nf6 5.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 * B40p "Sicilian: Open, 2...e6, 4.Nxd4 Nf6 5.Bd3 Nc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 Nc6 * B40q "Sicilian: Open, 2...e6, 4.Nxd4 Nf6 5.Bd3 Nc6 6.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 Nc6 6.Nxc6 * B40r "Sicilian: Open, 2...e6, 4.Nxd4 Nf6 5.Nc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 * B40s "Sicilian: Pin Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bb4 * B40t "Sicilian: Pin, Jaffe Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bb4 6.Bd3 e5 * B40u "Sicilian: Pin, Koch Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bb4 6.e5 * B41a "Sicilian: Kan (Paulsen)" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 * B41b "Sicilian: Kan, 5.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.g3 * B41c "Sicilian: Kan, 5.Be3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Be3 * B41d "Sicilian: Kan, 5.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Be2 * B41e "Sicilian: Kan, 5.Be2 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Be2 Nf6 * B41f "Sicilian: Kan, 5.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 * B41g "Sicilian: Kan, 5.c4 Qc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Qc7 * B41h "Sicilian: Kan, 5.c4 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 * B41i "Sicilian: Kan, 5.c4 Nf6 6.Nc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 * B41j "Sicilian: Kan, 5.c4 Nf6 6.Nc3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 d6 * B41k "Sicilian: Kan, 5.c4 Nf6 6.Nc3 Bb4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Bb4 * B41k "Sicilian: Kan, 5.c4 Nf6, Bronstein Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Bb4 7.Bd3 Nc6 8.Bc2 * B41l "Sicilian: Kan, 5.c4 Nf6 6.Nc3 Qc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Qc7 * B41m "Sicilian: Kan, 5.c4 Nf6 6.Nc3 Qc7 7.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Qc7 7.Be2 * B42a "Sicilian: Kan, 5.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 * B42b "Sicilian: Kan, Swiss Cheese Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 g6 * B42c "Sicilian: Kan, 5.Bd3 Qb6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Qb6 * B42d "Sicilian: Kan, 5.Bd3 Qc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Qc7 * B42e "Sicilian: Kan, 5.Bd3 Nc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nc6 * B42f "Sicilian: Kan, Polugaevsky Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Bc5 * B42g "Sicilian: Kan, Polugaevsky, 6.Nb3 Ba7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Bc5 6.Nb3 Ba7 * B42h "Sicilian: Kan, 5.Bd3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 * B42h "Sicilian: Kan, 5.Bd3 Nf6 6.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.c4 * B42h "Sicilian: Kan, 5.Bd3 Nf6 6.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O * B42i "Sicilian: Kan, 5.Bd3 Nf6 6.O-O d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O d6 * B42j "Sicilian: Kan, 5.Bd3 Nf6 6.O-O d6 7.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O d6 7.c4 * B42k "Sicilian: Kan, Gipslis Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O d6 7.c4 g6 * B42l "Sicilian: Kan, 5.Bd3 Nf6 6.O-O Qc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 * B42m "Sicilian: Kan, 5.Bd3 Nf6 6.O-O Qc7 7.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.c4 * B42n "Sicilian: Kan, 5.Bd3 Nf6 6.O-O Qc7 7.Qe2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.Qe2 * B42n "Sicilian: Kan, 5.Bd3 Nf6 6.O-O Qc7 7.Qe2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.Qe2 d6 * B42o "Sicilian: Kan, 5.Bd3 Nf6 6.O-O Qc7 7.Qe2 d6 8.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.Qe2 d6 8.c4 * B43a "Sicilian: Kan, 5.Nc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 * B43b "Sicilian: Kan, 5.Nc3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 d6 * B43c "Sicilian: Kan, 5.Nc3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 * B43d "Sicilian: Kan, 5.Nc3 b5 6.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 6.Bd3 * B43e "Sicilian: Kan, 5.Nc3 b5 6.Bd3 Qb6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 6.Bd3 Qb6 * B43f "Sicilian: Kan, 5.Nc3 b5 6.Bd3 Qb6 7.Nb3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 6.Bd3 Qb6 7.Nb3 * B43g "Sicilian: Kan, 5.Nc3 Qc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 * B43h "Sicilian: Kan, 5.Nc3 Qc7 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.g3 * B43i "Sicilian: Kan, 5.Nc3 Qc7 6.g3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.g3 Nf6 * B43j "Sicilian: Kan, 5.Nc3 Qc7 6.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Be2 * B43k "Sicilian: Kan, 5.Nc3 Qc7 6.Be2 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Be2 Nf6 * B43l "Sicilian: Kan, 5.Nc3 Qc7 6.Be2 Nf6 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Be2 Nf6 7.O-O * B43m "Sicilian: Kan, 5.Nc3 Qc7 6.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Bd3 * B43n "Sicilian: Kan, 5.Nc3 Qc7 6.Bd3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Bd3 Nf6 * B43o "Sicilian: Kan, 5.Nc3 Qc7 6.Bd3 Nf6 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Bd3 Nf6 7.O-O * B44a "Sicilian: Taimanov" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 * B44b "Sicilian: Taimanov, 5.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.g3 * B44c "Sicilian: Taimanov, 5.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Be2 * B44d "Sicilian: Taimanov, 5.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 * B44d "Sicilian: Taimanov, 5.c4 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 * B44e "Sicilian: Taimanov, 5.c4 Nf6 6.Nc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 * B44e "Sicilian: Taimanov, 5.c4 Nf6 6.Nc3 Bb4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 Bb4 * B44e "Sicilian: Taimanov, 5.c4 Nf6 6.Nc3 Bb4 7.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 Bb4 7.Nxc6 * B44f "Sicilian: Taimanov, 5.c4 Nf6 6.Nc3 Bb4 7.Nxc6 bxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 Bb4 7.Nxc6 bxc6 * B44g "Sicilian: Taimanov, 5.Be3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Be3 * B44h "Sicilian: Taimanov, 5.Be3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Be3 Nf6 * B44i "Sicilian: Taimanov, 5.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nxc6 * B44j "Sicilian: Taimanov, 5.Nxc6 bxc6 6.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nxc6 bxc6 6.Bd3 * B44k "Sicilian, Taimanov, Szen Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 * B44k "Sicilian, Taimanov, Szen, 5...d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 * B44l "Sicilian, Taimanov, Szen, 6.Bf4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.Bf4 * B44m "Sicilian, Taimanov, Szen, 6.Bf4 e5 7.Be3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.Bf4 e5 7.Be3 a6 * B44n "Sicilian, Taimanov, Szen, 6.Bf4 e5 7.Be3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.Bf4 e5 7.Be3 Nf6 * B44o "Sicilian, Taimanov, Szen, 6.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 * B44o "Sicilian, Taimanov, Szen, 6.c4 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 a6 * B44o "Sicilian, Taimanov, Szen, 6.c4 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 * B44p "Sicilian, Taimanov, Szen, 7.N5c3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N5c3 * B44q "Sicilian, Taimanov, Szen, 7.N1c3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 * B44q "Sicilian, Taimanov, Szen, 7.N1c3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 * B44r "Sicilian, Taimanov, Szen, 7.N1c3 a6 8.Na3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 * B44r "Sicilian: Taimanov, Szen, Kasparov Gambit" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 d5 * B44s "Sicilian, Taimanov, Szen, 7.N1c3 a6 8.Na3 b6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 b6 * B44t "Sicilian, Taimanov, Szen, 7.N1c3 a6 8.Na3 Be7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 * B44u "Sicilian, Taimanov, Szen, 7.N1c3 a6 8.Na3 Be7 9.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 * B44u "Sicilian, Taimanov, Szen, 7.N1c3 a6 8.Na3 Be7 9.Be2 b6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 b6 * B44v "Sicilian, Taimanov, Szen, 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O * B44w "Sicilian: Taimanov, Szen, Hedgehog Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 * B44x "Sicilian: Taimanov, Szen, Hedgehog, 11.Be3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 * B44x "Sicilian: Taimanov, Szen, Hedgehog, 11.Be3 Bd7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Bd7 * B44x "Sicilian: Taimanov, Szen, Hedgehog, 11.Be3 Ne5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Ne5 * B44y "Sicilian: Taimanov, Szen, Hedgehog, 11.Be3 Bb7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Bb7 * B44z "Sicilian: Taimanov, Szen, Hedgehog, 11.Be3 Bb7 12.Qb3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Bb7 12.Qb3 * B45a "Sicilian: Taimanov, 5.Nc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 * B45b "Sicilian: Taimanov, 5.Nc3 Bb4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Bb4 * B45c "Sicilian: Taimanov, 5.Nc3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 d6 * B45c "Sicilian: Taimanov, 5.Nc3 d6 6.g4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 d6 6.g4 * B45d "Sicilian: Taimanov, Four Knights" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 * B45e "Sicilian: Taimanov, Four Knights, 6.Bg5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Bg5 * B45f "Sicilian: Taimanov, Four Knights, 6.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.a3 * B45g "Sicilian: Taimanov, Four Knights, 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.g3 * B45h "Sicilian: Taimanov, Four Knights, 6.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be2 * B45i "Sicilian: Taimanov, Four Knights, 6.Be3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be3 * B45i "Sicilian: Taimanov, Four Knights, 6.Be3 Bb4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be3 Bb4 * B45j "Sicilian: Taimanov, Four Knights, 6.Be3 Bb4 7.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be3 Bb4 7.Bd3 * B45k "Sicilian: Taimanov, Four Knights, 6.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 * B45l "Sicilian: Taimanov, Four Knights, 6.Nxc6 bxc6 7.e5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 * B45l "Sicilian: Taimanov, Four Knights, 6.Nxc6 bxc6 7.e5 Nd5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 Nd5 * B45m "Sicilian: Taimanov, Four Knights, 6.Nxc6 bxc6 7.e5 Nd5 8.Ne4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 Nd5 8.Ne4 * B45n "Sicilian: Taimanov, Four Knights, 6.Nxc6 bxc6 7.e5 Nd5 8.Ne4 Qc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 Nd5 8.Ne4 Qc7 * B45o "Sicilian: Taimanov, Four Knights, 6.Ndb5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 * B45o "Sicilian: Taimanov, Four Knights, 6.Ndb5 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 d6 * B45o "Sicilian: Taimanov, Four Knights, 6.Ndb5 d6 7.Bf4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 d6 7.Bf4 * B45p "Sicilian: Taimanov, Four Knights, 6.Ndb5 Bb4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 * B45q "Sicilian: Taimanov, Four Knights, American Attack" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.Nd6+ * B45r "Sicilian: Taimanov, Four Knights, 6.Ndb5 Bb4 7.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 * B45s "Sicilian: Taimanov, Four Knights, 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 * B45t "Sicilian: Taimanov, Four Knights, 6.Ndb5 Bb4 7.a3, 9.ed5 ed5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 * B45u "Sicilian: Taimanov, Four Knights, 6.Ndb5 Bb4 7.a3, 9.ed5 ed5 10.Bd3 O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 10.Bd3 O-O * B45v "Sicilian: Taimanov, Four Knights, 6.Ndb5 Bb4 7.a3, 10.Bd3 O-O 11.O-O d4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 10.Bd3 O-O 11.O-O d4 * B45w "Sicilian: Taimanov, Four Knights, 6.Ndb5 Bb4 7.a3, 10.Bd3 O-O 11.O-O d4 12.Ne2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 10.Bd3 O-O 11.O-O d4 12.Ne2 * B46a "Sicilian: Taimanov, 5...a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 * B46b "Sicilian: Taimanov, 5...a6 6.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.f4 * B46c "Sicilian: Taimanov, 5...a6 6.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Nxc6 * B46d "Sicilian: Taimanov, 5...a6 6.Nxc6 bxc6 7.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Nxc6 bxc6 7.Bd3 * B46e "Sicilian: Taimanov, 5...a6 6.Nxc6 bxc6 7.Bd3 d5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Nxc6 bxc6 7.Bd3 d5 * B46f "Sicilian: Taimanov, 5...a6 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.g3 * B46g "Sicilian: Taimanov, 5...a6 6.g3 Nge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.g3 Nge7 * B46h "Sicilian: Taimanov, 5...a6 6.g3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.g3 d6 * B46i "Sicilian: Taimanov, 5...a6 6.Be3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 * B46j "Sicilian: Taimanov, 5...a6 6.Be3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 d6 * B46k "Sicilian: Taimanov, 5...a6 6.Be3 Nge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 Nge7 * B46l "Sicilian: Taimanov, 5...a6 6.Be3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 Nf6 * B46m "Sicilian: Taimanov, 5...a6 6.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 * B46n "Sicilian: Taimanov, 5...a6 6.Be2 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nf6 * B46o "Sicilian: Taimanov, 5...a6 6.Be2 Nge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nge7 * B46p "Sicilian: Taimanov, 5...a6 6.Be2 Nge7 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nge7 7.O-O * B46q "Sicilian: Taimanov, 5...a6 6.Be2 Nge7 7.Be3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nge7 7.Be3 * B46r "Sicilian: Taimanov, 5...a6 6.Be2 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 d6 * B47a "Sicilian: Taimanov, Bastrikov Variation" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 * B47b "Sicilian: Taimanov, 6.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Nxc6 * B47c "Sicilian: Taimanov, 6.Ndb5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Ndb5 * B47d "Sicilian: Taimanov, 6.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.f4 * B47e "Sicilian: Taimanov, 6.f4 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.f4 a6 * B47f "Sicilian: Taimanov, 6.f4 a6 7.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.f4 a6 7.Nxc6 * B47g "Sicilian: Taimanov, 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 * B47h "Sicilian: Taimanov, 6.g3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 * B47h "Sicilian: Taimanov, 6.g3 a6 7.Bg2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 * B47i "Sicilian: Taimanov, 6.g3 a6 7.Bg2 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 * B47i "Sicilian: Taimanov, 6.g3 a6 7.Bg2 d6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 8.O-O * B47j "Sicilian: Taimanov, 6.g3 a6 7.Bg2 d6 8.O-O Bd7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 8.O-O Bd7 * B47k "Sicilian: Taimanov, 6.g3 a6 7.Bg2 d6 8.O-O Bd7 9.Re1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 8.O-O Bd7 9.Re1 * B47l "Sicilian: Taimanov, 6.g3 a6 7.Bg2 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 * B47m "Sicilian: Taimanov, 6.g3 a6 7.Bg2 Nf6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O * B47n "Sicilian: Taimanov, 6.g3 a6 7.Bg2 Nf6 8.O-O Bc5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O Bc5 * B47o "Sicilian: Taimanov, 6.g3 a6 7.Bg2 Nf6 8.O-O Be7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O Be7 * B47p "Sicilian: Taimanov, 6.g3 a6 7.Bg2 Nf6 8.O-O Be7 9.Re1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O Be7 9.Re1 * B47q "Sicilian: Taimanov, 6.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 * B47q "Sicilian: Taimanov, 6.Be2 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 Nf6 * B47r "Sicilian: Taimanov, 6.Be2 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 * B47s "Sicilian: Taimanov, 6.Be2 a6 7.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.f4 * B47t "Sicilian: Taimanov, 6.Be2 a6 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O * B47u "Sicilian: Taimanov, 6.Be2 a6 7.O-O b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O b5 * B47v "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 * B47v "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6 8.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.a3 * B47w "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6 8.Kh1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 * B47x "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6 8.Kh1 Be7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Be7 * B47y "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 * B47y "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4, 10.Qd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 9.Qxd4 Bc5 10.Qd3 * B47y "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4, 10.Qd3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 9.Qxd4 Bc5 10.Qd3 b5 * B47z "Sicilian: Taimanov, 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4, 10.Qd3 b5 11.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 9.Qxd4 Bc5 10.Qd3 b5 11.f4 * B48a "Sicilian: Taimanov, 6.Be3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 * B48b "Sicilian: Taimanov, 6.Be3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 Nf6 * B48c "Sicilian: Taimanov, 6.Be3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 * B48d "Sicilian: Taimanov, 6.Be3 a6 7.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.a3 * B48e "Sicilian: Taimanov, 6.Be3 a6 7.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.f4 * B48f "Sicilian: Taimanov, 6.Be3 a6 7.f4 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.f4 b5 * B48g "Sicilian: Taimanov, 6.Be3 a6 7.Qd2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Qd2 * B48h "Sicilian: Taimanov, 6.Be3 a6 7.Qd2 Nf6 8.f3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Qd2 Nf6 8.f3 * B48i "Sicilian: Taimanov, 6.Be3 a6 7.Bd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 * B48j "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 b5 * B48k "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 b5 8.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 b5 8.Nxc6 * B48l "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 b5 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 b5 8.O-O * B48m "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 * B48n "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O * B48o "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O Nxd4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Nxd4 * B48p "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O h5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O h5 * B48q "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O b5 * B48r "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O Bd6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Bd6 * B48s "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 * B48t "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 * B48u "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 Bc5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 Bc5 * B48v "Sicilian: Taimanov, 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 Bc5 10.Kh1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 Bc5 10.Kh1 * B49a "Sicilian: Taimanov, 6.Be3 a6 7.Be2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 * B49a "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nge7 * B49b "Sicilian: Taimanov, 6.Be3 a6 7.Be2 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 b5 * B49b "Sicilian: Taimanov, 6.Be3 a6 7.Be2 b5 8.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 b5 8.Nxc6 * B49c "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 * B49d "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 * B49d "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.a3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 b5 * B49e "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.a3 Be7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 Be7 * B49e "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.a3 Be7 9.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 Be7 9.O-O * B49f "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O * B49f "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O b5 * B49g "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Be7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Be7 * B49h "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 * B49i "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Nxc6 * B49j "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 * B49k "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 O-O * B49l "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 * B49m "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 * B49m "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 bxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 bxc6 * B49n "Sicilian: Taimanov, 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 bxc6 11.Nb6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 bxc6 11.Nb6 * B50a "Sicilian: 2.Nf3 d6" 1.e4 c5 2.Nf3 d6 * B50b "Sicilian: Wing Gambit deferred" 1.e4 c5 2.Nf3 d6 3.b4 * B50c "Sicilian: 2.Nf3 d6 3.b3" 1.e4 c5 2.Nf3 d6 3.b3 * B50d "Sicilian: 2.Nf3 d6 3.b3 e6" 1.e4 c5 2.Nf3 d6 3.b3 e6 * B50e "Sicilian: 2.Nf3 d6 3.d3" 1.e4 c5 2.Nf3 d6 3.d3 * B50f "Sicilian: 2.Nf3 d6 3.g3" 1.e4 c5 2.Nf3 d6 3.g3 * B50g "Sicilian: 2.Nf3 d6 3.Bc4" 1.e4 c5 2.Nf3 d6 3.Bc4 * B50h "Sicilian: 2.Nf3 d6 3.Bc4 Nf6 4.d3" 1.e4 c5 2.Nf3 d6 3.Bc4 Nf6 4.d3 * B50i "Sicilian: 2.Nf3 d6 3.Nc3" 1.e4 c5 2.Nf3 d6 3.Nc3 * B50j "Sicilian: 2.Nf3 d6 3.Nc3 e6" 1.e4 c5 2.Nf3 d6 3.Nc3 e6 * B50k "Sicilian: 2.Nf3 d6 3.Nc3 Nf6" 1.e4 c5 2.Nf3 d6 3.Nc3 Nf6 * B50l "Sicilian: 2.Nf3 d6 3.c3" 1.e4 c5 2.Nf3 d6 3.c3 * B50m "Sicilian: 2.Nf3 d6 3.c3 Nf6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 * B50n "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.h3" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.h3 * B50o "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.h3 Nc6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.h3 Nc6 * B50p "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.Bc4" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Bc4 * B50q "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.Bd3" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Bd3 * B50r "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.Bd3 Nc6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Bd3 Nc6 * B50s "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.Be2" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 * B50t "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.Be2 Nc6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 Nc6 * B50u "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.Be2 Nbd7" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 Nbd7 * B50v "Sicilian: 2.Nf3 d6 3.c3 Nf6 4.Be2 g6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 g6 * B50w "Sicilian: 2.Nf3 d6 3.c3, Torre Variation" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 g6 5.O-O Bg7 6.Bb5+ * B51a "Sicilian: Moscow" 1.e4 c5 2.Nf3 d6 3.Bb5+ * B51a "Sicilian: Moscow 3...Nd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 * B51b "Sicilian: Moscow 3...Nd7 4.c3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.c3 * B51c "Sicilian: Moscow 3...Nd7 4.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.O-O * B51d "Sicilian: Moscow 3...Nd7 4.O-O Nf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.O-O Nf6 * B51e "Sicilian: Moscow 3...Nd7 4.O-O Nf6 5.Re1 a6 6.Bf1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.O-O Nf6 5.Re1 a6 6.Bf1 * B51f "Sicilian: Moscow 3...Nd7 4.d4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 * B51f "Sicilian: Moscow 3...Nd7 4.d4 cxd4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 cxd4 * B51g "Sicilian: Moscow 3...Nd7 4.d4 Nf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 * B51h "Sicilian: Moscow 3...Nd7 4.d4 Nf6 5.Nc3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 * B51i "Sicilian: Moscow 3...Nd7 4.d4 Nf6 5.Nc3 cxd4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 cxd4 * B51i "Sicilian: Moscow 3...Nd7 4.d4 Nf6 5.Nc3 cxd4 6.Qxd4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 cxd4 6.Qxd4 * B51j "Sicilian: Moscow 3...Nd7 4.d4 Nf6 5.Nc3 cxd4 6.Qxd4 e5" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 cxd4 6.Qxd4 e5 * B51k "Sicilian: Moscow 3...Nc6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 * B51l "Sicilian: Moscow 3...Nc6 4.Bxc6+" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.Bxc6+ * B51m "Sicilian: Moscow 3...Nc6 4.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O * B51n "Sicilian: Moscow 3...Nc6 4.O-O Bd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 * B51o "Sicilian: Moscow 3...Nc6 4.O-O Bd7 5.Re1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 * B51p "Sicilian: Moscow 3...Nc6 4.O-O Bd7 5.Re1 a6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 a6 * B51q "Sicilian: Moscow 3...Nc6 4.O-O Bd7 5.Re1 Nf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 * B51r "Sicilian: Moscow 3...Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 * B51s "Sicilian: Moscow 3...Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Ba4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Ba4 * B51t "Sicilian: Moscow 3...Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Bf1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Bf1 * B51u "Sicilian: Moscow 3...Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Bf1 Bg4 8.h3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Bf1 Bg4 8.h3 * B52a "Sicilian: Moscow 3...Bd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 * B52b "Sicilian: Moscow 3...Bd7 4.Bxd7+ Nxd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 * B52c "Sicilian: Moscow 3...Bd7 4.Bxd7+ Nxd7 5.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 5.O-O * B52d "Sicilian: Moscow 3...Bd7 4.Bxd7+ Nxd7 5.O-O Ngf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 5.O-O Ngf6 * B52e "Sicilian: Moscow 3...Bd7 4.Bxd7+ Nxd7 5.O-O Ngf6 6.Qe2" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 5.O-O Ngf6 6.Qe2 * B52f "Sicilian: Moscow 3...Bd7 4.Bxd7+ Qxd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 * B52g "Sicilian: 3.Bb5+, Sokolsky Variation" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 * B52h "Sicilian: 3.Bb5+, Sokolsky, 5...Nc6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 * B52i "Sicilian: 3.Bb5+, Sokolsky, 5...Nc6 6.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.O-O * B52j "Sicilian: 3.Bb5+, Sokolsky, 5...Nc6 6.O-O Nf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.O-O Nf6 * B52k "Sicilian: 3.Bb5+, Sokolsky, 5...Nc6 6.Nc3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.Nc3 * B52l "Sicilian: 3.Bb5+, Sokolsky, 5...Nc6 6.Nc3 Nf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.Nc3 Nf6 * B52m "Sicilian: 3.Bb5+, Sokolsky, 5...Nc6 6.Nc3 Nf6 7.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.Nc3 Nf6 7.O-O * B52n "Sicilian: 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O * B52o "Sicilian: 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 * B52p "Sicilian: 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.Re1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.Re1 * B52q "Sicilian: 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.Re1 Nf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.Re1 Nf6 * B52r "Sicilian: 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3 * B52s "Sicilian: 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3 Nf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3 Nf6 * B52t "Sicilian: 3.Bb5+, Bronstein Gambit" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3 Nf6 7.d4 * B53a "Sicilian: 2...d6 3.d4" 1.e4 c5 2.Nf3 d6 3.d4 * B53b "Sicilian: 2...d6 3.d4 Nf6" 1.e4 c5 2.Nf3 d6 3.d4 Nf6 * B53c "Sicilian: 2...d6 3.d4 cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 * B53d "Sicilian, Chekhover Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 * B53e "Sicilian, Chekhover, 4...Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Bd7 * B53f "Sicilian, Chekhover, 4...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 * B53g "Sicilian, Chekhover, 4...a6 5.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.Be3 * B53h "Sicilian, Chekhover, 4...a6 5.c4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.c4 * B53i "Sicilian, Chekhover, 4...a6 5.c4 Nc6 6.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.c4 Nc6 6.Qd2 * B53j "Sicilian, Chekhover, 4...a6 5.c4 Nc6 6.Qd2 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.c4 Nc6 6.Qd2 g6 * B53k "Sicilian, Chekhover, 4...Nf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nf6 * B53k "Sicilian, Chekhover, 4...Nf6 5.Nc3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nf6 5.Nc3 * B53l "Sicilian, Chekhover, 4...Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 * B53m "Sicilian: Chekhover, Zaitsev Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Qd7 * B53n "Sicilian, Chekhover, 4...Nc6 5.Bb5 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 * B53o "Sicilian, Chekhover, 4...Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 * B53p "Sicilian, Chekhover, 7.c4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.c4 * B53q "Sicilian, Chekhover, 7.c4 Nf6 8.Nc3 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.c4 Nf6 8.Nc3 g6 * B53r "Sicilian, Chekhover, 7.Nc3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 * B53s "Sicilian, Chekhover, 7.Nc3 Nf6 8.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 * B53t "Sicilian, Chekhover, 7.Nc3 Nf6 8.Bg5 e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 * B53u "Sicilian, Chekhover, Main Line, 10.Qd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Qd3 * B53v "Sicilian, Chekhover, Main Line, 10.Rhe1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Rhe1 * B53w "Sicilian, Chekhover, Main Line, 10.Rhe1 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Rhe1 O-O * B53x "Sicilian, Chekhover, Main Line, 11.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Rhe1 O-O 11.Qd2 * B54a "Sicilian: Open, 2...d6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 * B54b "Sicilian: Open, 2...d6, 4...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 e5 * B54c "Sicilian: Open, 2...d6, 4...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 a6 * B54d "Sicilian: Open, 2...d6, 4...Nf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 * B54e "Sicilian: Open, 2...d6, 4...Nf6 5.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 * B54f "Sicilian: Prins (Moscow) Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 * B54g "Sicilian: Prins (Moscow), 5...e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e6 * B54h "Sicilian: Prins (Moscow), 5...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 a6 * B54i "Sicilian: Prins (Moscow), 5...Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 Nc6 * B54j "Sicilian: Prins (Moscow), 5...Nc6 6.c4 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 Nc6 6.c4 Nxd4 * B54k "Sicilian: Prins (Moscow), 5...Nc6 6.c4 Qb6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 Nc6 6.c4 Qb6 * B54l "Sicilian: Prins (Moscow), 5...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 * B54m "Sicilian: Prins (Moscow), 5...e5 6.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Nb3 * B54n "Sicilian: Prins (Moscow), 5...e5 6.Nb3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Nb3 Be6 * B54o "Sicilian: Prins (Moscow), 5...e5 6.Nb3 d5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Nb3 d5 * B55 "Sicilian: Prins, Venice Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ * B55 "Sicilian: Prins, Venice Attack, 6...Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Bd7 * B55 "Sicilian: Prins, Venice Attack, 6...Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Nbd7 * B55 "Sicilian: Prins, Venice Attack, 6...Nbd7 7.Nf5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Nbd7 7.Nf5 * B55 "Sicilian: Prins, Venice Attack, 6...Nbd7 7.Nf5 d5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Nbd7 7.Nf5 d5 * B56a "Sicilian: Open, 2...d6, 5.Nc3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 * B56b "Sicilian: Open, 2...d6, 5.Nc3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 * B56c "Sicilian: Venice Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Bb5+ * B56d "Sicilian: Open, 2...d6, 5.Nc3 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nbd7 * B56e "Sicilian: Open, 2...d6, 5.Nc3 Nbd7 6.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nbd7 6.Bc4 * B56f "Sicilian: Open, 2...d6, 5.Nc3 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bd7 * B56g "Sicilian: Open, 2...d6, 5.Nc3 Bd7 6.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bd7 6.Bg5 * B56h "Sicilian: Open, 2...d6 5.Nc3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 * B56i "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.h3 * B56j "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.g3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.g3 * B56k "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f4 * B56l "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 * B56m "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.f3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 e5 * B56m "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.f3 e5 7.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 e5 7.Nb3 * B56n "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.f3 e5 7.Nb3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 e5 7.Nb3 Be7 * B56o "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 * B56p "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.Be3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 e5 * B56q "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.Be3 Ng4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 Ng4 * B56r "Sicilian: Open, 2...d6, 5.Nc3 Nc6 6.Be3 Ng4 7.Bb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 Ng4 7.Bb5 * B57a "Sicilian: Sozin" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 * B57a "Sicilian: Sozin, Magnus Smith Trap" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 g6 7.Nxc6 bxc6 8.e5 * B57b "Sicilian: Sozin, 6...Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Bd7 * B57c "Sicilian: Sozin, 6...Bd7 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Bd7 7.O-O * B57d "Sicilian: Sozin, Benko Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 * B57e "Sicilian: Sozin, Benko, 7.Nde2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nde2 * B57f "Sicilian: Sozin, Benko, 7.Ndb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Ndb5 * B57g "Sicilian: Sozin, Benko, 7.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nxc6 * B57h "Sicilian: Sozin, Benko, 7.Nxc6 bxc6 8.O-O g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nxc6 bxc6 8.O-O g6 * B57i "Sicilian: Sozin, Benko, 7.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 * B57j "Sicilian: Sozin, Benko, 7.Nb3 e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 * B57k "Sicilian: Sozin, Benko, 7.Nb3 e6 8.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.Be3 * B57l "Sicilian: Sozin, Benko, 7.Nb3 e6 8.Bf4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.Bf4 * B57m "Sicilian: Sozin, Benko, 7.Nb3 e6 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.O-O * B57n "Sicilian: Sozin, Benko, 7.Nb3 e6 8.O-O Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.O-O Be7 * B57o "Sicilian: Sozin, Benko, 7.Nb3 e6 8.O-O Be7 9.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.O-O Be7 9.Be3 * B58a "Sicilian: Boleslavsky Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 * B58b "Sicilian: Boleslavsky, 6...Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 Bd7 * B58c "Sicilian: Boleslavsky, 6...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 a6 * B58d "Sicilian: Boleslavsky, 6...Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 Nxd4 * B58e "Sicilian: Boleslavsky, 6...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 * B58f "Sicilian: Boleslavsky, 7.Ndb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Ndb5 * B58g "Sicilian: Boleslavsky, Louma Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nxc6 * B58g "Sicilian: Boleslavsky, Louma Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nxc6 bxc6 * B58h "Sicilian: Boleslavsky, 7.Nf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 * B58i "Sicilian: Boleslavsky, 7.Nf3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 * B58j "Sicilian: Boleslavsky, 7.Nf3 h6 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O * B58k "Sicilian: Boleslavsky, 7.Nf3 h6 8.O-O Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 * B58l "Sicilian: Boleslavsky, 7.Nf3 h6 8.O-O Be7 9.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.h3 * B58m "Sicilian: Boleslavsky, 7.Nf3 h6 8.O-O Be7 9.Re1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 * B58n "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 * B58o "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 a6 * B58p "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 * B58p "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 Be6 11.Bf1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 * B58q "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 Be6 11.Bf1 Qa5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Qa5 * B58r "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 * B58s "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.a4 * B58t "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.b3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.b3 * B58u "Sicilian: Boleslavsky, 7.Nf3, 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.b3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.b3 a6 * B59a "Sicilian: Boleslavsky, 7.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 * B59b "Sicilian: Boleslavsky, 7.Nb3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be6 * B59c "Sicilian: Boleslavsky, 7.Nb3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 * B59d "Sicilian: Boleslavsky, 7.Nb3 Be7 8.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.Bg5 * B59e "Sicilian: Boleslavsky, 7.Nb3 Be7 8.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.Be3 * B59f "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O * B59g "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O * B59h "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Bg5 * B59i "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 * B59j "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.f4 * B59k "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 * B59l "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 * B59m "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Bf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Bf3 * B59n "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.Be3 a5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 a5 * B59o "Sicilian: Boleslavsky, 7.Nb3 Be7 8.O-O O-O 9.Be3 a5 10.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 a5 10.a4 * B60a "Sicilian: Richter-Rauzer" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 * B60b "Sicilian: Richter-Rauzer, Bondarevsky Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 g6 * B60c "Sicilian: Richter-Rauzer, 6...Qa5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Qa5 * B60d "Sicilian: Richter-Rauzer, 6...Qb6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Qb6 * B60e "Sicilian: Richter-Rauzer, 6...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 a6 * B60f "Sicilian: Richter-Rauzer, Larsen Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 * B60g "Sicilian: Richter-Rauzer, Larsen, 7.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Nb3 * B60h "Sicilian: Richter-Rauzer, Larsen, 7.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Bxf6 * B60i "Sicilian: Richter-Rauzer, Larsen, 7.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Be2 * B60j "Sicilian: Richter-Rauzer, Larsen, 7.Be2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Be2 a6 * B60k "Sicilian: Richter-Rauzer, Larsen, 7.Be2 Qa5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Be2 Qa5 * B61a "Sicilian: Richter-Rauzer, Larsen, 7.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 * B61b "Sicilian: Richter-Rauzer, Larsen, 7.Qd2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 a6 * B61c "Sicilian: Richter-Rauzer, Larsen, 7.Qd2 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Nxd4 * B61d "Sicilian: Richter-Rauzer, Larsen, 7.Qd2 Rc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 * B61e "Sicilian: Richter-Rauzer, Larsen, 7.Qd2 Rc8 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.f4 * B61f "Sicilian: Richter-Rauzer, Larsen, 7.Qd2 Rc8 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O * B61g "Sicilian: Richter-Rauzer, Larsen, Main Line" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O Nxd4 9.Qxd4 Qa5 * B61h "Sicilian: Richter-Rauzer, Larsen, Main Line, 10.Bd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O Nxd4 9.Qxd4 Qa5 10.Bd2 * B61i "Sicilian: Richter-Rauzer, Larsen, Main Line, 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O Nxd4 9.Qxd4 Qa5 10.f4 * B62a "Sicilian: Richter-Rauzer, 6...e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 * B62b "Sicilian: Richter-Rauzer, 6...e6 7.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Be2 * B62c "Sicilian: Richter-Rauzer, 6...e6 7.Be2 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Be2 Be7 * B62d "Sicilian: Richter-Rauzer, Podebrady Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nb3 * B62e "Sicilian: Richter-Rauzer, Richter Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nxc6 * B62f "Sicilian: Richter-Rauzer, Keres Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd3 * B62g "Sicilian: Richter-Rauzer, Margate (Alekhine) Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Bb5 * B62h "Sicilian: Richter-Rauzer, Margate, 7...Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Bb5 Bd7 * B62i "Sicilian: Richter-Rauzer, Margate, 7...Bd7 8.Bxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Bb5 Bd7 8.Bxc6 * B63a "Sicilian: Richter-Rauzer, Rauzer Attack (7.Qd2)" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 * B63b "Sicilian: Richter-Rauzer, 7.Qd2 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Nxd4 * B63c "Sicilian: Richter-Rauzer, 7.Qd2 Qb6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 * B63d "Sicilian: Richter-Rauzer, 7.Qd2 Qb6 8.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 * B63e "Sicilian: Richter-Rauzer, 7.Qd2 Qb6 8.Nb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 a6 * B63f "Sicilian: Richter-Rauzer, 7.Qd2 Qb6 8.Nb3 a6 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 a6 9.O-O-O * B63g "Sicilian: Richter-Rauzer, 7.Qd2 Qb6 8.Nb3 a6 9.O-O-O Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 a6 9.O-O-O Be7 * B63h "Sicilian: Richter-Rauzer, 7.Qd2 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 h6 * B63i "Sicilian: Richter-Rauzer, 7.Qd2 h6 8.Bxf6 gxf6 9.O-O-O a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 h6 8.Bxf6 gxf6 9.O-O-O a6 * B63j "Sicilian: Richter-Rauzer, 7.Qd2 h6 8.Bxf6 gxf6 9.O-O-O a6 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 h6 8.Bxf6 gxf6 9.O-O-O a6 10.f4 * B63k "Sicilian: Richter-Rauzer, 7.Qd2 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 * B63l "Sicilian: Richter-Rauzer, 7.Qd2 Be7 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O * B63m "Sicilian: Richter-Rauzer, 7.Qd2 Be7 8.O-O-O Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O Nxd4 * B63m "Sicilian: Richter-Rauzer, 7.Qd2 Be7 8.O-O-O Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O Nxd4 9.Qxd4 * B63n "Sicilian: Richter-Rauzer, 7.Qd2 Be7 8.O-O-O Nxd4 9.Qxd4 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O Nxd4 9.Qxd4 O-O * B63o "Sicilian: Richter-Rauzer, 7.Qd2 Be7 8.O-O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O * B63p "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f3 * B63q "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 * B63r "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.Nb3 a5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 a5 * B63s "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.Nb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 a6 * B63t "Sicilian: Richter-Rauzer, Podebrad Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 * B63u "Sicilian: Richter-Rauzer, Podebrad, 10.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 10.f3 * B63v "Sicilian: Richter-Rauzer, Podebrad, 10.f3 Rd8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 10.f3 Rd8 * B63w "Sicilian: Richter-Rauzer, Podebrad, 10.f3 Rd8 11.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 10.f3 Rd8 11.Kb1 * B64a "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 * B64b "Sicilian: Richter-Rauzer, Geller Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 e5 * B64c "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.f4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 * B64d "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.f4 h6 10.Bh4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 10.Bh4 * B64e "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.f4 h6 10.Bh4 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 10.Bh4 Bd7 * B64f "Sicilian: Richter-Rauzer, 7.Qd2 Be7, 9.f4 h6 10.Bh4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 10.Bh4 e5 * B65a "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 * B65a "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 * B65b "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4 10.Qxd4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 h6 * B65c "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4 10.Qxd4 Qa5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 * B65d "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4 10.Qxd4 Qa5 11.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Kb1 * B65e "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 * B65f "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 Bd7 * B65g "Sicilian: Richter-Rauzer, 7...Be7, 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 Bd7 12.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 Bd7 12.e5 * B66a "Sicilian: Richter-Rauzer, 7...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 * B66b "Sicilian: Richter-Rauzer, 7...a6 8.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.Be2 * B66c "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O * B66d "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Be7 * B66e "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Nxd4 * B66e "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O Nxd4 9.Qxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Nxd4 9.Qxd4 * B66e "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O Nxd4 9.Qxd4 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Nxd4 9.Qxd4 Be7 * B66f "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 * B66g "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Bf4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Bf4 * B66h "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Bf4, 11.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Bf4 Bd7 10.Nxc6 Bxc6 11.f3 * B66i "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 * B66j "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Qc7 * B66k "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Bd7 * B66l "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Bd7 10.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Bd7 10.f3 * B66m "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 * B66m "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Be7 10.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f3 * B66m "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Be7 10.f3 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f3 Nxd4 * B66n "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Be7 10.f3 Nxd4 11.Bxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f3 Nxd4 11.Bxd4 * B66o "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Be7 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f4 * B66p "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Be3 Be7 10.f4 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f4 Nxd4 * B67a "Sicilian: Richter-Rauzer, 7...a6 8.O-O-O Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 * B67b "Sicilian: Richter-Rauzer, 7...a6, 9.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.Be2 * B67c "Sicilian: Richter-Rauzer, 7...a6, 9.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 * B67d "Sicilian: Richter-Rauzer, 7...a6, 9.f3 Rc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 Rc8 * B67e "Sicilian: Richter-Rauzer, 7...a6, 9.f3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 Be7 * B67f "Sicilian: Richter-Rauzer, 7...a6, 9.f3 Be7 10.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 Be7 10.h4 * B67g "Sicilian: Richter-Rauzer, 7...a6, 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 * B67h "Sicilian: Richter-Rauzer, 7...a6, 9.f4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 h6 * B67i "Sicilian: Richter-Rauzer, 7...a6, 9.f4 h6 10.Bh4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 h6 10.Bh4 * B67j "Sicilian: Richter-Rauzer, 7...a6, 9.f4 h6 10.Bh4 g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 h6 10.Bh4 g5 * B67k "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 * B67l "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Nxc6 * B67m "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 * B67m "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6 gxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 * B67n "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6 gxf6 11.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.f5 * B67o "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6 gxf6 11.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Nxc6 * B67p "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6 gxf6 11.Nxc6 Bxc6 12.Qe1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Nxc6 Bxc6 12.Qe1 * B67q "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6 gxf6 11.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Kb1 * B67r "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6 gxf6 11.Kb1 Qb6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Kb1 Qb6 * B67s "Sicilian: Richter-Rauzer, 7...a6, 9.f4 b5 10.Bxf6 gxf6 11.Kb1 Qb6 12.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Kb1 Qb6 12.Nxc6 * B68 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 * B68 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Be2 * B68 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Be2 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Be2 Qc7 * B68 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Nf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 * B68 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Nf3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 * B68 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Nf3 b5 11.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.e5 * B69 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Nf3 b5 11.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 * B69 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 * B69 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 12.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 12.Kb1 * B69 "Sicilian: Richter-Rauzer, 7...a6, 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 12.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 12.f5 * B70a "Sicilian: Dragon" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 * B70a "Sicilian: Dragon, 6.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f3 * B70b "Sicilian: Dragon, 6.g3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 * B70c "Sicilian: Dragon, 6.g3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 Nc6 * B70c "Sicilian: Dragon, 6.g3 Nc6 7.Bg2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 Nc6 7.Bg2 * B70d "Sicilian: Dragon, 6.g3 Nc6 7.Nde2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 Nc6 7.Nde2 * B70e "Sicilian: Dragon, 6.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bg5 * B70e "Sicilian: Dragon, 6.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bg5 Bg7 * B70f "Sicilian: Dragon, 6.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 * B70f "Sicilian: Dragon, 6.Bc4 Bg7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 Bg7 * B70g "Sicilian: Dragon, 6.Bc4 Bg7 7.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 Bg7 7.h3 * B70h "Sicilian: Dragon, 6.Bc4 Bg7 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 Bg7 7.O-O * B70i "Sicilian: Dragon, 6.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 * B70i "Sicilian: Dragon, 6.Be2 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Nc6 * B70j "Sicilian: Dragon, 6.Be2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 a6 * B70j "Sicilian: Dragon, 6.Be2 a6 7.a4 Bg7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 a6 7.a4 Bg7 * B70k "Sicilian: Dragon, 6.Be2 Bg7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 * B70l "Sicilian: Dragon, 6.Be2 Bg7 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O * B70l "Sicilian: Dragon, 6.Be2 Bg7 7.O-O Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O Nc6 * B70m "Sicilian: Dragon, 6.Be2 Bg7 7.O-O Nc6 8.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O Nc6 8.Nb3 * B70n "Sicilian: Dragon, 6.Be2 Bg7 7.O-O Nc6 8.Nb3 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O Nc6 8.Nb3 O-O * B70o "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O * B70p "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Re1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 * B70p "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 * B70q "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 9.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 9.Nb3 * B70r "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 9.Nb3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 9.Nb3 Be6 * B70s "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 * B70s "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 * B70t "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 * B70u "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 a6 * B70v "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 Be6 * B70w "Sicilian: Dragon, 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 Be6 10.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 Be6 10.Kh1 * B71 "Sicilian: Dragon, Levenfish Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 * B71 "Sicilian: Dragon, Levenfish, 6...Bg7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Bg7 * B71 "Sicilian: Dragon, Levenfish, 6...Bg7 7.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Bg7 7.e5 * B71 "Sicilian: Dragon, Levenfish, 6...Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nbd7 * B71 "Sicilian: Dragon, Levenfish, 6...Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 * B71 "Sicilian: Dragon, Levenfish, 6...Nc6 7.Bb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 7.Bb5 * B71 "Sicilian: Dragon, Levenfish, 6...Nc6 7.Nf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 7.Nf3 * B71 "Sicilian: Dragon, Levenfish, 6...Nc6 7.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 7.Nxc6 * B72 "Sicilian: Dragon, 6.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 * B72 "Sicilian: Dragon, 6.Be3 Bg7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 * B72 "Sicilian: Dragon, 6.Be3 Bg7 7.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Qd2 * B72 "Sicilian: Dragon, 6.Be3 Bg7 7.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Bc4 * B72 "Sicilian: Dragon, 6.Be3 Bg7 7.Bc4 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Bc4 Nc6 * B72 "Sicilian: Dragon, 6.Be3 Bg7 7.Bc4 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Bc4 O-O * B72 "Sicilian: Dragon, Classical Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 * B72 "Sicilian: Dragon, Classical Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 O-O * B72 "Sicilian: Dragon, Classical Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 O-O 8.O-O * B72 "Sicilian: Dragon, Classical, Amsterdam Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.Qd2 * B72 "Sicilian: Dragon, Classical, Grigoriev Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.Qd2 O-O 9.O-O-O * B72 "Sicilian: Dragon, Classical, Nottingham Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.Nb3 * B73 "Sicilian: Dragon, Classical, 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O * B73 "Sicilian: Dragon, Classical, 8.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O * B73 "Sicilian: Dragon, Classical, 9.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Kh1 * B73 "Sicilian: Dragon, Classical, Richter Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Qd2 * B73 "Sicilian: Dragon, Classical, 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.f4 * B73 "Sicilian: Dragon, Classical, Zollner Gambit" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.f4 Qb6 10.e5 * B74 "Sicilian: Dragon, Classical, 9.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 * B74 "Sicilian: Dragon, Classical, 9.Nb3 b6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 b6 * B74 "Sicilian: Dragon, Classical, Alekhine Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 a5 * B74 "Sicilian: Dragon, Classical, 9.Nb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 a6 * B74 "Sicilian: Dragon, Classical, 9.Nb3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 * B74 "Sicilian: Dragon, Classical, 9.Nb3 Be6 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 * B74 "Sicilian: Dragon, Classical, 9.Nb3 Be6 10.f4 Rc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Rc8 * B74 "Sicilian: Dragon, Classical, Tartakower Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Qc8 * B74 "Sicilian: Dragon, Classical, Maroczy Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 * B74 "Sicilian: Dragon, Classical, Stockholm Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 11.f5 Bc4 12.Nxa5 Bxe2 13.Qxe2 Qxa5 14.g4 * B74 "Sicilian: Dragon, Classical, Spielmann Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 11.f5 Bc4 12.Bd3 * B74 "Sicilian: Dragon, Classical, Bernard Defence" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 11.f5 Bc4 12.Bd3 Bxd3 13.cxd3 d5 * B75 "Sicilian: Dragon, Yugoslav Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 * B75 "Sicilian: Dragon, Yugoslav, 7...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 a6 * B75 "Sicilian: Dragon, Yugoslav, 7...Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 * B75 "Sicilian: Dragon, Yugoslav, 7...Nc6 8.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Bc4 * B75 "Sicilian: Dragon, Yugoslav, 7...Nc6 8.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 * B75 "Sicilian: Dragon, Yugoslav, 7...Nc6 8.Qd2 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 Bd7 * B75 "Sicilian: Dragon, Yugoslav, 7...Nc6 8.Qd2 Bd7 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 Bd7 9.O-O-O * B75 "Sicilian: Dragon, Yugoslav, 7...Nc6 8.Qd2 Bd7 9.O-O-O Rc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 Bd7 9.O-O-O Rc8 * B76a "Sicilian: Dragon, Yugoslav, 7.f3 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O * B76b "Sicilian: Dragon, Yugoslav, 7.f3 O-O 8.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 * B76c "Sicilian: Dragon, Yugoslav, 8.Qd2 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 * B76d "Sicilian: Dragon, Yugoslav, 9.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.g4 * B76e "Sicilian: Dragon, Yugoslav, 9.g4 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.g4 Be6 * B76f "Sicilian: Dragon, Yugoslav, 9.g4 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.g4 Nxd4 * B76g "Sicilian: Dragon, Yugoslav, 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O * B76h "Sicilian: Dragon, Yugoslav, 9.O-O-O Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Bd7 * B76i "Sicilian: Dragon, Yugoslav, 9.O-O-O Bd7 10.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Bd7 10.g4 * B76j "Sicilian: Dragon, Yugoslav, 9.O-O-O Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 * B76k "Sicilian: Dragon, Yugoslav, 9.O-O-O Nxd4 10.Bxd4 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 * B76l "Sicilian: Dragon, Yugoslav, 9.O-O-O Nxd4: 11.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 11.Kb1 * B76m "Sicilian: Dragon, Yugoslav, 9.O-O-O Nxd4: 11.Kb1 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 11.Kb1 Qc7 * B76n "Sicilian: Dragon, Yugoslav, 9.O-O-O Nxd4: 11.Kb1 Qc7 12.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 11.Kb1 Qc7 12.g4 * B76o "Sicilian: Dragon, Yugoslav, 9.O-O-O d5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 * B76p "Sicilian: Dragon, Yugoslav, 9.O-O-O d5 10.Qe1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.Qe1 * B76q "Sicilian: Dragon, Yugoslav, 9.O-O-O d5 10.exd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 * B76q "Sicilian: Dragon, Yugoslav, 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 * B76r "Sicilian: Dragon, Yugoslav, 9.O-O-O d5: 12.Nxd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Nxd5 * B76s "Sicilian: Dragon, Yugoslav, 9.O-O-O d5: 12.Bd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Bd4 * B76t "Sicilian: Dragon, Yugoslav, 9.O-O-O d5: 12.Bd4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Bd4 e5 * B76u "Sicilian: Dragon, Yugoslav, 9.O-O-O d5: 12.Bd4 e5 13.Bc5 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Bd4 e5 13.Bc5 Be6 * B77a "Sicilian: Dragon, Yugoslav, 9.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 * B77b "Sicilian: Dragon, Yugoslav, Byrne Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 a5 * B77c "Sicilian: Dragon, Yugoslav, 9.Bc4 Ne5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Ne5 * B77d "Sicilian: Dragon, Yugoslav, 9.Bc4 Nd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Nd7 * B77e "Sicilian: Dragon, Yugoslav, 9.Bc4 Nxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Nxd4 * B77f "Sicilian: Dragon, Yugoslav, 9.Bc4 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 * B77g "Sicilian: Dragon, Yugoslav, 9.Bc4 Bd7 10.Bb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.Bb3 * B77h "Sicilian: Dragon, Yugoslav, 9.Bc4 Bd7 10.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.g4 * B77i "Sicilian: Dragon, Yugoslav, 9.Bc4 Bd7 10.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.h4 * B77j "Sicilian: Dragon, Yugoslav, 9.Bc4 Bd7 10.h4 Rc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.h4 Rc8 * B78a "Sicilian: Dragon, Yugoslav, 10.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O * B78b "Sicilian: Dragon, Yugoslav, 10.O-O-O Ne5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Ne5 * B78c "Sicilian: Dragon, Yugoslav, 10.O-O-O Rc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 * B78c "Sicilian: Dragon, Yugoslav, 10.O-O-O Rc8 11.Bb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 * B78d "Sicilian: Dragon, Yugoslav, Modern Main Line" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 * B78e "Sicilian: Dragon, Yugoslav, Main Line, 12.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.Kb1 * B78e "Sicilian: Dragon, Yugoslav, Main Line, 12.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.Kb1 Nc4 13.Bxc4 Rxc4 * B78f "Sicilian: Dragon, Yugoslav, Main Line, 12.Kb1: 14.g4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.Kb1 Nc4 13.Bxc4 Rxc4 14.g4 b5 * B78g "Sicilian: Dragon, Yugoslav, Main Line, 12.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 * B78g "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 Nc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 Nc4 * B78h "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 Nc4: 14.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 Nc4 13.Bxc4 Rxc4 14.g4 * B78i "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 Nc4: 14.h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 Nc4 13.Bxc4 Rxc4 14.h5 * B78j "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 * B78k "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5 13.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Kb1 * B78l "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5 13.Bh6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bh6 * B78m "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5 13.Bh6 Bxh6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bh6 Bxh6 * B78n "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5 13.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 * B78o "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5 13.Bg5 Rc5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 Rc5 * B78p "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5 13.Bg5 Rc5 14.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 Rc5 14.g4 * B78q "Sicilian: Dragon, Yugoslav, Main Line, 12.h4 h5 13.Bg5 Rc5 14.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 Rc5 14.Kb1 * B78r "Sicilian: Dragon, Yugoslav, Old Main Line" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 * B78s "Sicilian: Dragon, Yugoslav, Old Main Line, 11.Bb3 Rac8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rac8 * B78t "Sicilian: Dragon, Yugoslav, Old Main Line, 11.Bb3 Rfc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 * B79a "Sicilian: Dragon, Yugoslav, Old Main Line, 12.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 * B79a "Sicilian: Dragon, Yugoslav, Old Main Line, 12.h4 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 h5 * B79b "Sicilian: Dragon, Yugoslav, Old Main Line, 12.h4 Ne5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 * B79c "Sicilian: Dragon, Yugoslav, Old Main Line, 12.h4 Ne5 13.Kb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.Kb1 * B79d "Sicilian: Dragon, Yugoslav, Old Main Line, 12.h4 Ne5 13.Kb1 Nc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.Kb1 Nc4 * B79e "Sicilian: Dragon, Yugoslav, Old Main Line, 12.h4 Ne5 13.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.g4 * B79f "Sicilian: Dragon, Yugoslav, Old Main Line, 12.h4 Ne5 13.h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.h5 * B80a "Sicilian: Scheveningen" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 * B80b "Sicilian: Scheveningen, 6.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 * B80c "Sicilian: Scheveningen, 6.Be3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 Nc6 * B80d "Sicilian: Scheveningen, 6.Be3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 Nc6 7.f3 * B80e "Sicilian: Scheveningen, 6.Be3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 * # Here, 7.g4 (the Perenyi Attack) is B81 (a variation of the Keres Attack) B80f "Sicilian: Scheveningen, 7.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.Qd2 * B80g "Sicilian: Scheveningen, English Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 * B80h "Sicilian: Scheveningen, English Attack, 7...Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 Nc6 * B80h "Sicilian: Scheveningen, English, 7...Nc6 8.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 Nc6 8.Qd2 * B80i "Sicilian: Scheveningen, English, 7...Nc6 8.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 Nc6 8.Qd2 Be7 * B80j "Sicilian: Scheveningen, English Attack, 7...b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 * B80k "Sicilian: Scheveningen, English, 7...b5 8.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 * B80l "Sicilian: Scheveningen, English, 7...b5, 8.Qd2 Bb7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 Bb7 * B80l "Sicilian: Scheveningen, English, 7...b5 8.Qd2 Bb7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 Bb7 9.g4 * B80m "Sicilian: Scheveningen, English, 7...b5 8.Qd2 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 Nbd7 * B80n "Sicilian: Scheveningen, Vitolins Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bb5+ * B80n "Sicilian: Scheveningen, Vitolins, 6...Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bb5+ Bd7 * B80o "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 * B80p "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 a6 * B80q "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 * B80r "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 a6 * B80r "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 a6 8.O-O * B80r "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 a6 8.O-O Bd7 * B80s "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 Qc7 * B80t "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 Qc7 8.O-O a6 * B80u "Sicilian: Scheveningen, Fianchetto Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 Qc7 8.O-O a6 9.Re1 Be7 * B81a "Sicilian: Scheveningen, Keres Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 * B81b "Sicilian: Scheveningen, Keres, 6...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 e5 * B81c "Sicilian: Scheveningen, Keres, 6...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 * B81d "Sicilian: Scheveningen, Keres, Perenyi Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 * B81e "Sicilian: Scheveningen, Keres, Perenyi Attack, 7...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 e5 * B81f "Sicilian: Scheveningen, Keres, Perenyi Attack, 7...h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 h6 * B81g "Sicilian: Scheveningen, Keres, Perenyi Attack, 7...h6 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 h6 8.f4 * B81h "Sicilian: Scheveningen, Keres, 6...h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 * B81i "Sicilian: Scheveningen, Keres, 6...h6 7.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h3 * B81i "Sicilian: Scheveningen, Keres, 6...h6 7.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h3 Nc6 8.Bg2 * B81i "Sicilian: Scheveningen, Keres, 6...h6 7.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h3 a6 8.Bg2 * B81j "Sicilian: Scheveningen, Keres, 6...h6 7.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 * B81k "Sicilian: Scheveningen, Keres, 6...h6 7.h4 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Be7 * B81l "Sicilian: Scheveningen, Keres, 6...h6 7.h4 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Nc6 * B81m "Sicilian: Scheveningen, Keres, 6...h6 7.h4 Nc6 8.Rg1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Nc6 8.Rg1 * B81n "Sicilian: Scheveningen, Keres, 6...h6 7.h4 Nc6 8.Rg1 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Nc6 8.Rg1 h5 * B81o "Sicilian: Scheveningen, Keres, 6...h6 7.g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.g5 * B81p "Sicilian: Scheveningen, Keres, 6...h6 7.Rg1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.Rg1 * B81q "Sicilian: Scheveningen, Keres, 6...Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 * B81r "Sicilian: Scheveningen, Keres, 6...Nc6 7.g5 Nd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 7.g5 Nd7 * B81s "Sicilian: Scheveningen, Keres, 6...Nc6 7.g5 Nd7 8.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 7.g5 Nd7 8.Be3 * B81t "Sicilian: Scheveningen, Keres, 6...Nc6 7.g5 Nd7 8.Be3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 7.g5 Nd7 8.Be3 Be7 * B82 "Sicilian: Scheveningen, 6.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 * B82 "Sicilian: Scheveningen, 6.f4 Qb6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Qb6 * B82 "Sicilian: Scheveningen, 6.f4 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Be7 * B82 "Sicilian: Scheveningen, 6.f4 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 a6 * B82 "Sicilian: Scheveningen, 6.f4 a6 7.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 a6 7.Be3 * B82 "Sicilian: Scheveningen, 6.f4 a6 7.Be3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 a6 7.Be3 b5 * B82 "Sicilian: Scheveningen, 6.f4 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 * B82 "Sicilian: Scheveningen, 6.f4 Nc6 7.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 * B82 "Sicilian: Scheveningen, 6.f4 Nc6 7.Be3 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Qc7 * B82 "Sicilian: Scheveningen, 6.f4 Nc6 7.Be3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 * B82 "Sicilian: Scheveningen, Tal Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 8.Qf3 * B82 "Sicilian: Scheveningen, Tal, 8...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 8.Qf3 e5 * B82 "Sicilian: Scheveningen, Tal, 8...Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 8.Qf3 Qc7 * B83 "Sicilian: Scheveningen, 6.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 * B83 "Sicilian: Scheveningen, 6.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Be7 * B83 "Sicilian: Scheveningen, Modern" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 * B83 "Sicilian: Scheveningen, Modern" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 * B83 "Sicilian: Scheveningen, Modern" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O * B83 "Sicilian: Scheveningen, Modern, 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 * B83 "Sicilian: Scheveningen, Modern, 9.f4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 e5 * B83 "Sicilian: Scheveningen, Modern, 9.f4 e5 10.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 e5 10.Nb3 * B83 "Sicilian: Scheveningen, Modern, 9.f4 e5 10.Nb3 exf4 11.Bxf4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 e5 10.Nb3 exf4 11.Bxf4 * B83 "Sicilian: Scheveningen, Modern, 9.f4 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 * B83 "Sicilian: Scheveningen, Modern, 9.f4 Bd7 10.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Nb3 * B83 "Sicilian: Scheveningen, Modern, 9.f4 Bd7 10.Nb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Nb3 a6 * B83 "Sicilian: Scheveningen, Modern, 9.f4 Bd7 10.Nb3 a6 11.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Nb3 a6 11.a4 * B83 "Sicilian: Scheveningen, Modern, 9.f4 Bd7 10.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Kh1 * B83 "Sicilian: Scheveningen, Modern, 9.f4 Bd7 10.Qe1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Qe1 * B84 "Sicilian: Scheveningen, Classical" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 * B84 "Sicilian: Scheveningen, Classical, 7.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.a4 * B84 "Sicilian: Scheveningen, Classical, 7.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.f4 * B84 "Sicilian: Scheveningen, Classical, 7.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.Be3 * B84 "Sicilian: Scheveningen, Classical, 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O * B84 "Sicilian: Scheveningen, Classical, 7.O-O Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nbd7 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Nbd7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nbd7 8.a4 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Nbd7 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nbd7 8.f4 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nc6 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Kh1 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.Kh1 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Kh1 Nc6 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.a4 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.a4 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.a4 Nc6 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.Bf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Bf3 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Be3 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.Be3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Be3 Nc6 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.f4 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Qc7 8.f4 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.f4 Nc6 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Be7 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Be7 8.f4 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Be7 8.f4 Qc7 9.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 9.Be3 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Be7 8.f4 Qc7 9.Be3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 9.Be3 Nc6 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Be7 8.f4 Qc7 9.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 9.Kh1 * B84 "Sicilian: Scheveningen, Classical, 7.O-O Be7 8.f4 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O * B85 "Sicilian: Scheveningen, Classical, Main Line" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Qc7 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.Qe1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Qe1 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.Qe1 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Qe1 Qc7 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.Qe1 Qc7 11.Qg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Qe1 Qc7 11.Qg3 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Kh1 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.Kh1 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Kh1 Bd7 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.Kh1 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Kh1 Qc7 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.a4 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 Bd7 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.a4 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 Qc7 * B85 "Sicilian: Scheveningen, Classical, Main Line, 9...Nc6 10.a4 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 Qc7 11.Kh1 * B86 "Sicilian: Sozin-Scheveningen" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 * B86 "Sicilian: Sozin-Scheveningen, 6...Qb6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Qb6 * B86 "Sicilian: Sozin-Najdorf" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 * B86 "Sicilian: Sozin-Najdorf, 7.Bb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 * B86 "Sicilian: Sozin-Najdorf, 7.Bb3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 Be7 * B87 "Sicilian: Sozin-Najdorf, 7.Bb3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 * B87 "Sicilian: Sozin-Najdorf, 7.Bb3 b5 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O * B87 "Sicilian: Sozin-Najdorf, 7.Bb3 b5 8.O-O Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O Be7 * B87 "Sicilian: Sozin-Najdorf, 7.Bb3 b5 8.O-O Be7 9.Qf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O Be7 9.Qf3 * B87 "Sicilian: Sozin-Najdorf, 7.Bb3 b5 8.O-O Be7 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O Be7 9.f4 * B88 "Sicilian: Sozin-Scheveningen" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 * B88 "Sicilian: Sozin-Scheveningen, 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.O-O * B88 "Sicilian: Sozin-Scheveningen, 7.Bb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Bb3 * B88 "Sicilian: Sozin-Scheveningen, 7.Bb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Bb3 Be7 8.Be3 * B88 "Sicilian: Sozin, Fischer Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Bb3 Be7 8.Be3 O-O 9.f4 * B89 "Sicilian: Sozin, 7.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 * B89 "Sicilian: Sozin, 7.Be3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 a6 * B89 "Sicilian: Velimirovic vs. 7...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 a6 8.Qe2 * B89 "Sicilian: Sozin, 7.Be3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 * B89 "Sicilian: Velimirovic" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 * B89 "Sicilian: Velimirovic, 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 O-O 9.O-O-O * B89 "Sicilian: Velimirovic, 9.O-O-O Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 O-O 9.O-O-O Qc7 * B89 "Sicilian: Velimirovic, 9.O-O-O Qc7 10.Bb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 O-O 9.O-O-O Qc7 10.Bb3 a6 * B90a "Sicilian: Najdorf" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 * B90b "Sicilian: Najdorf, 6.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.a4 * B90c "Sicilian: Najdorf, 6.a4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.a4 e5 * B90d "Sicilian: Najdorf, 6.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f3 * B90e "Sicilian: Najdorf, Adams Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.h3 * B90f "Sicilian: Najdorf, Fischer-Sozin Attack" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bc4 * B90g "Sicilian: Najdorf, 6.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 * B90h "Sicilian: Najdorf, 6.Be3 Ng4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 * B90h "Sicilian: Najdorf, 6.Be3 Ng4 7.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 * B90i "Sicilian: Najdorf, 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 * B90j "Sicilian: Najdorf, 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 10.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 10.Be2 * B90j "Sicilian: Najdorf, 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 10.Be2 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 10.Be2 h5 * B90k "Sicilian: Najdorf, 6.Be3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 * B90l "Sicilian: Najdorf, 6.Be3 e5 7.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 * B90m "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.Qd2 * B90n "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 * B90o "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 * B90o "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 * B90p "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 Nbd7 * B90q "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O * B90q "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O 10.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O 10.O-O-O * B90r "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O 10.O-O-O Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O 10.O-O-O Nbd7 * B90s "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Nbd7 * B90t "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Nbd7 9.Qd2 * B90u "Sicilian: Najdorf, 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Nbd7 9.Qd2 b5 * B91a "Sicilian: Najdorf, 6.g3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 * B91b "Sicilian: Najdorf, 6.g3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 b5 * B91c "Sicilian: Najdorf, 6.g3 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 g6 * B91d "Sicilian: Najdorf, 6.g3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 Nc6 * B91e "Sicilian: Najdorf, 6.g3 Bg4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 Bg4 * B91f "Sicilian: Najdorf, 6.g3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 * B91g "Sicilian: Najdorf, 6.g3 e5 7.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nb3 * B91h "Sicilian: Najdorf, 6.g3 e5 7.Nb3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nb3 Be7 * B91i "Sicilian: Najdorf, 6.g3 e5 7.Nde2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 * B91j "Sicilian: Najdorf, 6.g3 e5 7.Nde2 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 b5 * B91k "Sicilian: Najdorf, 6.g3 e5 7.Nde2 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Nbd7 * B91l "Sicilian: Najdorf, 6.g3 e5 7.Nde2 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Be7 * B91m "Sicilian: Najdorf, 6.g3 e5 7.Nde2 Be7 8.Bg2 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Be7 8.Bg2 Nbd7 * B91n "Sicilian: Najdorf, 6.g3 e5 7.Nde2 Be7 8.Bg2 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Be7 8.Bg2 O-O * B92a "Sicilian: Najdorf, 6.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 * B92b "Sicilian: Najdorf, 6.Be2 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 Nbd7 * B92c "Sicilian: Najdorf, 6.Be2 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 * B92d "Sicilian: Najdorf, 6.Be2 e5 7.Nf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nf3 * B92e "Sicilian: Najdorf, 6.Be2 e5 7.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 * B92f "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 * B92g "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.Be3 * B92g "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.Be3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.Be3 Be6 * B92h "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O * B92h "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O Be6 * B92i "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O Be6 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O Be6 9.f4 * B92j "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O * B92k "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 * B92k "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 * B92l "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.a4 * B92m "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Nd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Nd5 * B92n "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Qd2 * B92o "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 * B92p "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Be6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Be6 * B92q "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Nc6 * B92r "Sicilian: Najdorf, 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Qc7 * B93a "Sicilian: Najdorf, 6.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 * B93b "Sicilian: Najdorf, 6.f4 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Nc6 * B93c "Sicilian: Najdorf, 6.f4 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Nbd7 * B93d "Sicilian: Najdorf, 6.f4 Nbd7 7.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Nbd7 7.Be2 * B93e "Sicilian: Najdorf, 6.f4 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 * B93f "Sicilian: Najdorf, 6.f4 Qc7 7.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Bd3 * B93g "Sicilian: Najdorf, 6.f4 Qc7 7.Bd3 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Bd3 g6 * B93h "Sicilian: Najdorf, 6.f4 Qc7 7.Nf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Nf3 * B93i "Sicilian: Najdorf, 6.f4 Qc7 7.Nf3 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Nf3 Nbd7 * B93j "Sicilian: Najdorf, 6.f4 Qc7 7.Nf3 Nbd7 8.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Nf3 Nbd7 8.Bd3 * B93k "Sicilian: Najdorf, 6.f4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 * B93k "Sicilian: Najdorf, 6.f4 e5 7.Nf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 * B93l "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Qc7 * B93m "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Qc7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Qc7 8.a4 * B93n "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 * B93o "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.Bd3 * B93p "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 * B93q "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.a4 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Qc7 * B93r "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 * B93r "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bc4 * B93s "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 * B93t "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 O-O 10.O-O Nc5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 O-O 10.O-O Nc5 * B93u "Sicilian: Najdorf, 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 O-O 10.O-O exf4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 O-O 10.O-O exf4 * B94a "Sicilian: Najdorf, 6.Bg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 * # After 6.Bg5, 6...Nc6 is not B94, but a Richter-Rauzer (B60). B94b "Sicilian: Najdorf, 6.Bg5 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 b5 * B94c "Sicilian: Najdorf, 6.Bg5 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e5 * B94d "Sicilian: Najdorf, 6.Bg5 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 * B94e "Sicilian: Najdorf, 6.Bg5 Nbd7 7.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.f4 * B94f "Sicilian: Najdorf, 6.Bg5 Nbd7 7.f4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.f4 b5 * B94g "Sicilian: Najdorf, 6.Bg5 Nbd7 7.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 * B94h "Sicilian: Najdorf, 6.Bg5 Nbd7 7.Bc4 e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 e6 * B94i "Sicilian: Najdorf, 6.Bg5 Nbd7 7.Bc4 e6 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 e6 8.O-O * B94j "Sicilian: Najdorf, 6.Bg5 Nbd7 7.Bc4 Qa5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 Qa5 * B94k "Sicilian: Najdorf, 6.Bg5 Nbd7 7.Bc4 Qa5 8.Qd2 e6 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 Qa5 8.Qd2 e6 9.O-O-O * B95a "Sicilian: Najdorf, 6...e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 * B95b "Sicilian: Najdorf, 6...e6 7.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Bd3 * B95c "Sicilian: Najdorf, 6...e6 7.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Be2 * B95d "Sicilian: Najdorf, 6...e6 7.Qe2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qe2 * B95e "Sicilian: Najdorf, 6...e6 7.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd2 * B95f "Sicilian: Najdorf, 6...e6 7.Qd2 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd2 Be7 * B95g "Sicilian: Najdorf, 6...e6 7.Qd2 Be7 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O * B95h "Sicilian: Najdorf, 6...e6 7.Qd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd3 * B95i "Sicilian: Najdorf, 6...e6 7.Qd3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd3 Nc6 * B95j "Sicilian: Najdorf, 6...e6 7.Qf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 * B95k "Sicilian: Najdorf, 6...e6 7.Qf3 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 Nbd7 * B95l "Sicilian: Najdorf, 6...e6 7.Qf3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 Be7 * B95m "Sicilian: Najdorf, 6...e6 7.Qf3 Be7 8.O-O-O Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 Be7 8.O-O-O Nbd7 * B95n "Sicilian: Najdorf, 6...e6 7.Qf3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 h6 * B96a "Sicilian: Najdorf, 7.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 * B96b "Sicilian: Najdorf, 7.f4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 h6 * B96b "Sicilian: Najdorf, Delayed Poisoned Pawn" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 h6 8.Bh4 Qb6 * B96c "Sicilian: Najdorf, 7.f4 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nc6 * B96c "Sicilian: Najdorf, 7.f4 Nc6 8.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nc6 8.e5 * B96d "Sicilian: Najdorf, 7.f4 Nc6 8.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nc6 8.Nxc6 * B96e "Sicilian: Najdorf, 7.f4 Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Bd7 * B96f "Sicilian: Najdorf, 7.f4 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 * B96f "Sicilian: Najdorf, 7.f4 Qc7 8.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Bxf6 * B96g "Sicilian: Najdorf, 7.f4 Qc7 8.Qf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 * B96h "Sicilian: Najdorf, 7.f4 Qc7 8.Qf3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 * B96h "Sicilian: Najdorf, 7.f4 Qc7 8.Qf3 b5 9.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 9.f5 * B96h "Sicilian: Najdorf, 7.f4 Qc7 8.Qf3 b5 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 9.O-O-O * B96h "Sicilian: Najdorf, 7.f4 Qc7 8.Qf3 b5 9.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 9.Bxf6 * B96i "Sicilian: Najdorf, 7.f4 Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 * B96i "Sicilian: Najdorf, 7.f4 Nbd7 8.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Bc4 * B96i "Sicilian: Najdorf, 7.f4 Nbd7 8.Qe2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qe2 * B96i "Sicilian: Najdorf, 7.f4 Nbd7 8.Qe2 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qe2 Qc7 * B96j "Sicilian: Najdorf, 7.f4 Nbd7 8.Qf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 * B96j "Sicilian: Najdorf, 7.f4 Nbd7 8.Qf3 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 * B96k "Sicilian: Najdorf, 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 * B96l "Sicilian: Najdorf, 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 10.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 10.Bd3 * B96m "Sicilian: Najdorf, 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 10.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 10.e5 * B96n "Sicilian: Najdorf, Polugaevsky Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 * B96n "Sicilian: Najdorf, Polugaevsky, 8.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 * B96n "Sicilian: Najdorf, Polugaevsky, 9.fxe5 Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 * B96o "Sicilian: Najdorf, Polugaevsky, 10.Nf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Nf3 * B96p "Sicilian: Najdorf, Polugaevsky, 10.Bxb5+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Bxb5+ * B96q "Sicilian: Najdorf, Polugaevsky, 10.exf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.exf6 * B96r "Sicilian: Najdorf, Polugaevsky, 10.exf6 Qe5+ 11.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.exf6 Qe5+ 11.Be2 * B96s "Sicilian: Najdorf, Polugaevsky, 10.exf6 Qe5+ 11.Be2 Qxg5 12.Qd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.exf6 Qe5+ 11.Be2 Qxg5 12.Qd3 * B96t "Sicilian: Najdorf, Polugaevsky, 10.Qe2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 * B96u "Sicilian: Najdorf, Polugaevsky, 10.Qe2 Nfd7 11.O-O-O Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Nc6 * B96v "Sicilian: Najdorf, Polugaevsky, 10.Qe2 Nfd7 11.O-O-O Bb7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Bb7 * B96w "Sicilian: Najdorf, Polugaevsky, 10.Qe2 Nfd7 11.O-O-O Bb7 12.Qg4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Bb7 12.Qg4 * B96w "Sicilian: Najdorf, Polugaevsky, 10.Qe2 Nfd7 11.O-O-O Bb7 12.Qg4 Qxe5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Bb7 12.Qg4 Qxe5 * B97a "Sicilian: Najdorf, Poisoned Pawn" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 * B97b "Sicilian: Najdorf, Poisoned Pawn, 8.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Bxf6 * B97c "Sicilian: Najdorf, Poisoned Pawn, 8.a3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.a3 * B97d "Sicilian: Najdorf, Poisoned Pawn, 8.Qd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd3 * B97e "Sicilian: Najdorf, Poisoned Pawn, 8.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 * B97f "Sicilian: Najdorf, Poisoned Pawn, 8.Nb3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 Be7 * B97g "Sicilian: Najdorf, Poisoned Pawn, 8.Nb3 Nbd7 9.Qf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 Nbd7 9.Qf3 * B97h "Sicilian: Najdorf, Poisoned Pawn, 8.Nb3 Nbd7 9.Qf3 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 Nbd7 9.Qf3 Be7 * B97i "Sicilian: Najdorf, Poisoned Pawn, 8.Qd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 * B97i "Sicilian: Najdorf, Poisoned Pawn Accepted" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 * B97j "Sicilian: Najdorf, Poisoned Pawn, 9.Nb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 * B97j "Sicilian: Najdorf, Poisoned Pawn, 9.Nb3 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 Nc6 * B97k "Sicilian: Najdorf, Poisoned Pawn, 9.Nb3 Qa3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 Qa3 * B97l "Sicilian: Najdorf, Poisoned Pawn, 9.Nb3 Qa3 10.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 Qa3 10.Bxf6 * B97m "Sicilian: Najdorf, Poisoned Pawn, 9.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 * B97m "Sicilian: Najdorf, Poisoned Pawn, 9.Rb1 Qa3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 * B97n "Sicilian: Najdorf, Poisoned Pawn, 10.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Be2 * B97n "Sicilian: Najdorf, Poisoned Pawn, 10.Be2 Be7 11.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Be2 Be7 11.O-O * B97n "Sicilian: Najdorf, Poisoned Pawn, 10.Be2 Be7 11.O-O Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Be2 Be7 11.O-O Nbd7 * B97o "Sicilian: Najdorf, Poisoned Pawn, 10.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Bxf6 * B97o "Sicilian: Najdorf, Poisoned Pawn, 10.Bxf6 gxf6 11.Be2 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Bxf6 gxf6 11.Be2 Nc6 * B97o "Sicilian: Najdorf, Poisoned Pawn, 10.Bxf6 gxf6 11.Be2 Bg7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Bxf6 gxf6 11.Be2 Bg7 * B97p "Sicilian: Najdorf, Poisoned Pawn, 10.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 * B97p "Sicilian: Najdorf, Poisoned Pawn, 10.e5 dxe5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 dxe5 * B97p "Sicilian: Najdorf, Poisoned Pawn, 10.e5 dxe5 11.fxe5 Nfd7 12.Bc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 dxe5 11.fxe5 Nfd7 12.Bc4 * B97p "Sicilian: Najdorf, Poisoned Pawn, 10.e5 dxe5 11.fxe5 Nfd7 12.Bc4 Bb4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 dxe5 11.fxe5 Nfd7 12.Bc4 Bb4 * B97q "Sicilian: Najdorf, Poisoned Pawn, 10.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 * B97q "Sicilian: Najdorf, Poisoned Pawn, 10.f5 Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 * B97r "Sicilian: Najdorf, Poisoned Pawn, Main Line" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 * B97s "Sicilian: Najdorf, Poisoned Pawn, Main Line, Timman's 13.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.Be2 * B97t "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 * B97t "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5 Nd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 Nd5 * B97u "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5 dxe5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 * B97u "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5 dxe5: 15.Ne4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 * B97v "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5 dxe5: 15.Ne4 Qxa2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Qxa2 * B97w "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5 dxe5: 15.Ne4 Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Be7 * B97x "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5 dxe5 with 18.c4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Be7 16.Be2 h5 17.Rb3 Qa4 18.c4 * B97y "Sicilian: Najdorf, Poisoned Pawn, Main Line, 13.e5 dxe5 with 18.Nxf6+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Be7 16.Be2 h5 17.Rb3 Qa4 18.Nxf6+ * B98a "Sicilian: Najdorf, 7...Be7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 * B98b "Sicilian: Najdorf, 7...Be7 8.Qf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 * B98c "Sicilian: Najdorf, Danner Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qa5 * B98d "Sicilian: Najdorf, Danner, 9.O-O-O Bd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qa5 9.O-O-O Bd7 * B98e "Sicilian: Najdorf, Danner, 9.O-O-O Bd7 10.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qa5 9.O-O-O Bd7 10.e5 * B98f "Sicilian: Najdorf, 7...Be7 8.Qf3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 * B98g "Sicilian: Najdorf, Browne Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 * B98h "Sicilian: Najdorf, Browne, 10.O-O-O Nbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 10.O-O-O Nbd7 * B98i "Sicilian: Najdorf, Browne, 10.O-O-O Nbd7 11.Qg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 10.O-O-O Nbd7 11.Qg3 * B98j "Sicilian: Najdorf, Browne, 10.O-O-O Nbd7 11.Be2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 10.O-O-O Nbd7 11.Be2 * B98k "Sicilian: Najdorf, Gothenburg (Argentine) Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 g5 * B98l "Sicilian: Najdorf, Gothenburg, 11.Nxe6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 g5 10.fxg5 Nfd7 11.Nxe6 * B98m "Sicilian: Najdorf, Gothenburg, 11.Qh5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 g5 10.fxg5 Nfd7 11.Qh5 * B98n "Sicilian: Najdorf, 8...Qc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 * B98n "Sicilian: Najdorf, 8...Qc7 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O * B98o "Sicilian: Najdorf, 8...Qc7 9.O-O-O b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O b5 * B98p "Sicilian: Najdorf, 8...Qc7 9.O-O-O Nc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nc6 * B98q "Sicilian: Najdorf, 8...Qc7 9.O-O-O Nc6 10.Nxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nc6 10.Nxc6 * B99a "Sicilian: Najdorf, Main Line" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 * B99b "Sicilian: Najdorf, Main Line, 10.Qg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Qg3 * B99c "Sicilian: Najdorf, Main Line, Keres Variation" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 * B99c "Sicilian: Najdorf, Main Line, Keres 10...b5 11.Bxf6 Nxf6 12.e5 Bb7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 * B99d "Sicilian: Najdorf, Main Line, Keres, Queen Sacrifice Line" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 13.exf6 * B99e "Sicilian: Najdorf, Main Line, Keres, 13.Qg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 13.Qg3 * B99e "Sicilian: Najdorf, Main Line, Keres, 13.Qg3 dxe5 14.fxe5 Nd7 15.Bxb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 13.Qg3 dxe5 14.fxe5 Nd7 15.Bxb5 * B99f "Sicilian: Najdorf, Main Line, 10.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 * B99f "Sicilian: Najdorf, Main Line, 10.Bd3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 * B99g "Sicilian: Najdorf, Main Line, 10.Bd3 h6 11.Qh3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Qh3 * B99h "Sicilian: Najdorf, Main Line, 10.Bd3 h6 11.Bh4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Bh4 * B99h "Sicilian: Najdorf, Main Line, 10.Bd3 h6 11.Bh4 g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Bh4 g5 * B99i "Sicilian: Najdorf, Main Line, 10.Bd3 h6 11.Bh4 g5 12.fxg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Bh4 g5 12.fxg5 * B99j "Sicilian: Najdorf, Main Line, 10.Bd3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 * B99j "Sicilian: Najdorf, Main Line, 10.Bd3 b5 11.Rhe1 Bb7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 11.Rhe1 Bb7 * B99k "Sicilian: Najdorf, Main Line, 10.Bd3 b5 11.Rhe1 Bb7 12.Nd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 11.Rhe1 Bb7 12.Nd5 * B99l "Sicilian: Najdorf, Main Line, 10.Bd3 b5 11.Rhe1 Bb7 12.Qg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 11.Rhe1 Bb7 12.Qg3 * B99m "Sicilian: Najdorf, Main Line, 10.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 * B99m "Sicilian: Najdorf, Main Line, 10.g4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 h6 * B99n "Sicilian: Najdorf, Main Line, 10.g4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 * B99n "Sicilian: Najdorf, Main Line, 10.g4 b5 11.Bd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bd3 * B99n "Sicilian: Najdorf, Main Line, 10.g4 b5 11.Bd3 Bb7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bd3 Bb7 * B99o "Sicilian: Najdorf, Main Line, 10.g4 b5 11.a3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.a3 * B99p "Sicilian: Najdorf, Main Line, 10.g4 b5 11.Bxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 * B99q "Sicilian: Najdorf, Main Line, 10.g4 b5 11.Bxf6 gxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 gxf6 * B99r "Sicilian: Najdorf, Main Line, 10.g4 b5 11.Bxf6 Nxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 * B99r "Sicilian: Najdorf, Main Line, 10.g4 b5 11.Bxf6 Nxf6 12.g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 * B99r "Sicilian: Najdorf, Main Line, 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.a3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.a3 * B99s "Sicilian: Najdorf, Modern Main Line 13.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 * B99t "Sicilian: Najdorf, Modern Main Line 13.f5 Bxg5+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Bxg5+ * B99u "Sicilian: Najdorf, Modern Main Line 13.f5 Bxg5+ 14.Kb1 Ne5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Bxg5+ 14.Kb1 Ne5 * B99v "Sicilian: Najdorf, Modern Main Line 13.f5 Nc5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 * B99w "Sicilian: Najdorf, Modern Main Line 13.f5 Nc5 14.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 14.h4 * B99x "Sicilian: Najdorf, Modern Main Line 13.f5 Nc5 14.f6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 14.f6 * B99y "Sicilian: Najdorf, Modern Main Line 13.f5 Nc5 14.f6: Perenyi's 16.Rg1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 14.f6 gxf6 15.gxf6 Bf8 16.Rg1 * C00a "French" 1.e4 e6 * C00a "French: Bird Variation" 1.e4 e6 2.Bb5 * C00b "French: Reti (Spielmann) Variation" 1.e4 e6 2.b3 * C00c "French: La Bourdonnais Variation" 1.e4 e6 2.f4 * C00d "French: Steinitz Attack" 1.e4 e6 2.e5 * C00e "French: Steiner (Anglo-French) Variation" 1.e4 e6 2.c4 * C00e "French: Steiner (Anglo-French) Variation" 1.e4 e6 2.c4 d5 * C00e "French: Orthoschnapp Gambit" 1.e4 e6 2.c4 d5 3.cxd5 exd5 4.Qb3 * C00f "French: 2.Nc3" 1.e4 e6 2.Nc3 * C00f "French: 2.Nc3 d5" 1.e4 e6 2.Nc3 d5 * C00f "French: Pelikan Variation" 1.e4 e6 2.Nc3 d5 3.f4 * C00g "French: Chigorin Variation" 1.e4 e6 2.Qe2 * C00h "French: Chigorin, 2...c5" 1.e4 e6 2.Qe2 c5 * C00i "French: Chigorin, 2...c5 3.Nf3" 1.e4 e6 2.Qe2 c5 3.Nf3 * C00j "French: 2.Nf3" 1.e4 e6 2.Nf3 * C00j "French: 2.Nf3 d5" 1.e4 e6 2.Nf3 d5 * C00j "French: 2.Nf3 d5 3.e5" 1.e4 e6 2.Nf3 d5 3.e5 * C00j "French: 2.Nf3 d5 3.e5 c5" 1.e4 e6 2.Nf3 d5 3.e5 c5 * C00k "French: Wing Gambit" 1.e4 e6 2.Nf3 d5 3.e5 c5 4.b4 * C00l "French: Two Knights Variation" 1.e4 e6 2.Nf3 d5 3.Nc3 * C00m "French: KIA 2.d3" 1.e4 e6 2.d3 * C00m "French: KIA 2.d3 d5" 1.e4 e6 2.d3 d5 * C00n "French: KIA 2.d3 d5 3.Qe2" 1.e4 e6 2.d3 d5 3.Qe2 * C00o "French: KIA 2.d3 d5 3.Qe2 Nf6" 1.e4 e6 2.d3 d5 3.Qe2 Nf6 * C00p "French: KIA 2.d3 d5 3.Nd2" 1.e4 e6 2.d3 d5 3.Nd2 * C00q "French: KIA 2.d3 d5 3.Nd2 c5" 1.e4 e6 2.d3 d5 3.Nd2 c5 * C00r "French: KIA 2.d3 d5 3.Nd2 Nf6" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 * C00s "French: KIA, Reversed Philidor" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 * C00t "French: KIA, Reversed Philidor, 4...b6" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 b6 * C00u "French: KIA, Reversed Philidor, 4...Nc6" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 Nc6 * C00v "French: KIA, Reversed Philidor, 4...Nc6 5.c3" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 Nc6 5.c3 * C00w "French: 2.d4" 1.e4 e6 2.d4 * C00w "French: St. George" 1.e4 e6 2.d4 a6 * C00w "French: Franco-Benoni" 1.e4 e6 2.d4 c5 * C00x "French: 2.d4 d5" 1.e4 e6 2.d4 d5 * C00x "French: Alapin-Diemer Gambit (ADG)" 1.e4 e6 2.d4 d5 3.Be3 * C00y "French: Schlechter" 1.e4 e6 2.d4 d5 3.Bd3 * C01a "French: Exchange" 1.e4 e6 2.d4 d5 3.exd5 * C01a "French: Exchange, 3...Qxd5" 1.e4 e6 2.d4 d5 3.exd5 Qxd5 * C01b "French: Exchange" 1.e4 e6 2.d4 d5 3.exd5 exd5 * C01c "French: Exchange, 4.c4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 * C01c "French: Exchange, 4.c4 c6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 c6 * C01d "French: Exchange, 4.c4 Nf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 * C01d "French: Exchange, 4.c4 Nf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nf3 * C01e "French: Exchange, 4.c4 Nf6 5.Nc3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 * C01e "French: Exchange, 4.c4 Nf6 5.Nc3 c6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 c6 * C01e "French: Exchange, 4.c4 Nf6 5.Nc3 Bb4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Bb4 * C01e "French: Exchange, 4.c4 Nf6 5.Nc3 Bb4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Bb4 6.Nf3 * C01f "French: Exchange, 4.c4 Nf6 5.Nc3 Be7" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Be7 * C01f "French: Exchange, 4.c4 Nf6 5.Nc3 Be7" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Be7 6.Nf3 * C01g "French: Exchange, 4.Bf4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bf4 * C01h "French: Exchange, 4.Bd3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 * C01i "French: Exchange, 4.Bd3 Nc6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Nc6 * C01j "French: Exchange, 4.Bd3 Bd6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Bd6 * C01k "French: Exchange, 4.Nf3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 * C01l "French: Exchange, 4.Nf3 Nf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Nf6 * C01m "French: Exchange, 4.Nf3 Nf6 5.Bd3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Nf6 5.Bd3 * C01n "French: Exchange, 4.Nf3 Bd6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Bd6 * C01o "French: Exchange, 4.Nf3 Bd6 5.Bd3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Bd6 5.Nf3 * C01p "French: Exchange, 4.Nf3 Bd6 5.Bd3 Nf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Bd6 5.Nf3 Nf6 * C01q "French: Exchange, 4.Nf3 Bd6 5.c4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Bd6 5.c4 * C01r "French: Exchange, 4.Nc3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 * C01s "French: Exchange, 4.Nc3 Nf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 * C01s "French: Exchange, 4.Nc3 Nf6 5.Nf3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 5.Nf3 * C01t "French: Exchange, Svenonius Variation" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 5.Bg5 * C01t "French: Exchange, Bogoljubow Variation" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 5.Bg5 Nc6 * C01u "French: Exchange Winawer" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 * C01v "French: Exchange Winawer, 5.Bd3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 5.Bd3 * C01v "French: Exchange, Canal Attack" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 5.Bd3 Ne7 6.Qh5 * C01w "French: Exchange Winawer, 5.Bd3 Nc6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 5.Bd3 Nc6 * C02a "French: Advance" 1.e4 e6 2.d4 d5 3.e5 * C02a "French: Advance, 3...Ne7" 1.e4 e6 2.d4 d5 3.e5 Ne7 * C02b "French: Advance, 3...b6" 1.e4 e6 2.d4 d5 3.e5 b6 * C02b "French: Advance, 3...b6" 1.e4 e6 2.d4 d5 3.e5 b6 4.c3 Qd7 * C02c "French: Advance, 3...c5" 1.e4 e6 2.d4 d5 3.e5 c5 * C02c "French: Advance, Wing Gambit" 1.e4 e6 2.d4 d5 3.e5 c5 4.b4 * C02d "French: Advance, Steinitz" 1.e4 e6 2.d4 d5 3.e5 c5 4.dxc5 * C02e "French: Advance, Nimzowitsch Attack" 1.e4 e6 2.d4 d5 3.e5 c5 4.Qg4 * C02e "French: Advance, Nimzowitsch Gambit" 1.e4 e6 2.d4 d5 3.e5 c5 4.Qg4 cxd4 5.Nf3 * C02f "French: Advance, 4.Nf3" 1.e4 e6 2.d4 d5 3.e5 c5 4.Nf3 * C02f "French: Advance, Ruisdonk Gambit" 1.e4 e6 2.d4 d5 3.e5 c5 4.Nf3 cxd4 5.Bd3 * C02g "French: Advance, 4.c3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 * C02h "French: Advance, 4.c3 Qb6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Qb6 * C02i "French: Advance, Wade" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Qb6 5.Nf3 Bd7 * C02j "French: Advance, Wade, 6.Be2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Qb6 5.Nf3 Bd7 6.Be2 * C02k "French: Advance, 4...Nc6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 * C02l "French: Advance, Paulsen" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 * C02m "French: Advance, 5.Nf3 Nge7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Nge7 * C02n "French: Advance, Euwe" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 * C02o "French: Advance, Euwe, 6.a3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 6.a3 * C02p "French: Advance, Euwe, 6.Be2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 6.Be2 * C02q "French: Advance, Euwe, 6.Be2 Nge7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 6.Be2 Nge7 * C02r "French: Advance, 5.Nf3 Qb6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 * C02s "French: Advance, Milner-Barry Gambit" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.Bd3 * C02t "French: Advance, 5.Nf3 Qb6 6.Be2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.Be2 * C02u "French: Advance, 5.Nf3 Qb6 6.Be2 cxd4 7.cxd4" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.Be2 cxd4 7.cxd4 * C02v "French: Advance, 5.Nf3 Qb6 6.a3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 * C02w "French: Advance, 5.Nf3 Qb6 6.a3 Bd7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 Bd7 * C02x "French: Advance, 5.Nf3 Qb6 6.a3 Nh6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 Nh6 * C02y "French: Advance, 5.Nf3 Qb6 6.a3 c4" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 c4 * C02z "French: Advance, 5.Nf3 Qb6 6.a3 c4 7.Nbd2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 c4 7.Nbd2 * C03a "French: Tarrasch" 1.e4 e6 2.d4 d5 3.Nd2 * C03a "French: Tarrasch, 3...dxe4" 1.e4 e6 2.d4 d5 3.Nd2 dxe4 * C03b "French: Tarrasch, Haberditz Variation" 1.e4 e6 2.d4 d5 3.Nd2 f5 * C03c "French: Tarrasch, 3...b6" 1.e4 e6 2.d4 d5 3.Nd2 b6 * C03d "French: Tarrasch, 3...a6" 1.e4 e6 2.d4 d5 3.Nd2 a6 * C03e "French: Tarrasch, 3...a6 4.Ngf3" 1.e4 e6 2.d4 d5 3.Nd2 a6 4.Ngf3 * C03f "French: Tarrasch, 3...Be7" 1.e4 e6 2.d4 d5 3.Nd2 Be7 * C03g "French: Tarrasch, 3...Be7 4.Bd3" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Bd3 * C03h "French: Tarrasch, 3...Be7 4.Bd3 c5" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Bd3 c5 * C03i "French: Tarrasch, 3...Be7 4.Bd3 c5 5.dxc5 Nf6" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Bd3 c5 5.dxc5 Nf6 * C03j "French: Tarrasch, 3...Be7 4.Ngf3" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Ngf3 * C03j "French: Tarrasch, 3...Be7 4.Ngf3 Nf6" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Ngf3 Nf6 * C03k "French: Tarrasch, 3...Be7 4.Ngf3 Nf6 5.Bd3" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Ngf3 Nf6 5.Bd3 * C03l "French: Tarrasch, Guimard Variation" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 * C03m "French: Tarrasch, Guimard, 4.c3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.c3 * C03n "French: Tarrasch, Guimard, 4.c3 e5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.c3 e5 * C03o "French: Tarrasch, Guimard, 4.Ngf3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 * C04a "French: Tarrasch, Guimard, 4.Ngf3 Nf6" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 * C04b "French: Tarrasch, Guimard, 4.Ngf3 Nf6 5.e5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 * C04c "French: Tarrasch, Guimard, Main Line" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 * C04d "French: Tarrasch, Guimard, Main Line, 6.c3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.c3 * C04e "French: Tarrasch, Guimard, Main Line, 6.Bb5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Bb5 * C04f "French: Tarrasch, Guimard, Main Line, 6.Be2" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Be2 * C04g "French: Tarrasch, Guimard, Main Line, 6.Be2 f6" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Be2 f6 * C04h "French: Tarrasch, Guimard, Main Line, 6.Nb3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Nb3 * C04i "French: Tarrasch, Guimard, Main Line, 6.Nb3 a5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Nb3 a5 * C04j "French: Tarrasch, Guimard, Main Line, 6.Nb3 Be7" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Nb3 Be7 * C05a "French: Tarrasch, Closed" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 * C05b "French: Tarrasch, Closed, 4.e5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 * C05c "French: Tarrasch, Closed, 4...Ne4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Ne4 * C05c "French: Tarrasch, Closed, 4...Ne4 5.Nxe4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Ne4 5.Nxe4 * C05d "French: Tarrasch, Closed, 4...Nfd7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 * C05e "French: Tarrasch, Closed, 5.f4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 * C05f "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 * C05g "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 * C05h "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 cxd4 * C05i "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 * C05j "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.h4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.h4 * C05j "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.h4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.h4 cxd4 9.cxd4 * C05k "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.Ne2" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.Ne2 * C05k "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.Ne2" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.Ne2 cxd4 9.cxd4 * C05l "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.g3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.g3 * C05l "French: Tarrasch, Closed, 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.g3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.g3 cxd4 9.cxd4 * C05m "French: Tarrasch, Closed, 5.c3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.c3 * C05n "French: Tarrasch, 5.Bd3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 * C05o "French: Tarrasch, Botvinnik" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 b6 * C05p "French: Tarrasch, Closed, 6...Nc6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 * C05p "French: Tarrasch, Closed, 7.Ndf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ndf3 * C05q "French: Tarrasch, Closed, 7.Ndf3 Qa5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ndf3 Qa5 * C05r "French: Tarrasch, Closed, 7.Ngf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 * C05s "French: Tarrasch, Closed, 7.Ngf3 Be7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 Be7 * C05t "French: Tarrasch, Closed, 7.Ngf3 Be7 8.O-O g5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 Be7 8.O-O g5 * C05u "French: Tarrasch, Closed, Nunn-Korchnoi Gambit" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 Qb6 8.O-O * C05v "French: Tarrasch, Closed, 7.Ne2" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 * C05w "French: Tarrasch, Closed, 7.Ne2 a5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 a5 * C06a "French: Tarrasch, Closed, Main Line" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 * C06b "French: Tarrasch, Closed, Leningrad" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 * C06c "French: Tarrasch, Closed, Leningrad, 9.Nf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.Nf3 * C06d "French: Tarrasch, Closed, Leningrad, 9.O-O" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.O-O * C06e "French: Tarrasch, Closed, Leningrad, 9.O-O a5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.O-O a5 * C06f "French: Tarrasch, Closed, Leningrad, 9.O-O Bd7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.O-O Bd7 * C06g "French: Tarrasch, Closed, 8...Qb6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 * C06h "French: Tarrasch, Closed, 8...Qb6 9.O-O" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 9.O-O * C06i "French: Tarrasch, Closed, 8...Qb6 9.Nf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 9.Nf3 * C06j "French: Tarrasch, Closed, 8...Qb6 9.Nf3 f6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 9.Nf3 f6 * C06k "French: Tarrasch, Closed, 8...f6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 * C06l "French: Tarrasch, Closed, 8...f6 9.Nf4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.Nf4 * C06m "French: Tarrasch, Closed, 8...f6 9.exf6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 * C06n "French: Tarrasch, Closed, 8...f6 9.exf6 Nxf6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 * C06o "French: Tarrasch, Closed, 8...f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 * C06o "French: Tarrasch, Closed, 8...f6 9.exf6, 11...Qb6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qb6 * C06p "French: Tarrasch, Closed, 8...f6 9.exf6, 11...Qb6 12.Nc3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qb6 12.Nc3 * C06q "French: Tarrasch, Closed, 8...f6 9.exf6, 11...Qc7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qc7 * C06r "French: Tarrasch, Closed, 8...f6 9.exf6, 11...Qc7 12.Bg5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qc7 12.Bg5 * C06s "French: Tarrasch, Closed, 8...f6 9.exf6, 11...O-O" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 O-O * C06t "French: Tarrasch, Closed, 8...f6 9.exf6, 11...O-O 12.Bf4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 O-O 12.Bf4 * C07a "French: Tarrasch, Open" 1.e4 e6 2.d4 d5 3.Nd2 c5 * C07b "French: Tarrasch, Open, 4.c3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.c3 * C07c "French: Tarrasch, Open, 4.dxc5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.dxc5 * C07d "French: Tarrasch, Open, 4.Ngf3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 * C07e "French: Tarrasch, Open, 4.Ngf3 a6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 a6 * C07f "French: Tarrasch, Open, 4.Ngf3 Nf6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 Nf6 * C07g "French: Tarrasch, Open, 4.Ngf3 Nc6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 Nc6 * C07h "French: Tarrasch, Open, 4.Ngf3 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 cxd4 * C07i "French: Tarrasch, Open, 4.exd5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 * C07i "French: Tarrasch, Shaposhnikov Gambit" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Nf6 * C07j "French: Tarrasch, Open, 4.exd5 Qxd5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 * C07k "French: Tarrasch, Open, 4.exd5 Qxd5 5.Ngf3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 * C07l "French: Tarrasch, Open, 4.exd5 Qxd5 5.Ngf3 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 * C07m "French: Tarrasch, Open, 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 * C07n "French: Tarrasch, Open, Eliskases Variation" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd8 * C07o "French: Tarrasch, Open, 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 * C07p "French: Tarrasch, Open, 4.exd5 Qxd5, Main Line, 10.Qxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Qxd4 * C07p "French: Tarrasch, Open, 4.exd5 Qxd5, Main Line, 10.Qxd4 Qxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Qxd4 Qxd4 * C07q "French: Tarrasch, Open, 4.exd5 Qxd5, Main Line, 10.Nxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 * C07r "French: Tarrasch, Open, 4.exd5 Qxd5, Main Line, 10.Nxd4 a6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 a6 * C07s "French: Tarrasch, Open, 4.exd5 Qxd5, Main Line, 10.Nxd4 a6 11.c3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 a6 11.c3 * C07t "French: Tarrasch, Open, 4.exd5 Qxd5, Main Line, 10.Nxd4 a6 11.Re1" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 a6 11.Re1 * C08a "French: Tarrasch, Open, 4.exd5 exd5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 * C08b "French: Tarrasch, Open, 4.exd5 exd5 5.Bb5+ Nc6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Nc6 * C08c "French: Tarrasch, Open, 4.exd5 exd5 5.Bb5+ Nc6 6.Qe2+" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Nc6 6.Qe2+ * C08d "French: Tarrasch, Open, 4.exd5 exd5 5.Bb5+ Bd7" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Bd7 * C08e "French: Tarrasch, Open, 4.exd5 exd5 5.Bb5+ Bd7 6.Qe2+" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Bd7 6.Qe2+ * C08f "French: Tarrasch, Open, 4.exd5 exd5 5.Bb5+ Bd7 6.Qe2+ Be7" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Bd7 6.Qe2+ Be7 * C08g "French: Tarrasch, Open, 4.exd5 exd5 5.Ngf3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 * C08h "French: Tarrasch, Open, 4.exd5 exd5 5.Ngf3 a6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 a6 * C08i "French: Tarrasch, Open, 4.exd5 exd5 5.Ngf3 a6 6.Be2" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 a6 6.Be2 * C08j "French: Tarrasch, Open, 4.exd5 exd5 5.Ngf3 Nf6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 * C08k "French: Tarrasch, Open, 4.exd5 exd5 5.Ngf3 Nf6, 7.Bxd7" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 6.Bb5+ Bd7 7.Bxd7+ * C08l "French: Tarrasch, Open, 4.exd5 exd5 5.Ngf3 Nf6, Main Line" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 6.Bb5+ Bd7 7.Bxd7+ Nbd7 8.O-O Be7 9.dxc5 * C08m "French: Tarrasch, Open, 4.exd5 exd5 5.Ngf3 Nf6, Main Line, 10.Nb3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 6.Bb5+ Bd7 7.Bxd7+ Nbd7 8.O-O Be7 9.dxc5 Nxc5 10.Nb3 * C09a "French: Tarrasch, Open, 5.Ngf3 Nc6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 * C09b "French: Tarrasch, Open, 5.Ngf3 Nc6 6.Bb5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 * C09c "French: Tarrasch, Open, 5.Ngf3 Nc6 6.Bb5 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 cxd4 * C09d "French: Tarrasch, Open, 5.Ngf3 Nc6 6.Bb5 Bd6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 * C09d "French: Tarrasch, Open, 7.O-O" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O * C09e "French: Tarrasch, Open, 7.dxc5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.dxc5 * C09f "French: Tarrasch, Open, Main Line" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.dxc5 Bxc5 8.O-O Ne7 * C09g "French: Tarrasch, Open, Main Line, 9.c3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 * C09h "French: Tarrasch, Open, Main Line, 9.c3 O-O 10.Nb3 Bd6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 O-O 10.Nb3 Bd6 * C09i "French: Tarrasch, Open, Main Line, 9.c3 O-O 10.Nb3 Bb6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 O-O 10.Nb3 Bb6 * C09j "French: Tarrasch, Open, Main Line, 9.c3 O-O 10.Nb3 Bb6 11.Re1" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 O-O 10.Nb3 Bb6 11.Re1 * C09k "French: Tarrasch, Open, Main Line, 9.Nb3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 * C09k "French: Tarrasch, Open, Main Line, 9.Nb3 Bb6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bb6 * C09l "French: Tarrasch, Open, Main Line, 9.Nb3 Bd6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 * C09m "French: Tarrasch, Open, Main Line, 9.Nb3 Bd6 10.Nbd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Nbd4 * C09n "French: Tarrasch, Open, Main Line, 9.Nb3 Bd6 10.Bg5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Bg5 * C09o "French: Tarrasch, Open, Main Line, 9.Nb3 Bd6 10.Re1" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Re1 * C09p "French: Tarrasch, Open, Main Line, 9.Nb3 Bd6 10.Re1 O-O 11.Bg5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Re1 O-O 11.Bg5 * C09q "French: Tarrasch, Open, Main Line, 9.Nb3 Bd6 10.Re1 O-O 11.Bg5 Bg4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Re1 O-O 11.Bg5 Bg4 * C10a "French: 3.Nc3" 1.e4 e6 2.d4 d5 3.Nc3 * C10b "French: Marshall Variation" 1.e4 e6 2.d4 d5 3.Nc3 c5 * C10c "French: 3.Nc3 Nc6" 1.e4 e6 2.d4 d5 3.Nc3 Nc6 * C10d "French: 3.Nc3 Nc6 4.Nf3 Nf6" 1.e4 e6 2.d4 d5 3.Nc3 Nc6 4.Nf3 Nf6 * C10e "French: 3.Nc3 Be7" 1.e4 e6 2.d4 d5 3.Nc3 Be7 * C10f "French: Rubinstein" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 * C10f "French: Rubinstein" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 * C10f "French: Rubinstein, Ellis Gambit" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 e5 * C10f "French: Rubinstein, Frere (Becker) Variation" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Qd5 * C10g "French: Rubinstein, 4...Nf6" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 * C10h "French: Rubinstein, 4...Nd7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 * C10i "French: Rubinstein, 5.Nf3 Be7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Be7 * C10j "French: Rubinstein, 5.Nf3 Ngf6" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 * C10k "French: Rubinstein, 5.Nf3 Ngf6 6.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Bd3 * C10l "French: Rubinstein, 5.Nf3 Ngf6 6.Nxf6+" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ * C10m "French: Rubinstein, Capablanca" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Ne5 * C10n "French: Rubinstein, 7.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bd3 * C10o "French: Rubinstein, 7.Bd3 c5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bd3 c5 * C10p "French: Rubinstein, 7.Bd3 c5 8.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bd3 c5 8.dxc5 * C10q "French: Rubinstein, 7.Bg5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bg5 * C10r "French: Rubinstein, 4...Bd7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 * C10s "French: Rubinstein, 4...Bd7 5.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 * C10t "French: Rubinstein, 4...Bd7 5.Nf3 Bc6 6.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 * C10u "French: Rubinstein, 4...Bd7 5.Nf3 Bc6 6.Bd3 Nd7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 * C10v "French: Rubinstein, 4...Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O * C10w "French: Rubinstein, 4...Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O Ngf6" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O Ngf6 * C10x "French: Rubinstein, 4...Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O Ngf6 8.Ng3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O Ngf6 8.Ng3 * C11a "French: 3.Nc3 Nf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 * C11a "French: Henneberger Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Be3 * C11a "French: 3.Nc3 Nf6 4.exd5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.exd5 * C11b "French: Swiss Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bd3 * C11c "French: Steinitz" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 * C11c "French: Steinitz, Gledhill Attack" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Qg4 * C11d "French: Steinitz, 5.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Nf3 * C11d "French: Steinitz, 5.Nf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Nf3 c5 * C11e "French: Steinitz, 5.Nf3 c5 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Nf3 c5 6.dxc5 * C11f "French: Steinitz, 5.f4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 * C11f "French: Steinitz, 5.f4 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 * C11g "French: Steinitz, 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 * C11g "French: Steinitz, Bradford Attack" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 Bxc5 7.Qg4 * C11g "French: Steinitz, 6.dxc5 Nc6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 Nc6 * C11g "French: Steinitz, Brodsky-Jones Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 Nc6 7.a3 Bxc5 8.Qg4 O-O 9.Nf3 f6 * C11h "French: Steinitz, 6.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 * C11i "French: Steinitz, Boleslavsky Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 * C11j "French: Steinitz, Boleslavsky, 7...a6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 a6 * C11k "French: Steinitz, Boleslavsky, 7...a6 8.Qd2 b5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 a6 8.Qd2 b5 * C11l "French: Steinitz, Boleslavsky, 7...cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 cxd4 * C11m "French: Steinitz, Boleslavsky, 7...cxd4 8.Nxd4 Qb6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 cxd4 8.Nxd4 Qb6 * C11n "French: Steinitz, Boleslavsky, 7...cxd4 8.Nxd4 Bc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 cxd4 8.Nxd4 Bc5 * C11o "French: 3.Nc3 Nf6 4.Bg5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 * C11o "French: Burn Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 * C11p "French: Burn, 5.Nxe4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 * C11p "French: Burn, 5.Nxe4 Nbd7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 * C11q "French: Burn, 5.Nxe4 Nbd7 6.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 6.Nf3 * C11r "French: Burn, 5.Nxe4 Nbd7 6.Nf3 Be7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 6.Nf3 Be7 * C11r "French: Burn, 5.Nxe4 Nbd7 6.Nf3 Be7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 6.Nf3 Be7 7.Nxf6+ Nxf6 * C11s "French: Burn, 5.Nxe4 Be7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 * C11t "French: Burn, 6.Bxf6 Bxf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 Bxf6 * C11u "French: Burn, 6.Bxf6 gxf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 * C11v "French: Burn, 6.Bxf6 gxf6 7.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 * C11w "French: Burn, 6.Bxf6 gxf6 7.Nf3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 b6 * C11w "French: Burn, 6.Bxf6 gxf6 7.Nf3 b6 8.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 b6 8.Bd3 * C11w "French: Burn, 6.Bxf6 gxf6 7.Nf3 b6 8.Bc4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 b6 8.Bc4 * C11x "French: Burn, 6.Bxf6 gxf6 7.Nf3 f5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 f5 * C12a "French: MacCutcheon" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 * C12b "French: MacCutcheon, 5.exd5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.exd5 * C12c "French: MacCutcheon, 5.exd5 Qxd5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.exd5 Qxd5 * C12c "French: MacCutcheon, Bogoljubow Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.exd5 Qxd5 6.Bxf6 gxf6 7.Qd2 Qa5 * C12d "French: MacCutcheon, Advance Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 * C12d "French: MacCutcheon, Advance Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 * C12e "French: MacCutcheon, Chigorin Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.exf6 * C12e "French: MacCutcheon, Grigoriev Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.exf6 hxg5 7.fxg7 Rg8 8.h4 gxh4 9.Qg4 * C12f "French: MacCutcheon, Olland (Dutch) Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bc1 * C12g "French: MacCutcheon, Bernstein Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bh4 * C12h "French: MacCutcheon, Janowski Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Be3 * C12i "French: MacCutcheon, 6.Bd2" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 * C12i "French: MacCutcheon, Tartakower Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Nfd7 * C12j "French: MacCutcheon, Lasker Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 * C12k "French: MacCutcheon, Lasker, 7.bxc3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 * C12l "French: MacCutcheon, 8.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 * C12l "French: MacCutcheon, 8.Qg4 Kf8" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 Kf8 * C12l "French: MacCutcheon, Duras Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 Kf8 9.Bc1 * C12m "French: MacCutcheon, 8.Qg4 Kf8 9.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 Kf8 9.Bd3 * C12n "French: MacCutcheon, 8.Qg4 g6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 * C12o "French: MacCutcheon, 8.Qg4 g6 9.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 * C12p "French: MacCutcheon, Main Line" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 Nxd2 10.Kxd2 c5 * C12q "French: MacCutcheon, Main Line, 11.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 Nxd2 10.Kxd2 c5 11.Nf3 * C12r "French: MacCutcheon, Main Line, 11.Nf3 Nc6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 Nxd2 10.Kxd2 c5 11.Nf3 Nc6 * C13a "French: Classical" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 * C13b "French: Classical, Anderssen Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.Bxf6 * C13c "French: Classical, Anderssen-Richter Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.Bxf6 Bxf6 6.e5 Be7 7.Qg4 * C13d "French: Classical, 5.e5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 * C13d "French: Classical, Nimzowitsch Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ng8 * C13e "French: Classical, Frankfurt Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ng8 6.Be3 b6 * C13f "French: Classical, Tartakower Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ne4 * C13g "French: Classical, Tartakower, 6.Bxe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ne4 6.Bxe7 * C13h "French: Classical, 5.e5 Nfd7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 * C13i "French: Chatard-Alekhine Attack" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 * C13j "French: Chatard-Alekhine, Teichmann Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 f6 * C13k "French: Chatard-Alekhine, Spielmann Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 O-O * C13l "French: Chatard-Alekhine, 6...Bxg5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 Bxg5 * C13l "French: Chatard-Alekhine, 6...Bxg5 7.hxg5 Qxg5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 Bxg5 7.hxg5 Qxg5 * C13m "French: Chatard-Alekhine, 6...Bxg5 7.hxg5 Qxg5 8.Nh3 Qe7 9.Nf4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 Bxg5 7.hxg5 Qxg5 8.Nh3 Qe7 9.Nf4 * C13n "French: Chatard-Alekhine, Maroczy Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 a6 * C13o "French: Chatard-Alekhine, Maroczy, 7.Qg4 Bxg5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 a6 7.Qg4 Bxg5 * C13p "French: Chatard-Alekhine, Breyer Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 c5 * C13q "French: Chatard-Alekhine, Breyer, 7.Bxe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 c5 7.Bxe7 * C13r "French: Chatard-Alekhine, Breyer, 7.Bxe7 Kxe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 c5 7.Bxe7 Kxe7 * C14a "French: Classical, 6.Bxe7 Qxe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 * C14b "French: Classical, Pollock Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Qg4 * C14c "French: Classical, Tarrasch Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Bd3 * C14d "French: Classical, Alapin Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Nb5 * C14e "French: Classical, Rubinstein Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Qd2 * C14f "French: Classical, Steinitz Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 * C14g "French: Classical, Steinitz, 7...a6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 a6 * C14h "French: Classical, Steinitz, 7...a6 8.Nf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 a6 8.Nf3 c5 * C14i "French: Classical, Steinitz, 7...a6 8.Nf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 a6 8.Nf3 c5 9.dxc5 * C14j "French: Classical, Steinitz, 7...O-O" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O * C14k "French: Classical, Steinitz, 7...O-O 8.Nf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 * C14l "French: Classical, Steinitz, 8.Nf3 c5 9.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.dxc5 * C14m "French: Classical, Steinitz, 9.Qd2" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 * C14m "French: Classical, Stahlberg Variation" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 Nc6 10.O-O-O c4 * C14n "French: Classical, Steinitz, 9.Qd2 Nc6 10.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 Nc6 10.dxc5 * C14o "French: Classical, Steinitz, 9.Qd2 Nc6 10.dxc5 Qxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 Nc6 10.dxc5 Qxc5 * C15a "French: Winawer" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 * C15b "French: Winawer, 4.exd5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.exd5 * C15b "French: Winawer, 4.exd5 Qxd5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.exd5 Qxd5 * C15c "French: Winawer, 4.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Qg4 * C15d "French: Winawer, 4.Qd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Qd3 * C15d "French: Winawer, 4.Qd3 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Qd3 dxe4 * C15e "French: Winawer, 4.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 * C15f "French: Winawer, 4.Bd3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 c5 * C15f "French: Winawer, Kondratiyev Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 c5 5.exd5 Qxd5 6.Bd2 * C15g "French: Winawer, 4.Bd3 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 dxe4 * C15g "French: Winawer, 4.Bd3 dxe4 5.Bxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 dxe4 5.Bxe4 * C15g "French: Winawer, 4.Bd3 dxe4 5.Bxe4 Nf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 dxe4 5.Bxe4 Nf6 * C15h "French: Winawer, Mueller-Zhuravlev Gambit" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 * C15h "French: Winawer, Mueller-Zhuravlev Gambit" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 * C15i "French: Winawer, Mueller-Zhuravlev Gambit, 5.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 5.Qg4 * C15i "French: Winawer, Mueller-Zhuravlev Gambit, Kunin Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 5.Qg4 Qxd4 * C15j "French: Winawer, Mueller-Zhuravlev Gambit, 5.Qg4 Nf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 5.Qg4 Nf6 * C15k "French: Winawer, 4.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 * C15k "French: Winawer, 4.a3 Bxc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ * C15k "French: Winawer, 4.a3 Bxc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 * C15k "French: Winawer, 4.a3 Bxc3+ 5.bxc3 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 * C15l "French: Winawer, Winkelmann-Reimer Gambit (WRG)" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 * C15l "French: Winawer, Winkelmann-Reimer Gambit Accepted" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 exf3 * C15l "French: Winawer, Winkelmann-Reimer, Huebner Defence" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 e5 * C15l "French: Winawer, Winkelmann-Reimer, 6...c5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 c5 * C15m "French: Winawer, 4.a3 Bxc3+ 5.bxc3 dxe4 6.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.Qg4 * C15n "French: Winawer, Alekhine Gambit" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 * C15o "French: Winawer, Alekhine Gambit, 4...Nf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 Nf6 * C15p "French: Winawer, Alekhine Gambit, 4...Nc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 Nc6 * C15q "French: Winawer, Alekhine Gambit Accepted" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 * C15q "French: Winawer, Alekhine Gambit, 5.a3 Bxc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Bxc3+ * C15r "French: Winawer, Alekhine Gambit, Kan Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Bxc3+ 6.Nxc3 Nc6 * C15s "French: Winawer, Alekhine Gambit, Kan, 7.Bb5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Bxc3+ 6.Nxc3 Nc6 7.Bb5 * C15t "French: Winawer, Alekhine Gambit, 5.a3 Be7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 * C15u "French: Winawer, Alekhine Gambit, 5.a3 Be7 6.Nxe4 Nf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 6.Nxe4 Nf6 * C15u "French: Winawer, Alekhine Gambit, Alatortsev Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 6.Nxe4 Nf6 7.N2g3 O-O 8.Be2 Nc6 * C15v "French: Winawer, Alekhine Gambit, 5.a3 Be7 6.Nxe4 Nf6 7.Qd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 6.Nxe4 Nf6 7.Qd3 * C16a "French: Winawer, Advance Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 * C16b "French: Winawer, 4.e5 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 * C16c "French: Winawer, 4.e5 b6 5.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.Qg4 * C16d "French: Winawer, 4.e5 b6 5.Qg4 Bf8 6.Bg5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.Qg4 Bf8 6.Bg5 * C16e "French: Winawer, 4.e5 b6 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.a3 * C16e "French: Winawer, 4.e5 b6 5.a3 Bf8" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.a3 Bf8 * C16f "French: Winawer, Petrosian Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 * C16g "French: Winawer, Petrosian, 5.Bd2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.Bd2 * C16h "French: Winawer, Petrosian, 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.a3 * C16i "French: Winawer, Petrosian, 5.a3 Bxc3+ 6.bxc3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.a3 Bxc3+ 6.bxc3 b6 * C16i "French: Winawer, Petrosian, 5.a3 Bxc3+ 6.bxc3 b6 7.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.a3 Bxc3+ 6.bxc3 b6 7.Qg4 * C16j "French: Winawer, Advance, 4...Ne7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 * C16k "French: Winawer, Advance, 4...Ne7 5.Bd2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.Bd2 * C16l "French: Winawer, Advance, 4...Ne7 5.Bd2 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.Bd2 b6 * C16m "French: Winawer, Advance, 4...Ne7 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.a3 * C16n "French: Winawer, Advance, 4...Ne7 5.a3 Bxc3+ 6.bxc3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.a3 Bxc3+ 6.bxc3 b6 * C16o "French: Winawer, Advance, 4...Ne7 5.a3 Bxc3+ 6.bxc3 b6 7.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.a3 Bxc3+ 6.bxc3 b6 7.Qg4 * C17a "French: Winawer, Advance, 4...c5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 * C17b "French: Winawer, Advance, 5.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.dxc5 * C17c "French: Winawer, Russian Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Qg4 * C17d "French: Winawer, Russian, 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Qg4 Ne7 6.dxc5 * C17e "French: Winawer, Bogoljubow Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 * C17f "French: Winawer, Bogoljubow, 5...cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 cxd4 * C17g "French: Winawer, Bogoljubow, 5...Ne7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 * C17h "French: Winawer, Bogoljubow, 5...Ne7 6.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 6.a3 * C17i "French: Winawer, Bogoljubow, 5...Ne7 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 6.dxc5 * C17j "French: Winawer, Bogoljubow, 5...Ne7 6.Nb5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 6.Nb5 * C17k "French: Winawer, 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 * C17l "French: Winawer, 5.a3 cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 cxd4 * C17l "French: Winawer, Rauzer Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 cxd4 6.axb4 dxc3 7.Nf3 * C17m "French: Winawer, Swiss Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 * C17n "French: Winawer, Swiss, 6.b4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 * C17o "French: Winawer, Swiss, 6.b4 cxd4 7.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Qg4 * C17p "French: Winawer, Swiss, 6.b4 cxd4 7.Qg4 Ne7 8.bxa5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Qg4 Ne7 8.bxa5 * C17q "French: Winawer, Swiss, 6.b4 cxd4 7.Nb5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Nb5 * C17r "French: Winawer, Swiss, 6.b4 cxd4 7.Nb5 Bc7 8.f4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Nb5 Bc7 8.f4 * C17s "French: Winawer, Swiss, 6.b4 cxd4 7.Nb5 Bc7 8.f4 Bd7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Nb5 Bc7 8.f4 Bd7 * C18a "French: Winawer, 5...Bxc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ * C18a "French: Winawer, 5...Bxc3+ 6.bxc3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 * C18b "French: Winawer, 6...Qa5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qa5 * C18c "French: Winawer, 6...Qc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 * C18d "French: Winawer, 6...Qc7 7.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 7.Qg4 * C18d "French: Winawer, 6...Qc7 7.Qg4 f6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 7.Qg4 f6 * C18e "French: Winawer, 6...Qc7 7.Qg4 f5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 7.Qg4 f5 * C18f "French: Winawer, 6...Ne7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 * C18g "French: Winawer, 6...Ne7 7.h4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 * C18h "French: Winawer, 6...Ne7 7.h4 Qc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Qc7 * C18h "French: Winawer, 6...Ne7 7.h4 Qc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Qc7 8.Nf3 * C18i "French: Winawer, 6...Ne7 7.h4 Nbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Nbc6 * C18i "French: Winawer, 6...Ne7 7.h4 Nbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Nbc6 8.Nf3 * C18j "French: Winawer, 6...Ne7 7.Qg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 * C18k "French: Winawer, 6...Ne7 7.Qg4 Nbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Nbc6 * C18l "French: Winawer, 6...Ne7 7.Qg4 Kf8" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Kf8 * C18m "French: Winawer, 6...Ne7 7.Qg4 cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 cxd4 * C18n "French: Winawer, 6...Ne7 7.Qg4 O-O" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O * C18o "French: Winawer, 6...Ne7 7.Qg4 O-O 8.Bd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Bd3 * C18p "French: Winawer, 6...Ne7 7.Qg4 O-O 8.Bd3 Nbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Bd3 Nbc6 * C18q "French: Winawer, 6...Ne7 7.Qg4 O-O 8.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Nf3 * C18q "French: Winawer, 6...Ne7 7.Qg4 O-O 8.Nf3 Nbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Nf3 Nbc6 * C18r "French: Winawer, Poisoned Pawn" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 * C18r "French: Winawer, Poisoned Pawn, 8.Qxg7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 * C18r "French: Winawer, Poisoned Pawn, 10.Qd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Qd3 * C18s "French: Winawer, Poisoned Pawn, Euwe-Gligoric Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Kd1 * C18t "French: Winawer, Poisoned Pawn, Konstantinopolsky Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Ne2 * C18u "French: Winawer, Poisoned Pawn, Main Line" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Ne2 Nbc6 11.f4 Bd7 12.Qd3 dxc3 * C18v "French: Winawer, Poisoned Pawn, Main Line, 13.Nxc3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Ne2 Nbc6 11.f4 Bd7 12.Qd3 dxc3 13.Nxc3 * C19a "French: Winawer, Smyslov Variation" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.a4 * C19b "French: Winawer, Smyslov, 7...Qa5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.a4 Qa5 * C19c "French: Winawer, 6...Ne7 7.Nf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 * C19d "French: Winawer, 6...Ne7 7.Nf3 Qc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qc7 * C19e "French: Winawer, 6...Ne7 7.Nf3 Qc7 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qc7 8.a4 * C19f "French: Winawer, 6...Ne7 7.Nf3 Qc7 8.a4 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qc7 8.a4 b6 * C19g "French: Winawer, 6...Ne7 7.Nf3 Qa5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qa5 * C19h "French: Winawer, 6...Ne7 7.Nf3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 b6 * C19h "French: Winawer, 6...Ne7 7.Nf3 b6 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 b6 8.a4 * C19i "French: Winawer, 6...Ne7 7.Nf3 b6 8.Bb5+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 b6 8.Bb5+ * C19j "French: Winawer, 6...Ne7 7.Nf3 Bd7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Bd7 * C19k "French: Winawer, 6...Ne7 7.Nf3 Bd7 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Bd7 8.a4 * C19l "French: Winawer, 6...Ne7 7.Nf3 Nbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 * C19m "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 * C19m "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4 Bd7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Bd7 * C19n "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4 Qa5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 * C19n "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Qd2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Qd2 * C19o "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Qd2 Bd7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Qd2 Bd7 * C19p "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4 Qa5+ 9.Bd2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Bd2 * C19q "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4 Qa5+ 9.Bd2 Bd7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Bd2 Bd7 * C19r "French: Winawer, 6...Ne7 7.Nf3 Nbc6 8.a4 Qa5+ 9.Bd2 Bd7 10.Bb5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Bd2 Bd7 10.Bb5 * C20 "Open Game" 1.e4 e5 * C20 "Open Game: Mengarini Opening" 1.e4 e5 2.a3 * C20 "Open Game: Patzer/Parnham Opening" 1.e4 e5 2.Qh5 * C20 "Open Game: Napoleon's Opening" 1.e4 e5 2.Qf3 * C20 "Open Game: 2.d3" 1.e4 e5 2.d3 * C20 "Open Game: 2.d3 d5" 1.e4 e5 2.d3 d5 * C20 "Open Game: 2.c4" 1.e4 e5 2.c4 * C20 "Open Game: Lopez/Mcleod Opening" 1.e4 e5 2.c3 * C20 "Open Game: Lopez/Mcleod, Lasa Gambit" 1.e4 e5 2.c3 f5 * C20 "Open Game: Alapin Opening" 1.e4 e5 2.Ne2 * C20 "Open Game: Alapin Opening" 1.e4 e5 2.Ne2 Nf6 * C20 "Open Game: Portuguese Opening" 1.e4 e5 2.Bb5 * C20 "Open Game: Portuguese, 2...Nf6" 1.e4 e5 2.Bb5 Nf6 * C20 "Open Game: Portuguese Gambit" 1.e4 e5 2.Bb5 Nf6 3.d4 * C20 "Open Game: Portuguese, 2...Nc6" 1.e4 e5 2.Bb5 Nc6 * C20 "Open Game: Portuguese, 2...c6" 1.e4 e5 2.Bb5 c6 * C21 "Centre Game" 1.e4 e5 2.d4 * C21 "Centre Game: Maroczy Defence" 1.e4 e5 2.d4 d6 * C21 "Centre Game: Maroczy Defence, 3.dxe5" 1.e4 e5 2.d4 d6 3.dxe5 * C21 "Centre Game: Maroczy Defence, Philidor Gambit" 1.e4 e5 2.d4 d6 3.dxe5 Bd7 * C21 "Centre Game: Queenswap line" 1.e4 e5 2.d4 d6 3.dxe5 dxe5 4.Qxd8+ * C21 "Centre Game" 1.e4 e5 2.d4 exd4 * C21 "Centre Game: 3.Nf3" 1.e4 e5 2.d4 exd4 3.Nf3 * C21 "Centre Game: Kieseritsky Variation" 1.e4 e5 2.d4 exd4 3.Nf3 c5 4.Bc4 b5 * C21 "Centre Game: Halasz Gambit" 1.e4 e5 2.d4 exd4 3.f4 * C21 "Danish Gambit" 1.e4 e5 2.d4 exd4 3.c3 * C21 "Danish Gambit: Svenonius Defence" 1.e4 e5 2.d4 exd4 3.c3 Ne7 * C21 "Danish Gambit: Sorensen Defence" 1.e4 e5 2.d4 exd4 3.c3 d5 * C21 "Danish Gambit: Accepted" 1.e4 e5 2.d4 exd4 3.c3 dxc3 * C21 "Danish Gambit: Accepted, 4.Bc4" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 * C21 "Danish Gambit: Accepted, 4.Bc4 cxb2 5.Bxb2" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 * C21 "Danish Gambit: Copenhagen Defence" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 Bb4+ * C21 "Danish Gambit: Chigorin Defence" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 Qe7 * C21 "Danish Gambit: Classical Defence" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 Nf6 * C21 "Danish Gambit: Schlechter Defence" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 d5 * C22 "Centre Game" 1.e4 e5 2.d4 exd4 3.Qxd4 * C22 "Centre Game" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 * C22 "Centre Game: Hall Variation" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qc4 * C22 "Centre Game: Paulsen Attack" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 * C22 "Centre Game: Charousek Variation" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 Bb4+ 5.c3 Be7 * C22 "Centre Game: Berger Variation" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 Nf6 * C22 "Centre Game: Kupreichik Variation" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 Nf6 5.Nc3 Bb4 6.Bd2 O-O 7.O-O-O Re8 8.Bc4 d6 9.Nh3 * C23 "Bishop's Opening" 1.e4 e5 2.Bc4 * C23 "Bishop's Opening: Anderssen Gambit" 1.e4 e5 2.Bc4 b5 * C23 "Bishop's Opening: Philidor Counterattack" 1.e4 e5 2.Bc4 c6 * C23 "Bishop's Opening: Lisitsin Variation" 1.e4 e5 2.Bc4 c6 3.d4 d5 4.exd5 cxd5 5.Bb5+ Bd7 6.Bxd7+ Nxd7 7.dxe5 Nxe5 8.Ne2 * C23 "Bishop's Opening: Calabrese Countergambit" 1.e4 e5 2.Bc4 f5 * C23 "Bishop's Opening: Calabrese Countergambit, Jaenisch Variation" 1.e4 e5 2.Bc4 f5 3.d3 * C23 "Bishop's Opening: Classical Variation" 1.e4 e5 2.Bc4 Bc5 * C23 "Bishop's Opening: 2...Bc5 3.Qe2" 1.e4 e5 2.Bc4 Bc5 3.Qe2 * C23 "Bishop's Opening: Lopez Gambit" 1.e4 e5 2.Bc4 Bc5 3.Qe2 Nc6 4.c3 Nf6 5.f4 * C23 "Bishop's Opening: Lewis Gambit" 1.e4 e5 2.Bc4 Bc5 3.d4 * C23 "Bishop's Opening: MacDonnell Gambit" 1.e4 e5 2.Bc4 Bc5 3.b4 * C23 "Bishop's Opening: MacDonnell Double Gambit" 1.e4 e5 2.Bc4 Bc5 3.b4 Bxb4 4.f4 * C23 "Bishop's Opening: MacDonnell, Four Pawns Gambit" 1.e4 e5 2.Bc4 Bc5 3.b4 Bxb4 4.f4 exf4 5.Nf3 Be7 6.d4 Bh4+ 7.g3 fxg3 8.O-O gxh2+ 9.Kh1 * C23 "Bishop's Opening: Philidor Variation" 1.e4 e5 2.Bc4 Bc5 3.c3 * C23 "Bishop's Opening: del Rio Variation" 1.e4 e5 2.Bc4 Bc5 3.c3 Qg5 * C23 "Bishop's Opening: Lewis Countergambit" 1.e4 e5 2.Bc4 Bc5 3.c3 d5 * C23 "Bishop's Opening: Lewis Countergambit, Jaenisch" 1.e4 e5 2.Bc4 Bc5 3.c3 d5 4.Bxd5 Nf6 5.Qf3 * C23 "Bishop's Opening: 2...Bc5 3.c3 Nf6" 1.e4 e5 2.Bc4 Bc5 3.c3 Nf6 * C23 "Bishop's Opening: Pratt Variation" 1.e4 e5 2.Bc4 Bc5 3.c3 Nf6 4.d4 exd4 5.e5 d5 6.exf6 dxc4 7.Qh5 O-O * C24 "Bishop's Opening: Berlin Defence" 1.e4 e5 2.Bc4 Nf6 * C24 "Bishop's Opening: Greco Gambit" 1.e4 e5 2.Bc4 Nf6 3.f4 * C24 "Bishop's Opening: 3.d3" 1.e4 e5 2.Bc4 Nf6 3.d3 * C24 "Bishop's Opening: 3.d3 d5" 1.e4 e5 2.Bc4 Nf6 3.d3 d5 * C24 "Bishop's Opening: Paulsen Defence" 1.e4 e5 2.Bc4 Nf6 3.d3 c6 * C24 "Bishop's Opening: Paulsen, 4.Nf3" 1.e4 e5 2.Bc4 Nf6 3.d3 c6 4.Nf3 * C24 "Bishop's Opening: 3.d4" 1.e4 e5 2.Bc4 Nf6 3.d4 * C24 "Bishop's Opening: Urusov Gambit" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 * C24 "Bishop's Opening: Urusov Gambit, Panov Variation" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 d5 5.exd5 Bb4+ 6.c3 Qe7+ * C24 "Bishop's Opening: Urusov Gambit, Marshall Variation" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Nc3 Nc6 7.Qh4 * C24 "Bishop's Opening: Urusov Gambit, 6.Bg5 Nc6 Defence" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Nc6 * C24 "Bishop's Opening: Urusov Gambit, 7...c6 Defence" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 * C24 "Bishop's Opening: Urusov Gambit, Larsen Variation" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 8.O-O-O d5 9.Rhe1 O-O 10.Qh4 * C24 "Bishop's Opening: Urusov Gambit, Karpov Variation" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 8.O-O-O d5 9.Rhe1 Be6 10.Bd3 Nbd7 11.Qh4 c5 * C24 "Bishop's Opening: Urusov Gambit, Forintos/Haag Variation" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 8.O-O-O d5 9.Rhe1 Be6 10.Bd3 Nbd7 11.Qh4 Nc5 12. Nd4 Ng8 * C24 "Bishop's Opening: Urusov Gambit, 7...Nc6 Defence" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 Nc6 * C24 "Bishop's Opening: Urusov Gambit, Keres Variation" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 Nc6 8.Qh4 d6 * C24 "Bishop's Opening: Urusov Gambit, Estrin Variation" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 Nc6 8.Qh4 d5 * C25a "Vienna Game" 1.e4 e5 2.Nc3 * C25b "Vienna: 2...Bb4" 1.e4 e5 2.Nc3 Bb4 * C25b "Vienna: Zhuravlev" 1.e4 e5 2.Nc3 Bb4 3.Qg4 * C25c "Vienna: 2...d6" 1.e4 e5 2.Nc3 d6 * C25c "Vienna: 2...d6 3.Bc4" 1.e4 e5 2.Nc3 d6 3.Bc4 * C25d "Vienna: 2...Bc5" 1.e4 e5 2.Nc3 Bc5 * C25d "Vienna: Hammpe-Meitner" 1.e4 e5 2.Nc3 Bc5 3.Na4 * C25e "Vienna: 2...Bc5 3.Bc4" 1.e4 e5 2.Nc3 Bc5 3.Bc4 * C25f "Vienna: 2...Bc5 3.Nf3" 1.e4 e5 2.Nc3 Bc5 3.Nf3 * C25g "Vienna: 2...Nc6" 1.e4 e5 2.Nc3 Nc6 * C25g "Vienna: Fyfe Gambit" 1.e4 e5 2.Nc3 Nc6 3.d4 * C25h "Vienna: Paulsen Variation" 1.e4 e5 2.Nc3 Nc6 3.g3 * C25i "Vienna: Paulsen, 3...Bc5" 1.e4 e5 2.Nc3 Nc6 3.g3 Bc5 * C25j "Vienna: 2...Nc6 3.Bc4" 1.e4 e5 2.Nc3 Nc6 3.Bc4 * C25j "Vienna: 2...Nc6 3.Bc4 Bc5" 1.e4 e5 2.Nc3 Nc6 3.Bc4 Bc5 * C25k "Vienna: 2...Nc6 3.Bc4 Bc5 4.d3" 1.e4 e5 2.Nc3 Nc6 3.Bc4 Bc5 4.d3 * C25l "Vienna: 2...Nc6 3.Bc4 Bc5 4.Qg4" 1.e4 e5 2.Nc3 Nc6 3.Bc4 Bc5 4.Qg4 * C25m "Vienna: 2...Nc6 3.f4" 1.e4 e5 2.Nc3 Nc6 3.f4 * C25m "Vienna: 2...Nc6 3.f4" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 * C25n "Vienna: Steinitz Gambit" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.d4 * C25n "Vienna: Steinitz Gambit, Fraser-Minckwitz Variation" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.d4 Qh4+ 5.Ke2 b6 * C25o "Vienna: Steinitz Gambit, Zukertort Defence" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.d4 Qh4+ 5.Ke2 d5 * C25p "Vienna: 2...Nc6 3.f4 exf4 4.Nf3" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 * C25p "Vienna: 2...Nc6 3.f4 exf4 4.Nf3 g5" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 * C25p "Vienna: Hamppe-Muzio Gambit" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.Bc4 g4 6.O-O * C25p "Vienna: Hamppe-Muzio, Dubois Variation" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.Bc4 g4 6.O-O gxf3 7.Qxf3 Ne5 8.Qxf4 Qf6 * C25q "Vienna: Hamppe-Allgaier Gambit" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.h4 * C25q "Vienna: Hamppe-Allgaier Gambit, Alapin Variation" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.h4 g4 6.Ng5 d6 * C25r "Vienna: Pierce Gambit" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.d4 * C25r "Vienna: Pierce Gambit, Rushmere Attack" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.d4 g4 6.Bc4 gxf3 7.O-O d5 8.exd5 Bg4 9.dxc6 * C26a "Vienna: 2...Nf6" 1.e4 e5 2.Nc3 Nf6 * C26a "Vienna: Mengarini Variation" 1.e4 e5 2.Nc3 Nf6 3.a3 * C26b "Vienna: 2...Nf6 3.d3" 1.e4 e5 2.Nc3 Nf6 3.d3 * C26c "Vienna: Smyslov Variation" 1.e4 e5 2.Nc3 Nf6 3.g3 * C26d "Vienna: Smyslov, 3...Nc6" 1.e4 e5 2.Nc3 Nf6 3.g3 Nc6 * C26d "Vienna: Smyslov, 3...Nc6" 1.e4 e5 2.Nc3 Nf6 3.g3 Nc6 4.Bg2 * C26e "Vienna: Smyslov, 3...Bc5" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 * C26e "Vienna: Smyslov, 3...Bc5" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 * C26f "Vienna: Smyslov, 3...Bc5 4.Bg2 d6" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 d6 * C26g "Vienna: Smyslov, 3...Bc5 4.Bg2 O-O" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 O-O * C26h "Vienna: Smyslov, 3...Bc5 4.Bg2 Nc6" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 Nc6 * C26h "Vienna: Smyslov, 3...Bc5 4.Bg2 Nc6 5.Nge2" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 Nc6 5.Nge2 * C26i "Vienna: Smyslov, 3...d5" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 * C26i "Vienna: Smyslov, 3...d5" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 4.exd5 Nxd5 5.Bg2 * C26j "Vienna: Smyslov, 3...d5, 5...Nxc3" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 4.exd5 Nxd5 5.Bg2 Nxc3 * C26k "Vienna: Smyslov, 3...d5, 5...Nxc3 6.bxc3 Bd6" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 4.exd5 Nxd5 5.Bg2 Nxc3 6.bxc3 Bd6 * C26l "Vienna: 3.Bc4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 * C26l "Vienna: Horwitz Gambit" 1.e4 e5 2.Nc3 Nf6 3.Bc4 b5 * C26m "Vienna: 3.Bc4 Bb4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bb4 * C26n "Vienna: 3.Bc4 Bb4 4.Nf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bb4 4.Nf3 * C26o "Vienna: 3.Bc4 Bb4 4.Nf3 O-O" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bb4 4.Nf3 O-O * C26p "Vienna: 3.Bc4 Bc5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 * C26p "Vienna: 3.Bc4 Bc5 4.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.f4 * C26q "Vienna: 3.Bc4 Bc5 4.Nf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.Nf3 * C26r "Vienna: 3.Bc4 Bc5 4.d3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 * C26s "Vienna: 3.Bc4 Bc5 4.d3 d6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 d6 * C26t "Vienna: 3.Bc4 Bc5 4.d3 d6 5.Na4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 d6 5.Na4 * C26u "Vienna: 3.Bc4 Bc5 4.d3 d6 5.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 d6 5.f4 * C27a "Vienna: 3.Bc4 Nxe4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 * C27b "Vienna: 3.Bc4 Nxe4 4.Nxe4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Nxe4 * C27c "Vienna: 3.Bc4 Nxe4 4.Qh5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 * C27d "Vienna: 3.Bc4 Nxe4 4.Qh5 Nd6 5.Qxe5+" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Qxe5+ * C27e "Vienna: 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 * C27f "Vienna: 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Be7" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Be7 * C27g "Vienna: Alekhine Variation" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Be7 6.Nf3 Nc6 7.Nxe5 * C27h "Vienna: 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 * C27h "Vienna: Adams' Gambit" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.d4 * C27h "Vienna: 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.Nb5 * C27i "Vienna: Frankenstein-Dracula Variation" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.Nb5 g6 7.Qf3 f5 8.Qd5 Qe7 9.Nxc7+ Kd8 10.Nxa8 * C27j "Vienna: Frankenstein-Dracula, 11.d3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.Nb5 g6 7.Qf3 f5 8.Qd5 Qe7 9.Nxc7+ Kd8 10.Nxa8 b6 11.d3 * C28a "Vienna: 3.Bc4 Nc6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 * C28b "Vienna: 3.Bc4 Nc6 4.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.f4 * C28b "Vienna: Bronstein Gambit" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.f4 Nxe4 5.Nf3 * C28c "Vienna: 3.Bc4 Nc6 4.d3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 * C28d "Vienna: 3.Bc4 Nc6 4.d3 Be7" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Be7 * C28e "Vienna: 3.Bc4 Nc6 4.d3 Na5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Na5 * C28f "Vienna: 3.Bc4 Nc6 4.d3 Na5 5.Nge2" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Na5 5.Nge2 * C28g "Vienna: 3.Bc4 Nc6 4.d3 Bc5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 * C28h "Vienna: 3.Bc4 Nc6 4.d3 Bc5 5.Bg5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.Bg5 * C28i "Vienna: 3.Bc4 Nc6 4.d3 Bc5 5.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 * C28j "Vienna: 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 * C28k "Vienna: 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 Bg4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 Bg4 * C28l "Vienna: 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 a6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 a6 * C28m "Vienna: 3.Bc4 Nc6 4.d3 Bb4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 * C28n "Vienna: 3.Bc4 Nc6 4.d3 Bb4 5.Nf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 5.Nf3 * C28o "Vienna: 3.Bc4 Nc6 4.d3 Bb4 5.Bg5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 5.Bg5 * C28p "Vienna: 3.Bc4 Nc6 4.d3 Bb4 5.Ne2" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 5.Ne2 * C29a "Vienna Gambit" 1.e4 e5 2.Nc3 Nf6 3.f4 * C29a "Vienna Gambit: 3...exf4" 1.e4 e5 2.Nc3 Nf6 3.f4 exf4 * C29b "Vienna Gambit: 3...d6" 1.e4 e5 2.Nc3 Nf6 3.f4 d6 * C29b "Vienna Gambit: 3...d6 4.Nf3" 1.e4 e5 2.Nc3 Nf6 3.f4 d6 4.Nf3 * C29c "Vienna Gambit: 3...d5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 * C29d "Vienna Gambit: 3...d5 4.exd5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.exd5 * C29d "Vienna Gambit: 3...d5 4.exd5 exf4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.exd5 exf4 * C29e "Vienna Gambit: Steinitz Variation" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.d3 * C29f "Vienna Gambit: 4.fxe5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 * C29f "Vienna Gambit: 4.fxe5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 * C29g "Vienna Gambit: Oxford Variation" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 * C29g "Vienna Gambit: Wurzburger Trap" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Qh4+ 6.g3 Nxg3 7.Nf3 Qh5 8.Nxd5 * C29h "Vienna Gambit: Oxford, 5...Bb4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Bb4 * C29h "Vienna Gambit: Oxford, 5...Bb4 6.dxe4 Qh4+ 7.Ke2" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Bb4 6.dxe4 Qh4+ 7.Ke2 * C29i "Vienna Gambit: Oxford, 5...Nxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Nxc3 * C29j "Vienna Gambit: Oxford, 5...Nxc3 6.bxc3 d4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Nxc3 6.bxc3 d4 * C29k "Vienna Gambit: Paulsen Attack" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 * C29k "Vienna Gambit: Paulsen Attack, 5...Nc6" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 Nc6 * C29l "Vienna Gambit: Paulsen Attack, Bardeleben Variation" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 f5 * C29l "Vienna Gambit: Paulsen Attack, Heyde Variation" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 f5 6.d4 * C29m "Vienna Gambit: Paulsen Attack, 5...Nxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 Nxc3 * C29n "Vienna Gambit: 5.Nf3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 * C29o "Vienna Gambit: 5.Nf3 Bg4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Bg4 * C29o "Vienna Gambit: Kaufmann Variation" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Bg4 6.Qe2 * C29p "Vienna Gambit: 5.Nf3 Bb4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Bb4 * C29q "Vienna Gambit: 5.Nf3 Nc6" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Nc6 * C29r "Vienna Gambit: Breyer Variation" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 * C29s "Vienna Gambit: Breyer, 6.Qe2" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 6.Qe2 * C29t "Vienna Gambit: Breyer, 6.Qe2 Nxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 6.Qe2 Nxc3 * C29t "Vienna Gambit: Breyer, 6.Qe2 Nxc3 7.dxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 6.Qe2 Nxc3 7.dxc3 * C30a "King's Gambit" 1.e4 e5 2.f4 * C30b "King's Gambit: Mafia Defence" 1.e4 e5 2.f4 c5 * C30c "King's Gambit: 2...d6" 1.e4 e5 2.f4 d6 * C30c "King's Gambit: 2...d6 3.Nf3" 1.e4 e5 2.f4 d6 3.Nf3 * C30c "King's Gambit: 2...d6 3.Nf3 Nc6" 1.e4 e5 2.f4 d6 3.Nf3 Nc6 * C30d "King's Gambit: Wade Variation" 1.e4 e5 2.f4 Nf6 * C30e "King's Gambit: Norwald Variation" 1.e4 e5 2.f4 Qf6 * C30e "King's Gambit: Norwald Variation, Schubert line" 1.e4 e5 2.f4 Qf6 3.Nc3 Qxf4 4.d4 * C30e "King's Gambit: Norwald Variation, Buecker Gambit" 1.e4 e5 2.f4 Qf6 3.Nf3 Qxf4 4.Nc3 Bb4 5.Bc4 * C30f "King's Gambit: Keene Defence" 1.e4 e5 2.f4 Qh4+ * C30f "King's Gambit: Keene Defence, 3.g3 Qe7" 1.e4 e5 2.f4 Qh4+ 3.g3 Qe7 * C30g "King's Gambit: 2...Nc6" 1.e4 e5 2.f4 Nc6 * C30h "King's Gambit: Adelaide-Wahls Variation" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 * C30i "King's Gambit: Adelaide-Wahls, 4.exf5" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 4.exf5 * C30i "King's Gambit: Adelaide-Wahls, 4.exf5 e4" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 4.exf5 e4 * C30i "King's Gambit: Adelaide-Wahls, 4.exf5 e4 5.Ne5 Nf6" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 4.exf5 e4 5.Ne5 Nf6 * C30j "King's Gambit: Classical KGD" 1.e4 e5 2.f4 Bc5 * C30j "KGD: Classical, 3.Bc4" 1.e4 e5 2.f4 Bc5 3.Bc4 * C30j "KGD: Classical, 3.Nf3" 1.e4 e5 2.f4 Bc5 3.Nf3 * C30j "KGD: Classical, Senechaud Countergambit" 1.e4 e5 2.f4 Bc5 3.Nf3 g5 * C30k "KGD: Classical, 3.Nf3 d6" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 * C30k "KGD: Classical, Heath Variation" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.b4 * C30k "KGD: Classical, Soldatenkov Variation" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.fxe5 * C30l "KGD: Classical, 3.Nf3 d6 4.Nc3" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 * C30l "KGD: Classical, Hanham Variation" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 Nd7 * C30m "KGD: Classical, 3.Nf3 d6 4.Nc3 Nf6 5.Bc4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 Nf6 5.Bc4 * C30m "KGD: Classical, Svenonius Variation" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 Nf6 5.Bc4 Nc6 6.d3 Bg4 7.h3 Bxf3 8.Qxf3 exf4 * C30n "KGD: Classical, 4.c3" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 * C30n "KGD: Classical, Marshall Attack" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Bg4 5.fxe5 dxe5 6.Qa4+ * C30o "KGD: Classical, 4.c3 Bb6" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Bb6 * C30p "KGD: Classical, 4.c3 Nf6" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 * C30q "KGD: Classical, 4.c3 Nf6 5.d4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 5.d4 * C30q "KGD: Classical, 4.c3 Nf6 5.d4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 5.d4 Bb6 * C30q "KGD: Classical, 4.c3 Nf6 5.d4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb6 * C30r "KGD: Classical Countergambit" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 f5 * C30r "KGD: Classical, Reti Variation" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 f5 5.fxe5 dxe5 6.d4 exd4 7.Bc4 * C31 "KGD: Falkbeer Countergambit" 1.e4 e5 2.f4 d5 * C31 "KGD: Falkbeer, Tartakower Variation" 1.e4 e5 2.f4 d5 3.Nf3 * C31 "KGD: Falkbeer, Milner-Barry Variation" 1.e4 e5 2.f4 d5 3.Nc3 * C31 "KGD: Falkbeer, 3.exd5" 1.e4 e5 2.f4 d5 3.exd5 * C31 "KGD: Falkbeer, 3.exd5 exf4" 1.e4 e5 2.f4 d5 3.exd5 exf4 * C31 "KGD: Falkbeer, Marshall/Nimzowitsch Countergambit" 1.e4 e5 2.f4 d5 3.exd5 c6 * C31 "KGD: Falkbeer, Marshall/Nimzowitsch, 4.dxc6" 1.e4 e5 2.f4 d5 3.exd5 c6 4.dxc6 * C31 "KGD: Falkbeer, Marshall/Nimzowitsch, 4.Qe2" 1.e4 e5 2.f4 d5 3.exd5 c6 4.Qe2 * C31 "KGD: Falkbeer, Marshall/Nimzowitsch, 4.Nc3" 1.e4 e5 2.f4 d5 3.exd5 c6 4.Nc3 * C31 "KGD: Falkbeer, 3.exd5 e4" 1.e4 e5 2.f4 d5 3.exd5 e4 * C31 "KGD: Falkbeer, Rubinstein Variation" 1.e4 e5 2.f4 d5 3.exd5 e4 4.Nc3 Nf6 5.Qe2 * C31 "KGD: Falkbeer, Nimzowitsch Variation" 1.e4 e5 2.f4 d5 3.exd5 e4 4.Bb5+ * C31 "KGD: Falkbeer, 4.d3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 * C32 "KGD: Falkbeer, 4.d3 Nf6" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 * C32 "KGD: Falkbeer, Keres Variation" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nd2 * C32 "KGD: Falkbeer, Keres, 5...exd3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nd2 exd3 * C32 "KGD: Falkbeer, Reti Variation" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Qe2 * C32 "KGD: Falkbeer, 4.d3 Nf6 5.Nc3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nc3 * C32 "KGD: Falkbeer, 4.d3 Nf6 5.Nc3 Bb4" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nc3 Bb4 * C32 "KGD: Falkbeer, Morphy Gambit" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nc3 Bb4 6.Bd2 e3 * C32 "KGD: Falkbeer, 5.dxe4" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 * C32 "KGD: Falkbeer, Charousek Variation" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Qe2 * C32 "KGD: Falkbeer, 5.dxe4 Nxe4 6.Be3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Be3 * C32 "KGD: Falkbeer, 5.dxe4 Nxe4 6.Nf3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 * C32 "KGD: Falkbeer, 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 * C32 "KGD: Falkbeer, Alapin Variation" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf2+ 8.Kd1 Qxd5+ 9.Nfd2 * C32 "KGD: Falkbeer, Main Line, 7...Bf5" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf5 * C32 "KGD: Falkbeer, Tarrasch Variation" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf5 8.g4 O-O * C32 "KGD: Falkbeer, Main Line, 7...Bf5 8.Nc3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf5 8.Nc3 * C33 "King's Gambit Accepted (KGA)" 1.e4 e5 2.f4 exf4 * C33 "KGA: Tumbleweed/Drunken King" 1.e4 e5 2.f4 exf4 3.Kf2 * C33 "KGA: Orsini Gambit" 1.e4 e5 2.f4 exf4 3.b3 * C33 "KGA: Stamma (Leonardo) Gambit" 1.e4 e5 2.f4 exf4 3.h4 * C33 "KGA: Schurig Gambit" 1.e4 e5 2.f4 exf4 3.Bd3 * C33 "KGA: Basman Gambit" 1.e4 e5 2.f4 exf4 3.Qe2 * C33 "KGA: Carrera Gambit" 1.e4 e5 2.f4 exf4 3.Qh5 * C33 "KGA: Eisenberg Gambit" 1.e4 e5 2.f4 exf4 3.Nh3 * C33 "KGA: Eisenberg Gambit" 1.e4 e5 2.f4 exf4 3.Ne2 * C33 "KGA: Villemson Gambit" 1.e4 e5 2.f4 exf4 3.d4 * C33 "KGA: Keres Gambit" 1.e4 e5 2.f4 exf4 3.Nc3 * C33 "KGA: Breyer Gambit" 1.e4 e5 2.f4 exf4 3.Qf3 * C33 "KGA: Lesser Bishop's (Tartakower) Gambit" 1.e4 e5 2.f4 exf4 3.Be2 * C33 "KGA: Bishop's Gambit" 1.e4 e5 2.f4 exf4 3.Bc4 * C33 "KGA: Bishop's Gambit, Chigorin Attack" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 d5 5.Bxd5 g5 6.g3 * C33 "KGA: Bishop's Gambit, Greco Variation" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 Bc5 * C33 "KGA: Bishop's Gambit, Classical Defence" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 * C33 "KGA: Bishop's Gambit, Grimm Attack" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.d4 d6 7.e5 * C33 "KGA: Bishop's Gambit, Classical Defence" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.d4 Ne7 * C33 "KGA: Bishop's Gambit, McDonnell Attack" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.d4 Ne7 7.g3 * C33 "KGA: bishop's Gambit, McDonnell Attack" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.g3 * C33 "KGA: Bishop's Gambit, Fraser Variation" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.g3 fxg3 7.Qf3 * C33 "KGA: Bishop's Gambit, Classical Defence, Cozio Attack" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Qf3 * C33 "KGA: Bishop's Gambit, Boden Defence" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 Nc6 * C33 "KGA: Bishop's Gambit, Bryan Countergambit" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 b5 * C33 "KGA: Bishop's Gambit, Bryan Countergambit" 1.e4 e5 2.f4 exf4 3.Bc4 b5 * C33 "KGA: Bishop's Gambit, Steinitz Defence" 1.e4 e5 2.f4 exf4 3.Bc4 Ne7 * C33 "KGA: Bishop's Gambit, Maurian Defence" 1.e4 e5 2.f4 exf4 3.Bc4 Nc6 * C33 "KGA: Bishop's Gambit, Ruy Lopez Defence" 1.e4 e5 2.f4 exf4 3.Bc4 c6 * C33 "KGA: Bishop's Gambit, Lopez-Gianutio Countergambit" 1.e4 e5 2.f4 exf4 3.Bc4 f5 * C33 "KGA: Bishop's Gambit, Lopez-Gianutio Countergambit, Hein Variation" 1.e4 e5 2.f4 exf4 3.Bc4 f5 4.Qe2 Qh4+ 5.Kd1 fxe4 6.Nc3 Kd8 * C33 "KGA: Bishop's Gambit, Bledow Variation" 1.e4 e5 2.f4 exf4 3.Bc4 d5 * C33 "KGA: Bishop's Gambit, Bledow, 4.exd5" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.exd5 * C33 "KGA: Bishop's Gambit, Bledow, 4.Bxd5" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 * C33 "KGA: Bishop's Gambit, Boren-Svenonius Variation" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 Qh4+ 5.Kf1 Bd6 * C33 "KGA: Bishop's Gambit, Anderssen Variation" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 c6 * C33 "KGA: Bishop's Gambit, Morphy Variation" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 Nf6 * C33 "KGA: Bishop's Gambit, Cozio Defence" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 * C33 "KGA: Bishop's Gambit, Bogoljubow Variation" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 4.Nc3 * C33 "KGA: Bishop's Gambit, Paulsen Attack" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 4.Nc3 Bb4 5.e5 * C33 "KGA: Bishop's Gambit, Jaenisch Variation" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 4.Nc3 c6 * C34 "KGA: King's Knight Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 * C34 "KGA: Bonsch-Osmolovsky Variation" 1.e4 e5 2.f4 exf4 3.Nf3 Ne7 * C34 "KGA: Gianutio Countergambit" 1.e4 e5 2.f4 exf4 3.Nf3 f5 * C34 "KGA: Becker Defence (Anti-Kieseritzky)" 1.e4 e5 2.f4 exf4 3.Nf3 h6 * C34 "KGA: Schallop Defence" 1.e4 e5 2.f4 exf4 3.Nf3 Nf6 * C34 "KGA: Fischer Defence" 1.e4 e5 2.f4 exf4 3.Nf3 d6 * C34 "KGA: Fischer, 4.Bc4" 1.e4 e5 2.f4 exf4 3.Nf3 d6 4.Bc4 * C34 "KGA: Fischer, 4.d4" 1.e4 e5 2.f4 exf4 3.Nf3 d6 4.d4 * C34 "KGA: Fischer, Main Line" 1.e4 e5 2.f4 exf4 3.Nf3 d6 4.d4 g5 5.h4 g4 6.Ng1 * C35 "KGA: Cunningham Defence" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 * C35 "KGA: Cunningham, Bertin Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 4.Bc4 Bh4+ 5.g3 * C35 "KGA: Cunningham, Three Pawns Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 4.Bc4 Bh4+ 5.g3 fxg3 6.O-O gxh2+ 7.Kh1 * C35 "KGA: Cunningham, Euwe Defence" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 4.Bc4 Nf6 * C36 "KGA: Scandinavian (Abbazia) Variation" 1.e4 e5 2.f4 exf4 3.Nf3 d5 * C36 "KGA: Scandinavian, 4.exd5" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 * C36 "KGA: Scandinavian, 4.exd5 Bd6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Bd6 * C36 "KGA: Scandinavian, Modern Variation" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 * C36 "KGA: Scandinavian, Modern, 5.Bc4" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bc4 * C36 "KGA: Scandinavian, Modern, 5.Nc3" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Nc3 * C36 "KGA: Scandinavian, Modern, 5.Bb5+ " 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ * C36 "KGA: Scandinavian, Modern, 5.Bb5+ c6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 * C36 "KGA: Scandinavian, Modern, 5.Bb5+ c6 6.dxc6 Nxc6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 6.dxc6 Nxc6 * C36 "KGA: Scandinavian, Modern, 5.Bb5+ c6 6.dxc6 bxc6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 6.dxc6 bxc6 * C36 "KGA: Scandinavian, Botvinnik Variation" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 6.dxc6 bxc6 7.Bc4 Nd5 * C37 "KGA: 3.Nf3 g5" 1.e4 e5 2.f4 exf4 3.Nf3 g5 * C37 "KGA: Quaade Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Nc3 * C37 "KGA: Rosentreter Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.d4 * C37 "KGA: Sorensen Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.d4 g4 5.Ne5 * C37 "KGA: 3.Nf3 g5 4.Bc4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 * C37 "KGA: Blachly Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Nc6 * C37 "KGA: 3.Nf3 g5 4.Bc4 g4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 * C37 "KGA: Lolli Gambit (Wild Muzio)" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Bxf7+ * C37 "KGA: Lolli Gambit, Young Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Bxf7+ Kxf7 6.O-O gxf3 7.Qxf3 Qf6 8.d4 Qxd4+ 9.Be3 Qf6 10.Nc3 * C37 "KGA: Ghulam-Kassim Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.d4 * C37 "KGA: MacDonnell Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Nc3 * C37 "KGA: Salvio Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 * C37 "KGA: Salvio, Silberschmidt Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 Nh6 7.d4 f3 * C37 "KGA: Salvio, Anderssen Counterattack" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 Nh6 7.d4 d6 * C37 "KGA: Salvio, Cochrane Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 f3 * C37 "KGA: Salvio, Herzfeld Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 Nc6 * C37 "KGA: Muzio Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O * C37 "KGA: Muzio Gambit, Paulsen Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Qf6 7.e5 Qxe5 8.d3 Bh6 9.Nc3 Ne7 10.Bd2 Nbc6 11.Rae1 * C37 "KGA: Double Muzio Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Qf6 7.e5 Qxe5 8.Bxf7+ * C37 "KGA: Muzio Gambit, From Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Qe7 * C37 "KGA: Muzio Gambit, Holloway Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Nc6 * C37 "KGA: Muzio Gambit, Kling and Horwitz Counterattack" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O Qe7 * C37 "KGA: Muzio Gambit, Brentano Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O d5 * C38 "KGA: 3.Nf3 g5 4.Bc4 Bg7" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 * C38 "KGA: Hanstein Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.d4 * C38 "KGA: Hanstein Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.O-O h6 6.d4 d6 * C38 "KGA: Philidor Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.h4 * C38 "KGA: Greco Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.h4 h6 6.d4 d6 7.Nc3 c6 8.hxg5 hxg5 9.Rxh8 Bxh8 10.Ne5 * C38 "KGA: Philidor Gambit, Schultz Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.h4 h6 6.d4 d6 7.Qd3 * C39 "KGA: 3.Nf3 g5 4.h4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 * C39 "KGA: Allgaier Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 * C39 "KGA: Allgaier, Horny Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Qxg4 Nf6 8.Qxf4 Bd6 * C39 "KGA: Allgaier, Thorold Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.d4 * C39 "KGA: Allgaier, Cook Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.d4 d5 8.Bxf4 dxe4 9.Bc4+ Kg7 10.Be5+ * C39 "KGA: Allgaier, Blackburne Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Nc3 * C39 "KGA: Allgaier, Walker Attack" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Bc4+ * C39 "KGA: Allgaier, Urusov Attack" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Bc4+ d5 8.Bxd5+ Kg7 9.d4 * C39 "KGA: Allgaier, Schlechter Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 Nf6 * C39 "KGA: Kieseritsky" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 * C39 "KGA: Kieseritsky, Green Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d6 * C39 "KGA: Kieseritsky, Paulsen Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Bg7 * C39 "KGA: Kieseritsky, Long Whip Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 h5 * C39 "KGA: Kieseritsky, Long Whip Defence, Jaenisch Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 h5 6.Bc4 Rh7 7.d4 Bh6 8.Nc3 * C39 "KGA: Kieseritsky, Brentano (Campbell) Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 * C39 "KGA: Kieseritsky, Brentano Defence, Kaplanek Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 6.d4 Nf6 7.exd5 Qxd5 8.Nc3 Bb4 9.Kf2 * C39 "KGA: Kieseritsky, Brentano Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 6.d4 Nf6 7.Bxf4 * C39 "KGA: Kieseritsky, Brentano Defence, Caro Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 6.d4 Nf6 7.Bxf4 Nxe4 8.Nd2 * C39 "KGA: Kieseritsky, Salvio (Rosenthal) Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Qe7 * C39 "KGA: Kieseritsky, Salvio Defence, Cozio Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Qe7 6.d4 f5 7.Bc4 * C39 "KGA: Kieseritsky, Polerio Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Be7 * C39 "KGA: Kieseritsky, Neumann Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nc6 * C39 "KGA: Kieseritsky, Berlin Defence" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 * C39 "KGA: Kieseritsky, Berlin Defence, Riviere Variation" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 6.Nxg4 d5 * C39 "KGA: Kieseritsky, Berlin Defence, 6.Bc4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 6.Bc4 * C39 "KGA: Kieseritsky, Rice Gambit" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 6.Bc4 d5 7.exd5 Bd6 8.O-O * C40a "Open Game" 1.e4 e5 2.Nf3 * C40a "Open Game: Damiano Defence" 1.e4 e5 2.Nf3 f6 * C40b "Open Game: Greco Defence" 1.e4 e5 2.Nf3 Qf6 * C40c "Open Game: Gunderam Defence" 1.e4 e5 2.Nf3 Qe7 * C40d "Open Game: Gunderam Defence, 3.Nc3" 1.e4 e5 2.Nf3 Qe7 3.Nc3 * C40e "Elephant Gambit" 1.e4 e5 2.Nf3 d5 * C40f "Elephant Gambit: 3.Nxe5" 1.e4 e5 2.Nf3 d5 3.Nxe5 * C40f "Elephant Gambit: 3.Nxe5 dxe4 4.Bc4" 1.e4 e5 2.Nf3 d5 3.Nxe5 dxe4 4.Bc4 * C40g "Elephant Gambit: 3.exd5" 1.e4 e5 2.Nf3 d5 3.exd5 * C40h "Elephant Gambit: Maroczy" 1.e4 e5 2.Nf3 d5 3.exd5 Bd6 * C40i "Elephant Gambit: Paulsen" 1.e4 e5 2.Nf3 d5 3.exd5 e4 * C40j "Latvian Gambit" 1.e4 e5 2.Nf3 f5 * C40k "Latvian Gambit: 3.d3" 1.e4 e5 2.Nf3 f5 3.d3 * C40l "Latvian Gambit: 3.Nc3" 1.e4 e5 2.Nf3 f5 3.Nc3 * C40m "Latvian Gambit: 3.d4" 1.e4 e5 2.Nf3 f5 3.d4 * C40m "Latvian Gambit: 3.d4 fxe4 5.Nxe5 Nf6" 1.e4 e5 2.Nf3 f5 3.d4 fxe4 5.Nxe5 Nf6 * C40n "Latvian Gambit: 3.exf5" 1.e4 e5 2.Nf3 f5 3.exf5 * C40n "Latvian Gambit: 3.exf5 e4" 1.e4 e5 2.Nf3 f5 3.exf5 e4 * C40o "Latvian Gambit: 3.Bc4" 1.e4 e5 2.Nf3 f5 3.Bc4 * # 3.Bc4 Nc6 is classified under Italian Game: C50 (2.Nf3 Nc6 3.Bc4 f5). C40o "Latvian Gambit: Strautins Variation" 1.e4 e5 2.Nf3 f5 3.Bc4 b5 * C40o "Latvian Gambit: Morgado Variation" 1.e4 e5 2.Nf3 f5 3.Bc4 Nf6 * C40p "Latvian Gambit: 3.Bc4 fxe4" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 * C40p "Latvian: Blackburne Variation (Corkscrew Countergambit)" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 Nf6 * C40p "Latvian Gambit: Svedenborg Variation" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 d5 * C40p "Latvian Gambit: Svedenborg, 6.Nxg6 Nf6" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 d5 5.Qh5+ g6 6.Nxg6 Nf6 * C40p "Latvian Gambit: Svedenborg, 6.Nxg6 hxg6" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 d5 5.Qh5+ g6 6.Nxg6 hxg6 * C40q "Latvian Gambit: Poisoned Pawn Variation" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 Qg5 * C40q "Latvian Gambit: Poisoned Pawn, Main Line" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 Qg5 5.d4 Qxg2 6.Qh5+ g6 7.Bf7+ Kd8 * C40r "Latvian Gambit: 3.Nxe5" 1.e4 e5 2.Nf3 f5 3.Nxe5 * C40s "Latvian Gambit: 3.Nxe5 Nc6" 1.e4 e5 2.Nf3 f5 3.Nxe5 Nc6 * C40t "Latvian Gambit: 3.Nxe5 Qf6" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 * C40t "Latvian Gambit: 3.Nxe5 Qf6 4.Nc4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.Nc4 * C40u "Latvian Gambit: 3.Nxe5 Qf6 4.d4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 * C40u "Latvian Gambit: 3.Nxe5 Qf6 4.d4 d6" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 * C40u "Latvian Gambit: 3.Nxe5 Qf6 4.d4 d6 5.Nc4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 * C40u "Latvian Gambit: 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 * C40v "Latvian Gambit: 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Be2" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Be2 * C40w "Latvian Gambit: Nimzowitsch Variation" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Ne3 * C40x "Latvian Gambit: 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Nc3" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Nc3 * C41a "Philidor Defence" 1.e4 e5 2.Nf3 d6 * C41b "Philidor: 3.Bc4" 1.e4 e5 2.Nf3 d6 3.Bc4 * C41b "Philidor: Steinitz Variation" 1.e4 e5 2.Nf3 d6 3.Bc4 Be7 4.c3 * C41b "Philidor: Lopez Countergambit" 1.e4 e5 2.Nf3 d6 3.Bc4 f5 * C41b "Philidor: Lopez Countergambit, Jaenisch Variation" 1.e4 e5 2.Nf3 d6 3.Bc4 f5 4.d4 exd4 5.Ng5 Nh6 6.Nxh7 * C41c "Philidor: 3.d4" 1.e4 e5 2.Nf3 d6 3.d4 * C41d "Philidor: Philidor Countergambit" 1.e4 e5 2.Nf3 d6 3.d4 f5 * C41d "Philidor: Philidor Countergambit, Zukertort Variation" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.Nc3 * C41e "Philidor: Philidor Countergambit, 4.dxe5" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 * C41e "Philidor: Philidor Countergambit, Steinitz Variation" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 fxe4 5.Ng5 d5 6.Nc3 * C41e "Philidor: Philidor Countergambit, del Rio Attack" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 fxe4 5.Ng5 d5 6.e6 * C41e "Philidor: Philidor Countergambit, Berger Variation" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 fxe4 5.Ng5 d5 6.e6 Bc5 7.Nc3 * C41f "Philidor: Hanham Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 * C41f "Philidor: Hanham, 4.Bc4" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 * C41g "Philidor: Hanham, 4.Bc4 c6" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 * C41g "Philidor: Hanham, Krause Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.O-O * C41g "Philidor: Hanham, Steiner Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.O-O Be7 6.dxe5 * C41g "Philidor: Hanham, Kmoch Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.Ng5 * C41g "Philidor: Hanham, Berger Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.Ng5 Nh6 6.f4 Be7 7.O-O O-O 8.c3 d5 * C41g "Philidor: Hanham, Schlechter Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.Nc3 * C41g "Philidor: Hanham, Delmar Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.c3 * C41h "Philidor: 3...exd4" 1.e4 e5 2.Nf3 d6 3.d4 exd4 * C41h "Philidor: Bird Gambit" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.c3 * C41i "Philidor: Morphy Variation" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 * C41i "Philidor: Morphy, 4...Nc6" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 Nc6 * C41i "Philidor: Morphy, 4...Nf6" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 Nf6 * C41i "Philidor: Morphy, 4...Nf6 5.Nc3" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 Nf6 5.Nc3 * C41j "Philidor: 3...exd4 4.Nxd4" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 * C41j "Philidor: Paulsen Attack" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 d5 5.exd5 * C41k "Philidor: 3...exd4 4.Nxd4 Nf6" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 * C41k "Philidor: 3...exd4 4.Nxd4 Nf6 5.Nc3" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 * C41k "Philidor: 3...exd4 4.Nxd4 Nf6 5.Nc3 Be7" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 * C41l "Philidor: 3...exd4 4.Nxd4 Nf6 5.Nc3 Be7 6.Bc4" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 6.Bc4 * C41m "Philidor: Antoshin Variation" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 6.Be2 * C41m "Philidor: Berger Variation" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 6.Be2 O-O 7.O-O c5 8.Nf3 Nc6 9.Bg5 Be6 10.Re1 * C41n "Philidor: Larsen Variation" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 g6 * C41o "Philidor: Nimzowitsch Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 * C41o "Philidor: Nimzowitsch, Klein Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Bc4 * C41o "Philidor: Nimzowitsch, Locock Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Ng5 * C41p "Philidor: Exchange Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.dxe5 * C41p "Philidor: Exchange, Sokolsky Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.dxe5 Nxe4 5.Nbd2 * C41p "Philidor: Exchange, Rellstab Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.dxe5 Nxe4 5.Qd5 * C41q "Philidor: Nimzowitsch Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 * C41r "Philidor: Improved Hanham" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 * C41s "Philidor: Improved Hanham, 5.Bc4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 * C41s "Philidor: Improved Hanham, 5.Bc4 Be7" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 * C41s "Philidor: Improved Hanham, 6.Bxf7+" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.Bxf7+ * C41s "Philidor: Improved Hanham, 6.Ng5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.Ng5 * C41s "Philidor: Improved Hanham, Larobok Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.Ng5 O-O 7.Bxf7+ * C41s "Philidor: Improved Hanham, 6.dxe5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.dxe5 * C41s "Philidor: Improved Hanham, 6.dxe5 Nxe5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.dxe5 Nxe5 * C41s "Philidor: Improved Hanham, 6.dxe5 dxe5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.dxe5 dxe5 * C41t "Philidor: Improved Hanham 6.O-O" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O * C41u "Philidor: Improved Hanham, Main Line" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O * C41v "Philidor: Improved Hanham, 7.a4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.a4 * C41v "Philidor: Improved Hanham, 7.a4 c6" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.a4 c6 * C41w "Philidor: Improved Hanham, 7.Qe2" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Qe2 * C41w "Philidor: Improved Hanham, 7.Qe2 c6 8.a4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.a4 c6 8.Qe2 * C41w "Philidor: Improved Hanham, Sozin Variation" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Qe2 c6 8.a4 exd4 * C41x "Philidor: Improved Hanham, 7.Re1" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 * C41x "Philidor: Improved Hanham, 7.Re1 c6 8.a4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 c6 8.a4 * C41y "Philidor: Improved Hanham, 7.Re1 c6 8.a4 a5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 c6 8.a4 a5 * C41z "Philidor: Improved Hanham, 7.Re1 c6 8.a4 b6" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 c6 8.a4 b6 * C42a "Russian Game (Petroff Defence)" 1.e4 e5 2.Nf3 Nf6 * C42b "Russian Game: 3.d3" 1.e4 e5 2.Nf3 Nf6 3.d3 * C42c "Russian-Three Knights Game" 1.e4 e5 2.Nf3 Nf6 3.Nc3 * C42c "Russian-Three Knights Game" 1.e4 e5 2.Nf3 Nf6 3.Nc3 Bb4 * C42d "Russian-Three Knights Game, 4.Nxe5" 1.e4 e5 2.Nf3 Nf6 3.Nc3 Bb4 4.Nxe5 * C42e "Russian Game: Italian Variation" 1.e4 e5 2.Nf3 Nf6 3.Bc4 * C42f "Russian Game: Boden-Kieseritsky Gambit" 1.e4 e5 2.Nf3 Nf6 3.Bc4 Nxe4 4.Nc3 * C42f "Russian Game: Boden-Kieseritsky Gambit Accepted" 1.e4 e5 2.Nf3 Nf6 3.Bc4 Nxe4 4.Nc3 Nxc3 * C42g "Russian Game: 3.Nxe5" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 * C42g "Russian Game: Damiano Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 Nxe4 * C42g "Russian Game: 3.Nxe5 d6" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 * C42h "Russian Game: Cochrane Gambit" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nxf7 * C42h "Russian Game: Cochrane Gambit, 5.d4" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nxf7 Kxf7 5.d4 * C42i "Russian Game: Paulsen Attack" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nc4 * C42j "Russian Game: 3.Nxe5 d6 4.Nf3" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 * C42k "Russian Game: French Attack" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d3 * C42l "Russian Game: Vienna/Kaufmann" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.c4 * C42m "Russian Game: Nimzowitsch Attack" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Nc3 * C42n "Russian Game: Cozio/Lasker" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 * C42n "Russian Game: Milner-Barry Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 Qe7 6.d3 Nf6 7.Bg5 Nbd7 * C42o "Russian Game: 5.Qe2, Queenswap" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 Qe7 6.d3 Nf6 7.Bg5 Qxe2+ * C42p "Russian Game: Classical" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 * C42p "Russian Game: Classical, Close Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 Nf6 * C42p "Russian Game: Classical, 5...d5" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 * C42q "Russian Game: Classical, 6.Bd3" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 * C42q "Russian Game: Classical, Marshall Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 * C42q "Russian Game: Classical, Tarrasch Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 7.O-O O-O 8.c4 Bg4 * C42q "Russian Game: Classical, Marshall Trap" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 7.O-O O-O 8.c4 Bg4 9.cxd5 f5 10.Re1 Bxh2+ * C42r "Russian Game: Classical, Marshall, 8.c4 c6" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 7.O-O O-O 8.c4 c6 * C42s "Russian Game: Classical, 6.Bd3 Be7" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 * C42s "Russian Game: Classical, Mason Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O O-O * C42s "Russian Game: Classical, 6.Bd3 Be7 7.O-O Nc6" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 * C42t "Russian Game: Classical, Jaenisch Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.c4 * C42u "Russian Game: Classical, Jaenisch, Main Line" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.c4 Nb4 9.Be2 O-O * C42v "Russian Game: Classical, Chigorin Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 * C42v "Russian Game: Classical, Chigorin, 8...Bf5" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bf5 * C42w "Russian Game: Classical, Chigorin, 8...Bg4" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 * C42w "Russian Game: Classical, Chigorin, 8...Bg4 9.c4" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c4 * C42x "Russian Game: Classical, Chigorin, 8...Bg4 9.c3" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 * C42x "Russian Game: Classical, Berger Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 f5 10.Nbd2 * C42x "Russian Game: Classical, Krause Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 f5 10.c4 * C42x "Russian Game: Classical, Maroczy Variation" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 f5 10.c4 Bh4 * C43a "Russian Game: Modern (Steinitz) Attack" 1.e4 e5 2.Nf3 Nf6 3.d4 * C43b "Russian Game: Modern Attack" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 * # 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.Bc4 is the Urusov Gambit, code C24. C43c "Russian Game: Modern Attack" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 * C43c "Russian Game: Modern Attack, Tal Gambit" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Bb5 * C43c "Russian Game: Modern Attack, Steinitz Variation" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qe2 * C43c "Russian Game: Modern Attack, Bardeleben Variation" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qe2 Nc5 6.Nxd4 Nc6 * C43d "Russian Game: Modern Attack, 3...exd4, Main Line" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qxd4 * C43e "Russian Game: Modern Attack, 3...exd4, Main Line, 7.Nc3" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qxd4 d5 6.exd6 Nxd6 7.Nc3 * C43e "Russian Game: Modern Attack, Pillsbury Variation" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qxd4 d5 6.exd6 Nxd6 7.Nc3 Nc6 8.Qf4 Bf5 * C43f "Russian Game: Modern Attack, 3...Nxe4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 * C43g "Russian Game: Modern Attack, 3...Nxe4 4.Bd3" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 * C43g "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 Nc6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 Nc6 * C43g "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 Nc6 5.d5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 Nc6 5.d5 * C43h "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 Nc6 5.Bxe4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 Nc6 5.Bxe4 * C43i "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 * C43i "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.dxe5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 * C43j "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.Nxe5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 * C43k "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.Nxe5 Nc6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nc6 * C43l "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.Nxe5 Be7" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Be7 * C43m "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.Nxe5 Bd6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Bd6 * C43n "Russian Game: Modern Attack, Trifunovic Variation" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Bd6 6.O-O O-O 7.c4 Bxe5 * C43o "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.Nxe5 Nd7" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 * C43p "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Qe2" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Qe2 * C43q "Russian Game: Modern Attack, 3...Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 * C43r "Russian Game: Modern Attack, 3...Nxe4, Main Line" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O * C43s "Russian Game: Modern Attack, 3...Nxe4, Main Line, 7...Qh4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O Qh4 * C43t "Russian Game: Modern Attack, 3...Nxe4, Main Line, 7...Bd6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O Bd6 * C43u "Russian Game: Modern Attack, 3...Nxe4, Main Line, 7...Bd6 8.c4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O Bd6 8.c4 * C44a "Open Game" 1.e4 e5 2.Nf3 Nc6 * C44a "Open Game: Irish (Chicago) Gambit" 1.e4 e5 2.Nf3 Nc6 3.Nxe5 * C44a "Open Game: Paschman Wing Gambit" 1.e4 e5 2.Nf3 Nc6 3.b4 * C44a "Open Game: Dresden Opening" 1.e4 e5 2.Nf3 Nc6 3.c4 * C44b "Open Game: Konstantinopolsky" 1.e4 e5 2.Nf3 Nc6 3.g3 * C44c "Open Game: Inverted Hungarian" 1.e4 e5 2.Nf3 Nc6 3.Be2 * C44c "Open Game: Tayler Opening" 1.e4 e5 2.Nf3 Nc6 3.Be2 Nf6 4.d4 * C44d "Open Game: Inverted Philidor" 1.e4 e5 2.Nf3 Nc6 3.d3 * C44d "Open Game: Inverted Philidor" 1.e4 e5 2.Nf3 Nc6 3.d3 d5 * C44e "Open Game: Inverted Philidor" 1.e4 e5 2.Nf3 Nc6 3.d3 Nf6 * C44f "Open Game: Inverted Philidor, 4.g3" 1.e4 e5 2.Nf3 Nc6 3.d3 Nf6 4.g3 * C44g "Open Game: Inverted Philidor, 4.Be2" 1.e4 e5 2.Nf3 Nc6 3.d3 Nf6 4.Be2 * C44h "Open Game: Inverted Hanham" 1.e4 e5 2.Nf3 Nc6 3.Be2 Nf6 4.d3 d5 5.Nbd2 * C44i "Ponziani Opening" 1.e4 e5 2.Nf3 Nc6 3.c3 * C44i "Ponziani: Reti Variation" 1.e4 e5 2.Nf3 Nc6 3.c3 Nge7 * C44i "Ponziani: Romanishin Variation" 1.e4 e5 2.Nf3 Nc6 3.c3 Be7 * C44j "Ponziani Countergambit" 1.e4 e5 2.Nf3 Nc6 3.c3 f5 * C44j "Ponziani Countergambit, Schmidt Attack" 1.e4 e5 2.Nf3 Nc6 3.c3 f5 4.d4 d6 5.d5 * C44j "Ponziani Countergambit, Cordel Variation" 1.e4 e5 2.Nf3 Nc6 3.c3 f5 4.d4 d6 5.d5 fxe4 6.Ng5 Nb8 7.Nxe4 Nf6 8.Bd3 Be7 * C44k "Ponziani: 3...d5" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 * C44l "Ponziani: 3...d5 4.Qa4" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 * C44l "Ponziani: Caro Variation" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 Bd7 * C44l "Ponziani: Leonhardt Variation" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 Nf6 * C44m "Ponziani: Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 f6 * C44n "Ponziani: 3...Nf6" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 * C44n "Ponziani: 3...Nf6" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 * C44o "Ponziani: 3...Nf6 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 exd4 * C44p "Ponziani: 3...Nf6 4.d4 Nxe4" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 Nxe4 * C44p "Ponziani: Fraser Defence" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 Nxe4 5.d5 Bc5 * C44q "Ponziani: 3...Nf6 4.d4 Nxe4 5.d5 Ne7" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 Nxe4 5.d5 Ne7 * C44r "Scotch Opening" 1.e4 e5 2.Nf3 Nc6 3.d4 * C44r "Scotch: Lolli Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 Nxd4 * C44r "Scotch: Cochrane Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 Nxd4 4.Nxe5 Ne6 5.Bc4 c6 6.O-O Nf6 7.Nxf7 * C44s "Scotch: 3...d6" 1.e4 e5 2.Nf3 Nc6 3.d4 d6 * C44t "Scotch: 3...exd4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 * C44t "Scotch: Relfsson Gambit" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bb5 * C44t "Scotch: Goring Gambit" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 * C44u "Scotch: Goring Gambit, 4...d5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 d5 * C44v "Scotch: Goring Gambit, 4...d3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 d3 * C44w "Scotch: Goring Gambit, 4...dxc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 * C44w "Scotch: Goring Gambit, 4...dxc3 5.Bc4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Bc4 * C44w "Scotch: Goring Gambit, 4...dxc3 5.Bc4 cxb2 6.Bxb2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Bc4 cxb2 6.Bxb2 * C44w "Scotch: Goring Gambit, 4...dxc3 5.Nxc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 * C44w "Scotch: Goring Gambit, 4...dxc3 5.Nxc3 Bb4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 * C44w "Scotch: Goring Gambit, Bardeleben Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 6.Bc4 Nf6 * C44w "Scotch: Goring Gambit, 4...dxc3 5.Nxc3 Bb4 6.Bc4 d6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 6.Bc4 d6 * C44w "Scotch: Goring Gambit, 4...dxc3 5.Nxc3 Bb4 6.Bc4 d6 7.O-O" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 6.Bc4 d6 7.O-O * C44x "Scotch Gambit" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 * C44x "Scotch Gambit: London Defence" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bb4+ * C44y "Scotch Gambit: 4...Bc5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 * C44y "Scotch Gambit: 5.Ng5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.Ng5 * C44y "Scotch Gambit: Vitzhum Attack" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.Ng5 Nh6 6.Qh5 * C44y "Scotch Gambit: 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.O-O * C44y "Scotch Gambit: Anderssen (Paulsen) Counterattack" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.O-O d6 6.c3 Bg4 * C44z "Scotch Gambit: 5.c3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.c3 * C44z "Scotch Gambit: 5.c3 d3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.c3 d3 * C45a "Scotch: 4.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 * C45b "Scotch: 4.Nxd4 Nxd4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nxd4 * C45b "Scotch: Ghulam Kassim Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nxd4 5.Qxd4 d6 6.Bd3 * C45c "Scotch: 4.Nxd4 Bb4+" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bb4+ * C45d "Scotch: 4.Nxd4 Qf6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qf6 * C45e "Scotch: Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 * C45e "Scotch: Steinitz, 5.Qd3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Qd3 * C45e "Scotch: Steinitz, Fraser Attack" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nf3 * C45f "Scotch: Steinitz, 5.Nc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nc3 * C45g "Scotch: Steinitz, 5.Nb5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 * C45g "Scotch: Steinitz, 5.Nb5 Qxe4+" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Qxe4+ * C45g "Scotch: Steinitz, 5.Nb5 Bc5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bc5 * C45g "Scotch: Steinitz, 5.Nb5 Bc5 6.Qf3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bc5 6.Qf3 * C45g "Scotch: Steinitz, 5.Nb5 Bb4+" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ * C45g "Scotch: Steinitz, Berger Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ 6.Nd2 Qxe4+ 7.Be2 Qxg2 8.Bf3 Qh3 9.Nxc7+ Kd8 10.Nxa8 Nf6 11.a3 * C45g "Scotch: Steinitz, 5.Nb5 Bb4+ 6.Bd2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ 6.Bd2 * C45g "Scotch: Steinitz, Rosenthal Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ 6.Bd2 Qxe4+ 7.Be2 Kd8 8.O-O Bxd2 9.Nxd2 Qg6 * C45h "Scotch: 4.Nxd4 Nf6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 * C45h "Scotch: 4.Nxd4 Nf6 5.Nxc6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 * C45h "Scotch: Tartakower Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.Nd2 * C45i "Scotch: 4.Nxd4 Nf6 5.Nxc6 bxc6 6.Bd3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.Bd3 * C45j "Scotch: Mieses Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 * C45j "Scotch: Mieses, 6...Qe7" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 * C45j "Scotch: Mieses, 6...Qe7 7.Qe2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 * C45k "Scotch: Mieses, 8.c4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 Nd5 8.c4 * C45l "Scotch: Mieses, 8.c4 Ba6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 Nd5 8.c4 Ba6 * C45m "Scotch: Mieses, 8.c4 Ba6 9.b3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 Nd5 8.c4 Ba6 9.b3 * C45n "Scotch: 4.Nxd4 Bc5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 * C45o "Scotch: 4.Nxd4 Bc5 5.Nb3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 * C45o "Scotch: Romanishin Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb4+ * C45p "Scotch: 4.Nxd4 Bc5 5.Nb3 Bb6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 * C45p "Scotch: 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 * C45q "Scotch: 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 * C45q "Scotch: 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3 * C45q "Scotch: Geller Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3 Nf6 * C45q "Scotch: 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3 Qf6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3 Qf6 * C45r "Scotch: 4.Nxd4 Bc5 5.Nxc6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nxc6 * C45s "Scotch: 4.Nxd4 Bc5 5.Nxc6 Qf6 6.Qd2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nxc6 Qf6 6.Qd2 * C45t "Scotch: 4.Nxd4 Bc5 5.Nxc6 Qf6 6.Qd2 dxc6 7.Nc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nxc6 Qf6 6.Qd2 dxc6 7.Nc3 * C45u "Scotch: 4.Nxd4 Bc5 5.Be3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 * C45v "Scotch: Blumenfeld Attack" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.Nb5 * C45v "Scotch: 4.Nxd4 Bc5 5.Be3 Qf6 6.c3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 * C45w "Scotch: 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 * C45w "Scotch: Blackburne Attack" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Qd2 * C45w "Scotch: Meitner Variation" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Nc2 * C45w "Scotch: Paulsen Attack" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bb5 * C45w "Scotch: Paulsen, Gunsberg Defence" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bb5 Nd8 * C45x "Scotch: 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bc4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bc4 * C45y "Scotch: 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bc4 Ne5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bc4 Ne5 * C46a "Three Knights Game" 1.e4 e5 2.Nf3 Nc6 3.Nc3 * C46b "Three Knights: Winawer Defence" 1.e4 e5 2.Nf3 Nc6 3.Nc3 f5 * C46c "Three Knights: 3...d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 d6 * C46d "Three Knights: 3...d6 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 d6 4.d4 * C46e "Three Knights: 3...Bc5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bc5 * C46e "Three Knights: 3...Bc5 4.Bb5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bc5 4.Bb5 * C46f "Three Knights: 3...Bc5 4.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bc5 4.Nxe5 * C46g "Three Knights: 3...Bb4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bb4 * C46h "Three Knights: 3...Bb4 4.Nd5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bb4 4.Nd5 * C46h "Three Knights: Schlechter Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bb4 4.Nd5 Nf6 * C46i "Three Knights: Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 * C46j "Three Knights: Steinitz, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 * C46k "Three Knights: Steinitz, Rosenthal Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nd5 * C46l "Three Knights: Steinitz, 4.d4 exd4 5.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 * C46l "Three Knights: Steinitz, 4.d4 exd4 5.Nxd4 Bg7" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 Bg7 * C46l "Three Knights: Steinitz, 4.d4 exd4 5.Nxd4 Bg7 6.Be3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 Bg7 6.Be3 * C46m "Three Knights: Steinitz, 4.d4 exd4 5.Nxd4 Bg7 6.Be3 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 Bg7 6.Be3 Nf6 * C47a "Four Knights Game" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 * C47a "Four Knights: Halloween Gambit" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Nxe5 * C47b "Four Knights: Gunsberg Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.a3 * C47c "Four Knights: Van der Wiel Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Be2 * C47d "Four Knights: Italian Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bc4 * C47e "Four Knights: Glek Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 * C47f "Four Knights: Glek, 4...d5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 d5 * C47g "Four Knights: Glek, 4...Bc5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 Bc5 * C47g "Four Knights: Glek, 4...Bc5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 Bc5 5.Bg2 * C47h "Four Knights: Glek, Main Line" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 Bc5 5.Bg2 d6 6.d3 a6 * C47i "Four Knights: Scotch Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 * C47i "Four Knights: Scotch, 4...d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 d6 * C47j "Four Knights: Scotch, Bogoljubow" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 Bb4 * C47j "Four Knights: Scotch, Bogoljubow, 5.d5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 Bb4 5.d5 * C47k "Four Knights: Scotch, Krause Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 Bb4 5.Nxe5 * C47l "Four Knights: Scotch, 4...exd4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 * C47l "Four Knights: Belgrade Gambit" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 * C47l "Four Knights: Belgrade Gambit, 5...Nb4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nb4 * C47l "Four Knights: Belgrade Gambit, 5...Nxd5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxd5 * C47m "Four Knights: Belgrade Gambit, 5...Nxe4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxe4 * C47m "Four Knights: Belgrade Gambit, 5...Nxe4 6.Qe2 (Old Line)" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxe4 6.Qe2 * C47m "Four Knights: Belgrade Gambit, 5...Nxe4 6.Bc4 (Modern Line)" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxe4 6.Bc4 * C47n "Four Knights: Belgrade Gambit, 5...Be7" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Be7 * C47o "Four Knights: Scotch, 4...exd4 5.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 * C47p "Four Knights: Scotch, 4...exd4 5.Nxd4 d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 d6 * C47q "Four Knights: Scotch, 4...exd4 5.Nxd4 Bc5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bc5 * C47r "Four Knights: Scotch, 4...exd4 5.Nxd4 Bb4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 * C47s "Four Knights: Scotch, 4...exd4 5.Nxd4 Bb4 6.Nxc6 bxc6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 * C47s "Four Knights: Scotch, Main Line" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 * C47t "Four Knights: Scotch, Main Line, 7...d5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 * C47t "Four Knights: Scotch, Main Line, 7...d5 8.exd5 cxd5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 * C47u "Four Knights: Scotch, Main Line, 8.exd5 cxd5 9.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O * C47v "Four Knights: Scotch, Main Line, 9.O-O O-O 10.Bg5 c6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 * C47w "Four Knights: Scotch, Main Line, 10.Bg5 c6 11.Na4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 11.Na4 * C47x "Four Knights: Scotch, Main Line, 10.Bg5 c6 11.Qf3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 11.Qf3 * C47y "Four Knights: Scotch, Main Line, 10.Bg5 c6 11.Qf3 Be7" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 11.Qf3 Be7 * C48a "Four Knights: Spanish Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 * C48a "Four Knights: Spanish, Ranken Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 a6 5.Bxc6 * C48a "Four Knights: Spanish, Spielmann Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 a6 5.Bxc6 dxc6 6.Nxe5 Nxe4 7.Nxe4 Qd4 8.O-O Qxe5 9.Re1 Be6 10.d4 Qd5 * C48b "Four Knights: Spanish, 4...d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 d6 * C48c "Four Knights: Spanish, 4...d6 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 d6 5.d4 * C48d "Four Knights: Spanish, Classical Defence" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 * C48e "Four Knights: Spanish, Classical Defence, 5.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.Nxe5 * C48f "Four Knights: Spanish, Classical Defence, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.O-O * C48f "Four Knights: Spanish, Classical, Bardeleben Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.O-O O-O 6.Nxe5 Nxe5 7.d4 Bd6 8.f4 Nc6 9.e5 Bb4 * C48f "Four Knights: Spanish, Classical, Marshall Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.O-O O-O 6.Nxe5 Nd4 * C48g "Four Knights: Rubinstein Countergambit" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 * C48g "Four Knights: Rubinstein, 5.Be2" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Be2 * C48h "Four Knights: Rubinstein, 5.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxe5 * C48h "Four Knights: Rubinstein, Bogoljubow Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxe5 Qe7 6.f4 * C48i "Four Knights: Rubinstein, Henneberger Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.O-O * C48j "Four Knights: Rubinstein, 5.Bc4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Bc4 * C48k "Four Knights: Rubinstein, Exchange Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 * C48k "Four Knights: Rubinstein, Exchange Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 exd4 6.e5 dxc3 7.exf6 * C48l "Four Knights: Rubinstein, Exchange Variation, 8...Bc5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 exd4 6.e5 dxc3 7.exf6 Qxf6 8.dxc3 Bc5 * C48m "Four Knights: Rubinstein, Exchange Variation, 8...Qe5+" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 exd4 6.e5 dxc3 7.exf6 Qxf6 8.dxc3 Qe5+ * C48n "Four Knights: Rubinstein, 5.Ba4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 * C48n "Four Knights: Rubinstein, 5.Ba4 Nxf3+" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 Nxf3+ * C48o "Four Knights: Rubinstein, 5.Ba4 c6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 c6 * C48p "Four Knights: Rubinstein, 5.Ba4 c6 6.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 c6 6.Nxe5 * C48q "Four Knights: Rubinstein, 5.Ba4 Bc5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 Bc5 * C48r "Four Knights: Rubinstein, 5.Ba4 Bc5 6.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 Bc5 6.Nxe5 * C49a "Four Knights: 4.Bb5 Bb4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 * C49b "Four Knights: 4.Bb5 Bb4 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O * C49c "Four Knights: 4.Bb5 Bb4 5.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O * C49c "Four Knights: Gunsberg Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.Nd5 Nxd5 7.exd5 e4 * C49d "Four Knights: Nimzowitsch (Paulsen) Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.Bxc6 * C49e "Four Knights: Double Bishops, 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 * C49f "Four Knights: Double Bishops, 6.d3 Bxc3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 Bxc3 * C49f "Four Knights: Janowski Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 Bxc3 7.bxc3 d6 8.Re1 * C49f "Four Knights: Svenonius Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 Bxc3 7.bxc3 d5 * C49g "Four Knights: Symmetrical Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 * C49h "Four Knights: Symmetrical, Maroczy System" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Ne2 * C49i "Four Knights: Symmetrical, 7.Bg5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 * C49j "Four Knights: Symmetrical, Tarrasch Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Be6 * C49k "Four Knights: Symmetrical, Pillsbury Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Ne7 * C49k "Four Knights: Symmetrical, Blake Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Ne7 8.Nh4 c6 9.Bc4 d5 10.Bb3 Qd6 * C49l "Four Knights: Symmetrical, 7.Bg5 Bxc3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 * C49l "Four Knights: Symmetrical, 7.Bg5 Bxc3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 * C49m "Four Knights: Symmetrical, 7.Bg5 Bxc3 8.bxc3 h6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 h6 * C49n "Four Knights: Symmetrical, Metger unpin" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 * C49n "Four Knights: Symmetrical, Metger, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 * C49o "Four Knights: Symmetrical, Metger, Capablanca Variation" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Bg4 * C49p "Four Knights: Symmetrical, Metger, 10.d4 Ne6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Ne6 * C49q "Four Knights: Symmetrical, Metger, 10.d4 Ne6 11.Bc1 Rd8" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Ne6 11.Bc1 Rd8 * C49r "Four Knights: Symmetrical, Metger, 10.d4 Ne6 11.Bc1 c5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Ne6 11.Bc1 c5 * C50a "Italian Game" 1.e4 e5 2.Nf3 Nc6 3.Bc4 * C50b "Italian: Rousseau Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 f5 * C50c "Italian: Blackburne-Shilling Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nd4 * C50d "Italian: 3...d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 d6 * C50e "Italian: Hungarian Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 * C50f "Italian: Hungarian Defence, 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 4.d4 exd4 * C50f "Italian: Hungarian Defence, Tartakower Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 4.d4 exd4 5.c3 Nf6 6.e5 Ne4 * C50g "Italian: Hungarian Defence, 4.d4 d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 4.d4 d6 * C50h "Giuoco Piano" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 * C50h "Giuoco Piano: Jerome Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.Bxf7+ * C50h "Giuoco Piano: Rosentreter Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d4 * C50i "Giuoco Piano: Three Knights Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.Nc3 * C50j "Giuoco Piano: Four Knights Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.Nc3 Nf6 * C50k "Giuoco Piano: 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.O-O * C50l "Giuoco Piano: 4.O-O Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.O-O Nf6 * C50m "Giuoco Piano: 4.O-O Nf6 5.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.O-O Nf6 5.Nc3 * C50n "Giuoco Pianissimo: 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 * C50n "Giuoco Pianissimo: Lucchini Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 f5 * C50n "Giuoco Pianissimo: Dubois Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 f5 5.Ng5 f4 * C50o "Giuoco Pianissimo: 4.d3 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 * C50p "Giuoco Pianissimo: 4.d3 Nf6 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.O-O * C50q "Giuoco Pianissimo: 4.d3 Nf6 5.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.O-O d6 * C50r "Giuoco Pianissimo: Italian Four Knights" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 * C50s "Giuoco Pianissimo: Italian Four Knights, 5...d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 * C50t "Giuoco Pianissimo: Italian Four Knights, 5...d6 6.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 6.Be3 * C50u "Giuoco Pianissimo: Canal Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 6.Bg5 * C50v "Giuoco Pianissimo: Canal, 6...h6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 6.Bg5 h6 * C51 "Evans Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 * C51 "Evans Gambit Declined: 4...Be7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Be7 * C51 "Evans Gambit: Hein Countergambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 d5 * C51 "Evans Gambit Declined" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 * C51 "Evans Gambit Declined, Cordel Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.Bb2 * C51 "Evans Gambit Declined, 5.b5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 * C51 "Evans Gambit Declined, Lange Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Nh6 * C51 "Evans Gambit Declined, Pavlov Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Nh6 7.d4 d6 8.Bxh6 dxe5 9.Bxg7 Rg8 10.Bxf7+ Kxf7 11.Bxe5 Qg5 12.Nd2 * C51 "Evans Gambit Declined, Hirschbach Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Qg5 * C51 "Evans Gambit Declined, Vasquez Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Qg5 7.Bxf7+ Ke7 8.Qh5 * C51 "Evans Gambit Declined, Hicken Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Qg5 7.Qf3 Qxe5 8.Qxf7+ Kd8 9.Bb2 * C51 "Evans Gambit Declined, 5.a4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.a4 * C51 "Evans Gambit Declined, Showalter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.a4 a6 6.Nc3 * C51 "Evans Gambit Accepted" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 * C51 "Evans Gambit Accepted, 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 * C51 "Evans Gambit: Mayet Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bf8 * C51 "Evans Gambit: Stone-Ware Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bd6 * C51 "Evans Gambit: Anderssen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 * C51 "Evans Gambit: Anderssen, 6.Qb3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 6.Qb3 * C51 "Evans Gambit: Anderssen, 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 6.d4 * C51 "Evans Gambit: Cordel Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 6.d4 Na5 * C51 "Evans Gambit: Normal Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 * C51 "Evans Gambit: Anderssen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.d5 * C51 "Evans Gambit: Ulvestad Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.d5 Na5 10.Bb2 * C51 "Evans Gambit: Paulsen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.d5 Na5 10.Bb2 Ne7 * C51 "Evans Gambit: Morphy Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 * C51 "Evans Gambit: Goering Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Na5 10.Bg5 * C51 "Evans Gambit: Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Na5 10.Bg5 f6 11.Be3 * C51 "Evans Gambit: Normal Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Bg4 * C51 "Evans Gambit: Fraser Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Bg4 10.Qa4 * C51 "Evans Gambit: Fraser-Mortimer Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Bg4 10.Qa4 Bd7 11.Qb3 Na5 12.Bxf7+ Kf8 13.Qc2 * C52 "Evans Gambit: 5...Ba5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 * C52 "Evans Gambit: 5...Ba5 6.Qb3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.Qb3 * C52 "Evans Gambit: 5...Ba5 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O * C52 "Evans Gambit: 5...Ba5 6.O-O Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O Nf6 * C52 "Evans Gambit: Richardson Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O Nf6 7.d4 O-O 8.Nxe5 * C52 "Evans Gambit: 5...Ba5 6.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 * C52 "Evans Gambit: 5...Ba5 6.O-O d6 7.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 * C52 "Evans Gambit: Waller Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 exd4 8.Qb3 * C52 "Evans Gambit: Sanders-Alapin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 Bd7 * C52 "Evans Gambit: Alapin-Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 Bg4 * C52 "Evans Gambit: Lasker's Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 Bb6 * C52 "Evans Gambit: 5...Ba5 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 * C52 "Evans Gambit: Leonhardt Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 b5 * C52 "Evans Gambit: 5...Ba5 6.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 * C52 "Evans Gambit: Compromised Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 7.O-O dxc3 * C52 "Evans Gambit: Compromised Defence, Paulsen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 7.O-O dxc3 8.Qb3 Qf6 9.e5 Qg6 10.Nxc3 Nge7 11.Ba3 * C52 "Evans Gambit: Compromised Defence, Potter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 7.O-O dxc3 8.Qb3 Qf6 9.e5 Qg6 10.Nxc3 Nge7 11.Rd1 * C52 "Evans Gambit: 5...Ba5 6.d4 d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 * C52 "Evans Gambit: Sokolsky Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Bg5 * C52 "Evans Gambit: Tartakower Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 * C52 "Evans Gambit: Tartakower Attack, 7...Qd7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 * C52 "Evans Gambit: Tartakower Attack, 8.dxe5 Bb6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 8.dxe5 Bb6 * C52 "Evans Gambit: Tartakower Attack, 8.dxe5 dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 8.dxe5 dxe5 * C52 "Evans Gambit: Tartakower, Levenfish Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 8.dxe5 dxe5 9.O-O Bb6 10.Ba3 Na5 11.Nxe5 * C53 "Giuoco Piano: 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 * C53 "Giuoco Piano: LaBourdonnais Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 d6 5.d4 exd4 6.cxd4 Bb6 * C53 "Giuoco Piano: Close Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 * C53 "Giuoco Piano: Centre-Holding Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 * C53 "Giuoco Piano: Tarrasch Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 6.O-O Nf6 7.a4 a6 8.Re1 d6 9.h3 * C53 "Giuoco Piano: Mestel Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 6.Bg5 * C53 "Giuoco Piano: Eisinger Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 6.d5 Nb8 7.d6 * C54a "Giuoco Piano: 4.c3 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 * C54b "Giuoco Piano: Albin Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.O-O * C54c "Giuoco Piano: Bird's Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.b4 * C54c "Giuoco Piano: Bird's Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.b4 Bb6 6.a4 * C54d "Giuoco Pianissimo: 5.d3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 * C54e "Giuoco Pianissimo: 5.d3 a6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 a6 * C54f "Giuoco Pianissimo: 5.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 * C54g "Giuoco Pianissimo: 5.d3 d6 6.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.Nbd2 * C54h "Giuoco Pianissimo: 5.d3 d6 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.O-O * C54i "Giuoco Pianissimo: 5.d3 d6 6.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.O-O O-O * C54j "Giuoco Piano: 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 * C54k "Giuoco Piano: 6.e5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 * C54k "Giuoco Piano: Ghulam Kassim Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 Ne4 7.Bd5 Nxf2 8.Kxf2 dxc3+ 9.Kg3 * C54k "Giuoco Piano: 6.e5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 d5 * C54k "Giuoco Piano: Anderssen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 d5 7.Bb5 Ne4 8.cxd4 Bb4+ * C54l "Giuoco Piano: 6.cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 * C54l "Giuoco Piano: 6.cxd4 Bb4+" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ * C54l "Giuoco Piano: Krakow Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Kf1 * C54m "Giuoco Piano: 6.cxd4 Bb4+ 7.Bd2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Bd2 * C54m "Giuoco Piano: Krause Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Bd2 Nxe4 8.Bxb4 Nxb4 9.Bxf7+ Kxf7 10.Qb3+ d5 11.Ne5+ Kf6 12.f3 * C54n "Giuoco Piano: Greco Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 * C54n "Giuoco Piano: Greco Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Nxc3 * C54n "Giuoco Piano: Bernstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Nxc3 9.bxc3 Bxc3 10.Qb3 d5 * C54n "Giuoco Piano: Aitken Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Nxc3 9.bxc3 Bxc3 10.Ba3 * C54o "Giuoco Piano: Greco Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 * C54o "Giuoco Piano: Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.bxc3 d5 10.Ba3 * C54o "Giuoco Piano: Moeller (Therkatz) Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.d5 * C54o "Giuoco Piano: Moeller-Herzog Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.d5 Bf6 10.Re1 Ne7 11.Rxe4 d6 12.Bg5 Bxg5 13.Nxg5 O-O 14.Nxh7 * C54o "Giuoco Piano: Moeller, Bayonet Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.d5 Bf6 10.Re1 Ne7 11.Rxe4 d6 12.g4 * C55a "Two Knights Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 * C55b "Two Knights: Deutz Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.O-O Bc5 5.d4 * C55b "Two Knights: 4.O-O Gambit, Rosentreter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.O-O Bc5 5.d4 Bxd4 6.Nxd4 Nxd4 7.Bg5 h6 8.Bh4 g5 9.f4 * C55b "Two Knights: 4.O-O Gambit, Holzhausen Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.O-O Bc5 5.d4 Bxd4 6.Nxd4 Nxd4 7.Bg5 d6 8.f4 Qe7 9.fxe5 dxe5 10.Nc3 * C55c "Two Knights: 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 * C55d "Two Knights: 4.d3 h6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 h6 * C55e "Two Knights: 4.d3 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 * C55e "Two Knights: 4.d3 Be7 5.Bb3 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.Bb3 O-O * C55f "Two Knights: 4.d3 Be7 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.c3 * C55g "Two Knights: 4.d3 Be7 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O * C55h "Two Knights: 4.d3 Be7 5.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O * C55i "Two Knights: 4.d3 Be7 5.O-O O-O 6.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O 6.Bb3 * C55j "Two Knights: 4.d3 Be7 5.O-O O-O 6.Bb3 d6 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O 6.Bb3 d6 7.c3 * C55k "Two Knights: 4.d3 Be7 5.O-O O-O 6.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O 6.Re1 * C55l "Two Knights: 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 * C55l "Two Knights: 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 * C55m "Two Knights: 4.d4 exd4 5.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.Nxd4 * C55n "Two Knights: Perreux Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.Ng5 * C55o "Two Knights: Modern Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 * C55p "Two Knights: Modern, 5.e5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 d5 * C55q "Two Knights: Modern, Main Line" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 d5 6.Bb5 Ne4 7.Nxd4 Bd7 * C55r "Two Knights: Modern, Main Line, 8.Bxc6 bxc6 9.O-O Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 d5 6.Bb5 Ne4 7.Nxd4 Bd7 8.Bxc6 bxc6 9.O-O Bc5 * C55s "Two Knights: 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O * C55s "Two Knights: 5.O-O Be7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Be7 * C55t "Two Knights: 5.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O d6 * C55u "Two Knights: Max Lange Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 * C55v "Two Knights: Max Lange, Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 Ng4 * C55v "Two Knights: Max Lange, Krause Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 Ng4 7.c3 * C55w "Two Knights: Max Lange, 6.e5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 * C55w "Two Knights: Max Lange, Schlechter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.fxg7 * C55x "Two Knights: Max Lange, Berger Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 Qd5 10.Nc3 Qf5 11.g4 Qg6 12.Nce4 Bb6 13.f4 O-O-O * C55x "Two Knights: Max Lange, Marshall Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 Qd5 10.Nc3 Qf5 11.Nce4 * C55x "Two Knights: Max Lange, Rubinstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 Qd5 10.Nc3 Qf5 11.Nce4 Bf8 * C55x "Two Knights: Max Lange, Loman Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 g6 * C56a "Two Knights: Classical" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 * C56a "Two Knights: Classical, Nakhmanson Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Nc3 * C56b "Two Knights: Classical, 6.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 * C56b "Two Knights: Classical, 6.Re1 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 * C56c "Two Knights: Classical, Canal Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Nc3 * C56d "Two Knights: Classical, 7.Bxd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 * C56d "Two Knights: Classical, 7.Bxd5 Qxd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 * C56d "Two Knights: Classical, 8.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 * C56e "Two Knights: Classical, 8.Nc3 Qd8" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qd8 * C56f "Two Knights: Classical, 8.Nc3 Qh5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qh5 * C56g "Two Knights: Classical, 8.Nc3 Qh5 9.Nxe4 Be6 10.Bg5 Bd6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qh5 9.Nxe4 Be6 10.Bg5 Bd6 * C56h "Two Knights: Classical, Moller Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 * C56h "Two Knights: Classical, Moller, 9.Nxe4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 * C56h "Two Knights: Classical, Moller, 9.Nxe4 Be6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 * C56i "Two Knights: Classical, Moller, 10.Bg5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bg5 * C56i "Two Knights: Classical, Yurdansky Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bg5 h6 11.Bh4 g5 12.Nf6+ Ke7 13.b4 * C56j "Two Knights: Classical, Moller, 10.Neg5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Neg5 * C56k "Two Knights: Classical, Moller, 10.Neg5 O-O-O 11.Nxe6 fxe6 12.Rxe6 Bd6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Neg5 O-O-O 11.Nxe6 fxe6 12.Rxe6 Bd6 * C56l "Two Knights: Classical, Moller, 10.Bd2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 * C56m "Two Knights: Classical, Moller, 10.Bd2 Qf5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 Qf5 * C56n "Two Knights: Classical, Moller, 10.Bd2 Qd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 Qd5 * C56o "Two Knights: Classical, Moller, 10.Bd2 Bb4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 Bb4 * C57a "Two Knights: 4.Ng5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 * C57a "Two Knights: Traxler (Wilkes-Barre) Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 * C57a "Two Knights: Traxler, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.d4 * C57b "Two Knights: Traxler, 5.Nxf7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 * C57b "Two Knights: Traxler, 5.Nxf7 & 6.Kxf2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kxf2 * C57c "Two Knights: Traxler, 5.Nxf7 & 6.Kf1" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 * C57c "Two Knights: Traxler, 5.Nxf7 & 6.Kf1, Beyer's 8...Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Bg4 * C57c "Two Knights: Traxler, 5.Nxf7 & 6.Kf1, 8...Nd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Nd4 * C57c "Two Knights: Traxler, 5.Nxf7 & 6.Kf1, Palkin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Nd4 9.h3 * C57c "Two Knights: Traxler, 5.Nxf7 & 6.Kf1, Menovsky Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Nd4 9.d6 * C57d "Two Knights: Traxler, 5.Bxf7+" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Bxf7+ * C57d "Two Knights: Traxler, 5.Bxf7+ Ke7 6.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Bxf7+ Ke7 6.Bb3 * C57d "Two Knights: Traxler, Chigorin/Pithart Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Bxf7+ Ke7 6.Bd5 * C57e "Two Knights: 4.Ng5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 * C57e "Two Knights: Kloss Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nb4 * C57e "Two Knights: 4.Ng5 d5 5.exd5 Nxd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 * C57f "Two Knights: Lolli Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.d4 * C57f "Two Knights: Lolli Attack, Pinkus Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.d4 Bb4+ * C57g "Two Knights: Fegatello (Fried Liver) Attack" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 * C57g "Two Knights: Fegatello, Leonhardt Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 Kxf7 7.Qf3+ Ke6 8.Nc3 Nb4 9.Qe4 c6 10.a3 Na6 11.d4 Nc7 * C57g "Two Knights: Fegatello, Polerio Defence" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 Kxf7 7.Qf3+ Ke6 8.Nc3 Ne7 * C57h "Two Knights: Ulvestad Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 b5 * C57i "Two Knights: Fritz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 * C57i "Two Knights: Fritz Variation, Main Line" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 * C57j "Two Knights: Fritz, 8.Nxf7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Nxf7 * C57j "Two Knights: Fritz, 8.cxd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.cxd4 * C57j "Two Knights: Fritz, Paoli's 8.h4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.h4 * C57k "Two Knights: Fritz, Gruber Variation (8.Ne4)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Ne4 * C57l "Two Knights: Fritz, Radchenko Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Ne4 Qh4 9.Ng3 Bb7 * C57m "Two Knights: Fritz, Berliner Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Ne4 Qh4 9.Ng3 Bg4 10.f3 e4 * C58a "Two Knights: Morphy Variation (5...Na5)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 * C58b "Two Knights: Morphy, Kieseritsky Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 * C58c "Two Knights: Morphy, Kieseritsky Variation, 6...h6 7.Nf3 e4 8.Qe2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 h6 7.Nf3 e4 8.Qe2 * C58c "Two Knights: Morphy, Yankovich Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 h6 7.Nf3 e4 8.Qe2 Nxc4 9.dxc4 Bc5 10.Nfd2 * C58c "Two Knights: Morphy, Maroczy Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 h6 7.Nf3 e4 8.Qe2 Nxc4 9.dxc4 Be7 * C58d "Two Knights: Morphy, Polerio (6.Bb5+)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ * C58d "Two Knights: Morphy, Polerio, 6...Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ Bd7 * C58e "Two Knights: Morphy, Polerio, 6...c6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 * C58f "Two Knights: Morphy, Bogoljubow Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 * C58f "Two Knights: Morphy, Blackburne Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 cxb5 * C58f "Two Knights: Morphy, Paoli Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 Qc7 9.Bd3 * C58g "Two Knights: Morphy, Colman Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 Rb8 * C58h "Two Knights: Morphy, 8.Be2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 * C59a "Two Knights: Morphy, 8.Be2 h6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 * C59b "Two Knights: Morphy, Steinitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nh3 * C59c "Two Knights: Morphy, Main Line 9.Nf3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 * C59c "Two Knights: Morphy, Main Line 9.Nf3 e4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 * C59c "Two Knights: Morphy, Main Line 9.Nf3 e4 10.Ne5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 * C59d "Two Knights: Morphy, Steiner Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bc5 * C59e "Two Knights: Morphy, Goering Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Qc7 * C59f "Two Knights: Morphy, Geller Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Qd4 * C59g "Two Knights: Main Line 10...Bd6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 * C59h "Two Knights: Main Line, 11.f4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.f4 * C59i "Two Knights: Main Line, 11.f4 exf3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.f4 exf3 * C59j "Two Knights: Main Line, 11.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 * C59j "Two Knights: Main Line, 11.d4 Qc7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 Qc7 * C59j "Two Knights: Main Line, Knorre Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 Qc7 12.Bd2 * C59k "Two Knights: Main Line, 11.d4 exd3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 exd3 * C59k "Two Knights: Main Line, 11.d4 exd3 12.Nxd3 Qc7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 exd3 12.Nxd3 Qc7 * C59l "Two Knights: Main Line, 11.d4, Honfi Variation" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 exd3 12.Nxd3 Qc7 13.b3 * C60a "Spanish (Ruy Lopez)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 * C60a "Spanish: Spanish Countergambit" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d5 * C60b "Spanish: 3...a5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a5 * C60c "Spanish: Nuernberg Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f6 * C60d "Spanish: Pollock Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Na5 * C60e "Spanish: Lucena Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Be7 * C60f "Spanish: Vinogradov Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Qe7 * C60g "Spanish: Brentano Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g5 * C60h "Spanish: Alapin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bb4 * C60i "Spanish: Alapin, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bb4 4.c3 * C60j "Spanish: Fianchetto (Smyslov) Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 * C60k "Spanish: Fianchetto, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.O-O * C60l "Spanish: Fianchetto, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.d4 * C60m "Spanish: Fianchetto, 4.d4 exd4 5.Bg5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.d4 exd4 5.Bg5 * C60n "Spanish: Fianchetto, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.c3 * C60o "Spanish: Cozio Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 * C60p "Spanish: Cozio, 4.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.Nc3 * C60q "Spanish: Cozio, Paulsen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.Nc3 g6 * C60r "Spanish: Cozio, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.c3 * C60s "Spanish: Cozio, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.O-O * C60t "Spanish: Cozio, 4.O-O g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.O-O g6 * C60u "Spanish: Cozio, 4.O-O g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.O-O g6 5.c3 * C61a "Spanish: Bird's Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 * C61b "Spanish: Bird's, 4.Bc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Bc4 * C61c "Spanish: Bird's, 4.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 * C61c "Spanish: Bird's, 4.Nxd4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 * C61d "Spanish: Bird's, 5.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.d3 * C61e "Spanish: Bird's, 5.Bc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.Bc4 * C61f "Spanish: Bird's, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O * C61f "Spanish: Bird's, Paulsen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Ne7 * C61g "Spanish: Bird's, 5.O-O c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O c6 * C61h "Spanish: Bird's, 5.O-O c6 6.Bc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O c6 6.Bc4 * C61i "Spanish: Bird's, 5.O-O Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 * C61j "Spanish: Bird's, 5.O-O Bc5 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 * C61k "Spanish: Bird's, 5.O-O Bc5 6.d3 c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 c6 * C61l "Spanish: Bird's, 5.O-O Bc5 6.d3 c6 7.Bc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 c6 7.Bc4 * C61m "Spanish: Bird's, 5.O-O Bc5 6.d3 c6 7.Bc4 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 c6 7.Bc4 d5 * C62 "Spanish: Old Steinitz" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 * C62 "Spanish: Old Steinitz, 4.Bxc6+" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.Bxc6+ * C62 "Spanish: Old Steinitz, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.O-O * C62 "Spanish: Old Steinitz, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.c3 * C62 "Spanish: Old Steinitz, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 * C62 "Spanish: Old Steinitz, 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 exd4 * C62 "Spanish: Old Steinitz, 4.d4 exd4 5.Qxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 exd4 5.Qxd4 * C62 "Spanish: Old Steinitz, 4.d4 exd4 5.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 exd4 5.Nxd4 * C62 "Spanish: Old Steinitz, 4.d4 Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 * C62 "Spanish: Old Steinitz, 4.d4 Bd7 5.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.Nc3 * C62 "Spanish: Old Steinitz, Nimzowitsch Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.Nc3 Nf6 6.Bxc6 * C62 "Spanish: Old Steinitz, Semi-Duras Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.c4 * C63a "Spanish: Schliemann (Jaenisch)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 * C63a "Spanish: Schliemann, 4.Qe2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Qe2 * C63b "Spanish: Schliemann, 4.exf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.exf5 * C63c "Spanish: Schliemann, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d4 * C63d "Spanish: Schliemann, 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d3 * C63e "Spanish: Schliemann, 4.d3 fxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d3 fxe4 * C63f "Spanish: Schliemann, 4.d3 fxe4 5.dxe4 Nf6 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d3 fxe4 5.dxe4 Nf6 6.O-O * C63g "Spanish: Schliemann, 4.Bxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Bxc6 * C63h "Spanish: Schliemann, 4.Bxc6 dxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Bxc6 dxc6 * C63i "Spanish: Schliemann, 4.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 * C63j "Spanish: Schliemann, 4.Nc3 Nd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nd4 * C63k "Spanish: Schliemann, 4.Nc3 Nd4 5.Ba4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nd4 5.Ba4 * C63l "Spanish: Schliemann, 4.Nc3 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nf6 * C63m "Spanish: Schliemann, 4.Nc3 Nf6 5.exf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nf6 5.exf5 * C63n "Spanish: Schliemann, 4.Nc3 fxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 * C63o "Spanish: Schliemann, 4.Nc3 fxe4 5.Nxe4 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 Nf6 * C63p "Spanish: Schliemann, 4.Nc3 fxe4 5.Nxe4 Nf6 6.Qe2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 Nf6 6.Qe2 * C63q "Spanish: Schliemann, 4.Nc3 fxe4 5.Nxe4 Nf6 6.Nxf6+" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 Nf6 6.Nxf6+ * C63r "Spanish: Schliemann, 4.Nc3 fxe4 5.Nxe4 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 * C63s "Spanish: Schliemann, 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 * C63t "Spanish: Schliemann, 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 dxe4 7.Nxc6 Qd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 dxe4 7.Nxc6 Qd5 * C63u "Spanish: Schliemann, 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 dxe4 7.Nxc6 Qg5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 dxe4 7.Nxc6 Qg5 * C64a "Spanish: Classical Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 * C64a "Spanish: Classical, Exchange" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.Bxc6 * C64b "Spanish: Classical, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 * C64b "Spanish: Classical, Boden Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Qe7 * C64c "Spanish: Classical, Charousek Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Bb6 * C64d "Spanish: Classical, 4.c3 Nge7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nge7 * C64e "Spanish: Classical, 4.c3 Qf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Qf6 * C64f "Spanish: Classical, Cordel Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 f5 * C64g "Spanish: Classical, Cordel Gambit, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 f5 5.d4 * C64h "Spanish: Classical, 4.c3 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nf6 * C64i "Spanish: Classical, 4.c3 Nf6 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nf6 5.d4 * C64j "Spanish: Classical, 4.c3 Nf6 5.d4 Bb6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nf6 5.d4 Bb6 * C64k "Spanish: Classical, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O * C64l "Spanish: Classical, 4.O-O Nge7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nge7 * C64m "Spanish: Classical, 4.O-O Qf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Qf6 * C64n "Spanish: Classical, 4.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O d6 * C64o "Spanish: Classical, 4.O-O d6 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O d6 5.c3 * C64p "Spanish: Classical, 4.O-O Nd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 * C64q "Spanish: Classical, Zaitsev Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.b4 * C64r "Spanish: Classical, 4.O-O Nd4 5.Bc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Bc4 * C64s "Spanish: Classical, 4.O-O Nd4 5.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 * C64s "Spanish: Classical, 4.O-O Nd4 5.Nxd4 Bxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 * C64s "Spanish: Classical, 4.O-O Nd4 5.Nxd4 Bxd4 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 * C64s "Spanish: Classical, 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 * C64t "Spanish: Classical, 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 7.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 7.d4 * C64u "Spanish: Classical, 6.c3 Bb6 7.d4 c6 8.Ba4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 7.d4 c6 8.Ba4 * C64v "Spanish: Classical, 6.c3 Bb6 7.d4 c6 8.Ba4 d6 9.Na3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 7.d4 c6 8.Ba4 d6 9.Na3 * C65a "Spanish: Berlin Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 * C65b "Spanish: Berlin, 4.Qe2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.Qe2 * C65c "Spanish: Berlin, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d4 * C65d "Spanish: Berlin, 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d4 exd4 * C65e "Spanish: Berlin, Nyholm Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d4 exd4 5.O-O * C65f "Spanish: Berlin, 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 * C65g "Spanish: Berlin, Mortimer Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Ne7 * C65g "Spanish: Berlin, Mortimer Trap" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Ne7 5.Nxe5 c6 * C65h "Spanish: Berlin, 4.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 * C65h "Spanish: Berlin, Anderssen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 5.Bxc6+ * C65h "Spanish: Berlin, Duras Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 5.c4 * C65i "Spanish: Berlin, 4.d3 d6 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 5.c3 * C65j "Spanish: Berlin, 4.d3 Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Bc5 * C65j "Spanish: Berlin, Kaufmann Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Bc5 5.Be3 * C65k "Spanish: Berlin, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O * C65l "Spanish: Berlin, 4.O-O Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Be7 * C65m "Spanish: Berlin, Beverwijk Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 * C65n "Spanish: Berlin, Beverwijk, 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.c3 * C65o "Spanish: Berlin, Benelux Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.c3 O-O 6.d4 Bb6 * C65p "Spanish: Berlin, Benelux Variation, 7.Bg5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.c3 O-O 6.d4 Bb6 7.Bg5 * C65q "Spanish: Berlin, Beverwijk, 5.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.Nxe5 * C66 "Spanish: Closed Berlin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 * C66 "Spanish: Closed Berlin, 5.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.Re1 * C66 "Spanish: Closed Berlin, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 * C66 "Spanish: Closed Berlin, Chigorin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Nd7 * C66 "Spanish: Closed Berlin, 5.d4 Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 * C66 "Spanish: Closed Berlin, Wolf Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 exd4 * C66 "Spanish: Closed Berlin, Hedgehog Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 * C66 "Spanish: Closed Berlin, Tarrasch Trap" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 7.Re1 O-O * C66 "Spanish: Closed Berlin, Bernstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 7.Bg5 * C66 "Spanish: Closed Berlin, Showalter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 7.Bxc6 * C67a "Spanish: Open Berlin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 * C67b "Spanish: Open Berlin, 5.Qe2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.Qe2 * C67c "Spanish: Open Berlin, 5.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.Re1 * C67d "Spanish: Open Berlin, 5.Re1 Nd6 6.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.Re1 Nd6 6.Nxe5 * C67e "Spanish: Open Berlin, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 * C67e "Spanish: Open Berlin, Rosenthal Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 a6 * C67f "Spanish: Open Berlin, 5...Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 * C67g "Spanish: Berlin, Minckwitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.dxe5 * C67h "Spanish: Open Berlin, 5...Be7 6.Qe2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 * C67h "Spanish: Open Berlin, Trifunovic Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 d5 * C67i "Spanish: Open Berlin, 5...Be7 6.Qd2 Nd6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 * C67i "Spanish: Open Berlin, Cordel Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nf5 * C67j "Spanish: Open Berlin, 5...Be7 6.Qd2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 * C67j "Spanish: Open Berlin, Pillsbury Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.b3 * C67j "Spanish: Open Berlin, Zukertort Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.c4 * C67k "Spanish: Open Berlin, Winawer Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.Nd4 * C67l "Spanish: Open Berlin, Main Line 9.Nc3 (Rio de Janerio)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.Nc3 * C67m "Spanish: Open Berlin, 5.d4 Nd6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 * C67m "Spanish: Open Berlin, Showalter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Ba4 * C67n "Spanish: Open Berlin, 5.d4 Nd6 6.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.dxe5 * C67o "Spanish: Open Berlin, 5.d4 Nd6 6.Bxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 * C67p "Spanish: Open Berlin, 5.d4 Nd6 6.Bxc6 dxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 * C67q "Spanish: Open Berlin, 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 * C67r "Spanish: Open Berlin, 5.d4 Nd6 Queenswap" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ * C67s "Spanish: Open Berlin, 5.d4 Nd6 Queenswap, 9.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 * C67t "Spanish: Open Berlin, 5.d4 Nd6 Queenswap, 9.Nc3 h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 h6 * C67u "Spanish: Open Berlin, 5.d4 Nd6 Queenswap, 9.Nc3 Ke8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 * C67v "Spanish: Open Berlin, 5.d4 Nd6 Queenswap, 9.Nc3 Ke8 10.Rd1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 10.Rd1 * C67w "Spanish: Open Berlin, 5.d4 Nd6 Queenswap, 9.Nc3 Ke8 10.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 10.h3 * C67x "Spanish: Open Berlin, 5.d4 Nd6 Queenswap, 9.Nc3 Ke8 10.h3 a5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 10.h3 a5 * C68a "Spanish: 3...a6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 * C68b "Spanish: 3...a6 4.Bc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bc4 * C68c "Spanish: Exchange Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 * C68c "Spanish: Exchange, 4...bxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 bxc6 * C68d "Spanish: Exchange, 4...dxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 * C68e "Spanish: Exchange, Lasker Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.d4 * C68f "Spanish: Exchange, Alekhine Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.d4 exd4 6.Qxd4 Qxd4 7.Nxd4 Bd7 * C68g "Spanish: Exchange, Keres Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 * C68h "Spanish: Exchange, Keres, 5...f6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 f6 * C68h "Spanish: Exchange, Romanovsky Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 f6 6.d3 * C68i "Spanish: Exchange, 5.Nc3 f6 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 f6 6.d4 * C68j "Spanish: Exchange, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O * C68k "Spanish: Exchange, 5.O-O Ne7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Ne7 * C68l "Spanish: Exchange, 5.O-O Bd6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bd6 * C68m "Spanish: Exchange, 5.O-O Bd6 6.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bd6 6.d4 exd4 * C68n "Spanish: Exchange, 5.O-O Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 * C68n "Spanish: Exchange, 5.O-O Bg4 6.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 6.h3 * C68o "Spanish: Exchange, Alapin Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 6.h3 h5 * C68p "Spanish: Exchange, Alapin Gambit, 7.d3 Qf6 8.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 6.h3 h5 7.d3 Qf6 8.Nbd2 * C68q "Spanish: Exchange, Bronstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 * C68r "Spanish: Exchange, Bronstein, 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.d3 * C68s "Spanish: Exchange, Bronstein, 6.Na3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.Na3 * C68t "Spanish: Exchange, Bronstein, 6.Na3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.Na3 b5 * C68u "Spanish: Exchange, Bronstein, 6.Na3 Be6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.Na3 Be6 * C69a "Spanish: Exchange, Gligoric Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 * C69b "Spanish: Exchange, Gligoric, 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 * C69b "Spanish: Exchange, Gligoric, 6.d4 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 * C69c "Spanish: Exchange, Gligoric, 6.d4 Bg4 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.c3 * C69d "Spanish: Exchange, Gligoric, 6.d4 Bg4 7.c3 Bd6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.c3 Bd6 * C69e "Spanish: Exchange, Gligoric, 6.d4 Bg4 7.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.dxe5 * C69f "Spanish: Exchange, Gligoric, 6.d4 Bg4 Queenswap, 9.Rd3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.dxe5 Qxd1 8.Rxd1 fxe5 9.Rd3 * C69g "Spanish: Exchange, Gligoric, 6.d4 Bg4 Queenswap, 9.Rd3 Bd6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.dxe5 Qxd1 8.Rxd1 fxe5 9.Rd3 Bd6 * C69h "Spanish: Exchange, Gligoric, 6.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 * C69h "Spanish: Exchange, Gligoric, 6.d4 exd4 7.Qxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 * C69i "Spanish: Exchange, Gligoric, 6.d4 exd4 7.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Qxd4 * C69i "Spanish: Exchange, Gligoric, 6.d4 exd4 7.Nxd4 Ne7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 Ne7 * C69j "Spanish: Exchange, Gligoric, 6.d4 exd4 7.Nxd4 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 * C69j "Spanish: Exchange, Gligoric, 8.Ne2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Ne2 * C69k "Spanish: Exchange, Gligoric, 8.Nb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 * C69k "Spanish: Exchange, Gligoric, 8.Nb3 Queenswap" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 * C69l "Spanish: Exchange, Gligoric, 8.Nb3 Queenswap, 9...Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 Bd7 * C69m "Spanish: Exchange, Gligoric, 8.Nb3 Queenswap, 9...Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 Bg4 * C69n "Spanish: Exchange, Gligoric, 8.Nb3 Queenswap, 9...Bg4 10.f3 Be6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 Bg4 10.f3 Be6 * C70 "Spanish: 4.Ba4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 * C70 "Spanish: Brentano Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 g5 * C70 "Spanish: 4.Ba4 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Be7 * C70 "Spanish: Fianchetto Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 g6 * C70 "Spanish: Alapin Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Bb4 * C70 "Spanish: Cozio Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nge7 * C70 "Spanish: Bird's Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nd4 * C70 "Spanish: Classical Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Bc5 * C70 "Spanish: Caro Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 b5 * C70 "Spanish: Graz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 b5 5.Bb3 Bc5 * C70 "Spanish: Taimanov (Wing) Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 b5 5.Bb3 Na5 * C70 "Spanish: Schliemann Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 f5 * C70 "Spanish: Schliemann Deferred, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 f5 5.d4 * C70 "Spanish: Schliemann Deferred, 5.d4 exd4 6.e5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 f5 5.d4 exd4 6.e5 * C71 "Spanish: Modern Steinitz Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 * C71 "Spanish: Modern Steinitz, Three Knights Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Nc3 * C71 "Spanish: Modern Steinitz, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.d4 * C71 "Spanish: Modern Steinitz, Noah's Ark Trap" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.d4 b5 6.Bb3 Nxd4 7.Nxd4 exd4 8.Qxd4 c5 * C71 "Spanish: Modern Steinitz, Keres Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c4 * C72 "Spanish: Modern Steinitz, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O * C72 "Spanish: Modern Steinitz, 5.O-O Ne7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Ne7 * C72 "Spanish: Modern Steinitz, 5.O-O Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bg4 * C72 "Spanish: Modern Steinitz, 5.O-O Bg4 6.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bg4 6.h3 * C72 "Spanish: Modern Steinitz, 5.O-O Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bd7 * C72 "Spanish: Modern Steinitz, 5.O-O Bd7 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bd7 6.d4 * C73 "Spanish: Modern Steinitz, Richter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ * C73 "Spanish: Modern Steinitz, Richter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ bxc6 * C73 "Spanish: Modern Steinitz, Richter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ bxc6 6.d4 * C73 "Spanish: Modern Steinitz, Alapin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ bxc6 6.d4 f6 * C74 "Spanish: Modern Steinitz, 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 * C74 "Spanish: Modern Steinitz, 5.c3 g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 g6 * C74 "Spanish: Modern Steinitz, Siesta Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 * C74 "Spanish: Modern Steinitz, Siesta, 6.exf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 6.exf5 * C74 "Spanish: Modern Steinitz, Siesta, Kopayev Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 6.exf5 Bxf5 7.O-O * C74 "Spanish: Modern Steinitz, Siesta, Kopayev, Main Line" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 6.exf5 Bxf5 7.O-O Bd3 8.Re1 Be7 9.Bc2 Bxc2 10.Qxc2 * C75 "Spanish: Modern Steinitz, 5.c3 Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 * C75 "Spanish: Modern Steinitz, 5.c3 Bd7 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.O-O * C75 "Spanish: Modern Steinitz, 5.c3 Bd7 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 * C75 "Spanish: Modern Steinitz, 5.c3 Bd7 6.d4 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nf6 * C75 "Spanish: Modern Steinitz, Rubinstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nge7 * C75 "Spanish: Modern Steinitz, Rubinstein, 7.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nge7 7.Bb3 * C75 "Spanish: Modern Steinitz, Rubinstein, 7.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nge7 7.Be3 * C76 "Spanish: Modern Steinitz, Bronstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 * C76 "Spanish: Modern Steinitz, Bronstein, 7.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O * C76 "Spanish: Modern Steinitz, Bronstein, 7.O-O Bg7 8.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.Re1 * C76 "Spanish: Modern Steinitz, Bronstein, 7.O-O Bg7 8.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.dxe5 * C76 "Spanish: Modern Steinitz, Bronstein, 7.O-O Bg7 8.dxe5 dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.dxe5 dxe5 * C76 "Spanish: Modern Steinitz, Bronstein, 7.O-O Bg7 8.dxe5 Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.dxe5 Nxe5 * C76 "Spanish: Modern Steinitz, Bronstein, 7.O-O Bg7 8.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.d5 * C77a "Spanish: Morphy Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 * C77b "Spanish: Anderssen Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 * C77c "Spanish: Anderssen, 5...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 b5 * C77d "Spanish: Anderssen, 5...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 * C77e "Spanish: Duras Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 6.c4 * C77f "Spanish: Anderssen, 5...d6 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 6.c3 * C77g "Spanish: Anderssen, 5...d6 6.c3 g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 6.c3 g6 * C77h "Spanish: Four Knights (Tarrasch) Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Nc3 * C77i "Spanish: Exchange Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Bxc6 * C77j "Spanish: Centre Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 * C77k "Spanish: Centre Attack, 5...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 b5 * C77l "Spanish: Centre Attack, 5...Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 Nxd4 * C77m "Spanish: Centre Attack, 5...Nxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 Nxe4 * C77n "Spanish: Centre Attack, 5...Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 Be7 * C77o "Spanish: Centre Attack, 5...exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 exd4 * C77p "Spanish: Wormald Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 * C77q "Spanish: Wormald Attack, 5...Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 Be7 * C77r "Spanish: Wormald Attack, 5...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 * C77s "Spanish: Wormald Attack, 5...b5 6.Bb3 Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Bc5 * C77t "Spanish: Wormald Attack, 5...b5 6.Bb3 Bc5 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Bc5 7.c3 * C77u "Spanish: Wormald Attack, 5...b5 6.Bb3 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Be7 * C77u "Spanish: Wormald Attack, Gruenfeld Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Be7 7.d4 d6 8.c3 Bg4 * C78a "Spanish: 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O * C78b "Spanish: Moeller Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Bc5 * C78c "Spanish: Moeller Defence, 6.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Bc5 6.Nxe5 * C78d "Spanish: Moeller Defence, 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Bc5 6.c3 * C78e "Spanish: 5.O-O b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 * C78e "Spanish: 5.O-O b5 6.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 * C78f "Spanish: 5.O-O b5 6.Bb3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 d6 * C78f "Spanish: Rabinovich Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 d6 7.Ng5 d5 8.exd5 Nd4 9.Re1 Bc5 10.Rxe5+ Kf8 * C78g "Spanish: 5.O-O b5 6.Bb3 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Be7 * C78g "Spanish: 5.O-O b5 6.Bb3 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Be7 7.d4 * C78h "Spanish: 5.O-O b5 6.Bb3 Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 * C78i "Spanish: 5.O-O b5 6.Bb3 Bc5 7.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.Nxe5 * C78i "Spanish: 5.O-O b5 6.Bb3 Bc5 7.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.Nxe5 Nxe5 8.d4 * C78j "Spanish: 5.O-O b5 6.Bb3 Bc5 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.c3 * C78j "Spanish: 5.O-O b5 6.Bb3 Bc5 7.c3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.c3 d6 * C78k "Spanish: 5.O-O b5 6.Bb3 Bc5 7.c3 d6 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.c3 d6 8.d4 * C78l "Spanish: 5.O-O b5 6.Bb3 Bc5 7.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.a4 * C78m "Spanish: 5.O-O b5 6.Bb3 Bc5 7.a4 Rb8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.a4 Rb8 * C78n "Spanish: Archangelsk Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 * C78o "Spanish: Archangelsk, 7.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.d4 * C78p "Spanish: Archangelsk, 7.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.d3 * C78q "Spanish: Archangelsk, 7.d3 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.d3 Be7 * C78r "Spanish: Archangelsk, 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.c3 * C78s "Spanish: Archangelsk, 7.c3 Nxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.c3 Nxe4 * C78t "Spanish: Archangelsk, 7.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 * C78t "Spanish: Archangelsk, 7.Re1 Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 * C78u "Spanish: Archangelsk, 7.Re1 Bc5 8.c3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 * C78u "Spanish: Archangelsk, Main Line" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 * C78v "Spanish: Archangelsk, Main Line, 10.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 10.a4 * C78w "Spanish: Archangelsk, Main Line, 10.Bg5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 10.Bg5 * C78x "Spanish: Archangelsk, Main Line, 10.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 10.Be3 * C79 "Spanish: Steinitz Deferred" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 * C79 "Spanish: Steinitz Deferred, 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.c3 * C79 "Spanish: Steinitz Deferred, 6.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Re1 * C79 "Spanish: Steinitz Deferred, Exchange" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ * C79 "Spanish: Steinitz Deferred, Lipnitsky Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ bxc6 7.d4 Bg4 * C79 "Spanish: Steinitz Deferred, Rubinstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ bxc6 7.d4 Nxe4 * C79 "Spanish: Steinitz Deferred, Boleslavsky Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ bxc6 7.d4 Nxe4 8.Re1 f5 9.dxe5 d5 10.Nc3 * C80a "Spanish: Open" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 * C80b "Spanish: Open, Knorre Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Nc3 * C80c "Spanish: Open, Tartakower Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Qe2 * C80d "Spanish: Open, 6.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Re1 * C80e "Spanish: Open, 6.Re1 Nc5 7.Bxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Re1 Nc5 7.Bxc6 * C80f "Spanish: Open, 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 * C80g "Spanish: Open, Riga Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 exd4 * C80h "Spanish: Open, 6.d4 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 Be7 * C80i "Spanish: Open, 6.d4 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 * C80i "Spanish: Open, Friess Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Nxe5 * C80i "Spanish: Open, Richter Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.d5 * C80j "Spanish: Open, 7.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 * C80k "Spanish: Open, 7.Bb3 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 * C80k "Spanish: Open, 7.Bb3 d5 8.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.a4 * C80k "Spanish: Open, Schlechter Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.a4 Nxd4 * C80k "Spanish: Open, Schlecter, Berger Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.a4 Nxd4 9.Nxd4 exd4 10.Nc3 * C80k "Spanish: Open, Harksen Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.c4 * C80l "Spanish: Open, 8.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.Nxe5 * C80m "Spanish: Open, 8.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 * C80m "Spanish: Open, Zukertort Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Ne7 * C80n "Spanish: Open, 8...Be6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 * C80n "Spanish: Open, 8...Be6 9.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.a4 * C80o "Spanish: Open, 8...Be6 9.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Be3 * C80p "Spanish: Open, Bernstein Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 * C80q "Spanish: Open, Bernstein, 9...Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Bc5 * C80r "Spanish: Open, Bernstein, 9...Nc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 * C80s "Spanish: Open, Bernstein, 9...Nc5 10.c3 d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 * C80s "Spanish: Open, Bernstein, 11.cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 11.cxd4 * C80t "Spanish: Open, Bernstein, Karpov Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 11.Ng5 * C80u "Spanish: Open, Bernstein, 11.Bxe6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 11.Bxe6 * C81 "Spanish: Open, Keres Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 * C81 "Spanish: Open, Keres Attack, 9...Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Bc5 * C81 "Spanish: Open, Keres Attack, 9...Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 * C81 "Spanish: Open, Keres, Adam Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.c4 * C81 "Spanish: Open, Keres, 10.Rd1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 * C81 "Spanish: Open, Keres, 10.Rd1 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O * C81 "Spanish: Open, Keres, 10.Rd1 O-O 11.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c3 * C81 "Spanish: Open, Keres, 10.Rd1 O-O 11.c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c4 * C81 "Spanish: Open, Keres, 10.Rd1 O-O 11.c4 bxc4 12.Bxc4 Bc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c4 bxc4 12.Bxc4 Bc5 * C81 "Spanish: Open, Keres, Ekstrom Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c4 bxc4 12.Bxc4 Qd7 * C82a "Spanish: Open, 9.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 * C82b "Spanish: Open, Berlin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 * C82b "Spanish: Open, Berlin, 10.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 * C82c "Spanish: Open, Berlin, 10.Bc2 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 * C82d "Spanish: Open, Berlin, 10.Bc2 Bg4 11.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Re1 * C82e "Spanish: Open, Berlin, 10.Bc2 Bg4 11.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 * C82e "Spanish: Open, Berlin, 10.Bc2 Bg4 11.Nbd2 Be7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 * C82f "Spanish: Open, Berlin, 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 * C82g "Spanish: Open, Berlin, 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 Qd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 Qd7 * C82h "Spanish: Open, Berlin, 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 O-O * C82i "Spanish: Open, Italian Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 * C82j "Spanish: Open, Motzko Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Qd3 * C82j "Spanish: Open, Motzko Attack, Nenarokov Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Qd3 Ne7 * C82k "Spanish: Open, St. Petersburg Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 * C82k "Spanish: Open, St. Petersburg Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O * C82l "Spanish: Open, St. Petersburg, 11.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 * C82m "Spanish: Open, St. Petersburg, 11.Bc2 f5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 f5 * C82n "Spanish: Open, Baguio Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Bf5 * C82n "Spanish: Open, Baguio, 12.Nb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Bf5 12.Nb3 * C82o "Spanish: Open, Dilworth Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 * C82o "Spanish: Open, Dilworth, 12.Rxf2 f6 13.exf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 * C82p "Spanish: Open, Dilworth, 14.Kxf2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 * C82q "Spanish: Open, Dilworth, 14.Kxf2 Qxf6 15.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 Qxf6 15.Nf1 * C82r "Spanish: Open, Dilworth, 14.Kxf2 Qxf6 15.Kg1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 Qxf6 15.Kg1 * C82s "Spanish: Open, Dilworth, 14.Kxf2 Qxf6 15.Kg1 g5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 Qxf6 15.Kg1 g5 * C83 "Spanish: Open, Classical Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 * C83 "Spanish: Open, Classical, 10.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Re1 * C83 "Spanish: Open, Classical, Tarrasch Trap" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Re1 O-O 11.Nd4 Qd7 12.Nxe6 fxe6 13.Rxe4 * C83 "Spanish: Open, Classical, Breslau Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Re1 O-O 11.Nd4 Nxe5 * C83 "Spanish: Open, Classical, 10.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Be3 * C83 "Spanish: Open, Classical, 10.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 * C83 "Spanish: Open, Classical, 10.Nbd2 Nc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 Nc5 * C83 "Spanish: Open, Classical, 10.Nbd2 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O * C83 "Spanish: Open, Classical, Malkin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Qe2 * C83 "Spanish: Open, Classical, 10.Nbd2 O-O 11.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Bc2 * C83 "Spanish: Open, Classical, 10.Nbd2 O-O 11.Bc2 f5 12.exf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Bc2 f5 12.exf6 * C83 "Spanish: Open, Classical, 10.Nbd2 O-O 11.Bc2 f5 12.Nb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Bc2 f5 12.Nb3 * C84a "Spanish: Closed System" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 * C84b "Spanish: Closed, 6.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 * C84c "Spanish: Closed, 6.Nc3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 * C84c "Spanish: Closed, 6.Nc3 b5 7.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 7.Bb3 * C84c "Spanish: Closed, 6.Nc3 b5 7.Bb3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 7.Bb3 d6 * C84d "Spanish: Closed, 6.Nc3 b5 7.Bb3 d6 8.Nd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 7.Bb3 d6 8.Nd5 * C84e "Spanish: Closed, 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d3 * C84f "Spanish: Closed, 6.d3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d3 b5 * C84f "Spanish: Closed, 6.d3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d3 b5 7.Bb3 * C84g "Spanish: Closed, Centre Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 * C84g "Spanish: Closed, Centre Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 * C84h "Spanish: Closed, Centre Attack, 7.e5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 * C84h "Spanish: Closed, Centre Attack, 7.e5 Ne4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 * C84h "Spanish: Closed, Centre Attack, Basque Gambit" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.c3 * C84h "Spanish: Closed, Centre Attack, Basque Gambit Accepted" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.c3 dxc3 * C84h "Spanish: Closed, Centre Attack, 7.e5 Ne4 8.b4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.b4 * C84i "Spanish: Closed, Centre Attack, 7.e5 Ne4 8.Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.Nxd4 * C84j "Spanish: Closed, Centre Attack, 7.e5 Ne4 8.Nxd4 Nxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.Nxd4 Nxd4 * C84k "Spanish: Closed, Centre Attack, 7.e5 Ne4 8.Nxd4 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.Nxd4 O-O * C84l "Spanish: Closed, Centre Attack, 7.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 * C84m "Spanish: Closed, Centre Attack, 7.Re1 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 * C84n "Spanish: Closed, Centre Attack, 7.Re1 b5 8.e5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 8.e5 * C84n "Spanish: Closed, Centre Attack, 7.Re1 b5 8.e5 Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 8.e5 Nxe5 * C84n "Spanish: Closed, Centre Attack, 7.Re1 b5 8.e5 Nxe5 9.Rxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 8.e5 Nxe5 9.Rxe5 * C84o "Spanish: Closed, Centre Attack, 7.Re1 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O * C84p "Spanish: Closed, Centre Attack, 7.Re1 O-O 8.e5 Ne8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O 8.e5 Ne8 * C84p "Spanish: Closed, Centre Attack, 7.Re1 O-O 8.e5 Ne8 9.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O 8.e5 Ne8 9.c3 * C84q "Spanish: Closed, Centre Attack, 7.Re1 O-O 8.e5 Ne8 9.Bf4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O 8.e5 Ne8 9.Bf4 * C85a "Spanish: Closed, Exchange" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 * C85b "Spanish: Closed, Exchange" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 * C85c "Spanish: Closed, Exchange, 7.Qe2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe2 * C85d "Spanish: Closed, Exchange, 7.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Nc3 * C85e "Spanish: Closed, Exchange, 7.Nc3 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Nc3 Bg4 * C85f "Spanish: Closed, Exchange, 7.Qe1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 * C85g "Spanish: Closed, Exchange, 7.Qe1 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 c5 * C85h "Spanish: Closed, Exchange, 7.Qe1 Nd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 Nd7 * C85i "Spanish: Closed, Exchange, 7.Qe1 Nd7 8.b3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 Nd7 8.b3 * C85j "Spanish: Closed, Exchange, 7.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 * C85k "Spanish: Closed, Exchange, 7.d3 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Bg4 * C85l "Spanish: Closed, Exchange, 7.d3 Nd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 * C85m "Spanish: Closed, Exchange, 7.d3 Nd7 8.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 * C85n "Spanish: Closed, Exchange, 7.d3 Nd7 8.Nbd2 O-O 9.Nc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 * C85o "Spanish: Closed, Exchange, 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 * C85p "Spanish: Closed, Exchange, 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 * C85q "Spanish: Closed, Exchange, 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 Nc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 Nc5 * C85r "Spanish: Closed, Exchange, 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 Nc5 11.Nf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 Nc5 11.Nf5 * C86a "Spanish: Worrall Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 * C86a "Spanish: Worrall Attack, 6...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 d6 * C86b "Spanish: Worrall Attack, 6...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 * C86b "Spanish: Worrall Attack, 6...b5 7.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 * C86c "Spanish: Worrall Attack, 7...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 d6 * C86d "Spanish: Worrall Attack, 7...d6 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 d6 8.c3 * C86e "Spanish: Worrall Attack, 7...O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O * C86e "Spanish: Worrall Attack, 7...O-O 8.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.a4 * C86f "Spanish: Worrall Attack, 7...O-O 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 * C86g "Spanish: Worrall Attack, 7...O-O 8.c3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d6 * C86h "Spanish: Worrall Attack, 7...O-O 8.c3 d6 9.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d6 9.d4 * C86i "Spanish: Worrall Attack, 7...O-O 8.c3 d6 9.Rd1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d6 9.Rd1 * C86j "Spanish: Worrall Attack, 7...O-O 8.c3 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 * C86j "Spanish: Worrall Attack, 7...O-O 8.c3 d5 9.exd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 9.exd5 * C86k "Spanish: Worrall Attack, 7...O-O 8.c3 d5 9.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 9.d3 * C86l "Spanish: Worrall Attack, 7...O-O 8.c3 d5 9.d3 Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 9.d3 Bb7 * C87a "Spanish: Closed, 6.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 * C87b "Spanish: Closed, Averbakh (Russian) Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 * C87c "Spanish: Closed, Averbakh, 7.Bxc6+" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ * C87c "Spanish: Closed, Averbakh, 7.Bxc6+ bxc6 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ bxc6 8.d4 * C87d "Spanish: Closed, Averbakh, 7.Bxc6+ bxc6 8.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ bxc6 8.d4 exd4 * C87d "Spanish: Closed, Averbakh, 7.Bxc6+ bxc6 8.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ bxc6 8.d4 exd4 9.Nxd4 * C87e "Spanish: Closed, Averbakh, 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 * C87f "Spanish: Closed, Averbakh, 7.c3 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 Bg4 * C87g "Spanish: Closed, Averbakh, 7.c3 Bg4 8.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 Bg4 8.h3 * C87h "Spanish: Closed, Averbakh, 7.c3 Bg4 8.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 Bg4 8.d3 * C87i "Spanish: Closed, Averbakh, 7.c3 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O * C87j "Spanish: Closed, Averbakh, 7.c3 O-O 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 * C87k "Spanish: Closed, Averbakh, 7.c3 O-O 8.d4 Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 Bd7 * C87l "Spanish: Closed, Averbakh, 7.c3 O-O 8.d4 Bd7 9.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 Bd7 9.Nbd2 * C87m "Spanish: Closed, Averbakh, 7.c3 O-O 8.d4 Bd7 9.Nbd2 Re8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 Bd7 9.Nbd2 Re8 * C87n "Spanish: Closed, Averbakh, 7.c3 O-O 8.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.h3 * C87o "Spanish: Closed, Averbakh, 7.c3 O-O 8.h3 Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.h3 Bd7 * C88a "Spanish: Closed, 6...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 * C88a "Spanish: Closed, 6...b5 7.Bb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 * C88b "Spanish: Closed, Trajkovic Counterattack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 Bb7 * C88c "Spanish: Closed 7...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 * C88c "Spanish: Closed, 7...d6 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.d4 * C88c "Spanish: Closed, Noah's Ark Trap" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.d4 Nxd4 9.Nxd4 exd4 10.Qxd4 c5 * C88d "Spanish: Closed 7...d6 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 * C88d "Spanish: Closed 7...d6 8.c3 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Bg4 * C88e "Spanish: Closed 7...d6 8.c3 Na5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Na5 * C88e "Spanish: Closed, Leonhardt Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Na5 9.Bc2 c5 10.d4 Qc7 11.h3 Nc6 12.d5 Nb8 13.Nbd2 g5 * C88e "Spanish: Closed, Balla Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Na5 9.Bc2 c5 10.d4 Qc7 11.a4 * C88f "Spanish: Closed, 7...O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O * C88g "Spanish: Closed, 8.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.d3 * C88g "Spanish: Closed, 8.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.d3 d6 * C88h "Spanish: Closed, 8.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.h3 * C88i "Spanish: Closed, 8.h3 Bb7 9.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.h3 Bb7 9.d3 d6 * C88j "Spanish: Closed, Anti-Marshall 8.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 * C88k "Spanish: Closed, Anti-Marshall 8.a4 b4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 b4 * C88l "Spanish: Closed, Anti-Marshall 8.a4 Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 * C88m "Spanish: Closed, Anti-Marshall 8.a4 Bb7 9.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 * C88n "Spanish: Closed, Anti-Marshall 8.a4 Bb7 9.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 d6 * C88o "Spanish: Closed, Anti-Marshall 8.a4 Bb7 9.d3 d6 10.Nc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 d6 10.Nc3 * C88p "Spanish: Closed, Anti-Marshall 8.a4 Bb7 9.d3 d6 10.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 d6 10.c3 * C88q "Spanish: Closed, 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 * C89a "Spanish: Marshall Counterattack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 * C89b "Spanish: Marshall, 9.exd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 * C89b "Spanish: Marshall, Herman Steiner Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 e4 * C89c "Spanish: Marshall, 9.exd5 Nxd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 * C89d "Spanish: Marshall, 9.exd5 Nxd5 10.Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 * C89d "Spanish: Marshall, 9.exd5 Nxd5 10.Nxe5 Nxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 * C89d "Spanish: Marshall, 11.Rxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 * C89e "Spanish: Marshall, 11.Rxe5 Nf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 Nf6 * C89f "Spanish: Marshall, 11.Rxe5 c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 * C89g "Spanish: Marshall, 12.Bxd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.Bxd5 * C89h "Spanish: Marshall, Kevitz Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.Bxd5 cxd5 13.d4 Bd6 14.Re3 * C89i "Spanish: Marshall, 12.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d3 * C89i "Spanish: Marshall, 12.d3 Bd6 13.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d3 Bd6 13.Re1 * C89j "Spanish: Marshall, 12.d3 Bd6 13.Re1 Qh4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d3 Bd6 13.Re1 Qh4 * C89k "Spanish: Marshall, Main Line (12.d4)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 * C89k "Spanish: Marshall, Main Line (12.d4 Bd6)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 * C89l "Spanish: Marshall, Main Line, 13.Re2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re2 * C89m "Spanish: Marshall, Main Line, 13.Re1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 * C89m "Spanish: Marshall, Main Line, 13.Re1 Qh4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 * C89m "Spanish: Marshall, Main Line, 13.Re1 Qh4 14.g3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 * C89n "Spanish: Marshall, Main Line, 14.g3 Qh3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 * C89o "Spanish: Marshall, Main Line, 15.Re4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Re4 * C89p "Spanish: Marshall, Main Line, 15.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 * C89p "Spanish: Marshall, Main Line, 15.Be3 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 * C89p "Spanish: Marshall, Main Line, 15.Be3 Bg4 16.Qd3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 * C89q "Spanish: Marshall, Main Line, 15.Be3 Bg4 16.Qd3 Rae8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 * C89q "Spanish: Marshall, Main Line, 16.Qd3 Rae8 17.Nd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 * C89r "Spanish: Marshall, Main Line, Pawn Push Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 f5 * C89s "Spanish: Marshall, Main Line, Classical Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 * C89t "Spanish: Marshall, Main Line, Classical, 18.c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.c4 * C89u "Spanish: Marshall, Main Line, Classical, 18.Bxd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.Bxd5 * C89v "Spanish: Marshall, Main Line, Classical, 18.Qf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.Qf1 * C89w "Spanish: Marshall, Main Line, Classical, 18.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.a4 * C89x "Spanish: Marshall, Main Line, Classical, Spassky Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.a4 Qh5 * C89y "Spanish: Marshall, Main Line, Classical, 18.a4 f5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.a4 f5 * C90a "Spanish: Closed, 8...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 * C90b "Spanish: Closed, Lutikov Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.Bc2 * C90c "Spanish: Closed, Suetin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.a3 * C90d "Spanish: Closed, 8...d6 9.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.a4 * C90d "Spanish: Closed, 8...d6 9.a4 Bg4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.a4 Bg4 * C90e "Spanish: Closed, Pilnik Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 * C90f "Spanish: Closed, Pilnik, 9...h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 h6 * C90g "Spanish: Closed, Pilnik, 9...Na5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 * C90g "Spanish: Closed, Pilnik, 9...Na5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 * C90g "Spanish: Closed, Pilnik, 9...Na5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 * C90h "Spanish: Closed, Pilnik, 11.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 * C90i "Spanish: Closed, Pilnik, 11.Nbd2 Qc7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Qc7 * C90j "Spanish: Closed, Pilnik, 11.Nbd2 Nc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Nc6 * C90k "Spanish: Closed, Pilnik, 11.Nbd2 Re8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 * C90k "Spanish: Closed, Pilnik, 12.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 * C90l "Spanish: Closed, Pilnik, 12.Nf1 Nc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 Nc6 * C90m "Spanish: Closed, Pilnik, 12.Nf1 Bf8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 Bf8 * C90n "Spanish: Closed, Pilnik, 12.Nf1 h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 h6 * C91a "Spanish: Closed, 9.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 * C91b "Spanish: Closed, Bogoljubow Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 * C91c "Spanish: Closed, Bogoljubow, 10.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.Be3 * C91d "Spanish: Closed, Bogoljubow, 10.Be3 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.Be3 exd4 * C91e "Spanish: Closed, Bogoljubow, 10.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 * C91f "Spanish: Closed, Bogoljubow, 10.d5 Na5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 * C91f "Spanish: Closed, Bogoljubow, 10.d5 Na5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 * C91g "Spanish: Closed, Bogoljubow, 10.d5 Na5 11.Bc2 Qc8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 Qc8 * C91h "Spanish: Closed, Bogoljubow, 10.d5 Na5 11.Bc2 c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 c6 * C91i "Spanish: Closed, Bogoljubow, 10.d5 Na5 11.Bc2 c6 12.h3 Bc8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 c6 12.h3 Bc8 * C92a "Spanish: Closed, 9.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 * C92b "Spanish: Closed, Keres Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 a5 * C92c "Spanish: Closed, Kholmov Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Be6 * C92d "Spanish: Closed, Kholmov, 11.Qxb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Be6 10.d4 Bxb3 11.Qxb3 * C92e "Spanish: Closed, Karpov Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 * C92f "Spanish: Closed, Karpov Variation, 10.d4 Bf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 10.d4 Bf6 * C92g "Spanish: Closed, Karpov Variation, 10.d4 Bf6 11.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 10.d4 Bf6 11.a4 * C92h "Spanish: Closed, Karpov Variation, 10.d4 Bf6 11.a4 Bb7 12.Na3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 10.d4 Bf6 11.a4 Bb7 12.Na3 * C92i "Spanish: Closed, Zaitsev (Flohr) Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 * C92j "Spanish: Closed, Zaitsev, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 * C92k "Spanish: Closed, Zaitsev, 10.d4 Re8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 * C92l "Spanish: Closed, Zaitsev, 11.Ng5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Ng5 * C92m "Spanish: Closed, Zaitsev, 11.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 * C92n "Spanish: Closed, Zaitsev, 11.Nbd2 Bf8 12.d5 Nb8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.d5 Nb8 * C92o "Spanish: Closed, Zaitsev, 12.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.Bc2 * C92p "Spanish: Closed, Zaitsev, 12.a3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a3 * C92q "Spanish: Closed, Zaitsev, 12.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 * C92r "Spanish: Closed, Zaitsev, 12.a4 h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 * C92s "Spanish: Closed, Zaitsev, 12.a4 h6 13.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 * C92t "Spanish: Closed, Zaitsev, 12.a4 h6 13.Bc2 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 exd4 * C92u "Spanish: Closed, Zaitsev, 12.a4 h6 13.Bc2 exd4 14.cxd4 Nb4 15.Bb1 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 exd4 14.cxd4 Nb4 15.Bb1 c5 * C93 "Spanish: Closed, Smyslov Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 * C93 "Spanish: Closed, Smyslov, 10.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d3 * C93 "Spanish: Closed, Smyslov, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 * C93 "Spanish: Closed, Smyslov, 10.d4 Re8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 * C93 "Spanish: Closed, Smyslov, 10.d4 Re8 11.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.a4 * C93 "Spanish: Closed, Smyslov, 10.d4 Re8 11.Be3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Be3 * C93 "Spanish: Closed, Smyslov, 10.d4 Re8 11.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 * C93 "Spanish: Closed, Smyslov, 10.d4 Re8 11.Nbd2 Bf8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 * C93 "Spanish: Closed, Smyslov, 12.a3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.a3 * C93 "Spanish: Closed, Smyslov, 12.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Bc2 * C93 "Spanish: Closed, Smyslov, 12.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 * C93 "Spanish: Closed, Smyslov, 12.Nf1 Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bb7 * C93 "Spanish: Closed, Smyslov, 12.Nf1 Bb7 13.Ng3 Na5 14.Bc2 Nc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bb7 13.Ng3 Na5 14.Bc2 Nc4 * C93 "Spanish: Closed, Smyslov, 12.Nf1 Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bd7 * C93 "Spanish: Closed, Smyslov, 12.Nf1 Bd7 13.Ng3 Na5 14.Bc2 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bd7 13.Ng3 Na5 14.Bc2 c5 * C94a "Spanish: Closed, Breyer Defence" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 * C94b "Spanish: Closed, Breyer, Matulovic Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.a4 * C94c "Spanish: Closed, Breyer, 10.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 * C94d "Spanish: Closed, Breyer, 10.d3 Nbd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 Nbd7 * C94e "Spanish: Closed, Breyer, 10.d3 Nbd7 11.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 Nbd7 11.Nbd2 * C94f "Spanish: Closed, Breyer, 10.d3 Nbd7 11.Nbd2 Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 Nbd7 11.Nbd2 Bb7 * C95a "Spanish: Closed, Breyer, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 * C95a "Spanish: Closed, Breyer, 10.d4 Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Bb7 * C95b "Spanish: Closed, Breyer, 10.d4 Nbd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 * C95c "Spanish: Closed, Breyer, Simagin Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nh4 * C95d "Spanish: Closed, Breyer, 10.d4 Nbd7 11.Bg5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Bg5 * C95e "Spanish: Closed, Breyer, Arseniev Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.c4 * C95e "Spanish: Closed, Breyer, Arseniev, 11...c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.c4 c6 * C95f "Spanish: Closed, Breyer, 10.d4 Nbd7 11.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 * C95f "Spanish: Closed, Breyer, 10.d4 Nbd7 11.Nbd2 Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 * C95f "Spanish: Closed, Breyer, 10.d4 Nbd7 11.Nbd2 Bb7 12.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.a4 * C95g "Spanish: Closed, Breyer, 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 * C95g "Spanish: Closed, Breyer, Gligoric Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 c5 * C95h "Spanish: Closed, Breyer, Main Line" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 * C95i "Spanish: Closed, Breyer, Main Line, 13.b4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.b4 * C95j "Spanish: Closed, Breyer, Main Line, 13.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.a4 * C95k "Spanish: Closed, Breyer, Main Line, 13.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 * C95k "Spanish: Closed, Breyer, Main Line, 13.Nf1 Bf8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 * C95k "Spanish: Closed, Breyer, Main Line, 13.Nf1 Bf8 14.Ng3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 * C95k "Spanish: Closed, Breyer, Main Line, 14.Ng3 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 c5 * C95l "Spanish: Closed, Breyer, Main Line, 14.Ng3 g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 * C95l "Spanish: Closed, Breyer, Main Line, 14.Ng3 g6 15.b3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.b3 * C95m "Spanish: Closed, Breyer, Main Line, 14.Ng3 g6 15.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.a4 * C95n "Spanish: Closed, Breyer, Main Line, 15.a4 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.a4 c5 * C95o "Spanish: Closed, Breyer, Main Line, 15.a4 c5 16.d5 c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.a4 c5 16.d5 c4 * C96a "Spanish: Closed, Chigorin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 * C96b "Spanish: Closed, Chigorin, 10.Bc2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 * C96c "Spanish: Closed, Chigorin, 10...c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c6 * C96d "Spanish: Closed, Chigorin, Rossolimo Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c6 11.d4 Qc7 * C96e "Spanish: Closed, Chigorin, 10...Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 Bb7 * C96f "Spanish: Closed, Chigorin, 10...c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 * C96g "Spanish: Closed, Chigorin, 11.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d3 * C96h "Spanish: Closed, Chigorin, 11.d3 Nc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d3 Nc6 * C96i "Spanish: Closed, Chigorin, 11.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 * C96j "Spanish: Closed, Chigorin, 11.d4 cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 cxd4 * C96k "Spanish: Closed, Chigorin, 11.d4 Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Bb7 * C96l "Spanish: Closed, Chigorin, 11.d4 Bb7 12.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Bb7 12.Nbd2 * C96m "Spanish: Closed, Chigorin, Borisenko Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Nc6 * C96n "Spanish: Closed, Chigorin, Keres Variation" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Nd7 * C96o "Spanish: Closed, Chigorin, Keres, 11.Nbd2 cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Nd7 12.Nbd2 cxd4 * C97a "Spanish: Closed, Chigorin, 11.d4 Qc7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 * C97b "Spanish: Closed, Chigorin, 11.d4 Qc7 12.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.d5 * C97c "Spanish: Closed, Chigorin, 11.d4 Qc7 12.d5 c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.d5 c4 * C97d "Spanish: Closed, Chigorin, 11.d4 Qc7 12.Nbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 * C97e "Spanish: Closed, Chigorin, 12...Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bb7 * C97f "Spanish: Closed, Chigorin, 12...Re8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Re8 * C97g "Spanish: Closed, Chigorin, 12...Rd8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Rd8 * C97h "Spanish: Closed, Chigorin, 12...Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 * C97i "Spanish: Closed, Chigorin, 12...Bd7 13.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 * C97j "Spanish: Closed, Chigorin, 12...Bd7 13.Nf1 Nc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 Nc4 * C97k "Spanish: Closed, Chigorin, 12...Bd7 13.Nf1 Rfe8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 Rfe8 * C97l "Spanish: Closed, Chigorin, Yugoslav System" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 Rfe8 14.Ne3 g6 * C98a "Spanish: Closed, Chigorin, 12...Nc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 * C98b "Spanish: Closed, Chigorin, Rauzer Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 * C98b "Spanish: Closed, Chigorin, Rauzer Attack" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 dxc5 * C98c "Spanish: Closed, Chigorin, Rauzer, 14.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 dxc5 14.Nf1 * C98d "Spanish: Closed, Chigorin, Rauzer, 14.Nf1 Be6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 dxc5 14.Nf1 Be6 * C98e "Spanish: Closed, Chigorin, 12...Nc6 13.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 * C98f "Spanish: Closed, Chigorin, 12...Nc6 13.d5 Na5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Na5 * C98g "Spanish: Closed, Chigorin, 12...Nc6 13.d5 Nd8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Nd8 * C98h "Spanish: Closed, Chigorin, 12...Nc6 13.d5 Nd8 14.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Nd8 14.Nf1 * C98i "Spanish: Closed, Chigorin, 12...Nc6 13.d5 Nd8 14.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Nd8 14.a4 * C99a "Spanish: Closed, Chigorin, 12...cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 * C99a "Spanish: Closed, Chigorin, 12...cxd4 13.cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 * C99b "Spanish: Closed, Chigorin, 13...Rd8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Rd8 * C99c "Spanish: Closed, Chigorin, 13...Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bd7 * C99c "Spanish: Closed, Chigorin, 13...Bd7 14.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bd7 14.Nf1 * C99d "Spanish: Closed, Chigorin, 13...Bd7 14.Nf1 Rac8 15.Ne3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bd7 14.Nf1 Rac8 15.Ne3 * C99e "Spanish: Closed, Chigorin, 13...Bb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 * C99e "Spanish: Closed, Chigorin, 13...Bb7 14.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.Nf1 * C99e "Spanish: Closed, Chigorin, 13...Bb7 14.Nf1 Rac8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.Nf1 Rac8 * C99f "Spanish: Closed, Chigorin, 13...Bb7 14.Nf1 Rac8 15.Re2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.Nf1 Rac8 15.Re2 * C99g "Spanish: Closed, Chigorin, 13...Bb7 14.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.d5 * C99h "Spanish: Closed, Chigorin, 13...Bb7 14.d5 Rac8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.d5 Rac8 * C99i "Spanish: Closed, Chigorin, 13...Nc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 * C99i "Spanish: Closed, Chigorin, 13...Nc6 14.a3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.a3 * C99j "Spanish: Closed, Chigorin, 13...Nc6 14.Nf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nf1 * C99k "Spanish: Closed, Chigorin, 13...Nc6 14.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.d5 * C99l "Spanish: Closed, Chigorin, 13...Nc6 14.Nb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 * C99l "Spanish: Closed, Chigorin, 13...Nc6 14.Nb3 a5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 * C99m "Spanish: Closed, Chigorin, 13...Nc6 14.Nb3 a5 15.Be3 a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 15.Be3 a4 * C99n "Spanish: Closed, Chigorin, 13...Nc6 14.Nb3 a5 15.Be3 a4 16.Nbd2 Nb4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 15.Be3 a4 16.Nbd2 Nb4 * C99o "Spanish: Closed, Chigorin, 13...Nc6 14.Nb3 a5 15.Be3 a4 16.Nbd2 Bd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 15.Be3 a4 16.Nbd2 Bd7 * D00a "Queen's Pawn Game" 1.d4 d5 * D00a "Queen's Pawn: 2.f4" 1.d4 d5 2.f4 * D00a "Queen's Pawn: 2.g3" 1.d4 d5 2.g3 * D00b "Queen's Pawn: 2.c3" 1.d4 d5 2.c3 * D00b "Queen's Pawn: 2.c3 Nf6" 1.d4 d5 2.c3 Nf6 * D00b "Queen's Pawn: 2.c3 Nf6 3.Bf4" 1.d4 d5 2.c3 Nf6 3.Bf4 * D00b "Queen's Pawn: 2.c3 Nf6 3.Bg5" 1.d4 d5 2.c3 Nf6 3.Bg5 * D00c "Queen's Pawn: Mason Variation" 1.d4 d5 2.Bf4 * D00c "Queen's Pawn, Mason, Steinitz Countergambit" 1.d4 d5 2.Bf4 c5 * D00d "Queen's Pawn: 2.e3" 1.d4 d5 2.e3 * D00d "Queen's Pawn: 2.e3 Nf6" 1.d4 d5 2.e3 Nf6 * D00e "Queen's Pawn: Stonewall Attack" 1.d4 d5 2.e3 Nf6 3.Bd3 * D00f "Hodgson Attack (Trompowsky vs. 1...d5)" 1.d4 d5 2.Bg5 * D00f "Hodgson Attack: Welling Variation" 1.d4 d5 2.Bg5 Bg4 * D00f "Hodgson Attack: 2...f6" 1.d4 d5 2.Bg5 f6 * D00f "Hodgson Attack: 2...g6" 1.d4 d5 2.Bg5 g6 * D00g "Hodgson Attack: 2...c6" 1.d4 d5 2.Bg5 c6 * D00h "Hodgson Attack, 2...h6" 1.d4 d5 2.Bg5 h6 * D00h "Hodgson Attack: 2...h6 3.Bh4 c6" 1.d4 d5 2.Bg5 h6 3.Bh4 c6 * D00h "Hodgson Attack: 2...h6 3.Bh4 c6 4.e3" 1.d4 d5 2.Bg5 h6 3.Bh4 c6 4.e3 * D00h "Hodgson Attack: 2...h6 3.Bh4 c6 4.e3 Qb6" 1.d4 d5 2.Bg5 h6 3.Bh4 c6 4.e3 Qb6 * D00i "Trompowsky: 2...d5" 1.d4 Nf6 2.Bg5 d5 * D00i "Trompowsky: 2...d5 3.Nd2" 1.d4 Nf6 2.Bg5 d5 3.Nd2 * D00i "Trompowsky: 2...d5 3.e3" 1.d4 Nf6 2.Bg5 d5 3.e3 * D00i "Trompowsky: 2...d5 3.e3 e6" 1.d4 Nf6 2.Bg5 d5 3.e3 e6 * D00j "Trompowsky: 2...d5 3.Bxf6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 * D00j "Trompowsky: 2...d5 3.Bxf6 gxf6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 gxf6 * D00j "Trompowsky: 2...d5 3.Bxf6 gxf6 4.e3" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 gxf6 4.e3 * D00j "Trompowsky: 2...d5 3.Bxf6 gxf6 4.e3 c5" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 gxf6 4.e3 c5 * D00k "Trompowsky: 2...d5 3.Bxf6 exf6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 * D00k "Trompowsky: 2...d5 3.Bxf6 exf6 4.e3" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 * D00k "Trompowsky: 2...d5 3.Bxf6 exf6 4.e3 Bf5" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 Bf5 * D00k "Trompowsky: 2...d5 3.Bxf6 exf6 4.e3 c6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 c6 * D00k "Trompowsky: 2...d5 3.Bxf6 exf6 4.e3 Be6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 Be6 * D00k "Trompowsky: 2...d5 3.Bxf6 exf6 4.e3 Bd6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 Bd6 * D00l "Blackmar-Diemer Gambit (BDG): 2.e4" 1.d4 d5 2.e4 * D00l "Blackmar-Diemer: Beyer Countergambit" 1.d4 d5 2.e4 e5 * D00l "Blackmar-Diemer Gambit (BDG): 2.e4 dxe4" 1.d4 d5 2.e4 dxe4 * D00l "Blackmar-Diemer: Gedult Gambit" 1.d4 d5 2.e4 dxe4 3.f3 * D00l "Blackmar-Diemer: Fritz Attack" 1.d4 d5 2.e4 dxe4 3.Bc4 * D00l "Blackmar-Diemer: 2.e4 dxe4 3.Nc3" 1.d4 d5 2.e4 dxe4 3.Nc3 * D00l "Blackmar-Diemer: Grosshans Defence" 1.d4 d5 2.e4 dxe4 3.Nc3 Bd7 * D00l "Blackmar-Diemer: Zeller Defence" 1.d4 d5 2.e4 dxe4 3.Nc3 Bf5 * D00l "Blackmar-Diemer: Pohmlann Defence" 1.d4 d5 2.e4 dxe4 3.Nc3 f5 * D00m "Blackmar-Diemer: Lemberger Countergambit" 1.d4 d5 2.e4 dxe4 3.Nc3 e5 * D00m "Blackmar-Diemer: Lemberger Countergambit, Rassmussen Attack" 1.d4 d5 2.e4 dxe4 3.Nc3 e5 4.Nge2 * D00m "Blackmar-Diemer: Lemberger Countergambit, Sneider Attack" 1.d4 d5 2.e4 dxe4 3.Nc3 e5 4.Qh5 * D00n "Queen's Pawn: Veresov Attack" 1.d4 d5 2.Nc3 * D00n "Queen's Pawn: Veresov Attack" 1.d4 d5 2.Nc3 Bf5 * D00n "Queen's Pawn: Veresov Attack" 1.d4 d5 2.Nc3 Nf6 * D00o "Queen's Pawn: Veresov, 3.Bf4" 1.d4 d5 2.Nc3 Nf6 3.Bf4 * D00p "Queen's Pawn: Veresov, 3.Nf3" 1.d4 d5 2.Nc3 Nf6 3.Nf3 * D00p "Queen's Pawn: Veresov, 3.Nf3 g6" 1.d4 d5 2.Nc3 Nf6 3.Nf3 g6 * D00q "Queen's Pawn: Anti-King's Indian" 1.d4 d5 2.Nc3 Nf6 3.Nf3 g6 4.Bf4 * D00r "Queen's Pawn: Anti-King's Indian, Main Line" 1.d4 d5 2.Nc3 Nf6 3.Nf3 g6 4.Bf4 Bg7 5.e3 O-O 6.Be2 * D00s "Blackmar-Diemer Gambit (BDG)" 1.d4 d5 2.Nc3 Nf6 3.e4 * D00s "Blackmar-Diemer: Hubsch Gambit" 1.d4 d5 2.Nc3 Nf6 3.e4 Nxe4 * D00t "Blackmar-Diemer: 3...dxe4" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 * D00t "Blackmar-Diemer: von Popiel Attack" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.Bg5 * D00u "Blackmar-Diemer: 4.f3" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 * D00u "Blackmar-Diemer: O'Kelly Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 c6 * D00u "Blackmar-Diemer: Langeheinecke Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 e3 * D00u "Blackmar-Diemer: Elbert Countergambit" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 e5 * D00u "Blackmar-Diemer: Weinspach Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 e6 * D00u "Blackmar-Diemer: Lamb Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 Nc6 * D00u "Blackmar-Diemer: Vienna Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 Bf5 * D00v "Blackmar-Diemer: Accepted" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 * D00v "Blackmar-Diemer: Ryder Gambit" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Qxf3 * D00w "Blackmar-Diemer: 4.f3 exf3 5.Nxf3" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 * D00w "Blackmar-Diemer: Gunderam Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 Bf5 * D00w "Blackmar-Diemer: Tartakower Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 Bg4 * D00w "Blackmar-Diemer: Ziegler Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 c6 * D00x "Blackmar-Diemer: Euwe Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 e6 * D00y "Blackmar-Diemer: Bogoljubow Defence" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 g6 * D01a "Richter-Veresov Attack" 1.d4 d5 2.Nc3 Nf6 3.Bg5 * D01b "Richter-Veresov: 3...Ne4" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Ne4 * D01c "Richter-Veresov: 3...e6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 e6 * D01d "Richter-Veresov: 3...h6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 h6 * D01e "Richter-Veresov: 3...g6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 g6 * D01f "Richter-Veresov: 3...c6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 c6 * D01g "Richter-Veresov: 3...c5" 1.d4 d5 2.Nc3 Nf6 3.Bg5 c5 * D01h "Richter-Veresov: 3...Bf5" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 * D01i "Richter-Veresov: 3...Bf5 4.f3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 4.f3 * D01j "Richter-Veresov: 3...Bf5 4.Nf3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 4.Nf3 * D01k "Richter-Veresov: 3...Bf5 4.Bxf6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 4.Bxf6 * D01l "Richter-Veresov: 3...Nbd7" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 * D01m "Richter-Veresov: 3...Nbd7 4.f3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.f3 * D01n "Richter-Veresov: 3...Nbd7 4.Nf3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.Nf3 * D01o "Richter-Veresov: 3...Nbd7 4.Nf3 h6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.Nf3 h6 * D01p "Richter-Veresov: 3...Nbd7 4.Nf3 g6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.Nf3 g6 * D02a "Queen's Pawn: 2.Nf3" 1.d4 d5 2.Nf3 * D02a "Queen's Pawn: 2.Nf3 g6" 1.d4 d5 2.Nf3 g6 * D02a "Queen's Pawn: 2.Nf3 Bg4" 1.d4 d5 2.Nf3 Bg4 * D02b "Queen's Pawn: 2.Nf3 c6" 1.d4 d5 2.Nf3 c6 * D02c "Queen's Pawn: London" 1.d4 d5 2.Nf3 c6 3.Bf4 * D02c "Queen's Pawn: London, Alapin Variation" 1.d4 d5 2.Nf3 c6 3.Bf4 Qb6 * D02d "Queen's Pawn: 2.Nf3 Bf5" 1.d4 d5 2.Nf3 Bf5 * D02d "Queen's Pawn: 2.Nf3 Bf5 3.e3" 1.d4 d5 2.Nf3 Bf5 3.e3 * D02d "Queen's Pawn: 2.Nf3 Bf5 3.e3 c6" 1.d4 d5 2.Nf3 Bf5 3.e3 c6 * D02d "Queen's Pawn: 2.Nf3 Bf5 3.Bf4" 1.d4 d5 2.Nf3 Bf5 3.Bf4 * D02d "Queen's Pawn: 2.Nf3 Bf5 3.Bf4 c6" 1.d4 d5 2.Nf3 Bf5 3.Bf4 c6 * D02d "Queen's Pawn: 2.Nf3 Bf5 3.Bf4 e6" 1.d4 d5 2.Nf3 Bf5 3.Bf4 e6 * D02e "Queen's Pawn: 2.Nf3 Nc6" 1.d4 d5 2.Nf3 Nc6 * D02f "Queen's Pawn: 2.Nf3 Nc6 3.Bf4" 1.d4 d5 2.Nf3 Nc6 3.Bf4 * D02g "Queen's Pawn: 2.Nf3 Nc6 3.g3" 1.d4 d5 2.Nf3 Nc6 3.g3 * D02g "Queen's Pawn: 2.Nf3 Nc6 3.g3 Bg4" 1.d4 d5 2.Nf3 Nc6 3.g3 Bg4 * D02h "Queen's Pawn: 2.Nf3 e6" 1.d4 d5 2.Nf3 e6 * D02i "Queen's Pawn: 2.Nf3 e6 3.g3" 1.d4 d5 2.Nf3 e6 3.g3 * D02i "Queen's Pawn: 2.Nf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 * D02i "Queen's Pawn: 2.Nf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 4.Bg2 * D02i "Queen's Pawn: 2.Nf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 4.Bg2 cxd4 5.Nxd4 * D02i "Queen's Pawn: 2.Nf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 4.Bg2 cxd4 5.Nxd4 e5 * D02j "Queen's Pawn: Krause Variation" 1.d4 d5 2.Nf3 c5 * D02j "Queen's Pawn: Krause, 3.c4" 1.d4 d5 2.Nf3 c5 3.c4 * D02j "Queen's Pawn: Krause, Reversed Slav" 1.d4 d5 2.Nf3 c5 3.c3 * D02j "Queen's Pawn: Krause, Reversed QGD" 1.d4 d5 2.Nf3 c5 3.e3 * D02j "Queen's Pawn: Krause, Reversed QGA" 1.d4 d5 2.Nf3 c5 3.dxc5 * D02k "Queen's Pawn: 2.Nf3 Nf6" 1.d4 d5 2.Nf3 Nf6 * D02k "Queen's Pawn: 3.c3" 1.d4 d5 2.Nf3 Nf6 3.c3 * D02l "Queen's Pawn: London" 1.d4 d5 2.Nf3 Nf6 3.Bf4 * D02m "Queen's Pawn: London" 1.d4 d5 2.Nf3 Nf6 3.Bf4 Bf5 * D02n "Queen's Pawn: London" 1.d4 d5 2.Nf3 Nf6 3.Bf4 e6 * D02o "Queen's Pawn: London" 1.d4 d5 2.Nf3 Nf6 3.Bf4 c5 * D02p "Queen's Pawn: London" 1.d4 d5 2.Nf3 Nf6 3.Bf4 c5 4.e3 e6 * D02p "Queen's Pawn: London" 1.d4 d5 2.Nf3 Nf6 3.Bf4 c5 4.e3 e6 5.c3 Nc6 * D02q "Queen's Pawn: London" 1.d4 d5 2.Nf3 Nf6 3.Bf4 e6 4.e3 c5 5.c3 Nc6 6.Bd3 Bd6 * D02r "Queen's Pawn: 3.g3" 1.d4 d5 2.Nf3 Nf6 3.g3 * D02s "Queen's Pawn: 3.g3 c6" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 * D02s "Queen's Pawn: 3.g3 c6" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 * D02t "Queen's Pawn: 3.g3 c6 4.Bg2 Bg4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 * D02t "Queen's Pawn: 3.g3 c6 4.Bg2 Bg4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 5.O-O * D02t "Queen's Pawn: 3.g3 c6 4.Bg2 Bg4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 5.O-O Nbd7 * D02t "Queen's Pawn: 3.g3 c6 4.Bg2 Bg4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 5.O-O Nbd7 6.Nbd2 e6 * D02u "Queen's Pawn: 3.g3 g6" 1.d4 d5 2.Nf3 Nf6 3.g3 g6 * D02u "Queen's Pawn: 3.g3 g6" 1.d4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 * D02u "Queen's Pawn: 3.g3 g6" 1.d4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O * D03a "Torre Attack (Tartakower)" 1.d4 d5 2.Nf3 Nf6 3.Bg5 * D03b "Torre Attack: 3...Ne4" 1.d4 d5 2.Nf3 Nf6 3.Bg5 Ne4 * D03c "Torre Attack: 3...Ne4 4.Bf4" 1.d4 d5 2.Nf3 Nf6 3.Bg5 Ne4 4.Bf4 * D03d "Torre Attack: 3...e6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 * D03e "Torre Attack: 3...e6 4.e3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 * D03f "Torre Attack: 3...e6 4.e3 Nbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 Nbd7 * D03f "Torre Attack: 3...e6 4.e3 Nbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 Nbd7 5.Nbd2 Be7 * D03g "Torre Attack: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 * D03h "Torre Attack: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 5.Nbd2 Nbd7 * D03i "Torre Attack: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 5.Nbd2 Be7 * D03j "Torre Attack: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 5.Nbd2 Be7 6.c3 Nbd7 * D03k "Torre Attack: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 * D03k "Torre Attack: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.c3 Bg7 * D03l "Torre Attack: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 * D03l "Torre Attack: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 * D03m "Torre Attack: 3...g6 4.e3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 * D03m "Torre Attack: 3...g6 4.e3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 * D03n "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 5.Nbd2 * D03o "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 5.Nbd2 O-O * D03p "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O 6.c3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.c3 * D03q "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O 6.c3 Nbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.c3 Nbd7 * D03r "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O 6.c3 Nbd7 7.Be2" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.c3 Nbd7 7.Be2 * D03s "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O 6.Bd3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 5.Nbd2 O-O 6.Bd3 * D03t "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O 6.Bd3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.Bd3 c5 * D03t "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O 6.Bd3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.Bd3 c5 7.c3 * D03u "Torre Attack: 3...g6 4.e3 Bg7 5.Nbd2 O-O 6.Bd3 c5 7.c3 Nbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.Bd3 c5 7.c3 Nbd7 * D04a "Queen's Pawn: Colle" 1.d4 d5 2.Nf3 Nf6 3.e3 * D04b "Colle: 3...Bg4" 1.d4 d5 2.Nf3 Nf6 3.e3 Bg4 * D04c "Colle: 3...Bf5" 1.d4 d5 2.Nf3 Nf6 3.e3 Bf5 * D04d "Colle: 3...Bf5, Alekhine Variation" 1.d4 d5 2.Nf3 Nf6 3.e3 Bf5 4.Bd3 e6 * D04e "Colle: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.e3 g6 * D04f "Colle: 3...c6" 1.d4 d5 2.Nf3 Nf6 3.e3 c6 * D04g "Colle: 3...c5" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 * D04h "Colle: 3...c5 4.c3" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 4.c3 * D04i "Colle: 3...c5 4.c3 Nc6" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 4.c3 Nc6 * D04j "Colle: 3...c5 4.c3 Nbd7" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 4.c3 Nbd7 * D05a "Colle: 3...e6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 * D05b "Colle: 3...e6 4.Nbd2" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Nbd2 * D05c "Colle: Zukertort Variation" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Nbd2 c5 5.b3 * D05d "Colle: 3...e6 4.Bd3" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 * D05e "Colle: 3...e6 4.Bd3 c5" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 * D05f "Colle: Rubinstein's Attack" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.b3 * D05g "Colle: Rubinstein's Attack, 5...Nc6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.b3 Nc6 * D05h "Colle: 5.c3" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 * D05i "Colle: 5.c3 Nbd7" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nbd7 * D05j "Colle: 5.c3 Nc6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 * D05k "Colle: 5.c3 Nc6 6.Nbd2" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 * D05l "Colle: 5.c3 Nc6 6.Nbd2 Bd6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 Bd6 * D05m "Colle: 5.c3 Nc6 6.Nbd2 Bd6 7.O-O O-O" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 Bd6 7.O-O O-O * D05n "Colle: 5.c3 Nc6 6.Nbd2 Bd6 7.O-O O-O 8.dxc5 Bxc5" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 Bd6 7.O-O O-O 8.dxc5 Bxc5 * D06a "Queen's Gambit" 1.d4 d5 2.c4 * D06b "QGD: Austrian Defence" 1.d4 d5 2.c4 c5 * D06b "QGD: Austrian, Rubinstein Variation" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 * D06b "QGD: Austrian, Rubinstein, 4.dxc5" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 4.dxc5 * D06c "QGD: Austrian, Rubinstein, 4.Nf3" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 4.Nf3 * D06d "QGD: Austrian, Rubinstein, 4.Nf3 cxd4" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 4.Nf3 cxd4 * D06e "QGD: Marshall Defence" 1.d4 d5 2.c4 Nf6 * D06f "QGD: Marshall Defence, 3.Nc3" 1.d4 d5 2.c4 Nf6 3.Nc3 * D06g "QGD: Marshall Defence, 3.Nf3" 1.d4 d5 2.c4 Nf6 3.Nf3 * D06h "QGD: Marshall Defence, 3.cxd5" 1.d4 d5 2.c4 Nf6 3.cxd5 * D06i "QGD: Marshall Defence, 3.cxd5 Nxd5" 1.d4 d5 2.c4 Nf6 3.cxd5 Nxd5 * D06j "QGD: Marshall Defence, 3.cxd5 Nxd5 4.Nf3" 1.d4 d5 2.c4 Nf6 3.cxd5 Nxd5 4.Nf3 * D06k "QGD: Marshall Defence, 3.cxd5 Nxd5 4.e4" 1.d4 d5 2.c4 Nf6 3.cxd5 Nxd5 4.e4 * D06l "QGD: 2...Bf5" 1.d4 d5 2.c4 Bf5 * D06l "QGD: 2...Bf5 3.Qb3" 1.d4 d5 2.c4 Bf5 3.Qb3 * D06m "QGD: 2...Bf5 3.Nc3" 1.d4 d5 2.c4 Bf5 3.Nc3 * D06m "QGD: 2...Bf5 3.Nc3 e6" 1.d4 d5 2.c4 Bf5 3.Nc3 e6 * D06n "QGD: 2...Bf5 3.Nf3" 1.d4 d5 2.c4 Bf5 3.Nf3 * D06n "QGD: 2...Bf5 3.Nf3 e6" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 * D06o "QGD: 2...Bf5 3.Nf3 e6 4.Qb3" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 4.Qb3 * D06p "QGD: 2...Bf5 3.Nf3 e6 4.Nc3" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 4.Nc3 * D06q "QGD: 2...Bf5 3.Nf3 e6 4.Nc3 Nf6" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 4.Nc3 Nf6 * D06r "QGD: 2...Bf5 3.cxd5" 1.d4 d5 2.c4 Bf5 3.cxd5 * D06s "QGD: 2...Bf5 3.cxd5 Bxb1 4.Rxb1" 1.d4 d5 2.c4 Bf5 3.cxd5 Bxb1 4.Rxb1 * D06t "QGD: 2...Bf5 3.cxd5 Bxb1 4.Qa4+" 1.d4 d5 2.c4 Bf5 3.cxd5 Bxb1 4.Qa4+ * D06u "QGD: 2...Bf5 3.cxd5 Bxb1 4.Qa4+ c6 5.Rxb1" 1.d4 d5 2.c4 Bf5 3.cxd5 Bxb1 4.Qa4+ c6 5.Rxb1 * D07a "QGD: Chigorin Defence" 1.d4 d5 2.c4 Nc6 * D07b "QGD: Chigorin, 3.e3" 1.d4 d5 2.c4 Nc6 3.e3 * D07c "QGD: Chigorin, 3.cxd5" 1.d4 d5 2.c4 Nc6 3.cxd5 * D07c "QGD: Chigorin, 3.cxd5, Main Line" 1.d4 d5 2.c4 Nc6 3.cxd5 Qxd5 4.e3 e5 5.Nc3 Bb4 6.Bd2 Bxc3 * D07d "QGD: Chigorin, 3.cxd5, Main Line, 7.bxc3" 1.d4 d5 2.c4 Nc6 3.cxd5 Qxd5 4.e3 e5 5.Nc3 Bb4 6.Bd2 Bxc3 7.bxc3 * D07e "QGD: Chigorin, 3.cxd5 Main Line, 7.Bxc3" 1.d4 d5 2.c4 Nc6 3.cxd5 Qxd5 4.e3 e5 5.Nc3 Bb4 6.Bd2 Bxc3 7.Bxc3 * D07f "QGD: Chigorin, 3.Nf3" 1.d4 d5 2.c4 Nc6 3.Nf3 * D07g "QGD: Chigorin, Lazard Gambit" 1.d4 d5 2.c4 Nc6 3.Nf3 e5 * D07h "QGD: Chigorin, 3.Nf3 Bg4" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 * D07i "QGD: Chigorin, 3.Nf3 Bg4 4.e3" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.e3 * D07j "QGD: Chigorin, 3.Nf3 Bg4 4.Nc3" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.Nc3 * D07k "QGD: Chigorin, 3.Nf3 Bg4 4.cxd5" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.cxd5 * D07l "QGD: Chigorin, 3.Nf3 Bg4 4.cxd5 Bxf3 5.dxc6" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.cxd5 Bxf3 5.dxc6 * D07m "QGD: Chigorin, 3.Nf3 Bg4 4.cxd5 Bxf3 5.gxf3" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.cxd5 Bxf3 5.gxf3 * D07n "QGD: Chigorin, 3.Nc3" 1.d4 d5 2.c4 Nc6 3.Nc3 * D07o "QGD: Chigorin, Tartakower Gambit" 1.d4 d5 2.c4 Nc6 3.Nc3 e5 * D07p "QGD: Chigorin, 3.Nc3 Nf6" 1.d4 d5 2.c4 Nc6 3.Nc3 Nf6 * D07q "QGD: Chigorin, 3.Nc3 Nf6 4.Nf3" 1.d4 d5 2.c4 Nc6 3.Nc3 Nf6 4.Nf3 * D07r "QGD: Chigorin, 3.Nc3 Nf6 4.Nf3 Bg4" 1.d4 d5 2.c4 Nc6 3.Nc3 Nf6 4.Nf3 Bg4 * D07s "QGD: Chigorin, 3.Nc3 dxc4" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 * D07t "QGD: Chigorin, 3.Nc3 dxc4 4.d5" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.d5 * D07u "QGD: Chigorin, 3.Nc3 dxc4 4.Nf3" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.Nf3 * D07v "QGD: Chigorin, 3.Nc3 dxc4 4.Nf3 Nf6" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.Nf3 Nf6 * D07w "QGD: Chigorin, 3.Nc3 dxc4 4.Nf3 Nf6 5.e4" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.Nf3 Nf6 5.e4 * D08 "QGD: Albin Countergambit" 1.d4 d5 2.c4 e5 * D08 "QGD: Albin, 3.e3" 1.d4 d5 2.c4 e5 3.e3 * D08 "QGD: Albin, 3.dxe5" 1.d4 d5 2.c4 e5 3.dxe5 * D08 "QGD: Albin, 3.dxe5 d4" 1.d4 d5 2.c4 e5 3.dxe5 d4 * D08 "QGD: Albin, Lasker Trap" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.e3 Bb4+ 5.Bd2 dxe3 * D08 "QGD: Albin, 4.e4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.e4 * D08 "QGD: Albin, 4.a3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.a3 * D08 "QGD: Albin, 4.Nf3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 * D08 "QGD: Albin, 4.Nf3 Nc6" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 * D08 "QGD: Albin, Alapin Variation" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 * D08 "QGD: Albin, Janowski Variation" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 f6 * D08 "QGD: Albin, Balogh Variation" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 Qe7 * D08 "QGD: Albin, Alapin, 5...Bg4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 Bg4 * D08 "QGD: Albin, Krenosz Variation" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 Bg4 6.h3 Bxf3 7.Nxf3 Bb4+ 8.Bd2 Qe7 * D08 "QGD: Albin, 4.Nf3 Nc6 5.a3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 * D08 "QGD: Albin, 4.Nf3 Nc6 5.a3 a5" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 a5 * D08 "QGD: Albin, 4.Nf3 Nc6 5.a3 Be6" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 Be6 * D08 "QGD: Albin, 4.Nf3 Nc6 5.a3 Bg4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 Bg4 * D08 "QGD: Albin, 4.Nf3 Nc6 5.a3 Bg4 6.Nbd2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 Bg4 6.Nbd2 * D09 "QGD: Albin, 5.g3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 * D09 "QGD: Albin, 5.g3 Nge7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Nge7 * D09 "QGD: Albin, 5.g3 Bf5" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bf5 * D09 "QGD: Albin, 5.g3 Bg4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bg4 * D09 "QGD: Albin, 5.g3 Bg4 6.Bg2 Qd7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bg4 6.Bg2 Qd7 * D09 "QGD: Albin, 5.g3 Bg4 6.Bg2 Qd7 7.O-O O-O-O" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bg4 6.Bg2 Qd7 7.O-O O-O-O * D09 "QGD: Albin, 5.g3 Be6" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 * D09 "QGD: Albin, 5.g3 Be6 6.b3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.b3 * D09 "QGD: Albin, 5.g3 Be6 6.Bg2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Bg2 * D09 "QGD: Albin, 5.g3 Be6 6.Nbd2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 * D09 "QGD: Albin, 5.g3 Be6 6.Nbd2 Qd7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 * D09 "QGD: Albin, 5.g3 Be6 6.Nbd2 Qd7 7.Bg2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 * D09 "QGD: Albin, 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 O-O-O" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 O-O-O * D09 "QGD: Albin, 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 Nge7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 Nge7 * D10a "Slav Defence" 1.d4 d5 2.c4 c6 * D10a "Diemer-Duhm Gambit (DDG) vs. Slav/Caro-Kann" 1.d4 d5 2.c4 c6 3.e4 * D10a "Slav: 3.g3" 1.d4 d5 2.c4 c6 3.g3 * D10a "Slav: 3.Bf4" 1.d4 d5 2.c4 c6 3.Bf4 * D10b "Slav: Exchange" 1.d4 d5 2.c4 c6 3.cxd5 * D10b "Slav: Exchange" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 * D10c "Slav: Exchange, 4.Bf4" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Bf4 * D10d "Slav: Exchange, 4.Nf3" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nf3 * D10e "Slav: Exchange, 4.Nc3" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 * D10e "Slav: Exchange, 4.Nc3 Nf6" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 * D10e "Slav: Exchange, 4.Nc3 Nf6 5.Bf4" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 * D10f "Slav: Exchange, 4.Nc3 Nf6 5.Bf4 Nc6" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 Nc6 * D10f "Slav: Exchange, 4.Nc3 Nf6 5.Bf4 Nc6 6.e3" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 Nc6 6.e3 * D10g "Slav: Exchange, 4.Nc3 Nf6 5.Bf4 Nc6 6.e3 a6" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 Nc6 6.e3 a6 * D10h "Slav: 3.e3" 1.d4 d5 2.c4 c6 3.e3 * D10h "Slav: 3.e3 Bf5" 1.d4 d5 2.c4 c6 3.e3 Bf5 * D10h "Slav: 3.e3 Nf6" 1.d4 d5 2.c4 c6 3.e3 Nf6 * D10i "Slav: 3.Nc3" 1.d4 d5 2.c4 c6 3.Nc3 * D10j "Slav: Winawer Countergambit" 1.d4 d5 2.c4 c6 3.Nc3 e5 * D10k "Slav: Winawer Countergambit, 4.cxd5" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.cxd5 * D10k "Slav: Winawer Countergambit, 4.cxd5 cxd5 5.dxe5" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.cxd5 cxd5 5.dxe5 * D10l "Slav: Winawer Countergambit, 4.cxd5 cxd5 5.Nf3" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.cxd5 cxd5 5.Nf3 * D10m "Slav: Winawer Countergambit Accepted" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.dxe5 * D10m "Slav: Winawer Countergambit Accepted, 6.Nd2" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.dxe5 d4 5.Ne4 Qa5+ 6.Nd2 * D10n "Slav: Winawer Countergambit Accepted, 6.Bd2" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.dxe5 d4 5.Ne4 Qa5+ 6.Bd2 * D10o "Slav: 3.Nc3 dxc4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 * D10o "Slav: 3.Nc3 dxc4 4.a4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.a4 * D10o "Slav: 3.Nc3 dxc4 4.e3" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e3 * D10p "Slav: 3.Nc3 dxc4 4.e4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e4 * D10q "Slav: 3.Nc3 dxc4 4.e4 b5" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e4 b5 * D10r "Slav: 3.Nc3 dxc4 4.e4 b5 5.a4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e4 b5 5.a4 * D10r "Slav: 3.Nc3 Nf6" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 * D10s "Slav: 3.Nc3 Nf6 4.Bg5" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.Bg5 * D10t "Slav: 3.Nc3 Nf6 4.Bg5 dxc4" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.Bg5 dxc4 * D10u "Slav: 3.Nc3 Nf6 4.e3" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 * D10v "Slav: 3.Nc3 Nf6 4.e3 Bf5" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 Bf5 * D10w "Slav: 3.Nc3 Nf6 4.e3 a6" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 * D10w "Slav: 3.Nc3 Nf6 4.e3 a6 5.Bd3" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 5.Bd3 * D10x "Slav: 3.Nc3 Nf6 4.e3 a6 5.Qc2" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 5.Qc2 * D10y "Slav: 3.Nc3 Nf6 4.e3 a6 5.Qc2 b5" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 5.Qc2 b5 * D11a "Slav: 3.Nf3" 1.d4 d5 2.c4 c6 3.Nf3 * D11b "Slav: 3.Nf3 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Bg4 * D11c "Slav: 3.Nf3 Bf5" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 * D11c "Slav: 3.Nf3 Bf5 4.Nc3" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 4.Nc3 * D11c "Slav: 3.Nf3 Bf5 4.Nc3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 4.Nc3 e6 * D11d "Slav: 3.Nf3 Bf5 4.Nc3 e6 5.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 4.Nc3 e6 5.Qb3 * D11e "Slav: 3.Nf3 dxc4" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 * D11e "Slav: 3.Nf3 dxc4 4.Nc3" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.Nc3 * D11e "Slav: 3.Nf3 dxc4 4.e3" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 * D11e "Slav: 3.Nf3 dxc4 4.e3 Be6" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 Be6 * D11f "Slav: 3.Nf3 dxc4 4.e3 b5" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 b5 * D11f "Slav: 3.Nf3 dxc4 4.e3 b5 5.a4" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 b5 5.a4 * D11f "Slav: 3.Nf3 dxc4 4.e3 b5 5.a4 e6" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 b5 5.a4 e6 * D11g "Slav: 3.Nf3 Nf6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 * D11h "Slav: 4.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Qb3 * D11i "Slav: 4.Qc2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Qc2 * D11j "Slav: 4.Qc2 g6 5.Bf4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Qc2 g6 5.Bf4 * D11k "Slav: Breyer Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nbd2 * # # There are a lot of Slav-Reti system lines here, to try to catch # transpositions with a delayed d4/c4 around move 6 or 7: # D11l "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.Nbd2 * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.Nbd2 Bd6 * D11m "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.Nbd2 Be7 * D11n "Slav: Slav-Reti with b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 * D11n "Slav: Slav-Reti with b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Bd6 * D11n "Slav: Slav-Reti with b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Bd6 8.Bb2 * D11n "Slav: Slav-Reti with b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Bd6 8.Bb2 O-O 9.Nbd2 * D11n "Slav: Slav-Reti with b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Be7 * D11n "Slav: Slav-Reti with b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Be7 8.Bb2 * D11n "Slav: Slav-Reti with b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Be7 8.Bb2 O-O 9.Nbd2 * D11o "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 * D11o "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 * D11o "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11o "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 6.O-O * D11o "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 6.O-O Nbd7 * D11o "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 6.O-O Be7 * D11p "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 6.O-O h6 * D11p "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 6.O-O h6 7.Nbd2 * D11p "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 6.O-O h6 7.Nc3 * D11p "Slav: Slav-Reti System" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 6.O-O h6 7.b3 * D11q "Slav: 4.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 * D11r "Slav: 4.e3 g6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 g6 * D11s "Slav: 4.e3 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 a6 * D11t "Slav: 4.e3 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bg4 * D11t "Slav: 4.e3 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bg4 5.Nc3 * D12a "Slav: 4.e3 Bf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 * D12b "Slav: 4.e3 Bf5 5.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Qb3 * D12c "Slav: 4.e3 Bf5 5.cxd5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 * D12c "Slav: 4.e3 Bf5 5.cxd5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 * D12d "Slav: 4.e3 Bf5 5.cxd5 cxd5 6.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Qb3 * D12e "Slav: 4.e3 Bf5 5.cxd5 cxd5 6.Qb3 Qc7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Qb3 Qc7 * D12f "Slav: 4.e3 Bf5 5.cxd5 cxd5 6.Nc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Nc3 * D12f "Slav: 4.e3 Bf5 5.cxd5 cxd5 6.Nc3, Amsterdam Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Nc3 e6 7.Ne5 Nfd7 * D12g "Slav: 4.e3 Bf5 5.Bd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Bd3 * D12h "Slav: 4.e3 Bf5 5.Bd3 Bxd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Bd3 Bxd3 * D12i "Slav: 4.e3 Bf5 5.Nc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 * D12i "Slav: 4.e3 Bf5 5.Nc3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 * D12j "Slav: 4.e3 Bf5 5.Nc3 e6 6.Be2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Be2 * D12k "Slav: 4.e3 Bf5 5.Nc3 e6 6.Bd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 * D12l "Slav: 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3 * D12l "Slav: 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3 7.Qxd3 * D12m "Slav: 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3 7.Qxd3 Nbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3 7.Qxd3 Nbd7 * D12n "Slav: 4.e3 Bf5 5.Nc3 e6 6.Nh4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Nh4 * D12o "Slav: 4.e3 Bf5 5.Nc3 e6 6.Nh4 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Nh4 Bg4 * D12p "Slav: 4.e3 Bf5 5.Nc3 e6 6.Nh4 Be4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Nh4 Be4 * D13a "Slav: Exchange" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 * D13b "Slav: Exchange" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 * D13c "Slav: Exchange, 5.Nc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 * D13d "Slav: Exchange, 5.Nc3 Bf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Bf5 * D13e "Slav: Exchange, 5.Nc3 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 a6 * D13f "Slav: Exchange, 5.Nc3 a6 6.Ne5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 a6 6.Ne5 * D13g "Slav: Exchange, 5.Nc3 a6 6.Bf4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 a6 6.Bf4 * D13h "Slav: Exchange, 5.Nc3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 e6 * D13i "Slav: Exchange, 5.Nc3 e6 6.Bf4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 e6 6.Bf4 * D13j "Slav: Exchange, 5.Nc3 Nc6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 * D13k "Slav: Exchange, 6.Bf4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 * D13l "Slav: Exchange, 6.Bf4 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 * D13m "Slav: Exchange, 6.Bf4 a6 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 7.e3 * D13n "Slav: Exchange, 6.Bf4 a6 7.e3 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 7.e3 Bg4 * D13o "Slav: Exchange, 6.Bf4 a6 7.e3 Bg4 8.Be2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 7.e3 Bg4 8.Be2 * D13p "Slav: Exchange, 6.Bf4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 * D13q "Slav: Exchange, 6.Bf4 e6 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 * D13r "Slav: Exchange, 6.Bf4 e6 7.e3 Be7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 Be7 * D13s "Slav: Exchange, 6.Bf4 e6 7.e3 Bd6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 Bd6 * D13t "Slav: Exchange, 6.Bf4 e6 7.e3 Bd6 8.Bxd6 Qxd6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 Bd6 8.Bxd6 Qxd6 * D14a "Slav: Exchange, 6.Bf4 Bf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 * D14b "Slav: Exchange, 6.Bf4 Bf5 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 * D14c "Slav: Exchange, 6.Bf4 Bf5 7.e3 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 a6 * D14d "Slav: Exchange, 6.Bf4 Bf5 7.e3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 * D14e "Slav: Exchange, 8.Ne5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Ne5 * D14f "Slav: Exchange, 8.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Qb3 * D14g "Slav: Exchange, Trifunovic Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Qb3 Bb4 * D14h "Slav: Exchange, 8.Bd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 * D14i "Slav: Exchange, 8.Bd3 Bxd3 9.Qxd3 Bd6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 * D14j "Slav: Exchange, 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 * D14k "Slav: Exchange, 8.Bd3 Main Line" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O * D14l "Slav: Exchange, 8.Bd3 Main Line, 12.Rac1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O 12.Rac1 * D14m "Slav: Exchange, 8.Bd3 Main Line, 12.Rfc1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O 12.Rfc1 * D14n "Slav: Exchange, 8.Bd3 Main Line, 12.Rfc1 Rfc8" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O 12.Rfc1 Rfc8 * D14o "Slav: Exchange, 8.Bb5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bb5 * D14p "Slav: Exchange, 8.Bb5 Nd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bb5 Nd7 * D14q "Slav: Exchange, 8.Bb5 Nd7 9.Qa4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bb5 Nd7 9.Qa4 * D15a "Slav: 4.Nc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 * D15b "Slav: 4.Nc3 Bf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 Bf5 * D15b "Slav: 4.Nc3 Bf5 5.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 Bf5 5.Qb3 * D15c "Slav: Suechting Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 Qb6 * D15d "Slav: Chameleon Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 * D15e "Slav: Chameleon, 5.Bg5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.Bg5 * D15f "Slav: Chameleon, 5.Ne5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.Ne5 * D15g "Slav: Chameleon, 5.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.e3 * D15h "Slav: Chameleon, 5.e3 b5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.e3 b5 * D15i "Slav: Chameleon, 5.e3 b5 6.b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.e3 b5 6.b3 * D15j "Slav: Chameleon, 5.c5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.c5 * D15k "Slav: Chameleon, 5.c5 Nbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.c5 Nbd7 * D15l "Slav: Chameleon, 5.a4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.a4 * D15m "Slav: Chameleon, 5.a4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.a4 e6 * D15n "Slav: Chameleon, 5.a4 e6 6.Bg5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.a4 e6 6.Bg5 * D15o "Slav: Accepted" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 * D15p "Slav: Accepted, 5.Ne5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.Ne5 * D15q "Slav: Accepted, Alekhine" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e3 * D15r "Slav: Accepted, Alekhine: 5...b5 6.a4 b4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e3 b5 6.a4 b4 * D15s "Slav: Accepted, Alekhine: 5...b5 6.a4 b4 7.Nb1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e3 b5 6.a4 b4 7.Nb1 * D15t "Slav: Geller (Tolush) Gambit" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 * D15t "Slav: Geller Gambit" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 * D15u "Slav: Geller Gambit, Spassky Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.Qc2 * D15v "Slav: Geller Gambit, 6.e5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 * D15w "Slav: Geller Gambit, 6.e5 Nd5 7.Ng5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 Nd5 7.Ng5 * D15x "Slav: Geller Gambit, 6.e5 Nd5 7.a4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 Nd5 7.a4 * D15y "Slav: Geller Gambit, 6.e5 Nd5 7.a4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 Nd5 7.a4 e6 * D16a "Slav: Alapin" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 * D16b "Slav: 5.a4 Nd5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Nd5 * D16c "Slav: Soultanbeieff Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 e6 * D16d "Slav: Murey Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 a5 * D16e "Slav: Smyslov Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 * D16f "Slav: Smyslov, 6.Ne5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.Ne5 * D16g "Slav: Smyslov, 6.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e3 * D16h "Slav: Smyslov, 6.e3 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e3 Bg4 * D16i "Slav: Smyslov, 6.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e4 * D16j "Slav: Smyslov, 6.e4 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e4 Bg4 * D16k "Slav: Smyslov, 6.e4 Bg4 7.Bxc4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e4 Bg4 7.Bxc4 e6 * D16l "Slav: Bronstein (Steiner) Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 * D16m "Slav: Bronstein, 6.Ne5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 * D16n "Slav: Bronstein, 6.Ne5 Bh5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 * D16o "Slav: Bronstein, 6.Ne5 Bh5 7.h3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.h3 * D16p "Slav: Bronstein, 6.Ne5 Bh5 7.g3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.g3 * D16q "Slav: Bronstein, 6.Ne5 Bh5 7.f3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.f3 * D16r "Slav: Bronstein, 6.Ne5 Bh5 7.f3 Nfd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.f3 Nfd7 * D16s "Slav: Bronstein, 6.Ne5 Bh5 7.f3 Nfd7 8.Nxc4 e5 9.Ne4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.f3 Nfd7 8.Nxc4 e5 9.Ne4 * D17a "Slav: Czech Defence" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 * D17b "Slav: Czech, 6.Nh4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 * D17c "Slav: Czech, 6.Nh4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 e6 * D17d "Slav: Czech, 6.Nh4 e6 7.Nxf5 exf5 8.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 e6 7.Nxf5 exf5 8.e3 * D17e "Slav: Czech, 6.Nh4 Bc8" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 Bc8 * D17e "Slav: Czech, 6.Nh4 Bc8 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 Bc8 7.e3 * D17f "Slav: Central Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 * D17g "Slav: Central, 6.Ne5 Na6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Na6 * D17g "Slav: Central, 6.Ne5 Na6 7.f3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Na6 7.f3 * D17h "Slav: Central, 6.Ne5 Nbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Nbd7 * D17i "Slav: Central, Carlsbad Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Nbd7 7.Nxc4 Qc7 8.g3 e5 * D17j "Slav: Central, Carlsbad, Main Line" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Nbd7 7.Nxc4 Qc7 8.g3 e5 9.dxe5 Nxe5 10.Bf4 Nfd7 11.Bg2 f6 * D17k "Slav: Central, 6.Ne5 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 * D17k "Slav: Central, 6.Ne5 e6 7.f3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 * D17l "Slav: Central, Huebner (7...c5)" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 c5 * D17m "Slav: Central, 7.f3 Bb4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 * D17m "Slav: Central, 7.f3 Bb4 8.Bg5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.Bg5 * D17n "Slav: Central, 7.f3 Bb4 8.Nxc4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.Nxc4 * D17o "Slav: Central, 7.f3 Bb4 8.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 * D17p "Slav: Central, Piece-Sac Line" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 * D17q "Slav: Central, Main Line" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 * D17r "Slav: Central, Main Line, 15.Nxc4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 Qd5+ 14.Kc2 Na6 15.Nxc4 * D17s "Slav: Central, Main Line, 15.Nxc4 O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 Qd5+ 14.Kc2 Na6 15.Nxc4 O-O * D17t "Slav: Central, Main Line, 15.Nxc4 O-O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 Qd5+ 14.Kc2 Na6 15.Nxc4 O-O-O * D18a "Slav: Dutch Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 * D18b "Slav: Dutch, Lasker Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 Na6 * D18c "Slav: Dutch, 6...e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 * D18d "Slav: Dutch, 6...e6 7.Bxc4 Bb4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D18e "Slav: Dutch, 8.O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O * D18f "Slav: Dutch, 8...Nbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 * D18g "Slav: Dutch, 8...Nbd7 9.Nh4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Nh4 * D18h "Slav: Dutch, 8...Nbd7 9.Nh4 Bg6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Nh4 Bg6 * D18i "Slav: Dutch, 8...Nbd7 9.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qb3 * D18j "Slav: Dutch, 8...Nbd7 9.Qb3 a5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qb3 a5 * D18k "Slav: Dutch, 8...Nbd7 9.Qe2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qe2 * D18l "Slav: Dutch, 8...Nbd7 9.Qe2 Bg6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qe2 Bg6 * D18m "Slav: Dutch, 8...Nbd7 9.Qe2 Bg6 10.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qe2 Bg6 10.e4 * D18n "Slav: Dutch, 8...O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O * D18o "Slav: Dutch, 8...O-O 9.Qb3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qb3 * D18p "Slav: Dutch, 8...O-O 9.Nh4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 * D18p "Slav: Dutch, 8...O-O 9.Nh4 Bg6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Bg6 * D18q "Slav: Dutch, 8...O-O 9.Nh4 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Bg4 * D18r "Slav: Dutch, 8...O-O 9.Nh4 Nbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 * D18s "Slav: Dutch, 8...O-O 9.Nh4 Nbd7 10.Nxf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 10.Nxf5 * D18s "Slav: Dutch, 8...O-O 9.Nh4 Nbd7 10.Nxf5 exf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 10.Nxf5 exf5 * D18t "Slav: Dutch, 8...O-O 9.Nh4 Nbd7 10.Nxf5 exf5 11.Qc2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 10.Nxf5 exf5 11.Qc2 * D19a "Slav: Dutch, 8...O-O 9.Qe2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 * D19b "Slav: Dutch, 8...O-O 9.Qe2 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Bg4 * D19c "Slav: Dutch, 8...O-O 9.Qe2 Bg6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Bg6 * D19d "Slav: Dutch, 8...O-O 9.Qe2 Bg6 10.Rd1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Bg6 10.Rd1 * D19d "Slav: Dutch, 8...O-O 9.Qe2 Bg6 10.Rd1 Nbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Bg6 10.Rd1 Nbd7 * D19e "Slav: Dutch, 8...O-O 9.Qe2 Bg6 10.Ne5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Bg6 10.Ne5 * D19e "Slav: Dutch, 8...O-O 9.Qe2 Bg6 10.Ne5 Nbd7, 12.Rd1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Bg6 10.Ne5 Nbd7 * D19f "Slav: Dutch, 8...O-O 9.Qe2 Bg6 10.Ne5 Nbd7, 12.Rd1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Bg6 10.Ne5 Nbd7 11.Nxg6 hxg6 12.Rd1 * D19g "Slav: Dutch, 8...O-O 9.Qe2 Ne4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Ne4 * D19g "Slav: Dutch, Saemisch Variation" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Ne4 10.g4 * D19h "Slav: Dutch, 8...O-O 9.Qe2 Nbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 * D19i "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 * D19i "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4 Bg4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 Bg4 * D19j "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4 Bg6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 Bg6 * D19k "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 * D19l "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 h6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 h6 * D19m "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 Re8" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 Re8 * D19n "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 Bh5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 Bh5 * D19o "Slav: Dutch, 8...O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 Bh5 12.e5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qe2 Nbd7 10.e4 Bg6 11.Bd3 Bh5 12.e5 * D20a "Queen's Gambit Accepted (QGA)" 1.d4 d5 2.c4 dxc4 * D20a "QGA: 3.Qa4+" 1.d4 d5 2.c4 dxc4 3.Qa4+ * D20b "QGA: 3.e3" 1.d4 d5 2.c4 dxc4 3.e3 * D20c "QGA: 3.e3 c5" 1.d4 d5 2.c4 dxc4 3.e3 c5 * D20c "QGA: 3.e3 c5 4.Bxc4" 1.d4 d5 2.c4 dxc4 3.e3 c5 4.Bxc4 * # The following line can arise from a Caro-Kann, Panov-Botvinnik: # 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 dxc4 5.Bxc4 D20c "QGA: 3.e3 c5 4.Bxc4" 1.d4 d5 2.c4 dxc4 3.e3 c5 4.Bxc4 cxd4 5.exd4 * D20d "QGA: 3.e3 e6" 1.d4 d5 2.c4 dxc4 3.e3 e6 * D20d "QGA: 3.e3 e6" 1.d4 d5 2.c4 dxc4 3.e3 e6 4.Bxc4 Nf6 * D20e "QGA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 * D20e "QGA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 * D20f "QGA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 Bb4+ * D20f "QGA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 Bb4+ 5.Nc3 Nf6 * D20g "QGA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 Nf6 * D20h "QGA: 3.e3 Nf6" 1.d4 d5 2.c4 dxc4 3.e3 Nf6 * D20i "QGA: 3.Nc3" 1.d4 d5 2.c4 dxc4 3.Nc3 * D20i "QGA: 3.Nc3 c5" 1.d4 d5 2.c4 dxc4 3.Nc3 c5 * D20i "QGA: 3.Nc3 e5" 1.d4 d5 2.c4 dxc4 3.Nc3 e5 * D20i "QGA: 3.Nc3 Nf6" 1.d4 d5 2.c4 dxc4 3.Nc3 Nf6 * D20j "QGA: 3.Nc3 e6" 1.d4 d5 2.c4 dxc4 3.Nc3 e6 * D20j "QGA: 3.Nc3 e6 4.e4" 1.d4 d5 2.c4 dxc4 3.Nc3 e6 4.e4 * D20k "QGA: 3.Nc3 a6" 1.d4 d5 2.c4 dxc4 3.Nc3 a6 * D20k "QGA: 3.Nc3 a6 4.a4" 1.d4 d5 2.c4 dxc4 3.Nc3 a6 4.a4 * D20l "QGA: 3.e4" 1.d4 d5 2.c4 dxc4 3.e4 * D20l "QGA: 3.e4, Schwartz Defence" 1.d4 d5 2.c4 dxc4 3.e4 f5 * D20m "QGA: 3.e4 Nc6" 1.d4 d5 2.c4 dxc4 3.e4 Nc6 * D20m "QGA: 3.e4 Nc6 4.Nf3" 1.d4 d5 2.c4 dxc4 3.e4 Nc6 4.Nf3 * D20n "QGA: 3.e4 Nc6 4.Be3" 1.d4 d5 2.c4 dxc4 3.e4 Nc6 4.Be3 * D20o "QGA: 3.e4 Nf6" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 * D20o "QGA: 3.e4 Nf6 4.Nc3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.Nc3 * D20o "QGA: 3.e4 Nf6 4.e5" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 * D20o "QGA: 3.e4 Nf6 4.e5 Nd5" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 * D20p "QGA: 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 * D20p "QGA: 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bd3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bd3 * D20p "QGA: 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bd3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bd3 Nc6 * D20q "QGA: 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3 * D20q "QGA: 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3 Nc6 * D20r "QGA: 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3 Nc6 7.Ne2" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3 Nc6 7.Ne2 * D20s "QGA: 3.e4 c5" 1.d4 d5 2.c4 dxc4 3.e4 c5 * D20s "QGA: 3.e4 c5" 1.d4 d5 2.c4 dxc4 3.e4 c5 4.Nf3 * D20t "QGA: 3.e4 c5 4.d5" 1.d4 d5 2.c4 dxc4 3.e4 c5 4.d5 * D20u "QGA: Linares Variation" 1.d4 d5 2.c4 dxc4 3.e4 c5 4.d5 Nf6 5.Nc3 b5 * D20v "QGA: 3.e4 e5" 1.d4 d5 2.c4 dxc4 3.e4 e5 * D20w "QGA: 3.e4 e5 4.Nf3 Bb4+" 1.d4 d5 2.c4 dxc4 3.e4 e5 4.Nf3 Bb4+ * D20x "QGA: 3.e4 e5 4.Nf3 exd4" 1.d4 d5 2.c4 dxc4 3.e4 e5 4.Nf3 exd4 * D20y "QGA: 3.e4 e5 4.Nf3 exd4 5.Bxc4 Nc6" 1.d4 d5 2.c4 dxc4 3.e4 e5 4.Nf3 exd4 5.Bxc4 Nc6 * D21a "QGA: 3.Nf3" 1.d4 d5 2.c4 dxc4 3.Nf3 * D21a "QGA: Ericson Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 b5 * D21b "QGA: 3.Nf3 Nd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nd7 * D21c "QGA: 3.Nf3 Bg4" 1.d4 d5 2.c4 dxc4 3.Nf3 Bg4 * D21d "QGA: 3.Nf3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 * D21e "QGA: 3.Nf3 e6 4.Qa4+" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.Qa4+ * D21f "QGA: 3.Nf3 e6 4.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.e4 * D21g "QGA: 3.Nf3 e6 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.e3 * D21g "QGA: 3.Nf3 e6 4.e3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.e3 c5 * D21h "QGA: 3.Nf3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 * D21i "QGA: 3.Nf3 c5 4.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.Nc3 * D21j "QGA: 3.Nf3 c5 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.e3 * D21j "QGA: 3.Nf3 c5 4.e3 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.e3 cxd4 * D21k "QGA: 3.Nf3 c5 4.e3 cxd4 5.Bxc4" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.e3 cxd4 5.Bxc4 * D21l "QGA: 3.Nf3 c5 4.d5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 * D21m "QGA: 3.Nf3 c5 4.d5 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 * D21m "QGA: 3.Nf3 c5 4.d5 e6 5.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.e4 * D21n "QGA: 3.Nf3 c5 4.d5 e6 5.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 * D21o "QGA: 3.Nf3 c5 4.d5 e6 5.Nc3 exd5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 * D21p "QGA: 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 * D21q "QGA: 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6 * D21r "QGA: 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6 8.Nd2" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6 8.Nd2 * D21s "QGA: Seirawan Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6 8.Nd2 Ne7 * D21t "QGA: Alekhine Defence" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 * D21u "QGA: Alekhine, Borisenko-Furman Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e4 * D21v "QGA: Alekhine, 4.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.a4 * D22a "QGA: Alekhine, 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 * D22b "QGA: Alekhine, Haberditz Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 b5 * D22c "QGA: Alekhine, 4.e3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 * D22d "QGA: Alekhine, 4.e3 e6 5.Bxc4" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 5.Bxc4 * D22e "QGA: Alekhine, 4.e3 e6 5.Bxc4 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 5.Bxc4 c5 * D22f "QGA: Alekhine, 4.e3 e6 5.Bxc4 c5 6.Qe2" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 5.Bxc4 c5 6.Qe2 * D22g "QGA: Alekhine, 4.e3 Bg4" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 * D22h "QGA: Alekhine, 4.e3 Bg4 5.Bxc4 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 * D22i "QGA: Alekhine, Alatortsev Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.d5 * D22j "QGA: Alekhine, 4.e3 Bg4 5.Bxc4 e6 6.Qb3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.Qb3 * D22k "QGA: Alekhine, 4.e3 Bg4 5.Bxc4 e6 6.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.Nc3 * D22l "QGA: Alekhine, 4.e3 Bg4 5.Bxc4 e6 6.h3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.h3 * D23a "QGA: 3.Nf3 Nf6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 * D23b "QGA: 3.Nf3 Nf6 4.g3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.g3 * D23c "QGA: Mannheim Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ * D23d "QGA: Mannheim, 4...Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nc6 * D23e "QGA: Mannheim, 4...Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nc6 5.Nc3 * D23f "QGA: Mannheim, 4...Nbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nbd7 * D23g "QGA: Mannheim, 4...Nbd7 5.Nc3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nbd7 5.Nc3 e6 * D23h "QGA: Mannheim, 4...Nbd7 5.Nc3 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nbd7 5.Nc3 e6 6.e4 * D23i "QGA: Mannheim, 4...c6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 * D23i "QGA: Mannheim, 4...c6 5.Qxc4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 * D23j "QGA: Mannheim, 4...c6, 5.Qxc4 Bf5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 * D23k "QGA: Mannheim, 4...c6, 5.Qxc4 Bf5 6.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.Nc3 * D23l "QGA: Mannheim, 4...c6, 5.Qxc4 Bf5 6.g3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 * D23m "QGA: Mannheim, 4...c6, 5.Qxc4 Bf5 6.g3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 * D23m "QGA: Mannheim, 4...c6, 5.Qxc4 Bf5 6.g3 e6 7.Bg2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 * D23n "QGA: Mannheim, 4...c6, 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 * D23o "QGA: Mannheim, Main Line" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 * D23p "QGA: Mannheim, Main Line, 9...O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O * D23q "QGA: Mannheim, Main Line, 10.Bg5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.Bg5 * D23r "QGA: Mannheim, Main Line, 10.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.e3 * D23s "QGA: Mannheim, Main Line, 10.e3 Ne4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.e3 Ne4 * D23t "QGA: Mannheim, Main Line, 10.e3 Ne4 11.Qe2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.e3 Ne4 11.Qe2 * D24a "QGA: 4.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 * D24a "QGA: 4.Nc3 Nd5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 Nd5 * D24b "QGA: 4.Nc3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 * D24b "QGA: 4.Nc3 e6 5.Bg5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 5.Bg5 * D24b "QGA: 4.Nc3 e6 5.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 5.e4 * D24c "QGA: 4.Nc3 e6 5.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 5.e3 * D24d "QGA: 4.Nc3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 * D24e "QGA: 4.Nc3 c5 5.d5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 * D24f "QGA: 4.Nc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 * D24g "QGA: 4.Nc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 exd5 7.e5 Nfd7 * D24g "QGA: 4.Nc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 exd5 7.e5 Nfd7 8.Bg5 * D24g "QGA: 4.Nc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 exd5 7.e5 Nfd7 8.Bg5 Be7 * D24h "QGA: 4.Nc3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 * D24i "QGA: 4.Nc3 a6 5.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.a4 * D24j "QGA: 4.Nc3 a6 5.a4 Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.a4 Nc6 * D24j "QGA: 4.Nc3 a6 5.a4 Nc6 5.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.a4 Nc6 6.e4 * D24k "QGA: Bogoljubow" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 * D24l "QGA: Bogoljubow, 7.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 * D24m "QGA: Bogoljubow, 7.a4 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 e6 * D24n "QGA: Bogoljubow, 7.a4 c6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 c6 * D24o "QGA: Bogoljubow, 7.a4 Bb7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Bb7 * D24p "QGA: Bogoljubow, 7.a4 Nb4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nb4 * D24q "QGA: Bogoljubow, 7.a4 Nxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 * D24r "QGA: Bogoljubow, 7.a4 Nxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 8.bxc3 Bb7 * D24s "QGA: Bogoljubow, 7.a4 Nxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 8.bxc3 Qd5 * D24t "QGA: Bogoljubow, 7.a4 Nxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 8.bxc3 Qd5 9.g3 Bb7 * D25a "QGA: 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 * D25b "QGA: 4.e3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 c5 * D25c "QGA: 4.e3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 a6 * D25d "QGA: Smyslov Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 * D25d "QGA: Smyslov, 5.Bxc4 Bg7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 * D25d "QGA: Smyslov, 5.Bxc4 Bg7 6.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.Nc3 * D25e "QGA: Smyslov, 5.Bxc4 Bg7 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.O-O * D25e "QGA: Smyslov, 5.Bxc4 Bg7 6.O-O O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.O-O O-O * D25e "QGA: Smyslov, 5.Bxc4 Bg7 6.O-O O-O 7.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.O-O O-O 7.Nc3 * D25f "QGA: Flohr Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Be6 * D25f "QGA: Flohr, 5.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Be6 5.Nc3 * D25f "QGA: Flohr, 5.Nc3 c6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Be6 5.Nc3 c6 * D25g "QGA: Janowski-Larsen Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 * D25g "QGA: Janowski-Larsen, 5.h3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.h3 * D25h "QGA: Janowski-Larsen, 5.Bxc4 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 * D25i "QGA: Janowski-Larsen, 6.Qb3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.Qb3 * D25j "QGA: Janowski-Larsen, 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.O-O * D25k "QGA: Janowski-Larsen, 6.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.Nc3 * D25l "QGA: Janowski-Larsen, 6.h3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 * D25m "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 * D25n "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 a6 * D25o "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3 a6 8.g4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 a6 8.g4 * D25p "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3 Nbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 * D25q "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3 Nbd7 8.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O * D25r "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 * D25r "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 9.Be2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 9.Be2 * D25s "QGA: Janowski-Larsen, 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 9.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 9.e4 * D26a "QGA: 4.e3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 * D26b "QGA: 4.e3 e6 5.Bxc4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 * D26c "QGA: 4.e3 e6 5.Bxc4 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 a6 * D26d "QGA: 4.e3 e6 5.Bxc4 a6 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 a6 6.O-O * D26e "QGA: 4.e3 e6 5.Bxc4 a6 6.O-O b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 a6 6.O-O b5 * D26f "QGA: Classical Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 * D26g "QGA: Classical, Early Queenswap" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.dxc5 * D26h "QGA: Classical, 6.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Nc3 * D26i "QGA: Classical, 6.Nc3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Nc3 a6 * D26j "QGA: Classical, Furman Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 * D26k "QGA: Classical, Furman, 6...cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 cxd4 * D26l "QGA: Classical, Furman, 6...a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 * D26m "QGA: Classical, Furman, 6...a6 7.dxc5 Bxc5 8.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 7.dxc5 Bxc5 8.O-O * D26n "QGA: Classical, Furman, 6...a6 7.dxc5 Bxc5 8.O-O Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 7.dxc5 Bxc5 8.O-O Nc6 * D26o "QGA: Classical, Furman, 6...a6 7.dxc5 Bxc5 8.O-O b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 7.dxc5 Bxc5 8.O-O b5 * D26p "QGA: Classical, 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O * D26q "QGA: Classical, Steinitz Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O cxd4 * D26r "QGA: Classical, 6.O-O Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O Nc6 * D26s "QGA: Classical, 6.O-O Nc6 7.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O Nc6 7.Nc3 * D26t "QGA: Classical, 6.O-O Nc6 7.Qe2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O Nc6 7.Qe2 * D27a "QGA: Classical, 6...a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 * D27a "QGA: Classical, 6...a6 7.a3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a3 * D27b "QGA: Classical, 6...a6 7.b3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.b3 * D27c "QGA: Classical, 6...a6 7.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Nc3 * D27d "QGA: Classical, 6...a6 7.Bd3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bd3 * D27e "QGA: Classical, 6...a6 7.Bd3 Nbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bd3 Nbd7 * D27f "QGA: Classical, 6...a6 7.Bb3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 * D27g "QGA: Classical, 6...a6 7.Bb3 b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 b5 * D27h "QGA: Classical, 6...a6 7.Bb3 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 cxd4 * D27i "QGA: Classical, 6...a6 7.Bb3 Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 Nc6 * D27j "QGA: Classical, 6...a6 7.Bb3 Nc6 8.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 Nc6 8.Nc3 * D27k "QGA: Classical, Geller Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.e4 * D27l "QGA: Classical, Spassky Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 * D27m "QGA: Classical, Spassky, 7...Qxd1" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 Qxd1 * D27n "QGA: Classical, Spassky, 9.Nbd2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 Qxd1 8.Rxd1 Bxc5 9.Nbd2 * D27o "QGA: Classical, Spassky, 9.b3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 Qxd1 8.Rxd1 Bxc5 9.b3 * D27p "QGA: Classical, Rubinstein Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 * D27p "QGA: Classical, Rubinstein, 7...Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 * D27q "QGA: Classical, Rubinstein, 8.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Nc3 * D27r "QGA: Classical, Rubinstein, 8.Nc3 Be7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Nc3 Be7 * D27s "QGA: Classical, Rubinstein, 8.Nc3 Be7 9.Qe2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Nc3 Be7 9.Qe2 * D27t "QGA: Classical, Rubinstein, 8.Qe2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 * D27u "QGA: Classical, Rubinstein, 8.Qe2 Qc7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 Qc7 * D27v "QGA: Classical, Rubinstein, 8.Qe2 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 cxd4 * D27v "QGA: Classical, Rubinstein, 8.Qe2 cxd4, 11.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 cxd4 9.Rd1 Be7 10.exd4 O-O 11.Nc3 * D27w "QGA: Classical, Rubinstein, 8.Qe2 cxd4, 11.Nc3 Nd5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 cxd4 9.Rd1 Be7 10.exd4 O-O 11.Nc3 Nd5 * D28a "QGA: Classical, 7.Qe2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 * D28b "QGA: Classical, 7.Qe2 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 cxd4 * D28c "QGA: Classical, 7.Qe2 Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 Nc6 * D28d "QGA: Classical, 7.Qe2 b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 * D28e "QGA: Classical, 7.Qe2 b5 8.Bd3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bd3 * D28f "QGA: Classical, 7.Qe2 b5 8.Bd3 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bd3 cxd4 * D28g "QGA: Classical, 7.Qe2 b5 8.Bd3 cxd4 9.exd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bd3 cxd4 9.exd4 * D28h "QGA: Classical, 7.Qe2 b5 8.Bb3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 * D28i "QGA: Classical, 7.Qe2 b5 8.Bb3 Nc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 * D28j "QGA: Classical, 7.Qe2 b5 8.Bb3 Nc6 9.Rd1" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Rd1 * D28k "QGA: Classical, 7.Qe2 b5 8.Bb3 Nc6 9.Rd1 c4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Rd1 c4 * D28l "QGA: Classical, 7.Qe2 b5 8.Bb3 Nc6 9.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 * D28m "QGA: Classical, 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 Bb7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 Bb7 * D28n "QGA: Classical, 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 Be7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 Be7 * D29a "QGA: Classical, 8...Bb7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 * D29b "QGA: Classical, 8...Bb7 9.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Nc3 * D29c "QGA: Classical, 8...Bb7 9.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.a4 * D29d "QGA: Classical, 8...Bb7 9.a4 b4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.a4 b4 * D29e "QGA: Classical, 8...Bb7 9.a4 Nbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.a4 Nbd7 * D29f "QGA: Classical, 8...Bb7 9.Rd1" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 * D29g "QGA: Classical, 8...Bb7 9.Rd1 Nbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 * D29g "QGA: Classical, 8...Bb7 9.Rd1 Nbd7 10.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.e4 * D29h "QGA: Classical, 8...Bb7 9.Rd1 Nbd7 10.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.a4 * D29i "QGA: Classical, 8...Bb7 9.Rd1 Nbd7 10.a4 b4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.a4 b4 * D29j "QGA: Classical, 8...Bb7 9.Rd1 Nbd7 10.Nc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 * D29k "QGA: Classical, Smyslov Variation" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Bd6 * D29l "QGA: Classical, 8...Bb7 9.Rd1 Nbd7 10.Nc3 Qc7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Qc7 * D29m "QGA: Classical, 8...Bb7 9.Rd1 Nbd7 10.Nc3 Qb8" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Qb8 * D29n "QGA: Classical, 8...Bb7 9.Rd1 Nbd7 10.Nc3 Qb6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Qb6 * D30a "Queen's Gambit Declined (QGD)" 1.d4 d5 2.c4 e6 * D30a "QGD: 3.e3" 1.d4 d5 2.c4 e6 3.e3 * D30b "Diemer-Duhm Gambit (DDG)" 1.d4 d5 2.c4 e6 3.e4 * D30b "Diemer-Duhm Gambit (DDG) Accepted" 1.d4 d5 2.c4 e6 3.e4 dxe4 * D30b "Diemer-Duhm Gambit (DDG): 4...f5" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 f5 * D30b "Diemer-Duhm Gambit (DDG): Alapin Variation" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.Be3 * D30b "Diemer-Duhm Gambit (DDG): Duhm Variation" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.a3 * D30b "Diemer-Duhm Gambit (DDG): 5.f3" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 * D30b "Diemer-Duhm Gambit (DDG): Exchange Variation" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 exf3 * D30b "Diemer-Duhm Gambit (DDG): Keres Defence" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 c5 * D30b "Diemer-Duhm Gambit (DDG): Main Line" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 Bb4 * D30c "QGD: 3.g3" 1.d4 d5 2.c4 e6 3.g3 * D30d "QGD: 3.cxd5" 1.d4 d5 2.c4 e6 3.cxd5 * D30d "QGD: 3.cxd5" 1.d4 d5 2.c4 e6 3.cxd5 exd5 * D30d "QGD: 3.cxd5" 1.d4 d5 2.c4 e6 3.cxd5 exd5 4.Nc3 * D30e "QGD: 3.Bf4" 1.d4 d5 2.c4 e6 3.Bf4 * D30f "QGD: 3.Nf3" 1.d4 d5 2.c4 e6 3.Nf3 * D30g "QGD: 3.Nf3 Nbd7 (Westphalia)" 1.d4 d5 2.c4 e6 3.Nf3 Nbd7 * D30h "QGD: Tarrasch without Nc3" 1.d4 d5 2.c4 e6 3.Nf3 c5 * D30h "QGD: Tarrasch without Nc3: 4.e3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.e3 * D30h "QGD: Tarrasch without Nc3: 4.e3 Nf6" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.e3 Nf6 * D30h "QGD: Tarrasch without Nc3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 * D30h "QGD: Tarrasch without Nc3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 * D30i "QGD: Tarrasch without Nc3: 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 * D30i "QGD: Tarrasch without Nc3: 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nf6 * D30i "QGD: Tarrasch without Nc3: 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nf6 6.Bg2 * D30i "QGD: Tarrasch without Nc3: 5.g3 Nc6" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 * D30i "QGD: Tarrasch without Nc3: 5.g3 Nc6 6.Bg2" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 * D30i "QGD: Tarrasch without Nc3: 5.g3 Nc6 6.Bg2 Nf6" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 Nf6 * D30i "QGD: Tarrasch without Nc3: 5.g3 Nc6 6.Bg2 Nf6 7.O-O" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 Nf6 7.O-O * D30i "QGD: Tarrasch without Nc3: Main Line" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 Nf6 7.O-O Be7 * D30j "QGD: 3.Nf3 c6" 1.d4 d5 2.c4 e6 3.Nf3 c6 * D30k "QGD: 3.Nf3 c6 4.e3" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.e3 * D30l "QGD: 3.Nf3 c6 4.Nbd2" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Nbd2 * D30m "QGD: 3.Nf3 c6 4.Qc2" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 * D30n "QGD: 3.Nf3 c6 4.Qc2 Nf6" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 Nf6 * D30o "QGD: 3.Nf3 c6 4.Qc2 Nf6 5.Bg5" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 Nf6 5.Bg5 * D30p "QGD: 3.Nf3 c6 4.Qc2 Nf6 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 Nf6 5.g3 * D30q "QGD: 3.Nf3 Nf6" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 * D30r "QGD: 3.Nf3 Nf6 4.e3" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 * D30s "QGD: 3.Nf3 Nf6 4.e3 c6" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 * D30t "QGD: 3.Nf3 Nf6 4.e3 c6 5.Nbd2" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 * D30t "QGD: Spielmann Variation" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 g6 * D30t "QGD: Stonewall Formation" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Ne4 6.Bd3 f5 * D30t "QGD: 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7 * D30u "QGD: 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7 6.Bd3" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7 6.Bd3 * D30u "QGD: Semmering Variation" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7 6.Bd3 c5 * D30v "QGD: 3.Nf3 Nf6 4.Bg5" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 * D30v "QGD: 3.Nf3 Nf6 4.Bg5 dxc4" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 dxc4 * D30v "QGD: Vienna Variation" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Bb4+ * D30v "QGD: 3.Nf3 Nf6 4.Bg5 Nbd7" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Nbd7 * D30v "QGD: 3.Nf3 Nf6 4.Bg5, Capablanca Variation" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nbd2 * D30w "QGD: Capablanca-Duras Variation" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 h6 * D30x "QGD: 3.Nf3 Nf6 4.Bg5 Be7" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Be7 * D30x "QGD: 3.Nf3 Nf6 4.Bg5 Be7 5.e3" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Be7 5.e3 * D31a "QGD: 3.Nc3" 1.d4 d5 2.c4 e6 3.Nc3 * D31a "QGD: 3.Nc3 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 Nc6 * D31a "QGD: Alapin Variation" 1.d4 d5 2.c4 e6 3.Nc3 b6 * D31b "QGD: Janowski Variation" 1.d4 d5 2.c4 e6 3.Nc3 a6 * D31c "QGD: 3.Nc3 Bb4" 1.d4 d5 2.c4 e6 3.Nc3 Bb4 * D31c "QGD: 3.Nc3 Bb4 4.a3" 1.d4 d5 2.c4 e6 3.Nc3 Bb4 4.a3 * D31d "QGD: Alatortsev Variation" 1.d4 d5 2.c4 e6 3.Nc3 Be7 * D31d "QGD: Alatortsev, 4.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.Nf3 * D31d "QGD: Alatortsev, 4.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.Bf4 * D31e "QGD: Alatortsev, Exchange" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 * D31e "QGD: Alatortsev, Exchange" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 * D31e "QGD: Alatortsev, 5.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 * D31f "QGD: Alatortsev, 5.Bf4 c6" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 c6 * D31g "QGD: Alatortsev, 5.Bf4 c6 6.e3 Bf5" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 c6 6.e3 Bf5 * D31h "QGD: Alatortsev, 5.Bf4 c6 6.e3 Bf5 7.g4" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 c6 6.e3 Bf5 7.g4 * D31i "Semi-Slav" 1.d4 d5 2.c4 e6 3.Nc3 c6 * D31j "Semi-Slav: 4.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 * D31j "Semi-Slav: 4.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 * D31k "Semi-Slav: 4.cxd5 exd5 5.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 5.Nf3 * D31l "Semi-Slav: 4.cxd5 exd5 5.Nf3 Bf5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 5.Nf3 Bf5 * D31m "Semi-Slav: 4.cxd5 exd5 5.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 5.Bf4 * D31n "Semi-Slav: 4.e3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e3 * D31o "Semi-Slav: 4.e3 Nf6" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e3 Nf6 * D31p "Semi-Slav: 4.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 * D31q "Semi-Slav: Noteboom Variation" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 * D31r "Semi-Slav: Noteboom, 5.a4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 * D31s "Semi-Slav: Noteboom, 5.a4 Bb4 6.e3 b5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 * D31s "Semi-Slav: Noteboom, Koomen Variation" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 Qe7 * D31s "Semi-Slav: Noteboom, Junge Variation" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 Qb6 * D31t "Semi-Slav: Noteboom, Abrahams Variation" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 a5 * D31u "Semi-Slav: Noteboom, Abrahams, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 a5 8.axb5 Bxc3 9.Bxc3 cxb5 10.b3 Bb7 * D31v "Semi-Slav: Noteboom, Abrahams, Main Line, 14.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 a5 8.axb5 Bxc3 9.Bxc3 cxb5 10.b3 Bb7 11.bxc4 b4 12.Bb2 Nf6 13.Bd3 Nbd7 14.O-O O-O * D31w "Semi-Slav: Marshall Gambit" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 * D31w "Semi-Slav: Marshall Gambit, 4...Bb4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 Bb4 * D31w "Semi-Slav: Marshall Gambit, 4...dxe4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 * D31w "Semi-Slav: Marshall Gambit, Gunderam Gambit" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.f3 * D31w "Semi-Slav: Marshall Gambit, 5.Nxe4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 * D31w "Semi-Slav: Marshall Gambit, 5.Nxe4 Nf6" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Nf6 * D31x "Semi-Slav: Marshall Gambit, 5.Nxe4 Bb4+" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ * D31x "Semi-Slav: Marshall Gambit, 5.Nxe4 Bb4+ 6.Nc3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Nc3 * D31x "Semi-Slav: Marshall Gambit, 5.Nxe4 Bb4+ 6.Bd2" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 * D31x "Semi-Slav: Marshall Gambit, 8.Ne2" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 Qxd4 7.Bxb4 Qxe4+ 8.Ne2 * D31y "Semi-Slav: Marshall Gambit, 8.Be2" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 Qxd4 7.Bxb4 Qxe4+ 8.Be2 * D31z "Semi-Slav: Marshall Gambit, 8.Be2 Na6" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 Qxd4 7.Bxb4 Qxe4+ 8.Be2 Na6 * D32a "QGD Tarrasch" 1.d4 d5 2.c4 e6 3.Nc3 c5 * D32a "QGD Tarrasch: 4.e3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.e3 * D32b "QGD Tarrasch: 4.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.Nf3 * D32c "QGD Tarrasch: 4.Nf3 cxd4 5.Nxd4 e5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.Nf3 cxd4 5.Nxd4 e5 * D32d "QGD Tarrasch: 4.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 * D32d "QGD Tarrasch: von Hennig-Schara Gambit" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 * D32d "QGD Tarrasch: von Hennig-Schara Gambit, 5.Qxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qxd4 * D32e "QGD Tarrasch: von Hennig-Schara Gambit, 5.Qxd4 Nc6 6.Qd1 exd5 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qxd4 Nc6 6.Qd1 exd5 7.e3 * D32f "QGD Tarrasch: von Hennig-Schara Gambit, 5.Qa4+" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ * D32f "QGD Tarrasch: von Hennig-Schara Gambit, 7.Qxd5 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 * D32g "QGD Tarrasch: von Hennig-Schara Gambit, 7.Qxd5 Nc6 8.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 8.Bg5 * D32h "QGD Tarrasch: von Hennig-Schara Gambit, 7.Qxd5 Nc6 8.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 8.Nf3 * D32i "QGD Tarrasch: von Hennig-Schara Gambit, Main Line (11.Be2 O-O-O)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 8.Nf3 Nf6 9.Qd1 Bc5 10.e3 Qe7 11.Be2 O-O-O * D32j "QGD Tarrasch: 4.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 * D32j "QGD Tarrasch: 5.g3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.g3 * D32k "QGD Tarrasch: 5.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.dxc5 * D32k "QGD Tarrasch: 5.dxc5, Tarrasch Gambit" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.dxc5 d4 6.Na4 b5 * D32l "QGD Tarrasch: Marshall Gambit" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 * D32l "QGD Tarrasch: Marshall Gambit" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 dxe4 * D32l "QGD Tarrasch: Marshall Gambit, Modern 6.Bc4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 dxe4 6.Bc4 * D32l "QGD Tarrasch: Marshall Gambit, 6.d5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 dxe4 6.d5 * D32m "QGD Tarrasch: 5.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 * D32n "QGD Tarrasch: 5.Nf3 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 * D32o "QGD Tarrasch: 5.Nf3 Nc6 6.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bf4 * D32o "QGD Tarrasch: 5.Nf3 Nc6 6.Bf4 Nf6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bf4 Nf6 * D32p "QGD Tarrasch: 5.Nf3 Nc6 6.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bg5 * D32q "QGD Tarrasch: 5.Nf3 Nc6 6.Bg5 Be7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bg5 Be7 * D32r "QGD Tarrasch: 5.Nf3 Nc6 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 * D32r "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 * D32s "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Bb5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Bb5 * D32t "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 * D32u "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2 Be7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 Be7 * D32u "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2 Be7 8.dxc5 Bxc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 Be7 8.dxc5 Bxc5 * D32v "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 * D32v "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 * D32v "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O * D32w "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O O-O * D32x "QGD Tarrasch: 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O O-O 10.b3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O O-O 10.b3 * D33a "QGD Tarrasch: 6.g3 (Schlecter/Rubinstein)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 * D33b "QGD Tarrasch: 6.g3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 cxd4 * D33c "QGD Tarrasch: Swedish Variation" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 * D33d "QGD Tarrasch: Swedish, Rey Ardid Variation" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.e4 * D33e "QGD Tarrasch: Swedish, 7.Bg2" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 * D33f "QGD Tarrasch: Swedish, 7.Bg2 Bb4 8.O-O Nge7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 * D33g "QGD Tarrasch: Swedish, 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.a3 * D33h "QGD Tarrasch: Swedish, 9.Bd2" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.Bd2 * D33i "QGD Tarrasch: Swedish, 9.Ne5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.Ne5 * D33j "QGD Tarrasch: Swedish, 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.e4 * D33k "QGD Tarrasch: Swedish, 9.e4 dxe4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.e4 dxe4 * D33l "QGD Tarrasch: 6.g3 Nf6 (Prague)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 * D33l "QGD Tarrasch: 6.g3 Nf6 (Prague)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 * D33m "QGD Tarrasch: 7.Bg2 Be6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be6 * D33n "QGD Tarrasch: Wagner Variation" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Bg4 * D33o "QGD Tarrasch: 7.Bg2 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 * D33o "QGD Tarrasch: 7.Bg2 cxd4 8.Nxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 * D33p "QGD Tarrasch: 7.Bg2 cxd4 8.Nxd4 Be7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 * D33p "QGD Tarrasch: 7.Bg2 cxd4 8.Nxd4 Be7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 9.O-O * D33p "QGD Tarrasch: 7.Bg2 cxd4 8.Nxd4 Be7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 9.O-O O-O * D33q "QGD Tarrasch: 7.Bg2 cxd4 8.Nxd4 Be7 9.O-O O-O 10.Be3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 9.O-O O-O 10.Be3 * D34a "QGD Tarrasch: 7.Bg2 Be7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 * D34a "QGD Tarrasch: 7.Bg2 Be7 8.O-O" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O * D34b "QGD Tarrasch: 7.Bg2 Be7 8.O-O Be6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O Be6 * D34c "QGD Tarrasch: 8.O-O O-O (Main Line)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O * D34d "QGD Tarrasch: 9.b3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.b3 * D34e "QGD Tarrasch: 9.b3 Ne4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.b3 Ne4 * D34f "QGD Tarrasch: 9.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bf4 * D34g "QGD Tarrasch: 9.Be3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Be3 * D34h "QGD Tarrasch: 9.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 * D34h "QGD Tarrasch: Tarrasch's Gambit" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 d4 * D34i "QGD Tarrasch: 9.dxc5 Bxc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 * D34j "QGD Tarrasch: Reti Variation" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Na4 * D34k "QGD Tarrasch: 9.dxc5 Bxc5 10.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 * D34k "QGD Tarrasch: 9.dxc5 Bxc5 10.Bg5 Be6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 Be6 * D34k "QGD Tarrasch: 9.dxc5 Bxc5 10.Bg5 Be6 11.Bxf6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 Be6 11.Bxf6 * D34l "QGD Tarrasch: 9.dxc5 Bxc5 10.Bg5 d4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 d4 * D34m "QGD Tarrasch: 9.dxc5 Bxc5 10.Bg5 d4 11.Bxf6 Qxf6 12.Nd5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 d4 11.Bxf6 Qxf6 12.Nd5 * D34n "QGD Tarrasch: 9.dxc5 Bxc5 10.Bg5 d4 11.Bxf6: Main Line" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 d4 11.Bxf6 Qxf6 12.Nd5 Qd8 13.Nd2 Re8 * D34o "QGD Tarrasch: 9.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 * D34o "QGD Tarrasch: 9.Bg5 Be6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 Be6 * D34o "QGD Tarrasch: Stoltz Variation" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 Be6 10.Rc1 b6 * D34o "QGD Tarrasch: Bogoljubow Variation" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 Be6 10.Rc1 c4 * D34p "QGD Tarrasch: 9.Bg5 c4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 c4 * D34q "QGD Tarrasch: 9.Bg5 c4 10.Ne5 Be6 11.Nxc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 c4 10.Ne5 Be6 11.Nxc6 * D34r "QGD Tarrasch: 9.Bg5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 * D34r "QGD Tarrasch: 9.Bg5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 * D34s "QGD Tarrasch: 9.Bg5 cxd4 10.Nxd4 h6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 * D34t "QGD Tarrasch: 9.Bg5 cxd4 10.Nxd4 h6 11.Be3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 * D34u "QGD Tarrasch: 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 * D34v "QGD Tarrasch: 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Qb3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Qb3 * D34w "QGD Tarrasch: 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 * D34x "QGD Tarrasch: 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 Bf8" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 Bf8 * D34y "QGD Tarrasch: 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 Bf8 13.Nxc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 Bf8 13.Nxc6 * D35a "QGD: 3.Nc3 Nf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 * D35a "QGD: 3.Nc3 Nf6 4.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.e3 * D35a "QGD: Harrwitz Attack" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bf4 * D35a "QGD: Catalan without Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.g3 * D35b "QGD: Exchange" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 * D35b "QGD: Exchange, 4...Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 Nxd5 * D35b "QGD: Exchange" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 * D35c "QGD: Exchange, Saemisch Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bf4 * D35d "QGD: Exchange, 5.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 * D35d "QGD: Exchange, 5.Nf3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 c6 * D35d "QGD: Exchange, 5.Nf3 c6 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 c6 6.e3 * D35e "QGD: Exchange, 5.Nf3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 * D35e "QGD: Exchange, 5.Nf3 Nbd7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 6.e3 * D35e "QGD: Exchange, 5.Nf3 Nbd7 6.e3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 6.e3 c6 * D35f "QGD: Exchange, 5.Nf3 Nbd7 6.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 6.Bf4 * D35g "QGD: Exchange, 5.Nf3 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 * D35g "QGD: Exchange, 5.Nf3 Be7 6.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 * D35h "QGD: Exchange, 5.Nf3 Be7 6.Bf4 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 c6 * D35h "QGD: Exchange, 5.Nf3 Be7 6.Bf4 c6 7.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 c6 7.Qc2 * D35h "QGD: Exchange, 5.Nf3 Be7 6.Bf4 c6 7.Qc2 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 c6 7.Qc2 Nbd7 * D35i "QGD: Exchange, 5.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 * D35i "QGD: Exchange, 5.Bg5 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Nbd7 * D35i "QGD: Exchange, 5.Bg5 Nbd7 6.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Nbd7 6.Nf3 * D35i "QGD: Exchange, 5.Bg5 Nbd7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Nbd7 6.e3 * D35i "QGD: Exchange, 5.Bg5 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 * D35i "QGD: Exchange, 5.Bg5 Be7 6.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.Nf3 * D35j "QGD: Exchange, 5.Bg5 Be7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 * D35j "QGD: Exchange, 5.Bg5 Be7 6.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 h6 * D35j "QGD: Exchange, 5.Bg5 Be7 6.e3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 Nbd7 * D35k "QGD: Exchange, 5.Bg5 Be7 6.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 O-O * D35l "QGD: Exchange, 5.Bg5 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 * D35l "QGD: Exchange, 5.Bg5 c6 6.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Nf3 * D35m "QGD: Exchange, 5.Bg5 c6 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 * D35n "QGD: Exchange, 5.Bg5 c6 6.e3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Nbd7 * D35o "QGD: Exchange, 5.Bg5 c6 6.e3 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 * D35o "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Nf3 * D35p "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Nf3 Bf5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Nf3 Bf5 * D35q "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Nf3 Bf5 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Nf3 Bf5 8.Bd3 * D35r "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 * D35s "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3 Ne4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Ne4 * D35t "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 * D35t "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 8.Nge2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 8.Nge2 * D35u "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 8.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 8.Nf3 * D35v "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O * D35v "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O 8.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O 8.Nf3 * D35v "QGD: Exchange, 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O 8.Nge2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O 8.Nge2 * D36a "QGD: Exchange, 5.Bg5 c6 6.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 * D36a "QGD: Exchange, 5.Bg5 c6 6.Qc2 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 g6 * D36b "QGD: Exchange, 5.Bg5 c6 6.Qc2 Na6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Na6 * D36c "QGD: Exchange, 6.Qc2 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 * D36c "QGD: Exchange, 6.Qc2 Be7 7.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 * D36c "QGD: Exchange, 6.Qc2 Be7 7.Nf3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 Nbd7 * D36c "QGD: Exchange, 6.Qc2 Be7 7.Nf3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 O-O * D36d "QGD: Exchange, 6.Qc2 Be7 7.Nf3 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 g6 * D36e "QGD: Exchange, 6.Qc2 Be7 7.Nf3 g6 8.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 g6 8.e3 * D36f "QGD: Exchange, 6.Qc2 Be7 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 * D36f "QGD: Exchange, 6.Qc2 Be7 7.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 O-O * D36f "QGD: Exchange, 6.Qc2 Be7 7.e3 O-O 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 O-O 8.Bd3 * D36g "QGD: Exchange, 6.Qc2 Be7 7.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 h6 * D36g "QGD: Exchange, 6.Qc2 Be7 7.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 h6 8.Bh4 O-O * D36g "QGD: Exchange, 6.Qc2 Be7 7.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 h6 8.Bh4 O-O 9.Bd3 Re8 * D36h "QGD: Exchange, 6.Qc2 Be7 7.e3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 * D36h "QGD: Exchange, 6.Qc2 Be7 7.e3 Nbd7 8.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Nf3 * D36i "QGD: Exchange, 6.Qc2 Be7 7.e3 Nbd7 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 * D36j "QGD: Exchange, 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 Nf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 Nf8 * D36k "QGD: Exchange, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O * D36k "QGD: Exchange, Main Line, 9.Nge2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 * D36k "QGD: Exchange, Main Line, 9.Nge2 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 h6 * D36k "QGD: Exchange, Main Line, 9.Nge2 h6 10.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 h6 10.Bh4 * D36l "QGD: Exchange, Main Line, 9.Nge2 Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 * D36m "QGD: Exchange, Main Line, 9.Nge2 Re8 10.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 10.O-O * D36m "QGD: Exchange, Main Line, 9.Nge2 Re8 10.O-O Nf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 10.O-O Nf8 * D36n "QGD: Exchange, Main Line, 9.Nge2 Re8 10.O-O Nf8 11.f3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 10.O-O Nf8 11.f3 * D36o "QGD: Exchange, Main Line, 9.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 * D36o "QGD: Exchange, Main Line, 9.Nf3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 h6 * D36o "QGD: Exchange, Main Line, 9.Nf3 h6 10.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 h6 10.Bh4 * D36p "QGD: Exchange, Main Line, 9.Nf3 Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 * D36p "QGD: Exchange, Main Line, 9.Nf3 Re8 10.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.h3 * D36p "QGD: Exchange, Main Line, 9.Nf3 Re8 10.h3 Nf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.h3 Nf8 * D36q "QGD: Exchange, Main Line, 9.Nf3 Re8 10.h3 Nf8 11.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.h3 Nf8 11.Bf4 * D36r "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O * D36r "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O h6 11.Bh4 * D36r "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O-O Nf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O Nf8 * D36r "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O-O Nf8 11.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O Nf8 11.h3 * D36s "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O * D36t "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O h6 * D36t "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O h6 11.Bf4 * D36t "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O h6 11.Bh4 * D36u "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O Nf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 * D36v "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O Nf8 11.Rae1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.Rae1 * D36w "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O Nf8 11.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.h3 * D36x "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O Nf8 11.h3 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.h3 g6 * D36y "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O Nf8 11.Rab1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.Rab1 * D36z "QGD: Exchange, Main Line, 9.Nf3 Re8 10.O-O Nf8 11.Rab1 a5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.Rab1 a5 * D37a "QGD: 4.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 * D37b "QGD: Westphalia without Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Nbd7 * D37c "QGD: Westphalia: 4.Nf3 Nbd7 5.Bf4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Nbd7 5.Bf4 * D37d "QGD: 4.Nf3 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 * D37d "QGD: 4.Nf3 Be7 5.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.cxd5 Nxd5 * D37e "QGD: 4.Nf3 Be7 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 * D37f "QGD: 4.Nf3 Be7 5.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 O-O * D37f "QGD: 4.Nf3 Be7 5.e3 O-O 6.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 O-O 6.b3 * D37g "QGD: 4.Nf3 Be7 5.e3 O-O 6.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 O-O 6.Bd3 * D37h "QGD: Classical Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 * D37i "QGD: Classical, 5...O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O * D37j "QGD: Classical, 5...O-O 6.e3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 Nbd7 * D37k "QGD: Classical, 5...O-O 6.e3 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 b6 * D37l "QGD: Classical, 5...O-O 6.e3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c6 * D37m "QGD: Classical, 5...O-O 6.e3 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 * D37n "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 * D37o "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 * D37p "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.a3 * D37q "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5 8.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.cxd5 * D37r "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 * D37s "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 * D37t "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 * D37u "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 10.Rd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 10.Rd1 * D37v "QGD: Classical, 5...O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 10.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 10.O-O-O * D38a "QGD: Ragozin" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 * D38b "QGD: Ragozin, 5.Qa4+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Qa4+ * D38c "QGD: Ragozin, 5.Qa4+ Nc6 6.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Qa4+ Nc6 6.cxd5 * D38d "QGD: Ragozin, 5.Qa4+ Nc6 6.cxd5 exd5 7.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Qa4+ Nc6 6.cxd5 exd5 7.Bg5 * D38e "QGD: Ragozin, 5.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 * D38f "QGD: Ragozin, 5.cxd5 exd5 6.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 exd5 6.Bg5 * D38g "QGD: Ragozin, 5.cxd5 exd5 6.Bg5 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 exd5 6.Bg5 h6 * D38g "QGD: Ragozin, 5.cxd5 exd5 6.Bg5 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 exd5 6.Bg5 h6 7.Bh4 * D38h "QGD: Ragozin, 5.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 * D38i "QGD: Ragozin, Westphalia Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 Nbd7 * D38j "QGD: Ragozin, Westphalia, 7.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 Nbd7 6.cxd5 exd5 7.Qc2 * D38k "QGD: Ragozin, Westphalia, 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 Nbd7 6.cxd5 exd5 7.e3 * D38l "QGD: Ragozin, 5.Bg5 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 * D38m "QGD: Ragozin, 5.Bg5 h6 6.Bxf6 Qxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 * D38n "QGD: Ragozin, 5.Bg5 h6 6.Bxf6 Qxf6 7.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.cxd5 * D38n "QGD: Ragozin, 5.Bg5 h6 6.Bxf6 Qxf6 7.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.cxd5 exd5 * D38o "QGD: Ragozin, 5.Bg5 h6 6.Bxf6 Qxf6 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 * D38p "QGD: Ragozin, 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 O-O 8.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 O-O 8.Rc1 * D39a "QGD: Ragozin, Vienna Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 * D39b "QGD: Ragozin, Vienna, 6.Qa4+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.Qa4+ * D39c "QGD: Ragozin, Vienna, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 * D39d "QGD: Ragozin, Vienna, 6.e4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 * D39e "QGD: Ragozin, Vienna, 6.e4 c5 7.e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.e5 * D39f "QGD: Ragozin, Vienna, 6.e4 c5 7.e5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.e5 cxd4 * D39g "QGD: Ragozin, Vienna, 6.e4 c5 7.e5 cxd4 8.Qa4+ Nc6 9.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.e5 cxd4 8.Qa4+ Nc6 9.O-O-O * D39h "QGD: Ragozin, Vienna, 6.e4 c5 7.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 * D39h "QGD: Ragozin, Vienna, 6.e4 c5 7.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 * D39h "QGD: Ragozin, Vienna, 6.e4 c5 7.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 * D39i "QGD: Ragozin, Vienna, 6.e4 c5 7.Bxc4, 8...Qa5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 Qa5 * D39j "QGD: Ragozin, Vienna, 6.e4 c5 7.Bxc4, 8...Bxc3+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 Bxc3+ * D39j "QGD: Ragozin, Vienna, 6.e4 c5 7.Bxc4, 8...Bxc3+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 Bxc3+ 9.bxc3 * D39k "QGD: Ragozin, Vienna, 6.e4 c5 7.Bxc4, 8...Bxc3+, 10.Bb5+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 Bxc3+ 9.bxc3 Qa5 10.Bb5+ * D40a "QGD: Semi-Tarrasch" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 * D40a "QGD: Semi-Tarrasch, 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 * D40b "QGD: Semi-Tarrasch, 5.e3 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Be7 * D40c "QGD: Semi-Tarrasch, 5.e3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 cxd4 * # Here, 4.e3 cxd4 5.cxd4 is a Panov-Botvinnik with 5...e6 6.Nf3 D40d "QGD: Semi-Tarrasch, 5.e3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 a6 * D40e "QGD: Semi-Tarrasch, 5.e3 a6 6.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 a6 6.cxd5 * D40e "QGD: Semi-Tarrasch, 5.e3 a6 6.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 a6 6.cxd5 exd5 * D40f "QGD: Semi-Tarrasch, 5.e3 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 * D40g "QGD: Semi-Tarrasch, 5.e3 Nc6 6.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.Bd3 * D40h "QGD: Semi-Tarrasch, Symmetrical Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.Bd3 Bd6 7.O-O O-O * D40i "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 * D40j "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 Ne4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 Ne4 * D40k "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 dxc4 * D40l "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 * D40l "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 * D40m "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 8.c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 8.c5 * D40n "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 8.Bd3 * D40o "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 * D40p "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 a6 7.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.b3 * D40q "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 a6 7.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.dxc5 * D40q "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 a6 7.dxc5 Bxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.dxc5 Bxc5 * D40r "QGD: Semi-Tarrasch, 5.e3 Nc6 6.a3 a6 7.dxc5 Bxc5 8.b4 Ba7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.dxc5 Bxc5 8.b4 Ba7 * D41a "QGD: Semi-Tarrasch, 5.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 * D41b "QGD: Semi-Tarrasch, Keres Counterattack" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 cxd4 * D41c "QGD: Semi-Tarrasch, 5.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 * D41c "QGD: Semi-Tarrasch, 6.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 * D41c "QGD: Semi-Tarrasch, 6.g3 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 * D41c "QGD: Semi-Tarrasch, 6.g3 Nc6 7.Bg2 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 * D41d "QGD: Semi-Tarrasch, 6.g3, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O * D41e "QGD: Semi-Tarrasch, 6.g3, Main Line, 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.e4 * D41f "QGD: Semi-Tarrasch, 6.g3, Main Line, 9.e4 Nb6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.e4 Nb6 * D41g "QGD: Semi-Tarrasch, 6.g3, Main Line, 9.e4 Ndb4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.e4 Ndb4 * D41h "QGD: Semi-Tarrasch, 6.g3, Main Line, 9.Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.Nxd5 * D41i "QGD: Semi-Tarrasch, 6.g3, Main Line, 9.Nxd5 exd5 10.dxc5 Bxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.Nxd5 exd5 10.dxc5 Bxc5 * D41j "QGD: Semi-Tarrasch, 6.g3, Main Line, 9.Nxd5 exd5 10.dxc5 Bxc5 11.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.Nxd5 exd5 10.dxc5 Bxc5 11.Bg5 * D41k "QGD: Semi-Tarrasch, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 * D41k "QGD: Semi-Tarrasch, 6.e4 Nxc3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 * D41k "QGD: Semi-Tarrasch, 6.e4, 8.cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 * D41l "QGD: Semi-Tarrasch, 6.e4, 8.cxd4 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Nc6 * D41m "QGD: Semi-Tarrasch, 6.e4, 8.cxd4 Bb4+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ * D41m "QGD: Semi-Tarrasch, 6.e4, San Sebastian Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Qa5 * D41m "QGD: Semi-Tarrasch, 6.e4, Kmoch Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bb5 * D41n "QGD: Semi-Tarrasch, 6.e4, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 * D41n "QGD: Semi-Tarrasch, 6.e4, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 Nc6 12.O-O * D41o "QGD: Semi-Tarrasch, 6.e4, Main Line, 12...b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 Nc6 12.O-O b6 * D41o "QGD: Semi-Tarrasch, 6.e4, Main Line, 12...b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 Nc6 12.O-O b6 13.Rad1 * D41p "QGD: Semi-Tarrasch, 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 * D41p "QGD: Semi-Tarrasch, 6.e3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 cxd4 * D41p "QGD: Semi-Tarrasch, 6.e3 cxd4 7.exd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 cxd4 7.exd4 * D41q "QGD: Semi-Tarrasch, 6.e3 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 * D41r "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 * D41r "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 * D41r "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 * D41s "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O * D41t "QGD: Semi-Tarrasch, 7.Bc4 Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 * D41t "QGD: Semi-Tarrasch, 7.Bc4 Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 b6 12.Bd3 Bb7 * D41u "QGD: Semi-Tarrasch, 7.Bc4 Main Line, 13.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 b6 12.Bd3 Bb7 13.Qc2 * D41v "QGD: Semi-Tarrasch, 7.Bc4 Main Line, 13.h4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 b6 12.Bd3 Bb7 13.h4 * D42a "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 * D42b "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bd3 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 Be7 * D42c "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bd3 Be7 8.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 Be7 8.O-O O-O * D42d "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bd3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 * D42d "QGD: Semi-Tarrasch, 6.e3 Nc6 7.Bd3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 * D42e "QGD: Semi-Tarrasch, 7.Bd3 Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 * D42f "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 9.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O * D42g "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.a3 * D42h "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.a3 Nf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.a3 Nf6 * D42i "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.a3 Bf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.a3 Bf6 * D42j "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 * D42k "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Ncb4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Ncb4 * D42l "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Nf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 * D42l "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Nf6 11.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.Bg5 * D42m "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Nf6 11.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 * D42m "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Nf6 11.a3 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 * D42m "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Nf6 11.a3 b6 12.Be3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 12.Be3 * D42n "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Nf6 11.a3 b6 12.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 12.Bg5 * D42o "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Nf6 11.a3 b6 12.Bc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 12.Bc2 * D42p "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Bf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 * D42p "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Bf6 11.Be4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 11.Be4 * D42q "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Bf6 11.Be4 Nce7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 11.Be4 Nce7 * D42r "QGD: Semi-Tarrasch, 7.Bd3 Main Line, 10.Re1 Bf6 11.Be4 Nce7 12.Ne5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 11.Be4 Nce7 12.Ne5 * D43a "Semi-Slav" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 * D43b "Semi-Slav: 5.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.g3 * D43c "Semi-Slav: 5.Qd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Qd3 * D43d "Semi-Slav: 5.Qb3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Qb3 * D43e "Semi-Slav: 5.Qb3 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Qb3 dxc4 6.Qxc4 * D43f "Semi-Slav: Botvinnik (Anti-Meran)" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 * D43f "Semi-Slav: Botvinnik, 5...Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 * D43g "Semi-Slav: Botvinnik, 5...Be7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 * D43h "Semi-Slav: Botvinnik, 5...Be7 6.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 O-O * D43i "Semi-Slav: Botvinnik, 5...Be7 6.e3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 Nbd7 * D43j "Semi-Slav: Botvinnik, 5...Be7 6.e3 Nbd7 7.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 Nbd7 7.Bd3 * D43k "Semi-Slav: Moscow Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 * D43k "Semi-Slav: Moscow, 6.Bh4 Gambit" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 * D43k "Semi-Slav: Moscow, 6.Bh4 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 Be7 * D43k "Semi-Slav: Moscow, 6.Bh4 Be7 7.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 Be7 7.e3 O-O * D43k "Semi-Slav: Moscow, 6.Bh4 Gambit Accepted" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 * D43l "Semi-Slav: Moscow, 6.Bh4 Gambit, 7.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 7.e4 * D43m "Semi-Slav: Moscow, 6.Bh4 Gambit, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 7.e4 g5 8.Bg3 b5 9.Be2 * D43n "Semi-Slav: Moscow, 6.Bh4 Gambit, Main Line, 9...Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 7.e4 g5 8.Bg3 b5 9.Be2 Bb7 * D43o "Semi-Slav: Moscow, 6.Bxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 * D43p "Semi-Slav: Moscow, 7.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.g3 * D43q "Semi-Slav: Moscow, Hastings Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.Qb3 * D43r "Semi-Slav: Moscow, 7.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.Qc2 * D43s "Semi-Slav: Moscow, 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 * D43t "Semi-Slav: Moscow, 7.e3 Nd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 * D43u "Semi-Slav: Moscow, 7.e3 Nd7 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D43v "Semi-Slav: Moscow, 7.e3 Nd7 8.Bd3 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 dxc4 * D43v "Semi-Slav: Moscow, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 dxc4 9.Bxc4 g6 * D43v "Semi-Slav: Moscow, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 dxc4 9.Bxc4 g6 10.O-O * D43v "Semi-Slav: Moscow, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 dxc4 9.Bxc4 g6 10.O-O Bg7 * D43w "Semi-Slav: Moscow, Main Line, 11.b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 dxc4 9.Bxc4 g6 10.O-O Bg7 11.b4 * D43x "Semi-Slav: Moscow, Main Line, 11.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 dxc4 9.Bxc4 g6 10.O-O Bg7 11.Rc1 * D44a "Semi-Slav: Botvinnik Accepted" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 * D44b "Semi-Slav: Botvinnik, 6.a4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.a4 * D44c "Semi-Slav: Botvinnik, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 * D44c "Semi-Slav: Botvinnik, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 * D44d "Semi-Slav: Botvinnik, 7.a4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.a4 * D44e "Semi-Slav: Botvinnik, 7.e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 * D44f "Semi-Slav: Botvinnik, 9.exf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.exf6 * D44g "Semi-Slav: Botvinnik, Ekstrom Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.exf6 gxh4 10.Ne5 * D44h "Semi-Slav: Botvinnik, 9.Nxg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 * D44i "Semi-Slav: Botvinnik, Alatortsev Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 Nd5 * D44j "Semi-Slav: Botvinnik, 9.Nxg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 * D44k "Semi-Slav: Botvinnik, Lilienthal Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.g3 * D44l "Semi-Slav: Botvinnik, Lilienthal, 11...Qa5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.g3 Qa5 * D44m "Semi-Slav: Botvinnik, Lilienthal, 11...Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.g3 Bb7 * D44n "Semi-Slav: Botvinnik, Szabo Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.Qf3 * D44o "Semi-Slav: Botvinnik, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 * D44p "Semi-Slav: Botvinnik, Main Line, 12.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 Bb7 12.g3 * D44q "Semi-Slav: Botvinnik, Main Line, 12.g3 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 Bb7 12.g3 c5 * D44r "Semi-Slav: Botvinnik, Main Line, 12.g3 c5 13.d5 Qb6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 Bb7 12.g3 c5 13.d5 Qb6 * D45a "Semi-Slav: 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 * D45b "Semi-Slav: 5.e3 Bd6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Bd6 * D45c "Semi-Slav: 5.e3 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Be7 * D45d "Semi-Slav: 5.e3 Ne4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Ne4 * D45d "Semi-Slav: Stonewall Defence" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Ne4 6.Bd3 f5 * D45e "Semi-Slav: Accelerated Meran (Alekhine Variation)" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 a6 * D45f "Semi-Slav: 5.e3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 * D45f "Semi-Slav: Rubinstein System" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Ne5 * D45g "Semi-Slav: 6.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.a3 * D45h "Semi-Slav: 6.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 * D45i "Semi-Slav: 6.Qc2 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 b6 * D45j "Semi-Slav: 6.Qc2 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Be7 * D45k "Semi-Slav: 6.Qc2 Bd6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 * D45k "Semi-Slav: 6.Qc2 Bd6 7.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.e4 * D45l "Semi-Slav: 6.Qc2 Bd6 7.g4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 * D45l "Semi-Slav: 6.Qc2 Bd6 7.g4 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 h6 * D45m "Semi-Slav: 6.Qc2 Bd6 7.g4 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 dxc4 * D45n "Semi-Slav: 6.Qc2 Bd6 7.g4 Bb4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 Bb4 * D45o "Semi-Slav: 6.Qc2 Bd6 7.g4 Nxg4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 Nxg4 * D45p "Semi-Slav: 6.Qc2 Bd6 7.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 * D45p "Semi-Slav: 6.Qc2 Bd6 7.b3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O * D45q "Semi-Slav: 6.Qc2 Bd6 7.b3 O-O 8.Bb2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Bb2 * D45r "Semi-Slav: 6.Qc2 Bd6 7.b3 O-O 8.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Be2 * D45s "Semi-Slav: 6.Qc2 Bd6 7.b3 O-O 8.Be2 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Be2 b6 * D45t "Semi-Slav: 6.Qc2 Bd6 7.b3 O-O 8.Be2 Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Be2 Re8 * D45u "Semi-Slav: 6.Qc2 Bd6 7.Bd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Bd2 * D45v "Semi-Slav: 6.Qc2 Bd6 7.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 * D45v "Semi-Slav: 6.Qc2 Bd6 7.Be2 O-O 8.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O * D45w "Semi-Slav: 6.Qc2 Bd6 7.Be2 O-O 8.O-O e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O e5 * D45x "Semi-Slav: 6.Qc2 Bd6 7.Be2 O-O 8.O-O Qe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O Qe7 * D45y "Semi-Slav: 6.Qc2 Bd6 7.Be2 O-O 8.O-O Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O Re8 * D46a "Semi-Slav: 6.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 * D46a "Semi-Slav: 6.Bd3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 a6 * D46b "Semi-Slav: Romih Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bb4 * D46b "Semi-Slav: Romih, 7.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bb4 7.O-O * D46b "Semi-Slav: Romih, 7.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bb4 7.O-O O-O * D46c "Semi-Slav: Bogoljubow Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 * D46c "Semi-Slav: Bogoljubow, 7.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 7.O-O * D46c "Semi-Slav: Bogoljubow, 7.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 7.O-O O-O * D46d "Semi-Slav: Bogoljubow, 7.O-O O-O 8.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 7.O-O O-O 8.b3 * D46e "Semi-Slav: Chigorin Defence" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 * D46e "Semi-Slav: Chigorin, 7.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.e4 * D46e "Semi-Slav: Chigorin, 7.e4 dxe4 8.Nxe4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.e4 dxe4 8.Nxe4 * D46f "Semi-Slav: Chigorin, 7.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 * D46g "Semi-Slav: Chigorin, 7.Qc2 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 dxc4 * D46g "Semi-Slav: Chigorin, 7.Qc2 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 dxc4 8.Bxc4 * D46h "Semi-Slav: Chigorin, 7.Qc2 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O * D46i "Semi-Slav: Chigorin, 7.Qc2 Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 * D46i "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 e5 * D46j "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...Qe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 * D46j "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...Qe7 10.Bd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 10.Bd2 * D46j "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...Qe7 10.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 10.a3 * D46j "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...Qe7 10.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 10.h3 * D46k "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 a6 * D46k "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...a6 10.Rd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 a6 10.Rd1 * D46k "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...a6 10.Rd1 b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 a6 10.Rd1 b5 * D46l "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 * D46m "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...b5 10.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 10.Be2 * D46m "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...b5 10.Be2 Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 10.Be2 Bb7 * D46m "Semi-Slav: Chigorin, 7.Qc2 Main Line, 9...b5 10.Be2 Bb7 11.Rd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 10.Be2 Bb7 11.Rd1 * D46n "Semi-Slav: Chigorin, 7.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O * D46o "Semi-Slav: Chigorin, 7.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O * D46p "Semi-Slav: Chigorin, 7.O-O O-O 8.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 * D46p "Semi-Slav: Chigorin, 7.O-O O-O 8.e4 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxc4 * D46p "Semi-Slav: Chigorin, 7.O-O O-O 8.e4 dxc4 9.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxc4 9.Bxc4 * D46p "Semi-Slav: Chigorin, 7.O-O O-O 8.e4 dxc4 9.Bxc4 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxc4 9.Bxc4 e5 * D46q "Semi-Slav: Chigorin, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 * D46q "Semi-Slav: Chigorin, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 * D46q "Semi-Slav: Chigorin, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 * D46r "Semi-Slav: Chigorin, Main Line, 10...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 h6 * D46r "Semi-Slav: Chigorin, Main Line, 10...h6 11.Bc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 h6 11.Bc2 * D46r "Semi-Slav: Chigorin, Main Line, 10...h6 11.Bc2 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 h6 11.Bc2 e5 * D47a "Semi-Slav: Meran Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 * D47a "Semi-Slav: Meran Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 * D47a "Semi-Slav: Meran, 7...b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 * D47b "Semi-Slav: Meran, Freymann Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bb3 * D47c "Semi-Slav: Meran, Freymann, 8...b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bb3 b4 * D47d "Semi-Slav: Meran, Capablanca Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 * D47d "Semi-Slav: Meran, Capablanca, 8...b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 b4 * D47e "Semi-Slav: Meran, Capablanca, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 a6 * D47f "Semi-Slav: Meran, Capablanca, 8...Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 Bb7 * D47f "Semi-Slav: Meran, Capablanca, 8...Bb7 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 Bb7 9.O-O * D47g "Semi-Slav: Meran, Capablanca, 8...Bb7 9.O-O a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 Bb7 9.O-O a6 * D47h "Semi-Slav: Meran, 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 * D47h "Semi-Slav: Meran, 8.Bd3 Bd6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bd6 * D47i "Semi-Slav: Meran, Lundin Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 * D47i "Semi-Slav: Meran, Lundin, 9.Na4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Na4 * D47j "Semi-Slav: Meran, Lundin, 9.Ne4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 * D47k "Semi-Slav: Meran, Lundin, 9.Ne4 Nxe4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 Nxe4 * D47l "Semi-Slav: Meran, Lundin, 9.Ne4 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 Be7 * D47l "Semi-Slav: Meran, Lundin, 9.Ne4 Be7 10.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 Be7 10.O-O * D47m "Semi-Slav: Meran, Wade Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 * D47m "Semi-Slav: Meran, Wade, 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.a3 * D47n "Semi-Slav: Meran, Wade, 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O * D47n "Semi-Slav: Meran, Wade, 9.O-O b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 * D47o "Semi-Slav: Meran, Wade, 9.O-O b4 10.Ne4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 * D47o "Semi-Slav: Meran, Wade, 9.O-O b4 10.Ne4 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 * D47p "Semi-Slav: Meran, Wade, 9.O-O b4 10.Ne4 Be7 11.Nxf6+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 11.Nxf6+ * D47p "Semi-Slav: Meran, Wade, 9.O-O b4 10.Ne4 Be7 11.Nxf6+ Nxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 11.Nxf6+ Nxf6 * D47p "Semi-Slav: Meran, Wade, 9.O-O b4 10.Ne4 Be7 11.Nxf6+ Nxf6 12.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 11.Nxf6+ Nxf6 12.e4 * D47q "Semi-Slav: Meran, Wade, 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 * D47r "Semi-Slav: Meran, Wade, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 b4 10.Na4 c5 11.e5 Nd5 * D47s "Semi-Slav: Meran, Wade, Main Line, 12.Nxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 b4 10.Na4 c5 11.e5 Nd5 12.Nxc5 * D47t "Semi-Slav: Meran, Wade, Main Line, 12.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 b4 10.Na4 c5 11.e5 Nd5 12.O-O * D48a "Semi-Slav: Meran, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 * D48b "Semi-Slav: Meran, 8...a6 9.a4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.a4 * D48c "Semi-Slav: Meran, 8...a6 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O * D48c "Semi-Slav: Meran, 8...a6 9.O-O c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O c5 * D48d "Semi-Slav: Meran, 8...a6 9.O-O c5 10.Qe2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O c5 10.Qe2 * D48e "Semi-Slav: Meran, 8...a6 9.O-O Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 * D48f "Semi-Slav: Meran, 8...a6 9.O-O Bb7 10.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 * D48f "Semi-Slav: Meran, 8...a6 9.O-O Bb7 10.e4 c5 11.d5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 * D48g "Semi-Slav: Meran, 8...a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 * D48g "Semi-Slav: Meran, 8...a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 12.dxe6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 12.dxe6 * D48g "Semi-Slav: Meran, 8...a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 12.dxe6 fxe6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 12.dxe6 fxe6 * D48h "Semi-Slav: Meran, 8...a6 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 * D48i "Semi-Slav: Meran, 8...a6 9.e4 Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 Bb7 * D48j "Semi-Slav: Meran, Pirc Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 b4 * D48k "Semi-Slav: Meran, 8...a6 9.e4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 * D48l "Semi-Slav: Meran, Reynolds Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 * D48m "Semi-Slav: Meran, Reynolds, 10...e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 e5 * D48n "Semi-Slav: Meran, Reynolds, 10...Qc7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 Qc7 * D48o "Semi-Slav: Meran, Reynolds, 10...c4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 * D48p "Semi-Slav: Meran, Reynolds, 10...c4 11.dxe6 fxe6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 * D48p "Semi-Slav: Meran, Reynolds, 10...c4 11.dxe6 fxe6 12.Bc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 12.Bc2 * D48p "Semi-Slav: Meran, Reynolds, 10...c4 11.dxe6 fxe6 12.Bc2 Qc7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 12.Bc2 Qc7 * D48p "Semi-Slav: Meran, Reynolds, 10...c4 11.dxe6 fxe6 12.Bc2 Qc7 13.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 12.Bc2 Qc7 13.O-O * D48q "Semi-Slav: Meran, Old Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 * D48r "Semi-Slav: Meran, Rabinovich Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 Ng4 * D48s "Semi-Slav: Meran, Old Main Line, 10...cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 * D49a "Semi-Slav: Meran, Blumenfeld Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 * D49b "Semi-Slav: Meran, Old Main Line, Gligoric Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Ng4 * D49c "Semi-Slav: Meran, Old Main Line, Gligoric, 12.Qa4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Ng4 12.Qa4 * D49d "Semi-Slav: Meran, Trifunovic Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Ng4 12.Qa4 Ngxe5 * D49e "Semi-Slav: Meran, Sozin Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 * D49f "Semi-Slav: Meran, Sozin, Rellstab Attack" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.O-O * D49g "Semi-Slav: Meran, Sozin, Stahlberg Attack" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.Qf3 * D49g "Semi-Slav: Meran, Sozin, Stahlberg Attack, 13...Bb4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.Qf3 Bb4 * D49h "Semi-Slav: Meran, Sozin, 13.Bxb5+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.Bxb5+ * D49i "Semi-Slav: Meran, Old Main Line, 11.Nxb5 axb5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 axb5 * D49j "Semi-Slav: Meran, Old Main Line, Botvinnik Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 axb5 12.exf6 Qb6 * D49k "Semi-Slav: Meran, Old Main Line, 11.Nxb5 axb5 12.exf6 gxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 axb5 12.exf6 gxf6 * D50 "QGD: 4.Bg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 * D50 "QGD: 4.Bg5 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c6 * D50 "QGD: 4.Bg5 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 dxc4 * D50 "QGD: 4.Bg5 Bb4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Bb4 * D50 "QGD: Dutch-Peruvian Gambit" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 * D50 "QGD: Dutch-Peruvian, 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.e3 * D50 "QGD: Semi-Tarrasch, Pillsbury Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 * D50 "QGD: Semi-Tarrasch, Old Pillsbury Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Qxd4 * D50 "QGD: Semi-Tarrasch, Pillsbury, 6.Nxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Nxd4 * D50 "QGD: Semi-Tarrasch, Pillsbury, 6.Nxd4 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Nxd4 e5 * D50 "QGD: Semi-Tarrasch, Pillsbury, Krause Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Nxd4 e5 7.Ndb5 a6 8.Qa4 * D50 "QGD: Dutch-Peruvian, 5.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 * D50 "QGD: Dutch-Peruvian, Canal (Venice) Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 Qb6 * D50 "QGD: Dutch-Peruvian, Prins Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 cxd4 * D50 "QGD: Dutch-Peruvian, Prins, 6.Qxd4 Be7 7.e4 Nc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 cxd4 6.Qxd4 Be7 7.e4 Nc6 * D50 "QGD: Dutch-Peruvian, Prins, 6.Qxd4 Be7 7.e4 Nc6 8.Qd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 cxd4 6.Qxd4 Be7 7.e4 Nc6 8.Qd2 * D51 "QGD: 4.Bg5 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 * D51 "QGD: 4.Bg5 Nbd7 5.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 * D51 "QGD: 4.Bg5 Nbd7 5.Nf3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 c6 * D51 "QGD: Rochlin Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 c6 6.Rc1 Qa5 7.Bd2 * D51 "QGD: Alekhine 4.Bg5 Nbd7 5.Nf3 c6 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 c6 6.e4 * D51 "QGD: 4.Bg5 Nbd7 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 * D51 "QGD: Manhattan Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 Bb4 * D51 "QGD: 4.Bg5 Nbd7 5.e3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 * D51 "QGD: Capablanca's Anti-Cambridge Springs" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.a3 * D51 "QGD: 4.Bg5 Nbd7 5.e3 c6 6.cxd5 cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.cxd5 cxd5 * D51 "QGD: 4.Bg5 Nbd7 5.e3 c6 6.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Qc2 * D52a "QGD: 4.Bg5 Nbd7 5.e3 c6 6.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 * D52b "QGD: Cambridge Springs Defence" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 * D52c "QGD: Cambridge Springs, Capablanca Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Bxf6 * D52d "QGD: Cambridge Springs, 7.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.cxd5 * D52e "QGD: Cambridge Springs, Yugoslav Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.cxd5 Nxd5 * D52f "QGD: Cambridge Springs, Yugoslav, 8.Qd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.cxd5 Nxd5 8.Qd2 * D52g "QGD: Cambridge Springs, 7.Nd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 * D52h "QGD: Cambridge Springs, Rubinstein Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 dxc4 * D52i "QGD: Cambridge Springs, Bogoljubow Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 * D52j "QGD: Cambridge Springs, Bogoljubow, 8.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 * D52k "QGD: Cambridge Springs, 8.Qc2 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 dxc4 * D52l "QGD: Cambridge Springs, 8.Qc2 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O * D52m "QGD: Cambridge Springs, Argentine Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O 9.Bh4 * D52n "QGD: Cambridge Springs, 8.Qc2 O-O 9.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O 9.Be2 * D52o "QGD: Cambridge Springs, 8.Qc2 O-O 9.Be2 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O 9.Be2 e5 * D53a "QGD: 4.Bg5 Be7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 * D53b "QGD: 4.Bg5 Be7 5.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.cxd5 Nxd5 * D53c "QGD: 4.Bg5 Be7 5.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 * D53d "QGD: 4.Bg5 Be7 5.Nf3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 * D53e "QGD: 4.Bg5 Be7 5.Nf3 h6 6.Bxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 * D53f "QGD: 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 Bxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 Bxf6 * D53g "QGD: 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 Bxf6 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 Bxf6 7.e3 * D53h "QGD: 4.Bg5 Be7 5.Nf3 h6 6.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 * D53i "QGD: 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O * D53j "QGD: 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O 7.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O 7.Qc2 * D53k "QGD: 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O 7.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O 7.Rc1 * D53l "QGD: 4.Bg5 Be7 5.Nf3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O * D53m "QGD: 4.Bg5 Be7 5.Nf3 O-O 6.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 * D53n "QGD: 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 Nbd7 * D53o "QGD: 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 c5 * D53p "QGD: 4.Bg5 Be7 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 * D53q "QGD: Early Lasker Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 Ne4 * D53r "QGD: 4.Bg5 Be7 5.e3 Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 Nbd7 * D53s "QGD: 4.Bg5 Be7 5.e3 Nbd7 6.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 Nbd7 6.Nf3 * D53t "QGD: 4.Bg5 Be7 5.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 h6 * D53u "QGD: 4.Bg5 Be7 5.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O * D53v "QGD: 4.Bg5 Be7 5.e3 O-O 6.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Qc2 * D53v "QGD: 4.Bg5 Be7 5.e3 O-O 6.Qc2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Qc2 c5 * D54a "QGD: Anti-Neo-Orthodox Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 * D54b "QGD: Anti-Neo-Orthodox Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 * D54c "QGD: Anti-Neo-Orthodox, 7.Bh4 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 * D54c "QGD: Anti-Neo-Orthodox, 8.cxd5 Nxd5 9.Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 * D54d "QGD: Anti-Neo-Orthodox, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 exd5 10.Bxe7 Qxe7 * D54e "QGD: Anti-Neo-Orthodox, Main Line, 11.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 exd5 10.Bxe7 Qxe7 11.Be2 * D55a "QGD: 6.Nf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 * D55b "QGD: Lasker without ...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Ne4 * D55c "QGD: 6.Nf3 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 * D55d "QGD: 6.Nf3 b6 7.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 7.Be2 * D55e "QGD: 6.Nf3 b6 7.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 7.cxd5 exd5 * D55f "QGD: 6.Nf3 b6 7.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 7.cxd5 Nxd5 * D55g "QGD: Neo-Orthodox Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 * D55h "QGD: Neo-Orthodox, 7.Bxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 * D55i "QGD: Neo-Orthodox, 7.Bxf6 Bxf6 8.Qb3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 Bxf6 8.Qb3 * D55j "QGD: Neo-Orthodox, Gligoric Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 Bxf6 8.Rc1 * D55k "QGD: Neo-Orthodox, Petrosian Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 Bxf6 8.Rc1 c6 9.Bd3 Nd7 10.O-O dxc4 11.Bxc4 * D56 "QGD: Neo-Orthodox, 7.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 * D56 "QGD: Lasker Defence" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 * D56 "QGD: Lasker Defence, 9.Nxe4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Nxe4 * D56 "QGD: Lasker Defence, Teichmann Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Qc2 * D56 "QGD: Lasker Defence, Teichmann, 9...c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Qc2 c6 * D56 "QGD: Lasker Defence, Teichmann, 9...Nxc3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Qc2 Nxc3 * D56 "QGD: Lasker Defence, 9.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Rc1 * D56 "QGD: Lasker Defence, 9.Rc1 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Rc1 c6 * D56 "QGD: Lasker Defence, 9.Rc1 c6 10.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Rc1 c6 10.Bd3 * D57 "QGD: Lasker Defence, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 * D57 "QGD: Lasker Defence, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 * D57 "QGD: Lasker Defence, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 * D57 "QGD: Lasker Defence, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 * D57 "QGD: Lasker Defence, Main Line, 11.Qb3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 * D57 "QGD: Lasker Defence, Main Line, Bernstein Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 Qd6 * D57 "QGD: Lasker Defence, Main Line, Bernstein, 12.c4 dxc4 13.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 Qd6 12.c4 dxc4 13.Bxc4 * D57 "QGD: Lasker Defence, Main Line, 11.Qb3 Rd8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 Rd8 * D58a "QGD: Tartakower System" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 * D58b "QGD: Tartakower, 8.Qb3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Qb3 * D58c "QGD: Tartakower, 8.Qc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Qc2 * D58d "QGD: Tartakower, 8.Bxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bxf6 * D58e "QGD: Tartakower, 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 * D58f "QGD: Tartakower, 8.Bd3 Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 * D58g "QGD: Tartakower, 8.Bd3 Bb7 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O * D58h "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 * D58h "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Bg3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Bg3 * D58h "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Rc1 * D58h "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Rc1 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Rc1 c5 * D58i "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 * D58j "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 * D58j "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 11.Bg3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 11.Bg3 * D58j "QGD: Tartakower, 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 11.Rfd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 11.Rfd1 * D58k "QGD: Tartakower, 8.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 * D58k "QGD: Tartakower, 8.Be2 Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 * D58l "QGD: Tartakower, 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 * D58l "QGD: Tartakower, 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 * D58m "QGD: Tartakower, 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.O-O * D58n "QGD: Tartakower, 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 * D58n "QGD: Tartakower, 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c5 * D58o "QGD: Tartakower, 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c6 * D58o "QGD: Tartakower, 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c6 12.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c6 12.O-O * D58p "QGD: Tartakower, 8.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 * D58p "QGD: Tartakower, 8.Rc1 Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 * D58q "QGD: Tartakower, 8.Rc1 Bb7 9.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.cxd5 * D58q "QGD: Tartakower, 8.Rc1 Bb7 9.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.cxd5 exd5 * D58r "QGD: Tartakower, 8.Rc1 Bb7 9.Bxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.Bxf6 * D58r "QGD: Tartakower, 8.Rc1 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 * D58s "QGD: Tartakower, 8.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 * D58s "QGD: Tartakower, 8.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 exd5 * D58t "QGD: Tartakower, 8.cxd5 exd5 9.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 exd5 9.Bd3 * D59a "QGD: Tartakower, 8.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 * D59b "QGD: Tartakower, 8.cxd5 Nxd5 9.Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 * D59c "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 * D59d "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 * D59e "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 * D59e "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 * D59f "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Nxd5 * D59f "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Nxd5 Bxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Nxd5 Bxd5 * D59g "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Bd3 * D59h "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Be2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Be2 * D59i "QGD: Tartakower, 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 * D59j "QGD: Tartakower, Main Line, 11.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Be2 * D59k "QGD: Tartakower, Main Line, 11.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 * D59l "QGD: Tartakower, Main Line, 11.Rc1 Be6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 * D59m "QGD: Tartakower, Main Line, 12.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 12.Bd3 * D59n "QGD: Tartakower, Main Line, 12.Qa4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 12.Qa4 * D59n "QGD: Tartakower, Main Line, 12.Qa4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 12.Qa4 c5 * D60 "QGD: Orthodox Defence" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 * D60 "QGD: Orthodox, 7.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.cxd5 Nxd5 * D60 "QGD: Orthodox, Rauzer Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qb3 * D60 "QGD: Orthodox, Rauzer Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qb3 c6 * D60 "QGD: Orthodox, Botvinnik Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 * D60 "QGD: Orthodox, Botvinnik, 7...b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 b6 * D60 "QGD: Orthodox, Botvinnik, 7...c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 c6 * D60 "QGD: Orthodox, Botvinnik, 7...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 * D60 "QGD: Orthodox, Botvinnik, 7...dxc4 8.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 * D60 "QGD: Orthodox, Botvinnik, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 a6 * D60 "QGD: Orthodox, Botvinnik, 8...c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 c5 * D60 "QGD: Orthodox, Botvinnik, 8...c5 9.O-O a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 c5 9.O-O a6 * D61 "QGD: Orthodox, Rubinstein Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 h6 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 h6 8.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 h6 8.Bh4 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 h6 8.Bh4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 h6 8.Bh4 c5 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 a6 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c6 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.a3 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c6 8.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.Bd3 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c6 8.Bd3 dxc4 9.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.Bd3 dxc4 9.Bxc4 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c6 8.Rd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.Rd1 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.Rd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.Rd1 * D61 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.O-O-O * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 cxd4 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 exd5 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5 exd5 9.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 exd5 9.Bd3 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5, Main Line, 11.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Bd3 * D62 "QGD: Orthodox, Rubinstein, 7.Qc2 c5 8.cxd5, Main Line, 11.Bd3 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Bd3 g6 * D63 "QGD: Orthodox, 7.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 * D63 "QGD: Orthodox, 7.Rc1 Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 Re8 * D63 "QGD: Orthodox, 7.Rc1 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 h6 * D63 "QGD: Orthodox, 7.Rc1 h6 8.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 h6 8.Bh4 * D63 "QGD: Orthodox, 7.Rc1 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 dxc4 * D63 "QGD: Orthodox, 7.Rc1 dxc4 8.Bxc4 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 dxc4 8.Bxc4 a6 * D63 "QGD: Orthodox, 7.Rc1 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 * D63 "QGD: Orthodox, 7.Rc1 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 * D63 "QGD: Orthodox, 7.Rc1 b6, Duras Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 9.Qa4 * D63 "QGD: Orthodox, 7.Rc1 b6, Pillsbury Attack" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 9.Bd3 * D63 "QGD: Orthodox, 7.Rc1 b6, Capablanca Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 9.Bb5 * D63 "QGD: Orthodox, Swiss Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 * D63 "QGD: Orthodox, Swiss, 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.a3 * D63 "QGD: Orthodox, Swiss, 8.c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.c5 * D63 "QGD: Orthodox, Swiss, 8.c5 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.c5 c6 * D63 "QGD: Orthodox, Swiss, Karlsbad Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 * D63 "QGD: Orthodox, Swiss, Karlsbad Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 exd5 * D63 "QGD: Orthodox, Swiss, Karlsbad, 9.Bd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 exd5 9.Bd3 * D63 "QGD: Orthodox, Swiss, Karlsbad, 9.Bd3 Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 exd5 9.Bd3 Re8 * D63 "QGD: Orthodox, Swiss, Karlsbad, 9.Bd3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 exd5 9.Bd3 c6 * D63 "QGD: Orthodox, 7.Rc1 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 * D63 "QGD: Orthodox, 7.Rc1 c6 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.a3 * D64 "QGD: Orthodox, Rubinstein Attack" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 * D64 "QGD: Orthodox, Rubinstein Attack, 8...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 dxc4 * D64 "QGD: Orthodox, Rubinstein Attack, Wolf Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Ne4 * D64 "QGD: Orthodox, Rubinstein Attack, 8...Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Re8 * D64 "QGD: Orthodox, Rubinstein Attack, 8...Re8 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Re8 9.a3 * D64 "QGD: Orthodox, Rubinstein Attack, 8...Re8 9.a3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Re8 9.a3 a6 * D64 "QGD: Orthodox, Rubinstein Attack, 8...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 h6 * D64 "QGD: Orthodox, Rubinstein Attack, Carlsbad Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 * D64 "QGD: Orthodox, Rubinstein Attack, Gruenfeld Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.a3 * D64 "QGD: Orthodox, Rubinstein Attack, Gruenfeld Variation, 9...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.a3 h6 * D64 "QGD: Orthodox, Rubinstein Attack, Gruenfeld Variation, 9...h6 10.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.a3 h6 10.Bh4 * D65 "QGD: Orthodox, Rubinstein Attack, 9.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 * D65 "QGD: Orthodox, Rubinstein Attack, 9.cxd5 Nxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 Nxd5 * D65 "QGD: Orthodox, Rubinstein Attack, 9.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 * D65 "QGD: Orthodox, Rubinstein, 9.cxd5 exd5 10.Bd3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 h6 * D65 "QGD: Orthodox, Rubinstein, 9.cxd5 exd5 10.Bd3 h6 11.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 h6 11.Bh4 * D65 "QGD: Orthodox, Rubinstein, 9.cxd5 exd5 10.Bd3 Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 * D65 "QGD: Orthodox, Rubinstein, 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 * D65 "QGD: Orthodox, Rubinstein, 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 12.Ne5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 12.Ne5 * D65 "QGD: Orthodox, Rubinstein, 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 12.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 12.h3 * D66 "QGD: Orthodox, Main Line" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 * D66 "QGD: Orthodox, Main Line, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 a6 * D66 "QGD: Orthodox, Main Line, 8...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 * D66 "QGD: Orthodox, Main Line, 8...h6 9.Bh4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 * D66 "QGD: Orthodox, Main Line, 8...h6 9.Bh4 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 dxc4 * D66 "QGD: Orthodox, Main Line, 8...h6 9.Bh4 dxc4 10.Bxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 dxc4 10.Bxc4 * D66 "QGD: Orthodox, Main Line, 8...h6 9.Bh4 dxc4 10.Bxc4 b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 dxc4 10.Bxc4 b5 * D66 "QGD: Orthodox, Main Line, 8...Re8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 Re8 * D66 "QGD: Orthodox, Main Line, 8...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 * D66 "QGD: Orthodox, Main Line, 8...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 * D66 "QGD: Orthodox, Main Line, Fianchetto Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 * D66 "QGD: Orthodox, Main Line, Fianchetto Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 10.Bd3 a6 * D66 "QGD: Orthodox, Main Line, Fianchetto, 11.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 10.Bd3 a6 11.O-O * D66 "QGD: Orthodox, Main Line, Fianchetto, 11.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 10.Bd3 a6 11.e4 * D67 "QGD: Orthodox, Main Line, Capablanca Freeing Manoevure" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 * D67 "QGD: Orthodox, Main Line, Janowski Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.h4 * D67 "QGD: Orthodox, Main Line, Capablanca Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 * D67 "QGD: Orthodox, Main Line, Alekhine Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.Ne4 * D67 "QGD: Orthodox, Main Line, Alekhine, 11...e5 (Lasker)" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.Ne4 e5 * D67 "QGD: Orthodox, Main Line, Alekhine, 11...N5f6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.Ne4 N5f6 * D67 "QGD: Orthodox, Main Line, Capablanca, 11.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O * D67 "QGD: Orthodox, Main Line, Capablanca, 11.O-O Nxc3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 * D68 "QGD: Orthodox, Classical Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 * D68 "QGD: Orthodox, Classical, 13.Bb3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Bb3 * D68 "QGD: Orthodox, Classical, Maroczy Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qb1 * D68 "QGD: Orthodox, Classical, Maroczy, 13...exd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qb1 exd4 * D68 "QGD: Orthodox, Classical, Vidmar Variation" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 * D68 "QGD: Orthodox, Classical, Vidmar, 13...e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 e4 * D68 "QGD: Orthodox, Classical, Vidmar, 13...exd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 exd4 * D68 "QGD: Orthodox, Classical, Vidmar, 13...exd4 14.exd4 Nb6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 exd4 14.exd4 Nb6 * D69 "QGD: Orthodox, Classical, 13.dxe5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 * D69 "QGD: Orthodox, Classical, 13.dxe5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 * D69 "QGD: Orthodox, Classical, 13.dxe5: 15.f4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 15.f4 * D69 "QGD: Orthodox, Classical, 13.dxe5: 15.f4 Qe4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 15.f4 Qe4 * D69 "QGD: Orthodox, Classical, 13.dxe5: 15.f4 Qf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 15.f4 Qf6 * D69 "QGD: Orthodox, Classical, 13.dxe5: 15.f4 Qf6 16.f5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 15.f4 Qf6 16.f5 * D69 "QGD: Orthodox, Classical, 13.dxe5: 15.f4 Qf6 16.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 15.f4 Qf6 16.e4 * D70 "Neo-Gruenfeld: 3.Nf3 d5" 1.d4 Nf6 2.c4 g6 3.Nf3 d5 * D70 "Neo-Gruenfeld: Alekhine's Anti-Gruenfeld" 1.d4 Nf6 2.c4 g6 3.f3 d5 * D70 "Neo-Gruenfeld: Alekhine's, 5.e4 Nb6" 1.d4 Nf6 2.c4 g6 3.f3 d5 4.cxd5 Nxd5 5.e4 Nb6 * D70 "Neo-Gruenfeld: Alekhine's, 7.Be3 O-O" 1.d4 Nf6 2.c4 g6 3.f3 d5 4.cxd5 Nxd5 5.e4 Nb6 6.Nc3 Bg7 7.Be3 O-O * D70 "Neo-Gruenfeld: 3.g3 d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 * D70 "Neo-Gruenfeld: 4.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.cxd5 * D70 "Neo-Gruenfeld: 4.Bg2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 * D70 "Neo-Gruenfeld: 4.Bg2 c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 c6 * D70 "Neo-Gruenfeld: 4.Bg2 Bg7" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.Nc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.Nc3 Nxc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 Nxc3 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.Nc3 Nxc3 7.bxc3 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 Nxc3 7.bxc3 c5 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.Nc3 Nb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 Nb6 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb4 * D71 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb4 7.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb4 7.d5 * D72 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 * D72 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 Nc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 Nc6 * D72 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 e5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 e5 * D72 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 c5 * D72 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 O-O * D72 "Neo-Gruenfeld, 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 O-O 8.O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 O-O 8.O-O * D73 "Neo-Gruenfeld, 5.Nf3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 * D73 "Neo-Gruenfeld, 5.Nf3 c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 * D73 "Neo-Gruenfeld, 5.Nf3 c6 6.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 6.cxd5 * D73 "Neo-Gruenfeld, 5.Nf3 c6 6.cxd5 cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 6.cxd5 cxd5 * D73 "Neo-Gruenfeld, 5.Nf3 c6 6.cxd5 cxd5 7.Nc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 6.cxd5 cxd5 7.Nc3 * D73 "Neo-Gruenfeld, 5.Nf3 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c5 * D73 "Neo-Gruenfeld, 5.Nf3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 dxc4 * D73 "Neo-Gruenfeld, 5.Nf3 dxc4 6.Na3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 dxc4 6.Na3 * D73 "Neo-Gruenfeld, 5.Nf3 O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O * D73 "Neo-Gruenfeld, 6.Qb3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.Qb3 * D73 "Neo-Gruenfeld, 6.Nc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.Nc3 * D73 "Neo-Gruenfeld, 6.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 * D73 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.e4 * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Na6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Na6 * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nc6 * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c6 * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.e4 * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.e4 Nf6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.e4 Nf6 * D74 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.e4 Nf6 9.e5 Nd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.e4 Nf6 9.e5 Nd5 * D75 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.Nc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.Nc3 * D75 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.Nc3 Nxc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.Nc3 Nxc3 * D75 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.Nc3 Nxc3 9.bxc3 cxd4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.Nc3 Nxc3 9.bxc3 cxd4 * D75 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.dxc5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.dxc5 * D75 "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O c5 8.dxc5 Na6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.dxc5 Na6 * D76a "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 * D76b "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 * D76c "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 * D76d "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 * D76e "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 * D76e "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 10.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 10.d5 * D76f "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 10.d5 Na5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 10.d5 Na5 * D76g "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 Re8" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 Re8 * D76h "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 Re8 10.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 Re8 10.d5 * D76i "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 * D76j "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 * D76k "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 * D76k "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 c6 * D76l "Neo-Gruenfeld, 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 c6 11.Bg5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 c6 11.Bg5 * D77a "Neo-Gruenfeld, 6.O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O * D77b "Neo-Gruenfeld, 6.O-O e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O e6 * D77c "Neo-Gruenfeld, 6.O-O c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c5 * D77c "Neo-Gruenfeld, 6.O-O c5 7.dxc5 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c5 7.dxc5 dxc4 * D77d "Neo-Gruenfeld, 6.O-O Nc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O Nc6 * D77e "Neo-Gruenfeld, 6.O-O dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 * D77f "Neo-Gruenfeld, 6.O-O dxc4 7.Na3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 * D77g "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 Na6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Na6 * D77h "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 c3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 c3 * D77h "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 c3 8.bxc3 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 c3 8.bxc3 c5 * D77i "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 c3 8.bxc3 c5 9.e3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 c3 8.bxc3 c5 9.e3 * D77j "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 Nc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 * D77j "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 Nc6 8.Nxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 * D77j "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 * D77k "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 9.b3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 9.b3 * D77l "Neo-Gruenfeld, 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 9.b3 Bd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 9.b3 Bd5 * D78a "Neo-Gruenfeld, 6.O-O c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 * D78b "Neo-Gruenfeld, 6.O-O c6 7.Na3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Na3 * D78c "Neo-Gruenfeld, 6.O-O c6 7.Ne5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Ne5 * D78d "Neo-Gruenfeld, 6.O-O c6 7.Qa4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qa4 * D78e "Neo-Gruenfeld, 6.O-O c6 7.Nc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nc3 * D78f "Neo-Gruenfeld, 6.O-O c6 7.Nc3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nc3 dxc4 * D78g "Neo-Gruenfeld, 6.O-O c6 7.Qb3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 * D78h "Neo-Gruenfeld, 6.O-O c6 7.Qb3 Qb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 Qb6 * D78i "Neo-Gruenfeld, 6.O-O c6 7.Qb3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 dxc4 * D78j "Neo-Gruenfeld, 6.O-O c6 7.Qb3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 dxc4 8.Qxc4 * D78k "Neo-Gruenfeld, 6.O-O c6 7.Nbd2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 * D78l "Neo-Gruenfeld, 6.O-O c6 7.Nbd2 Nbd7" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 Nbd7 * D78m "Neo-Gruenfeld, 6.O-O c6 7.Nbd2 Ne4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 Ne4 * D78n "Neo-Gruenfeld, 6.O-O c6 7.Nbd2 Bf5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 Bf5 * D78o "Neo-Gruenfeld, 6.O-O c6 7.b3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.b3 * D78p "Neo-Gruenfeld, 6.O-O c6 7.b3 Bf5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.b3 Bf5 * D78q "Neo-Gruenfeld, 6.O-O c6 7.b3 Ne4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.b3 Ne4 * D79a "Neo-Gruenfeld, 6.O-O c6 7.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 * D79a "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 * D79b "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 * D79c "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3 e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 e6 * D79d "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 * D79d "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 9.Ne5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 9.Ne5 * D79e "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 9.Nxe4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 9.Nxe4 * D79f "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 * D79g "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 9.Ne5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 9.Ne5 * D79h "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 9.Ne5 e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 9.Ne5 e6 * D79i "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Ne5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 * D79i "Neo-Gruenfeld, 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 * D79j "Neo-Gruenfeld, Main Line" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 * D79k "Neo-Gruenfeld, Main Line, 10.f4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 * D79l "Neo-Gruenfeld, Main Line, 10.f4 Nc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 * D79m "Neo-Gruenfeld, Main Line, 10.f4 Nc6 11.Be3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 * D79m "Neo-Gruenfeld, Main Line, 10.f4 Nc6 11.Be3 f6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 f6 * D79n "Neo-Gruenfeld, Main Line, 10.f4 Nc6 11.Be3 Nb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 Nb6 * D79n "Neo-Gruenfeld, Main Line, 10.f4 Nc6 11.Be3 Nb6 12.Bf2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 Nb6 12.Bf2 * D80 "Gruenfeld Defence" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 * D80 "Gruenfeld: Spike/Gibbon Gambit" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.g4 * D80 "Gruenfeld: 4.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.h4 * D80 "Gruenfeld: 4.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.g3 * D80 "Gruenfeld: 4.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.f3 * D80 "Gruenfeld: 4.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.e3 * D80 "Gruenfeld: 4.e3 Bg7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.e3 Bg7 * D80 "Gruenfeld: 4.e3 Bg7 5.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.e3 Bg7 5.Qb3 * D80 "Gruenfeld: Stockholm Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 * D80 "Gruenfeld: Stockholm, 4...Ne4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 * D80 "Gruenfeld: Stockholm, 4...Ne4 5.Nxe4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Nxe4 * D80 "Gruenfeld: Stockholm, Lundin Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Nxe4 dxe4 6.Qd2 c5 * D80 "Gruenfeld: Stockholm, 4...Ne4 5.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bf4 * D80 "Gruenfeld: Stockholm, Taimanov Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bh4 * D80 "Gruenfeld: Stockholm, Taimanov, 5...Nxc3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bh4 Nxc3 * D80 "Gruenfeld: Stockholm, Taimanov, 5...Nxc3 6.bxc3 Bg7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bh4 Nxc3 6.bxc3 Bg7 * D81 "Gruenfeld: Early Russian Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 * D81 "Gruenfeld: Early Russian Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 * D81 "Gruenfeld: Early Russian, 5...Be6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Be6 * D81 "Gruenfeld: Early Russian, 5...Be6 6.Qb5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Be6 6.Qb5+ * D81 "Gruenfeld: Early Russian, Adorjan Gambit" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Be6 6.Qb5+ Bd7 * D81 "Gruenfeld: Early Russian, 5...Bg7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Bg7 * D81 "Gruenfeld: Early Russian, 5...Bg7 6.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Bg7 6.e4 * D81 "Gruenfeld: Early Russian, 5...Bg7 6.e4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Bg7 6.e4 O-O * D82 "Gruenfeld: 4.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 * D82 "Gruenfeld: 4.Bf4 Bg7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 * D82 "Gruenfeld: 4.Bf4 Bg7 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 * D82 "Gruenfeld: 4.Bf4 Bg7 5.e3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 * D82 "Gruenfeld: 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 * D82 "Gruenfeld: 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 7.Qa4+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 7.Qa4+ * D82 "Gruenfeld: 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 7.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 7.Rc1 * D83 "Gruenfeld: Gruenfeld Gambit" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O * D83 "Gruenfeld: Gruenfeld Gambit, 6.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Qb3 * D83 "Gruenfeld: Gruenfeld Gambit, Capablanca Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Rc1 * D83 "Gruenfeld: Gruenfeld Gambit, Capablanca Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Rc1 c5 * D83 "Gruenfeld: Gruenfeld Gambit, Botvinnik Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Rc1 c5 7.dxc5 Be6 * D84 "Gruenfeld: Gruenfeld Gambit Accepted" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 * D84 "Gruenfeld: Gruenfeld Gambit Accepted" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 * D84 "Gruenfeld: Gruenfeld Gambit Accepted, 8...b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 b6 * D84 "Gruenfeld: Gruenfeld Gambit Accepted, 8...Bf5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Bf5 * D84 "Gruenfeld: Gruenfeld Gambit Accepted, 8...Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Na6 * D84 "Gruenfeld: Gruenfeld Gambit Accepted, 8...Na6 9.Bxa6 Qxg2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Na6 9.Bxa6 Qxg2 * D84 "Gruenfeld: Gruenfeld Gambit Accepted, 8...Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Nc6 * D84 "Gruenfeld: Gruenfeld Gambit Accepted, 8...Nc6 9.Ne2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Nc6 9.Ne2 * D84 "Gruenfeld: Gruenfeld Gambit Accepted, 8...Nc6 9.Ne2 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Nc6 9.Ne2 Bg4 * D85a "Gruenfeld: Exchange Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 * D85a "Gruenfeld: Exchange Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 * D85a "Gruenfeld: Exchange, 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.g3 * D85a "Gruenfeld: Exchange, 5.Na4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Na4 * D85b "Gruenfeld: Exchange, 5.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Bd2 * D85c "Gruenfeld: Exchange, 5.Bd2 Bg7 6.e4 Nb6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Bd2 Bg7 6.e4 Nb6 * D85c "Gruenfeld: Exchange, 5.Bd2 Bg7 6.e4 Nb6 7.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Bd2 Bg7 6.e4 Nb6 7.Be3 * D85d "Gruenfeld: Exchange, 5.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 * D85d "Gruenfeld: Exchange, 5.e4 Nb6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nb6 * D85d "Gruenfeld: Exchange, 5.e4 Nxc3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 * D85d "Gruenfeld: Exchange, 5.e4 Nxc3 6.bxc3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 c5 * D85d "Gruenfeld: Exchange, 5.e4 Nxc3 6.bxc3 Bg7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 * D85d "Gruenfeld: Exchange, 7.Ba3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Ba3 * D85e "Gruenfeld: Exchange, 7.Bb5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ * D85e "Gruenfeld: Exchange, 7.Bb5+ c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ c6 * D85e "Gruenfeld: Exchange, 7.Bb5+ c6 8.Ba4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ c6 8.Ba4 * D85f "Gruenfeld: Exchange, 7.Bb5+ c6 8.Ba4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ c6 8.Ba4 O-O * D85g "Gruenfeld: Exchange, 7.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 * D85g "Gruenfeld: Exchange, 7.Be3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 * D85g "Gruenfeld: Exchange, 7.Be3 c5 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 * D85g "Gruenfeld: Exchange, 7.Be3 c5 8.Qd2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 O-O * D85g "Gruenfeld: Exchange, 7.Be3 c5 8.Qd2 O-O 9.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 O-O 9.Rc1 * D85h "Gruenfeld: Exchange, 7.Be3 c5 8.Qd2 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 * D85h "Gruenfeld: Exchange, 7.Be3 c5 8.Qd2 Qa5 9.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 9.Rc1 * D85h "Gruenfeld: Exchange, 7.Be3 c5 8.Qd2 Qa5 9.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 9.Rb1 * D85h "Gruenfeld: Exchange, 7.Be3 c5 8.Qd2 Qa5 9.Rb1 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 9.Rb1 b6 * D85i "Gruenfeld: Modern Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 * D85i "Gruenfeld: Modern Exchange, 7...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 O-O * D85j "Gruenfeld: Modern Exchange, 7...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 * D85k "Gruenfeld: Modern Exchange, 8.Bb5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Bb5+ * D85l "Gruenfeld: Modern Exchange, 8.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 * D85l "Gruenfeld: Modern Exchange, 8.Be2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O * D85l "Gruenfeld: Modern Exchange, 8.Be2 O-O 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O 9.O-O * D85l "Gruenfeld: Modern Exchange, 8.Be2 O-O 9.O-O b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O 9.O-O b6 * D85l "Gruenfeld: Modern Exchange, 8.Be2 O-O 9.O-O Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O 9.O-O Nc6 * D85m "Gruenfeld: Modern Exchange, 8.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 * D85m "Gruenfeld: Modern Exchange, 8.Rb1 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O * D85m "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 * D85m "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Qa5 * D85n "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 b6 * D85o "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Nc6 * D85p "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 Nc6, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Nc6 10.d5 Ne5 11.Nxe5 Bxe5 12.Qd2 * D85p "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 Nc6, Main Line, 12...e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Nc6 10.d5 Ne5 11.Nxe5 Bxe5 12.Qd2 e6 * D85q "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 cd" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 * D85q "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 cd 10.cd" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 * D85q "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 cd 10.cd Qa5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ * D85q "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 cd 10.cd Qa5+ 11.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Qd2 * D85r "Gruenfeld: Modern Exchange, 8.Rb1 O-O 9.Be2 cd 10.cd Qa5+ 11.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Bd2 * D85s "Gruenfeld: Modern Exchange, 8.Rb1, 10...Qa5+ 11.Bd2 Qxa2 12.O-O Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Bd2 Qxa2 12.O-O Bg4 * D85s "Gruenfeld: Modern Exchange, 8.Rb1, 10...Qa5+ 11.Bd2 Qxa2 12.O-O Bg4 13.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Bd2 Qxa2 12.O-O Bg4 13.Bg5 * D85t "Gruenfeld: Modern Exchange, 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 * D85t "Gruenfeld: Modern Exchange, 8.Be3 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Bg4 * D85t "Gruenfeld: Modern Exchange, 8.Be3 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Nc6 * D85u "Gruenfeld: Modern Exchange, 8.Be3 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Qa5 * D85u "Gruenfeld: Modern Exchange, 8.Be3 Qa5 9.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Qa5 9.Qd2 * D85v "Gruenfeld: Modern Exchange, 8.Be3 Qa5 9.Qd2 Nc6 10.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Qa5 9.Qd2 Nc6 10.Rc1 * D85w "Gruenfeld: Modern Exchange, 8.Be3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O * D85x "Gruenfeld: Modern Exchange, 8.Be3 O-O 9.Rc1 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 * D85x "Gruenfeld: Modern Exchange, 8.Be3 O-O 9.Rc1 Qa5 10.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 10.Qd2 * D85x "Gruenfeld: Modern Exchange, 8.Be3 O-O 9.Rc1 Qa5 Queenswap, 12.Kxd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 10.Qd2 cxd4 11.cxd4 Qxd2+ 12.Kxd2 * D85y "Gruenfeld: Modern Exchange, 8.Be3 O-O 9.Rc1 Qa5 Queenswap, 12.Nxd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 10.Qd2 cxd4 11.cxd4 Qxd2+ 12.Nxd2 * D86 "Gruenfeld: Classical Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 * D86 "Gruenfeld: Classical Exchange, 7...b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 b6 * D86 "Gruenfeld: Classical Exchange, 7...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 c5 * D86 "Gruenfeld: Classical Exchange, 7...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O * D86 "Gruenfeld: Classical Exchange, 8.Ne2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 * D86 "Gruenfeld: Classical Exchange, Larsen Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Qd7 9.O-O b6 * D86 "Gruenfeld: Classical Exchange, Simagin" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 b6 * D86 "Gruenfeld: Classical Exchange, Simagin, 9.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 b6 9.h4 * D86 "Gruenfeld: Classical Exchange, Simagin, 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 b6 9.O-O * D86 "Gruenfeld: Classical Exchange, Simagin Improved" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 * D86 "Gruenfeld: Classical Exchange, Simagin Improved, 9.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.Be3 * D86 "Gruenfeld: Classical Exchange, Simagin Improved, 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.O-O * D86 "Gruenfeld: Classical Exchange, Simagin Improved, 9.O-O e5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.O-O e5 * D86 "Gruenfeld: Classical Exchange, Simagin Improved, 9.O-O b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.O-O b6 * D87a "Gruenfeld: Classical Exchange, 8...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 * D87b "Gruenfeld: Classical Exchange, 8...c5 9.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 * D87c "Gruenfeld: Classical Exchange, 8...c5 9.Be3 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 Qa5 * D87c "Gruenfeld: Classical Exchange, 8...c5 9.Be3 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 Qa5 10.O-O Nd7 * D87d "Gruenfeld: Classical Exchange, 8...c5 9.Be3 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 Nc6 * D87e "Gruenfeld: Classical Exchange, 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O * D87f "Gruenfeld: Classical Exchange, 9.O-O Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 * D87g "Gruenfeld: Classical Exchange, 9.O-O Nc6 10.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 * D87h "Gruenfeld: Classical Exchange, 10.Be3 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qa5 * D87i "Gruenfeld: Classical Exchange, 10.Be3 Na5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Na5 * D87j "Gruenfeld: Classical Exchange, 10.Be3 Qc7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 * D87k "Gruenfeld: Classical Exchange, 10.Be3 Qc7 11.Rc1 Rd8" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 11.Rc1 Rd8 * D87l "Gruenfeld: Classical Exchange, 10.Be3 Qc7 11.Rc1 Rd8 12.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 11.Rc1 Rd8 12.Qd2 * D87m "Gruenfeld: Classical Exchange, 10.Be3 Qc7 11.Rc1 Rd8 12.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 11.Rc1 Rd8 12.Bf4 * D87n "Gruenfeld: Classical Exchange, 10.Be3 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Bg4 * D87o "Gruenfeld: Classical Exchange, 10.Be3 Bg4 11.f3 Na5 12.Bd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Bg4 11.f3 Na5 12.Bd5 * D87p "Gruenfeld: Classical Exchange, Seville Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Bg4 11.f3 Na5 12.Bxf7+ * D88 "Gruenfeld: Classical Exchange, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 * D88 "Gruenfeld: Classical Exchange, Main Line, 11.cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 * D88 "Gruenfeld: Classical Exchange, Main Line, 11.cxd4 Na5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Na5 * D88 "Gruenfeld: Classical Exchange, Main Line, 11.cxd4 Na5 12.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Na5 12.Bd3 * D88 "Gruenfeld: Classical Exchange, Main Line, 11.cxd4 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 * D88 "Gruenfeld: Classical Exchange, Main Line, 11.cxd4 Bg4 12.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 * D88 "Gruenfeld: Classical Exchange, Main Line, 11.cxd4 Bg4 12.f3 Na5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 * D88 "Gruenfeld: Classical Exchange, Main Line, Neo-Seville" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bxf7+ * D88 "Gruenfeld: Classical Exchange, Main Line, 11.cxd4 Bg4 12.f3 Na5 13.Bd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd5 * D89a "Gruenfeld: Classical Exchange, Main Line, 13.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 * D89b "Gruenfeld: Classical Exchange, Main Line, 13.Bd3 Be6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 * D89c "Gruenfeld: Classical Exchange, Main Line, 13.Bd3 Be6 14.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 * D89d "Gruenfeld: Classical Exchange, 14.Rc1 Bxa2 15.Qa4 Be6 16.d5 Be7 17.Qb4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 Bxa2 15.Qa4 Be6 16.d5 Bd7 17.Qb4 * D89e "Gruenfeld: Classical Exchange, 14.Rc1 Bxa2 15.Qa4 with 17.Qb4 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 Bxa2 15.Qa4 Be6 16.d5 Bd7 17.Qb4 b6 * D89f "Gruenfeld: Classical Exchange, 14.Rc1 Bxa2 15.Qa4 with 17.Qb4 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 Bxa2 15.Qa4 Be6 16.d5 Bd7 17.Qb4 e6 * D89g "Gruenfeld: Classical Exchange, Main Line, Sokolsky Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.d5 * D89h "Gruenfeld: Classical Exchange, Main Line, Sokolsky, 16.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.d5 Bxa1 15.Qxa1 f6 16.Rb1 * D89i "Gruenfeld: Classical Exchange, Main Line, Sokolsky, 16.Bh6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.d5 Bxa1 15.Qxa1 f6 16.Bh6 * D90 "Gruenfeld: Three Knights Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 * D90 "Gruenfeld: Schlechter Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 * D90 "Gruenfeld: Schlechter, 5.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 5.Qb3 * D90 "Gruenfeld: Schlechter, Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 5.cxd5 * D90 "Gruenfeld: Schlechter, Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 5.cxd5 cxd5 * D90 "Gruenfeld: Three Knights Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 * D90 "Gruenfeld: Three Knights, 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.g3 * D90 "Gruenfeld: Flohr Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qa4+ * D90 "Gruenfeld: Three Knights Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 * D90 "Gruenfeld: Three Knights Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 * D90 "Gruenfeld: Three Knights Exchange, Romanishin Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Qb3 * D90 "Gruenfeld: Three Knights Exchange, 6.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Bd2 * D90 "Gruenfeld: Three Knights Exchange, 6.Bd2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Bd2 O-O * D90 "Gruenfeld: Three Knights Exchange, 6.Bd2 O-O 7.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Bd2 O-O 7.Rc1 * D91a "Gruenfeld: 5.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 * D91a "Gruenfeld: 5.Bg5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 c6 * D91b "Gruenfeld: 5.Bg5 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 dxc4 * D91c "Gruenfeld: 5.Bg5 dxc4 6.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 dxc4 6.e4 * D91d "Gruenfeld: 5.Bg5 Ne4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 * D91d "Gruenfeld: 5.Bg5 Ne4 6.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bf4 * D91e "Gruenfeld: 5.Bg5 Ne4 6.Bh4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bh4 * D91f "Gruenfeld: 5.Bg5 Ne4 6.Bh4 Nxc3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bh4 Nxc3 * D91g "Gruenfeld: 5.Bg5 Ne4 6.Bh4 Nxc3 7.bxc3 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bh4 Nxc3 7.bxc3 dxc4 * D91h "Gruenfeld: 5.Bg5 Ne4 6.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 * D91i "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 * D91j "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 c6 * D91k "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 * D91l "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 * D91m "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 exd5 * D91n "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 exd5: 11.h4 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 exd5 9.Qe3+ Kf8 10.Qf4 Bf6 11.h4 h6 * D91o "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 * D91p "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 * D91q "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O * D91r "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Bd3 * D91r "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Bd3 c6 * D91s "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Be2 * D91s "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Be2 c6 * D91t "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.b4 * D91t "Gruenfeld: 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.b4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.b4 c6 * D92 "Gruenfeld: 5.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 * D92 "Gruenfeld: 5.Bf4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 c6 * D92 "Gruenfeld: 5.Bf4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O * D92 "Gruenfeld: 5.Bf4 O-O 6.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.Rc1 * D92 "Gruenfeld: 5.Bf4 O-O 6.Rc1 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.Rc1 dxc4 * D92 "Gruenfeld: 5.Bf4 O-O 6.Rc1 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.Rc1 c5 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 8.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 8.Rc1 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 8.Rc1 dxc4 9.Bxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 8.Rc1 dxc4 9.Bxc4 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c6 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c6 7.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c6 7.Qb3 * D93 "Gruenfeld: 5.Bf4 O-O 6.e3 c6 7.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c6 7.Rc1 * D94 "Gruenfeld: 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 * D94 "Gruenfeld: Slav/Schlecter" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 * D94 "Gruenfeld: Slav/Schlecter, 6.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Bd3 * D94 "Gruenfeld: Slav/Schlecter, 6.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Be2 * D94 "Gruenfeld: Slav/Schlecter, 6.Be2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Be2 O-O * D94 "Gruenfeld: Slav/Schlecter, 6.Be2 O-O 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Be2 O-O 7.O-O * D94 "Gruenfeld: 5.e3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O * D94 "Gruenfeld: Makogonov Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.b4 * D94 "Gruenfeld: Opovcensky Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd2 * D94 "Gruenfeld: 5.e3 O-O 6.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Be2 * D94 "Gruenfeld: 5.e3 O-O 6.Be2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Be2 c5 * D94 "Gruenfeld: 5.e3 O-O 6.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 * D94 "Gruenfeld: 5.e3 O-O 6.Bd3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 c6 * D94 "Gruenfeld: Smyslov Defence" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 c6 7.O-O Bg4 * D94 "Gruenfeld: Flohr Defence" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 c6 7.O-O Bf5 * D94 "Gruenfeld: 5.e3 O-O 6.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.cxd5 * D94 "Gruenfeld: 5.e3 O-O 6.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.cxd5 Nxd5 * D94 "Gruenfeld: 5.e3 O-O 6.cxd5 Nxd5 7.Bc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Bc4 * D95a "Gruenfeld: 5.e3 O-O 6.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 * D95b "Gruenfeld: 5.e3 O-O 6.Qb3 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 b6 * D95c "Gruenfeld: 5.e3 O-O 6.Qb3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 * D95d "Gruenfeld: 5.e3 O-O 6.Qb3 c6 7.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 7.Bd2 * D95e "Gruenfeld: 5.e3 O-O 6.Qb3 c6 7.Bd2 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 7.Bd2 e6 * D95f "Gruenfeld: 5.e3 O-O 6.Qb3 c6 7.Bd2 e6 8.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 7.Bd2 e6 8.Bd3 * D95g "Gruenfeld: Botvinnik Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 e6 * D95h "Gruenfeld: Botvinnik, 7.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 e6 7.Bd2 * D95i "Gruenfeld: 5.e3 O-O 6.Qb3 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 * D95i "Gruenfeld: 5.e3 O-O 6.Qb3 dxc4 7.Bxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 7.Bxc4 * D95i "Gruenfeld: Pachman Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 7.Bxc4 Nbd7 8.Ng5 * D95j "Gruenfeld: 5.e3 O-O 6.Qb3 dxc4 7.Bxc4 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 7.Bxc4 Nc6 * D96 "Gruenfeld: Russian Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 * D96 "Gruenfeld: Russian, 5...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 * D96 "Gruenfeld: Russian, 5...c6 6.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 6.Bf4 * D96 "Gruenfeld: Russian, 5...c6 6.cxd5 cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 6.cxd5 cxd5 * D96 "Gruenfeld: Russian, 5...c6 6.cxd5 Nxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 6.cxd5 Nxd5 * D96 "Gruenfeld: Russian, 5...dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 * D96 "Gruenfeld: Russian, 5...dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 * D96 "Gruenfeld: Russian, 6...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 a6 * D96 "Gruenfeld: Russian, 6...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O * D96 "Gruenfeld: Russian, 7.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.Bf4 * D96 "Gruenfeld: Russian, 7.Bf4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.Bf4 c6 * D97a "Gruenfeld: Russian, 7.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 * D97a "Gruenfeld: Russian, 7.e4 Nfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Nfd7 * D97b "Gruenfeld: Russian, Levenfish Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 b6 * D97c "Gruenfeld: Russian, Szabo Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 c6 * D97c "Gruenfeld: Russian, Szabo, 8.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 c6 8.Be2 * D97d "Gruenfeld: Russian, Alekhine (Hungarian) Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 * D97e "Gruenfeld: Russian, Alekhine, 8.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.Be2 * D97f "Gruenfeld: Russian, Alekhine, 8.Be2 b5 9.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.Be2 b5 9.Qb3 * D97g "Gruenfeld: Russian, Alekhine, 8.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.Qb3 * D97h "Gruenfeld: Russian, Alekhine, 8.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 * D97i "Gruenfeld: Russian, Alekhine, 8.e5 b5 9.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 b5 9.Qb3 * D97j "Gruenfeld: Russian, Alekhine, 8.e5 b5 9.Qb3 Nfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 b5 9.Qb3 Nfd7 * D97k "Gruenfeld: Russian, Alekhine, 8.e5 b5 9.Qb3 Nfd7 10.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 b5 9.Qb3 Nfd7 10.Be3 * D97l "Gruenfeld: Russian, Simagin Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Nc6 * D97l "Gruenfeld: Russian, Simagin, 8.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Nc6 8.Be2 * D97m "Gruenfeld: Russian, Prins Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 * D97n "Gruenfeld: Russian, Prins, 8.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 8.Bf4 * D97o "Gruenfeld: Russian, Prins, 8.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 8.Be2 * D97p "Gruenfeld: Russian, Prins, 8.Be2, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 8.Be2 c5 9.d5 e6 10.O-O exd5 11.exd5 Bf5 * D98a "Gruenfeld: Russian, Smyslov Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 * D98b "Gruenfeld: Russian, Smyslov, 8.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be2 * D98c "Gruenfeld: Russian, Smyslov, 8.Be2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be2 Nc6 * D98d "Gruenfeld: Russian, Smyslov, 8.Be2 Nc6 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be2 Nc6 9.d5 * D98e "Gruenfeld: Russian, Smyslov, 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 * D98f "Gruenfeld: Russian, Smyslov, 8.Be3 Nfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 * D98g "Gruenfeld: Russian, Smyslov, 8.Be3 Nfd7 9.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Be2 * D98h "Gruenfeld: Russian, Smyslov, Keres Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Be2 Nb6 10.Qd3 Nc6 11.O-O-O * D98i "Gruenfeld: Russian, Smyslov, 8.Be3 Nfd7 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.O-O-O * D98j "Gruenfeld: Russian, Smyslov, 8.Be3 Nfd7 9.Rd1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Rd1 * D98k "Gruenfeld: Russian, Smyslov, 8.Be3 Nfd7 9.Rd1 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Rd1 Nc6 * D99a "Gruenfeld: Russian, Smyslov, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 * D99b "Gruenfeld: Russian, Smyslov, Yugoslav" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 c5 * D99c "Gruenfeld: Russian, Smyslov, Main Line, 9...Nb6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 * D99d "Gruenfeld: Russian, Smyslov, Main Line, 9...Nb6 10.Rd1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 * D99e "Gruenfeld: Russian, Smyslov, Main Line, 9...Nb6 10.Rd1 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 e6 * D99f "Gruenfeld: Russian, Smyslov, Main Line, 9...Nb6 10.Rd1 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 Nc6 * D99g "Gruenfeld: Russian, Smyslov, Main Line, 9...Nb6 10.Rd1 Nc6 11.d5 Ne5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 Nc6 11.d5 Ne5 * E00a "Queen's Pawn: Neo-Indian" 1.d4 Nf6 2.c4 e6 * E00a "Queen's Pawn: Neo-Indian, Devin Gambit" 1.d4 Nf6 2.c4 e6 3.g4 * E00b "Queen's Pawn: Anti-Nimzo-Indian" 1.d4 Nf6 2.c4 e6 3.a3 * E00b "Queen's Pawn: Anti-Nimzo-Indian, 3...d5" 1.d4 Nf6 2.c4 e6 3.a3 d5 * E00c "Neo-Indian (Seirawan) Attack" 1.d4 Nf6 2.c4 e6 3.Bg5 * E00d "Queen's Pawn: Neo-Indian" 1.d4 Nf6 2.c4 e6 3.Nc3 * E00e "Queen's Pawn: Neo-Indian, 3...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 b6 * E00e "Queen's Pawn: Neo-Indian, 3...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 b6 4.e4 * E00f "Queen's Pawn: Neo-Indian, 3...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 c5 * E00g "Catalan" 1.d4 Nf6 2.c4 e6 3.g3 * E00g "Catalan: Hungarian Gambit" 1.d4 Nf6 2.c4 e6 3.g3 e5 * E00g "Catalan: 3...c6" 1.d4 Nf6 2.c4 e6 3.g3 c6 * E00h "Catalan: 3...c5" 1.d4 Nf6 2.c4 e6 3.g3 c5 * E00h "Catalan: 3...c5 4.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 c5 4.Nf3 * E00i "Catalan: 3...Bb4+" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ * E00i "Catalan: 3...Bb4+ 4.Nd2" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Nd2 * E00j "Catalan: 3...Bb4+ 4.Bd2" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 * E00k "Catalan: 3...Bb4+ 4.Bd2 Bxd2+" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Bxd2+ * E00l "Catalan: 3...Bb4+ 4.Bd2 Be7" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Be7 * E00m "Catalan: 3...Bb4+ 4.Bd2 Qe7" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Qe7 * E00m "Catalan: 3...Bb4+ 4.Bd2 Qe7" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Qe7 5.Bg2 * E00n "Catalan: 3...d5" 1.d4 Nf6 2.c4 e6 3.g3 d5 * E00o "Catalan: 4.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 * E00p "Catalan: 4.Nf3 c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 c6 * E00q "Catalan: 4.Nf3 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 c5 * E00r "Catalan: 4.Nf3 Bb4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 Bb4+ * E00r "Catalan: 4.Nf3 Bb4+ 5.Bd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 Bb4+ 5.Bd2 * E00s "Catalan: 4.Nf3 Be7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 Be7 * E00t "Catalan: 4.Nf3 dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 dxc4 * E00u "Catalan: 4.Nf3 dxc4 5.Qa4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 dxc4 5.Qa4+ * E00v "Catalan: 4.Nf3 dxc4 5.Qa4+ Nbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 dxc4 5.Qa4+ Nbd7 * E01 "Catalan: 4.Bg2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 * E01 "Catalan: 4...Bb4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ * E01 "Catalan: 4...Bb4+ 5.Bd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ 5.Bd2 * E01 "Catalan: 4...Bb4+ 5.Nd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ 5.Nd2 * E01 "Catalan: 4...Bb4+ 5.Nd2 O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ 5.Nd2 O-O * E01 "Catalan: 4...c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 * E01 "Catalan: 4...c6 5.Qc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 5.Qc2 * E01 "Catalan: 4...c6 5.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 5.Nf3 * E01 "Catalan: 4...c6 5.Nf3 Nbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 5.Nf3 Nbd7 * E01 "Catalan: 4...c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c5 * E01 "Catalan: 4...c5 5.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c5 5.Nf3 * E01 "Catalan: Open" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 * E02 "Catalan: Open, 5.Qa4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ * E02 "Catalan: Open, 5.Qa4+ Bd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Bd7 * E02 "Catalan: Open, 5.Qa4+ Bd7 6.Qxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Bd7 6.Qxc4 * E02 "Catalan: Open, 5.Qa4+ Nbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 * E02 "Catalan: Open, 5.Qa4+ Nbd7 6.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Nf3 * E02 "Catalan: Open, 5.Qa4+ Nbd7 6.Nf3 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Nf3 a6 * E02 "Catalan: Open, 5.Qa4+ Nbd7 6.Nf3 a6 7.Nc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Nf3 a6 7.Nc3 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 * E03 "Catalan: Open, Alekhine Variation" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Qc2 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 8.Qc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 8.Qc2 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 8.Qc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 8.Qc6 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.O-O * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.Qc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.Qc2 * E03 "Catalan: Open, 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.Qc2 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.Qc2 b6 * E04a "Catalan: Open, 5.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 * E04a "Catalan: Open, 5.Nf3 Bd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Bd7 * E04b "Catalan: Open, 5.Nf3 Bb4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Bb4+ * E04c "Catalan: Open, 5.Nf3 Nbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nbd7 * E04d "Catalan: Open, 5.Nf3 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 b5 * E04e "Catalan: Open, 5.Nf3 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 * E04f "Catalan: Open, 5.Nf3 a6 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O * E04g "Catalan: Open, 5.Nf3 a6 6.O-O b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O b5 * E04g "Catalan: Open, 5.Nf3 a6 6.O-O b5 7.Ne5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O b5 7.Ne5 * E04h "Catalan: Open, 5.Nf3 a6 6.O-O b5 7.Ne5 Nd5 8.a4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O b5 7.Ne5 Nd5 8.a4 * E04i "Catalan: Open, 5.Nf3 a6 6.O-O Nc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O Nc6 * E04j "Catalan: Open, 5.Nf3 a6 6.O-O Nc6 7.e3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O Nc6 7.e3 * E04k "Catalan: Open, 5.Nf3 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 * E04k "Catalan: Open, 5.Nf3 c5 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O * E04l "Catalan: Open, 5.Nf3 c5 6.O-O Nc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 * E04m "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Ne5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Ne5 * E04n "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Ne5 Bd7 8.Na3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Ne5 Bd7 8.Na3 * E04n "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Ne5 Bd7 8.Na3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Ne5 Bd7 8.Na3 cxd4 9.Naxc4 * E04o "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Qa4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 * E04o "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Qa4 cxd4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 cxd4 * E04p "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 * E04q "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 8.Qxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 8.Qxc4 * E04r "Catalan: Open, 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 8.Qxc4 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 8.Qxc4 b5 * E04s "Catalan: Open, 5.Nf3 Nc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 * E04s "Catalan: Open, 5.Nf3 Nc6 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.O-O * E04t "Catalan: Open, 5.Nf3 Nc6 6.O-O Rb8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.O-O Rb8 * E04u "Catalan: Open, 5.Nf3 Nc6 6.O-O Rb8 7.Nc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.O-O Rb8 7.Nc3 * E04v "Catalan: Open, 5.Nf3 Nc6 6.Qa4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.Qa4 * E04w "Catalan: Open, 5.Nf3 Nc6 6.Qa4 Bb4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.Qa4 Bb4+ * E04x "Catalan: Open, 5.Nf3 Nc6 6.Qa4 Bb4+ 7.Bd2 Nd5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.Qa4 Bb4+ 7.Bd2 Nd5 * E05a "Catalan: Open, Classical" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 * E05b "Catalan: Open, Classical, 6.Nc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.Nc3 * E05c "Catalan: Open, Classical, 6.Nc3 O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.Nc3 O-O * E05d "Catalan: Open, Classical, 6.Nc3 O-O 7.Ne5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.Nc3 O-O 7.Ne5 * E05e "Catalan: Open, Classical, 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O * E05f "Catalan: Open, Classical, 6.O-O O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O * E05g "Catalan: Open, Classical, 7.Ne5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Ne5 * E05h "Catalan: Open, Classical, 7.Ne5 Nc6 8.Nxc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Ne5 Nc6 8.Nxc6 * E05i "Catalan: Open, Classical, 7.Qc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 * E05j "Catalan: Open, Classical Main Line" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 * E05k "Catalan: Open, Classical, 8.a4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 * E05l "Catalan: Open, Classical, 8.a4 Bd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 * E05m "Catalan: Open, Classical, 8.a4 Bd7 9.Qxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 * E05m "Catalan: Open, Classical, 8.a4 Bd7 9.Qxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 Bc6 * E05n "Catalan: Open, Classical, 8.a4, 10.Bg5 Bd5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 Bc6 10.Bg5 Bd5 * E05o "Catalan: Open, Classical, 8.a4, 10.Bg5 a5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 Bc6 10.Bg5 a5 * E05p "Catalan: Open, Classical, 8.Qxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 * E05q "Catalan: Open, Classical, 8.Qxc4 b5 9.Qc2 Bb7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 * E05r "Catalan: Open, Classical, 8.Qxc4, 10.Bg5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bg5 * E05s "Catalan: Open, Classical, 8.Qxc4, 10.Bd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bd2 * E05t "Catalan: Open, Classical, 8.Qxc4, 10.Bd2 Be4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bd2 Be4 * E05u "Catalan: Open, Classical, 8.Qxc4, 10.Bf4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bf4 * E05v "Catalan: Open, Classical, 8.Qxc4, 10.Bf4 Nc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bf4 Nc6 * E05v "Catalan: Open, Classical, 8.Qxc4, 10.Bf4 Nc6 11.Rd1" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bf4 Nc6 11.Rd1 * E06 "Catalan: Closed" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 * E06 "Catalan: Closed, 5.Nf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 * E06 "Catalan: Closed, 5.Nf3 O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O * E06 "Catalan: Closed, 6.Qc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.Qc2 * E06 "Catalan: Closed, 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O * E06 "Catalan: Closed, 6.O-O c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c5 * E06 "Catalan: Closed, 6.O-O c5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c5 7.cxd5 * E06 "Catalan: Closed, 6.O-O c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 * E06 "Catalan: Closed, 6.O-O c6 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3 * E06 "Catalan: Closed, 6.O-O c6 7.Nbd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nbd2 * E06 "Catalan: Closed, 6.O-O c6 7.Nc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nc3 * E06 "Catalan: Closed, 6.O-O c6 7.Nc3 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nc3 b6 * E06 "Catalan: Closed, 6.O-O c6 7.Nc3 b6 8.Ne5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nc3 b6 8.Ne5 * E06 "Catalan: Closed, 6.O-O c6 7.Qc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Qc2 * E06 "Catalan: Closed, 6.O-O c6 7.Qc2 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Qc2 b6 * E07 "Catalan: Closed, 6...Nbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 * E07 "Catalan: Closed, 6...Nbd7 7.Nbd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nbd2 * E07 "Catalan: Closed, 6...Nbd7 7.Qd3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qd3 * E07 "Catalan: Closed, 6...Nbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 * E07 "Catalan: Closed, 6...Nbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 c6 * E07 "Catalan: Closed, 6...Nbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 c6 8.Ba3 * E07 "Catalan: Closed, 6...Nbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 c6 8.Bb2 * E07 "Catalan: Closed, 6...Nbd7 7.Nc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 * # I am not sure if this delayed 7...dxc4 is E07: E07 "Catalan: Closed, 6...Nbd7 7.Nc3 dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 dxc4 * E07 "Catalan: Closed, 6...Nbd7 7.Nc3 dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 dxc4 8.e4 * E07 "Catalan: Closed, 6...Nbd7 7.Nc3 c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 * E07 "Catalan: Closed, 6...Nbd7 7.Nc3 c6 8.Qb3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 8.Qb3 * E07 "Catalan: Closed, Botvinnik Variation" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 8.Qd3 * E07 "Catalan: Closed, 6...Nbd7 7.Nc3 c6 8.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 8.b3 * E08a "Catalan: Closed, 7.Qc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 * E08b "Catalan: Closed, 7.Qc2 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c5 * E08c "Catalan: Closed, 7.Qc2 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 b6 * E08d "Catalan: Closed, 7.Qc2 c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 * E08e "Catalan: Closed, 7.Qc2 c6 8.Rd1" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Rd1 * E08f "Catalan: Closed, 7.Qc2 c6 8.Rd1 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Rd1 b6 * E08f "Catalan: Closed, Zagoryansky Variation" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Rd1 b6 9.a4 * E08g "Catalan: Closed, 7.Qc2 c6 8.Bf4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 * E08h "Catalan: Closed, 7.Qc2 c6 8.Bf4 Nh5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 Nh5 * E08i "Catalan: Closed, 7.Qc2 c6 8.Bf4 Ne4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 Ne4 * E08j "Catalan: Closed, 7.Qc2 c6 8.Bf4 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 b6 * E08k "Catalan: Closed, 7.Qc2 c6 8.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 * E08l "Catalan: Closed, 7.Qc2 c6 8.b3 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b5 * E08m "Catalan: Closed, 7.Qc2 c6 8.b3 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 * E08n "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 * E08n "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1 Ba6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Ba6 * E08o "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1 Ba6 10.Nbd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Ba6 10.Nbd2 * E08p "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 * E08p "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 * E08p "Catalan: Closed, Spassky Gambit" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 b5 * E08q "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 * E08q "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 11.e4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 11.e4 * E08r "Catalan: Closed, 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 11.e4 dxe4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 11.e4 dxe4 * E09a "Catalan: Closed, Main Line" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 * E09b "Catalan: Closed, Main Line, 8...b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b5 * E09c "Catalan: Closed, Main Line, 8...Re8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 Re8 * E09d "Catalan: Closed, Main Line, 8...b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 * E09e "Catalan: Closed, Main Line, 9.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 * E09e "Catalan: Closed, Main Line, Sokolsky Variation" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 a5 10.Bb2 Ba6 * E09e "Catalan: Closed, Main Line, 9.b3 Bb7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 Bb7 * E09f "Catalan: Closed, Main Line, 9.b3 Bb7 10.Bb2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 Bb7 10.Bb2 * E09g "Catalan: Closed, Main Line, 9.b3 Bb7 10.Bb2 Rc8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 Bb7 10.Bb2 Rc8 * E09h "Catalan: Closed, Main Line, 9.e4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 * E09i "Catalan: Closed, Main Line, 9.e4 Ba6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Ba6 * E09i "Catalan: Closed, Main Line, 9.e4 Ba6 10.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Ba6 10.b3 * E09j "Catalan: Closed, Main Line, 9.e4 dxe4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 dxe4 * E09k "Catalan: Closed, Main Line, 9.e4 dxe4 10.Nxe4 Nxe4 11.Qxe4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 dxe4 10.Nxe4 Nxe4 11.Qxe4 * E09l "Catalan: Closed, Main Line, 9.e4 Bb7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 * E09m "Catalan: Closed, Main Line, 9.e4 Bb7 10.e5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.e5 * E09n "Catalan: Closed, Main Line, 9.e4 Bb7 10.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 * E09o "Catalan: Closed, Main Line, 9.e4 Bb7 10.b3 Rc8 11.Bb2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 Rc8 11.Bb2 * E09p "Catalan: Closed, Main Line, 9.e4 Bb7 10.b3 Rc8 11.Bb2 Qc7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 Rc8 11.Bb2 Qc7 * E09q "Catalan: Closed, Main Line, 9.e4 Bb7 10.b3 Rc8 11.Bb2 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 Rc8 11.Bb2 c5 * E10a "Neo-Indian: 3.Nf3" 1.d4 Nf6 2.c4 e6 3.Nf3 * E10b "Neo-Indian: Doery Defence" 1.d4 Nf6 2.c4 e6 3.Nf3 Ne4 * E10c "Neo-Indian: 3.Nf3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 Be7 * E10d "Neo-Indian: 3.Nf3 a6" 1.d4 Nf6 2.c4 e6 3.Nf3 a6 * E10e "Neo-Indian: 3.Nf3 a6 4.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 a6 4.Nc3 * E10f "Neo-Indian: 3.Nf3 a6 4.Nc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 a6 4.Nc3 c5 * E10g "Neo-Indian: Blumenfeld/Benoni" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 * E10h "Neo-Indian: Blumenfeld/Benoni, 4.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.e3 * E10i "Neo-Indian: Blumenfeld/Benoni, 4.e3 b6" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.e3 b6 * E10j "Neo-Indian: Blumenfeld/Benoni, 4.e3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.e3 cxd4 * # E10k "Neo-Indian: Blumenfeld/Benoni, 4.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 * E10k "Blumenfeld Countergambit" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 * E10k "Blumenfeld: 5.dxe6" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.dxe6 * E10k "Blumenfeld: 5.dxe6 fxe6 6.cxb5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.dxe6 fxe6 6.cxb5 * E10l "Blumenfeld: 5.dxe6 fxe6 6.cxb5 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.dxe6 fxe6 6.cxb5 d5 * E10m "Blumenfeld: 5.Bg5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 * E10n "Blumenfeld: 5.Bg5 h6" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 h6 * E10o "Blumenfeld: 5.Bg5 Qa5+" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 Qa5+ * E10p "Blumenfeld: 5.Bg5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 exd5 * E10q "Blumenfeld: Spielmann Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 exd5 6.cxd5 h6 * E11a "Bogo-Indian" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ * E11a "Bogo-Indian: 4.Nbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 * E11b "Bogo-Indian: 4.Nbd2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 d5 * E11c "Bogo-Indian: 4.Nbd2 b6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 * E11c "Bogo-Indian: 4.Nbd2 b6 5.a3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 * E11c "Bogo-Indian: 4.Nbd2 b6 5.a3 Bxd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 Bxd2+ * E11d "Bogo-Indian: 4.Nbd2 b6 5.a3 Bxd2+ 6.Bxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 Bxd2+ 6.Bxd2 * E11d "Bogo-Indian: 4.Nbd2 b6 5.a3 Bxd2+ 6.Bxd2 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 Bxd2+ 6.Bxd2 Bb7 * E11e "Bogo-Indian: 4.Nbd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O * E11f "Bogo-Indian: 4.Nbd2 O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 * E11f "Bogo-Indian: 4.Nbd2 O-O 5.a3 Bxd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 Bxd2+ * E11f "Bogo-Indian: 4.Nbd2 O-O 5.a3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 Be7 * E11f "Bogo-Indian: Gruenfeld Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 Be7 6.e4 d5 * E11g "Bogo-Indian: 4.Bd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 * E11g "Bogo-Indian: 4.Bd2 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 * E11g "Bogo-Indian: 4.Bd2 Be7 5.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 * E11g "Bogo-Indian: 4.Bd2 Be7 5.g3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 * E11g "Bogo-Indian: 4.Bd2 Be7 5.g3 d5 6.Bg2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 * E11h "Bogo-Indian: 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O * E11h "Bogo-Indian: 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 * E11i "Bogo-Indian: 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 * E11i "Bogo-Indian: 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 b6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 b6 * E11i "Bogo-Indian: 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 b6 9.Bf4" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 b6 9.Bf4 * E11j "Bogo-Indian: Vitolins Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 c5 * E11k "Bogo-Indian: Vitolins, 6.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 c5 5.Bxb4 cxb4 6.g3 * E11l "Bogo-Indian: 4.Bd2 a5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 a5 * E11l "Bogo-Indian: 4.Bd2 a5 5.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 a5 5.Nc3 * E11m "Bogo-Indian: 4.Bd2 a5 5.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 a5 5.g3 * E11n "Bogo-Indian: Nimzowitsch Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 * E11o "Bogo-Indian: Nimzowitsch, 5.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.Nc3 * E11p "Bogo-Indian: Nimzowitsch, 5.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 * E11q "Bogo-Indian: Nimzowitsch, 5.g3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 O-O * E11q "Bogo-Indian: Nimzowitsch, 5.g3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 O-O 6.Bg2 * E11r "Bogo-Indian: Nimzowitsch, 5.g3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 * E11r "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 * E11s "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Nc3 Bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 * E11s "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 * E11s "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 Ne4 * E11s "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 Ne4 8.Rc1" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 Ne4 8.Rc1 * E11t "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Bg2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 * E11t "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Bg2 Bxd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ * E11u "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 * E11v "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 Main Line" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O * E11v "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 Main Line, 8...O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O O-O * E11w "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 Main Line, 8...a5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O a5 * E11w "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 Main Line, 8...a5 9.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O a5 9.e4 * E11w "Bogo-Indian: Nimzowitsch, 5.g3 Nc6 Main Line, 8...a5 9.e4 e5 10.d5 Nb8" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O a5 9.e4 e5 10.d5 Nb8 * E11x "Bogo-Indian: 4.Bd2 Bxd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ * E11x "Bogo-Indian: 4.Bd2 Bxd2+ 5.Nbxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Nbxd2 * E11y "Bogo-Indian: 4.Bd2 Bxd2+ 5.Qxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 * E11y "Bogo-Indian: 4.Bd2 Bxd2+ 5.Qxd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O * E11y "Bogo-Indian: 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 * E11y "Bogo-Indian: 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 d5 * E11z "Bogo-Indian: 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 d5 7.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 d5 7.e3 * E12a "Queen's Indian" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 * E12b "Queen's Indian: Miles Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 * E12b "Queen's Indian: Miles, 5.e3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Be7 * E12b "Queen's Indian: Miles, 5.e3 Be7 6.h3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Be7 6.h3 * E12c "Queen's Indian: Miles, 5.e3 Bb4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Bb4+ * E12c "Queen's Indian: Miles, 5.e3 Bb4+ 6.Nbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Bb4+ 6.Nbd2 * E12c "Queen's Indian: Miles, 5.e3 Bb4+ 6.Nfd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Bb4+ 6.Nfd2 * E12d "Queen's Indian: Petrosian" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 * E12e "Queen's Indian: Petrosian, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 * E12e "Queen's Indian: Petrosian, 4...c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 * E12e "Queen's Indian: Petrosian, 4...c5 5.d5 Ba6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 Ba6 * E12f "Queen's Indian: Petrosian, 4...c5 5.d5 Ba6 6.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 Ba6 6.Qc2 * E12f "Queen's Indian: Petrosian, 4...c5 5.d5 Ba6 6.Qc2 exd5 6.cxd5 g6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 Ba6 6.Qc2 exd5 6.cxd5 g6 * E12g "Queen's Indian: Petrosian, 4...Ba6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 * E12g "Queen's Indian: Petrosian, 4...Ba6 5.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.e3 * E12g "Queen's Indian: Petrosian, 4...Ba6 5.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 * E12g "Queen's Indian: Petrosian, 4...Ba6 5.Qc2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 c5 * E12h "Queen's Indian: Petrosian, 4...Ba6 5.Qc2 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 * E12h "Queen's Indian: Petrosian, 4...Ba6 5.Qc2 Bb7 6.Nc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 6.Nc3 c5 * E12i "Queen's Indian: Petrosian, 4...Ba6 5.Qc2 Bb7 6.Nc3 c5 7.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 6.Nc3 c5 7.e4 * E12i "Queen's Indian: Petrosian, 4...Ba6 5.Qc2 Bb7 6.Nc3 c5 7.e4 cd 8.Nxd4 Nc6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 6.Nc3 c5 7.e4 cxd4 8.Nxd4 Nc6 * E12j "Queen's Indian: Petrosian, 4...Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 * E12j "Queen's Indian: Petrosian, 5.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 * E12j "Queen's Indian: Petrosian, 5.Nc3 Bxf3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 Bxf3 * E12j "Queen's Indian: Petrosian, 5.Nc3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 Be7 * E12k "Queen's Indian: Petrosian, 5.Nc3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 Ne4 * E12l "Queen's Indian: Petrosian, 5.Nc3 g6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 g6 * E12m "Queen's Indian: Petrosian, 5.Nc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 * E12n "Queen's Indian: Petrosian, 5.Nc3 d5 6.Bg5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 * E12n "Queen's Indian: Petrosian, 5.Nc3 d5 6.Bg5 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 * E12o "Queen's Indian: Petrosian, 5.Nc3 d5 6.Bg5 Be7 7.Qa4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ * E12o "Queen's Indian: Petrosian, 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ c6 * E12o "Queen's Indian: Petrosian, 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ c6 8.Bxf6 Bxf6 9.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ c6 8.Bxf6 Bxf6 9.cxd5 exd5 * E12p "Queen's Indian: Petrosian, 6.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 exd5 * E12p "Queen's Indian: Petrosian, 6.cxd5 exd5 7.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 exd5 7.g3 * E12q "Queen's Indian: Petrosian, 6.cxd5 exd5 7.Bg5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 exd5 7.Bg5 * E12r "Queen's Indian: Petrosian, 6.cxd5 Nxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 * E12r "Queen's Indian: Petrosian, 6.cxd5 Nxd5 7.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e4 * E12s "Queen's Indian: Petrosian, 6.cxd5 Nxd5 7.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e3 * E12s "Queen's Indian: Petrosian, 6.cxd5 Nxd5 7.e3 g6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e3 g6 * E12s "Queen's Indian: Petrosian, 6.cxd5 Nxd5 7.e3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e3 Be7 * E12t "Queen's Indian: Petrosian, Kasparov Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 * E12t "Queen's Indian: Petrosian, Kasparov, 7...Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Be7 * E12t "Queen's Indian: Petrosian, Kasparov, 7...c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 c5 * E12t "Queen's Indian: Petrosian, Kasparov, 7...Nxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 * E12u "Queen's Indian: Petrosian, Kasparov, 7...Nxc3 8.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 * E12u "Queen's Indian: Petrosian, Kasparov, 7...Nxc3 8.bxc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 c5 * E12u "Queen's Indian: Petrosian, Kasparov, 7...Nxc3 8.bxc3 c5 9.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 c5 8.e4 * E12u "Queen's Indian: Petrosian, Kasparov, 7...Nxc3 8.bxc3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 Be7 * E12u "Queen's Indian: Petrosian, Kasparov, 7...Nxc3 8.bxc3 Be7 9.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 Be7 8.e4 * E12v "Queen's Indian: 4.Bg5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bg5 * E12w "Queen's Indian: 4.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 * E12w "Queen's Indian: 4.Nc3 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 * E12w "Queen's Indian: 4.Nc3 Bb7 5.Bg5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 * E12x "Queen's Indian: 5.Bg5 h6 6.Bh4 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Be7 * E12x "Queen's Indian: 5.Bg5 h6 6.Bh4 Be7 7.e3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Be7 7.e3 Ne4 * E12x "Queen's Indian: 5.Bg5 h6 6.Bh4 Be7 7.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Be7 7.e3 c5 * E12y "Queen's Indian: Botvinnik Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 g5 * E12y "Queen's Indian: Botvinnik, 8.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 g5 7.Bg3 Nh5 8.Qc2 * E12y "Queen's Indian: Botvinnik, 8.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 g5 7.Bg3 Nh5 8.e3 * E13a "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 * E13b "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Qc2 * E13c "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.Qc2 g5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Qc2 g5 * E13d "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.Nd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 * E13e "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 Bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 Bxc3 * E13e "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 Bxc3 8.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 Bxc3 8.bxc3 * E13f "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 * E13g "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 c5 * E13h "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ * E13h "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 * E13i "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 * E13j "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 * E13k "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 * E13k "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 10.f3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 10.f3 * E13l "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 10.f3 Qe7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 10.f3 Qe7 * E13m "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 * E13m "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 * E13m "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 * E13n "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 * E13o "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ * E13o "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 * E13p "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 * E13p "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 11.Bd3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 11.Bd3 * E13q "Queen's Indian: 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 11.Bd3 f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 11.Bd3 f5 * E14a "Queen's Indian: 4.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 * E14a "Queen's Indian: 4.e3 Bb4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb4+ * E14b "Queen's Indian: 4.e3 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 * E14c "Queen's Indian: 4.e3 Bb7 5.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Nc3 * E14d "Queen's Indian: 4.e3 Bb7 5.Nc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Nc3 d5 * E14e "Queen's Indian: 4.e3 Bb7 5.Bd3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 * E14f "Queen's Indian: 4.e3 Bb7 5.Bd3 Bb4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ * E14g "Queen's Indian: 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 * E14g "Queen's Indian: 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 c5 * E14h "Queen's Indian: 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O * E14i "Queen's Indian: 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 * E14i "Queen's Indian: 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3 * E14i "Queen's Indian: 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3 Be7 * E14i "Queen's Indian: Dreev Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3 Be7 9.b4 * E14j "Queen's Indian: 4.e3 Bb7 5.Bd3 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 * E14k "Queen's Indian: 4.e3 Bb7 5.Bd3 Be7 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 6.O-O * E14k "Queen's Indian: 4.e3 Bb7 5.Bd3 Be7 6.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 6.O-O O-O * E14l "Queen's Indian: 4.e3 Bb7 5.Bd3 Be7 6.O-O O-O 7.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 6.O-O O-O 7.Nc3 * E14m "Queen's Indian: 4.e3 Bb7 5.Bd3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 * E14n "Queen's Indian: 4.e3 Bb7 5.Bd3 d5 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O * E14n "Queen's Indian: 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 * E14o "Queen's Indian: 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 7.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 7.b3 * E14p "Queen's Indian: 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 7.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 7.Nc3 * E14q "Queen's Indian: 4.e3 Bb7 5.Bd3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 * E14q "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.Nc3 * E14r "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O * E14s "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O cxd4 * E14s "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O cxd4 7.exd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O cxd4 7.exd4 * E14t "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 * E14t "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nbd2 * E14u "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 * E14u "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 * E14v "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 d5 * E14w "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 * E14w "Queen's Indian: Averbakh Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.Nxd4 * E14w "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.exd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.exd4 * E14w "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.exd4 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.exd4 d5 * E14x "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 * E14x "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 O-O * E14x "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 * E14y "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 8.exd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 8.exd4 * E14z "Queen's Indian: 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 8.exd4 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 8.exd4 d5 * E15a "Queen's Indian: 4.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 * E15b "Queen's Indian: 4.g3 Bb4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ * E15b "Queen's Indian: 4.g3 Bb4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ 5.Bd2 * E15c "Queen's Indian: 4.g3 Bb4+ 5.Bd2 Bxd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ 5.Bd2 Bxd2+ * E15c "Queen's Indian: 4.g3 Bb4+ 5.Bd2 Bxd2+ 6.Qxd2 Ba6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ 5.Bd2 Bxd2+ 6.Qxd2 Ba6 * E15d "Queen's Indian: Nimzowitsch Variation (4.g3 Ba6)" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 * E15d "Queen's Indian: Nimzowitsch, 5.Qb3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qb3 * E15d "Queen's Indian: Nimzowitsch, 5.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qc2 * E15e "Queen's Indian: Nimzowitsch, 5.Nbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 * E15e "Queen's Indian: Nimzowitsch, 5.Nbd2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 c5 * E15f "Queen's Indian: Nimzowitsch, 5.Nbd2 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb7 * E15f "Queen's Indian: Nimzowitsch, 5.Nbd2 Bb7 6.Bg2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb7 6.Bg2 * E15f "Queen's Indian: Nimzowitsch, 5.Nbd2 Bb7 6.Bg2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb7 6.Bg2 c5 * E15g "Queen's Indian: Nimzowitsch, 5.Nbd2 Bb4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb4 * E15h "Queen's Indian: Nimzowitsch, 5.Qa4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 * E15h "Queen's Indian: Nimzowitsch, 5.Qa4 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 Be7 * E15i "Queen's Indian: Nimzowitsch, 5.Qa4 c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c6 * E15i "Queen's Indian: Nimzowitsch, 5.Qa4 c6 6.Nc3 b5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c6 6.Nc3 b5 * E15j "Queen's Indian: Nimzowitsch, 5.Qa4 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 * E15j "Queen's Indian: Nimzowitsch, 5.Qa4 c5 6.Bg2 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 6.Bg2 Bb7 * E15j "Queen's Indian: Nimzowitsch, 5.Qa4 c5 6.Bg2 Bb7 7.dxc5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 6.Bg2 Bb7 7.dxc5 * E15k "Queen's Indian: Nimzowitsch, 5.Qa4 c5 6.Bg2 Bb7 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 6.Bg2 Bb7 7.O-O * E15l "Queen's Indian: Nimzowitsch, 5.b3 " 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 * E15l "Queen's Indian: Nimzowitsch, 5.b3 b5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 b5 * E15l "Queen's Indian: Nimzowitsch, 5.b3 b5 6.cxb5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 b5 6.cxb5 * E15m "Queen's Indian: Nimzowitsch, 5.b3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 d5 * E15m "Queen's Indian: Nimzowitsch, 5.b3 d5 6.cxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 d5 6.cxd5 * E15m "Queen's Indian: Nimzowitsch, 5.b3 d5 6.Bg2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 d5 6.Bg2 * E15n "Queen's Indian: Nimzowitsch, 5.b3 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 * E15n "Queen's Indian: Nimzowitsch, 5.b3 Bb7 6.Bg2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 6.Bg2 * E15n "Queen's Indian: Nimzowitsch, 5.b3 Bb7, 7...a5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 6.Bg2 Bb4+ 7.Bd2 a5 * E15n "Queen's Indian: Nimzowitsch, 5.b3 Bb7, 7...a5 8.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 6.Bg2 Bb4+ 7.Bd2 a5 8.O-O O-O * E15o "Queen's Indian: Nimzowitsch, 5.b3 Bb4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ * E15o "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 * E15o "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7 7.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Nc3 * E15p "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 * E15p "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 d5 * E15p "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 d5 8.cxd5 exd5 9.O-O O-O * E15q "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 * E15q "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.O-O * E15q "Queen's Indian: Nimzowitsch, 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.O-O d5 * E15r "Queen's Indian: Nimzowitsch, 5.b3 Bb4+, Main Line" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.Bc3 * E15s "Queen's Indian: Nimzowitsch, 5.b3 Bb4+, Main Line, 9.Ne5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.Bc3 d5 9.Ne5 * E15s "Queen's Indian: Nimzowitsch, 5.b3 Bb4+, Main Line, 9.Ne5 Nfd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.Bc3 d5 9.Ne5 Nfd7 * E15t "Queen's Indian: 4.g3 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 * E15t "Queen's Indian: 4.g3 Bb7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 * E15t "Queen's Indian: 4.g3 Bb7 5.Bg2 Qc8" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Qc8 * E15t "Queen's Indian: 4.g3 Bb7 5.Bg2 Qc8 6.O-O c5 7.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Qc8 6.O-O c5 7.d5 * E15u "Queen's Indian: 4.g3 Bb7 5.Bg2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 c5 * E15u "Queen's Indian: Buerger Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 c5 6.d5 exd5 7.Ng5 * E15v "Queen's Indian: Rubinstein Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 c5 6.d5 exd5 7.Nh4 * E16a "Queen's Indian: Capablanca Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ * E16b "Queen's Indian: Capablanca, 6.Nbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Nbd2 * E16c "Queen's Indian: Capablanca, 6.Nbd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Nbd2 O-O * E16d "Queen's Indian: Capablanca, 6.Nbd2 O-O 7.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Nbd2 O-O 7.O-O d5 * E16e "Queen's Indian: Capablanca, 6.Bd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 * E16e "Queen's Indian: Capablanca, 6.Bd2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 c5 * E16f "Queen's Indian: Capablanca, Yates Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 a5 * E16g "Queen's Indian: Capablanca, Yates, 7.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 a5 7.O-O O-O * E16h "Queen's Indian: Capablanca, Nimzowitsch Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Qe7 * E16i "Queen's Indian: Capablanca, Nimzowitsch, 7.O-O Bxd2 8.Qxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Qe7 7.O-O Bxd2 8.Qxd2 * E16j "Queen's Indian: Capablanca, Riumin Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 * E16k "Queen's Indian: Capablanca, Riumin, 7.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 * E16l "Queen's Indian: Capablanca, Riumin, 7.Nc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 O-O * E16m "Queen's Indian: Capablanca, Riumin, 7.Nc3 O-O 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 O-O 8.O-O * E16n "Queen's Indian: Capablanca, Riumin, 7.Nc3 O-O 8.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 O-O 8.O-O d5 * E16o "Queen's Indian: Capablanca, 6...Bxd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ * E16o "Queen's Indian: Capablanca, 6...Bxd2+ 7.Nbxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Nbxd2 * E16p "Queen's Indian: Capablanca, 6...Bxd2+ 7.Qxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 * E16q "Queen's Indian: Capablanca, 6...Bxd2+ 7.Qxd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 O-O * E16q "Queen's Indian: Capablanca, 6...Bxd2+ 7.Qxd2 O-O 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 O-O 8.O-O * E16r "Queen's Indian: Capablanca, 6...Bxd2+ 7.Qxd2 O-O 8.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 O-O 8.Nc3 * E17a "Queen's Indian: 5.Bg2 Be7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 * E17b "Queen's Indian: 6.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 * E17b "Queen's Indian: 6.Nc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 d5 * E17c "Queen's Indian: 6.Nc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O * E17d "Queen's Indian: 6.Nc3 O-O 7.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O 7.Qc2 * E17e "Queen's Indian: 6.Nc3 O-O 7.Qc2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O 7.Qc2 c5 * E17f "Queen's Indian: 6.Nc3 O-O 7.Qc2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O 7.Qc2 d5 * E17g "Queen's Indian: 6.Nc3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 * E17g "Queen's Indian: 6.Nc3 Ne4 7.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Qc2 * E17h "Queen's Indian: Opovcensky Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 * E17i "Queen's Indian: Opovcensky, 7...O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 O-O * E17j "Queen's Indian: Opovcensky, 7...f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 f5 * E17k "Queen's Indian: Opovcensky, 7...Bf6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 Bf6 * E17l "Queen's Indian: 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O * E17m "Queen's Indian: 6.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O d5 * E17n "Queen's Indian: 6.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O * E17o "Queen's Indian: 6.O-O O-O 7.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Qc2 * E17p "Queen's Indian: 6.O-O O-O 7.Re1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Re1 * E17q "Queen's Indian: 6.O-O O-O 7.Re1 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Re1 d5 * E17r "Queen's Indian: Euwe Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.b3 * E17s "Queen's Indian: Euwe, 7...c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.b3 c5 * E17t "Queen's Indian: Euwe, 7...d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.b3 d5 * E17u "Queen's Indian: Pomar Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 * E17u "Queen's Indian: Pomar, 7...exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 * E17v "Queen's Indian: Pomar, Taimanov Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nd4 * E17w "Queen's Indian: Pomar, Polugaevsky Variation" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 * E17w "Queen's Indian: Pomar, Polugaevsky, 8...c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 * E17x "Queen's Indian: Pomar, Polugaevsky, 8...c6 9.cxd5 Nxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 9.cxd5 Nxd5 * E17y "Queen's Indian: Pomar, Polugaevsky, 8...c6 9.cxd5 Nxd5 10.Nf5 Nc7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 9.cxd5 Nxd5 10.Nf5 Nc7 * E17z "Queen's Indian: Pomar, Polugaevsky, 8...c6 9.cxd5 Nxd5 10.Nf5 Nc7 11.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 9.cxd5 Nxd5 10.Nf5 Nc7 11.e4 * E18a "Queen's Indian: 7.Nc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 * E18b "Queen's Indian: 7.Nc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 c5 * E18c "Queen's Indian: 7.Nc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d6 * E18d "Queen's Indian: 7.Nc3 Na6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Na6 * E18e "Queen's Indian: 7.Nc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 * E18e "Queen's Indian: 7.Nc3 d5 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.cxd5 * E18f "Queen's Indian: 7.Nc3 d5 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.cxd5 exd5 * E18g "Queen's Indian: 7.Nc3 d5 8.Ne5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 * E18h "Queen's Indian: 7.Nc3 d5 8.Ne5 c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 c6 * E18i "Queen's Indian: 7.Nc3 d5 8.Ne5 Nbd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 Nbd7 * E18j "Queen's Indian: 7.Nc3 d5 8.Ne5 Na6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 Na6 * E18k "Queen's Indian: 7.Nc3 d5 8.Ne5 Na6 9.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 Na6 9.cxd5 exd5 * E18l "Queen's Indian: 7.Nc3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 * E18m "Queen's Indian: 7.Nc3 Ne4 8.Bd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 * E18n "Queen's Indian: 7.Nc3 Ne4 8.Bd2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 d5 * E18n "Queen's Indian: 7.Nc3 Ne4 8.Bd2 d5 9.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 d5 9.cxd5 exd5 * E18o "Queen's Indian: 7.Nc3 Ne4 8.Bd2 f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 * E18p "Queen's Indian: 7.Nc3 Ne4 8.Bd2 f5 9.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 9.d5 * E18p "Queen's Indian: 7.Nc3 Ne4 8.Bd2 f5 9.d5 Bf6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 9.d5 Bf6 * E18p "Queen's Indian: 7.Nc3 Ne4 8.Bd2 f5 9.d5 Bf6 10.Rc1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 9.d5 Bf6 10.Rc1 * E18q "Queen's Indian: 7.Nc3 Ne4 8.Bd2 Bf6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 Bf6 * E18r "Queen's Indian: 7.Nc3 Ne4 8.Bd2 Bf6 9.Rc1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 Bf6 9.Rc1 * E18s "Queen's Indian: 7.Nc3 Ne4 8.Nxe4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 * E18s "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.d5 * E18s "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Bf4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Bf4 * E18s "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Nh4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Nh4 * E18t "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 * E18u "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 * E18u "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 * E18v "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 * E18w "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 Qd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 Qd7 * E18x "Queen's Indian: 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 dxc4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 dxc4 * E18y "Queen's Indian: Old Main Line, 8.Qc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 * E18y "Queen's Indian: Old Main Line, 8.Qc2 Nxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 * E18z "Queen's Indian: Old Main Line, 8.Qc2 Nxc3 9.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.bxc3 * E19a "Queen's Indian: Old Main Line, 9.Qxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 * E19b "Queen's Indian: Old Main Line, 9.Qxc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 d6 * E19c "Queen's Indian: Old Main Line, 9.Qxc3 d6 10.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 d6 10.b3 * E19d "Queen's Indian: Old Main Line, 9.Qxc3 Be4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 Be4 * E19e "Queen's Indian: Old Main Line, 9.Qxc3 Be4 10.Ne1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 Be4 10.Ne1 * E19f "Queen's Indian: Old Main Line, 9.Qxc3 f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 * E19g "Queen's Indian: Old Main Line, 9.Qxc3 f5 10.Rd1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 10.Rd1 * E19h "Queen's Indian: Old Main Line, 9.Qxc3 f5 10.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 10.b3 * E19i "Queen's Indian: Old Main Line, 9.Qxc3 f5 10.b3 Bf6 11.Bb2 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 10.b3 Bf6 11.Bb2 d6 * E19j "Queen's Indian: Old Main Line, 9.Qxc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 * E19k "Queen's Indian: Old Main Line, 9.Qxc3 c5 10.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.b3 * E19l "Queen's Indian: Old Main Line, 9.Qxc3 c5 10.Rd1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 * E19m "Queen's Indian: Old Main Line, 9.Qxc3 c5 10.Rd1 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 * E19n "Queen's Indian: Old Main Line, 9.Qxc3 c5 10.Rd1 d6 11.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 * E19o "Queen's Indian: Old Main Line, 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6 * E19o "Queen's Indian: Old Main Line, 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6 12.Bb2 * E19p "Queen's Indian: Old Main Line, 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6 12.Bb2 Qe7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6 12.Bb2 Qe7 * E20 "Nimzo-Indian Defence" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 * E20 "Nimzo-Indian: Mikenas Attack" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qd3 * E20 "Nimzo-Indian: 4.Bd2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bd2 * E20 "Nimzo-Indian: 4.Bd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bd2 O-O * E20 "Nimzo-Indian: 4.Bd2 O-O 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bd2 O-O 5.Nf3 * E20 "Nimzo-Indian: Romanishin" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 * E20 "Nimzo-Indian: Romanishin, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 * E20 "Nimzo-Indian: Romanishin, 4...c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.d5 * E20 "Nimzo-Indian: Romanishin, 4...c5 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 * E20 "Nimzo-Indian: Romanishin, 4...c5 5.Nf3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 Ne4 * E20 "Nimzo-Indian: Romanishin, 4...c5 5.Nf3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 Nc6 * E20 "Nimzo-Indian: Romanishin, 4...c5 5.Nf3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 O-O * E20 "Nimzo-Indian: Romanishin, 4...c5 5.Nf3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 * E20 "Nimzo-Indian: Romanishin, 6.Nxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 * E20 "Nimzo-Indian: Romanishin, 6.Nxd4 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O * E20 "Nimzo-Indian: Romanishin, 6.Nxd4 O-O 7.Bg2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O 7.Bg2 * E20 "Nimzo-Indian: Romanishin, 6.Nxd4 O-O 7.Bg2 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O 7.Bg2 d5 * E20 "Nimzo-Indian: Romanishin, 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O 7.Bg2 d5 8.cxd5 * E20 "Nimzo-Indian: 4.f3 (Kmoch)" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 * E20 "Nimzo-Indian: 4.f3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 d5 * E20 "Nimzo-Indian: 4.f3 d5 5.a3 Be7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 d5 5.a3 Be7 * E20 "Nimzo-Indian: 4.f3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 c5 * E20 "Nimzo-Indian: 4.f3 c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 c5 5.d5 * E21 "Nimzo-Indian: Three Knights" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid, 5.Qc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qc2 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid, 5.Qc2 Bb7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qc2 Bb7 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid, 5.Qb3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qb3 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid, 5.Qb3 a5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qb3 a5 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid, 5.Qb3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qb3 c5 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid, 5.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Bg5 * E21 "Nimzo-Indian: Nimzo-Queen's Hybrid, 5.Bg5 Bb7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Bg5 Bb7 * E21 "Nimzo-Indian: Three Knights, 4...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 O-O * E21 "Nimzo-Indian: Three Knights, 4...Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 Bxc3+ * E21 "Nimzo-Indian: Three Knights, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 c5 * E21 "Nimzo-Indian: Three Knights, Euwe Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 c5 5.d5 Ne4 * E22 "Nimzo-Indian: Spielmann Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 * E22 "Nimzo-Indian: Spielmann, 4...Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 Nc6 * E22 "Nimzo-Indian: Spielmann, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 * E22 "Nimzo-Indian: Spielmann, 4...c5 5.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.e3 * E22 "Nimzo-Indian: Spielmann, 4...c5 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.Nf3 * E22 "Nimzo-Indian: Spielmann, 4...c5 5.dxc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 * E22 "Nimzo-Indian: Spielmann, 4...c5 5.dxc5 Na6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Na6 * E23 "Nimzo-Indian: Spielmann, 4...c5 5.dxc5 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 * E23 "Nimzo-Indian: Spielmann, 4...c5 5.dxc5 Nc6 6.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Bg5 * E23 "Nimzo-Indian: Spielmann, 4...c5 5.dxc5 Nc6 6.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 * E23 "Nimzo-Indian: Spielmann, 4...c5 5.dxc5 Nc6 6.Nf3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 * E23 "Nimzo-Indian: Spielmann, San Remo Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 7.Bd2 Nxc5 * E23 "Nimzo-Indian: Spielmann, Stahlberg Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 7.Bd2 Nxc5 8.Qc2 f5 9.g3 * E23 "Nimzo-Indian: Spielmann, Carlsbad Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 7.Bd2 Nxd2 * E24 "Nimzo-Indian: Saemisch" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 * E24 "Nimzo-Indian: Saemisch" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 * E24 "Nimzo-Indian: Saemisch, 5...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 b6 * E24 "Nimzo-Indian: Saemisch, 5...b6 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 b6 6.f3 * E24 "Nimzo-Indian: Saemisch, 5...d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 d5 * E24 "Nimzo-Indian: Saemisch, 5...d5 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 d5 6.f3 * E24 "Nimzo-Indian: Saemisch, 5...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 * E24 "Nimzo-Indian: Saemisch, 5...c5 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 * E24 "Nimzo-Indian: Saemisch, 5...c5 6.f3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 * E24 "Nimzo-Indian: Saemisch, Botvinnik Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.e3 O-O 8.cxd5 Nxd5 * E25 "Nimzo-Indian: Saemisch, 5...c5 6.f3 d5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 * E25 "Nimzo-Indian: Saemisch, 5...c5 6.f3 d5 7.cxd5 Nxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 * E25 "Nimzo-Indian: Saemisch, 5...c5 6.f3 d5 7.cxd5 Nxd5 8.Qd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.Qd3 * E25 "Nimzo-Indian: Saemisch, Keres Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 * E25 "Nimzo-Indian: Saemisch, Keres, Romanovsky Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 f5 * E25 "Nimzo-Indian: Saemisch, Keres, Romanovsky, 9.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 f5 9.e4 * E25 "Nimzo-Indian: Saemisch, Keres, Romanovsky, 9.Nh3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 f5 9.Nh3 * E26 "Nimzo-Indian: Saemisch, 5...c5 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 * E26 "Nimzo-Indian: Saemisch, 5...c5 6.e3 Qa5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 Qa5 * E26 "Nimzo-Indian: Saemisch, 5...c5 6.e3 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 d6 * E26 "Nimzo-Indian: Saemisch, O'Kelly Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 b6 * E26 "Nimzo-Indian: Saemisch, 5...c5 6.e3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 Nc6 * E26 "Nimzo-Indian: Saemisch, 5...c5 6.e3 Nc6 7.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 Nc6 7.Bd3 * E27 "Nimzo-Indian: Saemisch, 5...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O * E27 "Nimzo-Indian: Saemisch, 5...O-O 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 * E27 "Nimzo-Indian: Saemisch, 5...O-O 6.f3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 d5 * E27 "Nimzo-Indian: Saemisch, 5...O-O 6.f3 d5 7.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 d5 7.e3 * E27 "Nimzo-Indian: Saemisch, 5...O-O 6.f3 d5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 d5 7.cxd5 * E28 "Nimzo-Indian: Saemisch, 5...O-O 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 * E28 "Nimzo-Indian: Saemisch, 5...O-O 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 b6 * E28 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 * E28 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Ne2 * E28 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 * E28 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 b6 * E29 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 * E29 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 Nc6 8.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Nf3 * E29 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 * E29 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 e5 * E29 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 d6 * E29 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 * E29 "Nimzo-Indian: Saemisch, 5...O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 9.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 9.e4 * E29 "Nimzo-Indian: Saemisch, Capablanca Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 9.e4 Ne8 * E29 "Nimzo-Indian: Saemisch, Capablanca, 10.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 9.e4 Ne8 10.O-O * E30 "Nimzo-Indian: Leningrad" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 * E30 "Nimzo-Indian: Leningrad, 4...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 O-O * E30 "Nimzo-Indian: Leningrad, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 * E30 "Nimzo-Indian: Leningrad, 4...c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 * E30 "Nimzo-Indian: Leningrad, 4...c5 5.d5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 exd5 * E30 "Nimzo-Indian: Leningrad, 4...c5 5.d5 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 Bxc3+ * E30 "Nimzo-Indian: Leningrad, 4...c5 5.d5 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 d6 * E30 "Nimzo-Indian: Leningrad, 4...c5 5.d5 d6 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 d6 6.e3 * E30 "Nimzo-Indian: Leningrad, 4...c5 5.d5 h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 h6 * E30 "Nimzo-Indian: Leningrad, 4...h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 * E30 "Nimzo-Indian: Leningrad, 4...h6 5.Bxf6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bxf6 * E30 "Nimzo-Indian: Leningrad, 4...h6 5.Bh4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 * E30 "Nimzo-Indian: Leningrad, 4...h6 5.Bh4 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 * E30 "Nimzo-Indian: Leningrad, 6.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 * E30 "Nimzo-Indian: Leningrad, 6.d5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 exd5 * E30 "Nimzo-Indian: Leningrad, 6.d5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 exd5 7.cxd5 * E30 "Nimzo-Indian: Leningrad, 6.d5 b5 Gambit" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 b5 * E30 "Nimzo-Indian: Leningrad, 6.d5 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 Bxc3+ * E31a "Nimzo-Indian: Leningrad, Main Line" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 * E31b "Nimzo-Indian: Leningrad, Main Line, 7.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 * E31c "Nimzo-Indian: Leningrad, Main Line, 7.e3 g5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 g5 * E31d "Nimzo-Indian: Leningrad, Main Line, 7.e3 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 exd5 * E31e "Nimzo-Indian: Leningrad, Main Line, 7.e3 e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 e5 * E31f "Nimzo-Indian: Leningrad, Main Line, 7.e3 Qe7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Qe7 * E31g "Nimzo-Indian: Leningrad, Main Line, 7.e3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 O-O * E31h "Nimzo-Indian: Leningrad, Main Line, 7.e3 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ * E31h "Nimzo-Indian: Leningrad, Main Line, 7.e3 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 * E31i "Nimzo-Indian: Leningrad, Main Line, 8...Qe7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 Qe7 * E31j "Nimzo-Indian: Leningrad, Main Line, 8...e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 * E31k "Nimzo-Indian: Leningrad, Main Line, 8...e5 9.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.Nf3 * E31l "Nimzo-Indian: Leningrad, Main Line, 8...e5 9.Qc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.Qc2 * E31m "Nimzo-Indian: Leningrad, Main Line, 8...e5 9.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.Bd3 * E31n "Nimzo-Indian: Leningrad, Main Line, 8...e5 9.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.f3 * E31o "Nimzo-Indian: Leningrad, Main Line, 8...e5 9.f3 Nbd7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.f3 Nbd7 * E32a "Nimzo-Indian: Classical Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 * E32b "Nimzo-Indian: Classical, 4...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 b6 * E32c "Nimzo-Indian: Classical, 4...d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d6 * E32d "Nimzo-Indian: Classical, 4...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O * E32e "Nimzo-Indian: Classical, 4...O-O 5.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.Bg5 * E32f "Nimzo-Indian: Classical, 4...O-O 5.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.e4 * E32g "Nimzo-Indian: Classical, 4...O-O 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.Nf3 * E32h "Nimzo-Indian: Classical, 4...O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 * E32h "Nimzo-Indian: Classical, 4...O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ * E32h "Nimzo-Indian: Classical, 4...O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 * E32i "Nimzo-Indian: Classical, Adorjan Gambit" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b5 * E32j "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 d6 * E32k "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...Ne4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 Ne4 * E32l "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 * E32m "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Nf3 * E32n "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 * E32o "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5 Ba6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Ba6 * E32p "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5 Bb7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 * E32q "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5 Bb7 8.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.f3 * E32r "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5 Bb7 8.f3 h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.f3 h6 * E32r "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5 Bb7 8.f3 h6 9.Bh4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.f3 h6 9.Bh4 * E32s "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5 Bb7 8.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.e3 * E32t "Nimzo-Indian: Classical, 4...O-O 5.a3, 6...b6 7.Bg5 Bb7 8.e3 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.e3 d6 * E33 "Nimzo-Indian: Classical, 4...Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 * E33 "Nimzo-Indian: Classical, 4...Nc6 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 * E33 "Nimzo-Indian: Classical, 4...Nc6 5.Nf3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d5 * E33 "Nimzo-Indian: Classical, Milner-Barry (Zurich) Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 * E33 "Nimzo-Indian: Classical, Milner-Barry (Zurich), 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.a3 * E33 "Nimzo-Indian: Classical, Milner-Barry (Zurich), 6.a3 Bxc3+ 7.Qxc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.a3 Bxc3+ 7.Qxc3 * E33 "Nimzo-Indian: Classical, Milner-Barry (Zurich), 6.Bd2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.Bd2 * E33 "Nimzo-Indian: Classical, Milner-Barry (Zurich), 6.Bd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.Bd2 O-O * E34 "Nimzo-Indian: Classical, Noa Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 * E34 "Nimzo-Indian: Classical, Noa, 5.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.e3 * E34 "Nimzo-Indian: Classical, Noa, 5.e3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.e3 O-O * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5 Qxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5 Qxd5 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.e3 * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5 Qxd5 6.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.e3 c5 * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5 Qxd5 6.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5 Qxd5 6.Nf3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 c5 * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5 Qxd5 6.Nf3 Qf5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 Qf5 * E34 "Nimzo-Indian: Classical, Noa, 5.cxd5 Qxd5 6.Nf3 Qf5 7.Qb3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 Qf5 7.Qb3 * E34 "Nimzo-Indian: Classical, Noa, Queenswap" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 Qf5 7.Qxf5 * E35 "Nimzo-Indian: Classical, Noa, Exchange" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 * E35 "Nimzo-Indian: Classical, Noa, Exchange, 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.a3 * E35 "Nimzo-Indian: Classical, Noa, Exchange, 6.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 * E35 "Nimzo-Indian: Classical, Noa, Exchange, 6.Bg5 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 c5 * E35 "Nimzo-Indian: Classical, Noa, Exchange, 6.Bg5 h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 * E35 "Nimzo-Indian: Classical, Noa, Exchange, 6.Bg5 h6 7.Bh4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 7.Bh4 * E35 "Nimzo-Indian: Classical, Noa, Exchange, 6.Bg5 h6 7.Bh4 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 7.Bh4 c5 * E35 "Nimzo-Indian: Classical, Noa, Exchange, 6.Bg5 h6 7.Bxf6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 7.Bxf6 * E36 "Nimzo-Indian: Classical, Noa, 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 * E36 "Nimzo-Indian: Classical, Noa, 5.a3 Be7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Be7 * E36 "Nimzo-Indian: Classical, Noa, 5.a3 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ * E36 "Nimzo-Indian: Classical, Noa, 5.a3 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 * E36 "Nimzo-Indian: Classical, Noa, 5.a3 Bxc3+ 6.Qxc3 dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 dxc4 * E36 "Nimzo-Indian: Classical, Noa, 5.a3 Bxc3+ 6.Qxc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 O-O * E36 "Nimzo-Indian: Classical, Noa, Botvinnik Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Nc6 * E36 "Nimzo-Indian: Classical, Noa, Main Line" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 * E37 "Nimzo-Indian: Classical, Noa, Main Line, 7.Qc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 * E37 "Nimzo-Indian: Classical, Noa, Main Line, 7.Qc2 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 Nc6 * E37 "Nimzo-Indian: Classical, Noa, San Remo Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 Nc6 8.e3 e5 * E37 "Nimzo-Indian: Classical, Noa, Main Line, 7.Qc2 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 c5 * E37 "Nimzo-Indian: Classical, Noa, Main Line, 7.Qc2 c5 8.dxc5 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 c5 8.dxc5 Nc6 * E38a "Nimzo-Indian: Classical, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 * E38b "Nimzo-Indian: Classical, 4...c5 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.Nf3 * E38c "Nimzo-Indian: Classical, 4...c5 5.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.e3 * E38d "Nimzo-Indian: Classical, 4...c5 5.dxc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 * E38e "Nimzo-Indian: Classical, 4...c5 5.dxc5 Bxc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Bxc5 * E38e "Nimzo-Indian: Classical, 4...c5 5.dxc5 Bxc5 6.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Bxc5 6.Nf3 * E38f "Nimzo-Indian: Classical, 4...c5 5.dxc5 Bxc5 6.Nf3 Qb6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Bxc5 6.Nf3 Qb6 * E38g "Nimzo-Indian: Classical, 4...c5 5.dxc5 Qc7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Qc7 * E38h "Nimzo-Indian: Classical, 4...c5 5.dxc5 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Nc6 * E38i "Nimzo-Indian: Classical, 4...c5 5.dxc5 Na6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 * E38j "Nimzo-Indian: Classical, 4...c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 * E38k "Nimzo-Indian: Classical, 4...c5 5.dxc5 Na6: 8.b4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 * E38k "Nimzo-Indian: Classical, 4...c5 5.dxc5 Na6: 8.b4 Nce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 Nce4 * E38l "Nimzo-Indian: Classical, 4...c5 5.dxc5 Na6: 8.b4 Nce4 9.Qd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 Nce4 9.Qd4 * E38l "Nimzo-Indian: Classical, 4...c5 5.dxc5 Na6: 8.b4 Nce4 9.Qd4 d5 10.c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 Nce4 9.Qd4 d5 10.c5 * E39a "Nimzo-Indian: Classical, Pirc Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O * E39b "Nimzo-Indian: Classical, Pirc, 6.Bf4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Bf4 * E39c "Nimzo-Indian: Classical, Pirc, 6.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 * E39d "Nimzo-Indian: Classical, Pirc, 6.Nf3 Bxc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Bxc5 * E39e "Nimzo-Indian: Classical, Pirc, 6.Nf3 Na6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 * E39f "Nimzo-Indian: Classical, Pirc, 6.Nf3 Na6 7.Bd2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 7.Bd2 * E39g "Nimzo-Indian: Classical, Pirc, 6.Nf3 Na6 7.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 7.a3 * E39h "Nimzo-Indian: Classical, Pirc, 6.Nf3 Na6 7.g3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 7.g3 * E39i "Nimzo-Indian: Classical, Pirc, 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 * E39j "Nimzo-Indian: Classical, Pirc, 6.a3 Bxc5 7.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 * E39k "Nimzo-Indian: Classical, Pirc, 6.a3 Bxc5 7.Nf3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 Nc6 * E39l "Nimzo-Indian: Classical, Pirc, 6.a3 Bxc5 7.Nf3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 b6 * E39m "Nimzo-Indian: Classical, Pirc, 6.a3 Bxc5 7.Nf3 b6 8.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 b6 8.Bg5 * E40 "Nimzo-Indian: Rubinstein" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 * E40 "Nimzo-Indian: Taimanov" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 * E40 "Nimzo-Indian: Taimanov, 5.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 5.Ne2 * E40 "Nimzo-Indian: Taimanov, 5.Ne2 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 5.Ne2 d5 * E40 "Nimzo-Indian: Taimanov, 5.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 5.Bd3 * E41 "Nimzo-Indian: 4.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 * E41 "Nimzo-Indian: 4.e3 c5 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Nf3 * E41 "Nimzo-Indian: 4.e3 c5 5.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 * E41 "Nimzo-Indian: 4.e3 c5 5.Bd3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 * E41 "Nimzo-Indian: 4.e3 c5 5.Bd3 Nc6 6.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Ne2 * E41 "Nimzo-Indian: 4.e3 c5 5.Bd3 Nc6 6.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 * E41 "Nimzo-Indian: 4.e3 c5, Huebner Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 * E41 "Nimzo-Indian: Huebner, 8.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.e4 * E41 "Nimzo-Indian: Huebner, 8.e4 e5 9.d5 Ne7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.e4 e5 9.d5 Ne7 * E41 "Nimzo-Indian: Huebner, 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.O-O * E41 "Nimzo-Indian: Huebner, 8.O-O e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.O-O e5 * E41 "Nimzo-Indian: Huebner, 8.O-O e5 9.Nd2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.O-O e5 9.Nd2 * E42 "Nimzo-Indian: 4.e3 c5 5.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 * E42 "Nimzo-Indian: 4.e3 c5 5.Ne2 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 d5 * E42 "Nimzo-Indian: 4.e3 c5 5.Ne2 cxd4 6.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 * E42 "Nimzo-Indian: 4.e3 c5 5.Ne2 cxd4 6.exd4 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 d5 * E42 "Nimzo-Indian: 4.e3 c5 5.Ne2 cxd4 6.exd4 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 O-O * E42 "Nimzo-Indian: 4.e3 c5 5.Ne2 cxd4 6.exd4 O-O 7.a3 Be7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 O-O 7.a3 Be7 * E43 "Nimzo-Indian: Nimzowitsch (Fischer) Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 * E43 "Nimzo-Indian: Nimzowitsch, 5.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Bd3 * E43 "Nimzo-Indian: Nimzowitsch, 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 * E43 "Nimzo-Indian: Nimzowitsch, 5.Nf3 Bb7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 * E43 "Nimzo-Indian: Nimzowitsch, 5.Nf3 Bb7 6.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 * E43 "Nimzo-Indian: Nimzowitsch, 5.Nf3 Bb7 6.Bd3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 O-O * E43 "Nimzo-Indian: Nimzowitsch, 5.Nf3 Bb7 6.Bd3 O-O 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 O-O 7.O-O * E43 "Nimzo-Indian: Nimzowitsch, 5.Nf3 Bb7 6.Bd3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 Ne4 * E43 "Nimzo-Indian: Nimzowitsch, 5.Nf3 Bb7 6.Bd3 Ne4 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 Ne4 7.O-O * E43 "Nimzo-Indian: Nimzowitsch, Keene Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 Ne4 7.O-O f5 * E44 "Nimzo-Indian: Nimzowitsch, 5.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 * E44 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Bb7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Bb7 * E44 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ne4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ne4 * E44 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ne4 6.Bd2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ne4 6.Bd2 * E44 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ne4 6.Qc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ne4 6.Qc2 * E45 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ba6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 * E45 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ba6 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.a3 * E45 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ba6 6.a3 Be7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.a3 Be7 * E45 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ba6 6.a3 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.a3 Bxc3+ * E45 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ba6 6.Ng3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.Ng3 * E45 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ba6 6.Ng3 h5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.Ng3 h5 * E45 "Nimzo-Indian: Nimzowitsch, 5.Ne2 Ba6 6.Ng3 Bxc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.Ng3 Bxc3+ * E46 "Nimzo-Indian: 4.e3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O * E46 "Nimzo-Indian: Reshevsky Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 * E46 "Nimzo-Indian: Reshevsky Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 b6 * E46 "Nimzo-Indian: Reshevsky Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 Re8 * E46 "Nimzo-Indian: Reshevsky Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 * E46 "Nimzo-Indian: Reshevsky, Simagin Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Bd6 * E46 "Nimzo-Indian: Reshevsky, 6.a3 Be7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Be7 * E46 "Nimzo-Indian: Reshevsky, 6.a3 Be7 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Be7 7.cxd5 * E46 "Nimzo-Indian: Reshevsky, 6.a3 Be7 7.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Be7 7.cxd5 exd5 * E47 "Nimzo-Indian: 4.e3 O-O 5.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 * E47 "Nimzo-Indian: 4.e3 O-O 5.Bd3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 b6 * E47 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d6 * E47 "Nimzo-Indian: 4.e3 O-O 5.Bd3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 c5 * E47 "Nimzo-Indian: 4.e3 O-O 5.Bd3 c5 6.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 c5 6.Ne2 * E47 "Nimzo-Indian: 4.e3 O-O 5.Bd3 c5 6.Ne2 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 c5 6.Ne2 cxd4 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.cxd5 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.O-O * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.O-O cxd4 8.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.O-O cxd4 8.exd4 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 Nxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 Nxd5 * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 Nxd5 9.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 Nxd5 9.O-O * E48 "Nimzo-Indian: 4.e3 O-O 5.Bd3 d5 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 * E49 "Nimzo-Indian: Botvinnik System" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 * E49 "Nimzo-Indian: Botvinnik, 7...dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 dxc4 * E49 "Nimzo-Indian: Botvinnik, 7...dxc4 8.Bxc4 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 dxc4 8.Bxc4 c5 * E49 "Nimzo-Indian: Botvinnik, 7...dxc4 8.Bxc4 c5 9.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 dxc4 8.Bxc4 c5 9.Ne2 * E49 "Nimzo-Indian: Botvinnik, 7...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 * E49 "Nimzo-Indian: Botvinnik, 7...c5 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 8.cxd5 * E49 "Nimzo-Indian: Botvinnik, 7...c5 8.cxd5 exd5 9.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 8.cxd5 exd5 9.Ne2 * E49 "Nimzo-Indian: Botvinnik, 7...c5 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 8.cxd5 exd5 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3 Ne4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 Ne4 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 b6 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3 c5 6.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Be2 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3 c5 6.Be2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Bd3 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3 c5 6.Bd3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Bd3 Nc6 * E50 "Nimzo-Indian: 4.e3 O-O 5.Nf3 c5 6.Bd3 Nc6 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Bd3 Nc6 7.O-O * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.a3 * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5 6.Be2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Be2 * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5 6.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O a6 * E51 "Nimzo-Indian: 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O dxc4 * E52 "Nimzo-Indian: Main Line, 6...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7 8.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.a3 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7 8.a3 Bd6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.a3 Bd6 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7 8.cxd5 exd5 9.Ne5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 9.Ne5 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7 8.cxd5 exd5 9.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 9.a3 * E52 "Nimzo-Indian: Main Line, 6...b6 7.O-O Bb7 8.cxd5 exd5 9.a3 Bd6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 9.a3 Bd6 * E53 "Nimzo-Indian: Main Line, 6...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 * E53 "Nimzo-Indian: Main Line, 6...c5 7.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.a3 * E53 "Nimzo-Indian: Main Line, 6...c5 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O * E53 "Nimzo-Indian: Main Line, 7...Bd7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Bd7 * E53 "Nimzo-Indian: Main Line, 7...Nbd7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nbd7 * E53 "Nimzo-Indian: Main Line, Keres Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O b6 * E53 "Nimzo-Indian: Main Line, Keres, 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O b6 8.cxd5 exd5 * E54 "Nimzo-Indian: Main Line, 7...dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 * E54 "Nimzo-Indian: Main Line, 7...dxc4 8.Bxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 * E54 "Nimzo-Indian: Main Line, Smyslov Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Qe7 * E54 "Nimzo-Indian: Main Line, 7...dxc4 8.Bxc4 Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nc6 * E54 "Nimzo-Indian: Main Line, 7...dxc4 8.Bxc4 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 * # The following often gets reached from B14, a Caro-Kann Panov-Botvinnik: E54 "Nimzo-Indian: Main Line, 7...dxc4 8.Bxc4 cxd4 9.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 * E54 "Nimzo-Indian: Main Line, 7...dxc4 8.Bxc4 cxd4 9.exd4 a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 a6 * E54 "Nimzo-Indian: Main Line, 7...dxc4 8.Bxc4 cxd4 9.exd4 a6 10.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 a6 10.Bg5 * E54 "Nimzo-Indian: Main Line, Karpov Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 * E54 "Nimzo-Indian: Main Line, Karpov, 10.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 * E54 "Nimzo-Indian: Main Line, Karpov, 10.Bg5 Bb7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 * E54 "Nimzo-Indian: Main Line, Karpov, 10.Bg5 Bb7 11.Ne5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Ne5 * E54 "Nimzo-Indian: Main Line, Karpov, 10.Bg5 Bb7 11.Re1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Re1 * E54 "Nimzo-Indian: Main Line, Karpov, 10.Bg5 Bb7 11.Rc1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Rc1 * E54 "Nimzo-Indian: Main Line, Karpov, 10.Bg5 Bb7 11.Qe2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Qe2 * E55 "Nimzo-Indian: Main Line, Bronstein Variation" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 * E55 "Nimzo-Indian: Main Line, Bronstein, 9.Ne2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Ne2 * E55 "Nimzo-Indian: Main Line, Bronstein, 9.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.a3 * E55 "Nimzo-Indian: Main Line, Bronstein, 9.a3 cd4 10.ed4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.a3 cxd4 10.exd4 * E55 "Nimzo-Indian: Main Line, Bronstein, 9.Qe2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 * E55 "Nimzo-Indian: Main Line, Bronstein, 9.Qe2 a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 a6 * E55 "Nimzo-Indian: Main Line, Bronstein, 9.Qe2 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 b6 * E55 "Nimzo-Indian: Main Line, Bronstein, 9.Qe2 b6 10.Rd1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 b6 10.Rd1 * E56 "Nimzo-Indian: Main Line, 7...Nc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.cxd5 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3 Ba5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Ba5 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3 Ba5 9.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Ba5 9.cxd5 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 cxd4 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3 cxd4 9.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 cxd4 9.exd4 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3 dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3 dxc4 9.Bxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 * E56 "Nimzo-Indian: Main Line, 7...Nc6 8.a3 dxc4 9.Bxc4 Ba5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 Ba5 * # Most E57s transpose from a Semi-Tarrasch these days... E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4 Be7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Be3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Be3 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Bf4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Bf4 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Bg5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Bg5 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Qd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Qd3 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Re1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Re1 * E57 "Nimzo-Indian: Main Line, 8...dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Re1 a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Re1 a6 * E58 "Nimzo-Indian: Main Line, 8...Bxc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 * E58 "Nimzo-Indian: Main Line, 8...Bxc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 * E58 "Nimzo-Indian: Main Line, 9.bxc3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 b6 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7 10.h3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.h3 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7 10.Bb2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.Bb2 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7 10.Qc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.Qc2 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7 10.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7 10.cxd5 exd5 11.a4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 exd5 11.a4 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7 10.cxd5 exd5 11.a4 Re8" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 exd5 11.a4 Re8 * E58 "Nimzo-Indian: Main Line, 9.bxc3 Qc7 10.cxd5 exd5 11.Nh4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 exd5 11.Nh4 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.a4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.a4 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Qe2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Qe2 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Qc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Qc2 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bb2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bb2 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Be2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Be2 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bb5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bb5 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Ba2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Ba2 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Ba2 e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Ba2 e5 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 Re8" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 Re8 * E59 "Nimzo-Indian: Main Line, 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 Re8 13.de5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 Re8 13.dxe5 * E60a "King's Indian" 1.d4 Nf6 2.c4 g6 * E60a "King's Indian: Mengarini Attack" 1.d4 Nf6 2.c4 g6 3.Qc2 * E60b "King's Indian: 3.Bg5" 1.d4 Nf6 2.c4 g6 3.Bg5 * E60c "King's Indian: 3.d5" 1.d4 Nf6 2.c4 g6 3.d5 * E60c "King's Indian: 3.d5, Danube/Adorjan Gambit" 1.d4 Nf6 2.c4 g6 3.d5 b5 * E60d "King's Indian: 3.f3" 1.d4 Nf6 2.c4 g6 3.f3 * E60e "King's Indian: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 * E60e "King's Indian: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 Bg7 * E60e "King's Indian: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 Bg7 4.Bg2 * E60e "King's Indian: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 Bg7 4.Bg2 O-O * E60f "King's Indian: 3.Nf3" 1.d4 Nf6 2.c4 g6 3.Nf3 * E60f "King's Indian: 3.Nf3 d6" 1.d4 Nf6 2.c4 g6 3.Nf3 d6 * E60g "King's Indian: 3.Nf3 Bg7" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 * E60h "King's Indian: b3 System" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 * E60h "King's Indian: b3 System" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 O-O 5.Bb2 * E60h "King's Indian: b3 System" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 * E60h "King's Indian: b3 System" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O * E60h "King's Indian: b3 System" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O 6.e3 * E60i "King's Indian: b3+g3 System" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O 6.g3 * E60i "King's Indian: b3+g3 System" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O 6.g3 c5 7.Bg2 Nc6 8.O-O * E60j "King's Indian: Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 * E60j "King's Indian: Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O * E60k "King's Indian: Fianchetto without Nc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 * E60k "King's Indian: Fianchetto without Nc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 * E60k "King's Indian: Fianchetto without Nc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O * E60l "King's Indian: Fianchetto, Yugoslav without Nc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O c5 * E60l "King's Indian: Fianchetto, Yugoslav without Nc3, 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O c5 7.dxc5 * E60m "King's Indian: Fianchetto without Nc3, 6...c6" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O c6 * E60n "King's Indian: Fianchetto without Nc3, 6...Nc6" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nc6 * E60o "King's Indian: Fianchetto without Nc3, 6...Nbd7" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 * E60p "King's Indian: Fianchetto without Nc3, 6...Nbd7 7.Qc2" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 7.Qc2 * E60q "King's Indian: Fianchetto without Nc3, 6...Nbd7 7.Qc2 e5" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 7.Qc2 e5 * E60r "King's Indian: Fianchetto without Nc3, 6...Nbd7 7.Qc2 e5 8.Rd1 Re8" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 7.Qc2 e5 8.Rd1 Re8 * E61a "King's Indian: 3.Nc3" 1.d4 Nf6 2.c4 g6 3.Nc3 * E61a "King's Indian: 3.Nc3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 c5 * E61a "King's Indian: 3.Nc3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 c6 * E61a "King's Indian: 3.Nc3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 d6 * E61b "King's Indian: 3.Nc3 Bg7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 * E61b "King's Indian: 4.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bf4 * E61c "King's Indian: 4.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bg5 * E61d "King's Indian: 4.Bg5 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bg5 O-O * E61e "King's Indian: 4.Bg5 O-O 5.e3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bg5 O-O 5.e3 d6 * E61f "King's Indian: 4.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 * E61f "King's Indian: 4.g3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 d6 * E61f "King's Indian: 4.g3 d6 5.Bg2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 d6 5.Bg2 * E61g "King's Indian: 4.g3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O * E61g "King's Indian: 4.g3 O-O 5.Bg2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O 5.Bg2 * E61g "King's Indian: 4.g3 O-O 5.Bg2 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O 5.Bg2 d6 * E61h "King's Indian: Fianchetto, Flohr Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O 5.Bg2 d6 6.e3 * E61i "King's Indian: 4.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 * E61i "King's Indian: 4.Nf3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 * E61i "King's Indian: 4.Nf3 d6 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.e3 * E61j "King's Indian: Smyslov System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.Bg5 * E61j "King's Indian: Smyslov System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.Bg5 h6 * E61k "King's Indian: 4.Nf3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O * E61l "King's Indian: 4.Nf3 O-O 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.g3 * E61m "King's Indian: 4.Nf3 O-O 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 * E61m "King's Indian: 4.Nf3 O-O 5.e3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 * E61n "King's Indian: 4.Nf3 O-O 5.e3 d6 6.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 6.Be2 * E61o "King's Indian: 4.Nf3 O-O 5.e3 d6 6.Be2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 6.Be2 c5 * E61o "King's Indian: 4.Nf3 O-O 5.e3 d6 6.Be2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 6.Be2 c5 7.O-O * E61p "King's Indian: 4.Nf3 O-O 5.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 * E61q "King's Indian: 4.Nf3 O-O 5.Bf4 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 d6 * E61q "King's Indian: 4.Nf3 d6 5.Bf4 d6 6.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 d6 6.h3 * E61r "King's Indian: 4.Nf3 d6 5.Bf4 d6 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 d6 6.e3 * E61s "King's Indian: Smyslov System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 * E61t "King's Indian: Smyslov System, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 c5 * E61t "King's Indian: Smyslov System, 5...c5 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 c5 6.e3 * E61u "King's Indian: Smyslov System, 5...d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 * E61v "King's Indian: Smyslov System, 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 * E61w "King's Indian: Smyslov System, 6.e3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 c6 * E61x "King's Indian: Smyslov System, 6.e3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 c5 * E61y "King's Indian: Smyslov System, 5...O-O 6.e3 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 * E61y "King's Indian: Smyslov System, 5...O-O 6.e3 Nbd7 7.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 7.Be2 * E61z "King's Indian: Smyslov System, 5...O-O 6.e3 Nbd7 7.Be2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 7.Be2 c6 * E61z "King's Indian: Smyslov System, 5...O-O 6.e3 Nbd7 7.Be2 c6 8.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 7.Be2 c6 8.O-O * E62a "King's Indian: Fianchetto Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 * E62a "King's Indian: Fianchetto Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O * E62b "King's Indian: Fianchetto Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 * E62c "King's Indian: Fianchetto, 6...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 * E62d "King's Indian: Fianchetto, 6...c6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O * E62e "King's Indian: Fianchetto, 6...c6 7.O-O a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O a6 * E62f "King's Indian: Fianchetto, Larsen System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Bf5 * E62g "King's Indian: Fianchetto, Larsen System, 8.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Bf5 8.b3 * E62h "King's Indian: Fianchetto, Kavalek/Bronstein Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 * E62i "King's Indian: Fianchetto, Kavalek/Bronstein, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 8.h3 * E62j "King's Indian: Fianchetto, Kavalek/Bronstein, 8.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 8.e4 * E62k "King's Indian: Fianchetto, Kavalek/Bronstein, 8.e4 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 8.e4 Bg4 * E62l "King's Indian: Fianchetto, 6...Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 * E62m "King's Indian: Fianchetto, 6...Nc6 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.d5 * E62n "King's Indian: Fianchetto, 6...Nc6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O * E62o "King's Indian: Fianchetto, 6...Nc6 7.O-O Rb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Rb8 * E62p "King's Indian: Fianchetto, Spassky Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bf5 * E62q "King's Indian: Fianchetto, Spassky, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bf5 8.d5 * E62r "King's Indian: Fianchetto, Simagin Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bg4 * E62s "King's Indian: Fianchetto, Simagin, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bg4 8.d5 * E62t "King's Indian: Fianchetto, Uhlmann/Szabo Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O e5 * E62u "King's Indian: Fianchetto, Uhlmann/Szabo Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O e5 8.d5 Ne7 * E62v "King's Indian: Fianchetto, Uhlmann/Szabo, 9.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O e5 8.d5 Ne7 9.e4 * E63a "King's Indian: Fianchetto, Panno Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 * E63b "King's Indian: Fianchetto, Panno, 8.Re1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.Re1 * E63c "King's Indian: Fianchetto, Panno, 8.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.e4 * E63d "King's Indian: Fianchetto, Panno, 8.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 * E63e "King's Indian: Fianchetto, Panno, 8.b3 Rb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 Rb8 * E63f "King's Indian: Fianchetto, Panno, 8.b3 Rb8 9.Bb2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 Rb8 9.Bb2 * E63g "King's Indian: Fianchetto, Panno, 8.b3 Rb8 9.Nd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 Rb8 9.Nd5 * E63h "King's Indian: Fianchetto, Panno, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 * E63i "King's Indian: Fianchetto, Panno, 8.h3 Rb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 Rb8 * E63j "King's Indian: Fianchetto, Panno, 8.h3 Rb8 9.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 Rb8 9.Be3 * E63k "King's Indian: Fianchetto, Panno, 8.h3 Rb8 9.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 Rb8 9.e4 * E63l "King's Indian: Fianchetto, Panno, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.d5 * E63m "King's Indian: Fianchetto, Panno, 8.d5 Na5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.d5 Na5 * E64a "King's Indian: Fianchetto, Yugoslav System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 * E64b "King's Indian: Fianchetto, Yugoslav, Early Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.dxc5 * E64c "King's Indian: Fianchetto, Yugoslav, 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.d5 * E64d "King's Indian: Fianchetto, Yugoslav, 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.d5 e6 * E64e "King's Indian: Fianchetto, Yugoslav, 7.d5 Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.d5 Na6 * E65a "King's Indian: Fianchetto, Yugoslav, 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O * E65b "King's Indian: Fianchetto, Yugoslav, 7.O-O cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O cxd4 * E65c "King's Indian: Fianchetto, Yugoslav, 7.O-O Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nbd7 * E65d "King's Indian: Fianchetto, Yugoslav, 7.O-O Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 * E65e "King's Indian: Fianchetto, Yugoslav, 7.O-O Nc6 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.h3 * E65f "King's Indian: Fianchetto, Yugoslav, Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.dxc5 * E65g "King's Indian: Fianchetto, Yugoslav, Exchange, 9.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.dxc5 dxc5 9.Be3 * E65h "King's Indian: Fianchetto, Yugoslav, Exchange, 9.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.dxc5 dxc5 9.Bf4 * E66a "King's Indian: Fianchetto, Yugoslav Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 * E66b "King's Indian: Fianchetto, Yugoslav Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 * E66c "King's Indian: Fianchetto, Yugoslav Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 * E66d "King's Indian: Fianchetto, Yugoslav Panno, 9...e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 e5 * E66e "King's Indian: Fianchetto, Yugoslav Panno, 9...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 * E66f "King's Indian: Fianchetto, Yugoslav Panno, 9...a6 10.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Rb1 * E66g "King's Indian: Fianchetto, Yugoslav Panno, 9...a6 10.Rb1 Rb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Rb1 Rb8 * E66h "King's Indian: Fianchetto, Yugoslav Panno, 9...a6 10.Qc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 * E66i "King's Indian: Fianchetto, Yugoslav Panno, 9...a6 10.Qc2 Rb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 * E66j "King's Indian: Fianchetto, Yugoslav Panno, 9...a6 10.Qc2 Rb8 11.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 * E66k "King's Indian: Fianchetto, Yugoslav Panno, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 * E66l "King's Indian: Fianchetto, Yugoslav Panno, Main Line, 12.Bb2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 12.Bb2 * E66m "King's Indian: Fianchetto, Yugoslav Panno, Main Line, 12.Bb2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 12.Bb2 e5 * E66n "King's Indian: Fianchetto, Yugoslav Panno, Main Line, 12.Bb2 bxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 12.Bb2 bxc4 * E67a "King's Indian: Fianchetto with 6...Nd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 * E67b "King's Indian: Fianchetto with 6...Nd7 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O * E67c "King's Indian: Fianchetto with 6...Nd7 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O c6 * E67d "King's Indian: Fianchetto, Classical Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 * E67e "King's Indian: Fianchetto, Classical, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.d5 * E67f "King's Indian: Fianchetto, Classical, 8.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.dxe5 * E67g "King's Indian: Fianchetto, Classical, 8.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.b3 * E67h "King's Indian: Fianchetto, Classical, 8.Qc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.Qc2 * E67i "King's Indian: Fianchetto, Classical, 8.Qc2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.Qc2 c6 * E67j "King's Indian: Fianchetto, Classical, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.h3 * E67k "King's Indian: Fianchetto, Classical, 8.h3 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.h3 Re8 * E67l "King's Indian: Fianchetto, Classical, 8.h3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.h3 c6 * E68a "King's Indian: Fianchetto, Classical, 8.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 * E68b "King's Indian: Fianchetto, Classical, 8.e4 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 Re8 * E68c "King's Indian: Fianchetto, Classical, 8.e4 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 * E68d "King's Indian: Fianchetto, Classical, 8.e4 exd4 9.Nxd4 Nc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Nc5 * E68e "King's Indian: Fianchetto, Classical, 8.e4 exd4 9.Nxd4 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 * E68f "King's Indian: Fianchetto, Classical, 8.e4 exd4 9.Nxd4 Re8 10.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 10.h3 * E68g "King's Indian: Fianchetto, Classical, 8.e4 exd4 9.Nxd4 Re8 10.h3 Nc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 10.h3 Nc5 * E68h "King's Indian: Fianchetto, Classical, 8.e4 exd4 9.Nxd4 Re8 10.h3 Nc5 11.Re1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 10.h3 Nc5 11.Re1 a5 * E68i "King's Indian: Fianchetto, Classical, 8.e4 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 a6 * E68j "King's Indian: Fianchetto, Classical, 8.e4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 * E68k "King's Indian: Fianchetto, Classical, 8.e4 c6 9.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.Rb1 * E68l "King's Indian: Fianchetto, Classical, 8.e4 c6 9.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.b3 * E69a "King's Indian: Fianchetto, Classical, 9.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 * E69b "King's Indian: Fianchetto, Classical, 9.h3 Qe7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qe7 * E69c "King's Indian: Fianchetto, Classical, 9.h3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 a6 * E69d "King's Indian: Fianchetto, Classical, 9.h3 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 a5 * E69e "King's Indian: Fianchetto, Classical, 9.h3 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 exd4 * E69f "King's Indian: Fianchetto, Classical, 9.h3 exd4 10.Nxd4 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 exd4 10.Nxd4 Re8 * E69g "King's Indian: Fianchetto, Classical, 9.h3 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 * E69h "King's Indian: Fianchetto, Classical, 9.h3 Qa5 10.Re1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 10.Re1 * E69h "King's Indian: Fianchetto, Classical, 9.h3 Qa5 10.Re1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 10.Re1 exd4 * E69h "King's Indian: Fianchetto, Classical, 9.h3 Qa5 10.Re1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 10.Re1 exd4 11.Nxd4 * E69i "King's Indian: Fianchetto, Classical, 9.h3 Qb6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 * E69i "King's Indian: Fianchetto, Classical, 9.h3 Qb6 10.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.d5 * E69j "King's Indian: Fianchetto, Classical, 9.h3 Qb6 10.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.c5 * E69k "King's Indian: Fianchetto, Classical, 9.h3 Qb6 10.Re1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 * E69l "King's Indian: Fianchetto, Classical, 9.h3 Qb6 10.Re1 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 Re8 * E69m "King's Indian: Fianchetto, Classical, 9.h3 Qb6 10.Re1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 exd4 * E69m "King's Indian: Fianchetto, Classical, 9.h3 Qb6 10.Re1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 exd4 11.Nxd4 * E69n "King's Indian: Fianchetto, Classical, 9.h3 Qb6 10.Re1 exd4 11.Nxd4 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 exd4 11.Nxd4 Re8 * E69o "King's Indian: Fianchetto, Classical, 9.h3 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 * E69p "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.b3 * E69q "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Be3 * E69r "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Be3 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Be3 exd4 * E69r "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Be3 exd4 11.Nxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Be3 exd4 11.Nxd4 * E69s "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 * E69t "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 Qc7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 Qc7 * E69u "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 a5 * E69u "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 a5 11.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 a5 11.Be3 * E69v "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 * E69v "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 * E69w "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 exd4, 11...a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 a5 * E69x "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 exd4, 11...Nc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 Nc5 * E69y "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 exd4, 11...Nc5 12.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 Nc5 12.Rb1 * E69z "King's Indian: Fianchetto, Classical, 9.h3 Re8 10.Re1 exd4, 11...Nc5 12.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 Nc5 12.b3 * E70a "King's Indian: 4.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 * E70b "King's Indian: 4.e4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 O-O * E70c "King's Indian: 4.e4 O-O 5.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 O-O 5.e5 * E70d "King's Indian: 4.e4 O-O 5.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 O-O 5.Nf3 * E70e "King's Indian: 4.e4 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 * E70f "King's Indian: Kramer" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 * E70g "King's Indian: Kramer, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O * E70h "King's Indian: Kramer, 5...O-O 6.Ng3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O 6.Ng3 * E70i "King's Indian: Kramer, 5...O-O 6.Ng3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O 6.Ng3 e5 * E70i "King's Indian: Kramer, 5...O-O 6.Ng3 e5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O 6.Ng3 e5 7.d5 * E70j "King's Indian: 4.e4 d6 5.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 * E70k "King's Indian: 4.e4 d6 5.Bd3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 e5 * E70l "King's Indian: 4.e4 d6 5.Bd3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O * E70m "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 * E70n "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 * E70n "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 7.O-O * E70n "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 7.O-O e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 7.O-O e5 * E70o "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 * E70p "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 * E70p "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 e6 * E70p "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 e6 8.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 e6 8.O-O * E70q "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 e5 * E70r "King's Indian: 4.e4 d6 5.Bd3 O-O 6.Nge2 e5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 e5 7.d5 * E70s "King's Indian: Accelerated Averbakh System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 * E70t "King's Indian: Accelerated Averbakh, 5...h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 h6 * E70u "King's Indian: Accelerated Averbakh, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 O-O * E70v "King's Indian: Accelerated Averbakh, 5...O-O 6.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 O-O 6.Qd2 * E71a "King's Indian: Makagonov System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 * E71b "King's Indian: Makagonov, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 c5 * E71c "King's Indian: Makagonov, 5...Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 Nbd7 * E71d "King's Indian: Makagonov, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O * E71e "King's Indian: Makagonov, 5...O-O 6.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Be3 * E71f "King's Indian: Makagonov, 5...O-O 6.Be3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Be3 e5 * E71g "King's Indian: Makagonov, 5...O-O 6.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 * E71h "King's Indian: Makagonov, 5...O-O 6.Bg5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c6 * E71i "King's Indian: Makagonov, 5...O-O 6.Bg5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 h6 * E71j "King's Indian: Makagonov, 5...O-O 6.Bg5 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Nbd7 * E71k "King's Indian: Makagonov, 5...O-O 6.Bg5 Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Na6 * E71l "King's Indian: Makagonov, 5...O-O 6.Bg5 Na6 7.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Na6 7.Bd3 * E71l "King's Indian: Makagonov, 5...O-O 6.Bg5 Na6 7.Bd3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Na6 7.Bd3 e5 * E71m "King's Indian: Makagonov, 5...O-O 6.Bg5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 * E71m "King's Indian: Makagonov, 5...O-O 6.Bg5 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 7.d5 * E71n "King's Indian: Makagonov, 5...O-O 6.Bg5 c5 7.d5 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 7.d5 b5 * E71o "King's Indian: Makagonov, 5...O-O 6.Bg5 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 7.d5 e6 * E72 "King's Indian: 4.e4 d6 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 * E72 "King's Indian: 4.e4 d6 5.g3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O * E72 "King's Indian: 4.e4 d6 5.g3 O-O 6.Bg2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 * E72 "King's Indian: 4.e4 d6 5.g3 O-O 6.Bg2 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 Nbd7 * E72 "King's Indian: 4.e4 d6 5.g3 O-O 6.Bg2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 Nc6 * E72 "King's Indian: 4.e4 d6 5.g3 O-O 6.Bg2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 c5 * E72 "King's Indian: 4.e4 d6 5.g3 O-O 6.Bg2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 e5 * E72 "King's Indian: Pomar System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 e5 7.Nge2 * E72 "King's Indian: Pomar System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 e5 7.Nge2 Nc6 * E73a "King's Indian: 5.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 * E73b "King's Indian: 5.Be2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 c5 * E73c "King's Indian: 5.Be2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 e5 * E73d "King's Indian: 5.Be2 e5 6.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 e5 6.d5 * E73e "King's Indian: 5.Be2 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 Nbd7 * E73f "King's Indian: 5.Be2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O * E73g "King's Indian: 5.Be2 O-O 6.g4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.g4 * E73h "King's Indian: Semi-Averbakh System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Be3 * E73i "King's Indian: Averbakh" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 * E73j "King's Indian: Averbakh, 6...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c6 * E73k "King's Indian: Averbakh, 6...c6 7.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c6 7.Qd2 * E73l "King's Indian: Averbakh, 6...c6 7.Qd2 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c6 7.Qd2 Nbd7 * E73m "King's Indian: Averbakh, 6...Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 * E73n "King's Indian: Averbakh, 6...Nbd7 7.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 * E73o "King's Indian: Averbakh, 6...Nbd7 7.Qd2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 e5 * E73o "King's Indian: Averbakh, 6...Nbd7 7.Qd2 e5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 e5 8.d5 * E73o "King's Indian: Averbakh, 6...Nbd7 7.Qd2 e5 8.d5 Nc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 e5 8.d5 Nc5 * E73p "King's Indian: Averbakh, 6...Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 * E73q "King's Indian: Averbakh, 6...Na6 7.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.h4 * E73r "King's Indian: Averbakh, 6...Na6 7.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 * E73s "King's Indian: Averbakh, 6...Na6 7.Qd2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 * E73s "King's Indian: Averbakh, 6...Na6 7.Qd2 e5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 8.d5 * E73t "King's Indian: Averbakh, 6...Na6 7.Qd2 e5 8.d5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 8.d5 c6 * E73u "King's Indian: Averbakh, 6...Na6 7.Qd2 e5 8.d5 Qe8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 8.d5 Qe8 * E73v "King's Indian: Averbakh, 6...h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 * E73w "King's Indian: Averbakh, 6...h6 7.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 * E73x "King's Indian: Averbakh, 6...h6 7.Be3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 c5 * E73y "King's Indian: Averbakh, 6...h6 7.Be3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 * E73y "King's Indian: Averbakh, 6...h6 7.Be3 e5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 8.d5 * E73y "King's Indian: Averbakh, 6...h6 7.Be3 e5 8.d5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 8.d5 c6 * E73z "King's Indian: Averbakh, 6...h6 7.Be3 e5 8.d5 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 8.d5 Nbd7 * E74a "King's Indian: Averbakh, 6...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 * E74b "King's Indian: Averbakh, 6...c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.dxc5 * E74b "King's Indian: Averbakh, 6...c5 7.dxc5 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.dxc5 Qa5 * E74c "King's Indian: Averbakh, 6...c5 7.dxc5 Qa5 8.Bd2 Qxc5 9.Nf3 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.dxc5 Qa5 8.Bd2 Qxc5 9.Nf3 Bg4 * E74d "King's Indian: Averbakh, 6...c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 * E74e "King's Indian: Averbakh, 6...c5 7.d5 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 Qa5 * E74f "King's Indian: Averbakh, 6...c5 7.d5 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 b5 * E74f "King's Indian: Averbakh, 6...c5 7.d5 b5 8.cxb5 a6 9.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 b5 8.cxb5 a6 9.a4 * E74g "King's Indian: Averbakh, 6...c5 7.d5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 * E74g "King's Indian: Averbakh, 6...c5 7.d5 a6 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 8.Qd2 * E74h "King's Indian: Averbakh, 6...c5 7.d5 a6 8.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 8.a4 * E74i "King's Indian: Averbakh, 6...c5 7.d5 a6 8.a4 Qa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 8.a4 Qa5 * E74j "King's Indian: Averbakh, 6...c5 7.d5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 * E74j "King's Indian: Averbakh, 6...c5 7.d5 h6 8.Bh4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Bh4 * E74k "King's Indian: Averbakh, 6...c5 7.d5 h6 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Be3 * E74l "King's Indian: Averbakh, 6...c5 7.d5 h6 8.Be3 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Be3 e6 * E74m "King's Indian: Averbakh, 6...c5 7.d5 h6 8.Be3 e6 9.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Be3 e6 9.Qd2 * E74n "King's Indian: Averbakh, 6...c5 7.d5 h6 8.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Bf4 * E74o "King's Indian: Averbakh, 6...c5 7.d5 h6 8.Bf4 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Bf4 e6 * E75a "King's Indian: Averbakh, 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 * E75b "King's Indian: Averbakh, 7.d5 e6 8.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 * E75b "King's Indian: Averbakh, 7.d5 e6 8.Nf3 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 exd5 * E75b "King's Indian: Averbakh, 7.d5 e6 8.Nf3 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 exd5 9.exd5 * E75c "King's Indian: Averbakh, 7.d5 e6 8.Nf3 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 * E75c "King's Indian: Averbakh, 7.d5 e6 8.Nf3 h6 9.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bd2 * E75c "King's Indian: Averbakh, 7.d5 e6 8.Nf3 h6 9.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Be3 * E75c "King's Indian: Averbakh, 7.d5 e6 8.Nf3 h6 9.Bf4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bf4 * E75d "King's Indian: Averbakh, 7.d5 e6 8.Nf3 h6 9.Bh4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bh4 * E75e "King's Indian: Averbakh, 7.d5 e6 8.Nf3 h6 9.Bh4 exd5 10.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bh4 exd5 10.cxd5 * E75f "King's Indian: Averbakh, 7.d5 e6 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 * E75g "King's Indian: Averbakh, 7.d5 e6 8.Qd2 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 * E75g "King's Indian: Averbakh, 7.d5 e6 8.Qd2 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 * E75h "King's Indian: Averbakh, 7.d5 e6 8.Qd2 exd5 9.exd5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 a6 * E75i "King's Indian: Averbakh, 7.d5 e6 8.Qd2 exd5 9.exd5 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 * E75i "King's Indian: Averbakh, 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 10.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 10.Nf3 * E75j "King's Indian: Averbakh, 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 10.Nf3 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 10.Nf3 Bg4 * E76a "King's Indian: Four Pawns Attack" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 * E76b "King's Indian: Four Pawns Attack, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 c5 * E76b "King's Indian: Four Pawns Attack, Exchange" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 c5 6.dxc5 * E76c "King's Indian: Four Pawns Attack, 5...c5 6.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 c5 6.d5 * E76d "King's Indian: Four Pawns Attack, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O * E76e "King's Indian: Four Pawns Attack, 5...O-O 6.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 * E76e "King's Indian: Four Pawns Attack, 6.Nf3 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Bg4 * E76f "King's Indian: Four Pawns Attack, 6.Nf3 Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 * E76g "King's Indian: Four Pawns Attack, 6.Nf3 Na6 7.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.e5 * E76h "King's Indian: Four Pawns Attack, 6.Nf3 Na6 7.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.Be2 * E76i "King's Indian: Four Pawns Attack, 6.Nf3 Na6 7.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.Bd3 * E76j "King's Indian: Four Pawns Attack, 6.Nf3 Na6 7.Bd3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.Bd3 e5 * E76k "King's Indian: Four Pawns Attack, 6.Nf3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 * E76l "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.dxc5 * E76m "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.dxc5 Qa5 8.Bd3 Qxc5 9.Qe2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.dxc5 Qa5 8.Bd3 Qxc5 9.Qe2 Nc6 * E76n "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 * E76o "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.d5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 a6 * E76p "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.d5 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 b5 * E76q "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.d5 b5 8.cxb5 a6 9.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 b5 8.cxb5 a6 9.a4 * E76r "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 e6 * E76r "King's Indian: Four Pawns Attack, 6.Nf3 c5 7.d5 e6 8.dxe6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 e6 8.dxe6 * E77 "King's Indian: Four Pawns Attack, 6.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 * E77 "King's Indian: Four Pawns Attack, 6.Be2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 * E77 "King's Indian: Four Pawns Attack, 6.Be2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 * E77 "King's Indian: Four Pawns Attack, Six Pawns line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.dxe6 fxe6 9.g4 Nc6 10.h4 * E77 "King's Indian: Four Pawns Attack, 6.Be2 c5 7.d5 e6 8.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.Nf3 * E77 "King's Indian: Four Pawns Attack, 6.Be2 c5 7.d5 e6 8.Nf3 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.Nf3 exd5 9.exd5 * E77 "King's Indian: Four Pawns Attack, Florentine Gambit" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.Nf3 exd5 9.e5 * E78 "King's Indian: Four Pawns Attack, 7.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 * E78 "King's Indian: Four Pawns Attack, 7.Nf3 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 Bg4 * E78 "King's Indian: Four Pawns Attack, 7.Nf3 cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 * E78 "King's Indian: Four Pawns Attack, 7.Nf3 cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 * E79a "King's Indian: Four Pawns Attack, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 * E79b "King's Indian: Four Pawns Attack, Main Line, 9...Nxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Nxd4 * E79c "King's Indian: Four Pawns Attack, Main Line, 9...Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Ng4 * E79d "King's Indian: Four Pawns Attack, Main Line, 9...Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bg4 * E79e "King's Indian: Four Pawns Attack, Main Line, 9...Bd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bd7 * E79e "King's Indian: Four Pawns Attack, Main Line, 9...Bd7 10.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bd7 10.Qd2 * E79f "King's Indian: Four Pawns Attack, Main Line, 9...Bd7 10.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bd7 10.O-O * E80a "King's Indian: Saemisch Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 * E80b "King's Indian: Saemisch, 5...Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 Na6 * E80c "King's Indian: Saemisch, 5...Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 Nc6 * E80d "King's Indian: Saemisch, 5...Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 Nbd7 * E80e "King's Indian: Saemisch, 5...e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 e5 * E80f "King's Indian: Saemisch, 5...e5 6.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 e5 6.Nge2 * E80g "King's Indian: Saemisch, 5...e5 6.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 e5 6.d5 * E80h "King's Indian: Saemisch, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c5 * E80i "King's Indian: Saemisch, 5...c5 Queenswap" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c5 6.dxc5 dxc5 7.Qxd8+ Kxd8 * E80j "King's Indian: Saemisch, 5...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 a6 * E80k "King's Indian: Saemisch, 5...a6 6.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 a6 6.Be3 * E80l "King's Indian: Saemisch, 5...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 * E80m "King's Indian: Saemisch, 5...c6 6.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 * E80n "King's Indian: Saemisch, 5...c6 6.Be3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 a6 * E80o "King's Indian: Saemisch, 5...c6 6.Be3 a6 7.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 a6 7.a4 * E80p "King's Indian: Saemisch, 5...c6 6.Be3 a6 7.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 a6 7.Bd3 * E81a "King's Indian: Saemisch, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O * E81b "King's Indian: Saemisch, 5...O-O 6.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 * E81c "King's Indian: Saemisch, 5...O-O 6.Nge2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 e5 * E81d "King's Indian: Saemisch, 5...O-O 6.Nge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 c5 * E81d "King's Indian: Saemisch, 5...O-O 6.Nge2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 c5 7.d5 * E81e "King's Indian: Saemisch, 5...O-O 6.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 * E81f "King's Indian: Saemisch, 5...O-O 6.Bg5 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 Nc6 * E81g "King's Indian: Saemisch, 5...O-O 6.Bg5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 a6 * E81h "King's Indian: Saemisch, 5...O-O 6.Bg5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 * E81h "King's Indian: Saemisch, 5...O-O 6.Bg5 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 * E81h "King's Indian: Saemisch, 5...O-O 6.Bg5 c5 7.d5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 a6 * E81h "King's Indian: Saemisch, 5...O-O 6.Bg5 c5 7.d5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 h6 * E81i "King's Indian: Saemisch, 5...O-O 6.Bg5 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 e6 * E81i "King's Indian: Saemisch, 5...O-O 6.Bg5 c5 7.d5 e6 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 * E81j "King's Indian: Saemisch, 5...O-O 6.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 * E81k "King's Indian: Saemisch, 5...O-O 6.Be3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 a6 * E81k "King's Indian: Saemisch, 5...O-O 6.Be3 a6 7.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 a6 7.Qd2 * E81l "King's Indian: Saemisch, 5...O-O 6.Be3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c6 * E81l "King's Indian: Saemisch, Byrne Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c6 7.Bd3 a6 * E81m "King's Indian: Saemisch, 5...O-O 6.Be3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 * E81m "King's Indian: Saemisch, 5...O-O 6.Be3 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.d5 * E81n "King's Indian: Saemisch, 5...O-O 6.Be3 c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.dxc5 * E81n "King's Indian: Saemisch, 5...O-O 6.Be3 c5 Queenswap" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.dxc5 dxc5 8.Qxd8+ * E81o "King's Indian: Saemisch, 5...O-O 6.Be3 c5 7.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.Nge2 * E81o "King's Indian: Saemisch, 5...O-O 6.Be3 c5 7.Nge2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.Nge2 Nc6 * E81p "King's Indian: Saemisch, 5...O-O 6.Be3 c5 7.Nge2 Nc6 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.Nge2 Nc6 8.d5 * E81q "King's Indian: Saemisch, 5...O-O 6.Be3 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 * E81r "King's Indian: Saemisch, 5...O-O 6.Be3 Nbd7 7.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 * E81s "King's Indian: Saemisch, 5...O-O 6.Be3 Nbd7 7.Qd2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 * E81s "King's Indian: Saemisch, 5...O-O 6.Be3 Nbd7 7.Qd2 c5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 8.d5 * E81t "King's Indian: Saemisch, 5...O-O 6.Be3 Nbd7 7.Qd2 c5 8.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 8.Nge2 * E81t "King's Indian: Saemisch, 5...O-O 6.Be3 Nbd7 7.Qd2 c5 8.Nge2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 8.Nge2 a6 * E82a "King's Indian: Saemisch, Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 * E82b "King's Indian: Saemisch, Fianchetto, 7.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Qd2 * E82c "King's Indian: Saemisch, Fianchetto, 7.Qd2 c5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Qd2 c5 8.d5 * E82d "King's Indian: Saemisch, Fianchetto, Bronstein Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 * E82e "King's Indian: Saemisch, Fianchetto, 7.Bd3 Nfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Nfd7 * E82f "King's Indian: Saemisch, Fianchetto, 7.Bd3 Bb7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 * E82g "King's Indian: Saemisch, Fianchetto, 7.Bd3 Bb7 8.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 8.Nge2 * E82g "King's Indian: Saemisch, Fianchetto, 7.Bd3 Bb7 8.Nge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 8.Nge2 c5 * E82g "King's Indian: Saemisch, Fianchetto, 7.Bd3 Bb7 8.Nge2 c5 9.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 8.Nge2 c5 9.d5 e6 * E82h "King's Indian: Saemisch, Fianchetto, 7.Bd3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 * E82i "King's Indian: Saemisch, Fianchetto, 7.Bd3 a6 8.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 * E82i "King's Indian: Saemisch, Fianchetto, 7.Bd3 a6 8.Nge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 c5 * E82j "King's Indian: Saemisch, Fianchetto, 7.Bd3 a6 8.Nge2 c5 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 c5 9.d5 * E82k "King's Indian: Saemisch, Fianchetto, 7.Bd3 a6 8.Nge2 c5 9.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 c5 9.e5 * E83a "King's Indian: Saemisch, 6...Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 * E83b "King's Indian: Saemisch, 6...Nc6 7.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Qd2 * E83c "King's Indian: Saemisch, 6...Nc6 7.Qd2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Qd2 a6 * E83c "King's Indian: Saemisch, 6...Nc6 7.Qd2 a6 8.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Qd2 a6 8.O-O-O * E83d "King's Indian: Saemisch, 6...Nc6 7.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 * E83e "King's Indian: Saemisch, Ruban Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 Rb8 * E83e "King's Indian: Saemisch, Ruban, 8.Qd2 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 Rb8 8.Qd2 Re8 * E83f "King's Indian: Saemisch, Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 * E83g "King's Indian: Saemisch, Panno, 8.a3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.a3 * E83h "King's Indian: Saemisch, Panno, 8.Nc1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Nc1 * E83i "King's Indian: Saemisch, Panno, 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 * E83j "King's Indian: Saemisch, Panno, 8.Qd2 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Re8 * E84a "King's Indian: Saemisch, Panno Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 * E84b "King's Indian: Saemisch, Panno Main Line, 9.a3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.a3 * E84c "King's Indian: Saemisch, Panno Main Line, 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.O-O-O * E84d "King's Indian: Saemisch, Panno Main Line, 9.g4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.g4 * E84e "King's Indian: Saemisch, Panno Main Line, 9.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Rb1 * E84f "King's Indian: Saemisch, Panno Main Line, 9.Bh6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Bh6 * E84g "King's Indian: Saemisch, Panno Main Line, 9.Nc1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 * E84g "King's Indian: Saemisch, Panno Main Line, 9.Nc1 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 * E84h "King's Indian: Saemisch, Panno Main Line, 9.Nc1 e5 10.Nb3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 10.Nb3 * E84i "King's Indian: Saemisch, Panno Main Line, 9.Nc1 e5 10.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 10.d5 * E84j "King's Indian: Saemisch, Panno Main Line, 9.Nc1 e5 10.d5 Nd4 11.Nb3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 10.d5 Nd4 11.Nb3 * E84k "King's Indian: Saemisch, Panno Main Line, 9.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 * E84l "King's Indian: Saemisch, Panno Main Line, 9.h4 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 b5 * E84m "King's Indian: Saemisch, Panno Main Line, 9.h4 h5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 h5 * E84n "King's Indian: Saemisch, Panno Main Line, 9.h4 h5 10.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 h5 10.O-O-O * E84o "King's Indian: Saemisch, Panno Main Line, 9.h4 h5 10.O-O-O b5 11.Bh6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 h5 10.O-O-O b5 11.Bh6 * E85a "King's Indian: Saemisch, Orthodox Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 * E85b "King's Indian: Saemisch, Orthodox, 7.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.dxe5 * E85c "King's Indian: Saemisch, Orthodox, Queenswap" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.dxe5 dxe5 8.Qxd8 * E85d "King's Indian: Saemisch, Orthodox, 7.Nge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 * E85e "King's Indian: Saemisch, Orthodox, 7.Nge2 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 exd4 * E85f "King's Indian: Saemisch, Orthodox, 7.Nge2 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nbd7 * E85g "King's Indian: Saemisch, Orthodox, 7.Nge2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 * E85h "King's Indian: Saemisch, Orthodox, 7.Nge2 Nc6 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 8.d5 * E85i "King's Indian: Saemisch, Orthodox, 7.Nge2 Nc6 8.d5 Ne7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 8.d5 Ne7 * E85j "King's Indian: Saemisch, Orthodox, 7.Nge2 Nc6 8.d5 Ne7 9.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 8.d5 Ne7 9.Qd2 * E86a "King's Indian: Saemisch, Orthodox, 7.Nge2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 * E86b "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.d5 * E86c "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.Qb3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qb3 * E86d "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 * E86e "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.Qd2 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 * E86f "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.Qd2 Nbd7 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.d5 * E86g "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O * E86h "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O a6 * E86i "King's Indian: Saemisch, Orthodox, 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O a6 10.Kb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O a6 10.Kb1 * E87a "King's Indian: Saemisch, Orthodox, 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 * E87b "King's Indian: Saemisch, Orthodox, 7.d5 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 a5 * E87c "King's Indian: Saemisch, Orthodox, 7.d5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c5 * E87d "King's Indian: Saemisch, Orthodox, 7.d5 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nbd7 * E87e "King's Indian: Saemisch, Orthodox, 7.d5 Nh5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 * E87f "King's Indian: Saemisch, Orthodox, 7.d5 Nh5 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 * E87g "King's Indian: Saemisch, Orthodox, Bronstein Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 Qh4+ * E87h "King's Indian: Saemisch, Orthodox, Bronstein, 9.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 Qh4+ 9.g3 * E87i "King's Indian: Saemisch, Orthodox, Bronstein, 9.Bf2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 Qh4+ 9.Bf2 * E87j "King's Indian: Saemisch, Orthodox, 7.d5 Nh5 8.Qd2 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 * E87k "King's Indian: Saemisch, Orthodox, 7.d5 Nh5 8.Qd2 f5 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O * E87l "King's Indian: Saemisch, Orthodox, 7.d5 Nh5 8.Qd2 f5 9.O-O-O f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O f4 * E87m "King's Indian: Saemisch, Orthodox, 7.d5 Nh5 8.Qd2 f5 9.O-O-O Nd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O Nd7 * E87n "King's Indian: Saemisch, Orthodox, 7.d5 Nh5 8.Qd2 f5 9.O-O-O Nd7 10.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O Nd7 10.Bd3 * E88a "King's Indian: Saemisch, Orthodox, 7.d5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 * E88b "King's Indian: Saemisch, Orthodox, 7.d5 c6 8.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 * E88c "King's Indian: Saemisch, Orthodox, 7.d5 c6 8.Qd2 cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 cxd5 * E88d "King's Indian: Saemisch, Orthodox, 7.d5 c6 8.Qd2 cxd5 9.cxd5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 cxd5 9.cxd5 a6 * E88e "King's Indian: Saemisch, Orthodox, 7.d5 c6 8.Qd2 cxd5 9.cxd5 a6 10.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 cxd5 9.cxd5 a6 10.Bd3 * E88f "King's Indian: Saemisch, Orthodox, Polugayevsky" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 * E88g "King's Indian: Saemisch, Orthodox, Polugayevsky, 8...b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 b5 * E88h "King's Indian: Saemisch, Orthodox, Polugayevsky, 8...cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 cxd5 * E88i "King's Indian: Saemisch, Orthodox, Polugayevsky, 8...cxd5 9.cxd5 Nh5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 cxd5 9.cxd5 Nh5 * E89a "King's Indian: Saemisch, Orthodox Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 * E89b "King's Indian: Saemisch, Orthodox Main Line, 9...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 a6 * E89c "King's Indian: Saemisch, Orthodox Main Line, 9...Bd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Bd7 * E89d "King's Indian: Saemisch, Orthodox Main Line, 9...Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 * E89e "King's Indian: Saemisch, Orthodox Main Line, 10.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 * E89f "King's Indian: Saemisch, Orthodox Main Line, 10.Qd2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 * E89g "King's Indian: Saemisch, Orthodox Main Line, 10.Qd2 a6 11.g4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 11.g4 * E89h "King's Indian: Saemisch, Orthodox Main Line, 10.Qd2 a6 11.g4 h5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 11.g4 h5 * E89i "King's Indian: Saemisch, Orthodox Main Line, 10.Qd2 a6 11.g4 h5 12.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 11.g4 h5 12.h3 * E90a "King's Indian: 5.Nf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 * E90a "King's Indian: 5.Nf3 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Nbd7 * E90a "King's Indian: 5.Nf3 Nbd7 6.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Nbd7 6.Be2 * E90a "King's Indian: 5.Nf3 Nbd7 6.Be2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Nbd7 6.Be2 e5 * E90b "King's Indian: 5.Nf3 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Bg4 * E90c "King's Indian: 5.Nf3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 c5 * E90d "King's Indian: 5.Nf3 c5 6.d5 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 c5 6.d5 O-O * E90e "King's Indian: 5.Nf3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O * E90f "King's Indian: 5.Nf3 O-O 6.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Bd3 * E90g "King's Indian: Zinnowitz Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Bg5 * E90g "King's Indian: Zinnowitz, 6...h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Bg5 h6 * E90h "King's Indian: Larsen Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 * E90h "King's Indian: Larsen, 6...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 c5 * E90i "King's Indian: Larsen, 6...e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 e5 * E90j "King's Indian: Larsen, 6...e5, Queenswap" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 e5 7.dxe5 dxe5 8.Qxd8+ * E90k "King's Indian: 5.Nf3 O-O 6.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 * E90l "King's Indian: 5.Nf3 O-O 6.h3 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Nbd7 * E90l "King's Indian: 5.Nf3 O-O 6.h3 Nbd7 7.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Nbd7 7.Bg5 * E90m "King's Indian: 5.Nf3 O-O 6.h3 Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Na6 * E90m "King's Indian: 5.Nf3 O-O 6.h3 Na6 7.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Na6 7.Bg5 * E90n "King's Indian: 5.Nf3 O-O 6.h3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 * E90n "King's Indian: 5.Nf3 O-O 6.h3 e5 7.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.Be3 * E90o "King's Indian: 5.Nf3 O-O 6.h3 e5 Queenswap" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.dxe5 dxe5 8.Qxd8+ * E90p "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 * E90q "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 a5 * E90r "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 * E90r "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 8.Be3 * E90r "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 8.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 8.Bg5 * E90s "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5 Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Na6 * E90s "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5 Na6 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Na6 8.Be3 * E90s "King's Indian: 5.Nf3 O-O 6.h3 e5 7.d5 Na6 8.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Na6 8.Bg5 * E90t "King's Indian: 5.Nf3 O-O 6.h3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 * E90t "King's Indian: 5.Nf3 O-O 6.h3 c5 7.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.Be3 * E90u "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 * E90v "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 * E90v "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 * E90w "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 * E90w "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 9.O-O * E90w "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 9.O-O Nc7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 9.O-O Nc7 * E90x "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 * # Here, 9.cxd5 transposes to a Benoni; 9.exd5 remains a King's Indian. E90x "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 9.exd5 * E90y "King's Indian: 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 9.exd5 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 9.exd5 Re8 * E91a "King's Indian: 6.Be2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 * E91b "King's Indian: 6.Be2 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 a5 * E91c "King's Indian: 6.Be2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 a6 * E91d "King's Indian: 6.Be2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c6 * E91e "King's Indian: 6.Be2 c6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c6 7.O-O * E91f "King's Indian: 6.Be2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 * E91g "King's Indian: 6.Be2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 * E91h "King's Indian: 6.Be2 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 * E91h "King's Indian: 6.Be2 c5 7.d5 e6 8.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 8.O-O * E91i "King's Indian: 6.Be2 c5 7.d5 e6 8.O-O Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 8.O-O Re8 * E91i "King's Indian: 6.Be2 c5 7.d5 e6 8.O-O Re8 9.Nd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 8.O-O Re8 9.Nd2 * E91j "King's Indian: 6.Be2 c5 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.O-O * E91k "King's Indian: 6.Be2 c5 7.O-O Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.O-O Nc6 * E91l "King's Indian: Kazakh Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 * E91l "King's Indian: Kazakh Variation, 7.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.Bg5 * E91m "King's Indian: Kazakh Variation, 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.O-O * E91m "King's Indian: Kazakh Variation, 7.O-O c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.O-O c5 * E91n "King's Indian: Kazakh Variation, 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.O-O c6 * E91o "King's Indian: 6.Be2 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nc6 * E91p "King's Indian: 6.Be2 Nc6 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nc6 7.d5 * E91q "King's Indian: 6.Be2 Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 * E91q "King's Indian: 6.Be2 Nbd7 7.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.Bg5 * E91r "King's Indian: 6.Be2 Nbd7 7.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.e5 * E91s "King's Indian: 6.Be2 Nbd7 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.O-O * E91t "King's Indian: 6.Be2 Nbd7 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.O-O c6 * E91u "King's Indian: 6.Be2 Bg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 * E91v "King's Indian: 6.Be2 Bg4 7.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 * E91w "King's Indian: 6.Be2 Bg4 7.Be3 Nfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 Nfd7 * E91x "King's Indian: 6.Be2 Bg4 7.Be3 Nfd7 8.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 Nfd7 8.Rc1 * E91y "King's Indian: 6.Be2 Bg4 7.Be3 Nfd7 8.Ng1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 Nfd7 8.Ng1 * E92a "King's Indian: 6.Be2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 * E92b "King's Indian: 6.Be2 e5 Queenswap" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 * E92b "King's Indian: 6.Be2 e5 Queenswap" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 * E92c "King's Indian: 6.Be2 e5 Queenswap, 9.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 * E92d "King's Indian: 6.Be2 e5 Queenswap, 9.Bg5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 c6 * E92e "King's Indian: 6.Be2 e5 Queenswap, 9.Bg5 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 Re8 * E92f "King's Indian: 6.Be2 e5 Queenswap, 9.Bg5 Re8 10.Nd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 Re8 10.Nd5 * E92g "King's Indian: Gligoric-Taimanov System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 * E92h "King's Indian: Gligoric-Taimanov, 7...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 c6 * E92i "King's Indian: Gligoric-Taimanov, 7...exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 exd4 * E92j "King's Indian: Gligoric-Taimanov, 7...Qe7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Qe7 * E92k "King's Indian: Gligoric-Taimanov, 7...Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 * E92k "King's Indian: Gligoric-Taimanov, 7...Ng4 8.Bg5 f6 9.Bc1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 8.Bg5 f6 9.Bc1 * E92l "King's Indian: Gligoric-Taimanov, 7...Ng4 8.Bg5 f6 9.Bh4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 8.Bg5 f6 9.Bh4 * E92m "King's Indian: Gligoric-Taimanov, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 8.Bg5 f6 9.Bh4 Nc6 * E92n "King's Indian: Petrosian System" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 * E92o "King's Indian: Petrosian, 7...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 c5 * E92p "King's Indian: Petrosian, 7...c5 8.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 c5 8.Bg5 * E92q "King's Indian: Petrosian, Stein Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 * E92r "King's Indian: Petrosian, Stein, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.h3 * E92s "King's Indian: Petrosian, Stein, 8.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 * E92s "King's Indian: Petrosian, Stein, 8.Bg5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 * E92t "King's Indian: Petrosian, Stein, 8.Bg5 h6 9.Bh4 Na6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 * E92u "King's Indian: Petrosian, Stein, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 * E92v "King's Indian: Petrosian, Stein, Main Line, 10...Qe8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 * E92w "King's Indian: Petrosian, Stein, Main Line, 10...Qe8 11.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 11.O-O * E92w "King's Indian: Petrosian, Stein, Main Line, 10...Qe8 11.O-O Bd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 11.O-O Bd7 * E92x "King's Indian: Petrosian, Stein, Main Line, 10...Qe8 11.O-O Nh7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 11.O-O Nh7 * E93 "King's Indian: Petrosian, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 * E93 "King's Indian: Petrosian, Main Line, 8.Qc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Qc2 * E93 "King's Indian: Petrosian, Main Line, 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Be3 * E93 "King's Indian: Petrosian, Main Line, 8.Be3 Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Be3 Ng4 * E93 "King's Indian: Petrosian, Main Line, 8.Bg5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 * E93 "King's Indian: Petrosian, Main Line, 8.Bg5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 * E93 "King's Indian: Petrosian, Main Line, 8.Bg5 h6 9.Bh4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 * E93 "King's Indian: Petrosian, Main Line, 8.Bg5 h6 9.Bh4 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 a6 * E93 "King's Indian: Petrosian, Main Line, 8.Bg5 h6 9.Bh4 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 a5 * E93 "King's Indian: Petrosian, Main Line, 8.Bg5 h6 9.Bh4 g5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 g5 * E93 "King's Indian: Petrosian, Keres Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 g5 10.Bg3 Nh5 11.h4 * E94a "King's Indian: 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O * E94b "King's Indian: 7.O-O exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 * E94c "King's Indian: 7.O-O exd4 8.Nxd4 Re8 9.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 * E94c "King's Indian: 7.O-O exd4 8.Nxd4 Re8 9.f3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 c6 * E94c "King's Indian: 7.O-O exd4 8.Nxd4 Re8 9.f3 c6 10.Kh1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 c6 10.Kh1 * E94d "King's Indian: 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 * E94d "King's Indian: 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 10.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 10.Be3 * E94e "King's Indian: 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 10.Be3 Nh5 11.Qd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 10.Be3 Nh5 11.Qd2 * E94f "King's Indian: Donner Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O c6 * E94g "King's Indian: Donner, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O c6 8.d5 * E94h "King's Indian: Donner, 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O c6 8.Be3 * E94i "King's Indian: Glek Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 * E94j "King's Indian: Glek, 8.Re1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Re1 * E94k "King's Indian: Glek, 8.Re1 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Re1 c6 * E94k "King's Indian: Glek, 8.Re1 c6 9.Bf1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Re1 c6 9.Bf1 * E94l "King's Indian: Glek, 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 * E94m "King's Indian: Glek, 8.Be3 Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 * E94n "King's Indian: Glek, 8.Be3 Ng4 9.Ng5 Qe8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 * E94o "King's Indian: Glek, Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 10.dxe5 dxe5 * E94o "King's Indian: Glek, Main Line, 11.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 10.dxe5 dxe5 11.h3 * E94o "King's Indian: Glek, Main Line, 11.h3 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 10.dxe5 dxe5 11.h3 h6 * E94p "King's Indian: 7.O-O Nbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 * E94q "King's Indian: 7.O-O Nbd7 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 * E94q "King's Indian: 7.O-O Nbd7 8.d5 Nc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 Nc5 * E94r "King's Indian: 7.O-O Nbd7 8.d5 Nc5 9.Qc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 Nc5 9.Qc2 * E94r "King's Indian: 7.O-O Nbd7 8.d5 Nc5 9.Qc2 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 Nc5 9.Qc2 a5 * E94s "King's Indian: 7.O-O Nbd7 8.Qc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Qc2 * E94s "King's Indian: 7.O-O Nbd7 8.Qc2 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Qc2 Re8 * E94t "King's Indian: 7.O-O Nbd7 8.Qc2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Qc2 c6 * E94u "King's Indian: 7.O-O Nbd7 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 * E94v "King's Indian: 7.O-O Nbd7 8.Be3 Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 Ng4 * E94w "King's Indian: 7.O-O Nbd7 8.Be3 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 Re8 * E94x "King's Indian: 7.O-O Nbd7 8.Be3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 c6 * E94y "King's Indian: 7.O-O Nbd7 8.Be3 c6 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 c6 9.d5 * E94y "King's Indian: 7.O-O Nbd7 8.Be3 c6 9.d5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 c6 9.d5 c5 * E95a "King's Indian: 7.O-O Nbd7 8.Re1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 * E95b "King's Indian: 7.O-O Nbd7 8.Re1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 a5 * E95c "King's Indian: 7.O-O Nbd7 8.Re1 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 h6 * E95d "King's Indian: 7.O-O Nbd7 8.Re1 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 Re8 * E95e "King's Indian: 7.O-O Nbd7 8.Re1 Re8 9.Bf1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 Re8 9.Bf1 * E95f "King's Indian: 7.O-O Nbd7 8.Re1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 exd4 * E95g "King's Indian: 7.O-O Nbd7 8.Re1 exd4 9.Nxd4 Nc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 exd4 9.Nxd4 Nc5 * E95h "King's Indian: 7.O-O Nbd7 8.Re1 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 * E95i "King's Indian: 7.O-O Nbd7 8.Re1 c6 9.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Rb1 * E95j "King's Indian: 7.O-O Nbd7 8.Re1 c6 9.Bf1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 * E95k "King's Indian: 7.O-O Nbd7 8.Re1 c6 9.Bf1 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 Re8 * E95l "King's Indian: 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 * E95m "King's Indian: 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 10.Nxd4 Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 10.Nxd4 Ng4 * E95n "King's Indian: 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 10.Nxd4 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 10.Nxd4 Re8 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line, 10.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.h3 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line, 10.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.dxe5 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line, 10.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.dxe5 dxe5 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line, 10.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line, 10.Rb1 Re8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 Re8 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line, 10.Rb1 Re8 11.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 Re8 11.d5 * E96 "King's Indian: 7.O-O Nbd7, Old Main Line, 10.Rb1 Re8 11.d5 Nc5 12.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 Re8 11.d5 Nc5 12.b3 * E97a "King's Indian: Mar del Plata" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 * E97b "King's Indian: Mar del Plata, 8.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.dxe5 * E97c "King's Indian: Mar del Plata, 8.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.Be3 * E97c "King's Indian: Mar del Plata, 8.Be3 Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.Be3 Ng4 * E97c "King's Indian: Mar del Plata, 8.Be3 Ng4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.Be3 Ng4 9.Bg5 f6 10.Bc1 * E97d "King's Indian: Mar del Plata, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 * E97d "King's Indian: Mar del Plata, 8.d5 Ne7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 * E97d "King's Indian: Mar del Plata, Odessa Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Bg5 * E97e "King's Indian: Mar del Plata, 9.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Bd2 * E97f "King's Indian: Mar del Plata, Bayonet Attack" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 * E97g "King's Indian: Mar del Plata, Bayonet Attack, 9...Kh8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Kh8 * E97h "King's Indian: Mar del Plata, Bayonet Attack, 9...Ne8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Ne8 * E97h "King's Indian: Mar del Plata, Bayonet Attack, 9...Ne8 10.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Ne8 10.c5 * E97i "King's Indian: Mar del Plata, Bayonet Attack, 9...a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 * E97i "King's Indian: Mar del Plata, Bayonet Attack, 9...a5 10.bxa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.bxa5 * E97j "King's Indian: Mar del Plata, Bayonet Attack, 9...a5 10.Ba3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.Ba3 * E97k "King's Indian: Mar del Plata, Bayonet Attack, 9...a5 10.Ba3 axb4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.Ba3 axb4 * E97k "King's Indian: Mar del Plata, Bayonet Attack, 9...a5 10.Ba3 axb4 11.Bxb4 Nd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.Ba3 axb4 11.Bxb4 Nd7 * E97l "King's Indian: Mar del Plata, Bayonet Attack, 9...Nh5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 * E97m "King's Indian: Mar del Plata, Bayonet Attack, 9...Nh5 10.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.c5 * E97n "King's Indian: Mar del Plata, Bayonet Attack, 9...Nh5 10.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.g3 * E97o "King's Indian: Mar del Plata, Bayonet Attack, 9...Nh5 10.Re1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 * E97p "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 a5 * E97q "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 Nf4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 Nf4 * E97q "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 Nf4 11.Bf1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 Nf4 11.Bf1 a5 * E97q "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 Nf4 11.Bf1 a5 12.bxa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 Nf4 11.Bf1 a5 12.bxa5 * E97r "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 * E97s "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 f5 11.Ng5 Nf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 11.Ng5 Nf6 * E97s "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 f5 11.Ng5 Nf6 12.Bf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 11.Ng5 Nf6 12.Bf3 * E97s "King's Indian: Mar del Plata, Bayonet, 9...Nh5 10.Re1 f5 11.Ng5 Nf6 12.Bf3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 11.Ng5 Nf6 12.Bf3 c6 * E97t "King's Indian: Mar del Plata, 9.Nd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 * E97u "King's Indian: Mar del Plata, 9.Nd2 Ne8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Ne8 * E97u "King's Indian: Mar del Plata, 9.Nd2 Ne8 10.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Ne8 10.b4 * E97v "King's Indian: Mar del Plata, 9.Nd2 Nd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Nd7 * E97v "King's Indian: Mar del Plata, 9.Nd2 Nd7 10.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Nd7 10.b4 * E97w "King's Indian: Mar del Plata, 9.Nd2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 c5 * E97x "King's Indian: Mar del Plata, 9.Nd2 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 * E97x "King's Indian: Mar del Plata, 9.Nd2 a5 10.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.Rb1 * E97y "King's Indian: Mar del Plata, 9.Nd2 a5 10.a3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 * E97y "King's Indian: Mar del Plata, 9.Nd2 a5 10.a3 Bd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Bd7 * E97z "King's Indian: Mar del Plata, 9.Nd2 a5 10.a3 Nd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Nd7 * E97z "King's Indian: Mar del Plata, 9.Nd2 a5 10.a3 Nd7 11.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Nd7 11.Rb1 * E97z "King's Indian: Mar del Plata, 9.Nd2 a5 10.a3 Nd7 11.Rb1 f5 12.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Nd7 11.Rb1 f5 12.b4 * E98a "King's Indian: Mar del Plata, 9.Ne1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 * E98b "King's Indian: Mar del Plata, 9.Ne1 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 c5 * E98c "King's Indian: Mar del Plata, 9.Ne1 Ne8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 * E98d "King's Indian: Mar del Plata, 9.Ne1 Ne8 10.Nd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Nd3 * E98d "King's Indian: Mar del Plata, 9.Ne1 Ne8 10.Nd3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Nd3 f5 * E98e "King's Indian: Mar del Plata, 9.Ne1 Ne8 10.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Be3 * E98f "King's Indian: Mar del Plata, 9.Ne1 Ne8 10.Be3 f5 11.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Be3 f5 11.f3 * E98g "King's Indian: Mar del Plata, 9.Ne1 Ne8 10.Be3 f5 11.f3 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Be3 f5 11.f3 f4 * E98h "King's Indian: Mar del Plata, 9.Ne1 Nd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 * E98i "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Kh1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Kh1 * E98j "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Be3 * E98k "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Be3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Be3 f5 * E98l "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Nd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 * E98m "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Nd3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 * E98n "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Nd3 f5 11.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 * E98o "King's Indian: Mar del Plata, Fischer Variation" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 c5 * E98p "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 Kh8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 Kh8 * E98q "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 Nf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 Nf6 * E98r "King's Indian: Mar del Plata, 9.Ne1 Nd7 10.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 * E99 "King's Indian: Mar del Plata, 10.f3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Nd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Nd3 Nf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Nd3 Nf6 12.Bd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 12.Bd2 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Nd3 Nf6 12.Bd2 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 12.Bd2 f4 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Nd3 Nf6 12.Bd2 f4 13.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 12.Bd2 f4 13.c5 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Nd3 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 f4 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Be3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Be3 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Be3 f4 12.Bf2 g5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 12.Bf2 g5 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Be3 f4 12.Bf2 g5 13.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 12.Bf2 g5 13.a4 * E99 "King's Indian: Mar del Plata, 10.f3 f5 11.Be3 f4 12.Bf2 g5 13.a4 Ng6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 12.Bf2 g5 13.a4 Ng6 * E99 "King's Indian: Mar del Plata, Benko Attack" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 * E99 "King's Indian: Mar del Plata, Benko Attack, 11...Kh8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 Kh8 * E99 "King's Indian: Mar del Plata, Benko Attack, 11...Nf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 Nf6 * E99 "King's Indian: Mar del Plata, Benko Attack, 11...Nf6 12.Nd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 Nf6 12.Nd3 * scid-4.3.0.cvs20120311/scid_es.eco0000644000175000017500000414701511727223076015552 0ustar oliveroliver############################# # scid_sp.eco # This is the Spanish ECO classification file for Scid. # Benigno Hernández Bacallado - 2008 A00 "Inicio de partida" * A00 "Apertura Anderssen" 1.a3 * A00 "Apertura Creepy Crawly (Basman)" 1.a3 e5 2.h3 d5 * A00 "Apertura Ware (Heno de Pradera)" 1.a4 * A00 "Apertura Crab" 1.a4 e5 2.h4 * A00 "Ataque Durkin" 1.Na3 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet)" 1.Nc3 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...Cf6" 1.Nc3 Nf6 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...Cf6 2.Cf3" 1.Nc3 Nf6 2.Nf3 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): Gambito Tübingen" 1.Nc3 Nf6 2.g4 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...e5" 1.Nc3 e5 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...e5 2.Cf3" 1.Nc3 e5 2.Nf3 * A00 "Apertura de Battambang" 1.Nc3 e5 2.a3 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): Variante Siciliana" 1.Nc3 c5 * A00 "Apertura Novosibirsk" 1.Nc3 c5 2.d4 cxd4 3.Qxd4 Nc6 4.Qh4 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): Variante Siciliana, 2.Cf3" 1.Nc3 c5 2.Nf3 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): Variante Siciliana, 2.Cf3 Cc6" 1.Nc3 c5 2.Nf3 Nc6 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...d5" 1.Nc3 d5 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...d5 2.Cf3" 1.Nc3 d5 2.Nf3 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...d5 2.Cf3 Cf6" 1.Nc3 d5 2.Nf3 Nf6 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...d5 2.e4" 1.Nc3 d5 2.e4 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...d5 2.e4 d4" 1.Nc3 d5 2.e4 d4 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): 1...d5 2.e4 dxe4" 1.Nc3 d5 2.e4 dxe4 * A00 "Apertura Dunst (Sleipner-Heinrichsen-Van Geet): Gambito Hector" 1.Nc3 d5 2.e4 dxe4 3.Bc4 * A00 "Apertura Polaca (Sokolsky-Orangután)" 1.b4 * A00 "Apertura Polaca (Sokolsky-Orangután): Ataque Macho Alfa, Variante Simagin" 1.b4 a5 * A00 "Apertura Polaca (Sokolsky-Orangután): Gambito de Birmingham" 1.b4 c5 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Bucker" 1.b4 Na6 * A00 "Apertura Polaca (Sokolsky-Orangután): Defensa Aasum" 1.b4 Nc6 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...Cf6" 1.b4 Nf6 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...Cf6 2.Ab2" 1.b4 Nf6 2.Bb2 * A00 "Apertura Polaca (Sokolsky-Orangután): 2...d5" 1.b4 Nf6 2.Bb2 d5 3.e3 e6 4.b5 c5 5.Nf3 Bd6 6.c4 Nbd7 7.Be2 O-O 8.O-O * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Gligoric-Smyslov, 1...Cf6 2.Ab2 e6" 1.b4 Nf6 2.Bb2 e6 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Gligoric-Smyslov, 1...Cf6 2.Ab2 e6 3.b5" 1.b4 Nf6 2.Bb2 e6 3.b5 d5 4.e3 * A00 "Apertura Polaca (Sokolsky-Orangután): 2...g6" 1.b4 Nf6 2.Bb2 g6 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Bayoneta, 2...g6 3.g4" 1.b4 Nf6 2.Bb2 g6 3.g4 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Karniewski-Tübingen" 1.b4 Nh6 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Fuera del Flanco, 1...c6" 1.b4 c6 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Fuera del Flanco, Defensa del Ala" 1.b4 c6 2.Bb2 a5 3.a3 axb4 4.axb4 Rxa1 5.Bxa1 Qb6 6.c3 * A00 "Apertura Polaca (Sokolsky-Orangután): Gambito Schühler" 1.b4 c6 2.Bb2 a5 3.b5 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...d5" 1.b4 d5 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...d5 2.Ab2" 1.b4 d5 2.Bb2 * A00 "Apertura Polaca (Sokolsky-Orangután): Defensa Roczniak" 1.b4 d5 2.Bb2 d4 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...d5 2.Ab2 Af5" 1.b4 d5 2.Bb2 Bf5 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Golombek" 1.b4 d5 2.Bb2 Nf6 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Golombek, 1...d5 2.Ab2 Cf6 3.e3" 1.b4 d5 2.Bb2 Nf6 3.e3 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...e5" 1.b4 e5 * A00 "Apertura Polaca (Sokolsky-Orangután): Ataque Bugayev" 1.b4 e5 2.a3 * A00 "Apertura Polaca (Sokolsky-Orangután): Orangután en Punta" 1.b4 e5 2.b5 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...e5 2.Ab2" 1.b4 e5 2.Bb2 * A00 "Apertura Polaca (Sokolsky-Orangután): Gambito Wolfertz" 1.b4 e5 2.Bb2 c5 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Taimanov, 1...e5 2.Ab2 d6" 1.b4 e5 2.Bb2 d6 * A00 "Apertura Polaca (Sokolsky-Orangután): 1...e5 2.Ab2 f6" 1.b4 e5 2.Bb2 f6 * A00 "Apertura Polaca (Sokolsky-Orangután): Ataque Bugayev, 1...e5 2.Ab2 f6 3.a3" 1.b4 e5 2.Bb2 f6 3.a3 * A00 "Apertura Polaca (Sokolsky-Orangután): Ataque Bugayev, Variante Katalymov 1...e5 2.Ab2 f6 3.b5" 1.b4 e5 2.Bb2 f6 3.a3 * A00 "Apertura Polaca (Sokolsky-Orangután): Gambito Schiffler-Tartakower" 1.b4 e5 2.Bb2 f6 3.e4 Bxb4 * A00 "Apertura Polaca (Sokolsky-Orangután): Gambito Schiffler-Tartakower, Variante Brinckmann 4...Cc6" 1.b4 e5 2.Bb2 f6 3.e4 Bxb4 4.Bc4 Nc6 5.f4 Qe7 * A00 "Apertura Polaca (Sokolsky-Orangután): Gambito Schiffler-Tartakower, Variante Brinckmann 4...Cge7" 1.b4 e5 2.Bb2 f6 3.e4 Bxb4 4.Bc4 Ne7 5.Qh5+ g6 6.Qh4 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante del Cambio, 2...Axb4" 1.b4 e5 2.Bb2 Bxb4 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante del Cambio, Gambito Kucharkowski-Meybohm" 1.b4 e5 2.Bb2 Bxb4 3.f4 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante del Cambio, 2...Axb4 3.Axe5" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante del Cambio, 2...Axb4 3.Axe5 Cf6" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 Nf6 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante del Cambio, 2...Axb4 3.Axe5 Cf6 4.c4" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 Nf6 4.c4 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante del Cambio, 2...Axb4 3.Axe5 Cf6 4.c4 O-O 5.e3" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 Nf6 4.c4 O-O 5.e3 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante del Cambio, 2...Axb4 3.Axe5 Cf6 4.Cf3" 1.b4 e5 2.Bb2 Bxb4 3.Bxe5 Nf6 4.Nf3 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Stabenow" 1.b4 e5 2.Bb2 Bd6 * A00 "Apertura Polaca (Sokolsky-Orangután): Defensa Ziese" 1.b4 e5 2.Bb2 Qe7 * A00 "Apertura Polaca (Sokolsky-Orangután): Variante Najdorf-Evans" 1.b4 f5 * A00 "Apertura Saragossa" 1.c3 * A00 "Apertura Mieses" 1.d3 * A00 "Apertura Venezolana" 1.d3 c5 2.Nc3 Nc6 3.g3 * A00 "Apertura Mieses: 1...d5" 1.d3 d5 * A00 "Apertura Mieses: 1...e5" 1.d3 e5 * A00 "Apertura de Valencia: 1...e5" 1.d3 e5 2.Nd2 * A00 "Apertura Bayoneta Diferida" 1.d3 g6 2.g4 * A00 "Apertura Van Kruij" 1.e3 * A00 "Apertura Van Kruij: Ataque de Amsterdam" 1.e3 e5 2.c4 * A00 "Apertura Barnes (Gedult)" 1.f3 * A00 "Apertura Hammerschlag (Zorro Frito-Corte de Cerdo)" 1.f3 e5 2.Kf2 * A00 "Apertura Amar (París)" 1.Nh3 * A00 "Apertura Amar (París): Gambito de París" 1.Nh3 d5 2.g3 e5 3.f4 * A00 "Apertura Benko" 1.g3 * A00 "Apertura Tridente" 1.g3 c5 * A00 "Apertura Benko: 1...d5" 1.g3 d5 * A00 "Apertura Benko: 1.g3 d5 2.Ag2" 1.g3 d5 2.Bg2 * A00 "Apertura Benko: 1.g3 d5 2.Ag2 c6" 1.g3 d5 2.Bg2 c6 * A00 "Apertura Benko: 1.g3 d5 2.Ag2 e5" 1.g3 d5 2.Bg2 e5 * A00 "Apertura Benko: 1.g3 d5 2.Ag2 Cf6" 1.g3 d5 2.Bg2 Nf6 * A00 "Apertura Benko: 1.g3 d5 2.Ag2 Cf6 3.b3" 1.g3 d5 2.Bg2 Nf6 3.b3 * A00 "Apertura Benko: Transposición Reti-AIR-Inglesa, 1...e5" 1.g3 e5 * A00 "Apertura Benko: Transposición Reti-AIR-Inglesa, 1.g3 e5 2.Ag2" 1.g3 e5 2.Bg2 * A00 "Apertura Benko: Transposición Reti-AIR-Inglesa, 1.g3 e5 2.Ag2 d5 3.d3" 1.g3 e5 2.Bg2 d5 3.d3 * A00 "Apertura Benko: Transposición Reti-AIR-Inglesa, 1.g3 e5 2.Ag2 d5 3.d3 Cc6 4.Cf3" 1.g3 e5 2.Bg2 d5 3.d3 Nc6 4.Nf3 * A00 "Apertura Benko: Alekhine Invertida" 1.g3 e5 2.Nf3 * A00 "Apertura Benko: Simétrica" 1.g3 g6 * A00 "Apertura Benko: 1...Cf6" 1.g3 Nf6 * A00 "Apertura Benko: Variante Benko-Pirc, 1.g3 Cf6 2.Ag2 g6 3.e4 d6" 1.g3 Nf6 2.Bg2 g6 3.e4 d6 * A00 "Apertura Benko: Variante Benko-Pirc, 1.g3 Cf6 2.Ag2 g6 3.e4 d6 4.d4 Ag7 5.Ce2 O-O" 1.g3 Nf6 2.Bg2 g6 3.e4 d6 4.d4 Bg7 5.Ne2 O-O * A00 "Apertura Benko: Lasker Especial de Simultáneas" 1.g3 h5 * A00 "Apertura Grob (Fric-Kilibr)" 1.g4 * A00 "Apertura Grob (Fric-Kilibr): Gambito Alessi" 1.g4 f5 * A00 "Apertura Grob (Fric-Kilibr): Doble Grob" 1.g4 g5 * A00 "Apertura Grob (Fric-Kilibr): 1...e5" 1.g4 e5 * A00 "Apertura Grob (Fric-Kilibr): 1...d5" 1.g4 d5 * A00 "Gambito Grob" 1.g4 d5 2.Bg2 * A00 "Gambito Grob: 2...e5" 1.g4 d5 2.Bg2 e5 * A00 "Gambito Grob: Ataque Hurst" 1.g4 d5 2.Bg2 e5 3.c4 * A00 "Gambito Grob: 2...c6" 1.g4 d5 2.Bg2 c6 * A00 "Gambito Grob: Ataque Spike" 1.g4 d5 2.Bg2 c6 3.g5 * A00 "Gambito Grob Aceptado" 1.g4 d5 2.Bg2 Bxg4 * A00 "Gambito Grob Aceptado: Gambito Fritz" 1.g4 d5 2.Bg2 Bxg4 3.c4 * A00 "Gambito Grob Aceptado: Contragambito Romford" 1.g4 d5 2.Bg2 Bxg4 3.c4 d4 * A00 "Apertura Clemenz (Mead-Basman-de Klerk-Welling)" 1.h3 * A00 "Apertura Kadas (Desprez)" 1.h4 * A01 "Ataque Nimzowitsch-Larsen" 1.b3 * A01 "Ataque Nimzowitsch-Larsen: Variante Polaca" 1.b3 b5 * A01 "Ataque Nimzowitsch-Larsen: Variante Simétrica" 1.b3 b6 * A01 "Ataque Nimzowitsch-Larsen: Variante Holandesa" 1.b3 f5 * A01 "Ataque Nimzowitsch-Larsen: Gambito Ringelbach" 1.b3 f5 2.Bb2 e6 3.e4 * A01 "Ataque Nimzowitsch-Larsen: Variante Inglesa" 1.b3 c5 * A01 "Ataque Nimzowitsch-Larsen: Variante India" 1.b3 Nf6 * A01 "Ataque Nimzowitsch-Larsen: Variante India, 1.b3 Cf6 2.Ab2 g6" 1.b3 Nf6 2.Bb2 g6 * A01 "Ataque Nimzowitsch-Larsen: Variante Spike" 1.b3 Nf6 2.Bb2 g6 3.g4 * A01 "Ataque Nimzowitsch-Larsen: Variante Clásica, 1...d5" 1.b3 d5 * A01 "Ataque Nimzowitsch-Larsen: Variante Clásica, 1...d5 2.Ab2" 1.b3 d5 2.Bb2 * A01 "Ataque Nimzowitsch-Larsen: Variante Clásica, 1.b3 d5 2.Ab2 Ag4" 1.b3 d5 2.Bb2 Bg4 * A01 "Ataque Nimzowitsch-Larsen: Variante Moderna, 1...e5" 1.b3 e5 * A01 "Ataque Nimzowitsch-Larsen: Variante Moderna, 1...e5 2.Ab2" 1.b3 e5 2.Bb2 * A01 "Ataque Nimzowitsch-Larsen: Variante Moderna, 1...e5 2.Ab2 d6" 1.b3 e5 2.Bb2 d6 * A01 "Ataque Nimzowitsch-Larsen: Variante Moderna, 1...e5 2.Ab2 Cc6" 1.b3 e5 2.Bb2 Nc6 * A01 "Ataque Nimzowitsch-Larsen: Variante Moderna, Gambito Paschmann" 1.b3 e5 2.Bb2 Nc6 3.f4 * A01 "Ataque Nimzowitsch-Larsen: Variante Moderna, 1...e5 2.Ab2 Cc6 3.e3" 1.b3 e5 2.Bb2 Nc6 3.e3 * A01 "Ataque Nimzowitsch-Larsen: Variante Moderna, Línea Principal" 1.b3 e5 2.Bb2 Nc6 3.e3 Nf6 4.Bb5 d6 * A01 "Ataque Nimzowitsch-Larsen: Línea por Correspondencia" 1.b3 e5 2.Bb2 Nc6 3.e3 d5 4.Bb5 Bd6 5.f4 f6 * A02 "Apertura Bird" 1.f4 * A02 "Apertura Bird: Gambito Hobbs" 1.f4 g5 * A02 "Apertura Bird: Variante Simétrica" 1.f4 f5 * A02 "Apertura Bird: Gambito Suizo" 1.f4 f5 2.e4 * A02 "Apertura Bird: Gambito Suizo Aceptado" 1.f4 f5 2.e4 fxe4 3.Nc3 Nf6 4.g4 * A02 "Apertura Bird: 1..d6" 1.f4 d6 * A02 "Apertura Bird: 1..g6" 1.f4 g6 * A02 "Apertura Bird: 1.f4 g6 2.Cf3 Ag7 3.e3" 1.f4 g6 2.Nf3 Bg7 3.e3 * A02 "Apertura Bird: 1.f4 g6 2.Cf3 Ag7 3.g3" 1.f4 g6 2.Nf3 Bg7 3.g3 * A02 "Apertura Bird: 1..c5" 1.f4 c5 * A02 "Apertura Bird: 1..c5 2.Cf3 Cc6" 1.f4 c5 2.Nf3 Nc6 * A02 "Apertura Bird: Gambito From" 1.f4 e5 * A02 "Apertura Bird: Gambito From Aceptado" 1.f4 e5 2.fxe5 * A02 "Apertura Bird: Gambito From, Schlecter" 1.f4 e5 2.fxe5 Nc6 * A02 "Apertura Bird: Gambito From, 2...d6" 1.f4 e5 2.fxe5 d6 * A02 "Apertura Bird: Gambito From, 3.exd6" 1.f4 e5 2.fxe5 d6 3.exd6 * A02 "Apertura Bird: Gambito From, Gambito Langheld" 1.f4 e5 2.fxe5 d6 3.exd6 Nf6 * A02 "Apertura Bird: Gambito From, 3...Axd6" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 * A02 "Apertura Bird: Gambito From, Lipke" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 Nh6 5.d4 * A02 "Apertura Bird: Gambito From, Variante Lasker" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 * A02 "Apertura Bird: Gambito From, Lasker, 5.d4" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 5.d4 * A02 "Apertura Bird: Gambito From, Lasker, Línea del Intercambio de Damas" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 5.d4 g4 6.Ne5 Bxe5 7.dxe5 Qxd1+ * A02 "Apertura Bird: Gambito From, Lasker, 5.g3" 1.f4 e5 2.fxe5 d6 3.exd6 Bxd6 4.Nf3 g5 5.g3 * A02 "Apertura Bird: 1..Cf6" 1.f4 Nf6 * A02 "Apertura Bird: 1..Cf6 2.g3" 1.f4 Nf6 2.g3 * A02 "Apertura Bird: 1..Cf6 2.e3" 1.f4 Nf6 2.e3 * A02 "Apertura Bird: 1..Cf6 2.b3" 1.f4 Nf6 2.b3 * A02 "Apertura Bird: 1..Cf6 2.Cf3" 1.f4 Nf6 2.Nf3 * A02 "Apertura Bird: 1..Cf6 2.Cf3 d6" 1.f4 Nf6 2.Nf3 d6 * A02 "Apertura Bird: 1..Cf6 2.Cf3 c5" 1.f4 Nf6 2.Nf3 c5 * A02 "Apertura Bird: 1..Cf6 2.Cf3 g6" 1.f4 Nf6 2.Nf3 g6 * A02 "Apertura Bird: Ataque Batavo Polaco" 1.f4 Nf6 2.Nf3 g6 3.b4 * A02 "Apertura Bird: 1..Cf6 2.Cf3 g6 3.g3" 1.f4 Nf6 2.Nf3 g6 3.g3 * A02 "Apertura Bird: 1..Cf6 2.Cf3 g6 3.g3" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 * A02 "Apertura Bird: Ataque Mortar 1..Cf6 2.Cf3 g6 3.g3 Ag7 4.Ag2" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A02 "Apertura Bird: Ataque Mortar, 4.Ag2 d6" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 d6 * A02 "Apertura Bird: Ataque Mortar, 4.Ag2 O-O" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O * A02 "Apertura Bird: Ataque Mortar, 4.Ag2 O-O 5.O-O" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.O-O * A02 "Apertura Bird: Ataque Mortar, 4.Ag2 O-O 5.O-O c5" 1.f4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.O-O c5 * A03 "Apertura Bird: 1...d5" 1.f4 d5 * A03 "Apertura Bird: Gambito Dudweiler" 1.f4 d5 2.g4 * A03 "Apertura Bird: Gambito Mujannah-Sturm" 1.f4 d5 2.c4 * A03 "Apertura Bird: Gambito Williams" 1.f4 d5 2.e4 * A03 "Apertura Bird: 1.f4 d5 2.b3" 1.f4 d5 2.b3 * A03 "Apertura Bird: 1.f4 d5 2.b3 Cf6" 1.f4 d5 2.b3 Nf6 * A03 "Apertura Bird: 1.f4 d5 2.b3 Cf6 3.Ab2" 1.f4 d5 2.b3 Nf6 3.Bb2 * A03 "Apertura Bird: 1.f4 d5 2.g3" 1.f4 d5 2.g3 * A03 "Apertura Bird: 1.f4 d5 2.g3 Cf6" 1.f4 d5 2.g3 Nf6 * A03 "Apertura Bird: 1.f4 d5 2.g3 Cf6 3.Ag2" 1.f4 d5 2.g3 Nf6 3.Bg2 * A03 "Apertura Bird: Variante Lasker" 1.f4 d5 2.e3 * A03 "Apertura Bird: Variante Lasker" 1.f4 d5 2.e3 Nf6 * A03 "Apertura Bird: 1...d5 2.Cf3" 1.f4 d5 2.Nf3 * A03 "Apertura Bird: 1...d5 2.Cf3 c5" 1.f4 d5 2.Nf3 c5 * A03 "Apertura Bird: Gambito Batavo" 1.f4 d5 2.Nf3 c5 3.e4 * A03 "Apertura Bird: 1...d5 2.Cf3 c5 3.e3" 1.f4 d5 2.Nf3 c5 3.e3 * A03 "Apertura Bird: 1...d5 2.Cf3 g6" 1.f4 d5 2.Nf3 g6 * A03 "Apertura Bird: 1...d5 2.Cf3 g6 3.e3" 1.f4 d5 2.Nf3 g6 3.e3 * A03 "Apertura Bird: 1...d5 2.Cf3 g6 3.g3" 1.f4 d5 2.Nf3 g6 3.g3 * A03 "Apertura Bird: 1...d5 2.Cf3 g6 3.g3 Ag7 4.Ag2" 1.f4 d5 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6" 1.f4 d5 2.Nf3 Nf6 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.b3" 1.f4 d5 2.Nf3 Nf6 3.b3 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3" 1.f4 d5 2.Nf3 Nf6 3.g3 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6 4.Ag2 Ag7" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6 4.Ag2 Ag7 5.d3" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.d3 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6: 5.O-O" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6: 5.O-O O-O" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6: 5.O-O O-O 6.d3" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O 6.d3 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6: 6.d3 c6" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O 6.d3 c6 * A03 "Apertura Bird: 1...d5 2.Cf3 Cf6 3.g3 g6: 6.d3 c5" 1.f4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O 6.d3 c5 * A03 "Apertura Bird: Variante Lasker" 1.f4 d5 2.Nf3 Nf6 3.e3 * A03 "Apertura Bird: Variante Lasker, 3...Ag4" 1.f4 d5 2.Nf3 Nf6 3.e3 Bg4 * A03 "Apertura Bird: Variante Lasker, 3...e6" 1.f4 d5 2.Nf3 Nf6 3.e3 e6 * A03 "Apertura Bird: Variante Lasker, 3...c5" 1.f4 d5 2.Nf3 Nf6 3.e3 c5 * A03 "Apertura Bird: Variante Lasker, 3...c5 4.b3" 1.f4 d5 2.Nf3 Nf6 3.e3 c5 4.b3 * A03 "Apertura Bird: Variante Lasker, 3...g6" 1.f4 d5 2.Nf3 Nf6 3.e3 g6 * A04 "Apertura Reti" 1.Nf3 * A04 "Apertura Reti: Gambito Herrström" 1.Nf3 g5 * A04 "Apertura Reti: 1...b6" 1.Nf3 b6 * A04 "Apertura Reti: 1...b5" 1.Nf3 b5 * A04 "Apertura Reti: 1...Cc6" 1.Nf3 Nc6 * A04 "Apertura Reti: 1...e6" 1.Nf3 e6 * A04 "Apertura Reti: 1...e6 2.g3" 1.Nf3 e6 2.g3 * A04 "Apertura Reti: 1...g6" 1.Nf3 g6 * A04 "Apertura Reti: 1...g6 2.g3" 1.Nf3 g6 2.g3 * A04 "Apertura Reti: 1...g6 2.g3 Ag7" 1.Nf3 g6 2.g3 Bg7 * A04 "Apertura Reti: 1...g6 2.g3 Ag7 3.Ag2" 1.Nf3 g6 2.g3 Bg7 3.Bg2 * A04 "Apertura Reti: 1...f5" 1.Nf3 f5 * A04 "Apertura Reti: 1...f5 2.d3" 1.Nf3 f5 2.d3 * A04 "Apertura Reti: 1...f5 2.d3 Cf6" 1.Nf3 f5 2.d3 Nf6 * A04 "Apertura Reti: Gambito Lisitsin Retardado" 1.Nf3 f5 2.d3 Nf6 3.e4 * A04 "Apertura Reti: 1...f5 2.g3" 1.Nf3 f5 2.g3 * A04 "Apertura Reti: Gambito Lisitsin" 1.Nf3 f5 2.e4 * A04 "Apertura Reti: Gambito Lisitsin: 3.Cg5 Cf6" 1.Nf3 f5 2.e4 fxe4 3.Ng5 Nf6 * A04 "Apertura Reti: Gambito Lisitsin: 3.Cg5 Cf6 4.d3 e5" 1.Nf3 f5 2.e4 fxe4 3.Ng5 Nf6 4.d3 e5 * A04 "Apertura Reti: Gambito Lisitsin: 3.Cg5 Cf6 4.d3 e3" 1.Nf3 f5 2.e4 fxe4 3.Ng5 Nf6 4.d3 e3 * A04 "Apertura Reti: Gambito Lisitsin: 3.Cg5 e5" 1.Nf3 f5 2.e4 fxe4 3.Ng5 e5 * A04 "Apertura Reti: Gambito Lisitsin: 3.Cg5 d5" 1.Nf3 f5 2.e4 fxe4 3.Ng5 d5 * A04 "Apertura Reti: 1...d6" 1.Nf3 d6 * A04 "Apertura Reti: 1...c5" 1.Nf3 c5 * A04 "Apertura Reti: 1...c5, Nimzowitsch-Larsen" 1.Nf3 c5 2.b3 * A04 "Apertura Reti: 1...c5 2.g3" 1.Nf3 c5 2.g3 * A04 "Apertura Reti: 1...c5 2.g3 b6" 1.Nf3 c5 2.g3 b6 * A04 "Apertura Reti: 1...c5 2.g3 b6 3.Ag2 Ab7" 1.Nf3 c5 2.g3 b6 3.Bg2 Bb7 * A04 "Apertura Reti: 1...c5 2.g3 g6" 1.Nf3 c5 2.g3 g6 * A04 "Apertura Reti: 1...c5 2.g3 g6 3.Ag2 Ag7" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 * A04 "Apertura Reti: 1...c5 2.g3 g6 3.Ag2 Ag7 4.O-O Cc6" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 * A04 "Apertura Reti: 1...c5 2.g3 g6 3.Ag2 Ag7 4.O-O Cc6 5.d3" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 * A04 "Apertura Reti: 1...c5 2.g3 g6 3.Ag2 Ag7 4.O-O Cc6 5.d3 Cf6 6.e4" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 Nf6 6.e4 * A04 "Apertura Reti: 1...c5 2.g3 g6 3.Ag2 Ag7 4.O-O Cc6 5.d3 Cf6" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 Nf6 * A04 "Apertura Reti: 1...c5 2.g3 g6 3.Ag2 Ag7 4.O-O Cc6 5.d3 d6 6.e4" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 d6 6.e4 * A04 "Apertura Reti: 1...c5 2.g3 g6 3.Ag2 Ag7 4.O-O Cc6 5.d3 e6 6.e4" 1.Nf3 c5 2.g3 g6 3.Bg2 Bg7 4.O-O Nc6 5.d3 e6 6.e4 * A04 "Apertura Reti: 1...c5 2.g3 Cc6" 1.Nf3 c5 2.g3 Nc6 * A04 "Apertura Reti: 1...c5 2.g3 Cc6 3.Ag2" 1.Nf3 c5 2.g3 Nc6 3.Bg2 * A04 "Apertura Reti: AIR, 3.Ag2 Ag7 4.O-O O-O 5.d3 c5" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O 5.d3 c5 * A05 "Apertura Reti: 1...Cf6" 1.Nf3 Nf6 * A05 "Apertura Reti: 1...Cf6 2.b3" 1.Nf3 Nf6 2.b3 * A05 "Apertura Reti: Locura de Santasiere" 1.Nf3 Nf6 2.b4 * A05 "Apertura Reti: 1...Cf6 2.e3" 1.Nf3 Nf6 2.e3 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3" 1.Nf3 Nf6 2.g3 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3 c5" 1.Nf3 Nf6 2.g3 c5 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3 c5 3.Ag2" 1.Nf3 Nf6 2.g3 c5 3.Bg2 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3 c5 3.Ag2 Cc6" 1.Nf3 Nf6 2.g3 c5 3.Bg2 Nc6 * A05 "Apertura Reti: AIR, Inglesa Simétrica, Sistema de los Tres Caballos" 1.Nf3 Nf6 2.g3 c5 3.Bg2 Nc6 4.c4 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3 b6" 1.Nf3 Nf6 2.g3 b6 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3 b6 3.Ag2" 1.Nf3 Nf6 2.g3 b6 3.Bg2 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3 b6 3.Ag2 Ab7" 1.Nf3 Nf6 2.g3 b6 3.Bg2 Bb7 * A05 "Apertura Reti: AIR, Variante Spassky 1.Cf3 Cf6 2.g3 b5" 1.Nf3 Nf6 2.g3 b5 * A05 "Apertura Reti: AIR, Variante Spassky 1.Cf3 Cf6 2.g3 b5 3.Ag2" 1.Nf3 Nf6 2.g3 b5 3.Bg2 * A05 "Apertura Reti: AIR, 1.Cf3 Cf6 2.g3 g6" 1.Nf3 Nf6 2.g3 g6 * A05 "Apertura Reti: AIR, Reti-Variante Smyslov 3.b4" 1.Nf3 Nf6 2.g3 g6 3.b4 * A05 "Apertura Reti: AIR, Reti-Variante Smyslov 3.b4 Ag7 5.Ab2" 1.Nf3 Nf6 2.g3 g6 3.b4 Bg7 5.Bb2 * A05 "Apertura Reti: AIR, 3.Ag2" 1.Nf3 Nf6 2.g3 g6 3.Bg2 * A05 "Apertura Reti: AIR, 3.Ag2 Ag7" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 * A05 "Apertura Reti: AIR, 3.Ag2 Ag7 4.O-O" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O * A05 "Apertura Reti: AIR, 3.Ag2 Ag7 4.O-O O-O" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O * A05 "Apertura Reti: AIR, 3.Ag2 Ag7 4.O-O O-O 5.d3" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O 5.d3 * A05 "Apertura Reti: AIR, 3.Ag2 Ag7 4.O-O O-O 5.d3 d6" 1.Nf3 Nf6 2.g3 g6 3.Bg2 Bg7 4.O-O O-O 5.d3 d6 * A06 "Apertura Reti: 1...d5" 1.Nf3 d5 * A06 "Apertura Reti: Variante Ampel" 1.Nf3 d5 2.Rg1 * A06 "Apertura Reti: Ataque Indio Antiguo" 1.Nf3 d5 2.d3 * A06 "Apertura Reti: Ataque Indio Antiguo, 1.Cf3 d5 2.d3 Cf6" 1.Nf3 d5 2.d3 Nf6 * A06 "Apertura Reti: 1...d5 2.e3" 1.Nf3 d5 2.e3 * A06 "Apertura Reti: Locura de Santasiere, 1.Cf3 d5 2.b4" 1.Nf3 d5 2.b4 * A06 "Apertura Reti: Locura de Santasiere, 1.Cf3 d5 2.b4 Cf6" 1.Nf3 d5 2.b4 Nf6 * A06 "Apertura Reti: Gambito Tennison (Zukertort-Lemberg)" 1.Nf3 d5 2.e4 * A06 "Apertura Reti: Gambito Tennison (Zukertort-Lemberg) Aceptado" 1.Nf3 d5 2.e4 dxe4 * A06 "Apertura Reti: Nimzowitsch-Larsen" 1.Nf3 d5 2.b3 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...c5" 1.Nf3 d5 2.b3 c5 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...Ag4" 1.Nf3 d5 2.b3 Bg4 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...Ag4 3.Ab2" 1.Nf3 d5 2.b3 Bg4 3.Bb2 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...Ag43.Ab2 Cd7 4.e3" 1.Nf3 d5 2.b3 Bg4 3.Bb2 Nd7 4.e3 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...Cf6" 1.Nf3 d5 2.b3 Nf6 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...Cf6 3.Ab2" 1.Nf3 d5 2.b3 Nf6 3.Bb2 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...Cf6 Cf6 3.Ab2 e6" 1.Nf3 d5 2.b3 Nf6 3.Bb2 e6 * A06 "Apertura Reti: Nimzowitsch-Larsen, 2...Cf6 Cf6 3.Ab2 e6 4.e3" 1.Nf3 d5 2.b3 Nf6 3.Bb2 e6 4.e3 * A07 "Apertura Reti: AIR, 2.g3" 1.Nf3 d5 2.g3 * A07 "Apertura Reti: AIR, 2.g3 Cc6" 1.Nf3 d5 2.g3 Nc6 * A07 "Apertura Reti: AIR, 2.g3 Cc6 3.Ag2 e5" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 * A07 "Apertura Reti: AIR, 2.g3 Cc6 3.Ag2 e5 4.d3 Cf6" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 4.d3 Nf6 * A07 "Apertura Reti: AIR, 2.g3 Cc6 3.Ag2 e5 4.d3 Cf6 5.O-O" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 4.d3 Nf6 5.O-O * A07 "Apertura Reti: AIR, 2.g3 Cc6 3.Ag2 e5 4.d3 Cf6 5.O-O Ae7" 1.Nf3 d5 2.g3 Nc6 3.Bg2 e5 4.d3 Nf6 5.O-O Be7 * A07 "Apertura Reti: AIR, Variante Yugoslava" 1.Nf3 d5 2.g3 c6 * A07 "Apertura Reti: AIR, Variante Yugoslava, 3.Ag2 Ag4" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 * A07 "Apertura Reti: AIR, Variante Yugoslava, 3.Ag2 Ag4 4.O-O" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 4.O-O * A07 "Apertura Reti: AIR, Variante Yugoslava, 3.Ag2 Ag4 4.O-O Cd7" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 4.O-O Nd7 * A07 "Apertura Reti: AIR, Variante Yugoslava, 3.Ag2 Ag4 4.O-O Cd7 5.d3" 1.Nf3 d5 2.g3 c6 3.Bg2 Bg4 4.O-O Nd7 5.d3 * A07 "Apertura Reti: AIR, Variante Yugoslava, 3.Ag2 c6 4.O-O Ag4" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 * A07 "Apertura Reti: AIR, Variante Yugoslava, 3.Ag2 c6 4.O-O Ag4 5.d3" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 * A07 "Apertura Reti: AIR, Variante Yugoslava, Línea Principal" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 * A07 "Apertura Reti: AIR, Variante Yugoslava, Línea Principal, 6.Cbd2" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 6.Nbd2 * A07 "Apertura Reti: AIR, Variante Yugoslava, Línea Principal, 6.Cbd2 e6" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 6.Nbd2 e6 * A07 "Apertura Reti: AIR, Variante Yugoslava, Línea Principal, 6.Cbd2 e5" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bg4 5.d3 Nbd7 6.Nbd2 e5 * A07 "Apertura Reti: AIR, Variante Keres" 1.Nf3 d5 2.g3 Bg4 * A07 "Apertura Reti: AIR, Variante Keres, 3.Ag2 Cd7" 1.Nf3 d5 2.g3 Bg4 3.Bg2 Nd7 * A07 "Apertura Reti: AIR, 1.Cf3 d5 2.g3 Cf6" 1.Nf3 d5 2.g3 Nf6 * A07 "Apertura Reti: AIR, 1.Cf3 d5 2.g3 Cf6 3.Ag2" 1.Nf3 d5 2.g3 Nf6 3.Bg2 * A07 "Apertura Reti: AIR, Variante Neo-Grünfeld" 1.Nf3 d5 2.g3 Nf6 3.Bg2 g6 * A07 "Apertura Reti: AIR, 1.Cf3 d5 2.g3 Cf6 3.Ag2 Af5" 1.Nf3 d5 2.g3 Nf6 3.Bg2 Bf5 * A07 "Apertura Reti: AIR, 1.Cf3 d5 2.g3 Cf6 3.Ag2 e6" 1.Nf3 d5 2.g3 Nf6 3.Bg2 e6 * A07 "Apertura Reti: AIR, 1.Cf3 d5 2.g3 Cf6 3.Ag2 c6" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 * A07 "Apertura Reti: AIR, Variante Petrosian" 1.Nf3 d5 2.g3 Nf6 3.Bg2 c6 4.O-O Bf5 5.d3 e6 6.Nbd2 * A07 "Apertura Reti: AIR, 1.Cf3 d5 2.g3 g6" 1.Nf3 d5 2.g3 g6 * A07 "Apertura Reti: AIR, 1.Cf3 d5 2.g3 g6 3.Ag2" 1.Nf3 d5 2.g3 g6 3.Bg2 * A07 "Apertura Reti: AIR, Pachman System, 3...Ag7 4.O-O e5 5.d3 Ce7" 1.Nf3 d5 2.g3 g6 3.Bg2 Bg7 4.O-O e5 5.d3 Ne7 * A08 "Apertura Reti: AIR, 2...c5" 1.Nf3 d5 2.g3 c5 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2" 1.Nf3 d5 2.g3 c5 3.Bg2 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 g6 4.O-O Ag7" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 g6 4.O-O Ag7 5.d3" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 5.d3 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 g6 4.O-O Ag7 5.d3 Cf6" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 5.d3 Nf6 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 g6 4.O-O Ag7 5.d3 Cf6 6.Cbd2 O-O" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Bg7 5.d3 Nf6 6.Nbd2 O-O * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 g6 4.O-O Cc6 5.d3 Cf6" 1.Nf3 d5 2.g3 c5 3.Bg2 g6 4.O-O Nc6 5.d3 Nf6 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 Cc6" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 Cc6 4.O-O" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 Cf6" 1.Nf3 d5 2.g3 c5 3.Bg2 Nf6 * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 Cf6 4.O-O" 1.Nf3 d5 2.g3 c5 3.Bg2 Nf6 4.O-O * A08 "Apertura Reti: AIR, 2...c5 3.Ag2 Cf6 4.O-O Cc6" 1.Nf3 d5 2.g3 c5 3.Bg2 Nf6 4.O-O Nc6 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Cge7 6.Cbd2 b6 7.e4" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nge7 6.Nbd2 b6 7.e4 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Cf6 6.Cbd2 b6 7.e4" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 b6 7.e4 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Cge7 6.Cbd2 g6 7.e4 Ag7" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nge7 6.Nbd2 g6 7.e4 Bg7 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Cf6 6.Cbd2 g6 7.e4 Ag7" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 g6 7.e4 Bg7 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Cf6 6.Cbd2 Ae7 7.e4" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 Be7 7.e4 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Cf6 6.Cbd2 Ae7 7.e4 O-O 8.Te1" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Nf6 6.Nbd2 Be7 7.e4 O-O 8.Re1 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Ad6 6.Cbd2 Cge7 7.e4" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Bd6 6.Nbd2 Nge7 7.e4 * A08 "Apertura Reti: AIR, Francesa, 3...Cc6 4.O-O e6 5.d3 Ad6 6.Cbd2 Cge7 7.e4 O-O 8.Te1" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.O-O e6 5.d3 Bd6 6.Nbd2 Nge7 7.e4 O-O 8.Re1 * A09 "Apertura Reti: 2.c4" 1.Nf3 d5 2.c4 * A09 "Apertura Reti: Variante de Avance" 1.Nf3 d5 2.c4 d4 * A09 "Apertura Reti: Variante de Avance, Ataque Anglo-Polaco" 1.Nf3 d5 2.c4 d4 3.b4 * A09 "Apertura Reti: Variante de Avance, Ataque Anglo-Polaco, 3...g6" 1.Nf3 d5 2.c4 d4 3.b4 g6 * A09 "Apertura Reti: Variante de Avance, 3.e3" 1.Nf3 d5 2.c4 d4 3.e3 * A09 "Apertura Reti: Variante de Avance, 3.e3 c5" 1.Nf3 d5 2.c4 d4 3.e3 c5 * A09 "Apertura Reti: Variante de Avance, 3.e3 Cc6" 1.Nf3 d5 2.c4 d4 3.e3 Nc6 * A09 "Apertura Reti: Variante de Avance, 3.e3 Cc6 4.exd4 Cxd4" 1.Nf3 d5 2.c4 d4 3.e3 Nc6 4.exd4 Nxd4 * A09 "Apertura Reti: Variante de Avance, 3.g3" 1.Nf3 d5 2.c4 d4 3.g3 * A09 "Apertura Reti: Variante de Avance, 3.g3 Cc6" 1.Nf3 d5 2.c4 d4 3.g3 Nc6 * A09 "Apertura Reti: Variante de Avance, 3.g3 Cc6 4.Ag2 e5" 1.Nf3 d5 2.c4 d4 3.g3 Nc6 4.Bg2 e5 * A09 "Apertura Reti: Variante de Avance, 3.g3 g6" 1.Nf3 d5 2.c4 d4 3.g3 g6 * A09 "Apertura Reti: Variante de Avance, 3.g3 g6 4.Ag2 Ag7" 1.Nf3 d5 2.c4 d4 3.g3 g6 4.Bg2 Bg7 * A09 "Apertura Reti: Variante de Avance, 3.g3 c5" 1.Nf3 d5 2.c4 d4 3.g3 c5 * A09 "Apertura Reti: Variante de Avance, 3.g3 c5 4.Ag2 Cc6" 1.Nf3 d5 2.c4 d4 3.g3 c5 4.Bg2 Nc6 * A09 "Apertura Reti: Variante de Avance, 3.g3 c5 4.Ag2 Cc6 5.d3 e5" 1.Nf3 d5 2.c4 d4 3.g3 c5 4.Bg2 Nc6 5.d3 e5 * A09 "Apertura Reti: Aceptada" 1.Nf3 d5 2.c4 dxc4 * A09 "Apertura Reti: Aceptada, 3.g3" 1.Nf3 d5 2.c4 dxc4 3.g3 * A09 "Apertura Reti: Aceptada, 3.g3 e6" 1.Nf3 d5 2.c4 dxc4 3.g3 e6 * A09 "Apertura Reti: Aceptada, 3.Da4+" 1.Nf3 d5 2.c4 dxc4 3.Qa4+ * A09 "Apertura Reti: Aceptada, 3.Ca3" 1.Nf3 d5 2.c4 dxc4 3.Na3 * A09 "Apertura Reti: Aceptada, 3.Ca3 a6" 1.Nf3 d5 2.c4 dxc4 3.Na3 a6 * A09 "Apertura Reti: Aceptada, 3.Ca3 c5" 1.Nf3 d5 2.c4 dxc4 3.Na3 c5 * A09 "Apertura Reti: Aceptada, 3.e3" 1.Nf3 d5 2.c4 dxc4 3.e3 * A09 "Apertura Reti: Aceptada, Variante Keres" 1.Nf3 d5 2.c4 dxc4 3.e3 Be6 * A09 "Apertura Reti: Aceptada, 3.e3 Cf6" 1.Nf3 d5 2.c4 dxc4 3.e3 Nf6 * A09 "Apertura Reti: Aceptada, 3.e3 Cf6 4.Axc4 e6" 1.Nf3 d5 2.c4 dxc4 3.e3 Nf6 4.Bxc4 e6 * A10 "Inglesa" 1.c4 * A10 "Inglesa: 1...g5" 1.c4 g5 * A10 "Inglesa: 1...g5 2.d4" 1.c4 g5 2.d4 * A10 "Inglesa: Gambito Myers" 1.c4 g5 2.d4 Bg7 * A10 "Inglesa: 1...Cc6" 1.c4 Nc6 * A10 "Inglesa: 1...Cc6 2.Cc3" 1.c4 Nc6 2.Nc3 * A10 "Inglesa: Gambito Jänisch" 1.c4 b5 * A10 "Inglesa: Vector" 1.c4 d5 * A10 "Inglesa: 1...b6" 1.c4 b6 * A10 "Inglesa: 1...b6 2.Cf3" 1.c4 b6 2.Nf3 * A10 "Inglesa: 1...b6 2.Cf3 Ab7" 1.c4 b6 2.Nf3 Bb7 * A10 "Inglesa: 1...b6 2.Cc3" 1.c4 b6 2.Nc3 * A10 "Inglesa: 1...b6 2.Cc3 e6" 1.c4 b6 2.Nc3 e6 * A10 "Inglesa: 1...b6 2.Cc3 e6 3.e4" 1.c4 b6 2.Nc3 e6 3.e4 * A10 "Inglesa: 1...b6 2.Cc3 Ab7" 1.c4 b6 2.Nc3 Bb7 * A10 "Inglesa: 1...b6 2.Cc3 Ab7 3.e4" 1.c4 b6 2.Nc3 Bb7 3.e4 * A10 "Inglesa: 1...b6 2.Cc3 Ab7 3.e4 e6" 1.c4 b6 2.Nc3 Bb7 3.e4 e6 * A10 "Inglesa: 1...d6" 1.c4 d6 * A10 "Inglesa: 1...d6 2.Cc3" 1.c4 d6 2.Nc3 * A10 "Inglesa: 1...d6 2.Cf3" 1.c4 d6 2.Nf3 * A10 "Inglesa: 1...g6" 1.c4 g6 * A10 "Inglesa: 1...g6 2.g3" 1.c4 g6 2.g3 * A10 "Inglesa: 1...g6 2.Cc3" 1.c4 g6 2.Nc3 * A10 "Inglesa: 1...g6 2.Cc3 Ag7" 1.c4 g6 2.Nc3 Bg7 * A10 "Inglesa: 1...g6 2.Cc3 Ag7 3.g3" 1.c4 g6 2.Nc3 Bg7 3.g3 * A10 "Inglesa: 1...g6 2.Cf3" 1.c4 g6 2.Nf3 * A10 "Inglesa: 1...g6 2.Cf3 Ag7" 1.c4 g6 2.Nf3 Bg7 * A10 "Inglesa: 1...g6 2.e4" 1.c4 g6 2.e4 * A10 "Inglesa: Defensa Adorjan" 1.c4 g6 2.e4 e5 * A10 "Inglesa: Anglo-Holandesa" 1.c4 f5 * A10 "Inglesa: Gambito Wade" 1.c4 f5 2.g4 * A10 "Inglesa: Anglo-Holandesa, 2.g3" 1.c4 f5 2.g3 * A10 "Inglesa: Anglo-Holandesa, 2.g3 Cf6" 1.c4 f5 2.g3 Nf6 * A10 "Inglesa: Anglo-Holandesa, 2.g3 Cf6 3.Ag2" 1.c4 f5 2.g3 Nf6 3.Bg2 * A10 "Inglesa: Anglo-Holandesa, 2.Cc3" 1.c4 f5 2.Nc3 * A10 "Inglesa: Anglo-Holandesa, 2.Cc3 Cf6" 1.c4 f5 2.Nc3 Nf6 * A10 "Inglesa: Anglo-Holandesa, 2.Cc3 Cf6 3.g3" 1.c4 f5 2.Nc3 Nf6 3.g3 * A10 "Inglesa: Anglo-Holandesa, 2.Cc3 Cf6 3.g3 g6" 1.c4 f5 2.Nc3 Nf6 3.g3 g6 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3" 1.c4 f5 2.Nf3 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 e6" 1.c4 f5 2.Nf3 e6 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6" 1.c4 f5 2.Nf3 Nf6 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.Cc3" 1.c4 f5 2.Nf3 Nf6 3.Nc3 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3" 1.c4 f5 2.Nf3 Nf6 3.g3 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3 e6" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3 e6 4.Ag2" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3 e6 4.Ag2 c6 5.O-O d5" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 c6 5.O-O d5 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3 e6 4.Ag2 Ae7" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3 e6 4.Ag2 Ae7 5.O-O" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 5.O-O * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3 e6 4.Ag2 Ae7 5.O-O O-O" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 5.O-O O-O * A10 "Inglesa: Anglo-Holandesa, 2.Cf3 Cf6 3.g3 e6 4.Ag2 Ae7 5.O-O O-O 6.Cc3" 1.c4 f5 2.Nf3 Nf6 3.g3 e6 4.Bg2 Be7 5.O-O O-O 6.Nc3 * A11 "Inglesa: Defensa Caro-Kann" 1.c4 c6 * A11 "Inglesa: Defensa Caro-Kann, 2.g3" 1.c4 c6 2.g3 * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6" 1.c4 c6 2.g3 Nf6 * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6 3.Ag2 d5" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6 3.Ag2 d5 4.Cf3" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6 3.Ag2 d5 4.Cf3 Af5" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bf5 * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6 3.Ag2 d5 4.Cf3 Af5 5.O-O" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bf5 5.O-O * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6 3.Ag2 d5 4.Cf3 Af5 5.O-O e6 6.d3" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bf5 5.O-O e6 6.d3 * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6 3.Ag2 d5 4.Cf3 Ag4" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bg4 * A11 "Inglesa: Defensa Caro-Kann, 2.g3 Cf6 3.Ag2 d5 4.Cf3 Ag4 5.O-O" 1.c4 c6 2.g3 Nf6 3.Bg2 d5 4.Nf3 Bg4 5.O-O * A11 "Inglesa: Defensa Caro-Kann, 2.Cc3" 1.c4 c6 2.Nc3 * A11 "Inglesa: Defensa Caro-Kann, 2.Cc3 d5" 1.c4 c6 2.Nc3 d5 * A11 "Inglesa: Defensa Caro-Kann, 2.Cf3" 1.c4 c6 2.Nf3 * A11 "Inglesa: Defensa Caro-Kann, 2.Cf3 Cf6" 1.c4 c6 2.Nf3 Nf6 * A11 "Inglesa: Defensa Caro-Kann, 2.Cf3 d5" 1.c4 c6 2.Nf3 d5 * A11 "Inglesa: Defensa Caro-Kann, 3.g3" 1.c4 c6 2.Nf3 d5 3.g3 * A11 "Inglesa: Defensa Caro-Kann, 3.g3 Ag4" 1.c4 c6 2.Nf3 d5 3.g3 Bg4 * A11 "Inglesa: Defensa Caro-Kann, 3.g3 Ag4 4.Ag2" 1.c4 c6 2.Nf3 d5 3.g3 Bg4 4.Bg2 * A11 "Inglesa: Defensa Caro-Kann, 3.e3" 1.c4 c6 2.Nf3 d5 3.e3 * A11 "Inglesa: Defensa Caro-Kann, 3.e3 Cf6" 1.c4 c6 2.Nf3 d5 3.e3 Nf6 * A11 "Inglesa: Defensa Caro-Kann, 3.e3 Cf6 4.Cc3" 1.c4 c6 2.Nf3 d5 3.e3 Nf6 4.Nc3 * A12 "Inglesa: Defensa Caro-Kann, 3.b3" 1.c4 c6 2.Nf3 d5 3.b3 * A12 "Inglesa: Defensa Torre, 3.b3 Cf6 4.g3 Ag4" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 * A12 "Inglesa: Defensa Torre, 3.b3 Cf6 4.g3 Ag4 5.Ag2" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 5.Bg2 * A12 "Inglesa: Defensa Torre, 3.b3 Cf6 4.g3 Ag4 5.Ag2 e6" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 5.Bg2 e6 * A12 "Inglesa: Defensa Torre, 3.b3 Cf6 4.g3 Ag4 5.Ag2 e6 6.Ab2" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bg4 5.Bg2 e6 6.Bb2 * A12 "Inglesa: Defensa de Londres, 4...Af5" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 * A12 "Inglesa: Defensa de Londres, 4...Af5 5.Ag2" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 5.Bg2 * A12 "Inglesa: Defensa de Londres, 4...Af5 5.Ag2 e6" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 5.Bg2 e6 * A12 "Inglesa: Defensa de Londres, 4...Af5 5.Ag2 e6 6.Ab2" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.g3 Bf5 5.Bg2 e6 6.Bb2 * A12 "Inglesa: Defensa Caro-Kann, 3.b3 Cf6 4.Ab2" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 * A12 "Inglesa: Variante Bled, 4...g6" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 g6 * A12 "Inglesa: Variante Bled, 4...g6 5.e3 Ag7" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 g6 5.e3 Bg7 * A12 "Inglesa: Defensa de New York-Londres" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 Bf5 * A12 "Inglesa: Variante Capablanca" 1.c4 c6 2.Nf3 d5 3.b3 Nf6 4.Bb2 Bg4 * A12 "Inglesa: Variante Bogoljubow" 1.c4 c6 2.Nf3 d5 3.b3 Bg4 * A13 "Inglesa: 1...e6" 1.c4 e6 * A13 "Inglesa: 1...e6 2.g3" 1.c4 e6 2.g3 * A13 "Inglesa: 1...e6 2.g3 d5" 1.c4 e6 2.g3 d5 * A13 "Inglesa: 1...e6 2.g3 d5" 1.c4 e6 2.g3 d5 3.Bg2 * A13 "Inglesa: 1...e6 2.Cc3" 1.c4 e6 2.Nc3 * A13 "Inglesa: 1...e6 2.Cc3 Ab4" 1.c4 e6 2.Nc3 Bb4 * A13 "Inglesa: 1...e6 2.Cc3 d5" 1.c4 e6 2.Nc3 d5 * A13 "Inglesa: 1...e6 2.Cf3" 1.c4 e6 2.Nf3 * A13 "Inglesa: 1...e6 2.Cf3 Cf6" 1.c4 e6 2.Nf3 Nf6 * A13 "Inglesa: 1...e6 2.Cf3 Cf6 3.g3" 1.c4 e6 2.Nf3 Nf6 3.g3 * A13 "Inglesa: Gambito Romanishin" 1.c4 e6 2.Nf3 Nf6 3.g3 a6 4.Bg2 b5 * A13 "Inglesa: 1...e6 2.Cf3 d5" 1.c4 e6 2.Nf3 d5 * A13 "Inglesa: Variante Agincourt, 3.b3" 1.c4 e6 2.Nf3 d5 3.b3 * A13 "Inglesa: Sistema Wimpey, 3.b3 Cf6 4.Ab2 c5 5.e3" 1.c4 e6 2.Nf3 d5 3.b3 Nf6 4.Bb2 c5 5.e3 * A13 "Inglesa: Sistema Wimpey, 3.b3 Cf6 4.Ab2 c5 5.e3 Cc6" 1.c4 e6 2.Nf3 d5 3.b3 Nf6 4.Bb2 c5 5.e3 Nc6 * A13 "Inglesa: Variante Agincourt, 3.g3" 1.c4 e6 2.Nf3 d5 3.g3 * A13 "Inglesa: Defensa Kurajica" 1.c4 e6 2.Nf3 d5 3.g3 c6 * A13 "Inglesa: Defensa Kurajica, 4.Dc2" 1.c4 e6 2.Nf3 d5 3.g3 c6 4.Qc2 * A13 "Inglesa: Neo-Catalana" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 * A13 "Inglesa: Neo-Catalana, 4.Ag2" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 * A13 "Inglesa: Neo-Catalana, 4...c6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c6 * A13 "Inglesa: Neo-Catalana, 4...c6 5.b3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c6 5.b3 * A13 "Inglesa: Neo-Catalana, 4...c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c5 * A13 "Inglesa: Neo-Catalana, 4...c5 5.O-O" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 c5 5.O-O * A13 "Inglesa: Neo-Catalan Aceptada" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 * A13 "Inglesa: Neo-Catalan Aceptada, 5.Da4+" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ * A13 "Inglesa: Neo-Catalan Aceptada, 5.Da4+ Cbd7" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 * A13 "Inglesa: Neo-Catalan Aceptada, 5.Da4+ Cbd7 6.O-O" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.O-O * A13 "Inglesa: Neo-Catalan Aceptada, 5.Da4+ Cbd7 6.Dxc4" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 * A13 "Inglesa: Neo-Catalan Aceptada, 5.Da4+ Cbd7 6.Dxc4 a6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 * A13 "Inglesa: Neo-Catalan Aceptada, 5.Da4+ Cbd7 6.Dxc4 c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 * A14 "Inglesa: Neo-Catalana Rehusada" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 * A14 "Inglesa: Neo-Catalana Rehusada" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O * A14 "Inglesa: Neo-Catalana Rehusada, 5...c6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O c6 * A14 "Inglesa: Neo-Catalana Rehusada, 5...c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O c5 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3 b6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 b6 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3 b6 7.Ab2 Ab7" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 b6 7.Bb2 Bb7 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3 b6 7.Ab2 Ab7 8.e3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 b6 7.Bb2 Bb7 8.e3 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3 c5" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3 c5 7.Ab2" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 7.Bb2 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3 c5 7.Ab2 Cc6" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 7.Bb2 Nc6 * A14 "Inglesa: Neo-Catalana Rehusada, 5...O-O 6.b3 c5 7.Ab2 Cc6 8.e3" 1.c4 e6 2.Nf3 d5 3.g3 Nf6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 7.Bb2 Nc6 8.e3 * A15 "Inglesa: Anglo-India" 1.c4 Nf6 * A15 "Inglesa: Anglo-India, Polaca" 1.c4 Nf6 2.b4 * A15 "Inglesa: Anglo-India, 2.g3" 1.c4 Nf6 2.g3 * A15 "Inglesa: Anglo-India, 2.g3 e6" 1.c4 Nf6 2.g3 e6 * A15 "Inglesa: Anglo-India, 2.g3 e6 3.Ag2" 1.c4 Nf6 2.g3 e6 3.Bg2 * A15 "Inglesa: Anglo-India, 2.g3 g6" 1.c4 Nf6 2.g3 g6 * A15 "Inglesa: Anglo-India, 2.g3 g6 3.Ag2 Ag7" 1.c4 Nf6 2.g3 g6 3.Bg2 Bg7 * A15 "Inglesa: Anglo-India, 2.Cf3" 1.c4 Nf6 2.Nf3 * A15 "Inglesa: Anglo-India, 2.Cf3 g6" 1.c4 Nf6 2.Nf3 g6 * A15 "Inglesa: Anglo-India, 2.Cf3 g6 3.g3 Ag7 4.Ag2" 1.c4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A15 "Inglesa: Anglo-India, 2.Cf3 g6 3.g3 Ag7 4.Ag2 O-O" 1.c4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O * A16 "Inglesa: Anglo-India, 2.Cc3" 1.c4 Nf6 2.Nc3 * A16 "Inglesa: Anglo-India, 2.Cc3 Cc6" 1.c4 Nf6 2.Nc3 Nc6 * A16 "Inglesa: Anglo-India, 2.Cc3 c6" 1.c4 Nf6 2.Nc3 c6 * A16 "Inglesa: Anglo-India, 2.Cc3 c6 3.e4" 1.c4 Nf6 2.Nc3 c6 3.e4 * A16 "Inglesa: Anglo-India, 2.Cc3 c6 3.e4 d5" 1.c4 Nf6 2.Nc3 c6 3.e4 d5 * A16 "Inglesa: Anglo-India, 2.Cc3 d6" 1.c4 Nf6 2.Nc3 d6 * A16 "Inglesa: Anglo-India, 2.Cc3 g6" 1.c4 Nf6 2.Nc3 g6 * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.e4" 1.c4 Nf6 2.Nc3 g6 3.e4 * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.g3" 1.c4 Nf6 2.Nc3 g6 3.g3 * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.g3 Ag7" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.g3 Ag7 4.Ag2" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.g3 Ag7 4.Ag2 O-O" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.g3 Ag7 4.Ag2 O-O 5.e4" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O 5.e4 * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.g3 Ag7 4.Ag2 O-O 5.Cf3" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O 5.Nf3 * A16 "Inglesa: Anglo-India, 2.Cc3 g6 3.g3 Ag7 4.Ag2 O-O 5.Cf3 d6 6.O-O" 1.c4 Nf6 2.Nc3 g6 3.g3 Bg7 4.Bg2 O-O 5.Nf3 d6 6.O-O * A16 "Inglesa: Anglo-Grünfeld" 1.c4 Nf6 2.Nc3 d5 * A16 "Inglesa: Anglo-Grünfeld, 3.Cf3" 1.c4 Nf6 2.Nc3 d5 3.Nf3 * A16 "Inglesa: Anglo-Grünfeld, 3.Cf3 g6" 1.c4 Nf6 2.Nc3 d5 3.Nf3 g6 * A16 "Inglesa: Anglo-Grünfeld, 3.Cf3 g6 4.Da4+" 1.c4 Nf6 2.Nc3 d5 3.Nf3 g6 4.Qa4+ * A16 "Inglesa: Anglo-Grünfeld, 3.Cf3 g6 4.g3" 1.c4 Nf6 2.Nc3 d5 3.Nf3 g6 4.g3 * A16 "Inglesa: Anglo-Grünfeld, 3.cxd5" 1.c4 Nf6 2.Nc3 d5 3.cxd5 * A16 "Inglesa: Anglo-Grünfeld, Variante Smyslov" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 * A16 "Inglesa: Anglo-Grünfeld, Variante Smyslov, 6.bxc3" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 6.bxc3 * A16 "Inglesa: Anglo-Grünfeld, Variante Smyslov, 6.bxc3 Ag7" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 6.bxc3 Bg7 * A16 "Inglesa: Anglo-Grünfeld, Smyslov, 7.Tb1" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nxc3 6.bxc3 Bg7 7.Rb1 * A16 "Inglesa: Anglo-Grünfeld, Variante Checa" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.g3 g6 5.Bg2 Nb6 * A16 "Inglesa: Anglo-Grünfeld, 4.Cf3" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 * A16 "Inglesa: Anglo-Grünfeld, 4.Cf3 g6" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 * A16 "Inglesa: Anglo-Grünfeld, 4.Cf3 g6 5.g3" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.g3 * A16 "Inglesa: Anglo-Grünfeld, 4.Cf3 g6 5.g3 Ag7" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.g3 Bg7 * A16 "Inglesa: Anglo-Grünfeld, Variante Korchnoi" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.g3 Bg7 6.Bg2 e5 * A16 "Inglesa: Anglo-Grünfeld, Variante Andersson-Böök" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.e4 * A16 "Inglesa: Anglo-Grünfeld, Andersson-Böök, Intercambio de Damas" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.e4 Nxc3 6.dxc3 Qxd1+ 7.Kxd1 * A16 "Inglesa: Anglo-Grünfeld, 4.Cf3 g6 5.Da4+" 1.c4 Nf6 2.Nc3 d5 3.cxd5 Nxd5 4.Nf3 g6 5.Qa4+ * A17 "Inglesa: Anglo-India, 2.Cc3 e6" 1.c4 Nf6 2.Nc3 e6 * A17 "Inglesa: Anglo-India, 2.Cc3 e6 3.g3" 1.c4 Nf6 2.Nc3 e6 3.g3 * A17 "Inglesa: Anglo-India, 2.Cc3 e6 3.Cf3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 * A17 "Inglesa: Anglo-India, 2.Cc3 e6 3.Cf3 d5" 1.c4 Nf6 2.Nc3 e6 3.Nf3 d5 * A17 "Inglesa: Anglo-India de Dama" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 * A17 "Inglesa: Anglo-India de Dama, 4.e4" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.e4 * A17 "Inglesa: Anglo-India de Dama, Romanishin" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.e4 Bb7 5.Bd3 * A17 "Inglesa: Anglo-India de Dama, 4.g3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 * A17 "Inglesa: Anglo-India de Dama, 4.g3 Ab7 5.Ag2" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 * A17 "Inglesa: Anglo-India de Dama, 4.g3 Ab7 5.Ag2 Ae7 6.O-O O-O" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O * A17 "Inglesa: Anglo-India de Dama, 4.g3 Ab7 5.Ag2 Ae7 6.O-O O-O 7.Te1" 1.c4 Nf6 2.Nc3 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Re1 * A17 "Inglesa: Nimzo-Inglesa" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 * A17 "Inglesa: Nimzo-Inglesa, 4.g3" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 4.g3 * A17 "Inglesa: Nimzo-Inglesa, 4.Dc2" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 4.Qc2 * A17 "Inglesa: Nimzo-Inglesa, 4.Dc2 O-O" 1.c4 Nf6 2.Nc3 e6 3.Nf3 Bb4 4.Qc2 O-O * A18 "Inglesa: Mikenas" 1.c4 Nf6 2.Nc3 e6 3.e4 * A18 "Inglesa: Mikenas, Defensa Kevitz" 1.c4 Nf6 2.Nc3 e6 3.e4 Nc6 * A18 "Inglesa: Mikenas, 3...d6" 1.c4 Nf6 2.Nc3 e6 3.e4 d6 * A18 "Inglesa: Mikenas, 3...d6 4.d4 Ae7" 1.c4 Nf6 2.Nc3 e6 3.e4 d6 4.d4 Be7 * A18 "Inglesa: Mikenas, Variante Francesa" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 * A18 "Inglesa: Mikenas, Francesa, 4.cxd5" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.cxd5 * A18 "Inglesa: Mikenas, Variante Flohr" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 * A18 "Inglesa: Mikenas, Flohr, 4...Ce4" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 Ne4 * A18 "Inglesa: Mikenas, Flohr, 4...d4" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 * A18 "Inglesa: Mikenas, Flohr, 7.Cf3" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.Nf3 * A18 "Inglesa: Mikenas, Flohr, 7.d4" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.d4 * A18 "Inglesa: Mikenas, Flohr, 7.d4 c5" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.d4 c5 * A18 "Inglesa: Mikenas, Flohr, 7.d4 e5" 1.c4 Nf6 2.Nc3 e6 3.e4 d5 4.e5 d4 5.exf6 dxc3 6.bxc3 Qxf6 7.d4 e5 * A19 "Inglesa: Mikenas, Variante Siciliana" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 * A19 "Inglesa: Mikenas, Siciliana, 4.e5" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 * A19 "Inglesa: Mikenas, Siciliana, 4.e5 Cg8" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 * A19 "Inglesa: Mikenas, Gambito Nei" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.d4 * A19 "Inglesa: Mikenas, 5.Cf3" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 * A19 "Inglesa: Mikenas, 5.Cf3 Cc6" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 Nc6 * A19 "Inglesa: Mikenas, 5.Cf3 Cc6 6.d4" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 Nc6 6.d4 * A19 "Inglesa: Mikenas, 6.d4 cxd4 7.Cxd4 Cxe5" 1.c4 Nf6 2.Nc3 e6 3.e4 c5 4.e5 Ng8 5.Nf3 Nc6 6.d4 cxd4 7.Nxd4 Nxe5 * A20 "Inglesa: DIR, 1...e5" 1.c4 e5 * A20 "Inglesa: DIR, 2.d3" 1.c4 e5 2.d3 * A20 "Inglesa: DIR, 2.e3" 1.c4 e5 2.e3 * A20 "Inglesa: DIR, 2.g3" 1.c4 e5 2.g3 * A20 "Inglesa: DIR, 2.g3 f5" 1.c4 e5 2.g3 f5 * A20 "Inglesa: DIR, 2.g3 g6" 1.c4 e5 2.g3 g6 * A20 "Inglesa: DIR, 2.g3 g6 3.Ag2" 1.c4 e5 2.g3 g6 3.Bg2 * A20 "Inglesa: DIR, 2.g3 g6 3.Ag2 Ag7" 1.c4 e5 2.g3 g6 3.Bg2 Bg7 * A20 "Inglesa: DIR, 2.g3 c6" 1.c4 e5 2.g3 c6 * A20 "Inglesa: DIR, 2.g3 c6 3.d4" 1.c4 e5 2.g3 c6 3.d4 * A20 "Inglesa: DIR, 2.g3 d6" 1.c4 e5 2.g3 d6 * A20 "Inglesa: DIR, 2.g3 d6 3.Ag2" 1.c4 e5 2.g3 d6 3.Bg2 * A20 "Inglesa: DIR, 2.g3 Cc6" 1.c4 e5 2.g3 Nc6 * A20 "Inglesa: DIR, 2.g3 Cc6 3.Ag2" 1.c4 e5 2.g3 Nc6 3.Bg2 * A20 "Inglesa: DIR, 2.g3 Cf6" 1.c4 e5 2.g3 Nf6 * A20 "Inglesa: DIR, 2.g3 Cf6 3.Ag2" 1.c4 e5 2.g3 Nf6 3.Bg2 * A20 "Inglesa: DIR, 2.g3 Cf6 3.Ag2 Ac5" 1.c4 e5 2.g3 Nf6 3.Bg2 Bc5 * A20 "Inglesa: DIR, 2.g3 Cf6 3.Ag2 Cc6" 1.c4 e5 2.g3 Nf6 3.Bg2 Nc6 * A20 "Inglesa: DIR, 2.g3 Cf6 3.Ag2 c6" 1.c4 e5 2.g3 Nf6 3.Bg2 c6 * A20 "Inglesa: DIR, 2.g3 Cf6 3.Ag2 d5" 1.c4 e5 2.g3 Nf6 3.Bg2 d5 * A20 "Inglesa: DIR, Nimzowitsch" 1.c4 e5 2.Nf3 * A20 "Inglesa: DIR, Nimzowitsch, 2...Cc6" 1.c4 e5 2.Nf3 Nc6 * A20 "Inglesa: DIR, Nimzowitsch, Variante Flohr" 1.c4 e5 2.Nf3 e4 * A21 "Inglesa: DIR, 2.Cc3" 1.c4 e5 2.Nc3 * A21 "Inglesa: DIR, 2.Cc3 f5" 1.c4 e5 2.Nc3 f5 * A21 "Inglesa: DIR, 2.Cc3 f5 3.g3 Cf6" 1.c4 e5 2.Nc3 f5 3.g3 Nf6 * A21 "Inglesa: DIR, 2.Cc3 f5 3.g3 Cf6 4.Ag2" 1.c4 e5 2.Nc3 f5 3.g3 Nf6 4.Bg2 * A21 "Inglesa: DIR, 2.Cc3 g6" 1.c4 e5 2.Nc3 g6 * A21 "Inglesa: DIR, 2.Cc3 g6 3.g3 Ag7 4.Ag2" 1.c4 e5 2.Nc3 g6 3.g3 Bg7 4.Bg2 * A21 "Inglesa: DIR, 2.Cc3 d6" 1.c4 e5 2.Nc3 d6 * A21 "Inglesa: DIR, Variante Keres" 1.c4 e5 2.Nc3 d6 3.g3 c6 * A21 "Inglesa: DIR, Variante Keres, 4.Ag2" 1.c4 e5 2.Nc3 d6 3.g3 c6 4.Bg2 * A21 "Inglesa: DIR, 2.Cc3 d6 3.d4" 1.c4 e5 2.Nc3 d6 3.d4 * A21 "Inglesa: DIR, 2.Cc3 d6 3.g3" 1.c4 e5 2.Nc3 d6 3.g3 * A21 "Inglesa: DIR, 2.Cc3 d6 3.Cf3" 1.c4 e5 2.Nc3 d6 3.Nf3 * A21 "Inglesa: DIR, 2.Cc3 d6 3.Cf3 g6" 1.c4 e5 2.Nc3 d6 3.Nf3 g6 * A21 "Inglesa: Variante Lukin" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 * A21 "Inglesa: Lukin, 4.d4 e4" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 * A21 "Inglesa: Lukin, 5.Cd2" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Nd2 * A21 "Inglesa: Lukin, 5.Cd2 Cf6 6.e3" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Nd2 Nf6 6.e3 * A21 "Inglesa: Lukin, 5.Cg5" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 * A21 "Inglesa: Lukin, 5.Cg5 Cf6" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 Nf6 * A21 "Inglesa: Lukin, 5.Cg5 Ae7" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 Be7 * A21 "Inglesa: Lukin, 5.Cg5 c6" 1.c4 e5 2.Nc3 d6 3.Nf3 f5 4.d4 e4 5.Ng5 c6 * A21 "Inglesa: Defensa Smyslov" 1.c4 e5 2.Nc3 d6 3.Nf3 Bg4 * A21 "Inglesa: Contrataque Kramnik-Shirov" 1.c4 e5 2.Nc3 Bb4 * A21 "Inglesa: Kramnik-Shirov, 3.g3" 1.c4 e5 2.Nc3 Bb4 3.g3 * A21 "Inglesa: Kramnik-Shirov, 3.g3 Axc3" 1.c4 e5 2.Nc3 Bb4 3.g3 Bxc3 * A21 "Inglesa: Kramnik-Shirov, 3.g3 Axc3 4.bxc3" 1.c4 e5 2.Nc3 Bb4 3.g3 Bxc3 4.bxc3 * A21 "Inglesa: Kramnik-Shirov, 3.Cd5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 * A21 "Inglesa: Kramnik-Shirov, 3.Cd5 a5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 a5 * A21 "Inglesa: Kramnik-Shirov, 3.Cd5 Aa5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Ba5 * A21 "Inglesa: Kramnik-Shirov, 3.Cd5 Ac5" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Bc5 * A21 "Inglesa: Kramnik-Shirov, 3.Cd5 Ae7" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Be7 * A21 "Inglesa: Kramnik-Shirov, 3.Cd5 Ae7 4.d4" 1.c4 e5 2.Nc3 Bb4 3.Nd5 Be7 4.d4 * A22 "Inglesa: Rey, 2.Cc3 Cf6" 1.c4 e5 2.Nc3 Nf6 * A22 "Inglesa: Anglo-India, 2.Cc3 c6 3.e4 e5" 1.c4 Nf6 2.Nc3 c6 3.e4 e5 * A22 "Inglesa: Rey, 2.Cc3 Cf6 3.e4" 1.c4 e5 2.Nc3 Nf6 3.e4 * A22 "Inglesa: Rey, 2.Cc3 Cf6 3.e3" 1.c4 e5 2.Nc3 Nf6 3.e3 * A22 "Inglesa: Rey, 2.Cc3 Cf6 3.e3 Ab4" 1.c4 e5 2.Nc3 Nf6 3.e3 Bb4 * A22 "Inglesa: Rey, 2.Cc3 Cf6 3.Cf3" 1.c4 e5 2.Nc3 Nf6 3.Nf3 * A22 "Inglesa: Rey, 2.Cc3 Cf6 3.Cf3 d6" 1.c4 e5 2.Nc3 Nf6 3.Nf3 d6 * A22 "Inglesa: Rey, 2.Cc3 Cf6 3.Cf3 e4" 1.c4 e5 2.Nc3 Nf6 3.Nf3 e4 * A22 "Inglesa: Gambito Bellon" 1.c4 e5 2.Nc3 Nf6 3.Nf3 e4 4.Ng5 b5 * A22 "Inglesa: Sistema de Bremen" 1.c4 e5 2.Nc3 Nf6 3.g3 * A22 "Inglesa: Bremen, 3...Ac5" 1.c4 e5 2.Nc3 Nf6 3.g3 Bc5 * A22 "Inglesa: Bremen, Dragón Invertido" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 * A22 "Inglesa: Bremen, Dragón Invertido, 4.cxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 * A22 "Inglesa: Bremen, Dragón Invertido, 4.cxd5 Cxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 * A22 "Inglesa: Bremen, Dragón Invertido, 4.cxd5 Cxd5 5.Ag2" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 * A22 "Inglesa: Bremen, Dragón Invertido, 4.cxd5 Cxd5 5.Ag2 Cb6" 1.c4 e5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 Nb6 * A22 "Inglesa: Bremen, Sistema Smyslov" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 * A22 "Inglesa: Bremen, Smyslov, 4.Ag2" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 * A22 "Inglesa: Bremen, Smyslov, 4.Ag2 Axc3" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 Bxc3 * A22 "Inglesa: Bremen, Smyslov, 4.Ag2 O-O" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 O-O * A22 "Inglesa: Bremen, Smyslov, 4.Ag2 O-O 5.e4" 1.c4 e5 2.Nc3 Nf6 3.g3 Bb4 4.Bg2 O-O 5.e4 * A23 "Inglesa: Bremen, Sistema Keres" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 * A23 "Inglesa: Bremen, Keres, 4.Cf3" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 * A23 "Inglesa: Bremen, Keres, 4.Cf3 d6" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 d6 * A23 "Inglesa: Bremen, Keres, 4.Cf3 d6" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 d6 5.Bg2 * A23 "Inglesa: Bremen, Keres, 4.Cf3 e4" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Nf3 e4 * A23 "Inglesa: Bremen, Keres, 4.Ag2" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 * A23 "Inglesa: Bremen, Keres, 4.Ag2 d5" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 d5 * A23 "Inglesa: Bremen, Keres, 4.Ag2 d5 5.cxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 d5 5.cxd5 * A23 "Inglesa: Bremen, Keres, 4.Ag2 d5 5.cxd5 cxd5" 1.c4 e5 2.Nc3 Nf6 3.g3 c6 4.Bg2 d5 5.cxd5 cxd5 * A24 "Inglesa: Bremen, 3...g6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 * A24 "Inglesa: Bremen, 3...g6 4.Ag2" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.d3" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.d3 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.e3" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e3 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.e3 d6 6.Cge2 O-O" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 O-O * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.e4" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.e4 d6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.e4 d6 6.Cf3" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nf3 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.e4 d6 6.Cge2 O-O" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 O-O * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.e4 d6 6.Cge2 O-O 7.d3" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 O-O 7.d3 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.Cf3" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.Cf3 d6 6.O-O O-O" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.O-O O-O * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.Cf3 d6 6.d3 O-O 7.O-O" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.d3 O-O 7.O-O * A24 "Inglesa: Bremen, 3...g6 4.Ag2 Ag7 5.Cf3 d6 6.d3 O-O 7.O-O c6" 1.c4 e5 2.Nc3 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.d3 O-O 7.O-O c6 * A25 "Inglesa: Cerrada" 1.c4 e5 2.Nc3 Nc6 * A25 "Inglesa: Cerrada, 3.e3" 1.c4 e5 2.Nc3 Nc6 3.e3 * A25 "Inglesa: Cerrada, 3.e3 Cf6" 1.c4 e5 2.Nc3 Nc6 3.e3 Nf6 * A25 "Inglesa: Cerrada, 3.g3" 1.c4 e5 2.Nc3 Nc6 3.g3 * A25 "Inglesa: Cerrada, 3.g3 f5" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 * A25 "Inglesa: Cerrada, 3.g3 f5 4.Ag2" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 * A25 "Inglesa: Cerrada, 3.g3 f5 4.Ag2 Cf6" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 Nf6 * A25 "Inglesa: Cerrada, 3.g3 f5 4.Ag2 Cf6 5.e3 g6" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 Nf6 5.e3 g6 * A25 "Inglesa: Cerrada, 3.g3 f5 4.Ag2 Cf6 5.d3" 1.c4 e5 2.Nc3 Nc6 3.g3 f5 4.Bg2 Nf6 5.d3 * A25 "Inglesa: Cerrada, 3.g3 Cf6" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 * A25 "Inglesa: Cerrada, 3.g3 Cf6 4.Ag2" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 * A25 "Inglesa: Cerrada, 3.g3 Cf6 4.Ag2 Ac5" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bc5 * A25 "Inglesa: Cerrada, 3.g3 Cf6 4.Ag2 Ac5 5.e3" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bc5 5.e3 * A25 "Inglesa: Cerrada, 3.g3 Cf6 4.Ag2 Ab4" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bb4 * A25 "Inglesa: Cerrada, 3.g3 Cf6 4.Ag2 Ab4 5.Cd5" 1.c4 e5 2.Nc3 Nc6 3.g3 Nf6 4.Bg2 Bb4 5.Nd5 * A25 "Inglesa: Cerrada, 3.g3 d6 4.Ag2" 1.c4 e5 2.Nc3 Nc6 3.g3 d6 4.Bg2 * A25 "Inglesa: Cerrada, Defensa Tröger" 1.c4 e5 2.Nc3 Nc6 3.g3 d6 4.Bg2 Be6 * A25 "Inglesa: Cerrada, Defensa Tröger, 5.d3" 1.c4 e5 2.Nc3 Nc6 3.g3 d6 4.Bg2 Be6 5.d3 * A25 "Inglesa: Cerrada, 3.g3 g6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 * A25 "Inglesa: Cerrada, 3.g3 g6 4.Ag2" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 * A25 "Inglesa: Cerrada, 3.g3 g6 4.Ag2 Ag7" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 * A25 "Inglesa: Cerrada, 3.g6 g6 4.Ag2 Ag7 5.e3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 * A25 "Inglesa: Cerrada, Variante Taimanov" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 Nh6 * A25 "Inglesa: Cerrada, Variante Hort" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 Be6 * A25 "Inglesa: Cerrada, Variante Hort, 7.d3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 d6 6.Nge2 Be6 7.d3 * A25 "Inglesa: Cerrada, 5.Tb1" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Rb1 * A25 "Inglesa: Cerrada, 5.Tb1, Variante Taimanov" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Rb1 Nh6 * A25 "Inglesa: Cerrada, 5.Tb1 a5" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Rb1 a5 * A25 "Inglesa: Cerrada, 5.e4" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 * A25 "Inglesa: Cerrada, 5.d3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 * A25 "Inglesa: Cerrada, 5.d3 Cge7" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 Nge7 * A26 "Inglesa: Cerrada, 5.d3 d6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 * A26 "Inglesa: Cerrada, 5.d3 d6 6.e3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e3 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Tb1" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Rb1 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Tb1 f5" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Rb1 f5 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Tb1 a5" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Rb1 a5 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3 Cf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3 Cf6 7.O-O" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3 Cf6 7.O-O O-O" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3 Cf6 7.O-O O-O 8.Tb1" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3 Cf6 7.O-O O-O 8.Tb1 a5" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3 Cf6 7.O-O O-O 8.Tb1 a5 9.a3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 9.a3 * A26 "Inglesa: Cerrada, 5.d3 d6 6.Cf3 Cf6 7.O-O O-O 8.Tb1 a5 9.a3 h6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nf3 Nf6 7.O-O O-O 8.Rb1 a5 9.a3 h6 * A26 "Inglesa: Sistema Botvinnik" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 * A26 "Inglesa: Sistema Botvinnik, 6...Cf6" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 * A26 "Inglesa: Sistema Botvinnik, 6...Cf6 7.Cf3" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nf3 * A26 "Inglesa: Sistema Botvinnik, 6...Cf6 7.Cf3 O-O 8.O-O" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nf3 O-O 8.O-O * A26 "Inglesa: Sistema Botvinnik, 6...Cf6 7.Cge2" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nge2 * A26 "Inglesa: Sistema Botvinnik, 6...Cf6 7.Cge2 O-O 8.O-O" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nf6 7.Nge2 O-O 8.O-O * A26 "Inglesa: Sistema Botvinnik, 6...Cge7" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nge7 * A26 "Inglesa: Sistema Botvinnik, 6...Cge7 7.Cge2" 1.c4 e5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.e4 Nge7 7.Nge2 * A27 "Inglesa: Tres Caballos" 1.c4 e5 2.Nc3 Nc6 3.Nf3 * A27 "Inglesa: Tres Caballos, 3...Ab4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Bb4 * A27 "Inglesa: Tres Caballos, 3...d6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 d6 * A27 "Inglesa: Tres Caballos, 3...f5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 f5 * A27 "Inglesa: Tres Caballos, 3...f5 4.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 f5 4.d4 * A27 "Inglesa: Tres Caballos, 3...f5 4.d4 e4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 f5 4.d4 e4 * A27 "Inglesa: Tres Caballos, 3...g6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 * A27 "Inglesa: Tres Caballos, 3...g6 4.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 4.d4 * A27 "Inglesa: Tres Caballos, 3...g6 4.d4 exd4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 4.d4 exd4 * A27 "Inglesa: Tres Caballos, 3...g6 4.d4 exd4 5.Cxd4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 g6 4.d4 exd4 5.Nxd4 * A28 "Inglesa: Cuatro Caballos" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 * A28 "Inglesa: Cuatro Caballos, Variante Nimzowitsch" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e4 * A28 "Inglesa: Cuatro Caballos, Variante Marini" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.a3 * A28 "Inglesa: Cuatro Caballos, Variante Capablanca" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d3 * A28 "Inglesa: Cuatro Caballos, 4.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 * A28 "Inglesa: Cuatro Caballos, Variante Nenarokov" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Bg5 h6 7.Bh4 Bxc3+ 8.bxc3 Ne5 * A28 "Inglesa: Cuatro Caballos, Variante de Bradley Beach" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 e4 * A28 "Inglesa: Cuatro Caballos, 4.e3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 * A28 "Inglesa: Cuatro Caballos, 4.e3 Ab4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 * A28 "Inglesa: Cuatro Caballos, 4.e3 Ab4 5.Dc2" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 5.Qc2 * A28 "Inglesa: Cuatro Caballos, Variante Stean" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 5.Qc2 O-O 6.Nd5 Re8 7.Qf5 * A28 "Inglesa: Cuatro Caballos, Variante Romanishin" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 Bb4 5.Qc2 Bxc3 * A29 "Inglesa: Cuatro Caballos, 4.g3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 * A29 "Inglesa: Cuatro Caballos, 4.g3 g6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 g6 * A29 "Inglesa: Cuatro Caballos, 4.g3 g6 5.d4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 g6 5.d4 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Ae6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Be6 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Cb6" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Cb6 7.O-O" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Cb6 7.O-O Ae7" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Cb6 7.O-O Ae7 8.Tb1" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.Rb1 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Cb6 7.O-O Ae7 8.a3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.a3 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Cb6 7.O-O Ae7 8.d3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.d3 * A29 "Inglesa: Cuatro Caballos, 4.g3 d5 5.cxd5 Cxd5 6.Ag2 Cb6 7.O-O Ae7 8.d3 O-O" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 Nxd5 6.Bg2 Nb6 7.O-O Be7 8.d3 O-O * A29 "Inglesa: Cuatro Caballos, 4.g3 Ac5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 * A29 "Inglesa: Cuatro Caballos, 4.g3 Ac5 5.Ag2" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 * A29 "Inglesa: Cuatro Caballos, 4.g3 Ac5 5.Ag2 d6 6.O-O" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 d6 6.O-O * A29 "Inglesa: Cuatro Caballos, 4.g3 Ac5 5.Ag2 d6 6.O-O O-O" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 d6 6.O-O O-O * A29 "Inglesa: Cuatro Caballos, 4.g3 Ac5 5.Ag2 d6 6.O-O O-O 7.d3" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bc5 5.Bg2 d6 6.O-O O-O 7.d3 * A29 "Inglesa: Cuatro Caballos, 4.g3 Ab4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 * A29 "Inglesa: Cuatro Caballos, 4.g3 Ab4 5.Cd5" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Nd5 * A29 "Inglesa: Cuatro Caballos, 4.g3 Ab4 5.Ag2" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Bg2 * A29 "Inglesa: Cuatro Caballos, Línea Principal 6.O-O" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Bg2 O-O 6.O-O * A29 "Inglesa: Cuatro Caballos, Línea Principal 6.O-O e4" 1.c4 e5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 Bb4 5.Bg2 O-O 6.O-O e4 * A30 "Inglesa: Simétrica" 1.c4 c5 * A30 "Inglesa: Simétrica, 2.b3" 1.c4 c5 2.b3 * A30 "Inglesa: Simétrica, 2.g3" 1.c4 c5 2.g3 * A30 "Inglesa: Simétrica, 2.g3 g6" 1.c4 c5 2.g3 g6 * A30 "Inglesa: Simétrica, 2.Cf3" 1.c4 c5 2.Nf3 * A30 "Inglesa: Simétrica, 2.Cf3 b6" 1.c4 c5 2.Nf3 b6 * A30 "Inglesa: Simétrica, 2.Cf3 b6 3.g3" 1.c4 c5 2.Nf3 b6 3.g3 * A30 "Inglesa: Simétrica, 2.Cf3 b6 3.g3 Ab7 4.Ag2" 1.c4 c5 2.Nf3 b6 3.g3 Bb7 4.Bg2 * A30 "Inglesa: Simétrica, 2.Cf3 g6" 1.c4 c5 2.Nf3 g6 * A30 "Inglesa: Simétrica, 2.Cf3 Cc6" 1.c4 c5 2.Nf3 Nc6 * A30 "Inglesa: Simétrica, 2.Cf3 Cf6" 1.c4 c5 2.Nf3 Nf6 * A30 "Inglesa: Simétrica, 2.Cf3 Cf6 3.g3" 1.c4 c5 2.Nf3 Nf6 3.g3 * A30 "Inglesa: Simétrica, Sistema b6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 * A30 "Inglesa: Simétrica, Sistema b6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 * A30 "Inglesa: Simétrica, Sistema b6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.Nc3 * A30 "Inglesa: Simétrica, Sistema b6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O * A30 "Inglesa: Simétrica, Fianchetto Doble" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 * A30 "Inglesa: Simétrica, Fianchetto Doble" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.Nc3 Bg7 * A30 "Inglesa: Simétrica, Fianchetto Doble Mutuo" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 * A30 "Inglesa: Simétrica, Fianchetto Doble Mutuo" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 Bg7 7.Bb2 O-O * A30 "Inglesa: Simétrica, Fianchetto Doble Mutuo" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 Bg7 7.Bb2 O-O 8.Nc3 * A30 "Inglesa: Simétrica, Fianchetto Doble Mutuo con ...d5" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O g6 6.b3 Bg7 7.Bb2 O-O 8.Nc3 d5 * A30 "Inglesa: Simétrica, Sistema Erizo" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 * A30 "Inglesa: Simétrica, Sistema Erizo" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 * A30 "Inglesa: Simétrica, Sistema Erizo, 6...a6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 a6 * A30 "Inglesa: Simétrica, Sistema Erizo, 6...d6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 d6 * A30 "Inglesa: Simétrica, Sistema Erizo, 6...d6 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 d6 7.b3 * A30 "Inglesa: Simétrica, Sistema Erizo, 6...d6 7.d4" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 d6 7.d4 * A30 "Inglesa: Simétrica, Sistema Erizo" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 * A30 "Inglesa: Simétrica, Sistema Erizo, 7.Te1" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.Re1 * A30 "Inglesa: Simétrica, Sistema Erizo, 7.Te1 d5" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.Re1 d5 * A30 "Inglesa: Simétrica, Sistema Erizo, 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.b3 * A30 "Inglesa: Simétrica, Sistema Erizo, 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.b3 O-O * A30 "Inglesa: Simétrica, Sistema Erizo, 7.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.b3 O-O 8.Bb2 d6 * A30 "Inglesa: Simétrica, Sistema Erizo, 7.d4" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 * A30 "Inglesa: Simétrica, Sistema Erizo, 8.Dxd4" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 * A30 "Inglesa: Simétrica, Sistema Erizo, 8.Dxd4 O-O" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 O-O * A30 "Inglesa: Simétrica, Sistema Erizo, 8.Dxd4 O-O" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 O-O 9.Rd1 Nc6 * A30 "Inglesa: Simétrica, Sistema Erizo, 8.Dxd4 Cc6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 Nc6 * A30 "Inglesa: Simétrica, Sistema Erizo, 8.Dxd4 d6" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 * A30 "Inglesa: Simétrica, Sistema Erizo, 9.b3" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.b3 * A30 "Inglesa: Simétrica, Sistema Erizo, 9.b3 Cbd7" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.b3 Nbd7 * A30 "Inglesa: Simétrica, Sistema Erizo, 9.b3 Cbd7 10.Cb5" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.b3 Nbd7 10.Nb5 * A30 "Inglesa: Simétrica, Sistema Erizo, 9.Td1" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 * A30 "Inglesa: Simétrica, Sistema Erizo, Formación Flexible" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 * A30 "Inglesa: Simétrica, Sistema Erizo, Formación Flexible" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 11.e4 * A30 "Inglesa: Simétrica, Sistema Erizo, Formación Flexible, 11.e4 Dc7" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 11.e4 Qc7 * A30 "Inglesa: Simétrica, Sistema Erizo, Formación Flexible, 11.e4 O-O" 1.c4 c5 2.Nf3 Nf6 3.g3 b6 4.Bg2 Bb7 5.O-O e6 6.Nc3 Be7 7.d4 cxd4 8.Qxd4 d6 9.Rd1 a6 10.b3 Nbd7 11.e4 O-O * A31 "Inglesa: Simétrica, Dos Caballos, 1.c4 c5 2.Cf3 Cf6 3.d4" 1.c4 c5 2.Nf3 Nf6 3.d4 * A31 "Inglesa: Simétrica, Dos Caballos, 3...a6" 1.c4 c5 2.Nf3 Nf6 3.d4 a6 * A31 "Inglesa: Simétrica, Dos Caballos, 3...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 g6 * A31 "Inglesa: Simétrica, Dos Caballos, 3...g6 4.d5" 1.c4 c5 2.Nf3 Nf6 3.d4 g6 4.d5 * A31 "Inglesa: Simétrica, Dos Caballos, 3...g6 4.Cc3" 1.c4 c5 2.Nf3 Nf6 3.d4 g6 4.Nc3 * A31 "Inglesa: Simétrica, Dos Caballos, 3..cxd4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 * A31 "Inglesa: Simétrica, Dos Caballos, 3..cxd4 4.Cxd4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 * A31 "Inglesa: Simétrica, Dos Caballos, 4...b6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 b6 * A31 "Inglesa: Simétrica, Dos Caballos, 4...b6 5.Cc3 Ab7" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 b6 5.Nc3 Bb7 * A31 "Inglesa: Simétrica, Dos Caballos, 4...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 * A31 "Inglesa: Simétrica, Dos Caballos, 4...g6 5.Cc3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 * A31 "Inglesa: Simétrica, Dos Caballos, 4...g6 5.Cc3 Ag7" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 * A31 "Inglesa: Simétrica, Dos Caballos, 4...g6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.e4 * A31 "Inglesa: Simétrica, Dos Caballos, 4...Cc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 Nc6 * A31 "Inglesa: Simétrica, Dos Caballos, 4...Cc6 5.Cc3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 * A31 "Inglesa: Simétrica, Dos Caballos, 4...Cc6 5.Cc3 g6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 g6 * A31 "Inglesa: Simétrica, Dos Caballos, 4...e5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e5 * A31 "Inglesa: Simétrica, Dos Caballos, 4...e5 5.Cb5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 * A32 "Inglesa: Simétrica, Dos Caballos, 4...e6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 * A32 "Inglesa: Simétrica, Dos Caballos, 5.e3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.e3 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 a6 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 a6 6.Bg2 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 Db6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Qb6 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 Db6 6.Ag2" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Qb6 6.Bg2 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 Dc7" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Qc7 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 Cc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Nc6 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 Cc6 6.Ag2" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Nc6 6.Bg2 * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 Ab4+" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 Bb4+ * A32 "Inglesa: Simétrica, Dos Caballos, 5.g3 d5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 d5 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 d5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 d5 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 a6 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 a6 6.g3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 a6 6.g3 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Ab4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Ab4 6.Db3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Qb3 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Ab4 6.Cb5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Nb5 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Ab4 6.Ad2" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Bd2 * A32 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Ab4 6.Ad2 Cc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Bb4 6.Bd2 Nc6 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.Af4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Bf4 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.Ag5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Bg5 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.e3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.e3 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.a3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.a3 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.a3 Ac5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.a3 Bc5 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.Cdb5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.Cdb5 Ab4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 Bb4 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.Cdb5 d5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 d5 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.Cdb5 d5 Intercambio de Damas" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.Ndb5 d5 7.Bf4 e5 8.cxd5 exf4 9.dxc6 bxc6 10.Qxd8+ Kxd8 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.g3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.g3 a6" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 a6 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.g3 Ab4" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Bb4 * A33 "Inglesa: Simétrica, Dos Caballos, 5.Cc3 Cc6 6.g3 Ac5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Bc5 * A33 "Inglesa: Simétrica, Variante Geller" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Qb6 * A33 "Inglesa: Simétrica, Geller, 7.Cb3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Qb6 7.Nb3 * A33 "Inglesa: Simétrica, Geller, 7.Cb3 Ce5" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.Nc3 Nc6 6.g3 Qb6 7.Nb3 Ne5 * A34 "Inglesa: Simétrica" 1.c4 c5 2.Nc3 * A34 "Inglesa: Simétrica, 2...b6" 1.c4 c5 2.Nc3 b6 * A34 "Inglesa: Simétrica, 2...b6 3.Cf3" 1.c4 c5 2.Nc3 b6 3.Nf3 * A34 "Inglesa: Simétrica, 2...b6 3.Cf3 Ab7" 1.c4 c5 2.Nc3 b6 3.Nf3 Bb7 * A34 "Inglesa: Simétrica, 2...g6" 1.c4 c5 2.Nc3 g6 * A34 "Inglesa: Simétrica, 2...g6 3.Cf3" 1.c4 c5 2.Nc3 g6 3.Nf3 * A34 "Inglesa: Simétrica, 2...g6 3.g3" 1.c4 c5 2.Nc3 g6 3.g3 * A34 "Inglesa: Simétrica, 2...g6 3.g3 Ag7 4.Ag2" 1.c4 c5 2.Nc3 g6 3.g3 Bg7 4.Bg2 * A34 "Inglesa: Simétrica, 2...Cf6" 1.c4 c5 2.Nc3 Nf6 * A34 "Inglesa: Simétrica, 2...Cf6 3.g3" 1.c4 c5 2.Nc3 Nf6 3.g3 * A34 "Inglesa: Simétrica, 2...Cf6 3.g3 d5" 1.c4 c5 2.Nc3 Nf6 3.g3 d5 * A34 "Inglesa: Simétrica, 2...Cf6 3.g3 d5 4.cxd5 Cxd5 5.Ag2" 1.c4 c5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 * A34 "Inglesa: Simétrica, Sistema Rubinstein" 1.c4 c5 2.Nc3 Nf6 3.g3 d5 4.cxd5 Nxd5 5.Bg2 Nc7 * A34 "Inglesa: Simétrica, Tres Caballos" 1.c4 c5 2.Nc3 Nf6 3.Nf3 * A34 "Inglesa: Simétrica, Tres Caballos, 3...b6" 1.c4 c5 2.Nc3 Nf6 3.Nf3 b6 * A34 "Inglesa: Simétrica, Tres Caballos, 3...e6" 1.c4 c5 2.Nc3 Nf6 3.Nf3 e6 * A34 "Inglesa: Simétrica, Tres Caballos, 3...e6 4.g3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 e6 4.g3 * A34 "Inglesa: Simétrica, Tres Caballos, 3...g6" 1.c4 c5 2.Nc3 Nf6 3.Nf3 g6 * A34 "Inglesa: Simétrica, Tres Caballos" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 * A34 "Inglesa: Simétrica, Tres Caballos, Intercambio" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 * A34 "Inglesa: Simétrica, Tres Caballos, 5.g3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.g3 * A34 "Inglesa: Simétrica, Tres Caballos, 5.e4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 * A34 "Inglesa: Simétrica, Tres Caballos, 5.e4 Cxc3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nxc3 * A34 "Inglesa: Simétrica, Tres Caballos, Intercambio de Damas" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.dxc3 Qxd1+ 7.Kxd1 * A34 "Inglesa: Simétrica, Tres Caballos, 5.e4 Cb4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nb4 * A34 "Inglesa: Simétrica, Tres Caballos, 5.e4 Cb4 6.Ab5+" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nb4 6.Bb5+ * A34 "Inglesa: Simétrica, Tres Caballos, 5.e4 Cb4 6.Ac4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.e4 Nb4 6.Bc4 * A34 "Inglesa: Simétrica, Tres Caballos, 5.d4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.d4 * A34 "Inglesa: Simétrica, Tres Caballos, 5.d4 cxd4" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.d4 cxd4 * A34 "Inglesa: Simétrica, Tres Caballos, 5.d4 Cxc3" 1.c4 c5 2.Nc3 Nf6 3.Nf3 d5 4.cxd5 Nxd5 5.d4 Nxc3 * A35 "Inglesa: Simétrica" 1.c4 c5 2.Nc3 Nc6 * A35 "Inglesa: Simétrica, 2.Cc3 Cc6 3.e3" 1.c4 c5 2.Nc3 Nc6 3.e3 * A35 "Inglesa: Simétrica, 2.Cc3 Cc6 3.Cf3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 * A35 "Inglesa: Simétrica, 2.Cc3 Cc6 3.Cf3 g6" 1.c4 c5 2.Nc3 Nc6 3.Nf3 g6 * A35 "Inglesa: Simétrica, 2.Cc3 Cc6 3.Cf3 g6 4.e3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 g6 4.e3 * A35 "Inglesa: Simétrica, 2.Cc3 Cc6 3.Cf3 g6 4.e3 Ag7" 1.c4 c5 2.Nc3 Nc6 3.Nf3 g6 4.e3 Bg7 * A35 "Inglesa: Simétrica, Cuatro Caballos" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 * A35 "Inglesa: Simétrica, Cuatro Caballos, 4.d4" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.d4 * A35 "Inglesa: Simétrica, Cuatro Caballos, 4.e3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 * A35 "Inglesa: Simétrica, Cuatro Caballos, 4.e3 e5" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.e3 e5 * A35 "Inglesa: Simétrica, Cuatro Caballos, 4.g3" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 * A35 "Inglesa: Simétrica, Cuatro Caballos, 4.g3 d5" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 * A35 "Inglesa: Simétrica, Cuatro Caballos, 4.g3 d5 5.cxd5" 1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 d5 5.cxd5 * A36 "Inglesa: Simétrica, 3.g3" 1.c4 c5 2.Nc3 Nc6 3.g3 * A36 "Inglesa: Simétrica, 3.g3 Cf6" 1.c4 c5 2.Nc3 Nc6 3.g3 Nf6 * A36 "Inglesa: Simétrica, 3.g3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 * A36 "Inglesa: Simétrica, 3.g3 e6 4.Cf3" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 4.Nf3 * A36 "Inglesa: Simétrica, Sistema Keres-Parma" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 4.Nf3 Nf6 * A36 "Inglesa: Simétrica, Keres-Parma, Línea Principal del Intercambio" 1.c4 c5 2.Nc3 Nc6 3.g3 e6 4.Nf3 Nf6 5.Bg2 Be7 6.O-O d5 7.cxd5 Nxd5 * A36 "Inglesa: Simétrica, 3.g3 g6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 * A36 "Inglesa: Simétrica, 3.g3 g6 4.Ag2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 * A36 "Inglesa: Simétrica, 3.g3 g6 4.Ag2 Ag7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 * A36 "Inglesa: Simétrica, 5.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 * A36 "Inglesa: Simétrica, 5.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.a3 * A36 "Inglesa: Simétrica, 5.a3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.a3 e6 * A36 "Inglesa: Simétrica, 5.a3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.a3 d6 * A36 "Inglesa: Simétrica, 5.b3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.b3 * A36 "Inglesa: Simétrica, 5.e3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 * A36 "Inglesa: Simétrica, 5.e3 e5 (Botvinnik Invertida)" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e5 * A36 "Inglesa: Simétrica, 5.e3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e6 * A36 "Inglesa: Simétrica, 5.e3 e6 6.Cge2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e6 6.Nge2 * A36 "Inglesa: Simétrica, 5.e3 e6 6.Cge2 Cge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e3 e6 6.Nge2 Nge7 * A36 "Inglesa: Simétrica, Sistema Botvinnik" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...Cf6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 Nf6 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...Cf6 6.Cge2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 Nf6 6.Nge2 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...e6 6.Cge2 Cge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 6.Nge2 Nge7 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...e6, 8.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 6.Nge2 Nge7 7.O-O O-O 8.d3 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...e6, 8.d3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 e6 6.Nge2 Nge7 7.O-O O-O 8.d3 d6 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6 6.Cge2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6 6.Cge2 Cf6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6, 7.O-O O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6, 8.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6, 8.d3 Tb8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 Rb8 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6, 8.d3 Ce8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 Ne8 * A36 "Inglesa: Simétrica, Sistema Botvinnik, 5...d6, 8.d3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.e4 d6 6.Nge2 Nf6 7.O-O O-O 8.d3 a6 * A37 "Inglesa: Simétrica, 5.Cf3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 * A37 "Inglesa: Simétrica, 5.Cf3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 a6 * A37 "Inglesa: Simétrica, 5.Cf3 Ch6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nh6 * A37 "Inglesa: Simétrica, 5.Cf3 Ch6 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nh6 6.O-O * A37 "Inglesa: Simétrica, 5.Cf3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 * A37 "Inglesa: Simétrica, 5.Cf3 d6 6.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.d3 * A37 "Inglesa: Simétrica, 5.Cf3 d6 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.O-O * A37 "Inglesa: Simétrica, 5.Cf3 d6 6.O-O Ch6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.O-O Nh6 * A37 "Inglesa: Simétrica, 5.Cf3 e6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.d3 * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.e3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.e3 * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.O-O Cge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.O-O Cge7 7.e3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.e3 * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.O-O Cge7 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.d3 * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.O-O Cge7 7.d3 O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.d3 O-O * A37 "Inglesa: Simétrica, 5.Cf3 e6 6.O-O Cge7 7.d3 O-O 8.Ad2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e6 6.O-O Nge7 7.d3 O-O 8.Bd2 * A37 "Inglesa: Simétrica, 5.Cf3 e5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.a3 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.d3 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.d3 Cge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.d3 Nge7 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O d6 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 7.d3 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O d6 7.d3 Cge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 7.d3 Nge7 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O d6 7.d3 Cge7 8.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O d6 7.d3 Nge7 8.a3 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O Cge7" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O Cge7 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 7.d3 * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O Cge7 7.d3 O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 7.d3 O-O * A37 "Inglesa: Simétrica, 5.Cf3 e5 6.O-O Cge7 7.d3 O-O 8.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 e5 6.O-O Nge7 7.d3 O-O 8.a3 * A38 "Inglesa: Simétrica, Línea Principal" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 * A38 "Inglesa: Simétrica, Línea Principal, 6.d4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.d4 * A38 "Inglesa: Simétrica, Línea Principal, 6.O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O * A38 "Inglesa: Simétrica, Línea Principal, 6.O-O d5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O d5 * A38 "Inglesa: Simétrica, Línea Principal, 6.O-O d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O d6 * A38 "Inglesa: Simétrica, Línea Principal, 6.O-O O-O" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O * A38 "Inglesa: Simétrica, Línea Principal, 7.Tb1" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.Rb1 * A38 "Inglesa: Simétrica, Línea Principal, 7.b3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.b3 * A38 "Inglesa: Simétrica, Línea Principal, 7.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.a3 * A38 "Inglesa: Simétrica, Línea Principal, 7.a3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.a3 d6 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 a6 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3 d5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d5 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3 d6 8.Tb1" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.Rb1 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3 d6 8.Ad2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.Bd2 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3 d6 8.a3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.a3 * A38 "Inglesa: Simétrica, Línea Principal, 7.d3 d6 8.a3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d3 d6 8.a3 a6 * A39 "Inglesa: Simétrica, Línea Principal 7.d4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 * A39 "Inglesa: Simétrica, Línea Principal 7.d4 cxd4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 * A39 "Inglesa: Simétrica, Línea Principal 7.d4 cxd4 8.Cxd4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...Da5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Qa5 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...Db6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Qb6 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...Db6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Qb6 9.Nc2 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 a6 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 d6 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...Cg4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Ng4 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...Cg4 9.e3 d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Ng4 9.e3 d6 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 8...Cxd4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 9.Dxd4" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 9...d6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd2 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd3" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd3 Af5" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 Bf5 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd3 Tb8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 Rb8 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd3 a6" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd3 a6 11.Ad2" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 11.Bd2 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd3 a6 11.Ad2 Tb8" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 11.Bd2 Rb8 * A39 "Inglesa: Simétrica, Línea Principal 7.d4, 10.Dd3 a6 11.Ad2 Tb8 12.Tac1" 1.c4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nf3 Nf6 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4 9.Qxd4 d6 10.Qd3 a6 11.Bd2 Rb8 12.Rac1 * A40 "Partida de Peón Dama" 1.d4 * A40 "Peón Dama: 1...c6" 1.d4 c6 * A40 "Peón Dama: 1...c6 2.Cf3" 1.d4 c6 2.Nf3 * A40 "Peón Dama: 1...c6 2.c4" 1.d4 c6 2.c4 * A40 "Peón Dama: Jadoul" 1.d4 c6 2.c4 b5 * A40 "Peón Dama: Defensa Polaca" 1.d4 b5 * A40 "Peón Dama: Defensa Polaca" 1.d4 b5 2.e4 * A40 "Peón Dama: Defensa Polaca" 1.d4 b5 2.e4 Bb7 * A40 "Peón Dama: Defensa Polaca, Gambito Spassky" 1.d4 b5 2.e4 Bb7 3.Bxb5 * A40 "Peón Dama: Defensa Inglesa" 1.d4 b6 * A40 "Peón Dama: Defensa Inglesa, 2.c4" 1.d4 b6 2.c4 * A40 "Peón Dama: Defensa Inglesa, 2.c4 Ab7" 1.d4 b6 2.c4 Bb7 * A40 "Peón Dama: Defensa Inglesa, 2.c4 e6" 1.d4 b6 2.c4 e6 * A40 "Peón Dama: Defensa Inglesa, 3.a3" 1.d4 b6 2.c4 e6 3.a3 * A40 "Peón Dama: Defensa Inglesa, 3.e4" 1.d4 b6 2.c4 e6 3.e4 * A40 "Peón Dama: Defensa Inglesa, Gambito Polli" 1.d4 b6 2.c4 e6 3.e4 Bb7 4.f3 f5 * A40 "Peón Dama: Defensa Inglesa, Gambito Hartlaub" 1.d4 b6 2.c4 Bb7 3.Nc3 e6 4.e4 f5 * A40 "Peón Dama: Defensa Inglesa, 3.Cc3" 1.d4 b6 2.c4 e6 3.Nc3 * A40 "Gambito Englund (Charlick)" 1.d4 e5 * A40 "Gambito Englund (Charlick) Aceptado" 1.d4 e5 2.dxe5 * A40 "Gambito Englund (Charlick): Soller" 1.d4 e5 2.dxe5 f6 * A40 "Gambito Englund (Charlick): Hartlaub" 1.d4 e5 2.dxe5 d6 * A40 "Gambito Englund (Charlick): 2.dxe5 Cc6" 1.d4 e5 2.dxe5 Nc6 * A40 "Gambito Englund (Charlick): 2.dxe5 Cc6 3.Cf3" 1.d4 e5 2.dxe5 Nc6 3.Nf3 * A40 "Gambito Englund (Charlick): Soller Retardada" 1.d4 e5 2.dxe5 Nc6 3.Nf3 f6 * A40 "Gambito Englund (Charlick): Zilbermints" 1.d4 e5 2.dxe5 Nc6 3.Nf3 Nge7 * A40 "Gambito Englund (Charlick): 2.dxe5 Cc6 3.Cf3 De7" 1.d4 e5 2.dxe5 Nc6 3.Nf3 Qe7 * A40 "Peón Dama: Defensa Lundin (Kevitz-Mikenas-Bogoljubow-Miles)" 1.d4 Nc6 * A40 "Peón Dama: Bogoljubow-Miles, 2.Ag5" 1.d4 Nc6 2.Bg5 * A40 "Peón Dama: Bogoljubow-Miles, 2.d5" 1.d4 Nc6 2.d5 * A40 "Peón Dama: Defensa Bozo-India" 1.d4 Nc6 2.d5 Ne5 * A40 "Peón Dama: Defensa Bozo-India, Variante Chase" 1.d4 Nc6 2.d5 Ne5 3.f4 Ng6 4.f5 Ne5 * A40 "Peón Dama: Defensa Bozo-India, Ataque de los Cuatro Peones" 1.d4 Nc6 2.d5 Ne5 3.f4 Ng6 4.e4 e6 5.c4 * A40 "Peón Dama: Bogoljubow-Miles, 2.c4" 1.d4 Nc6 2.c4 * A40 "Peón Dama: Bogoljubow-Miles, Gambito Pozarek" 1.d4 Nc6 2.c4 e5 3.dxe5 Nxe5 4.Nc3 Nxc4 * A40 "Peón Dama: Bogoljubow-Miles, 2.Cf3" 1.d4 Nc6 2.Nf3 * A40 "Peón Dama: 1...e6" 1.d4 e6 * A40 "Peón Dama: 1...e6 2.Cf3" 1.d4 e6 2.Nf3 * A40 "Peón Dama: 1...e6 2.c4" 1.d4 e6 2.c4 * A40 "Peón Dama: Defensa Keres" 1.d4 e6 2.c4 Bb4+ * A40 "Peón Dama: Defensa Keres, 3.Ad2" 1.d4 e6 2.c4 Bb4+ 3.Bd2 * A40 "Peón Dama: Defensa Keres, 3.Ad2 Axd2+" 1.d4 e6 2.c4 Bb4+ 3.Bd2 Bxd2+ * A40 "Peón Dama: Defensa Keres, Variante Kangaroo" 1.d4 e6 2.c4 Bb4+ 3.Bd2 Bxd2+ 4.Qxd2 b6 5.Nc3 Bb7 6.e4 Nh6 * A40 "Peón Dama: Defensa Keres, 3.Ad2 a5" 1.d4 e6 2.c4 Bb4+ 3.Bd2 a5 * A40 "Peón Dama: Moderna, 1.d4 g6" 1.d4 g6 * A40 "Peón Dama: Moderna, 1.d4 g6 2.Cf3" 1.d4 g6 2.Nf3 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4" 1.d4 g6 2.c4 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4 Ag7" 1.d4 g6 2.c4 Bg7 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4 Ag7 3.e4" 1.d4 g6 2.c4 Bg7 3.e4 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4 Ag7 3.Cf3" 1.d4 g6 2.c4 Bg7 3.Nf3 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4 Ag7 3.Cf3 c5" 1.d4 g6 2.c4 Bg7 3.Nf3 c5 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4 Ag7 3.Cc3" 1.d4 g6 2.c4 Bg7 3.Nc3 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4 Ag7 3.Cc3 c5" 1.d4 g6 2.c4 Bg7 3.Nc3 c5 * A40 "Peón Dama: Moderna, 1.d4 g6 2.c4 Ag7 3.Cc3 c5 4.d5" 1.d4 g6 2.c4 Bg7 3.Nc3 c5 4.d5 * A40 "Peón Dama: Moderna, Defensa Beefeater" 1.d4 g6 2.c4 Bg7 3.Nc3 c5 4.d5 Bxc3+ 5.bxc3 f5 * A40 "Siciliana: Pterodáctilo Acelerada, 4.c4" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.c4 * A40 "Siciliana: Pterodáctilo Acelerada, 4.c4 Da5+" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.c4 Qa5+ * A41 "Neo-India Antigua" 1.d4 d6 * A41 "Neo-India Antigua: 2.Ag5" 1.d4 d6 2.Bg5 * A41 "Neo-India Antigua: 2.g3" 1.d4 d6 2.g3 * A41 "Neo-India Antigua: 2.Cf3" 1.d4 d6 2.Nf3 * A41 "Neo-India Antigua: Moderna" 1.d4 d6 2.Nf3 g6 * A41 "Neo-India Antigua: Moderna, 3.Af4" 1.d4 d6 2.Nf3 g6 3.Bf4 * A41 "Neo-India Antigua: Moderna, 3.Af4 Ag7" 1.d4 d6 2.Nf3 g6 3.Bf4 Bg7 * A41 "Neo-India Antigua: Moderna, 3.g3" 1.d4 d6 2.Nf3 g6 3.g3 * A41 "Neo-India Antigua: Moderna, 3.g3 Ag7" 1.d4 d6 2.Nf3 g6 3.g3 Bg7 * A41 "Neo-India Antigua: Moderna, 3.g3 Ag7 4.Ag2" 1.d4 d6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A41 "Neo-India Antigua: Defensa Wade" 1.d4 d6 2.Nf3 Bg4 * A41 "Neo-India Antigua: Defensa Wade, 3.e3" 1.d4 d6 2.Nf3 Bg4 3.e3 * A41 "Neo-India Antigua: Defensa Wade, 3.e3 Cd7" 1.d4 d6 2.Nf3 Bg4 3.e3 Nd7 * A41 "Neo-India Antigua: Defensa Wade, 3.e3 Cf6" 1.d4 d6 2.Nf3 Bg4 3.e3 Nf6 * A41 "Neo-India Antigua: Defensa Wade, 3.c4" 1.d4 d6 2.Nf3 Bg4 3.c4 * A41 "Neo-India Antigua: Defensa Wade, 3.c4 e5" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 * A41 "Neo-India Antigua: Defensa Wade, 3.c4 e5 4.Cc3" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.Nc3 * A41 "Neo-India Antigua: Defensa Wade, 3.c4 e5 4.Cc3 Cc6" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.Nc3 Nc6 * A41 "Neo-India Antigua: Defensa Wade, 3.c4 e5 4.dxe5" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.dxe5 * A41 "Neo-India Antigua: Defensa Wade, Gambito 3.c4 e5 4.dxe5 Cc6" 1.d4 d6 2.Nf3 Bg4 3.c4 e5 4.dxe5 Nc6 * A41 "Neo-India Antigua: Defensa Wade, 3.c4 Cd7" 1.d4 d6 2.Nf3 Bg4 3.c4 Nd7 * A41 "Neo-India Antigua: Defensa Wade, 3.c4 Cd7 4.Cc3" 1.d4 d6 2.Nf3 Bg4 3.c4 Nd7 4.Nc3 * A41 "Neo-India Antigua: Defensa Wade, 3.c4 Axf3" 1.d4 d6 2.Nf3 Bg4 3.c4 Bxf3 * A41 "Neo-India Antigua: Defensa Wade, 3.e4" 1.d4 d6 2.Nf3 Bg4 3.e4 * A41 "Neo-India Antigua: Defensa Wade, 3.e4 Cf6" 1.d4 d6 2.Nf3 Bg4 3.e4 Nf6 * A41 "Neo-India Antigua: 2.c4" 1.d4 d6 2.c4 * A41 "Neo-India Antigua: 2.c4 e5" 1.d4 d6 2.c4 e5 * A41 "Neo-India Antigua: 2.c4 e5 3.d5" 1.d4 d6 2.c4 e5 3.d5 * A41 "Neo-India Antigua: 2.c4 e5 3.dxe5" 1.d4 d6 2.c4 e5 3.dxe5 * A41 "Neo-India Antigua: Intercambio de Damas" 1.d4 d6 2.c4 e5 3.dxe5 dxe5 4.Qxd8+ Kxd8 * A41 "Neo-India Antigua: 2.c4 e5 3.Cf3" 1.d4 d6 2.c4 e5 3.Nf3 * A41 "Neo-India Antigua: 2.c4 e5 3.Cf3 e4" 1.d4 d6 2.c4 e5 3.Nf3 e4 * A41 "Neo-India Antigua: Moderna, 2.c4 g6" 1.d4 d6 2.c4 g6 * A41 "Neo-India Antigua: Moderna, 3.e4" 1.d4 d6 2.c4 g6 3.e4 * A41 "Neo-India Antigua: Moderna, 3.e4 Ag7" 1.d4 d6 2.c4 g6 3.e4 Bg7 * A41 "Neo-India Antigua: Moderna, 3.Cf3" 1.d4 d6 2.c4 g6 3.Nf3 * A41 "Neo-India Antigua: Moderna, 3.Cf3 Ag7" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 * A41 "Neo-India Antigua: Moderna, 3.Cf3 Ag7 4.g3" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 4.g3 * A41 "Neo-India Antigua: Moderna, 3.Cf3 Ag7 4.e4" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 4.e4 * A41 "Neo-India Antigua: Moderna, Variante Rossolimo" 1.d4 d6 2.c4 g6 3.Nf3 Bg7 4.e4 Bg4 * A41 "Neo-India Antigua: Moderna, 3.Cc3" 1.d4 d6 2.c4 g6 3.Nc3 * A41 "Neo-India Antigua: Moderna, 3.Cc3 Ag7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 * A41 "Neo-India Antigua: Moderna, 3.Cc3 Ag7 4.Cf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 * A41 "Neo-India Antigua: Moderna, 3.Cc3 Ag7 4.Cf3 Af4" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 Bg4 * A41 "Neo-India Antigua: Moderna, 3.Cc3 Ag7 4.Cf3 Af4 5.e3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 Bg4 5.e3 * A41 "Neo-India Antigua: Moderna, 3.Cc3 Ag7 4.Cf3 Af4 5.e3 Cc6" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.Nf3 Bg4 5.e3 Nc6 * A42 "Moderna: Averbakh" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 * A42 "Moderna: Averbakh, Variante Randspringer" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 f5 * A42 "Moderna: Averbakh, Randspringer, 5.Cf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 f5 5.Nf3 * A42 "Moderna: c4 Pterodáctilo" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c5 * A42 "Moderna: c4 Pterodáctilo, 5.Cf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c5 5.Nf3 * A42 "Moderna: c4 Pterodáctilo, 5.Cf3 Da5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c5 5.Nf3 Qa5 * A42 "Moderna: Averbakh, 4...c6" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c6 * A42 "Moderna: Averbakh, 4...c6 5.Ae3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c6 5.Be3 * A42 "Moderna: Averbakh, 4...c6 5.Cf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 c6 5.Nf3 * A42 "Moderna: Averbakh, 4...Cd7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nd7 * A42 "Moderna: Averbakh, 4...Cd7 5.Cf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nd7 5.Nf3 * A42 "Moderna: Averbakh, Variante Kotov" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 * A42 "Moderna: Averbakh, Kotov, 5.Cf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Nf3 * A42 "Moderna: Averbakh, Kotov, 5.Cge2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Nge2 * A42 "Moderna: Averbakh, Kotov, 5.d5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.d5 * A42 "Moderna: Averbakh, Kotov, 5.Ae3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 * A42 "Moderna: Averbakh, Kotov, 5.Ae3 e5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 * A42 "Moderna: Averbakh, Kotov, 5.Ae3 e5 6.Cge2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.Nge2 * A42 "Moderna: Averbakh, Kotov, 5.Ae3 e5 6.d5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 * A42 "Moderna: Averbakh, Kotov, 5.Ae3 e5 6.d5 Cce7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 Nce7 * A42 "Moderna: Averbakh, Kotov, 5.Ae3 e5 6.d5 Cce7 7.c5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 Nce7 7.c5 * A42 "Moderna: Averbakh, Kotov, 5.Ae3 e5 6.d5 Cce7 7.g4" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 Nc6 5.Be3 e5 6.d5 Nce7 7.g4 * A42 "Moderna: Averbakh, 4...e5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 * A42 "Moderna: Averbakh, 4...e5 5.Cge2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nge2 * A42 "Moderna: Averbakh, 4...e5 5.Cf3" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 * A42 "Moderna: Averbakh, 4...e5 5.Cf3 Cd7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 Nd7 * A42 "Moderna: Averbakh, 4...e5 5.Cf3 Cd7 6.Ae2" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 Nd7 6.Be2 * A42 "Moderna: Averbakh, 4...e5 5.Cf3 Cd7 6.Ae2 Ce7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.Nf3 Nd7 6.Be2 Ne7 * A42 "Moderna: Averbakh, 4...e5 5.d5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.d5 * A42 "Moderna: Averbakh, 4...e5 5.d5 Cd7" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.d5 Nd7 * A42 "Moderna: Averbakh, 4...e5 5.dxe5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 * A42 "Moderna: Averbakh, 4...e5 5.dxe5 dxe5" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 dxe5 * A42 "Moderna: Averbakh, Intercambio de Damas" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 dxe5 6.Qxd8+ Kxd8 * A42 "Moderna: Averbakh, Intercambio de Damas, 7.f4" 1.d4 d6 2.c4 g6 3.Nc3 Bg7 4.e4 e5 5.dxe5 dxe5 6.Qxd8+ Kxd8 7.f4 * A43 "Benoni Antigua" 1.d4 c5 * A43 "Benoni Antigua: Gambito Nakamura" 1.d4 c5 2.b4 * A43 "Benoni Antigua: 2.dxc5" 1.d4 c5 2.dxc5 * A43 "Benoni Antigua: Gambito Cormorant" 1.d4 c5 2.dxc5 b6 * A43 "Benoni Antigua: 2.c3" 1.d4 c5 2.c3 * A43 "Benoni Antigua: 2.e3" 1.d4 c5 2.e3 * A43 "Benoni Antigua: 2.d5" 1.d4 c5 2.d5 * A43 "Benoni Antigua: 2.d5 b5" 1.d4 c5 2.d5 b5 * A43 "Benoni Antigua: 2.d5 e6" 1.d4 c5 2.d5 e6 * A43 "Benoni Antigua: Franco-Benoni" 1.d4 c5 2.d5 e6 3.e4 * A43 "Benoni Antigua: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 * A43 "Benoni Antigua: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 * A43 "Benoni Antigua: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 * A43 "Benoni Antigua: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.e4 * A43 "Benoni Antigua: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.Nc3 * A43 "Benoni Antigua: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.Nc3 g6 6.e4 Bg7 * A43 "Benoni Antigua: 2.d5 e6 3.c4" 1.d4 c5 2.d5 e6 3.c4 exd5 4.cxd5 d6 5.Nc3 g6 6.e4 Bg7 7.Nf3 * A43 "Benoni Antigua: Defensa Clarendon Court" 1.d4 c5 2.d5 f5 * A43 "Benoni Antigua: Defensa Clarendon Court, 3.c4" 1.d4 c5 2.d5 f5 3.c4 * A43 "Benoni Antigua: Defensa Clarendon Court, 3.g3" 1.d4 c5 2.d5 f5 3.g3 * A43 "Benoni Antigua: Defensa Clarendon Court, 3.Cc3" 1.d4 c5 2.d5 f5 3.Nc3 * A43 "Benoni Antigua: 2.d5 Cf6" 1.d4 c5 2.d5 Nf6 * A43 "Benoni Antigua: 2.d5 Cf6 3.Cc3" 1.d4 c5 2.d5 Nf6 3.Nc3 * A43 "Benoni Antigua: Woozle" 1.d4 c5 2.d5 Nf6 3.Nc3 Qa5 * A43 "Benoni Antigua: 2.d5 Cf6 3.Cf3" 1.d4 c5 2.d5 Nf6 3.Nf3 * A43 "Benoni Antigua: 2.d5 Cf6 3.Cf3 e6" 1.d4 c5 2.d5 Nf6 3.Nf3 e6 * A43 "Benoni Antigua: 2.d5 Cf6 3.Cf3 e6 4.Cc3" 1.d4 c5 2.d5 Nf6 3.Nf3 e6 4.Nc3 * A43 "Benoni Antigua: 2.d5 Cf6 3.Cf3 g6" 1.d4 c5 2.d5 Nf6 3.Nf3 g6 * A43 "Benoni Antigua: 2.d5 Cf6 3.Cf3 g6 4.Cc3" 1.d4 c5 2.d5 Nf6 3.Nf3 g6 4.Nc3 * A43 "Benoni Antigua: Neo-Benko" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 * A43 "Benoni Antigua: Neo-Benko, 4.Ag5" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 4.Bg5 * A43 "Benoni Antigua: Neo-Benko, 4.Ag5 d6" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 4.Bg5 d6 * A43 "Benoni Antigua: Neo-Benko, 4.Ag5 Ce4" 1.d4 c5 2.d5 Nf6 3.Nf3 b5 4.Bg5 Ne4 * A43 "Benoni Antigua: Halcón" 1.d4 c5 2.d5 Nf6 3.Nf3 c4 * A43 "Benoni Antigua: Halcón, 4.e4" 1.d4 c5 2.d5 Nf6 3.Nf3 c4 4.e4 * A43 "Benoni Antigua: Schmidt" 1.d4 c5 2.d5 d6 * A43 "Benoni Antigua: Schmidt, 3.Cf3" 1.d4 c5 2.d5 d6 3.Nf3 * A43 "Benoni Antigua: Schmidt, 3.Cf3 Cf6" 1.d4 c5 2.d5 d6 3.Nf3 Nf6 * A43 "Benoni Antigua: Schmidt, 3.Cc3" 1.d4 c5 2.d5 d6 3.Nc3 * A43 "Benoni Antigua: Schmidt, 3.Cc3 g6" 1.d4 c5 2.d5 d6 3.Nc3 g6 * A43 "Benoni Antigua: Schmidt, 3.Cc3 Cf6" 1.d4 c5 2.d5 d6 3.Nc3 Nf6 * A43 "Benoni Antigua: Schmidt, 3.e4" 1.d4 c5 2.d5 d6 3.e4 * A43 "Benoni Antigua: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 * A43 "Benoni Antigua: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 4.Nf3 Bg7 * A43 "Benoni Antigua: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 4.Nf3 Bg7 5.Be2 * A43 "Benoni Antigua: Schmidt, 3.e4 g6" 1.d4 c5 2.d5 d6 3.e4 g6 4.Nc3 Bg7 * A43 "Benoni Antigua: Schmidt, 3.e4 Cf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 * A43 "Benoni Antigua: Schmidt, 3.e4 Cf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 * A43 "Benoni Antigua: Schmidt, 3.e4 Cf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 * A43 "Benoni Antigua: Schmidt, 3.e4 Cf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 * A43 "Benoni Antigua: Schmidt, 3.e4 Cf6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 * A43 "Benoni Antigua: Schmidt, 6.h3" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.h3 * A43 "Benoni Antigua: Schmidt, 6.h3" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.h3 O-O * A43 "Benoni Antigua: Schmidt, 6.Ab5+" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Bb5+ * A43 "Benoni Antigua: Schmidt, 6.Ae2" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 * A43 "Benoni Antigua: Schmidt, 6.Ae2 O-O" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O * A43 "Benoni Antigua: Schmidt, 6.Ae2 O-O 7.O-O" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O * A43 "Benoni Antigua: Schmidt, 6.Ae2 O-O 7.O-O e6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O e6 * A43 "Benoni Antigua: Schmidt, 6.Ae2 O-O 7.O-O Ca6" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O Na6 * A43 "Benoni Antigua: Schmidt, 6.Ae2 O-O 7.O-O Ca6 8.h3" 1.d4 c5 2.d5 d6 3.e4 Nf6 4.Nc3 g6 5.Nf3 Bg7 6.Be2 O-O 7.O-O Na6 8.h3 * A44 "Benoni Antigua: Checa" 1.d4 c5 2.d5 e5 * A44 "Benoni Antigua: Checa, 3.dxe6" 1.d4 c5 2.d5 e5 3.dxe6 * A44 "Benoni Antigua: Checa, 3.c4" 1.d4 c5 2.d5 e5 3.c4 * A44 "Benoni Antigua: Checa, 3.c4 d6" 1.d4 c5 2.d5 e5 3.c4 d6 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4 Ae7" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 Be7 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4 Ae7 5.Cc3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 Be7 5.Nc3 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4 g6" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4 g6 5.Cc3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4 g6 5.Cc3 Ag7" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 Bg7 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4 g6 5.Cc3 Ag7 6.Cf3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 Bg7 6.Nf3 * A44 "Benoni Antigua: Checa, 3.c4 d6 4.e4 g6 5.Cc3 Ag7 6.Ad3" 1.d4 c5 2.d5 e5 3.c4 d6 4.e4 g6 5.Nc3 Bg7 6.Bd3 * A44 "Benoni Antigua: Checa, 3.e4" 1.d4 c5 2.d5 e5 3.e4 * A44 "Benoni Antigua: Checa, 3.e4 d6" 1.d4 c5 2.d5 e5 3.e4 d6 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cf3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nf3 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Ab5+" 1.d4 c5 2.d5 e5 3.e4 d6 4.Bb5+ * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Ad3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Bd3 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 Cf6" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Nf6 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 g6" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 g6 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 a6" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 a6 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 a6 5.a4 Ae7" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 a6 5.a4 Be7 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 Ae7" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 Ae7 5.Ab5+" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 5.Bb5+ * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 Ae7 5.Cf3" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 5.Nf3 * A44 "Benoni Antigua: Checa, 3.e4 d6 4.Cc3 Ae7 5.Cf3 Ag4" 1.d4 c5 2.d5 e5 3.e4 d6 4.Nc3 Be7 5.Nf3 Bg4 * A45 "Peón Dama: India" 1.d4 Nf6 * A45 "India: Ataque Carapálida" 1.d4 Nf6 2.f3 * A45 "India: Gambito Blackmar-Diemer (sin Cc3)" 1.d4 Nf6 2.f3 d5 3.e4 * A45 "India: Ataque Gedult" 1.d4 Nf6 2.f3 d5 3.g4 * A45 "India: Gambito Omega" 1.d4 Nf6 2.e4 * A45 "India: Gambito Arafat" 1.d4 Nf6 2.e4 Nxe4 3.Bd3 Nf6 4.Nf3 * A45 "India: Gambito Gibbins" 1.d4 Nf6 2.g4 * A45 "India: Gambito Gibbins, Defensa Oshima" 1.d4 Nf6 2.g4 e5 * A45 "India: Gambito Gibbins Aceptado" 1.d4 Nf6 2.g4 Nxg4 * A45 "India: Apertura Canard" 1.d4 Nf6 2.f4 * A45 "India: 2.Cd2" 1.d4 Nf6 2.Nd2 * A45 "India: Gambito Lazard" 1.d4 Nf6 2.Nd2 e5 * A45 "India: 2.e3" 1.d4 Nf6 2.e3 * A45 "India: 2.e3 e6" 1.d4 Nf6 2.e3 e6 * A45 "India: 2.e3 g6" 1.d4 Nf6 2.e3 g6 * A45 "India: 2.c3" 1.d4 Nf6 2.c3 * A45 "India: 2.c3 g6" 1.d4 Nf6 2.c3 g6 * A45 "India: 2.c3 g6 3.Ag5" 1.d4 Nf6 2.c3 g6 3.Bg5 * A45 "India: 2.Cc3" 1.d4 Nf6 2.Nc3 * A45 "India: 2.Af4" 1.d4 Nf6 2.Bf4 * A45 "India: 2.g3" 1.d4 Nf6 2.g3 * A45 "India: 2.g3 g6" 1.d4 Nf6 2.g3 g6 * A45 "India: 2.g3 c5" 1.d4 Nf6 2.g3 c5 * A45 "India: 2.g3 c5 3.d5 b5" 1.d4 Nf6 2.g3 c5 3.d5 b5 * A45 "Apertura Trompowsky" 1.d4 Nf6 2.Bg5 * A45 "Trompowsky 2...d6" 1.d4 Nf6 2.Bg5 d6 * A45 "Trompowsky 2...d6 3.Cc3" 1.d4 Nf6 2.Bg5 d6 3.Nc3 * A45 "Trompowsky 2...d6 3.Axf6" 1.d4 Nf6 2.Bg5 d6 3.Bxf6 * A45 "Trompowsky 2...g6" 1.d4 Nf6 2.Bg5 g6 * A45 "Trompowsky 2...g6 3.Cc3" 1.d4 Nf6 2.Bg5 g6 3.Nc3 * A45 "Trompowsky 2...g6 3.Axf6" 1.d4 Nf6 2.Bg5 g6 3.Bxf6 * A45 "Trompowsky 2...g6 3.Axf6 exf6 4.e3" 1.d4 Nf6 2.Bg5 g6 3.Bxf6 exf6 4.e3 * A45 "Trompowsky: 2...e6" 1.d4 Nf6 2.Bg5 e6 * A45 "Trompowsky: 2...e6 3.Cc3" 1.d4 Nf6 2.Bg5 e6 3.Nc3 * A45 "Trompowsky: 2...e6 3.e3" 1.d4 Nf6 2.Bg5 e6 3.e3 * A45 "Trompowsky: 2...e6 3.Cd2" 1.d4 Nf6 2.Bg5 e6 3.Nd2 * A45 "Trompowsky: 2...e6 3.e4" 1.d4 Nf6 2.Bg5 e6 3.e4 * A45 "Trompowsky: 2...e6 3.e4 h6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6 Dxf6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6 Dxf6 5.c3" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.c3 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6 Dxf6 5.Cc3" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6 Dxf6 5.Cc3 Ab4" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 Bb4 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6 Dxf6 5.Cc3 d6" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6 Dxf6 5.Cc3 d6 6.Dd2" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 6.Qd2 * A45 "Trompowsky: 2...e6 3.e4 h6 4.Axf6 Dxf6 5.Cc3 d6 6.Dd2 g5" 1.d4 Nf6 2.Bg5 e6 3.e4 h6 4.Bxf6 Qxf6 5.Nc3 d6 6.Qd2 g5 * A45 "Trompowsky: 2...c5" 1.d4 Nf6 2.Bg5 c5 * A45 "Trompowsky: 2...c5 3.dxc5" 1.d4 Nf6 2.Bg5 c5 3.dxc5 * A45 "Trompowsky: 2...c5 3.Cc3" 1.d4 Nf6 2.Bg5 c5 3.Nc3 * A45 "Trompowsky: 2...c5 3.d5" 1.d4 Nf6 2.Bg5 c5 3.d5 * A45 "Trompowsky: 2...c5 3.d5 Db6" 1.d4 Nf6 2.Bg5 c5 3.d5 Qb6 * A45 "Trompowsky: 2...c5 3.d5 Db6 4.Cc3" 1.d4 Nf6 2.Bg5 c5 3.d5 Qb6 4.Nc3 * A45 "Trompowsky: 2...c5 3.Axf6" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5 Db6" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5 Db6 5.Dc1" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5 Db6 5.Dc1 f5" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5 Db6 5.Dc1 f5 6.c4" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.c4 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5 Db6 5.Dc1 f5 6.g3" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.g3 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5 Db6 5.Dc1 f5 6.e3" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.e3 * A45 "Trompowsky: 2...c5 3.Axf6 gxf6 4.d5 Db6 5.Dc1 f5 6.e3 Ag7" 1.d4 Nf6 2.Bg5 c5 3.Bxf6 gxf6 4.d5 Qb6 5.Qc1 f5 6.e3 Bg7 * A45 "Trompowsky: 2...Ce4" 1.d4 Nf6 2.Bg5 Ne4 * A45 "Trompowsky: 2...Ce4 3.h4" 1.d4 Nf6 2.Bg5 Ne4 3.h4 * A45 "Trompowsky: 2...Ce4 3.h4 d5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 d5 * A45 "Trompowsky: 2...Ce4 3.h4 c5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 c5 * A45 "Trompowsky: 2...Ce4 3.h4 c5 4.dxc5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 c5 4.dxc5 * A45 "Trompowsky: 2...Ce4 3.h4 c5 4.d5" 1.d4 Nf6 2.Bg5 Ne4 3.h4 c5 4.d5 * A45 "Trompowsky: 2...Ce4 3.Ah4" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 * A45 "Trompowsky: 2...Ce4 3.Ah4 g5" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 g5 * A45 "Trompowsky: 2...Ce4 3.Ah4 d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 d5 * A45 "Trompowsky: 2...Ce4 3.Ah4 c5" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 c5 * A45 "Trompowsky: 2...Ce4 3.Ah4 c5 4.f3" 1.d4 Nf6 2.Bg5 Ne4 3.Bh4 c5 4.f3 * A45 "Trompowsky: 2...Ce4 3.Af4" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 * A45 "Trompowsky: Variante Borg" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 g5 * A45 "Trompowsky: 2...Ce4 3.Af4 d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 * A45 "Trompowsky: 2...Ce4 3.Af4 d5 4.Cd2" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.Nd2 * A45 "Trompowsky: 2...Ce4 3.Af4 d5 4.f3" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.f3 * A45 "Trompowsky: 2...Ce4 3.Af4 d5 4.f3 Cf6" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.f3 Nf6 * A45 "Trompowsky: 2...Ce4 3.Af4 d5 4.e3" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.e3 * A45 "Trompowsky: 2...Ce4 3.Af4 d5 4.e3 c5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 d5 4.e3 c5 * A45 "Trompowsky: 2...Ce4 3.Af4 c5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 * A45 "Trompowsky: 2...Ce4 3.Af4 c5 4.d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.d5 * A45 "Trompowsky: 2...Ce4 3.Af4 c5 4.d5 Db6" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.d5 Qb6 * A45 "Trompowsky: 2...Ce4 3.Af4 c5 4.f3" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 * A45 "Trompowsky: 2...Ce4 3.Af4 c5 4.f3 Da5+" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 Qa5+ * A45 "Trompowsky: 2...Ce4 3.Af4 c5 4.f3 Da5+ 5.c3 Cf6 6.d5" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 Qa5+ 5.c3 Nf6 6.d5 * A45 "Trompowsky: 2...Ce4 3.Af4 c5 4.f3 Da5+ 5.c3 Cf6 6.Cd2" 1.d4 Nf6 2.Bg5 Ne4 3.Bf4 c5 4.f3 Qa5+ 5.c3 Nf6 6.Nd2 * A46 "India: 2.Cf3" 1.d4 Nf6 2.Nf3 * A46 "India: Defensa Döry" 1.d4 Nf6 2.Nf3 Ne4 * A46 "India: 2.Cf3 b5" 1.d4 Nf6 2.Nf3 b5 * A46 "India: 2.Cf3 b5 3.g3" 1.d4 Nf6 2.Nf3 b5 3.g3 * A46 "Neo-Benoni" 1.d4 Nf6 2.Nf3 c5 * A46 "Neo-Benoni 3.dxc5" 1.d4 Nf6 2.Nf3 c5 3.dxc5 * A46 "Neo-Benoni: 3.e3" 1.d4 Nf6 2.Nf3 c5 3.e3 * A46 "Neo-Benoni: 3.e3 cxd4" 1.d4 Nf6 2.Nf3 c5 3.e3 cxd4 * A46 "Neo-Benoni: 3.c3" 1.d4 Nf6 2.Nf3 c5 3.c3 * A46 "Neo-Benoni: 3.c3 cxd4" 1.d4 Nf6 2.Nf3 c5 3.c3 cxd4 * A46 "Neo-Benoni: 3.c3 b6" 1.d4 Nf6 2.Nf3 c5 3.c3 b6 * A46 "Neo-Benoni: 3.c3 g6" 1.d4 Nf6 2.Nf3 c5 3.c3 g6 * A46 "Neo-Benoni: 3.c3 e6" 1.d4 Nf6 2.Nf3 c5 3.c3 e6 * A46 "Neo-Benoni: 3.g3" 1.d4 Nf6 2.Nf3 c5 3.g3 * A46 "Neo-Benoni: 3.g3 cxd4" 1.d4 Nf6 2.Nf3 c5 3.g3 cxd4 * A46 "Neo-Benoni: 3.g3 cxd4 4.Cxd4" 1.d4 Nf6 2.Nf3 c5 3.g3 cxd4 4.Nxd4 * A46 "India: 2.Cf3 d6" 1.d4 Nf6 2.Nf3 d6 * A46 "India: 2.Cf3 d6 3.g3" 1.d4 Nf6 2.Nf3 d6 3.g3 * A46 "India: 2.Cf3 d6 3.Ag5" 1.d4 Nf6 2.Nf3 d6 3.Bg5 * A46 "India: 2.Cf3 d6 3.Ag5 Cbd7" 1.d4 Nf6 2.Nf3 d6 3.Bg5 Nbd7 * A46 "India: 2.Cf3 e6" 1.d4 Nf6 2.Nf3 e6 * A46 "India: 2.Cf3 e6 3.c3" 1.d4 Nf6 2.Nf3 e6 3.c3 * A46 "India: 2.Cf3 e6 3.c3 b6" 1.d4 Nf6 2.Nf3 e6 3.c3 b6 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.c3 b6 4.Ag5" 1.d4 Nf6 2.Nf3 e6 3.c3 b6 4.Bg5 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.e3" 1.d4 Nf6 2.Nf3 e6 3.e3 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.e3 c5" 1.d4 Nf6 2.Nf3 e6 3.e3 c5 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.e3 c5 4.Ad3" 1.d4 Nf6 2.Nf3 e6 3.e3 c5 4.Bd3 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3" 1.d4 Nf6 2.Nf3 e6 3.g3 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 b5" 1.d4 Nf6 2.Nf3 e6 3.g3 b5 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 b5 4.Ag2 Ab7" 1.d4 Nf6 2.Nf3 e6 3.g3 b5 4.Bg2 Bb7 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 b5 4.Ag2 Ab7 5.O-O" 1.d4 Nf6 2.Nf3 e6 3.g3 b5 4.Bg2 Bb7 5.O-O * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 c5" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 c5 4.Ag2" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 c5 4.Ag2 cxd4" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 cxd4 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 c5 4.Ag2 Cc6" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Nc6 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 c5 4.Ag2 Dc7" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Qc7 * A46 "India: 1.d4 Cf6 2.Cf3 e6 3.g3 c5 4.Ag2 Da5+" 1.d4 Nf6 2.Nf3 e6 3.g3 c5 4.Bg2 Qa5+ * A46 "India: Sistema de Londres" 1.d4 Nf6 2.Nf3 e6 3.Bf4 * A46 "India: Londres, 3...c5" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 * A46 "India: Londres, 3...c5 4.e3" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 4.e3 * A46 "India: Londres, 3...c5 4.e3 Db6" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 4.e3 Qb6 * A46 "India: Londres, 3...c5 4.c3" 1.d4 Nf6 2.Nf3 e6 3.Bf4 c5 4.c3 * A46 "Ataque Torre" 1.d4 Nf6 2.Nf3 e6 3.Bg5 * A46 "Ataque Torre: 3...b6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 b6 * A46 "Ataque Torre: 3...Ae7" 1.d4 Nf6 2.Nf3 e6 3.Bg5 Be7 * A46 "Ataque Torre: 3...c5" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 * A46 "Ataque Torre: Gambito Wagner" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e4 * A46 "Ataque Torre: 3...c5 4.c3" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 * A46 "Ataque Torre: 3...c5 4.c3 Db6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 Qb6 * A46 "Ataque Torre: 3...c5 4.c3 h6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 h6 * A46 "Ataque Torre: 3...c5 4.c3 h6 5.Ah4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.c3 h6 5.Bh4 * A46 "Ataque Torre: 3...c5 4.e3" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 * A46 "Ataque Torre: 3...c5 4.e3 cxd4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 cxd4 * A46 "Ataque Torre: 3...c5 4.e3 Db6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 Qb6 * A46 "Ataque Torre: 3...c5 4.e3 Ae7" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 Be7 * A46 "Ataque Torre: 3...c5 4.e3 h6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 h6 * A46 "Ataque Torre: 3...c5 4.e3 h6 5.Ah4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 c5 4.e3 h6 5.Bh4 * A46 "Ataque Torre: 3...h6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 * A46 "Ataque Torre: 3...h6 4.Ah4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bh4 * A46 "Ataque Torre: 3...h6 4.Ah4 g5" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bh4 g5 * A46 "Ataque Torre: 3...h6 4.Axf6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4 b6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 b6 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4 c5" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 c5 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4 d6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4 d6 6.Cc3" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4 d6 6.Cc3 g6" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 g6 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4 d6 6.Cc3 Cd7" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 Nd7 * A46 "Ataque Torre: 3...h6 4.Axf6 Dxf6 5.e4 d6 6.Cc3 Cd7 7.Dd2" 1.d4 Nf6 2.Nf3 e6 3.Bg5 h6 4.Bxf6 Qxf6 5.e4 d6 6.Nc3 Nd7 7.Qd2 * A47 "Neo-India de Dama: 1.d4 Cf6 2.Cf3 b6" 1.d4 Nf6 2.Nf3 b6 * A47 "Neo-India de Dama: 2..b6 3.Af4" 1.d4 Nf6 2.Nf3 b6 3.Bf4 * A47 "Neo-India de Dama: 2..b6 3.Af4 e6" 1.d4 Nf6 2.Nf3 b6 3.Bf4 e6 * A47 "Neo-India de Dama: 2..b6 3.Af4 e6 4.e3" 1.d4 Nf6 2.Nf3 b6 3.Bf4 e6 4.e3 * A47 "Neo-India de Dama: 2..b6 3.Af4 e6 4.e3 c5" 1.d4 Nf6 2.Nf3 b6 3.Bf4 e6 4.e3 c5 * A47 "Neo-India de Dama: 2..b6 3.Af4 Ab7" 1.d4 Nf6 2.Nf3 b6 3.Bf4 Bb7 * A47 "Neo-India de Dama: 2..b6 3.Af4 Ab7 4.e3" 1.d4 Nf6 2.Nf3 b6 3.Bf4 Bb7 4.e3 * A47 "Neo-India de Dama: 2..b6 3.Af4 Ab7 4.e3 e6" 1.d4 Nf6 2.Nf3 b6 3.Bf4 Bb7 4.e3 e6 * A47 "Neo-India de Dama: 2..b6 3.Ag5" 1.d4 Nf6 2.Nf3 b6 3.Bg5 * A47 "Neo-India de Dama: 2..b6 3.Ag5 Ab7" 1.d4 Nf6 2.Nf3 b6 3.Bg5 Bb7 * A47 "Neo-India de Dama: 2..b6 3.e3" 1.d4 Nf6 2.Nf3 b6 3.e3 * A47 "Neo-India de Dama: 2..b6 3.e3 e6" 1.d4 Nf6 2.Nf3 b6 3.e3 e6 * A47 "Neo-India de Dama: 2..b6 3.e3 e6 4.Ad3" 1.d4 Nf6 2.Nf3 b6 3.e3 e6 4.Bd3 * A47 "Neo-India de Dama: 2..b6 3.e3 e6 4.Ad3 c5" 1.d4 Nf6 2.Nf3 b6 3.e3 e6 4.Bd3 c5 * A47 "Neo-India de Dama: 2..b6 3.e3 Ab7" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 * A47 "Neo-India de Dama: 2..b6 3.e3 Ab7 4.Ad3" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 * A47 "Neo-India de Dama: 2..b6 3.e3 Ab7 4.Ad3 e6" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 e6 * A47 "Neo-India de Dama: 2..b6 3.e3 Ab7 4.Ad3 e6 5.O-O" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 e6 5.O-O * A47 "Neo-India de Dama: 2..b6 3.e3 Ab7 4.Ad3 e6 5.O-O c5" 1.d4 Nf6 2.Nf3 b6 3.e3 Bb7 4.Bd3 e6 5.O-O c5 * A47 "Neo-India de Dama: 2..b6 3.g3" 1.d4 Nf6 2.Nf3 b6 3.g3 * A47 "Neo-India de Dama: 2..b6 3.g3 e6" 1.d4 Nf6 2.Nf3 b6 3.g3 e6 * A47 "Neo-India de Dama: 2..b6 3.g3 Ab7 4.Ag2" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 * A47 "Neo-India de Dama: 2..b6 3.g3 Ab7 4.Ag2 e6" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 e6 * A47 "Neo-India de Dama: Sistema de Marienbad" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 c5 * A47 "Neo-India de Dama: Sistema de Marienbad, Variante Berg" 1.d4 Nf6 2.Nf3 b6 3.g3 Bb7 4.Bg2 c5 5.c4 cxd4 6.Qxd4 * A48 "Neo-India de Rey: Defensa India del Este, 1.d4 Cf6 2.Cf3 g6" 1.d4 Nf6 2.Nf3 g6 * A48 "Neo-India de Rey: Defensa India del Este, 2..g6 3.Cbd2" 1.d4 Nf6 2.Nf3 g6 3.Nbd2 * A48 "Neo-India de Rey: Defensa India del Este, 2..g6 3.c3" 1.d4 Nf6 2.Nf3 g6 3.c3 * A48 "Neo-India de Rey: Defensa India del Este, 2..g6 3.c3 Ag7" 1.d4 Nf6 2.Nf3 g6 3.c3 Bg7 * A48 "Neo-India de Rey: Defensa India del Este, 2..g6 3.e3" 1.d4 Nf6 2.Nf3 g6 3.e3 * A48 "Neo-India de Rey: Defensa India del Este, 2..g6 3.e3 Ag7" 1.d4 Nf6 2.Nf3 g6 3.e3 Bg7 * A48 "Neo-India de Rey: Defensa India del Este, 2..g6 3.e3 c5" 1.d4 Nf6 2.Nf3 g6 3.e3 c5 * A48 "Neo-India de Rey: Defensa India del Este, 1.d4 Cf6 2.Cf3 g6 3.Cc3" 1.d4 Nf6 2.Nf3 g6 3.Nc3 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4" 1.d4 Nf6 2.Nf3 g6 3.Bf4 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7 4.Cbd2" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.Nbd2 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7 4.c3" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.c3 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7 4.e3" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7 4.e3 O-O" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7 4.e3 O-O 5.Ae2" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O 5.Be2 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7 4.e3 O-O 5.Ae2 d6" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O 5.Be2 d6 * A48 "Neo-India de Rey: Sistema de Londres, 2..g6 3.Af4 Ag7 4.e3 O-O 5.Ae2 d6 6.h3" 1.d4 Nf6 2.Nf3 g6 3.Bf4 Bg7 4.e3 O-O 5.Be2 d6 6.h3 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5" 1.d4 Nf6 2.Nf3 g6 3.Bg5 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ce4" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Ne4 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.c3" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.c3 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.e3" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.e3 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cc3" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nc3 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O 5.e4" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.e4 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O 5.e4 d6" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.e4 d6 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O 5.e4 d5" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.e4 d5 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O 5.c3" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O 5.c3 d6" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 d6 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O 5.c3 d6 6.e4" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 d6 6.e4 * A48 "Neo-India de Rey: Ataque Torre, 2..g6 3.Ag5 Ag7 4.Cbd2 O-O 5.c3 d6 6.e4 c5" 1.d4 Nf6 2.Nf3 g6 3.Bg5 Bg7 4.Nbd2 O-O 5.c3 d6 6.e4 c5 * A49 "Neo-India de Rey: Sistema del Fianchetto, 1.d4 Cf6 2.Cf3 g6 3.g3" 1.d4 Nf6 2.Nf3 g6 3.g3 * A49 "Neo-India de Rey: Sistema del Fianchetto, 2..g6 3.g3 Ag7" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 * A49 "Neo-India de Rey: Sistema del Fianchetto, 2..g6 3.g3 Ag7 4.Ag2" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 * A49 "Neo-India de Rey: Sistema del Fianchetto, 2..g6 3.g3 Ag7 4.Ag2 O-O" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O * A49 "Neo-India de Rey: Sistema del Fianchetto Doble, 2..g6 3.g3 Ag7 4.Ag2 O-O 5.b3 d6 6.Ab2" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.b3 d6 6.Bb2 * A49 "Neo-India de Rey: Sistema del Fianchetto, 2..g6 3.g3 Ag7 4.Ag2 O-O 5.O-O" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.O-O * A49 "Neo-India de Rey: Sistema del Fianchetto, 2..g6 3.g3 Ag7 4.Ag2 O-O 5.O-O d6" 1.d4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.O-O d6 * A50 "India: 2.c4" 1.d4 Nf6 2.c4 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich)" 1.d4 Nf6 2.c4 Nc6 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich), 3.Cc3" 1.d4 Nf6 2.c4 Nc6 3.Nc3 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich), 3.Cf3" 1.d4 Nf6 2.c4 Nc6 3.Nf3 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich), 3.Cf3 d6" 1.d4 Nf6 2.c4 Nc6 3.Nf3 d6 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich), 3.Cf3 e6" 1.d4 Nf6 2.c4 Nc6 3.Nf3 e6 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich), 3.Cf3 e6 4.a3" 1.d4 Nf6 2.c4 Nc6 3.Nf3 e6 4.a3 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich), 3.Cf3 e6 4.Cc3" 1.d4 Nf6 2.c4 Nc6 3.Nf3 e6 4.Nc3 * A50 "India: Tango Caballo Negro (Defensa Mexicana-Defensa Kevitz-Trajkovich), 3.Cf3 e6 4.g3" 1.d4 Nf6 2.c4 Nc6 3.Nf3 e6 4.g3 * A50 "India: Eslava-India, 1.d4 Cf6 2.c4 c6" 1.d4 Nf6 2.c4 c6 * A50 "India: Eslava-India, 1.d4 Cf6 2.c4 c6 3.Cf3 3.Cf3" 1.d4 Nf6 2.c4 c6 3.Nf3 * A50 "India: Eslava-India, 1.d4 Cf6 2.c4 c6 3.Cc3 3.Cc3" 1.d4 Nf6 2.c4 c6 3.Nc3 * A50 "India: 2.c4 a6" 1.d4 Nf6 2.c4 a6 * A50 "India: India de Dama Acelerada, 1.d4 Cf6 2.c4 b6" 1.d4 Nf6 2.c4 b6 * A50 "India: India de Dama Acelerada, 1.d4 Cf6 2.c4 b6 3.Cc3 Ab7" 1.d4 Nf6 2.c4 b6 3.Nc3 Bb7 * A50 "India: India de Dama Acelerada, 1.d4 Cf6 2.c4 b6 3.Cc3 Ab7 4.Dc2" 1.d4 Nf6 2.c4 b6 3.Nc3 Bb7 4.Qc2 * A51 "Defensa de Budapest" 1.d4 Nf6 2.c4 e5 * A51 "Defensa de Budapest: 3.e3" 1.d4 Nf6 2.c4 e5 3.e3 * A51 "Defensa de Budapest: 3.d5" 1.d4 Nf6 2.c4 e5 3.d5 * A51 "Defensa de Budapest: 3.dxe5" 1.d4 Nf6 2.c4 e5 3.dxe5 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, Variante Steiner" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Qc2 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, 4.Cd2" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nd2 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, Variante Alekhine, 4.Cd2 Cc5 5.Cgf3 Cc6 6.g3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nd2 Nc5 5.Ngf3 Nc6 6.g3 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, 4.a3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.a3 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, Defensa Moderna, 4.a3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.a3 b6 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, Variante Vasconcellos, 4.a3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.a3 Qh4 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, 4.Cf3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, Variante Bonsdorff, 4.Cf3 b6" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 b6 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, 4.Cf3 Ab4+" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 Bb4+ * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, Variante Smyslov, 4.Cf3 Ab4+ 5.Ad2" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 Bb4+ 5.Bd2 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, 4.Cf3 Cc6" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 Nc6 * A51 "Defensa de Budapest: Gambito Fajarowicz-Richter, 4.Cf3 Cc6 5.a3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ne4 4.Nf3 Nc6 5.a3 * A52 "Defensa de Budapest: 3...Cg4" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 * A52 "Defensa de Budapest: 3...Cg4 4.e3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e3 * A52 "Defensa de Budapest: Variante Alekhine" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e4 * A52 "Defensa de Budapest: Variante Alekhine, Gambito Balogh" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e4 d6 * A52 "Defensa de Budapest: Variante Alekhine, Variante Abonyi" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.e4 Nxe5 5.f4 Nec6 * A52 "Defensa de Budapest: Variante Adler" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Nf3 * A52 "Defensa de Budapest: Adler, 4...Ac5" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Nf3 Bc5 * A52 "Defensa de Budapest: Adler, 4...Ac5 5.e3 Cc6 6.Ae2" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Nf3 Bc5 5.e3 Nc6 6.Be2 * A52 "Defensa de Budapest: Variante Rubinstein" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 * A52 "Defensa de Budapest: Rubinstein, 4...Ab4+" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Bb4+ * A52 "Defensa de Budapest: Rubinstein, 4...Cc6" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 * A52 "Defensa de Budapest: Rubinstein, Línea Principal" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 5.Nf3 Bb4+ * A52 "Defensa de Budapest: Rubinstein, Línea Principal, 6.Cbd2" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 5.Nf3 Bb4+ 6.Nbd2 * A52 "Defensa de Budapest: Rubinstein, Línea Principal, 6.Cbd2 De7 7.e3" 1.d4 Nf6 2.c4 e5 3.dxe5 Ng4 4.Bf4 Nc6 5.Nf3 Bb4+ 6.Nbd2 Qe7 7.e3 * A53 "India Antigua" 1.d4 Nf6 2.c4 d6 * A53 "India Antigua: 3.g3" 1.d4 Nf6 2.c4 d6 3.g3 * A53 "India Antigua: 3.Cf3" 1.d4 Nf6 2.c4 d6 3.Nf3 * A53 "India Antigua: 3.Cf3 c6" 1.d4 Nf6 2.c4 d6 3.Nf3 c6 * A53 "India Antigua: 3.Cf3 Cbd7" 1.d4 Nf6 2.c4 d6 3.Nf3 Nbd7 * A53 "India Antigua: 3.Cf3 Af5" 1.d4 Nf6 2.c4 d6 3.Nf3 Bf5 * A53 "India Antigua: 3.Cf3 Ag4" 1.d4 Nf6 2.c4 d6 3.Nf3 Bg4 * A53 "India Antigua: 3.Cf3 Ag4 4.Db3" 1.d4 Nf6 2.c4 d6 3.Nf3 Bg4 4.Qb3 * A53 "India Antigua: 3.Cf3 Ag4 4.Cc3" 1.d4 Nf6 2.c4 d6 3.Nf3 Bg4 4.Nc3 * A53 "India Antigua: 3.Cc3" 1.d4 Nf6 2.c4 d6 3.Nc3 * A53 "India Antigua: 3.Cc3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 c6 * A53 "India Antigua: 3.Cc3 Cbd7" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 * A53 "India Antigua: 3.Cc3 Cbd7 4.Cf3" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.Nf3 * A53 "India Antigua: 3.Cc3 Cbd7 4.e4" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 * A53 "India Antigua: 3.Cc3 Cbd7 4.e4 e5" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 e5 * A53 "India Antigua: 3.Cc3 Cbd7 4.e4 e5 5.d5" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 e5 5.d5 * A53 "India Antigua: 3.Cc3 Cbd7 4.e4 e5 5.Cge2" 1.d4 Nf6 2.c4 d6 3.Nc3 Nbd7 4.e4 e5 5.Nge2 * A53 "India Antigua: Janowski" 1.d4 Nf6 2.c4 d6 3.Nc3 Bf5 * A53 "India Antigua: Ucraniana" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 * A53 "India Antigua: Ucraniana, 4.e4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.e4 * A53 "India Antigua: Ucraniana, 4.e3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.e3 * A53 "India Antigua: Dus-Khotimirsky" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.e3 Nbd7 5.Bd3 * A53 "India Antigua: Ucraniana, 4.d5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.d5 * A53 "India Antigua: Ucraniana, 4.d5 Ae7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.d5 Be7 * A53 "India Antigua: Ucraniana, 4.dxe5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 * A53 "India Antigua: Ucraniana, Intercambio de Damas" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ Kxd8 * A53 "India Antigua: Ucraniana, Intercambio de Damas, 6.Cf3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ Kxd8 6.Nf3 * A53 "India Antigua: Ucraniana, Intercambio de Damas, 6.Cf3 Cfd7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ Kxd8 6.Nf3 Nfd7 * A54 "India Antigua: 4.Cf3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 * A54 "India Antigua: 4.Cf3 exd4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 exd4 * A54 "India Antigua: 4.Cf3 Cc6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nc6 * A54 "India Antigua: 4.Cf3 e4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 e4 * A54 "India Antigua: 4.Cf3 e4 5.Cg5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 e4 5.Ng5 * A54 "India Antigua: 4.Cf3 Cbd7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 * A54 "India Antigua: 5.e3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e3 * A54 "India Antigua: 5.g3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 * A54 "India Antigua: 5.g3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 c6 * A54 "India Antigua: 5.g3 c6 6.Ag2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 c6 6.Bg2 * A54 "India Antigua: 5.g3 g6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 g6 * A54 "India Antigua: 5.g3 g6 6.Ag2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 g6 6.Bg2 * A54 "India Antigua: 5.g3 g6 6.Ag2 Ag7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 g6 6.Bg2 Bg7 * A54 "India Antigua: 5.g3 Ae7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 * A54 "India Antigua: 5.g3 Ae7 6.Ag2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 * A54 "India Antigua: 5.g3 Ae7 6.Ag2 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O * A54 "India Antigua: 5.g3 Ae7 6.Ag2 O-O 7.O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O 7.O-O * A54 "India Antigua: 5.g3 Ae7, Línea Principal" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O 7.O-O c6 * A54 "India Antigua: 5.g3 Ae7, Línea Principal, 8.Dc2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.g3 Be7 6.Bg2 O-O 7.O-O c6 8.Qc2 * A54 "India Antigua: 5.Ag5" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 * A54 "India Antigua: 5.Ag5 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 c6 * A54 "India Antigua: 5.Ag5 Ae7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 * A54 "India Antigua: 5.Ag5 Ae7 6.e3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 * A54 "India Antigua: 5.Ag5 Ae7 6.e3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 c6 * A54 "India Antigua: 5.Ag5 Ae7 6.e3 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 O-O * A54 "India Antigua: 5.Ag5 Ae7 6.e3 O-O 7.Dc2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 O-O 7.Qc2 * A54 "India Antigua: 5.Ag5 Ae7 6.e3 O-O 7.Dc2 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.Bg5 Be7 6.e3 O-O 7.Qc2 c6 * A55 "India Antigua: 5.e4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 * A55 "India Antigua: 5.e4 g6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 g6 * A55 "India Antigua: 5.e4 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 c6 * A55 "India Antigua: 5.e4 c6 6.Ae2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 c6 6.Be2 * A55 "India Antigua: 5.e4 Ae7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 * A55 "India Antigua: 5.e4 Ae7 6.g3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 * A55 "India Antigua: 5.e4 Ae7 6.g3 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 O-O * A55 "India Antigua: 5.e4 Ae7 6.g3 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 * A55 "India Antigua: 5.e4 Ae7 6.g3 c6 7.Ag2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 * A55 "India Antigua: 5.e4 Ae7 6.g3 c6 7.Ag2 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O * A55 "India Antigua: 5.e4 Ae7 6.g3 c6 7.Ag2 O-O 8.O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O * A55 "India Antigua: 5.e4 Ae7 6.g3 c6 7.Ag2 O-O 8.O-O Dc7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O Qc7 * A55 "India Antigua: 5.e4 Ae7 6.g3 c6 7.Ag2 O-O 8.O-O Te8" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O Re8 * A55 "India Antigua: 5.e4 Ae7 6.g3 c6 7.Ag2 O-O 8.O-O a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O a6 * A55 "India Antigua: 5.e4 Ae7 6.g3 c6 7.Ag2 O-O 8.O-O a6 9.a4" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.g3 c6 7.Bg2 O-O 8.O-O a6 9.a4 * A55 "India Antigua: 5.e4 Ae7 6.Ae2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 * A55 "India Antigua: 5.e4 Ae7 6.Ae2 O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 O-O * A55 "India Antigua: 5.e4 Ae7 6.Ae2 c6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 * A55 "India Antigua: 5.e4 Ae7 6.Ae2 c6 7.O-O" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O * A55 "India Antigua: 5.e4 Ae7 6.Ae2 c6 7.O-O a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O a6 * A55 "India Antigua: Línea Principal" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O * A55 "India Antigua: Línea Principal, 8.h3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.h3 * A55 "India Antigua: Línea Principal, 8.Ae3" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Be3 * A55 "India Antigua: Línea Principal, 8.Ae3 a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Be3 a6 * A55 "India Antigua: Línea Principal, 8.Dc2" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 * A55 "India Antigua: Línea Principal, 8.Dc2 Te8" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 Re8 * A55 "India Antigua: Línea Principal, 8.Dc2 Dc7" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 Qc7 * A55 "India Antigua: Línea Principal, 8.Dc2 a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Qc2 a6 * A55 "India Antigua: Línea Principal, 8.Te1" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 * A55 "India Antigua: Línea Principal, 8.Te1 Te8" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 Re8 * A55 "India Antigua: Línea Principal, 8.Te1 a6" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 a6 * A55 "India Antigua: Línea Principal, 8.Te1 a6 9.Af1" 1.d4 Nf6 2.c4 d6 3.Nc3 e5 4.Nf3 Nbd7 5.e4 Be7 6.Be2 c6 7.O-O O-O 8.Re1 a6 9.Bf1 * A56 "Benoni: 2...c5" 1.d4 Nf6 2.c4 c5 * A56 "Benoni: 2...c5 3.e3" 1.d4 Nf6 2.c4 c5 3.e3 * A56 "Benoni: 2...c5 3.e3 e6" 1.d4 Nf6 2.c4 c5 3.e3 e6 * A56 "Benoni: 2...c5 3.e3 g6" 1.d4 Nf6 2.c4 c5 3.e3 g6 * A56 "Benoni: 2...c5 3.e3 g6 4.Cc3" 1.d4 Nf6 2.c4 c5 3.e3 g6 4.Nc3 * A56 "Benoni: 3.dxc5" 1.d4 Nf6 2.c4 c5 3.dxc5 * A56 "Benoni: 3.d5" 1.d4 Nf6 2.c4 c5 3.d5 * A56 "Benoni: 3.d5 a6" 1.d4 Nf6 2.c4 c5 3.d5 a6 * A56 "Benoni: 3.d5 g6" 1.d4 Nf6 2.c4 c5 3.d5 g6 * A56 "Benoni: 3.d5 g6 4.Cc3" 1.d4 Nf6 2.c4 c5 3.d5 g6 4.Nc3 * A56 "Benoni: 3.d5 d6" 1.d4 Nf6 2.c4 c5 3.d5 d6 * A56 "Benoni: 3.d5 d6 4.Cc3 g6" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 * A56 "Benoni: Gambito Bronstein" 1.d4 Nf6 2.c4 c5 3.d5 g6 4.Nc3 d6 5.e4 b5 * A56 "Benoni: 3.d5 d6 4.Cc3 g6 5.e4 Ag7" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 5.e4 Bg7 * A56 "Benoni: Cuervo" 1.d4 Nf6 2.c4 c5 3.d5 Ne4 * A56 "Benoni: Checa" 1.d4 Nf6 2.c4 c5 3.d5 e5 * A56 "Benoni: Checa, 4.Cc3 d6" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 * A56 "Benoni: Checa, 5.e4 g6" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 g6 * A56 "Benoni: Checa, 5.e4 Ae7" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 * A56 "Benoni: Checa, 5.e4 Ae7 6.g3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 * A56 "Benoni: Checa, 5.e4 Ae7 6.g3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 O-O * A56 "Benoni: Checa, 5.e4 Ae7 6.g3 O-O 7.Ag2" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 O-O 7.Bg2 * A56 "Benoni: Checa, 5.e4 Ae7 6.g3 O-O 7.Ag2 Ce8" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.g3 O-O 7.Bg2 Ne8 * A56 "Benoni: Checa, 5.e4 Ae7 6.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Bd3 * A56 "Benoni: Checa, 5.e4 Ae7 6.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 * A56 "Benoni: Checa, 5.e4 Ae7 6.Cf3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 O-O * A56 "Benoni: Checa, 5.e4 Ae7 6.Cf3 O-O 7.h3" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 O-O 7.h3 * A56 "Benoni: Checa, 5.e4 Ae7 6.Cf3 O-O 7.Ae2" 1.d4 Nf6 2.c4 c5 3.d5 e5 4.Nc3 d6 5.e4 Be7 6.Nf3 O-O 7.Be2 * A57 "Gambito Benko" 1.d4 Nf6 2.c4 c5 3.d5 b5 * A57 "Gambito Benko: 4.a4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.a4 * A57 "Gambito Benko: 4.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nd2 * A57 "Gambito Benko: 4.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 * A57 "Gambito Benko: 4.Cf3 bxc4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 bxc4 * A57 "Gambito Benko: 4.Cf3 Ab7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 Bb7 * A57 "Gambito Benko: 4.Cf3 Ab7 5.a4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 Bb7 5.a4 * A57 "Gambito Benko: 4.Cf3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 g6 * A57 "Gambito Benko: 4.Cf3 g6 5.cxb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 g6 5.cxb5 * A57 "Gambito Benko: 4.Cf3 g6 5.cxb5 a6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.Nf3 g6 5.cxb5 a6 * A57 "Gambito Benko: 4.cxb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 * A57 "Gambito Benko: 4.cxb5 a6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 * A57 "Gambito Benko: 4.cxb5 a6 5.b6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 * A57 "Gambito Benko: 4.cxb5 a6 5.b6 Dxb6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 Qxb6 * A57 "Gambito Benko: 4.cxb5 a6 5.b6 d6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 d6 * A57 "Gambito Benko: 4.cxb5 a6 5.b6 e6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.b6 e6 * A57 "Gambito Benko: 4.cxb5 a6 5.e3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 * A57 "Gambito Benko: 4.cxb5 a6 5.e3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 g6 * A57 "Gambito Benko: 4.cxb5 a6 5.e3 g6 6.Cc3 d6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 g6 6.Nc3 d6 * A57 "Gambito Benko: 4.cxb5 a6 5.e3 g6 6.Cc3 Ag7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.e3 g6 6.Nc3 Bg7 * A57 "Gambito Benko: 4.cxb5 a6 5.f3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.f3 * A57 "Gambito Benko: 4.cxb5 a6 5.f3 e6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.f3 e6 * A57 "Gambito Benko: 4.cxb5 a6 5.f3 axb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.f3 axb5 * A57 "Gambito Benko: Variante Zaitsev" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 * A57 "Gambito Benko: Zaitsev, 5...Da5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 Qa5 * A57 "Gambito Benko: Zaitsev, 5...axb5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 * A57 "Gambito Benko: Zaitsev, 5...axb5 6.e4 b4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 * A57 "Gambito Benko: Zaitsev, 8.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Nf3 * A57 "Gambito Benko: Zaitsev, Ataque Nescafe Frappe" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Bc4 * A57 "Gambito Benko: Zaitsev, 8.Af4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Bf4 * A57 "Gambito Benko: Zaitsev, 8.Af4 g5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.Nc3 axb5 6.e4 b4 7.Nb5 d6 8.Bf4 g5 * A58 "Gambito Benko: 5.bxa6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 * A58 "Gambito Benko: 5.bxa6 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 g6 * A58 "Gambito Benko: 5.bxa6 Axa6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 * A58 "Gambito Benko: Aceptado, 6.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.g3 * A58 "Gambito Benko: Aceptado, 6.g3 d6 7.Ag2 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.g3 d6 7.Bg2 g6 * A58 "Gambito Benko: Aceptado, 6.g3 d6 7.Ag2 g6 8.b3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.g3 d6 7.Bg2 g6 8.b3 * A58 "Gambito Benko: Aceptado, 6.Cc3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 * A58 "Gambito Benko: Aceptado, 6.Cc3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 g6 * A58 "Gambito Benko: Aceptado, 6.Cc3 d6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 * A58 "Gambito Benko: Aceptado, 7.f4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.f4 * A58 "Gambito Benko: Aceptado, 7.f4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.f4 g6 * A58 "Gambito Benko: Aceptado, 7.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.g3 * A58 "Gambito Benko: Aceptado, 7.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.g3 g6 * A58 "Gambito Benko: Aceptado, 7.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 * A58 "Gambito Benko: Aceptado, 7.Cf3 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 * A58 "Gambito Benko: Aceptado, 7.Cf3 g6 8.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.Nd2 * A58 "Gambito Benko: Aceptado, 7.Cf3 g6 8.Cd2 Da5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.Nd2 Qa5 * A58 "Gambito Benko: Aceptado, 7.Cf3 g6 8.Cd2 Ag7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.Nd2 Bg7 * A58 "Gambito Benko: Variante del Fianchetto, 7.Cf3 g6 8.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 * A58 "Gambito Benko: Variante del Fianchetto, 7.Cf3 g6 8.g3 Ag7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 * A58 "Gambito Benko: Fianchetto, 9.Ah3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bh3 * A58 "Gambito Benko: Fianchetto, 9.Ag2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 * A58 "Gambito Benko: Fianchetto, 9...Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 Nbd7 * A58 "Gambito Benko: Fianchetto, 9...Cbd7 10.O-O Cb6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 Nbd7 10.O-O Nb6 * A58 "Gambito Benko: Fianchetto, 9...O-O" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O * A58 "Gambito Benko: Fianchetto, Línea Principal" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 * A58 "Gambito Benko: Fianchetto, Línea Principal, 11.Tb1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Rb1 * A58 "Gambito Benko: Fianchetto, Línea Principal, 11.Te1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Re1 * A58 "Gambito Benko: Fianchetto, Línea Principal, 11.Dc2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Qc2 * A58 "Gambito Benko: Fianchetto, Línea Principal, 11.Dc2 Db6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.Nf3 g6 8.g3 Bg7 9.Bg2 O-O 10.O-O Nbd7 11.Qc2 Qb6 * A59 "Gambito Benko: 7.e4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 * A59 "Gambito Benko: 7.e4 Axf1 8.Rxf1 g6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 * A59 "Gambito Benko: 7.e4 Línea, 9.Cge2" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nge2 * A59 "Gambito Benko: 7.e4 Línea, 9.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nf3 * A59 "Gambito Benko: 7.e4 Línea, 9.Cf3 Ag7 10.h3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nf3 Bg7 10.h3 * A59 "Gambito Benko: 7.e4 Línea, 9.Cf3 Ag7 10.h3 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.Nf3 Bg7 10.h3 Nbd7 * A59 "Gambito Benko: 7.e4 Línea, 9.g4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g4 * A59 "Gambito Benko: 7.e4 Línea, 9.g3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 * A59 "Gambito Benko: 7.e4, Línea Principal" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.Te1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.Re1 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.Te1 Da5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.Re1 Qa5 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.Te1 Cg4" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.Re1 Ng4 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.h3" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.h3 Ta6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Ra6 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.h3 Ta6 13.Te1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Ra6 13.Re1 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.h3 Db6" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qb6 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.h3 Db6 13.Te1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qb6 13.Re1 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.h3 Da5" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qa5 * A59 "Gambito Benko: 7.e4, Línea Principal, 11...Cbd7 12.h3 Da5 13.Te1" 1.d4 Nf6 2.c4 c5 3.d5 b5 4.cxb5 a6 5.bxa6 Bxa6 6.Nc3 d6 7.e4 Bxf1 8.Kxf1 g6 9.g3 Bg7 10.Kg2 O-O 11.Nf3 Nbd7 12.h3 Qa5 13.Re1 * A60 "Benoni: 3.d5 e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 * A60 "Benoni: 4.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nf3 * A60 "Benoni: 4.Cf3 exd5 5.cxd5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nf3 exd5 5.cxd5 * A60 "Benoni: Variante Serpiente vs.4.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nf3 exd5 5.cxd5 Bd6 * A60 "Benoni: 4.g3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.g3 * A60 "Benoni: 4.g3 exd5 5.cxd5 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.g3 exd5 5.cxd5 b5 * A60 "Benoni: 4.Cc3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 * A60 "Benoni: 4.Cc3 exd5 5.Cxd5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.Nxd5 * A60 "Benoni: 4.Cc3 exd5 5.cxd5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 * A60 "Benoni: Variante Serpiente" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 * A60 "Benoni: Serpiente, 6.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.Nf3 * A60 "Benoni: Serpiente, 6.Cf3 Ac7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.Nf3 Bc7 * A60 "Benoni: Serpiente, 6.e4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.e4 * A60 "Benoni: Serpiente, 6.e4 O-O 7.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 Bd6 6.e4 O-O 7.Nf3 * A60 "Benoni: 4.Cc3 exd5 5.cxd5 g6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 g6 * A60 "Benoni: 4.Cc3 exd5 5.cxd5 d6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 * A60 "Benoni: 4.Cc3 exd5 5.cxd5 d6 6.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 * A61 "Benoni: 6.Cf3 g6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 * A61 "Benoni: 6.Cf3 g6 7.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.h3 * A61 "Benoni: 6.Cf3 g6 7.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 * A61 "Benoni: 6.Cf3 g6 7.Af4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 a6 * A61 "Benoni: 6.Cf3 g6 7.Af4 Ag7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 Bg7 * A61 "Benoni: 6.Cf3 g6 7.Af4 Ag7 8.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 Bg7 8.Nd2 * A61 "Benoni: 6.Cf3 g6 7.Af4 Ag7 8.Da4+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bf4 Bg7 8.Qa4+ * A61 "Benoni: Variante Uhlmann" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bg5 * A61 "Benoni: Uhlmann, 7...Ag7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bg5 Bg7 * A61 "Benoni: Uhlmann, 7...h6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Bg5 h6 * A61 "Benoni: Variante Nimzowitsch" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 * A61 "Benoni: Variante Nimzowitsch, 7...Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Nbd7 * A61 "Benoni: Variante Nimzowitsch, 7...Ag7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Bg7 * A61 "Benoni: Variante Nimzowitsch, 7...Ag7 8.Cc4 O-O 9.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Bg7 8.Nc4 O-O 9.Bf4 * A61 "Benoni: Variante Nimzowitsch, 7...Ag7 8.Cc4 O-O 9.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.Nd2 Bg7 8.Nc4 O-O 9.Bg5 * A61 "Benoni: Variante del Fianchetto" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 * A62 "Benoni: Variante del Fianchetto, 8.Ag2 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O * A62 "Benoni: Variante del Fianchetto, 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O * A62 "Benoni: Variante del Fianchetto, 9.O-O a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O a6 * A62 "Benoni: Variante del Fianchetto, 9.O-O Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Na6 * A62 "Benoni: Variante del Fianchetto, 9.O-O Ca6 10.Cd2 Cc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Na6 10.Nd2 Nc7 * A62 "Benoni: Variante del Fianchetto, 9.O-O Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Re8 * A63 "Benoni: Variante del Fianchetto, 9...Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 * A63 "Benoni: Variante del Fianchetto, 9...Cbd7 10.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 * A63 "Benoni: Variante del Fianchetto, 9...Cbd7 10.Cd2 Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 Re8 * A63 "Benoni: Variante del Fianchetto, 9...a6 10.a4 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O a6 10.a4 Nbd7 * A63 "Benoni: Variante del Fianchetto, 9...Cbd7 10.Cd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 * A63 "Benoni: Variante del Fianchetto, 9...Cbd7 10.Cd2 a6 11.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 * A64 "Benoni: Fianchetto, 11...Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 * A64 "Benoni: Fianchetto, 11...Te8 12.a5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.a5 * A64 "Benoni: Fianchetto, 11...Te8 12.Cc4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.Nc4 * A64 "Benoni: Fianchetto, 11...Te8 12.Cc4 Ce5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.Nc4 Ne5 * A64 "Benoni: Fianchetto, 11...Te8 12.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 * A64 "Benoni: Fianchetto, 11...Te8 12.h3 Tb8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 * A64 "Benoni: Fianchetto, 11...Te8 12.h3 Tb8 13.Cc4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 13.Nc4 * A64 "Benoni: Fianchetto, 11...Te8 12.h3 Tb8 13.Cc4 Ce5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 13.Nc4 Ne5 * A64 "Benoni: Fianchetto, 11...Te8 12.h3 Tb8 13.Cc4 Cb6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.Nf3 g6 7.g3 Bg7 8.Bg2 O-O 9.O-O Nbd7 10.Nd2 a6 11.a4 Re8 12.h3 Rb8 13.Nc4 Nb6 * A65 "Benoni: 6.e4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 * A65 "Benoni: 6.e4 Ae7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 Be7 * A65 "Benoni: 6.e4 g6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 * A65 "Benoni: 6.e4 g6 7.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.h3 * A65 "Benoni: 6.e4 g6 7.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 * A65 "Benoni: 6.e4 g6 7.Af4 a6 8.Cf3 b5 9.De2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 a6 8.Nf3 b5 9.Qe2 * A65 "Benoni: 6.e4 g6 7.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 * A65 "Benoni: 6.e4 g6 7.Ad3 Ag7 8.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.h3 * A65 "Benoni: 6.e4 g6 7.Ad3 Ag7 8.Cge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 * A65 "Benoni: 6.e4 g6 7.Ad3 Ag7 8.Cge2 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O * A65 "Benoni: 6.e4 g6 7.Ad3 Ag7 8.Cge2 O-O 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O * A65 "Benoni: 6.e4 g6 7.Ad3 Ag7 8.Cge2 O-O 9.O-O b6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O b6 * A65 "Benoni: 6.e4 g6 7.Ad3 Ag7 8.Cge2 O-O 9.O-O Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O Na6 * A65 "Benoni: 6.e4 g6 7.Ad3 Ag7 8.Cge2 O-O 9.O-O a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bd3 Bg7 8.Nge2 O-O 9.O-O a6 * A65 "Benoni: Sämisch (6.e4 g6 7.f3)" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 * A65 "Benoni: Sämisch, 7...Ag7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 * A65 "Benoni: Sämisch, 8.Cge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Nge2 * A65 "Benoni: Sämisch, 8.Ae3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Be3 * A65 "Benoni: Sämisch, 8.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 * A65 "Benoni: Sämisch, 8.Ag5 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O * A65 "Benoni: Sämisch, 8.Ag5 O-O 9.Cge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O 9.Nge2 * A65 "Benoni: Sämisch, 8.Ag5 O-O 9.Dd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O 9.Qd2 * A65 "Benoni: Sämisch, 8.Ag5 O-O 9.Dd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 O-O 9.Qd2 a6 * A65 "Benoni: Sämisch, 8.Ag5 h6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Cge2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Nge2 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2 Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 Re8 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2 a6 11.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2 a6 11.a4 h5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 h5 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2 a6 11.a4 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Nbd7 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2 a6 11.a4 Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Re8 * A65 "Benoni: Sämisch, 8.Ag5 h6 9.Ae3 O-O 10.Dd2 a6 11.a4 Te8 12.Cge2 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f3 Bg7 8.Bg5 h6 9.Be3 O-O 10.Qd2 a6 11.a4 Re8 12.Nge2 Nbd7 * A66 "Benoni: Ataque de los Cuatro Peones, 1.d4 Cf6 2.c4 c5 3.d5 e6 4.Cc3 exd5 5.cxd5 d6 6.e4 g6 7.f4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 * A66 "Benoni: Ataque de los Cuatro Peones, 7.f4 Ag7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 * A66 "Benoni: Cuatro Peones, Ataque Mikenas" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 * A66 "Benoni: Ataque Mikenas, 8...dxe5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 dxe5 * A66 "Benoni: Ataque Mikenas, 8...Cfd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 * A66 "Benoni: Ataque Mikenas, 8...Cfd7 9.e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.e6 * A66 "Benoni: Ataque Mikenas, 8...Cfd7 9.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nf3 * A66 "Benoni: Ataque Mikenas, 8...Cfd7 9.Cb5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 * A66 "Benoni: Ataque Mikenas, 9.Cb5 dxe5 10.Cd6+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 dxe5 10.Nd6+ * A66 "Benoni: Ataque Mikenas, 9.Cb5 dxe5 10.Cd6+ Re7 11.Cxc8+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 dxe5 10.Nd6+ Ke7 11.Nxc8+ * A66 "Benoni: Ataque Mikenas, 9.Cb5 dxe5 10.Cd6+ Re7 11.Cxc8+ Dxc8 12.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.e5 Nfd7 9.Nb5 dxe5 10.Nd6+ Ke7 11.Nxc8+ Qxc8 12.Nf3 * A67 "Benoni: Cuatro Peones, Variante Taimanov (Alatortsev)" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ * A67 "Benoni: Cuatro Peones, Taimanov, 8...Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nbd7 * A67 "Benoni: Cuatro Peones, Taimanov, 8...Cbd7 9.e5 dxe5 10.fxe5 Ch5 11.e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nbd7 9.e5 dxe5 10.fxe5 Nh5 11.e6 * A67 "Benoni: Cuatro Peones, Taimanov, 8...Cfd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 * A67 "Benoni: Cuatro Peones, Taimanov, 9.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 * A67 "Benoni: Cuatro Peones, Taimanov, 9.Ad3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O * A67 "Benoni: Cuatro Peones, Taimanov, 9.Ad3 O-O 10.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 * A67 "Benoni: Cuatro Peones, Taimanov, 9.Ad3 O-O 10.Cf3 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 a6 * A67 "Benoni: Cuatro Peones, Taimanov, 9.Ad3 O-O 10.Cf3 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 a6 11.a4 * A67 "Benoni: Cuatro Peones, Taimanov, 9.Ad3 O-O 10.Cf3 Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.Bd3 O-O 10.Nf3 Na6 * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 (Zaitsev)" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 Dh4+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 Qh4+ * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 a6 * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 a6 10.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 a6 10.Bd3 * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 a6 10.Ae2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 a6 10.Be2 * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 O-O 10.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O 10.Nf3 * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 O-O 10.Cf3 Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O 10.Nf3 Na6 * A67 "Benoni: Cuatro Peones, Taimanov, 9.a4 O-O 10.Cf3 Ca6 11.O-O Cc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Bb5+ Nfd7 9.a4 O-O 10.Nf3 Na6 11.O-O Nc7 * A68 "Benoni: Cuatro Peones, 8.Cf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 * A68 "Benoni: Cuatro Peones, 8.Cf3 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O * A68 "Benoni: Cuatro Peones, 9.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Bd3 * A68 "Benoni: Cuatro Peones, 9.Ae2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 * A68 "Benoni: Cuatro Peones, 9.Ae2 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 * A68 "Benoni: Cuatro Peones, 9.Ae2 b5 10.e5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 10.e5 * A68 "Benoni: Cuatro Peones, 9.Ae2 b5 10.e5 dxe5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 10.e5 dxe5 * A68 "Benoni: Cuatro Peones, 9.Ae2 b5 10.e5 dxe5 11.fxe5 Cg4 12.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 b5 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 * A68 "Benoni: Cuatro Peones, 9.Ae2 Ag4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 * A68 "Benoni: Cuatro Peones, 9.Ae2 Ag4 10.e5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.e5 * A68 "Benoni: Cuatro Peones, 9.Ae2 Ag4 10.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O * A68 "Benoni: Cuatro Peones, 9.Ae2 Ag4 10.O-O Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 * A68 "Benoni: Cuatro Peones, 9.Ae2 Ag4 10.O-O Cbd7 11.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 11.h3 * A68 "Benoni: Cuatro Peones, 9.Ae2 Ag4 10.O-O Cbd7 11.h3 Axf3 12.Axf3 Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 11.h3 Bxf3 12.Bxf3 Re8 * A68 "Benoni: Cuatro Peones, 9.Ae2 Ag4 10.O-O Cbd7 11.h3 Axf3 12.Axf3 Te8 13.Te1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Bg4 10.O-O Nbd7 11.h3 Bxf3 12.Bxf3 Re8 13.Re1 * A69 "Benoni: Cuatro Peones, Línea Principal" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.O-O * A69 "Benoni: Cuatro Peones, Línea Principal, 10.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.Nd2 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.Cd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.Nd2 a6 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.Cd2 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.Nd2 Nbd7 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5: 12.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.O-O * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5: 12.e6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.e6 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5: 12.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5: 12.Ag5 f6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 f6 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5: 12.Ag5 Db6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 Qb6 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5: 12.Ag5 Db6 13.O-O Cxe5 14.Cxe5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 Qb6 13.O-O Nxe5 14.Nxe5 * A69 "Benoni: Cuatro Peones, Línea Principal, 10.e5: 12.Ag5 Db6 13.O-O Cxe5 14.d6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.f4 Bg7 8.Nf3 O-O 9.Be2 Re8 10.e5 dxe5 11.fxe5 Ng4 12.Bg5 Qb6 13.O-O Nxe5 14.d6 * A69 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f4 * A69 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f4 Cc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f4 Nc7 * A70 "Benoni: Clásica" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 * A70 "Benoni: Clásica, 7...a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 * A70 "Benoni: Clásica, 7...a6 8.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 8.a4 * A70 "Benoni: Clásica, 7...a6 8.a4 Ag4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 8.a4 Bg4 * A70 "Benoni: Clásica, 7...a6 8.a4 Ag4 9.Ae2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 a6 8.a4 Bg4 9.Be2 * A70 "Benoni: Clásica, 7...Ag7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 * A70 "Benoni: Clásica, 8.Ae2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 * A70 "Benoni: Clásica, 8.Ae2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 a6 * A70 "Benoni: Clásica, 8.Da4+" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Qa4+ * A70 "Benoni: Clásica, 8.Da4+ Ad7 9.Db3 Dc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Qa4+ Bd7 9.Qb3 Qc7 * A70 "Benoni: Clásica, 8.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bf4 * A70 "Benoni: Clásica, 8.Af4 O-O 9.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bf4 O-O 9.Nd2 * A70 "Benoni: Clásica, 8.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bd3 * A70 "Benoni: Clásica, 8.Ad3 O-O 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bd3 O-O 9.O-O * A70 "Benoni: Clásica, 8.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 Ad7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Bd7 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Na6 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Re8 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 Te8 10.O-O c4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 Re8 10.O-O c4 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 a6 10.O-O b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.O-O b5 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 a6 10.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.a4 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 a6 10.a4 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.a4 Nbd7 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 a6 10.a4 Cbd7 11.O-O Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 a6 10.a4 Nbd7 11.O-O Re8 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 b5 10.Axb5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Bxb5 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 b5 10.Cxb5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 b5 10.Cxb5 Cxe4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 Nxe4 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 b5 10.Cxb5 Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 Re8 * A70 "Benoni: Clásica, 8.h3 O-O 9.Ad3 b5 10.Cxb5 Te8 11.O-O Cxe4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.h3 O-O 9.Bd3 b5 10.Nxb5 Re8 11.O-O Nxe4 * A70 "Benoni: 6.e4 g6 7.Af4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 a6 * A70 "Benoni: 6.e4 g6 7.Af4 a6 8.Cf3 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Bf4 a6 8.Nf3 b5 * A71 "Benoni: Clásica, 8.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 * A71 "Benoni: Clásica, 8.Ag5 h6 9.Ah4 g5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 g5 * A71 "Benoni: Clásica, 8.Ag5 h6 9.Ah4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 a6 * A71 "Benoni: Clásica, 8.Ag5 h6 9.Ah4 a6 10.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 a6 10.Nd2 * A71 "Benoni: Clásica, 8.Ag5 h6 9.Ah4 a6 10.Cd2 b5 11.Ae2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Bg5 h6 9.Bh4 a6 10.Nd2 b5 11.Be2 * A72 "Benoni: Clásica, 8.Ae2 O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O * A72 "Benoni: Clásica, 8.Ae2 O-O 9.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Nd2 * A72 "Benoni: Clásica, 8.Ae2 O-O 9.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bg5 * A72 "Benoni: Clásica, 8.Ae2 O-O 9.Ag5 h6 10.Ah4 g5 11.Ag3 Ch5 12.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bg5 h6 10.Bh4 g5 11.Bg3 Nh5 12.Nd2 * A72 "Benoni: Clásica, 8.Ae2 O-O 9.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bf4 * A72 "Benoni: Clásica, 8.Ae2 O-O 9.Af4 b5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bf4 b5 * A72 "Benoni: Clásica, 8.Ae2 O-O 9.Af4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.Bf4 a6 * A73 "Benoni: Clásica, 9.O-O" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O * A73 "Benoni: Clásica, 9.O-O Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Nbd7 * A73 "Benoni: Clásica, 9.O-O Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Na6 * A73 "Benoni: Clásica, 9.O-O Ca6 10.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Na6 10.Nd2 * A73 "Benoni: Clásica, 9.O-O Ca6 10.Cd2 Cc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Na6 10.Nd2 Nc7 * A73 "Benoni: Clásica, 9.O-O Ag4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 * A73 "Benoni: Clásica, 9.O-O Ag4 10.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 10.Bg5 * A73 "Benoni: Clásica, 9.O-O Ag4 10.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 10.Bf4 * A73 "Benoni: Clásica, 9.O-O Ag4 10.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Bg4 10.h3 * A73 "Benoni: Clásica, 9.O-O a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 * A74 "Benoni: Clásica, 9.O-O a6 10.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 * A74 "Benoni: Clásica, 9.O-O a6 10.a4 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 * A74 "Benoni: Clásica, 9.O-O a6 10.a4 Cbd7 11.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Nd2 * A74 "Benoni: Clásica, 9.O-O a6 10.a4 Cbd7 11.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Bg5 * A74 "Benoni: Clásica, 9.O-O a6 10.a4 Cbd7 11.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Bf4 * A74 "Benoni: Clásica, 9.O-O a6 10.a4 Cbd7 11.Af4 De7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Nbd7 11.Bf4 Qe7 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.h3 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Nd2 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Ag5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bg5 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Ag5 h6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bg5 h6 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4 De7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Qe7 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4 Te8" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Re8 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4 Te8 12.Cd2 Axe2 13.Dxe2 Ch5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Re8 12.Nd2 Bxe2 13.Qxe2 Nh5 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4 Axf3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4 Axf3 12.Axf3 De7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4 Axf3 12.Axf3 De7 13.Te1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 13.Re1 * A75 "Benoni: Clásica, 9.O-O a6 10.a4 Ag4 11.Af4 Axf3 12.Axf3 De7 con 14.a5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O a6 10.a4 Bg4 11.Bf4 Bxf3 12.Bxf3 Qe7 13.Re1 Nbd7 14.a5 * A76 "Benoni: Clásica, Línea Principal" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 * A76 "Benoni: Clásica, Línea Principal, 10.Dc2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 * A76 "Benoni: Clásica, Línea Principal, 10.Dc2 Ag4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Bg4 * A76 "Benoni: Clásica, Línea Principal, 10.Dc2 Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 * A76 "Benoni: Clásica, Línea Principal, 10.Dc2 Ca6 11.Af4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 11.Bf4 * A76 "Benoni: Clásica, Línea Principal, 10.Dc2 Ca6 11.Te1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 11.Re1 * A76 "Benoni: Clásica, Línea Principal, 10.Dc2 Ca6 11.Te1 Ag4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Qc2 Na6 11.Re1 Bg4 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 a6 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 a6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 a6 12.Ta3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 12.Ra3 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 a6 12.Dc2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 12.Qc2 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 a6 12.h3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 a6 12.h3 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 Ce5" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 Ce5 12.Cdb1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Ndb1 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 Ce5 12.Ta3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Ra3 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 Ce5 12.Te1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Re1 * A77 "Benoni: Clásica, Línea Principal, 10.Cd2 Cbd7 11.a4 Ce5 12.Dc2" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Nbd7 11.a4 Ne5 12.Qc2 * A78 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 * A78 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.Rh1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.Kh1 * A78 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.Tb1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.Rb1 * A78 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.Te1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.Re1 * A79 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f3" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 * A79 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f3 Cc7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 * A79 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f3 Cc7 12.a4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 * A79 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f3 Cc7 12.a4 Cd7" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 Nd7 * A79 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f3 Cc7 12.a4 b6" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 * A79 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f3 Cc7 12.a4 b6 13.Rh1" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 13.Kh1 * A79 "Benoni: Clásica, Línea Principal, 10.Cd2 Ca6 11.f3 Cc7 12.a4 b6 13.Cc4" 1.d4 Nf6 2.c4 c5 3.d5 e6 4.Nc3 exd5 5.cxd5 d6 6.e4 g6 7.Nf3 Bg7 8.Be2 O-O 9.O-O Re8 10.Nd2 Na6 11.f3 Nc7 12.a4 b6 13.Nc4 * A80 "Holandesa" 1.d4 f5 * A80 "Holandesa: Gambito Krejcik" 1.d4 f5 2.g4 * A80 "Holandesa: Gambito Krejcik Aceptado" 1.d4 f5 2.g4 fxg4 * A80 "Holandesa: Ataque Korchnoi" 1.d4 f5 2.h3 * A80 "Holandesa: Korchnoi, Gambito Janzen" 1.d4 f5 2.h3 Nf6 3.g4 * A80 "Holandesa: 2.Ag5" 1.d4 f5 2.Bg5 * A80 "Holandesa: 2.Ag5 d5" 1.d4 f5 2.Bg5 d5 * A80 "Holandesa: 2.Ag5 c6" 1.d4 f5 2.Bg5 c6 * A80 "Holandesa: 2.Ag5 Cf6" 1.d4 f5 2.Bg5 Nf6 * A80 "Holandesa: 2.Ag5 h6" 1.d4 f5 2.Bg5 h6 * A80 "Holandesa: 2.Ag5 g6" 1.d4 f5 2.Bg5 g6 * A80 "Holandesa: 2.Ag5 g6 3.Cc3" 1.d4 f5 2.Bg5 g6 3.Nc3 * A80 "Holandesa: Alapin" 1.d4 f5 2.Qd3 * A80 "Holandesa: Alapin, Gambito de Manhattan" 1.d4 f5 2.Qd3 d6 3.g4 * A80 "Holandesa: Gambito Von Pretzel" 1.d4 f5 2.Qd3 e6 3.g4 * A80 "Holandesa: 2.Cc3" 1.d4 f5 2.Nc3 * A80 "Holandesa: 2.Cc3 d5" 1.d4 f5 2.Nc3 d5 * A80 "Holandesa: Gambito Euwe, 2.Cc3 d5 3.e4" 1.d4 f5 2.Nc3 d5 3.e4 * A80 "Holandesa: 2.Cc3 d5 3.Ag5" 1.d4 f5 2.Nc3 d5 3.Bg5 * A80 "Holandesa: 2.Cc3 Cf6" 1.d4 f5 2.Nc3 Nf6 * A80 "Holandesa: Gambito Spielmann" 1.d4 f5 2.Nc3 Nf6 3.g4 * A80 "Holandesa: 2.Cc3 Cf6 3.Ag5" 1.d4 f5 2.Nc3 Nf6 3.Bg5 * A80 "Holandesa: 2.Cc3 Cf6 3.Ag5 e6" 1.d4 f5 2.Nc3 Nf6 3.Bg5 e6 * A80 "Holandesa: 2.Cc3 Cf6 3.Ag5 d5" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 * A80 "Holandesa: 2.Cc3 Cf6 3.Ag5 d5 4.Axf6 exf6" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 * A80 "Holandesa: 2.Cc3 Cf6 3.Ag5 d5 4.Axf6 exf6 5.e3" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 5.e3 * A80 "Holandesa: 2.Cc3 Cf6 3.Ag5 d5 4.Axf6 exf6 5.e3 c6" 1.d4 f5 2.Nc3 Nf6 3.Bg5 d5 4.Bxf6 exf6 5.e3 c6 * A80 "Holandesa: 2.Cf3" 1.d4 f5 2.Nf3 * A80 "Holandesa: 2.Cf3 e6" 1.d4 f5 2.Nf3 e6 * A80 "Holandesa: 2.Cf3 e6 3.d5" 1.d4 f5 2.Nf3 e6 3.d5 * A80 "Holandesa: 2.Cf3 Cf6" 1.d4 f5 2.Nf3 Nf6 * A80 "Holandesa: Sistema Barcza" 1.d4 f5 2.Nf3 Nf6 3.c3 * A80 "Holandesa: 2.Cf3 Cf6 3.Ag5" 1.d4 f5 2.Nf3 Nf6 3.Bg5 * A81 "Holandesa: 2.g3" 1.d4 f5 2.g3 * A81 "Holandesa: 2.g3 e6" 1.d4 f5 2.g3 e6 * A81 "Holandesa: 2.g3 e6 3.Cf3" 1.d4 f5 2.g3 e6 3.Nf3 * A81 "Holandesa: 2.g3 e6 3.Cf3 Cf6" 1.d4 f5 2.g3 e6 3.Nf3 Nf6 * A81 "Holandesa: 2.g3 Cf6" 1.d4 f5 2.g3 Nf6 * A81 "Holandesa: 2.g3 Cf6 3.Cf3" 1.d4 f5 2.g3 Nf6 3.Nf3 * A81 "Holandesa: 2.g3 Cf6 3.Ag2" 1.d4 f5 2.g3 Nf6 3.Bg2 * A81 "Holandesa: 2.g3 Cf6 3.Ag2 e6" 1.d4 f5 2.g3 Nf6 3.Bg2 e6 * A81 "Holandesa: Variante Blackburne" 1.d4 f5 2.g3 Nf6 3.Bg2 e6 4.Nh3 * A81 "Holandesa: 2.g3 Cf6 3.Ag2 g6" 1.d4 f5 2.g3 Nf6 3.Bg2 g6 * A81 "Holandesa: 2.g3 Cf6 3.Ag2 g6 4.Cf3" 1.d4 f5 2.g3 Nf6 3.Bg2 g6 4.Nf3 * A81 "Holandesa: Leningrado, Variante Basman" 1.d4 f5 2.g3 g6 3.Bg2 Bg7 4.Nf3 c6 5.O-O Nh6 * A81 "Holandesa: Leningrado, Variante de Carlsbad" 1.d4 f5 2.g3 g6 3.Bg2 Bg7 4.Nh3 * A82 "Holandesa: Gambito Staunton" 1.d4 f5 2.e4 * A82 "Holandesa: Gambito Staunton, Defensa Balogh" 1.d4 f5 2.e4 d6 * A82 "Holandesa: Gambito Staunton Aceptada" 1.d4 f5 2.e4 fxe4 * A82 "Holandesa: Gambito Staunton, 3.Cc3" 1.d4 f5 2.e4 fxe4 3.Nc3 * A82 "Holandesa: Gambito Staunton, 3.Cc3 e6" 1.d4 f5 2.e4 fxe4 3.Nc3 e6 * A82 "Holandesa: Gambito Staunton, 3.Cc3 g6" 1.d4 f5 2.e4 fxe4 3.Nc3 g6 * A82 "Holandesa: Gambito Staunton, 3.Cc3 Cf6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 * A82 "Holandesa: Gambito Staunton, Variante Tartakower" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.g4 * A82 "Holandesa: Gambito Staunton, 4.f3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 * A82 "Holandesa: Gambito Staunton, 4.f3 e6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 e6 * A82 "Holandesa: Gambito Staunton, 4.f3 Cc6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 Nc6 * A82 "Holandesa: Gambito Staunton, 4.f3 exf3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 exf3 * A82 "Holandesa: Gambito Staunton, 4.f3 exf3 5.Cxf3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 exf3 5.Nxf3 * A82 "Holandesa: Gambito Staunton, 4.f3 d5" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 d5 * A82 "Holandesa: Gambito Staunton, 4.f3 d5 5.fxe4" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.f3 d5 5.fxe4 * A83 "Holandesa: Gambito Staunton, Variante Staunton" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 * A83 "Holandesa: Gambito Staunton, Variante Nimzowitsch" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 b6 * A83 "Holandesa: Gambito Staunton, Variante Chigorin" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 c6 * A83 "Holandesa: Gambito Staunton, 4.Ag5 g6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 g6 * A83 "Holandesa: Gambito Staunton, Variante Alekhine" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 g6 5.h4 * A83 "Holandesa: Gambito Staunton, Variante Lasker" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 g6 5.f3 * A83 "Holandesa: Gambito Staunton, 4.Ag5 e6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 e6 * A83 "Holandesa: Gambito Staunton, 4.Ag5 e6 5.Cxe4" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 e6 5.Nxe4 * A83 "Holandesa: Gambito Staunton, 4.Ag5 e6 5.Cxe4 Ae7 6.Axf6 Axf6 7.Cf3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 e6 5.Nxe4 Be7 6.Bxf6 Bxf6 7.Nf3 * A83 "Holandesa: Gambito Staunton, 4.Ag5 Cc6" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 * A83 "Holandesa: Gambito Staunton, 4.Ag5 Cc6 5.f3" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 5.f3 * A83 "Holandesa: Gambito Staunton, 4.Ag5 Cc6 5.d5" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 5.d5 * A83 "Holandesa: Gambito Staunton, 4.Ag5 Cc6 5.d5 Ce5 6.Dd4" 1.d4 f5 2.e4 fxe4 3.Nc3 Nf6 4.Bg5 Nc6 5.d5 Ne5 6.Qd4 * A84 "Holandesa: 2.c4" 1.d4 f5 2.c4 * A84 "Holandesa: 2.c4 d6" 1.d4 f5 2.c4 d6 * A84 "Holandesa: 2.c4 g6" 1.d4 f5 2.c4 g6 * A84 "Holandesa: Variante Bladel" 1.d4 f5 2.c4 g6 3.Nc3 Nh6 * A84 "Holandesa: 2.c4 e6" 1.d4 f5 2.c4 e6 * A84 "Holandesa: 2.c4 e6 3.Cf3" 1.d4 f5 2.c4 e6 3.Nf3 * A84 "Holandesa: 2.c4 e6 3.Cf3 Cf6" 1.d4 f5 2.c4 e6 3.Nf3 Nf6 * A84 "Holandesa: Variante Rubinstein" 1.d4 f5 2.c4 e6 3.Nc3 * A84 "Holandesa: Rubinstein, 3...d5" 1.d4 f5 2.c4 e6 3.Nc3 d5 * A84 "Holandesa: Rubinstein, 3...d5 4.e3 c6" 1.d4 f5 2.c4 e6 3.Nc3 d5 4.e3 c6 * A84 "Holandesa: Gambito Staunton Retardado" 1.d4 f5 2.c4 e6 3.e4 * A84 "Holandesa: 2.c4 Cf6" 1.d4 f5 2.c4 Nf6 * A84 "Holandesa: 2.c4 Cf6 3.Cf3" 1.d4 f5 2.c4 Nf6 3.Nf3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3" 1.d4 f5 2.c4 Nf6 3.Nc3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 d6" 1.d4 f5 2.c4 Nf6 3.Nc3 d6 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6 4.a3" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.a3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6 4.Dc2" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.Qc2 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6 4.Ag5" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.Bg5 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6 4.e3" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.e3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6 4.e3 d5" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.e3 d5 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6 4.e3 Ab4" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.e3 Bb4 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 e6 4.Cf3" 1.d4 f5 2.c4 Nf6 3.Nc3 e6 4.Nf3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6 4.f3" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.f3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6 4.Ag5" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Bg5 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6 4.Cf3" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6 4.Cf3 Ag7" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6 4.Cf3 Ag7 5.e3" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.e3 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6 4.Cf3 Ag7 5.Af4" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bf4 * A85 "Holandesa: 2.c4 Cf6 3.Cc3 g6 4.Cf3 Ag7 5.Ag5" 1.d4 f5 2.c4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bg5 * A86 "Holandesa: 2.c4 Cf6 3.g3" 1.d4 f5 2.c4 Nf6 3.g3 * A86 "Holandesa: 2.c4 Cf6 3.g3 d6" 1.d4 f5 2.c4 Nf6 3.g3 d6 * A86 "Holandesa: Sistema Hort-Antoshin" 1.d4 f5 2.c4 Nf6 3.g3 d6 4.Bg2 c6 5.Nc3 Qc7 * A86 "Holandesa: Variante de Leningrado" 1.d4 f5 2.c4 Nf6 3.g3 g6 * A86 "Holandesa: Leningrado, 4.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nc3 * A86 "Holandesa: Leningrado, 4.Cc3 Ag7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nc3 Bg7 * A86 "Holandesa: Leningrado, 4.Cf3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nf3 * A86 "Holandesa: Leningrado, 4.Cf3 Ag7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nf3 Bg7 * A86 "Holandesa: Leningrado, 4.Cf3 Ag7 5.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Nf3 Bg7 5.Nc3 * A86 "Holandesa: Leningrado, 4.Ag2" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 * A86 "Holandesa: Leningrado, 4.Ag2 d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 d6 * A86 "Holandesa: Leningrado, 4.Ag2 Ag7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 * A86 "Holandesa: Leningrado, 4.Ag2 Ag7 5.Ch3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nh3 * A86 "Holandesa: Leningrado, 4.Ag2 Ag7 5.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 * A86 "Holandesa: Leningrado, 4.Ag2 Ag7 5.Cc3 d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 d6 * A86 "Holandesa: Leningrado, 4.Ag2 Ag7 5.Cc3 d6 6.Ch3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 d6 6.Nh3 * A86 "Holandesa: Leningrado, 4.Ag2 Ag7 5.Cc3 d6 6.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 d6 6.d5 * A86 "Holandesa: Leningrado, 4.Ag2 Ag7 5.Cc3 O-O" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 O-O * A86 "Holandesa: Leningrado, 4.Ag2 Ag7 5.Cc3 O-O 6.Ch3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nc3 O-O 6.Nh3 * A86 "Holandesa: 2.c4 Cf6 3.g3 e6" 1.d4 f5 2.c4 Nf6 3.g3 e6 * A86 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nc3 * A86 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Cc3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nc3 d5 * A86 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Cf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nf3 * A86 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Cf3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Nf3 d5 * A87 "Holandesa: Leningrado, Línea Principal" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 * A87 "Holandesa: Leningrado, Línea Principal, 5...d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 * A87 "Holandesa: Leningrado, Línea Principal, 5...d6 6.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 d6 6.Nc3 * A87 "Holandesa: Leningrado, Línea Principal, 5...O-O" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O * A87 "Holandesa: Leningrado, Línea Principal, 6.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.Nc3 * A87 "Holandesa: Leningrado, Línea Principal, 6.Cc3 d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.Nc3 d6 * A87 "Holandesa: Leningrado, Línea Principal, 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O * A87 "Holandesa: Leningrado, Línea Principal, 6...c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 * A87 "Holandesa: Leningrado, Línea Principal, 6...d6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 * A87 "Holandesa: Leningrado, Línea Principal, 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.b3 * A87 "Holandesa: Leningrado, Línea Principal, 7.b3 c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.b3 c6 * A87 "Holandesa: Leningrado, Línea Principal, 7.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.d5 * A87 "Holandesa: Leningrado, Línea Principal, 7.d5 c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.d5 c6 * A87 "Holandesa: Leningrado, Línea Principal, 7.d5 c5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.d5 c5 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 e6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 e6 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Ca6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Na6 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8 8.Te1" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8 8.Cd5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Nd5 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8 8.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8 8.d5 a5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 a5 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8 8.d5 Ca6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 Na6 * A87 "Holandesa: Leningrado, Línea Principal, 7.Cc3 De8 8.d5 Ca6 9.Tb1" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.d5 Na6 9.Rb1 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.Te1" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.Re1 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.Qc2 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.b3 Ca6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 Na6 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.b3 De8" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 Qe8 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.b3 Da5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.b3 Qa5 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5 cxd5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 cxd5 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5 De8" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 Qe8 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5 Da5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 Qa5 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5 Ad7" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 Bd7 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5 e5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 e5 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5 e5 9.dxe6 Axe6 10.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 e5 9.dxe6 Bxe6 10.b3 * A88 "Holandesa: Leningrado, Línea Principal, 7.Cc3 c6 8.d5 e5 9.dxe6 Axe6 10.Dd3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 c6 8.d5 e5 9.dxe6 Bxe6 10.Qd3 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.b3 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5 Ca5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Na5 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5 Ca5 9.Dd3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Na5 9.Qd3 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5 Ca5 9.Cd2" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Na5 9.Nd2 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5 Ce5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5 Ce5 9.Cxe5" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5 Ce5 9.Cxe5 dxe5 10.Db3" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 dxe5 10.Qb3 * A89 "Holandesa: Leningrado, Línea Principal, 7.Cc3 Cc6 8.d5 Ce5 9.Cxe5 dxe5 10.e4" 1.d4 f5 2.c4 Nf6 3.g3 g6 4.Bg2 Bg7 5.Nf3 O-O 6.O-O d6 7.Nc3 Nc6 8.d5 Ne5 9.Nxe5 dxe5 10.e4 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 * A90 "Holandesa: Variante Holandesa-India (Nimzo-Holandesa)" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ * A90 "Holandesa: Holandesa-India, 5.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Nc3 * A90 "Holandesa: Holandesa-India, 5.Cd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Nd2 * A90 "Holandesa: Holandesa-India, 5.Ad2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Bd2 * A90 "Holandesa: Holandesa-India, Variante Alekhine" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Bb4+ 5.Bd2 Be7 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 d5 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 d5 5.Ch3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 d5 5.Nh3 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 d5 5.Cf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 d5 5.Nf3 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 c6 5.Ch3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nh3 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 c6 5.Cf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 c6 5.Cf3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 5.Cf3 d5 6.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.Nc3 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 5.Cf3 d5 6.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.Qc2 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 5.Cf3 d5 6.Dc2 Ad6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.Qc2 Bd6 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 5.Cf3 d5 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.O-O * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 5.Cf3 d5 6.O-O Ad6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.O-O Bd6 * A90 "Holandesa: 2.c4 Cf6 3.g3 e6 5.Cf3 d5 6.O-O Ad6 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 c6 5.Nf3 d5 6.O-O Bd6 7.b3 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Ch3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Ch3 O-O 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Ch3 O-O 6.O-O d6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Ch3 O-O 6.O-O d6 7.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Ch3 O-O 6.O-O d6 7.Cc3 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 c6 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Ch3 O-O 6.O-O d6 7.Cc3 De8" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 Qe8 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cc3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 d5 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cc3 O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 O-O * A91 "Holandesa: Variante Botvinnik-Bronstein, 5.Cc3 O-O 6.e3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nc3 O-O 6.e3 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 d6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d6 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 d6 6.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d6 6.Nc3 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 d5 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 6.O-O * A91 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 d5 6.O-O c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 d5 6.O-O c6 * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O 6.d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.d5 * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O 6.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.Nc3 * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O 6.Cc3 d6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.Nc3 d6 * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O 6.O-O" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O * A92 "Holandesa: Variante Alekhine" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O Ne4 * A92 "Holandesa: Alekhine, 7.d5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O Ne4 7.d5 * A92 "Holandesa: Alekhine, 7.Cbd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O Ne4 7.Nbd2 * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O 6.O-O c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O 6.O-O c6 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3 * A92 "Holandesa: 2.c4 Cf6 3.g3 e6 4.Ag2 Ae7 5.Cf3 O-O 6.O-O c6 7.b3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3 a5 * A92 "Holandesa: Variante Muro de Piedra" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 * A92 "Holandesa: Muro de Piedra, 7.Cbd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nbd2 * A92 "Holandesa: Muro de Piedra, 7.Cbd2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nbd2 c6 * A92 "Holandesa: Muro de Piedra, 7.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Qc2 * A92 "Holandesa: Muro de Piedra, 7.Dc2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Qc2 c6 * A92 "Holandesa: Muro de Piedra, 7.Dc2 c6 8.Cbd2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Qc2 c6 8.Nbd2 * A92 "Holandesa: Muro de Piedra, 7.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 * A93 "Holandesa: Muro de Piedra, Variante Botvinnik" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 * A93 "Holandesa: Muro de Piedra, Botvinnik, 7...b6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 b6 * A93 "Holandesa: Muro de Piedra, Botvinnik, 7...Cc6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 Nc6 * A93 "Holandesa: Muro de Piedra, Botvinnik, 7...c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 * A93 "Holandesa: Muro de Piedra, Botvinnik, 8.Ab2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Bb2 * A93 "Holandesa: Muro de Piedra, Botvinnik, 8.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Qc2 * A93 "Holandesa: Muro de Piedra, Botvinnik, 8.Dc2 Ce4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Qc2 Ne4 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Ad7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bd7 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Cbd7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Nbd7 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Cbd7 9.Axe7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Nbd7 9.Bxe7 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Axa3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Axa3 9.Cxa3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Axa3 9.Cxa3 Cbd7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 Nbd7 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Axa3 9.Cxa3 De7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 Qe7 * A94 "Holandesa: Muro de Piedra, Botvinnik, 8.Aa3 Axa3 9.Cxa3 De7 10.Dc1" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.b3 c6 8.Ba3 Bxa3 9.Nxa3 Qe7 10.Qc1 * A95 "Holandesa: Muro de Piedra, 7.Cc3 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 * A95 "Holandesa: Muro de Piedra, 7.Cc3 c6 8.Ce5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Ne5 * A95 "Holandesa: Muro de Piedra, 7.Cc3 c6 8.Af4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Bf4 * A95 "Holandesa: Muro de Piedra, 7.Cc3 c6 8.Ag5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Bg5 * A95 "Holandesa: Muro de Piedra, 7.Cc3 c6 8.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Qc2 * A95 "Holandesa: Muro de Piedra: Variante Chekhover, 8.Dc2 De8 9.Ag5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.Qc2 Qe8 9.Bg5 * A95 "Holandesa: Muro de Piedra, 7.Cc3 c6 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.b3 * A95 "Holandesa: Muro de Piedra, 7.Cc3 c6 8.b3 De8" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d5 7.Nc3 c6 8.b3 Qe8 * A96 "Holandesa: Clásica" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 * A96 "Holandesa: Clásica, 7.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 * A96 "Holandesa: Clásica, 7.b3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 a5 * A96 "Holandesa: Clásica, 7.b3 a5 8.Ab2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 a5 8.Bb2 * A96 "Holandesa: Clásica, 7.b3 De8" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 Qe8 * A96 "Holandesa: Clásica, 7.b3 De8 8.Ab2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.b3 Qe8 8.Bb2 * A96 "Holandesa: Clásica, 7.Cc3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 * A96 "Holandesa: Clásica, 7.Cc3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 * A96 "Holandesa: Clásica, 7.Cc3 a5 8.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 8.Qc2 * A96 "Holandesa: Clásica, 7.Cc3 a5 8.Te1" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 8.Re1 * A96 "Holandesa: Clásica, 7.Cc3 a5 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 a5 8.b3 * A97 "Holandesa: Variante Ilyin-Zhenevsky" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 * A97 "Holandesa: Ilyin-Zhenevsky, 8.b4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b4 * A97 "Holandesa: Ilyin-Zhenevsky, Variante Winter" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 * A97 "Holandesa: Ilyin-Zhenevsky, Winter, 8...Ce4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Ne4 * A97 "Holandesa: Ilyin-Zhenevsky, Winter, 8...Dh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qh5 * A97 "Holandesa: Ilyin-Zhenevsky, Winter, 8...Dg6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qg6 * A97 "Holandesa: Ilyin-Zhenevsky, Winter, 8...Dg6 9.e4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qg6 9.e4 * A97 "Holandesa: Ilyin-Zhenevsky, Winter, 8...Dg6 9.e4 fxe4" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Re1 Qg6 9.e4 fxe4 * A98 "Holandesa: Ilyin-Zhenevsky, 8.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Qc2 * A98 "Holandesa: Ilyin-Zhenevsky, 8.Dc2 Cc6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Qc2 Nc6 * A98 "Holandesa: Ilyin-Zhenevsky, 8.Dc2 Dh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.Qc2 Qh5 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 c6 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 Cc6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Nc6 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 Cbd7" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Nbd7 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 Dh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Qh5 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 Dh5 9.Ab2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 Qh5 9.Bb2 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5 9.Dc2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Qc2 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5 9.Aa3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Ba3 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5 9.Ab2" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5 9.Ab2 c6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 c6 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5 9.Ab2 Ca6" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 Na6 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5 9.Ab2 Dh5" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 Qh5 * A99 "Holandesa: Ilyin-Zhenevsky, 8.b3 a5 9.Ab2 Dh5 10.e3" 1.d4 f5 2.c4 Nf6 3.g3 e6 4.Bg2 Be7 5.Nf3 O-O 6.O-O d6 7.Nc3 Qe8 8.b3 a5 9.Bb2 Qh5 10.e3 * B00 "Peón Rey" 1.e4 * B00 "Peón Rey: Defensa Hipopótamo" 1.e4 Nh6 2.d4 g6 3.c4 f6 * B00 "Peón Rey: Fred" 1.e4 f5 * B00 "Grob Invertida (Defensa Borg/Basman)" 1.e4 g5 * B00 "Grob Invertida (Defensa Borg/Basman)" 1.e4 g5 2.d4 * B00 "Defensa de St.George" 1.e4 a6 * B00 "Defensa de St.George" 1.e4 a6 2.d4 * B00 "Apertura Creepy Crawly Invertida (Basman)" 1.e4 a6 2.d4 h6 * B00 "Defensa Owen" 1.e4 b6 * B00 "Defensa Owen" 1.e4 b6 2.d4 * B00 "Defensa Owen: Francesa" 1.e4 b6 2.d4 e6 * B00 "Defensa Owen: 2.d4 Ab7" 1.e4 b6 2.d4 Bb7 * B00 "Defensa Owen: Gambito Naselwaus" 1.e4 b6 2.d4 Bb7 3.Bg5 * B00 "Defensa Owen: Gambito Smith" 1.e4 b6 2.d4 Bb7 3.Nf3 * B00 "Defensa Owen: 3.Ad3" 1.e4 b6 2.d4 Bb7 3.Bd3 * B00 "Defensa Owen: Gambito Matinovsky" 1.e4 b6 2.d4 Bb7 3.Bd3 f5 * B00 "Defensa Owen: 3.Ad3 Cf6" 1.e4 b6 2.d4 Bb7 3.Bd3 Nf6 * B00 "Defensa Owen: 3.Ad3 e6" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 * B00 "Defensa Owen: 3.Ad3 e6 4.Cf3" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 4.Nf3 * B00 "Defensa Owen: 3.Ad3 e6 4.Cf3 c5" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 4.Nf3 c5 * B00 "Defensa Owen: 3.Ad3 e6 4.Cf3 c5 5.c3" 1.e4 b6 2.d4 Bb7 3.Bd3 e6 4.Nf3 c5 5.c3 * B00 "Defensa Nimzowitsch" 1.e4 Nc6 * B00 "Defensa Nimzowitsch: Gambito Wheeler" 1.e4 Nc6 2.b4 * B00 "Defensa Nimzowitsch: 2.Cc3" 1.e4 Nc6 2.Nc3 * B00 "Defensa Nimzowitsch: 2.Cc3 Cf6" 1.e4 Nc6 2.Nc3 Nf6 * B00 "Defensa Nimzowitsch: 2.Cc3 e6" 1.e4 Nc6 2.Nc3 e6 * B00 "Defensa Nimzowitsch: 2.Cf3" 1.e4 Nc6 2.Nf3 * B00 "Defensa Nimzowitsch: Contra Colorado" 1.e4 Nc6 2.Nf3 f5 * B00 "Defensa Nimzowitsch: 2.Cf3 d6" 1.e4 Nc6 2.Nf3 d6 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4" 1.e4 Nc6 2.Nf3 d6 3.d4 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Ag4" 1.e4 Nc6 2.Nf3 d6 3.d4 Bg4 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6 4.Cc3" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6 4.Cc3 g6" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 g6 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6 4.Cc3 Ag4" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6 4.Cc3 Ag4 5.d5" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.d5 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6 4.Cc3 Ag4 5.Ab5" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Bb5 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6 4.Cc3 Ag4 5.Ae2" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Be2 * B00 "Defensa Nimzowitsch: 2.Cf3 d6 3.d4 Cf6 4.Cc3 Ag4 5.Ae3" 1.e4 Nc6 2.Nf3 d6 3.d4 Nf6 4.Nc3 Bg4 5.Be3 * B00 "Defensa Nimzowitsch: 2.d4" 1.e4 Nc6 2.d4 * B00 "Defensa Nimzowitsch: 2.d4 d6" 1.e4 Nc6 2.d4 d6 * B00 "Defensa Nimzowitsch: 2.d4 d6 3.Cc3" 1.e4 Nc6 2.d4 d6 3.Nc3 * B00 "Defensa Nimzowitsch: 2.d4 e5" 1.e4 Nc6 2.d4 e5 * B00 "Defensa Nimzowitsch: 2.d4 e5 3.dxe5" 1.e4 Nc6 2.d4 e5 3.dxe5 * B00 "Defensa Nimzowitsch: Gambito Bielefelder" 1.e4 Nc6 2.d4 e5 3.dxe5 Bc5 * B00 "Defensa Nimzowitsch: 2.d4 e5 3.d5" 1.e4 Nc6 2.d4 e5 3.d5 * B00 "Defensa Nimzowitsch: 2.d4 d5" 1.e4 Nc6 2.d4 d5 * B00 "Defensa Nimzowitsch: 2.d4 d5 3.exd5" 1.e4 Nc6 2.d4 d5 3.exd5 * B00 "Defensa Nimzowitsch: Gambito Aachen" 1.e4 Nc6 2.d4 d5 3.exd5 Nb4 * B00 "Defensa Nimzowitsch: 2.d4 d5 3.exd5 Dxd5" 1.e4 Nc6 2.d4 d5 3.exd5 Qxd5 * B00 "Defensa Nimzowitsch: Gambito Marshall" 1.e4 Nc6 2.d4 d5 3.exd5 Qxd5 4.Nc3 * B00 "Defensa Nimzowitsch: 2.d4 d5 3.exd5 Dxd5 4.Cf3" 1.e4 Nc6 2.d4 d5 3.exd5 Qxd5 4.Nf3 * B00 "Defensa Nimzowitsch: Variante Bogoljubow" 1.e4 Nc6 2.d4 d5 3.Nc3 * B00 "Defensa Nimzowitsch: Bogoljubow, 3...e5" 1.e4 Nc6 2.d4 d5 3.Nc3 e5 * B00 "Defensa Nimzowitsch: Bogoljubow, 3...Cf6" 1.e4 Nc6 2.d4 d5 3.Nc3 Nf6 * B00 "Defensa Nimzowitsch: Bogoljubow, 3...dxe4" 1.e4 Nc6 2.d4 d5 3.Nc3 dxe4 * B00 "Defensa Nimzowitsch: 2.d4 d5 3.e5" 1.e4 Nc6 2.d4 d5 3.e5 * B00 "Defensa Nimzowitsch: 2.d4 d5 3.e5 Af5" 1.e4 Nc6 2.d4 d5 3.e5 Bf5 * B00 "Defensa Nimzowitsch: 2.d4 d5 3.e5 Af5 4.c3" 1.e4 Nc6 2.d4 d5 3.e5 Bf5 4.c3 * B01 "Escandinava (Contra Central)" 1.e4 d5 * B01 "Escandinava: 2.d3" 1.e4 d5 2.d3 * B01 "Escandinava: 2.e5" 1.e4 d5 2.e5 * B01 "Escandinava: 2.exd5" 1.e4 d5 2.exd5 * B01 "Escandinava: Gambito Böhnke" 1.e4 d5 2.exd5 e5 * B01 "Escandinava: 2...Dxd5" 1.e4 d5 2.exd5 Qxd5 * B01 "Escandinava: 2...Dxd5 3.Cf3" 1.e4 d5 2.exd5 Qxd5 3.Nf3 * B01 "Escandinava: 2...Dxd5 3.Cf3 Cf6" 1.e4 d5 2.exd5 Qxd5 3.Nf3 Nf6 * B01 "Escandinava: 2...Dxd5 3.d4" 1.e4 d5 2.exd5 Qxd5 3.d4 * B01 "Escandinava: 2...Dxd5 3.d4 Cf6" 1.e4 d5 2.exd5 Qxd5 3.d4 Nf6 * B01 "Escandinava: 2...Dxd5 3.d4 e5" 1.e4 d5 2.exd5 Qxd5 3.d4 e5 * B01 "Escandinava: 2...Dxd5 3.Cc3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 * B01 "Escandinava: 2...Dxd5 3.Cc3 Dd8" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd8 * B01 "Escandinava: Defensa Schiller" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd6 * B01 "Escandinava: Schiller, 4.d4 Cf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd6 4.d4 Nf6 * B01 "Escandinava: Schiller, Variante Bronstein" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qd6 4.d4 Nf6 5.Nf3 a6 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 * B01 "Escandinava, Gambito Mieses" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.b4 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.g3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.g3 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.Ac4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Bc4 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.Ac4 Cf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Bc4 Nf6 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.Cf3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Nf3 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.Cf3 Cf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Nf3 Nf6 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.Cf3 Cf6 5.Ae2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.Nf3 Nf6 5.Be2 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.d4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 * B01 "Escandinava: Contrataque Anderssen" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 * B01 "Escandinava: Contrataque Anderssen, Variante de Goteborg" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 5.Nf3 * B01 "Escandinava: Contrataque Anderssen, Variante Collijn" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 5.Nf3 Bg4 * B01 "Escandinava: Contrataque Anderssen, 5.dxe5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 e5 5.dxe5 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.d4 c6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 c6 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.d4 c6 5.Ac4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 c6 5.Bc4 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.d4 c6 5.Cf3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 c6 5.Nf3 * B01 "Escandinava: 2...Dxd5 3.Cc3 Da5 4.d4 Cf6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 * B01 "Escandinava: 2...Dxd5, 5.Ad2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bd2 * B01 "Escandinava: 2...Dxd5, 5.Ad2 c6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bd2 c6 * B01 "Escandinava: 2...Dxd5, 5.Ac4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bc4 * B01 "Escandinava: 2...Dxd5, 5.Ac4 c6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bc4 c6 * B01 "Escandinava: 2...Dxd5, 5.Cf3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 * B01 "Escandinava: 2...Dxd5, 5.Cf3 Ag4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bg4 * B01 "Escandinava: Variante Lasker" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bg4 6.h3 * B01 "Escandinava: 2...Dxd5, 5.Cf3 Af5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bf5 * B01 "Escandinava: Variante Grünfeld" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bf5 6.Ne5 c6 7.g4 * B01 "Escandinava: 2...Dxd5, 5.Cf3 Af5 6.Ac4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bf5 6.Bc4 * B01 "Escandinava: 2...Dxd5, Línea Principal" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 * B01 "Escandinava: 2...Dxd5, Línea Principal, 6.Ac4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 * B01 "Escandinava: 2...Dxd5, Línea Principal, 6.Ac4 Ag4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bg4 * B01 "Escandinava: 2...Dxd5, Línea Principal, 6.Ac4 Af5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 * B01 "Escandinava: 2...Dxd5, Línea Principal, 6.Ac4 Af5 7.Ad2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 * B01 "Escandinava: 2...Dxd5, Línea Principal, 6.Ac4 Af5 7.Ad2 e6" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 * B01 "Escandinava: 2...Dxd5, Línea Principal, 8.Cd5" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Nd5 * B01 "Escandinava: 2...Dxd5, Línea Principal, 8.De2" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 * B01 "Escandinava: 2...Dxd5, Línea Principal, 8.De2 Ab4" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 Bb4 * B01 "Escandinava: 2...Dxd5, Línea Principal, 8.De2 Ab4 9.a3" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 Bb4 9.a3 * B01 "Escandinava: 2...Dxd5, Línea Principal, 8.De2 Ab4 9.O-O-O" 1.e4 d5 2.exd5 Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 c6 6.Bc4 Bf5 7.Bd2 e6 8.Qe2 Bb4 9.O-O-O * B01 "Escandinava: 2...Cf6" 1.e4 d5 2.exd5 Nf6 * B01 "Escandinava: 2...Cf6 3.Ac4" 1.e4 d5 2.exd5 Nf6 3.Bc4 * B01 "Escandinava: 2...Cf6 3.Cf3" 1.e4 d5 2.exd5 Nf6 3.Nf3 * B01 "Escandinava: 2...Cf6 3.Cf3 Cxd5" 1.e4 d5 2.exd5 Nf6 3.Nf3 Nxd5 * B01 "Escandinava: 2...Cf6 3.Ab5+" 1.e4 d5 2.exd5 Nf6 3.Bb5+ * B01 "Escandinava: 2...Cf6 3.Ab5+ Cbd7" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Nbd7 * B01 "Escandinava: 2...Cf6 3.Ab5+ Ad7" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 * B01 "Escandinava: 2...Cf6 3.Ab5+ Ad7 4.Ac4" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Bc4 * B01 "Escandinava: 2...Cf6 3.Ab5+ Ad7 4.Ac4 Ag4" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Bc4 Bg4 * B01 "Escandinava: 2...Cf6 3.Ab5+ Ad7 4.Ae2" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Be2 * B01 "Escandinava: 2...Cf6 3.Ab5+ Ad7 4.Ae2 Cxd5 5.d4 Af5" 1.e4 d5 2.exd5 Nf6 3.Bb5+ Bd7 4.Be2 Nxd5 5.d4 Bf5 * B01 "Escandinava: 2...Cf6 3.c4" 1.e4 d5 2.exd5 Nf6 3.c4 * B01 "Escandinava: Gambito Escandinavo" 1.e4 d5 2.exd5 Nf6 3.c4 c6 * B01 "Escandinava: Gambito Escandinavo Aceptado" 1.e4 d5 2.exd5 Nf6 3.c4 c6 4.dxc6 * B01 "Escandinava: Gambito Islandés" 1.e4 d5 2.exd5 Nf6 3.c4 e6 * B01 "Escandinava: Gambito Islandés Aceptado, 4.dxe6" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 * B01 "Escandinava: Gambito Islandés Aceptado, 4.dxe6 Axe6" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 Bxe6 * B01 "Escandinava: Gambito Islandés Aceptado, 4.dxe6 Axe6 5.d4" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 Bxe6 5.d4 * B01 "Escandinava: Gambito Islandés Aceptado, 4.dxe6 Axe6 5.Cf3" 1.e4 d5 2.exd5 Nf6 3.c4 e6 4.dxe6 Bxe6 5.Nf3 * B01 "Escandinava: 2...Cf6 3.d4" 1.e4 d5 2.exd5 Nf6 3.d4 * B01 "Escandinava: Variante Richter" 1.e4 d5 2.exd5 Nf6 3.d4 g6 * B01 "Escandinava: Variante Portuguesa" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 * B01 "Escandinava: Portuguesa, 4.Ab5+" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Bb5+ * B01 "Escandinava: Portuguesa, 4.Cf3" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 * B01 "Escandinava: Portuguesa, 4.Cf3 Dxd5" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 Qxd5 * B01 "Escandinava: Portuguesa, 4.Cf3 Dxd5 5.Ae2" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 Qxd5 5.Be2 * B01 "Escandinava: Portuguesa, 4.Cf3 Dxd5 5.Ae2 Cc6" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Nf3 Qxd5 5.Be2 Nc6 * B01 "Escandinava: Portuguesa, 4.Ae2" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Be2 * B01 "Escandinava: Portuguesa, 4.Ae2 Axe2" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.Be2 Bxe2 * B01 "Escandinava: Portuguesa, 4.f3" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 * B01 "Escandinava: Portuguesa, 4.f3 Af5" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 * B01 "Escandinava: Portuguesa, 4.f3 Af5 5.c4" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.c4 * B01 "Escandinava: Portuguesa, 4.f3 Af5 5.Ab5+" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.Bb5+ * B01 "Escandinava: Portuguesa, 4.f3 Af5 5.Ab5+ Cbd7" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.Bb5+ Nbd7 * B01 "Escandinava: Portuguesa, 4.f3 Af5 5.Ab5+ Cbd7 6.c4" 1.e4 d5 2.exd5 Nf6 3.d4 Bg4 4.f3 Bf5 5.Bb5+ Nbd7 6.c4 * B01 "Escandinava: Variante Marshall" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 * B01 "Escandinava: Marshall, 4.Cf3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 * B01 "Escandinava: Marshall, 4.Cf3 Af5" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bf5 * B01 "Escandinava: Marshall, 4.Cf3 Ag4" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bg4 * B01 "Escandinava: Marshall, 4.Cf3 Ag4 5.Ae2" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bg4 5.Be2 * B01 "Escandinava: Marshall, 4.Cf3 Ag4 5.Ae2 e6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 Bg4 5.Be2 e6 * B01 "Escandinava: Marshall, 4.Cf3 g6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 g6 * B01 "Escandinava: Marshall, 4.Cf3 g6 5.Ae2" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 g6 5.Be2 * B01 "Escandinava: Marshall, 4.Cf3 g6 5.Ae2 Ag7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.Nf3 g6 5.Be2 Bg7 * B01 "Escandinava: Marshall, 4.c4" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 * B01 "Escandinava: Marshall, 4.c4 Cf6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nf6 * B01 "Escandinava: Marshall, 4.c4 Cb6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cc3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nc3 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cc3 e5" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nc3 e5 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 Ag4" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 Bg4 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 Ag4 6.Ae2 e6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 Bg4 6.Be2 e6 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 Ag4 6.c5" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 Bg4 6.c5 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 g6" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 g6 6.Ae2" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Be2 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 g6 6.Ae2 Ag7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Be2 Bg7 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 g6 6.h3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.h3 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 g6 6.h3 Ag7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.h3 Bg7 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 g6 6.Cc3" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Nc3 * B01 "Escandinava: Marshall, 4.c4 Cb6 5.Cf3 g6 6.Cc3 Ag7" 1.e4 d5 2.exd5 Nf6 3.d4 Nxd5 4.c4 Nb6 5.Nf3 g6 6.Nc3 Bg7 * B02 "Defensa Alekhine" 1.e4 Nf6 * B02 "Alekhine: Variante Krejcik" 1.e4 Nf6 2.Bc4 * B02 "Alekhine: Variante Maroczy" 1.e4 Nf6 2.d3 * B02 "Alekhine: Variante Escandinava" 1.e4 Nf6 2.Nc3 * B02 "Alekhine: Variante Escandinava, 2.Cc3 d5" 1.e4 Nf6 2.Nc3 d5 * B02 "Alekhine: Escandinava, 3.e5" 1.e4 Nf6 2.Nc3 d5 3.e5 * B02 "Alekhine: Escandinava, 3.e5 Ce4" 1.e4 Nf6 2.Nc3 d5 3.e5 Ne4 * B02 "Alekhine: Escandinava, 3.e5 Cfd7" 1.e4 Nf6 2.Nc3 d5 3.e5 Nfd7 * B02 "Alekhine: Gambito Spielmann" 1.e4 Nf6 2.Nc3 d5 3.e5 Nfd7 4.e6 * B02 "Alekhine: Escandinava, Intercambio" 1.e4 Nf6 2.Nc3 d5 3.exd5 * B02 "Alekhine: Escandinava, Gambito Geschev" 1.e4 Nf6 2.Nc3 d5 3.exd5 c6 * B02 "Alekhine: Escandinava, Intercambio" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 * B02 "Alekhine: Escandinava, Intercambio, 4.Cf3" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Nf3 * B02 "Alekhine: Escandinava, Intercambio, 4.Cxd5" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Nxd5 * B02 "Alekhine: Escandinava, Intercambio, 4.Cxd5" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Nxd5 Qxd5 * B02 "Alekhine: Escandinava, Intercambio, 4.Ac4" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Bc4 * B02 "Alekhine: Escandinava, Intercambio, 4.Ac4 e6" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Bc4 e6 * B02 "Alekhine: Escandinava, Intercambio, 4.Ac4 Cb6" 1.e4 Nf6 2.Nc3 d5 3.exd5 Nxd5 4.Bc4 Nb6 * B02 "Alekhine: 2.e5" 1.e4 Nf6 2.e5 * B02 "Alekhine: Variante Mokele Mbembe (Bücker)" 1.e4 Nf6 2.e5 Ne4 * B02 "Alekhine: Defensa de Brooklyn (Variante de Retirada)" 1.e4 Nf6 2.e5 Ng8 * B02 "Alekhine: 2.e5 Cd5" 1.e4 Nf6 2.e5 Nd5 * B02 "Alekhine: Variante Welling" 1.e4 Nf6 2.e5 Nd5 3.b3 * B02 "Alekhine: 3.Ac4" 1.e4 Nf6 2.e5 Nd5 3.Bc4 * B02 "Alekhine: Variante Kmoch" 1.e4 Nf6 2.e5 Nd5 3.Bc4 Nb6 4.Bb3 c5 5.d3 * B02 "Alekhine: Ataque Sämisch" 1.e4 Nf6 2.e5 Nd5 3.Nc3 * B02 "Alekhine: Ataque Sämisch, 3...Cxc3" 1.e4 Nf6 2.e5 Nd5 3.Nc3 Nxc3 * B02 "Alekhine: Ataque Sämisch, 3...Cxc3 4.dxc3" 1.e4 Nf6 2.e5 Nd5 3.Nc3 Nxc3 4.dxc3 * B02 "Alekhine: Variante Chase" 1.e4 Nf6 2.e5 Nd5 3.c4 * B02 "Alekhine: Variante Chase, 3.c4 Cb6" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 * B02 "Alekhine: Chase, Variante Steiner" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.b3 * B02 "Alekhine: Ataque de los Dos Peones (Lasker)" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 * B02 "Alekhine: Ataque de los Dos Peones, 5.Cc3" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 Nd5 5.Nc3 * B02 "Alekhine: Ataque de los Dos Peones, 5.Ac4" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 Nd5 5.Bc4 * B02 "Alekhine: Ataque de los Dos Peones, Variante Mikenas" 1.e4 Nf6 2.e5 Nd5 3.c4 Nb6 4.c5 Nd5 5.Bc4 e6 6.Nc3 d6 * B03 "Alekhine: 3.d4" 1.e4 Nf6 2.e5 Nd5 3.d4 * B03 "Alekhine: Gambito O'Sullivan" 1.e4 Nf6 2.e5 Nd5 3.d4 b5 * B03 "Alekhine: 3.d4 d6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 * B03 "Alekhine: 3.d4 d6 4.exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.exd6 * B03 "Alekhine: Variante Balogh, 1.e4 Cf6 2.e5 Cd5 3.d4 d6 4.Ac4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Bc4 * B03 "Alekhine: 4.c4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 * B03 "Alekhine: 4.c4 Cb6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 * B03 "Alekhine: 4.c4 Cb6 5.Cf3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.Nf3 * B03 "Alekhine: Ataque de los Cuatro Peones" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 * B03 "Alekhine: Ataque de los Cuatro Peones, Variante Planinc" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 g5 * B03 "Alekhine: Ataque de los Cuatro Peones, Variante Trifunovic" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 Bf5 * B03 "Alekhine: Ataque de los Cuatro Peones, Variante del Fianchetto" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 g6 * B03 "Alekhine: Ataque de los Cuatro Peones, 5...dxe5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 * B03 "Alekhine: Ataque de los Cuatro Peones, 5...dxe5 6.fxe5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 * B03 "Alekhine: Ataque de los Cuatro Peones, 6...c5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 c5 * B03 "Alekhine: Ataque de los Cuatro Peones, 6...Af5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Bf5 * B03 "Alekhine: Ataque de los Cuatro Peones, Variante Fahrni" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Bf5 7.Nc3 e6 8.Nf3 Bb4 9.Bd3 * B03 "Alekhine: Ataque de los Cuatro Peones, Variante Korchnoi" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Bf5 7.Nc3 e6 8.Nf3 Be7 9.Be2 O-O 10.O-O f6 * B03 "Alekhine: Ataque de los Cuatro Peones, 6...Cc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Nc6 * B03 "Alekhine: Ataque de los Cuatro Peones, Variante Ilyin-Zhenevsky" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Nc6 7.Nf3 Bg4 8.e6 fxe6 9.c5 * B03 "Alekhine: Ataque de los Cuatro Peones, 7.Ae3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 dxe5 6.fxe5 Nc6 7.Be3 * B03 "Alekhine: Variante del Cambio" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 * B03 "Alekhine: Intercambio, 5...exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 exd6 * B03 "Alekhine: Intercambio, 5...exd6 6.Cc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 exd6 6.Nc3 * B03 "Alekhine: Intercambio, 5...exd6 6.Cc3 Ae7" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 exd6 6.Nc3 Be7 * B03 "Alekhine: Intercambio, 5...cxd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 cxd6 * B03 "Alekhine: Intercambio, 5...cxd6 6.Cc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 cxd6 6.Nc3 * B03 "Alekhine: Intercambio, 5...cxd6 6.Cc3 g6 7.Ae3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.exd6 cxd6 6.Nc3 g6 7.Be3 * B04 "Alekhine: Variante Moderna" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 * B04 "Alekhine: Moderna, 4...Cc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Nc6 * B04 "Alekhine: Moderna, 4...c6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 c6 * B04 "Alekhine: Moderna, 4...c6 5.c4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 c6 5.c4 * B04 "Alekhine: Moderna, Variante Schmid" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Nb6 * B04 "Alekhine: Moderna, Variante Larsen" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 * B04 "Alekhine: Moderna, Larsen, 5.Cxe5 g6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 5.Nxe5 g6 * B04 "Alekhine: Moderna, Larsen, 5.Cxe5 g6 6.Ac4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 5.Nxe5 g6 6.Bc4 * B04 "Alekhine: Moderna, Larsen, 5.Cxe5 g6 6.Ac4 c6 7.O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 dxe5 5.Nxe5 g6 6.Bc4 c6 7.O-O * B04 "Alekhine: Moderna, Variante del Fianchetto" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 * B04 "Alekhine: Moderna, Fianchetto, 5.Ac4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 * B04 "Alekhine: Moderna, Fianchetto, 5.Ac4 Cb6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 * B04 "Alekhine: Moderna, Fianchetto, 5.Ac4 Cb6 6.Ab3 Ag7" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 6.Bb3 Bg7 * B04 "Alekhine: Moderna, Fianchetto, Variante Keres" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 6.Bb3 Bg7 7.a4 * B04 "Alekhine: Moderna, Fianchetto, 5.Ac4 Cb6 6.Ab3 Ag7 7.Cg5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 6.Bb3 Bg7 7.Ng5 * B05 "Alekhine: Moderna, 4...Ag4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 * B05 "Alekhine: Moderna, Varianta Panov" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.h3 * B05 "Alekhine: Moderna, Variante Alekhine" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 * B05 "Alekhine: Moderna, Variante Alekhine, 5.c4 Cb6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 * B05 "Alekhine: Moderna, Variante Alekhine, 6.exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 6.exd6 * B05 "Alekhine: Moderna, Variante Alekhine, 6.exd6 cxd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 6.exd6 cxd6 * B05 "Alekhine: Moderna, Variante Alekhine, 6.exd6 exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.c4 Nb6 6.exd6 exd6 * B05 "Alekhine: Moderna, 5.Ae2" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 * B05 "Alekhine: Moderna, 5.Ae2 Cc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 Nc6 * B05 "Alekhine: Moderna, Variante Flohr" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 c6 * B05 "Alekhine: Moderna, Variante Flohr, 6.c4" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 c6 6.c4 * B05 "Alekhine: Moderna, Variante Flohr, 6.O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 c6 6.O-O * B05 "Alekhine: Moderna, 5.Ae2 e6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 * B05 "Alekhine: Moderna, 5.Ae2 e6 6.O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O * B05 "Alekhine: Moderna, Línea Principal" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 * B05 "Alekhine: Moderna, Línea Principal, 8.h3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 * B05 "Alekhine: Moderna, Línea Principal, 8.h3 Ah5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 * B05 "Alekhine: Moderna, Línea Principal, 8.h3 Ah5 9.Cc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 * B05 "Alekhine: Moderna, Línea Principal, 8.h3 Ah5 9.Cc3 O-O" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 O-O * B05 "Alekhine: Moderna, Línea Principal, 8.h3 Ah5 9.Cc3 O-O 10.Ae3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 O-O 10.Be3 * B05 "Alekhine: Moderna, Línea Principal, 8.h3 Ah5 9.Cc3 O-O 10.Ae3 d5" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.h3 Bh5 9.Nc3 O-O 10.Be3 d5 * B05 "Alekhine: Moderna, Línea Principal, 8.exd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.exd6 * B05 "Alekhine: Moderna, Línea Principal, 8.Cc3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 * B05 "Alekhine: Moderna, Línea Principal, 8.Cc3 O-O 9.Ae3" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 O-O 9.Be3 * B05 "Alekhine: Moderna, Línea Principal, 8.Cc3 O-O 9.Ae3 Cc6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 O-O 9.Be3 Nc6 * B05 "Alekhine: Moderna, Línea Principal, 8.Cc3 O-O 9.Ae3 Cc6 10.exd6 cxd6" 1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 Bg4 5.Be2 e6 6.O-O Be7 7.c4 Nb6 8.Nc3 O-O 9.Be3 Nc6 10.exd6 cxd6 * B06 "Moderna: 1.e4 g6" 1.e4 g6 * B06 "Moderna: 1.e4 g6 2.Cc3" 1.e4 g6 2.Nc3 * B06 "Moderna: 1.e4 g6 2.Cc3 d6" 1.e4 g6 2.Nc3 d6 * B06 "Moderna: 1.e4 g6 2.Cc3 Ag7" 1.e4 g6 2.Nc3 Bg7 * B06 "Moderna: 1.e4 g6 2.Cc3 Ag7 3.f4 d6" 1.e4 g6 2.Nc3 Bg7 3.f4 d6 * B06 "Moderna: 1.e4 g6 2.f4" 1.e4 g6 2.f4 * B06 "Moderna: 1.e4 g6 2.f4 d6" 1.e4 g6 2.f4 d6 * B06 "Moderna: 1.e4 g6 2.f4 Ag7 3.Cf3" 1.e4 g6 2.f4 Bg7 3.Nf3 * B06 "Moderna: 1.e4 g6 2.f4 Ag7 3.Cf3 d6" 1.e4 g6 2.f4 Bg7 3.Nf3 d6 * B06 "Moderna: 1.e4 g6 2.d4" 1.e4 g6 2.d4 * B06 "Moderna: Defensa Noruega" 1.e4 g6 2.d4 Nf6 * B06 "Moderna: Defensa Noruega, 3.e5 Ch5 4.g4 Cg7" 1.e4 g6 2.d4 Nf6 3.e5 Nh5 4.g4 Ng7 * B06 "Moderna: 1.e4 g6 2.d4 c6" 1.e4 g6 2.d4 c6 * B06 "Moderna: 1.e4 g6 2.d4 d6" 1.e4 g6 2.d4 d6 * B06 "Moderna: 1.e4 g6 2.d4 Ag7" 1.e4 g6 2.d4 Bg7 * B06 "Moderna: 1.e4 g6 2.d4 Ag7 3.Ac4" 1.e4 g6 2.d4 Bg7 3.Bc4 * B06 "Moderna: 1.e4 g6 2.d4 Ag7 3.c3" 1.e4 g6 2.d4 Bg7 3.c3 * B06 "Moderna: 1.e4 g6 2.d4 Ag7 3.c3 d63.c3" 1.e4 g6 2.d4 Bg7 3.c3 d6 * B06 "Moderna: Pterodáctilo con c3" 1.e4 g6 2.d4 Bg7 3.c3 d6 4.f4 c5 * B06 "Moderna: Sistema Geller" 1.e4 g6 2.d4 Bg7 3.c3 d6 4.Nf3 * B06 "Moderna: 3.Cf3" 1.e4 g6 2.d4 Bg7 3.Nf3 * B06 "Moderna: 3.Cf3 d6" 1.e4 g6 2.d4 Bg7 3.Nf3 d6 * B06 "Moderna: 3.Cf3 d6 4.Ac4" 1.e4 g6 2.d4 Bg7 3.Nf3 d6 4.Bc4 * B06 "Moderna: 3.Cc3" 1.e4 g6 2.d4 Bg7 3.Nc3 * B06 "Moderna: Gambito Mittenberger" 1.e4 g6 2.d4 Bg7 3.Nc3 d5 * B06 "Moderna: Pterodáctilo con Cc3" 1.e4 g6 2.d4 Bg7 3.Nc3 c5 * B06 "Moderna: 3.Cc3" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 * B06 "Moderna: 3.Cc3 d6 4.Ac4" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 * B06 "Moderna: 3.Cc3 d6 4.Ac4 c6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 * B06 "Moderna: 3.Cc3 d6 4.Ac4 c6 5.Df3" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 5.Qf3 * B06 "Moderna: 3.Cc3 d6 4.Ac4 c6 5.Df3 Cf6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 5.Qf3 Nf6 * B06 "Moderna: 3.Cc3 d6 4.Ac4 c6 5.Df3 e6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Bc4 c6 5.Qf3 e6 * B06 "Moderna: 3.Cc3 d6 4.Ae3" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Be3 * B06 "Moderna: 3.Cc3 d6 4.Ae3 a6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Be3 a6 * B06 "Moderna: 3.Cc3 d6 4.Ae3 c6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Be3 c6 * B06 "Moderna: Variante de los Dos Caballos" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Nf3 * B06 "Moderna: Dos Caballos, Variante Suttles" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Nf3 c6 * B06 "Moderna: Dos Caballos, Suttles, Gambito Tal" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.Nf3 c6 5.Bg5 Qb6 6.Qd2 * B06 "Moderna: Ataque Pseudo-Austríaco, 1.e4 g6 2.d4 Ag7 3.Cc3 d6 4.f4" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 * B06 "Moderna: Ataque Pseudo-Austríaco, 1.e4 g6 2.d4 Ag7 3.Cc3 d6 4.f4 c6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 c6 * B06 "Moderna: Ataque Pseudo-Austríaco, 1.e4 g6 2.d4 Ag7 3.Cc3 d6 4.f4 c6 5.Cf3" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 c6 5.Nf3 * B06 "Moderna: Ataque Pseudo-Austríaco, 1.e4 g6 2.d4 Ag7 3.Cc3 d6 4.f4 Cc6" 1.e4 g6 2.d4 Bg7 3.Nc3 d6 4.f4 Nc6 * B06 "Moderna: Ataque de los Tres Peones, 1.e4 g6 2.d4 Ag7 3.f4" 1.e4 g6 2.d4 Bg7 3.f4 * B07 "Pirc: 1.e4 d6" 1.e4 d6 * B07 "Pirc: 1.e4 d6 2.g3" 1.e4 d6 2.g3 * B07 "Pirc: 1.e4 d6 2.c4" 1.e4 d6 2.c4 * B07 "Pirc: 2.Cc3" 1.e4 d6 2.Nc3 * B07 "Pirc: 2.Cc3 Cf6" 1.e4 d6 2.Nc3 Nf6 * B07 "Pirc: 2.Cf3" 1.e4 d6 2.Nf3 * B07 "Pirc-Reti: Defensa Wade, 1.e4 d6 2.Cf3 Ag4" 1.e4 d6 2.Nf3 Bg4 * B07 "Pirc: 2.Cf3 Cf6" 1.e4 d6 2.Nf3 Nf6 * B07 "Pirc: 2.Cf3 Cf6 3.Cc3" 1.e4 d6 2.Nf3 Nf6 3.Nc3 * B07 "Pirc: 2.f4" 1.e4 d6 2.f4 * B07 "Pirc: 2.f4 Cf6" 1.e4 d6 2.f4 Nf6 * B07 "Pirc: 2.f4 Cf6 3.Cc3" 1.e4 d6 2.f4 Nf6 3.Nc3 * B07 "Pirc: 2.f4 Cf6 3.Cc3 g6 4.Cf3 Ag7" 1.e4 d6 2.f4 Nf6 3.Nc3 g6 4.Nf3 Bg7 * B07 "Pirc: 2.d4" 1.e4 d6 2.d4 * B07 "Pirc: 2.d4 c6" 1.e4 d6 2.d4 c6 * B07 "Pirc: Sistema Lengfellner" 1.e4 d6 2.d4 e6 * B07 "Pirc: 2.d4 Cd7" 1.e4 d6 2.d4 Nd7 * B07 "Pirc: 2.d4 Cf6" 1.e4 d6 2.d4 Nf6 * B07 "Pirc: Gambito Roscher" 1.e4 d6 2.d4 Nf6 3.Nf3 * B07 "Pirc: 3.Cbd2" 1.e4 d6 2.d4 Nf6 3.Nbd2 * B07 "Pirc: 3.Cbd2 g6" 1.e4 d6 2.d4 Nf6 3.Nbd2 g6 * B07 "Pirc: 3.Cbd2 g6" 1.e4 d6 2.d4 Nf6 3.Nbd2 g6 4.c3 Bg7 * B07 "Pirc: 3.f3" 1.e4 d6 2.d4 Nf6 3.f3 * B07 "Pirc: 3.f3 e5" 1.e4 d6 2.d4 Nf6 3.f3 e5 * B07 "Pirc: 3.f3 e5 Intercambio de Damas" 1.e4 d6 2.d4 Nf6 3.f3 e5 4.dxe5 dxe5 5.Qxd8+ * B07 "Pirc: 3.f3 e5 4.d5" 1.e4 d6 2.d4 Nf6 3.f3 e5 4.d5 * B07 "Pirc: 3.f3 g6" 1.e4 d6 2.d4 Nf6 3.f3 g6 * B07 "Pirc: 3.Ad3" 1.e4 d6 2.d4 Nf6 3.Bd3 * B07 "Pirc: 3.Ad3 e5" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 * B07 "Pirc: 3.Ad3 e5 4.c3 d5" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 4.c3 d5 * B07 "Pirc: 3.Ad3 e5 4.c3 d5 5.dxe5 dxe4" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 4.c3 d5 5.dxe5 dxe4 * B07 "Pirc: 3.Ad3 e5 4.c3 d5 5.dxe5 Cxe4" 1.e4 d6 2.d4 Nf6 3.Bd3 e5 4.c3 d5 5.dxe5 Nxe4 * B07 "Pirc: 3.Ad3 g6" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 * B07 "Pirc: 3.Ad3 g6 4.Cf3" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 4.Nf3 * B07 "Pirc: 3.Ad3 g6 4.Cf3 Ag7" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 4.Nf3 Bg7 * B07 "Pirc: 3.Ad3 g6 4.Cf3 Ag7 5.c3" 1.e4 d6 2.d4 Nf6 3.Bd3 g6 4.Nf3 Bg7 5.c3 * B07 "Pirc: 3.Cc3" 1.e4 d6 2.d4 Nf6 3.Nc3 * B07 "Pirc: 3.Cc3 Cbd7" 1.e4 d6 2.d4 Nf6 3.Nc3 Nbd7 * B07 "Pirc: 3.Cc3 e5" 1.e4 d6 2.d4 Nf6 3.Nc3 e5 * B07 "Pirc: 3.Cc3 e5 Intercambio de Damas" 1.e4 d6 2.d4 Nf6 3.Nc3 e5 4.dxe5 dxe5 5.Qxd8+ * B07 "Pirc: Pytel-Checa" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 * B07 "Pirc: Pytel-Checa, 4.Cf3" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 4.Nf3 * B07 "Pirc: Pytel-Checa, 4.f4" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 4.f4 * B07 "Pirc: Pytel-Checa, 4.f4 Da5" 1.e4 d6 2.d4 Nf6 3.Nc3 c6 4.f4 Qa5 * B07 "Pirc: 3...g6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 * B07 "Pirc: 3...g6 4.h4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.h4 * B07 "Pirc: 4.Cge2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nge2 * B07 "Pirc: 4.Cge2 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nge2 Bg7 * B07 "Pirc: Sveshnikov, 4.g3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.g3 * B07 "Pirc: Sveshnikov, 4.g3 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.g3 Bg7 * B07 "Pirc: Sveshnikov, 4.g3 Ag7 5.Ag2 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.g3 Bg7 5.Bg2 c6 * B07 "Pirc: Holmov, 4.Ac4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bc4 * B07 "Pirc: Holmov, 4.Ac4 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bc4 Bg7 * B07 "Pirc: 4.Ae3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 * B07 "Pirc: 4.Ae3 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 c6 * B07 "Pirc: 4.Ae3 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 * B07 "Pirc: Ataque 150, 4.Ae3 Ag7 5.Dd2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 5.Qd2 * B07 "Pirc: Ataque 150, 4.Ae3 Ag7 5.Dd2 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 5.Qd2 c6 * B07 "Pirc: Ataque 150, 4.Ae3 Ag7 5.Dd2 c6 6.f3 b5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be3 Bg7 5.Qd2 c6 6.f3 b5 * B07 "Pirc: Byrne 4.Ag5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bg5 * B07 "Pirc: 4.Ag5 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Bg5 Bg7 * B07 "Pirc: 4.Ae2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 * B07 "Pirc: 4.Ae2 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 Bg7 * B07 "Pirc: Variante China, 1.e4 d6 2.d4 Cf6 3.Cc3 g6 4.Ae2 Ag7 5.g4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 Bg7 5.g4 * B07 "Pirc: Ataque Bayoneta-Mariotti, 1.e4 d6 2.d4 Cf6 3.Cc3 g6 4.Ae2 Ag7 5.h4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Be2 Bg7 5.h4 * B08 "Pirc: Clásica, 1.e4 d6 2.d4 Cf6 3.Cc3 g6 4.Cf3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 * B08 "Pirc: Clásica, 4.Cf3 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 * B08 "Pirc: Clásica, 4.Cf3 Ag7 5.h3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 * B08 "Pirc: Clásica, 4.Cf3 Ag7 5.h3 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 c6 * B08 "Pirc: Clásica, 4.Cf3 Ag7 5.h3 O-O" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O * B08 "Pirc: Clásica, Sistema Spassky, 1.e4 d6 2.d4 Cf6 3.Cc3 g6 4.Cf3 Ag7 5.h3 O-O 6.Ae3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 * B08 "Pirc: Clásica, Sistema Spassky, 6...d5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 d5 * B08 "Pirc: Clásica, Sistema Spassky, 6...a6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 a6 * B08 "Pirc: Clásica, Sistema Spassky, 6...c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.h3 O-O 6.Be3 c6 * B08 "Pirc: Clásica, 5.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.a4 * B08 "Pirc: Clásica, 5.a4 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.a4 c6 * B08 "Pirc: Clásica, 5.Ac4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bc4 * B08 "Pirc: Clásica, 5.Ac4 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bc4 c6 * B08 "Pirc: Clásica, 5.Ae3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be3 * B08 "Pirc: Clásica, 5.Ae3 a6 6.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be3 a6 6.a4 * B08 "Pirc: Clásica, 5.Ae3 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be3 c6 * B08 "Pirc: Clásica, 5.Ae2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 * B08 "Pirc: Clásica, 5.Ae2 a6 6.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 a6 6.a4 * B08 "Pirc: Clásica, 5.Ae2 c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 c6 * B08 "Pirc: Clásica, 5.Ae2 O-O" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O * B08 "Pirc: Clásica, 5.Ae2 O-O 6.Ae3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.Be3 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O Cc6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Nc6 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O c6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O c6 7.h3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 7.h3 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O c6 7.a4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 7.a4 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O c6 7.a4 Cbd7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O c6 7.a4 Nbd7 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O Ag4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Bg4 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O Ag4 7.Ae3 Cc6 8.Dd2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Bg4 7.Be3 Nc6 8.Qd2 * B08 "Pirc: Clásica, 5.Ae2 O-O 6.O-O Ag4 7.Ae3 Cc6 8.Dd2 e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Be2 O-O 6.O-O Bg4 7.Be3 Nc6 8.Qd2 e5 * B09 "Pirc: Ataque Austríaco, 1.e4 d6 2.d4 Cf6 3.Cc3 g6 4.f4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 * B09 "Pirc: Ataque Austríaco, 4.f4 Ag7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 * B09 "Pirc: Austríaca, Variante Ljubojevic" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Bc4 * B09 "Pirc: Austríaca, 5.Cf3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 * B09 "Pirc: Austríaca, 5...O-O" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O * B09 "Pirc: Austríaca, 5...O-O 6.e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.e5 * B09 "Pirc: Austríaca, 5...O-O 6.Ae3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Be3 * B09 "Pirc: Austríaca, 5...O-O 6.Ae2" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Be2 * B09 "Pirc: Austríaca, 5...O-O 6.Ad3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 * B09 "Pirc: Austríaca, 5...O-O 6.Ad3 Cc6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Nc6 * B09 "Pirc: Austríaca, 5...O-O 6.Ad3 Cc6 7.e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Nc6 7.e5 * B09 "Pirc: Austríaca, 5...O-O 6.Ad3 Ca6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 * B09 "Pirc: Austríaca, 5...O-O 6.Ad3 Ca6 7.O-O c5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 7.O-O c5 * B09 "Pirc: Austríaca, 5...O-O 6.Ad3 Ca6 7.O-O c5 8.d5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 7.O-O c5 8.d5 * B09 "Pirc: Austríaca, 5...O-O 6.Ad3 Ca6 7.O-O c5 8.d5 Ag4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 O-O 6.Bd3 Na6 7.O-O c5 8.d5 Bg4 * B09 "Pirc: Austríaca, 5...c5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 * B09 "Pirc: Austríaca, 5...c5 6.dxc5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.dxc5 * B09 "Pirc: Austríaca, 5...c5 6.dxc5 Da5 7.Ad3" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.dxc5 Qa5 7.Bd3 * B09 "Pirc: Austríaca, 5...c5 6.Ab5+" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ * B09 "Pirc: Austríaca, 5...c5 6.Ab5+ Ad7" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 * B09 "Pirc: Austríaca, 5...c5 6.Ab5+ Ad7 7.e5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 * B09 "Pirc: Austríaca, 5...c5 6.Ab5+ Ad7 7.e5 Cg4" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 * B09 "Pirc: Austríaca, 5...c5 6.Ab5+ Ad7 7.e5 Cg4 8.Axd7+" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.Bxd7+ * B09 "Pirc: Austríaca, 5...c5 6.Ab5+ Ad7 7.e5 Cg4 8.e6" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6 * B09 "Pirc: Austríaca, 5...c5, Variante Seirawan" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6 fxe6 * B09 "Pirc: Austríaca, 5...c5 6.Ab5+ Ad7 7.e5 Cg4 8.e6 Axb5" 1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.f4 Bg7 5.Nf3 c5 6.Bb5+ Bd7 7.e5 Ng4 8.e6 Bxb5 * B10 "Caro-Kann: 1.e4 c6" 1.e4 c6 * B10 "Caro-Kann: 2.Ce2" 1.e4 c6 2.Ne2 * B10 "Caro-Kann: 2.f4" 1.e4 c6 2.f4 * B10 "Caro-Kann: Variante Breyer, 1.e4 c6 2.d3" 1.e4 c6 2.d3 * B10 "Caro-Kann: Variante Breyer, 1.e4 c6 2.d3 d5" 1.e4 c6 2.d3 d5 * B10 "Caro-Kann: Breyer, 3.Cd2" 1.e4 c6 2.d3 d5 3.Nd2 * B10 "Caro-Kann: Breyer, 3.Cd2 g6" 1.e4 c6 2.d3 d5 3.Nd2 g6 * B10 "Caro-Kann: Breyer, 3.Cd2 e5" 1.e4 c6 2.d3 d5 3.Nd2 e5 * B10 "Caro-Kann: Breyer, Línea Principal" 1.e4 c6 2.d3 d5 3.Nd2 e5 4.Ngf3 Bd6 5.g3 * B10 "Caro-Kann: Variante Inglesa, 2.c4" 1.e4 c6 2.c4 * B10 "Caro-Kann: Variante Inglesa, 2.c4 e5" 1.e4 c6 2.c4 e5 * B10 "Caro-Kann: Variante Inglesa, 2.c4 d5" 1.e4 c6 2.c4 d5 * B10 "Caro-Kann: Variante Inglesa, 2.c4 d5 3.cxd5" 1.e4 c6 2.c4 d5 3.cxd5 * B10 "Caro-Kann: Variante Inglesa, 2.c4 d5 3.cxd5 cxd5" 1.e4 c6 2.c4 d5 3.cxd5 cxd5 * B10 "Caro-Kann: Variante Inglesa, 2.c4 d5 3.exd5" 1.e4 c6 2.c4 d5 3.exd5 * B10 "Caro-Kann: Variante Inglesa, 2.c4 d5 3.exd5 cxd5" 1.e4 c6 2.c4 d5 3.exd5 cxd5 * B10 "Caro-Kann: Inglesa, Intercambio, 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 * B10 "Caro-Kann: Inglesa, Intercambio, 4...Cf6" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 * B10 "Caro-Kann: Inglesa, Intercambio, 4...Cf6 5.Ab5+" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 5.Bb5+ * B10 "Caro-Kann: Inglesa, Intercambio, 4...Cf6 5.Cc3" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 5.Nc3 * B10 "Caro-Kann: Inglesa, Intercambio, 4...Cf6 5.Cc3 Cxd5" 1.e4 c6 2.c4 d5 3.exd5 cxd5 4.cxd5 Nf6 5.Nc3 Nxd5 * B10 "Caro-Kann: 2.Cf3" 1.e4 c6 2.Nf3 * B10 "Caro-Kann: 2.Cc3" 1.e4 c6 2.Nc3 * B10 "Caro-Kann: 2.Cc3 d5" 1.e4 c6 2.Nc3 d5 * B10 "Caro-Kann: Goldman-Spielmann" 1.e4 c6 2.Nc3 d5 3.Qf3 * B10 "Caro-Kann: Variante de los Dos Caballos" 1.e4 c6 2.Nc3 d5 3.Nf3 * B10 "Caro-Kann: Dos Caballos, 3...dxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 * B10 "Caro-Kann: Gambito Hector" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 4.Ng5 * B10 "Caro-Kann: Dos Caballos, 3...dxe4 4.Cxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 4.Nxe4 * B10 "Caro-Kann: Dos Caballos, 3...dxe4 4.Cxe4 Cf6" 1.e4 c6 2.Nc3 d5 3.Nf3 dxe4 4.Nxe4 Nf6 * B11 "Caro-Kann: Dos Caballos, 3...Ag4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Ah5" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bh5 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Ah5, 7.g4 Ag6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bh5 5.exd5 cxd5 6.Bb5+ Nc6 7.g4 Bg6 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 dxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 dxe4 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 dxe4 6.Cxe4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 dxe4 6.Nxe4 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 Cf6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 Nf6 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.d4" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d4 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.g3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.g3 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.g3 Cf6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.g3 Nf6 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.d3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.d3 Cd7" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nd7 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.d3 Cf6" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.d3 Cf6 7.a3" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 7.a3 * B11 "Caro-Kann: Dos Caballos, 3...Ag4 4.h3 Axf3 5.Dxf3 e6 6.d3 Cf6 7.Ad2" 1.e4 c6 2.Nc3 d5 3.Nf3 Bg4 4.h3 Bxf3 5.Qxf3 e6 6.d3 Nf6 7.Bd2 * B12 "Caro-Kann: 2.d4" 1.e4 c6 2.d4 * B12 "Caro-Kann: Defensa de Bruycker, 1.e4 c6 2.d4 Ca6" 1.e4 c6 2.d4 Na6 * B12 "Caro-Kann: Defensa Masi, 1.e4 c6 2.d4 Cf6" 1.e4 c6 2.d4 Nf6 * B12 "Caro-Kann: 2.d4 d5" 1.e4 c6 2.d4 d5 * B12 "Caro-Kann: Gambito Ulysses, 1.e4 c6 2.d4 d5 3.Cf3" 1.e4 c6 2.d4 d5 3.Nf3 * B12 "Caro-Kann: Gambito Ulysses, 3.Cf3 dxe4 4.Cg5" 1.e4 c6 2.d4 d5 3.Nf3 dxe4 4.Ng5 * B12 "Caro-Kann: Gambito Miese, 1.e4 c6 2.d4 d5 3.Ae3" 1.e4 c6 2.d4 d5 3.Be3 * B12 "Caro-Kann: Variante Maroczy (Fantasía)" 1.e4 c6 2.d4 d5 3.f3 * B12 "Caro-Kann: Variante Maroczy (Fantasía), 3...e6" 1.e4 c6 2.d4 d5 3.f3 e6 * B12 "Caro-Kann: Variante Maroczy (Fantasía), 3...dxe4" 1.e4 c6 2.d4 d5 3.f3 dxe4 * B12 "Caro-Kann: Variante Maroczy (Fantasía), Línea del Gambito" 1.e4 c6 2.d4 d5 3.f3 dxe4 4.fxe4 e5 5.Nf3 exd4 6.Bc4 * B12 "Caro-Kann: 3.Cd2" 1.e4 c6 2.d4 d5 3.Nd2 * B12 "Caro-Kann: 3.Cd2 dxe4" 1.e4 c6 2.d4 d5 3.Nd2 dxe4 * B12 "Caro-Kann: Variante de Edinburgo, 1.e4 c6 2.d4 d5 3.Cd2 Db6" 1.e4 c6 2.d4 d5 3.Nd2 Qb6 * B12 "Caro-Kann: Gurgenidze-Moderna: 3.Cd2 g6" 1.e4 c6 2.d4 d5 3.Nd2 g6 * B12 "Caro-Kann: Gurgenidze-Moderna: 3.Cd2 g6 4.Cgf3" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 * B12 "Caro-Kann: Gurgenidze-Moderna: 3.Cd2 g6 4.Cgf3 Ag7" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 Bg7 * B12 "Caro-Kann: Gurgenidze-Moderna: 3.Cd2 g6 4.Cgf3 Ag7 5.h3" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 Bg7 5.h3 * B12 "Caro-Kann: Gurgenidze-Moderna: 3.Cd2 g6 4.Cgf3 Ag7 5.c3" 1.e4 c6 2.d4 d5 3.Nd2 g6 4.Ngf3 Bg7 5.c3 * B12 "Caro-Kann: Variante de Avance, 1.e4 c6 2.d4 d5 3." 1.e4 c6 2.d4 d5 3.e5 * B12 "Caro-Kann: Variante de Avance, 3...c5" 1.e4 c6 2.d4 d5 3.e5 c5 * B12 "Caro-Kann: Variante de Avance, 3...c5 4.dxc5" 1.e4 c6 2.d4 d5 3.e5 c5 4.dxc5 * B12 "Caro-Kann: Variante de Avance, 3...c5 4.dxc5 Cc6" 1.e4 c6 2.d4 d5 3.e5 c5 4.dxc5 Nc6 * B12 "Caro-Kann: Avance, 3...Af5" 1.e4 c6 2.d4 d5 3.e5 Bf5 * B12 "Caro-Kann: Avance, Variante Bayoneta" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.g4 * B12 "Caro-Kann: Avance, 4.h4" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.h4 * B12 "Caro-Kann: Avance, 4.c3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.c3 * B12 "Caro-Kann: Avance, Variante Short" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.c3 e6 5.Be2 * B12 "Caro-Kann: Avance, 4.Ad3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Bd3 * B12 "Caro-Kann: Avance, 4.Cf3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 * B12 "Caro-Kann: Avance, 4.Cf3 e6" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 Cd7" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 Nd7 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5 6.O-O" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.O-O * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5 6.O-O Ce7" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.O-O Ne7 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5 6.O-O Cd7" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.O-O Nd7 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5 6.Ae3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5 6.Ae3 Ce7" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 Ne7 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5 6.Ae3 Cd7" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 Nd7 * B12 "Caro-Kann: Avance, 4.Cf3 e6 5.Ae2 c5 6.Ae3 Cd7 7.O-O" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nf3 e6 5.Be2 c5 6.Be3 Nd7 7.O-O * B12 "Caro-Kann: Avance, 4.Cc3" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 * B12 "Caro-Kann: Avance, 4.Cc3 h5" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 h5 * B12 "Caro-Kann: Avance, 4.Cc3 Db6" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 Qb6 * B12 "Caro-Kann: Avance, 4.Cc3 e6" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 * B12 "Caro-Kann: Avance, Línea Principal, 1.e4 c6 2.d4 d5 3.e5 Af5 4.Cc3 e6 5.g4" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 5.g4 * B12 "Caro-Kann: Avance, Línea Principal, 6.Cge2" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 5.g4 Bg6 6.Nge2 * B12 "Caro-Kann: Avance, Línea Principal, 6.Cge2 c5" 1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 e6 5.g4 Bg6 6.Nge2 c5 * B13 "Caro-Kann: Variante del Cambio, 1.e4 c6 2.d4 d5 3.exd5" 1.e4 c6 2.d4 d5 3.exd5 * B13 "Caro-Kann: Intercambio, 3...Dxd5" 1.e4 c6 2.d4 d5 3.exd5 Qxd5 * B13 "Caro-Kann: Intercambio, 3...cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 * B13 "Caro-Kann: Intercambio, 4.Cf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Nf3 * B13 "Caro-Kann: Intercambio, 4.Cf3 Cf6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Nf3 Nf6 * B13 "Caro-Kann: Intercambio, 4.Ad3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 * B13 "Caro-Kann: Intercambio, 4.Ad3 Cc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 * B13 "Caro-Kann: Intercambio, 4.Ad3 Cc6 5.c3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 * B13 "Caro-Kann: Intercambio, 4.Ad3 Cc6 5.c3 g6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 g6 * B13 "Caro-Kann: Intercambio, 4.Ad3 Cc6 5.c3 Cf6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 * B13 "Caro-Kann: Intercambio, 4.Ad3 Cc6 5.c3 Cf6 6.Cf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Nf3 * B13 "Caro-Kann: Intercambio, Variante Rubinstein" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 * B13 "Caro-Kann: Intercambio, Rubinstein, 6...Ag4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 Bg4 * B13 "Caro-Kann: Intercambio, Rubinstein, 7.Db3 Dc8" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 Bg4 7.Qb3 Qc8 * B13 "Caro-Kann: Intercambio, Rubinstein, 7.Db3 Dd7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.Bd3 Nc6 5.c3 Nf6 6.Bf4 Bg4 7.Qb3 Qd7 * B13 "Caro-Kann: Ataque Panov-Botvinnik" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 * B13 "Caro-Kann: Panov-Botvinnik, 4...e6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 e6 * B13 "Caro-Kann: Panov-Botvinnik, 4...Cf6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 * B13 "Caro-Kann: Panov-Botvinnik, Variante Gunderam" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.c5 * B13 "Caro-Kann: Panov-Botvinnik, 5.Cc3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 * B13 "Caro-Kann: Panov-Botvinnik, 5...dxc4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 dxc4 * B13 "Caro-Kann: Panov-Botvinnik, 5...dxc4 6.Axc4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 dxc4 6.Bxc4 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.cxd5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.cxd5 Cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.cxd5 Nxd5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Cf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Cf3 Ag4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Cf3 Ag4 7.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Cf3 Ag4 7.cxd5 Cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Cf3 Ag4 7.cxd5 Cxd5 8.Db3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 8.Qb3 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Cf3 Ag4 7.cxd5 Cxd5 8.Db3 Axf3 9.gxf3 Cb6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 8.Qb3 Bxf3 9.gxf3 Nb6 * B13 "Caro-Kann: Panov-Botvinnik, Línea Principal, 5...Cc6 6.Cf3 Ag4 7.cxd5 Cxd5 8.Db3 Axf3 9.gxf3 e6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Nf3 Bg4 7.cxd5 Nxd5 8.Qb3 Bxf3 9.gxf3 e6 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Ag5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Spielmann" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 Qb6 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Ag5 dxc4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 dxc4 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Defensa Herzog" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 dxc4 7.d5 Na5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Czerniak" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 Qa5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6 6.Ag5 Ae6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 Be6 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Normal, 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Cf6 5.Cc3 Cc6 6.Ag5 e6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Normal, 7.Cf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Normal, 7.Cf3 Ae7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Normal, 7.Cf3 Ae7 8.c5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 8.c5 * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Normal, 7.Cf3 Ae7 8.c5 O-O" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 8.c5 O-O * B13 "Caro-Kann: Panov-Botvinnik, 5...Cc6, Variante Normal, 7.Cf3 Ae7 8.c5 O-O 9.Ab5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nf3 Be7 8.c5 O-O 9.Bb5 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6 6.Cf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Nf3 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5 Cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 Nxd5 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5 Cxd5 7.Ac4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 Nxd5 7.Bc4 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6 6.cxd5 Ag7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.cxd5 Bg7 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6 6.Db3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6 6.Db3 Ag7 7.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6, Línea Principal" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 O-O * B14 "Caro-Kann: Panov-Botvinnik, 5...g6, Línea Principal, 8.Ae2" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 O-O 8.Be2 * B14 "Caro-Kann: Panov-Botvinnik, 5...g6, Línea Principal, 8.Ae2 Cbd7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 g6 6.Qb3 Bg7 7.cxd5 O-O 8.Be2 Nbd7 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Cc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Nc6 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ae7" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ae7 7.Ad3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.Bd3 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ae7 7.cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.cxd5 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 exd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 exd5 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 Cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 Cxd5 8.Dc2" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 Cxd5 8.Dc2 Cc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 Nc6 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 Cxd5 8.Dc2 Cc6 9.Ad3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Qc2 Nc6 9.Bd3 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 Cxd5 8.Ad2" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 Cxd5 8.Ad2 Cc6" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 Nc6 * B14 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ab4 7.cxd5 Cxd5 8.Ad2 Cc6 9.Ad3 O-O" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Bb4 7.cxd5 Nxd5 8.Bd2 Nc6 9.Bd3 O-O * B15 "Caro-Kann: 1.e4 c6 2.d4 d5 3.Cc3" 1.e4 c6 2.d4 d5 3.Nc3 * B15 "Caro-Kann: Contrataque Gurgenidze" 1.e4 c6 2.d4 d5 3.Nc3 b5 * B15 "Caro-Kann: Gurgenidze-Moderna" 1.e4 c6 2.d4 d5 3.Nc3 g6 * B15 "Caro-Kann: Gurgenidze: 4.Ae3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Be3 * B15 "Caro-Kann: Gurgenidze: 4.Ae3 Ag7" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Be3 Bg7 * B15 "Caro-Kann: Gurgenidze: 4.h3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.h3 * B15 "Caro-Kann: Gurgenidze: 4.h3 Ag7" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.h3 Bg7 * B15 "Caro-Kann: Gurgenidze: 4.e5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 * B15 "Caro-Kann: Gurgenidze: 4.e5 Ag7" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 * B15 "Caro-Kann: Gurgenidze: 4.e5 Ag7 5.f4" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 * B15 "Caro-Kann: Gurgenidze: 4.e5 Ag7 5.f4 Ch6" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 Nh6 * B15 "Caro-Kann: Gurgenidze: 4.e5 Ag7 5.f4 h5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 h5 * B15 "Caro-Kann: Gurgenidze: 4.e5 Ag7 5.f4 h5 6.Cf3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.e5 Bg7 5.f4 h5 6.Nf3 * B15 "Caro-Kann: Gurgenidze: 4.Cf3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7 5.exd5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.exd5 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7 5.e5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.e5 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7 5.h3" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7 5.h3 dxe4" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 dxe4 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7 5.h3 dxe4 6.Cxe4" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 dxe4 6.Nxe4 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7 5.h3 Cf6" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 Nf6 * B15 "Caro-Kann: Gurgenidze: 4.Cf3 Ag7 5.h3 Cf6 6.e5" 1.e4 c6 2.d4 d5 3.Nc3 g6 4.Nf3 Bg7 5.h3 Nf6 6.e5 * B15 "Caro-Kann: 3.Cc3 dxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 * B15 "Caro-Kann: Gambito Rasa-Studier" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.f3 * B15 "Caro-Kann: Gambito von Hennig" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Bc4 * B15 "Caro-Kann: 4.Cxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 * B15 "Caro-Kann: 4.Cxe4 Cf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 * B15 "Caro-Kann: Gambito 4.Cxe4 Cf6 5.f3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.f3 * B15 "Caro-Kann: Gambito Alekhine" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Bd3 * B15 "Caro-Kann: 4.Cxe4 Cf6 5.Cg3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Ng3 * B15 "Caro-Kann: 4.Cxe4 Cf6 5.Cxf6+" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ * B15 "Caro-Kann: Variante Tartakower (Nimzowitsch)" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ exf6 * B15 "Caro-Kann: Tartakower, Variante Forgacs" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ exf6 6.Bc4 * B15 "Caro-Kann: Tartakower, 6.c3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ exf6 6.c3 * B16 "Caro-Kann: Bronstein-Larsen" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 * B16 "Caro-Kann: Bronstein-Larsen, 6.Dd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Qd3 * B16 "Caro-Kann: Bronstein-Larsen, 6.Ce2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Ne2 * B16 "Caro-Kann: Bronstein-Larsen, 6.Ac4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Bc4 * B16 "Caro-Kann: Bronstein-Larsen, 6.Cf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 * B16 "Caro-Kann: Bronstein-Larsen, 6.Cf3 Af5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 Bf5 * B16 "Caro-Kann: Bronstein-Larsen, 6.Cf3 Ag4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 Bg4 * B16 "Caro-Kann: Bronstein-Larsen, 6.Cf3 Ag4 7.Ae2 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.Nf3 Bg4 7.Be2 e6 * B16 "Caro-Kann: Bronstein-Larsen, 6.c3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 * B16 "Caro-Kann: Bronstein-Larsen, 6.c3 Af5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 * B16 "Caro-Kann: Bronstein-Larsen, 6.c3 Af5 7.Ce2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Ne2 * B16 "Caro-Kann: Bronstein-Larsen, 6.c3 Af5 7.Cf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Nf3 * B16 "Caro-Kann: Bronstein-Larsen, 6.c3 Af5 7.Cf3 Dc7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Nf3 Qc7 * B16 "Caro-Kann: Bronstein-Larsen, 6.c3 Af5 7.Cf3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 5.Nxf6+ gxf6 6.c3 Bf5 7.Nf3 e6 * B17 "Caro-Kann: Variante Steinitz" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 * B17 "Caro-Kann: Steinitz, 5.Cf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 * B17 "Caro-Kann: Steinitz, 5.Cf3 Cgf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 * B17 "Caro-Kann: Steinitz, 5.Cf3 Cgf6 6.Cxf6+" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ * B17 "Caro-Kann: Steinitz, 5.Cf3 Cgf6 6.Cxf6+ Cxf6 7.Ac4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bc4 * B17 "Caro-Kann: Steinitz, 5.Cf3 Cgf6 6.Cg3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Ng3 * B17 "Caro-Kann: Steinitz, 5.Cf3 Cgf6 6.Cg3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Ng3 e6 * B17 "Caro-Kann: Steinitz, 5.Cg5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 * B17 "Caro-Kann: Steinitz, 5.Cg5 Cgf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 * B17 "Caro-Kann: Steinitz, 5.Cg5 Cgf6 6.Ad3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 * B17 "Caro-Kann: Steinitz, 5.Cg5 Cgf6 6.Ad3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 * B17 "Caro-Kann: Steinitz, 5.Cg5 Cgf6 6.Ad3 e6 7.C1f3 Ad6 8.De2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 * B17 "Caro-Kann: Steinitz, 5.Cg5 Cgf6 6.Ad3, Línea Principal 10.Dxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 h6 9.Ne4 Nxe4 10.Qxe4 * B17 "Caro-Kann: Steinitz, 5.Cg5 Cgf6 6.Ad3, Línea Principal 10.Dxe4 Dc7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 h6 9.Ne4 Nxe4 10.Qxe4 Qc7 * B17 "Caro-Kann: Steinitz, 5.Cg5 Cgf6 6.Ad3, Línea Principal 10.Dxe4 Cf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bd3 e6 7.N1f3 Bd6 8.Qe2 h6 9.Ne4 Nxe4 10.Qxe4 Nf6 * B17 "Caro-Kann: Steinitz, 5.Ac4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 * B17 "Caro-Kann: Steinitz, 5.Ac4 Cgf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 * B17 "Caro-Kann: Steinitz, 5.Ac4 Cgf6 6.Cg5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 * B17 "Caro-Kann: Steinitz, 5.Ac4 Cgf6 6.Cg5, 8.Ab3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 e6 7.Qe2 Nb6 8.Bb3 * B17 "Caro-Kann: Steinitz, 5.Ac4 Cgf6 6.Cg5, 8.Ad3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 e6 7.Qe2 Nb6 8.Bd3 * B17 "Caro-Kann: Steinitz, 5.Ac4 Cgf6 6.Cg5, 8.Ad3 h6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Bc4 Ngf6 6.Ng5 e6 7.Qe2 Nb6 8.Bd3 h6 * B18 "Caro-Kann: Clásica, 1.e4 c6 2.d4 d5 3.Cc3 dxe4 4.Cxe4 Af5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 * B18 "Caro-Kann: Clásica, 5.Cc5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Nc5 * B18 "Caro-Kann: Clásica, 5.Cc5 b6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Nc5 b6 * B18 "Caro-Kann: Clásica, 5.Cg3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 * B18 "Caro-Kann: Clásica, 5.Cg3 Ag6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 * B18 "Caro-Kann: Clásica, Ataque Maroczy" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.f4 * B18 "Caro-Kann: Clásica, Variante Flohr" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nh3 * B18 "Caro-Kann: Clásica, 6.C1e2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.N1e2 * B18 "Caro-Kann: Clásica, 6.Ac4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Bc4 * B18 "Caro-Kann: Clásica, 6.Ac4 e6 7.C1e2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Bc4 e6 7.N1e2 * B18 "Caro-Kann: Clásica, 6.Ac4 e6 7.C1e2 Cf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Bc4 e6 7.N1e2 Nf6 * B18 "Caro-Kann: Clásica, 6.Cf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 * B18 "Caro-Kann: Clásica, 6.Cf3 Cd7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 Nd7 * B18 "Caro-Kann: Clásica, 6.Cf3 Cd7 7.Ad3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 Nd7 7.Bd3 * B18 "Caro-Kann: Clásica, 6.Cf3 Cd7 7.Ad3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Nf3 Nd7 7.Bd3 e6 * B18 "Caro-Kann: Clásica, 6.h4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 * B18 "Caro-Kann: Clásica, 6.h4 h6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 * B18 "Caro-Kann: Clásica, 6.h4 h6 7.Ch3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nh3 * B18 "Caro-Kann: Clásica, 6.h4 h6 7.f4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.f4 * B18 "Caro-Kann: Clásica, 6.h4 h6 7.h5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.h5 * B19 "Caro-Kann: Clásica, 7.Cf3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 * B19 "Caro-Kann: Clásica, 7.Cf3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 e6 * B19 "Caro-Kann: Clásica, 7.Cf3 Cf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 * B19 "Caro-Kann: Clásica, 7.Cf3 Cf6 8.h5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.h5 * B19 "Caro-Kann: Clásica, 7.Cf3 Cf6 8.h5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.h5 Bh7 * B19 "Caro-Kann: Clásica, 7.Cf3 Cf6 8.Ce5" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.Ne5 * B19 "Caro-Kann: Clásica, 7.Cf3 Cf6 8.Ce5 Bh7 9.Ad3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nf6 8.Ne5 Bh7 9.Bd3 * B19 "Caro-Kann: Clásica, 7.Cf3 Cd7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 * B19 "Caro-Kann: Clásica, Variante Spassky" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 * B19 "Caro-Kann: Clásica, Variante Spassky" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3 Cgf6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Ngf6 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 e6 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3 e6 11.Af4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 e6 11.Bf4 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3 Dc7" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3 Dc7 11.Ad2" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3 Dc7 11.Ad2 e6" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 * B19 "Caro-Kann: Clásica, Spassky, 10.Dxd3 Dc7 11.Ad2 e6 12.O-O-O" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O * B19 "Caro-Kann: Clásica, Spassky, Línea Principal" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 * B19 "Caro-Kann: Clásica, Spassky, Línea Principal, 13.Ce4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 13.Ne4 * B19 "Caro-Kann: Clásica, Spassky, Línea Principal, 13.Ce4 O-O-O" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 13.Ne4 O-O-O * B19 "Caro-Kann: Clásica, Spassky, Línea Principal, 14.g3 Cxe4" 1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.h4 h6 7.Nf3 Nd7 8.h5 Bh7 9.Bd3 Bxd3 10.Qxd3 Qc7 11.Bd2 e6 12.O-O-O Ngf6 13.Ne4 O-O-O 14.g3 Nxe4 * B20 "Defensa Siciliana: 1.e4 c5" 1.e4 c5 * B20 "Siciliana: Mengarini: 1.e4 c5 2.a3" 1.e4 c5 2.a3 * B20 "Siciliana: Variante Keres (2.Ce2)" 1.e4 c5 2.Ne2 * B20 "Siciliana: 2.Ac4" 1.e4 c5 2.Bc4 * B20 "Siciliana: Gambito del Ala, 1.e4 c5 2.b4" 1.e4 c5 2.b4 * B20 "Siciliana: Gambito del Ala, Variante Santasiere, 1.e4 c5 2.b4 cxb4 3.c4" 1.e4 c5 2.b4 cxb4 3.c4 * B20 "Siciliana: Gambito del Ala, Variante Marshall, 1.e4 c5 2.b4 cxb4 3.a3" 1.e4 c5 2.b4 cxb4 3.a3 * B20 "Siciliana: Gambito del Ala, Variante de Marienbad, 1.e4 c5 2.b4 cxb4 3.a3 d5 4.exd5 Dxd5 5.Ab2" 1.e4 c5 2.b4 cxb4 3.a3 d5 4.exd5 Qxd5 5.Bb2 * B20 "Siciliana: Gambito del Ala, Variante de Carlsbad, 1.e4 c5 2.b4 cxb4 3.a3 bxa3" 1.e4 c5 2.b4 cxb4 3.a3 bxa3 * B20 "Siciliana: Snyder, 1.e4 c5 2.b3" 1.e4 c5 2.b3 * B20 "Siciliana: Snyder, 2...e6" 1.e4 c5 2.b3 e6 * B20 "Siciliana: Snyder, 2...d6" 1.e4 c5 2.b3 d6 * B20 "Siciliana: Snyder, 2...Cc6" 1.e4 c5 2.b3 Nc6 * B20 "Siciliana: Inglesa (2.c4)" 1.e4 c5 2.c4 * B20 "Siciliana: Inglesa, 2...e6" 1.e4 c5 2.c4 e6 * B20 "Siciliana: Inglesa, 2...d6" 1.e4 c5 2.c4 d6 * B20 "Siciliana: Inglesa, 2...Cc6" 1.e4 c5 2.c4 Nc6 * B20 "Siciliana: Inglesa, 2...Cc6 3.Cf3" 1.e4 c5 2.c4 Nc6 3.Nf3 * B20 "Siciliana: Inglesa, 2...Cc6 3.Ce2" 1.e4 c5 2.c4 Nc6 3.Ne2 * B20 "Siciliana: Inglesa, 2...Cc6 3.Cc3" 1.e4 c5 2.c4 Nc6 3.Nc3 * B20 "Siciliana: Inglesa, 2...Cc6 3.Cc3 g6" 1.e4 c5 2.c4 Nc6 3.Nc3 g6 * B20 "Siciliana: 2.g3" 1.e4 c5 2.g3 * B20 "Siciliana: 2.g3 g6" 1.e4 c5 2.g3 g6 * B20 "Siciliana: 2.g3 g6 3.Ag2 Ag7" 1.e4 c5 2.g3 g6 3.Bg2 Bg7 * B20 "Siciliana: 2.g3 g6 3.Ag2 Ag7 4.f4" 1.e4 c5 2.g3 g6 3.Bg2 Bg7 4.f4 * B20 "Siciliana: 2.g3 g6 3.Ag2 Ag7 4.f4 d6" 1.e4 c5 2.g3 g6 3.Bg2 Bg7 4.f4 d6 * B20 "Siciliana: 2.d3" 1.e4 c5 2.d3 * B20 "Siciliana: 2.d3 e6" 1.e4 c5 2.d3 e6 * B20 "Siciliana: 2.d3 e6 3.g3" 1.e4 c5 2.d3 e6 3.g3 * B20 "Siciliana: 2.d3 Cc6" 1.e4 c5 2.d3 Nc6 * B20 "Siciliana: 2.d3 Cc6 3.g3" 1.e4 c5 2.d3 Nc6 3.g3 * B21 "Siciliana: Ataque Grand Prix" 1.e4 c5 2.f4 * B21 "Siciliana: Grand Prix, 2...g6" 1.e4 c5 2.f4 g6 * B21 "Siciliana: Grand Prix, 2...d6" 1.e4 c5 2.f4 d6 * B21 "Siciliana: Grand Prix, 2...e6" 1.e4 c5 2.f4 e6 * B21 "Siciliana: Grand Prix, 2...e6 3.Cf3" 1.e4 c5 2.f4 e6 3.Nf3 * B21 "Siciliana: Grand Prix, 2...Cc6" 1.e4 c5 2.f4 Nc6 * B21 "Siciliana: Grand Prix, 2...Cc6 3.d3" 1.e4 c5 2.f4 Nc6 3.d3 * B21 "Siciliana: Grand Prix, 2...Cc6 3.Cf3" 1.e4 c5 2.f4 Nc6 3.Nf3 * B21 "Siciliana: Grand Prix, 2...Cc6 3.Cf3 e6" 1.e4 c5 2.f4 Nc6 3.Nf3 e6 * B21 "Siciliana: Grand Prix, 2...Cc6 3.Cf3 g6" 1.e4 c5 2.f4 Nc6 3.Nf3 g6 * B21 "Siciliana: Grand Prix, Defensa Tal, 1.e4 c5 2.f4 d5" 1.e4 c5 2.f4 d5 * B21 "Siciliana: Grand Prix, Defensa Tal, 3.e5" 1.e4 c5 2.f4 d5 3.e5 * B21 "Siciliana: Grand Prix, Variante Toilet, 1.e4 c5 2.f4 d5 3.Cc3" 1.e4 c5 2.f4 d5 3.Nc3 * B21 "Siciliana: Grand Prix, Defensa Tal, 3.exd5" 1.e4 c5 2.f4 d5 3.exd5 * B21 "Siciliana: Grand Prix, Defensa Tal, 1.e4 c5 2.f4 d5 3.exd5 Cf6, 3.exd5 Dxd5" 1.e4 c5 2.f4 d5 3.exd5 Qxd5 * B21 "Siciliana: Grand Prix, Gambito Tal" 1.e4 c5 2.f4 d5 3.exd5 Nf6 * B21 "Siciliana: Grand Prix, Gambito Tal, 4.Ab5+" 1.e4 c5 2.f4 d5 3.exd5 Nf6 4.Bb5+ * B21 "Siciliana: Gambito Smith-Morra, 1.e4 c5 2.d4" 1.e4 c5 2.d4 * B21 "Siciliana: Smith-Morra, 1.e4 c5 2.d4 d5" 1.e4 c5 2.d4 d5 * B21 "Siciliana: Smith-Morra, 1.e4 c5 2.d4 cxd4" 1.e4 c5 2.d4 cxd4 * B21 "Siciliana: Gambito Halasz, 1.e4 c5 2.d4 cxd4 3.f4" 1.e4 c5 2.d4 cxd4 3.f4 * B21 "Siciliana: Smith-Morra, Gambito Morphy, 1.e4 c5 2.d4 cxd4 3.Cf3" 1.e4 c5 2.d4 cxd4 3.Nf3 * B21 "Siciliana: Smith-Morra, Gambito Andreaschek" 1.e4 c5 2.d4 cxd4 3.Nf3 e5 4.c3 * B21 "Siciliana: Smith-Morra, 3.c3" 1.e4 c5 2.d4 cxd4 3.c3 * B21 "Siciliana: Smith-Morra, 3.c3 Cf6" 1.e4 c5 2.d4 cxd4 3.c3 Nf6 * B21 "Siciliana: Smith-Morra, 3.c3 d5" 1.e4 c5 2.d4 cxd4 3.c3 d5 * B21 "Siciliana: Smith-Morra, 3.c3 d3" 1.e4 c5 2.d4 cxd4 3.c3 d3 * B21 "Siciliana: Smith-Morra Aceptado, 1.e4 c5 2.d4 cxd4 3.c3 dxc3" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 * B21 "Siciliana: Smith-Morra Aceptado, 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Cxc3" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 * B21 "Siciliana: Smith-Morra, 4.Cxc3 d6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 d6 * B21 "Siciliana: Smith-Morra, 4.Cxc3 e6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 e6 * B21 "Siciliana: Smith-Morra, 4.Cxc3 e6 5.Cf3" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 e6 5.Nf3 * B21 "Siciliana: Smith-Morra, 4.Cxc3 Cc6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 * B21 "Siciliana: Smith-Morra, 4.Cxc3 Cc6 5.Cf3" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 * B21 "Siciliana: Smith-Morra, 4.Cxc3 Cc6 5.Cf3 e6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 e6 * B21 "Siciliana: Smith-Morra, 4.Cxc3 Cc6 5.Cf3 e6 6.Ac4" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 e6 6.Bc4 * B21 "Siciliana: Smith-Morra, 4.Cxc3 Cc6 5.Cf3 e6 6.Ac4 a6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 e6 6.Bc4 a6 * B21 "Siciliana: Smith-Morra, 4.Cxc3 Cc6 5.Cf3 d6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 * B21 "Siciliana: Smith-Morra, 5.Cf3 d6 6.Ac4" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 * B21 "Siciliana: Smith-Morra, 5.Cf3 d6 6.Ac4 a6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 a6 * B21 "Siciliana: Smith-Morra, 5.Cf3 d6 6.Ac4 e6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 * B21 "Siciliana: Smith-Morra, 5.Cf3 d6 6.Ac4 e6 7.O-O" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O * B21 "Siciliana: Gambito Smith-Morra, Defensa de Chicago" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O a6 8.Qe2 b5 9.Bb3 Ra7 * B21 "Siciliana: Smith-Morra, 5.Cf3 d6 6.Ac4 e6 7.O-O Cf6" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O Nf6 * B21 "Siciliana: Smith-Morra, 5.Cf3 d6 6.Ac4 e6 7.O-O Cf6 8.De2 Ae7" 1.e4 c5 2.d4 cxd4 3.c3 dxc3 4.Nxc3 Nc6 5.Nf3 d6 6.Bc4 e6 7.O-O Nf6 8.Qe2 Be7 * B22 "Siciliana: Alapin, 1.e4 c5 2.c3" 1.e4 c5 2.c3 * B22 "Siciliana: Alapin, 2...e5" 1.e4 c5 2.c3 e5 * B22 "Siciliana: Alapin, 2...g6" 1.e4 c5 2.c3 g6 * B22 "Siciliana: Alapin, 2...g6 3.d4" 1.e4 c5 2.c3 g6 3.d4 * B22 "Siciliana: Alapin, 2...g6 3.d4 cxd4" 1.e4 c5 2.c3 g6 3.d4 cxd4 * B22 "Siciliana: Alapin, 2...Cc6" 1.e4 c5 2.c3 Nc6 * B22 "Siciliana: Alapin, 2...Cc6 3.Cf3" 1.e4 c5 2.c3 Nc6 3.Nf3 * B22 "Siciliana: Alapin, 2...Cc6 3.d4" 1.e4 c5 2.c3 Nc6 3.d4 * B22 "Siciliana: Alapin, 2...e6" 1.e4 c5 2.c3 e6 * B22 "Siciliana: Alapin, 2...e6 3.Cf3" 1.e4 c5 2.c3 e6 3.Nf3 * B22 "Siciliana: Alapin, 2...e6 3.d4" 1.e4 c5 2.c3 e6 3.d4 * B22 "Siciliana: Alapin, 2...e6 3.d4 d5" 1.e4 c5 2.c3 e6 3.d4 d5 * B22 "Siciliana: Alapin, 2...e6 3.d4 d5 4.exd5" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 * B22 "Siciliana: Alapin, 2...e6 3.d4 d5 4.exd5 exd5" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 exd5 * B22 "Siciliana: Alapin, 2...e6 3.d4 d5 4.exd5 exd5 5.Cf3" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 exd5 5.Nf3 * B22 "Siciliana: Alapin, 2...e6 3.d4 d5 4.exd5 exd5 5.Cf3 Cc6" 1.e4 c5 2.c3 e6 3.d4 d5 4.exd5 exd5 5.Nf3 Nc6 * B22 "Siciliana: Alapin, 2...d6" 1.e4 c5 2.c3 d6 * B22 "Siciliana: Alapin, 2...d5" 1.e4 c5 2.c3 d5 * B22 "Siciliana: Alapin, 2...d5 3.exd5" 1.e4 c5 2.c3 d5 3.exd5 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 cxd4 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 cxd4 5.cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 cxd4 5.cxd4 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 e6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 e6 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 e6 5.Cf3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 e6 5.Nf3 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cc6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cc6 5.Cf3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cc6 5.Cf3 cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 cxd4 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cc6 5.Cf3 cxd4 6.cxd4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 cxd4 6.cxd4 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cc6 5.Cf3 Ag4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nc6 5.Nf3 Bg4 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cf6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cf6 5.Cf3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cf6 5.Cf3 Ag4" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 Bg4 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cf6 5.Cf3 Ag4 6.Ae2 e6" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 Bg4 6.Be2 e6 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cf6 5.Cf3 e6 6.Ae3" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 e6 6.Be3 * B22 "Siciliana: Alapin, 2...d5 3.exd5 Dxd5 4.d4 Cf6 5.Cf3 e6 6.Ae2" 1.e4 c5 2.c3 d5 3.exd5 Qxd5 4.d4 Nf6 5.Nf3 e6 6.Be2 * B22 "Siciliana: Alapin, 2...Cf6" 1.e4 c5 2.c3 Nf6 * B22 "Siciliana: Alapin, 2...Cf6 3.e5" 1.e4 c5 2.c3 Nf6 3.e5 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.g3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.g3 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.Cf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.Nf3 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.Cf3 Cc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.Nf3 Nc6 * B22 "Siciliana: Alapin, Variante Heidenfeld, 1.e4 c5 2.c3 Cf6 3.e5 Cd5 4.Cf3 Cc6 5.Ca3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.Nf3 Nc6 5.Na3 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.d4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.d4 cxd4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 * B22 "Siciliana: Alapin, 2...Cf6, 5.Ac4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Bc4 * B22 "Siciliana: Alapin, 2...Cf6, 5.Dxd4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Qxd4 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.d4 cxd4 5.Cf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.d4 cxd4 5.Cf3 e6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 e6 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.d4 cxd4 5.Cf3 Cc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 Nc6 * B22 "Siciliana: Alapin, 2...Cf6 3.e5 Cd5 4.d4 cxd4 5.Cf3 Cc6 6.Ac4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.Nf3 Nc6 6.Bc4 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 d6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 Cc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 Nc6 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 Cc6 6.Cf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 Nc6 6.Nf3 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 d6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 d6 6.Cf3 Cc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 d6 6.Cf3 Cc6 7.Ac4" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 d6 6.Cf3 Cc6 7.Ac4 Cb6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 Nb6 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 d6 6.Cf3 Cc6 7.Ac4 Cb6 8.Ab5" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 d6 6.Nf3 Nc6 7.Bc4 Nb6 8.Bb5 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 e6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 e6 6.Cf3" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 e6 6.Cf3 Cc6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 Nc6 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 e6 6.Cf3 d6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 d6 * B22 "Siciliana: Alapin, 2...Cf6, 5.cxd4 e6 6.Cf3 b6" 1.e4 c5 2.c3 Nf6 3.e5 Nd5 4.d4 cxd4 5.cxd4 e6 6.Nf3 b6 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3" 1.e4 c5 2.Nc3 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 g6" 1.e4 c5 2.Nc3 g6 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 d6" 1.e4 c5 2.Nc3 d6 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 d6 3.Cge2" 1.e4 c5 2.Nc3 d6 3.Nge2 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 d6 3.g3" 1.e4 c5 2.Nc3 d6 3.g3 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 d6 3.f4" 1.e4 c5 2.Nc3 d6 3.f4 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 e6" 1.e4 c5 2.Nc3 e6 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 e6 3.f4" 1.e4 c5 2.Nc3 e6 3.f4 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 e6 3.Cge2" 1.e4 c5 2.Nc3 e6 3.Nge2 * B23 "Siciliana: Cerrada, 1.e4 c5 2.Cc3 e6 3.g3" 1.e4 c5 2.Nc3 e6 3.g3 * B23 "Siciliana: Cerrada, Variante Korchnoi" 1.e4 c5 2.Nc3 e6 3.g3 d5 * B23 "Siciliana: Cerrada, 2...Cc6" 1.e4 c5 2.Nc3 Nc6 * B23 "Siciliana: Cerrada, 2...Cc6 3.Ab5" 1.e4 c5 2.Nc3 Nc6 3.Bb5 * B23 "Siciliana: Cerrada, 2...Cc6 3.Ab5 Cd4" 1.e4 c5 2.Nc3 Nc6 3.Bb5 Nd4 * B23 "Siciliana: Variante Camaleón" 1.e4 c5 2.Nc3 Nc6 3.Nge2 * B23 "Siciliana: Camaleón, 3...e5" 1.e4 c5 2.Nc3 Nc6 3.Nge2 e5 * B23 "Siciliana: Camaleón, 3...g6" 1.e4 c5 2.Nc3 Nc6 3.Nge2 g6 * B23 "Siciliana: Cerrada, Grand Prix" 1.e4 c5 2.Nc3 Nc6 3.f4 * B23 "Siciliana: Cerrada, Grand Prix, 3...d6" 1.e4 c5 2.Nc3 Nc6 3.f4 d6 * B23 "Siciliana: Cerrada, Grand Prix, 3...d6 4.Cf3 g6" 1.e4 c5 2.Nc3 Nc6 3.f4 d6 4.Nf3 g6 * B23 "Siciliana: Cerrada, Grand Prix, 3...e6" 1.e4 c5 2.Nc3 Nc6 3.f4 e6 * B23 "Siciliana: Cerrada, Grand Prix, 3...e6 4.Cf3" 1.e4 c5 2.Nc3 Nc6 3.f4 e6 4.Nf3 * B23 "Siciliana: Cerrada, Grand Prix, 3...e6 4.Cf3 d5" 1.e4 c5 2.Nc3 Nc6 3.f4 e6 4.Nf3 d5 * B23 "Siciliana: Cerrada, Grand Prix, 3...g6" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 * B23 "Siciliana: Cerrada, Grand Prix, 3...g6 4.Cf3 Ag7 5.Ac4" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bc4 * B23 "Siciliana: Cerrada, Grand Prix, 3...g6 4.Cf3 Ag7 5.Ac4 e6" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bc4 e6 * B23 "Siciliana: Cerrada, Grand Prix, Variante Schofman" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bc4 e6 6.f5 * B23 "Siciliana: Cerrada, Grand Prix, 3...g6 4.Cf3 Ag7 5.Ab5" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 * B23 "Siciliana: Cerrada, Grand Prix, 3...g6 4.Cf3 Ag7 5.Ab5 Cd4" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 Nd4 * B23 "Siciliana: Cerrada, Grand Prix, 3...g6 4.Cf3 Ag7 5.Ab5 Cd4 6.Ad3" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 Nd4 6.Bd3 * B23 "Siciliana: Cerrada, Grand Prix, 3...g6 4.Cf3 Ag7 5.Ab5 Cd4 6.O-O" 1.e4 c5 2.Nc3 Nc6 3.f4 g6 4.Nf3 Bg7 5.Bb5 Nd4 6.O-O * B24 "Siciliana: Cerrada, 3.g3" 1.e4 c5 2.Nc3 Nc6 3.g3 * B24 "Siciliana: Cerrada, 3.g3 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 e6 * B24 "Siciliana: Cerrada, 3.g3 g6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 * B24 "Siciliana: Cerrada, 3.g3 g6 4.d3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.d3 * B24 "Siciliana: Cerrada, 3.g3 g6 4.Ag2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 * B24 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 * B24 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7 5.Cge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.Nge2 * B24 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7 5.f4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.f4 * B24 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7 5.d3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 * B24 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7 5.d3 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 e6 * B24 "Siciliana: Cerrada, Variante Smyslov" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 e6 6.Be3 Nd4 7.Nce2 * B24 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7 5.d3 e6 6.f4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 e6 6.f4 * B25 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7 5.d3 d6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 * B25 "Siciliana: Cerrada, 3.g3 g6 4.Ag2 Ag7 5.d3 d6 6.Cge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nge2 * B25 "Siciliana: Cerrada, Botvinnik" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nge2 e5 * B25 "Siciliana: Cerrada, 3.g3, 5.d3 d6 6.Cge2 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Nge2 e6 * B25 "Siciliana: Cerrada, 6.f4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 * B25 "Siciliana: Cerrada, 6.f4 Tb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 Rb8 * B25 "Siciliana: Cerrada, 6.f4 Cf6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 Nf6 * B25 "Siciliana: Cerrada, 6.f4 Cf6 7.Cf3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 Nf6 7.Nf3 * B25 "Siciliana: Cerrada, 6.f4 e5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 * B25 "Siciliana: Cerrada, 6.f4 e5 7.Cf3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 7.Nf3 * B25 "Siciliana: Cerrada, 6.f4 e5 7.Cf3 Cge7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 7.Nf3 Nge7 * B25 "Siciliana: Cerrada, 6.f4 e5 7.Cf3 Cge7 8.O-O" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e5 7.Nf3 Nge7 8.O-O * B25 "Siciliana: Cerrada, 6.f4 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3 Tb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Rb8 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3 b6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 b6 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3 Cd4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3 Cd4 10.Tb1" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.Rb1 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3 Cd4 10.Dd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.Qd2 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3 Cd4 10.e5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.e5 * B25 "Siciliana: Cerrada, 6.f4 e6 7.Cf3 Cge7 8.O-O O-O 9.Ae3 Cd4 10.e5 Cef5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.f4 e6 7.Nf3 Nge7 8.O-O O-O 9.Be3 Nd4 10.e5 Nef5 * B26 "Siciliana: Cerrada, 6.Ae3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 * B26 "Siciliana: Cerrada, 6.Ae3 Cf6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Nf6 * B26 "Siciliana: Cerrada, 6.Ae3 Cf6 7.h3" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Nf6 7.h3 * B26 "Siciliana: Cerrada, 6.Ae3 e5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e5 * B26 "Siciliana: Cerrada, 6.Ae3 e5 7.Dd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e5 7.Qd2 * B26 "Siciliana: Cerrada, 6.Ae3 e5 7.Dd2 Cge7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e5 7.Qd2 Nge7 * B26 "Siciliana: Cerrada, 6.Ae3 Tb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 * B26 "Siciliana: Cerrada, 6.Ae3 Tb8 7.Dd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 7.Qd2 * B26 "Siciliana: Cerrada, 6.Ae3 Tb8 7.Dd2 b5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 7.Qd2 b5 * B26 "Siciliana: Cerrada, 6.Ae3 Tb8 7.Dd2 b5 8.Cge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 Rb8 7.Qd2 b5 8.Nge2 * B26 "Siciliana: Cerrada, 6.Ae3 e6" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 * B26 "Siciliana: Cerrada, 6.Ae3 e6 7.Dd2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 * B26 "Siciliana: Cerrada, 6.Ae3 e6 7.Dd2 Da5" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Qa5 * B26 "Siciliana: Cerrada, 6.Ae3 e6 7.Dd2 Cd4" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Nd4 * B26 "Siciliana: Cerrada, 6.Ae3 e6 7.Dd2 Cge7" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Nge7 * B26 "Siciliana: Cerrada, 6.Ae3 e6 7.Dd2 Tb8" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Rb8 * B26 "Siciliana: Cerrada, 6.Ae3 e6 7.Dd2 Tb8 8.Cge2" 1.e4 c5 2.Nc3 Nc6 3.g3 g6 4.Bg2 Bg7 5.d3 d6 6.Be3 e6 7.Qd2 Rb8 8.Nge2 * B27 "Siciliana: 1.e4 c52.Cf3" 1.e4 c5 2.Nf3 * B27 "Siciliana: Variante Mongoose" 1.e4 c5 2.Nf3 Qa5 * B27 "Siciliana: Variante Quinteros" 1.e4 c5 2.Nf3 Qc7 * B27 "Siciliana: Variante Katalimov" 1.e4 c5 2.Nf3 b6 * B27 "Siciliana: Variante Húngara, 1.e4 c5 2.Cf3 g6" 1.e4 c5 2.Nf3 g6 * B27 "Siciliana: Húngara, 3.c4" 1.e4 c5 2.Nf3 g6 3.c4 * B27 "Siciliana: Húngara, 3.c3" 1.e4 c5 2.Nf3 g6 3.c3 * B27 "Siciliana: Húngara, 3.c3 Ag7 4.d4 cxd4 5.cxd4" 1.e4 c5 2.Nf3 g6 3.c3 Bg7 4.d4 cxd4 5.cxd4 * B27 "Siciliana: Húngara, 3.c3 Ag7 4.d4 cxd4 5.cxd4 d5" 1.e4 c5 2.Nf3 g6 3.c3 Bg7 4.d4 cxd4 5.cxd4 d5 * B27 "Siciliana: Húngara, 3.d4" 1.e4 c5 2.Nf3 g6 3.d4 * B27 "Siciliana: Húngara, 3.d4 cxd4" 1.e4 c5 2.Nf3 g6 3.d4 cxd4 * B27 "Siciliana: Húngara, 3.d4 cxd4 4.Cxd4" 1.e4 c5 2.Nf3 g6 3.d4 cxd4 4.Nxd4 * B27 "Siciliana: Pterodáctilo Acelerada, 1.e4 c5 2.Cf3 g6 3.d4 Ag7" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 * B27 "Siciliana: Pterodáctilo Acelerada, 4.dxc5" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 * B27 "Siciliana: Pterodáctilo Acelerada, 4.dxc5 Da5+" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ * B27 "Siciliana: Pterodáctilo Acelerada, 4.dxc5 Da5+ 5.Cc3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ 5.Nc3 * B27 "Siciliana: Pterodáctilo Acelerada, 4.dxc5 Da5+ 5.c3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ 5.c3 * B27 "Siciliana: Pterodáctilo Acelerada, 4.dxc5 Da5+ 5.c3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.dxc5 Qa5+ 5.c3 Qxc5 * B27 "Siciliana: Pterodáctilo Acelerada, 4.Cc3" 1.e4 c5 2.Nf3 g6 3.d4 Bg7 4.Nc3 * B28 "Siciliana: Variante O'Kelly, 1.e4 c5 2.Cf3 a6" 1.e4 c5 2.Nf3 a6 * B28 "Siciliana: O'Kelly, 3.Cc3" 1.e4 c5 2.Nf3 a6 3.Nc3 * B28 "Siciliana: O'Kelly, 3.d4" 1.e4 c5 2.Nf3 a6 3.d4 * B28 "Siciliana: O'Kelly, 3.d4 cxd4 4.Cxd4" 1.e4 c5 2.Nf3 a6 3.d4 cxd4 4.Nxd4 * B28 "Siciliana: O'Kelly, 3.d4 cxd4 4.Cxd4 Cf6" 1.e4 c5 2.Nf3 a6 3.d4 cxd4 4.Nxd4 Nf6 * B28 "Siciliana: O'Kelly, 3.c4" 1.e4 c5 2.Nf3 a6 3.c4 * B28 "Siciliana: O'Kelly, 3.c4 e6" 1.e4 c5 2.Nf3 a6 3.c4 e6 * B28 "Siciliana: O'Kelly, 3.c3" 1.e4 c5 2.Nf3 a6 3.c3 * B28 "Siciliana: O'Kelly, 3.c3 e6" 1.e4 c5 2.Nf3 a6 3.c3 e6 * B28 "Siciliana: O'Kelly, 3.c3 d5" 1.e4 c5 2.Nf3 a6 3.c3 d5 * B29 "Siciliana: Nimzowitsch, 1.e4 c5 2.Cf3 Cf6" 1.e4 c5 2.Nf3 Nf6 * B29 "Siciliana: Nimzowitsch, 3.d3" 1.e4 c5 2.Nf3 Nf6 3.d3 * B29 "Siciliana: Nimzowitsch, 3.Cc3" 1.e4 c5 2.Nf3 Nf6 3.Nc3 * B29 "Siciliana: Nimzowitsch, 3.Cc3 d5" 1.e4 c5 2.Nf3 Nf6 3.Nc3 d5 * B29 "Siciliana: Nimzowitsch, 3.Cc3 d5 4.exd5" 1.e4 c5 2.Nf3 Nf6 3.Nc3 d5 4.exd5 * B29 "Siciliana: Nimzowitsch, 3.e5" 1.e4 c5 2.Nf3 Nf6 3.e5 * B29 "Siciliana: Nimzowitsch, 3.e5 Cd5" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 * B29 "Siciliana: Nimzowitsch, 4.c4" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.c4 * B29 "Siciliana: Nimzowitsch, 4.d4" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.d4 * B29 "Siciliana: Nimzowitsch, 4.Cc3" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 * B29 "Siciliana: Nimzowitsch, 4.Cc3 Cxc3" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 Nxc3 * B29 "Siciliana: Nimzowitsch, 4.Cc3 e6" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 * B29 "Siciliana: Nimzowitsch, 4.Cc3 e6 5.Cxd5" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 5.Nxd5 * B29 "Siciliana: Nimzowitsch, Contragambito Rubinstein" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 5.Nxd5 exd5 6.d4 Nc6 * B29 "Siciliana: Nimzowitsch, Contragambito Rubinstein, 7.dxc5" 1.e4 c5 2.Nf3 Nf6 3.e5 Nd5 4.Nc3 e6 5.Nxd5 exd5 6.d4 Nc6 7.dxc5 * B30 "Siciliana: 1.e4 c5 2.Cf3 Cc6" 1.e4 c5 2.Nf3 Nc6 * B30 "Siciliana: 2...Cc6 3.b3" 1.e4 c5 2.Nf3 Nc6 3.b3 * B30 "Siciliana: 2...Cc6 3.d3" 1.e4 c5 2.Nf3 Nc6 3.d3 * B30 "Siciliana: 2...Cc6 3.d3 Cf6" 1.e4 c5 2.Nf3 Nc6 3.d3 Nf6 * B30 "Siciliana: 2...Cc6 3.g3" 1.e4 c5 2.Nf3 Nc6 3.g3 * B30 "Siciliana: 2...Cc6 3.g3 e6 4.d3" 1.e4 c5 2.Nf3 Nc6 3.g3 e6 4.d3 * B30 "Siciliana: 2...Cc6 3.Ac4" 1.e4 c5 2.Nf3 Nc6 3.Bc4 * B30 "Siciliana: 2...Cc6 3.Cc3" 1.e4 c5 2.Nf3 Nc6 3.Nc3 * B30 "Siciliana: 2...Cc6 3.Cc3 Cf6" 1.e4 c5 2.Nf3 Nc6 3.Nc3 Nf6 * B30 "Siciliana: 2...Cc6 3.Cc3 g6" 1.e4 c5 2.Nf3 Nc6 3.Nc3 g6 * B30 "Siciliana: 2...Cc6 3.Cc3 e5" 1.e4 c5 2.Nf3 Nc6 3.Nc3 e5 * B30 "Siciliana: Rossolimo, 1.e4 c5 2.Cf3 Cc6 3.Ab5" 1.e4 c5 2.Nf3 Nc6 3.Bb5 * B30 "Siciliana: Rossolimo, 3...Db6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 Qb6 * B30 "Siciliana: Rossolimo, 3...Cf6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 Nf6 * B30 "Siciliana: Rossolimo, 3...e6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 * B30 "Siciliana: Rossolimo, 3...e6 4.b3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.b3 * B30 "Siciliana: Rossolimo, 3...e6 4.Cc3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.Nc3 * B30 "Siciliana: Rossolimo, 3...e6 4.Axc6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.Bxc6 * B30 "Siciliana: Rossolimo, 3...e6 4.O-O" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O * B30 "Siciliana: Rossolimo, 3...e6 4.O-O Cge7" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 * B30 "Siciliana: Rossolimo, 3...e6 4.O-O Cge7 5.b3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.b3 * B30 "Siciliana: Rossolimo, 3...e6 4.O-O Cge7 5.Te1" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.Re1 * B30 "Siciliana: Rossolimo, 3...e6 4.O-O Cge7 5.Cc3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.Nc3 * B30 "Siciliana: Rossolimo, 3...e6 4.O-O Cge7 5.c3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.c3 * B30 "Siciliana: Rossolimo, 3...e6 4.O-O Cge7 5.c3 a6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 e6 4.O-O Nge7 5.c3 a6 * B31 "Siciliana: Rossolimo, 1.e4 c5 2.Cf3 Cc6 3.Ab5 g6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 * B31 "Siciliana: Rossolimo, 3...g6 4.Cc3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Nc3 * B31 "Siciliana: Rossolimo, 3...g6 4.Axc6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 * B31 "Siciliana: Rossolimo, 3...g6 4.Axc6 dxc6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 dxc6 * B31 "Siciliana: Rossolimo, 3...g6 4.Axc6 dxc6 5.d3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 dxc6 5.d3 * B31 "Siciliana: Rossolimo, 3...g6 4.Axc6 dxc6 5.d3 Ag7 6.h3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.Bxc6 dxc6 5.d3 Bg7 6.h3 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.c3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.c3 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.c3 e5" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.c3 e5 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.Te1" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.Te1 Cf6" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.Te1 Cf6 6.c3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 6.c3 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.Te1 Cf6 6.c3 O-O 7.h3" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 6.c3 O-O 7.h3 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.Te1 Cf6 6.c3 O-O 7.d4" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 Nf6 6.c3 O-O 7.d4 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.Te1 e5" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 e5 * B31 "Siciliana: Rossolimo, Variante Gurgenidze" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 e5 6.b4 * B31 "Siciliana: Rossolimo, 3...g6 4.O-O Ag7 5.Te1 e5" 1.e4 c5 2.Nf3 Nc6 3.Bb5 g6 4.O-O Bg7 5.Re1 e5 6.c3 * B32 "Siciliana: 1.e4 c5 2.Cf3 Cc6 3.d4" 1.e4 c5 2.Nf3 Nc6 3.d4 * B32 "Siciliana: 2...Cc6 3.d4 cxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 * B32 "Siciliana: Abierta, 2...Cc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 * B32 "Siciliana: Abierta, 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 Db6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Qb6 * B32 "Siciliana: Variante Flohr" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Qc7 * B32 "Siciliana: Flohr, 5.Cb5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Qc7 5.Nb5 * B32 "Siciliana: Variante Nimzowitsch, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 d5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 d5 * B32 "Siciliana: Lowenthal, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 e5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 * B32 "Siciliana: Lowenthal, 5.Cb5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 * B32 "Siciliana: Lowenthal, 5...a6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 a6 * B32 "Siciliana: Lowenthal, Intercambio de Damas, 5...a6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 a6 6.Nd6+ Bxd6 7.Qxd6 Qf6 8.Qxf6 * B32 "Siciliana: Lowenthal, 5...a6, 6.Cd6+ Axd6 7.Dxd6 Df6 8.Dd1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 a6 6.Nd6+ Bxd6 7.Qxd6 Qf6 8.Qd1 * B32 "Siciliana: Lowenthal, Kalashnikov, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 e5 5.Cb5 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.a4 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.C1c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.N1c3 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.C1c3 a6 7.Ca3 b5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.N1c3 a6 7.Na3 b5 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.C1c3 a6 7.Ca3 b5 8.Cd5 Cge7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.N1c3 a6 7.Na3 b5 8.Nd5 Nge7 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.c4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.c4 Ae7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.c4 Ae7 7.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.Be2 * B32 "Siciliana: Lowenthal, Kalashnikov, 6.c4 Ae7 7.C1c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 * B32 "Siciliana: Lowenthal, Kalashnikov, Línea Principal" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 a6 8.Na3 Be6 * B32 "Siciliana: Lowenthal, Kalashnikov, Línea Principal, 9.Cc2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 a6 8.Na3 Be6 9.Nc2 * B32 "Siciliana: Lowenthal, Kalashnikov, Línea Principal, 9.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 e5 5.Nb5 d6 6.c4 Be7 7.N1c3 a6 8.Na3 Be6 9.Be2 * B33 "Siciliana: Abierta, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 Cf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 * B33 "Siciliana: Abierta, 2...Cc6, 5...Db6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 * B33 "Siciliana: Abierta, 2...Cc6, 5...Db6 6.Cb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 6.Nb3 * B33 "Siciliana: Abierta, 2...Cc6, 5...Db6 6.Cb3 e6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 6.Nb3 e6 * B33 "Siciliana: Abierta, 2...Cc6, 5...Db6 6.Cb3 e6 7.Ad3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Qb6 6.Nb3 e6 7.Bd3 * B33 "Siciliana: Pelícano-Sveshnikov, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 * B33 "Siciliana: Pelícano-Sveshnikov, 6.Cxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nxc6 * B33 "Siciliana: Pelícano-Sveshnikov, 6.Cf5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nf5 * B33 "Siciliana: Pelícano-Sveshnikov, 6.Cf3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nf3 * B33 "Siciliana: Pelícano-Sveshnikov, 6.Cb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Nb3 * B33 "Siciliana: Pelícano-Sveshnikov, 6.Cbd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 * B33 "Siciliana: Pelícano, Variante Haberditz, 6.Cdb5 h6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 h6 * B33 "Siciliana: Pelícano-Sveshnikov, Variante Pelícano, 6.Cdb5 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 * B33 "Siciliana: Pelícano, 7.Ca3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Na3 * B33 "Siciliana: Pelícano, 7.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.a4 * B33 "Siciliana: Pelícano, 7.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.a4 a6 8.Na3 * B33 "Siciliana: Pelícano, 7.Cd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Nd5 * B33 "Siciliana: Pelícano, 7.Ag5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 * B33 "Siciliana: Pelícano, 7.Ag5 a6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 * B33 "Siciliana: Pelícano, 7.Ag5 a6 8.Axf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Bxf6 * B33 "Siciliana: Pelícano, 7.Ag5 a6 8.Ca3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 * B33 "Siciliana: Pelícano, Variante Bird" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 Be6 * B33 "Siciliana: Pelícano, Variante Chelyabinsk, 8..b5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Cd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Cd5 Ae7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Cd5 Ae7, 11.c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Cd5 Ae7, 11.c3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 O-O * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Cd5 Ae7, 11.c3 Ag5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 Bg5 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Cd5 Ae7, 11.c3 O-O 12.Cc2 Ag5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 O-O 12.Nc2 Bg5 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Cd5 Ae7, 11.c3 O-O 12.Cc2 Ag5 13.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Nd5 Be7 10.Bxf6 Bxf6 11.c3 O-O 12.Nc2 Bg5 13.a4 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Axf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Axf6 gxf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Axf6 gxf6 10.Cd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Axf6 gxf6 10.Cd5 Ag7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 Bg7 * B33 "Siciliana: Pelícano, Chelyabinsk, 9.Axf6 gxf6 10.Cd5 Ag7 11.Ad3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 Bg7 11.Bd3 * B33 "Siciliana: Pelícano, Variante Sveshnikov, 10..f5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 * B33 "Siciliana: Pelícano, Sveshnikov, 11.c3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 * B33 "Siciliana: Pelícano, Sveshnikov, 11.c3 Ag7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 Bg7 * B33 "Siciliana: Pelícano, Sveshnikov, 11.c3 Ag7 12.exf5 Axf5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 Bg7 12.exf5 Bxf5 * B33 "Siciliana: Pelícano, Sveshnikov, 11.c3 Ag7 12.exf5 Axf5 13.Cc2 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.c3 Bg7 12.exf5 Bxf5 13.Nc2 O-O * B33 "Siciliana: Pelícano, Sveshnikov, 11.Ad3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.Bd3 * B33 "Siciliana: Pelícano, Sveshnikov, 11.Ad3 Ae6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.Bd3 Be6 * B33 "Siciliana: Pelícano, Sveshnikov, 11.Ad3 Ae6 12.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Ndb5 d6 7.Bg5 a6 8.Na3 b5 9.Bxf6 gxf6 10.Nd5 f5 11.Bd3 Be6 12.O-O * B34 "Siciliana: Fianchetto Acelerado, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 g6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 * B34 "Siciliana: Fianchetto Acelerado, 5.Ac4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Bc4 * B34 "Siciliana: Fianchetto Acelerado, Variante del Cambio, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 g6 5.Cxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nxc6 * B34 "Siciliana: Fianchetto Acelerado, 5.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Be2 * B34 "Siciliana: Fianchetto Acelerado, 5.Ae3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Be3 * B34 "Siciliana: Fianchetto Acelerado, Variante Moderna" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 5...Cf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Nf6 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 5...Cf6 6.Cxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Nf6 6.Nxc6 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 5...Cf6 6.Cxc6 bxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Nf6 6.Nxc6 bxc6 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 5...Ag7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Cde2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Nde2 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Cb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Nb3 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 d6 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 d6 7.Dd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 d6 7.Qd2 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.f3 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Cxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Cxc6 bxc6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 bxc6 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Cxc6 bxc6 8.e5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 bxc6 8.e5 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Cxc6 bxc6 8.e5 Cg8" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Nxc6 bxc6 8.e5 Ng8 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Ae2 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Ae2 O-O 8.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O 8.O-O * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Ae2 O-O 8.O-O d5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O 8.O-O d5 * B34 "Siciliana: Fianchetto Acelerado, Moderna, 6.Ae3 Cf6 7.Ae2 O-O 8.O-O d5 9.exd5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Be2 O-O 8.O-O d5 9.exd5 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 Da5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 Da5 8.O-O O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 8.O-O O-O * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 Da5 8.O-O O-O 9.Ab3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 8.O-O O-O 9.Bb3 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 Da5 8.O-O O-O 9.Ab3 d6 10.h3 Ad7 11.f4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 Qa5 8.O-O O-O 9.Bb3 d6 10.h3 Bd7 11.f4 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.f3 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.O-O * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 Cg4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 Ng4 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 Da5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 Qa5 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 a5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 a5 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 a5 9.a4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 a5 9.a4 * B35 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 a5 9.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 a5 9.f3 * B36 "Siciliana: Maroczy Obligada, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 g6 5.c4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 * B36 "Siciliana: Maroczy Obligada, 5...d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 d6 * B36 "Siciliana: Maroczy Obligada, 5...d6 6.Cc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 d6 6.Nc3 * B36 "Siciliana: Maroczy Obligada, 5...d6 6.Cc3 Ag7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 d6 6.Nc3 Bg7 * B36 "Siciliana: Maroczy Obligada, 5...Cf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 Cxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 Nxd4 * B36 "Siciliana: Maroczy Obligada, Variante Gurgenidze" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 Nxd4 7.Qxd4 d6 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.O-O * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ag5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ag5 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 O-O * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ag5 O-O 10.Dd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Bg5 O-O 10.Qd2 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ae3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ae3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ae3 O-O 10.Dd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ae3 O-O 10.Dd2 Ae6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 Be6 * B36 "Siciliana: Maroczy Obligada, 5...Cf6 6.Cc3 d6 7.Ae2 Cxd4 8.Dxd4 Ag7 9.Ae3 O-O 10.Dd2 Ae6 11.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Nf6 6.Nc3 d6 7.Be2 Nxd4 8.Qxd4 Bg7 9.Be3 O-O 10.Qd2 Be6 11.O-O * B37 "Siciliana: Maroczy Obligada, 5...Ag7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 * B37 "Siciliana: Maroczy Obligada, 6.Cb3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nb3 * B37 "Siciliana: Maroczy Obligada, 6.Cc2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 d6 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 d6 7.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 d6 7.Be2 * B37 "Siciliana: Maroczy Obligada, Variante Simagin" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 d6 7.Be2 Nh6 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 O-O * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 Cd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 Nd7 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O 9.O-O Ae6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Be6 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O 9.O-O Cd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O 9.O-O Cd7 10.Ad2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O 9.O-O Cd7 10.Ad2 a5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 a5 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O 9.O-O Cd7 10.Ad2 Cc5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 Nc5 * B37 "Siciliana: Maroczy Obligada, 6.Cc2 Cf6 7.Cc3 d6 8.Ae2 O-O 9.O-O Cd7 10.Ad2 Cc5 11.b4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Nc2 Nf6 7.Nc3 d6 8.Be2 O-O 9.O-O Nd7 10.Bd2 Nc5 11.b4 * B38 "Siciliana: Maroczy Obligada, 6.Ae3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 * B38 "Siciliana: Maroczy Obligada, 6.Ae3 Ch6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nh6 * B38 "Siciliana: Maroczy Obligada, 6.Ae3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 d6 * B38 "Siciliana: Maroczy Obligada, 6.Ae3 d6 7.Cc3 Ch6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 d6 7.Nc3 Nh6 * B38 "Siciliana: Maroczy Obligada, 6.Ae3 Cf6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 * B38 "Siciliana: Maroczy Obligada, 6.Ae3 Cf6 7.Cc3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 * B38 "Siciliana: Maroczy Obligada, 6.Ae3 Cf6 7.Cc3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 d6 * B38 "Siciliana: Maroczy Obligada, 6.Ae3 Cf6 7.Cc3 d6 8.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 d6 8.Be2 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 b6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 b6 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 b6 9.O-O Ab7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 b6 9.O-O Ab7 10.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 10.f3 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 b6 9.O-O Ab7 10.f3 Db8" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 b6 9.O-O Bb7 10.f3 Qb8 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.f3 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Cd7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Nd7 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O a6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O a6 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Cxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Nxd4 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Cc2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Nc2 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.f3 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Tc1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Rc1 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Dd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Dd2 Cxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Dd2 Cxd4 11.Axd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Dd2 Cxd4, 12.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 Bc6 12.f3 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Dd2 Cxd4, 12.f3 a5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 Bc6 12.f3 a5 * B38 "Siciliana: Maroczy Obligada, 7.Cc3 O-O 8.Ae2 d6 9.O-O Ad7 10.Dd2 Cxd4, 12.f3 a5 13.b3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 O-O 8.Be2 d6 9.O-O Bd7 10.Qd2 Nxd4 11.Bxd4 Bc6 12.f3 a5 13.b3 * B39 "Siciliana: Maroczy Obligada, Variante Breyer, 1.e4 c5 2.Cf3 Cc6 3.d4 cxd4 4.Cxd4 g6 5.c4 Ag7 6.Ae3 Cf6 7.Cc3 Cg4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 e5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 e5 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 e5 10.Cb5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 e5 10.Nb5 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 e5 10.Ad3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 e5 10.Bd3 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 Ne6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 Ne6 10.Dd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Qd2 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 Ne6 10.Tc1" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 Ne6 10.Tc1 Da5" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 Qa5 * B39 "Siciliana: Maroczy Obligada, Breyer, 8.Dxg4 Cxd4 9.Dd1 Ne6 10.Tc1 Da5 11.Dd2" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.c4 Bg7 6.Be3 Nf6 7.Nc3 Ng4 8.Qxg4 Nxd4 9.Qd1 Ne6 10.Rc1 Qa5 11.Qd2 * B40 "Siciliana: 1.e4 c5 2.Cf3 e6" 1.e4 c5 2.Nf3 e6 * B40 "Siciliana: 2...e6 3.c4" 1.e4 c5 2.Nf3 e6 3.c4 * B40 "Siciliana: 2...e6 3.b3" 1.e4 c5 2.Nf3 e6 3.b3 * B40 "Siciliana: 2...e6 3.b3 Cc6" 1.e4 c5 2.Nf3 e6 3.b3 Nc6 * B40 "Siciliana: 2...e6 3.g3" 1.e4 c5 2.Nf3 e6 3.g3 * B40 "Siciliana: 2...e6 3.d3" 1.e4 c5 2.Nf3 e6 3.d3 * B40 "Siciliana: 2...e6 3.Cc3" 1.e4 c5 2.Nf3 e6 3.Nc3 * B40 "Siciliana: 2...e6 3.Cc3 Cc6" 1.e4 c5 2.Nf3 e6 3.Nc3 Nc6 * B40 "Siciliana: 2...e6 3.d4" 1.e4 c5 2.Nf3 e6 3.d4 * B40 "Siciliana: Variante Marshall, 1.e4 c5 2.Cf3 e6 3.d4 d5" 1.e4 c5 2.Nf3 e6 3.d4 d5 * B40 "Siciliana: Abierta, 2...e6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 d6 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4 Ac5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Bc5 * B40 "Siciliana: Variante Kveinys, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 Db6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Qb6 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4 Cf6 5.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4 Cf6 5.Ad3 Cc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 Nc6 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4 Cf6 5.Ad3 Cc6 6.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 Nc6 6.Nxc6 * B40 "Siciliana: Abierta, 2...e6, 4.Cxd4 Cf6 5.Cc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 * B40 "Siciliana: Variante Pin, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 Ab4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bb4 * B40 "Siciliana: Pin, Variante Jaffe, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 Ab4 6.Ad3 e5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bb4 6.Bd3 e5 * B40 "Siciliana: Pin, Variante Koch, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 Ab4 6.e5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bb4 6.e5 * B40 "Siciliana: Alapin, 2...e6 3.Cf3 d5" 1.e4 c5 2.c3 e6 3.Nf3 d5 * B41 "Siciliana: Variante Kan (Paulsen), 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 * B41 "Siciliana: Kan, 5.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.g3 * B41 "Siciliana: Kan, 5.Ae3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Be3 * B41 "Siciliana: Kan, 5.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Be2 * B41 "Siciliana: Kan, 5.Ae2 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Be2 Nf6 * B41 "Siciliana: Kan, 5.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 * B41 "Siciliana: Kan, 5.c4 Dc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Qc7 * B41 "Siciliana: Kan, 5.c4 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 * B41 "Siciliana: Kan, 5.c4 Cf6 6.Cc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 * B41 "Siciliana: Kan, 5.c4 Cf6 6.Cc3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 d6 * B41 "Siciliana: Kan, 5.c4 Cf6 6.Cc3 Ab4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Bb4 * B41 "Siciliana: Kan, 5.c4 Cf6, Variante Bronstein" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Bb4 7.Bd3 Nc6 8.Bc2 * B41 "Siciliana: Kan, 5.c4 Cf6 6.Cc3 Dc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Qc7 * B41 "Siciliana: Kan, 5.c4 Cf6 6.Cc3 Dc7 7.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.c4 Nf6 6.Nc3 Qc7 7.Be2 * B42 "Siciliana: Kan, 5.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 * B42 "Siciliana: Kan, Variante Queso Suizo, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 a6 5.Ad3 g6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 g6 * B42 "Siciliana: Kan, 5.Ad3 Db6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Qb6 * B42 "Siciliana: Kan, 5.Ad3 Dc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Qc7 * B42 "Siciliana: Kan, 5.Ad3 Cc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nc6 * B42 "Siciliana: Kan, Variante Polugaevsky, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 a6 5.Ad3 Ac5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Bc5 * B42 "Siciliana: Kan, Polugaevsky, 6.Cb3 Aa7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Bc5 6.Nb3 Ba7 * B42 "Siciliana: Kan, 5.Ad3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.c4 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O d6 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O d6 7.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O d6 7.c4 * B42 "Siciliana: Kan, Variante Gipslis, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 a6 5.Ad3 Cf6 6.O-O d6 7.c4 g6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O d6 7.c4 g6 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O Dc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O Dc7 7.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.c4 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O Dc7 7.De2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.Qe2 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O Dc7 7.De2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.Qe2 d6 * B42 "Siciliana: Kan, 5.Ad3 Cf6 6.O-O Dc7 7.De2 d6 8.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nf6 6.O-O Qc7 7.Qe2 d6 8.c4 * B43 "Siciliana: Kan, 5.Cc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 * B43 "Siciliana: Kan, 5.Cc3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 * B43 "Siciliana: Kan, 5.Cc3 b5 6.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 6.Bd3 * B43 "Siciliana: Kan, 5.Cc3 b5 6.Ad3 Db6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 6.Bd3 Qb6 * B43 "Siciliana: Kan, 5.Cc3 b5 6.Ad3 Db6 7.Cb3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 b5 6.Bd3 Qb6 7.Nb3 * B43 "Siciliana: Kan, 5.Cc3 Dc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.g3 * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.g3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.g3 Nf6 * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Be2 * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.Ae2 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Be2 Nf6 * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.Ae2 Cf6 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Be2 Nf6 7.O-O * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Bd3 * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.Ad3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Bd3 Nf6 * B43 "Siciliana: Kan, 5.Cc3 Dc7 6.Ad3 Cf6 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Qc7 6.Bd3 Nf6 7.O-O * B44 "Siciliana: Taimanov, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 Cc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 * B44 "Siciliana: Taimanov, 5.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.g3 * B44 "Siciliana: Taimanov, 5.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Be2 * B44 "Siciliana: Taimanov, 5.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 * B44 "Siciliana: Taimanov, 5.c4 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 * B44 "Siciliana: Taimanov, 5.c4 Cf6 6.Cc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 * B44 "Siciliana: Taimanov, 5.c4 Cf6 6.Cc3 Ab4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 Bb4 * B44 "Siciliana: Taimanov, 5.c4 Cf6 6.Cc3 Ab4 7.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 Bb4 7.Nxc6 * B44 "Siciliana: Taimanov, 5.c4 Cf6 6.Cc3 Ab4 7.Cxc6 bxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.c4 Nf6 6.Nc3 Bb4 7.Nxc6 bxc6 * B44 "Siciliana: Taimanov, 5.Ae3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Be3 * B44 "Siciliana: Taimanov, 5.Ae3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Be3 Nf6 * B44 "Siciliana: Taimanov, 5.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nxc6 * B44 "Siciliana: Taimanov, 5.Cxc6 bxc6 6.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nxc6 bxc6 6.Bd3 * B44 "Siciliana, Taimanov, Variante Szen" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 * B44 "Siciliana, Taimanov, Szen, 5...d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 * B44 "Siciliana, Taimanov, Szen, 6.Af4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.Bf4 * B44 "Siciliana, Taimanov, Szen, 6.Af4 e5 7.Ae3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.Bf4 e5 7.Be3 a6 * B44 "Siciliana, Taimanov, Szen, 6.Af4 e5 7.Ae3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.Bf4 e5 7.Be3 Nf6 * B44 "Siciliana, Taimanov, Szen, 6.c4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 * B44 "Siciliana, Taimanov, Szen, 6.c4 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 a6 * B44 "Siciliana, Taimanov, Szen, 6.c4 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 * B44 "Siciliana, Taimanov, Szen, 7.C5c3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N5c3 * B44 "Siciliana, Taimanov, Szen, 7.C1c3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 * B44 "Siciliana, Taimanov, Szen, 7.C1c3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 * B44 "Siciliana, Taimanov, Szen, 7.C1c3 a6 8.Ca3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 * B44 "Siciliana: Taimanov, Szen, Gambito Kasparov, 8.Ca3 d5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 d5 * B44 "Siciliana, Taimanov, Szen, 7.C1c3 a6 8.Ca3 b6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 b6 * B44 "Siciliana, Taimanov, Szen, 7.C1c3 a6 8.Ca3 Ae7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 * B44 "Siciliana, Taimanov, Szen, 7.C1c3 a6 8.Ca3 Ae7 9.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 * B44 "Siciliana, Taimanov, Szen, 7.C1c3 a6 8.Ca3 Ae7 9.Ae2 b6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 b6 * B44 "Siciliana, Taimanov, Szen, 7.C1c3 a6 8.Ca3 Ae7 9.Ae2 O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O * B44 "Siciliana: Taimanov, Szen, Variante Erizo" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 * B44 "Siciliana: Taimanov, Szen, Erizo, 11.Ae3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 * B44 "Siciliana: Taimanov, Szen, Erizo, 11.Ae3 Ad7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Bd7 * B44 "Siciliana: Taimanov, Szen, Erizo, 11.Ae3 Ce5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Ne5 * B44 "Siciliana: Taimanov, Szen, Erizo, 11.Ae3 Ab7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Bb7 * B44 "Siciliana: Taimanov, Szen, Erizo, 11.Ae3 Ab7 12.Db3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 Be7 9.Be2 O-O 10.O-O b6 11.Be3 Bb7 12.Qb3 * B45 "Siciliana: Taimanov, 5.Cc3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 * B45 "Siciliana: Taimanov, 5.Cc3 Ab4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Bb4 * B45 "Siciliana: Taimanov, Cuatro Caballos" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Ag5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Bg5 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.a3 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.g3 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be2 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Ae3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be3 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Ae3 Ab4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be3 Bb4 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Ae3 Ab4 7.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Be3 Bb4 7.Bd3 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cxc6 bxc6 7.e5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cxc6 bxc6 7.e5 Cd5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 Nd5 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cxc6 bxc6 7.e5 Cd5 8.Ce4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 Nd5 8.Ne4 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cxc6 bxc6 7.e5 Cd5 8.Ce4 Dc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Nxc6 bxc6 7.e5 Nd5 8.Ne4 Qc7 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 d6 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 d6 7.Af4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 d6 7.Bf4 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 Ab4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 * B45 "Siciliana: Taimanov, Cuatro Caballos, Ataque Americano" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.Nd6+ * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 Ab4 7.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 Ab4 7.a3 Axc3+ 8.Cxc3 d5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 Ab4 7.a3, 9.ed5 ed5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 Ab4 7.a3, 9.ed5 ed5 10.Ad3 O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 10.Bd3 O-O * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 Ab4 7.a3, 10.Ad3 O-O 11.O-O d4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 10.Bd3 O-O 11.O-O d4 * B45 "Siciliana: Taimanov, Cuatro Caballos, 6.Cdb5 Ab4 7.a3, 10.Ad3 O-O 11.O-O d4 12.Ce2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Nf6 6.Ndb5 Bb4 7.a3 Bxc3+ 8.Nxc3 d5 9.exd5 exd5 10.Bd3 O-O 11.O-O d4 12.Ne2 * B46 "Siciliana: Taimanov, 5...a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 * B46 "Siciliana: Taimanov, 5...a6 6.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.f4 * B46 "Siciliana: Taimanov, 5...a6 6.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Nxc6 * B46 "Siciliana: Taimanov, 5...a6 6.Cxc6 bxc6 7.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Nxc6 bxc6 7.Bd3 * B46 "Siciliana: Taimanov, 5...a6 6.Cxc6 bxc6 7.Ad3 d5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Nxc6 bxc6 7.Bd3 d5 * B46 "Siciliana: Taimanov, 5...a6 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.g3 * B46 "Siciliana: Taimanov, 5...a6 6.g3 Cge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.g3 Nge7 * B46 "Siciliana: Taimanov, 5...a6 6.g3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.g3 d6 * B46 "Siciliana: Taimanov, 5...a6 6.Ae3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 * B46 "Siciliana: Taimanov, 5...a6 6.Ae3 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 d6 * B46 "Siciliana: Taimanov, 5...a6 6.Ae3 Cge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 Nge7 * B46 "Siciliana: Taimanov, 5...a6 6.Ae3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be3 Nf6 * B46 "Siciliana: Taimanov, 5...a6 6.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 * B46 "Siciliana: Taimanov, 5...a6 6.Ae2 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nf6 * B46 "Siciliana: Taimanov, 5...a6 6.Ae2 Cge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nge7 * B46 "Siciliana: Taimanov, 5...a6 6.Ae2 Cge7 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nge7 7.O-O * B46 "Siciliana: Taimanov, 5...a6 6.Ae2 Cge7 7.Ae3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Nge7 7.Be3 * B47 "Siciliana: Taimanov, Variante Bastrikov, 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 Cc6 5.Cc3 Dc7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 * B47 "Siciliana: Taimanov, 6.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Nxc6 * B47 "Siciliana: Taimanov, 6.Cdb5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Ndb5 * B47 "Siciliana: Taimanov, 6.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.f4 * B47 "Siciliana: Taimanov, 6.f4 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.f4 a6 * B47 "Siciliana: Taimanov, 6.f4 a6 7.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.f4 a6 7.Nxc6 * B47 "Siciliana: Taimanov, 6.g3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 * B47 "Siciliana: Taimanov, 6.g3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 d6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 d6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 8.O-O * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 d6 8.O-O Ad7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 8.O-O Bd7 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 d6 8.O-O Ad7 9.Te1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 d6 8.O-O Bd7 9.Re1 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 Cf6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 Cf6 8.O-O Ac5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O Bc5 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 Cf6 8.O-O Ae7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O Be7 * B47 "Siciliana: Taimanov, 6.g3 a6 7.Ag2 Cf6 8.O-O Ae7 9.Te1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.g3 a6 7.Bg2 Nf6 8.O-O Be7 9.Re1 * B47 "Siciliana: Taimanov, 6.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 * B47 "Siciliana: Taimanov, 6.Ae2 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 Nf6 * B47 "Siciliana: Taimanov, 6.Ae2 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.f4 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O b5 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6 8.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.a3 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6 8.Rh1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6 8.Rh1 Ae7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Be7 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6 8.Rh1 Cxd4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6 8.Rh1 Cxd4, 10.Dd3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 9.Qxd4 Bc5 10.Qd3 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6 8.Rh1 Cxd4, 10.Dd3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 9.Qxd4 Bc5 10.Qd3 b5 * B47 "Siciliana: Taimanov, 6.Ae2 a6 7.O-O Cf6 8.Rh1 Cxd4, 10.Dd3 b5 11.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be2 a6 7.O-O Nf6 8.Kh1 Nxd4 9.Qxd4 Bc5 10.Qd3 b5 11.f4 * B48 "Siciliana: Taimanov, 6.Ae3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 * B48 "Siciliana: Taimanov, 6.Ae3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 Nf6 * B48 "Siciliana: Taimanov, 6.Ae3 a6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.a3 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.f4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.f4 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.f4 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.f4 b5 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Dd2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Qd2 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Dd2 Cf6 8.f3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Qd2 Nf6 8.f3 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 b5 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 b5 8.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 b5 8.Nxc6 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 b5 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 b5 8.O-O * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O Cxd4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Nxd4 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O h5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O h5 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O b5 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O Ad6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Bd6 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O Ce5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O Ce5 9.h3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O Ce5 9.h3 Ac5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 Bc5 * B48 "Siciliana: Taimanov, 6.Ae3 a6 7.Ad3 Cf6 8.O-O Ce5 9.h3 Ac5 10.Rh1" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Bd3 Nf6 8.O-O Ne5 9.h3 Bc5 10.Kh1 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cge7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nge7 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 b5 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 b5 8.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 b5 8.Nxc6 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.a3" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.a3 b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 b5 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.a3 Ae7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 Be7 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.a3 Ae7 9.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.a3 Be7 9.O-O * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O b5" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O b5 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ae7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Be7 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4 9.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Nxc6 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4 9.Ca4" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4 9.Ca4 O-O" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 O-O * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4 9.Ca4 Ae7" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4 9.Ca4 Ae7 10.Cxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4 9.Ca4 Ae7 10.Cxc6 bxc6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 bxc6 * B49 "Siciliana: Taimanov, 6.Ae3 a6 7.Ae2 Cf6 8.O-O Ab4 9.Ca4 Ae7 10.Cxc6 bxc6 11.Cb6" 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 Qc7 6.Be3 a6 7.Be2 Nf6 8.O-O Bb4 9.Na4 Be7 10.Nxc6 bxc6 11.Nb6 * B50 "Siciliana: 1.e4 c5 2.Cf3 d6" 1.e4 c5 2.Nf3 d6 * B50 "Siciliana: Gambito del Ala Retardado, 1.e4 c5 2.Cf3 d6 3.b4" 1.e4 c5 2.Nf3 d6 3.b4 * B50 "Siciliana: 2.Cf3 d6 3.b3" 1.e4 c5 2.Nf3 d6 3.b3 * B50 "Siciliana: 2.Cf3 d6 3.b3 e6" 1.e4 c5 2.Nf3 d6 3.b3 e6 * B50 "Siciliana: 2.Cf3 d6 3.d3" 1.e4 c5 2.Nf3 d6 3.d3 * B50 "Siciliana: 2.Cf3 d6 3.g3" 1.e4 c5 2.Nf3 d6 3.g3 * B50 "Siciliana: 2.Cf3 d6 3.Ac4" 1.e4 c5 2.Nf3 d6 3.Bc4 * B50 "Siciliana: 2.Cf3 d6 3.Ac4 Cf6 4.d3" 1.e4 c5 2.Nf3 d6 3.Bc4 Nf6 4.d3 * B50 "Siciliana: 2.Cf3 d6 3.Cc3" 1.e4 c5 2.Nf3 d6 3.Nc3 * B50 "Siciliana: 2.Cf3 d6 3.Cc3 e6" 1.e4 c5 2.Nf3 d6 3.Nc3 e6 * B50 "Siciliana: 2.Cf3 d6 3.Cc3 Cf6" 1.e4 c5 2.Nf3 d6 3.Nc3 Nf6 * B50 "Siciliana: 2.Cf3 d6 3.c3" 1.e4 c5 2.Nf3 d6 3.c3 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.h3" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.h3 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.h3 Cc6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.h3 Nc6 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.Ac4" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Bc4 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.Ad3" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Bd3 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.Ad3 Cc6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Bd3 Nc6 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.Ae2" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.Ae2 Cc6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 Nc6 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.Ae2 Cbd7" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 Nbd7 * B50 "Siciliana: 2.Cf3 d6 3.c3 Cf6 4.Ae2 g6" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 g6 * B50 "Siciliana: 2.Cf3 d6 3.c3, Variante Torre" 1.e4 c5 2.Nf3 d6 3.c3 Nf6 4.Be2 g6 5.O-O Bg7 6.Bb5+ * B51 "Siciliana: 3.Ab5+" 1.e4 c5 2.Nf3 d6 3.Bb5+ * B51 "Siciliana: 3.Ab5+ Cd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 * B51 "Siciliana: 3.Ab5+ Cd7 4.c3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.c3 * B51 "Siciliana: 3.Ab5+ Cd7 4.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.O-O * B51 "Siciliana: 3.Ab5+ Cd7 4.O-O Cf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.O-O Nf6 * B51 "Siciliana: 3.Ab5+ Cd7 4.O-O Cf6 5.Te1 a6 6.Af1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.O-O Nf6 5.Re1 a6 6.Bf1 * B51 "Siciliana: 3.Ab5+ Cd7 4.d4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 * B51 "Siciliana: 3.Ab5+ Cd7 4.d4 cxd4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 cxd4 * B51 "Siciliana: 3.Ab5+ Cd7 4.d4 Cf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 * B51 "Siciliana: 3.Ab5+ Cd7 4.d4 Cf6 5.Cc3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 * B51 "Siciliana: 3.Ab5+ Cd7 4.d4 Cf6 5.Cc3 cxd4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 cxd4 * B51 "Siciliana: 3.Ab5+ Cd7 4.d4 Cf6 5.Cc3 cxd4 6.Dxd4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 cxd4 6.Qxd4 * B51 "Siciliana: 3.Ab5+ Cd7 4.d4 Cf6 5.Cc3 cxd4 6.Dxd4 e5" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nd7 4.d4 Nf6 5.Nc3 cxd4 6.Qxd4 e5 * B51 "Siciliana: 3.Ab5+ Cc6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 * B51 "Siciliana: 3.Ab5+ Cc6 4.Axc6+" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.Bxc6+ * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7 5.Te1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7 5.Te1 a6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 a6 * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7 5.Te1 Cf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7 5.Te1 Cf6 6.c3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7 5.Te1 Cf6 6.c3 a6 7.Aa4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Ba4 * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7 5.Te1 Cf6 6.c3 a6 7.Af1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Bf1 * B51 "Siciliana: 3.Ab5+ Cc6 4.O-O Ad7 5.Te1 Cf6 6.c3 a6 7.Af1 Ag4 8.h3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Nc6 4.O-O Bd7 5.Re1 Nf6 6.c3 a6 7.Bf1 Bg4 8.h3 * B52 "Siciliana: 3.Ab5+ Ad7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Cxd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Cxd7 5.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 5.O-O * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Cxd7 5.O-O Cgf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 5.O-O Ngf6 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Cxd7 5.O-O Cgf6 6.De2" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Nxd7 5.O-O Ngf6 6.Qe2 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Dxd7" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 * B52 "Siciliana: 3.Ab5+, Variante Sokolsky" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 * B52 "Siciliana: 3.Ab5+, Sokolsky, 5...Cc6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 * B52 "Siciliana: 3.Ab5+, Sokolsky, 5...Cc6 6.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.O-O * B52 "Siciliana: 3.Ab5+, Sokolsky, 5...Cc6 6.O-O Cf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.O-O Nf6 * B52 "Siciliana: 3.Ab5+, Sokolsky, 5...Cc6 6.Cc3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.Nc3 * B52 "Siciliana: 3.Ab5+, Sokolsky, 5...Cc6 6.Cc3 Cf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.Nc3 Nf6 * B52 "Siciliana: 3.Ab5+, Sokolsky, 5...Cc6 6.Cc3 Cf6 7.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.c4 Nc6 6.Nc3 Nf6 7.O-O * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Dxd7 5.O-O" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Dxd7 5.O-O Cc6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Dxd7 5.O-O Cc6 6.Te1" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.Re1 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Dxd7 5.O-O Cc6 6.Te1 Cf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.Re1 Nf6 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Dxd7 5.O-O Cc6 6.c3" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3 * B52 "Siciliana: 3.Ab5+ Ad7 4.Axd7+ Dxd7 5.O-O Cc6 6.c3 Cf6" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3 Nf6 * B52 "Siciliana: Gambito Bronstein, 3.Ab5+ Ad7 4.Axd7+ Dxd7 5.O-O Cc6 6.c3 Cf6 7.d4" 1.e4 c5 2.Nf3 d6 3.Bb5+ Bd7 4.Bxd7+ Qxd7 5.O-O Nc6 6.c3 Nf6 7.d4 * B53 "Siciliana: 1.e4 c5 2.Cf3 d6 3.d4" 1.e4 c5 2.Nf3 d6 3.d4 * B53 "Siciliana: 2...d6 3.d4 Cf6" 1.e4 c5 2.Nf3 d6 3.d4 Nf6 * B53 "Siciliana: 2...d6 3.d4 cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 * B53 "Siciliana, Variante Chekhover, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Dxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 * B53 "Siciliana, Chekhover, 4...Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Bd7 * B53 "Siciliana, Chekhover, 4...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 * B53 "Siciliana, Chekhover, 4...a6 5.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.Be3 * B53 "Siciliana, Chekhover, 4...a6 5.c4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.c4 * B53 "Siciliana, Chekhover, 4...a6 5.c4 Cc6 6.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.c4 Nc6 6.Qd2 * B53 "Siciliana, Chekhover, 4...a6 5.c4 Cc6 6.Dd2 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 a6 5.c4 Nc6 6.Qd2 g6 * B53 "Siciliana, Chekhover, 4...Cf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nf6 * B53 "Siciliana, Chekhover, 4...Cf6 5.Cc3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nf6 5.Nc3 * B53 "Siciliana, Chekhover, 4...Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 * B53 "Siciliana: Chekhover, Variante Zaitsev, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Dxd4 Cc6 5.Ab5 Dd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Qd7 * B53 "Siciliana, Chekhover, 4...Cc6 5.Ab5 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 * B53 "Siciliana, Chekhover, 4...Cc6 5.Ab5 Ad7 6.Axc6 Axc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 * B53 "Siciliana, Chekhover, 7.c4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.c4 * B53 "Siciliana, Chekhover, 7.c4 Cf6 8.Cc3 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.c4 Nf6 8.Nc3 g6 * B53 "Siciliana, Chekhover, 7.Cc3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 * B53 "Siciliana, Chekhover, 7.Cc3 Cf6 8.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 * B53 "Siciliana, Chekhover, 7.Cc3 Cf6 8.Ag5 e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 * B53 "Siciliana, Chekhover, Línea Principal, 10.Dd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Qd3 * B53 "Siciliana, Chekhover, Línea Principal, 10.The1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Rhe1 * B53 "Siciliana, Chekhover, Línea Principal, 10.The1 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Rhe1 O-O * B53 "Siciliana, Chekhover, Línea Principal, 11.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Qxd4 Nc6 5.Bb5 Bd7 6.Bxc6 Bxc6 7.Nc3 Nf6 8.Bg5 e6 9.O-O-O Be7 10.Rhe1 O-O 11.Qd2 * B54 "Siciliana: Abierta, 2...d6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 * B54 "Siciliana: Abierta, 2...d6, 4...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 e5 * B54 "Siciliana: Abierta, 2...d6, 4...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 a6 * B54 "Siciliana: Abierta, 2...d6, 4...Cf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 * B54 "Siciliana: Abierta, 2...d6, 4...Cf6 5.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Bd3 * B54 "Siciliana: Variante Prins (Moscú), 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 * B54 "Siciliana: Prins (Moscú), 5...e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e6 * B54 "Siciliana: Prins (Moscú), 5...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 a6 * B54 "Siciliana: Prins (Moscú), 5...Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 Nc6 * B54 "Siciliana: Prins (Moscú), 5...Cc6 6.c4 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 Nc6 6.c4 Nxd4 * B54 "Siciliana: Prins (Moscú), 5...Cc6 6.c4 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 Nc6 6.c4 Qb6 * B54 "Siciliana: Prins (Moscú), 5...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 * B54 "Siciliana: Prins (Moscú), 5...e5 6.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Nb3 * B54 "Siciliana: Prins (Moscú), 5...e5 6.Cb3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Nb3 Be6 * B54 "Siciliana: Prins (Moscú), 5...e5 6.Cb3 d5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Nb3 d5 * B55 "Siciliana: Prins, Ataque de Venecia, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.f3 e5 6.Ab5+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ * B55 "Siciliana: Prins, Ataque de Venecia, 6...Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Bd7 * B55 "Siciliana: Prins, Ataque de Venecia, 6...Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Nbd7 * B55 "Siciliana: Prins, Ataque de Venecia, 6...Cbd7 7.Cf5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Nbd7 7.Nf5 * B55 "Siciliana: Prins, Ataque de Venecia, 6...Cbd7 7.Cf5 d5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3 e5 6.Bb5+ Nbd7 7.Nf5 d5 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 * B56 "Siciliana: Ataque de Venecia, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e5 6.Ab5+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e5 6.Bb5+ * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nbd7 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cbd7 6.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nbd7 6.Bc4 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bd7 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Ad7 6.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Bd7 6.Bg5 * B56 "Siciliana: Abierta, 2...d6 5.Cc3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.h3 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.g3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.g3 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f4 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.f3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 e5 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.f3 e5 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 e5 7.Nb3 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.f3 e5 7.Cb3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.f3 e5 7.Nb3 Be7 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.Ae3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 e5 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.Ae3 Cg4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 Ng4 * B56 "Siciliana: Abierta, 2...d6, 5.Cc3 Cc6 6.Ae3 Cg4 7.Ab5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be3 Ng4 7.Bb5 * B57 "Siciliana: Sozin, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 Cc6 6.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 * B57 "Siciliana: Sozin, Celada Magnus Smith, 6.Ac4 g6 7.Cxc6 bxc6 8.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 g6 7.Nxc6 bxc6 8.e5 * B57 "Siciliana: Sozin, 6...Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Bd7 * B57 "Siciliana: Sozin, 6...Ad7 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Bd7 7.O-O * B57 "Siciliana: Sozin, Variante Benko, 6.Ac4 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 * B57 "Siciliana: Sozin, Benko, 7.Cde2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nde2 * B57 "Siciliana: Sozin, Benko, 7.Cdb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Ndb5 * B57 "Siciliana: Sozin, Benko, 7.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nxc6 * B57 "Siciliana: Sozin, Benko, 7.Cxc6 bxc6 8.O-O g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nxc6 bxc6 8.O-O g6 * B57 "Siciliana: Sozin, Benko, 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 * B57 "Siciliana: Sozin, Benko, 7.Cb3 e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 * B57 "Siciliana: Sozin, Benko, 7.Cb3 e6 8.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.Be3 * B57 "Siciliana: Sozin, Benko, 7.Cb3 e6 8.Af4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.Bf4 * B57 "Siciliana: Sozin, Benko, 7.Cb3 e6 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.O-O * B57 "Siciliana: Sozin, Benko, 7.Cb3 e6 8.O-O Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.O-O Be7 * B57 "Siciliana: Sozin, Benko, 7.Cb3 e6 8.O-O Ae7 9.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bc4 Qb6 7.Nb3 e6 8.O-O Be7 9.Be3 * B58 "Siciliana: Variante Boleslavsky, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 Cc6 6.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 * B58 "Siciliana: Boleslavsky, 6...Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 Bd7 * B58 "Siciliana: Boleslavsky, 6...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 a6 * B58 "Siciliana: Boleslavsky, 6...Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 Nxd4 * B58 "Siciliana: Boleslavsky, 6...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 * B58 "Siciliana: Boleslavsky, 7.Cdb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Ndb5 * B58 "Siciliana: Boleslavsky, Variante Louma, 6.Ae2 e5 7.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nxc6 * B58 "Siciliana: Boleslavsky, Variante Louma, 6.Ae2 e5 7.Cxc6 bxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nxc6 bxc6 * B58 "Siciliana: Boleslavsky, 7.Cf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 * B58 "Siciliana: Boleslavsky, 7.Cf3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 * B58 "Siciliana: Boleslavsky, 7.Cf3 h6 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O * B58 "Siciliana: Boleslavsky, 7.Cf3 h6 8.O-O Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 * B58 "Siciliana: Boleslavsky, 7.Cf3 h6 8.O-O Ae7 9.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.h3 * B58 "Siciliana: Boleslavsky, 7.Cf3 h6 8.O-O Ae7 9.Te1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 a6 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 Ae6 11.Af1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 Ae6 11.Af1 Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Qa5 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 Ae6 11.Af1 Cb8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 Ae6 11.Af1 Cb8 12.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.a4 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 Ae6 11.Af1 Cb8 12.b3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.b3 * B58 "Siciliana: Boleslavsky, 7.Cf3, 9.Te1 O-O 10.h3 Ae6 11.Af1 Cb8 12.b3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nf3 h6 8.O-O Be7 9.Re1 O-O 10.h3 Be6 11.Bf1 Nb8 12.b3 a6 * B59 "Siciliana: Boleslavsky, 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be6 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.Bg5 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.Be3 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Bg5 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.f4 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.Ae3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.Ae3 Ae6 10.Af3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Bf3 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.Ae3 a5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 a5 * B59 "Siciliana: Boleslavsky, 7.Cb3 Ae7 8.O-O O-O 9.Ae3 a5 10.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 a5 10.a4 * B60 "Siciliana: Richter-Rauzer, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 Cc6 6.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 * B60 "Siciliana: Richter-Rauzer, Variante Bondarevsky, 6.Ag5 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 g6 * B60 "Siciliana: Richter-Rauzer, 6...Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Qa5 * B60 "Siciliana: Richter-Rauzer, 6...Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Qb6 * B60 "Siciliana: Richter-Rauzer, 6...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 a6 * B60 "Siciliana: Richter-Rauzer, Variante Larsen, 6.Ag5 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 * B60 "Siciliana: Richter-Rauzer, Larsen, 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Nb3 * B60 "Siciliana: Richter-Rauzer, Larsen, 7.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Bxf6 * B60 "Siciliana: Richter-Rauzer, Larsen, 7.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Be2 * B60 "Siciliana: Richter-Rauzer, Larsen, 7.Ae2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Be2 a6 * B60 "Siciliana: Richter-Rauzer, Larsen, 7.Ae2 Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Be2 Qa5 * B61 "Siciliana: Richter-Rauzer, Larsen, 7.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 * B61 "Siciliana: Richter-Rauzer, Larsen, 7.Dd2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 a6 * B61 "Siciliana: Richter-Rauzer, Larsen, 7.Dd2 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Nxd4 * B61 "Siciliana: Richter-Rauzer, Larsen, 7.Dd2 Tc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 * B61 "Siciliana: Richter-Rauzer, Larsen, 7.Dd2 Tc8 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.f4 * B61 "Siciliana: Richter-Rauzer, Larsen, 7.Dd2 Tc8 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O * B61 "Siciliana: Richter-Rauzer, Larsen, Línea Principal, 7.Dd2 Tc8 8.O-O-O Cxd4 9.Dxd4 Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O Nxd4 9.Qxd4 Qa5 * B61 "Siciliana: Richter-Rauzer, Larsen, Línea Principal, 10.Ad2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O Nxd4 9.Qxd4 Qa5 10.Bd2 * B61 "Siciliana: Richter-Rauzer, Larsen, Línea Principal, 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 Bd7 7.Qd2 Rc8 8.O-O-O Nxd4 9.Qxd4 Qa5 10.f4 * B62 "Siciliana: Richter-Rauzer, 6...e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 * B62 "Siciliana: Richter-Rauzer, 6...e6 7.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Be2 * B62 "Siciliana: Richter-Rauzer, 6...e6 7.Ae2 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Be2 Be7 * B62 "Siciliana: Richter-Rauzer, Variante Podebrady, 6...e6 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nb3 * B62 "Siciliana: Richter-Rauzer, Ataque Richter, 6...e6 7.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Nxc6 * B62 "Siciliana: Richter-Rauzer, Variante Keres, 6...e6 7.Dd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd3 * B62 "Siciliana: Richter-Rauzer, Variante de Margate (Alekhine), 6...e6 7.Ab5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Bb5 * B62 "Siciliana: Richter-Rauzer, Variante de Margate (Alekhine), 7...Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Bb5 Bd7 * B62 "Siciliana: Richter-Rauzer, Variante de Margate (Alekhine), 7...Ad7 8.Axc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Bb5 Bd7 8.Bxc6 * B63 "Siciliana: Richter-Rauzer, Ataque Rauzer, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 Cc6 6.Ag5 e6 7.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Nxd4 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Db6 8.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Db6 8.Cb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 a6 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Db6 8.Cb3 a6 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 a6 9.O-O-O * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Db6 8.Cb3 a6 9.O-O-O Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Qb6 8.Nb3 a6 9.O-O-O Be7 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 h6 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 h6 8.Axf6 gxf6 9.O-O-O a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 h6 8.Bxf6 gxf6 9.O-O-O a6 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 h6 8.Axf6 gxf6 9.O-O-O a6 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 h6 8.Bxf6 gxf6 9.O-O-O a6 10.f4 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O Nxd4 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O Nxd4 9.Qxd4 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O Cxd4 9.Dxd4 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O Nxd4 9.Qxd4 O-O * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7, 9.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f3 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7, 9.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7, 9.Cb3 a5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 a5 * B63 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7, 9.Cb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 a6 * B63 "Siciliana: Richter-Rauzer, Variante Podebrad, 7.Dd2 Ae7 8.O-O-O O-O 9.Cb3 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 * B63 "Siciliana: Richter-Rauzer, Variante Podebrad, 10.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 10.f3 * B63 "Siciliana: Richter-Rauzer, Variante Podebrad, 10.f3 Td8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 10.f3 Rd8 * B63 "Siciliana: Richter-Rauzer, Variante Podebrad, 10.f3 Td8 11.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.Nb3 Qb6 10.f3 Rd8 11.Kb1 * B64 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 * B64 "Siciliana: Richter-Rauzer, Variante Geller, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 e5 * B64 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7, 9.f4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 * B64 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 h6 10.Ah4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 10.Bh4 * B64 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 h6 10.Ah4 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 10.Bh4 Bd7 * B64 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 h6 10.Ah4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 h6 10.Bh4 e5 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4 10.Dxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4 10.Dxd4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 h6 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4 10.Dxd4 Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4 10.Dxd4 Da5 11.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Kb1 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4 10.Dxd4 Da5 11.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4 10.Dxd4 Da5 11.Ac4 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 Bd7 * B65 "Siciliana: Richter-Rauzer, 7.Dd2 Ae7 8.O-O-O O-O 9.f4 Cxd4 10.Dxd4 Da5 11.Ac4 Ad7 12.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O O-O 9.f4 Nxd4 10.Qxd4 Qa5 11.Bc4 Bd7 12.e5 * B66 "Siciliana: Richter-Rauzer, 7...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.Be2 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Be7 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Nxd4 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O Cxd4 9.Dxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Nxd4 9.Qxd4 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O Cxd4 9.Dxd4 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Nxd4 9.Qxd4 Be7 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Af4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Bf4 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Af4, 11.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Bf4 Bd7 10.Nxc6 Bxc6 11.f3 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Qc7 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Bd7 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ad7 10.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Bd7 10.f3 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ae7 10.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f3 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ae7 10.f3 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f3 Nxd4 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ae7 10.f3 Cxd4 11.Axd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f3 Nxd4 11.Bxd4 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ae7 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f4 * B66 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O h6 9.Ae3 Ae7 10.f4 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O h6 9.Be3 Be7 10.f4 Nxd4 * B67 "Siciliana: Richter-Rauzer, 7...a6 8.O-O-O Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.Be2 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f3 Tc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 Rc8 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 Be7 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f3 Ae7 10.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f3 Be7 10.h4 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 h6 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 h6 10.Ah4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 h6 10.Bh4 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 h6 10.Ah4 g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 h6 10.Bh4 g5 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Nxc6 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6 gxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6 gxf6 11.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.f5 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6 gxf6 11.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Nxc6 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6 gxf6 11.Cxc6 Axc6 12.De1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Nxc6 Bxc6 12.Qe1 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6 gxf6 11.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Kb1 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6 gxf6 11.Rb1 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Kb1 Qb6 * B67 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 b5 10.Axf6 gxf6 11.Rb1 Db6 12.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 b5 10.Bxf6 gxf6 11.Kb1 Qb6 12.Nxc6 * B68 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 * B68 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Be2 * B68 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Ae2 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Be2 Qc7 * B68 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Cf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 * B68 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Cf3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 * B68 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Cf3 b5 11.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.e5 * B69 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Cf3 b5 11.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 * B69 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Cf3 b5 11.Axf6 gxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 * B69 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Cf3 b5 11.Axf6 gxf6 12.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 12.Kb1 * B69 "Siciliana: Richter-Rauzer, 7...a6, 9.f4 Ae7 10.Cf3 b5 11.Axf6 gxf6 12.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6 6.Bg5 e6 7.Qd2 a6 8.O-O-O Bd7 9.f4 Be7 10.Nf3 b5 11.Bxf6 gxf6 12.f5 * B70 "Siciliana: Dragón, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 * B70 "Siciliana: Dragón, 6.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f3 * B70 "Siciliana: Dragón, 6.g3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 * B70 "Siciliana: Dragón, 6.g3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 Nc6 * B70 "Siciliana: Dragón, 6.g3 Cc6 7.Ag2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 Nc6 7.Bg2 * B70 "Siciliana: Dragón, 6.g3 Cc6 7.Cde2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.g3 Nc6 7.Nde2 * B70 "Siciliana: Dragón, 6.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bg5 * B70 "Siciliana: Dragón, 6.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bg5 Bg7 * B70 "Siciliana: Dragón, 6.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 * B70 "Siciliana: Dragón, 6.Ac4 Ag7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 Bg7 * B70 "Siciliana: Dragón, 6.Ac4 Ag7 7.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 Bg7 7.h3 * B70 "Siciliana: Dragón, 6.Ac4 Ag7 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Bc4 Bg7 7.O-O * B70 "Siciliana: Dragón, 6.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 * B70 "Siciliana: Dragón, 6.Ae2 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Nc6 * B70 "Siciliana: Dragón, 6.Ae2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 a6 * B70 "Siciliana: Dragón, 6.Ae2 a6 7.a4 Ag7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 a6 7.a4 Bg7 * B70 "Siciliana: Dragón, 6.Ae2 Ag7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O Nc6 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O Cc6 8.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O Nc6 8.Nb3 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O Cc6 8.Cb3 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O Nc6 8.Nb3 O-O * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Te1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Te1 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Te1 Cc6 9.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 9.Nb3 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Te1 Cc6 9.Cb3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Re1 Nc6 9.Nb3 Be6 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Ag5 Cc6 9.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Ag5 Cc6 9.Cb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 a6 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Ag5 Cc6 9.Cb3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 Be6 * B70 "Siciliana: Dragón, 6.Ae2 Ag7 7.O-O O-O 8.Ag5 Cc6 9.Cb3 Ae6 10.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be2 Bg7 7.O-O O-O 8.Bg5 Nc6 9.Nb3 Be6 10.Kh1 * B71 "Siciliana: Dragón, Variante Levenfish, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 g6 6.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 * B71 "Siciliana: Dragón, Levenfish, 6...Ag7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Bg7 * B71 "Siciliana: Dragón, Levenfish, 6...Ag7 7.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Bg7 7.e5 * B71 "Siciliana: Dragón, Levenfish, 6...Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nbd7 * B71 "Siciliana: Dragón, Levenfish, 6...Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 * B71 "Siciliana: Dragón, Levenfish, 6...Cc6 7.Ab5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 7.Bb5 * B71 "Siciliana: Dragón, Levenfish, 6...Cc6 7.Cf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 7.Nf3 * B71 "Siciliana: Dragón, Levenfish, 6...Cc6 7.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.f4 Nc6 7.Nxc6 * B72 "Siciliana: Dragón, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 g6 6.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 * B72 "Siciliana: Dragón, 6.Ae3 Ag7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 * B72 "Siciliana: Dragón, 6.Ae3 Ag7 7.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Qd2 * B72 "Siciliana: Dragón, 6.Ae3 Ag7 7.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Bc4 * B72 "Siciliana: Dragón, 6.Ae3 Ag7 7.Ac4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Bc4 Nc6 * B72 "Siciliana: Dragón, 6.Ae3 Ag7 7.Ac4 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Bc4 O-O * B72 "Siciliana: Dragón, Ataque Clásico, 6.Ae3 Ag7 7.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 * B72 "Siciliana: Dragón, Ataque Clásico, 6.Ae3 Ag7 7.Ae2 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 O-O * B72 "Siciliana: Dragón, Ataque Clásico, 6.Ae3 Ag7 7.Ae2 O-O 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 O-O 8.O-O * B72 "Siciliana: Dragón, Clásico, Variante de Amsterdam, 6.Ae3 Ag7 7.Ae2 Cc6 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.Qd2 * B72 "Siciliana: Dragón, Clásico, Variante Grigoriev, 6.Ae3 Ag7 7.Ae2 Cc6 8.Dd2 O-O 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.Qd2 O-O 9.O-O-O * B72 "Siciliana: Dragón, Clásico, Variante de Nottingham, 6.Ae3 Ag7 7.Ae2 Cc6 8.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.Nb3 * B72 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 d6" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 * B72 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 d6 9.h3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.h3 * B72 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 d6 9.h3 Ad7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.h3 Bd7 * B72 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 d6 9.f3" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.f3 * B73 "Siciliana: Dragón, Clásico, 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O * B73 "Siciliana: Dragón, Clásico, 8.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O * B73 "Siciliana: Dragón, Clásico, 9.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Kh1 * B73 "Siciliana: Dragón, Clásico, Variante Richter, 8.O-O O-O 9.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Qd2 * B73 "Siciliana: Dragón, Clásico, 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.f4 * B73 "Siciliana: Dragón, Clásico, Gambito Zollner, 8.O-O O-O 9.f4 Db6 10.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.f4 Qb6 10.e5 * B74 "Siciliana: Dragón, Clásico, 9.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 * B74 "Siciliana: Dragón, Clásico, 9.Cb3 b6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 b6 * B74 "Siciliana: Dragón, Clásico, Variante Alekhine, 9.Cb3 a5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 a5 * B74 "Siciliana: Dragón, Clásico, 9.Cb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 a6 * B74 "Siciliana: Dragón, Clásico, 9.Cb3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 * B74 "Siciliana: Dragón, Clásico, 9.Cb3 Ae6 10.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 * B74 "Siciliana: Dragón, Clásico, 9.Cb3 Ae6 10.f4 Tc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Rc8 * B74 "Siciliana: Dragón, Clásico, Variante Tartakower, 9.Cb3 Ae6 10.f4 Dc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Qc8 * B74 "Siciliana: Dragón, Clásico, Variante Maroczy, 9.Cb3 Ae6 10.f4 Ca5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 * B74 "Siciliana: Dragón, Clásico, Ataque de Estocolmo, 9.Cb3 Ae6 10.f4 Ca5 11.f5 Ac4 12.Cxa5 Axe2 13.Dxe2 Dxa5 14.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 11.f5 Bc4 12.Nxa5 Bxe2 13.Qxe2 Qxa5 14.g4 * B74 "Siciliana: Dragón, Clásico, Variante Spielmann, 9.Cb3 Ae6 10.f4 Ca5 11.f5 Ac4 12.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 11.f5 Bc4 12.Bd3 * B74 "Siciliana: Dragón, Clásico, Defensa Bernard, 9.Cb3 Ae6 10.f4 Ca5 11.f5 Ac4 12.Ad3 Axd3 13.cxd3 d5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.Be2 Nc6 8.O-O O-O 9.Nb3 Be6 10.f4 Na5 11.f5 Bc4 12.Bd3 Bxd3 13.cxd3 d5 * B75 "Siciliana: Dragón, Ataque Yugoslavo, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 g6 6.Ae3 Ag7 7.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 * B75 "Siciliana: Dragón, Yugoslavo 7...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 a6 * B75 "Siciliana: Dragón, Yugoslavo 7...Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 * B75 "Siciliana: Dragón, Yugoslavo 7...Cc6 8.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Bc4 * B75 "Siciliana: Dragón, Yugoslavo 7...Cc6 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 * B75 "Siciliana: Dragón, Yugoslavo 7...Cc6 8.Dd2 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 Bd7 * B75 "Siciliana: Dragón, Yugoslavo 7...Cc6 8.Dd2 Ad7 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 Bd7 9.O-O-O * B75 "Siciliana: Dragón, Yugoslavo 7...Cc6 8.Dd2 Ad7 9.O-O-O Tc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 Nc6 8.Qd2 Bd7 9.O-O-O Rc8 * B76 "Siciliana: Dragón, Yugoslavo 7.f3 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O * B76 "Siciliana: Dragón, Yugoslavo 7.f3 O-O 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 * B76 "Siciliana: Dragón, Yugoslavo 8.Dd2 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 * B76 "Siciliana: Dragón, Yugoslavo 9.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.g4 * B76 "Siciliana: Dragón, Yugoslavo 9.g4 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.g4 Be6 * B76 "Siciliana: Dragón, Yugoslavo 9.g4 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.g4 Nxd4 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Bd7 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O Ad7 10.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Bd7 10.g4 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O Cxd4 10.Axd4 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O Cxd4: 11.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 11.Kb1 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O Cxd4: 11.Rb1 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 11.Kb1 Qc7 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O Cxd4: 11.Rb1 Dc7 12.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O Nxd4 10.Bxd4 Be6 11.Kb1 Qc7 12.g4 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5 10.De1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.Qe1 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5 10.exd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5 10.exd5 Cxd5 11.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5: 12.Cxd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Nxd5 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5: 12.Ad4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Bd4 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5: 12.Ad4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Bd4 e5 * B76 "Siciliana: Dragón, Yugoslavo 9.O-O-O d5: 12.Ad4 e5 13.Ac5 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.O-O-O d5 10.exd5 Nxd5 11.Nxc6 bxc6 12.Bd4 e5 13.Bc5 Be6 * B76 "Siciliana: Fianchetto Acelerado, Moderna, 7.Ac4 O-O 8.Ab3 d6 9.f3 Ad7" 1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 g6 5.Nc3 Bg7 6.Be3 Nf6 7.Bc4 O-O 8.Bb3 d6 9.f3 Bd7 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 * B77 "Siciliana: Dragón, Yugoslavo Variante Byrne, 9.Ac4 a5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 a5 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Ce5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Ne5 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Cd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Nd7 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Cxd4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Nxd4 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Ad7 10.Ab3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.Bb3 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Ad7 10.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.g4 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Ad7 10.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.h4 * B77 "Siciliana: Dragón, Yugoslavo 9.Ac4 Ad7 10.h4 Tc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.h4 Rc8 * B78 "Siciliana: Dragón, Yugoslavo 10.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O * B78 "Siciliana: Dragón, Yugoslavo 10.O-O-O Ce5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Ne5 * B78 "Siciliana: Dragón, Yugoslavo 10.O-O-O Tc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 * B78 "Siciliana: Dragón, Yugoslavo 10.O-O-O Tc8 11.Ab3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 * B78 "Siciliana: Dragón, Yugoslavo Moderna Línea Principal, 10.O-O-O Tc8 11.Ab3 Ce5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.Kb1 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.Kb1 Nc4 13.Bxc4 Rxc4 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.Rb1: 14.g4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.Kb1 Nc4 13.Bxc4 Rxc4 14.g4 b5 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 Cc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 Nc4 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 Cc4: 14.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 Nc4 13.Bxc4 Rxc4 14.g4 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 Cc4: 14.h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 Nc4 13.Bxc4 Rxc4 14.h5 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5 13.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Kb1 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5 13.Ah6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bh6 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5 13.Ah6 Axh6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bh6 Bxh6 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5 13.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5 13.Ag5 Tc5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 Rc5 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5 13.Ag5 Tc5 14.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 Rc5 14.g4 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal, 12.h4 h5 13.Ag5 Tc5 14.Tb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Rc8 11.Bb3 Ne5 12.h4 h5 13.Bg5 Rc5 14.Kb1 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 10.O-O-O Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 11.Ab3 Tac8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rac8 * B78 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 11.Ab3 Tfc8" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 * B79 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 12.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 * B79 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 12.h4 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 h5 * B79 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 12.h4 Ce5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 * B79 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 12.h4 Ce5 13.Rb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.Kb1 * B79 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 12.h4 Ce5 13.Rb1 Cc4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.Kb1 Nc4 * B79 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 12.h4 Ce5 13.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.g4 * B79 "Siciliana: Dragón, Yugoslavo Línea Principal Antigua, 12.h4 Ce5 13.h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6 6.Be3 Bg7 7.f3 O-O 8.Qd2 Nc6 9.Bc4 Bd7 10.O-O-O Qa5 11.Bb3 Rfc8 12.h4 Ne5 13.h5 * B80 "Siciliana: Scheveningen, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 * B80 "Siciliana: Scheveningen, 6.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 * B80 "Siciliana: Scheveningen, 6.Ae3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 Nc6 * B80 "Siciliana: Scheveningen, 6.Ae3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 Nc6 7.f3 * B80 "Siciliana: Scheveningen, 6.Ae3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 * B80 "Siciliana: Scheveningen, 7.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.Qd2 * B80 "Siciliana: Scheveningen, Ataque Inglés, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.Ae3 a6 7.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 * B80 "Siciliana: Scheveningen, Ataque Inglés, 7...Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 Nc6 * B80 "Siciliana: Scheveningen, Inglés, 7...Cc6 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 Nc6 8.Qd2 * B80 "Siciliana: Scheveningen, Inglés, 7...Cc6 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 Nc6 8.Qd2 Be7 * B80 "Siciliana: Scheveningen, Ataque Inglés, 7...b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 * B80 "Siciliana: Scheveningen, Inglés, 7...b5 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 * B80 "Siciliana: Scheveningen, Inglés, 7...b5, 8.Dd2 Ab7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 Bb7 * B80 "Siciliana: Scheveningen, Inglés, 7...b5 8.Dd2 Ab7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 Bb7 9.g4 * B80 "Siciliana: Scheveningen, Inglés, 7...b5 8.Dd2 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be3 a6 7.f3 b5 8.Qd2 Nbd7 * B80 "Siciliana: Scheveningen, Variante Vitolins, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.Ab5+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bb5+ * B80 "Siciliana: Scheveningen, Vitolins, 6...Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bb5+ Bd7 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 a6 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 Cc6 7.Ag2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 a6 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 Cc6 7.Ag2 a6 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 a6 8.O-O * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 Cc6 7.Ag2 a6 8.O-O Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 a6 8.O-O Bd7 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 Cc6 7.Ag2 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 Qc7 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 Cc6 7.Ag2 Dc7 8.O-O a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 Qc7 8.O-O a6 * B80 "Siciliana: Scheveningen, Variante del Fianchetto, 6.g3 Cc6 7.Ag2 Dc7 8.O-O a6 9.Te1 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g3 Nc6 7.Bg2 Qc7 8.O-O a6 9.Re1 Be7 * B81 "Siciliana: Scheveningen, Ataque Keres, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 * B81 "Siciliana: Scheveningen, Keres, 6...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 e5 * B81 "Siciliana: Scheveningen, Keres, 6...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 * B81 "Siciliana: Scheveningen, Keres, Ataque Perenyi, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.g4 a6 7.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 * B81 "Siciliana: Scheveningen, Keres, Ataque Perenyi, 7...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 e5 * B81 "Siciliana: Scheveningen, Keres, Ataque Perenyi, 7...h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 h6 * B81 "Siciliana: Scheveningen, Keres, Ataque Perenyi, 7...h6 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 a6 7.Be3 h6 8.f4 * B81 "Siciliana: Scheveningen, Keres, 6...h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h3 Cc6 8.Ag2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h3 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h3 Cc6 8.Ag2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h3 Nc6 8.Bg2 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h3 a6 8.Ag2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h3 a6 8.Bg2 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h4 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Be7 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Nc6 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h4 Cc6 8.Tg1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Nc6 8.Rg1 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.h4 Cc6 8.Tg1 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.h4 Nc6 8.Rg1 h5 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.g5 * B81 "Siciliana: Scheveningen, Keres, 6...h6 7.Tg1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 h6 7.Rg1 * B81 "Siciliana: Scheveningen, Keres, 6...Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 * B81 "Siciliana: Scheveningen, Keres, 6...Cc6 7.g5 Cd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 7.g5 Nd7 * B81 "Siciliana: Scheveningen, Keres, 6...Cc6 7.g5 Cd7 8.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 7.g5 Nd7 8.Be3 * B81 "Siciliana: Scheveningen, Keres, 6...Cc6 7.g5 Cd7 8.Ae3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.g4 Nc6 7.g5 Nd7 8.Be3 Be7 * B82 "Siciliana: Scheveningen, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 * B82 "Siciliana: Scheveningen, 6.f4 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Qb6 * B82 "Siciliana: Scheveningen, 6.f4 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Be7 * B82 "Siciliana: Scheveningen, 6.f4 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 a6 * B82 "Siciliana: Scheveningen, 6.f4 a6 7.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 a6 7.Be3 * B82 "Siciliana: Scheveningen, 6.f4 a6 7.Ae3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 a6 7.Be3 b5 * B82 "Siciliana: Scheveningen, 6.f4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 * B82 "Siciliana: Scheveningen, 6.f4 Cc6 7.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 * B82 "Siciliana: Scheveningen, 6.f4 Cc6 7.Ae3 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Qc7 * B82 "Siciliana: Scheveningen, 6.f4 Cc6 7.Ae3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 * B82 "Siciliana: Scheveningen, Variante Tal, 6.f4 Cc6 7.Ae3 Ae7 8.Df3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 8.Qf3 * B82 "Siciliana: Scheveningen, Variante Tal, 8...e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 8.Qf3 e5 * B82 "Siciliana: Scheveningen, Variante Tal, 8...Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.f4 Nc6 7.Be3 Be7 8.Qf3 Qc7 * B83 "Siciliana: Scheveningen, 6.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 * B83 "Siciliana: Scheveningen, 6.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Be7 * B83 "Siciliana: Scheveningen, Moderna, 6.Ae2 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 * B83 "Siciliana: Scheveningen, Moderna, 6.Ae2 Cc6 7.O-O Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 * B83 "Siciliana: Scheveningen, Moderna, 6.Ae2 Cc6 7.O-O Ae7 8.Ae3 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O * B83 "Siciliana: Scheveningen, Moderna, 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 e5 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 e5 10.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 e5 10.Nb3 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 e5 10.Cb3 exf4 11.Axf4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 e5 10.Nb3 exf4 11.Bxf4 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 Ad7 10.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Nb3 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 Ad7 10.Cb3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Nb3 a6 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 Ad7 10.Cb3 a6 11.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Nb3 a6 11.a4 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 Ad7 10.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Kh1 * B83 "Siciliana: Scheveningen, Moderna, 9.f4 Ad7 10.De1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 Nc6 7.O-O Be7 8.Be3 O-O 9.f4 Bd7 10.Qe1 * B84 "Siciliana: Scheveningen, Clásica, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.Ae2 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 * B84 "Siciliana: Scheveningen, Clásica, 7.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.a4 * B84 "Siciliana: Scheveningen, Clásica, 7.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.f4 * B84 "Siciliana: Scheveningen, Clásica, 7.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.Be3 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nbd7 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Cbd7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nbd7 8.a4 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Cbd7 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nbd7 8.f4 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Kh1 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.Rh1 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Kh1 Nc6 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.a4 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.a4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.a4 Nc6 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.Af3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Bf3 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Be3 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.Ae3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.Be3 Nc6 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.f4 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Dc7 8.f4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Qc7 8.f4 Nc6 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Ae7 8.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Ae7 8.f4 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Ae7 8.f4 Dc7 9.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 9.Be3 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Ae7 8.f4 Dc7 9.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 9.Kh1 * B84 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Qc7 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.De1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Qe1 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.De1 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Qe1 Qc7 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.De1 Dc7 11.Dg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Qe1 Qc7 11.Qg3 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Kh1 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.Rh1 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Kh1 Bd7 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.Rh1 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.Kh1 Qc7 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.a4 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 Bd7 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.a4 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 Qc7 * B85 "Siciliana: Scheveningen, Clásica, Línea Principal, 9...Cc6 10.a4 Dc7 11.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O 9.Be3 Nc6 10.a4 Qc7 11.Kh1 * B85 "Siciliana: Scheveningen, Clásica, 7.O-O Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Nc6 * B85 "Siciliana: Scheveningen, Clásica, 7.O-O Ae7 8.f4 Dc7 9.Ae3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 Qc7 9.Be3 Nc6 * B84 "Siciliana: Scheveningen, Clásica, 7.O-O Ae7 8.f4 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Be2 a6 7.O-O Be7 8.f4 O-O * B86 "Siciliana: Sozin-Scheveningen, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 * B86 "Siciliana: Sozin-Scheveningen, 6...Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Qb6 * B86 "Siciliana: Sozin-Najdorf" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 * B86 "Siciliana: Sozin-Najdorf, 7.Ab3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 * B86 "Siciliana: Sozin-Najdorf, 7.Ab3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 Be7 * B87 "Siciliana: Sozin-Najdorf, 7.Ab3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 * B87 "Siciliana: Sozin-Najdorf, 7.Ab3 b5 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O * B87 "Siciliana: Sozin-Najdorf, 7.Ab3 b5 8.O-O Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O Be7 * B87 "Siciliana: Sozin-Najdorf, 7.Ab3 b5 8.O-O Ae7 9.Df3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O Be7 9.Qf3 * B87 "Siciliana: Sozin-Najdorf, 7.Ab3 b5 8.O-O Ae7 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 a6 7.Bb3 b5 8.O-O Be7 9.f4 * B88 "Siciliana: Sozin-Scheveningen, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.Ac4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 * B88 "Siciliana: Sozin-Scheveningen, 7.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.O-O * B88 "Siciliana: Sozin-Scheveningen, 7.Ab3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Bb3 * B88 "Siciliana: Sozin-Scheveningen, 7.Ab3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Bb3 Be7 8.Be3 * B88 "Siciliana: Sozin, Variante Fischer, 6.Ac4 Cc6 7.Ab3 Ae7 8.Ae3 O-O 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Bb3 Be7 8.Be3 O-O 9.f4 * B89 "Siciliana: Sozin, 7.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 * B89 "Siciliana: Sozin, 7.Ae3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 a6 * B89 "Siciliana: Velimirovic contra 7...a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 a6 8.Qe2 * B89 "Siciliana: Sozin, 7.Ae3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 * B89 "Siciliana: Velimirovic, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 e6 6.Ac4 Cc6 7.Ae3 Ae7 8.De2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 * B89 "Siciliana: Velimirovic, 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 O-O 9.O-O-O * B89 "Siciliana: Velimirovic, 9.O-O-O Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 O-O 9.O-O-O Qc7 * B89 "Siciliana: Velimirovic, 9.O-O-O Dc7 10.Ab3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Bc4 Nc6 7.Be3 Be7 8.Qe2 O-O 9.O-O-O Qc7 10.Bb3 a6 * B90 "Siciliana: Najdorf, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 a6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 * B90 "Siciliana: Najdorf, 6.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.a4 * B90 "Siciliana: Najdorf, 6.a4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.a4 e5 * B90 "Siciliana: Najdorf, 6.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f3 * B90 "Siciliana: Najdorf, Ataque Adams, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 a6 6.h3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.h3 * B90 "Siciliana: Najdorf, Ataque Fischer-Sozin, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 a6 6.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bc4 * B90 "Siciliana: Najdorf, 6.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 * B90 "Siciliana: Najdorf, 6.Ae3 Cg4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 * B90 "Siciliana: Najdorf, 6.Ae3 Cg4 7.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 * B90 "Siciliana: Najdorf, 6.Ae3 Cg4 7.Ag5 h6 8.Ah4 g5 9.Ag3 Ag7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 * B90 "Siciliana: Najdorf, 6.Ae3 Cg4 7.Ag5 h6 8.Ah4 g5 9.Ag3 Ag7 10.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 10.Be2 * B90 "Siciliana: Najdorf, 6.Ae3 Cg4 7.Ag5 h6 8.Ah4 g5 9.Ag3 Ag7 10.Ae2 h5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 Ng4 7.Bg5 h6 8.Bh4 g5 9.Bg3 Bg7 10.Be2 h5 * B90 "Siciliana: Najdorf, 6.Ae3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.Qd2 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7 9.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7 9.Dd2 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 Nbd7 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7 9.Dd2 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7 9.Dd2 O-O 10.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O 10.O-O-O * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7 9.Dd2 O-O 10.O-O-O Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Be7 9.Qd2 O-O 10.O-O-O Nbd7 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Nbd7 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7 9.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Nbd7 9.Qd2 * B90 "Siciliana: Najdorf, 6.Ae3 e5 7.Cb3 Ae6 8.f3 Ae7 9.Dd2 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e5 7.Nb3 Be6 8.f3 Nbd7 9.Qd2 b5 * B91 "Siciliana: Najdorf, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 a6 6.g3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 * B91 "Siciliana: Najdorf, 6.g3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 b5 * B91 "Siciliana: Najdorf, 6.g3 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 g6 * B91 "Siciliana: Najdorf, 6.g3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 Nc6 * B91 "Siciliana: Najdorf, 6.g3 Ag4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 Bg4 * B91 "Siciliana: Najdorf, 6.g3 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nb3 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cb3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nb3 Be7 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cde2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cde2 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 b5 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cde2 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Nbd7 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cde2 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Be7 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cde2 Ae7 8.Ag2 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Be7 8.Bg2 Nbd7 * B91 "Siciliana: Najdorf, 6.g3 e5 7.Cde2 Ae7 8.Ag2 O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.g3 e5 7.Nde2 Be7 8.Bg2 O-O * B92 "Siciliana: Najdorf, 6.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 * B92 "Siciliana: Najdorf, 6.Ae2 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 Nbd7 * B92 "Siciliana: Najdorf, 6.Ae2 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nf3 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.Be3 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.Ae3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.Be3 Be6 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O Be6 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O Ae6 9.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O Be6 9.f4 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Ae3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Ae3 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Ae3 Ae6 10.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.a4 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Ae3 Ae6 10.Cd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Nd5 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Ae3 Ae6 10.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Be3 Be6 10.Qd2 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Rh1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Rh1 Ae6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Be6 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Rh1 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Nc6 * B92 "Siciliana: Najdorf, 6.Ae2 e5 7.Cb3 Ae7 8.O-O O-O 9.Rh1 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 8.O-O O-O 9.Kh1 Qc7 * B93 "Siciliana: Najdorf, 6.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 * B93 "Siciliana: Najdorf, 6.f4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Nc6 * B93 "Siciliana: Najdorf, 6.f4 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Nbd7 * B93 "Siciliana: Najdorf, 6.f4 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 * B93 "Siciliana: Najdorf, 6.f4 Dc7 7.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Bd3 * B93 "Siciliana: Najdorf, 6.f4 Dc7 7.Ad3 g6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Bd3 g6 * B93 "Siciliana: Najdorf, 6.f4 Dc7 7.Cf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Nf3 * B93 "Siciliana: Najdorf, 6.f4 Dc7 7.Cf3 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Nf3 Nbd7 * B93 "Siciliana: Najdorf, 6.f4 Dc7 7.Cf3 Cbd7 8.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 Qc7 7.Nf3 Nbd7 8.Bd3 * B93 "Siciliana: Najdorf, 6.f4 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Qc7 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Dc7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Qc7 8.a4 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.Bd3 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.a4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.a4 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Qc7 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.a4 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.a4 Ae7 9.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bc4 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.a4 Ae7 9.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.a4 Ae7 9.Ad3 O-O 10.O-O Cc5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 O-O 10.O-O Nc5 * B93 "Siciliana: Najdorf, 6.f4 e5 7.Cf3 Cbd7 8.a4 Ae7 9.Ad3 O-O 10.O-O exf4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.f4 e5 7.Nf3 Nbd7 8.a4 Be7 9.Bd3 O-O 10.O-O exf4 * B94 "Siciliana: Najdorf, 6.Ag5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 * B94 "Siciliana: Najdorf, 6.Ag5 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 b5 * B94 "Siciliana: Najdorf, 6.Ag5 e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e5 * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7 7.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.f4 * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7 7.f4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.f4 b5 * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7 7.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7 7.Ac4 e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 e6 * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7 7.Ac4 e6 8.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 e6 8.O-O * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7 7.Ac4 Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 Qa5 * B94 "Siciliana: Najdorf, 6.Ag5 Cbd7 7.Ac4 Da5 8.Dd2 e6 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 Nbd7 7.Bc4 Qa5 8.Qd2 e6 9.O-O-O * B95 "Siciliana: Najdorf, 6...e6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 * B95 "Siciliana: Najdorf, 6...e6 7.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Bd3 * B95 "Siciliana: Najdorf, 6...e6 7.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Be2 * B95 "Siciliana: Najdorf, 6...e6 7.De2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qe2 * B95 "Siciliana: Najdorf, 6...e6 7.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd2 * B95 "Siciliana: Najdorf, 6...e6 7.Dd2 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd2 Be7 * B95 "Siciliana: Najdorf, 6...e6 7.Dd2 Ae7 8.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd2 Be7 8.O-O-O * B95 "Siciliana: Najdorf, 6...e6 7.Dd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd3 * B95 "Siciliana: Najdorf, 6...e6 7.Dd3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qd3 Nc6 * B95 "Siciliana: Najdorf, 6...e6 7.Df3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 * B95 "Siciliana: Najdorf, 6...e6 7.Df3 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 Nbd7 * B95 "Siciliana: Najdorf, 6...e6 7.Df3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 Be7 * B95 "Siciliana: Najdorf, 6...e6 7.Df3 Ae7 8.O-O-O Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 Be7 8.O-O-O Nbd7 * B95 "Siciliana: Najdorf, 6...e6 7.Df3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.Qf3 h6 * B96 "Siciliana: Najdorf, 7.f4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 * B96 "Siciliana: Najdorf, 7.f4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 h6 * B96 "Siciliana: Najdorf, Peón Envenenado Retardado, 7.f4 h6 8.Ah4 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 h6 8.Bh4 Qb6 * B96 "Siciliana: Najdorf, 7.f4 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nc6 * B96 "Siciliana: Najdorf, 7.f4 Cc6 8.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nc6 8.e5 * B96 "Siciliana: Najdorf, 7.f4 Cc6 8.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nc6 8.Nxc6 * B96 "Siciliana: Najdorf, 7.f4 Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Bd7 * B96 "Siciliana: Najdorf, 7.f4 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 * B96 "Siciliana: Najdorf, 7.f4 Dc7 8.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Bxf6 * B96 "Siciliana: Najdorf, 7.f4 Dc7 8.Df3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 * B96 "Siciliana: Najdorf, 7.f4 Dc7 8.Df3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 * B96 "Siciliana: Najdorf, 7.f4 Dc7 8.Df3 b5 9.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 9.f5 * B96 "Siciliana: Najdorf, 7.f4 Dc7 8.Df3 b5 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 9.O-O-O * B96 "Siciliana: Najdorf, 7.f4 Dc7 8.Df3 b5 9.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qc7 8.Qf3 b5 9.Bxf6 * B96 "Siciliana: Najdorf, 7.f4 Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Bc4 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.De2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qe2 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.De2 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qe2 Qc7 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.Df3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.Df3 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.Df3 Dc7 9.O-O-O b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.Df3 Dc7 9.O-O-O b5 10.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 10.Bd3 * B96 "Siciliana: Najdorf, 7.f4 Cbd7 8.Df3 Dc7 9.O-O-O b5 10.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Nbd7 8.Qf3 Qc7 9.O-O-O b5 10.e5 * B96 "Siciliana: Najdorf, Variante Polugaevsky, 7.f4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 * B96 "Siciliana: Najdorf, Polugaevsky, 8.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 * B96 "Siciliana: Najdorf, Polugaevsky, 9.fxe5 Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 * B96 "Siciliana: Najdorf, Polugaevsky, 10.Cf3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Nf3 * B96 "Siciliana: Najdorf, Polugaevsky, 10.Axb5+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Bxb5+ * B96 "Siciliana: Najdorf, Polugaevsky, 10.exf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.exf6 * B96 "Siciliana: Najdorf, Polugaevsky, 10.exf6 De5+ 11.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.exf6 Qe5+ 11.Be2 * B96 "Siciliana: Najdorf, Polugaevsky, 10.exf6 De5+ 11.Ae2 Dxg5 12.Dd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.exf6 Qe5+ 11.Be2 Qxg5 12.Qd3 * B96 "Siciliana: Najdorf, Polugaevsky, 10.De2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 * B96 "Siciliana: Najdorf, Polugaevsky, 10.De2 Cfd7 11.O-O-O Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Nc6 * B96 "Siciliana: Najdorf, Polugaevsky, 10.De2 Cfd7 11.O-O-O Ab7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Bb7 * B96 "Siciliana: Najdorf, Polugaevsky, 10.De2 Cfd7 11.O-O-O Ab7 12.Dg4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Bb7 12.Qg4 * B96 "Siciliana: Najdorf, Polugaevsky, 10.De2 Cfd7 11.O-O-O Ab7 12.Dg4 Dxe5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 b5 8.e5 dxe5 9.fxe5 Qc7 10.Qe2 Nfd7 11.O-O-O Bb7 12.Qg4 Qxe5 * B97 "Siciliana: Najdorf, Peón Envenenado, 1.e4 c5 2.Cf3 d6 3.d4 cxd4 4.Cxd4 Cf6 5.Cc3 a6 6.Ag5 e6 7.f4 Db6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Bxf6 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.a3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.a3 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.Dd3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd3 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.Cb3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 Be7 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.Cb3 Cbd7 9.Df3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 Nbd7 9.Qf3 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.Cb3 Cbd7 9.Df3 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Nb3 Nbd7 9.Qf3 Be7 * B97 "Siciliana: Najdorf, Peón Envenenado, 8.Dd2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 * B97 "Siciliana: Najdorf, Peón Envenenado Aceptado, 8.Dd2 Dxb2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 * B97 "Siciliana: Najdorf, Peón Envenenado, 9.Cb3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 * B97 "Siciliana: Najdorf, Peón Envenenado, 9.Cb3 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 Nc6 * B97 "Siciliana: Najdorf, Peón Envenenado, 9.Cb3 Da3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 Qa3 * B97 "Siciliana: Najdorf, Peón Envenenado, 9.Cb3 Da3 10.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Nb3 Qa3 10.Bxf6 * B97 "Siciliana: Najdorf, Peón Envenenado, 9.Tb1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 * B97 "Siciliana: Najdorf, Peón Envenenado, 9.Tb1 Da3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Be2 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.Ae2 Ae7 11.O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Be2 Be7 11.O-O * B97 "Siciliana: Najdorf, Peón Envenenado, 10.Ae2 Ae7 11.O-O Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Be2 Be7 11.O-O Nbd7 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Bxf6 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.Axf6 gxf6 11.Ae2 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Bxf6 gxf6 11.Be2 Nc6 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.Axf6 gxf6 11.Ae2 Ag7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.Bxf6 gxf6 11.Be2 Bg7 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.e5 dxe5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 dxe5 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.e5 dxe5 11.fxe5 Cfd7 12.Ac4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 dxe5 11.fxe5 Nfd7 12.Bc4 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.e5 dxe5 11.fxe5 Cfd7 12.Ac4 Ab4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.e5 dxe5 11.fxe5 Nfd7 12.Bc4 Bb4 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 * B97 "Siciliana: Najdorf, Peón Envenenado, 10.f5 Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 7.f4 Db6 8.Dd2 Dxb2 9.Tb1 Da3 10.f5 Cc6 11.fxe6 fxe6 12.Cxc6 bxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, Timman 13.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.Be2 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5 Cd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 Nd5 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5 dxe5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5 dxe5: 15.Ce4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5 dxe5: 15.Ce4 Dxa2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Qxa2 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5 dxe5: 15.Ce4 Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Be7 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5 dxe5 con 18.c4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Be7 16.Be2 h5 17.Rb3 Qa4 18.c4 * B97 "Siciliana: Najdorf, Peón Envenenado, Línea Principal, 13.e5 dxe5 con 18.Cxf6+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Qb6 8.Qd2 Qxb2 9.Rb1 Qa3 10.f5 Nc6 11.fxe6 fxe6 12.Nxc6 bxc6 13.e5 dxe5 14.Bxf6 gxf6 15.Ne4 Be7 16.Be2 h5 17.Rb3 Qa4 18.Nxf6+ * B98 "Siciliana: Najdorf, 7...Ae7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 * B98 "Siciliana: Najdorf, 7...Ae7 8.Df3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 * B98 "Siciliana: Najdorf, Variante Danner, 8.Df3 Da5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qa5 * B98 "Siciliana: Najdorf, Danner, 8.Df3 Da5 9.O-O-O Ad7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qa5 9.O-O-O Bd7 * B98 "Siciliana: Najdorf, Danner, 8.Df3 Da5 9.O-O-O Ad7 10.e5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qa5 9.O-O-O Bd7 10.e5 * B98 "Siciliana: Najdorf, 7...Ae7 8.Df3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 * B98 "Siciliana: Najdorf, Variante Browne, 8.Df3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 * B98 "Siciliana: Najdorf, Browne, 10.O-O-O Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 10.O-O-O Nbd7 * B98 "Siciliana: Najdorf, Browne, 10.O-O-O Cbd7 11.Dg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 10.O-O-O Nbd7 11.Qg3 * B98 "Siciliana: Najdorf, Browne, 10.O-O-O Cbd7 11.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 Qc7 10.O-O-O Nbd7 11.Be2 * B98 "Siciliana: Najdorf, Variante de Gothenburg (Argentina), 8.Df3 h6 9.Ah4 g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 g5 * B98 "Siciliana: Najdorf, Gothenburg, 11.Cxe6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 g5 10.fxg5 Nfd7 11.Nxe6 * B98 "Siciliana: Najdorf, Gothenburg, 11.Dh5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 h6 9.Bh4 g5 10.fxg5 Nfd7 11.Qh5 * B98 "Siciliana: Najdorf, 8...Dc7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 * B98 "Siciliana: Najdorf, 8...Dc7 9.O-O-O" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O * B98 "Siciliana: Najdorf, 8...Dc7 9.O-O-O b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O b5 * B98 "Siciliana: Najdorf, 8...Dc7 9.O-O-O Cc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nc6 * B98 "Siciliana: Najdorf, 8...Dc7 9.O-O-O Cc6 10.Cxc6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nc6 10.Nxc6 * B99 "Siciliana: Najdorf, Línea Principal, 8.Df3 Dc7 9.O-O-O Cbd7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 * B99 "Siciliana: Najdorf, Línea Principal, 10.Dg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Qg3 * B99 "Siciliana: Najdorf, Línea Principal, Variante Keres, 10.Ae2" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 * B99 "Siciliana: Najdorf, Línea Principal, Keres 10...b5 11.Axf6 Cxf6 12.e5 Ab7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 * B99 "Siciliana: Najdorf, Línea Principal, Keres, Línea del Sacrificio de Dama, 10.Ae2 b5 11.Axf6 Cxf6 12.e5 Ab7 13.exf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 13.exf6 * B99 "Siciliana: Najdorf, Línea Principal, Keres, 13.Dg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 13.Qg3 * B99 "Siciliana: Najdorf, Línea Principal, Keres, 13.Dg3 dxe5 14.fxe5 Cd7 15.Axb5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Be2 b5 11.Bxf6 Nxf6 12.e5 Bb7 13.Qg3 dxe5 14.fxe5 Nd7 15.Bxb5 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 h6 11.Dh3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Qh3 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 h6 11.Ah4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Bh4 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 h6 11.Ah4 g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Bh4 g5 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 h6 11.Ah4 g5 12.fxg5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 h6 11.Bh4 g5 12.fxg5 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 b5 11.The1 Ab7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 11.Rhe1 Bb7 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 b5 11.The1 Ab7 12.Cd5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 11.Rhe1 Bb7 12.Nd5 * B99 "Siciliana: Najdorf, Línea Principal, 10.Ad3 b5 11.The1 Ab7 12.Dg3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.Bd3 b5 11.Rhe1 Bb7 12.Qg3 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 h6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 h6 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.Ad3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bd3 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.Ad3 Ab7" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bd3 Bb7 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.a3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.a3 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.Axf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.Axf6 gxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 gxf6 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.Axf6 Cxf6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.Axf6 Cxf6 12.g5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 * B99 "Siciliana: Najdorf, Línea Principal, 10.g4 b5 11.Axf6 Cxf6 12.g5 Cd7 13.a3" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.a3 * B99 "Siciliana: Najdorf, Línea Principal Moderna 13.f5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 * B99 "Siciliana: Najdorf, Línea Principal Moderna 13.f5 Axg5+" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Bxg5+ * B99 "Siciliana: Najdorf, Línea Principal Moderna 13.f5 Axg5+ 14.Rb1 Ce5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Bxg5+ 14.Kb1 Ne5 * B99 "Siciliana: Najdorf, Línea Principal Moderna 13.f5 Cc5" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 * B99 "Siciliana: Najdorf, Línea Principal Moderna 13.f5 Cc5 14.h4" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 14.h4 * B99 "Siciliana: Najdorf, Línea Principal Moderna 13.f5 Cc5 14.f6" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 14.f6 * B99 "Siciliana: Najdorf, Línea Principal Moderna, Perenyi, 13.f5 Cc5 14.f6 gxf6 15.gxf6 Af8 16.Tg1" 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Bg5 e6 7.f4 Be7 8.Qf3 Qc7 9.O-O-O Nbd7 10.g4 b5 11.Bxf6 Nxf6 12.g5 Nd7 13.f5 Nc5 14.f6 gxf6 15.gxf6 Bf8 16.Rg1 * C00 "Francesa: 1.e4 e6" 1.e4 e6 * C00 "Francesa: Variante Bird, 1.e4 e6 2.Ab5" 1.e4 e6 2.Bb5 * C00 "Francesa: Variante Reti (Spielmann), 1.e4 e6 2.b3" 1.e4 e6 2.b3 * C00 "Francesa: Variante La Bourdonnais, 1.e4 e6 2.f4" 1.e4 e6 2.f4 * C00 "Francesa: Ataque Steinitz, 1.e4 e6 2.e5" 1.e4 e6 2.e5 * C00 "Francesa: Variante Steiner (Anglo-Francesa), 1.e4 e6 2.c4" 1.e4 e6 2.c4 * C00 "Francesa: Variante Steiner (Anglo-Francesa), 1.e4 e6 2.c4 d5" 1.e4 e6 2.c4 d5 * C00 "Francesa: Gambito Orthoschnapp, 1.e4 e6 2.c4 d5 3.cxd5 exd5 4.Db3" 1.e4 e6 2.c4 d5 3.cxd5 exd5 4.Qb3 * C00 "Francesa: 2.Cc3" 1.e4 e6 2.Nc3 * C00 "Francesa: 2.Cc3 d5" 1.e4 e6 2.Nc3 d5 * C00 "Francesa: Variante Pelícano, 1.e4 e6 2.Cc3 d5 3.f4" 1.e4 e6 2.Nc3 d5 3.f4 * C00 "Francesa: Variante Chigorin, 1.e4 e6 2.De2" 1.e4 e6 2.Qe2 * C00 "Francesa: Chigorin, 2...c5" 1.e4 e6 2.Qe2 c5 * C00 "Francesa: Chigorin, 2...c5 3.Cf3" 1.e4 e6 2.Qe2 c5 3.Nf3 * C00 "Francesa: 2.Cf3" 1.e4 e6 2.Nf3 * C00 "Francesa: 2.Cf3 d5" 1.e4 e6 2.Nf3 d5 * C00 "Francesa: 2.Cf3 d5 3.e5" 1.e4 e6 2.Nf3 d5 3.e5 * C00 "Francesa: 2.Cf3 d5 3.e5 c5" 1.e4 e6 2.Nf3 d5 3.e5 c5 * C00 "Francesa: Gambito del Ala, 1.e4 e6 2.Cf3 d5 3.e5 c5 4.b4" 1.e4 e6 2.Nf3 d5 3.e5 c5 4.b4 * C00 "Francesa: Variante de los Dos Caballos, 1.e4 e6 2.Cf3 d5 3.Cc3" 1.e4 e6 2.Nf3 d5 3.Nc3 * C00 "Francesa: AIR 2.d3" 1.e4 e6 2.d3 * C00 "Francesa: AIR 2.d3 d5" 1.e4 e6 2.d3 d5 * C00 "Francesa: AIR 2.d3 d5 3.De2" 1.e4 e6 2.d3 d5 3.Qe2 * C00 "Francesa: AIR 2.d3 d5 3.De2 Cf6" 1.e4 e6 2.d3 d5 3.Qe2 Nf6 * C00 "Francesa: AIR 2.d3 d5 3.Cd2" 1.e4 e6 2.d3 d5 3.Nd2 * C00 "Francesa: AIR 2.d3 d5 3.Cd2 c5" 1.e4 e6 2.d3 d5 3.Nd2 c5 * C00 "Francesa: AIR 2.d3 d5 3.Cd2 Cf6" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 * C00 "Francesa: AIR, Philidor Invertida 1.e4 e6 2.d3 d5 3.Cd2 Cf6 4.Cgf3" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 * C00 "Francesa: AIR, Philidor Invertida, 4...b6" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 b6 * C00 "Francesa: AIR, Philidor Invertida, 4...Cc6" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 Nc6 * C00 "Francesa: AIR, Philidor Invertida, 4...Cc6 5.c3" 1.e4 e6 2.d3 d5 3.Nd2 Nf6 4.Ngf3 Nc6 5.c3 * C00 "Francesa: 2.d4" 1.e4 e6 2.d4 * C00 "Francesa: St.George, 1.e4 e6 2.d4 a6" 1.e4 e6 2.d4 a6 * C00 "Francesa: Franco-Benoni, 1.e4 e6 2.d4 c5" 1.e4 e6 2.d4 c5 * C00 "Francesa: 2.d4 d5" 1.e4 e6 2.d4 d5 * C00 "Francesa: Gambito Alapin-Diemer, 1.e4 e6 2.d4 d5 3.Ae3" 1.e4 e6 2.d4 d5 3.Be3 * C00 "Francesa: Schlechter, 1.e4 e6 2.d4 d5 3.Ad3" 1.e4 e6 2.d4 d5 3.Bd3 * C01 "Francesa: Intercambio, 1.e4 e6 2.d4 d5 3.exd5" 1.e4 e6 2.d4 d5 3.exd5 * C01 "Francesa: Intercambio, 1.e4 e6 2.d4 d5 3.exd5 Dxd5" 1.e4 e6 2.d4 d5 3.exd5 Qxd5 * C01 "Francesa: Intercambio, 1.e4 e6 2.d4 d5 3.exd5 exd5" 1.e4 e6 2.d4 d5 3.exd5 exd5 * C01 "Francesa: Intercambio, 4.c4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 * C01 "Francesa: Intercambio, 4.c4 c6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 c6 * C01 "Francesa: Intercambio, 4.c4 Cf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 * C01 "Francesa: Intercambio, 4.c4 Cf6 5.Cf3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nf3 * C01 "Francesa: Intercambio, 4.c4 Cf6 5.Cc3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 * C01 "Francesa: Intercambio, 4.c4 Cf6 5.Cc3 c6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 c6 * C01 "Francesa: Intercambio, 4.c4 Cf6 5.Cc3 Ab4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Bb4 * C01 "Francesa: Intercambio, 4.c4 Cf6 5.Cc3 Ab4 6.Cf3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Bb4 6.Nf3 * C01 "Francesa: Intercambio, 4.c4 Cf6 5.Cc3 Ae7" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Be7 * C01 "Francesa: Intercambio, 4.c4 Cf6 5.Cc3 Ae7 6.Cf3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.c4 Nf6 5.Nc3 Be7 6.Nf3 * C01 "Francesa: Intercambio, 4.Af4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bf4 * C01 "Francesa: Intercambio, 4.Ad3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 * C01 "Francesa: Intercambio, 4.Ad3 Cc6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Nc6 * C01 "Francesa: Intercambio, 4.Ad3 Ad6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Bd6 * C01 "Francesa: Intercambio, 4.Cf3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 * C01 "Francesa: Intercambio, 4.Cf3 Cf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Nf6 * C01 "Francesa: Intercambio, 4.Cf3 Cf6 5.Ad3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Nf6 5.Bd3 * C01 "Francesa: Intercambio, 4.Cf3 Ad6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Bd6 * C01 "Francesa: Intercambio, 4.Cf3 Ad6 5.Ad3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Bd6 5.Nf3 * C01 "Francesa: Intercambio, 4.Cf3 Ad6 5.Ad3 Cf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Bd3 Bd6 5.Nf3 Nf6 * C01 "Francesa: Intercambio, 4.Cf3 Ad6 5.c4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nf3 Bd6 5.c4 * C01 "Francesa: Intercambio, 4.Cc3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 * C01 "Francesa: Intercambio, 4.Cc3 Cf6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 * C01 "Francesa: Intercambio, 4.Cc3 Cf6 5.Cf3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 5.Nf3 * C01 "Francesa: Intercambio, Variante Svenonius, 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Cc3 Cf6 5.Ag5" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 5.Bg5 * C01 "Francesa: Intercambio, Variante Bogoljubow, 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Cc3 Cf6 5.Ag5 Cc6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Nf6 5.Bg5 Nc6 * C01 "Francesa: Intercambio Winawer, 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Cc3 Ab4" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 * C01 "Francesa: Intercambio Winawer, 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Cc3 Ab4 5.Ad3" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 5.Bd3 * C01 "Francesa: Intercambio, Ataque Canal, 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Cc3 Ab4 5.Ad3 Ce7 6.Dh5" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 5.Bd3 Ne7 6.Qh5 * C01 "Francesa: Intercambio Winawer, 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Cc3 Ab4 5.Ad3 Cc6" 1.e4 e6 2.d4 d5 3.exd5 exd5 4.Nc3 Bb4 5.Bd3 Nc6 * C02 "Francesa: Avance, 1.e4 e6 2.d4 d5 3.e5" 1.e4 e6 2.d4 d5 3.e5 * C02 "Francesa: Avance, 3...Ce7" 1.e4 e6 2.d4 d5 3.e5 Ne7 * C02 "Francesa: Avance, 3...b6" 1.e4 e6 2.d4 d5 3.e5 b6 * C02 "Francesa: Avance, 3...b6" 1.e4 e6 2.d4 d5 3.e5 b6 4.c3 Qd7 * C02 "Francesa: Avance, 3...c5" 1.e4 e6 2.d4 d5 3.e5 c5 * C02 "Francesa: Avance, Gambito del Ala, 1.e4 e6 2.d4 d5 3.e5 c5 4.b4" 1.e4 e6 2.d4 d5 3.e5 c5 4.b4 * C02 "Francesa: Avance, Steinitz, 1.e4 e6 2.d4 d5 3.e5 c5 4.dxc5" 1.e4 e6 2.d4 d5 3.e5 c5 4.dxc5 * C02 "Francesa: Avance, Ataque Nimzowitsch, 1.e4 e6 2.d4 d5 3.e5 c5 4.Dg4" 1.e4 e6 2.d4 d5 3.e5 c5 4.Qg4 * C02 "Francesa: Avance, Gambito Nimzowitsch, 1.e4 e6 2.d4 d5 3.e5 c5 4.Dg4 cxd4 5.Cf3" 1.e4 e6 2.d4 d5 3.e5 c5 4.Qg4 cxd4 5.Nf3 * C02 "Francesa: Avance, 4.Cf3" 1.e4 e6 2.d4 d5 3.e5 c5 4.Nf3 * C02 "Francesa: Avance, Gambito Ruisdonk, 1.e4 e6 2.d4 d5 3.e5 c5 4.Cf3 cxd4 5.Ad3" 1.e4 e6 2.d4 d5 3.e5 c5 4.Nf3 cxd4 5.Bd3 * C02 "Francesa: Avance, 4.c3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 * C02 "Francesa: Avance, 4.c3 Db6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Qb6 * C02 "Francesa: Avance, Wade, 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Db6 5.Cf3 Ad7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Qb6 5.Nf3 Bd7 * C02 "Francesa: Avance, Wade, 6.Ae2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Qb6 5.Nf3 Bd7 6.Be2 * C02 "Francesa: Avance, 4...Cc6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 * C02 "Francesa: Avance, Paulsen, 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Cc6 5.Cf3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 * C02 "Francesa: Avance, 5.Cf3 Cge7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Nge7 * C02 "Francesa: Avance, Euwe, 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Cc6 5.Cf3 Ad7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 * C02 "Francesa: Avance, Euwe, 6.a3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 6.a3 * C02 "Francesa: Avance, Euwe, 6.Ae2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 6.Be2 * C02 "Francesa: Avance, Euwe, 6.Ae2 Cge7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Bd7 6.Be2 Nge7 * C02 "Francesa: Avance, 5.Cf3 Db6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 * C02 "Francesa: Avance, Gambito Milner-Barry, 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Cc6 5.Cf3 Db6 6.Ad3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.Bd3 * C02 "Francesa: Avance, 5.Cf3 Db6 6.Ae2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.Be2 * C02 "Francesa: Avance, 5.Cf3 Db6 6.Ae2 cxd4 7.cxd4" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.Be2 cxd4 7.cxd4 * C02 "Francesa: Avance, 5.Cf3 Db6 6.a3" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 * C02 "Francesa: Avance, 5.Cf3 Db6 6.a3 Ad7" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 Bd7 * C02 "Francesa: Avance, 5.Cf3 Db6 6.a3 Ch6" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 Nh6 * C02 "Francesa: Avance, 5.Cf3 Db6 6.a3 c4" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 c4 * C02 "Francesa: Avance, 5.Cf3 Db6 6.a3 c4 7.Cbd2" 1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Nc6 5.Nf3 Qb6 6.a3 c4 7.Nbd2 * C03 "Francesa: Tarrasch, 1.e4 e6 2.d4 d5 3.Cd2" 1.e4 e6 2.d4 d5 3.Nd2 * C03 "Francesa: Tarrasch, 3...dxe4" 1.e4 e6 2.d4 d5 3.Nd2 dxe4 * C03 "Francesa: Tarrasch, Variante Haberditz, 1.e4 e6 2.d4 d5 3.Cd2 f5" 1.e4 e6 2.d4 d5 3.Nd2 f5 * C03 "Francesa: Tarrasch, 3...b6" 1.e4 e6 2.d4 d5 3.Nd2 b6 * C03 "Francesa: Tarrasch, 3...a6" 1.e4 e6 2.d4 d5 3.Nd2 a6 * C03 "Francesa: Tarrasch, 3...a6 4.Cgf3" 1.e4 e6 2.d4 d5 3.Nd2 a6 4.Ngf3 * C03 "Francesa: Tarrasch, 3...Ae7" 1.e4 e6 2.d4 d5 3.Nd2 Be7 * C03 "Francesa: Tarrasch, 3...Ae7 4.Ad3" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Bd3 * C03 "Francesa: Tarrasch, 3...Ae7 4.Ad3 c5" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Bd3 c5 * C03 "Francesa: Tarrasch, 3...Ae7 4.Ad3 c5 5.dxc5 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Bd3 c5 5.dxc5 Nf6 * C03 "Francesa: Tarrasch, 3...Ae7 4.Cgf3" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Ngf3 * C03 "Francesa: Tarrasch, 3...Ae7 4.Cgf3 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Ngf3 Nf6 * C03 "Francesa: Tarrasch, 3...Ae7 4.Cgf3 Cf6 5.Ad3" 1.e4 e6 2.d4 d5 3.Nd2 Be7 4.Ngf3 Nf6 5.Bd3 * C03 "Francesa: Tarrasch, Variante Guimard, 1.e4 e6 2.d4 d5 3.Cd2 Cc6" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 * C03 "Francesa: Tarrasch, Guimard, 1.e4 e6 2.d4 d5 3.Cd2 Cc6 4.c3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.c3 * C03 "Francesa: Tarrasch, Guimard, 1.e4 e6 2.d4 d5 3.Cd2 Cc6 4.c3 e5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.c3 e5 * C03 "Francesa: Tarrasch, Guimard, 1.e4 e6 2.d4 d5 3.Cd2 Cc6 4.Cgf3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 * C04 "Francesa: Tarrasch, Guimard, 4.Cgf3 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 * C04 "Francesa: Tarrasch, Guimard, 4.Cgf3 Cf6 5.e5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 * C04 "Francesa: Tarrasch, Guimard, Línea Principal" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 * C04 "Francesa: Tarrasch, Guimard, Línea Principal, 6.c3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.c3 * C04 "Francesa: Tarrasch, Guimard, Línea Principal, 6.Ab5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Bb5 * C04 "Francesa: Tarrasch, Guimard, Línea Principal, 6.Ae2" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Be2 * C04 "Francesa: Tarrasch, Guimard, Línea Principal, 6.Ae2 f6" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Be2 f6 * C04 "Francesa: Tarrasch, Guimard, Línea Principal, 6.Cb3" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Nb3 * C04 "Francesa: Tarrasch, Guimard, Línea Principal, 6.Cb3 a5" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Nb3 a5 * C04 "Francesa: Tarrasch, Guimard, Línea Principal, 6.Cb3 Ae7" 1.e4 e6 2.d4 d5 3.Nd2 Nc6 4.Ngf3 Nf6 5.e5 Nd7 6.Nb3 Be7 * C05 "Francesa: Tarrasch, Cerrada, 1.e4 e6 2.d4 d5 3.Cd2 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 * C05 "Francesa: Tarrasch, Cerrada, 4.e5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 * C05 "Francesa: Tarrasch, Cerrada, 4...Ce4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Ne4 * C05 "Francesa: Tarrasch, Cerrada, 4...Ce4 5.Cxe4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Ne4 5.Nxe4 * C05 "Francesa: Tarrasch, Cerrada, 4...Cfd7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 * C05 "Francesa: Tarrasch, Cerrada, 5.f4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 cxd4 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 Db6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 Db6 8.h4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.h4 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 Db6 8.h4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.h4 cxd4 9.cxd4 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 Db6 8.Ce2" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.Ne2 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 Db6 8.Ce2" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.Ne2 cxd4 9.cxd4 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 Db6 8.g3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.g3 * C05 "Francesa: Tarrasch, Cerrada, 5.f4 c5 6.c3 Cc6 7.Cdf3 Db6 8.g3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.f4 c5 6.c3 Nc6 7.Ndf3 Qb6 8.g3 cxd4 9.cxd4 * C05 "Francesa: Tarrasch, Cerrada, 5.c3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.c3 * C05 "Francesa: Tarrasch, 5.Ad3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 * C05 "Francesa: Tarrasch, Botvinnik, 1.e4 e6 2.d4 d5 3.Cd2 Cf6 4.e5 Cfd7 5.Ad3 c5 6.c3 b6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 b6 * C05 "Francesa: Tarrasch, Cerrada, 6...Cc6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 * C05 "Francesa: Tarrasch, Cerrada, 7.Cdf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ndf3 * C05 "Francesa: Tarrasch, Cerrada, 7.Cdf3 Da5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ndf3 Qa5 * C05 "Francesa: Tarrasch, Cerrada, 7.Cgf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 * C05 "Francesa: Tarrasch, Cerrada, 7.Cgf3 Ae7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 Be7 * C05 "Francesa: Tarrasch, Cerrada, 7.Cgf3 Ae7 8.O-O g5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 Be7 8.O-O g5 * C05 "Francesa: Tarrasch, Cerrada, Gambito Nunn-Korchnoi, 4.e5 Cfd7 5.Ad3 c5 6.c3 Cc6 7.Cgf3 Db6 8.O-O" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ngf3 Qb6 8.O-O * C05 "Francesa: Tarrasch, Cerrada, 7.Ce2" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 * C05 "Francesa: Tarrasch, Cerrada, 7.Ce2 a5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 a5 * C06 "Francesa: Tarrasch, Cerrada, Línea Principal, 3.Cd2 Cf6 4.e5 Cfd7 5.Ad3 c5 6.c3 Cc6 7.Ce2 cxd4 8.cxd4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 * C06 "Francesa: Tarrasch, Cerrada, Leningrado, 3.Cd2 Cf6 4.e5 Cfd7 5.Ad3 c5 6.c3 Cc6 7.Ce2 cxd4 8.cxd4 Cb6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 * C06 "Francesa: Tarrasch, Cerrada, Leningrado, 9.Cf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.Nf3 * C06 "Francesa: Tarrasch, Cerrada, Leningrado, 9.O-O" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.O-O * C06 "Francesa: Tarrasch, Cerrada, Leningrado, 9.O-O a5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.O-O a5 * C06 "Francesa: Tarrasch, Cerrada, Leningrado, 9.O-O Ad7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Nb6 9.O-O Bd7 * C06 "Francesa: Tarrasch, Cerrada, 8...Db6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 * C06 "Francesa: Tarrasch, Cerrada, 8...Db6 9.O-O" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 9.O-O * C06 "Francesa: Tarrasch, Cerrada, 8...Db6 9.Cf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 9.Nf3 * C06 "Francesa: Tarrasch, Cerrada, 8...Db6 9.Cf3 f6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 Qb6 9.Nf3 f6 * C06 "Francesa: Tarrasch, Cerrada, 8...f6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.Cf4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.Nf4 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6 Cxf6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6 Cxf6 10.O-O Ad6 11.Cf3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6, 11...Db6" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qb6 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6, 11...Db6 12.Cc3" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qb6 12.Nc3 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6, 11...Dc7" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qc7 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6, 11...Dc7 12.Ag5" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 Qc7 12.Bg5 * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6, 11...O-O" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 O-O * C06 "Francesa: Tarrasch, Cerrada, 8...f6 9.exf6, 11...O-O 12.Af4" 1.e4 e6 2.d4 d5 3.Nd2 Nf6 4.e5 Nfd7 5.Bd3 c5 6.c3 Nc6 7.Ne2 cxd4 8.cxd4 f6 9.exf6 Nxf6 10.O-O Bd6 11.Nf3 O-O 12.Bf4 * C07 "Francesa: Tarrasch, Abierta, 1.e4 e6 2.d4 d5 3.Cd2 c5" 1.e4 e6 2.d4 d5 3.Nd2 c5 * C07 "Francesa: Tarrasch, Abierta, 4.c3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.c3 * C07 "Francesa: Tarrasch, Abierta, 4.dxc5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.dxc5 * C07 "Francesa: Tarrasch, Abierta, 4.Cgf3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 * C07 "Francesa: Tarrasch, Abierta, 4.Cgf3 a6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 a6 * C07 "Francesa: Tarrasch, Abierta, 4.Cgf3 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 Nf6 * C07 "Francesa: Tarrasch, Abierta, 4.Cgf3 Cc6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 Nc6 * C07 "Francesa: Tarrasch, Abierta, 4.Cgf3 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.Ngf3 cxd4 * C07 "Francesa: Tarrasch, Abierta, 4.exd5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 * C07 "Francesa: Tarrasch, Gambito Shaposhnikov, 1.e4 e6 2.d4 d5 3.Cd2 c5 4.exd5 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Nf6 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5 5.Cgf3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5 5.Cgf3 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5 5.Cgf3 cxd4 6.Ac4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 * C07 "Francesa: Tarrasch, Abierta, Variante Eliskases, 1.e4 e6 2.d4 d5 3.Cd2 c5 4.exd5 Dxd5 5.Cgf3 cxd4 6.Ac4 Dd8" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd8 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5 5.Cgf3 cxd4 6.Ac4 Dd6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5, Línea Principal, 10.Dxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Qxd4 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5, Línea Principal, 10.Dxd4 Dxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Qxd4 Qxd4 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5, Línea Principal, 10.Cxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5, Línea Principal, 10.Cxd4 a6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 a6 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5, Línea Principal, 10.Cxd4 a6 11.c3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 a6 11.c3 * C07 "Francesa: Tarrasch, Abierta, 4.exd5 Dxd5, Línea Principal, 10.Cxd4 a6 11.Te1" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 Qxd5 5.Ngf3 cxd4 6.Bc4 Qd6 7.O-O Nf6 8.Nb3 Nc6 9.Nbxd4 Nxd4 10.Nxd4 a6 11.Re1 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Ab5+ Cc6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Nc6 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Ab5+ Cc6 6.De2+" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Nc6 6.Qe2+ * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Ab5+ Ad7" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Bd7 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Ab5+ Ad7 6.De2+" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Bd7 6.Qe2+ * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Ab5+ Ad7 6.De2+ Ae7" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Bb5+ Bd7 6.Qe2+ Be7 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Cgf3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Cgf3 a6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 a6 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Cgf3 a6 6.Ae2" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 a6 6.Be2 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Cgf3 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 * C08 "Francesa: Tarrasch, Abierta, 4.exd5 exd5 5.Cgf3 Cf6, 7.Axd7" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 6.Bb5+ Bd7 7.Bxd7+ * C08 "Francesa: Tarrasch, Abierta, Línea Principal, 4.exd5 exd5 5.Cgf3 Cf6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 6.Bb5+ Bd7 7.Bxd7+ Nbd7 8.O-O Be7 9.dxc5 * C08 "Francesa: Tarrasch, Abierta, Línea Principal, 4.exd5 exd5 5.Cgf3 Cf6, 10.Cb3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nf6 6.Bb5+ Bd7 7.Bxd7+ Nbd7 8.O-O Be7 9.dxc5 Nxc5 10.Nb3 * C09 "Francesa: Tarrasch, Abierta, 5.Cgf3 Cc6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 * C09 "Francesa: Tarrasch, Abierta, 5.Cgf3 Cc6 6.Ab5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 * C09 "Francesa: Tarrasch, Abierta, 5.Cgf3 Cc6 6.Ab5 cxd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 cxd4 * C09 "Francesa: Tarrasch, Abierta, 5.Cgf3 Cc6 6.Ab5 Ad6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 * C09 "Francesa: Tarrasch, Abierta, 7.O-O" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O * C09 "Francesa: Tarrasch, Abierta, 7.dxc5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.dxc5 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 6.Ab5 Ad6 7.dxc5 Axc5 8.O-O Ce7" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.dxc5 Bxc5 8.O-O Ne7 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.c3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.c3 O-O 10.Cb3 Ad6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 O-O 10.Nb3 Bd6 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.c3 O-O 10.Cb3 Ab6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 O-O 10.Nb3 Bb6 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.c3 O-O 10.Cb3 Ab6 11.Te1" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.c3 O-O 10.Nb3 Bb6 11.Re1 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3 Ab6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bb6 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3 Ad6" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3 Ad6 10.Cbd4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Nbd4 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3 Ad6 10.Ag5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Bg5 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3 Ad6 10.Te1" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Re1 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3 Ad6 10.Te1 O-O 11.Ag5" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Re1 O-O 11.Bg5 * C09 "Francesa: Tarrasch, Abierta, Línea Principal, 9.Cb3 Ad6 10.Te1 O-O 11.Ag5 Ag4" 1.e4 e6 2.d4 d5 3.Nd2 c5 4.exd5 exd5 5.Ngf3 Nc6 6.Bb5 Bd6 7.O-O Ne7 8.dxc5 Bxc5 9.Nb3 Bd6 10.Re1 O-O 11.Bg5 Bg4 * C10 "Francesa: 1.e4 e6 2.d4 d5 3.Cc3" 1.e4 e6 2.d4 d5 3.Nc3 * C10 "Francesa: Variante Marshall, 1.e4 e6 2.d4 d5 3.Cc3 c5" 1.e4 e6 2.d4 d5 3.Nc3 c5 * C10 "Francesa: 3.Cc3 Cc6" 1.e4 e6 2.d4 d5 3.Nc3 Nc6 * C10 "Francesa: 3.Cc3 Cc6 4.Cf3 Cf6" 1.e4 e6 2.d4 d5 3.Nc3 Nc6 4.Nf3 Nf6 * C10 "Francesa: 3.Cc3 Ae7" 1.e4 e6 2.d4 d5 3.Nc3 Be7 * C10 "Francesa: Rubinstein, 1.e4 e6 2.d4 d5 3.Cc3 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 * C10 "Francesa: Rubinstein, 1.e4 e6 2.d4 d5 3.Cc3 dxe4 4.Cxe4" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 * C10 "Francesa: Rubinstein, Gambito Ellis, 1.e4 e6 2.d4 d5 3.Cc3 dxe4 4.Cxe4 e5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 e5 * C10 "Francesa: Rubinstein, Variante Frere (Becker), 1.e4 e6 2.d4 d5 3.Cc3 dxe4 4.Cxe4 Dd5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Qd5 * C10 "Francesa: Rubinstein, 4...Cf6" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nf6 * C10 "Francesa: Rubinstein, 4...Cd7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 * C10 "Francesa: Rubinstein, 5.Cf3 Ae7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Be7 * C10 "Francesa: Rubinstein, 5.Cf3 Cgf6" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 * C10 "Francesa: Rubinstein, 5.Cf3 Cgf6 6.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Bd3 * C10 "Francesa: Rubinstein, 5.Cf3 Cgf6 6.Cxf6+" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ * C10 "Francesa: Rubinstein, Capablanca, 3.Cc3 dxe4 4.Cxe4 Cd7 5.Cf3 Cgf6 6.Cxf6+ Cxf6 7.Ce5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Ne5 * C10 "Francesa: Rubinstein, 7.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bd3 * C10 "Francesa: Rubinstein, 7.Ad3 c5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bd3 c5 * C10 "Francesa: Rubinstein, 7.Ad3 c5 8.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bd3 c5 8.dxc5 * C10 "Francesa: Rubinstein, 7.Ag5" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Nd7 5.Nf3 Ngf6 6.Nxf6+ Nxf6 7.Bg5 * C10 "Francesa: Rubinstein, 4...Ad7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 * C10 "Francesa: Rubinstein, 4...Ad7 5.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 * C10 "Francesa: Rubinstein, 4...Ad7 5.Cf3 Ac6 6.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 * C10 "Francesa: Rubinstein, 4...Ad7 5.Cf3 Ac6 6.Ad3 Cd7" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 * C10 "Francesa: Rubinstein, 4...Ad7 5.Cf3 Ac6 6.Ad3 Cd7 7.O-O" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O * C10 "Francesa: Rubinstein, 4...Ad7 5.Cf3 Ac6 6.Ad3 Cd7 7.O-O Cgf6" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O Ngf6 * C10 "Francesa: Rubinstein, 4...Ad7 5.Cf3 Ac6 6.Ad3 Cd7 7.O-O Cgf6 8.Cg3" 1.e4 e6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bd7 5.Nf3 Bc6 6.Bd3 Nd7 7.O-O Ngf6 8.Ng3 * C10 "Francesa: Burn, 5.Cxe4 Cbd7 6.Cf3 Ae7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 6.Nf3 Be7 7.Nxf6+ Nxf6 * C10 "Francesa: Winawer, 4.exd5 Dxd5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.exd5 Qxd5 * C11 "Francesa: 3.Cc3 Cf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 * C11 "Francesa: Variante Henneberger, 1.e4 e6 2.d4 d5 3.Cc3 Cf6 4.Ae3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Be3 * C11 "Francesa: 3.Cc3 Cf6 4.exd5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.exd5 * C11 "Francesa: Variante Suiza, 1.e4 e6 2.d4 d5 3.Cc3 Cf6 4.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bd3 * C11 "Francesa: Steinitz" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 * C11 "Francesa: Steinitz, Ataque Gledhill, 1.e4 e6 2.d4 d5 3.Cc3 Cf6 4.e5 Cfd7 5.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Qg4 * C11 "Francesa: Steinitz, 5.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Nf3 * C11 "Francesa: Steinitz, 5.Cf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Nf3 c5 * C11 "Francesa: Steinitz, 5.Cf3 c5 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.Nf3 c5 6.dxc5 * C11 "Francesa: Steinitz, 5.f4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 * C11 "Francesa: Steinitz, 5.f4 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 * C11 "Francesa: Steinitz, 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 * C11 "Francesa: Steinitz, Ataque Bradford, 4.e5 Cfd7 5.f4 c5 6.dxc5 Axc5 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 Bxc5 7.Qg4 * C11 "Francesa: Steinitz, 6.dxc5 Cc6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 Nc6 * C11 "Francesa: Steinitz, Variante Brodsky-Jones, 4.e5 Cfd7 5.f4 c5 6.dxc5 Cc6 7.a3 Axc5 8.Dg4 O-O 9.Cf3 f6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.dxc5 Nc6 7.a3 Bxc5 8.Qg4 O-O 9.Nf3 f6 * C11 "Francesa: Steinitz, 6.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 * C11 "Francesa: Steinitz, Variante Boleslavsky, 4.e5 Cfd7 5.f4 c5 6.Cf3 Cc6 7.Ae3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 * C11 "Francesa: Steinitz, Boleslavsky, 7...a6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 a6 * C11 "Francesa: Steinitz, Boleslavsky, 7...a6 8.Dd2 b5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 a6 8.Qd2 b5 * C11 "Francesa: Steinitz, Boleslavsky, 7...cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 cxd4 * C11 "Francesa: Steinitz, Boleslavsky, 7...cxd4 8.Cxd4 Db6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 cxd4 8.Nxd4 Qb6 * C11 "Francesa: Steinitz, Boleslavsky, 7...cxd4 8.Cxd4 Ac5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.e5 Nfd7 5.f4 c5 6.Nf3 Nc6 7.Be3 cxd4 8.Nxd4 Bc5 * C11 "Francesa: 3.Cc3 Cf6 4.Ag5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 * C11 "Francesa: Variante Burn, 1.e4 e6 2.d4 d5 3.Cc3 Cf6 4.Ag5 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 * C11 "Francesa: Burn, 5.Cxe4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 * C11 "Francesa: Burn, 5.Cxe4 Cbd7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 * C11 "Francesa: Burn, 5.Cxe4 Cbd7 6.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 6.Nf3 * C11 "Francesa: Burn, 5.Cxe4 Cbd7 6.Cf3 Ae7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Nbd7 6.Nf3 Be7 * C11 "Francesa: Burn, 5.Cxe4 Ae7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 * C11 "Francesa: Burn, 6.Axf6 Axf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 Bxf6 * C11 "Francesa: Burn, 6.Axf6 gxf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 * C11 "Francesa: Burn, 6.Axf6 gxf6 7.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 * C11 "Francesa: Burn, 6.Axf6 gxf6 7.Cf3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 b6 * C11 "Francesa: Burn, 6.Axf6 gxf6 7.Cf3 b6 8.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 b6 8.Bd3 * C11 "Francesa: Burn, 6.Axf6 gxf6 7.Cf3 b6 8.Ac4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 b6 8.Bc4 * C11 "Francesa: Burn, 6.Axf6 gxf6 7.Cf3 f5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 dxe4 5.Nxe4 Be7 6.Bxf6 gxf6 7.Nf3 f5 * C12 "Francesa: MacCutcheon, 1.e4 e6 2.d4 d5 3.Cc3 Cf6 4.Ag5 Ab4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 * C12 "Francesa: MacCutcheon, 5.exd5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.exd5 * C12 "Francesa: MacCutcheon, 5.exd5 Dxd5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.exd5 Qxd5 * C12 "Francesa: MacCutcheon, Variante Bogoljubow, 5.exd5 Dxd5 6.Axf6 gxf6 7.Dd2 Da5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.exd5 Qxd5 6.Bxf6 gxf6 7.Qd2 Qa5 * C12 "Francesa: MacCutcheon, Variante de Avance, 5.e5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 * C12 "Francesa: MacCutcheon, Variante de Avance, 5.e5 h6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 * C12 "Francesa: MacCutcheon, Variante Chigorin, 5.e5 h6 6.exf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.exf6 * C12 "Francesa: MacCutcheon, Variante Grigoriev, 5.e5 h6 6.exf6 hxg5 7.fxg7 Tg8 8.h4 gxh4 9.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.exf6 hxg5 7.fxg7 Rg8 8.h4 gxh4 9.Qg4 * C12 "Francesa: MacCutcheon, Variante Olland (Holandesa), 5.e5 h6 6.Ac1" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bc1 * C12 "Francesa: MacCutcheon, Variante Bernstein, 5.e5 h6 6.Ah4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bh4 * C12 "Francesa: MacCutcheon, Variante Janowski, 5.e5 h6 6.Ae3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Be3 * C12 "Francesa: MacCutcheon, 6.Ad2" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 * C12 "Francesa: MacCutcheon, Variante Tartakower, 5.e5 h6 6.Ad2 Cfd7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Nfd7 * C12 "Francesa: MacCutcheon, Variante Lasker, 5.e5 h6 6.Ad2 Axc3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 * C12 "Francesa: MacCutcheon, Lasker, 7.bxc3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 * C12 "Francesa: MacCutcheon, 8.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 * C12 "Francesa: MacCutcheon, 8.Dg4 Rf8" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 Kf8 * C12 "Francesa: MacCutcheon, Variante Duras, 5.e5 h6 6.Ad2 Axc3 7.bxc3 Ce4 8.Dg4 Rf8 9.Ac1" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 Kf8 9.Bc1 * C12 "Francesa: MacCutcheon, 8.Dg4 Rf8 9.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 Kf8 9.Bd3 * C12 "Francesa: MacCutcheon, 8.Dg4 g6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 * C12 "Francesa: MacCutcheon, 8.Dg4 g6 9.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 * C12 "Francesa: MacCutcheon, Línea Principal, 5.e5 h6 6.Ad2 Axc3 7.bxc3 Ce4 8.Dg4 g6 9.Ad3 Cxd2 10.Rxd2 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 Nxd2 10.Kxd2 c5 * C12 "Francesa: MacCutcheon, Línea Principal, 11.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 Nxd2 10.Kxd2 c5 11.Nf3 * C12 "Francesa: MacCutcheon, Línea Principal, 11.Cf3 Cc6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Bb4 5.e5 h6 6.Bd2 Bxc3 7.bxc3 Ne4 8.Qg4 g6 9.Bd3 Nxd2 10.Kxd2 c5 11.Nf3 Nc6 * C13 "Francesa: Clásica, 1.e4 e6 2.d4 d5 3.Cc3 Cf6 4.Ag5 Ae7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 * C13 "Francesa: Clásica, Variante Anderssen, 5.Axf6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.Bxf6 * C13 "Francesa: Clásica, Variante Anderssen-Richter, 5.Axf6 Axf6 6.e5 Ae7 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.Bxf6 Bxf6 6.e5 Be7 7.Qg4 * C13 "Francesa: Clásica, 5.e5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 * C13 "Francesa: Clásica, Variante Nimzowitsch, 5.e5 Cg8" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ng8 * C13 "Francesa: Clásica, Variante de Frankfurt, 5.e5 Cg8 6.Ae3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ng8 6.Be3 b6 * C13 "Francesa: Clásica, Variante Tartakower, 5.e5 Ce4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ne4 * C13 "Francesa: Clásica, Tartakower, 6.Axe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Ne4 6.Bxe7 * C13 "Francesa: Clásica, 5.e5 Cfd7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 * C13 "Francesa: Ataque Chatard-Alekhine, 5.e5 Cfd7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 * C13 "Francesa: Chatard-Alekhine, Variante Teichmann, 5.e5 Cfd7 6.h4 f6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 f6 * C13 "Francesa: Chatard-Alekhine, Variante Spielmann, 5.e5 Cfd7 6.h4 O-O" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 O-O * C13 "Francesa: Chatard-Alekhine, 6...Axg5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 Bxg5 * C13 "Francesa: Chatard-Alekhine, 6...Axg5 7.hxg5 Dxg5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 Bxg5 7.hxg5 Qxg5 * C13 "Francesa: Chatard-Alekhine, 6...Axg5 7.hxg5 Dxg5 8.Ch3 De7 9.Cf4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 Bxg5 7.hxg5 Qxg5 8.Nh3 Qe7 9.Nf4 * C13 "Francesa: Chatard-Alekhine, Variante Maroczy, 5.e5 Cfd7 6.h4 a6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 a6 * C13 "Francesa: Chatard-Alekhine, Maroczy, 7.Dg4 Axg5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 a6 7.Qg4 Bxg5 * C13 "Francesa: Chatard-Alekhine, Variante Breyer, 5.e5 Cfd7 6.h4 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 c5 * C13 "Francesa: Chatard-Alekhine, Breyer, 7.Axe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 c5 7.Bxe7 * C13 "Francesa: Chatard-Alekhine, Breyer, 7.Axe7 Kxe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.h4 c5 7.Bxe7 Kxe7 * C14 "Francesa: Clásica, 6.Axe7 Dxe7" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 * C14 "Francesa: Clásica, Variante Pollock, 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Qg4 * C14 "Francesa: Clásica, Variante Tarrasch, 7.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Bd3 * C14 "Francesa: Clásica, Variante Alapin, 7.Cb5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Nb5 * C14 "Francesa: Clásica, Variante Rubinstein, 7.Dd2" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.Qd2 * C14 "Francesa: Clásica, Variante Steinitz, 7.f4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 * C14 "Francesa: Clásica, Steinitz, 7...a6" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 a6 * C14 "Francesa: Clásica, Steinitz, 7...a6 8.Cf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 a6 8.Nf3 c5 * C14 "Francesa: Clásica, Steinitz, 7...a6 8.Cf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 a6 8.Nf3 c5 9.dxc5 * C14 "Francesa: Clásica, Steinitz, 7...O-O" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O * C14 "Francesa: Clásica, Steinitz, 7...O-O 8.Cf3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 * C14 "Francesa: Clásica, Steinitz, 8.Cf3 c5 9.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.dxc5 * C14 "Francesa: Clásica, Steinitz, 9.Dd2" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 * C14 "Francesa: Clásica, Variante Stahlberg, 7.f4 O-O 8.Cf3 c5 9.Dd2 Cc6 10.O-O-O c4" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 Nc6 10.O-O-O c4 * C14 "Francesa: Clásica, Steinitz, 9.Dd2 Cc6 10.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 Nc6 10.dxc5 * C14 "Francesa: Clásica, Steinitz, 9.Dd2 Cc6 10.dxc5 Dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Nf6 4.Bg5 Be7 5.e5 Nfd7 6.Bxe7 Qxe7 7.f4 O-O 8.Nf3 c5 9.Qd2 Nc6 10.dxc5 Qxc5 * C15 "Francesa: Winawer, 1.e4 e6 2.d4 d5 3.Cc3 Ab4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 * C15 "Francesa: Winawer, 4.exd5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.exd5 * C15 "Francesa: Winawer, 4.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Qg4 * C15 "Francesa: Winawer, 4.Dd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Qd3 * C15 "Francesa: Winawer, 4.Dd3 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Qd3 dxe4 * C15 "Francesa: Winawer, 4.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 * C15 "Francesa: Winawer, 4.Ad3 c5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 c5 * C15 "Francesa: Winawer, Variante Kondratiyev, 4.Ad3 c5 5.exd5 Dxd5 6.Ad2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 c5 5.exd5 Qxd5 6.Bd2 * C15 "Francesa: Winawer, 4.Ad3 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 dxe4 * C15 "Francesa: Winawer, 4.Ad3 dxe4 5.Axe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 dxe4 5.Bxe4 * C15 "Francesa: Winawer, 4.Ad3 dxe4 5.Axe4 Cf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd3 dxe4 5.Bxe4 Nf6 * C15 "Francesa: Winawer, Gambito Müller-Zhuravlev, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.Ad2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 * C15 "Francesa: Winawer, Gambito Müller-Zhuravlev, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.Ad2 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 * C15 "Francesa: Winawer, Gambito Müller-Zhuravlev, 5.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 5.Qg4 * C15 "Francesa: Winawer, Gambito Müller-Zhuravlev, Variante Kunin, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.Ad2 dxe4 5.Dg4 Dxd4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 5.Qg4 Qxd4 * C15 "Francesa: Winawer, Gambito Müller-Zhuravlev, 5.Dg4 Cf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Bd2 dxe4 5.Qg4 Nf6 * C15 "Francesa: Winawer, 4.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 * C15 "Francesa: Winawer, 4.a3 Axc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ * C15 "Francesa: Winawer, 4.a3 Axc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 * C15 "Francesa: Winawer, 4.a3 Axc3+ 5.bxc3 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 * C15 "Francesa: Winawer, Gambito Winkelmann-Reimer, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.a3 Axc3+ 5.bxc3 dxe4 6.f3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 * C15 "Francesa: Winawer, Gambito Winkelmann-Reimer Aceptado, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.a3 Axc3+ 5.bxc3 dxe4 6.f3 exf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 exf3 * C15 "Francesa: Winawer, Winkelmann-Reimer, Defensa Hübner, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.a3 Axc3+ 5.bxc3 dxe4 6.f3 e5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 e5 * C15 "Francesa: Winawer, Winkelmann-Reimer, 6...c5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.f3 c5 * C15 "Francesa: Winawer, 4.a3 Axc3+ 5.bxc3 dxe4 6.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 dxe4 6.Qg4 * C15 "Francesa: Winawer, Gambito Alekhine, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.Ce2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 * C15 "Francesa: Winawer, Gambito Alekhine, 4...Cf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 Nf6 * C15 "Francesa: Winawer, Gambito Alekhine, 4...Cc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 Nc6 * C15 "Francesa: Winawer, Gambito Alekhine Aceptado, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.Ce2 dxe4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 * C15 "Francesa: Winawer, Gambito Alekhine, 5.a3 Axc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Bxc3+ * C15 "Francesa: Winawer, Gambito Alekhine, Variante Kan" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Bxc3+ 6.Nxc3 Nc6 * C15 "Francesa: Winawer, Gambito Alekhine, Kan, 7.Ab5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Bxc3+ 6.Nxc3 Nc6 7.Bb5 * C15 "Francesa: Winawer, Gambito Alekhine, 5.a3 Ae7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 * C15 "Francesa: Winawer, Gambito Alekhine, 5.a3 Ae7 6.Cxe4 Cf6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 6.Nxe4 Nf6 * C15 "Francesa: Winawer, Gambito Alekhine, Variante Alatortsev, 4.Ce2 dxe4 5.a3 Ae7 6.Cxe4 Cf6 7.C2g3 O-O 8.Ae2 Cc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 6.Nxe4 Nf6 7.N2g3 O-O 8.Be2 Nc6 * C15 "Francesa: Winawer, Gambito Alekhine, 5.a3 Ae7 6.Cxe4 Cf6 7.Dd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.Ne2 dxe4 5.a3 Be7 6.Nxe4 Nf6 7.Qd3 * C16 "Francesa: Winawer, Variante de Avance, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.e5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 * C16 "Francesa: Winawer, 4.e5 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 * C16 "Francesa: Winawer, 4.e5 b6 5.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.Qg4 * C16 "Francesa: Winawer, 4.e5 b6 5.Dg4 Af8 6.Ag5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.Qg4 Bf8 6.Bg5 * C16 "Francesa: Winawer, 4.e5 b6 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.a3 * C16 "Francesa: Winawer, 4.e5 b6 5.a3 Af8" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 b6 5.a3 Bf8 * C16 "Francesa: Winawer, Variante Petrosian, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.e5 Dd7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 * C16 "Francesa: Winawer, Petrosian, 5.Ad2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.Bd2 * C16 "Francesa: Winawer, Petrosian, 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.a3 * C16 "Francesa: Winawer, Petrosian, 5.a3 Axc3+ 6.bxc3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.a3 Bxc3+ 6.bxc3 b6 * C16 "Francesa: Winawer, Petrosian, 5.a3 Axc3+ 6.bxc3 b6 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Qd7 5.a3 Bxc3+ 6.bxc3 b6 7.Qg4 * C16 "Francesa: Winawer, Avance, 4...Ce7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 * C16 "Francesa: Winawer, Avance, 4...Ce7 5.Ad2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.Bd2 * C16 "Francesa: Winawer, Avance, 4...Ce7 5.Ad2 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.Bd2 b6 * C16 "Francesa: Winawer, Avance, 4...Ce7 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.a3 * C16 "Francesa: Winawer, Avance, 4...Ce7 5.a3 Axc3+ 6.bxc3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.a3 Bxc3+ 6.bxc3 b6 * C16 "Francesa: Winawer, Avance, 4...Ce7 5.a3 Axc3+ 6.bxc3 b6 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 Ne7 5.a3 Bxc3+ 6.bxc3 b6 7.Qg4 * C17 "Francesa: Winawer, Avance, 4...c5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 * C17 "Francesa: Winawer, Avance, 5.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.dxc5 * C17 "Francesa: Winawer, Variante Rusa, 5.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Qg4 * C17 "Francesa: Winawer, Rusa, 5.Dg4 Ce7 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Qg4 Ne7 6.dxc5 * C17 "Francesa: Winawer, Variante Bogoljubow, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.e5 c5 5.Ad2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 * C17 "Francesa: Winawer, Bogoljubow, 5...cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 cxd4 * C17 "Francesa: Winawer, Bogoljubow, 5...Ce7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 * C17 "Francesa: Winawer, Bogoljubow, 5...Ce7 6.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 6.a3 * C17 "Francesa: Winawer, Bogoljubow, 5...Ce7 6.dxc5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 6.dxc5 * C17 "Francesa: Winawer, Bogoljubow, 5...Ce7 6.Cb5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.Bd2 Ne7 6.Nb5 * C17 "Francesa: Winawer, 5.a3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 * C17 "Francesa: Winawer, 5.a3 cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 cxd4 * C17 "Francesa: Winawer, Variante Rauzer, 5.a3 cxd4 6.axb4 dxc3 7.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 cxd4 6.axb4 dxc3 7.Nf3 * C17 "Francesa: Winawer, Variante Suiza, 5.a3 Aa5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 * C17 "Francesa: Winawer, Suiza, 6.b4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 * C17 "Francesa: Winawer, Suiza, 6.b4 cxd4 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Qg4 * C17 "Francesa: Winawer, Suiza, 6.b4 cxd4 7.Dg4 Ce7 8.bxa5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Qg4 Ne7 8.bxa5 * C17 "Francesa: Winawer, Suiza, 6.b4 cxd4 7.Cb5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Nb5 * C17 "Francesa: Winawer, Suiza, 6.b4 cxd4 7.Cb5 Ac7 8.f4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Nb5 Bc7 8.f4 * C17 "Francesa: Winawer, Suiza, 6.b4 cxd4 7.Cb5 Ac7 8.f4 Ad7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Ba5 6.b4 cxd4 7.Nb5 Bc7 8.f4 Bd7 * C18 "Francesa: Winawer, 5...Axc3+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ * C18 "Francesa: Winawer, 5...Axc3+ 6.bxc3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 * C18 "Francesa: Winawer, 6...Da5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qa5 * C18 "Francesa: Winawer, 6...Dc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 * C18 "Francesa: Winawer, 6...Dc7 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 7.Qg4 * C18 "Francesa: Winawer, 6...Dc7 7.Dg4 f6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 7.Qg4 f6 * C18 "Francesa: Winawer, 6...Dc7 7.Dg4 f5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 7.Qg4 f5 * C18 "Francesa: Winawer, 6...Ce7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 * C18 "Francesa: Winawer, 6...Ce7 7.h4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 * C18 "Francesa: Winawer, 6...Ce7 7.h4 Dc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Qc7 * C18 "Francesa: Winawer, 6...Ce7 7.h4 Cbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Nbc6 * C18 "Francesa: Winawer, 6...Ce7 7.h4 Cbc6 8.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Nbc6 8.Nf3 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 Cbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Nbc6 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 Rf8" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Kf8 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 cxd4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 cxd4 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 O-O" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 O-O 8.Ad3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Bd3 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 O-O 8.Ad3 Cbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Bd3 Nbc6 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 O-O 8.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Nf3 * C18 "Francesa: Winawer, 6...Ce7 7.Dg4 O-O 8.Cf3 Cbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Nf3 Nbc6 * C18 "Francesa: Winawer, Peón Envenenado, 6.bxc3 Ce7 7.Dg4 Dc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 * C18 "Francesa: Winawer, Peón Envenenado, 8.Dxg7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 * C18 "Francesa: Winawer, Peón Envenenado, 10.Dd3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Qd3 * C18 "Francesa: Winawer, Peón Envenenado, Variante Euwe-Gligoric, 6.bxc3 Ce7 7.Dg4 Dc7 8.Dxg7 Tg8 9.Dxh7 cxd4 10.Rd1" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Kd1 * C18 "Francesa: Winawer, Peón Envenenado, Variante Konstantinopolsky, 6.bxc3 Ce7 7.Dg4 Dc7 8.Dxg7 Tg8 9.Dxh7 cxd4 10.Ce2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Ne2 * C18 "Francesa: Winawer, Peón Envenenado, Línea Principal, 10.Ce2 Cbc6 11.f4 Ad7 12.Dd3 dxc3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Ne2 Nbc6 11.f4 Bd7 12.Qd3 dxc3 * C18 "Francesa: Winawer, Peón Envenenado, Línea Principal, 13.Cxc3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 Qc7 8.Qxg7 Rg8 9.Qxh7 cxd4 10.Ne2 Nbc6 11.f4 Bd7 12.Qd3 dxc3 13.Nxc3 * C19 "Francesa: Winawer, Variante Smyslov, 1.e4 e6 2.d4 d5 3.Cc3 Ab4 4.e5 c5 5.a3 Axc3+ 6.bxc3 Ce7 7.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.a4 * C19 "Francesa: Winawer, Smyslov, 7...Da5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.a4 Qa5 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Dc7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qc7 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Dc7 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qc7 8.a4 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Dc7 8.a4 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qc7 8.a4 b6 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Da5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Qa5 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 b6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 b6 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 b6 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 b6 8.a4 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 b6 8.Ab5+" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 b6 8.Bb5+ * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Ad7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Bd7 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Ad7 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Bd7 8.a4 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4 Ad7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Bd7 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4 Da5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4 Da5 9.Dd2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Qd2 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4 Da5 9.Dd2 Ad7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Qd2 Bd7 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4 Da5+ 9.Ad2" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Bd2 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4 Da5+ 9.Ad2 Ad7" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Bd2 Bd7 * C19 "Francesa: Winawer, 6...Ce7 7.Cf3 Cbc6 8.a4 Da5+ 9.Ad2 Ad7 10.Ab5" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Nf3 Nbc6 8.a4 Qa5 9.Bd2 Bd7 10.Bb5 * C18 "Francesa: Winawer, 6...Ce7 7.h4 Dc7 8.Cf3" 1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.h4 Qc7 8.Nf3 * C20 "Partida Abierta: 1.e4 e5" 1.e4 e5 * C20 "Partida Abierta: Apertura Mengarini, 1.e4 e5 2.a3" 1.e4 e5 2.a3 * C20 "Partida Abierta: 2.d3" 1.e4 e5 2.d3 * C20 "Partida Abierta: 2.d3 d5" 1.e4 e5 2.d3 d5 * C20 "Partida Abierta: Apertura Patzer-Parnham, 1.e4 e5 2.Dh5" 1.e4 e5 2.Qh5 * C20 "Partida Abierta: Apertura Napoleón, 1.e4 e5 2.Df3" 1.e4 e5 2.Qf3 * C20 "Partida Abierta: 2.c4" 1.e4 e5 2.c4 * C20 "Partida Abierta: Apertura López-Mcleod, 1.e4 e5 2.c3" 1.e4 e5 2.c3 * C20 "Partida Abierta: López-Mcleod, Gambito Lasa, 1.e4 e5 2.c3 f5" 1.e4 e5 2.c3 f5 * C20 "Partida Abierta: Apertura Alapin, 1.e4 e5 2.Ce2" 1.e4 e5 2.Ne2 * C20 "Partida Abierta: Apertura Alapin, 1.e4 e5 2.Ce2 Cf6" 1.e4 e5 2.Ne2 Nf6 * C20 "Partida Abierta: Apertura Portuguesa, 1.e4 e5 2.Ab5" 1.e4 e5 2.Bb5 * C20 "Partida Abierta: Portuguesa, 1.e4 e5 2.Ab5 Cf6" 1.e4 e5 2.Bb5 Nf6 * C20 "Partida Abierta: Gambito Portugués, 1.e4 e5 2.Ab5 Cf6 3.d4" 1.e4 e5 2.Bb5 Nf6 3.d4 * C20 "Partida Abierta: Portugués, 2...Cc6" 1.e4 e5 2.Bb5 Nc6 * C20 "Partida Abierta: Portugués, 2...c6" 1.e4 e5 2.Bb5 c6 * C21 "Partida Central: 1.e4 e5 2.d4" 1.e4 e5 2.d4 * C21 "Partida Central: Defenas Maroczy, 1.e4 e5 2.d4 d6" 1.e4 e5 2.d4 d6 * C21 "Partida Central: Defenas Maroczy, 3.dxe5" 1.e4 e5 2.d4 d6 3.dxe5 * C21 "Partida Central: Defenas Maroczy, Gambito Philidor, 1.e4 e5 2.d4 d6 3.dxe5 Ad7" 1.e4 e5 2.d4 d6 3.dxe5 Bd7 * C21 "Partida Central: Línea del Intercambio de Damas, 1.e4 e5 2.d4 d6 3.dxe5 dxe5 4.Dxd8+" 1.e4 e5 2.d4 d6 3.dxe5 dxe5 4.Qxd8+ * C21 "Partida Central: 1.e4 e5 2.d4 exd4" 1.e4 e5 2.d4 exd4 * C21 "Partida Central: 3.Cf3" 1.e4 e5 2.d4 exd4 3.Nf3 * C21 "Partida Central: Variante Kieseritsky, 1.e4 e5 2.d4 exd4 3.Cf3 c5 4.Ac4 b5" 1.e4 e5 2.d4 exd4 3.Nf3 c5 4.Bc4 b5 * C21 "Partida Central: Gambito Halasz, 1.e4 e5 2.d4 exd4 3.f4" 1.e4 e5 2.d4 exd4 3.f4 * C21 "Gambito Danés: 1.e4 e5 2.d4 exd4 3.c3" 1.e4 e5 2.d4 exd4 3.c3 * C21 "Gambito Danés: Defensa Svenonius, 1.e4 e5 2.d4 exd4 3.c3 Ce7" 1.e4 e5 2.d4 exd4 3.c3 Ne7 * C21 "Gambito Danés: Defensa Sörensen, 1.e4 e5 2.d4 exd4 3.c3 d5" 1.e4 e5 2.d4 exd4 3.c3 d5 * C21 "Gambito Danés: Aceptado, 1.e4 e5 2.d4 exd4 3.c3 dxc3" 1.e4 e5 2.d4 exd4 3.c3 dxc3 * C21 "Gambito Danés: Aceptado, 4.Ac4" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 * C21 "Gambito Danés: Aceptado, 4.Ac4 cxb2 5.Axb2" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 * C21 "Gambito Danés: Defensa de Copenhagen, 2.d4 exd4 3.c3 dxc3 4.Ac4 cxb2 5.Axb2 Ab4+" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 Bb4+ * C21 "Gambito Danés: Defensa Chigorin, 2.d4 exd4 3.c3 dxc3 4.Ac4 cxb2 5.Axb2 De7" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 Qe7 * C21 "Gambito Danés: Defensa Clásica, 2.d4 exd4 3.c3 dxc3 4.Ac4 cxb2 5.Axb2 Cf6" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 Nf6 * C21 "Gambito Danés: Defensa Schlechter, 2.d4 exd4 3.c3 dxc3 4.Ac4 cxb2 5.Axb2 d5" 1.e4 e5 2.d4 exd4 3.c3 dxc3 4.Bc4 cxb2 5.Bxb2 d5 * C22 "Partida Central: 1.e4 e5 2.d4 exd4 3.Dxd4" 1.e4 e5 2.d4 exd4 3.Qxd4 * C22 "Partida Central: 1.e4 e5 2.d4 exd4 3.Dxd4 Cc6" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 * C22 "Partida Central: Variante Hall, 3.Dxd4 Cc6 4.Dc4" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qc4 * C22 "Partida Central: Ataque Paulsen, 3.Dxd4 Cc6 4.De3" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 * C22 "Partida Central: Variante Charousek, 3.Dxd4 Cc6 4.De3 Ab4+ 5.c3 Ae7" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 Bb4+ 5.c3 Be7 * C22 "Partida Central: Variante Berger, 3.Dxd4 Cc6 4.De3 Cf6" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 Nf6 * C22 "Partida Central: Variante Kupreichik, 3.Dxd4 Cc6 4.De3 Cf6 5.Cc3 Ab4 6.Ad2 O-O 7.O-O-O Te8 8.Ac4 d6 9.Ch3" 1.e4 e5 2.d4 exd4 3.Qxd4 Nc6 4.Qe3 Nf6 5.Nc3 Bb4 6.Bd2 O-O 7.O-O-O Re8 8.Bc4 d6 9.Nh3 * C23 "Apertura de los Alfiles: 1.e4 e5 2.Ac4" 1.e4 e5 2.Bc4 * C23 "Apertura de los Alfiles: Gambito Anderssen" 1.e4 e5 2.Bc4 b5 * C23 "Apertura de los Alfiles: Contrataque Philidor" 1.e4 e5 2.Bc4 c6 * C23 "Apertura de los Alfiles: Variante Lisitsin" 1.e4 e5 2.Bc4 c6 3.d4 d5 4.exd5 cxd5 5.Bb5+ Bd7 6.Bxd7+ Nxd7 7.dxe5 Nxe5 8.Ne2 * C23 "Apertura de los Alfiles: Contragambito Calabrese" 1.e4 e5 2.Bc4 f5 * C23 "Apertura de los Alfiles: Contragambito Calabrese, Variante Jänisch" 1.e4 e5 2.Bc4 f5 3.d3 * C23 "Apertura de los Alfiles: Variante Clásica" 1.e4 e5 2.Bc4 Bc5 * C23 "Apertura de los Alfiles: 2...Ac5 3.De2" 1.e4 e5 2.Bc4 Bc5 3.Qe2 * C23 "Apertura de los Alfiles: Gambito López" 1.e4 e5 2.Bc4 Bc5 3.Qe2 Nc6 4.c3 Nf6 5.f4 * C23 "Apertura de los Alfiles: Gambito Lewis" 1.e4 e5 2.Bc4 Bc5 3.d4 * C23 "Apertura de los Alfiles: Gambito MacDonnell" 1.e4 e5 2.Bc4 Bc5 3.b4 * C23 "Apertura de los Alfiles: Gambito MacDonnell Doble" 1.e4 e5 2.Bc4 Bc5 3.b4 Bxb4 4.f4 * C23 "Apertura de los Alfiles: MacDonnell, Gambito de los Cuatro Peones" 1.e4 e5 2.Bc4 Bc5 3.b4 Bxb4 4.f4 exf4 5.Nf3 Be7 6.d4 Bh4+ 7.g3 fxg3 8.O-O gxh2+ 9.Kh1 * C23 "Apertura de los Alfiles: Variante Philidor" 1.e4 e5 2.Bc4 Bc5 3.c3 * C23 "Apertura de los Alfiles: Variante del Río" 1.e4 e5 2.Bc4 Bc5 3.c3 Qg5 * C23 "Apertura de los Alfiles: Contragambito Lewis" 1.e4 e5 2.Bc4 Bc5 3.c3 d5 * C23 "Apertura de los Alfiles: Contragambito Lewis, Jänisch" 1.e4 e5 2.Bc4 Bc5 3.c3 d5 4.Bxd5 Nf6 5.Qf3 * C23 "Apertura de los Alfiles: 2...Ac5 3.c3 Cf6" 1.e4 e5 2.Bc4 Bc5 3.c3 Nf6 * C23 "Apertura de los Alfiles: Variante Pratt" 1.e4 e5 2.Bc4 Bc5 3.c3 Nf6 4.d4 exd4 5.e5 d5 6.exf6 dxc4 7.Qh5 O-O * C24 "Apertura de los Alfiles: Defensa de Berlín" 1.e4 e5 2.Bc4 Nf6 * C24 "Apertura de los Alfiles: Gambito Greco" 1.e4 e5 2.Bc4 Nf6 3.f4 * C24 "Apertura de los Alfiles: 3.d3" 1.e4 e5 2.Bc4 Nf6 3.d3 * C24 "Apertura de los Alfiles: 3.d3 d5" 1.e4 e5 2.Bc4 Nf6 3.d3 d5 * C24 "Apertura de los Alfiles: Defensa Paulsen" 1.e4 e5 2.Bc4 Nf6 3.d3 c6 * C24 "Apertura de los Alfiles: Paulsen, 4.Cf3" 1.e4 e5 2.Bc4 Nf6 3.d3 c6 4.Nf3 * C24 "Apertura de los Alfiles: 3.d4" 1.e4 e5 2.Bc4 Nf6 3.d4 * C24 "Apertura de los Alfiles: Gambito Urusov" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 * C24 "Apertura de los Alfiles: Gambito Urusov, Variante Panov" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 d5 5.exd5 Bb4+ 6.c3 Qe7+ * C24 "Apertura de los Alfiles: Gambito Urusov, Variante Marshall" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Nc3 Nc6 7.Qh4 * C24 "Apertura de los Alfiles: Gambito Urusov, Defensa 6.Ag5 Cc6" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Nc6 * C24 "Apertura de los Alfiles: Gambito Urusov, Defensa 7...c6" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 * C24 "Apertura de los Alfiles: Gambito Urusov, Variante Larsen" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 8.O-O-O d5 9.Rhe1 O-O 10.Qh4 * C24 "Apertura de los Alfiles: Gambito Urusov, Variante Karpov" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 8.O-O-O d5 9.Rhe1 Be6 10.Bd3 Nbd7 11.Qh4 c5 * C24 "Apertura de los Alfiles: Gambito Urusov, Variante Forintos/Haag" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 c6 8.O-O-O d5 9.Rhe1 Be6 10.Bd3 Nbd7 11.Qh4 Nc5 12.Nd4 Ng8 * C24 "Apertura de los Alfiles: Gambito Urusov, Defensa 7...Cc6" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 Nc6 * C24 "Apertura de los Alfiles: Gambito Urusov, Variante Keres" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 Nc6 8.Qh4 d6 * C24 "Apertura de los Alfiles: Gambito Urusov, Variante Estrin" 1.e4 e5 2.Bc4 Nf6 3.d4 exd4 4.Nf3 Nxe4 5.Qxd4 Nf6 6.Bg5 Be7 7.Nc3 Nc6 8.Qh4 d5 * C25 "Partida de Vienna" 1.e4 e5 2.Nc3 * C25 "Vienna: 2...Ab4" 1.e4 e5 2.Nc3 Bb4 * C25 "Vienna: Zhuravlev" 1.e4 e5 2.Nc3 Bb4 3.Qg4 * C25 "Vienna: 2...d6" 1.e4 e5 2.Nc3 d6 * C25 "Vienna: 2...d6 3.Ac4" 1.e4 e5 2.Nc3 d6 3.Bc4 * C25 "Vienna: 2...Ac5" 1.e4 e5 2.Nc3 Bc5 * C25 "Vienna: Hammpe-Meitner" 1.e4 e5 2.Nc3 Bc5 3.Na4 * C25 "Vienna: 2...Ac5 3.Ac4" 1.e4 e5 2.Nc3 Bc5 3.Bc4 * C25 "Vienna: 2...Ac5 3.Cf3" 1.e4 e5 2.Nc3 Bc5 3.Nf3 * C25 "Vienna: 2...Cc6" 1.e4 e5 2.Nc3 Nc6 * C25 "Vienna: Gambito Fyfe" 1.e4 e5 2.Nc3 Nc6 3.d4 * C25 "Vienna: Variante Paulsen" 1.e4 e5 2.Nc3 Nc6 3.g3 * C25 "Vienna: Paulsen, 3...Ac5" 1.e4 e5 2.Nc3 Nc6 3.g3 Bc5 * C25 "Vienna: 2...Cc6 3.Ac4" 1.e4 e5 2.Nc3 Nc6 3.Bc4 * C25 "Vienna: 2...Cc6 3.Ac4 Ac5" 1.e4 e5 2.Nc3 Nc6 3.Bc4 Bc5 * C25 "Vienna: 2...Cc6 3.Ac4 Ac5 4.d3" 1.e4 e5 2.Nc3 Nc6 3.Bc4 Bc5 4.d3 * C25 "Vienna: 2...Cc6 3.Ac4 Ac5 4.Dg4" 1.e4 e5 2.Nc3 Nc6 3.Bc4 Bc5 4.Qg4 * C25 "Vienna: 2...Cc6 3.f4" 1.e4 e5 2.Nc3 Nc6 3.f4 * C25 "Vienna: 2...Cc6 3.f4" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 * C25 "Vienna: Gambito Steinitz" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.d4 * C25 "Vienna: Gambito Steinitz, Variante Fraser-Minckwitz" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.d4 Qh4+ 5.Ke2 b6 * C25 "Vienna: Gambito Steinitz, Defensa Zukertort" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.d4 Qh4+ 5.Ke2 d5 * C25 "Vienna: 2...Cc6 3.f4 exf4 4.Cf3" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 * C25 "Vienna: 2...Cc6 3.f4 exf4 4.Cf3 g5" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 * C25 "Vienna: Gambito Hamppe-Muzio" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.Bc4 g4 6.O-O * C25 "Vienna: Hamppe-Muzio, Variante Dubois" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.Bc4 g4 6.O-O gxf3 7.Qxf3 Ne5 8.Qxf4 Qf6 * C25 "Vienna: Gambito Hamppe-Allgaier" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.h4 * C25 "Vienna: Gambito Hamppe-Allgaier, Variante Alapin" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.h4 g4 6.Ng5 d6 * C25 "Vienna: Gambito Pierce" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.d4 * C25 "Vienna: Gambito Pierce, Ataque Rushmere" 1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.Nf3 g5 5.d4 g4 6.Bc4 gxf3 7.O-O d5 8.exd5 Bg4 9.dxc6 * C26 "Vienna: 2...Cf6" 1.e4 e5 2.Nc3 Nf6 * C26 "Vienna: Variante Mengarini" 1.e4 e5 2.Nc3 Nf6 3.a3 * C26 "Vienna: 2...Cf6 3.d3" 1.e4 e5 2.Nc3 Nf6 3.d3 * C26 "Vienna: Variante Smyslov" 1.e4 e5 2.Nc3 Nf6 3.g3 * C26 "Vienna: Smyslov, 3...Cc6" 1.e4 e5 2.Nc3 Nf6 3.g3 Nc6 * C26 "Vienna: Smyslov, 3...Cc6" 1.e4 e5 2.Nc3 Nf6 3.g3 Nc6 4.Bg2 * C26 "Vienna: Smyslov, 3...Ac5" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 * C26 "Vienna: Smyslov, 3...Ac5" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 * C26 "Vienna: Smyslov, 3...Ac5 4.Ag2 d6" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 d6 * C26 "Vienna: Smyslov, 3...Ac5 4.Ag2 O-O" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 O-O * C26 "Vienna: Smyslov, 3...Ac5 4.Ag2 Cc6" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 Nc6 * C26 "Vienna: Smyslov, 3...Ac5 4.Ag2 Cc6 5.Cge2" 1.e4 e5 2.Nc3 Nf6 3.g3 Bc5 4.Bg2 Nc6 5.Nge2 * C26 "Vienna: Smyslov, 3...d5" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 * C26 "Vienna: Smyslov, 3...d5" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 4.exd5 Nxd5 5.Bg2 * C26 "Vienna: Smyslov, 3...d5, 5...Cxc3" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 4.exd5 Nxd5 5.Bg2 Nxc3 * C26 "Vienna: Smyslov, 3...d5, 5...Cxc3 6.bxc3 Ad6" 1.e4 e5 2.Nc3 Nf6 3.g3 d5 4.exd5 Nxd5 5.Bg2 Nxc3 6.bxc3 Bd6 * C26 "Vienna: 3.Ac4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 * C26 "Vienna: Gambito Horwitz" 1.e4 e5 2.Nc3 Nf6 3.Bc4 b5 * C26 "Vienna: 3.Ac4 Ab4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bb4 * C26 "Vienna: 3.Ac4 Ab4 4.Cf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bb4 4.Nf3 * C26 "Vienna: 3.Ac4 Ab4 4.Cf3 O-O" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bb4 4.Nf3 O-O * C26 "Vienna: 3.Ac4 Ac5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 * C26 "Vienna: 3.Ac4 Ac5 4.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.f4 * C26 "Vienna: 3.Ac4 Ac5 4.Cf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.Nf3 * C26 "Vienna: 3.Ac4 Ac5 4.d3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 * C26 "Vienna: 3.Ac4 Ac5 4.d3 d6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 d6 * C26 "Vienna: 3.Ac4 Ac5 4.d3 d6 5.Ca4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 d6 5.Na4 * C26 "Vienna: 3.Ac4 Ac5 4.d3 d6 5.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Bc5 4.d3 d6 5.f4 * C27 "Vienna: 3.Ac4 Cxe4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 * C27 "Vienna: 3.Ac4 Cxe4 4.Cxe4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Nxe4 * C27 "Vienna: 3.Ac4 Cxe4 4.Dh5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 * C27 "Vienna: 3.Ac4 Cxe4 4.Dh5 Cd6 5.Dxe5+" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Qxe5+ * C27 "Vienna: 3.Ac4 Cxe4 4.Dh5 Cd6 5.Ab3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 * C27 "Vienna: 3.Ac4 Cxe4 4.Dh5 Cd6 5.Ab3 Ae7" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Be7 * C27 "Vienna: Variante Alekhine" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Be7 6.Nf3 Nc6 7.Nxe5 * C27 "Vienna: 3.Ac4 Cxe4 4.Dh5 Cd6 5.Ab3 Cc6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 * C27 "Vienna: Gambito Adams" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.d4 * C27 "Vienna: 3.Ac4 Cxe4 4.Dh5 Cd6 5.Ab3 Cc6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.Nb5 * C27 "Vienna: Variante Frankenstein-Drácula" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.Nb5 g6 7.Qf3 f5 8.Qd5 Qe7 9.Nxc7+ Kd8 10.Nxa8 * C27 "Vienna: Frankenstein-Drácula, 11.d3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nxe4 4.Qh5 Nd6 5.Bb3 Nc6 6.Nb5 g6 7.Qf3 f5 8.Qd5 Qe7 9.Nxc7+ Kd8 10.Nxa8 b6 11.d3 * C28 "Vienna: 3.Ac4 Cc6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 * C28 "Vienna: 3.Ac4 Cc6 4.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.f4 * C28 "Vienna: Gambito Bronstein" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.f4 Nxe4 5.Nf3 * C28 "Vienna: 3.Ac4 Cc6 4.d3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ae7" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Be7 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ca5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Na5 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ca5 5.Cge2" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Na5 5.Nge2 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ac5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ac5 5.Ag5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.Bg5 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ac5 5.f4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ac5 5.f4 d6 6.Cf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ac5 5.f4 d6 6.Cf3 Ag4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 Bg4 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ac5 5.f4 d6 6.Cf3 a6" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bc5 5.f4 d6 6.Nf3 a6 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ab4" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ab4 5.Cf3" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 5.Nf3 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ab4 5.Ag5" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 5.Bg5 * C28 "Vienna: 3.Ac4 Cc6 4.d3 Ab4 5.Ce2" 1.e4 e5 2.Nc3 Nf6 3.Bc4 Nc6 4.d3 Bb4 5.Ne2 * C29 "Gambito de Vienna" 1.e4 e5 2.Nc3 Nf6 3.f4 * C29 "Gambito de Vienna: 3...exf4" 1.e4 e5 2.Nc3 Nf6 3.f4 exf4 * C29 "Gambito de Vienna: 3...d6" 1.e4 e5 2.Nc3 Nf6 3.f4 d6 * C29 "Gambito de Vienna: 3...d6 4.Cf3" 1.e4 e5 2.Nc3 Nf6 3.f4 d6 4.Nf3 * C29 "Gambito de Vienna: 3...d5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 * C29 "Gambito de Vienna: 3...d5 4.exd5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.exd5 * C29 "Gambito de Vienna: 3...d5 4.exd5 exf4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.exd5 exf4 * C29 "Gambito de Vienna: Variante Steinitz" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.d3 * C29 "Gambito de Vienna: 4.fxe5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 * C29 "Gambito de Vienna: 4.fxe5" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 * C29 "Gambito de Vienna: Variante de Oxford" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 * C29 "Gambito de Vienna: Celada Wurzburger" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Qh4+ 6.g3 Nxg3 7.Nf3 Qh5 8.Nxd5 * C29 "Gambito de Vienna: Oxford, 5...Ab4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Bb4 * C29 "Gambito de Vienna: Oxford, 5...Ab4 6.dxe4 Dh4+ 7.Re2" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Bb4 6.dxe4 Qh4+ 7.Ke2 * C29 "Gambito de Vienna: Oxford, 5...Cxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Nxc3 * C29 "Gambito de Vienna: Oxford, 5...Cxc3 6.bxc3 d4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.d3 Nxc3 6.bxc3 d4 * C29 "Gambito de Vienna: Ataque Paulsen" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 * C29 "Gambito de Vienna: Ataque Paulsen, 5...Cc6" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 Nc6 * C29 "Gambito de Vienna: Ataque Paulsen, Variante de Bardeleben" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 f5 * C29 "Gambito de Vienna: Ataque Paulsen, Variante Heyde" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 f5 6.d4 * C29 "Gambito de Vienna: Ataque Paulsen, 5...Cxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Qf3 Nxc3 * C29 "Gambito de Vienna: 5.Cf3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 * C29 "Gambito de Vienna: 5.Cf3 Ag4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Bg4 * C29 "Gambito de Vienna: Variante Kaufmann" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Bg4 6.Qe2 * C29 "Gambito de Vienna: 5.Cf3 Ab4" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Bb4 * C29 "Gambito de Vienna: 5.Cf3 Cc6" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Nc6 * C29 "Gambito de Vienna: Variante Breyer" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 * C29 "Gambito de Vienna: Breyer, 6.De2" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 6.Qe2 * C29 "Gambito de Vienna: Breyer, 6.De2 Cxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 6.Qe2 Nxc3 * C29 "Gambito de Vienna: Breyer, 6.De2 Cxc3 7.dxc3" 1.e4 e5 2.Nc3 Nf6 3.f4 d5 4.fxe5 Nxe4 5.Nf3 Be7 6.Qe2 Nxc3 7.dxc3 * C30 "Gambito de Rey" 1.e4 e5 2.f4 * C30 "Gambito de Rey: Defensa Mafia" 1.e4 e5 2.f4 c5 * C30 "Gambito de Rey: 2...d6" 1.e4 e5 2.f4 d6 * C30 "Gambito de Rey: 2...d6 3.Cf3" 1.e4 e5 2.f4 d6 3.Nf3 * C30 "Gambito de Rey: 2...d6 3.Cf3 Cc6" 1.e4 e5 2.f4 d6 3.Nf3 Nc6 * C30 "Gambito de Rey: Variante Wade" 1.e4 e5 2.f4 Nf6 * C30 "Gambito de Rey: Variante Norwald" 1.e4 e5 2.f4 Qf6 * C30 "Gambito de Rey: Variante Norwald, Línea de Schubert" 1.e4 e5 2.f4 Qf6 3.Nc3 Qxf4 4.d4 * C30 "Gambito de Rey: Variante Norwald, Gambito Bücker" 1.e4 e5 2.f4 Qf6 3.Nf3 Qxf4 4.Nc3 Bb4 5.Bc4 * C30 "Gambito de Rey: Defensa Keene" 1.e4 e5 2.f4 Qh4+ * C30 "Gambito de Rey: Defensa Keene, 3.g3 De7" 1.e4 e5 2.f4 Qh4+ 3.g3 Qe7 * C30 "Gambito de Rey: 2...Cc6" 1.e4 e5 2.f4 Nc6 * C30 "Gambito de Rey: Variante Adelaide-Wahls" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 * C30 "Gambito de Rey: Adelaide-Wahls, 4.exf5" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 4.exf5 * C30 "Gambito de Rey: Adelaide-Wahls, 4.exf5 e4" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 4.exf5 e4 * C30 "Gambito de Rey: Adelaide-Wahls, 4.exf5 e4 5.Ce5 Cf6" 1.e4 e5 2.f4 Nc6 3.Nf3 f5 4.exf5 e4 5.Ne5 Nf6 * C30 "Gambito de Rey: GRR Clásico" 1.e4 e5 2.f4 Bc5 * C30 "GRR: Clásico, 3.Ac4" 1.e4 e5 2.f4 Bc5 3.Bc4 * C30 "GRR: Clásico, 3.Cf3" 1.e4 e5 2.f4 Bc5 3.Nf3 * C30 "GRR: Clásico, Contragambito Senechaud" 1.e4 e5 2.f4 Bc5 3.Nf3 g5 * C30 "GRR: Clásico, 3.Cf3 d6" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 * C30 "GRR: Clásico, Variante Heath" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.b4 * C30 "GRR: Clásico, Variante Soldatenkov" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.fxe5 * C30 "GRR: Clásico, 3.Cf3 d6 4.Cc3" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 * C30 "GRR: Clásico, Variante Hanham" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 Nd7 * C30 "GRR: Clásico, 3.Cf3 d6 4.Cc3 Cf6 5.Ac4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 Nf6 5.Bc4 * C30 "GRR: Clásico, Variante Svenonius" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.Nc3 Nf6 5.Bc4 Nc6 6.d3 Bg4 7.h3 Bxf3 8.Qxf3 exf4 * C30 "GRR: Clásico, 4.c3" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 * C30 "GRR: Clásico, Ataque Marshall" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Bg4 5.fxe5 dxe5 6.Qa4+ * C30 "GRR: Clásico, 4.c3 Ab6" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Bb6 * C30 "GRR: Clásico, 4.c3 Cf6" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 * C30 "GRR: Clásico, 4.c3 Cf6 5.d4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 5.d4 * C30 "GRR: Clásico, 4.c3 Cf6 5.d4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 5.d4 Bb6 * C30 "GRR: Clásico, 4.c3 Cf6 5.d4" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb6 * C30 "GRR: Contragambito Clásico" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 f5 * C30 "GRR: Clásico, Variante Reti" 1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.c3 f5 5.fxe5 dxe5 6.d4 exd4 7.Bc4 * C31 "GRR: Contragambito Falkbeer" 1.e4 e5 2.f4 d5 * C31 "GRR: Falkbeer, Variante Tartakower" 1.e4 e5 2.f4 d5 3.Nf3 * C31 "GRR: Falkbeer, Variante Milner-Barry" 1.e4 e5 2.f4 d5 3.Nc3 * C31 "GRR: Falkbeer, 3.exd5" 1.e4 e5 2.f4 d5 3.exd5 * C31 "GRR: Falkbeer, 3.exd5 exf4" 1.e4 e5 2.f4 d5 3.exd5 exf4 * C31 "GRR: Falkbeer, Contragambito Marshall/Nimzowitsch" 1.e4 e5 2.f4 d5 3.exd5 c6 * C31 "GRR: Falkbeer, Marshall/Nimzowitsch, 4.dxc6" 1.e4 e5 2.f4 d5 3.exd5 c6 4.dxc6 * C31 "GRR: Falkbeer, Marshall/Nimzowitsch, 4.De2" 1.e4 e5 2.f4 d5 3.exd5 c6 4.Qe2 * C31 "GRR: Falkbeer, Marshall/Nimzowitsch, 4.Cc3" 1.e4 e5 2.f4 d5 3.exd5 c6 4.Nc3 * C31 "GRR: Falkbeer, 3.exd5 e4" 1.e4 e5 2.f4 d5 3.exd5 e4 * C31 "GRR: Falkbeer, Variante Rubinstein" 1.e4 e5 2.f4 d5 3.exd5 e4 4.Nc3 Nf6 5.Qe2 * C31 "GRR: Falkbeer, Variante Nimzowitsch" 1.e4 e5 2.f4 d5 3.exd5 e4 4.Bb5+ * C31 "GRR: Falkbeer, 4.d3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 * C32 "GRR: Falkbeer, 4.d3 Cf6" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 * C32 "GRR: Falkbeer, Variante Keres" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nd2 * C32 "GRR: Falkbeer, Keres, 5...exd3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nd2 exd3 * C32 "GRR: Falkbeer, Variante Reti" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Qe2 * C32 "GRR: Falkbeer, 4.d3 Cf6 5.Cc3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nc3 * C32 "GRR: Falkbeer, 4.d3 Cf6 5.Cc3 Ab4" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nc3 Bb4 * C32 "GRR: Falkbeer, Gambito Morphy" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.Nc3 Bb4 6.Bd2 e3 * C32 "GRR: Falkbeer, 5.dxe4" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 * C32 "GRR: Falkbeer, Variante Charousek" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Qe2 * C32 "GRR: Falkbeer, 5.dxe4 Cxe4 6.Ae3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Be3 * C32 "GRR: Falkbeer, 5.dxe4 Cxe4 6.Cf3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 * C32 "GRR: Falkbeer, 5.dxe4 Cxe4 6.Cf3 Ac5 7.De2" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 * C32 "GRR: Falkbeer, Variante Alapin" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf2+ 8.Kd1 Qxd5+ 9.Nfd2 * C32 "GRR: Falkbeer, Línea Principal, 7...Af5" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf5 * C32 "GRR: Falkbeer, Variante Tarrasch" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf5 8.g4 O-O * C32 "GRR: Falkbeer, Línea Principal, 7...Af5 8.Cc3" 1.e4 e5 2.f4 d5 3.exd5 e4 4.d3 Nf6 5.dxe4 Nxe4 6.Nf3 Bc5 7.Qe2 Bf5 8.Nc3 * C33 "Gambito de Rey Aceptado (GRA)" 1.e4 e5 2.f4 exf4 * C33 "GRA: Tumbleweed/Rey Ebrio" 1.e4 e5 2.f4 exf4 3.Kf2 * C33 "GRA: Gambito Orsini" 1.e4 e5 2.f4 exf4 3.b3 * C33 "GRA: Gambito Stamma (Leonardo)" 1.e4 e5 2.f4 exf4 3.h4 * C33 "GRA: Gambito Schurig" 1.e4 e5 2.f4 exf4 3.Bd3 * C33 "GRA: Gambito Basman" 1.e4 e5 2.f4 exf4 3.Qe2 * C33 "GRA: Gambito Carrera" 1.e4 e5 2.f4 exf4 3.Qh5 * C33 "GRA: Gambito Eisenberg" 1.e4 e5 2.f4 exf4 3.Nh3 * C33 "GRA: Gambito Eisenberg" 1.e4 e5 2.f4 exf4 3.Ne2 * C33 "GRA: Gambito Villemson" 1.e4 e5 2.f4 exf4 3.d4 * C33 "GRA: Gambito Keres" 1.e4 e5 2.f4 exf4 3.Nc3 * C33 "GRA: Gambito Breyer" 1.e4 e5 2.f4 exf4 3.Qf3 * C33 "GRA: Gambito Menor de los Alfiles (Tartakower)" 1.e4 e5 2.f4 exf4 3.Be2 * C33 "GRA: Gambito de los Alfiles" 1.e4 e5 2.f4 exf4 3.Bc4 * C33 "GRA: Gambito de los Alfiles, Ataque Chigorin" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 d5 5.Bxd5 g5 6.g3 * C33 "GRA: Gambito de los Alfiles, Variante Greco" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 Bc5 * C33 "GRA: Gambito de los Alfiles, Defensa Clásica" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 * C33 "GRA: Gambito de los Alfiles, Ataque Grimm" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.d4 d6 7.e5 * C33 "GRA: Gambito de los Alfiles, Defensa Clásica" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.d4 Ne7 * C33 "GRA: Gambito de los Alfiles, Ataque McDonnell" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.d4 Ne7 7.g3 * C33 "GRA: Gambito de los Alfiles, Ataque McDonnell" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.g3 * C33 "GRA: Gambito de los Alfiles, Variante Fraser" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Nc3 Bg7 6.g3 fxg3 7.Qf3 * C33 "GRA: Gambito de los Alfiles, Defensa Clásica, Ataque Cozio" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 g5 5.Qf3 * C33 "GRA: Gambito de los Alfiles, Defensa Boden" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 Nc6 * C33 "GRA: Gambito de los Alfiles, Contragambito Bryan" 1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 b5 * C33 "GRA: Gambito de los Alfiles, Contragambito Bryan" 1.e4 e5 2.f4 exf4 3.Bc4 b5 * C33 "GRA: Gambito de los Alfiles, Defensa Steinitz" 1.e4 e5 2.f4 exf4 3.Bc4 Ne7 * C33 "GRA: Gambito de los Alfiles, Defensa Maurian" 1.e4 e5 2.f4 exf4 3.Bc4 Nc6 * C33 "GRA: Gambito de los Alfiles, Defensa Ruy López" 1.e4 e5 2.f4 exf4 3.Bc4 c6 * C33 "GRA: Gambito de los Alfiles, Contragambito López-Gianutio" 1.e4 e5 2.f4 exf4 3.Bc4 f5 * C33 "GRA: Gambito de los Alfiles, Contragambito López-Gianutio, Variante Hein" 1.e4 e5 2.f4 exf4 3.Bc4 f5 4.Qe2 Qh4+ 5.Kd1 fxe4 6.Nc3 Kd8 * C33 "GRA: Gambito de los Alfiles, Variante Bledow" 1.e4 e5 2.f4 exf4 3.Bc4 d5 * C33 "GRA: Gambito de los Alfiles, Bledow, 4.exd5" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.exd5 * C33 "GRA: Gambito de los Alfiles, Bledow, 4.Axd5" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 * C33 "GRA: Gambito de los Alfiles, Variante Boren-Svenonius" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 Qh4+ 5.Kf1 Bd6 * C33 "GRA: Gambito de los Alfiles, Variante Anderssen" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 c6 * C33 "GRA: Gambito de los Alfiles, Variante Morphy" 1.e4 e5 2.f4 exf4 3.Bc4 d5 4.Bxd5 Nf6 * C33 "GRA: Gambito de los Alfiles, Defensa Cozio" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 * C33 "GRA: Gambito de los Alfiles, Variante Bogoljubow" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 4.Nc3 * C33 "GRA: Gambito de los Alfiles, Ataque Paulsen" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 4.Nc3 Bb4 5.e5 * C33 "GRA: Gambito de los Alfiles, Variante Jänisch" 1.e4 e5 2.f4 exf4 3.Bc4 Nf6 4.Nc3 c6 * C34 "GRA: Gambito de Caballo Rey" 1.e4 e5 2.f4 exf4 3.Nf3 * C34 "GRA: Variante Bonsch-Osmolovsky" 1.e4 e5 2.f4 exf4 3.Nf3 Ne7 * C34 "GRA: Contragambito Gianutio" 1.e4 e5 2.f4 exf4 3.Nf3 f5 * C34 "GRA: Defensa Becker (Anti-Kieseritzky)" 1.e4 e5 2.f4 exf4 3.Nf3 h6 * C34 "GRA: Defensa Schallop" 1.e4 e5 2.f4 exf4 3.Nf3 Nf6 * C34 "GRA: Defensa Fischer" 1.e4 e5 2.f4 exf4 3.Nf3 d6 * C34 "GRA: Fischer, 4.Ac4" 1.e4 e5 2.f4 exf4 3.Nf3 d6 4.Bc4 * C34 "GRA: Fischer, 4.d4" 1.e4 e5 2.f4 exf4 3.Nf3 d6 4.d4 * C34 "GRA: Fischer, Línea Principal" 1.e4 e5 2.f4 exf4 3.Nf3 d6 4.d4 g5 5.h4 g4 6.Ng1 * C35 "GRA: Defensa Cunningham" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 * C35 "GRA: Cunningham, Gambito Bertin" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 4.Bc4 Bh4+ 5.g3 * C35 "GRA: Cunningham, Gambito de los Tres Peones" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 4.Bc4 Bh4+ 5.g3 fxg3 6.O-O gxh2+ 7.Kh1 * C35 "GRA: Cunningham, Defensa Euwe" 1.e4 e5 2.f4 exf4 3.Nf3 Be7 4.Bc4 Nf6 * C36 "GRA: Variante Escandinava (Abbazia)" 1.e4 e5 2.f4 exf4 3.Nf3 d5 * C36 "GRA: Escandinava, 4.exd5" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 * C36 "GRA: Escandinava, 4.exd5 Ad6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Bd6 * C36 "GRA: Escandinava, Variante Moderna" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 * C36 "GRA: Escandinava, Moderna, 5.Ac4" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bc4 * C36 "GRA: Escandinava, Moderna, 5.Cc3" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Nc3 * C36 "GRA: Escandinava, Moderna, 5.Ab5+" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ * C36 "GRA: Escandinava, Moderna, 5.Ab5+ c6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 * C36 "GRA: Escandinava, Moderna, 5.Ab5+ c6 6.dxc6 Cxc6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 6.dxc6 Nxc6 * C36 "GRA: Escandinava, Moderna, 5.Ab5+ c6 6.dxc6 bxc6" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 6.dxc6 bxc6 * C36 "GRA: Escandinava, Variante Botvinnik" 1.e4 e5 2.f4 exf4 3.Nf3 d5 4.exd5 Nf6 5.Bb5+ c6 6.dxc6 bxc6 7.Bc4 Nd5 * C37 "GRA: 3.Cf3 g5" 1.e4 e5 2.f4 exf4 3.Nf3 g5 * C37 "GRA: Gambito Quaade" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Nc3 * C37 "GRA: Gambito Rosentreter" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.d4 * C37 "GRA: Gambito Sörensen" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.d4 g4 5.Ne5 * C37 "GRA: 3.Cf3 g5 4.Ac4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 * C37 "GRA: Gambito Blachly" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Nc6 * C37 "GRA: 3.Cf3 g5 4.Ac4 g4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 * C37 "GRA: Gambito Lolli (Muzio Salvaje)" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Bxf7+ * C37 "GRA: Gambito Lolli, Variante Young" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Bxf7+ Kxf7 6.O-O gxf3 7.Qxf3 Qf6 8.d4 Qxd4+ 9.Be3 Qf6 10.Nc3 * C37 "GRA: Gambito Ghulam-Kassim" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.d4 * C37 "GRA: Gambito MacDonnell" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Nc3 * C37 "GRA: Gambito Salvio" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 * C37 "GRA: Salvio, Gambito Silberschmidt" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 Nh6 7.d4 f3 * C37 "GRA: Salvio, Contrataque Anderssen" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 Nh6 7.d4 d6 * C37 "GRA: Salvio, Gambito Cochrane" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 f3 * C37 "GRA: Salvio, Gambito Herzfeld" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.Ne5 Qh4+ 6.Kf1 Nc6 * C37 "GRA: Gambito Muzio" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O * C37 "GRA: Gambito Muzio, Variante Paulsen" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Qf6 7.e5 Qxe5 8.d3 Bh6 9.Nc3 Ne7 10.Bd2 Nbc6 11.Rae1 * C37 "GRA: Gambito Muzio Doble" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Qf6 7.e5 Qxe5 8.Bxf7+ * C37 "GRA: Gambito Muzio, Defensa From" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Qe7 * C37 "GRA: Gambito Muzio, Defensa Holloway" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O gxf3 6.Qxf3 Nc6 * C37 "GRA: Gambito Muzio, Contrataque Kling y Horwitz" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O Qe7 * C37 "GRA: Gambito Muzio, Defensa Brentano" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 g4 5.O-O d5 * C38 "GRA: 3.Cf3 g5 4.Ac4 Ag7" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 * C38 "GRA: Gambito Hanstein" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.d4 * C38 "GRA: Gambito Hanstein" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.O-O h6 6.d4 d6 * C38 "GRA: Gambito Philidor" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.h4 * C38 "GRA: Gambito Greco" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.h4 h6 6.d4 d6 7.Nc3 c6 8.hxg5 hxg5 9.Rxh8 Bxh8 10.Ne5 * C38 "GRA: Gambito Philidor, Variante Schultz" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.Bc4 Bg7 5.h4 h6 6.d4 d6 7.Qd3 * C39 "GRA: 3.Cf3 g5 4.h4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 * C39 "GRA: Gambito Allgaier" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 * C39 "GRA: Allgaier, Defensa Horny" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Qxg4 Nf6 8.Qxf4 Bd6 * C39 "GRA: Allgaier, Variante Thorold" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.d4 * C39 "GRA: Allgaier, Variante Cook" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.d4 d5 8.Bxf4 dxe4 9.Bc4+ Kg7 10.Be5+ * C39 "GRA: Allgaier, Gambito Blackburne" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Nc3 * C39 "GRA: Allgaier, Ataque Walker" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Bc4+ * C39 "GRA: Allgaier, Ataque Urusov" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 h6 6.Nxf7 Kxf7 7.Bc4+ d5 8.Bxd5+ Kg7 9.d4 * C39 "GRA: Allgaier, Defensa Schlechter" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ng5 Nf6 * C39 "GRA: Kieseritsky" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 * C39 "GRA: Kieseritsky, Variante Green" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d6 * C39 "GRA: Kieseritsky, Defensa Paulsen" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Bg7 * C39 "GRA: Kieseritsky, Defensa Látigo Largo" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 h5 * C39 "GRA: Kieseritsky, Defensa Látigo Largo, Variante Jänisch" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 h5 6.Bc4 Rh7 7.d4 Bh6 8.Nc3 * C39 "GRA: Kieseritsky, Defensa Brentano (Campbell)" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 * C39 "GRA: Kieseritsky, Defensa Brentano, Variante Kaplanek" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 6.d4 Nf6 7.exd5 Qxd5 8.Nc3 Bb4 9.Kf2 * C39 "GRA: Kieseritsky, Defensa Brentano" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 6.d4 Nf6 7.Bxf4 * C39 "GRA: Kieseritsky, Defensa Brentano, Variante Caro" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 d5 6.d4 Nf6 7.Bxf4 Nxe4 8.Nd2 * C39 "GRA: Kieseritsky, Defensa Salvio (Rosenthal)" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Qe7 * C39 "GRA: Kieseritsky, Defensa Salvio, Variante Cozio" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Qe7 6.d4 f5 7.Bc4 * C39 "GRA: Kieseritsky, Defensa Polerio" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Be7 * C39 "GRA: Kieseritsky, Defensa Neumann" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nc6 * C39 "GRA: Kieseritsky, Defensa de Berlín" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 * C39 "GRA: Kieseritsky, Defensa de Berlín, Variante Riviere" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 6.Nxg4 d5 * C39 "GRA: Kieseritsky, Defensa de Berlín, 6.Ac4" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 6.Bc4 * C39 "GRA: Kieseritsky, Gambito Rice" 1.e4 e5 2.f4 exf4 3.Nf3 g5 4.h4 g4 5.Ne5 Nf6 6.Bc4 d5 7.exd5 Bd6 8.O-O * C40 "Partida Abierta" 1.e4 e5 2.Nf3 * C40 "Partida Abierta: Defensa Damiano" 1.e4 e5 2.Nf3 f6 * C40 "Partida Abierta: Defensa Greco" 1.e4 e5 2.Nf3 Qf6 * C40 "Partida Abierta: Defensa Gunderam" 1.e4 e5 2.Nf3 Qe7 * C40 "Partida Abierta: Defensa Gunderam, 3.Cc3" 1.e4 e5 2.Nf3 Qe7 3.Nc3 * C40 "Gambito Elefante" 1.e4 e5 2.Nf3 d5 * C40 "Gambito Elefante: 3.Cxe5" 1.e4 e5 2.Nf3 d5 3.Nxe5 * C40 "Gambito Elefante: 3.Cxe5 dxe4 4.Ac4" 1.e4 e5 2.Nf3 d5 3.Nxe5 dxe4 4.Bc4 * C40 "Gambito Elefante: 3.exd5" 1.e4 e5 2.Nf3 d5 3.exd5 * C40 "Gambito Elefante: Maroczy" 1.e4 e5 2.Nf3 d5 3.exd5 Bd6 * C40 "Gambito Elefante: Paulsen" 1.e4 e5 2.Nf3 d5 3.exd5 e4 * C40 "Gambito Lituano" 1.e4 e5 2.Nf3 f5 * C40 "Gambito Lituano: 3.d3" 1.e4 e5 2.Nf3 f5 3.d3 * C40 "Gambito Lituano: 3.Cc3" 1.e4 e5 2.Nf3 f5 3.Nc3 * C40 "Gambito Lituano: 3.d4" 1.e4 e5 2.Nf3 f5 3.d4 * C40 "Gambito Lituano: 3.d4 fxe4 5.Cxe5 Cf6" 1.e4 e5 2.Nf3 f5 3.d4 fxe4 5.Nxe5 Nf6 * C40 "Gambito Lituano: 3.exf5" 1.e4 e5 2.Nf3 f5 3.exf5 * C40 "Gambito Lituano: 3.exf5 e4" 1.e4 e5 2.Nf3 f5 3.exf5 e4 * C40 "Gambito Lituano: 3.Ac4" 1.e4 e5 2.Nf3 f5 3.Bc4 * C40 "Gambito Lituano: Variante Strautins" 1.e4 e5 2.Nf3 f5 3.Bc4 b5 * C40 "Gambito Lituano: Variante Morgado" 1.e4 e5 2.Nf3 f5 3.Bc4 Nf6 * C40 "Gambito Lituano: 3.Ac4 fxe4" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 * C40 "Lituano: Variante Blackburne (Contragambito Corkscrew)" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 Nf6 * C40 "Gambito Lituano: Variante Svedenborg" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 d5 * C40 "Gambito Lituano: Svedenborg, 6.Cxg6 Cf6" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 d5 5.Qh5+ g6 6.Nxg6 Nf6 * C40 "Gambito Lituano: Svedenborg, 6.Cxg6 hxg6" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 d5 5.Qh5+ g6 6.Nxg6 hxg6 * C40 "Gambito Lituano: Variante del Peón Envenenado" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 Qg5 * C40 "Gambito Lituano: Peón Envenenado, Línea Principal" 1.e4 e5 2.Nf3 f5 3.Bc4 fxe4 4.Nxe5 Qg5 5.d4 Qxg2 6.Qh5+ g6 7.Bf7+ Kd8 * C40 "Gambito Lituano: 3.Cxe5" 1.e4 e5 2.Nf3 f5 3.Nxe5 * C40 "Gambito Lituano: 3.Cxe5 Cc6" 1.e4 e5 2.Nf3 f5 3.Nxe5 Nc6 * C40 "Gambito Lituano: 3.Cxe5 Df6" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 * C40 "Gambito Lituano: 3.Cxe5 Df6 4.Cc4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.Nc4 * C40 "Gambito Lituano: 3.Cxe5 Df6 4.d4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 * C40 "Gambito Lituano: 3.Cxe5 Df6 4.d4 d6" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 * C40 "Gambito Lituano: 3.Cxe5 Df6 4.d4 d6 5.Cc4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 * C40 "Gambito Lituano: 3.Cxe5 Df6 4.d4 d6 5.Cc4 fxe4" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 * C40 "Gambito Lituano: 3.Cxe5 Df6 4.d4 d6 5.Cc4 fxe4 6.Ae2" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Be2 * C40 "Gambito Lituano: Variante Nimzowitsch" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Ne3 * C40 "Gambito Lituano: 3.Cxe5 Df6 4.d4 d6 5.Cc4 fxe4 6.Cc3" 1.e4 e5 2.Nf3 f5 3.Nxe5 Qf6 4.d4 d6 5.Nc4 fxe4 6.Nc3 * C41 "Defensa Philidor" 1.e4 e5 2.Nf3 d6 * C41 "Philidor: 3.Ac4" 1.e4 e5 2.Nf3 d6 3.Bc4 * C41 "Philidor: Variante Steinitz" 1.e4 e5 2.Nf3 d6 3.Bc4 Be7 4.c3 * C41 "Philidor: Contragambito López" 1.e4 e5 2.Nf3 d6 3.Bc4 f5 * C41 "Philidor: Contragambito López, Variante Jänisch" 1.e4 e5 2.Nf3 d6 3.Bc4 f5 4.d4 exd4 5.Ng5 Nh6 6.Nxh7 * C41 "Philidor: 3.d4" 1.e4 e5 2.Nf3 d6 3.d4 * C41 "Philidor: Contragambito Philidor" 1.e4 e5 2.Nf3 d6 3.d4 f5 * C41 "Philidor: Contragambito Philidor, Variante Zukertort" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.Nc3 * C41 "Philidor: Contragambito Philidor, 4.dxe5" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 * C41 "Philidor: Contragambito Philidor, Variante Steinitz" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 fxe4 5.Ng5 d5 6.Nc3 * C41 "Philidor: Contragambito Philidor, Ataque del Río" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 fxe4 5.Ng5 d5 6.e6 * C41 "Philidor: Contragambito Philidor, Variante Berger" 1.e4 e5 2.Nf3 d6 3.d4 f5 4.dxe5 fxe4 5.Ng5 d5 6.e6 Bc5 7.Nc3 * C41 "Philidor: Variante Hanham" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 * C41 "Philidor: Hanham, 4.Ac4" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 * C41 "Philidor: Hanham, 4.Ac4 c6" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 * C41 "Philidor: Hanham, Variante Krause" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.O-O * C41 "Philidor: Hanham, Variante Steiner" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.O-O Be7 6.dxe5 * C41 "Philidor: Hanham, Variante Kmoch" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.Ng5 * C41 "Philidor: Hanham, Variante Berger" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.Ng5 Nh6 6.f4 Be7 7.O-O O-O 8.c3 d5 * C41 "Philidor: Hanham, Variante Schlechter" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.Nc3 * C41 "Philidor: Hanham, Variante Delmar" 1.e4 e5 2.Nf3 d6 3.d4 Nd7 4.Bc4 c6 5.c3 * C41 "Philidor: 3...exd4" 1.e4 e5 2.Nf3 d6 3.d4 exd4 * C41 "Philidor: Gambito Bird" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.c3 * C41 "Philidor: Variante Morphy" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 * C41 "Philidor: Morphy, 4...Cc6" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 Nc6 * C41 "Philidor: Morphy, 4...Cf6" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 Nf6 * C41 "Philidor: Morphy, 4...Cf6 5.Cc3" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Qxd4 Nf6 5.Nc3 * C41 "Philidor: 3...exd4 4.Cxd4" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 * C41 "Philidor: Ataque Paulsen" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 d5 5.exd5 * C41 "Philidor: 3...exd4 4.Cxd4 Cf6" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 * C41 "Philidor: 3...exd4 4.Cxd4 Cf6 5.Cc3" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 * C41 "Philidor: 3...exd4 4.Cxd4 Cf6 5.Cc3 Ae7" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 * C41 "Philidor: 3...exd4 4.Cxd4 Cf6 5.Cc3 Ae7 6.Ac4" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 6.Bc4 * C41 "Philidor: Variante Antoshin" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 6.Be2 * C41 "Philidor: Variante Berger" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 Nf6 5.Nc3 Be7 6.Be2 O-O 7.O-O c5 8.Nf3 Nc6 9.Bg5 Be6 10.Re1 * C41 "Philidor: Variante Larsen" 1.e4 e5 2.Nf3 d6 3.d4 exd4 4.Nxd4 g6 * C41 "Philidor: Variante Nimzowitsch" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 * C41 "Philidor: Nimzowitsch, Variante Klein" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Bc4 * C41 "Philidor: Nimzowitsch, Variante Locock" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Ng5 * C41 "Philidor: Variante del Cambio" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.dxe5 * C41 "Philidor: Intercambio, Variante Sokolsky" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.dxe5 Nxe4 5.Nbd2 * C41 "Philidor: Intercambio, Variante Rellstab" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.dxe5 Nxe4 5.Qd5 * C41 "Philidor: Variante Nimzowitsch" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 * C41 "Philidor: Hanham Mejorada" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 * C41 "Philidor: Hanham Mejorada, 5.Ac4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 * C41 "Philidor: Hanham Mejorada, 5.Ac4 Ae7" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 * C41 "Philidor: Hanham Mejorada, 6.Axf7+" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.Bxf7+ * C41 "Philidor: Hanham Mejorada, 6.Cg5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.Ng5 * C41 "Philidor: Hanham Mejorada, Variante Larobok" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.Ng5 O-O 7.Bxf7+ * C41 "Philidor: Hanham Mejorada, 6.dxe5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.dxe5 * C41 "Philidor: Hanham Mejorada, 6.dxe5 Cxe5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.dxe5 Nxe5 * C41 "Philidor: Hanham Mejorada, 6.dxe5 dxe5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.dxe5 dxe5 * C41 "Philidor: Hanham Mejorada 6.O-O" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O * C41 "Philidor: Hanham Mejorada, Línea Principal" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O * C41 "Philidor: Hanham Mejorada, 7.a4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.a4 * C41 "Philidor: Hanham Mejorada, 7.a4 c6" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.a4 c6 * C41 "Philidor: Hanham Mejorada, 7.De2" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Qe2 * C41 "Philidor: Hanham Mejorada, 7.De2 c6 8.a4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.a4 c6 8.Qe2 * C41 "Philidor: Hanham Mejorada, Variante Sozin" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Qe2 c6 8.a4 exd4 * C41 "Philidor: Hanham Mejorada, 7.Te1" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 * C41 "Philidor: Hanham Mejorada, 7.Te1 c6 8.a4" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 c6 8.a4 * C41 "Philidor: Hanham Mejorada, 7.Te1 c6 8.a4 a5" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 c6 8.a4 a5 * C41 "Philidor: Hanham Mejorada, 7.Te1 c6 8.a4 b6" 1.e4 e5 2.Nf3 d6 3.d4 Nf6 4.Nc3 Nbd7 5.Bc4 Be7 6.O-O O-O 7.Re1 c6 8.a4 b6 * C42 "Partida Rusa (Defensa Petroff)" 1.e4 e5 2.Nf3 Nf6 * C42 "Partida Rusa: 3.d3" 1.e4 e5 2.Nf3 Nf6 3.d3 * C42 "Rusa-Partida de los Tres Caballos" 1.e4 e5 2.Nf3 Nf6 3.Nc3 * C42 "Rusa-Partida de los Tres Caballos" 1.e4 e5 2.Nf3 Nf6 3.Nc3 Bb4 * C42 "Rusa-Partida de los Tres Caballos, 4.Cxe5" 1.e4 e5 2.Nf3 Nf6 3.Nc3 Bb4 4.Nxe5 * C42 "Partida Rusa: Variante Italiana" 1.e4 e5 2.Nf3 Nf6 3.Bc4 * C42 "Partida Rusa: Gambito Boden-Kieseritsky" 1.e4 e5 2.Nf3 Nf6 3.Bc4 Nxe4 4.Nc3 * C42 "Partida Rusa: Gambito Boden-Kieseritsky Aceptado" 1.e4 e5 2.Nf3 Nf6 3.Bc4 Nxe4 4.Nc3 Nxc3 * C42 "Partida Rusa: 3.Cxe5" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 * C42 "Partida Rusa: Variante Damiano" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 Nxe4 * C42 "Partida Rusa: 3.Cxe5 d6" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 * C42 "Partida Rusa: Gambito Cochrane" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nxf7 * C42 "Partida Rusa: Gambito Cochrane, 5.d4" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nxf7 Kxf7 5.d4 * C42 "Partida Rusa: Ataque Paulsen" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nc4 * C42 "Partida Rusa: 3.Cxe5 d6 4.Cf3" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 * C42 "Partida Rusa: Ataque Francés" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d3 * C42 "Partida Rusa: Vienna/Kaufmann" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.c4 * C42 "Partida Rusa: Ataque Nimzowitsch" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Nc3 * C42 "Partida Rusa: Cozio/Lasker" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 * C42 "Partida Rusa: Variante Milner-Barry" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 Qe7 6.d3 Nf6 7.Bg5 Nbd7 * C42 "Partida Rusa: 5.De2, Intercambio de Damas" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 Qe7 6.d3 Nf6 7.Bg5 Qxe2+ * C42 "Partida Rusa: Clásica" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 * C42 "Partida Rusa: Clásica, Variante Cerrada" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 Nf6 * C42 "Partida Rusa: Clásica, 5...d5" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 * C42 "Partida Rusa: Clásica, 6.Ad3" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 * C42 "Partida Rusa: Clásica, Variante Marshall" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 * C42 "Partida Rusa: Clásica, Variante Tarrasch" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 7.O-O O-O 8.c4 Bg4 * C42 "Partida Rusa: Clásica, Celada Marshall" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 7.O-O O-O 8.c4 Bg4 9.cxd5 f5 10.Re1 Bxh2+ * C42 "Partida Rusa: Clásica, Marshall, 8.c4 c6" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Bd6 7.O-O O-O 8.c4 c6 * C42 "Partida Rusa: Clásica, 6.Ad3 Ae7" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 * C42 "Partida Rusa: Clásica, Variante Mason" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O O-O * C42 "Partida Rusa: Clásica, 6.Ad3 Ae7 7.O-O Cc6" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 * C42 "Partida Rusa: Clásica, Variante Jänisch" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.c4 * C42 "Partida Rusa: Clásica, Jänisch, Línea Principal" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.c4 Nb4 9.Be2 O-O * C42 "Partida Rusa: Clásica, Variante Chigorin" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 * C42 "Partida Rusa: Clásica, Chigorin, 8...Af5" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bf5 * C42 "Partida Rusa: Clásica, Chigorin, 8...Ag4" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 * C42 "Partida Rusa: Clásica, Chigorin, 8...Ag4 9.c4" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c4 * C42 "Partida Rusa: Clásica, Chigorin, 8...Ag4 9.c3" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 * C42 "Partida Rusa: Clásica, Variante Berger" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 f5 10.Nbd2 * C42 "Partida Rusa: Clásica, Variante Krause" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 f5 10.c4 * C42 "Partida Rusa: Clásica, Variante Maroczy" 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 d5 6.Bd3 Be7 7.O-O Nc6 8.Re1 Bg4 9.c3 f5 10.c4 Bh4 * C43 "Partida Rusa: Ataque Moderno (Steinitz)" 1.e4 e5 2.Nf3 Nf6 3.d4 * C43 "Partida Rusa: Ataque Moderno" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 * C43 "Partida Rusa: Ataque Moderno" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 * C43 "Partida Rusa: Ataque Moderno, Gambito Tal" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Bb5 * C43 "Partida Rusa: Ataque Moderno, Variante Steinitz" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qe2 * C43 "Partida Rusa: Ataque Moderno, Variante de Bardeleben" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qe2 Nc5 6.Nxd4 Nc6 * C43 "Partida Rusa: Ataque Moderno, 3...exd4, Línea Principal" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qxd4 * C43 "Partida Rusa: Ataque Moderno, 3...exd4, Línea Principal, 7.Cc3" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qxd4 d5 6.exd6 Nxd6 7.Nc3 * C43 "Partida Rusa: Ataque Moderno, Variante Pillsbury" 1.e4 e5 2.Nf3 Nf6 3.d4 exd4 4.e5 Ne4 5.Qxd4 d5 6.exd6 Nxd6 7.Nc3 Nc6 8.Qf4 Bf5 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 Cc6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 Nc6 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 Cc6 5.d5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 Nc6 5.d5 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 Cc6 5.Axe4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 Nc6 5.Bxe4 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.dxe5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.Cxe5" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.Cxe5 Cc6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nc6 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.Cxe5 Ae7" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Be7 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.Cxe5 Ad6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Bd6 * C43 "Partida Rusa: Ataque Moderno, Variante Trifunovic" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Bd6 6.O-O O-O 7.c4 Bxe5 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.Cxe5 Cd7" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.Cxe5 Cd7 6.De2" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Qe2 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4 4.Ad3 d5 5.Cxe5 Cd7 6.Cxd7" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4, Línea Principal" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4, Línea Principal, 7...Dh4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O Qh4 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4, Línea Principal, 7...Ad6" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O Bd6 * C43 "Partida Rusa: Ataque Moderno, 3...Cxe4, Línea Principal, 7...Ad6 8.c4" 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.O-O Bd6 8.c4 * C44 "Partida Abierta" 1.e4 e5 2.Nf3 Nc6 * C44 "Partida Abierta: Gambito Irlandés (Chicago)" 1.e4 e5 2.Nf3 Nc6 3.Nxe5 * C44 "Partida Abierta: Gambito del Ala Paschman" 1.e4 e5 2.Nf3 Nc6 3.b4 * C44 "Partida Abierta: Apertura de Dresden" 1.e4 e5 2.Nf3 Nc6 3.c4 * C44 "Partida Abierta: Konstantinopolsky" 1.e4 e5 2.Nf3 Nc6 3.g3 * C44 "Partida Abierta: Húngara Invertida" 1.e4 e5 2.Nf3 Nc6 3.Be2 * C44 "Partida Abierta: Apertura Tayler" 1.e4 e5 2.Nf3 Nc6 3.Be2 Nf6 4.d4 * C44 "Partida Abierta: Philidor Invertida" 1.e4 e5 2.Nf3 Nc6 3.d3 * C44 "Partida Abierta: Philidor Invertida" 1.e4 e5 2.Nf3 Nc6 3.d3 d5 * C44 "Partida Abierta: Philidor Invertida" 1.e4 e5 2.Nf3 Nc6 3.d3 Nf6 * C44 "Partida Abierta: Philidor Invertida, 4.g3" 1.e4 e5 2.Nf3 Nc6 3.d3 Nf6 4.g3 * C44 "Partida Abierta: Philidor Invertida, 4.Ae2" 1.e4 e5 2.Nf3 Nc6 3.d3 Nf6 4.Be2 * C44 "Partida Abierta: Inverted Hanham" 1.e4 e5 2.Nf3 Nc6 3.Be2 Nf6 4.d3 d5 5.Nbd2 * C44 "Apertura Ponziani" 1.e4 e5 2.Nf3 Nc6 3.c3 * C44 "Ponziani: Variante Reti" 1.e4 e5 2.Nf3 Nc6 3.c3 Nge7 * C44 "Ponziani: Variante Romanishin" 1.e4 e5 2.Nf3 Nc6 3.c3 Be7 * C44 "Contragambito Ponziani" 1.e4 e5 2.Nf3 Nc6 3.c3 f5 * C44 "Contragambito Ponziani, Ataque Schmidt" 1.e4 e5 2.Nf3 Nc6 3.c3 f5 4.d4 d6 5.d5 * C44 "Contragambito Ponziani, Variante Cordel" 1.e4 e5 2.Nf3 Nc6 3.c3 f5 4.d4 d6 5.d5 fxe4 6.Ng5 Nb8 7.Nxe4 Nf6 8.Bd3 Be7 * C44 "Ponziani: 3...d5" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 * C44 "Ponziani: 3...d5 4.Da4" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 * C44 "Ponziani: Variante Caro" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 Bd7 * C44 "Ponziani: Variante Leonhardt" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 Nf6 * C44 "Ponziani: Variante Steinitz" 1.e4 e5 2.Nf3 Nc6 3.c3 d5 4.Qa4 f6 * C44 "Ponziani: 3...Cf6" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 * C44 "Ponziani: 3...Cf6" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 * C44 "Ponziani: 3...Cf6 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 exd4 * C44 "Ponziani: 3...Cf6 4.d4 Cxe4" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 Nxe4 * C44 "Ponziani: Defensa Fraser" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 Nxe4 5.d5 Bc5 * C44 "Ponziani: 3...Cf6 4.d4 Cxe4 5.d5 Ce7" 1.e4 e5 2.Nf3 Nc6 3.c3 Nf6 4.d4 Nxe4 5.d5 Ne7 * C44 "Apertura Escocesa" 1.e4 e5 2.Nf3 Nc6 3.d4 * C44 "Escocesa: Variante Lolli" 1.e4 e5 2.Nf3 Nc6 3.d4 Nxd4 * C44 "Escocesa: Variante Cochrane" 1.e4 e5 2.Nf3 Nc6 3.d4 Nxd4 4.Nxe5 Ne6 5.Bc4 c6 6.O-O Nf6 7.Nxf7 * C44 "Escocesa: 3...d6" 1.e4 e5 2.Nf3 Nc6 3.d4 d6 * C44 "Escocesa: 3...exd4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 * C44 "Escocesa: Gambito Relfsson" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bb5 * C44 "Escocesa: Gambito Goring" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 * C44 "Escocesa: Gambito Goring, 4...d5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 d5 * C44 "Escocesa: Gambito Goring, 4...d3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 d3 * C44 "Escocesa: Gambito Goring, 4...dxc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 * C44 "Escocesa: Gambito Goring, 4...dxc3 5.Ac4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Bc4 * C44 "Escocesa: Gambito Goring, 4...dxc3 5.Ac4 cxb2 6.Axb2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Bc4 cxb2 6.Bxb2 * C44 "Escocesa: Gambito Goring, 4...dxc3 5.Cxc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 * C44 "Escocesa: Gambito Goring, 4...dxc3 5.Cxc3 Ab4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 * C44 "Escocesa: Gambito Goring, Variante de Bardeleben" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 6.Bc4 Nf6 * C44 "Escocesa: Gambito Goring, 4...dxc3 5.Cxc3 Ab4 6.Ac4 d6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 6.Bc4 d6 * C44 "Escocesa: Gambito Goring, 4...dxc3 5.Cxc3 Ab4 6.Ac4 d6 7.O-O" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.c3 dxc3 5.Nxc3 Bb4 6.Bc4 d6 7.O-O * C44 "Gambito Escocés" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 * C44 "Gambito Escocés: Defensa de Londres" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bb4+ * C44 "Gambito Escocés: 4...Ac5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 * C44 "Gambito Escocés: 5.Cg5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.Ng5 * C44 "Gambito Escocés: Ataque Vitzhum" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.Ng5 Nh6 6.Qh5 * C44 "Gambito Escocés: 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.O-O * C44 "Gambito Escocés: Contrataque Anderssen (Paulsen)" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.O-O d6 6.c3 Bg4 * C44 "Gambito Escocés: 5.c3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.c3 * C44 "Gambito Escocés: 5.c3 d3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Bc4 Bc5 5.c3 d3 * C45 "Escocesa: 4.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 * C45 "Escocesa: 4.Cxd4 Cxd4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nxd4 * C45 "Escocesa: Variante Ghulam Kassim" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nxd4 5.Qxd4 d6 6.Bd3 * C45 "Escocesa: 4.Cxd4 Ab4+" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bb4+ * C45 "Escocesa: 4.Cxd4 Df6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qf6 * C45 "Escocesa: Variante Steinitz" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 * C45 "Escocesa: Steinitz, 5.Dd3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Qd3 * C45 "Escocesa: Steinitz, Ataque Fraser" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nf3 * C45 "Escocesa: Steinitz, 5.Cc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nc3 * C45 "Escocesa: Steinitz, 5.Cb5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 * C45 "Escocesa: Steinitz, 5.Cb5 Dxe4+" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Qxe4+ * C45 "Escocesa: Steinitz, 5.Cb5 Ac5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bc5 * C45 "Escocesa: Steinitz, 5.Cb5 Ac5 6.Df3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bc5 6.Qf3 * C45 "Escocesa: Steinitz, 5.Cb5 Ab4+" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ * C45 "Escocesa: Steinitz, Variante Berger" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ 6.Nd2 Qxe4+ 7.Be2 Qxg2 8.Bf3 Qh3 9.Nxc7+ Kd8 10.Nxa8 Nf6 11.a3 * C45 "Escocesa: Steinitz, 5.Cb5 Ab4+ 6.Ad2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ 6.Bd2 * C45 "Escocesa: Steinitz, Variante Rosenthal" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Qh4 5.Nb5 Bb4+ 6.Bd2 Qxe4+ 7.Be2 Kd8 8.O-O Bxd2 9.Nxd2 Qg6 * C45 "Escocesa: 4.Cxd4 Cf6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 * C45 "Escocesa: 4.Cxd4 Cf6 5.Cxc6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 * C45 "Escocesa: Variante Tartakower" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.Nd2 * C45 "Escocesa: 4.Cxd4 Cf6 5.Cxc6 bxc6 6.Ad3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.Bd3 * C45 "Escocesa: Variante Mieses" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 * C45 "Escocesa: Mieses, 6...De7" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 * C45 "Escocesa: Mieses, 6...De7 7.De2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 * C45 "Escocesa: Mieses, 8.c4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 Nd5 8.c4 * C45 "Escocesa: Mieses, 8.c4 Aa6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 Nd5 8.c4 Ba6 * C45 "Escocesa: Mieses, 8.c4 Aa6 9.b3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Nf6 5.Nxc6 bxc6 6.e5 Qe7 7.Qe2 Nd5 8.c4 Ba6 9.b3 * C45 "Escocesa: 4.Cxd4 Ac5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cb3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 * C45 "Escocesa: Variante Romanishin" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb4+ * C45 "Escocesa: 4.Cxd4 Ac5 5.Cb3 Ab6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cb3 Ab6 6.a4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cb3 Ab6 6.a4 a6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cb3 Ab6 6.a4 a6 7.Cc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3 * C45 "Escocesa: Variante Geller" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3 Nf6 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cb3 Ab6 6.a4 a6 7.Cc3 Df6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nb3 Bb6 6.a4 a6 7.Nc3 Qf6 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cxc6" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nxc6 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cxc6 Df6 6.Dd2" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nxc6 Qf6 6.Qd2 * C45 "Escocesa: 4.Cxd4 Ac5 5.Cxc6 Df6 6.Dd2 dxc6 7.Cc3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Nxc6 Qf6 6.Qd2 dxc6 7.Nc3 * C45 "Escocesa: 4.Cxd4 Ac5 5.Ae3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 * C45 "Escocesa: Ataque Blumenfeld" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.Nb5 * C45 "Escocesa: 4.Cxd4 Ac5 5.Ae3 Df6 6.c3" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 * C45 "Escocesa: 4.Cxd4 Ac5 5.Ae3 Df6 6.c3 Cge7" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 * C45 "Escocesa: Ataque Blackburne" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Qd2 * C45 "Escocesa: Variante Meitner" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Nc2 * C45 "Escocesa: Ataque Paulsen" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bb5 * C45 "Escocesa: Paulsen, Defensa Gunsberg" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bb5 Nd8 * C45 "Escocesa: 4.Cxd4 Ac5 5.Ae3 Df6 6.c3 Cge7 7.Ac4" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bc4 * C45 "Escocesa: 4.Cxd4 Ac5 5.Ae3 Df6 6.c3 Cge7 7.Ac4 Ce5" 1.e4 e5 2.Nf3 Nc6 3.d4 exd4 4.Nxd4 Bc5 5.Be3 Qf6 6.c3 Nge7 7.Bc4 Ne5 * C46 "Partida de los Tres Caballos" 1.e4 e5 2.Nf3 Nc6 3.Nc3 * C46 "Tres Caballos: Defensa Winawer" 1.e4 e5 2.Nf3 Nc6 3.Nc3 f5 * C46 "Tres Caballos: 3...d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 d6 * C46 "Tres Caballos: 3...d6 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 d6 4.d4 * C46 "Tres Caballos: 3...Ac5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bc5 * C46 "Tres Caballos: 3...Ac5 4.Ab5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bc5 4.Bb5 * C46 "Tres Caballos: 3...Ac5 4.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bc5 4.Nxe5 * C46 "Tres Caballos: 3...Ab4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bb4 * C46 "Tres Caballos: 3...Ab4 4.Cd5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bb4 4.Nd5 * C46 "Tres Caballos: Variante Schlechter" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Bb4 4.Nd5 Nf6 * C46 "Tres Caballos: Variante Steinitz" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 * C46 "Tres Caballos: Steinitz, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 * C46 "Tres Caballos: Steinitz, Variante Rosenthal" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nd5 * C46 "Tres Caballos: Steinitz, 4.d4 exd4 5.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 * C46 "Tres Caballos: Steinitz, 4.d4 exd4 5.Cxd4 Ag7" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 Bg7 * C46 "Tres Caballos: Steinitz, 4.d4 exd4 5.Cxd4 Ag7 6.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 Bg7 6.Be3 * C46 "Tres Caballos: Steinitz, 4.d4 exd4 5.Cxd4 Ag7 6.Ae3 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 g6 4.d4 exd4 5.Nxd4 Bg7 6.Be3 Nf6 * C47 "Partida de los Cuatro Caballos" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 * C47 "Cuatro Caballos: Gambito Halloween" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Nxe5 * C47 "Cuatro Caballos: Variante Gunsberg" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.a3 * C47 "Cuatro Caballos: Variante Van der Wiel" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Be2 * C47 "Cuatro Caballos: Variante Italiana" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bc4 * C47 "Cuatro Caballos: Variante Glek" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 * C47 "Cuatro Caballos: Glek, 4...d5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 d5 * C47 "Cuatro Caballos: Glek, 4...Ac5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 Bc5 * C47 "Cuatro Caballos: Glek, 4...Ac5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 Bc5 5.Bg2 * C47 "Cuatro Caballos: Glek, Línea Principal" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.g3 Bc5 5.Bg2 d6 6.d3 a6 * C47 "Cuatro Caballos: Variante Escocesa" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 * C47 "Cuatro Caballos: Escocesa, 4...d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 d6 * C47 "Cuatro Caballos: Escocesa, Bogoljubow" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 Bb4 * C47 "Cuatro Caballos: Escocesa, Bogoljubow, 5.d5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 Bb4 5.d5 * C47 "Cuatro Caballos: Escocesa, Variante Krause" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 Bb4 5.Nxe5 * C47 "Cuatro Caballos: Escocesa, 4...exd4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 * C47 "Cuatro Caballos: Gambito de Belgrado" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 * C47 "Cuatro Caballos: Gambito de Belgrado, 5...Cb4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nb4 * C47 "Cuatro Caballos: Gambito de Belgrado, 5...Cxd5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxd5 * C47 "Cuatro Caballos: Gambito de Belgrado, 5...Cxe4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxe4 * C47 "Cuatro Caballos: Gambito de Belgrado, 5...Cxe4 6.De2 (Línea Antigua)" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxe4 6.Qe2 * C47 "Cuatro Caballos: Gambito de Belgrado, 5...Cxe4 6.Ac4 (Línea Moderna)" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Nxe4 6.Bc4 * C47 "Cuatro Caballos: Gambito de Belgrado, 5...Ae7" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nd5 Be7 * C47 "Cuatro Caballos: Escocesa, 4...exd4 5.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 * C47 "Cuatro Caballos: Escocesa, 4...exd4 5.Cxd4 d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 d6 * C47 "Cuatro Caballos: Escocesa, 4...exd4 5.Cxd4 Ac5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bc5 * C47 "Cuatro Caballos: Escocesa, 4...exd4 5.Cxd4 Ab4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 * C47 "Cuatro Caballos: Escocesa, 4...exd4 5.Cxd4 Ab4 6.Cxc6 bxc6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 * C47 "Cuatro Caballos: Escocesa, Línea Principal" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 * C47 "Cuatro Caballos: Escocesa, Línea Principal, 7...d5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 * C47 "Cuatro Caballos: Escocesa, Línea Principal, 7...d5 8.exd5 cxd5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 * C47 "Cuatro Caballos: Escocesa, Línea Principal, 8.exd5 cxd5 9.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O * C47 "Cuatro Caballos: Escocesa, Línea Principal, 9.O-O O-O 10.Ag5 c6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 * C47 "Cuatro Caballos: Escocesa, Línea Principal, 10.Ag5 c6 11.Ca4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 11.Na4 * C47 "Cuatro Caballos: Escocesa, Línea Principal, 10.Ag5 c6 11.Df3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 11.Qf3 * C47 "Cuatro Caballos: Escocesa, Línea Principal, 10.Ag5 c6 11.Df3 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.d4 exd4 5.Nxd4 Bb4 6.Nxc6 bxc6 7.Bd3 d5 8.exd5 cxd5 9.O-O O-O 10.Bg5 c6 11.Qf3 Be7 * C48 "Cuatro Caballos: Variante Española" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 * C48 "Cuatro Caballos: Española, Variante Ranken" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 a6 5.Bxc6 * C48 "Cuatro Caballos: Española, Variante Spielmann" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 a6 5.Bxc6 dxc6 6.Nxe5 Nxe4 7.Nxe4 Qd4 8.O-O Qxe5 9.Re1 Be6 10.d4 Qd5 * C48 "Cuatro Caballos: Española, 4...d6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 d6 * C48 "Cuatro Caballos: Española, 4...d6 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 d6 5.d4 * C48 "Cuatro Caballos: Española, Defensa Clásica" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 * C48 "Cuatro Caballos: Española, Defensa Clásica, 5.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.Nxe5 * C48 "Cuatro Caballos: Española, Defensa Clásica, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.O-O * C48 "Cuatro Caballos: Española, Clásica, Variante de Bardeleben" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.O-O O-O 6.Nxe5 Nxe5 7.d4 Bd6 8.f4 Nc6 9.e5 Bb4 * C48 "Cuatro Caballos: Española, Clásica, Variante Marshall" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bc5 5.O-O O-O 6.Nxe5 Nd4 * C48 "Cuatro Caballos: Contragambito Rubinstein" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 * C48 "Cuatro Caballos: Rubinstein, 5.Ae2" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Be2 * C48 "Cuatro Caballos: Rubinstein, 5.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxe5 * C48 "Cuatro Caballos: Rubinstein, Variante Bogoljubow" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxe5 Qe7 6.f4 * C48 "Cuatro Caballos: Rubinstein, Variante Henneberger" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.O-O * C48 "Cuatro Caballos: Rubinstein, 5.Ac4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Bc4 * C48 "Cuatro Caballos: Rubinstein, Variante del Cambio" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 * C48 "Cuatro Caballos: Rubinstein, Variante del Cambio" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 exd4 6.e5 dxc3 7.exf6 * C48 "Cuatro Caballos: Rubinstein, Variante del Cambio, 8...Ac5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 exd4 6.e5 dxc3 7.exf6 Qxf6 8.dxc3 Bc5 * C48 "Cuatro Caballos: Rubinstein, Variante del Cambio, 8...De5+" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Nxd4 exd4 6.e5 dxc3 7.exf6 Qxf6 8.dxc3 Qe5+ * C48 "Cuatro Caballos: Rubinstein, 5.Aa4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 * C48 "Cuatro Caballos: Rubinstein, 5.Aa4 Cxf3+" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 Nxf3+ * C48 "Cuatro Caballos: Rubinstein, 5.Aa4 c6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 c6 * C48 "Cuatro Caballos: Rubinstein, 5.Aa4 c6 6.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 c6 6.Nxe5 * C48 "Cuatro Caballos: Rubinstein, 5.Aa4 Ac5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 Bc5 * C48 "Cuatro Caballos: Rubinstein, 5.Aa4 Ac5 6.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Ba4 Bc5 6.Nxe5 * C49 "Cuatro Caballos: 4.Ab5 Ab4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 * C49 "Cuatro Caballos: 4.Ab5 Ab4 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O * C49 "Cuatro Caballos: 4.Ab5 Ab4 5.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O * C49 "Cuatro Caballos: Variante Gunsberg" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.Nd5 Nxd5 7.exd5 e4 * C49 "Cuatro Caballos: Variante Nimzowitsch (Paulsen)" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.Bxc6 * C49 "Cuatro Caballos: Alfiles Dobles, 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 * C49 "Cuatro Caballos: Alfiles Dobles, 6.d3 Axc3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 Bxc3 * C49 "Cuatro Caballos: Variante Janowski" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 Bxc3 7.bxc3 d6 8.Re1 * C49 "Cuatro Caballos: Variante Svenonius" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 Bxc3 7.bxc3 d5 * C49 "Cuatro Caballos: Variante Simétrica" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 * C49 "Cuatro Caballos: Simétrica, Sistema Maroczy" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Ne2 * C49 "Cuatro Caballos: Simétrica, 7.Ag5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 * C49 "Cuatro Caballos: Simétrica, Variante Tarrasch" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Be6 * C49 "Cuatro Caballos: Simétrica, Variante Pillsbury" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Ne7 * C49 "Cuatro Caballos: Simétrica, Variante Blake" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Ne7 8.Nh4 c6 9.Bc4 d5 10.Bb3 Qd6 * C49 "Cuatro Caballos: Simétrica, 7.Ag5 Axc3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 * C49 "Cuatro Caballos: Simétrica, 7.Ag5 Axc3" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 * C49 "Cuatro Caballos: Simétrica, 7.Ag5 Axc3 8.bxc3 h6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 h6 * C49 "Cuatro Caballos: Simétrica, Metger desprendida" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 * C49 "Cuatro Caballos: Simétrica, Metger, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 * C49 "Cuatro Caballos: Simétrica, Metger, Variante Capablanca" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Bg4 * C49 "Cuatro Caballos: Simétrica, Metger, 10.d4 Ne6" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Ne6 * C49 "Cuatro Caballos: Simétrica, Metger, 10.d4 Ne6 11.Ac1 Td8" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Ne6 11.Bc1 Rd8 * C49 "Cuatro Caballos: Simétrica, Metger, 10.d4 Ne6 11.Ac1 c5" 1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Bb4 5.O-O O-O 6.d3 d6 7.Bg5 Bxc3 8.bxc3 Qe7 9.Re1 Nd8 10.d4 Ne6 11.Bc1 c5 * C50 "Partida Italiana" 1.e4 e5 2.Nf3 Nc6 3.Bc4 * C50 "Italiana: Gambito Rousseau" 1.e4 e5 2.Nf3 Nc6 3.Bc4 f5 * C50 "Italiana: Gambito Blackburne-Shilling" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nd4 * C50 "Italiana: 3...d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 d6 * C50 "Italiana: Defensa Húngara" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 * C50 "Italiana: Defensa Húngara, 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 4.d4 exd4 * C50 "Italiana: Defensa Húngara, Variante Tartakower" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 4.d4 exd4 5.c3 Nf6 6.e5 Ne4 * C50 "Italiana: Defensa Húngara, 4.d4 d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Be7 4.d4 d6 * C50 "Giuoco Piano" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 * C50 "Giuoco Piano: Gambito Jerome" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.Bxf7+ * C50 "Giuoco Piano: Gambito Rosentreter" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d4 * C50 "Giuoco Piano: Variante de los Tres Caballos" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.Nc3 * C50 "Giuoco Piano: Variante de los Cuatro Caballos" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.Nc3 Nf6 * C50 "Giuoco Piano: 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.O-O * C50 "Giuoco Piano: 4.O-O Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.O-O Nf6 * C50 "Giuoco Piano: 4.O-O Cf6 5.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.O-O Nf6 5.Nc3 * C50 "Giuoco Pianissimo: 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 * C50 "Giuoco Pianissimo: Gambito Lucchini" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 f5 * C50 "Giuoco Pianissimo: Variante Dubois" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 f5 5.Ng5 f4 * C50 "Giuoco Pianissimo: 4.d3 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 * C50 "Giuoco Pianissimo: 4.d3 Cf6 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.O-O * C50 "Giuoco Pianissimo: 4.d3 Cf6 5.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.O-O d6 * C50 "Giuoco Pianissimo: Italiana de los Cuatro Caballos" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 * C50 "Giuoco Pianissimo: Italiana de los Cuatro Caballos, 5...d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 * C50 "Giuoco Pianissimo: Italiana de los Cuatro Caballos, 5...d6 6.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 6.Be3 * C50 "Giuoco Pianissimo: Variante Canal" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 6.Bg5 * C50 "Giuoco Pianissimo: Canal, 6...h6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 6.Bg5 h6 * C51 "Gambito Evans" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 * C51 "Gambito Evans Rehusado: 4...Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Be7 * C51 "Gambito Evans: Contragambito Hein" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 d5 * C51 "Gambito Evans Rehusado" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 * C51 "Gambito Evans Rehusado, Variante Cordel" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.Bb2 * C51 "Gambito Evans Rehusado, 5.b5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 * C51 "Gambito Evans Rehusado, Variante Lange" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Nh6 * C51 "Gambito Evans Rehusado, Variante Pavlov" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Nh6 7.d4 d6 8.Bxh6 dxe5 9.Bxg7 Rg8 10.Bxf7+ Kxf7 11.Bxe5 Qg5 12.Nd2 * C51 "Gambito Evans Rehusado, Variante Hirschbach" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Qg5 * C51 "Gambito Evans Rehusado, Variante Vásquez" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Qg5 7.Bxf7+ Ke7 8.Qh5 * C51 "Gambito Evans Rehusado, Variante Hicken" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.b5 Na5 6.Nxe5 Qg5 7.Qf3 Qxe5 8.Qxf7+ Kd8 9.Bb2 * C51 "Gambito Evans Rehusado, 5.a4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.a4 * C51 "Gambito Evans Rehusado, Variante Showalter" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bb6 5.a4 a6 6.Nc3 * C51 "Gambito Evans Aceptado" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 * C51 "Gambito Evans Aceptado, 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 * C51 "Gambito Evans: Defensa Mayet" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bf8 * C51 "Gambito Evans: Defensa Stone-Ware" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bd6 * C51 "Gambito Evans: Variante Anderssen" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 * C51 "Gambito Evans: Anderssen, 6.Db3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 6.Qb3 * C51 "Gambito Evans: Anderssen, 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 6.d4 * C51 "Gambito Evans: Variante Cordel" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Be7 6.d4 Na5 * C51 "Gambito Evans: Variante Normal" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 * C51 "Gambito Evans: Variante Anderssen" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.d5 * C51 "Gambito Evans: Variante Ulvestad" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.d5 Na5 10.Bb2 * C51 "Gambito Evans: Variante Paulsen" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.d5 Na5 10.Bb2 Ne7 * C51 "Gambito Evans: Ataque Morphy" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 * C51 "Gambito Evans: Ataque Göring" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Na5 10.Bg5 * C51 "Gambito Evans: Variante Steinitz" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Na5 10.Bg5 f6 11.Be3 * C51 "Gambito Evans: Variante Normal" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Bg4 * C51 "Gambito Evans: Ataque Fraser" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Bg4 10.Qa4 * C51 "Gambito Evans: Ataque Fraser-Mortimer" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Bc5 6.d4 exd4 7.O-O d6 8.cxd4 Bb6 9.Nc3 Bg4 10.Qa4 Bd7 11.Qb3 Na5 12.Bxf7+ Kf8 13.Qc2 * C52 "Gambito Evans: 5...Aa5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 * C52 "Gambito Evans: 5...Aa5 6.Db3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.Qb3 * C52 "Gambito Evans: 5...Aa5 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O * C52 "Gambito Evans: 5...Aa5 6.O-O Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O Nf6 * C52 "Gambito Evans: Ataque Richardson" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O Nf6 7.d4 O-O 8.Nxe5 * C52 "Gambito Evans: 5...Aa5 6.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 * C52 "Gambito Evans: 5...Aa5 6.O-O d6 7.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 * C52 "Gambito Evans: Ataque Waller" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 exd4 8.Qb3 * C52 "Gambito Evans: Variante Sanders-Alapin" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 Bd7 * C52 "Gambito Evans: Variante Alapin-Steinitz" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 Bg4 * C52 "Gambito Evans: Defensa Lasker" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.O-O d6 7.d4 Bb6 * C52 "Gambito Evans: 5...Aa5 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 * C52 "Gambito Evans: Variante Leonhardt" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 b5 * C52 "Gambito Evans: 5...Aa5 6.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 * C52 "Gambito Evans: Defensa Comprometida" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 7.O-O dxc3 * C52 "Gambito Evans: Defensa Comprometida, Variante Paulsen" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 7.O-O dxc3 8.Qb3 Qf6 9.e5 Qg6 10.Nxc3 Nge7 11.Ba3 * C52 "Gambito Evans: Defensa Comprometida, Variante Potter" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 7.O-O dxc3 8.Qb3 Qf6 9.e5 Qg6 10.Nxc3 Nge7 11.Rd1 * C52 "Gambito Evans: 5...Aa5 6.d4 d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 * C52 "Gambito Evans: Variante Sokolsky" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Bg5 * C52 "Gambito Evans: Ataque Tartakower" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 * C52 "Gambito Evans: Ataque Tartakower, 7...Dd7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 * C52 "Gambito Evans: Ataque Tartakower, 8.dxe5 Ab6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 8.dxe5 Bb6 * C52 "Gambito Evans: Ataque Tartakower, 8.dxe5 dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 8.dxe5 dxe5 * C52 "Gambito Evans: Tartakower, Variante Levenfish" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 d6 7.Qb3 Qd7 8.dxe5 dxe5 9.O-O Bb6 10.Ba3 Na5 11.Nxe5 * C53 "Giuoco Piano: 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 * C53 "Giuoco Piano: Variante La Bourdonnais" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 d6 5.d4 exd4 6.cxd4 Bb6 * C53 "Giuoco Piano: Variante Cerrada" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 * C53 "Giuoco Piano: Variante de Posesión del Centro" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 * C53 "Giuoco Piano: Variante Tarrasch" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 6.O-O Nf6 7.a4 a6 8.Re1 d6 9.h3 * C53 "Giuoco Piano: Variante Mestel" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 6.Bg5 * C53 "Giuoco Piano: Variante Eisinger" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Qe7 5.d4 Bb6 6.d5 Nb8 7.d6 * C54 "Giuoco Piano: 4.c3 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 * C54 "Giuoco Piano: Gambito Albin" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.O-O * C54 "Giuoco Piano: Ataque Bird" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.b4 * C54 "Giuoco Piano: Ataque Bird" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.b4 Bb6 6.a4 * C54 "Giuoco Pianissimo: 5.d3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 * C54 "Giuoco Pianissimo: 5.d3 a6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 a6 * C54 "Giuoco Pianissimo: 5.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 * C54 "Giuoco Pianissimo: 5.d3 d6 6.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.Nbd2 * C54 "Giuoco Pianissimo: 5.d3 d6 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.O-O * C54 "Giuoco Pianissimo: 5.d3 d6 6.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.O-O O-O * C54 "Giuoco Piano: 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 * C54 "Giuoco Piano: 6.e5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 * C54 "Giuoco Piano: Variante Ghulam Kassim" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 Ne4 7.Bd5 Nxf2 8.Kxf2 dxc3+ 9.Kg3 * C54 "Giuoco Piano: 6.e5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 d5 * C54 "Giuoco Piano: Variante Anderssen" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.e5 d5 7.Bb5 Ne4 8.cxd4 Bb4+ * C54 "Giuoco Piano: 6.cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 * C54 "Giuoco Piano: 6.cxd4 Ab4+" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ * C54 "Giuoco Piano: Variante Krakow" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Kf1 * C54 "Giuoco Piano: 6.cxd4 Ab4+ 7.Ad2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Bd2 * C54 "Giuoco Piano: Variante Krause" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Bd2 Nxe4 8.Bxb4 Nxb4 9.Bxf7+ Kxf7 10.Qb3+ d5 11.Ne5+ Kf6 12.f3 * C54 "Giuoco Piano: Ataque Greco" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 * C54 "Giuoco Piano: Ataque Greco" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Nxc3 * C54 "Giuoco Piano: Variante Bernstein" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Nxc3 9.bxc3 Bxc3 10.Qb3 d5 * C54 "Giuoco Piano: Variante Aitken" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Nxc3 9.bxc3 Bxc3 10.Ba3 * C54 "Giuoco Piano: Ataque Greco" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 * C54 "Giuoco Piano: Variante Steinitz" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.bxc3 d5 10.Ba3 * C54 "Giuoco Piano: Ataque Möller (Therkatz)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.d5 * C54 "Giuoco Piano: Variante Möller-Herzog" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.d5 Bf6 10.Re1 Ne7 11.Rxe4 d6 12.Bg5 Bxg5 13.Nxg5 O-O 14.Nxh7 * C54 "Giuoco Piano: Möller, Ataque Bayoneta" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d4 exd4 6.cxd4 Bb4+ 7.Nc3 Nxe4 8.O-O Bxc3 9.d5 Bf6 10.Re1 Ne7 11.Rxe4 d6 12.g4 * C55 "Defensa de los Dos Caballos" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 * C55 "Dos Caballos: Gambito Deutz" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.O-O Bc5 5.d4 * C55 "Dos Caballos: Gambito 4.O-O, Variante Rosentreter" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.O-O Bc5 5.d4 Bxd4 6.Nxd4 Nxd4 7.Bg5 h6 8.Bh4 g5 9.f4 * C55 "Dos Caballos: Gambito 4.O-O, Ataque Holzhausen" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.O-O Bc5 5.d4 Bxd4 6.Nxd4 Nxd4 7.Bg5 d6 8.f4 Qe7 9.fxe5 dxe5 10.Nc3 * C55 "Dos Caballos: 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 * C55 "Dos Caballos: 4.d3 h6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 h6 * C55 "Dos Caballos: 4.d3 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 * C55 "Dos Caballos: 4.d3 Ae7 5.Ab3 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.Bb3 O-O * C55 "Dos Caballos: 4.d3 Ae7 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.c3 * C55 "Dos Caballos: 4.d3 Ae7 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O * C55 "Dos Caballos: 4.d3 Ae7 5.O-O O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O * C55 "Dos Caballos: 4.d3 Ae7 5.O-O O-O 6.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O 6.Bb3 * C55 "Dos Caballos: 4.d3 Ae7 5.O-O O-O 6.Ab3 d6 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O 6.Bb3 d6 7.c3 * C55 "Dos Caballos: 4.d3 Ae7 5.O-O O-O 6.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d3 Be7 5.O-O O-O 6.Re1 * C55 "Dos Caballos: 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 * C55 "Dos Caballos: 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 * C55 "Dos Caballos: 4.d4 exd4 5.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.Nxd4 * C55 "Dos Caballos: Variante Perreux" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.Ng5 * C55 "Dos Caballos: Variante Moderna" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 * C55 "Dos Caballos: Moderna, 5.e5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 d5 * C55 "Dos Caballos: Moderna, Línea Principal" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 d5 6.Bb5 Ne4 7.Nxd4 Bd7 * C55 "Dos Caballos: Moderna, Línea Principal, 8.Axc6 bxc6 9.O-O Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.e5 d5 6.Bb5 Ne4 7.Nxd4 Bd7 8.Bxc6 bxc6 9.O-O Bc5 * C55 "Dos Caballos: 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O * C55 "Dos Caballos: 5.O-O Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Be7 * C55 "Dos Caballos: 5.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O d6 * C55 "Dos Caballos: Ataque Max Lange" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 * C55 "Dos Caballos: Max Lange, Variante Steinitz" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 Ng4 * C55 "Dos Caballos: Max Lange, Variante Krause" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 Ng4 7.c3 * C55 "Dos Caballos: Max Lange, 6.e5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 * C55 "Dos Caballos: Max Lange, Variante Schlechter" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.fxg7 * C55 "Dos Caballos: Max Lange, Variante Berger" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 Qd5 10.Nc3 Qf5 11.g4 Qg6 12.Nce4 Bb6 13.f4 O-O-O * C55 "Dos Caballos: Max Lange, Variante Marshall" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 Qd5 10.Nc3 Qf5 11.Nce4 * C55 "Dos Caballos: Max Lange, Variante Rubinstein" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 Qd5 10.Nc3 Qf5 11.Nce4 Bf8 * C55 "Dos Caballos: Max Lange, Defensa Loman" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Bc5 6.e5 d5 7.exf6 dxc4 8.Re1+ Be6 9.Ng5 g6 * C56 "Dos Caballos: Clásica" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 * C56 "Dos Caballos: Clásica, Variante Nakhmanson" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Nc3 * C56 "Dos Caballos: Clásica, 6.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 * C56 "Dos Caballos: Clásica, 6.Te1 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 * C56 "Dos Caballos: Clásica, Variante Canal" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Nc3 * C56 "Dos Caballos: Clásica, 7.Axd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 * C56 "Dos Caballos: Clásica, 7.Axd5 Dxd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 * C56 "Dos Caballos: Clásica, 8.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 * C56 "Dos Caballos: Clásica, 8.Cc3 Dd8" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qd8 * C56 "Dos Caballos: Clásica, 8.Cc3 Dh5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qh5 * C56 "Dos Caballos: Clásica, 8.Cc3 Dh5 9.Cxe4 Ae6 10.Ag5 Ad6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qh5 9.Nxe4 Be6 10.Bg5 Bd6 * C56 "Dos Caballos: Clásica, Variante Moller" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 * C56 "Dos Caballos: Clásica, Moller, 9.Cxe4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 * C56 "Dos Caballos: Clásica, Moller, 9.Cxe4 Ae6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 * C56 "Dos Caballos: Clásica, Moller, 10.Ag5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bg5 * C56 "Dos Caballos: Clásica, Ataque Yurdansky" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bg5 h6 11.Bh4 g5 12.Nf6+ Ke7 13.b4 * C56 "Dos Caballos: Clásica, Moller, 10.Ceg5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Neg5 * C56 "Dos Caballos: Clásica, Moller, 10.Ceg5 O-O-O 11.Cxe6 fxe6 12.Txe6 Ad6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Neg5 O-O-O 11.Nxe6 fxe6 12.Rxe6 Bd6 * C56 "Dos Caballos: Clásica, Moller, 10.Ad2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 * C56 "Dos Caballos: Clásica, Moller, 10.Ad2 Df5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 Qf5 * C56 "Dos Caballos: Clásica, Moller, 10.Ad2 Dd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 Qd5 * C56 "Dos Caballos: Clásica, Moller, 10.Ad2 Ab4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.d4 exd4 5.O-O Nxe4 6.Re1 d5 7.Bxd5 Qxd5 8.Nc3 Qa5 9.Nxe4 Be6 10.Bd2 Bb4 * C57 "Dos Caballos: 4.Cg5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 * C57 "Dos Caballos: Variante Traxler (Wilkes-Barre)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 * C57 "Dos Caballos: Traxler, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.d4 * C57 "Dos Caballos: Traxler, 5.Cxf7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 * C57 "Dos Caballos: Traxler, 5.Cxf7 & 6.Rxf2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kxf2 * C57 "Dos Caballos: Traxler, 5.Cxf7 & 6.Rf1" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 * C57 "Dos Caballos: Traxler, 5.Cxf7 & 6.Rf1, Beyer 8...Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Bg4 * C57 "Dos Caballos: Traxler, 5.Cxf7 & 6.Rf1, 8...Cd4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Nd4 * C57 "Dos Caballos: Traxler, 5.Cxf7 & 6.Rf1, Variante Palkin" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Nd4 9.h3 * C57 "Dos Caballos: Traxler, 5.Cxf7 & 6.Rf1, Variante Menovsky" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Nxf7 Bxf2+ 6.Kf1 Qe7 7.Nxh8 d5 8.exd5 Nd4 9.d6 * C57 "Dos Caballos: Traxler, 5.Axf7+" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Bxf7+ * C57 "Dos Caballos: Traxler, 5.Axf7+ Re7 6.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Bxf7+ Ke7 6.Bb3 * C57 "Dos Caballos: Traxler, Variante Chigorin/Pithart" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 Bc5 5.Bxf7+ Ke7 6.Bd5 * C57 "Dos Caballos: 4.Cg5 d5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 * C57 "Dos Caballos: Variante Kloss" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nb4 * C57 "Dos Caballos: 4.Cg5 d5 5.exd5 Cxd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 * C57 "Dos Caballos: Ataque Lolli" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.d4 * C57 "Dos Caballos: Ataque Lolli, Variante Pinkus" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.d4 Bb4+ * C57 "Dos Caballos: Ataque Fegatello (Hígado Frito)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 * C57 "Dos Caballos: Fegatello, Variante Leonhardt" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 Kxf7 7.Qf3+ Ke6 8.Nc3 Nb4 9.Qe4 c6 10.a3 Na6 11.d4 Nc7 * C57 "Dos Caballos: Fegatello, Defensa Polerio" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 Kxf7 7.Qf3+ Ke6 8.Nc3 Ne7 * C57 "Dos Caballos: Variante Ulvestad" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 b5 * C57 "Dos Caballos: Variante Fritz" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 * C57 "Dos Caballos: Variante Fritz, Línea Principal" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 * C57 "Dos Caballos: Fritz, 8.Cxf7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Nxf7 * C57 "Dos Caballos: Fritz, 8.cxd5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.cxd4 * C57 "Dos Caballos: Fritz, Paoli 8.h4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.h4 * C57 "Dos Caballos: Fritz, Variante Gruber (8.Ce4)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Ne4 * C57 "Dos Caballos: Fritz, Variante Radchenko" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Ne4 Qh4 9.Ng3 Bb7 * C57 "Dos Caballos: Fritz, Variante Berlíner" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nd4 6.c3 b5 7.Bf1 Nxd5 8.Ne4 Qh4 9.Ng3 Bg4 10.f3 e4 * C58 "Dos Caballos: Variante Morphy (5...Ca5)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 * C58 "Dos Caballos: Morphy, Variante Kieseritsky" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 * C58 "Dos Caballos: Morphy, Variante Kieseritsky, 6...h6 7.Cf3 e4 8.De2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 h6 7.Nf3 e4 8.Qe2 * C58 "Dos Caballos: Morphy, Variante Yankovich" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 h6 7.Nf3 e4 8.Qe2 Nxc4 9.dxc4 Bc5 10.Nfd2 * C58 "Dos Caballos: Morphy, Variante Maroczy" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.d3 h6 7.Nf3 e4 8.Qe2 Nxc4 9.dxc4 Be7 * C58 "Dos Caballos: Morphy, Polerio (6.Ab5+)" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ * C58 "Dos Caballos: Morphy, Polerio, 6...Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ Bd7 * C58 "Dos Caballos: Morphy, Polerio, 6...c6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 * C58 "Dos Caballos: Morphy, Variante Bogoljubow" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 * C58 "Dos Caballos: Morphy, Variante Blackburne" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 cxb5 * C58 "Dos Caballos: Morphy, Variante Paoli" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 Qc7 9.Bd3 * C58 "Dos Caballos: Morphy, Variante Colman" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Qf3 Rb8 * C58 "Dos Caballos: Morphy, 8.Ae2" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 * C59 "Dos Caballos: Morphy, 8.Ae2 h6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 * C59 "Dos Caballos: Morphy, Variante Steinitz" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nh3 * C59 "Dos Caballos: Morphy, Línea Principal 9.Cf3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 * C59 "Dos Caballos: Morphy, Línea Principal 9.Cf3 e4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 * C59 "Dos Caballos: Morphy, Línea Principal 9.Cf3 e4 10.Ce5" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 * C59 "Dos Caballos: Morphy, Variante Steiner" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bc5 * C59 "Dos Caballos: Morphy, Variante Göring" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Qc7 * C59 "Dos Caballos: Morphy, Variante Geller" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Qd4 * C59 "Dos Caballos: Línea Principal 10...Ad6" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 * C59 "Dos Caballos: Línea Principal, 11.f4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.f4 * C59 "Dos Caballos: Línea Principal, 11.f4 exf3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.f4 exf3 * C59 "Dos Caballos: Línea Principal, 11.d4" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 * C59 "Dos Caballos: Línea Principal, 11.d4 Dc7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 Qc7 * C59 "Dos Caballos: Línea Principal, Variante Knorre" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 Qc7 12.Bd2 * C59 "Dos Caballos: Línea Principal, 11.d4 exd3" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 exd3 * C59 "Dos Caballos: Línea Principal, 11.d4 exd3 12.Cxd3 Dc7" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 exd3 12.Nxd3 Qc7 * C59 "Dos Caballos: Línea Principal, 11.d4, Variante Honfi" 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Na5 6.Bb5+ c6 7.dxc6 bxc6 8.Be2 h6 9.Nf3 e4 10.Ne5 Bd6 11.d4 exd3 12.Nxd3 Qc7 13.b3 * C60 "Española (Ruy López)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 * C60 "Española: Contragambito Español" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d5 * C60 "Española: 3...a5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a5 * C60 "Española: Veriante Nürnberg" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f6 * C60 "Española: Defensa Pollock" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Na5 * C60 "Española: Defensa Lucena" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Be7 * C60 "Española: Variante de Vinogradov" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Qe7 * C60 "Española: Variante Brentano" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g5 * C60 "Española: Variante Alapin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bb4 * C60 "Española: Alapin, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bb4 4.c3 * C60 "Española: Defensa del Fianchetto (Smyslov)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 * C60 "Española: Fianchetto, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.O-O * C60 "Española: Fianchetto, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.d4 * C60 "Española: Fianchetto, 4.d4 exd4 5.Ag5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.d4 exd4 5.Bg5 * C60 "Española: Fianchetto, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 g6 4.c3 * C60 "Española: Defensa Cozio" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 * C60 "Española: Cozio, 4.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.Nc3 * C60 "Española: Cozio, Variante Paulsen" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.Nc3 g6 * C60 "Española: Cozio, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.c3 * C60 "Española: Cozio, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.O-O * C60 "Española: Cozio, 4.O-O g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.O-O g6 * C60 "Española: Cozio, 4.O-O g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nge7 4.O-O g6 5.c3 * C61 "Española: Defensa Bird" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 * C61 "Española: Bird, 4.Ac4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Bc4 * C61 "Española: Bird, 4.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 * C61 "Española: Bird, 4.Cxd4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 * C61 "Española: Bird, 5.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.d3 * C61 "Española: Bird, 5.Ac4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.Bc4 * C61 "Española: Bird, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O * C61 "Española: Bird, Variante Paulsen" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Ne7 * C61 "Española: Bird, 5.O-O c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O c6 * C61 "Española: Bird, 5.O-O c6 6.Ac4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O c6 6.Bc4 * C61 "Española: Bird, 5.O-O Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 * C61 "Española: Bird, 5.O-O Ac5 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 * C61 "Española: Bird, 5.O-O Ac5 6.d3 c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 c6 * C61 "Española: Bird, 5.O-O Ac5 6.d3 c6 7.Ac4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 c6 7.Bc4 * C61 "Española: Bird, 5.O-O Ac5 6.d3 c6 7.Ac4 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nd4 4.Nxd4 exd4 5.O-O Bc5 6.d3 c6 7.Bc4 d5 * C62 "Española: Steinitz Antigua" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 * C62 "Española: Steinitz Antigua, 4.Axc6+" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.Bxc6+ * C62 "Española: Steinitz Antigua, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.O-O * C62 "Española: Steinitz Antigua, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.c3 * C62 "Española: Steinitz Antigua, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 * C62 "Española: Steinitz Antigua, 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 exd4 * C62 "Española: Steinitz Antigua, 4.d4 exd4 5.Dxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 exd4 5.Qxd4 * C62 "Española: Steinitz Antigua, 4.d4 exd4 5.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 exd4 5.Nxd4 * C62 "Española: Steinitz Antigua, 4.d4 Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 * C62 "Española: Steinitz Antigua, 4.d4 Ad7 5.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.Nc3 * C62 "Española: Steinitz Antigua, Ataque Nimzowitsch" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.Nc3 Nf6 6.Bxc6 * C62 "Española: Steinitz Antigua, Variante Semi-Duras" 1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.c4 * C63 "Española: Schliemann (Jänisch)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 * C63 "Española: Schliemann, 4.De2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Qe2 * C63 "Española: Schliemann, 4.exf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.exf5 * C63 "Española: Schliemann, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d4 * C63 "Española: Schliemann, 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d3 * C63 "Española: Schliemann, 4.d3 fxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d3 fxe4 * C63 "Española: Schliemann, 4.d3 fxe4 5.dxe4 Cf6 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.d3 fxe4 5.dxe4 Nf6 6.O-O * C63 "Española: Schliemann, 4.Axc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Bxc6 * C63 "Española: Schliemann, 4.Axc6 dxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Bxc6 dxc6 * C63 "Española: Schliemann, 4.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 * C63 "Española: Schliemann, 4.Cc3 Cd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nd4 * C63 "Española: Schliemann, 4.Cc3 Cd4 5.Aa4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nd4 5.Ba4 * C63 "Española: Schliemann, 4.Cc3 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nf6 * C63 "Española: Schliemann, 4.Cc3 Cf6 5.exf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 Nf6 5.exf5 * C63 "Española: Schliemann, 4.Cc3 fxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 * C63 "Española: Schliemann, 4.Cc3 fxe4 5.Cxe4 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 Nf6 * C63 "Española: Schliemann, 4.Cc3 fxe4 5.Cxe4 Cf6 6.De2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 Nf6 6.Qe2 * C63 "Española: Schliemann, 4.Cc3 fxe4 5.Cxe4 Cf6 6.Cxf6+" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 Nf6 6.Nxf6+ * C63 "Española: Schliemann, 4.Cc3 fxe4 5.Cxe4 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 * C63 "Española: Schliemann, 4.Cc3 fxe4 5.Cxe4 d5 6.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 * C63 "Española: Schliemann, 4.Cc3 fxe4 5.Cxe4 d5 6.Cxe5 dxe4 7.Cxc6 Dd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 dxe4 7.Nxc6 Qd5 * C63 "Española: Schliemann, 4.Cc3 fxe4 5.Cxe4 d5 6.Cxe5 dxe4 7.Cxc6 Dg5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 f5 4.Nc3 fxe4 5.Nxe4 d5 6.Nxe5 dxe4 7.Nxc6 Qg5 * C64 "Española: Defensa Clásica" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 * C64 "Española: Clásica, Intercambio" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.Bxc6 * C64 "Española: Clásica, 4.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 * C64 "Española: Clásica, Variante Boden" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Qe7 * C64 "Española: Clásica, Variante Charousek" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Bb6 * C64 "Española: Clásica, 4.c3 Cge7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nge7 * C64 "Española: Clásica, 4.c3 Df6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Qf6 * C64 "Española: Clásica, Gambito Cordel" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 f5 * C64 "Española: Clásica, Gambito Cordel, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 f5 5.d4 * C64 "Española: Clásica, 4.c3 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nf6 * C64 "Española: Clásica, 4.c3 Cf6 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nf6 5.d4 * C64 "Española: Clásica, 4.c3 Cf6 5.d4 Ab6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.c3 Nf6 5.d4 Bb6 * C64 "Española: Clásica, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O * C64 "Española: Clásica, 4.O-O Cge7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nge7 * C64 "Española: Clásica, 4.O-O Df6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Qf6 * C64 "Española: Clásica, 4.O-O d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O d6 * C64 "Española: Clásica, 4.O-O d6 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O d6 5.c3 * C64 "Española: Clásica, 4.O-O Cd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 * C64 "Española: Clásica, Variante Zaitsev" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.b4 * C64 "Española: Clásica, 4.O-O Cd4 5.Ac4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Bc4 * C64 "Española: Clásica, 4.O-O Cd4 5.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 * C64 "Española: Clásica, 4.O-O Cd4 5.Cxd4 Axd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 * C64 "Española: Clásica, 4.O-O Cd4 5.Cxd4 Axd4 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 * C64 "Española: Clásica, 4.O-O Cd4 5.Cxd4 Axd4 6.c3 Ab6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 * C64 "Española: Clásica, 4.O-O Cd4 5.Cxd4 Axd4 6.c3 Ab6 7.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 7.d4 * C64 "Española: Clásica, 6.c3 Ab6 7.d4 c6 8.Aa4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 7.d4 c6 8.Ba4 * C64 "Española: Clásica, 6.c3 Ab6 7.d4 c6 8.Aa4 d6 9.Ca3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Bc5 4.O-O Nd4 5.Nxd4 Bxd4 6.c3 Bb6 7.d4 c6 8.Ba4 d6 9.Na3 * C65 "Española: Defensa de Berlín" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 * C65 "Española: Berlín, 4.De2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.Qe2 * C65 "Española: Berlín, 4.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d4 * C65 "Española: Berlín, 4.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d4 exd4 * C65 "Española: Berlín, Ataque Nyholm" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d4 exd4 5.O-O * C65 "Española: Berlín, 4.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 * C65 "Española: Berlín, Variante Mortimer" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Ne7 * C65 "Española: Berlín, Celada Mortimer" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Ne7 5.Nxe5 c6 * C65 "Española: Berlín, 4.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 * C65 "Española: Berlín, Variante Anderssen" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 5.Bxc6+ * C65 "Española: Berlín, Variante Duras" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 5.c4 * C65 "Española: Berlín, 4.d3 d6 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 d6 5.c3 * C65 "Española: Berlín, 4.d3 Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Bc5 * C65 "Española: Berlín, Variante Kaufmann" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Bc5 5.Be3 * C65 "Española: Berlín, 4.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O * C65 "Española: Berlín, 4.O-O Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Be7 * C65 "Española: Berlín, Variante Beverwijk" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 * C65 "Española: Berlín, Beverwijk, 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.c3 * C65 "Española: Berlín, Variante de Benelux" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.c3 O-O 6.d4 Bb6 * C65 "Española: Berlín, Variante de Benelux, 7.Ag5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.c3 O-O 6.d4 Bb6 7.Bg5 * C65 "Española: Berlín, Beverwijk, 5.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bc5 5.Nxe5 * C66 "Española: Berlín Cerrada" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 * C66 "Española: Berlín Cerrada, 5.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.Re1 * C66 "Española: Berlín Cerrada, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 * C66 "Española: Berlín Cerrada, Variante Chigorin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Nd7 * C66 "Española: Berlín Cerrada, 5.d4 Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 * C66 "Española: Berlín Cerrada, Variante Wolf" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 exd4 * C66 "Española: Berlín Cerrada, Variante Erizo" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 * C66 "Española: Berlín Cerrada, Celada Tarrasch" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 7.Re1 O-O * C66 "Española: Berlín Cerrada, Variante Bernstein" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 7.Bg5 * C66 "Española: Berlín Cerrada, Variante Showalter" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 7.Bxc6 * C67 "Española: Berlín Abierta" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 * C67 "Española: Berlín Abierta, 5.De2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.Qe2 * C67 "Española: Berlín Abierta, 5.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.Re1 * C67 "Española: Berlín Abierta, 5.Te1 Cd6 6.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.Re1 Nd6 6.Nxe5 * C67 "Española: Berlín Abierta, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 * C67 "Española: Berlín Abierta, Variante Rosenthal" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 a6 * C67 "Española: Berlín Abierta, 5...Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 * C67 "Española: Berlín, Variante Minckwitz" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.dxe5 * C67 "Española: Berlín Abierta, 5...Ae7 6.De2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 * C67 "Española: Berlín Abierta, Variante Trifunovic" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 d5 * C67 "Española: Berlín Abierta, 5...Ae7 6.Dd2 Cd6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 * C67 "Española: Berlín Abierta, Variante Cordel" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nf5 * C67 "Española: Berlín Abierta, 5...Ae7 6.Dd2 Cd6 7.Axc6 bxc6 8.dxe5 Cb7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 * C67 "Española: Berlín Abierta, Variante Pillsbury" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.b3 * C67 "Española: Berlín Abierta, Variante Zukertort" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.c4 * C67 "Española: Berlín Abierta, Ataque Winawer" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.Nd4 * C67 "Española: Berlín Abierta, Línea Principal 9.Cc3 (Río de Janerio)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Be7 6.Qe2 Nd6 7.Bxc6 bxc6 8.dxe5 Nb7 9.Nc3 * C67 "Española: Berlín Abierta, 5.d4 Cd6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 * C67 "Española: Berlín Abierta, Variante Showalter" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Ba4 * C67 "Española: Berlín Abierta, 5.d4 Cd6 6.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.dxe5 * C67 "Española: Berlín Abierta, 5.d4 Cd6 6.Axc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 * C67 "Española: Berlín Abierta, 5.d4 Cd6 6.Axc6 dxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 * C67 "Española: Berlín Abierta, 5.d4 Cd6 6.Axc6 dxc6 7.dxe5 Cf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 * C67 "Española: Berlín Abierta, 5.d4 Cd6 Intercambio de Damas" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ * C67 "Española: Berlín Abierta, 5.d4 Cd6 Intercambio de Damas, 9.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 * C67 "Española: Berlín Abierta, 5.d4 Cd6 Intercambio de Damas, 9.Cc3 h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 h6 * C67 "Española: Berlín Abierta, 5.d4 Cd6 Intercambio de Damas, 9.Cc3 Re8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 * C67 "Española: Berlín Abierta, 5.d4 Cd6 Intercambio de Damas, 9.Cc3 Re8 10.Td1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 10.Rd1 * C67 "Española: Berlín Abierta, 5.d4 Cd6 Intercambio de Damas, 9.Cc3 Re8 10.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 10.h3 * C67 "Española: Berlín Abierta, 5.d4 Cd6 Intercambio de Damas, 9.Cc3 Re8 10.h3 a5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8 9.Nc3 Ke8 10.h3 a5 * C68 "Española: 3...a6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 * C68 "Española: 3...a6 4.Ac4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bc4 * C68 "Española: Variante del Cambio" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 * C68 "Española: Intercambio, 4...bxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 bxc6 * C68 "Española: Intercambio, 4...dxc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 * C68 "Española: Intercambio, Variante Lasker" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.d4 * C68 "Española: Intercambio, Variante Alekhine" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.d4 exd4 6.Qxd4 Qxd4 7.Nxd4 Bd7 * C68 "Española: Intercambio, Variante Keres" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 * C68 "Española: Intercambio, Keres, 5...f6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 f6 * C68 "Española: Intercambio, Variante Romanovsky" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 f6 6.d3 * C68 "Española: Intercambio, 5.Cc3 f6 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.Nc3 f6 6.d4 * C68 "Española: Intercambio, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O * C68 "Española: Intercambio, 5.O-O Ce7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Ne7 * C68 "Española: Intercambio, 5.O-O Ad6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bd6 * C68 "Española: Intercambio, 5.O-O Ad6 6.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bd6 6.d4 exd4 * C68 "Española: Intercambio, 5.O-O Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 * C68 "Española: Intercambio, 5.O-O Ag4 6.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 6.h3 * C68 "Española: Intercambio, Gambito Alapin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 6.h3 h5 * C68 "Española: Intercambio, Gambito Alapin, 7.d3 Df6 8.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Bg4 6.h3 h5 7.d3 Qf6 8.Nbd2 * C68 "Española: Intercambio, Variante Bronstein" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 * C68 "Española: Intercambio, Bronstein, 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.d3 * C68 "Española: Intercambio, Bronstein, 6.Ca3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.Na3 * C68 "Española: Intercambio, Bronstein, 6.Ca3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.Na3 b5 * C68 "Española: Intercambio, Bronstein, 6.Ca3 Ae6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O Qd6 6.Na3 Be6 * C69 "Española: Intercambio, Variante Gligoric" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 * C69 "Española: Intercambio, Gligoric, 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 * C69 "Española: Intercambio, Gligoric, 6.d4 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 * C69 "Española: Intercambio, Gligoric, 6.d4 Ag4 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.c3 * C69 "Española: Intercambio, Gligoric, 6.d4 Ag4 7.c3 Ad6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.c3 Bd6 * C69 "Española: Intercambio, Gligoric, 6.d4 Ag4 7.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.dxe5 * C69 "Española: Intercambio, Gligoric, 6.d4 Ag4 Intercambio de Damas, 9.Td3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.dxe5 Qxd1 8.Rxd1 fxe5 9.Rd3 * C69 "Española: Intercambio, Gligoric, 6.d4 Ag4 Intercambio de Damas, 9.Td3 Ad6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 Bg4 7.dxe5 Qxd1 8.Rxd1 fxe5 9.Rd3 Bd6 * C69 "Española: Intercambio, Gligoric, 6.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 * C69 "Española: Intercambio, Gligoric, 6.d4 exd4 7.Dxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 * C69 "Española: Intercambio, Gligoric, 6.d4 exd4 7.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Qxd4 * C69 "Española: Intercambio, Gligoric, 6.d4 exd4 7.Cxd4 Ce7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 Ne7 * C69 "Española: Intercambio, Gligoric, 6.d4 exd4 7.Cxd4 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 * C69 "Española: Intercambio, Gligoric, 8.Ce2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Ne2 * C69 "Española: Intercambio, Gligoric, 8.Cb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 * C69 "Española: Intercambio, Gligoric, 8.Cb3 Intercambio de Damas" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 * C69 "Española: Intercambio, Gligoric, 8.Cb3 Intercambio de Damas, 9...Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 Bd7 * C69 "Española: Intercambio, Gligoric, 8.Cb3 Intercambio de Damas, 9...Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 Bg4 * C69 "Española: Intercambio, Gligoric, 8.Cb3 Intercambio de Damas, 9...Ag4 10.f3 Ae6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Bxc6 dxc6 5.O-O f6 6.d4 exd4 7.Nxd4 c5 8.Nb3 Qxd1 9.Rxd1 Bg4 10.f3 Be6 * C70 "Española: 4.Aa4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 * C70 "Española: Variante Brentano" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 g5 * C70 "Española: 4.Aa4 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Be7 * C70 "Española: Fianchetto Retardado" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 g6 * C70 "Española: Alapin Retardada" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Bb4 * C70 "Española: Cozio Retardada" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nge7 * C70 "Española: Bird Retardada" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nd4 * C70 "Española: Clásica Retardada" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Bc5 * C70 "Española: Variante Caro" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 b5 * C70 "Española: Variante Graz" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 b5 5.Bb3 Bc5 * C70 "Española: Variante Taimanov (Wing)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 b5 5.Bb3 Na5 * C70 "Española: Schliemann Retardada" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 f5 * C70 "Española: Schliemann Retardada, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 f5 5.d4 * C70 "Española: Schliemann Retardada, 5.d4 exd4 6.e5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 f5 5.d4 exd4 6.e5 * C71 "Española: Defensa Steinitz Moderna" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 * C71 "Española: Steinitz Moderna, Variante de los Tres Caballos" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Nc3 * C71 "Española: Steinitz Moderna, 5.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.d4 * C71 "Española: Steinitz Moderna, Celada del Arca de Noé" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.d4 b5 6.Bb3 Nxd4 7.Nxd4 exd4 8.Qxd4 c5 * C71 "Española: Steinitz Moderna, Variante Keres" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c4 * C72 "Española: Steinitz Moderna, 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O * C72 "Española: Steinitz Moderna, 5.O-O Ce7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Ne7 * C72 "Española: Steinitz Moderna, 5.O-O Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bg4 * C72 "Española: Steinitz Moderna, 5.O-O Ag4 6.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bg4 6.h3 * C72 "Española: Steinitz Moderna, 5.O-O Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bd7 * C72 "Española: Steinitz Moderna, 5.O-O Ad7 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.O-O Bd7 6.d4 * C73 "Española: Steinitz Moderna, Variante Richter" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ * C73 "Española: Steinitz Moderna, Variante Richter" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ bxc6 * C73 "Española: Steinitz Moderna, Variante Richter" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ bxc6 6.d4 * C73 "Española: Steinitz Moderna, Variante Alapin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.Bxc6+ bxc6 6.d4 f6 * C74 "Española: Steinitz Moderna, 5.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 * C74 "Española: Steinitz Moderna, 5.c3 g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 g6 * C74 "Española: Steinitz Moderna, Variante Siesta" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 * C74 "Española: Steinitz Moderna, Siesta, 6.exf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 6.exf5 * C74 "Española: Steinitz Moderna, Siesta, Variante Kopayev" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 6.exf5 Bxf5 7.O-O * C74 "Española: Steinitz Moderna, Siesta, Kopayev, Línea Principal" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 f5 6.exf5 Bxf5 7.O-O Bd3 8.Re1 Be7 9.Bc2 Bxc2 10.Qxc2 * C75 "Española: Steinitz Moderna, 5.c3 Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 * C75 "Española: Steinitz Moderna, 5.c3 Ad7 6.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.O-O * C75 "Española: Steinitz Moderna, 5.c3 Ad7 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 * C75 "Española: Steinitz Moderna, 5.c3 Ad7 6.d4 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nf6 * C75 "Española: Steinitz Moderna, Variante Rubinstein" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nge7 * C75 "Española: Steinitz Moderna, Rubinstein, 7.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nge7 7.Bb3 * C75 "Española: Steinitz Moderna, Rubinstein, 7.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 Nge7 7.Be3 * C76 "Española: Steinitz Moderna, Variante Bronstein" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 * C76 "Española: Steinitz Moderna, Bronstein, 7.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O * C76 "Española: Steinitz Moderna, Bronstein, 7.O-O Ag7 8.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.Re1 * C76 "Española: Steinitz Moderna, Bronstein, 7.O-O Ag7 8.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.dxe5 * C76 "Española: Steinitz Moderna, Bronstein, 7.O-O Ag7 8.dxe5 dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.dxe5 dxe5 * C76 "Española: Steinitz Moderna, Bronstein, 7.O-O Ag7 8.dxe5 Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.dxe5 Nxe5 * C76 "Española: Steinitz Moderna, Bronstein, 7.O-O Ag7 8.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 d6 5.c3 Bd7 6.d4 g6 7.O-O Bg7 8.d5 * C77 "Española: Defensa Morphy" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 * C77 "Española: Variante Anderssen" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 * C77 "Española: Anderssen, 5...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 b5 * C77 "Española: Anderssen, 5...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 * C77 "Española: Variante Duras" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 6.c4 * C77 "Española: Anderssen, 5...d6 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 6.c3 * C77 "Española: Anderssen, 5...d6 6.c3 g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d3 d6 6.c3 g6 * C77 "Española: Variante de los Cuatro Caballos (Tarrasch)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Nc3 * C77 "Española: Intercambio Retardado" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Bxc6 * C77 "Española: Ataque Central" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 * C77 "Española: Ataque Central, 5...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 b5 * C77 "Española: Ataque Central, 5...Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 Nxd4 * C77 "Española: Ataque Central, 5...Cxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 Nxe4 * C77 "Española: Ataque Central, 5...Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 Be7 * C77 "Española: Ataque Central, 5...exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.d4 exd4 * C77 "Española: Ataque Wormald" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 * C77 "Española: Ataque Wormald, 5...Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 Be7 * C77 "Española: Ataque Wormald, 5...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 * C77 "Española: Ataque Wormald, 5...b5 6.Ab3 Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Bc5 * C77 "Española: Ataque Wormald, 5...b5 6.Ab3 Ac5 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Bc5 7.c3 * C77 "Española: Ataque Wormald, 5...b5 6.Ab3 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Be7 * C77 "Española: Ataque Wormald, Variante Grünfeld" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.Qe2 b5 6.Bb3 Be7 7.d4 d6 8.c3 Bg4 * C78 "Española: 5.O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O * C78 "Española: Defensa Möller" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Bc5 * C78 "Española: Defensa Möller, 6.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Bc5 6.Nxe5 * C78 "Española: Defensa Möller, 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Bc5 6.c3 * C78 "Española: 5.O-O b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 * C78 "Española: 5.O-O b5 6.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 * C78 "Española: 5.O-O b5 6.Ab3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 d6 * C78 "Española: Variante Rabinovich" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 d6 7.Ng5 d5 8.exd5 Nd4 9.Re1 Bc5 10.Rxe5+ Kf8 * C78 "Española: 5.O-O b5 6.Ab3 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Be7 * C78 "Española: 5.O-O b5 6.Ab3 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Be7 7.d4 * C78 "Española: 5.O-O b5 6.Ab3 Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 * C78 "Española: 5.O-O b5 6.Ab3 Ac5 7.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.Nxe5 * C78 "Española: 5.O-O b5 6.Ab3 Ac5 7.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.Nxe5 Nxe5 8.d4 * C78 "Española: 5.O-O b5 6.Ab3 Ac5 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.c3 * C78 "Española: 5.O-O b5 6.Ab3 Ac5 7.c3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.c3 d6 * C78 "Española: 5.O-O b5 6.Ab3 Ac5 7.c3 d6 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.c3 d6 8.d4 * C78 "Española: 5.O-O b5 6.Ab3 Ac5 7.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.a4 * C78 "Española: 5.O-O b5 6.Ab3 Ac5 7.a4 Tb8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bc5 7.a4 Rb8 * C78 "Española: Variante Archangelsk" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 * C78 "Española: Archangelsk, 7.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.d4 * C78 "Española: Archangelsk, 7.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.d3 * C78 "Española: Archangelsk, 7.d3 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.d3 Be7 * C78 "Española: Archangelsk, 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.c3 * C78 "Española: Archangelsk, 7.c3 Cxe4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.c3 Nxe4 * C78 "Española: Archangelsk, 7.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 * C78 "Española: Archangelsk, 7.Te1 Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 * C78 "Española: Archangelsk, 7.Te1 Ac5 8.c3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 * C78 "Española: Archangelsk, Línea Principal" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 * C78 "Española: Archangelsk, Línea Principal, 10.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 10.a4 * C78 "Española: Archangelsk, Línea Principal, 10.Ag5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 10.Bg5 * C78 "Española: Archangelsk, Línea Principal, 10.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O b5 6.Bb3 Bb7 7.Re1 Bc5 8.c3 d6 9.d4 Bb6 10.Be3 * C79 "Española: Steinitz Retardada" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 * C79 "Española: Steinitz Retardada, 6.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.c3 * C79 "Española: Steinitz Retardada, 6.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Re1 * C79 "Española: Steinitz Retardada, Intercambio" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ * C79 "Española: Steinitz Retardada, Variante Lipnitsky" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ bxc6 7.d4 Bg4 * C79 "Española: Steinitz Retardada, Variante Rubinstein" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ bxc6 7.d4 Nxe4 * C79 "Española: Steinitz Retardada, Variante Boleslavsky" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O d6 6.Bxc6+ bxc6 7.d4 Nxe4 8.Re1 f5 9.dxe5 d5 10.Nc3 * C80 "Española: Abierta" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 * C80 "Española: Abierta, Variante Knorre" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Nc3 * C80 "Española: Abierta, Variante Tartakower" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Qe2 * C80 "Española: Abierta, 6.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Re1 * C80 "Española: Abierta, 6.Te1 Cc5 7.Axc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.Re1 Nc5 7.Bxc6 * C80 "Española: Abierta, 6.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 * C80 "Española: Abierta, Variante de Riga" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 exd4 * C80 "Española: Abierta, 6.d4 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 Be7 * C80 "Española: Abierta, 6.d4 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 * C80 "Española: Abierta, Ataque Friess" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Nxe5 * C80 "Española: Abierta, Variante Richter" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.d5 * C80 "Española: Abierta, 7.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 * C80 "Española: Abierta, 7.Ab3 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 * C80 "Española: Abierta, 7.Ab3 d5 8.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.a4 * C80 "Española: Abierta, Defensa Schlechter" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.a4 Nxd4 * C80 "Española: Abierta, Schlechter, Variante Berger" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.a4 Nxd4 9.Nxd4 exd4 10.Nc3 * C80 "Española: Abierta, Gambito Harksen" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.c4 * C80 "Española: Abierta, 8.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.Nxe5 * C80 "Española: Abierta, 8.dxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 * C80 "Española: Abierta, Variante Zukertort" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Ne7 * C80 "Española: Abierta, 8...Ae6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 * C80 "Española: Abierta, 8...Ae6 9.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.a4 * C80 "Española: Abierta, 8...Ae6 9.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Be3 * C80 "Española: Abierta, Variante Bernstein" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 * C80 "Española: Abierta, Bernstein, 9...Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Bc5 * C80 "Española: Abierta, Bernstein, 9...Cc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 * C80 "Española: Abierta, Bernstein, 9...Cc5 10.c3 d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 * C80 "Española: Abierta, Bernstein, 11.cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 11.cxd4 * C80 "Española: Abierta, Bernstein, Gambito Karpov" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 11.Ng5 * C80 "Española: Abierta, Bernstein, 11.Axe6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Nbd2 Nc5 10.c3 d4 11.Bxe6 * C81 "Española: Abierta, Ataque Keres" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 * C81 "Española: Abierta, Ataque Keres, 9...Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Bc5 * C81 "Española: Abierta, Ataque Keres, 9...Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 * C81 "Española: Abierta, Keres, Variante Adam" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.c4 * C81 "Española: Abierta, Keres, 10.Td1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 * C81 "Española: Abierta, Keres, 10.Td1 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O * C81 "Española: Abierta, Keres, 10.Td1 O-O 11.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c3 * C81 "Española: Abierta, Keres, 10.Td1 O-O 11.c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c4 * C81 "Española: Abierta, Keres, 10.Td1 O-O 11.c4 bxc4 12.Axc4 Ac5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c4 bxc4 12.Bxc4 Bc5 * C81 "Española: Abierta, Keres, Variante Ekstrom" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.Qe2 Be7 10.Rd1 O-O 11.c4 bxc4 12.Bxc4 Qd7 * C82 "Española: Abierta, 9.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 * C82 "Española: Abierta, Variante de Berlín" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 * C82 "Española: Abierta, Berlín, 10.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 * C82 "Española: Abierta, Berlín, 10.Ac2 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 * C82 "Española: Abierta, Berlín, 10.Ac2 Ag4 11.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Re1 * C82 "Española: Abierta, Berlín, 10.Ac2 Ag4 11.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 * C82 "Española: Abierta, Berlín, 10.Ac2 Ag4 11.Cbd2 Ae7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 * C82 "Española: Abierta, Berlín, 10.Ac2 Ag4 11.Cbd2 Ae7 12.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 * C82 "Española: Abierta, Berlín, 10.Ac2 Ag4 11.Cbd2 Ae7 12.Te1 Dd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 Qd7 * C82 "Española: Abierta, Berlín, 10.Ac2 Ag4 11.Cbd2 Ae7 12.Te1 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Nc5 10.Bc2 Bg4 11.Nbd2 Be7 12.Re1 O-O * C82 "Española: Abierta, Variante Italiana" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 * C82 "Española: Abierta, Ataque Motzko" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Qd3 * C82 "Española: Abierta, Ataque Motzko, Variante Nenarokov" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Qd3 Ne7 * C82 "Española: Abierta, Variante de San Petersburgo" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 * C82 "Española: Abierta, Variante de San Petersburgo" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O * C82 "Española: Abierta, San Petersburgo, 11.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 * C82 "Española: Abierta, San Petersburgo, 11.Ac2 f5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 f5 * C82 "Española: Abierta, Variante Baguio" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Bf5 * C82 "Española: Abierta, Baguio, 12.Cb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Bf5 12.Nb3 * C82 "Española: Abierta, Variante Dilworth" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 * C82 "Española: Abierta, Dilworth, 12.Rxf2 f6 13.exf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 * C82 "Española: Abierta, Dilworth, 14.Rxf2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 * C82 "Española: Abierta, Dilworth, 14.Rxf2 Dxf6 15.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 Qxf6 15.Nf1 * C82 "Española: Abierta, Dilworth, 14.Rxf2 Dxf6 15.Rg1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 Qxf6 15.Kg1 * C82 "Española: Abierta, Dilworth, 14.Rxf2 Dxf6 15.Rg1 g5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Bc5 10.Nbd2 O-O 11.Bc2 Nxf2 12.Rxf2 f6 13.exf6 Bxf2+ 14.Kxf2 Qxf6 15.Kg1 g5 * C83 "Española: Abierta, Defensa Clásica" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 * C83 "Española: Abierta, Clásica, 10.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Re1 * C83 "Española: Abierta, Clásica, Celada Tarrasch" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Re1 O-O 11.Nd4 Qd7 12.Nxe6 fxe6 13.Rxe4 * C83 "Española: Abierta, Clásica, Variante Breslau" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Re1 O-O 11.Nd4 Nxe5 * C83 "Española: Abierta, Clásica, 10.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Be3 * C83 "Española: Abierta, Clásica, 10.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 * C83 "Española: Abierta, Clásica, 10.Cbd2 Cc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 Nc5 * C83 "Española: Abierta, Clásica, 10.Cbd2 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O * C83 "Española: Abierta, Clásica, Variante Malkin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Qe2 * C83 "Española: Abierta, Clásica, 10.Cbd2 O-O 11.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Bc2 * C83 "Española: Abierta, Clásica, 10.Cbd2 O-O 11.Ac2 f5 12.exf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Bc2 f5 12.exf6 * C83 "Española: Abierta, Clásica, 10.Cbd2 O-O 11.Ac2 f5 12.Cb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6 9.c3 Be7 10.Nbd2 O-O 11.Bc2 f5 12.Nb3 * C84 "Española: Sistema Cerrado" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 * C84 "Española: Cerrada, 6.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 * C84 "Española: Cerrada, 6.Cc3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 * C84 "Española: Cerrada, 6.Cc3 b5 7.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 7.Bb3 * C84 "Española: Cerrada, 6.Cc3 b5 7.Ab3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 7.Bb3 d6 * C84 "Española: Cerrada, 6.Cc3 b5 7.Ab3 d6 8.Cd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Nc3 b5 7.Bb3 d6 8.Nd5 * C84 "Española: Cerrada, 6.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d3 * C84 "Española: Cerrada, 6.d3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d3 b5 * C84 "Española: Cerrada, 6.d3 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d3 b5 7.Bb3 * C84 "Española: Cerrada, Ataque Central" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 * C84 "Española: Cerrada, Ataque Central" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 * C84 "Española: Cerrada, Ataque Central, 7.e5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 * C84 "Española: Cerrada, Ataque Central, 7.e5 Ce4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 * C84 "Española: Cerrada, Ataque Central, Gambito Basque" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.c3 * C84 "Española: Cerrada, Ataque Central, Gambito Basque Aceptado" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.c3 dxc3 * C84 "Española: Cerrada, Ataque Central, 7.e5 Ce4 8.b4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.b4 * C84 "Española: Cerrada, Ataque Central, 7.e5 Ce4 8.Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.Nxd4 * C84 "Española: Cerrada, Ataque Central, 7.e5 Ce4 8.Cxd4 Cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.Nxd4 Nxd4 * C84 "Española: Cerrada, Ataque Central, 7.e5 Ce4 8.Cxd4 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.e5 Ne4 8.Nxd4 O-O * C84 "Española: Cerrada, Ataque Central, 7.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 * C84 "Española: Cerrada, Ataque Central, 7.Te1 b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 * C84 "Española: Cerrada, Ataque Central, 7.Te1 b5 8.e5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 8.e5 * C84 "Española: Cerrada, Ataque Central, 7.Te1 b5 8.e5 Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 8.e5 Nxe5 * C84 "Española: Cerrada, Ataque Central, 7.Te1 b5 8.e5 Cxe5 9.Txe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 b5 8.e5 Nxe5 9.Rxe5 * C84 "Española: Cerrada, Ataque Central, 7.Te1 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O * C84 "Española: Cerrada, Ataque Central, 7.Te1 O-O 8.e5 Ce8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O 8.e5 Ne8 * C84 "Española: Cerrada, Ataque Central, 7.Te1 O-O 8.e5 Ce8 9.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O 8.e5 Ne8 9.c3 * C84 "Española: Cerrada, Ataque Central, 7.Te1 O-O 8.e5 Ce8 9.Af4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.d4 exd4 7.Re1 O-O 8.e5 Ne8 9.Bf4 * C85 "Española: Cerrada, Intercambio" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 * C85 "Española: Cerrada, Intercambio" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 * C85 "Española: Cerrada, Intercambio, 7.De2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe2 * C85 "Española: Cerrada, Intercambio, 7.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Nc3 * C85 "Española: Cerrada, Intercambio, 7.Cc3 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Nc3 Bg4 * C85 "Española: Cerrada, Intercambio, 7.De1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 * C85 "Española: Cerrada, Intercambio, 7.De1 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 c5 * C85 "Española: Cerrada, Intercambio, 7.De1 Cd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 Nd7 * C85 "Española: Cerrada, Intercambio, 7.De1 Cd7 8.b3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.Qe1 Nd7 8.b3 * C85 "Española: Cerrada, Intercambio, 7.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 * C85 "Española: Cerrada, Intercambio, 7.d3 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Bg4 * C85 "Española: Cerrada, Intercambio, 7.d3 Cd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 * C85 "Española: Cerrada, Intercambio, 7.d3 Cd7 8.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 * C85 "Española: Cerrada, Intercambio, 7.d3 Cd7 8.Cbd2 O-O 9.Cc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 * C85 "Española: Cerrada, Intercambio, 7.d3 Cd7 8.Cbd2 O-O 9.Cc4 f6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 * C85 "Española: Cerrada, Intercambio, 7.d3 Cd7 8.Cbd2 O-O 9.Cc4 f6 10.Ch4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 * C85 "Española: Cerrada, Intercambio, 7.d3 Cd7 8.Cbd2 O-O 9.Cc4 f6 10.Ch4 Cc5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 Nc5 * C85 "Española: Cerrada, Intercambio, 7.d3 Cd7 8.Cbd2 O-O 9.Cc4 f6 10.Ch4 Cc5 11.Cf5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Bxc6 dxc6 7.d3 Nd7 8.Nbd2 O-O 9.Nc4 f6 10.Nh4 Nc5 11.Nf5 * C86 "Española: Ataque Worrall" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 * C86 "Española: Ataque Worrall, 6...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 d6 * C86 "Española: Ataque Worrall, 6...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 * C86 "Española: Ataque Worrall, 6...b5 7.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 * C86 "Española: Ataque Worrall, 7...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 d6 * C86 "Española: Ataque Worrall, 7...d6 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 d6 8.c3 * C86 "Española: Ataque Worrall, 7...O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O * C86 "Española: Ataque Worrall, 7...O-O 8.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.a4 * C86 "Española: Ataque Worrall, 7...O-O 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 * C86 "Española: Ataque Worrall, 7...O-O 8.c3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d6 * C86 "Española: Ataque Worrall, 7...O-O 8.c3 d6 9.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d6 9.d4 * C86 "Española: Ataque Worrall, 7...O-O 8.c3 d6 9.Td1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d6 9.Rd1 * C86 "Española: Ataque Worrall, 7...O-O 8.c3 d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 * C86 "Española: Ataque Worrall, 7...O-O 8.c3 d5 9.exd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 9.exd5 * C86 "Española: Ataque Worrall, 7...O-O 8.c3 d5 9.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 9.d3 * C86 "Española: Ataque Worrall, 7...O-O 8.c3 d5 9.d3 Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Qe2 b5 7.Bb3 O-O 8.c3 d5 9.d3 Bb7 * C87 "Española: Cerrada, 6.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 * C87 "Española: Cerrada, Variante Averbakh (Rusa)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 * C87 "Española: Cerrada, Averbakh, 7.Axc6+" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ * C87 "Española: Cerrada, Averbakh, 7.Axc6+ bxc6 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ bxc6 8.d4 * C87 "Española: Cerrada, Averbakh, 7.Axc6+ bxc6 8.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ bxc6 8.d4 exd4 * C87 "Española: Cerrada, Averbakh, 7.Axc6+ bxc6 8.d4 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.Bxc6+ bxc6 8.d4 exd4 9.Nxd4 * C87 "Española: Cerrada, Averbakh, 7.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 * C87 "Española: Cerrada, Averbakh, 7.c3 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 Bg4 * C87 "Española: Cerrada, Averbakh, 7.c3 Ag4 8.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 Bg4 8.h3 * C87 "Española: Cerrada, Averbakh, 7.c3 Ag4 8.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 Bg4 8.d3 * C87 "Española: Cerrada, Averbakh, 7.c3 O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O * C87 "Española: Cerrada, Averbakh, 7.c3 O-O 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 * C87 "Española: Cerrada, Averbakh, 7.c3 O-O 8.d4 Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 Bd7 * C87 "Española: Cerrada, Averbakh, 7.c3 O-O 8.d4 Ad7 9.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 Bd7 9.Nbd2 * C87 "Española: Cerrada, Averbakh, 7.c3 O-O 8.d4 Ad7 9.Cbd2 Te8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.d4 Bd7 9.Nbd2 Re8 * C87 "Española: Cerrada, Averbakh, 7.c3 O-O 8.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.h3 * C87 "Española: Cerrada, Averbakh, 7.c3 O-O 8.h3 Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 d6 7.c3 O-O 8.h3 Bd7 * C88 "Española: Cerrada, 6...b5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 * C88 "Española: Cerrada, 6...b5 7.Ab3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 * C88 "Española: Cerrada, Contrataque Trajkovic" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 Bb7 * C88 "Española: Closed 7...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 * C88 "Española: Cerrada, 7...d6 8.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.d4 * C88 "Española: Cerrada, Celada del Arca de Noé" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.d4 Nxd4 9.Nxd4 exd4 10.Qxd4 c5 * C88 "Española: Closed 7...d6 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 * C88 "Española: Closed 7...d6 8.c3 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Bg4 * C88 "Española: Closed 7...d6 8.c3 Ca5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Na5 * C88 "Española: Cerrada, Variante Leonhardt" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Na5 9.Bc2 c5 10.d4 Qc7 11.h3 Nc6 12.d5 Nb8 13.Nbd2 g5 * C88 "Española: Cerrada, Variante Balla" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 Na5 9.Bc2 c5 10.d4 Qc7 11.a4 * C88 "Española: Cerrada, 7...O-O" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O * C88 "Española: Cerrada, 8.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.d3 * C88 "Española: Cerrada, 8.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.d3 d6 * C88 "Española: Cerrada, 8.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.h3 * C88 "Española: Cerrada, 8.h3 Ab7 9.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.h3 Bb7 9.d3 d6 * C88 "Española: Cerrada, Anti-Marshall 8.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 * C88 "Española: Cerrada, Anti-Marshall 8.a4 b4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 b4 * C88 "Española: Cerrada, Anti-Marshall 8.a4 Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 * C88 "Española: Cerrada, Anti-Marshall 8.a4 Ab7 9.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 * C88 "Española: Cerrada, Anti-Marshall 8.a4 Ab7 9.d3 d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 d6 * C88 "Española: Cerrada, Anti-Marshall 8.a4 Ab7 9.d3 d6 10.Cc3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 d6 10.Nc3 * C88 "Española: Cerrada, Anti-Marshall 8.a4 Ab7 9.d3 d6 10.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.a4 Bb7 9.d3 d6 10.c3 * C88 "Española: Cerrada, 8.c3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 * C89 "Española: Contrataque Marshall" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 * C89 "Española: Marshall, 9.exd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 * C89 "Española: Marshall, Variante Herman Steiner" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 e4 * C89 "Española: Marshall, 9.exd5 Cxd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 * C89 "Española: Marshall, 9.exd5 Cxd5 10.Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 * C89 "Española: Marshall, 9.exd5 Cxd5 10.Cxe5 Cxe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 * C89 "Española: Marshall, 11.Txe5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 * C89 "Española: Marshall, 11.Txe5 Cf6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 Nf6 * C89 "Española: Marshall, 11.Txe5 c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 * C89 "Española: Marshall, 12.Axd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.Bxd5 * C89 "Española: Marshall, Variante Kevitz" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.Bxd5 cxd5 13.d4 Bd6 14.Re3 * C89 "Española: Marshall, 12.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d3 * C89 "Española: Marshall, 12.d3 Ad6 13.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d3 Bd6 13.Re1 * C89 "Española: Marshall, 12.d3 Ad6 13.Te1 Dh4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d3 Bd6 13.Re1 Qh4 * C89 "Española: Marshall, Línea Principal (12.d4)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 * C89 "Española: Marshall, Línea Principal (12.d4 Ad6)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 * C89 "Española: Marshall, Línea Principal, 13.Te2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re2 * C89 "Española: Marshall, Línea Principal, 13.Te1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 * C89 "Española: Marshall, Línea Principal, 13.Te1 Dh4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 * C89 "Española: Marshall, Línea Principal, 13.Te1 Dh4 14.g3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 * C89 "Española: Marshall, Línea Principal, 14.g3 Dh3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 * C89 "Española: Marshall, Línea Principal, 15.Te4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Re4 * C89 "Española: Marshall, Línea Principal, 15.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 * C89 "Española: Marshall, Línea Principal, 15.Ae3 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 * C89 "Española: Marshall, Línea Principal, 15.Ae3 Ag4 16.Dd3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 * C89 "Española: Marshall, Línea Principal, 15.Ae3 Ag4 16.Dd3 Tae8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 * C89 "Española: Marshall, Línea Principal, 16.Dd3 Tae8 17.Cd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 * C89 "Española: Marshall, Línea Principal, Variante del Empuje del Peón" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 f5 * C89 "Española: Marshall, Línea Principal, Variante Clásica" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 * C89 "Española: Marshall, Línea Principal, Clásica, 18.c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.c4 * C89 "Española: Marshall, Línea Principal, Clásica, 18.Axd5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.Bxd5 * C89 "Española: Marshall, Línea Principal, Clásica, 18.Df1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.Qf1 * C89 "Española: Marshall, Línea Principal, Clásica, 18.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.a4 * C89 "Española: Marshall, Línea Principal, Clásica, Variante Spassky" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.a4 Qh5 * C89 "Española: Marshall, Línea Principal, Clásica, 18.a4 f5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d5 9.exd5 Nxd5 10.Nxe5 Nxe5 11.Rxe5 c6 12.d4 Bd6 13.Re1 Qh4 14.g3 Qh3 15.Be3 Bg4 16.Qd3 Rae8 17.Nd2 Re6 18.a4 f5 * C90 "Española: Cerrada, 8...d6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 * C90 "Española: Cerrada, Variante Lutikov" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.Bc2 * C90 "Española: Cerrada, Variante Suetin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.a3 * C90 "Española: Cerrada, 8...d6 9.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.a4 * C90 "Española: Cerrada, 8...d6 9.a4 Ag4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.a4 Bg4 * C90 "Española: Cerrada, Variante Pilnik" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 * C90 "Española: Cerrada, Pilnik, 9...h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 h6 * C90 "Española: Cerrada, Pilnik, 9...Ca5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 * C90 "Española: Cerrada, Pilnik, 9...Ca5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 * C90 "Española: Cerrada, Pilnik, 9...Ca5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 * C90 "Española: Cerrada, Pilnik, 11.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 * C90 "Española: Cerrada, Pilnik, 11.Cbd2 Dc7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Qc7 * C90 "Española: Cerrada, Pilnik, 11.Cbd2 Cc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Nc6 * C90 "Española: Cerrada, Pilnik, 11.Cbd2 Te8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 * C90 "Española: Cerrada, Pilnik, 12.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 * C90 "Española: Cerrada, Pilnik, 12.Cf1 Cc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 Nc6 * C90 "Española: Cerrada, Pilnik, 12.Cf1 Af8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 Bf8 * C90 "Española: Cerrada, Pilnik, 12.Cf1 h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d3 Na5 10.Bc2 c5 11.Nbd2 Re8 12.Nf1 h6 * C91 "Española: Cerrada, 9.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 * C91 "Española: Cerrada, Variante Bogoljubow" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 * C91 "Española: Cerrada, Bogoljubow, 10.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.Be3 * C91 "Española: Cerrada, Bogoljubow, 10.Ae3 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.Be3 exd4 * C91 "Española: Cerrada, Bogoljubow, 10.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 * C91 "Española: Cerrada, Bogoljubow, 10.d5 Ca5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 * C91 "Española: Cerrada, Bogoljubow, 10.d5 Ca5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 * C91 "Española: Cerrada, Bogoljubow, 10.d5 Ca5 11.Ac2 Dc8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 Qc8 * C91 "Española: Cerrada, Bogoljubow, 10.d5 Ca5 11.Ac2 c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 c6 * C91 "Española: Cerrada, Bogoljubow, 10.d5 Ca5 11.Ac2 c6 12.h3 Ac8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.d4 Bg4 10.d5 Na5 11.Bc2 c6 12.h3 Bc8 * C92 "Española: Cerrada, 9.h3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 * C92 "Española: Cerrada, Variante Keres" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 a5 * C92 "Española: Cerrada, Variante Kholmov" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Be6 * C92 "Española: Cerrada, Kholmov, 11.Dxb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Be6 10.d4 Bxb3 11.Qxb3 * C92 "Española: Cerrada, Variante Karpov" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 * C92 "Española: Cerrada, Variante Karpov, 10.d4 Af6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 10.d4 Bf6 * C92 "Española: Cerrada, Variante Karpov, 10.d4 Af6 11.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 10.d4 Bf6 11.a4 * C92 "Española: Cerrada, Variante Karpov, 10.d4 Af6 11.a4 Ab7 12.Ca3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nd7 10.d4 Bf6 11.a4 Bb7 12.Na3 * C92 "Española: Cerrada, Variante Zaitsev (Flohr)" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 * C92 "Española: Cerrada, Zaitsev, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 * C92 "Española: Cerrada, Zaitsev, 10.d4 Te8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 * C92 "Española: Cerrada, Zaitsev, 11.Cg5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Ng5 * C92 "Española: Cerrada, Zaitsev, 11.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 * C92 "Española: Cerrada, Zaitsev, 11.Cbd2 Af8 12.d5 Cb8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.d5 Nb8 * C92 "Española: Cerrada, Zaitsev, 12.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.Bc2 * C92 "Española: Cerrada, Zaitsev, 12.a3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a3 * C92 "Española: Cerrada, Zaitsev, 12.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 * C92 "Española: Cerrada, Zaitsev, 12.a4 h6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 * C92 "Española: Cerrada, Zaitsev, 12.a4 h6 13.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 * C92 "Española: Cerrada, Zaitsev, 12.a4 h6 13.Ac2 exd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 exd4 * C92 "Española: Cerrada, Zaitsev, 12.a4 h6 13.Ac2 exd4 14.cxd4 Cb4 15.Ab1 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 exd4 14.cxd4 Nb4 15.Bb1 c5 * C93 "Española: Cerrada, Defensa Smyslov" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 * C93 "Española: Cerrada, Smyslov, 10.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d3 * C93 "Española: Cerrada, Smyslov, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 * C93 "Española: Cerrada, Smyslov, 10.d4 Te8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 * C93 "Española: Cerrada, Smyslov, 10.d4 Te8 11.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.a4 * C93 "Española: Cerrada, Smyslov, 10.d4 Te8 11.Ae3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Be3 * C93 "Española: Cerrada, Smyslov, 10.d4 Te8 11.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 * C93 "Española: Cerrada, Smyslov, 10.d4 Te8 11.Cbd2 Af8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 * C93 "Española: Cerrada, Smyslov, 12.a3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.a3 * C93 "Española: Cerrada, Smyslov, 12.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Bc2 * C93 "Española: Cerrada, Smyslov, 12.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 * C93 "Española: Cerrada, Smyslov, 12.Cf1 Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bb7 * C93 "Española: Cerrada, Smyslov, 12.Cf1 Ab7 13.Cg3 Ca5 14.Ac2 Cc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bb7 13.Ng3 Na5 14.Bc2 Nc4 * C93 "Española: Cerrada, Smyslov, 12.Cf1 Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bd7 * C93 "Española: Cerrada, Smyslov, 12.Cf1 Ad7 13.Cg3 Ca5 14.Ac2 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 h6 10.d4 Re8 11.Nbd2 Bf8 12.Nf1 Bd7 13.Ng3 Na5 14.Bc2 c5 * C94 "Española: Cerrada, Defensa Breyer" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 * C94 "Española: Cerrada, Breyer, Variante Matulovic" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.a4 * C94 "Española: Cerrada, Breyer, 10.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 * C94 "Española: Cerrada, Breyer, 10.d3 Cbd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 Nbd7 * C94 "Española: Cerrada, Breyer, 10.d3 Cbd7 11.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 Nbd7 11.Nbd2 * C94 "Española: Cerrada, Breyer, 10.d3 Cbd7 11.Cbd2 Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d3 Nbd7 11.Nbd2 Bb7 * C95 "Española: Cerrada, Breyer, 10.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 * C95 "Española: Cerrada, Breyer, 10.d4 Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Bb7 * C95 "Española: Cerrada, Breyer, 10.d4 Cbd7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 * C95 "Española: Cerrada, Breyer, Variante Simagin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nh4 * C95 "Española: Cerrada, Breyer, 10.d4 Cbd7 11.Ag5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Bg5 * C95 "Española: Cerrada, Breyer, Variante Arseniev" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.c4 * C95 "Española: Cerrada, Breyer, Arseniev, 11...c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.c4 c6 * C95 "Española: Cerrada, Breyer, 10.d4 Cbd7 11.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 * C95 "Española: Cerrada, Breyer, 10.d4 Cbd7 11.Cbd2 Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 * C95 "Española: Cerrada, Breyer, 10.d4 Cbd7 11.Cbd2 Ab7 12.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.a4 * C95 "Española: Cerrada, Breyer, 10.d4 Cbd7 11.Cbd2 Ab7 12.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 * C95 "Española: Cerrada, Breyer, Variante Gligoric" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 c5 * C95 "Española: Cerrada, Breyer, Línea Principal" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 * C95 "Española: Cerrada, Breyer, Línea Principal, 13.b4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.b4 * C95 "Española: Cerrada, Breyer, Línea Principal, 13.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.a4 * C95 "Española: Cerrada, Breyer, Línea Principal, 13.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 * C95 "Española: Cerrada, Breyer, Línea Principal, 13.Cf1 Af8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 * C95 "Española: Cerrada, Breyer, Línea Principal, 13.Cf1 Af8 14.Cg3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 * C95 "Española: Cerrada, Breyer, Línea Principal, 14.Cg3 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 c5 * C95 "Española: Cerrada, Breyer, Línea Principal, 14.Cg3 g6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 * C95 "Española: Cerrada, Breyer, Línea Principal, 14.Cg3 g6 15.b3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.b3 * C95 "Española: Cerrada, Breyer, Línea Principal, 14.Cg3 g6 15.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.a4 * C95 "Española: Cerrada, Breyer, Línea Principal, 15.a4 c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.a4 c5 * C95 "Española: Cerrada, Breyer, Línea Principal, 15.a4 c5 16.d5 c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Nb8 10.d4 Nbd7 11.Nbd2 Bb7 12.Bc2 Re8 13.Nf1 Bf8 14.Ng3 g6 15.a4 c5 * C96 "Española: Cerrada, Chigorin" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 * C96 "Española: Cerrada, Chigorin, 10.Ac2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 * C96 "Española: Cerrada, Chigorin, 10...c6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c6 * C96 "Española: Cerrada, Chigorin, Variante Rossolimo" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c6 11.d4 Qc7 * C96 "Española: Cerrada, Chigorin, 10...Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 Bb7 * C96 "Española: Cerrada, Chigorin, 10...c5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 * C96 "Española: Cerrada, Chigorin, 11.d3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d3 * C96 "Española: Cerrada, Chigorin, 11.d3 Cc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d3 Nc6 * C96 "Española: Cerrada, Chigorin, 11.d4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 * C96 "Española: Cerrada, Chigorin, 11.d4 cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 cxd4 * C96 "Española: Cerrada, Chigorin, 11.d4 Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Bb7 * C96 "Española: Cerrada, Chigorin, 11.d4 Ab7 12.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Bb7 12.Nbd2 * C96 "Española: Cerrada, Chigorin, Variante Borisenko" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Nc6 * C96 "Española: Cerrada, Chigorin, Variante Keres" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Nd7 * C96 "Española: Cerrada, Chigorin, Keres, 11.Cbd2 cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Nd7 12.Nbd2 cxd4 * C97 "Española: Cerrada, Chigorin, 11.d4 Dc7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 * C97 "Española: Cerrada, Chigorin, 11.d4 Dc7 12.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.d5 * C97 "Española: Cerrada, Chigorin, 11.d4 Dc7 12.d5 c4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.d5 c4 * C97 "Española: Cerrada, Chigorin, 11.d4 Dc7 12.Cbd2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 * C97 "Española: Cerrada, Chigorin, 12...Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bb7 * C97 "Española: Cerrada, Chigorin, 12...Te8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Re8 * C97 "Española: Cerrada, Chigorin, 12...Rd8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Rd8 * C97 "Española: Cerrada, Chigorin, 12...Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 * C97 "Española: Cerrada, Chigorin, 12...Ad7 13.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 * C97 "Española: Cerrada, Chigorin, 12...Ad7 13.Cf1 Cc4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 Nc4 * C97 "Española: Cerrada, Chigorin, 12...Ad7 13.Cf1 Tfe8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 Rfe8 * C97 "Española: Cerrada, Chigorin, Sistema Yugoslavo" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Bd7 13.Nf1 Rfe8 14.Ne3 g6 * C98 "Española: Cerrada, Chigorin, 12...Cc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 * C98 "Española: Cerrada, Chigorin, Ataque Rauzer" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 * C98 "Española: Cerrada, Chigorin, Ataque Rauzer" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 dxc5 * C98 "Española: Cerrada, Chigorin, Rauzer, 14.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 dxc5 14.Nf1 * C98 "Española: Cerrada, Chigorin, Rauzer, 14.Cf1 Ae6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.dxc5 dxc5 14.Nf1 Be6 * C98 "Española: Cerrada, Chigorin, 12...Cc6 13.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 * C98 "Española: Cerrada, Chigorin, 12...Cc6 13.d5 Ca5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Na5 * C98 "Española: Cerrada, Chigorin, 12...Cc6 13.d5 Cd8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Nd8 * C98 "Española: Cerrada, Chigorin, 12...Cc6 13.d5 Cd8 14.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Nd8 14.Nf1 * C98 "Española: Cerrada, Chigorin, 12...Cc6 13.d5 Cd8 14.a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 Nc6 13.d5 Nd8 14.a4 * C99 "Española: Cerrada, Chigorin, 12...cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 * C99 "Española: Cerrada, Chigorin, 12...cxd4 13.cxd4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 * C99 "Española: Cerrada, Chigorin, 13...Rd8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Rd8 * C99 "Española: Cerrada, Chigorin, 13...Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bd7 * C99 "Española: Cerrada, Chigorin, 13...Ad7 14.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bd7 14.Nf1 * C99 "Española: Cerrada, Chigorin, 13...Ad7 14.Cf1 Tac8 15.Ne3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bd7 14.Nf1 Rac8 15.Ne3 * C99 "Española: Cerrada, Chigorin, 13...Ab7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 * C99 "Española: Cerrada, Chigorin, 13...Ab7 14.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.Nf1 * C99 "Española: Cerrada, Chigorin, 13...Ab7 14.Cf1 Tac8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.Nf1 Rac8 * C99 "Española: Cerrada, Chigorin, 13...Ab7 14.Cf1 Tac8 15.Re2" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.Nf1 Rac8 15.Re2 * C99 "Española: Cerrada, Chigorin, 13...Ab7 14.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.d5 * C99 "Española: Cerrada, Chigorin, 13...Ab7 14.d5 Tac8" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Bb7 14.d5 Rac8 * C99 "Española: Cerrada, Chigorin, 13...Cc6" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.a3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.a3 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.Cf1" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nf1 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.d5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.d5 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.Cb3" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.Cb3 a5" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.Cb3 a5 15.Ae3 a4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 15.Be3 a4 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.Cb3 a5 15.Ae3 a4 16.Cbd2 Cb4" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 15.Be3 a4 * C99 "Española: Cerrada, Chigorin, 13...Cc6 14.Cb3 a5 15.Ae3 a4 16.Cbd2 Ad7" 1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 O-O 8.c3 d6 9.h3 Na5 10.Bc2 c5 11.d4 Qc7 12.Nbd2 cxd4 13.cxd4 Nc6 14.Nb3 a5 15.Be3 a4 * D00 "Partida de Peón Dama" 1.d4 d5 * D00 "Peón Dama: 2.f4" 1.d4 d5 2.f4 * D00 "Peón Dama: 2.g3" 1.d4 d5 2.g3 * D00 "Peón Dama: 2.c3" 1.d4 d5 2.c3 * D00 "Peón Dama: 2.c3 Cf6" 1.d4 d5 2.c3 Nf6 * D00 "Peón Dama: 2.c3 Cf6 3.Af4" 1.d4 d5 2.c3 Nf6 3.Bf4 * D00 "Peón Dama: 2.c3 Cf6 3.Ag5" 1.d4 d5 2.c3 Nf6 3.Bg5 * D00 "Peón Dama: Variante Mason" 1.d4 d5 2.Bf4 * D00 "Peón Dama, Mason, Contragambito Steinitz" 1.d4 d5 2.Bf4 c5 * D00 "Peón Dama: 2.e3" 1.d4 d5 2.e3 * D00 "Peón Dama: 2.e3 Cf6" 1.d4 d5 2.e3 Nf6 * D00 "Peón Dama: Ataque Muro de Piedra" 1.d4 d5 2.e3 Nf6 3.Bd3 * D00 "Ataque Hodgson (Trompowsky vs.1...d5)" 1.d4 d5 2.Bg5 * D00 "Ataque Hodgson: Variante Welling" 1.d4 d5 2.Bg5 Bg4 * D00 "Ataque Hodgson: 2...f6" 1.d4 d5 2.Bg5 f6 * D00 "Ataque Hodgson: 2...g6" 1.d4 d5 2.Bg5 g6 * D00 "Ataque Hodgson: 2...c6" 1.d4 d5 2.Bg5 c6 * D00 "Ataque Hodgson, 2...h6" 1.d4 d5 2.Bg5 h6 * D00 "Ataque Hodgson: 2...h6 3.Ah4 c6" 1.d4 d5 2.Bg5 h6 3.Bh4 c6 * D00 "Ataque Hodgson: 2...h6 3.Ah4 c6 4.e3" 1.d4 d5 2.Bg5 h6 3.Bh4 c6 4.e3 * D00 "Ataque Hodgson: 2...h6 3.Ah4 c6 4.e3 Db6" 1.d4 d5 2.Bg5 h6 3.Bh4 c6 4.e3 Qb6 * D00 "Trompowsky: 2...d5" 1.d4 Nf6 2.Bg5 d5 * D00 "Trompowsky: 2...d5 3.Cd2" 1.d4 Nf6 2.Bg5 d5 3.Nd2 * D00 "Trompowsky: 2...d5 3.e3" 1.d4 Nf6 2.Bg5 d5 3.e3 * D00 "Trompowsky: 2...d5 3.e3 e6" 1.d4 Nf6 2.Bg5 d5 3.e3 e6 * D00 "Trompowsky: 2...d5 3.Axf6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 * D00 "Trompowsky: 2...d5 3.Axf6 gxf6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 gxf6 * D00 "Trompowsky: 2...d5 3.Axf6 gxf6 4.e3" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 gxf6 4.e3 * D00 "Trompowsky: 2...d5 3.Axf6 gxf6 4.e3 c5" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 gxf6 4.e3 c5 * D00 "Trompowsky: 2...d5 3.Axf6 exf6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 * D00 "Trompowsky: 2...d5 3.Axf6 exf6 4.e3" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 * D00 "Trompowsky: 2...d5 3.Axf6 exf6 4.e3 Af5" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 Bf5 * D00 "Trompowsky: 2...d5 3.Axf6 exf6 4.e3 c6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 c6 * D00 "Trompowsky: 2...d5 3.Axf6 exf6 4.e3 Ae6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 Be6 * D00 "Trompowsky: 2...d5 3.Axf6 exf6 4.e3 Ad6" 1.d4 Nf6 2.Bg5 d5 3.Bxf6 exf6 4.e3 Bd6 * D00 "Gambito Blackmar-Diemer (GBD): 2.e4" 1.d4 d5 2.e4 * D00 "Blackmar-Diemer: Contragambito Beyer" 1.d4 d5 2.e4 e5 * D00 "Gambito Blackmar-Diemer (GBD): 2.e4 dxe4" 1.d4 d5 2.e4 dxe4 * D00 "Blackmar-Diemer: Gambito Gedult" 1.d4 d5 2.e4 dxe4 3.f3 * D00 "Blackmar-Diemer: Ataque Fritz" 1.d4 d5 2.e4 dxe4 3.Bc4 * D00 "Blackmar-Diemer: 2.e4 dxe4 3.Cc3" 1.d4 d5 2.e4 dxe4 3.Nc3 * D00 "Blackmar-Diemer: Defensa Grosshans" 1.d4 d5 2.e4 dxe4 3.Nc3 Bd7 * D00 "Blackmar-Diemer: Defensa Zeller" 1.d4 d5 2.e4 dxe4 3.Nc3 Bf5 * D00 "Blackmar-Diemer: Defensa Pohmlann" 1.d4 d5 2.e4 dxe4 3.Nc3 f5 * D00 "Blackmar-Diemer: Contragambito Lemberger" 1.d4 d5 2.e4 dxe4 3.Nc3 e5 * D00 "Blackmar-Diemer: Contragambito Lemberger, Ataque Rassmussen" 1.d4 d5 2.e4 dxe4 3.Nc3 e5 4.Nge2 * D00 "Blackmar-Diemer: Contragambito Lemberger, Ataque Sneider" 1.d4 d5 2.e4 dxe4 3.Nc3 e5 4.Qh5 * D00 "Peón Dama: Ataque Veresov" 1.d4 d5 2.Nc3 * D00 "Peón Dama: Ataque Veresov" 1.d4 d5 2.Nc3 Bf5 * D00 "Peón Dama: Ataque Veresov" 1.d4 d5 2.Nc3 Nf6 * D00 "Peón Dama: Veresov, 3.Af4" 1.d4 d5 2.Nc3 Nf6 3.Bf4 * D00 "Peón Dama: Veresov, 3.Cf3" 1.d4 d5 2.Nc3 Nf6 3.Nf3 * D00 "Peón Dama: Veresov, 3.Cf3 g6" 1.d4 d5 2.Nc3 Nf6 3.Nf3 g6 * D00 "Peón Dama: Anti-India de Rey" 1.d4 d5 2.Nc3 Nf6 3.Nf3 g6 4.Bf4 * D00 "Peón Dama: Anti-India de Rey, Línea Principal" 1.d4 d5 2.Nc3 Nf6 3.Nf3 g6 4.Bf4 Bg7 5.e3 O-O 6.Be2 * D00 "Gambito Blackmar-Diemer (GBD)" 1.d4 d5 2.Nc3 Nf6 3.e4 * D00 "Blackmar-Diemer: Gambito Hubsch" 1.d4 d5 2.Nc3 Nf6 3.e4 Nxe4 * D00 "Blackmar-Diemer: 3...dxe4" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 * D00 "Blackmar-Diemer: Ataque von Popiel" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.Bg5 * D00 "Blackmar-Diemer: 4.f3" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 * D00 "Blackmar-Diemer: Defensa O'Kelly" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 c6 * D00 "Blackmar-Diemer: Defensa Langeheinecke" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 e3 * D00 "Blackmar-Diemer: Contragambito Elbert" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 e5 * D00 "Blackmar-Diemer: Defensa Weinspach" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 e6 * D00 "Blackmar-Diemer: Defensa Lamb" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 Nc6 * D00 "Blackmar-Diemer: Defensa Vienna" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 Bf5 * D00 "Blackmar-Diemer: Aceptado" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 * D00 "Blackmar-Diemer: Gambito Ryder" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Qxf3 * D00 "Blackmar-Diemer: 4.f3 exf3 5.Cxf3" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 * D00 "Blackmar-Diemer: Defensa Gunderam" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 Bf5 * D00 "Blackmar-Diemer: Defensa Tartakower" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 Bg4 * D00 "Blackmar-Diemer: Defensa Ziegler" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 c6 * D00 "Blackmar-Diemer: Defensa Euwe" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 e6 * D00 "Blackmar-Diemer: Defensa Bogoljubow" 1.d4 d5 2.Nc3 Nf6 3.e4 dxe4 4.f3 exf3 5.Nxf3 g6 * D01 "Ataque Richter-Veresov" 1.d4 d5 2.Nc3 Nf6 3.Bg5 * D01 "Richter-Veresov: 3...Ce4" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Ne4 * D01 "Richter-Veresov: 3...e6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 e6 * D01 "Richter-Veresov: 3...h6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 h6 * D01 "Richter-Veresov: 3...g6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 g6 * D01 "Richter-Veresov: 3...c6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 c6 * D01 "Richter-Veresov: 3...c5" 1.d4 d5 2.Nc3 Nf6 3.Bg5 c5 * D01 "Richter-Veresov: 3...Af5" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 * D01 "Richter-Veresov: 3...Af5 4.f3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 4.f3 * D01 "Richter-Veresov: 3...Af5 4.Cf3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 4.Nf3 * D01 "Richter-Veresov: 3...Af5 4.Axf6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Bf5 4.Bxf6 * D01 "Richter-Veresov: 3...Cbd7" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 * D01 "Richter-Veresov: 3...Cbd7 4.f3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.f3 * D01 "Richter-Veresov: 3...Cbd7 4.Cf3" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.Nf3 * D01 "Richter-Veresov: 3...Cbd7 4.Cf3 h6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.Nf3 h6 * D01 "Richter-Veresov: 3...Cbd7 4.Cf3 g6" 1.d4 d5 2.Nc3 Nf6 3.Bg5 Nbd7 4.Nf3 g6 * D02 "Peón Dama: 2.Cf3" 1.d4 d5 2.Nf3 * D02 "Peón Dama: 2.Cf3 g6" 1.d4 d5 2.Nf3 g6 * D02 "Peón Dama: 2.Cf3 Ag4" 1.d4 d5 2.Nf3 Bg4 * D02 "Peón Dama: 2.Cf3 c6" 1.d4 d5 2.Nf3 c6 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 c6 3.Bf4 * D02 "Peón Dama: Londres, Variante Alapin" 1.d4 d5 2.Nf3 c6 3.Bf4 Qb6 * D02 "Peón Dama: 2.Cf3 Af5" 1.d4 d5 2.Nf3 Bf5 * D02 "Peón Dama: 2.Cf3 Af5 3.e3" 1.d4 d5 2.Nf3 Bf5 3.e3 * D02 "Peón Dama: 2.Cf3 Af5 3.e3 c6" 1.d4 d5 2.Nf3 Bf5 3.e3 c6 * D02 "Peón Dama: 2.Cf3 Af5 3.Af4" 1.d4 d5 2.Nf3 Bf5 3.Bf4 * D02 "Peón Dama: 2.Cf3 Af5 3.Af4 c6" 1.d4 d5 2.Nf3 Bf5 3.Bf4 c6 * D02 "Peón Dama: 2.Cf3 Af5 3.Af4 e6" 1.d4 d5 2.Nf3 Bf5 3.Bf4 e6 * D02 "Peón Dama: 2.Cf3 Cc6" 1.d4 d5 2.Nf3 Nc6 * D02 "Peón Dama: 2.Cf3 Cc6 3.Af4" 1.d4 d5 2.Nf3 Nc6 3.Bf4 * D02 "Peón Dama: 2.Cf3 Cc6 3.g3" 1.d4 d5 2.Nf3 Nc6 3.g3 * D02 "Peón Dama: 2.Cf3 Cc6 3.g3 Ag4" 1.d4 d5 2.Nf3 Nc6 3.g3 Bg4 * D02 "Peón Dama: 2.Cf3 e6" 1.d4 d5 2.Nf3 e6 * D02 "Peón Dama: 2.Cf3 e6 3.g3" 1.d4 d5 2.Nf3 e6 3.g3 * D02 "Peón Dama: 2.Cf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 * D02 "Peón Dama: 2.Cf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 4.Bg2 * D02 "Peón Dama: 2.Cf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 4.Bg2 cxd4 5.Nxd4 * D02 "Peón Dama: 2.Cf3 e6 3.g3 c5" 1.d4 d5 2.Nf3 e6 3.g3 c5 4.Bg2 cxd4 5.Nxd4 e5 * D02 "Peón Dama: Variante Krause" 1.d4 d5 2.Nf3 c5 * D02 "Peón Dama: Krause, 3.c4" 1.d4 d5 2.Nf3 c5 3.c4 * D02 "Peón Dama: Krause, Eslava Invertida" 1.d4 d5 2.Nf3 c5 3.c3 * D02 "Peón Dama: Krause, GDR Invertida" 1.d4 d5 2.Nf3 c5 3.e3 * D02 "Peón Dama: Krause, GDA Invertida" 1.d4 d5 2.Nf3 c5 3.dxc5 * D02 "Peón Dama: 2.Cf3 Cf6" 1.d4 d5 2.Nf3 Nf6 * D02 "Peón Dama: 3.c3" 1.d4 d5 2.Nf3 Nf6 3.c3 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 Nf6 3.Bf4 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 Nf6 3.Bf4 Bf5 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 Nf6 3.Bf4 e6 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 Nf6 3.Bf4 c5 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 Nf6 3.Bf4 c5 4.e3 e6 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 Nf6 3.Bf4 c5 4.e3 e6 5.c3 Nc6 * D02 "Peón Dama: Londres" 1.d4 d5 2.Nf3 Nf6 3.Bf4 e6 4.e3 c5 5.c3 Nc6 6.Bd3 Bd6 * D02 "Peón Dama: 3.g3" 1.d4 d5 2.Nf3 Nf6 3.g3 * D02 "Peón Dama: 3.g3 c6" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 * D02 "Peón Dama: 3.g3 c6" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 * D02 "Peón Dama: 3.g3 c6 4.Ag2 Ag4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 * D02 "Peón Dama: 3.g3 c6 4.Ag2 Ag4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 5.O-O * D02 "Peón Dama: 3.g3 c6 4.Ag2 Ag4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 5.O-O Nbd7 * D02 "Peón Dama: 3.g3 c6 4.Ag2 Ag4" 1.d4 d5 2.Nf3 Nf6 3.g3 c6 4.Bg2 Bg4 5.O-O Nbd7 6.Nbd2 e6 * D02 "Peón Dama: 3.g3 g6" 1.d4 d5 2.Nf3 Nf6 3.g3 g6 * D02 "Peón Dama: 3.g3 g6" 1.d4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 * D02 "Peón Dama: 3.g3 g6" 1.d4 d5 2.Nf3 Nf6 3.g3 g6 4.Bg2 Bg7 5.O-O O-O * A08 "Reti: AIR, 2...c5 3.Ag2 Cc6 4.d4" 1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.d4 * D03 "Ataque Torre (Tartakower)" 1.d4 d5 2.Nf3 Nf6 3.Bg5 * D03 "Ataque Torre: 3...Ce4" 1.d4 d5 2.Nf3 Nf6 3.Bg5 Ne4 * D03 "Ataque Torre: 3...Ce4 4.Af4" 1.d4 d5 2.Nf3 Nf6 3.Bg5 Ne4 4.Bf4 * D03 "Ataque Torre: 3...e6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 * D03 "Ataque Torre: 3...e6 4.e3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 * D03 "Ataque Torre: 3...e6 4.e3 Cbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 Nbd7 * D03 "Ataque Torre: 3...e6 4.e3 Cbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 Nbd7 5.Nbd2 Be7 * D03 "Ataque Torre: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 * D03 "Ataque Torre: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 5.Nbd2 Nbd7 * D03 "Ataque Torre: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 5.Nbd2 Be7 * D03 "Ataque Torre: 3...e6 4.e3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 e6 4.e3 c5 5.Nbd2 Be7 6.c3 Nbd7 * D03 "Ataque Torre: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 * D03 "Ataque Torre: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.c3 Bg7 * D03 "Ataque Torre: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 * D03 "Ataque Torre: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 * D03 "Ataque Torre: 3...g6 4.e3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 * D03 "Ataque Torre: 3...g6 4.e3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 5.Nbd2 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 5.Nbd2 O-O * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O 6.c3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.c3 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O 6.c3 Cbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.c3 Nbd7 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O 6.c3 Cbd7 7.Ae2" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.c3 Nbd7 7.Be2 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O 6.Ad3" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.e3 Bg7 5.Nbd2 O-O 6.Bd3 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O 6.Ad3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.Bd3 c5 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O 6.Ad3 c5" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.Bd3 c5 7.c3 * D03 "Ataque Torre: 3...g6 4.e3 Ag7 5.Cbd2 O-O 6.Ad3 c5 7.c3 Cbd7" 1.d4 d5 2.Nf3 Nf6 3.Bg5 g6 4.Nbd2 Bg7 5.e3 O-O 6.Bd3 c5 7.c3 Nbd7 * D04 "Peón Dama: Colle" 1.d4 d5 2.Nf3 Nf6 3.e3 * D04 "Colle: 3...Ag4" 1.d4 d5 2.Nf3 Nf6 3.e3 Bg4 * D04 "Colle: 3...Af5" 1.d4 d5 2.Nf3 Nf6 3.e3 Bf5 * D04 "Colle: 3...Af5, Variante Alekhine" 1.d4 d5 2.Nf3 Nf6 3.e3 Bf5 4.Bd3 e6 * D04 "Colle: 3...g6" 1.d4 d5 2.Nf3 Nf6 3.e3 g6 * D04 "Colle: 3...c6" 1.d4 d5 2.Nf3 Nf6 3.e3 c6 * D04 "Colle: 3...c5" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 * D04 "Colle: 3...c5 4.c3" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 4.c3 * D04 "Colle: 3...c5 4.c3 Cc6" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 4.c3 Nc6 * D04 "Colle: 3...c5 4.c3 Cbd7" 1.d4 d5 2.Nf3 Nf6 3.e3 c5 4.c3 Nbd7 * D05 "Colle: 3...e6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 * D05 "Colle: 3...e6 4.Cbd2" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Nbd2 * D05 "Colle: Variante Zukertort" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Nbd2 c5 5.b3 * D05 "Colle: 3...e6 4.Ad3" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 * D05 "Colle: 3...e6 4.Ad3 c5" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 * D05 "Colle: Ataque Rubinstein" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.b3 * D05 "Colle: Ataque Rubinstein, 5...Cc6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.b3 Nc6 * D05 "Colle: 5.c3" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 * D05 "Colle: 5.c3 Cbd7" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nbd7 * D05 "Colle: 5.c3 Cc6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 * D05 "Colle: 5.c3 Cc6 6.Cbd2" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 * D05 "Colle: 5.c3 Cc6 6.Cbd2 Ad6" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 Bd6 * D05 "Colle: 5.c3 Cc6 6.Cbd2 Ad6 7.O-O O-O" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 Bd6 7.O-O O-O * D05 "Colle: 5.c3 Cc6 6.Cbd2 Ad6 7.O-O O-O 8.dxc5 Axc5" 1.d4 d5 2.Nf3 Nf6 3.e3 e6 4.Bd3 c5 5.c3 Nc6 6.Nbd2 Bd6 7.O-O O-O 8.dxc5 Bxc5 * D06 "Gambito de Dama" 1.d4 d5 2.c4 * D06 "GDR: Defensa Austríaca" 1.d4 d5 2.c4 c5 * D06 "GDR: Austríaca, Variante Rubinstein" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 * D06 "GDR: Austríaca, Rubinstein, 4.dxc5" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 4.dxc5 * D06 "GDR: Austríaca, Rubinstein, 4.Cf3" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 4.Nf3 * D06 "GDR: Austríaca, Rubinstein, 4.Cf3 cxd4" 1.d4 d5 2.c4 c5 3.cxd5 Nf6 4.Nf3 cxd4 * D06 "GDR: Defensa Marshall" 1.d4 d5 2.c4 Nf6 * D06 "GDR: Defensa Marshall, 3.Cc3" 1.d4 d5 2.c4 Nf6 3.Nc3 * D06 "GDR: Defensa Marshall, 3.Cf3" 1.d4 d5 2.c4 Nf6 3.Nf3 * D06 "GDR: Defensa Marshall, 3.cxd5" 1.d4 d5 2.c4 Nf6 3.cxd5 * D06 "GDR: Defensa Marshall, 3.cxd5 Cxd5" 1.d4 d5 2.c4 Nf6 3.cxd5 Nxd5 * D06 "GDR: Defensa Marshall, 3.cxd5 Cxd5 4.Cf3" 1.d4 d5 2.c4 Nf6 3.cxd5 Nxd5 4.Nf3 * D06 "GDR: Defensa Marshall, 3.cxd5 Cxd5 4.e4" 1.d4 d5 2.c4 Nf6 3.cxd5 Nxd5 4.e4 * D06 "GDR: 2...Af5" 1.d4 d5 2.c4 Bf5 * D06 "GDR: 2...Af5 3.Db3" 1.d4 d5 2.c4 Bf5 3.Qb3 * D06 "GDR: 2...Af5 3.Cc3" 1.d4 d5 2.c4 Bf5 3.Nc3 * D06 "GDR: 2...Af5 3.Cc3 e6" 1.d4 d5 2.c4 Bf5 3.Nc3 e6 * D06 "GDR: 2...Af5 3.Cf3" 1.d4 d5 2.c4 Bf5 3.Nf3 * D06 "GDR: 2...Af5 3.Cf3 e6" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 * D06 "GDR: 2...Af5 3.Cf3 e6 4.Db3" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 4.Qb3 * D06 "GDR: 2...Af5 3.Cf3 e6 4.Cc3" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 4.Nc3 * D06 "GDR: 2...Af5 3.Cf3 e6 4.Cc3 Cf6" 1.d4 d5 2.c4 Bf5 3.Nf3 e6 4.Nc3 Nf6 * D06 "GDR: 2...Af5 3.cxd5" 1.d4 d5 2.c4 Bf5 3.cxd5 * D06 "GDR: 2...Af5 3.cxd5 Axb1 4.Txb1" 1.d4 d5 2.c4 Bf5 3.cxd5 Bxb1 4.Rxb1 * D06 "GDR: 2...Af5 3.cxd5 Axb1 4.Da4+" 1.d4 d5 2.c4 Bf5 3.cxd5 Bxb1 4.Qa4+ * D06 "GDR: 2...Af5 3.cxd5 Axb1 4.Da4+ c6 5.Txb1" 1.d4 d5 2.c4 Bf5 3.cxd5 Bxb1 4.Qa4+ c6 5.Rxb1 * D07 "GDR: Defensa Chigorin" 1.d4 d5 2.c4 Nc6 * D07 "GDR: Chigorin, 3.e3" 1.d4 d5 2.c4 Nc6 3.e3 * D07 "GDR: Chigorin, 3.cxd5" 1.d4 d5 2.c4 Nc6 3.cxd5 * D07 "GDR: Chigorin, 3.cxd5, Línea Principal" 1.d4 d5 2.c4 Nc6 3.cxd5 Qxd5 4.e3 e5 5.Nc3 Bb4 6.Bd2 Bxc3 * D07 "GDR: Chigorin, 3.cxd5, Línea Principal, 7.bxc3" 1.d4 d5 2.c4 Nc6 3.cxd5 Qxd5 4.e3 e5 5.Nc3 Bb4 6.Bd2 Bxc3 7.bxc3 * D07 "GDR: Chigorin, 3.cxd5 Línea Principal, 7.Axc3" 1.d4 d5 2.c4 Nc6 3.cxd5 Qxd5 4.e3 e5 5.Nc3 Bb4 6.Bd2 Bxc3 7.Bxc3 * D07 "GDR: Chigorin, 3.Cf3" 1.d4 d5 2.c4 Nc6 3.Nf3 * D07 "GDR: Chigorin, Gambito Lazard" 1.d4 d5 2.c4 Nc6 3.Nf3 e5 * D07 "GDR: Chigorin, 3.Cf3 Ag4" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 * D07 "GDR: Chigorin, 3.Cf3 Ag4 4.e3" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.e3 * D07 "GDR: Chigorin, 3.Cf3 Ag4 4.Cc3" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.Nc3 * D07 "GDR: Chigorin, 3.Cf3 Ag4 4.cxd5" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.cxd5 * D07 "GDR: Chigorin, 3.Cf3 Ag4 4.cxd5 Axf3 5.dxc6" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.cxd5 Bxf3 5.dxc6 * D07 "GDR: Chigorin, 3.Cf3 Ag4 4.cxd5 Axf3 5.gxf3" 1.d4 d5 2.c4 Nc6 3.Nf3 Bg4 4.cxd5 Bxf3 5.gxf3 * D07 "GDR: Chigorin, 3.Cc3" 1.d4 d5 2.c4 Nc6 3.Nc3 * D07 "GDR: Chigorin, Gambito Tartakower" 1.d4 d5 2.c4 Nc6 3.Nc3 e5 * D07 "GDR: Chigorin, 3.Cc3 Cf6" 1.d4 d5 2.c4 Nc6 3.Nc3 Nf6 * D07 "GDR: Chigorin, 3.Cc3 Cf6 4.Cf3" 1.d4 d5 2.c4 Nc6 3.Nc3 Nf6 4.Nf3 * D07 "GDR: Chigorin, 3.Cc3 Cf6 4.Cf3 Ag4" 1.d4 d5 2.c4 Nc6 3.Nc3 Nf6 4.Nf3 Bg4 * D07 "GDR: Chigorin, 3.Cc3 dxc4" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 * D07 "GDR: Chigorin, 3.Cc3 dxc4 4.d5" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.d5 * D07 "GDR: Chigorin, 3.Cc3 dxc4 4.Cf3" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.Nf3 * D07 "GDR: Chigorin, 3.Cc3 dxc4 4.Cf3 Cf6" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.Nf3 Nf6 * D07 "GDR: Chigorin, 3.Cc3 dxc4 4.Cf3 Cf6 5.e4" 1.d4 d5 2.c4 Nc6 3.Nc3 dxc4 4.Nf3 Nf6 5.e4 * D08 "GDR: Contragambito Albin" 1.d4 d5 2.c4 e5 * D08 "GDR: Albin, 3.e3" 1.d4 d5 2.c4 e5 3.e3 * D08 "GDR: Albin, 3.dxe5" 1.d4 d5 2.c4 e5 3.dxe5 * D08 "GDR: Albin, 3.dxe5 d4" 1.d4 d5 2.c4 e5 3.dxe5 d4 * D08 "GDR: Albin, Celada Lasker" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.e3 Bb4+ 5.Bd2 dxe3 * D08 "GDR: Albin, 4.e4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.e4 * D08 "GDR: Albin, 4.a3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.a3 * D08 "GDR: Albin, 4.Cf3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 * D08 "GDR: Albin, 4.Cf3 Cc6" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 * D08 "GDR: Albin, Variante Alapin" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 * D08 "GDR: Albin, Variante Janowski" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 f6 * D08 "GDR: Albin, Variante Balogh" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 Qe7 * D08 "GDR: Albin, Alapin, 5...Ag4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 Bg4 * D08 "GDR: Albin, Variante Krenosz" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.Nbd2 Bg4 6.h3 Bxf3 7.Nxf3 Bb4+ 8.Bd2 Qe7 * D08 "GDR: Albin, 4.Cf3 Cc6 5.a3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 * D08 "GDR: Albin, 4.Cf3 Cc6 5.a3 a5" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 a5 * D08 "GDR: Albin, 4.Cf3 Cc6 5.a3 Ae6" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 Be6 * D08 "GDR: Albin, 4.Cf3 Cc6 5.a3 Ag4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 Bg4 * D08 "GDR: Albin, 4.Cf3 Cc6 5.a3 Ag4 6.Cbd2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.a3 Bg4 6.Nbd2 * D09 "GDR: Albin, 5.g3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 * D09 "GDR: Albin, 5.g3 Cge7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Nge7 * D09 "GDR: Albin, 5.g3 Af5" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bf5 * D09 "GDR: Albin, 5.g3 Ag4" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bg4 * D09 "GDR: Albin, 5.g3 Ag4 6.Ag2 Dd7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bg4 6.Bg2 Qd7 * D09 "GDR: Albin, 5.g3 Ag4 6.Ag2 Dd7 7.O-O O-O-O" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Bg4 6.Bg2 Qd7 7.O-O O-O-O * D09 "GDR: Albin, 5.g3 Ae6" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 * D09 "GDR: Albin, 5.g3 Ae6 6.b3" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.b3 * D09 "GDR: Albin, 5.g3 Ae6 6.Ag2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Bg2 * D09 "GDR: Albin, 5.g3 Ae6 6.Cbd2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 * D09 "GDR: Albin, 5.g3 Ae6 6.Cbd2 Dd7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 * D09 "GDR: Albin, 5.g3 Ae6 6.Cbd2 Dd7 7.Ag2" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 * D09 "GDR: Albin, 5.g3 Ae6 6.Cbd2 Dd7 7.Ag2 O-O-O" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 O-O-O * D09 "GDR: Albin, 5.g3 Ae6 6.Cbd2 Dd7 7.Ag2 Cge7" 1.d4 d5 2.c4 e5 3.dxe5 d4 4.Nf3 Nc6 5.g3 Be6 6.Nbd2 Qd7 7.Bg2 Nge7 * D10 "Defensa Eslava" 1.d4 d5 2.c4 c6 * D10 "Gambito Diemer-Duhm (GDD) vs.Eslava/Caro-Kann" 1.d4 d5 2.c4 c6 3.e4 * D10 "Eslava: 3.g3" 1.d4 d5 2.c4 c6 3.g3 * D10 "Eslava: 3.Af4" 1.d4 d5 2.c4 c6 3.Bf4 * D10 "Eslava: Intercambio" 1.d4 d5 2.c4 c6 3.cxd5 * D10 "Eslava: Intercambio" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 * D10 "Eslava: Intercambio, 4.Af4" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Bf4 * D10 "Eslava: Intercambio, 4.Cf3" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nf3 * D10 "Eslava: Intercambio, 4.Cc3" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 * D10 "Eslava: Intercambio, 4.Cc3 Cf6" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 * D10 "Eslava: Intercambio, 4.Cc3 Cf6 5.Af4" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 * D10 "Eslava: Intercambio, 4.Cc3 Cf6 5.Af4 Cc6" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 Nc6 * D10 "Eslava: Intercambio, 4.Cc3 Cf6 5.Af4 Cc6 6.e3" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 Nc6 6.e3 * D10 "Eslava: Intercambio, 4.Cc3 Cf6 5.Af4 Cc6 6.e3 a6" 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nc3 Nf6 5.Bf4 Nc6 6.e3 a6 * D10 "Eslava: 3.e3" 1.d4 d5 2.c4 c6 3.e3 * D10 "Eslava: 3.e3 Af5" 1.d4 d5 2.c4 c6 3.e3 Bf5 * D10 "Eslava: 3.e3 Cf6" 1.d4 d5 2.c4 c6 3.e3 Nf6 * D10 "Eslava: 3.Cc3" 1.d4 d5 2.c4 c6 3.Nc3 * D10 "Eslava: Contragambito Winawer" 1.d4 d5 2.c4 c6 3.Nc3 e5 * D10 "Eslava: Contragambito Winawer, 4.cxd5" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.cxd5 * D10 "Eslava: Contragambito Winawer, 4.cxd5 cxd5 5.dxe5" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.cxd5 cxd5 5.dxe5 * D10 "Eslava: Contragambito Winawer, 4.cxd5 cxd5 5.Cf3" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.cxd5 cxd5 5.Nf3 * D10 "Eslava: Contragambito Winawer Aceptado" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.dxe5 * D10 "Eslava: Contragambito Winawer Aceptado, 6.Cd2" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.dxe5 d4 5.Ne4 Qa5+ 6.Nd2 * D10 "Eslava: Contragambito Winawer Aceptado, 6.Ad2" 1.d4 d5 2.c4 c6 3.Nc3 e5 4.dxe5 d4 5.Ne4 Qa5+ 6.Bd2 * D10 "Eslava: 3.Cc3 dxc4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 * D10 "Eslava: 3.Cc3 dxc4 4.a4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.a4 * D10 "Eslava: 3.Cc3 dxc4 4.e3" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e3 * D10 "Eslava: 3.Cc3 dxc4 4.e4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e4 * D10 "Eslava: 3.Cc3 dxc4 4.e4 b5" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e4 b5 * D10 "Eslava: 3.Cc3 dxc4 4.e4 b5 5.a4" 1.d4 d5 2.c4 c6 3.Nc3 dxc4 4.e4 b5 5.a4 * D10 "Eslava: 3.Cc3 Cf6" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 * D10 "Eslava: 3.Cc3 Cf6 4.Ag5" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.Bg5 * D10 "Eslava: 3.Cc3 Cf6 4.Ag5 dxc4" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.Bg5 dxc4 * D10 "Eslava: 3.Cc3 Cf6 4.e3" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 * D10 "Eslava: 3.Cc3 Cf6 4.e3 Af5" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 Bf5 * D10 "Eslava: 3.Cc3 Cf6 4.e3 a6" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 * D10 "Eslava: 3.Cc3 Cf6 4.e3 a6 5.Ad3" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 5.Bd3 * D10 "Eslava: 3.Cc3 Cf6 4.e3 a6 5.Dc2" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 5.Qc2 * D10 "Eslava: 3.Cc3 Cf6 4.e3 a6 5.Dc2 b5" 1.d4 d5 2.c4 c6 3.Nc3 Nf6 4.e3 a6 5.Qc2 b5 * D11 "Eslava: 3.Cf3" 1.d4 d5 2.c4 c6 3.Nf3 * D11 "Eslava: 3.Cf3 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Bg4 * D11 "Eslava: 3.Cf3 Af5" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 * D11 "Eslava: 3.Cf3 Af5 4.Cc3" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 4.Nc3 * D11 "Eslava: 3.Cf3 Af5 4.Cc3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 4.Nc3 e6 * D11 "Eslava: 3.Cf3 Af5 4.Cc3 e6 5.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Bf5 4.Nc3 e6 5.Qb3 * D11 "Eslava: 3.Cf3 dxc4" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 * D11 "Eslava: 3.Cf3 dxc4 4.Cc3" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.Nc3 * D11 "Eslava: 3.Cf3 dxc4 4.e3" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 * D11 "Eslava: 3.Cf3 dxc4 4.e3 Ae6" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 Be6 * D11 "Eslava: 3.Cf3 dxc4 4.e3 b5" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 b5 * D11 "Eslava: 3.Cf3 dxc4 4.e3 b5 5.a4" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 b5 5.a4 * D11 "Eslava: 3.Cf3 dxc4 4.e3 b5 5.a4 e6" 1.d4 d5 2.c4 c6 3.Nf3 dxc4 4.e3 b5 5.a4 e6 * D11 "Eslava: 3.Cf3 Cf6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 * D11 "Eslava: 4.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Qb3 * D11 "Eslava: 4.Dc2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Qc2 * D11 "Eslava: 4.Dc2 g6 5.Af4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Qc2 g6 5.Bf4 * D11 "Eslava: Variante Breyer" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nbd2 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.Nbd2 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.Nbd2 Bd6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.Nbd2 Be7 * D11 "Eslava: Eslavo-Reti con b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 * D11 "Eslava: Eslavo-Reti con b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Bd6 * D11 "Eslava: Eslavo-Reti con b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Bd6 8.Bb2 * D11 "Eslava: Eslavo-Reti con b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Bd6 8.Bb2 O-O 9.Nbd2 * D11 "Eslava: Eslavo-Reti con b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Be7 * D11 "Eslava: Eslavo-Reti con b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Be7 8.Bb2 * D11 "Eslava: Eslavo-Reti con b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bg4 5.Bg2 e6 6.O-O Nbd7 7.b3 Be7 8.Bb2 O-O 9.Nbd2 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: Sistema Eslavo-Reti" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.g3 Bf5 5.Bg2 e6 * D11 "Eslava: 4.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 * D11 "Eslava: 4.e3 g6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 g6 * D11 "Eslava: 4.e3 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 a6 * D11 "Eslava: 4.e3 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bg4 * D11 "Eslava: 4.e3 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bg4 5.Nc3 * D12 "Eslava: 4.e3 Af5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 * D12 "Eslava: 4.e3 Af5 5.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Qb3 * D12 "Eslava: 4.e3 Af5 5.cxd5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 * D12 "Eslava: 4.e3 Af5 5.cxd5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 * D12 "Eslava: 4.e3 Af5 5.cxd5 cxd5 6.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Qb3 * D12 "Eslava: 4.e3 Af5 5.cxd5 cxd5 6.Db3 Dc7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Qb3 Qc7 * D12 "Eslava: 4.e3 Af5 5.cxd5 cxd5 6.Cc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Nc3 * D12 "Eslava: 4.e3 Af5 5.cxd5 cxd5 6.Cc3, Variante de Amsterdam" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.cxd5 cxd5 6.Nc3 e6 7.Ne5 Nfd7 * D12 "Eslava: 4.e3 Af5 5.Ad3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Bd3 * D12 "Eslava: 4.e3 Af5 5.Ad3 Axd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Bd3 Bxd3 * D12 "Eslava: 4.e3 Af5 5.Cc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ae2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Be2 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ad3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ad3 Axd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ad3 Axd3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3 7.Qxd3 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ad3 Axd3 7.Dxd3 Cbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Bd3 Bxd3 7.Qxd3 Nbd7 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ch4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Nh4 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ch4 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Nh4 Bg4 * D12 "Eslava: 4.e3 Af5 5.Cc3 e6 6.Ch4 Ae4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.e3 Bf5 5.Nc3 e6 6.Nh4 Be4 * D13 "Eslava: Intercambio" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 * D13 "Eslava: Intercambio" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 * D13 "Eslava: Intercambio, 5.Cc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 * D13 "Eslava: Intercambio, 5.Cc3 Af5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Bf5 * D13 "Eslava: Intercambio, 5.Cc3 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 a6 * D13 "Eslava: Intercambio, 5.Cc3 a6 6.Ce5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 a6 6.Ne5 * D13 "Eslava: Intercambio, 5.Cc3 a6 6.Af4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 a6 6.Bf4 * D13 "Eslava: Intercambio, 5.Cc3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 e6 * D13 "Eslava: Intercambio, 5.Cc3 e6 6.Af4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 e6 6.Bf4 * D13 "Eslava: Intercambio, 5.Cc3 Cc6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 * D13 "Eslava: Intercambio, 6.Af4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 * D13 "Eslava: Intercambio, 6.Af4 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 * D13 "Eslava: Intercambio, 6.Af4 a6 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 7.e3 * D13 "Eslava: Intercambio, 6.Af4 a6 7.e3 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 7.e3 Bg4 * D13 "Eslava: Intercambio, 6.Af4 a6 7.e3 Ag4 8.Ae2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 a6 7.e3 Bg4 8.Be2 * D13 "Eslava: Intercambio, 6.Af4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 * D13 "Eslava: Intercambio, 6.Af4 e6 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 * D13 "Eslava: Intercambio, 6.Af4 e6 7.e3 Ae7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 Be7 * D13 "Eslava: Intercambio, 6.Af4 e6 7.e3 Ad6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 Bd6 * D13 "Eslava: Intercambio, 6.Af4 e6 7.e3 Ad6 8.Axd6 Dxd6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 e6 7.e3 Bd6 8.Bxd6 Qxd6 * D14 "Eslava: Intercambio, 6.Af4 Af5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 * D14 "Eslava: Intercambio, 6.Af4 Af5 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 * D14 "Eslava: Intercambio, 6.Af4 Af5 7.e3 a6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 a6 * D14 "Eslava: Intercambio, 6.Af4 Af5 7.e3 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 * D14 "Eslava: Intercambio, 8.Ce5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Ne5 * D14 "Eslava: Intercambio, 8.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Qb3 * D14 "Eslava: Intercambio, Variante Trifunovic" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Qb3 Bb4 * D14 "Eslava: Intercambio, 8.Ad3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 * D14 "Eslava: Intercambio, 8.Ad3 Axd3 9.Dxd3 Ad6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 * D14 "Eslava: Intercambio, 8.Ad3 Axd3 9.Dxd3 Ad6 10.Axd6 Dxd6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 * D14 "Eslava: Intercambio, 8.Ad3 Línea Principal" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O * D14 "Eslava: Intercambio, 8.Ad3 Línea Principal, 12.Tac1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O 12.Rac1 * D14 "Eslava: Intercambio, 8.Ad3 Línea Principal, 12.Tfc1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O 12.Rfc1 * D14 "Eslava: Intercambio, 8.Ad3 Línea Principal, 12.Tfc1 Tfc8" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.O-O O-O 12.Rfc1 Rfc8 * D14 "Eslava: Intercambio, 8.Ab5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bb5 * D14 "Eslava: Intercambio, 8.Ab5 Cd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bb5 Nd7 * D14 "Eslava: Intercambio, 8.Ab5 Cd7 9.Da4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.cxd5 cxd5 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bb5 Nd7 9.Qa4 * D15 "Eslava: 4.Cc3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 * D15 "Eslava: 4.Cc3 Af5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 Bf5 * D15 "Eslava: 4.Cc3 Af5 5.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 Bf5 5.Qb3 * D15 "Eslava: Variante Süchting" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 Qb6 * D15 "Eslava: Variante Camaleón" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 * D15 "Eslava: Camaleón, 5.Ag5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.Bg5 * D15 "Eslava: Camaleón, 5.Ce5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.Ne5 * D15 "Eslava: Camaleón, 5.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.e3 * D15 "Eslava: Camaleón, 5.e3 b5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.e3 b5 * D15 "Eslava: Camaleón, 5.e3 b5 6.b3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.e3 b5 6.b3 * D15 "Eslava: Camaleón, 5.c5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.c5 * D15 "Eslava: Camaleón, 5.c5 Cbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.c5 Nbd7 * D15 "Eslava: Camaleón, 5.a4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.a4 * D15 "Eslava: Camaleón, 5.a4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.a4 e6 * D15 "Eslava: Camaleón, 5.a4 e6 6.Ag5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 a6 5.a4 e6 6.Bg5 * D15 "Eslava: Aceptada" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 * D15 "Eslava: Aceptada, 5.Ce5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.Ne5 * D15 "Eslava: Aceptada, Alekhine" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e3 * D15 "Eslava: Aceptada, Alekhine: 5...b5 6.a4 b4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e3 b5 6.a4 b4 * D15 "Eslava: Aceptada, Alekhine: 5...b5 6.a4 b4 7.Cb1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e3 b5 6.a4 b4 7.Nb1 * D15 "Eslava: Gambito Geller (Tolush)" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 * D15 "Eslava: Gambito Geller" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 * D15 "Eslava: Gambito Geller, Variante Spassky" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.Qc2 * D15 "Eslava: Gambito Geller, 6.e5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 * D15 "Eslava: Gambito Geller, 6.e5 Cd5 7.Cg5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 Nd5 7.Ng5 * D15 "Eslava: Gambito Geller, 6.e5 Cd5 7.a4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 Nd5 7.a4 * D15 "Eslava: Gambito Geller, 6.e5 Cd5 7.a4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.e4 b5 6.e5 Nd5 7.a4 e6 * D16 "Eslava: Alapin" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 * D16 "Eslava: 5.a4 Cd5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Nd5 * D16 "Eslava: Variante Soultanbeieff" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 e6 * D16 "Eslava: Variante Murey" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 a5 * D16 "Eslava: Variante Smyslov" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 * D16 "Eslava: Smyslov, 6.Ce5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.Ne5 * D16 "Eslava: Smyslov, 6.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e3 * D16 "Eslava: Smyslov, 6.e3 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e3 Bg4 * D16 "Eslava: Smyslov, 6.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e4 * D16 "Eslava: Smyslov, 6.e4 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e4 Bg4 * D16 "Eslava: Smyslov, 6.e4 Ag4 7.Axc4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Na6 6.e4 Bg4 7.Bxc4 e6 * D16 "Eslava: Variante Bronstein (Steiner)" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 * D16 "Eslava: Bronstein, 6.Ce5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 * D16 "Eslava: Bronstein, 6.Ce5 Ah5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 * D16 "Eslava: Bronstein, 6.Ce5 Ah5 7.h3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.h3 * D16 "Eslava: Bronstein, 6.Ce5 Ah5 7.g3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.g3 * D16 "Eslava: Bronstein, 6.Ce5 Ah5 7.f3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.f3 * D16 "Eslava: Bronstein, 6.Ce5 Ah5 7.f3 Cfd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.f3 Nfd7 * D16 "Eslava: Bronstein, 6.Ce5 Ah5 7.f3 Cfd7 8.Cxc4 e5 9.Ce4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bg4 6.Ne5 Bh5 7.f3 Nfd7 8.Nxc4 e5 9.Ne4 * D17 "Eslava: Defensa Checa" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 * D17 "Eslava: Checa, 6.Ch4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 * D17 "Eslava: Checa, 6.Ch4 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 e6 * D17 "Eslava: Checa, 6.Ch4 e6 7.Cxf5 exf5 8.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 e6 7.Nxf5 exf5 8.e3 * D17 "Eslava: Checa, 6.Ch4 Ac8" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 Bc8 * D17 "Eslava: Checa, 6.Ch4 Ac8 7.e3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Nh4 Bc8 7.e3 * D17 "Eslava: Variante Central" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 * D17 "Eslava: Central, 6.Ce5 Ca6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Na6 * D17 "Eslava: Central, 6.Ce5 Ca6 7.f3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Na6 7.f3 * D17 "Eslava: Central, 6.Ce5 Cbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Nbd7 * D17 "Eslava: Central, Variante de Carlsbad" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Nbd7 7.Nxc4 Qc7 8.g3 e5 * D17 "Eslava: Central, Carlsbad, Línea Principal" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 Nbd7 7.Nxc4 Qc7 8.g3 e5 9.dxe5 Nxe5 10.Bf4 Nfd7 11.Bg2 f6 * D17 "Eslava: Central, 6.Ce5 e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 * D17 "Eslava: Central, 6.Ce5 e6 7.f3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 * D17 "Eslava: Central, Hübner (7...c5)" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 c5 * D17 "Eslava: Central, 7.f3 Ab4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 * D17 "Eslava: Central, 7.f3 Ab4 8.Ag5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.Bg5 * D17 "Eslava: Central, 7.f3 Ab4 8.Cxc4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.Nxc4 * D17 "Eslava: Central, 7.f3 Ab4 8.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 * D17 "Eslava: Central, Línea de Piece-Sac" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 * D17 "Eslava: Central, Línea Principal" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 * D17 "Eslava: Central, Línea Principal, 15.Cxc4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 Qd5+ 14.Kc2 Na6 * D17 "Eslava: Central, Línea Principal, 15.Cxc4 O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 Qd5+ 14.Kc2 Na6 * D17 "Eslava: Central, Línea Principal, 15.Cxc4 O-O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.Ne5 e6 7.f3 Bb4 8.e4 Bxe4 9.fxe4 Nxe4 10.Bd2 Qxd4 11.Nxe4 Qxe4+ 12.Qe2 Bxd2+ 13.Kxd2 Qd5+ 14.Kc2 Na6 * D18 "Eslava: Variante Holandesa" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 * D18 "Eslava: Holandesa, Variante Lasker" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 Na6 * D18 "Eslava: Holandesa, 6...e6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 * D18 "Eslava: Holandesa, 6...e6 7.Axc4 Ab4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D18 "Eslava: Holandesa, 8.O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O * D18 "Eslava: Holandesa, 8...Cbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 * D18 "Eslava: Holandesa, 8...Cbd7 9.Ch4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Nh4 * D18 "Eslava: Holandesa, 8...Cbd7 9.Ch4 Ag6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Nh4 Bg6 * D18 "Eslava: Holandesa, 8...Cbd7 9.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qb3 * D18 "Eslava: Holandesa, 8...Cbd7 9.Db3 a5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qb3 a5 * D18 "Eslava: Holandesa, 8...Cbd7 9.De2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qe2 * D18 "Eslava: Holandesa, 8...Cbd7 9.De2 Ag6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qe2 Bg6 * D18 "Eslava: Holandesa, 8...Cbd7 9.De2 Ag6 10.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O Nbd7 9.Qe2 Bg6 10.e4 * D18 "Eslava: Holandesa, 8...O-O" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O * D18 "Eslava: Holandesa, 8...O-O 9.Db3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Qb3 * D18 "Eslava: Holandesa, 8...O-O 9.Ch4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 * D18 "Eslava: Holandesa, 8...O-O 9.Ch4 Ag6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Bg6 * D18 "Eslava: Holandesa, 8...O-O 9.Ch4 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Bg4 * D18 "Eslava: Holandesa, 8...O-O 9.Ch4 Cbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 * D18 "Eslava: Holandesa, 8...O-O 9.Ch4 Cbd7 10.Cxf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 10.Nxf5 * D18 "Eslava: Holandesa, 8...O-O 9.Ch4 Cbd7 10.Cxf5 exf5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 10.Nxf5 exf5 * D18 "Eslava: Holandesa, 8...O-O 9.Ch4 Cbd7 10.Cxf5 exf5 11.Dc2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 8.O-O O-O 9.Nh4 Nbd7 10.Nxf5 exf5 11.Qc2 * D19 "Eslava: Holandesa, 8...O-O 9.De2" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ag6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ag6 10.Td1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ag6 10.Td1 Cbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ag6 10.Ce5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ag6 10.Ce5 Cbd7, 12.Td1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ag6 10.Ce5 Cbd7, 12.Td1" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Ce4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, Variante Sämisch" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4 Ag4" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4 Ag6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4 Ag6 11.Ad3" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4 Ag6 11.Ad3 h6" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4 Ag6 11.Ad3 Te8" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4 Ag6 11.Ad3 Ah5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D19 "Eslava: Holandesa, 8...O-O 9.De2 Cbd7 10.e4 Ag6 11.Ad3 Ah5 12.e5" 1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4 5.a4 Bf5 6.e3 e6 7.Bxc4 Bb4 * D20 "Gambito de Dama Aceptado (GDA)" 1.d4 d5 2.c4 dxc4 * D20 "GDA: 3.Da4+" 1.d4 d5 2.c4 dxc4 3.Qa4+ * D20 "GDA: 3.e3" 1.d4 d5 2.c4 dxc4 3.e3 * D20 "GDA: 3.e3 c5" 1.d4 d5 2.c4 dxc4 3.e3 c5 * D20 "GDA: 3.e3 c5 4.Axc4" 1.d4 d5 2.c4 dxc4 3.e3 c5 4.Bxc4 * D20 "GDA: 3.e3 c5 4.Axc4" 1.d4 d5 2.c4 dxc4 3.e3 c5 4.Bxc4 cxd4 5.exd4 * D20 "GDA: 3.e3 e6" 1.d4 d5 2.c4 dxc4 3.e3 e6 * D20 "GDA: 3.e3 e6" 1.d4 d5 2.c4 dxc4 3.e3 e6 4.Bxc4 Nf6 * D20 "GDA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 * D20 "GDA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 * D20 "GDA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 Bb4+ * D20 "GDA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 Bb4+ 5.Nc3 Nf6 * D20 "GDA: 3.e3 e5" 1.d4 d5 2.c4 dxc4 3.e3 e5 4.Bxc4 exd4 5.exd4 Nf6 * D20 "GDA: 3.e3 Cf6" 1.d4 d5 2.c4 dxc4 3.e3 Nf6 * D20 "GDA: 3.Cc3" 1.d4 d5 2.c4 dxc4 3.Nc3 * D20 "GDA: 3.Cc3 c5" 1.d4 d5 2.c4 dxc4 3.Nc3 c5 * D20 "GDA: 3.Cc3 e5" 1.d4 d5 2.c4 dxc4 3.Nc3 e5 * D20 "GDA: 3.Cc3 Cf6" 1.d4 d5 2.c4 dxc4 3.Nc3 Nf6 * D20 "GDA: 3.Cc3 e6" 1.d4 d5 2.c4 dxc4 3.Nc3 e6 * D20 "GDA: 3.Cc3 e6 4.e4" 1.d4 d5 2.c4 dxc4 3.Nc3 e6 4.e4 * D20 "GDA: 3.Cc3 a6" 1.d4 d5 2.c4 dxc4 3.Nc3 a6 * D20 "GDA: 3.Cc3 a6 4.a4" 1.d4 d5 2.c4 dxc4 3.Nc3 a6 4.a4 * D20 "GDA: 3.e4" 1.d4 d5 2.c4 dxc4 3.e4 * D20 "GDA: 3.e4, Defensa Schwartz" 1.d4 d5 2.c4 dxc4 3.e4 f5 * D20 "GDA: 3.e4 Cc6" 1.d4 d5 2.c4 dxc4 3.e4 Nc6 * D20 "GDA: 3.e4 Cc6 4.Cf3" 1.d4 d5 2.c4 dxc4 3.e4 Nc6 4.Nf3 * D20 "GDA: 3.e4 Cc6 4.Ae3" 1.d4 d5 2.c4 dxc4 3.e4 Nc6 4.Be3 * D20 "GDA: 3.e4 Cf6" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 * D20 "GDA: 3.e4 Cf6 4.Cc3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.Nc3 * D20 "GDA: 3.e4 Cf6 4.e5" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 * D20 "GDA: 3.e4 Cf6 4.e5 Cd5" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 * D20 "GDA: 3.e4 Cf6 4.e5 Cd5 5.Axc4 Cb6" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 * D20 "GDA: 3.e4 Cf6 4.e5 Cd5 5.Axc4 Cb6 6.Ad3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bd3 * D20 "GDA: 3.e4 Cf6 4.e5 Cd5 5.Axc4 Cb6 6.Ad3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bd3 Nc6 * D20 "GDA: 3.e4 Cf6 4.e5 Cd5 5.Axc4 Cb6 6.Ab3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3 * D20 "GDA: 3.e4 Cf6 4.e5 Cd5 5.Axc4 Cb6 6.Ab3" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3 Nc6 * D20 "GDA: 3.e4 Cf6 4.e5 Cd5 5.Axc4 Cb6 6.Ab3 Cc6 7.Ce2" 1.d4 d5 2.c4 dxc4 3.e4 Nf6 4.e5 Nd5 5.Bxc4 Nb6 6.Bb3 Nc6 7.Ne2 * D20 "GDA: 3.e4 c5" 1.d4 d5 2.c4 dxc4 3.e4 c5 * D20 "GDA: 3.e4 c5" 1.d4 d5 2.c4 dxc4 3.e4 c5 4.Nf3 * D20 "GDA: 3.e4 c5 4.d5" 1.d4 d5 2.c4 dxc4 3.e4 c5 4.d5 * D20 "GDA: Variante de Linares" 1.d4 d5 2.c4 dxc4 3.e4 c5 4.d5 Nf6 5.Nc3 b5 * D20 "GDA: 3.e4 e5" 1.d4 d5 2.c4 dxc4 3.e4 e5 * D20 "GDA: 3.e4 e5 4.Cf3 Ab4+" 1.d4 d5 2.c4 dxc4 3.e4 e5 4.Nf3 Bb4+ * D20 "GDA: 3.e4 e5 4.Cf3 exd4" 1.d4 d5 2.c4 dxc4 3.e4 e5 4.Nf3 exd4 * D20 "GDA: 3.e4 e5 4.Cf3 exd4 5.Axc4 Cc6" 1.d4 d5 2.c4 dxc4 3.e4 e5 4.Nf3 exd4 5.Bxc4 Nc6 * D21 "GDA: 3.Cf3" 1.d4 d5 2.c4 dxc4 3.Nf3 * D21 "GDA: Variante Ericson" 1.d4 d5 2.c4 dxc4 3.Nf3 b5 * D21 "GDA: 3.Cf3 Cd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nd7 * D21 "GDA: 3.Cf3 Ag4" 1.d4 d5 2.c4 dxc4 3.Nf3 Bg4 * D21 "GDA: 3.Cf3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 * D21 "GDA: 3.Cf3 e6 4.Da4+" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.Qa4+ * D21 "GDA: 3.Cf3 e6 4.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.e4 * D21 "GDA: 3.Cf3 e6 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.e3 * D21 "GDA: 3.Cf3 e6 4.e3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 e6 4.e3 c5 * D21 "GDA: 3.Cf3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 * D21 "GDA: 3.Cf3 c5 4.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.Nc3 * D21 "GDA: 3.Cf3 c5 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.e3 * D21 "GDA: 3.Cf3 c5 4.e3 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.e3 cxd4 * D21 "GDA: 3.Cf3 c5 4.e3 cxd4 5.Axc4" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.e3 cxd4 5.Bxc4 * D21 "GDA: 3.Cf3 c5 4.d5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 * D21 "GDA: 3.Cf3 c5 4.d5 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 * D21 "GDA: 3.Cf3 c5 4.d5 e6 5.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.e4 * D21 "GDA: 3.Cf3 c5 4.d5 e6 5.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 * D21 "GDA: 3.Cf3 c5 4.d5 e6 5.Cc3 exd5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 * D21 "GDA: 3.Cf3 c5 4.d5 e6 5.Cc3 exd5 6.Dxd5 Dxd5 7.Cxd5" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 * D21 "GDA: 3.Cf3 c5 4.d5 e6 5.Cc3 exd5 6.Dxd5 Dxd5 7.Cxd5 Ad6" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6 * D21 "GDA: 3.Cf3 c5 4.d5 e6 5.Cc3 exd5 6.Dxd5 Dxd5 7.Cxd5 Ad6 8.Cd2" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6 8.Nd2 * D21 "GDA: Variante Seirawan" 1.d4 d5 2.c4 dxc4 3.Nf3 c5 4.d5 e6 5.Nc3 exd5 6.Qxd5 Qxd5 7.Nxd5 Bd6 8.Nd2 Ne7 * D21 "GDA: Defensa Alekhine" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 * D21 "GDA: Alekhine, Variante Borisenko-Furman" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e4 * D21 "GDA: Alekhine, 4.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.a4 * D22 "GDA: Alekhine, 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 * D22 "GDA: Alekhine, Variante Haberditz" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 b5 * D22 "GDA: Alekhine, 4.e3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 * D22 "GDA: Alekhine, 4.e3 e6 5.Axc4" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 5.Bxc4 * D22 "GDA: Alekhine, 4.e3 e6 5.Axc4 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 5.Bxc4 c5 * D22 "GDA: Alekhine, 4.e3 e6 5.Axc4 c5 6.De2" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 e6 5.Bxc4 c5 6.Qe2 * D22 "GDA: Alekhine, 4.e3 Ag4" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 * D22 "GDA: Alekhine, 4.e3 Ag4 5.Axc4 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 * D22 "GDA: Alekhine, Variante Alatortsev" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.d5 * D22 "GDA: Alekhine, 4.e3 Ag4 5.Axc4 e6 6.Db3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.Qb3 * D22 "GDA: Alekhine, 4.e3 Ag4 5.Axc4 e6 6.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.Nc3 * D22 "GDA: Alekhine, 4.e3 Ag4 5.Axc4 e6 6.h3" 1.d4 d5 2.c4 dxc4 3.Nf3 a6 4.e3 Bg4 5.Bxc4 e6 6.h3 * D23 "GDA: 3.Cf3 Cf6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 * D23 "GDA: 3.Cf3 Cf6 4.g3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.g3 * D23 "GDA: Variante de Mannheim" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ * D23 "GDA: Mannheim, 4...Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nc6 * D23 "GDA: Mannheim, 4...Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nc6 5.Nc3 * D23 "GDA: Mannheim, 4...Cbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nbd7 * D23 "GDA: Mannheim, 4...Cbd7 5.Cc3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nbd7 5.Nc3 e6 * D23 "GDA: Mannheim, 4...Cbd7 5.Cc3 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ Nbd7 5.Nc3 e6 6.e4 * D23 "GDA: Mannheim, 4...c6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 * D23 "GDA: Mannheim, 4...c6 5.Dxc4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 * D23 "GDA: Mannheim, 4...c6, 5.Dxc4 Af5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 * D23 "GDA: Mannheim, 4...c6, 5.Dxc4 Af5 6.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.Nc3 * D23 "GDA: Mannheim, 4...c6, 5.Dxc4 Af5 6.g3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 * D23 "GDA: Mannheim, 4...c6, 5.Dxc4 Af5 6.g3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 * D23 "GDA: Mannheim, 4...c6, 5.Dxc4 Af5 6.g3 e6 7.Ag2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 * D23 "GDA: Mannheim, 4...c6, 5.Dxc4 Af5 6.g3 e6 7.Ag2 Cbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 * D23 "GDA: Mannheim, Línea Principal" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 * D23 "GDA: Mannheim, Línea Principal, 9...O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O * D23 "GDA: Mannheim, Línea Principal, 10.Ag5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.Bg5 * D23 "GDA: Mannheim, Línea Principal, 10.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.e3 * D23 "GDA: Mannheim, Línea Principal, 10.e3 Ce4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.e3 Ne4 * D23 "GDA: Mannheim, Línea Principal, 10.e3 Ce4 11.De2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Qa4+ c6 5.Qxc4 Bf5 6.g3 e6 7.Bg2 Nbd7 8.O-O Be7 9.Nc3 O-O 10.e3 Ne4 11.Qe2 * D24 "GDA: 4.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 * D24 "GDA: 4.Cc3 Cd5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 Nd5 * D24 "GDA: 4.Cc3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 * D24 "GDA: 4.Cc3 e6 5.Ag5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 5.Bg5 * D24 "GDA: 4.Cc3 e6 5.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 5.e4 * D24 "GDA: 4.Cc3 e6 5.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 e6 5.e3 * D24 "GDA: 4.Cc3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 * D24 "GDA: 4.Cc3 c5 5.d5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 * D24 "GDA: 4.Cc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 * D24 "GDA: 4.Cc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 exd5 7.e5 Nfd7 * D24 "GDA: 4.Cc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 exd5 7.e5 Nfd7 8.Bg5 * D24 "GDA: 4.Cc3 c5 5.d5 e6 6.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 c5 5.d5 e6 6.e4 exd5 7.e5 Nfd7 8.Bg5 Be7 * D24 "GDA: 4.Cc3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 * D24 "GDA: 4.Cc3 a6 5.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.a4 * D24 "GDA: 4.Cc3 a6 5.a4 Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.a4 Nc6 * D24 "GDA: 4.Cc3 a6 5.a4 Cc6 5.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.a4 Nc6 6.e4 * D24 "GDA: Bogoljubow" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 * D24 "GDA: Bogoljubow, 7.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 * D24 "GDA: Bogoljubow, 7.a4 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 e6 * D24 "GDA: Bogoljubow, 7.a4 c6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 c6 * D24 "GDA: Bogoljubow, 7.a4 Ab7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Bb7 * D24 "GDA: Bogoljubow, 7.a4 Cb4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nb4 * D24 "GDA: Bogoljubow, 7.a4 Cxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 * D24 "GDA: Bogoljubow, 7.a4 Cxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 8.bxc3 Bb7 * D24 "GDA: Bogoljubow, 7.a4 Cxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 8.bxc3 Qd5 * D24 "GDA: Bogoljubow, 7.a4 Cxc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.Nc3 a6 5.e4 b5 6.e5 Nd5 7.a4 Nxc3 8.bxc3 Qd5 9.g3 Bb7 * D25 "GDA: 4.e3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 * D25 "GDA: 4.e3 c5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 c5 * D25 "GDA: 4.e3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 a6 * D25 "GDA: Variante Smyslov" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 * D25 "GDA: Smyslov, 5.Axc4 Ag7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 * D25 "GDA: Smyslov, 5.Axc4 Ag7 6.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.Nc3 * D25 "GDA: Smyslov, 5.Axc4 Ag7 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.O-O * D25 "GDA: Smyslov, 5.Axc4 Ag7 6.O-O O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.O-O O-O * D25 "GDA: Smyslov, 5.Axc4 Ag7 6.O-O O-O 7.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 g6 5.Bxc4 Bg7 6.O-O O-O 7.Nc3 * D25 "GDA: Variante Flohr" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Be6 * D25 "GDA: Flohr, 5.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Be6 5.Nc3 * D25 "GDA: Flohr, 5.Cc3 c6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Be6 5.Nc3 c6 * D25 "GDA: Variante Janowski-Larsen" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 * D25 "GDA: Janowski-Larsen, 5.h3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.h3 * D25 "GDA: Janowski-Larsen, 5.Axc4 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 * D25 "GDA: Janowski-Larsen, 6.Db3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.Qb3 * D25 "GDA: Janowski-Larsen, 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.O-O * D25 "GDA: Janowski-Larsen, 6.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.Nc3 * D25 "GDA: Janowski-Larsen, 6.h3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 a6 * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3 a6 8.g4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 a6 8.g4 * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3 Cbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3 Cbd7 8.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3 Cbd7 8.O-O Ad6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3 Cbd7 8.O-O Ad6 9.Ae2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 9.Be2 * D25 "GDA: Janowski-Larsen, 6.h3 Ah5 7.Cc3 Cbd7 8.O-O Ad6 9.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 Bg4 5.Bxc4 e6 6.h3 Bh5 7.Nc3 Nbd7 8.O-O Bd6 9.e4 * D26 "GDA: 4.e3 e6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 * D26 "GDA: 4.e3 e6 5.Axc4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 * D26 "GDA: 4.e3 e6 5.Axc4 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 a6 * D26 "GDA: 4.e3 e6 5.Axc4 a6 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 a6 6.O-O * D26 "GDA: 4.e3 e6 5.Axc4 a6 6.O-O b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 a6 6.O-O b5 * D26 "GDA: Variante Clásica" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 * D26 "GDA: Clásica, Intercambio de Damas Trempano" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.dxc5 * D26 "GDA: Clásica, 6.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Nc3 * D26 "GDA: Clásica, 6.Cc3 a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Nc3 a6 * D26 "GDA: Clásica, Variante Furman" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 * D26 "GDA: Clásica, Furman, 6...cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 cxd4 * D26 "GDA: Clásica, Furman, 6...a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 * D26 "GDA: Clásica, Furman, 6...a6 7.dxc5 Axc5 8.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 7.dxc5 Bxc5 8.O-O * D26 "GDA: Clásica, Furman, 6...a6 7.dxc5 Axc5 8.O-O Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 7.dxc5 Bxc5 8.O-O * D26 "GDA: Clásica, Furman, 6...a6 7.dxc5 Axc5 8.O-O b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.Qe2 a6 7.dxc5 Bxc5 8.O-O * D26 "GDA: Clásica, 6.O-O" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O * D26 "GDA: Clásica, Variante Steinitz" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O cxd4 * D26 "GDA: Clásica, 6.O-O Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O Nc6 * D26 "GDA: Clásica, 6.O-O Cc6 7.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O Nc6 7.Nc3 * D26 "GDA: Clásica, 6.O-O Cc6 7.De2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O Nc6 7.Qe2 * D27 "GDA: Clásica, 6...a6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 * D27 "GDA: Clásica, 6...a6 7.a3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a3 * D27 "GDA: Clásica, 6...a6 7.b3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.b3 * D27 "GDA: Clásica, 6...a6 7.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Nc3 * D27 "GDA: Clásica, 6...a6 7.Ad3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bd3 * D27 "GDA: Clásica, 6...a6 7.Ad3 Cbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bd3 Nbd7 * D27 "GDA: Clásica, 6...a6 7.Ab3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 * D27 "GDA: Clásica, 6...a6 7.Ab3 b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 b5 * D27 "GDA: Clásica, 6...a6 7.Ab3 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 cxd4 * D27 "GDA: Clásica, 6...a6 7.Ab3 Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 Nc6 * D27 "GDA: Clásica, 6...a6 7.Ab3 Cc6 8.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Bb3 Nc6 8.Nc3 * D27 "GDA: Clásica, Variante Geller" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.e4 * D27 "GDA: Clásica, Variante Spassky" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 * D27 "GDA: Clásica, Spassky, 7...Dxd1" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 Qxd1 * D27 "GDA: Clásica, Spassky, 9.Cbd2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 Qxd1 8.Rxd1 Bxc5 9.Nbd2 * D27 "GDA: Clásica, Spassky, 9.b3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.dxc5 Qxd1 8.Rxd1 Bxc5 9.b3 * D27 "GDA: Clásica, Variante Rubinstein" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 * D27 "GDA: Clásica, Rubinstein, 7...Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 * D27 "GDA: Clásica, Rubinstein, 8.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Nc3 * D27 "GDA: Clásica, Rubinstein, 8.Cc3 Ae7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Nc3 Be7 * D27 "GDA: Clásica, Rubinstein, 8.Cc3 Ae7 9.De2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Nc3 Be7 9.Qe2 * D27 "GDA: Clásica, Rubinstein, 8.De2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 * D27 "GDA: Clásica, Rubinstein, 8.De2 Dc7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 Qc7 * D27 "GDA: Clásica, Rubinstein, 8.De2 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 cxd4 * D27 "GDA: Clásica, Rubinstein, 8.De2 cxd4, 11.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 cxd4 9.Rd1 Be7 10.exd4 O-O 11.Nc3 * D27 "GDA: Clásica, Rubinstein, 8.De2 cxd4, 11.Cc3 Cd5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.a4 Nc6 8.Qe2 cxd4 9.Rd1 Be7 10.exd4 O-O 11.Nc3 Nd5 * D28 "GDA: Clásica, 7.De2" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 * D28 "GDA: Clásica, 7.De2 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 cxd4 * D28 "GDA: Clásica, 7.De2 Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 Nc6 * D28 "GDA: Clásica, 7.De2 b5" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 * D28 "GDA: Clásica, 7.De2 b5 8.Ad3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bd3 * D28 "GDA: Clásica, 7.De2 b5 8.Ad3 cxd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bd3 cxd4 * D28 "GDA: Clásica, 7.De2 b5 8.Ad3 cxd4 9.exd4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bd3 cxd4 9.exd4 * D28 "GDA: Clásica, 7.De2 b5 8.Ab3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 * D28 "GDA: Clásica, 7.De2 b5 8.Ab3 Cc6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 * D28 "GDA: Clásica, 7.De2 b5 8.Ab3 Cc6 9.Rd1" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Rd1 * D28 "GDA: Clásica, 7.De2 b5 8.Ab3 Cc6 9.Rd1 c4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Rd1 c4 * D28 "GDA: Clásica, 7.De2 b5 8.Ab3 Cc6 9.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 * D28 "GDA: Clásica, 7.De2 b5 8.Ab3 Cc6 9.Cc3 Ab7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 Bb7 * D28 "GDA: Clásica, 7.De2 b5 8.Ab3 Cc6 9.Cc3 Ae7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Nc6 9.Nc3 Be7 * D29 "GDA: Clásica, 8...Ab7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 * D29 "GDA: Clásica, 8...Ab7 9.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Nc3 * D29 "GDA: Clásica, 8...Ab7 9.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.a4 * D29 "GDA: Clásica, 8...Ab7 9.a4 b4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.a4 b4 * D29 "GDA: Clásica, 8...Ab7 9.a4 Cbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.a4 Nbd7 * D29 "GDA: Clásica, 8...Ab7 9.Rd1" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7 10.e4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.e4 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7 10.a4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.a4 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7 10.a4 b4" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.a4 b4 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7 10.Cc3" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 * D29 "GDA: Clásica, Variante Smyslov" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Bd6 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7 10.Cc3 Dc7" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Qc7 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7 10.Cc3 Db8" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Qb8 * D29 "GDA: Clásica, 8...Ab7 9.Rd1 Cbd7 10.Cc3 Db6" 1.d4 d5 2.c4 dxc4 3.Nf3 Nf6 4.e3 e6 5.Bxc4 c5 6.O-O a6 7.Qe2 b5 8.Bb3 Bb7 9.Rd1 Nbd7 10.Nc3 Qb6 * D30 "Gambito de Dama Rehusado (GDR)" 1.d4 d5 2.c4 e6 * D30 "GDR: 3.e3" 1.d4 d5 2.c4 e6 3.e3 * D30 "Gambito Diemer-Duhm (GDD)" 1.d4 d5 2.c4 e6 3.e4 * D30 "Gambito Diemer-Duhm (GDD) Aceptado" 1.d4 d5 2.c4 e6 3.e4 dxe4 * D30 "Gambito Diemer-Duhm (GDD): 4...f5" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 f5 * D30 "Gambito Diemer-Duhm (GDD): Variante Alapin" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.Be3 * D30 "Gambito Diemer-Duhm (GDD): Variante Duhm" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.a3 * D30 "Gambito Diemer-Duhm (GDD): 5.f3" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 * D30 "Gambito Diemer-Duhm (GDD): Variante del Cambio" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 exf3 * D30 "Gambito Diemer-Duhm (GDD): Defensa Keres" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 c5 * D30 "Gambito Diemer-Duhm (GDD): Línea Principal" 1.e4 e6 2.d4 d5 3.c4 dxe4 4.Nc3 Nf6 5.f3 Bb4 * D30 "GDR: 3.g3" 1.d4 d5 2.c4 e6 3.g3 * D30 "GDR: 3.cxd5" 1.d4 d5 2.c4 e6 3.cxd5 * D30 "GDR: 3.cxd5" 1.d4 d5 2.c4 e6 3.cxd5 exd5 * D30 "GDR: 3.cxd5" 1.d4 d5 2.c4 e6 3.cxd5 exd5 4.Nc3 * D30 "GDR: 3.Af4" 1.d4 d5 2.c4 e6 3.Bf4 * D30 "GDR: 3.Cf3" 1.d4 d5 2.c4 e6 3.Nf3 * D30 "GDR: 3.Cf3 Cbd7 (Westphalia)" 1.d4 d5 2.c4 e6 3.Nf3 Nbd7 * D30 "GDR: Tarrasch sin Cc3" 1.d4 d5 2.c4 e6 3.Nf3 c5 * D30 "GDR: Tarrasch sin Cc3: 4.e3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.e3 * D30 "GDR: Tarrasch sin Cc3: 4.e3 Cf6" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.e3 Nf6 * D30 "GDR: Tarrasch sin Cc3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 * D30 "GDR: Tarrasch sin Cc3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 * D30 "GDR: Tarrasch sin Cc3: 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 * D30 "GDR: Tarrasch sin Cc3: 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nf6 * D30 "GDR: Tarrasch sin Cc3: 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nf6 6.Bg2 * D30 "GDR: Tarrasch sin Cc3: 5.g3 Cc6" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 * D30 "GDR: Tarrasch sin Cc3: 5.g3 Cc6 6.Ag2" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 * D30 "GDR: Tarrasch sin Cc3: 5.g3 Cc6 6.Ag2 Cf6" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 Nf6 * D30 "GDR: Tarrasch sin Cc3: 5.g3 Cc6 6.Ag2 Cf6 7.O-O" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 Nf6 7.O-O * D30 "GDR: Tarrasch sin Cc3: Línea Principal" 1.d4 d5 2.c4 e6 3.Nf3 c5 4.cxd5 exd5 5.g3 Nc6 6.Bg2 Nf6 7.O-O Be7 * D30 "GDR: 3.Cf3 c6" 1.d4 d5 2.c4 e6 3.Nf3 c6 * D30 "GDR: 3.Cf3 c6 4.e3" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.e3 * D30 "GDR: 3.Cf3 c6 4.Cbd2" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Nbd2 * D30 "GDR: 3.Cf3 c6 4.Dc2" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 * D30 "GDR: 3.Cf3 c6 4.Dc2 Cf6" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 Nf6 * D30 "GDR: 3.Cf3 c6 4.Dc2 Cf6 5.Ag5" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 Nf6 5.Bg5 * D30 "GDR: 3.Cf3 c6 4.Dc2 Cf6 5.g3" 1.d4 d5 2.c4 e6 3.Nf3 c6 4.Qc2 Nf6 5.g3 * D30 "GDR: 3.Cf3 Cf6" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 * D30 "GDR: 3.Cf3 Cf6 4.e3" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 * D30 "GDR: 3.Cf3 Cf6 4.e3 c6" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 * D30 "GDR: 3.Cf3 Cf6 4.e3 c6 5.Cbd2" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 * D30 "GDR: Variante Spielmann" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 g6 * D30 "GDR: Formación Muro de Piedra" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Ne4 6.Bd3 f5 * D30 "GDR: 3.Cf3 Cf6 4.e3 c6 5.Cbd2 Cbd7" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7 * D30 "GDR: 3.Cf3 Cf6 4.e3 c6 5.Cbd2 Cbd7 6.Ad3" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7 6.Bd3 * D30 "GDR: Variante Semmering" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.e3 c6 5.Nbd2 Nbd7 6.Bd3 c5 * D30 "GDR: 3.Cf3 Cf6 4.Ag5" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 * D30 "GDR: 3.Cf3 Cf6 4.Ag5 dxc4" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 dxc4 * D30 "GDR: Variante de Vienna" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Bb4+ * D30 "GDR: 3.Cf3 Cf6 4.Ag5 Cbd7" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Nbd7 * D30 "GDR: 3.Cf3 Cf6 4.Ag5, Variante Capablanca" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nbd2 * D30 "GDR: Variante Capablanca-Duras" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 h6 * D30 "GDR: 3.Cf3 Cf6 4.Ag5 Ae7" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Be7 * D30 "GDR: 3.Cf3 Cf6 4.Ag5 Ae7 5.e3" 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Bg5 Be7 5.e3 * D31 "GDR: 3.Cc3" 1.d4 d5 2.c4 e6 3.Nc3 * D31 "GDR: 3.Cc3 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 Nc6 * D31 "GDR: Variante Alapin" 1.d4 d5 2.c4 e6 3.Nc3 b6 * D31 "GDR: Variante Janowski" 1.d4 d5 2.c4 e6 3.Nc3 a6 * D31 "GDR: 3.Cc3 Ab4" 1.d4 d5 2.c4 e6 3.Nc3 Bb4 * D31 "GDR: 3.Cc3 Ab4 4.a3" 1.d4 d5 2.c4 e6 3.Nc3 Bb4 4.a3 * D31 "GDR: Variante Alatortsev" 1.d4 d5 2.c4 e6 3.Nc3 Be7 * D31 "GDR: Alatortsev, 4.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.Nf3 * D31 "GDR: Alatortsev, 4.Af4" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.Bf4 * D31 "GDR: Alatortsev, Intercambio" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 * D31 "GDR: Alatortsev, Intercambio" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 * D31 "GDR: Alatortsev, 5.Af4" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 * D31 "GDR: Alatortsev, 5.Af4 c6" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 c6 * D31 "GDR: Alatortsev, 5.Af4 c6 6.e3 Af5" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 c6 6.e3 Bf5 * D31 "GDR: Alatortsev, 5.Af4 c6 6.e3 Af5 7.g4" 1.d4 d5 2.c4 e6 3.Nc3 Be7 4.cxd5 exd5 5.Bf4 c6 6.e3 Bf5 7.g4 * D31 "Semi-Eslava" 1.d4 d5 2.c4 e6 3.Nc3 c6 * D31 "Semi-Eslava: 4.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 * D31 "Semi-Eslava: 4.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 * D31 "Semi-Eslava: 4.cxd5 exd5 5.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 5.Nf3 * D31 "Semi-Eslava: 4.cxd5 exd5 5.Cf3 Af5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 5.Nf3 Bf5 * D31 "Semi-Eslava: 4.cxd5 exd5 5.Af4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.cxd5 exd5 5.Bf4 * D31 "Semi-Eslava: 4.e3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e3 * D31 "Semi-Eslava: 4.e3 Cf6" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e3 Nf6 * D31 "Semi-Eslava: 4.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 * D31 "Semi-Eslava: Variante Noteboom" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 * D31 "Semi-Eslava: Noteboom, 5.a4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 * D31 "Semi-Eslava: Noteboom, 5.a4 Ab4 6.e3 b5" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 * D31 "Semi-Eslava: Noteboom, Variante Koomen" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 Qe7 * D31 "Semi-Eslava: Noteboom, Variante Junge" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 Qb6 * D31 "Semi-Eslava: Noteboom, Variante Abrahams" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 a5 * D31 "Semi-Eslava: Noteboom, Abrahams, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 a5 8.axb5 Bxc3 9.Bxc3 cxb5 10.b3 Bb7 * D31 "Semi-Eslava: Noteboom, Abrahams, Línea Principal, 14.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.Nf3 dxc4 5.a4 Bb4 6.e3 b5 7.Bd2 a5 8.axb5 Bxc3 9.Bxc3 cxb5 10.b3 Bb7 11.bxc4 b4 12.Bb2 Nf6 13.Bd3 Nbd7 14.O-O O-O * D31 "Semi-Eslava: Gambito Marshall" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 * D31 "Semi-Eslava: Gambito Marshall, 4...Ab4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 Bb4 * D31 "Semi-Eslava: Gambito Marshall, 4...dxe4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 * D31 "Semi-Eslava: Gambito Marshall, Gambito Gunderam" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.f3 * D31 "Semi-Eslava: Gambito Marshall, 5.Cxe4" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 * D31 "Semi-Eslava: Gambito Marshall, 5.Cxe4 Cf6" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Nf6 * D31 "Semi-Eslava: Gambito Marshall, 5.Cxe4 Ab4+" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ * D31 "Semi-Eslava: Gambito Marshall, 5.Cxe4 Ab4+ 6.Cc3" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Nc3 * D31 "Semi-Eslava: Gambito Marshall, 5.Cxe4 Ab4+ 6.Ad2" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 * D31 "Semi-Eslava: Gambito Marshall, 8.Ce2" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 Qxd4 7.Bxb4 Qxe4+ 8.Ne2 * D31 "Semi-Eslava: Gambito Marshall, 8.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 Qxd4 7.Bxb4 Qxe4+ 8.Be2 * D31 "Semi-Eslava: Gambito Marshall, 8.Ae2 Ca6" 1.d4 d5 2.c4 e6 3.Nc3 c6 4.e4 dxe4 5.Nxe4 Bb4+ 6.Bd2 Qxd4 7.Bxb4 Qxe4+ 8.Be2 Na6 * D32 "GDR Tarrasch" 1.d4 d5 2.c4 e6 3.Nc3 c5 * D32 "GDR Tarrasch: 4.e3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.e3 * D32 "GDR Tarrasch: 4.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.Nf3 * D32 "GDR Tarrasch: 4.Cf3 cxd4 5.Cxd4 e5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.Nf3 cxd4 5.Nxd4 e5 * D32 "GDR Tarrasch: 4.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 * D32 "GDR Tarrasch: Gambito von Hennig-Schara" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 * D32 "GDR Tarrasch: Gambito von Hennig-Schara, 5.Dxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qxd4 * D32 "GDR Tarrasch: Gambito von Hennig-Schara, 5.Dxd4 Cc6 6.Dd1 exd5 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qxd4 Nc6 6.Qd1 exd5 7.e3 * D32 "GDR Tarrasch: Gambito von Hennig-Schara, 5.Da4+" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ * D32 "GDR Tarrasch: Gambito von Hennig-Schara, 7.Dxd5 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 * D32 "GDR Tarrasch: Gambito von Hennig-Schara, 7.Dxd5 Cc6 8.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 8.Bg5 * D32 "GDR Tarrasch: Gambito von Hennig-Schara, 7.Dxd5 Cc6 8.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 8.Nf3 * D32 "GDR Tarrasch: Gambito von Hennig-Schara, Línea Principal (11.Ae2 O-O-O)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 cxd4 5.Qa4+ Bd7 6.Qxd4 exd5 7.Qxd5 Nc6 8.Nf3 Nf6 9.Qd1 Bc5 10.e3 Qe7 11.Be2 O-O-O * D32 "GDR Tarrasch: 4.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 * D32 "GDR Tarrasch: 5.g3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.g3 * D32 "GDR Tarrasch: 5.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.dxc5 * D32 "GDR Tarrasch: 5.dxc5, Gambito Tarrasch" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.dxc5 d4 6.Na4 b5 * D32 "GDR Tarrasch: Gambito Marshall" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 * D32 "GDR Tarrasch: Gambito Marshall" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 dxe4 * D32 "GDR Tarrasch: Gambito Marshall, Moderna 6.Ac4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 dxe4 6.Bc4 * D32 "GDR Tarrasch: Gambito Marshall, 6.d5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.e4 dxe4 6.d5 * D32 "GDR Tarrasch: 5.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 * D32 "GDR Tarrasch: 5.Cf3 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.Af4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bf4 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.Af4 Cf6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bf4 Nf6 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bg5 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.Ag5 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.Bg5 Be7 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ab5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Bb5 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 Be7 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2 Ae7 8.dxc5 Axc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 Be7 8.dxc5 Bxc5 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2 cxd4 8.Cxd4 Ad6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2 cxd4 8.Cxd4 Ad6 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2 cxd4 8.Cxd4 Ad6 9.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O O-O * D32 "GDR Tarrasch: 5.Cf3 Cc6 6.e3 Cf6 7.Ae2 cxd4 8.Cxd4 Ad6 9.O-O O-O 10.b3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.e3 Nf6 7.Be2 cxd4 8.Nxd4 Bd6 9.O-O O-O 10.b3 * D33 "GDR Tarrasch: 6.g3 (Schlecter/Rubinstein)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 * D33 "GDR Tarrasch: 6.g3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 cxd4 * D33 "GDR Tarrasch: Variante Sueca" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 * D33 "GDR Tarrasch: Sueca, Variante Rey Ardid" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.e4 * D33 "GDR Tarrasch: Sueca, 7.Ag2" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 * D33 "GDR Tarrasch: Sueca, 7.Ag2 Ab4 8.O-O Cge7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 * D33 "GDR Tarrasch: Sueca, 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.a3 * D33 "GDR Tarrasch: Sueca, 9.Ad2" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.Bd2 * D33 "GDR Tarrasch: Sueca, 9.Ce5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.Ne5 * D33 "GDR Tarrasch: Sueca, 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.e4 * D33 "GDR Tarrasch: Sueca, 9.e4 dxe4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 c4 7.Bg2 Bb4 8.O-O Nge7 9.e4 dxe4 * D33 "GDR Tarrasch: 6.g3 Cf6 (Praga)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 * D33 "GDR Tarrasch: 6.g3 Cf6 (Praga)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 * D33 "GDR Tarrasch: 7.Ag2 Ae6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be6 * D33 "GDR Tarrasch: Variante Wagner" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Bg4 * D33 "GDR Tarrasch: 7.Ag2 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 * D33 "GDR Tarrasch: 7.Ag2 cxd4 8.Cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 * D33 "GDR Tarrasch: 7.Ag2 cxd4 8.Cxd4 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 * D33 "GDR Tarrasch: 7.Ag2 cxd4 8.Cxd4 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 9.O-O * D33 "GDR Tarrasch: 7.Ag2 cxd4 8.Cxd4 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 9.O-O O-O * D33 "GDR Tarrasch: 7.Ag2 cxd4 8.Cxd4 Ae7 9.O-O O-O 10.Ae3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 cxd4 8.Nxd4 Be7 9.O-O O-O 10.Be3 * D34 "GDR Tarrasch: 7.Ag2 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 * D34 "GDR Tarrasch: 7.Ag2 Ae7 8.O-O" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O * D34 "GDR Tarrasch: 7.Ag2 Ae7 8.O-O Ae6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O Be6 * D34 "GDR Tarrasch: 8.O-O O-O (Línea Principal)" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O * D34 "GDR Tarrasch: 9.b3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.b3 * D34 "GDR Tarrasch: 9.b3 Ce4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.b3 Ne4 * D34 "GDR Tarrasch: 9.Af4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bf4 * D34 "GDR Tarrasch: 9.Ae3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Be3 * D34 "GDR Tarrasch: 9.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 * D34 "GDR Tarrasch: Gambito Tarrasch" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 d4 * D34 "GDR Tarrasch: 9.dxc5 Axc5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 * D34 "GDR Tarrasch: Variante Reti" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Na4 * D34 "GDR Tarrasch: 9.dxc5 Axc5 10.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 * D34 "GDR Tarrasch: 9.dxc5 Axc5 10.Ag5 Ae6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 Be6 * D34 "GDR Tarrasch: 9.dxc5 Axc5 10.Ag5 Ae6 11.Axf6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 Be6 11.Bxf6 * D34 "GDR Tarrasch: 9.dxc5 Axc5 10.Ag5 d4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 d4 * D34 "GDR Tarrasch: 9.dxc5 Axc5 10.Ag5 d4 11.Axf6 Dxf6 12.Cd5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 d4 11.Bxf6 Qxf6 12.Nd5 * D34 "GDR Tarrasch: 9.dxc5 Axc5 10.Ag5 d4 11.Axf6: Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.dxc5 Bxc5 10.Bg5 d4 11.Bxf6 Qxf6 12.Nd5 Qd8 13.Nd2 Re8 * D34 "GDR Tarrasch: 9.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 * D34 "GDR Tarrasch: 9.Ag5 Ae6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 Be6 * D34 "GDR Tarrasch: Variante Stoltz" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 Be6 10.Rc1 b6 * D34 "GDR Tarrasch: Variante Bogoljubow" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 Be6 10.Rc1 c4 * D34 "GDR Tarrasch: 9.Ag5 c4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 c4 * D34 "GDR Tarrasch: 9.Ag5 c4 10.Ce5 Ae6 11.Cxc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 c4 10.Ne5 Be6 11.Nxc6 * D34 "GDR Tarrasch: 9.Ag5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 * D34 "GDR Tarrasch: 9.Ag5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 * D34 "GDR Tarrasch: 9.Ag5 cxd4 10.Cxd4 h6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 * D34 "GDR Tarrasch: 9.Ag5 cxd4 10.Cxd4 h6 11.Ae3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 * D34 "GDR Tarrasch: 9.Ag5 cxd4 10.Cxd4 h6 11.Ae3 Te8" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 * D34 "GDR Tarrasch: 9.Ag5 cxd4 10.Cxd4 h6 11.Ae3 Te8 12.Db3" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Qb3 * D34 "GDR Tarrasch: 9.Ag5 cxd4 10.Cxd4 h6 11.Ae3 Te8 12.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 * D34 "GDR Tarrasch: 9.Ag5 cxd4 10.Cxd4 h6 11.Ae3 Te8 12.Tc1 Af8" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 Bf8 * D34 "GDR Tarrasch: 9.Ag5 cxd4 10.Cxd4 h6 11.Ae3 Te8 12.Tc1 Af8 13.Cxc6" 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5 5.Nf3 Nc6 6.g3 Nf6 7.Bg2 Be7 8.O-O O-O 9.Bg5 cxd4 10.Nxd4 h6 11.Be3 Re8 12.Rc1 Bf8 13.Nxc6 * D35 "GDR: 3.Cc3 Cf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 * D35 "GDR: 3.Cc3 Cf6 4.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.e3 * D35 "GDR: Ataque Harrwitz" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bf4 * D35 "GDR: Catalan sin Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.g3 * D35 "GDR: Intercambio" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 * D35 "GDR: Intercambio, 4...Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 Nxd5 * D35 "GDR: Intercambio" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 * D35 "GDR: Intercambio, Variante Sämisch" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bf4 * D35 "GDR: Intercambio, 5.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 * D35 "GDR: Intercambio, 5.Cf3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 c6 * D35 "GDR: Intercambio, 5.Cf3 c6 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 c6 6.e3 * D35 "GDR: Intercambio, 5.Cf3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 * D35 "GDR: Intercambio, 5.Cf3 Cbd7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 6.e3 * D35 "GDR: Intercambio, 5.Cf3 Cbd7 6.e3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 6.e3 c6 * D35 "GDR: Intercambio, 5.Cf3 Cbd7 6.Af4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Nbd7 6.Bf4 * D35 "GDR: Intercambio, 5.Cf3 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 * D35 "GDR: Intercambio, 5.Cf3 Ae7 6.Af4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 * D35 "GDR: Intercambio, 5.Cf3 Ae7 6.Af4 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 c6 * D35 "GDR: Intercambio, 5.Cf3 Ae7 6.Af4 c6 7.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 c6 7.Qc2 * D35 "GDR: Intercambio, 5.Cf3 Ae7 6.Af4 c6 7.Dc2 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Nf3 Be7 6.Bf4 c6 7.Qc2 Nbd7 * D35 "GDR: Intercambio, 5.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 * D35 "GDR: Intercambio, 5.Ag5 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Nbd7 * D35 "GDR: Intercambio, 5.Ag5 Cbd7 6.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Nbd7 6.Nf3 * D35 "GDR: Intercambio, 5.Ag5 Cbd7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Nbd7 6.e3 * D35 "GDR: Intercambio, 5.Ag5 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 * D35 "GDR: Intercambio, 5.Ag5 Ae7 6.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.Nf3 * D35 "GDR: Intercambio, 5.Ag5 Ae7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 * D35 "GDR: Intercambio, 5.Ag5 Ae7 6.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 h6 * D35 "GDR: Intercambio, 5.Ag5 Ae7 6.e3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 Nbd7 * D35 "GDR: Intercambio, 5.Ag5 Ae7 6.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 Be7 6.e3 O-O * D35 "GDR: Intercambio, 5.Ag5 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 * D35 "GDR: Intercambio, 5.Ag5 c6 6.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Nf3 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Nbd7 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Nf3 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Cf3 Af5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Nf3 Bf5 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Cf3 Af5 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Nf3 Bf5 8.Bd3 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3 Ce4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Ne4 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3 Cbd7 8.Cge2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 8.Nge2 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3 Cbd7 8.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 Nbd7 8.Nf3 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3 O-O 8.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O 8.Nf3 * D35 "GDR: Intercambio, 5.Ag5 c6 6.e3 Ae7 7.Ad3 O-O 8.Cge2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.e3 Be7 7.Bd3 O-O 8.Nge2 * D36 "GDR: Intercambio, 5.Ag5 c6 6.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 * D36 "GDR: Intercambio, 5.Ag5 c6 6.Dc2 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 g6 * D36 "GDR: Intercambio, 5.Ag5 c6 6.Dc2 Ca6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Na6 * D36 "GDR: Intercambio, 6.Dc2 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.Cf3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 Nbd7 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.Cf3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 O-O * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.Cf3 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 g6 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.Cf3 g6 8.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.Nf3 g6 8.e3 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 O-O * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 O-O 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 O-O 8.Bd3 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 h6 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 h6 8.Bh4 O-O * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 h6 8.Bh4 O-O 9.Bd3 Re8 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 Cbd7 8.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Nf3 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 Cbd7 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 * D36 "GDR: Intercambio, 6.Dc2 Ae7 7.e3 Cbd7 8.Ad3 Cf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 Nf8 * D36 "GDR: Intercambio, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O * D36 "GDR: Intercambio, Línea Principal, 9.Cge2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 * D36 "GDR: Intercambio, Línea Principal, 9.Cge2 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 h6 * D36 "GDR: Intercambio, Línea Principal, 9.Cge2 h6 10.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 h6 10.Bh4 * D36 "GDR: Intercambio, Línea Principal, 9.Cge2 Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 * D36 "GDR: Intercambio, Línea Principal, 9.Cge2 Te8 10.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 10.O-O * D36 "GDR: Intercambio, Línea Principal, 9.Cge2 Te8 10.O-O Cf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 10.O-O Nf8 * D36 "GDR: Intercambio, Línea Principal, 9.Cge2 Te8 10.O-O Cf8 11.f3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nge2 Re8 10.O-O Nf8 11.f3 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 h6 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 h6 10.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 h6 10.Bh4 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.h3 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.h3 Cf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.h3 Nf8 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.h3 Cf8 11.Af4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.h3 Nf8 11.Bf4 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O h6 11.Bh4 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O-O Cf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O Nf8 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O-O Cf8 11.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O-O Nf8 11.h3 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O h6 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O h6 11.Bf4 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O h6 11.Bh4 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O Cf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O Cf8 11.Tae1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.Rae1 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O Cf8 11.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.h3 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O Cf8 11.h3 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.h3 g6 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O Cf8 11.Tab1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.Rab1 * D36 "GDR: Intercambio, Línea Principal, 9.Cf3 Te8 10.O-O Cf8 11.Tab1 a5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.cxd5 exd5 5.Bg5 c6 6.Qc2 Be7 7.e3 Nbd7 8.Bd3 O-O 9.Nf3 Re8 10.O-O Nf8 11.Rab1 a5 * D37 "GDR: 4.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 * D37 "GDR: Westphalia sin Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Nbd7 * D37 "GDR: Westphalia: 4.Cf3 Cbd7 5.Af4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Nbd7 5.Bf4 * D37 "GDR: 4.Cf3 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 * D37 "GDR: 4.Cf3 Ae7 5.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.cxd5 Nxd5 * D37 "GDR: 4.Cf3 Ae7 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 * D37 "GDR: 4.Cf3 Ae7 5.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 O-O * D37 "GDR: 4.Cf3 Ae7 5.e3 O-O 6.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 O-O 6.b3 * D37 "GDR: 4.Cf3 Ae7 5.e3 O-O 6.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 O-O 6.Bd3 * D37 "GDR: Variante Clásica" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 * D37 "GDR: Clásica, 5...O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O * D37 "GDR: Clásica, 5...O-O 6.e3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 Nbd7 * D37 "GDR: Clásica, 5...O-O 6.e3 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 b6 * D37 "GDR: Clásica, 5...O-O 6.e3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c6 * D37 "GDR: Clásica, 5...O-O 6.e3 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.a3 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5 8.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.cxd5 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5 8.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5 8.Dc2 Cc6 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5 8.Dc2 Cc6 9.a3 Da5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5 8.Dc2 Cc6 9.a3 Da5 10.Td1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 10.Rd1 * D37 "GDR: Clásica, 5...O-O 6.e3 c5 7.dxc5 Axc5 8.Dc2 Cc6 9.a3 Da5 10.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.Bf4 O-O 6.e3 c5 7.dxc5 Bxc5 8.Qc2 Nc6 9.a3 Qa5 10.O-O-O * D38 "GDR: Ragozin" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 * D38 "GDR: Ragozin, 5.Da4+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Qa4+ * D38 "GDR: Ragozin, 5.Da4+ Cc6 6.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Qa4+ Nc6 6.cxd5 * D38 "GDR: Ragozin, 5.Da4+ Cc6 6.cxd5 exd5 7.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Qa4+ Nc6 6.cxd5 exd5 7.Bg5 * D38 "GDR: Ragozin, 5.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 * D38 "GDR: Ragozin, 5.cxd5 exd5 6.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 exd5 6.Bg5 * D38 "GDR: Ragozin, 5.cxd5 exd5 6.Ag5 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 exd5 6.Bg5 h6 * D38 "GDR: Ragozin, 5.cxd5 exd5 6.Ag5 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.cxd5 exd5 6.Bg5 h6 7.Bh4 * D38 "GDR: Ragozin, 5.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 * D38 "GDR: Ragozin, Variante de Westphalia" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 Nbd7 * D38 "GDR: Ragozin, Westphalia, 7.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 Nbd7 6.cxd5 exd5 7.Qc2 * D38 "GDR: Ragozin, Westphalia, 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 Nbd7 6.cxd5 exd5 7.e3 * D38 "GDR: Ragozin, 5.Ag5 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 * D38 "GDR: Ragozin, 5.Ag5 h6 6.Axf6 Dxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 * D38 "GDR: Ragozin, 5.Ag5 h6 6.Axf6 Dxf6 7.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.cxd5 * D38 "GDR: Ragozin, 5.Ag5 h6 6.Axf6 Dxf6 7.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.cxd5 exd5 * D38 "GDR: Ragozin, 5.Ag5 h6 6.Axf6 Dxf6 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 * D38 "GDR: Ragozin, 5.Ag5 h6 6.Axf6 Dxf6 7.e3 O-O 8.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 O-O 8.Rc1 * D39 "GDR: Ragozin, Variante de Vienna" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 * D39 "GDR: Ragozin, Vienna, 6.Da4+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.Qa4+ * D39 "GDR: Ragozin, Vienna, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.e5 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.e5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.e5 cxd4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.e5 cxd4 8.Da4+ Cc6 9.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.e5 cxd4 8.Qa4+ Nc6 9.O-O-O * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.Axc4, 8...Da5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.Axc4, 8...Axc3+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.Axc4, 8...Axc3+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 * D39 "GDR: Ragozin, Vienna, 6.e4 c5 7.Axc4, 8...Axc3+, 10.Ab5+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Bb4 5.Bg5 dxc4 6.e4 c5 7.Bxc4 cxd4 8.Nxd4 * D40 "GDR: Semi-Tarrasch" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 * D40 "GDR: Semi-Tarrasch, 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 * D40 "GDR: Semi-Tarrasch, 5.e3 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Be7 * D40 "GDR: Semi-Tarrasch, 5.e3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 cxd4 * D40 "GDR: Semi-Tarrasch, 5.e3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 a6 * D40 "GDR: Semi-Tarrasch, 5.e3 a6 6.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 a6 6.cxd5 * D40 "GDR: Semi-Tarrasch, 5.e3 a6 6.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 a6 6.cxd5 exd5 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.Bd3 * D40 "GDR: Semi-Tarrasch, Variante Simétrica" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.Bd3 Bd6 7.O-O O-O * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 Ce4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 Ne4 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 dxc4 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 cxd4 7.exd4 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 cxd4 7.exd4 Ae7 8.c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 8.c5 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 cxd4 7.exd4 Ae7 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 cxd4 7.exd4 Be7 8.Bd3 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 a6 7.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.b3 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 a6 7.dxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.dxc5 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 a6 7.dxc5 Axc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.dxc5 Bxc5 * D40 "GDR: Semi-Tarrasch, 5.e3 Cc6 6.a3 a6 7.dxc5 Axc5 8.b4 Aa7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.e3 Nc6 6.a3 a6 7.dxc5 Bxc5 8.b4 Ba7 * D41 "GDR: Semi-Tarrasch, 5.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 * D41 "GDR: Semi-Tarrasch, Contrataque Keres" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 cxd4 * D41 "GDR: Semi-Tarrasch, 5.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 * D41 "GDR: Semi-Tarrasch, 6.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 * D41 "GDR: Semi-Tarrasch, 6.g3 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 * D41 "GDR: Semi-Tarrasch, 6.g3 Cc6 7.Ag2 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 * D41 "GDR: Semi-Tarrasch, 6.g3, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O * D41 "GDR: Semi-Tarrasch, 6.g3, Línea Principal, 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.e4 * D41 "GDR: Semi-Tarrasch, 6.g3, Línea Principal, 9.e4 Cb6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.e4 Nb6 * D41 "GDR: Semi-Tarrasch, 6.g3, Línea Principal, 9.e4 Cdb4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.e4 Ndb4 * D41 "GDR: Semi-Tarrasch, 6.g3, Línea Principal, 9.Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.Nxd5 * D41 "GDR: Semi-Tarrasch, 6.g3, Línea Principal, 9.Cxd5 exd5 10.dxc5 Axc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.Nxd5 exd5 10.dxc5 Bxc5 * D41 "GDR: Semi-Tarrasch, 6.g3, Línea Principal, 9.Cxd5 exd5 10.dxc5 Axc5 11.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.g3 Nc6 7.Bg2 Be7 8.O-O O-O 9.Nxd5 exd5 10.dxc5 Bxc5 11.Bg5 * D41 "GDR: Semi-Tarrasch, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 * D41 "GDR: Semi-Tarrasch, 6.e4 Cxc3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 * D41 "GDR: Semi-Tarrasch, 6.e4, 8.cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 * D41 "GDR: Semi-Tarrasch, 6.e4, 8.cxd4 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Nc6 * D41 "GDR: Semi-Tarrasch, 6.e4, 8.cxd4 Ab4+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ * D41 "GDR: Semi-Tarrasch, 6.e4, Variante de San Sebastián" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Qa5 * D41 "GDR: Semi-Tarrasch, 6.e4, Variante Kmoch" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bb5 * D41 "GDR: Semi-Tarrasch, 6.e4, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 * D41 "GDR: Semi-Tarrasch, 6.e4, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 Nc6 12.O-O * D41 "GDR: Semi-Tarrasch, 6.e4, Línea Principal, 12...b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 Nc6 12.O-O b6 * D41 "GDR: Semi-Tarrasch, 6.e4, Línea Principal, 12...b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e4 Nxc3 7.bxc3 cxd4 8.cxd4 Bb4+ 9.Bd2 Bxd2+ 10.Qxd2 O-O 11.Bc4 Nc6 12.O-O b6 13.Rad1 * D41 "GDR: Semi-Tarrasch, 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 * D41 "GDR: Semi-Tarrasch, 6.e3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 cxd4 * D41 "GDR: Semi-Tarrasch, 6.e3 cxd4 7.exd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 cxd4 7.exd4 * D41 "GDR: Semi-Tarrasch, 6.e3 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 * D41 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ac4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 * D41 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ac4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 * D41 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ac4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 * D41 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ac4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O * D41 "GDR: Semi-Tarrasch, 7.Ac4 Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 * D41 "GDR: Semi-Tarrasch, 7.Ac4 Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 b6 12.Bd3 Bb7 * D41 "GDR: Semi-Tarrasch, 7.Ac4 Línea Principal, 13.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 b6 12.Bd3 Bb7 13.Qc2 * D41 "GDR: Semi-Tarrasch, 7.Ac4 Línea Principal, 13.h4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bc4 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nxc3 11.bxc3 b6 12.Bd3 Bb7 13.h4 * D41 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ae7 7.cxd5 Cxd5" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.cxd5 Nxd5 * D41 "Caro-Kann: Panov-Botvinnik, 5...e6 6.Cf3 Ae7 7.cxd5 Cxd5 8.Ad3" 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4 Nf6 5.Nc3 e6 6.Nf3 Be7 7.cxd5 Nxd5 8.Bd3 * D42 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 * D42 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ad3 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 Be7 * D42 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ad3 Ae7 8.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 Be7 8.O-O O-O * D42 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ad3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 * D42 "GDR: Semi-Tarrasch, 6.e3 Cc6 7.Ad3 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 9.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.a3 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.a3 Cf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.a3 Nf6 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.a3 Af6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.a3 Bf6 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Ccb4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Ncb4 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Cf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Cf6 11.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.Bg5 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Cf6 11.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Cf6 11.a3 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Cf6 11.a3 b6 12.Ae3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 12.Be3 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Cf6 11.a3 b6 12.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 12.Bg5 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Cf6 11.a3 b6 12.Ac2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Nf6 11.a3 b6 12.Bc2 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Af6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Af6 11.Ae4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 11.Be4 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Af6 11.Ae4 Cce7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 11.Be4 Nce7 * D42 "GDR: Semi-Tarrasch, 7.Ad3 Línea Principal, 10.Te1 Af6 11.Ae4 Cce7 12.Ce5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c5 5.cxd5 Nxd5 6.e3 Nc6 7.Bd3 cxd4 8.exd4 Be7 9.O-O O-O 10.Re1 Bf6 11.Be4 Nce7 12.Ne5 * D43 "Semi-Eslava" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 * D43 "Semi-Eslava: 5.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.g3 * D43 "Semi-Eslava: 5.Dd3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Qd3 * D43 "Semi-Eslava: 5.Db3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Qb3 * D43 "Semi-Eslava: 5.Db3 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Qb3 dxc4 6.Qxc4 * D43 "Semi-Eslava: Botvinnik (Anti-Merano)" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 * D43 "Semi-Eslava: Botvinnik, 5...Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 * D43 "Semi-Eslava: Botvinnik, 5...Ae7 6.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 * D43 "Semi-Eslava: Botvinnik, 5...Ae7 6.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 O-O * D43 "Semi-Eslava: Botvinnik, 5...Ae7 6.e3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 Nbd7 * D43 "Semi-Eslava: Botvinnik, 5...Ae7 6.e3 Cbd7 7.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 Be7 6.e3 Nbd7 7.Bd3 * D43 "Semi-Eslava: Variante de Moscú" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 * D43 "Semi-Eslava: Moscú, Gambito 6.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 * D43 "Semi-Eslava: Moscú, 6.Ah4 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 Be7 * D43 "Semi-Eslava: Moscú, 6.Ah4 Ae7 7.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 Be7 7.e3 O-O * D43 "Semi-Eslava: Moscú, Gambito 6.Ah4 Aceptado" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 * D43 "Semi-Eslava: Moscú, Gambito 6.Ah4, 7.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 7.e4 * D43 "Semi-Eslava: Moscú, Gambito 6.Ah4, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 7.e4 g5 8.Bg3 b5 9.Be2 * D43 "Semi-Eslava: Moscú, Gambito 6.Ah4, Línea Principal, 9...Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bh4 dxc4 7.e4 g5 8.Bg3 b5 9.Be2 Bb7 * D43 "Semi-Eslava: Moscú, 6.Axf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 * D43 "Semi-Eslava: Moscú, 7.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.g3 * D43 "Semi-Eslava: Moscú, Variante de Hastings" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.Qb3 * D43 "Semi-Eslava: Moscú, 7.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.Qc2 * D43 "Semi-Eslava: Moscú, 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 * D43 "Semi-Eslava: Moscú, 7.e3 Cd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 * D43 "Semi-Eslava: Moscú, 7.e3 Cd7 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D43 "Semi-Eslava: Moscú, 7.e3 Cd7 8.Ad3 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D43 "Semi-Eslava: Moscú, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D43 "Semi-Eslava: Moscú, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D43 "Semi-Eslava: Moscú, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D43 "Semi-Eslava: Moscú, Línea Principal, 11.b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D43 "Semi-Eslava: Moscú, Línea Principal, 11.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 h6 6.Bxf6 Qxf6 7.e3 Nd7 8.Bd3 * D44 "Semi-Eslava: Botvinnik Aceptada" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 * D44 "Semi-Eslava: Botvinnik, 6.a4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.a4 * D44 "Semi-Eslava: Botvinnik, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 * D44 "Semi-Eslava: Botvinnik, 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 * D44 "Semi-Eslava: Botvinnik, 7.a4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.a4 * D44 "Semi-Eslava: Botvinnik, 7.e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 * D44 "Semi-Eslava: Botvinnik, 9.exf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.exf6 * D44 "Semi-Eslava: Botvinnik, Variante Ekstrom" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.exf6 gxh4 10.Ne5 * D44 "Semi-Eslava: Botvinnik, 9.Cxg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 * D44 "Semi-Eslava: Botvinnik, Variante Alatortsev" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 Nd5 * D44 "Semi-Eslava: Botvinnik, 9.Cxg5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 * D44 "Semi-Eslava: Botvinnik, Variante Lilienthal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.g3 * D44 "Semi-Eslava: Botvinnik, Lilienthal, 11...Da5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.g3 Qa5 * D44 "Semi-Eslava: Botvinnik, Lilienthal, 11...Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.g3 Bb7 * D44 "Semi-Eslava: Botvinnik, Variante Szabo" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.Qf3 * D44 "Semi-Eslava: Botvinnik, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 * D44 "Semi-Eslava: Botvinnik, Línea Principal, 12.g3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 Bb7 12.g3 * D44 "Semi-Eslava: Botvinnik, Línea Principal, 12.g3 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 Bb7 12.g3 c5 * D44 "Semi-Eslava: Botvinnik, Línea Principal, 12.g3 c5 13.d5 Db6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5 9.Nxg5 hxg5 10.Bxg5 Nbd7 11.exf6 Bb7 12.g3 c5 13.d5 Qb6 * D45 "Semi-Eslava: 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 * D45 "Semi-Eslava: 5.e3 Ad6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Bd6 * D45 "Semi-Eslava: 5.e3 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Be7 * D45 "Semi-Eslava: 5.e3 Ce4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Ne4 * D45 "Semi-Eslava: Defensa Muro de Piedra" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Ne4 6.Bd3 f5 * D45 "Semi-Eslava: Merano Acelerada (Variante Alekhine)" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 a6 * D45 "Semi-Eslava: 5.e3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 * D45 "Semi-Eslava: Sistema Rubinstein" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Ne5 * D45 "Semi-Eslava: 6.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.a3 * D45 "Semi-Eslava: 6.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 * D45 "Semi-Eslava: 6.Dc2 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 b6 * D45 "Semi-Eslava: 6.Dc2 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Be7 * D45 "Semi-Eslava: 6.Dc2 Ad6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.e4 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.g4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.g4 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 h6 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.g4 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 dxc4 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.g4 Ab4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 Bb4 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.g4 Cxg4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.g4 Nxg4 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.b3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O * D45 "Semi-Eslava: 6.Dc2 Ad6 7.b3 O-O 8.Ab2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Bb2 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.b3 O-O 8.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Be2 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.b3 O-O 8.Ae2 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Be2 b6 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.b3 O-O 8.Ae2 Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.b3 O-O 8.Be2 Re8 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.Ad2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Bd2 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.Ae2 O-O 8.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O * D45 "Semi-Eslava: 6.Dc2 Ad6 7.Ae2 O-O 8.O-O e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O e5 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.Ae2 O-O 8.O-O De7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O Qe7 * D45 "Semi-Eslava: 6.Dc2 Ad6 7.Ae2 O-O 8.O-O Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Qc2 Bd6 7.Be2 O-O 8.O-O Re8 * D46 "Semi-Eslava: 6.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 * D46 "Semi-Eslava: 6.Ad3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 a6 * D46 "Semi-Eslava: Variante Romih" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bb4 * D46 "Semi-Eslava: Romih, 7.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bb4 7.O-O * D46 "Semi-Eslava: Romih, 7.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bb4 7.O-O O-O * D46 "Semi-Eslava: Variante Bogoljubow" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 * D46 "Semi-Eslava: Bogoljubow, 7.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 7.O-O * D46 "Semi-Eslava: Bogoljubow, 7.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 7.O-O O-O * D46 "Semi-Eslava: Bogoljubow, 7.O-O O-O 8.b3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Be7 7.O-O O-O 8.b3 * D46 "Semi-Eslava: Defensa Chigorin" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 * D46 "Semi-Eslava: Chigorin, 7.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.e4 * D46 "Semi-Eslava: Chigorin, 7.e4 dxe4 8.Cxe4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.e4 dxe4 8.Nxe4 * D46 "Semi-Eslava: Chigorin, 7.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 * D46 "Semi-Eslava: Chigorin, 7.Dc2 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 dxc4 * D46 "Semi-Eslava: Chigorin, 7.Dc2 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 dxc4 8.Bxc4 * D46 "Semi-Eslava: Chigorin, 7.Dc2 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 e5 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...De7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...De7 10.Ad2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 10.Bd2 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...De7 10.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 10.a3 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...De7 10.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 Qe7 10.h3 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 a6 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...a6 10.Td1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 a6 10.Rd1 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...a6 10.Td1 b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 a6 10.Rd1 b5 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...b5 10.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 10.Be2 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...b5 10.Ae2 Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 10.Be2 Bb7 * D46 "Semi-Eslava: Chigorin, 7.Dc2 Línea Principal, 9...b5 10.Ae2 Ab7 11.Td1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.Qc2 O-O 8.O-O dxc4 9.Bxc4 b5 10.Be2 Bb7 11.Rd1 * D46 "Semi-Eslava: Chigorin, 7.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O * D46 "Semi-Eslava: Chigorin, 7.O-O O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O * D46 "Semi-Eslava: Chigorin, 7.O-O O-O 8.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 * D46 "Semi-Eslava: Chigorin, 7.O-O O-O 8.e4 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxc4 * D46 "Semi-Eslava: Chigorin, 7.O-O O-O 8.e4 dxc4 9.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxc4 9.Bxc4 * D46 "Semi-Eslava: Chigorin, 7.O-O O-O 8.e4 dxc4 9.Axc4 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxc4 9.Bxc4 e5 * D46 "Semi-Eslava: Chigorin, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 * D46 "Semi-Eslava: Chigorin, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 * D46 "Semi-Eslava: Chigorin, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 * D46 "Semi-Eslava: Chigorin, Línea Principal, 10...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 h6 * D46 "Semi-Eslava: Chigorin, Línea Principal, 10...h6 11.Ac2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 h6 11.Bc2 * D46 "Semi-Eslava: Chigorin, Línea Principal, 10...h6 11.Ac2 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 Bd6 7.O-O O-O 8.e4 dxe4 9.Nxe4 Nxe4 10.Bxe4 h6 11.Bc2 e5 * D47 "Semi-Eslava: Variante Merano" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 * D47 "Semi-Eslava: Variante Merano" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 * D47 "Semi-Eslava: Merano, 7...b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 * D47 "Semi-Eslava: Merano, Variante Freymann" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bb3 * D47 "Semi-Eslava: Merano, Freymann, 8...b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bb3 b4 * D47 "Semi-Eslava: Merano, Variante Capablanca" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 * D47 "Semi-Eslava: Merano, Capablanca, 8...b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 b4 * D47 "Semi-Eslava: Merano, Capablanca, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 a6 * D47 "Semi-Eslava: Merano, Capablanca, 8...Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 Bb7 * D47 "Semi-Eslava: Merano, Capablanca, 8...Ab7 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 Bb7 9.O-O * D47 "Semi-Eslava: Merano, Capablanca, 8...Ab7 9.O-O a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Be2 Bb7 9.O-O a6 * D47 "Semi-Eslava: Merano, 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 * D47 "Semi-Eslava: Merano, 8.Ad3 Ad6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bd6 * D47 "Semi-Eslava: Merano, Variante Lundin" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 * D47 "Semi-Eslava: Merano, Lundin, 9.Na4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Na4 * D47 "Semi-Eslava: Merano, Lundin, 9.Ce4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 * D47 "Semi-Eslava: Merano, Lundin, 9.Ce4 Cxe4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 Nxe4 * D47 "Semi-Eslava: Merano, Lundin, 9.Ce4 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 Be7 * D47 "Semi-Eslava: Merano, Lundin, 9.Ce4 Ae7 10.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 b4 9.Ne4 Be7 10.O-O * D47 "Semi-Eslava: Merano, Variante Wade" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 * D47 "Semi-Eslava: Merano, Wade, 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.a3 * D47 "Semi-Eslava: Merano, Wade, 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O * D47 "Semi-Eslava: Merano, Wade, 9.O-O b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 * D47 "Semi-Eslava: Merano, Wade, 9.O-O b4 10.Ce4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 * D47 "Semi-Eslava: Merano, Wade, 9.O-O b4 10.Ce4 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 * D47 "Semi-Eslava: Merano, Wade, 9.O-O b4 10.Ce4 Ae7 11.Cxf6+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 11.Nxf6+ * D47 "Semi-Eslava: Merano, Wade, 9.O-O b4 10.Ce4 Ae7 11.Cxf6+ Cxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 11.Nxf6+ Nxf6 * D47 "Semi-Eslava: Merano, Wade, 9.O-O b4 10.Ce4 Ae7 11.Cxf6+ Cxf6 12.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O b4 10.Ne4 Be7 11.Nxf6+ Nxf6 12.e4 * D47 "Semi-Eslava: Merano, Wade, 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 * D47 "Semi-Eslava: Merano, Wade, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 b4 10.Na4 c5 11.e5 Nd5 * D47 "Semi-Eslava: Merano, Wade, Línea Principal, 12.Cxc5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 b4 10.Na4 c5 11.e5 Nd5 12.Nxc5 * D47 "Semi-Eslava: Merano, Wade, Línea Principal, 12.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.e4 b4 10.Na4 c5 11.e5 Nd5 12.O-O * D48 "Semi-Eslava: Merano, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 * D48 "Semi-Eslava: Merano, 8...a6 9.a4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.a4 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O * D48 "Semi-Eslava: Merano, 8...a6 9.O-O c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O c5 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O c5 10.De2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O c5 10.Qe2 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O Ab7 10.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O Ab7 10.e4 c5 11.d5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O Ab7 10.e4 c5 11.d5 Dc7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O Ab7 10.e4 c5 11.d5 Dc7 12.dxe6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 12.dxe6 * D48 "Semi-Eslava: Merano, 8...a6 9.O-O Ab7 10.e4 c5 11.d5 Dc7 12.dxe6 fxe6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.O-O Bb7 10.e4 c5 11.d5 Qc7 12.dxe6 fxe6 * D48 "Semi-Eslava: Merano, 8...a6 9.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 * D48 "Semi-Eslava: Merano, 8...a6 9.e4 Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 Bb7 * D48 "Semi-Eslava: Merano, Variante Pirc" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 b4 * D48 "Semi-Eslava: Merano, 8...a6 9.e4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 * D48 "Semi-Eslava: Merano, Variante Reynolds" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 * D48 "Semi-Eslava: Merano, Reynolds, 10...e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 e5 * D48 "Semi-Eslava: Merano, Reynolds, 10...Dc7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 Qc7 * D48 "Semi-Eslava: Merano, Reynolds, 10...c4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 * D48 "Semi-Eslava: Merano, Reynolds, 10...c4 11.dxe6 fxe6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 * D48 "Semi-Eslava: Merano, Reynolds, 10...c4 11.dxe6 fxe6 12.Ac2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 12.Bc2 * D48 "Semi-Eslava: Merano, Reynolds, 10...c4 11.dxe6 fxe6 12.Ac2 Dc7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 12.Bc2 Qc7 * D48 "Semi-Eslava: Merano, Reynolds, 10...c4 11.dxe6 fxe6 12.Ac2 Dc7 13.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.d5 c4 11.dxe6 fxe6 12.Bc2 Qc7 13.O-O * D48 "Semi-Eslava: Merano, Línea Principal Antigua" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 * D48 "Semi-Eslava: Merano, Variante Rabinovich" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 Ng4 * D48 "Semi-Eslava: Merano, Línea Principal Antigua, 10...cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 * D49 "Semi-Eslava: Merano, Variante Blumenfeld" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 * D49 "Semi-Eslava: Merano, Línea Principal Antigua, Variante Gligoric" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Ng4 * D49 "Semi-Eslava: Merano, Línea Principal Antigua, Gligoric, 12.Da4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Ng4 12.Qa4 * D49 "Semi-Eslava: Merano, Variante Trifunovic" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Ng4 12.Qa4 Ngxe5 * D49 "Semi-Eslava: Merano, Variante Sozin" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 * D49 "Semi-Eslava: Merano, Sozin, Ataque Rellstab" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.O-O * D49 "Semi-Eslava: Merano, Sozin, Ataque Stahlberg" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.Qf3 * D49 "Semi-Eslava: Merano, Sozin, Ataque Stahlberg, 13...Ab4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.Qf3 Bb4 * D49 "Semi-Eslava: Merano, Sozin, 13.Axb5+" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 Nxe5 12.Nxe5 axb5 13.Bxb5+ * D49 "Semi-Eslava: Merano, Línea Principal Antigua, 11.Cxb5 axb5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 axb5 * D49 "Semi-Eslava: Merano, Línea Principal Antigua, Variante Botvinnik" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 axb5 12.exf6 Qb6 * D49 "Semi-Eslava: Merano, Línea Principal Antigua, 11.Cxb5 axb5 12.exf6 gxf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 c6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 9.e4 c5 10.e5 cxd4 11.Nxb5 axb5 12.exf6 gxf6 * D50 "GDR: 4.Ag5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 * D50 "GDR: 4.Ag5 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c6 * D50 "GDR: 4.Ag5 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 dxc4 * D50 "GDR: 4.Ag5 Ab4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Bb4 * D50 "GDR: Gambito Holandés-Peruano" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 * D50 "GDR: Holandés-Peruano, 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.e3 * D50 "GDR: Semi-Tarrasch, Variante Pillsbury" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 * D50 "GDR: Semi-Tarrasch, Variante Pillsbury Antigua" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Qxd4 * D50 "GDR: Semi-Tarrasch, Pillsbury, 6.Cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Nxd4 * D50 "GDR: Semi-Tarrasch, Pillsbury, 6.Cxd4 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Nxd4 e5 * D50 "GDR: Semi-Tarrasch, Pillsbury, Variante Krause" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.Nf3 cxd4 6.Nxd4 e5 7.Ndb5 a6 8.Qa4 * D50 "GDR: Holandés-Peruano, 5.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 * D50 "GDR: Holandés-Peruano, Variante Canal (Venecia)" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 Qb6 * D50 "GDR: Holandés-Peruano, Variante Prins" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 cxd4 * D50 "GDR: Holandés-Peruano, Prins, 6.Dxd4 Ae7 7.e4 Cc6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 cxd4 6.Qxd4 Be7 7.e4 Nc6 * D50 "GDR: Holandés-Peruano, Prins, 6.Dxd4 Ae7 7.e4 Cc6 8.Dd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 c5 5.cxd5 cxd4 6.Qxd4 Be7 7.e4 Nc6 8.Qd2 * D51 "GDR: 4.Ag5 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 * D51 "GDR: 4.Ag5 Cbd7 5.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 * D51 "GDR: 4.Ag5 Cbd7 5.Cf3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 c6 * D51 "GDR: Variante Rochlin" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 c6 6.Rc1 Qa5 7.Bd2 * D51 "GDR: Alekhine 4.Ag5 Cbd7 5.Cf3 c6 6.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.Nf3 c6 6.e4 * D51 "GDR: 4.Ag5 Cbd7 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 * D51 "GDR: Variante de Manhattan" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 Bb4 * D51 "GDR: 4.Ag5 Cbd7 5.e3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 * D51 "GDR: Capablanca Anti-Cambridge Springs" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.a3 * D51 "GDR: 4.Ag5 Cbd7 5.e3 c6 6.cxd5 cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.cxd5 cxd5 * D51 "GDR: 4.Ag5 Cbd7 5.e3 c6 6.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Qc2 * D52 "GDR: 4.Ag5 Cbd7 5.e3 c6 6.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 * D52 "GDR: Defensa Cambridge Springs" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 * D52 "GDR: Cambridge Springs, Variante Capablanca" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Bxf6 * D52 "GDR: Cambridge Springs, 7.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.cxd5 * D52 "GDR: Cambridge Springs, Variante Yugoslava" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.cxd5 Nxd5 * D52 "GDR: Cambridge Springs, Yugoslava 8.Dd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.cxd5 Nxd5 8.Qd2 * D52 "GDR: Cambridge Springs, 7.Cd2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 * D52 "GDR: Cambridge Springs, Variante Rubinstein" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 dxc4 * D52 "GDR: Cambridge Springs, Variante Bogoljubow" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 * D52 "GDR: Cambridge Springs, Bogoljubow, 8.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 * D52 "GDR: Cambridge Springs, 8.Dc2 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 dxc4 * D52 "GDR: Cambridge Springs, 8.Dc2 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O * D52 "GDR: Cambridge Springs, Variante Argentina" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O 9.Bh4 * D52 "GDR: Cambridge Springs, 8.Dc2 O-O 9.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O 9.Be2 * D52 "GDR: Cambridge Springs, 8.Dc2 O-O 9.Ae2 e5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 O-O 9.Be2 e5 * D53 "GDR: 4.Ag5 Ae7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 * D53 "GDR: 4.Ag5 Ae7 5.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.cxd5 Nxd5 * D53 "GDR: 4.Ag5 Ae7 5.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6 6.Axf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6 6.Axf6 Axf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 Bxf6 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6 6.Axf6 Axf6 7.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bxf6 Bxf6 7.e3 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6 6.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6 6.Ah4 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6 6.Ah4 O-O 7.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O 7.Qc2 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 h6 6.Ah4 O-O 7.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 h6 6.Bh4 O-O 7.Rc1 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O * D53 "GDR: 4.Ag5 Ae7 5.Cf3 O-O 6.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 O-O 6.Dc2 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 Nbd7 * D53 "GDR: 4.Ag5 Ae7 5.Cf3 O-O 6.Dc2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.Nf3 O-O 6.Qc2 c5 * D53 "GDR: 4.Ag5 Ae7 5.e3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 * D53 "GDR: Variante Lasker Temprana" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 Ne4 * D53 "GDR: 4.Ag5 Ae7 5.e3 Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 Nbd7 * D53 "GDR: 4.Ag5 Ae7 5.e3 Cbd7 6.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 Nbd7 6.Nf3 * D53 "GDR: 4.Ag5 Ae7 5.e3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 h6 * D53 "GDR: 4.Ag5 Ae7 5.e3 O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O * D53 "GDR: 4.Ag5 Ae7 5.e3 O-O 6.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Qc2 * D53 "GDR: 4.Ag5 Ae7 5.e3 O-O 6.Dc2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Qc2 c5 * D54 "GDR: Variante Anti-Neo-Ortodoxa" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 * D54 "GDR: Variante Anti-Neo-Ortodoxa" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 * D54 "GDR: Anti-Neo-Ortodoxa, 7.Ah4 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 * D54 "GDR: Anti-Neo-Ortodoxa, 8.cxd5 Cxd5 9.Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 * D54 "GDR: Anti-Neo-Ortodoxa, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 exd5 10.Bxe7 Qxe7 * D54 "GDR: Anti-Neo-Ortodoxa, Línea Principal, 11.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Rc1 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 exd5 10.Bxe7 Qxe7 11.Be2 * D55 "GDR: 6.Cf3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 * D55 "GDR: Lasker sin ...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Ne4 * D55 "GDR: 6.Cf3 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 * D55 "GDR: 6.Cf3 b6 7.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 7.Be2 * D55 "GDR: 6.Cf3 b6 7.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 7.cxd5 exd5 * D55 "GDR: 6.Cf3 b6 7.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 b6 7.cxd5 Nxd5 * D55 "GDR: Variante Neo-Ortodoxa" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 * D55 "GDR: Neo-Ortodoxa, 7.Axf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 * D55 "GDR: Neo-Ortodoxa, 7.Axf6 Axf6 8.Db3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 Bxf6 8.Qb3 * D55 "GDR: Neo-Ortodoxa, Variante Gligoric" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 Bxf6 8.Rc1 * D55 "GDR: Neo-Ortodoxa, Variante Petrosian" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bxf6 Bxf6 8.Rc1 c6 9.Bd3 Nd7 10.O-O dxc4 11.Bxc4 * D56 "GDR: Neo-Ortodoxa, 7.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 * D56 "GDR: Defensa Lasker" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 * D56 "GDR: Defensa Lasker, 9.Cxe4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Nxe4 * D56 "GDR: Defensa Lasker, Variante Teichmann" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Qc2 * D56 "GDR: Defensa Lasker, Teichmann, 9...c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Qc2 c6 * D56 "GDR: Defensa Lasker, Teichmann, 9...Cxc3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Qc2 Nxc3 * D56 "GDR: Defensa Lasker, 9.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Rc1 * D56 "GDR: Defensa Lasker, 9.Rc1 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Rc1 c6 * D56 "GDR: Defensa Lasker, 9.Rc1 c6 10.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.Rc1 c6 10.Bd3 * D57 "GDR: Defensa Lasker, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 * D57 "GDR: Defensa Lasker, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 * D57 "GDR: Defensa Lasker, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 * D57 "GDR: Defensa Lasker, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 * D57 "GDR: Defensa Lasker, Línea Principal, 11.Db3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 * D57 "GDR: Defensa Lasker, Línea Principal, Variante Bernstein" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 Qd6 * D57 "GDR: Defensa Lasker, Línea Principal, Bernstein, 12.c4 dxc4 13.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 Qd6 12.c4 dxc4 13.Bxc4 * D57 "GDR: Defensa Lasker, Línea Principal, 11.Db3 Td8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 Ne4 8.Bxe7 Qxe7 9.cxd5 Nxc3 10.bxc3 exd5 11.Qb3 Rd8 * D58 "GDR: Sistema Tartakower" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 * D58 "GDR: Tartakower, 8.Db3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Qb3 * D58 "GDR: Tartakower, 8.Dc2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Qc2 * D58 "GDR: Tartakower, 8.Axf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bxf6 * D58 "GDR: Tartakower, 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 * D58 "GDR: Tartakower, 8.Ad3 Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7 10.Ag3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Bg3 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7 10.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Rc1 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7 10.Tc1 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Rc1 c5 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7 10.De2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7 10.De2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7 10.De2 c5 11.Ag3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 11.Bg3 * D58 "GDR: Tartakower, 8.Ad3 Ab7 9.O-O Cbd7 10.De2 c5 11.Tfd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Bd3 Bb7 9.O-O Nbd7 10.Qe2 c5 11.Rfd1 * D58 "GDR: Tartakower, 8.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 * D58 "GDR: Tartakower, 8.Ae2 Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 * D58 "GDR: Tartakower, 8.Ae2 Ab7 9.Axf6 Axf6 10.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 * D58 "GDR: Tartakower, 8.Ae2 Ab7 9.Axf6 Axf6 10.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 * D58 "GDR: Tartakower, 8.Ae2 Ab7 9.Axf6 Axf6 10.cxd5 exd5 11.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.O-O * D58 "GDR: Tartakower, 8.Ae2 Ab7 9.Axf6 Axf6 10.cxd5 exd5 11.b4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 * D58 "GDR: Tartakower, 8.Ae2 Ab7 9.Axf6 Axf6 10.cxd5 exd5 11.b4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c5 * D58 "GDR: Tartakower, 8.Ae2 Ab7 9.Axf6 Axf6 10.cxd5 exd5 11.b4 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c6 * D58 "GDR: Tartakower, 8.Ae2 Ab7 9.Axf6 Axf6 10.cxd5 exd5 11.b4 c6 12.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Be2 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 11.b4 c6 12.O-O * D58 "GDR: Tartakower, 8.Rc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 * D58 "GDR: Tartakower, 8.Rc1 Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 * D58 "GDR: Tartakower, 8.Rc1 Ab7 9.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.cxd5 * D58 "GDR: Tartakower, 8.Rc1 Ab7 9.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.cxd5 exd5 * D58 "GDR: Tartakower, 8.Rc1 Ab7 9.Axf6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.Bxf6 * D58 "GDR: Tartakower, 8.Rc1 Ab7 9.Axf6 Axf6 10.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.Rc1 Bb7 9.Bxf6 Bxf6 10.cxd5 exd5 * D58 "GDR: Tartakower, 8.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 * D58 "GDR: Tartakower, 8.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 exd5 * D58 "GDR: Tartakower, 8.cxd5 exd5 9.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 exd5 9.Bd3 * D59 "GDR: Tartakower, 8.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Nxd5 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7 10.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7 10.Tc1 Ab7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7 10.Tc1 Ab7 11.Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Nxd5 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7 10.Tc1 Ab7 11.Cxd5 Axd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Nxd5 Bxd5 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7 10.Tc1 Ab7 11.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Bd3 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7 10.Tc1 Ab7 11.Ae2" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Rc1 Bb7 11.Be2 * D59 "GDR: Tartakower, 8.cxd5 Cxd5 9.Axe7 Dxe7 10.Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 * D59 "GDR: Tartakower, Línea Principal, 11.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Be2 * D59 "GDR: Tartakower, Línea Principal, 11.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 * D59 "GDR: Tartakower, Línea Principal, 11.Tc1 Ae6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 * D59 "GDR: Tartakower, Línea Principal, 12.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 12.Bd3 * D59 "GDR: Tartakower, Línea Principal, 12.Da4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 12.Qa4 * D59 "GDR: Tartakower, Línea Principal, 12.Da4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 h6 7.Bh4 b6 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 12.Qa4 c5 * D60 "GDR: Defensa Ortodoxa" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 * D60 "GDR: Ortodoxa, 7.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.cxd5 Nxd5 * D60 "GDR: Ortodoxa, Variante Rauzer" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qb3 * D60 "GDR: Ortodoxa, Variante Rauzer" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qb3 c6 * D60 "GDR: Ortodoxa, Variante Botvinnik" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 * D60 "GDR: Ortodoxa, Botvinnik, 7...b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 b6 * D60 "GDR: Ortodoxa, Botvinnik, 7...c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 c6 * D60 "GDR: Ortodoxa, Botvinnik, 7...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 * D60 "GDR: Ortodoxa, Botvinnik, 7...dxc4 8.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 * D60 "GDR: Ortodoxa, Botvinnik, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 a6 * D60 "GDR: Ortodoxa, Botvinnik, 8...c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 c5 * D60 "GDR: Ortodoxa, Botvinnik, 8...c5 9.O-O a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Bd3 dxc4 8.Bxc4 c5 9.O-O a6 * D61 "GDR: Ortodoxa, Variante Rubinstein" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 h6 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 h6 8.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 h6 8.Bh4 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 h6 8.Ah4 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 h6 8.Bh4 c5 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 a6 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c6 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.a3 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c6 8.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.Bd3 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c6 8.Ad3 dxc4 9.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.Bd3 dxc4 9.Bxc4 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c6 8.Rd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c6 8.Rd1 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.Rd1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.Rd1 * D61 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.O-O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.O-O-O * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5 cxd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 cxd4 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 exd5 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5 exd5 9.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 exd5 9.Bd3 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5 Cxd5 9.Axe7 Dxe7" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5, Línea Principal, 11.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Bd3 * D62 "GDR: Ortodoxa, Rubinstein, 7.Dc2 c5 8.cxd5, Línea Principal, 11.Ad3 g6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.cxd5 Nxd5 9.Bxe7 Qxe7 10.Nxd5 exd5 11.Bd3 g6 * D63 "GDR: Ortodoxa, 7.Tc1" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 * D63 "GDR: Ortodoxa, 7.Tc1 Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 Re8 * D63 "GDR: Ortodoxa, 7.Tc1 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 h6 * D63 "GDR: Ortodoxa, 7.Tc1 h6 8.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 h6 8.Bh4 * D63 "GDR: Ortodoxa, 7.Tc1 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 dxc4 * D63 "GDR: Ortodoxa, 7.Tc1 dxc4 8.Axc4 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 dxc4 8.Bxc4 a6 * D63 "GDR: Ortodoxa, 7.Tc1 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 * D63 "GDR: Ortodoxa, 7.Tc1 b6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 * D63 "GDR: Ortodoxa, 7.Tc1 b6, Variante Duras" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 9.Qa4 * D63 "GDR: Ortodoxa, 7.Tc1 b6, Ataque Pillsbury" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 9.Bd3 * D63 "GDR: Ortodoxa, 7.Tc1 b6, Variante Capablanca" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 b6 8.cxd5 exd5 9.Bb5 * D63 "GDR: Ortodoxa, Variante Suiza" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 * D63 "GDR: Ortodoxa, Suiza, 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.a3 * D63 "GDR: Ortodoxa, Suiza, 8.c5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.c5 * D63 "GDR: Ortodoxa, Suiza, 8.c5 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.c5 c6 * D63 "GDR: Ortodoxa, Suiza, Variante de Karlsbad" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 * D63 "GDR: Ortodoxa, Suiza, Variante de Karlsbad" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 * D63 "GDR: Ortodoxa, Suiza, Karlsbad, 9.Ad3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 * D63 "GDR: Ortodoxa, Suiza, Karlsbad, 9.Ad3 Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 * D63 "GDR: Ortodoxa, Suiza, Karlsbad, 9.Ad3 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 a6 8.cxd5 * D63 "GDR: Ortodoxa, 7.Tc1 c6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 * D63 "GDR: Ortodoxa, 7.Tc1 c6 8.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.a3 * D64 "GDR: Ortodoxa, Ataque Rubinstein" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 * D64 "GDR: Ortodoxa, Ataque Rubinstein, 8...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 dxc4 * D64 "GDR: Ortodoxa, Ataque Rubinstein, Variante Wolf" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Ne4 * D64 "GDR: Ortodoxa, Ataque Rubinstein, 8...Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Re8 * D64 "GDR: Ortodoxa, Ataque Rubinstein, 8...Te8 9.a3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Re8 9.a3 * D64 "GDR: Ortodoxa, Ataque Rubinstein, 8...Te8 9.a3 a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 Re8 9.a3 a6 * D64 "GDR: Ortodoxa, Ataque Rubinstein, 8...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 h6 * D64 "GDR: Ortodoxa, Ataque Rubinstein, Variante de Carlsbad" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 * D64 "GDR: Ortodoxa, Ataque Rubinstein, Variante Grünfeld" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.a3 * D64 "GDR: Ortodoxa, Ataque Rubinstein, Variante Grünfeld, 9...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.a3 h6 * D64 "GDR: Ortodoxa, Ataque Rubinstein, Variante Grünfeld, 9...h6 10.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.a3 h6 10.Bh4 * D65 "GDR: Ortodoxa, Ataque Rubinstein, 9.cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 * D65 "GDR: Ortodoxa, Ataque Rubinstein, 9.cxd5 Cxd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 Nxd5 * D65 "GDR: Ortodoxa, Ataque Rubinstein, 9.cxd5 exd5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 * D65 "GDR: Ortodoxa, Rubinstein, 9.cxd5 exd5 10.Ad3 h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 h6 * D65 "GDR: Ortodoxa, Rubinstein, 9.cxd5 exd5 10.Ad3 h6 11.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 h6 11.Bh4 * D65 "GDR: Ortodoxa, Rubinstein, 9.cxd5 exd5 10.Ad3 Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 * D65 "GDR: Ortodoxa, Rubinstein, 9.cxd5 exd5 10.Ad3 Te8 11.O-O Cf8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 * D65 "GDR: Ortodoxa, Rubinstein, 9.cxd5 exd5 10.Ad3 Te8 11.O-O Cf8 12.Ce5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 12.Ne5 * D65 "GDR: Ortodoxa, Rubinstein, 9.cxd5 exd5 10.Ad3 Te8 11.O-O Cf8 12.h3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Qc2 a6 9.cxd5 exd5 10.Bd3 Re8 11.O-O Nf8 12.h3 * D66 "GDR: Ortodoxa, Línea Principal" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 * D66 "GDR: Ortodoxa, Línea Principal, 8...a6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 a6 * D66 "GDR: Ortodoxa, Línea Principal, 8...h6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 * D66 "GDR: Ortodoxa, Línea Principal, 8...h6 9.Ah4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 * D66 "GDR: Ortodoxa, Línea Principal, 8...h6 9.Ah4 dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 dxc4 * D66 "GDR: Ortodoxa, Línea Principal, 8...h6 9.Ah4 dxc4 10.Axc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 dxc4 10.Bxc4 * D66 "GDR: Ortodoxa, Línea Principal, 8...h6 9.Ah4 dxc4 10.Axc4 b5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 h6 9.Bh4 dxc4 10.Bxc4 b5 * D66 "GDR: Ortodoxa, Línea Principal, 8...Te8" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 Re8 * D66 "GDR: Ortodoxa, Línea Principal, 8...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 * D66 "GDR: Ortodoxa, Línea Principal, 8...dxc4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 * D66 "GDR: Ortodoxa, Línea Principal, Variante del Fianchetto" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 * D66 "GDR: Ortodoxa, Línea Principal, Variante del Fianchetto" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 10.Bd3 a6 * D66 "GDR: Ortodoxa, Línea Principal, Fianchetto, 11.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 10.Bd3 a6 11.O-O * D66 "GDR: Ortodoxa, Línea Principal, Fianchetto, 11.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 b5 10.Bd3 a6 11.e4 * D67 "GDR: Ortodoxa, Línea Principal, Maniobra Liberadora de Capablanca" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 * D67 "GDR: Ortodoxa, Línea Principal, Variante Janowski" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.h4 * D67 "GDR: Ortodoxa, Línea Principal, Variante Capablanca" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 * D67 "GDR: Ortodoxa, Línea Principal, Variante Alekhine" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.Ne4 * D67 "GDR: Ortodoxa, Línea Principal, Alekhine, 11...e5 (Lasker)" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.Ne4 e5 * D67 "GDR: Ortodoxa, Línea Principal, Alekhine, 11...C5f6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.Ne4 N5f6 * D67 "GDR: Ortodoxa, Línea Principal, Capablanca, 11.O-O" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O * D67 "GDR: Ortodoxa, Línea Principal, Capablanca, 11.O-O Cxc3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 * D68 "GDR: Ortodoxa, Variante Clásica" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 * D68 "GDR: Ortodoxa, Clásica, 13.Ab3" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Bb3 * D68 "GDR: Ortodoxa, Clásica, Variante Maroczy" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qb1 * D68 "GDR: Ortodoxa, Clásica, Maroczy, 13...exd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qb1 exd4 * D68 "GDR: Ortodoxa, Clásica, Variante Vidmar" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 * D68 "GDR: Ortodoxa, Clásica, Vidmar, 13...e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 e4 * D68 "GDR: Ortodoxa, Clásica, Vidmar, 13...exd4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 exd4 * D68 "GDR: Ortodoxa, Clásica, Vidmar, 13...exd4 14.exd4 Cb6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.Qc2 exd4 14.exd4 Nb6 * D69 "GDR: Ortodoxa, Clásica, 13.dxe5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 * D69 "GDR: Ortodoxa, Clásica, 13.dxe5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 * D69 "GDR: Ortodoxa, Clásica, 13.dxe5: 15.f4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 * D69 "GDR: Ortodoxa, Clásica, 13.dxe5: 15.f4 De4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 * D69 "GDR: Ortodoxa, Clásica, 13.dxe5: 15.f4 Df6" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 * D69 "GDR: Ortodoxa, Clásica, 13.dxe5: 15.f4 Df6 16.f5" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 * D69 "GDR: Ortodoxa, Clásica, 13.dxe5: 15.f4 Df6 16.e4" 1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Rc1 c6 8.Bd3 dxc4 9.Bxc4 Nd5 10.Bxe7 Qxe7 11.O-O Nxc3 12.Rxc3 e5 13.dxe5 Nxe5 14.Nxe5 Qxe5 * D70 "Neo-Grünfeld: 3.Cf3 d5" 1.d4 Nf6 2.c4 g6 3.Nf3 d5 * D70 "Neo-Grünfeld: Alekhine Anti-Grünfeld" 1.d4 Nf6 2.c4 g6 3.f3 d5 * D70 "Neo-Grünfeld: Alekhine, 5.e4 Cb6" 1.d4 Nf6 2.c4 g6 3.f3 d5 4.cxd5 Nxd5 5.e4 Nb6 * D70 "Neo-Grünfeld: Alekhine, 7.Ae3 O-O" 1.d4 Nf6 2.c4 g6 3.f3 d5 4.cxd5 Nxd5 5.e4 Nb6 6.Nc3 Bg7 7.Be3 O-O * D70 "Neo-Grünfeld: 3.g3 d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 * D70 "Neo-Grünfeld: 4.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.cxd5 * D70 "Neo-Grünfeld: 4.Ag2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 * D70 "Neo-Grünfeld: 4.Ag2 c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 c6 * D70 "Neo-Grünfeld: 4.Ag2 Ag7" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.Cc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.Cc3 Cxc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 Nxc3 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.Cc3 Cxc3 7.Axc3 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 Nxc3 7.bxc3 c5 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.Cc3 Cb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.Nc3 Nb6 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb4 * D71 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb4 7.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb4 7.d5 * D72 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb6 7.Ce2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 * D72 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb6 7.Ce2 Cc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 Nc6 * D72 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb6 7.Ce2 e5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 e5 * D72 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb6 7.Ce2 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 c5 * D72 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb6 7.Ce2 O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 O-O * D72 "Neo-Grünfeld, 5.cxd5 Cxd5 6.e4 Cb6 7.Ce2 O-O 8.O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.cxd5 Nxd5 6.e4 Nb6 7.Ne2 O-O 8.O-O * D73 "Neo-Grünfeld, 5.Cf3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 * D73 "Neo-Grünfeld, 5.Cf3 c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 * D73 "Neo-Grünfeld, 5.Cf3 c6 6.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 6.cxd5 * D73 "Neo-Grünfeld, 5.Cf3 c6 6.cxd5 cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 6.cxd5 cxd5 * D73 "Neo-Grünfeld, 5.Cf3 c6 6.cxd5 cxd5 7.Cc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c6 6.cxd5 cxd5 7.Nc3 * D73 "Neo-Grünfeld, 5.Cf3 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 c5 * D73 "Neo-Grünfeld, 5.Cf3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 dxc4 * D73 "Neo-Grünfeld, 5.Cf3 dxc4 6.Ca3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 dxc4 6.Na3 * D73 "Neo-Grünfeld, 5.Cf3 O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O * D73 "Neo-Grünfeld, 6.Db3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.Qb3 * D73 "Neo-Grünfeld, 6.Cc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.Nc3 * D73 "Neo-Grünfeld, 6.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 * D73 "Neo-Grünfeld, 6.cxd5 Cxd5 7.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.e4 * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Ca6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Na6 * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nc6 * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c6 * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.e4 * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.e4 Cf6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.e4 Nf6 * D74 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.e4 Cf6 9.e5 Cd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.e4 Nf6 9.e5 Nd5 * D75 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.Cc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.Nc3 * D75 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.Cc3 Cxc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.Nc3 Nxc3 * D75 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.Cc3 Cxc3 9.Axc3 cxd4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.Nc3 Nxc3 9.bxc3 cxd4 * D75 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.dxc5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.dxc5 * D75 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O c5 8.dxc5 Ca6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O c5 8.dxc5 Na6 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.e3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.e3 e5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.e3 e5 10.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 10.d5 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.e3 e5 10.d5 Ca5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 e5 10.d5 Na5 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.e3 Te8" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 Re8 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.e3 Te8 10.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.e3 Re8 10.d5 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.d5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.d5 Ca5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.d5 Ca5 10.e4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.d5 Ca5 10.e4 c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 c6 * D76 "Neo-Grünfeld, 6.cxd5 Cxd5 7.O-O Cb6 8.Cc3 Cc6 9.d5 Ca5 10.e4 c6 11.Ag5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.cxd5 Nxd5 7.O-O Nb6 8.Nc3 Nc6 9.d5 Na5 10.e4 c6 11.Bg5 * D77 "Neo-Grünfeld, 6.O-O" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O * D77 "Neo-Grünfeld, 6.O-O e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O e6 * D77 "Neo-Grünfeld, 6.O-O c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c5 * D77 "Neo-Grünfeld, 6.O-O c5 7.dxc5 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c5 7.dxc5 dxc4 * D77 "Neo-Grünfeld, 6.O-O Cc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O Nc6 * D77 "Neo-Grünfeld, 6.O-O dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 Ca6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Na6 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 c3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 c3 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 c3 8.Axc3 c5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 c3 8.bxc3 c5 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 c3 8.Axc3 c5 9.e3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 c3 8.bxc3 c5 9.e3 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 Cc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 Cc6 8.Cxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 Cc6 8.Cxc4 Ae6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 Cc6 8.Cxc4 Ae6 9.A3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 9.b3 * D77 "Neo-Grünfeld, 6.O-O dxc4 7.Ca3 Cc6 8.Cxc4 Ae6 9.A3 Ad5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O dxc4 7.Na3 Nc6 8.Nxc4 Be6 9.b3 Bd5 * D78 "Neo-Grünfeld, 6.O-O c6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 * D78 "Neo-Grünfeld, 6.O-O c6 7.Ca3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Na3 * D78 "Neo-Grünfeld, 6.O-O c6 7.Ce5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Ne5 * D78 "Neo-Grünfeld, 6.O-O c6 7.Da4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qa4 * D78 "Neo-Grünfeld, 6.O-O c6 7.Cc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nc3 * D78 "Neo-Grünfeld, 6.O-O c6 7.Cc3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nc3 dxc4 * D78 "Neo-Grünfeld, 6.O-O c6 7.Db3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 * D78 "Neo-Grünfeld, 6.O-O c6 7.Db3 Db6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 Qb6 * D78 "Neo-Grünfeld, 6.O-O c6 7.Db3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 dxc4 * D78 "Neo-Grünfeld, 6.O-O c6 7.Db3 dxc4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Qb3 dxc4 8.Qxc4 * D78 "Neo-Grünfeld, 6.O-O c6 7.Cbd2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 * D78 "Neo-Grünfeld, 6.O-O c6 7.Cbd2 Cbd7" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 Nbd7 * D78 "Neo-Grünfeld, 6.O-O c6 7.Cbd2 Ce4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 Ne4 * D78 "Neo-Grünfeld, 6.O-O c6 7.Cbd2 Af5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.Nbd2 Bf5 * D78 "Neo-Grünfeld, 6.O-O c6 7.A3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.b3 * D78 "Neo-Grünfeld, 6.O-O c6 7.A3 Af5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.b3 Bf5 * D78 "Neo-Grünfeld, 6.O-O c6 7.A3 Ce4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.b3 Ne4 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3 e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 e6 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3 Ce4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3 Ce4 9.Ce5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 9.Ne5 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3 Ce4 9.Cxe4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Ne4 9.Nxe4 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3 Cc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3 Cc6 9.Ce5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 9.Ne5 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Cc3 Cc6 9.Ce5 e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Nc3 Nc6 9.Ne5 e6 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Ce5" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 * D79 "Neo-Grünfeld, 6.O-O c6 7.cxd5 cxd5 8.Ce5 e6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 * D79 "Neo-Grünfeld, Línea Principal" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 * D79 "Neo-Grünfeld, Línea Principal, 10.f4" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 * D79 "Neo-Grünfeld, Línea Principal, 10.f4 Cc6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 * D79 "Neo-Grünfeld, Línea Principal, 10.f4 Cc6 11.Ae3" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 * D79 "Neo-Grünfeld, Línea Principal, 10.f4 Cc6 11.Ae3 f6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 f6 * D79 "Neo-Grünfeld, Línea Principal, 10.f4 Cc6 11.Ae3 Cb6" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 Nb6 * D79 "Neo-Grünfeld, Línea Principal, 10.f4 Cc6 11.Ae3 Cb6 12.Af2" 1.d4 Nf6 2.c4 g6 3.g3 d5 4.Bg2 Bg7 5.Nf3 O-O 6.O-O c6 7.cxd5 cxd5 8.Ne5 e6 9.Nc3 Nfd7 10.f4 Nc6 11.Be3 Nb6 12.Bf2 * D80 "Defensa Grünfeld" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 * D80 "Grünfeld: Gambito Spike/Gibbon" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.g4 * D80 "Grünfeld: 4.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.h4 * D80 "Grünfeld: 4.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.g3 * D80 "Grünfeld: 4.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.f3 * D80 "Grünfeld: 4.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.e3 * D80 "Grünfeld: 4.e3 Ag7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.e3 Bg7 * D80 "Grünfeld: 4.e3 Ag7 5.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.e3 Bg7 5.Qb3 * D80 "Grünfeld: Variante de Estocolmo" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 * D80 "Grünfeld: Estocolmo, 4...Ce4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 * D80 "Grünfeld: Estocolmo, 4...Ce4 5.Cxe4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Nxe4 * D80 "Grünfeld: Estocolmo, Variante Lundin" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Nxe4 dxe4 6.Qd2 c5 * D80 "Grünfeld: Estocolmo, 4...Ce4 5.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bf4 * D80 "Grünfeld: Estocolmo, Variante Taimanov" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bh4 * D80 "Grünfeld: Estocolmo, Taimanov, 5...Cxc3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bh4 Nxc3 * D80 "Grünfeld: Estocolmo, Taimanov, 5...Cxc3 6.bxc3 Ag7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bg5 Ne4 5.Bh4 Nxc3 6.bxc3 Bg7 * D81 "Grünfeld: Variante Rusa Temprana" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 * D81 "Grünfeld: Variante Rusa Temprana" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 * D81 "Grünfeld: Rusa Temprana, 5...Ae6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Be6 * D81 "Grünfeld: Rusa Temprana, 5...Ae6 6.Db5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Be6 6.Qb5+ * D81 "Grünfeld: Rusa Temprana, Gambito Adorjan" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Be6 6.Qb5+ Bd7 * D81 "Grünfeld: Rusa Temprana, 5...Ag7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Bg7 * D81 "Grünfeld: Rusa Temprana, 5...Ag7 6.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Bg7 6.e4 * D81 "Grünfeld: Rusa Temprana, 5...Ag7 6.e4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Qb3 dxc4 5.Qxc4 Bg7 6.e4 O-O * D82 "Grünfeld: 4.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 * D82 "Grünfeld: 4.Af4 Ag7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 * D82 "Grünfeld: 4.Af4 Ag7 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 * D82 "Grünfeld: 4.Af4 Ag7 5.e3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 * D82 "Grünfeld: 4.Af4 Ag7 5.e3 c5 6.dxc5 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 * D82 "Grünfeld: 4.Af4 Ag7 5.e3 c5 6.dxc5 Da5 7.Da4+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 7.Qa4+ * D82 "Grünfeld: 4.Af4 Ag7 5.e3 c5 6.dxc5 Da5 7.Tc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 c5 6.dxc5 Qa5 7.Rc1 * D83 "Grünfeld: Gambito Grünfeld" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O * D83 "Grünfeld: Gambito Grünfeld, 6.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Qb3 * D83 "Grünfeld: Gambito Grünfeld, Variante Capablanca" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Rc1 * D83 "Grünfeld: Gambito Grünfeld, Variante Capablanca" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Rc1 c5 * D83 "Grünfeld: Gambito Grünfeld, Variante Botvinnik" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.Rc1 c5 7.dxc5 Be6 * D84 "Grünfeld: Gambito Grünfeld Aceptado" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 * D84 "Grünfeld: Gambito Grünfeld Aceptado" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 * D84 "Grünfeld: Gambito Grünfeld Aceptado, 8...b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 b6 * D84 "Grünfeld: Gambito Grünfeld Aceptado, 8...Af5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Bf5 * D84 "Grünfeld: Gambito Grünfeld Aceptado, 8...Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Na6 * D84 "Grünfeld: Gambito Grünfeld Aceptado, 8...Ca6 9.Axa6 Dxg2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Na6 9.Bxa6 Qxg2 * D84 "Grünfeld: Gambito Grünfeld Aceptado, 8...Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Nc6 * D84 "Grünfeld: Gambito Grünfeld Aceptado, 8...Cc6 9.Ce2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Nc6 9.Ne2 * D84 "Grünfeld: Gambito Grünfeld Aceptado, 8...Cc6 9.Ce2 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Bf4 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Nxd5 Qxd5 8.Bxc7 Nc6 9.Ne2 Bg4 * D85 "Grünfeld: Variante del Cambio" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 * D85 "Grünfeld: Variante del Cambio" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 * D85 "Grünfeld: Intercambio, 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.g3 * D85 "Grünfeld: Intercambio, 5.Ca4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Na4 * D85 "Grünfeld: Intercambio, 5.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Bd2 * D85 "Grünfeld: Intercambio, 5.Ad2 Ag7 6.e4 Cb6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Bd2 Bg7 6.e4 Nb6 * D85 "Grünfeld: Intercambio, 5.Ad2 Ag7 6.e4 Cb6 7.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.Bd2 Bg7 6.e4 Nb6 7.Be3 * D85 "Grünfeld: Intercambio, 5.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 * D85 "Grünfeld: Intercambio, 5.e4 Cb6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nb6 * D85 "Grünfeld: Intercambio, 5.e4 Cxc3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 * D85 "Grünfeld: Intercambio, 5.e4 Cxc3 6.bxc3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 c5 * D85 "Grünfeld: Intercambio, 5.e4 Cxc3 6.bxc3 Ag7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 * D85 "Grünfeld: Intercambio, 7.Aa3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Ba3 * D85 "Grünfeld: Intercambio, 7.Ab5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ * D85 "Grünfeld: Intercambio, 7.Ab5+ c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ c6 * D85 "Grünfeld: Intercambio, 7.Ab5+ c6 8.Aa4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ c6 8.Ba4 * D85 "Grünfeld: Intercambio, 7.Ab5+ c6 8.Aa4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bb5+ c6 8.Ba4 O-O * D85 "Grünfeld: Intercambio, 7.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 * D85 "Grünfeld: Intercambio, 7.Ae3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 * D85 "Grünfeld: Intercambio, 7.Ae3 c5 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 * D85 "Grünfeld: Intercambio, 7.Ae3 c5 8.Dd2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 O-O * D85 "Grünfeld: Intercambio, 7.Ae3 c5 8.Dd2 O-O 9.Tc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 O-O 9.Rc1 * D85 "Grünfeld: Intercambio, 7.Ae3 c5 8.Dd2 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 * D85 "Grünfeld: Intercambio, 7.Ae3 c5 8.Dd2 Da5 9.Tc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 9.Rc1 * D85 "Grünfeld: Intercambio, 7.Ae3 c5 8.Dd2 Da5 9.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 9.Rb1 * D85 "Grünfeld: Intercambio, 7.Ae3 c5 8.Dd2 Da5 9.Tb1 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Be3 c5 8.Qd2 Qa5 9.Rb1 b6 * D85 "Grünfeld: Intercambio Moderno" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 * D85 "Grünfeld: Intercambio Moderno, 7...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 O-O * D85 "Grünfeld: Intercambio Moderno, 7...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 * D85 "Grünfeld: Intercambio Moderno, 8.Ab5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Bb5+ * D85 "Grünfeld: Intercambio Moderno, 8.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 * D85 "Grünfeld: Intercambio Moderno, 8.Ae2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O * D85 "Grünfeld: Intercambio Moderno, 8.Ae2 O-O 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O 9.O-O * D85 "Grünfeld: Intercambio Moderno, 8.Ae2 O-O 9.O-O b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O 9.O-O b6 * D85 "Grünfeld: Intercambio Moderno, 8.Ae2 O-O 9.O-O Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be2 O-O 9.O-O Nc6 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Qa5 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 b6 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Nc6 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 Cc6, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Nc6 10.d5 Ne5 11.Nxe5 Bxe5 12.Qd2 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 Cc6, Línea Principal, 12...e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 Nc6 10.d5 Ne5 11.Nxe5 Bxe5 12.Qd2 e6 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 cd" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 cd 10.cd" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 cd 10.cd Da5+" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 cd 10.cd Da5+ 11.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Qd2 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1 O-O 9.Ae2 cd 10.cd Da5+ 11.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Bd2 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1, 10...Da5+ 11.Ad2 Dxa2 12.O-O Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Bd2 Qxa2 12.O-O Bg4 * D85 "Grünfeld: Intercambio Moderno, 8.Tb1, 10...Da5+ 11.Ad2 Dxa2 12.O-O Ag4 13.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Rb1 O-O 9.Be2 cxd4 10.cxd4 Qa5+ 11.Bd2 Qxa2 12.O-O Bg4 13.Bg5 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Bg4 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Nc6 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Qa5 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 Da5 9.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Qa5 9.Qd2 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 Da5 9.Dd2 Cc6 10.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Qa5 9.Qd2 Nc6 10.Rc1 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 O-O 9.Rc1 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 O-O 9.Rc1 Da5 10.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 10.Qd2 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 O-O 9.Rc1 Da5 Intercambio de Damas, 12.Rxd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 10.Qd2 cxd4 11.cxd4 Qxd2+ 12.Kxd2 * D85 "Grünfeld: Intercambio Moderno, 8.Ae3 O-O 9.Rc1 Da5 Intercambio de Damas, 12.Cxd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 O-O 9.Rc1 Qa5 10.Qd2 cxd4 11.cxd4 Qxd2+ 12.Nxd2 * D86 "Grünfeld: Intercambio Clásico" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 * D86 "Grünfeld: Intercambio Clásico, 7...b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 b6 * D86 "Grünfeld: Intercambio Clásico, 7...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 c5 * D86 "Grünfeld: Intercambio Clásico, 7...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O * D86 "Grünfeld: Intercambio Clásico, 8.Ce2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 * D86 "Grünfeld: Intercambio Clásico, Variante Larsen" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Qd7 9.O-O b6 * D86 "Grünfeld: Intercambio Clásico, Simagin" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 b6 * D86 "Grünfeld: Intercambio Clásico, Simagin, 9.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 b6 9.h4 * D86 "Grünfeld: Intercambio Clásico, Simagin, 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 b6 9.O-O * D86 "Grünfeld: Intercambio Clásico, Simagin Mejorada" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 * D86 "Grünfeld: Intercambio Clásico, Simagin Mejorada, 9.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.Be3 * D86 "Grünfeld: Intercambio Clásico, Simagin Mejorada, 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.O-O * D86 "Grünfeld: Intercambio Clásico, Simagin Mejorada, 9.O-O e5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.O-O e5 * D86 "Grünfeld: Intercambio Clásico, Simagin Mejorada, 9.O-O b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 Nc6 9.O-O b6 * D87 "Grünfeld: Intercambio Clásico, 8...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 * D87 "Grünfeld: Intercambio Clásico, 8...c5 9.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 * D87 "Grünfeld: Intercambio Clásico, 8...c5 9.Ae3 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 Qa5 * D87 "Grünfeld: Intercambio Clásico, 8...c5 9.Ae3 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 Qa5 10.O-O Nd7 * D87 "Grünfeld: Intercambio Clásico, 8...c5 9.Ae3 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.Be3 Nc6 * D87 "Grünfeld: Intercambio Clásico, 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O * D87 "Grünfeld: Intercambio Clásico, 9.O-O Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 * D87 "Grünfeld: Intercambio Clásico, 9.O-O Cc6 10.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qa5 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Ca5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Na5 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Dc7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Dc7 11.Tc1 Td8" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 11.Rc1 Rd8 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Dc7 11.Tc1 Td8 12.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 11.Rc1 Rd8 12.Qd2 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Dc7 11.Tc1 Td8 12.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Qc7 11.Rc1 Rd8 12.Bf4 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Bg4 * D87 "Grünfeld: Intercambio Clásico, 10.Ae3 Ag4 11.f3 Ca5 12.Ad5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Bg4 11.f3 Na5 12.Bd5 * D87 "Grünfeld: Intercambio Clásico, Variante de Sevilla" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 Bg4 11.f3 Na5 12.Bxf7+ * D88 "Grünfeld: Intercambio Clásico, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 * D88 "Grünfeld: Intercambio Clásico, Línea Principal, 11.cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 * D88 "Grünfeld: Intercambio Clásico, Línea Principal, 11.cxd4 Ca5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Na5 * D88 "Grünfeld: Intercambio Clásico, Línea Principal, 11.cxd4 Ca5 12.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Na5 12.Bd3 * D88 "Grünfeld: Intercambio Clásico, Línea Principal, 11.cxd4 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 * D88 "Grünfeld: Intercambio Clásico, Línea Principal, 11.cxd4 Ag4 12.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 * D88 "Grünfeld: Intercambio Clásico, Línea Principal, 11.cxd4 Ag4 12.f3 Ca5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 * D88 "Grünfeld: Intercambio Clásico, Línea Principal, Neo-Sevilla" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bxf7+ * D88 "Grünfeld: Intercambio Clásico, Línea Principal, 11.cxd4 Ag4 12.f3 Ca5 13.Ad5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd5 * D89 "Grünfeld: Intercambio Clásico, Línea Principal, 13.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 * D89 "Grünfeld: Intercambio Clásico, Línea Principal, 13.Ad3 Ae6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 * D89 "Grünfeld: Intercambio Clásico, Línea Principal, 13.Ad3 Ae6 14.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 * D89 "Grünfeld: Intercambio Clásico, 14.Rc1 Axa2 15.Da4 Ae6 16.d5 Ae7 17.Db4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 Bxa2 * D89 "Grünfeld: Intercambio Clásico, 14.Rc1 Axa2 15.Da4 con 17.Db4 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 Bxa2 * D89 "Grünfeld: Intercambio Clásico, 14.Rc1 Axa2 15.Da4 con 17.Db4 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.Rc1 Bxa2 * D89 "Grünfeld: Intercambio Clásico, Línea Principal, Variante Sokolsky" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.d5 * D89 "Grünfeld: Intercambio Clásico, Línea Principal, Sokolsky, 16.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.d5 Bxa1 * D89 "Grünfeld: Intercambio Clásico, Línea Principal, Sokolsky, 16.Ah6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Bc4 O-O 8.Ne2 c5 9.O-O Nc6 10.Be3 cxd4 11.cxd4 Bg4 12.f3 Na5 13.Bd3 Be6 14.d5 Bxa1 * D90 "Grünfeld: Variante de los Tres Caballos" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 * D90 "Grünfeld: Variante Schlechter" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 * D90 "Grünfeld: Schlechter, 5.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 5.Qb3 * D90 "Grünfeld: Schlechter, Intercambio" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 5.cxd5 * D90 "Grünfeld: Schlechter, Intercambio" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 c6 5.cxd5 cxd5 * D90 "Grünfeld: Variante de los Tres Caballos" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 * D90 "Grünfeld: Tres Caballos, 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.g3 * D90 "Grünfeld: Variante Flohr" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qa4+ * D90 "Grünfeld: Intercambio de los Tres Caballos" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 * D90 "Grünfeld: Intercambio de los Tres Caballos" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 * D90 "Grünfeld: Intercambio de los Tres Caballos, Variante Romanishin" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Qb3 * D90 "Grünfeld: Intercambio de los Tres Caballos, 6.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Bd2 * D90 "Grünfeld: Intercambio de los Tres Caballos, 6.Ad2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Bd2 O-O * D90 "Grünfeld: Intercambio de los Tres Caballos, 6.Ad2 O-O 7.Tc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.cxd5 Nxd5 6.Bd2 O-O 7.Rc1 * D91 "Grünfeld: 5.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 * D91 "Grünfeld: 5.Ag5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 c6 * D91 "Grünfeld: 5.Ag5 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 dxc4 * D91 "Grünfeld: 5.Ag5 dxc4 6.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 dxc4 6.e4 * D91 "Grünfeld: 5.Ag5 Ce4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 * D91 "Grünfeld: 5.Ag5 Ce4 6.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bf4 * D91 "Grünfeld: 5.Ag5 Ce4 6.Ah4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bh4 * D91 "Grünfeld: 5.Ag5 Ce4 6.Ah4 Cxc3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bh4 Nxc3 * D91 "Grünfeld: 5.Ag5 Ce4 6.Ah4 Cxc3 7.bxc3 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.Bh4 Nxc3 7.bxc3 dxc4 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 c6 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Dd2 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 exd5 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Dd2 exd5: 11.h4 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Qd2 exd5 9.Qe3+ Kf8 10.Qf4 Bf6 11.h4 h6 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3 O-O 10.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Bd3 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3 O-O 10.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Bd3 c6 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3 O-O 10.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Be2 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3 O-O 10.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.Be2 c6 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3 O-O 10.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.b4 * D91 "Grünfeld: 5.Ag5 Ce4 6.cxd5 Cxg5 7.Cxg5 e6 8.Cf3 exd5 9.e3 O-O 10.b4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bg5 Ne4 6.cxd5 Nxg5 7.Nxg5 e6 8.Nf3 exd5 9.e3 O-O 10.b4 c6 * D92 "Grünfeld: 5.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 * D92 "Grünfeld: 5.Af4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 c6 * D92 "Grünfeld: 5.Af4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O * D92 "Grünfeld: 5.Af4 O-O 6.Tc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.Rc1 * D92 "Grünfeld: 5.Af4 O-O 6.Tc1 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.Rc1 dxc4 * D92 "Grünfeld: 5.Af4 O-O 6.Tc1 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.Rc1 c5 * D93 "Grünfeld: 5.Af4 O-O 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c5 7.dxc5 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c5 7.dxc5 Da5 8.Tc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 8.Rc1 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c5 7.dxc5 Da5 8.Tc1 dxc4 9.Axc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c5 7.dxc5 Qa5 8.Rc1 dxc4 9.Bxc4 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c6 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c6 7.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c6 7.Qb3 * D93 "Grünfeld: 5.Af4 O-O 6.e3 c6 7.Tc1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Bf4 O-O 6.e3 c6 7.Rc1 * D94 "Grünfeld: 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 * D94 "Grünfeld: Eslava/Schlecter" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 * D94 "Grünfeld: Eslava/Schlecter, 6.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Bd3 * D94 "Grünfeld: Eslava/Schlecter, 6.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Be2 * D94 "Grünfeld: Eslava/Schlecter, 6.Ae2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Be2 O-O * D94 "Grünfeld: Eslava/Schlecter, 6.Ae2 O-O 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 c6 6.Be2 O-O 7.O-O * D94 "Grünfeld: 5.e3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O * D94 "Grünfeld: Variante Makogonov" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.b4 * D94 "Grünfeld: Variante Opovcensky" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd2 * D94 "Grünfeld: 5.e3 O-O 6.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Be2 * D94 "Grünfeld: 5.e3 O-O 6.Ae2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Be2 c5 * D94 "Grünfeld: 5.e3 O-O 6.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 * D94 "Grünfeld: 5.e3 O-O 6.Ad3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 c6 * D94 "Grünfeld: Defensa Smyslov" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 c6 7.O-O Bg4 * D94 "Grünfeld: Defensa Flohr" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Bd3 c6 7.O-O Bf5 * D94 "Grünfeld: 5.e3 O-O 6.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.cxd5 * D94 "Grünfeld: 5.e3 O-O 6.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.cxd5 Nxd5 * D94 "Grünfeld: 5.e3 O-O 6.cxd5 Cxd5 7.Ac4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.cxd5 Nxd5 7.Bc4 * D95 "Grünfeld: 5.e3 O-O 6.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 * D95 "Grünfeld: 5.e3 O-O 6.Db3 b6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 b6 * D95 "Grünfeld: 5.e3 O-O 6.Db3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 * D95 "Grünfeld: 5.e3 O-O 6.Db3 c6 7.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 7.Bd2 * D95 "Grünfeld: 5.e3 O-O 6.Db3 c6 7.Ad2 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 7.Bd2 e6 * D95 "Grünfeld: 5.e3 O-O 6.Db3 c6 7.Ad2 e6 8.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 c6 7.Bd2 e6 8.Bd3 * D95 "Grünfeld: Variante Botvinnik" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 e6 * D95 "Grünfeld: Botvinnik, 7.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 e6 7.Bd2 * D95 "Grünfeld: 5.e3 O-O 6.Db3 dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 * D95 "Grünfeld: 5.e3 O-O 6.Db3 dxc4 7.Axc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 7.Bxc4 * D95 "Grünfeld: Variante Pachman" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 7.Bxc4 Nbd7 8.Ng5 * D95 "Grünfeld: 5.e3 O-O 6.Db3 dxc4 7.Axc4 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.e3 O-O 6.Qb3 dxc4 7.Bxc4 Nc6 * D96 "Grünfeld: Variante Rusa" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 * D96 "Grünfeld: Rusa, 5...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 * D96 "Grünfeld: Rusa, 5...c6 6.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 6.Bf4 * D96 "Grünfeld: Rusa, 5...c6 6.cxd5 cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 6.cxd5 cxd5 * D96 "Grünfeld: Rusa, 5...c6 6.cxd5 Cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 c6 6.cxd5 Nxd5 * D96 "Grünfeld: Rusa, 5...dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 * D96 "Grünfeld: Rusa, 5...dxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 * D96 "Grünfeld: Rusa, 6...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 a6 * D96 "Grünfeld: Rusa, 6...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O * D96 "Grünfeld: Rusa, 7.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.Bf4 * D96 "Grünfeld: Rusa, 7.Af4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.Bf4 c6 * D97 "Grünfeld: Rusa, 7.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 * D97 "Grünfeld: Rusa, 7.e4 Cfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Nfd7 * D97 "Grünfeld: Rusa, Variante Levenfish" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 b6 * D97 "Grünfeld: Rusa, Variante Szabo" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 c6 * D97 "Grünfeld: Rusa, Szabo, 8.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 c6 8.Be2 * D97 "Grünfeld: Rusa, Variante Alekhine (Húngara)" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 * D97 "Grünfeld: Rusa, Alekhine, 8.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.Be2 * D97 "Grünfeld: Rusa, Alekhine, 8.Ae2 b5 9.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.Be2 b5 9.Qb3 * D97 "Grünfeld: Rusa, Alekhine, 8.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.Qb3 * D97 "Grünfeld: Rusa, Alekhine, 8.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 * D97 "Grünfeld: Rusa, Alekhine, 8.e5 b5 9.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 b5 9.Qb3 * D97 "Grünfeld: Rusa, Alekhine, 8.e5 b5 9.Db3 Cfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 b5 9.Qb3 Nfd7 * D97 "Grünfeld: Rusa, Alekhine, 8.e5 b5 9.Db3 Cfd7 10.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 a6 8.e5 b5 9.Qb3 Nfd7 10.Be3 * D97 "Grünfeld: Rusa, Variante Simagin" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Nc6 * D97 "Grünfeld: Rusa, Simagin, 8.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Nc6 8.Be2 * D97 "Grünfeld: Rusa, Variante Prins" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 * D97 "Grünfeld: Rusa, Prins, 8.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 8.Bf4 * D97 "Grünfeld: Rusa, Prins, 8.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 8.Be2 * D97 "Grünfeld: Rusa, Prins, 8.Ae2, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Na6 8.Be2 c5 9.d5 e6 10.O-O exd5 11.exd5 Bf5 * D98 "Grünfeld: Rusa, Variante Smyslov" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 * D98 "Grünfeld: Rusa, Smyslov, 8.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be2 * D98 "Grünfeld: Rusa, Smyslov, 8.Ae2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be2 Nc6 * D98 "Grünfeld: Rusa, Smyslov, 8.Ae2 Cc6 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be2 Nc6 9.d5 * D98 "Grünfeld: Rusa, Smyslov, 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 * D98 "Grünfeld: Rusa, Smyslov, 8.Ae3 Cfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 * D98 "Grünfeld: Rusa, Smyslov, 8.Ae3 Cfd7 9.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Be2 * D98 "Grünfeld: Rusa, Smyslov, Variante Keres" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Be2 Nb6 10.Qd3 Nc6 11.O-O-O * D98 "Grünfeld: Rusa, Smyslov, 8.Ae3 Cfd7 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.O-O-O * D98 "Grünfeld: Rusa, Smyslov, 8.Ae3 Cfd7 9.Td1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Rd1 * D98 "Grünfeld: Rusa, Smyslov, 8.Ae3 Cfd7 9.Td1 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Rd1 Nc6 * D99 "Grünfeld: Rusa, Smyslov, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 * D99 "Grünfeld: Rusa, Smyslov, Yugoslava" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 c5 * D99 "Grünfeld: Rusa, Smyslov, Línea Principal, 9...Cb6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 * D99 "Grünfeld: Rusa, Smyslov, Línea Principal, 9...Cb6 10.Td1" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 * D99 "Grünfeld: Rusa, Smyslov, Línea Principal, 9...Cb6 10.Td1 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 e6 * D99 "Grünfeld: Rusa, Smyslov, Línea Principal, 9...Cb6 10.Td1 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 Nc6 * D99 "Grünfeld: Rusa, Smyslov, Línea Principal, 9...Cb6 10.Td1 Cc6 11.d5 Ce5" 1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7 9.Qb3 Nb6 10.Rd1 Nc6 11.d5 Ne5 * E00 "Peón Dama: Neo-India" 1.d4 Nf6 2.c4 e6 * E00 "Peón Dama: Neo-India, Gambito Devin" 1.d4 Nf6 2.c4 e6 3.g4 * E00 "Peón Dama: Anti-Nimzo-India" 1.d4 Nf6 2.c4 e6 3.a3 * E00 "Peón Dama: Anti-Nimzo-India, 3...d5" 1.d4 Nf6 2.c4 e6 3.a3 d5 * E00 "Ataque Neo-Indio (Seirawan)" 1.d4 Nf6 2.c4 e6 3.Bg5 * E00 "Peón Dama: Neo-India" 1.d4 Nf6 2.c4 e6 3.Nc3 * E00 "Peón Dama: Neo-India, 3...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 b6 * E00 "Peón Dama: Neo-India, 3...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 b6 4.e4 * E00 "Peón Dama: Neo-India, 3...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 c5 * E00 "Catalana" 1.d4 Nf6 2.c4 e6 3.g3 * E00 "Catalana: Gambito Húngaro" 1.d4 Nf6 2.c4 e6 3.g3 e5 * E00 "Catalana: 3...c6" 1.d4 Nf6 2.c4 e6 3.g3 c6 * E00 "Catalana: 3...c5" 1.d4 Nf6 2.c4 e6 3.g3 c5 * E00 "Catalana: 3...c5 4.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 c5 4.Nf3 * E00 "Catalana: 3...Ab4+" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ * E00 "Catalana: 3...Ab4+ 4.Cd2" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Nd2 * E00 "Catalana: 3...Ab4+ 4.Ad2" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 * E00 "Catalana: 3...Ab4+ 4.Ad2 Axd2+" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Bxd2+ * E00 "Catalana: 3...Ab4+ 4.Ad2 Ae7" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Be7 * E00 "Catalana: 3...Ab4+ 4.Ad2 De7" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Qe7 * E00 "Catalana: 3...Ab4+ 4.Ad2 De7" 1.d4 Nf6 2.c4 e6 3.g3 Bb4+ 4.Bd2 Qe7 5.Bg2 * E00 "Catalana: 3...d5" 1.d4 Nf6 2.c4 e6 3.g3 d5 * E00 "Catalana: 4.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 * E00 "Catalana: 4.Cf3 c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 c6 * E00 "Catalana: 4.Cf3 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 c5 * E00 "Catalana: 4.Cf3 Ab4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 Bb4+ * E00 "Catalana: 4.Cf3 Ab4+ 5.Ad2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 Bb4+ 5.Bd2 * E00 "Catalana: 4.Cf3 Ae7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 Be7 * E00 "Catalana: 4.Cf3 dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 dxc4 * E00 "Catalana: 4.Cf3 dxc4 5.Da4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 dxc4 5.Qa4+ * E00 "Catalana: 4.Cf3 dxc4 5.Da4+ Cbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Nf3 dxc4 5.Qa4+ Nbd7 * E01 "Catalana: 4.Ag2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 * E01 "Catalana: 4...Ab4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ * E01 "Catalana: 4...Ab4+ 5.Ad2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ 5.Bd2 * E01 "Catalana: 4...Ab4+ 5.Cd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ 5.Nd2 * E01 "Catalana: 4...Ab4+ 5.Cd2 O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Bb4+ 5.Nd2 O-O * E01 "Catalana: 4...c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 * E01 "Catalana: 4...c6 5.Dc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 5.Qc2 * E01 "Catalana: 4...c6 5.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 5.Nf3 * E01 "Catalana: 4...c6 5.Cf3 Cbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c6 5.Nf3 Nbd7 * E01 "Catalana: 4...c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c5 * E01 "Catalana: 4...c5 5.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 c5 5.Nf3 * E01 "Catalana: Abierta" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 * E01 "Inglesa: Simétrica, Dos Caballos, 5.g3 d5 6.Ag2" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 d5 6.Bg2 * E01 "Inglesa: Simétrica, Dos Caballos, 5.g3 d5 6.Ag2 e5 7.Cf3" 1.c4 c5 2.Nf3 Nf6 3.d4 cxd4 4.Nxd4 e6 5.g3 d5 6.Bg2 e5 7.Nf3 * E02 "Catalana: Abierta, 5.Da4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ * E02 "Catalana: Abierta, 5.Da4+ Ad7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Bd7 * E02 "Catalana: Abierta, 5.Da4+ Ad7 6.Dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Bd7 6.Qxc4 * E02 "Catalana: Abierta, 5.Da4+ Cbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 * E02 "Catalana: Abierta, 5.Da4+ Cbd7 6.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Nf3 * E02 "Catalana: Abierta, 5.Da4+ Cbd7 6.Cf3 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Nf3 a6 * E02 "Catalana: Abierta, 5.Da4+ Cbd7 6.Cf3 a6 7.Cc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Nf3 a6 7.Nc3 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 * E03 "Catalana: Abierta, Variante Alekhine" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Qc2 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 a6 7.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 a6 7.Cf3 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 a6 7.Cf3 b5 8.Dc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 8.Qc2 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 a6 7.Cf3 b5 8.Dc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 a6 7.Nf3 b5 8.Qc6 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 c5 7.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 c5 7.Cf3 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 c5 7.Cf3 a6 8.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.O-O * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 c5 7.Cf3 a6 8.Dc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.Qc2 * E03 "Catalana: Abierta, 5.Da4+ Cbd7 6.Dxc4 c5 7.Cf3 a6 8.Dc2 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Qa4+ Nbd7 6.Qxc4 c5 7.Nf3 a6 8.Qc2 b6 * E04 "Catalana: Abierta, 5.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 * E04 "Catalana: Abierta, 5.Cf3 Ad7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Bd7 * E04 "Catalana: Abierta, 5.Cf3 Ab4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Bb4+ * E04 "Catalana: Abierta, 5.Cf3 Cbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nbd7 * E04 "Catalana: Abierta, 5.Cf3 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 b5 * E04 "Catalana: Abierta, 5.Cf3 a6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 * E04 "Catalana: Abierta, 5.Cf3 a6 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O * E04 "Catalana: Abierta, 5.Cf3 a6 6.O-O b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O b5 * E04 "Catalana: Abierta, 5.Cf3 a6 6.O-O b5 7.Ce5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O b5 7.Ne5 * E04 "Catalana: Abierta, 5.Cf3 a6 6.O-O b5 7.Ce5 Cd5 8.a4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O b5 7.Ne5 Nd5 8.a4 * E04 "Catalana: Abierta, 5.Cf3 a6 6.O-O Cc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O Nc6 * E04 "Catalana: Abierta, 5.Cf3 a6 6.O-O Cc6 7.e3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 a6 6.O-O Nc6 7.e3 * E04 "Catalana: Abierta, 5.Cf3 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Ce5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Ne5 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Ce5 Ad7 8.Ca3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Ne5 Bd7 8.Na3 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Ce5 Ad7 8.Ca3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Ne5 Bd7 8.Na3 cxd4 9.Naxc4 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Da4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Da4 cxd4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 cxd4 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Da4 Ad7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Da4 Ad7 8.Dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 8.Qxc4 * E04 "Catalana: Abierta, 5.Cf3 c5 6.O-O Cc6 7.Da4 Ad7 8.Dxc4 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 c5 6.O-O Nc6 7.Qa4 Bd7 8.Qxc4 b5 * E04 "Catalana: Abierta, 5.Cf3 Cc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 * E04 "Catalana: Abierta, 5.Cf3 Cc6 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.O-O * E04 "Catalana: Abierta, 5.Cf3 Cc6 6.O-O Tb8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.O-O Rb8 * E04 "Catalana: Abierta, 5.Cf3 Cc6 6.O-O Tb8 7.Cc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.O-O Rb8 7.Nc3 * E04 "Catalana: Abierta, 5.Cf3 Cc6 6.Da4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.Qa4 * E04 "Catalana: Abierta, 5.Cf3 Cc6 6.Da4 Ab4+" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.Qa4 Bb4+ * E04 "Catalana: Abierta, 5.Cf3 Cc6 6.Da4 Ab4+ 7.Ad2 Cd5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Nc6 6.Qa4 Bb4+ 7.Bd2 Nd5 * E05 "Catalana: Abierta, Clásica" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 * E05 "Catalana: Abierta, Clásica, 6.Cc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.Nc3 * E05 "Catalana: Abierta, Clásica, 6.Cc3 O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.Nc3 O-O * E05 "Catalana: Abierta, Clásica, 6.Cc3 O-O 7.Ce5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.Nc3 O-O 7.Ne5 * E05 "Catalana: Abierta, Clásica, 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O * E05 "Catalana: Abierta, Clásica, 6.O-O O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O * E05 "Catalana: Abierta, Clásica, 7.Ce5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Ne5 * E05 "Catalana: Abierta, Clásica, 7.Ce5 Cc6 8.Cxc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Ne5 Nc6 8.Nxc6 * E05 "Catalana: Abierta, Clásica, 7.Dc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 * E05 "Catalana: Abierta, Línea Principal Clásica" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 * E05 "Catalana: Abierta, Clásica, 8.a4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 * E05 "Catalana: Abierta, Clásica, 8.a4 Ad7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 * E05 "Catalana: Abierta, Clásica, 8.a4 Ad7 9.Dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 * E05 "Catalana: Abierta, Clásica, 8.a4 Ad7 9.Dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 Bc6 * E05 "Catalana: Abierta, Clásica, 8.a4, 10.Ag5 Ad5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 Bc6 10.Bg5 Bd5 * E05 "Catalana: Abierta, Clásica, 8.a4, 10.Ag5 a5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.a4 Bd7 9.Qxc4 Bc6 10.Bg5 a5 * E05 "Catalana: Abierta, Clásica, 8.Dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 * E05 "Catalana: Abierta, Clásica, 8.Dxc4 b5 9.Dc2 Ab7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 * E05 "Catalana: Abierta, Clásica, 8.Dxc4, 10.Ag5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bg5 * E05 "Catalana: Abierta, Clásica, 8.Dxc4, 10.Ad2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bd2 * E05 "Catalana: Abierta, Clásica, 8.Dxc4, 10.Ad2 Ae4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bd2 Be4 * E05 "Catalana: Abierta, Clásica, 8.Dxc4, 10.Af4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bf4 * E05 "Catalana: Abierta, Clásica, 8.Dxc4, 10.Af4 Cc6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bf4 Nc6 * E05 "Catalana: Abierta, Clásica, 8.Dxc4, 10.Af4 Cc6 11.Td1" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 dxc4 5.Nf3 Be7 6.O-O O-O 7.Qc2 a6 8.Qxc4 b5 9.Qc2 Bb7 10.Bf4 Nc6 11.Rd1 * E06 "Catalana: Cerrada" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 * E06 "Catalana: Cerrada, 5.Cf3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 * E06 "Catalana: Cerrada, 5.Cf3 O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O * E06 "Catalana: Cerrada, 6.Dc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.Qc2 * E06 "Catalana: Cerrada, 6.O-O" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O * E06 "Catalana: Cerrada, 6.O-O c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c5 * E06 "Catalana: Cerrada, 6.O-O c5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c5 7.cxd5 * E06 "Catalana: Cerrada, 6.O-O c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 * E06 "Catalana: Cerrada, 6.O-O c6 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.b3 * E06 "Catalana: Cerrada, 6.O-O c6 7.Cbd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nbd2 * E06 "Catalana: Cerrada, 6.O-O c6 7.Cc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nc3 * E06 "Catalana: Cerrada, 6.O-O c6 7.Cc3 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nc3 b6 * E06 "Catalana: Cerrada, 6.O-O c6 7.Cc3 b6 8.Ce5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Nc3 b6 8.Ne5 * E06 "Catalana: Cerrada, 6.O-O c6 7.Dc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Qc2 * E06 "Catalana: Cerrada, 6.O-O c6 7.Dc2 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O c6 7.Qc2 b6 * E07 "Catalana: Cerrada, 6...Cbd7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 * E07 "Catalana: Cerrada, 6...Cbd7 7.Cbd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nbd2 * E07 "Catalana: Cerrada, 6...Cbd7 7.Dd3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qd3 * E07 "Catalana: Cerrada, 6...Cbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 * E07 "Catalana: Cerrada, 6...Cbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 c6 * E07 "Catalana: Cerrada, 6...Cbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 c6 8.Ba3 * E07 "Catalana: Cerrada, 6...Cbd7 7.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.b3 c6 8.Bb2 * E07 "Catalana: Cerrada, 6...Cbd7 7.Cc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 * E07 "Catalana: Cerrada, 6...Cbd7 7.Cc3 dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 dxc4 * E07 "Catalana: Cerrada, 6...Cbd7 7.Cc3 dxc4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 dxc4 8.e4 * E07 "Catalana: Cerrada, 6...Cbd7 7.Cc3 c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 * E07 "Catalana: Cerrada, 6...Cbd7 7.Cc3 c6 8.Db3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 8.Qb3 * E07 "Catalana: Cerrada, Variante Botvinnik" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 8.Qd3 * E07 "Catalana: Cerrada, 6...Cbd7 7.Cc3 c6 8.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Nc3 c6 8.b3 * E08 "Catalana: Cerrada, 7.Dc2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 * E08 "Catalana: Cerrada, 7.Dc2 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c5 * E08 "Catalana: Cerrada, 7.Dc2 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 b6 * E08 "Catalana: Cerrada, 7.Dc2 c6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.Td1" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Rd1 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.Td1 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Rd1 b6 * E08 "Catalana: Cerrada, Variante Zagoryansky" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Rd1 b6 9.a4 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.Af4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.Af4 Ch5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 Nh5 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.Af4 Ce4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 Ne4 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.Af4 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Bf4 b6 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b5 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1 Aa6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Ba6 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1 Aa6 10.Cbd2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Ba6 10.Nbd2 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1 Ab7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1 Ab7 10.Cc3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 * E08 "Catalana: Cerrada, Gambito Spassky" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 b5 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1 Ab7 10.Cc3 Tc8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1 Ab7 10.Cc3 Tc8 11.e4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 11.e4 * E08 "Catalana: Cerrada, 7.Dc2 c6 8.b3 b6 9.Td1 Ab7 10.Cc3 Tc8 11.e4 dxe4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.b3 b6 9.Rd1 Bb7 10.Nc3 Rc8 11.e4 dxe4 * E09 "Catalana: Cerrada, Línea Principal" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 * E09 "Catalana: Cerrada, Línea Principal, 8...b5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b5 * E09 "Catalana: Cerrada, Línea Principal, 8...Te8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 Re8 * E09 "Catalana: Cerrada, Línea Principal, 8...b6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 * E09 "Catalana: Cerrada, Línea Principal, 9.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 * E09 "Catalana: Cerrada, Línea Principal, Variante Sokolsky" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 a5 10.Bb2 Ba6 * E09 "Catalana: Cerrada, Línea Principal, 9.b3 Ab7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 Bb7 * E09 "Catalana: Cerrada, Línea Principal, 9.b3 Ab7 10.Ab2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 Bb7 10.Bb2 * E09 "Catalana: Cerrada, Línea Principal, 9.b3 Ab7 10.Ab2 Tc8" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.b3 Bb7 10.Bb2 Rc8 * E09 "Catalana: Cerrada, Línea Principal, 9.e4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Aa6" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Ba6 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Aa6 10.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Ba6 10.b3 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 dxe4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 dxe4 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 dxe4 10.Cxe4 Cxe4 11.Dxe4" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 dxe4 10.Nxe4 Nxe4 11.Qxe4 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Ab7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Ab7 10.e5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.e5 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Ab7 10.b3" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Ab7 10.b3 Tc8 11.Ab2" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 Rc8 11.Bb2 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Ab7 10.b3 Tc8 11.Ab2 Dc7" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 Rc8 11.Bb2 Qc7 * E09 "Catalana: Cerrada, Línea Principal, 9.e4 Ab7 10.b3 Tc8 11.Ab2 c5" 1.d4 Nf6 2.c4 e6 3.g3 d5 4.Bg2 Be7 5.Nf3 O-O 6.O-O Nbd7 7.Qc2 c6 8.Nbd2 b6 9.e4 Bb7 10.b3 Rc8 11.Bb2 c5 * E10 "Neo-India: 3.Cf3" 1.d4 Nf6 2.c4 e6 3.Nf3 * E10 "Neo-India: Defensa Döry" 1.d4 Nf6 2.c4 e6 3.Nf3 Ne4 * E10 "Neo-India: 3.Cf3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 Be7 * E10 "Neo-India: 3.Cf3 a6" 1.d4 Nf6 2.c4 e6 3.Nf3 a6 * E10 "Neo-India: 3.Cf3 a6 4.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 a6 4.Nc3 * E10 "Neo-India: 3.Cf3 a6 4.Cc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 a6 4.Nc3 c5 * E10 "Neo-India: Blumenfeld/Benoni" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 * E10 "Neo-India: Blumenfeld/Benoni, 4.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.e3 * E10 "Neo-India: Blumenfeld/Benoni, 4.e3 b6" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.e3 b6 * E10 "Neo-India: Blumenfeld/Benoni, 4.e3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.e3 cxd4 * E10 "Contragambito Blumenfeld" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 * E10 "Blumenfeld: 5.dxe6" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.dxe6 * E10 "Blumenfeld: 5.dxe6 fxe6 6.cxb5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.dxe6 fxe6 6.cxb5 * E10 "Blumenfeld: 5.dxe6 fxe6 6.cxb5 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.dxe6 fxe6 6.cxb5 d5 * E10 "Blumenfeld: 5.Ag5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 * E10 "Blumenfeld: 5.Ag5 h6" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 h6 * E10 "Blumenfeld: 5.Ag5 Da5+" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 Qa5+ * E10 "Blumenfeld: 5.Ag5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 exd5 * E10 "Blumenfeld: Variante Spielmann" 1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 b5 5.Bg5 exd5 6.cxd5 h6 * E11 "Bogo-India" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ * E11 "Bogo-India: 4.Cbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 * E11 "Bogo-India: 4.Cbd2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 d5 * E11 "Bogo-India: 4.Cbd2 b6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 * E11 "Bogo-India: 4.Cbd2 b6 5.a3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 * E11 "Bogo-India: 4.Cbd2 b6 5.a3 Axd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 Bxd2+ * E11 "Bogo-India: 4.Cbd2 b6 5.a3 Axd2+ 6.Axd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 Bxd2+ 6.Bxd2 * E11 "Bogo-India: 4.Cbd2 b6 5.a3 Axd2+ 6.Axd2 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 b6 5.a3 Bxd2+ 6.Bxd2 Bb7 * E11 "Bogo-India: 4.Cbd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O * E11 "Bogo-India: 4.Cbd2 O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 * E11 "Bogo-India: 4.Cbd2 O-O 5.a3 Axd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 Bxd2+ * E11 "Bogo-India: 4.Cbd2 O-O 5.a3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 Be7 * E11 "Bogo-India: Variante Grünfeld" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Nbd2 O-O 5.a3 Be7 6.e4 d5 * E11 "Bogo-India: 4.Ad2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 * E11 "Bogo-India: 4.Ad2 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 * E11 "Bogo-India: 4.Ad2 Ae7 5.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 * E11 "Bogo-India: 4.Ad2 Ae7 5.g3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 * E11 "Bogo-India: 4.Ad2 Ae7 5.g3 d5 6.Ag2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 * E11 "Bogo-India: 4.Ad2 Ae7 5.g3 d5 6.Ag2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O * E11 "Bogo-India: 4.Ad2 Ae7 5.g3 d5 6.Ag2 O-O 7.O-O c6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 * E11 "Bogo-India: 4.Ad2 Ae7 5.g3 d5 6.Ag2 O-O 7.O-O c6 8.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 * E11 "Bogo-India: 4.Ad2 Ae7 5.g3 d5 6.Ag2 O-O 7.O-O c6 8.Dc2 b6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 b6 * E11 "Bogo-India: 4.Ad2 Ae7 5.g3 d5 6.Ag2 O-O 7.O-O c6 8.Dc2 b6 9.Af4" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Be7 5.g3 d5 6.Bg2 O-O 7.O-O c6 8.Qc2 b6 9.Bf4 * E11 "Bogo-India: Variante Vitolins" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 c5 * E11 "Bogo-India: Vitolins, 6.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 c5 5.Bxb4 cxb4 6.g3 * E11 "Bogo-India: 4.Ad2 a5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 a5 * E11 "Bogo-India: 4.Ad2 a5 5.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 a5 5.Nc3 * E11 "Bogo-India: 4.Ad2 a5 5.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 a5 5.g3 * E11 "Bogo-India: Variante Nimzowitsch" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 * E11 "Bogo-India: Nimzowitsch, 5.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.Nc3 * E11 "Bogo-India: Nimzowitsch, 5.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 * E11 "Bogo-India: Nimzowitsch, 5.g3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 O-O * E11 "Bogo-India: Nimzowitsch, 5.g3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 O-O 6.Bg2 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Cc3 Axc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Cc3 Axc3 7.Axc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Cc3 Axc3 7.Axc3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 Ne4 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Cc3 Axc3 7.Axc3 Ce4 8.Tc1" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Nc3 Bxc3 7.Bxc3 Ne4 8.Rc1 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Ag2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Ag2 Axd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 6.Ag2 Axd2+ 7.Cbxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 Línea Principal" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 Línea Principal, 8...O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O O-O * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 Línea Principal, 8...a5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O a5 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 Línea Principal, 8...a5 9.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O a5 9.e4 * E11 "Bogo-India: Nimzowitsch, 5.g3 Cc6 Línea Principal, 8...a5 9.e4 e5 10.d5 Cb8" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Qe7 5.g3 Nc6 6.Bg2 Bxd2+ 7.Nbxd2 d6 8.O-O a5 9.e4 e5 10.d5 Nb8 * E11 "Bogo-India: 4.Ad2 Axd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ * E11 "Bogo-India: 4.Ad2 Axd2+ 5.Cbxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Nbxd2 * E11 "Bogo-India: 4.Ad2 Axd2+ 5.Dxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 * E11 "Bogo-India: 4.Ad2 Axd2+ 5.Dxd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O * E11 "Bogo-India: 4.Ad2 Axd2+ 5.Dxd2 O-O 6.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 * E11 "Bogo-India: 4.Ad2 Axd2+ 5.Dxd2 O-O 6.Cc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 d5 * E11 "Bogo-India: 4.Ad2 Axd2+ 5.Dxd2 O-O 6.Cc3 d5 7.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 Bb4+ 4.Bd2 Bxd2+ 5.Qxd2 O-O 6.Nc3 d5 7.e3 * E12 "India de Dama" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 * E12 "India de Dama: Variante Miles" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 * E12 "India de Dama: Miles, 5.e3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Be7 * E12 "India de Dama: Miles, 5.e3 Ae7 6.h3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Be7 6.h3 * E12 "India de Dama: Miles, 5.e3 Ab4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Bb4+ * E12 "India de Dama: Miles, 5.e3 Ab4+ 6.Cbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Bb4+ 6.Nbd2 * E12 "India de Dama: Miles, 5.e3 Ab4+ 6.Cfd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bf4 Bb7 5.e3 Bb4+ 6.Nfd2 * E12 "India de Dama: Petrosian" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 * E12 "India de Dama: Petrosian, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 * E12 "India de Dama: Petrosian, 4...c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 * E12 "India de Dama: Petrosian, 4...c5 5.d5 Aa6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 Ba6 * E12 "India de Dama: Petrosian, 4...c5 5.d5 Aa6 6.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 Ba6 6.Qc2 * E12 "India de Dama: Petrosian, 4...c5 5.d5 Aa6 6.Dc2 exd5 6.cxd5 g6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 c5 5.d5 Ba6 6.Qc2 exd5 6.cxd5 g6 * E12 "India de Dama: Petrosian, 4...Aa6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 * E12 "India de Dama: Petrosian, 4...Aa6 5.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.e3 * E12 "India de Dama: Petrosian, 4...Aa6 5.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 * E12 "India de Dama: Petrosian, 4...Aa6 5.Dc2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 c5 * E12 "India de Dama: Petrosian, 4...Aa6 5.Dc2 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 * E12 "India de Dama: Petrosian, 4...Aa6 5.Dc2 Ab7 6.Cc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 6.Nc3 c5 * E12 "India de Dama: Petrosian, 4...Aa6 5.Dc2 Ab7 6.Cc3 c5 7.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 6.Nc3 c5 7.e4 * E12 "India de Dama: Petrosian, 4...Aa6 5.Dc2 Ab7 6.Cc3 c5 7.e4 cd 8.Cxd4 Cc6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 6.Nc3 c5 7.e4 cxd4 8.Nxd4 Nc6 * E12 "India de Dama: Petrosian, 4...Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 * E12 "India de Dama: Petrosian, 5.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 * E12 "India de Dama: Petrosian, 5.Cc3 Axf3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 Bxf3 * E12 "India de Dama: Petrosian, 5.Cc3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 Be7 * E12 "India de Dama: Petrosian, 5.Cc3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 Ne4 * E12 "India de Dama: Petrosian, 5.Cc3 g6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 g6 * E12 "India de Dama: Petrosian, 5.Cc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 * E12 "India de Dama: Petrosian, 5.Cc3 d5 6.Ag5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 * E12 "India de Dama: Petrosian, 5.Cc3 d5 6.Ag5 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 * E12 "India de Dama: Petrosian, 5.Cc3 d5 6.Ag5 Ae7 7.Da4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ * E12 "India de Dama: Petrosian, 5.Cc3 d5 6.Ag5 Ae7 7.Da4+ c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ c6 * E12 "India de Dama: Petrosian, 5.Cc3 d5 6.Ag5 Ae7 7.Da4+ c6 8.Axf6 Axf6 9.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.Bg5 Be7 7.Qa4+ c6 8.Bxf6 Bxf6 9.cxd5 exd5 * E12 "India de Dama: Petrosian, 6.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 exd5 * E12 "India de Dama: Petrosian, 6.cxd5 exd5 7.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 exd5 7.g3 * E12 "India de Dama: Petrosian, 6.cxd5 exd5 7.Ag5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 exd5 7.Bg5 * E12 "India de Dama: Petrosian, 6.cxd5 Cxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 * E12 "India de Dama: Petrosian, 6.cxd5 Cxd5 7.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e4 * E12 "India de Dama: Petrosian, 6.cxd5 Cxd5 7.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e3 * E12 "India de Dama: Petrosian, 6.cxd5 Cxd5 7.e3 g6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e3 g6 * E12 "India de Dama: Petrosian, 6.cxd5 Cxd5 7.e3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.e3 Be7 * E12 "India de Dama: Petrosian, Variante Kasparov" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 * E12 "India de Dama: Petrosian, Kasparov, 7...Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Be7 * E12 "India de Dama: Petrosian, Kasparov, 7...c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 c5 * E12 "India de Dama: Petrosian, Kasparov, 7...Cxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 * E12 "India de Dama: Petrosian, Kasparov, 7...Cxc3 8.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 * E12 "India de Dama: Petrosian, Kasparov, 7...Cxc3 8.bxc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 c5 * E12 "India de Dama: Petrosian, Kasparov, 7...Cxc3 8.bxc3 c5 9.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 c5 8.e4 * E12 "India de Dama: Petrosian, Kasparov, 7...Cxc3 8.bxc3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 Be7 * E12 "India de Dama: Petrosian, Kasparov, 7...Cxc3 8.bxc3 Ae7 9.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Bb7 5.Nc3 d5 6.cxd5 Nxd5 7.Qc2 Nxc3 8.bxc3 Be7 8.e4 * E12 "India de Dama: 4.Ag5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Bg5 * E12 "India de Dama: 4.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 * E12 "India de Dama: 4.Cc3 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 * E12 "India de Dama: 4.Cc3 Ab7 5.Ag5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 * E12 "India de Dama: 5.Ag5 h6 6.Ah4 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Be7 * E12 "India de Dama: 5.Ag5 h6 6.Ah4 Ae7 7.e3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Be7 7.e3 Ne4 * E12 "India de Dama: 5.Ag5 h6 6.Ah4 Ae7 7.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Be7 7.e3 c5 * E12 "India de Dama: Variante Botvinnik" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 g5 * E12 "India de Dama: Botvinnik, 8.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 g5 7.Bg3 Nh5 8.Qc2 * E12 "India de Dama: Botvinnik, 8.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 g5 7.Bg3 Nh5 8.e3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Qc2 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.Dc2 g5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Qc2 g5 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.Cd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.Cd2 Axc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 Bxc3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.Cd2 Axc3 8.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.Nd2 Bxc3 8.bxc3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 c5 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 Axc3+ 8.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 Axc3+ 8.bxc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 Axc3+ 8.bxc3 d6 9.Cd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 Axc3+ 8.bxc3 d6 9.Cd2 Cbd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 Axc3+ 8.bxc3 d6 9.Cd2 Cbd7 10.f3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 10.f3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 Axc3+ 8.bxc3 d6 9.Cd2 Cbd7 10.f3 De7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 Bxc3+ 8.bxc3 d6 9.Nd2 Nbd7 10.f3 Qe7 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5 8.Ag3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5 8.Ag3 Ce4 9.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5 8.Ag3 Ce4 9.Dc2 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5 8.Ag3 Ce4 9.Dc2 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5 8.Ag3 Ce4 9.Dc2 Axc3+ 10.bxc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5 8.Ag3 Ce4 9.Dc2 Axc3+ 10.bxc3 d6 11.Ad3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 11.Bd3 * E13 "India de Dama: 5.Ag5 h6 6.Ah4 Ab4 7.e3 g5 8.Ag3 Ce4 9.Dc2 Axc3+ 10.bxc3 d6 11.Ad3 f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.Nc3 Bb7 5.Bg5 h6 6.Bh4 Bb4 7.e3 g5 8.Bg3 Ne4 9.Qc2 Bxc3+ 10.bxc3 d6 11.Bd3 f5 * E14 "India de Dama: 4.e3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 * E14 "India de Dama: 4.e3 Ab4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb4+ * E14 "India de Dama: 4.e3 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 * E14 "India de Dama: 4.e3 Ab7 5.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Nc3 * E14 "India de Dama: 4.e3 Ab7 5.Cc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Nc3 d5 * E14 "India de Dama: 4.e3 Ab7 5.Ad3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ab4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ab4+ 6.Cbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ab4+ 6.Cbd2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 c5 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ab4+ 6.Cbd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ab4+ 6.Cbd2 O-O 7.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ab4+ 6.Cbd2 O-O 7.O-O d5 8.a3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ab4+ 6.Cbd2 O-O 7.O-O d5 8.a3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3 Be7 * E14 "India de Dama: Variante Dreev" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Bb4+ 6.Nbd2 O-O 7.O-O d5 8.a3 Be7 9.b4 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ae7 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 6.O-O * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ae7 6.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 6.O-O O-O * E14 "India de Dama: 4.e3 Ab7 5.Ad3 Ae7 6.O-O O-O 7.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 Be7 6.O-O O-O 7.Nc3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 d5 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O * E14 "India de Dama: 4.e3 Ab7 5.Ad3 d5 6.O-O Ad6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 d5 6.O-O Ad6 7.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 7.b3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 d5 6.O-O Ad6 7.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 d5 6.O-O Bd6 7.Nc3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.Nc3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O cxd4 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O cxd4 7.exd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O cxd4 7.exd4 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.Cbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nbd2 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.b3 O-O 8.Ab2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 d5 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.b3 O-O 8.Ab2 cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 * E14 "India de Dama: Variante Averbakh" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.Nxd4 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.b3 O-O 8.Ab2 cxd4 9.exd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.exd4 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.b3 O-O 8.Ab2 cxd4 9.exd4 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.b3 O-O 8.Bb2 cxd4 9.exd4 d5 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.Cc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 O-O * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.Cc3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.Cc3 cxd4 8.exd4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 8.exd4 * E14 "India de Dama: 4.e3 Ab7 5.Ad3 c5 6.O-O Ae7 7.Cc3 cxd4 8.exd4 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.e3 Bb7 5.Bd3 c5 6.O-O Be7 7.Nc3 cxd4 8.exd4 d5 * E15 "India de Dama: 4.g3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 * E15 "India de Dama: 4.g3 Ab4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ * E15 "India de Dama: 4.g3 Ab4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ 5.Bd2 * E15 "India de Dama: 4.g3 Ab4+ 5.Ad2 Axd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ 5.Bd2 Bxd2+ * E15 "India de Dama: 4.g3 Ab4+ 5.Ad2 Axd2+ 6.Dxd2 Aa6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb4+ 5.Bd2 Bxd2+ 6.Qxd2 Ba6 * E15 "India de Dama: Variante Nimzowitsch (4.g3 Aa6)" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 * E15 "India de Dama: Nimzowitsch, 5.Db3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qb3 * E15 "India de Dama: Nimzowitsch, 5.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qc2 * E15 "India de Dama: Nimzowitsch, 5.Cbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 * E15 "India de Dama: Nimzowitsch, 5.Cbd2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 c5 * E15 "India de Dama: Nimzowitsch, 5.Cbd2 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb7 * E15 "India de Dama: Nimzowitsch, 5.Cbd2 Ab7 6.Ag2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb7 6.Bg2 * E15 "India de Dama: Nimzowitsch, 5.Cbd2 Ab7 6.Ag2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb7 6.Bg2 c5 * E15 "India de Dama: Nimzowitsch, 5.Cbd2 Ab4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Nbd2 Bb4 * E15 "India de Dama: Nimzowitsch, 5.Da4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 * E15 "India de Dama: Nimzowitsch, 5.Da4 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 Be7 * E15 "India de Dama: Nimzowitsch, 5.Da4 c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c6 * E15 "India de Dama: Nimzowitsch, 5.Da4 c6 6.Cc3 b5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c6 6.Nc3 b5 * E15 "India de Dama: Nimzowitsch, 5.Da4 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 * E15 "India de Dama: Nimzowitsch, 5.Da4 c5 6.Ag2 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 6.Bg2 Bb7 * E15 "India de Dama: Nimzowitsch, 5.Da4 c5 6.Ag2 Ab7 7.dxc5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 6.Bg2 Bb7 7.dxc5 * E15 "India de Dama: Nimzowitsch, 5.Da4 c5 6.Ag2 Ab7 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.Qa4 c5 6.Bg2 Bb7 7.O-O * E15 "India de Dama: Nimzowitsch, 5.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 * E15 "India de Dama: Nimzowitsch, 5.b3 b5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 b5 * E15 "India de Dama: Nimzowitsch, 5.b3 b5 6.cxb5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 b5 6.cxb5 * E15 "India de Dama: Nimzowitsch, 5.b3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 d5 * E15 "India de Dama: Nimzowitsch, 5.b3 d5 6.cxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 d5 6.cxd5 * E15 "India de Dama: Nimzowitsch, 5.b3 d5 6.Ag2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 d5 6.Bg2 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab7 6.Ag2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 6.Bg2 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab7, 7...a5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 6.Bg2 Bb4+ 7.Bd2 a5 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab7, 7...a5 8.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb7 6.Bg2 Bb4+ 7.Bd2 a5 8.O-O O-O * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7 7.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Nc3 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7 7.Ag2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7 7.Ag2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 d5 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7 7.Ag2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 d5 8.cxd5 exd5 9.O-O O-O * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7 7.Ag2 c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7 7.Ag2 c6 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.O-O * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+ 6.Ad2 Ae7 7.Ag2 c6 8.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.O-O d5 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+, Línea Principal" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.Bc3 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+, Línea Principal, 9.Ce5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.Bc3 d5 9.Ne5 * E15 "India de Dama: Nimzowitsch, 5.b3 Ab4+, Línea Principal, 9.Ce5 Cfd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Ba6 5.b3 Bb4+ 6.Bd2 Be7 7.Bg2 c6 8.Bc3 d5 9.Ne5 Nfd7 * E15 "India de Dama: 4.g3 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 * E15 "India de Dama: 4.g3 Ab7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 * E15 "India de Dama: 4.g3 Ab7 5.Ag2 Dc8" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Qc8 * E15 "India de Dama: 4.g3 Ab7 5.Ag2 Dc8 6.O-O c5 7.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Qc8 6.O-O c5 7.d5 * E15 "India de Dama: 4.g3 Ab7 5.Ag2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 c5 * E15 "India de Dama: Variante Buerger" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 c5 6.d5 exd5 7.Ng5 * E15 "India de Dama: Variante Rubinstein" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 c5 6.d5 exd5 7.Nh4 * E16 "India de Dama: Variante Capablanca" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ * E16 "India de Dama: Capablanca, 6.Cbd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Nbd2 * E16 "India de Dama: Capablanca, 6.Cbd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Nbd2 O-O * E16 "India de Dama: Capablanca, 6.Cbd2 O-O 7.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Nbd2 O-O 7.O-O d5 * E16 "India de Dama: Capablanca, 6.Ad2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 * E16 "India de Dama: Capablanca, 6.Ad2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 c5 * E16 "India de Dama: Capablanca, Variante Yates" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 a5 * E16 "India de Dama: Capablanca, Yates, 7.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 a5 7.O-O O-O * E16 "India de Dama: Capablanca, Variante Nimzowitsch" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Qe7 * E16 "India de Dama: Capablanca, Nimzowitsch, 7.O-O Axd2 8.Dxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Qe7 7.O-O Bxd2 8.Qxd2 * E16 "India de Dama: Capablanca, Variante Riumin" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 * E16 "India de Dama: Capablanca, Riumin, 7.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 * E16 "India de Dama: Capablanca, Riumin, 7.Cc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 O-O * E16 "India de Dama: Capablanca, Riumin, 7.Cc3 O-O 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 O-O 8.O-O * E16 "India de Dama: Capablanca, Riumin, 7.Cc3 O-O 8.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Be7 7.Nc3 O-O 8.O-O d5 * E16 "India de Dama: Capablanca, 6...Axd2+" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ * E16 "India de Dama: Capablanca, 6...Axd2+ 7.Cbxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Nbxd2 * E16 "India de Dama: Capablanca, 6...Axd2+ 7.Dxd2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 * E16 "India de Dama: Capablanca, 6...Axd2+ 7.Dxd2 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 O-O * E16 "India de Dama: Capablanca, 6...Axd2+ 7.Dxd2 O-O 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 O-O 8.O-O * E16 "India de Dama: Capablanca, 6...Axd2+ 7.Dxd2 O-O 8.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 O-O 8.Nc3 * E17 "India de Dama: 5.Ag2 Ae7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 * E17 "India de Dama: 6.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 * E17 "India de Dama: 6.Cc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 d5 * E17 "India de Dama: 6.Cc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O * E17 "India de Dama: 6.Cc3 O-O 7.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O 7.Qc2 * E17 "India de Dama: 6.Cc3 O-O 7.Dc2 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O 7.Qc2 c5 * E17 "India de Dama: 6.Cc3 O-O 7.Dc2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 O-O 7.Qc2 d5 * E17 "India de Dama: 6.Cc3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 * E17 "India de Dama: 6.Cc3 Ce4 7.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Qc2 * E17 "India de Dama: Variante Opovcensky" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 * E17 "India de Dama: Opovcensky, 7...O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 O-O * E17 "India de Dama: Opovcensky, 7...f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 f5 * E17 "India de Dama: Opovcensky, 7...Af6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.Nc3 Ne4 7.Bd2 Bf6 * E17 "India de Dama: 6.O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O * E17 "India de Dama: 6.O-O d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O d5 * E17 "India de Dama: 6.O-O O-O" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O * E17 "India de Dama: 6.O-O O-O 7.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Qc2 * E17 "India de Dama: 6.O-O O-O 7.Te1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Re1 * E17 "India de Dama: 6.O-O O-O 7.Te1 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Re1 d5 * E17 "India de Dama: Variante Euwe" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.b3 * E17 "India de Dama: Euwe, 7...c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.b3 c5 * E17 "India de Dama: Euwe, 7...d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.b3 d5 * E17 "India de Dama: Variante Pomar" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 * E17 "India de Dama: Pomar, 7...exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 * E17 "India de Dama: Pomar, Variante Taimanov" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nd4 * E17 "India de Dama: Pomar, Variante Polugaevsky" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 * E17 "India de Dama: Pomar, Polugaevsky, 8...c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 * E17 "India de Dama: Pomar, Polugaevsky, 8...c6 9.cxd5 Cxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 9.cxd5 Nxd5 * E17 "India de Dama: Pomar, Polugaevsky, 8...c6 9.cxd5 Cxd5 10.Cf5 Cc7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 9.cxd5 Nxd5 10.Nf5 Nc7 * E17 "India de Dama: Pomar, Polugaevsky, 8...c6 9.cxd5 Cxd5 10.Cf5 Cc7 11.e4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.d5 exd5 8.Nh4 c6 9.cxd5 Nxd5 10.Nf5 Nc7 11.e4 * E18 "India de Dama: 7.Cc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 * E18 "India de Dama: 7.Cc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 c5 * E18 "India de Dama: 7.Cc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d6 * E18 "India de Dama: 7.Cc3 Ca6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Na6 * E18 "India de Dama: 7.Cc3 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 * E18 "India de Dama: 7.Cc3 d5 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.cxd5 * E18 "India de Dama: 7.Cc3 d5 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.cxd5 exd5 * E18 "India de Dama: 7.Cc3 d5 8.Ce5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 * E18 "India de Dama: 7.Cc3 d5 8.Ce5 c6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 c6 * E18 "India de Dama: 7.Cc3 d5 8.Ce5 Cbd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 Nbd7 * E18 "India de Dama: 7.Cc3 d5 8.Ce5 Ca6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 Na6 * E18 "India de Dama: 7.Cc3 d5 8.Ce5 Ca6 9.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 d5 8.Ne5 Na6 9.cxd5 exd5 * E18 "India de Dama: 7.Cc3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 d5 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 d5 9.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 d5 9.cxd5 exd5 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 f5 9.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 9.d5 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 f5 9.d5 Af6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 9.d5 Bf6 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 f5 9.d5 Af6 10.Tc1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 f5 9.d5 Bf6 10.Rc1 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 Af6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 Bf6 * E18 "India de Dama: 7.Cc3 Ce4 8.Ad2 Af6 9.Tc1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Bd2 Bf6 9.Rc1 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.d5 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Af4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Bf4 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Ch4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Nh4 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Ce1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Ce1 Axg2 10.Cxg2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Ce1 Axg2 10.Cxg2 d5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Ce1 Axg2 10.Cxg2 d5 11.Da4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Ce1 Axg2 10.Cxg2 d5 11.Da4 Dd7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 Qd7 * E18 "India de Dama: 7.Cc3 Ce4 8.Cxe4 Axe4 9.Ce1 Axg2 10.Cxg2 d5 11.Da4 dxc4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Nxe4 Bxe4 9.Ne1 Bxg2 10.Nxg2 d5 11.Qa4 dxc4 * E18 "India de Dama: Línea Principal Antigua, 8.Dc2" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 * E18 "India de Dama: Línea Principal Antigua, 8.Dc2 Cxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 * E18 "India de Dama: Línea Principal Antigua, 8.Dc2 Cxc3 9.bxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.bxc3 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 d6 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 d6 10.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 d6 10.b3 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 Ae4" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 Be4 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 Ae4 10.Ce1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 Be4 10.Ne1 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 f5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 f5 10.Td1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 10.Rd1 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 f5 10.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 10.b3 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 f5 10.b3 Af6 11.Ab2 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 f5 10.b3 Bf6 11.Bb2 d6 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5 10.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.b3 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5 10.Td1" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5 10.Td1 d6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5 10.Td1 d6 11.b3" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5 10.Td1 d6 11.b3 Af6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5 10.Td1 d6 11.b3 Af6" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6 12.Bb2 * E19 "India de Dama: Línea Principal Antigua, 9.Dxc3 c5 10.Td1 d6 11.b3 Af6 12.Ab2 De7" 1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.g3 Bb7 5.Bg2 Be7 6.O-O O-O 7.Nc3 Ne4 8.Qc2 Nxc3 9.Qxc3 c5 10.Rd1 d6 11.b3 Bf6 12.Bb2 Qe7 * E20 "Defensa Nimzo-India" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 * E20 "Nimzo-India: Ataque Mikenas" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qd3 * E20 "Nimzo-India: 4.Ad2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bd2 * E20 "Nimzo-India: 4.Ad2 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bd2 O-O * E20 "Nimzo-India: 4.Ad2 O-O 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bd2 O-O 5.Nf3 * E20 "Nimzo-India: Romanishin" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 * E20 "Nimzo-India: Romanishin, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 * E20 "Nimzo-India: Romanishin, 4...c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.d5 * E20 "Nimzo-India: Romanishin, 4...c5 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 * E20 "Nimzo-India: Romanishin, 4...c5 5.Cf3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 Ne4 * E20 "Nimzo-India: Romanishin, 4...c5 5.Cf3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 Nc6 * E20 "Nimzo-India: Romanishin, 4...c5 5.Cf3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 O-O * E20 "Nimzo-India: Romanishin, 4...c5 5.Cf3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 * E20 "Nimzo-India: Romanishin, 6.Cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 * E20 "Nimzo-India: Romanishin, 6.Cxd4 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O * E20 "Nimzo-India: Romanishin, 6.Cxd4 O-O 7.Ag2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O 7.Bg2 * E20 "Nimzo-India: Romanishin, 6.Cxd4 O-O 7.Ag2 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O 7.Bg2 d5 * E20 "Nimzo-India: Romanishin, 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3 c5 5.Nf3 cxd4 6.Nxd4 O-O 7.Bg2 d5 8.cxd5 * E20 "Nimzo-India: 4.f3 (Kmoch)" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 * E20 "Nimzo-India: 4.f3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 d5 * E20 "Nimzo-India: 4.f3 d5 5.a3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 d5 5.a3 Be7 * E20 "Nimzo-India: 4.f3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 c5 * E20 "Nimzo-India: 4.f3 c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.f3 c5 5.d5 * E21 "Nimzo-India: Tres Caballos" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 * E21 "Nimzo-India: Híbrido Nimzo-Dama" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 * E21 "Nimzo-India: Híbrido Nimzo-Dama, 5.Dc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qc2 * E21 "Nimzo-India: Híbrido Nimzo-Dama, 5.Dc2 Ab7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qc2 Bb7 * E21 "Nimzo-India: Híbrido Nimzo-Dama, 5.Db3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qb3 * E21 "Nimzo-India: Híbrido Nimzo-Dama, 5.Db3 a5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qb3 a5 * E21 "Nimzo-India: Híbrido Nimzo-Dama, 5.Db3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Qb3 c5 * E21 "Nimzo-India: Híbrido Nimzo-Dama, 5.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Bg5 * E21 "Nimzo-India: Híbrido Nimzo-Dama, 5.Ag5 Ab7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 b6 5.Bg5 Bb7 * E21 "Nimzo-India: Tres Caballos, 4...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 O-O * E21 "Nimzo-India: Tres Caballos, 4...Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 Bxc3+ * E21 "Nimzo-India: Tres Caballos, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 c5 * E21 "Nimzo-India: Tres Caballos, Variante Euwe" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 c5 5.d5 Ne4 * E22 "Nimzo-India: Variante Spielmann" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 * E22 "Nimzo-India: Spielmann, 4...Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 Nc6 * E22 "Nimzo-India: Spielmann, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 * E22 "Nimzo-India: Spielmann, 4...c5 5.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.e3 * E22 "Nimzo-India: Spielmann, 4...c5 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.Nf3 * E22 "Nimzo-India: Spielmann, 4...c5 5.dxc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 * E22 "Nimzo-India: Spielmann, 4...c5 5.dxc5 Ca6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Na6 * E23 "Nimzo-India: Spielmann, 4...c5 5.dxc5 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 * E23 "Nimzo-India: Spielmann, 4...c5 5.dxc5 Cc6 6.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Bg5 * E23 "Nimzo-India: Spielmann, 4...c5 5.dxc5 Cc6 6.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 * E23 "Nimzo-India: Spielmann, 4...c5 5.dxc5 Cc6 6.Cf3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 * E23 "Nimzo-India: Spielmann, Variante de San Remo" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 7.Bd2 Nxc5 * E23 "Nimzo-India: Spielmann, Variante Stahlberg" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 7.Bd2 Nxc5 8.Qc2 f5 9.g3 * E23 "Nimzo-India: Spielmann, Variante de Carlsbad" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qb3 c5 5.dxc5 Nc6 6.Nf3 Ne4 7.Bd2 Nxd2 * E24 "Nimzo-India: Sämisch" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 * E24 "Nimzo-India: Sämisch" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 * E24 "Nimzo-India: Sämisch, 5...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 b6 * E24 "Nimzo-India: Sämisch, 5...b6 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 b6 6.f3 * E24 "Nimzo-India: Sämisch, 5...d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 d5 * E24 "Nimzo-India: Sämisch, 5...d5 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 d5 6.f3 * E24 "Nimzo-India: Sämisch, 5...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 * E24 "Nimzo-India: Sämisch, 5...c5 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 * E24 "Nimzo-India: Sämisch, 5...c5 6.f3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 * E24 "Nimzo-India: Sämisch, Variante Botvinnik" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.e3 O-O 8.cxd5 Nxd5 * E25 "Nimzo-India: Sämisch, 5...c5 6.f3 d5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 * E25 "Nimzo-India: Sämisch, 5...c5 6.f3 d5 7.cxd5 Cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 * E25 "Nimzo-India: Sämisch, 5...c5 6.f3 d5 7.cxd5 Cxd5 8.Dd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.Qd3 * E25 "Nimzo-India: Sämisch, Variante Keres" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 * E25 "Nimzo-India: Sämisch, Keres, Variante Romanovsky" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 f5 * E25 "Nimzo-India: Sämisch, Keres, Romanovsky, 9.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 f5 9.e4 * E25 "Nimzo-India: Sämisch, Keres, Romanovsky, 9.Ch3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.f3 d5 7.cxd5 Nxd5 8.dxc5 f5 9.Nh3 * E26 "Nimzo-India: Sämisch, 5...c5 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 * E26 "Nimzo-India: Sämisch, 5...c5 6.e3 Da5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 Qa5 * E26 "Nimzo-India: Sämisch, 5...c5 6.e3 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 d6 * E26 "Nimzo-India: Sämisch, Variante O'Kelly" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 b6 * E26 "Nimzo-India: Sämisch, 5...c5 6.e3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 Nc6 * E26 "Nimzo-India: Sämisch, 5...c5 6.e3 Cc6 7.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 c5 6.e3 Nc6 7.Bd3 * E27 "Nimzo-India: Sämisch, 5...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O * E27 "Nimzo-India: Sämisch, 5...O-O 6.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 * E27 "Nimzo-India: Sämisch, 5...O-O 6.f3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 d5 * E27 "Nimzo-India: Sämisch, 5...O-O 6.f3 d5 7.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 d5 7.e3 * E27 "Nimzo-India: Sämisch, 5...O-O 6.f3 d5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.f3 d5 7.cxd5 * E28 "Nimzo-India: Sämisch, 5...O-O 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 * E28 "Nimzo-India: Sämisch, 5...O-O 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 b6 * E28 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 * E28 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Ne2 * E28 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 * E28 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 b6 * E29 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 * E29 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 Cc6 8.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Nf3 * E29 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 Cc6 8.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 * E29 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 Cc6 8.Ce2 e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 e5 * E29 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 Cc6 8.Ce2 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 d6 * E29 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 Cc6 8.Ce2 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 * E29 "Nimzo-India: Sämisch, 5...O-O 6.e3 c5 7.Ad3 Cc6 8.Ce2 b6 9.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 9.e4 * E29 "Nimzo-India: Sämisch, Variante Capablanca" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 9.e4 Ne8 * E29 "Nimzo-India: Sämisch, Capablanca, 10.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.a3 Bxc3+ 5.bxc3 O-O 6.e3 c5 7.Bd3 Nc6 8.Ne2 b6 9.e4 Ne8 10.O-O * E30 "Nimzo-India: Leningrado" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 * E30 "Nimzo-India: Leningrado, 4...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 O-O * E30 "Nimzo-India: Leningrado, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 * E30 "Nimzo-India: Leningrado, 4...c5 5.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 * E30 "Nimzo-India: Leningrado, 4...c5 5.d5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 exd5 * E30 "Nimzo-India: Leningrado, 4...c5 5.d5 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 Bxc3+ * E30 "Nimzo-India: Leningrado, 4...c5 5.d5 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 d6 * E30 "Nimzo-India: Leningrado, 4...c5 5.d5 d6 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 d6 6.e3 * E30 "Nimzo-India: Leningrado, 4...c5 5.d5 h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 c5 5.d5 h6 * E30 "Nimzo-India: Leningrado, 4...h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 * E30 "Nimzo-India: Leningrado, 4...h6 5.Axf6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bxf6 * E30 "Nimzo-India: Leningrado, 4...h6 5.Ah4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 * E30 "Nimzo-India: Leningrado, 4...h6 5.Ah4 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 * E30 "Nimzo-India: Leningrado, 6.d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 * E30 "Nimzo-India: Leningrado, 6.d5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 exd5 * E30 "Nimzo-India: Leningrado, 6.d5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 exd5 7.cxd5 * E30 "Nimzo-India: Leningrado, Gambito 6.d5 b5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 b5 * E30 "Nimzo-India: Leningrado, 6.d5 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 Bxc3+ * E31 "Nimzo-India: Leningrado, Línea Principal" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3 g5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 g5 * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 exd5 * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3 e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 e5 * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3 De7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Qe7 * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 O-O * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ * E31 "Nimzo-India: Leningrado, Línea Principal, 7.e3 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 * E31 "Nimzo-India: Leningrado, Línea Principal, 8...De7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 Qe7 * E31 "Nimzo-India: Leningrado, Línea Principal, 8...e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 * E31 "Nimzo-India: Leningrado, Línea Principal, 8...e5 9.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.Nf3 * E31 "Nimzo-India: Leningrado, Línea Principal, 8...e5 9.Dc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.Qc2 * E31 "Nimzo-India: Leningrado, Línea Principal, 8...e5 9.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.Bd3 * E31 "Nimzo-India: Leningrado, Línea Principal, 8...e5 9.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.f3 * E31 "Nimzo-India: Leningrado, Línea Principal, 8...e5 9.f3 Cbd7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Bg5 h6 5.Bh4 c5 6.d5 d6 7.e3 Bxc3+ 8.bxc3 e5 9.f3 Nbd7 * E32 "Nimzo-India: Variante Clásica" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 * E32 "Nimzo-India: Clásica, 4...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 b6 * E32 "Nimzo-India: Clásica, 4...d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d6 * E32 "Nimzo-India: Clásica, 4...O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O * E32 "Nimzo-India: Clásica, 4...O-O 5.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.Bg5 * E32 "Nimzo-India: Clásica, 4...O-O 5.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.e4 * E32 "Nimzo-India: Clásica, 4...O-O 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.Nf3 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ * E32 "Nimzo-India: Clásica, 4...O-O 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 * E32 "Nimzo-India: Clásica, Gambito Adorjan" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b5 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 d6 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...Ce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 Ne4 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Nf3 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5 Aa6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Ba6 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5 Ab7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5 Ab7 8.f3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.f3 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5 Ab7 8.f3 h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.f3 h6 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5 Ab7 8.f3 h6 9.Ah4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.f3 h6 9.Bh4 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5 Ab7 8.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.e3 * E32 "Nimzo-India: Clásica, 4...O-O 5.a3, 6...b6 7.Ag5 Ab7 8.e3 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 O-O 5.a3 Bxc3+ 6.Qxc3 b6 7.Bg5 Bb7 8.e3 d6 * E33 "Nimzo-India: Clásica, 4...Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 * E33 "Nimzo-India: Clásica, 4...Cc6 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 * E33 "Nimzo-India: Clásica, 4...Cc6 5.Cf3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d5 * E33 "Nimzo-India: Clásica, Variante Milner-Barry (Zurich)" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 * E33 "Nimzo-India: Clásica, Milner-Barry (Zurich), 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.a3 * E33 "Nimzo-India: Clásica, Milner-Barry (Zurich), 6.a3 Axc3+ 7.Dxc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.a3 Bxc3+ 7.Qxc3 * E33 "Nimzo-India: Clásica, Milner-Barry (Zurich), 6.Ad2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.Bd2 * E33 "Nimzo-India: Clásica, Milner-Barry (Zurich), 6.Ad2 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 Nc6 5.Nf3 d6 6.Bd2 O-O * E34 "Nimzo-India: Clásica, Variante Noa" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 * E34 "Nimzo-India: Clásica, Noa, 5.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.e3 * E34 "Nimzo-India: Clásica, Noa, 5.e3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.e3 O-O * E34 "Nimzo-India: Clásica, Noa, 5.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 * E34 "Nimzo-India: Clásica, Noa, 5.cxd5 Dxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 * E34 "Nimzo-India: Clásica, Noa, 5.cxd5 Dxd5 6.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.e3 * E34 "Nimzo-India: Clásica, Noa, 5.cxd5 Dxd5 6.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.e3 c5 * E34 "Nimzo-India: Clásica, Noa, 5.cxd5 Dxd5 6.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 * E34 "Nimzo-India: Clásica, Noa, 5.cxd5 Dxd5 6.Cf3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 c5 * E34 "Nimzo-India: Clásica, Noa, 5.cxd5 Dxd5 6.Cf3 Df5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 Qf5 * E34 "Nimzo-India: Clásica, Noa, 5.cxd5 Dxd5 6.Cf3 Df5 7.Db3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 Qf5 7.Qb3 * E34 "Nimzo-India: Clásica, Noa, Intercambio de Damas" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 Qxd5 6.Nf3 Qf5 7.Qxf5 * E35 "Nimzo-India: Clásica, Noa, Intercambio" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 * E35 "Nimzo-India: Clásica, Noa, Intercambio, 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.a3 * E35 "Nimzo-India: Clásica, Noa, Intercambio, 6.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 * E35 "Nimzo-India: Clásica, Noa, Intercambio, 6.Ag5 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 c5 * E35 "Nimzo-India: Clásica, Noa, Intercambio, 6.Ag5 h6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 * E35 "Nimzo-India: Clásica, Noa, Intercambio, 6.Ag5 h6 7.Ah4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 7.Bh4 * E35 "Nimzo-India: Clásica, Noa, Intercambio, 6.Ag5 h6 7.Ah4 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 7.Bh4 c5 * E35 "Nimzo-India: Clásica, Noa, Intercambio, 6.Ag5 h6 7.Axf6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.cxd5 exd5 6.Bg5 h6 7.Bxf6 * E36 "Nimzo-India: Clásica, Noa, 5.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 * E36 "Nimzo-India: Clásica, Noa, 5.a3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Be7 * E36 "Nimzo-India: Clásica, Noa, 5.a3 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ * E36 "Nimzo-India: Clásica, Noa, 5.a3 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 * E36 "Nimzo-India: Clásica, Noa, 5.a3 Axc3+ 6.Dxc3 dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 dxc4 * E36 "Nimzo-India: Clásica, Noa, 5.a3 Axc3+ 6.Dxc3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 O-O * E36 "Nimzo-India: Clásica, Noa, Variante Botvinnik" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Nc6 * E36 "Nimzo-India: Clásica, Noa, Línea Principal" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 * E37 "Nimzo-India: Clásica, Noa, Línea Principal, 7.Dc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 * E37 "Nimzo-India: Clásica, Noa, Línea Principal, 7.Dc2 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 Nc6 * E37 "Nimzo-India: Clásica, Noa, Variante de San Remo" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 Nc6 8.e3 e5 * E37 "Nimzo-India: Clásica, Noa, Línea Principal, 7.Dc2 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 c5 * E37 "Nimzo-India: Clásica, Noa, Línea Principal, 7.Dc2 c5 8.dxc5 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 d5 5.a3 Bxc3+ 6.Qxc3 Ne4 7.Qc2 c5 8.dxc5 Nc6 * E38 "Nimzo-India: Clásica, 4...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 * E38 "Nimzo-India: Clásica, 4...c5 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.Nf3 * E38 "Nimzo-India: Clásica, 4...c5 5.e3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.e3 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Axc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Bxc5 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Axc5 6.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Bxc5 6.Nf3 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Axc5 6.Cf3 Db6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Bxc5 6.Nf3 Qb6 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Dc7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Qc7 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Nc6 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Ca6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Ca6 6.a3 Axc3+ 7.Dxc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Ca6: 8.b4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Ca6: 8.b4 Cce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 Nce4 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Ca6: 8.b4 Cce4 9.Dd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 Nce4 9.Qd4 * E38 "Nimzo-India: Clásica, 4...c5 5.dxc5 Ca6: 8.b4 Cce4 9.Dd4 d5 10.c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 Na6 6.a3 Bxc3+ 7.Qxc3 Nxc5 8.b4 Nce4 9.Qd4 d5 10.c5 * E39 "Nimzo-India: Clásica, Variante Pirc" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O * E39 "Nimzo-India: Clásica, Pirc, 6.Af4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Bf4 * E39 "Nimzo-India: Clásica, Pirc, 6.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 * E39 "Nimzo-India: Clásica, Pirc, 6.Cf3 Axc5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Bxc5 * E39 "Nimzo-India: Clásica, Pirc, 6.Cf3 Ca6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 * E39 "Nimzo-India: Clásica, Pirc, 6.Cf3 Ca6 7.Ad2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 7.Bd2 * E39 "Nimzo-India: Clásica, Pirc, 6.Cf3 Ca6 7.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 7.a3 * E39 "Nimzo-India: Clásica, Pirc, 6.Cf3 Ca6 7.g3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.Nf3 Na6 7.g3 * E39 "Nimzo-India: Clásica, Pirc, 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 * E39 "Nimzo-India: Clásica, Pirc, 6.a3 Axc5 7.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 * E39 "Nimzo-India: Clásica, Pirc, 6.a3 Axc5 7.Cf3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 Nc6 * E39 "Nimzo-India: Clásica, Pirc, 6.a3 Axc5 7.Cf3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 b6 * E39 "Nimzo-India: Clásica, Pirc, 6.a3 Axc5 7.Cf3 b6 8.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Qc2 c5 5.dxc5 O-O 6.a3 Bxc5 7.Nf3 b6 8.Bg5 * E40 "Nimzo-India: Rubinstein" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 * E40 "Nimzo-India: Taimanov" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 * E40 "Nimzo-India: Taimanov, 5.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 5.Ne2 * E40 "Nimzo-India: Taimanov, 5.Ce2 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 5.Ne2 d5 * E40 "Nimzo-India: Taimanov, 5.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 Nc6 5.Bd3 * E41 "Nimzo-India: 4.e3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 * E41 "Nimzo-India: 4.e3 c5 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Nf3 * E41 "Nimzo-India: 4.e3 c5 5.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 * E41 "Nimzo-India: 4.e3 c5 5.Ad3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 * E41 "Nimzo-India: 4.e3 c5 5.Ad3 Cc6 6.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Ne2 * E41 "Nimzo-India: 4.e3 c5 5.Ad3 Cc6 6.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 * E41 "Nimzo-India: 4.e3 c5, Variante Hübner" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 * E41 "Nimzo-India: Hübner, 8.e4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.e4 * E41 "Nimzo-India: Hübner, 8.e4 e5 9.d5 Ce7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.e4 e5 9.d5 Ne7 * E41 "Nimzo-India: Hübner, 8.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.O-O * E41 "Nimzo-India: Hübner, 8.O-O e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.O-O e5 * E41 "Nimzo-India: Hübner, 8.O-O e5 9.Cd2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Bd3 Nc6 6.Nf3 Bxc3+ 7.bxc3 d6 8.O-O e5 9.Nd2 * E42 "Nimzo-India: 4.e3 c5 5.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 * E42 "Nimzo-India: 4.e3 c5 5.Ce2 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 d5 * E42 "Nimzo-India: 4.e3 c5 5.Ce2 cxd4 6.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 * E42 "Nimzo-India: 4.e3 c5 5.Ce2 cxd4 6.exd4 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 d5 * E42 "Nimzo-India: 4.e3 c5 5.Ce2 cxd4 6.exd4 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 O-O * E42 "Nimzo-India: 4.e3 c5 5.Ce2 cxd4 6.exd4 O-O 7.a3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 c5 5.Ne2 cxd4 6.exd4 O-O 7.a3 Be7 * E43 "Nimzo-India: Variante Nimzowitsch (Fischer)" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 * E43 "Nimzo-India: Nimzowitsch, 5.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Bd3 * E43 "Nimzo-India: Nimzowitsch, 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 * E43 "Nimzo-India: Nimzowitsch, 5.Cf3 Ab7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 * E43 "Nimzo-India: Nimzowitsch, 5.Cf3 Ab7 6.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 * E43 "Nimzo-India: Nimzowitsch, 5.Cf3 Ab7 6.Ad3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 O-O * E43 "Nimzo-India: Nimzowitsch, 5.Cf3 Ab7 6.Ad3 O-O 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 O-O 7.O-O * E43 "Nimzo-India: Nimzowitsch, 5.Cf3 Ab7 6.Ad3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 Ne4 * E43 "Nimzo-India: Nimzowitsch, 5.Cf3 Ab7 6.Ad3 Ce4 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 Ne4 7.O-O * E43 "Nimzo-India: Nimzowitsch, Variante Keene" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Nf3 Bb7 6.Bd3 Ne4 7.O-O f5 * E44 "Nimzo-India: Nimzowitsch, 5.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 * E44 "Nimzo-India: Nimzowitsch, 5.Ce2 Ab7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Bb7 * E44 "Nimzo-India: Nimzowitsch, 5.Ce2 Ce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ne4 * E44 "Nimzo-India: Nimzowitsch, 5.Ce2 Ce4 6.Ad2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ne4 6.Bd2 * E44 "Nimzo-India: Nimzowitsch, 5.Ce2 Ce4 6.Dc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ne4 6.Qc2 * E45 "Nimzo-India: Nimzowitsch, 5.Ce2 Aa6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 * E45 "Nimzo-India: Nimzowitsch, 5.Ce2 Aa6 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.a3 * E45 "Nimzo-India: Nimzowitsch, 5.Ce2 Aa6 6.a3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.a3 Be7 * E45 "Nimzo-India: Nimzowitsch, 5.Ce2 Aa6 6.a3 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.a3 Bxc3+ * E45 "Nimzo-India: Nimzowitsch, 5.Ce2 Aa6 6.Cg3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.Ng3 * E45 "Nimzo-India: Nimzowitsch, 5.Ce2 Aa6 6.Cg3 h5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.Ng3 h5 * E45 "Nimzo-India: Nimzowitsch, 5.Ce2 Aa6 6.Cg3 Axc3+" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.Ng3 Bxc3+ * E46 "Nimzo-India: 4.e3 O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O * E46 "Nimzo-India: Variante Reshevsky" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 * E46 "Nimzo-India: Variante Reshevsky" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 b6 * E46 "Nimzo-India: Variante Reshevsky" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 Re8 * E46 "Nimzo-India: Variante Reshevsky" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 * E46 "Nimzo-India: Reshevsky, Variante Simagin" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Bd6 * E46 "Nimzo-India: Reshevsky, 6.a3 Ae7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Be7 * E46 "Nimzo-India: Reshevsky, 6.a3 Ae7 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Be7 7.cxd5 * E46 "Nimzo-India: Reshevsky, 6.a3 Ae7 7.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Ne2 d5 6.a3 Be7 7.cxd5 exd5 * E47 "Nimzo-India: 4.e3 O-O 5.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 * E47 "Nimzo-India: 4.e3 O-O 5.Ad3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 b6 * E47 "Nimzo-India: 4.e3 O-O 5.Ad3 d6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d6 * E47 "Nimzo-India: 4.e3 O-O 5.Ad3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 c5 * E47 "Nimzo-India: 4.e3 O-O 5.Ad3 c5 6.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 c5 6.Ne2 * E47 "Nimzo-India: 4.e3 O-O 5.Ad3 c5 6.Ce2 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 c5 6.Ne2 cxd4 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.cxd5 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2 c5 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.O-O * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2 c5 7.O-O cxd4 8.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.O-O cxd4 8.exd4 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2 c5 7.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2 c5 7.cxd5 cxd4 8.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2 c5 7.cxd5 cxd4 8.exd4 Cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 Nxd5 * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.Ce2 c5 7.cxd5 cxd4 8.exd4 Cxd5 9.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Ne2 c5 7.cxd5 cxd4 8.exd4 Nxd5 9.O-O * E48 "Nimzo-India: 4.e3 O-O 5.Ad3 d5 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 * E49 "Nimzo-India: Sistema Botvinnik" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 * E49 "Nimzo-India: Botvinnik, 7...dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 dxc4 * E49 "Nimzo-India: Botvinnik, 7...dxc4 8.Axc4 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 dxc4 8.Bxc4 c5 * E49 "Nimzo-India: Botvinnik, 7...dxc4 8.Axc4 c5 9.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 dxc4 8.Bxc4 c5 9.Ne2 * E49 "Nimzo-India: Botvinnik, 7...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 * E49 "Nimzo-India: Botvinnik, 7...c5 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 8.cxd5 * E49 "Nimzo-India: Botvinnik, 7...c5 8.cxd5 exd5 9.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 8.cxd5 exd5 9.Ne2 * E49 "Nimzo-India: Botvinnik, 7...c5 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.a3 Bxc3+ 7.bxc3 c5 8.cxd5 exd5 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3 Ce4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 Ne4 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 b6 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3 c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3 c5 6.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Be2 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3 c5 6.Ae2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Bd3 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3 c5 6.Ad3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Bd3 Nc6 * E50 "Nimzo-India: 4.e3 O-O 5.Cf3 c5 6.Ad3 Cc6 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 c5 6.Bd3 Nc6 7.O-O * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5 6.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.a3 * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5 6.Ae2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Be2 * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5 6.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5 6.Ad3 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5 6.Ad3 Cc6 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5 6.Ad3 Cc6 7.O-O a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O a6 * E51 "Nimzo-India: 4.e3 O-O 5.Cf3 d5 6.Ad3 Cc6 7.O-O dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 Nc6 7.O-O dxc4 * E52 "Nimzo-India: Línea Principal, 6...b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7 8.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.a3 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7 8.a3 Ad6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.a3 Bd6 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7 8.cxd5 exd5 9.Ce5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 9.Ne5 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7 8.cxd5 exd5 9.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 9.a3 * E52 "Nimzo-India: Línea Principal, 6...b6 7.O-O Ab7 8.cxd5 exd5 9.a3 Ad6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 b6 7.O-O Bb7 8.cxd5 exd5 9.a3 Bd6 * E53 "Nimzo-India: Línea Principal, 6...c5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 * E53 "Nimzo-India: Línea Principal, 6...c5 7.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.a3 * E53 "Nimzo-India: Línea Principal, 6...c5 7.O-O" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O * E53 "Nimzo-India: Línea Principal, 7...Ad7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Bd7 * E53 "Nimzo-India: Línea Principal, 7...Cbd7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nbd7 * E53 "Nimzo-India: Línea Principal, Variante Keres" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O b6 * E53 "Nimzo-India: Línea Principal, Keres, 8.cxd5 exd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O b6 8.cxd5 exd5 * E54 "Nimzo-India: Línea Principal, 7...dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 * E54 "Nimzo-India: Línea Principal, 7...dxc4 8.Axc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 * E54 "Nimzo-India: Línea Principal, Variante Smyslov" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Qe7 * E54 "Nimzo-India: Línea Principal, 7...dxc4 8.Axc4 Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nc6 * E54 "Nimzo-India: Línea Principal, 7...dxc4 8.Axc4 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 * E54 "Nimzo-India: Línea Principal, 7...dxc4 8.Axc4 cxd4 9.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 * E54 "Nimzo-India: Línea Principal, 7...dxc4 8.Axc4 cxd4 9.exd4 a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 a6 * E54 "Nimzo-India: Línea Principal, 7...dxc4 8.Axc4 cxd4 9.exd4 a6 10.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 a6 10.Bg5 * E54 "Nimzo-India: Línea Principal, Variante Karpov" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 * E54 "Nimzo-India: Línea Principal, Karpov, 10.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 * E54 "Nimzo-India: Línea Principal, Karpov, 10.Ag5 Ab7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 * E54 "Nimzo-India: Línea Principal, Karpov, 10.Ag5 Ab7 11.Ce5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Ne5 * E54 "Nimzo-India: Línea Principal, Karpov, 10.Ag5 Ab7 11.Te1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Re1 * E54 "Nimzo-India: Línea Principal, Karpov, 10.Ag5 Ab7 11.Tc1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Rc1 * E54 "Nimzo-India: Línea Principal, Karpov, 10.Ag5 Ab7 11.De2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 cxd4 9.exd4 b6 10.Bg5 Bb7 11.Qe2 * E55 "Nimzo-India: Línea Principal, Variante Bronstein" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 * E55 "Nimzo-India: Línea Principal, Bronstein, 9.Ce2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Ne2 * E55 "Nimzo-India: Línea Principal, Bronstein, 9.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.a3 * E55 "Nimzo-India: Línea Principal, Bronstein, 9.a3 cd4 10.ed4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.a3 cxd4 10.exd4 * E55 "Nimzo-India: Línea Principal, Bronstein, 9.De2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 * E55 "Nimzo-India: Línea Principal, Bronstein, 9.De2 a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 a6 * E55 "Nimzo-India: Línea Principal, Bronstein, 9.De2 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 b6 * E55 "Nimzo-India: Línea Principal, Bronstein, 9.De2 b6 10.Td1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O dxc4 8.Bxc4 Nbd7 9.Qe2 b6 10.Rd1 * E56 "Nimzo-India: Línea Principal, 7...Cc6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.cxd5 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3 Aa5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Ba5 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3 Aa5 9.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Ba5 9.cxd5 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 cxd4 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3 cxd4 9.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 cxd4 9.exd4 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3 dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3 dxc4 9.Axc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 * E56 "Nimzo-India: Línea Principal, 7...Cc6 8.a3 dxc4 9.Axc4 Aa5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 Ba5 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4 Ae7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4 Ae7 11.Ae3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Be3 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4 Ae7 11.Af4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Bf4 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4 Ae7 11.Ag5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Bg5 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4 Ae7 11.Dd3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Qd3 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4 Ae7 11.Te1" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Re1 * E57 "Nimzo-India: Línea Principal, 8...dxc4 9.Axc4 cxd4 10.exd4 Ae7 11.Te1 a6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 dxc4 9.Bxc4 cxd4 10.exd4 Be7 11.Re1 a6 * E58 "Nimzo-India: Línea Principal, 8...Axc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 * E58 "Nimzo-India: Línea Principal, 8...Axc3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 * E58 "Nimzo-India: Línea Principal, 9.bxc3 b6" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 b6 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7 10.h3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.h3 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7 10.Ab2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.Bb2 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7 10.Dc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.Qc2 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7 10.cxd5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7 10.cxd5 exd5 11.a4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 exd5 11.a4 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7 10.cxd5 exd5 11.a4 Te8" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 exd5 11.a4 Re8 * E58 "Nimzo-India: Línea Principal, 9.bxc3 Dc7 10.cxd5 exd5 11.Ch4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 Qc7 10.cxd5 exd5 11.Nh4 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.a4" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.a4 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.De2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Qe2 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Dc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Qc2 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Ab2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bb2 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Ae2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Be2 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Ab5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bb5 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Aa2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Ba2 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Aa2 e5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Ba2 e5 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Ad3" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Ad3 e5 12.Dc2" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Ad3 e5 12.Dc2 Te8" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 Re8 * E59 "Nimzo-India: Línea Principal, 9.bxc3 dxc4 10.Axc4 Dc7 11.Ad3 e5 12.Dc2 Te8 13.de5" 1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 d5 6.Bd3 c5 7.O-O Nc6 8.a3 Bxc3 9.bxc3 dxc4 10.Bxc4 Qc7 11.Bd3 e5 12.Qc2 Re8 13.dxe5 * E60 "India de Rey" 1.d4 Nf6 2.c4 g6 * E60 "India de Rey: Ataque Mengarini" 1.d4 Nf6 2.c4 g6 3.Qc2 * E60 "India de Rey: 3.Ag5" 1.d4 Nf6 2.c4 g6 3.Bg5 * E60 "India de Rey: 3.d5" 1.d4 Nf6 2.c4 g6 3.d5 * E60 "India de Rey: 3.d5, Gambito del Danubio/Adorjan" 1.d4 Nf6 2.c4 g6 3.d5 b5 * E60 "India de Rey: 3.f3" 1.d4 Nf6 2.c4 g6 3.f3 * E60 "India de Rey: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 * E60 "India de Rey: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 Bg7 * E60 "India de Rey: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 Bg7 4.Bg2 * E60 "India de Rey: 3.g3" 1.d4 Nf6 2.c4 g6 3.g3 Bg7 4.Bg2 O-O * E60 "India de Rey: 3.Cf3" 1.d4 Nf6 2.c4 g6 3.Nf3 * E60 "India de Rey: 3.Cf3 d6" 1.d4 Nf6 2.c4 g6 3.Nf3 d6 * E60 "India de Rey: 3.Cf3 Ag7" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 * E60 "India de Rey: Sistema b3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 * E60 "India de Rey: Sistema b3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 O-O 5.Bb2 * E60 "India de Rey: Sistema b3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 * E60 "India de Rey: Sistema b3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O * E60 "India de Rey: Sistema b3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O 6.e3 * E60 "India de Rey: Sistema b3+g3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O 6.g3 * E60 "India de Rey: Sistema b3+g3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.b3 d6 5.Bb2 O-O 6.g3 c5 7.Bg2 Nc6 8.O-O * E60 "India de Rey: Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 * E60 "India de Rey: Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O * E60 "India de Rey: Fianchetto sin Cc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 * E60 "India de Rey: Fianchetto sin Cc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 * E60 "India de Rey: Fianchetto sin Cc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O * E60 "India de Rey: Fianchetto, Yugoslava sin Cc3" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O c5 * E60 "India de Rey: Fianchetto, Yugoslava sin Cc3, 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O c5 7.dxc5 * E60 "India de Rey: Fianchetto sin Cc3, 6...c6" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O c6 * E60 "India de Rey: Fianchetto sin Cc3, 6...Cc6" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nc6 * E60 "India de Rey: Fianchetto sin Cc3, 6...Cbd7" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 * E60 "India de Rey: Fianchetto sin Cc3, 6...Cbd7 7.Dc2" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 7.Qc2 * E60 "India de Rey: Fianchetto sin Cc3, 6...Cbd7 7.Dc2 e5" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 7.Qc2 e5 * E60 "India de Rey: Fianchetto sin Cc3, 6...Cbd7 7.Dc2 e5 8.Td1 Te8" 1.d4 Nf6 2.c4 g6 3.Nf3 Bg7 4.g3 O-O 5.Bg2 d6 6.O-O Nbd7 7.Qc2 e5 8.Rd1 Re8 * E61 "India de Rey: 3.Cc3" 1.d4 Nf6 2.c4 g6 3.Nc3 * E61 "India de Rey: 3.Cc3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 c5 * E61 "India de Rey: 3.Cc3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 c6 * E61 "India de Rey: 3.Cc3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 d6 * E61 "India de Rey: 3.Cc3 Ag7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 * E61 "India de Rey: 4.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bf4 * E61 "India de Rey: 4.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bg5 * E61 "India de Rey: 4.Ag5 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bg5 O-O * E61 "India de Rey: 4.Ag5 O-O 5.e3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Bg5 O-O 5.e3 d6 * E61 "India de Rey: 4.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 * E61 "India de Rey: 4.g3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 d6 * E61 "India de Rey: 4.g3 d6 5.Ag2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 d6 5.Bg2 * E61 "India de Rey: 4.g3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O * E61 "India de Rey: 4.g3 O-O 5.Ag2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O 5.Bg2 * E61 "India de Rey: 4.g3 O-O 5.Ag2 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O 5.Bg2 d6 * E61 "India de Rey: Fianchetto, Variante Flohr" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.g3 O-O 5.Bg2 d6 6.e3 * E61 "India de Rey: 4.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 * E61 "India de Rey: 4.Cf3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 * E61 "India de Rey: 4.Cf3 d6 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.e3 * E61 "India de Rey: Sistema Smyslov" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.Bg5 * E61 "India de Rey: Sistema Smyslov" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.Bg5 h6 * E61 "India de Rey: 4.Cf3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O * E61 "India de Rey: 4.Cf3 O-O 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.g3 * E61 "India de Rey: 4.Cf3 O-O 5.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 * E61 "India de Rey: 4.Cf3 O-O 5.e3 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 * E61 "India de Rey: 4.Cf3 O-O 5.e3 d6 6.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 6.Be2 * E61 "India de Rey: 4.Cf3 O-O 5.e3 d6 6.Ae2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 6.Be2 c5 * E61 "India de Rey: 4.Cf3 O-O 5.e3 d6 6.Ae2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.e3 d6 6.Be2 c5 7.O-O * E61 "India de Rey: 4.Cf3 O-O 5.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 * E61 "India de Rey: 4.Cf3 O-O 5.Af4 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 d6 * E61 "India de Rey: 4.Cf3 d6 5.Af4 d6 6.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 d6 6.h3 * E61 "India de Rey: 4.Cf3 d6 5.Af4 d6 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bf4 d6 6.e3 * E61 "India de Rey: Sistema Smyslov" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 * E61 "India de Rey: Sistema Smyslov, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 c5 * E61 "India de Rey: Sistema Smyslov, 5...c5 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 c5 6.e3 * E61 "India de Rey: Sistema Smyslov, 5...d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 * E61 "India de Rey: Sistema Smyslov, 6.e3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 * E61 "India de Rey: Sistema Smyslov, 6.e3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 c6 * E61 "India de Rey: Sistema Smyslov, 6.e3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 c5 * E61 "India de Rey: Sistema Smyslov, 5...O-O 6.e3 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 * E61 "India de Rey: Sistema Smyslov, 5...O-O 6.e3 Cbd7 7.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 7.Be2 * E61 "India de Rey: Sistema Smyslov, 5...O-O 6.e3 Cbd7 7.Ae2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 7.Be2 c6 * E61 "India de Rey: Sistema Smyslov, 5...O-O 6.e3 Cbd7 7.Ae2 c6 8.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 O-O 5.Bg5 d6 6.e3 Nbd7 7.Be2 c6 8.O-O * E62 "India de Rey: Variante del Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 * E62 "India de Rey: Variante del Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O * E62 "India de Rey: Variante del Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 * E62 "India de Rey: Fianchetto, 6...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 * E62 "India de Rey: Fianchetto, 6...c6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O * E62 "India de Rey: Fianchetto, 6...c6 7.O-O a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O a6 * E62 "India de Rey: Fianchetto, Sistema Larsen" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Bf5 * E62 "India de Rey: Fianchetto, Sistema Larsen, 8.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Bf5 8.b3 * E62 "India de Rey: Fianchetto, Variante Kavalek/Bronstein" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 * E62 "India de Rey: Fianchetto, Kavalek/Bronstein, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 8.h3 * E62 "India de Rey: Fianchetto, Kavalek/Bronstein, 8.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 8.e4 * E62 "India de Rey: Fianchetto, Kavalek/Bronstein, 8.e4 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c6 7.O-O Qa5 8.e4 Bg4 * E62 "India de Rey: Fianchetto, 6...Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 * E62 "India de Rey: Fianchetto, 6...Cc6 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.d5 * E62 "India de Rey: Fianchetto, 6...Cc6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O * E62 "India de Rey: Fianchetto, 6...Cc6 7.O-O Tb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Rb8 * E62 "India de Rey: Fianchetto, Variante Spassky" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bf5 * E62 "India de Rey: Fianchetto, Spassky, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bf5 8.d5 * E62 "India de Rey: Fianchetto, Variante Simagin" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bg4 * E62 "India de Rey: Fianchetto, Simagin, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O Bg4 8.d5 * E62 "India de Rey: Fianchetto, Variante Uhlmann/Szabo" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O e5 * E62 "India de Rey: Fianchetto, Variante Uhlmann/Szabo" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O e5 8.d5 Ne7 * E62 "India de Rey: Fianchetto, Uhlmann/Szabo, 9.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O e5 8.d5 Ne7 9.e4 * E63 "India de Rey: Fianchetto, Variante Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 * E63 "India de Rey: Fianchetto, Panno, 8.Te1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.Re1 * E63 "India de Rey: Fianchetto, Panno, 8.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.e4 * E63 "India de Rey: Fianchetto, Panno, 8.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 * E63 "India de Rey: Fianchetto, Panno, 8.b3 Tb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 Rb8 * E63 "India de Rey: Fianchetto, Panno, 8.b3 Tb8 9.Ab2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 Rb8 9.Bb2 * E63 "India de Rey: Fianchetto, Panno, 8.b3 Tb8 9.Cd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.b3 Rb8 9.Nd5 * E63 "India de Rey: Fianchetto, Panno, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 * E63 "India de Rey: Fianchetto, Panno, 8.h3 Tb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 Rb8 * E63 "India de Rey: Fianchetto, Panno, 8.h3 Tb8 9.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 Rb8 9.Be3 * E63 "India de Rey: Fianchetto, Panno, 8.h3 Tb8 9.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.h3 Rb8 9.e4 * E63 "India de Rey: Fianchetto, Panno, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.d5 * E63 "India de Rey: Fianchetto, Panno, 8.d5 Ca5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nc6 7.O-O a6 8.d5 Na5 * E64 "India de Rey: Fianchetto, Sistema Yugoslavo" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 * E64 "India de Rey: Fianchetto, Intercambio Yugoslavo Temprano" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.dxc5 * E64 "India de Rey: Fianchetto, Yugoslavo 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.d5 * E64 "India de Rey: Fianchetto, Yugoslavo 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.d5 e6 * E64 "India de Rey: Fianchetto, Yugoslavo 7.d5 Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.d5 Na6 * E65 "India de Rey: Fianchetto, Yugoslavo 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O * E65 "India de Rey: Fianchetto, Yugoslavo 7.O-O cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O cxd4 * E65 "India de Rey: Fianchetto, Yugoslavo 7.O-O Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nbd7 * E65 "India de Rey: Fianchetto, Yugoslavo 7.O-O Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 * E65 "India de Rey: Fianchetto, Yugoslavo 7.O-O Cc6 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.h3 * E65 "India de Rey: Fianchetto, Intercambio Yugoslavo" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.dxc5 * E65 "India de Rey: Fianchetto, Intercambio Yugoslavo, 9.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.dxc5 dxc5 9.Be3 * E65 "India de Rey: Fianchetto, Intercambio Yugoslavo, 9.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.dxc5 dxc5 9.Bf4 * E66 "India de Rey: Fianchetto, Yugoslavo Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 * E66 "India de Rey: Fianchetto, Yugoslavo Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 * E66 "India de Rey: Fianchetto, Yugoslavo Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, 9...e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 e5 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, 9...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, 9...a6 10.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Rb1 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, 9...a6 10.Tb1 Tb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Rb1 Rb8 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, 9...a6 10.Dc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, 9...a6 10.Dc2 Tb8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, 9...a6 10.Dc2 Tb8 11.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, Línea Principal, 12.Ab2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 12.Bb2 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, Línea Principal, 12.Ab2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 12.Bb2 e5 * E66 "India de Rey: Fianchetto, Yugoslavo Panno, Línea Principal, 12.Ab2 bxc4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 c5 7.O-O Nc6 8.d5 Na5 9.Nd2 a6 10.Qc2 Rb8 11.b3 b5 12.Bb2 bxc4 * E67 "India de Rey: Fianchetto con 6...Cd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 * E67 "India de Rey: Fianchetto con 6...Cd7 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O * E67 "India de Rey: Fianchetto con 6...Cd7 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O c6 * E67 "India de Rey: Fianchetto, Variante Clásica" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 * E67 "India de Rey: Fianchetto, Clásica, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.d5 * E67 "India de Rey: Fianchetto, Clásica, 8.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.dxe5 * E67 "India de Rey: Fianchetto, Clásica, 8.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.b3 * E67 "India de Rey: Fianchetto, Clásica, 8.Dc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.Qc2 * E67 "India de Rey: Fianchetto, Clásica, 8.Dc2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.Qc2 c6 * E67 "India de Rey: Fianchetto, Clásica, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.h3 * E67 "India de Rey: Fianchetto, Clásica, 8.h3 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.h3 Re8 * E67 "India de Rey: Fianchetto, Clásica, 8.h3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.h3 c6 * E68 "India de Rey: Fianchetto, Clásica, 8.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 Re8 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 exd4 9.Cxd4 Cc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Nc5 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 exd4 9.Cxd4 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 exd4 9.Cxd4 Te8 10.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 10.h3 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 exd4 9.Cxd4 Te8 10.h3 Cc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 10.h3 Nc5 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 exd4 9.Cxd4 Te8 10.h3 Cc5 11.Te1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 exd4 9.Nxd4 Re8 10.h3 Nc5 11.Re1 a5 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 a6 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 c6 9.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.Rb1 * E68 "India de Rey: Fianchetto, Clásica, 8.e4 c6 9.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.b3 * E69 "India de Rey: Fianchetto, Clásica, 9.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 De7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qe7 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 a6 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 a5 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 exd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 exd4 10.Cxd4 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 exd4 10.Nxd4 Re8 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Da5 10.Te1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 10.Re1 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Da5 10.Te1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 10.Re1 exd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Da5 10.Te1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qa5 10.Re1 exd4 11.Nxd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6 10.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.d5 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6 10.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.c5 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6 10.Te1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6 10.Te1 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 Re8 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6 10.Te1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 exd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6 10.Te1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 exd4 11.Nxd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Db6 10.Te1 exd4 11.Cxd4 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Qb6 10.Re1 exd4 11.Nxd4 Re8 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.b3 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Be3 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Ae3 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Be3 exd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Ae3 exd4 11.Cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Be3 exd4 11.Nxd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 Dc7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 Qc7 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 a5 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 a5 11.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 a5 11.Be3 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 exd4, 11...a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 a5 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 exd4, 11...Cc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 Nc5 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 exd4, 11...Cc5 12.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 Nc5 12.Rb1 * E69 "India de Rey: Fianchetto, Clásica, 9.h3 Te8 10.Te1 exd4, 11...Cc5 12.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.Nf3 d6 5.g3 O-O 6.Bg2 Nbd7 7.O-O e5 8.e4 c6 9.h3 Re8 10.Re1 exd4 11.Nxd4 Nc5 12.b3 * E70 "India de Rey: 4.e4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 * E70 "India de Rey: 4.e4 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 O-O * E70 "India de Rey: 4.e4 O-O 5.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 O-O 5.e5 * E70 "India de Rey: 4.e4 O-O 5.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 O-O 5.Nf3 * E70 "India de Rey: 4.e4 d6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 * E70 "India de Rey: Kramer" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 * E70 "India de Rey: Kramer, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O * E70 "India de Rey: Kramer, 5...O-O 6.Cg3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O 6.Ng3 * E70 "India de Rey: Kramer, 5...O-O 6.Cg3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O 6.Ng3 e5 * E70 "India de Rey: Kramer, 5...O-O 6.Cg3 e5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nge2 O-O 6.Ng3 e5 7.d5 * E70 "India de Rey: 4.e4 d6 5.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 * E70 "India de Rey: 4.e4 d6 5.Ad3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 e5 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 Cc6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 7.O-O * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 Cc6 7.O-O e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 Nc6 7.O-O e5 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 e6 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 c5 7.d5 e6 8.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 c5 7.d5 e6 8.O-O * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 e5 * E70 "India de Rey: 4.e4 d6 5.Ad3 O-O 6.Cge2 e5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bd3 O-O 6.Nge2 e5 7.d5 * E70 "India de Rey: Sistema Averbakh Acelerado" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 * E70 "India de Rey: Averbakh Acelerado, 5...h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 h6 * E70 "India de Rey: Averbakh Acelerado, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 O-O * E70 "India de Rey: Averbakh Acelerado, 5...O-O 6.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Bg5 O-O 6.Qd2 * E70 "Benoni: 3.d5 d6 4.Cc3 g6 5.e4 Ag7 6.Ad3" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 5.e4 Bg7 6.Bd3 * E71 "India de Rey: Sistema Makagonov" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 * E71 "India de Rey: Makagonov, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 c5 * E71 "India de Rey: Makagonov, 5...Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 Nbd7 * E71 "India de Rey: Makagonov, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O * E71 "India de Rey: Makagonov, 5...O-O 6.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Be3 * E71 "India de Rey: Makagonov, 5...O-O 6.Ae3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Be3 e5 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c6 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 h6 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Nbd7 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Na6 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 Ca6 7.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Na6 7.Bd3 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 Ca6 7.Ad3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 Na6 7.Bd3 e5 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 7.d5 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 c5 7.d5 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 7.d5 b5 * E71 "India de Rey: Makagonov, 5...O-O 6.Ag5 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.h3 O-O 6.Bg5 c5 7.d5 e6 * E72 "India de Rey: 4.e4 d6 5.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 * E72 "India de Rey: 4.e4 d6 5.g3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O * E72 "India de Rey: 4.e4 d6 5.g3 O-O 6.Ag2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 * E72 "India de Rey: 4.e4 d6 5.g3 O-O 6.Ag2 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 Nbd7 * E72 "India de Rey: 4.e4 d6 5.g3 O-O 6.Ag2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 Nc6 * E72 "India de Rey: 4.e4 d6 5.g3 O-O 6.Ag2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 c5 * E72 "India de Rey: 4.e4 d6 5.g3 O-O 6.Ag2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 e5 * E72 "India de Rey: Sistema Pomar" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 e5 7.Nge2 * E72 "India de Rey: Sistema Pomar" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.g3 O-O 6.Bg2 e5 7.Nge2 Nc6 * E73 "India de Rey: 5.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 * E73 "India de Rey: 5.Ae2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 c5 * E73 "India de Rey: 5.Ae2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 e5 * E73 "India de Rey: 5.Ae2 e5 6.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 e5 6.d5 * E73 "India de Rey: 5.Ae2 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 Nbd7 * E73 "India de Rey: 5.Ae2 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O * E73 "India de Rey: 5.Ae2 O-O 6.g4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.g4 * E73 "India de Rey: Sistema Semi-Averbakh" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Be3 * E73 "India de Rey: Averbakh" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 * E73 "India de Rey: Averbakh, 6...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c6 * E73 "India de Rey: Averbakh, 6...c6 7.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c6 7.Qd2 * E73 "India de Rey: Averbakh, 6...c6 7.Dd2 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c6 7.Qd2 Nbd7 * E73 "India de Rey: Averbakh, 6...Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 * E73 "India de Rey: Averbakh, 6...Cbd7 7.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 * E73 "India de Rey: Averbakh, 6...Cbd7 7.Dd2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 e5 * E73 "India de Rey: Averbakh, 6...Cbd7 7.Dd2 e5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 e5 8.d5 * E73 "India de Rey: Averbakh, 6...Cbd7 7.Dd2 e5 8.d5 Cc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Nbd7 7.Qd2 e5 8.d5 Nc5 * E73 "India de Rey: Averbakh, 6...Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 * E73 "India de Rey: Averbakh, 6...Ca6 7.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.h4 * E73 "India de Rey: Averbakh, 6...Ca6 7.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 * E73 "India de Rey: Averbakh, 6...Ca6 7.Dd2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 * E73 "India de Rey: Averbakh, 6...Ca6 7.Dd2 e5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 8.d5 * E73 "India de Rey: Averbakh, 6...Ca6 7.Dd2 e5 8.d5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 8.d5 c6 * E73 "India de Rey: Averbakh, 6...Ca6 7.Dd2 e5 8.d5 De8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 Na6 7.Qd2 e5 8.d5 Qe8 * E73 "India de Rey: Averbakh, 6...h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 * E73 "India de Rey: Averbakh, 6...h6 7.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 * E73 "India de Rey: Averbakh, 6...h6 7.Ae3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 c5 * E73 "India de Rey: Averbakh, 6...h6 7.Ae3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 * E73 "India de Rey: Averbakh, 6...h6 7.Ae3 e5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 8.d5 * E73 "India de Rey: Averbakh, 6...h6 7.Ae3 e5 8.d5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 8.d5 c6 * E73 "India de Rey: Averbakh, 6...h6 7.Ae3 e5 8.d5 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 h6 7.Be3 e5 8.d5 Nbd7 * E74 "India de Rey: Averbakh, 6...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 * E74 "India de Rey: Averbakh, 6...c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.dxc5 * E74 "India de Rey: Averbakh, 6...c5 7.dxc5 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.dxc5 Qa5 * E74 "India de Rey: Averbakh, 6...c5 7.dxc5 Da5 8.Ad2 Dxc5 9.Cf3 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.dxc5 Qa5 8.Bd2 Qxc5 9.Nf3 Bg4 * E74 "India de Rey: Averbakh, 6...c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 * E74 "India de Rey: Averbakh, 6...c5 7.d5 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 Qa5 * E74 "India de Rey: Averbakh, 6...c5 7.d5 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 b5 * E74 "India de Rey: Averbakh, 6...c5 7.d5 b5 8.cxb5 a6 9.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 b5 8.cxb5 a6 9.a4 * E74 "India de Rey: Averbakh, 6...c5 7.d5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 * E74 "India de Rey: Averbakh, 6...c5 7.d5 a6 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 8.Qd2 * E74 "India de Rey: Averbakh, 6...c5 7.d5 a6 8.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 8.a4 * E74 "India de Rey: Averbakh, 6...c5 7.d5 a6 8.a4 Da5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 a6 8.a4 Qa5 * E74 "India de Rey: Averbakh, 6...c5 7.d5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 * E74 "India de Rey: Averbakh, 6...c5 7.d5 h6 8.Ah4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Bh4 * E74 "India de Rey: Averbakh, 6...c5 7.d5 h6 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Be3 * E74 "India de Rey: Averbakh, 6...c5 7.d5 h6 8.Ae3 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Be3 e6 * E74 "India de Rey: Averbakh, 6...c5 7.d5 h6 8.Ae3 e6 9.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Be3 e6 9.Qd2 * E74 "India de Rey: Averbakh, 6...c5 7.d5 h6 8.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Bf4 * E74 "India de Rey: Averbakh, 6...c5 7.d5 h6 8.Af4 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 h6 8.Bf4 e6 * E75 "India de Rey: Averbakh, 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 exd5 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 exd5 9.exd5 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 h6 9.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bd2 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 h6 9.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Be3 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 h6 9.Af4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bf4 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 h6 9.Ah4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bh4 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Cf3 h6 9.Ah4 exd5 10.cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Nf3 h6 9.Bh4 exd5 10.cxd5 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Dd2 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Dd2 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Dd2 exd5 9.exd5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 a6 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Dd2 exd5 9.exd5 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Dd2 exd5 9.exd5 Te8 10.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 10.Nf3 * E75 "India de Rey: Averbakh, 7.d5 e6 8.Dd2 exd5 9.exd5 Te8 10.Cf3 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Be2 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 exd5 9.exd5 Re8 10.Nf3 Bg4 * E76 "India de Rey: Ataque de los Cuatro Peones" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 * E76 "India de Rey: Ataque de los Cuatro Peones, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 c5 * E76 "India de Rey: Ataque de los Cuatro Peones, Intercambio" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 c5 6.dxc5 * E76 "India de Rey: Ataque de los Cuatro Peones, 5...c5 6.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 c5 6.d5 * E76 "India de Rey: Ataque de los Cuatro Peones, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O * E76 "India de Rey: Ataque de los Cuatro Peones, 5...O-O 6.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Bg4 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 Ca6 7.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.e5 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 Ca6 7.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.Be2 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 Ca6 7.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.Bd3 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 Ca6 7.Ad3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 Na6 7.Bd3 e5 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.dxc5 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.dxc5 Da5 8.Ad3 Dxc5 9.De2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.dxc5 Qa5 8.Bd3 Qxc5 9.Qe2 Nc6 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.d5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 a6 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.d5 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 b5 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.d5 b5 8.cxb5 a6 9.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 b5 8.cxb5 a6 9.a4 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 e6 * E76 "India de Rey: Ataque de los Cuatro Peones, 6.Cf3 c5 7.d5 e6 8.dxe6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Nf3 c5 7.d5 e6 8.dxe6 * E77 "India de Rey: Ataque de los Cuatro Peones, 6.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 * E77 "India de Rey: Ataque de los Cuatro Peones, 6.Ae2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 * E77 "India de Rey: Ataque de los Cuatro Peones, 6.Ae2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 * E77 "India de Rey: Ataque de los Cuatro Peones, Línea de los Seis Peones" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.dxe6 fxe6 9.g4 Nc6 10.h4 * E77 "India de Rey: Ataque de los Cuatro Peones, 6.Ae2 c5 7.d5 e6 8.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.Nf3 * E77 "India de Rey: Ataque de los Cuatro Peones, 6.Ae2 c5 7.d5 e6 8.Cf3 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.Nf3 exd5 9.exd5 * E77 "India de Rey: Ataque de los Cuatro Peones, Gambito Florentine" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.d5 e6 8.Nf3 exd5 9.e5 * E78 "India de Rey: Ataque de los Cuatro Peones, 7.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 * E78 "India de Rey: Ataque de los Cuatro Peones, 7.Cf3 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 Bg4 * E78 "India de Rey: Ataque de los Cuatro Peones, 7.Cf3 cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 * E78 "India de Rey: Ataque de los Cuatro Peones, 7.Cf3 cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 * E79 "India de Rey: Ataque de los Cuatro Peones, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 * E79 "India de Rey: Ataque de los Cuatro Peones, Línea Principal, 9...Cxd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Nxd4 * E79 "India de Rey: Ataque de los Cuatro Peones, Línea Principal, 9...Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Ng4 * E79 "India de Rey: Ataque de los Cuatro Peones, Línea Principal, 9...Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bg4 * E79 "India de Rey: Ataque de los Cuatro Peones, Línea Principal, 9...Ad7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bd7 * E79 "India de Rey: Ataque de los Cuatro Peones, Línea Principal, 9...Ad7 10.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bd7 10.Qd2 * E79 "India de Rey: Ataque de los Cuatro Peones, Línea Principal, 9...Ad7 10.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f4 O-O 6.Be2 c5 7.Nf3 cxd4 8.Nxd4 Nc6 9.Be3 Bd7 10.O-O * E80 "India de Rey: Variante Sämisch" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 * E80 "India de Rey: Sämisch, 5...Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 Na6 * E80 "India de Rey: Sämisch, 5...Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 Nc6 * E80 "India de Rey: Sämisch, 5...Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 Nbd7 * E80 "India de Rey: Sämisch, 5...e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 e5 * E80 "India de Rey: Sämisch, 5...e5 6.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 e5 6.Nge2 * E80 "India de Rey: Sämisch, 5...e5 6.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 e5 6.d5 * E80 "India de Rey: Sämisch, 5...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c5 * E80 "India de Rey: Sämisch, 5...c5 Intercambio de Damas" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c5 6.dxc5 dxc5 7.Qxd8+ Kxd8 * E80 "India de Rey: Sämisch, 5...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 a6 * E80 "India de Rey: Sämisch, 5...a6 6.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 a6 6.Be3 * E80 "India de Rey: Sämisch, 5...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 * E80 "India de Rey: Sämisch, 5...c6 6.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 * E80 "India de Rey: Sämisch, 5...c6 6.Ae3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 a6 * E80 "India de Rey: Sämisch, 5...c6 6.Ae3 a6 7.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 a6 7.a4 * E80 "India de Rey: Sämisch, 5...c6 6.Ae3 a6 7.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 c6 6.Be3 a6 7.Bd3 * E80 "Benoni: 3.d5 d6 4.Cc3 g6 5.e4 Ag7 6.f3" 1.d4 Nf6 2.c4 c5 3.d5 d6 4.Nc3 g6 5.e4 Bg7 6.f3 * E81 "India de Rey: Sämisch, 5...O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O * E81 "India de Rey: Sämisch, 5...O-O 6.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 * E81 "India de Rey: Sämisch, 5...O-O 6.Cge2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 e5 * E81 "India de Rey: Sämisch, 5...O-O 6.Cge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 c5 * E81 "India de Rey: Sämisch, 5...O-O 6.Cge2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Nge2 c5 7.d5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 Nc6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 a6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 c5 7.d5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 a6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 c5 7.d5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 h6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 e6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ag5 c5 7.d5 e6 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Bg5 c5 7.d5 e6 8.Qd2 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 a6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 a6 7.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 a6 7.Qd2 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c6 * E81 "India de Rey: Sämisch, Variante Byrne" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c6 7.Bd3 a6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.d5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c5 7.dxc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.dxc5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c5 Intercambio de Damas" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.dxc5 dxc5 8.Qxd8+ * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c5 7.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.Nge2 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c5 7.Cge2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.Nge2 Nc6 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 c5 7.Cge2 Cc6 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 c5 7.Nge2 Nc6 8.d5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 Cbd7 7.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 Cbd7 7.Dd2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 Cbd7 7.Dd2 c5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 8.d5 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 Cbd7 7.Dd2 c5 8.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 8.Nge2 * E81 "India de Rey: Sämisch, 5...O-O 6.Ae3 Cbd7 7.Dd2 c5 8.Cge2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nbd7 7.Qd2 c5 8.Nge2 a6 * E82 "India de Rey: Sämisch, Fianchetto" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 * E82 "India de Rey: Sämisch, Fianchetto, 7.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Qd2 * E82 "India de Rey: Sämisch, Fianchetto, 7.Dd2 c5 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Qd2 c5 8.d5 * E82 "India de Rey: Sämisch, Fianchetto, Variante Bronstein" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 Cfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Nfd7 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 Ab7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 Ab7 8.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 8.Nge2 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 Ab7 8.Cge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 8.Nge2 c5 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 Ab7 8.Cge2 c5 9.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 Bb7 8.Nge2 c5 9.d5 e6 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 a6 8.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 a6 8.Cge2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 c5 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 a6 8.Cge2 c5 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 c5 9.d5 * E82 "India de Rey: Sämisch, Fianchetto, 7.Ad3 a6 8.Cge2 c5 9.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 b6 7.Bd3 a6 8.Nge2 c5 9.e5 * E83 "India de Rey: Sämisch, 6...Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 * E83 "India de Rey: Sämisch, 6...Cc6 7.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Qd2 * E83 "India de Rey: Sämisch, 6...Cc6 7.Dd2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Qd2 a6 * E83 "India de Rey: Sämisch, 6...Cc6 7.Dd2 a6 8.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Qd2 a6 8.O-O-O * E83 "India de Rey: Sämisch, 6...Cc6 7.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 * E83 "India de Rey: Sämisch, Variante Ruban" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 Rb8 * E83 "India de Rey: Sämisch, Ruban, 8.Dd2 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 Rb8 8.Qd2 Re8 * E83 "India de Rey: Sämisch, Panno" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 * E83 "India de Rey: Sämisch, Panno, 8.a3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.a3 * E83 "India de Rey: Sämisch, Panno, 8.Cc1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Nc1 * E83 "India de Rey: Sämisch, Panno, 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 * E83 "India de Rey: Sämisch, Panno, 8.Dd2 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Re8 * E84 "India de Rey: Sämisch, Panno Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.a3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.a3 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.O-O-O * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.g4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.g4 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Rb1 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.Ah6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Bh6 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.Cc1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.Cc1 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.Cc1 e5 10.Cb3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 10.Nb3 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.Cc1 e5 10.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 10.d5 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.Cc1 e5 10.d5 Cd4 11.Cb3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.Nc1 e5 10.d5 Nd4 11.Nb3 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.h4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.h4 b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 b5 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.h4 h5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 h5 * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.h4 h5 10.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 h5 10.O-O-O * E84 "India de Rey: Sämisch, Panno Línea Principal, 9.h4 h5 10.O-O-O b5 11.Ah6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 Nc6 7.Nge2 a6 8.Qd2 Rb8 9.h4 h5 10.O-O-O b5 11.Bh6 * E85 "India de Rey: Sämisch, Variante Ortodoxa" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 * E85 "India de Rey: Sämisch, Ortodoxa, 7.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.dxe5 * E85 "India de Rey: Sämisch, Ortodoxa, Intercambio de Damas" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.dxe5 dxe5 8.Qxd8 * E85 "India de Rey: Sämisch, Ortodoxa, 7.Cge2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 * E85 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 exd4 * E85 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nbd7 * E85 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 * E85 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 Cc6 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 8.d5 * E85 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 Cc6 8.d5 Ce7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 8.d5 Ne7 * E85 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 Cc6 8.d5 Ce7 9.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 Nc6 8.d5 Ne7 9.Qd2 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.d5 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.Db3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qb3 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.Dd2 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.Dd2 Cbd7 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.d5 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.Dd2 Cbd7 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.Dd2 Cbd7 9.O-O-O a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O a6 * E86 "India de Rey: Sämisch, Ortodoxa, 7.Cge2 c6 8.Dd2 Cbd7 9.O-O-O a6 10.Rb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.Nge2 c6 8.Qd2 Nbd7 9.O-O-O a6 10.Kb1 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 a5 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c5 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nbd7 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Ch5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Ch5 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 * E87 "India de Rey: Sämisch, Ortodoxa, Variante Bronstein" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 Qh4+ * E87 "India de Rey: Sämisch, Ortodoxa, Bronstein, 9.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 Qh4+ 9.g3 * E87 "India de Rey: Sämisch, Ortodoxa, Bronstein, 9.Af2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 Qh4+ 9.Bf2 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Ch5 8.Dd2 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Ch5 8.Dd2 f5 9.O-O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Ch5 8.Dd2 f5 9.O-O-O f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O f4 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Ch5 8.Dd2 f5 9.O-O-O Cd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O Nd7 * E87 "India de Rey: Sämisch, Ortodoxa, 7.d5 Ch5 8.Dd2 f5 9.O-O-O Cd7 10.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 Nh5 8.Qd2 f5 9.O-O-O Nd7 10.Bd3 * E88 "India de Rey: Sämisch, Ortodoxa, 7.d5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 * E88 "India de Rey: Sämisch, Ortodoxa, 7.d5 c6 8.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 * E88 "India de Rey: Sämisch, Ortodoxa, 7.d5 c6 8.Dd2 cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 cxd5 * E88 "India de Rey: Sämisch, Ortodoxa, 7.d5 c6 8.Dd2 cxd5 9.cxd5 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 cxd5 9.cxd5 a6 * E88 "India de Rey: Sämisch, Ortodoxa, 7.d5 c6 8.Dd2 cxd5 9.cxd5 a6 10.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Qd2 cxd5 9.cxd5 a6 10.Bd3 * E88 "India de Rey: Sämisch, Ortodoxa, Polugayevsky" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 * E88 "India de Rey: Sämisch, Ortodoxa, Polugayevsky, 8...b5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 b5 * E88 "India de Rey: Sämisch, Ortodoxa, Polugayevsky, 8...cxd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 cxd5 * E88 "India de Rey: Sämisch, Ortodoxa, Polugayevsky, 8...cxd5 9.cxd5 Ch5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Bd3 cxd5 9.cxd5 Nh5 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 9...a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 a6 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 9...Ad7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Bd7 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 9...Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 10.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 10.Dd2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 10.Dd2 a6 11.g4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 11.g4 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 10.Dd2 a6 11.g4 h5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 11.g4 h5 * E89 "India de Rey: Sämisch, Línea Principal Ortodoxa, 10.Dd2 a6 11.g4 h5 12.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.f3 O-O 6.Be3 e5 7.d5 c6 8.Nge2 cxd5 9.cxd5 Nbd7 10.Qd2 a6 11.g4 h5 12.h3 * E90 "India de Rey: 5.Cf3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 * E90 "India de Rey: 5.Cf3 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Nbd7 * E90 "India de Rey: 5.Cf3 Cbd7 6.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Nbd7 6.Be2 * E90 "India de Rey: 5.Cf3 Cbd7 6.Ae2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Nbd7 6.Be2 e5 * E90 "India de Rey: 5.Cf3 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 Bg4 * E90 "India de Rey: 5.Cf3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 c5 * E90 "India de Rey: 5.Cf3 c5 6.d5 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 c5 6.d5 O-O * E90 "India de Rey: 5.Cf3 O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O * E90 "India de Rey: 5.Cf3 O-O 6.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Bd3 * E90 "India de Rey: Variante Zinnowitz" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Bg5 * E90 "India de Rey: Zinnowitz, 6...h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Bg5 h6 * E90 "India de Rey: Variante Larsen" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 * E90 "India de Rey: Larsen, 6...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 c5 * E90 "India de Rey: Larsen, 6...e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 e5 * E90 "India de Rey: Larsen, 6...e5, Intercambio de Damas" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be3 e5 7.dxe5 dxe5 8.Qxd8+ * E90 "India de Rey: 5.Cf3 O-O 6.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 * E90 "India de Rey: 5.Cf3 O-O 6.h3 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Nbd7 * E90 "India de Rey: 5.Cf3 O-O 6.h3 Cbd7 7.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Nbd7 7.Bg5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Na6 * E90 "India de Rey: 5.Cf3 O-O 6.h3 Ca6 7.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 Na6 7.Bg5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.Be3 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 Intercambio de Damas" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.dxe5 dxe5 8.Qxd8+ * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 a5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5 Cbd7 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 8.Be3 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5 Cbd7 8.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Nbd7 8.Bg5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5 Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Na6 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5 Ca6 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Na6 8.Be3 * E90 "India de Rey: 5.Cf3 O-O 6.h3 e5 7.d5 Ca6 8.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 e5 7.d5 Na6 8.Bg5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.Be3 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6 8.Ad3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6 8.Ad3 Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6 8.Ad3 Ca6 9.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 9.O-O * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6 8.Ad3 Ca6 9.O-O Cc7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 Na6 9.O-O Nc7 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6 8.Ad3 exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6 8.Ad3 exd5 9.exd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 9.exd5 * E90 "India de Rey: 5.Cf3 O-O 6.h3 c5 7.d5 e6 8.Ad3 exd5 9.exd5 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.h3 c5 7.d5 e6 8.Bd3 exd5 9.exd5 Re8 * E91 "India de Rey: 6.Ae2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 * E91 "India de Rey: 6.Ae2 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 a5 * E91 "India de Rey: 6.Ae2 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 a6 * E91 "India de Rey: 6.Ae2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c6 * E91 "India de Rey: 6.Ae2 c6 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c6 7.O-O * E91 "India de Rey: 6.Ae2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 * E91 "India de Rey: 6.Ae2 c5 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 * E91 "India de Rey: 6.Ae2 c5 7.d5 e6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 * E91 "India de Rey: 6.Ae2 c5 7.d5 e6 8.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 8.O-O * E91 "India de Rey: 6.Ae2 c5 7.d5 e6 8.O-O Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 8.O-O Re8 * E91 "India de Rey: 6.Ae2 c5 7.d5 e6 8.O-O Te8 9.Cd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.d5 e6 8.O-O Re8 9.Nd2 * E91 "India de Rey: 6.Ae2 c5 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.O-O * E91 "India de Rey: 6.Ae2 c5 7.O-O Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 c5 7.O-O Nc6 * E91 "India de Rey: Variante Kazakistana" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 * E91 "India de Rey: Variante Kazakistana, 7.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.Bg5 * E91 "India de Rey: Variante Kazakistana, 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.O-O * E91 "India de Rey: Variante Kazakistana, 7.O-O c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.O-O c5 * E91 "India de Rey: Variante Kazakistana, 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Na6 7.O-O c6 * E91 "India de Rey: 6.Ae2 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nc6 * E91 "India de Rey: 6.Ae2 Cc6 7.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nc6 7.d5 * E91 "India de Rey: 6.Ae2 Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 * E91 "India de Rey: 6.Ae2 Cbd7 7.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.Bg5 * E91 "India de Rey: 6.Ae2 Cbd7 7.e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.e5 * E91 "India de Rey: 6.Ae2 Cbd7 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.O-O * E91 "India de Rey: 6.Ae2 Cbd7 7.O-O c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Nbd7 7.O-O c6 * E91 "India de Rey: 6.Ae2 Ag4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 * E91 "India de Rey: 6.Ae2 Ag4 7.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 * E91 "India de Rey: 6.Ae2 Ag4 7.Ae3 Cfd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 Nfd7 * E91 "India de Rey: 6.Ae2 Ag4 7.Ae3 Cfd7 8.Rc1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 Nfd7 8.Rc1 * E91 "India de Rey: 6.Ae2 Ag4 7.Ae3 Cfd7 8.Cg1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 Bg4 7.Be3 Nfd7 8.Ng1 * E92 "India de Rey: 6.Ae2 e5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 * E92 "India de Rey: 6.Ae2 e5 Intercambio de Damas" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 * E92 "India de Rey: 6.Ae2 e5 Intercambio de Damas" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 * E92 "India de Rey: 6.Ae2 e5 Intercambio de Damas, 9.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 * E92 "India de Rey: 6.Ae2 e5 Intercambio de Damas, 9.Ag5 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 c6 * E92 "India de Rey: 6.Ae2 e5 Intercambio de Damas, 9.Ag5 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 Re8 * E92 "India de Rey: 6.Ae2 e5 Intercambio de Damas, 9.Ag5 Te8 10.Cd5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.dxe5 dxe5 8.Qxd8 Rxd8 9.Bg5 Re8 10.Nd5 * E92 "India de Rey: Sistema Gligoric-Taimanov" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 * E92 "India de Rey: Gligoric-Taimanov, 7...c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 c6 * E92 "India de Rey: Gligoric-Taimanov, 7...exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 exd4 * E92 "India de Rey: Gligoric-Taimanov, 7...De7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Qe7 * E92 "India de Rey: Gligoric-Taimanov, 7...Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 * E92 "India de Rey: Gligoric-Taimanov, 7...Cg4 8.Ag5 f6 9.Ac1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 8.Bg5 f6 9.Bc1 * E92 "India de Rey: Gligoric-Taimanov, 7...Cg4 8.Ag5 f6 9.Ah4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 8.Bg5 f6 9.Bh4 * E92 "India de Rey: Gligoric-Taimanov, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.Be3 Ng4 8.Bg5 f6 9.Bh4 Nc6 * E92 "India de Rey: Sistema Petrosian" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 * E92 "India de Rey: Petrosian, 7...c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 c5 * E92 "India de Rey: Petrosian, 7...c5 8.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 c5 8.Bg5 * E92 "India de Rey: Petrosian, Variante Stein" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 * E92 "India de Rey: Petrosian, Stein, 8.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.h3 * E92 "India de Rey: Petrosian, Stein, 8.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 * E92 "India de Rey: Petrosian, Stein, 8.Ag5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 * E92 "India de Rey: Petrosian, Stein, 8.Ag5 h6 9.Ah4 Ca6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 * E92 "India de Rey: Petrosian, Stein, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 * E92 "India de Rey: Petrosian, Stein, Línea Principal, 10...De8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 * E92 "India de Rey: Petrosian, Stein, Línea Principal, 10...De8 11.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 11.O-O * E92 "India de Rey: Petrosian, Stein, Línea Principal, 10...De8 11.O-O Ad7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 11.O-O Bd7 * E92 "India de Rey: Petrosian, Stein, Línea Principal, 10...De8 11.O-O Ch7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 a5 8.Bg5 h6 9.Bh4 Na6 10.Nd2 Qe8 11.O-O Nh7 * E93 "India de Rey: Petrosian, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 * E93 "India de Rey: Petrosian, Línea Principal, 8.Dc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Qc2 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Be3 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ae3 Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Be3 Ng4 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ag5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ag5 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ag5 h6 9.Ah4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ag5 h6 9.Ah4 a6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 a6 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ag5 h6 9.Ah4 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 a5 * E93 "India de Rey: Petrosian, Línea Principal, 8.Ag5 h6 9.Ah4 g5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 g5 * E93 "India de Rey: Petrosian, Variante Keres" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.d5 Nbd7 8.Bg5 h6 9.Bh4 g5 10.Bg3 Nh5 11.h4 * E94 "India de Rey: 7.O-O" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O * E94 "India de Rey: 7.O-O exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 * E94 "India de Rey: 7.O-O exd4 8.Cxd4 Te8 9.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 * E94 "India de Rey: 7.O-O exd4 8.Cxd4 Te8 9.f3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 c6 * E94 "India de Rey: 7.O-O exd4 8.Cxd4 Te8 9.f3 c6 10.Rh1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 c6 10.Kh1 * E94 "India de Rey: 7.O-O exd4 8.Cxd4 Te8 9.f3 Cc6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 * E94 "India de Rey: 7.O-O exd4 8.Cxd4 Te8 9.f3 Cc6 10.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 10.Be3 * E94 "India de Rey: 7.O-O exd4 8.Cxd4 Te8 9.f3 Cc6 10.Ae3 Ch5 11.Dd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O exd4 8.Nxd4 Re8 9.f3 Nc6 10.Be3 Nh5 11.Qd2 * E94 "India de Rey: Variante Donner" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O c6 * E94 "India de Rey: Donner, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O c6 8.d5 * E94 "India de Rey: Donner, 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O c6 8.Be3 * E94 "India de Rey: Variante Glek" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 * E94 "India de Rey: Glek, 8.Te1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Re1 * E94 "India de Rey: Glek, 8.Te1 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Re1 c6 * E94 "India de Rey: Glek, 8.Te1 c6 9.Af1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Re1 c6 9.Bf1 * E94 "India de Rey: Glek, 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 * E94 "India de Rey: Glek, 8.Ae3 Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 * E94 "India de Rey: Glek, 8.Ae3 Cg4 9.Cg5 De8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 * E94 "India de Rey: Glek, Línea Principal" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 10.dxe5 dxe5 * E94 "India de Rey: Glek, Línea Principal, 11.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 10.dxe5 dxe5 11.h3 * E94 "India de Rey: Glek, Línea Principal, 11.h3 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Na6 8.Be3 Ng4 9.Bg5 Qe8 10.dxe5 dxe5 11.h3 h6 * E94 "India de Rey: 7.O-O Cbd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 * E94 "India de Rey: 7.O-O Cbd7 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 * E94 "India de Rey: 7.O-O Cbd7 8.d5 Cc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 Nc5 * E94 "India de Rey: 7.O-O Cbd7 8.d5 Cc5 9.Dc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 Nc5 9.Qc2 * E94 "India de Rey: 7.O-O Cbd7 8.d5 Cc5 9.Dc2 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.d5 Nc5 9.Qc2 a5 * E94 "India de Rey: 7.O-O Cbd7 8.Dc2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Qc2 * E94 "India de Rey: 7.O-O Cbd7 8.Dc2 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Qc2 Re8 * E94 "India de Rey: 7.O-O Cbd7 8.Dc2 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Qc2 c6 * E94 "India de Rey: 7.O-O Cbd7 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 * E94 "India de Rey: 7.O-O Cbd7 8.Ae3 Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 Ng4 * E94 "India de Rey: 7.O-O Cbd7 8.Ae3 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 Re8 * E94 "India de Rey: 7.O-O Cbd7 8.Ae3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 c6 * E94 "India de Rey: 7.O-O Cbd7 8.Ae3 c6 9.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 c6 9.d5 * E94 "India de Rey: 7.O-O Cbd7 8.Ae3 c6 9.d5 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Be3 c6 9.d5 c5 * E95 "India de Rey: 7.O-O Cbd7 8.Te1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 a5 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 h6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 h6 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 Re8 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 Te8 9.Af1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 Re8 9.Bf1 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 exd4 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 exd4 9.Cxd4 Cc5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 exd4 9.Nxd4 Nc5 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 c6 9.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Rb1 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 c6 9.Af1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 c6 9.Af1 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 Re8 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 c6 9.Af1 exd4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 c6 9.Af1 exd4 10.Cxd4 Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 10.Nxd4 Ng4 * E95 "India de Rey: 7.O-O Cbd7 8.Te1 c6 9.Af1 exd4 10.Cxd4 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 exd4 10.Nxd4 Re8 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua, 10.h3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.h3 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua, 10.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.dxe5 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua, 10.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.dxe5 dxe5 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua, 10.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua, 10.Tb1 Te8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 Re8 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua, 10.Tb1 Te8 11.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 Re8 11.d5 * E96 "India de Rey: 7.O-O Cbd7, Línea Principal Antigua, 10.Tb1 Te8 11.d5 Cc5 12.b3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nbd7 8.Re1 c6 9.Bf1 a5 10.Rb1 Re8 11.d5 Nc5 12.b3 * E97 "India de Rey: Mar del Plata" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 * E97 "India de Rey: Mar del Plata, 8.dxe5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.dxe5 * E97 "India de Rey: Mar del Plata, 8.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.Be3 * E97 "India de Rey: Mar del Plata, 8.Ae3 Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.Be3 Ng4 * E97 "India de Rey: Mar del Plata, 8.Ae3 Cg4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.Be3 Ng4 9.Bg5 f6 10.Bc1 * E97 "India de Rey: Mar del Plata, 8.d5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 * E97 "India de Rey: Mar del Plata, 8.d5 Ce7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 * E97 "India de Rey: Mar del Plata, Variante de Odessa" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Bg5 * E97 "India de Rey: Mar del Plata, 9.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Bd2 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...Rh8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Kh8 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...Ce8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Ne8 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...Ce8 10.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Ne8 10.c5 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...a5 10.bxa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.bxa5 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...a5 10.Aa3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.Ba3 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...a5 10.Aa3 axb4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.Ba3 axb4 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...a5 10.Aa3 axb4 11.Axb4 Cd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 a5 10.Ba3 axb4 11.Bxb4 Nd7 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...Ch5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...Ch5 10.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.c5 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...Ch5 10.g3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.g3 * E97 "India de Rey: Mar del Plata, Ataque Bayoneta, 9...Ch5 10.Te1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 a5 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 Cf4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 Nf4 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 Cf4 11.Af1 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 Nf4 11.Bf1 a5 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 Cf4 11.Af1 a5 12.bxa5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 Nf4 11.Bf1 a5 12.bxa5 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 f5 11.Cg5 Cf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 11.Ng5 Nf6 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 f5 11.Cg5 Cf6 12.Af3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 11.Ng5 Nf6 12.Bf3 * E97 "India de Rey: Mar del Plata, Bayoneta, 9...Ch5 10.Te1 f5 11.Cg5 Cf6 12.Af3 c6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.b4 Nh5 10.Re1 f5 11.Ng5 Nf6 12.Bf3 c6 * E97 "India de Rey: Mar del Plata, 9.Cd2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 * E97 "India de Rey: Mar del Plata, 9.Cd2 Ce8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Ne8 * E97 "India de Rey: Mar del Plata, 9.Cd2 Ce8 10.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Ne8 10.b4 * E97 "India de Rey: Mar del Plata, 9.Cd2 Cd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Nd7 * E97 "India de Rey: Mar del Plata, 9.Cd2 Cd7 10.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 Nd7 10.b4 * E97 "India de Rey: Mar del Plata, 9.Cd2 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 c5 * E97 "India de Rey: Mar del Plata, 9.Cd2 a5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 * E97 "India de Rey: Mar del Plata, 9.Cd2 a5 10.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.Rb1 * E97 "India de Rey: Mar del Plata, 9.Cd2 a5 10.a3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 * E97 "India de Rey: Mar del Plata, 9.Cd2 a5 10.a3 Ad7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Bd7 * E97 "India de Rey: Mar del Plata, 9.Cd2 a5 10.a3 Cd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Nd7 * E97 "India de Rey: Mar del Plata, 9.Cd2 a5 10.a3 Cd7 11.Tb1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Nd7 11.Rb1 * E97 "India de Rey: Mar del Plata, 9.Cd2 a5 10.a3 Cd7 11.Tb1 f5 12.b4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Nd2 a5 10.a3 Nd7 11.Rb1 f5 12.b4 * E98 "India de Rey: Mar del Plata, 9.Ce1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 * E98 "India de Rey: Mar del Plata, 9.Ce1 c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 c5 * E98 "India de Rey: Mar del Plata, 9.Ce1 Ce8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 * E98 "India de Rey: Mar del Plata, 9.Ce1 Ce8 10.Cd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Nd3 * E98 "India de Rey: Mar del Plata, 9.Ce1 Ce8 10.Cd3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Nd3 f5 * E98 "India de Rey: Mar del Plata, 9.Ce1 Ce8 10.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Be3 * E98 "India de Rey: Mar del Plata, 9.Ce1 Ce8 10.Ae3 f5 11.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Be3 f5 11.f3 * E98 "India de Rey: Mar del Plata, 9.Ce1 Ce8 10.Ae3 f5 11.f3 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Ne8 10.Be3 f5 11.f3 f4 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Rh1" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Kh1 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Be3 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Ae3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Be3 f5 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Cd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Cd3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Cd3 f5 11.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 * E98 "India de Rey: Mar del Plata, Variante Fischer" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 c5 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Cd3 f5 11.Ad2 Rh8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 Kh8 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.Cd3 f5 11.Ad2 Cf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.Nd3 f5 11.Bd2 Nf6 * E98 "India de Rey: Mar del Plata, 9.Ce1 Cd7 10.f3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 * E99 "India de Rey: Mar del Plata, 10.f3 f5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Cd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Cd3 Cf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Cd3 Cf6 12.Ad2" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 12.Bd2 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Cd3 Cf6 12.Ad2 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 12.Bd2 f4 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Cd3 Cf6 12.Ad2 f4 13.c5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 Nf6 12.Bd2 f4 13.c5 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Cd3 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Nd3 f4 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Ae3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Ae3 f4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Ae3 f4 12.Af2 g5" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 12.Bf2 g5 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Ae3 f4 12.Af2 g5 13.a4" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 12.Bf2 g5 13.a4 * E99 "India de Rey: Mar del Plata, 10.f3 f5 11.Ae3 f4 12.Af2 g5 13.a4 Cg6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.Be3 f4 12.Bf2 g5 13.a4 Ng6 * E99 "India de Rey: Mar del Plata, Ataque Benko" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 * E99 "India de Rey: Mar del Plata, Ataque Benko, 11...Rh8" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 Kh8 * E99 "India de Rey: Mar del Plata, Ataque Benko, 11...Cf6" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 Nf6 * E99 "India de Rey: Mar del Plata, Ataque Benko, 11...Cf6 12.Cd3" 1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2 e5 7.O-O Nc6 8.d5 Ne7 9.Ne1 Nd7 10.f3 f5 11.g4 Nf6 12.Nd3 * scid-4.3.0.cvs20120311/scid.rc0000644000175000017500000000020611727223076014703 0ustar oliveroliver#include #define RESOURCE_INCLUDED // // Icon // scid ICON DISCARDABLE "scid.ico" scid-4.3.0.cvs20120311/tcl/0000755000175000017500000000000011727223100014203 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/move.tcl0000644000175000017500000000760111727223077015676 0ustar oliveroliver# This file is part of Scid (Shane's Chess Information Database). # # Scid 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. # # Scid 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 Scid. If not, see . ### move.tcl ### Functions for moving within a game. namespace eval ::move {} proc ::move::drawVarArrows {} { if {! $::showVarArrows || $::autoplayMode} { return 0 } if {[winfo exists .coachWin]} { return 0 } if {[winfo exists .serGameWin]} { return 0 } set bDrawArrow 0 set varList [sc_var list UCI] if {$varList != ""} { set move [sc_game info nextMoveUCI] if {$move != ""} { set varList [linsert $varList 0 $move] } foreach { move } $varList { set bDrawn 0 set sq_start [ ::board::sq [ string range $move 0 1 ] ] set sq_end [ ::board::sq [ string range $move 2 3 ] ] foreach mark $::board::_mark(.main.board) { if { [lindex $mark 0] == "arrow" } { if {[lindex $mark 1] == $sq_start && [lindex $mark 2] == $sq_end} { set bDrawn 1 break } } } if {! $bDrawn } { set bDrawArrow 1; break } } } return $bDrawArrow } proc ::move::showVarArrows {} { set move [sc_game info nextMoveUCI] if {$move != ""} { set sq_start [ ::board::sq [ string range $move 0 1 ] ] set sq_end [ ::board::sq [ string range $move 2 3 ] ] ::board::mark::add ".main.board" "arrow" $sq_start $sq_end "green" } set varList [sc_var list UCI] foreach { move } $varList { set sq_start [ ::board::sq [ string range $move 0 1 ] ] set sq_end [ ::board::sq [ string range $move 2 3 ] ] ::board::mark::add ".main.board" "arrow" $sq_start $sq_end "blue" } } proc ::move::Start {} { if {[winfo exists .coachWin]} { set ::tacgame::analysisCoach(paused) 1 .coachWin.fbuttons.resume configure -state normal } sc_move start updateBoard if {[::move::drawVarArrows]} { ::move::showVarArrows } } proc ::move::End {} { sc_move end updateBoard if {[::move::drawVarArrows]} { ::move::showVarArrows } } proc ::move::ExitVar {} { sc_var exit; updateBoard -animate; if {[::move::drawVarArrows]} { ::move::showVarArrows } } proc ::move::Back {{count 1}} { if {[sc_pos isAt start]} { return } if {[sc_pos isAt vstart]} { ::move::ExitVar; return } ### todo: if playing, remove this move from hash array S.A ?? if {[winfo exists .coachWin]} { set ::tacgame::analysisCoach(paused) 1 .coachWin.fbuttons.resume configure -state normal # mess with game clocks ??? } sc_move back $count if {$count == 1} { # Do animation and speech: updateBoard -animate ::utils::sound::AnnounceBack } else { updateBoard } if {[::move::drawVarArrows]} { ::move::showVarArrows } } ################################################################################ # ################################################################################ proc ::move::Forward {{count 1}} { global autoplayMode if {[sc_pos isAt end] || [sc_pos isAt vend]} { return } set bArrows [::move::drawVarArrows] set move [sc_game info next] if {$count == 1} { if {[sc_var count] != 0 && ! $autoplayMode && $::showVarPopup} { ::commenteditor::storeComment showVars set bArrows $::showVarArrows } else { if {! $bArrows} { sc_move forward } } # Animate and speak this move: updateBoard -animate ::utils::sound::AnnounceForward $move } else { if {! $bArrows} { sc_move forward $count } updateBoard } if {$bArrows} { ::move::showVarArrows } } scid-4.3.0.cvs20120311/tcl/htext.tcl0000644000175000017500000005100711727223077016063 0ustar oliveroliver################### # htext.tcl: Online help/hypertext display module for Scid # # The htext module implements html-like display in a text widget. # It is used in Scid for the help and crosstable windows, and for # the game information area. namespace eval ::htext {} set helpWin(Stack) {} set helpWin(yStack) {} set helpWin(Indent) 0 # help_PushStack and help_PopStack: # Implements the stack of help windows for the "Back" button. # proc help_PushStack {name {heading ""}} { global helpWin lappend helpWin(Stack) $name if {[llength $helpWin(Stack)] > 10} { set helpWin(Stack) [lrange $helpWin(Stack) 1 end] } if {[winfo exists .helpWin]} { set helpWin(yStack) [linsert $helpWin(yStack) 0 \ [lindex [.helpWin.text yview] 0]] if {[llength $helpWin(yStack)] > 10} { set helpWin(yStack) [lrange $helpWin(yStack) 0 9] } } } set ::htext::headingColor "\#990000" array set ::htext:updates {} proc help_PopStack {} { global helpWin helpText set len [llength $helpWin(Stack)] if {$len < 1} { return } incr len -2 set name [lindex $helpWin(Stack) $len] set helpWin(Stack) [lrange $helpWin(Stack) 0 $len] set ylen [llength $helpWin(yStack)] set yview 0.0 if {$ylen >= 1} { set yview [lindex $helpWin(yStack) 0] set helpWin(yStack) [lrange $helpWin(yStack) 1 end] } updateHelpWindow $name .helpWin.text yview moveto $yview } proc helpWindow {name {heading ""}} { help_PushStack $name updateHelpWindow $name $heading } proc updateHelpWindow {name {heading ""}} { global helpWin helpText helpTitle windowsOS language set w .helpWin set slist [split $name " "] if {[llength $slist] > 1} { set name [lindex $slist 0] set heading [lindex $slist 1] } if {[info exists helpText($language,$name)] && [info exists helpTitle($language,$name)]} { set title $helpTitle($language,$name) set helptext $helpText($language,$name) } elseif {[info exists helpText($name)] && [info exists helpTitle($name)]} { set title $helpTitle($name) set helptext $helpText($name) } else { return } if {![winfo exists $w]} { toplevel $w # wm geometry $w -10+0 setWinLocation $w setWinSize $w wm minsize $w 20 5 text $w.text -setgrid yes -wrap word -width $::winWidth($w) -height $::winHeight($w) -relief sunken -border 0 -yscroll "$w.scroll set" ttk::scrollbar $w.scroll -command "$w.text yview" ttk::frame $w.b -relief raised -border 2 pack $w.b -side bottom -fill x ttk::button $w.b.contents -textvar ::tr(Contents) -command { helpWindow Contents } ttk::button $w.b.index -textvar ::tr(Index) -command { helpWindow Index } ttk::button $w.b.back -textvar ::tr(Back) -command { help_PopStack } ttk::button $w.b.close -textvar ::tr(Close) -command { set ::helpWin(Stack) {} set ::helpWin(yStack) {} destroy .helpWin } pack $w.b.contents $w.b.index $w.b.back -side left -padx 1 -pady 2 pack $w.b.close -side right -padx 5 -pady 2 pack $w.scroll -side right -fill y -padx 2 -pady 2 pack $w.text -fill both -expand 1 -padx 1 $w.text configure -font font_Regular -foreground black -background white ::htext::init $w.text bind $w "recordWinSize $w" } $w.text configure -cursor top_left_arrow $w.text configure -state normal $w.text delete 0.0 end $w.b.index configure -state normal if {$name == "Index"} { $w.b.index configure -state disabled } $w.b.contents configure -state normal if {$name == "Contents"} { $w.b.contents configure -state disabled } $w.b.back configure -state disabled if {[llength $helpWin(Stack)] >= 2} { $w.b.back configure -state normal } wm title $w "Scid Help: $title" wm iconname $w "Scid help" $w.text delete 0.0 end bind $w "$w.text yview scroll -1 units" bind $w "$w.text yview scroll 1 units" bind $w "$w.text yview scroll -1 pages" bind $w "$w.text yview scroll 1 pages" bind $w "$w.text yview moveto 0" bind $w "$w.text yview moveto 0.99" bind $w "$w.b.close invoke" bind $w "$w.b.back invoke" bind $w "$w.b.back invoke" bind $w "$w.b.index invoke" ::htext::display $w.text $helptext $heading 0 focus $w } proc ::htext::updateRate {w rate} { set ::htext::updates($w) $rate } proc ::htext::init {w} { set cyan "\#007000" set maroon "\#990000" set green "darkgreen" set ::htext::updates($w) 100 $w tag configure black -foreground black $w tag configure white -foreground white $w tag configure red -foreground red $w tag configure blue -foreground blue $w tag configure darkblue -foreground darkBlue $w tag configure green -foreground $green $w tag configure cyan -foreground $cyan $w tag configure yellow -foreground yellow $w tag configure maroon -foreground $maroon $w tag configure gray -foreground gray20 $w tag configure bgBlack -background black $w tag configure bgWhite -background white $w tag configure bgRed -background red $w tag configure bgBlue -background blue $w tag configure bgLightBlue -background lightBlue $w tag configure bgGreen -background $green $w tag configure bgCyan -background $cyan $w tag configure bgYellow -background yellow $w tag configure tab -lmargin2 50 $w tag configure li -lmargin2 50 $w tag configure center -justify center if {[$w cget -font] == "font_Small"} { $w tag configure b -font font_SmallBold $w tag configure i -font font_SmallItalic } else { $w tag configure b -font font_Bold $w tag configure i -font font_Italic } $w tag configure bi -font font_BoldItalic $w tag configure tt -font font_Fixed $w tag configure u -underline 1 $w tag configure h1 -font font_H1 -foreground $::htext::headingColor \ -justify center $w tag configure h2 -font font_H2 -foreground $::htext::headingColor $w tag configure h3 -font font_H3 -foreground $::htext::headingColor $w tag configure h4 -font font_H4 -foreground $::htext::headingColor $w tag configure h5 -font font_H5 -foreground $::htext::headingColor $w tag configure footer -font font_Small -justify center $w tag configure term -font font_BoldItalic -foreground $::htext::headingColor $w tag configure menu -font font_Bold -foreground $cyan # PGN-window-specific tags: $w tag configure tag -foreground $::pgnColor(Header) if { $::::pgn::boldMainLine } { $w tag configure nag -foreground $::pgnColor(Nag) -font font_Regular $w tag configure var -foreground $::pgnColor(Var) -font font_Regular } else { $w tag configure nag -foreground $::pgnColor(Nag) $w tag configure var -foreground $::pgnColor(Var) ### TODO ### $w tag configure var -foreground $::pgnColor(Var) -font font_Figurine_Var } $w tag configure ip1 -lmargin1 25 -lmargin2 25 $w tag configure ip2 -lmargin1 50 -lmargin2 50 $w tag configure ip3 -lmargin1 75 -lmargin2 75 $w tag configure ip4 -lmargin1 100 -lmargin2 100 } proc ::htext::isStartTag {tagName} { return [expr {![strIsPrefix "/" $tagName]} ] } proc ::htext::isEndTag {tagName} { return [strIsPrefix "/" $tagName] } proc ::htext::isLinkTag {tagName} { return [strIsPrefix "a " $tagName] } proc ::htext::extractLinkName {tagName} { if {[::htext::isLinkTag $tagName]} { return [lindex [split [string range $tagName 2 end] " "] 0] } return "" } proc ::htext::extractSectionName {tagName} { if {[::htext::isLinkTag $tagName]} { return [lindex [split [string range $tagName 2 end] " "] 1] } return "" } set ::htext::interrupt 0 proc ::htext::display {w helptext {section ""} {fixed 1}} { global helpWin # set start [clock clicks -milli] set helpWin(Indent) 0 set ::htext::interrupt 0 $w mark set insert 0.0 $w configure -state normal set linkName "" set count 0 set str $helptext if {$fixed} { regsub -all "\n\n" $str "

    " str regsub -all "\n" $str " " str } else { regsub -all "\[ \n\]+" $str " " str regsub -all ">\[ \n\]+" $str "> " str regsub -all "\[ \n\]+<" $str " <" str } set tagType "" set seePoint "" if {! [info exists ::htext::updates($w)]} { set ::htext::updates($w) 100 } # Loop through the text finding the next formatting tag: while {1} { set startPos [string first "<" $str] if {$startPos < 0} { break } set endPos [string first ">" $str] if {$endPos < 1} { break } set tagName [string range $str [expr {$startPos + 1}] [expr {$endPos - 1}]] # Check if it is a starting tag (no "/" at the start): if {![strIsPrefix "/" $tagName]} { # Check if it is a link tag: if {[strIsPrefix "a " $tagName]} { set linkName [::htext::extractLinkName $tagName] set sectionName [::htext::extractSectionName $tagName] set linkTag "link ${linkName} ${sectionName}" set tagName "a" $w tag configure "$linkTag" -foreground blue -underline 1 $w tag bind "$linkTag" \ "helpWindow $linkName $sectionName" $w tag bind $linkTag \ "$w tag configure \"$linkTag\" -background yellow $w configure -cursor hand2" $w tag bind $linkTag \ "$w tag configure \"$linkTag\" -background {} $w configure -cursor {}" } elseif {[strIsPrefix "url " $tagName]} { # Check if it is a URL tag: set urlName [string range $tagName 4 end] set urlTag "url $urlName" set tagName "url" $w tag configure "$urlTag" -foreground red -underline 1 $w tag bind "$urlTag" "openURL {$urlName}" $w tag bind $urlTag \ "$w tag configure \"$urlTag\" -background yellow $w configure -cursor hand2" $w tag bind $urlTag \ "$w tag configure \"$urlTag\" -background {} $w configure -cursor {}" } elseif {[strIsPrefix "run " $tagName]} { # Check if it is a Tcl command tag: set runName [string range $tagName 4 end] set runTag "run $runName" set tagName "run" $w tag bind "$runTag" "catch {$runName}" $w tag bind $runTag \ "$w tag configure \"$runTag\" -foreground yellow $w tag configure \"$runTag\" -background darkBlue $w configure -cursor hand2" $w tag bind $runTag \ "$w tag configure \"$runTag\" -foreground {} $w tag configure \"$runTag\" -background {} $w configure -cursor {}" } elseif {[strIsPrefix "go " $tagName]} { # Check if it is a goto tag: set goName [string range $tagName 3 end] set goTag "go $goName" set tagName "go" $w tag bind "$goTag" \ "catch {$w see \[lindex \[$w tag nextrange $goName 1.0\] 0\]}" $w tag bind $goTag \ "$w tag configure \"$goTag\" -foreground yellow $w tag configure \"$goTag\" -background maroon $w configure -cursor hand2" $w tag bind $goTag \ "$w tag configure \"$goTag\" -foreground {} $w tag configure \"$goTag\" -background {} $w configure -cursor {}" } elseif {[strIsPrefix "pi " $tagName]} { # Check if it is a player info tag: set playerTag $tagName set playerName [string range $playerTag 3 end] set tagName "pi" $w tag configure "$playerTag" -foreground darkBlue $w tag bind "$playerTag" "::pinfo::playerInfo \"$playerName\"" $w tag bind $playerTag \ "$w tag configure \"$playerTag\" -foreground yellow $w tag configure \"$playerTag\" -background darkBlue $w configure -cursor hand2" $w tag bind $playerTag \ "$w tag configure \"$playerTag\" -foreground darkBlue $w tag configure \"$playerTag\" -background {} $w configure -cursor {}" } elseif {[strIsPrefix "g_" $tagName]} { # Check if it is a game-load tag: set gameTag $tagName set tagName "g" set gnum [string range $gameTag 2 end] set glCommand "::game::LoadMenu $w [sc_base current] $gnum %X %Y" $w tag bind $gameTag $glCommand $w tag bind $gameTag \ "::gbrowser::new [sc_base current] $gnum" $w tag bind $gameTag \ "$w tag configure $gameTag -foreground yellow $w tag configure $gameTag -background darkBlue $w configure -cursor hand2" $w tag bind $gameTag \ "$w tag configure $gameTag -foreground {} $w tag configure $gameTag -background {} $w configure -cursor {}" } elseif {[strIsPrefix "m_" $tagName]} { # Check if it is a move tag: set moveTag $tagName set tagName "m" ### TODO ### Does not work for variations as the var-Tag appears before ### the "sc_move pgn [string range $moveTag 2 end]; updateBoard" # invoking contextual menu in PGN window $w tag bind $moveTag "sc_move pgn [string range $moveTag 2 end]; updateBoard" $w tag bind $moveTag "$w tag configure $moveTag -underline 1 $w configure -cursor hand2" $w tag bind $moveTag "$w tag configure $moveTag -underline 0 $w configure -cursor {}" } elseif {[strIsPrefix "c_" $tagName]} { # Check if it is a comment tag: set commentTag $tagName set tagName "c" if { $::pgn::boldMainLine } { $w tag configure $commentTag -foreground $::pgnColor(Comment) -font font_Regular } else { $w tag configure $commentTag -foreground $::pgnColor(Comment) } $w tag bind $commentTag "sc_move pgn [string range $commentTag 2 end]; updateBoard; ::commenteditor::Open" $w tag bind $commentTag "$w tag configure $commentTag -underline 1 $w configure -cursor hand2" $w tag bind $commentTag "$w tag configure $commentTag -underline 0 $w configure -cursor {}" } if {$tagName == "h1"} {$w insert end "\n"} } # Now insert the text up to the formatting tag: $w insert end [string range $str 0 [expr {$startPos - 1}]] # Check if it is a name tag matching the section we want: if {$section != "" && [strIsPrefix "name " $tagName]} { set sect [string range $tagName 5 end] if {$section == $sect} { set seePoint [$w index insert] } } if {[string index $tagName 0] == "/"} { # Get rid of initial "/" character: set tagName [string range $tagName 1 end] switch -- $tagName { h1 - h2 - h3 - h4 - h5 {$w insert end "\n"} } if {$tagName == "p"} {$w insert end "\n"} #if {$tagName == "h1"} {$w insert end "\n"} if {$tagName == "menu"} {$w insert end "\]"} if {$tagName == "ul"} { incr helpWin(Indent) -4 $w insert end "\n" } if {[info exists startIndex($tagName)]} { switch -- $tagName { a {$w tag add $linkTag $startIndex($tagName) [$w index insert]} g {$w tag add $gameTag $startIndex($tagName) [$w index insert]} c {$w tag add $commentTag $startIndex($tagName) [$w index insert]} m {$w tag add $moveTag $startIndex($tagName) [$w index insert]} pi {$w tag add $playerTag $startIndex($tagName) [$w index insert]} url {$w tag add $urlTag $startIndex($tagName) [$w index insert]} run {$w tag add $runTag $startIndex($tagName) [$w index insert]} go {$w tag add $goTag $startIndex($tagName) [$w index insert]} default {$w tag add $tagName $startIndex($tagName) [$w index insert]} } unset startIndex($tagName) } } else { switch -- $tagName { ul {incr helpWin(Indent) 4} li { $w insert end "\n" for {set space 0} {$space < $helpWin(Indent)} {incr space} { $w insert end " " } } p {$w insert end "\n"} br {$w insert end "\n"} q {$w insert end "\""} lt {$w insert end "<"} gt {$w insert end ">"} h2 - h3 - h4 - h5 {$w insert end "\n"} } #Set the start index for this type of tag: set startIndex($tagName) [$w index insert] if {$tagName == "menu"} {$w insert end "\["} } # Check if it is an image or button tag: if {[strIsPrefix "img " $tagName]} { set imgName [string range $tagName 4 end] set winName $w.$imgName while {[winfo exists $winName]} { append winName a } label $winName -image $imgName -relief flat -borderwidth 0 -background white $w window create end -window $winName } if {[strIsPrefix "button " $tagName]} { set idx [ string first "-command" $tagName] set cmd "" if {$idx == -1} { set imgName [string range $tagName 7 end] } else { set imgName [string trim [string range $tagName 7 [expr $idx -1]]] set cmd [ string range $tagName [expr $idx +9] end ] } set winName $w.$imgName while {[winfo exists $winName]} { append winName a } button $winName -image $imgName -command $cmd $w window create end -window $winName } if {[strIsPrefix "window " $tagName]} { set winName [string range $tagName 7 end] $w window create end -window $winName } # Now eliminate the processed text from the string: set str [string range $str [expr {$endPos + 1}] end] incr count if {$count == $::htext::updates($w)} { update idletasks; set count 1 } if {$::htext::interrupt} { $w configure -state disabled return } } # Now add any remaining text: if {! $::htext::interrupt} { $w insert end $str } if {$seePoint != ""} { $w yview $seePoint } $w configure -state disabled # set elapsed [expr {[clock clicks -milli] - $start}] } # openURL: # Sends a command to the user's web browser to view a webpage given # its URL. # proc openURL {url} { global windowsOS busyCursor . if {$windowsOS} { # On Windows, use the "start" command: regsub -all " " $url "%20" url if {[string match $::tcl_platform(os) "Windows NT"]} { catch {exec $::env(COMSPEC) /c start $url &} } else { catch {exec start $url &} } } elseif {$::macOS} { # On Mac OS X use the "open" command: catch {exec open $url &} } else { # On Unix systems, there is no standard for invoking favorite # web browser, so just try starting Mozilla or Netscape. # First, check if Mozilla seems to be available: if {[file executable [auto_execok firefox]]} { # First, try -remote mode: if {[catch {exec /bin/sh -c "$::auto_execs(firefox) -remote 'openURL($url)'"}]} { # Now try a new Mozilla process: catch {exec /bin/sh -c "$::auto_execs(firefox) '$url'" &} } } elseif {[file executable [auto_execok iceweasel]]} { # First, try -remote mode: if {[catch {exec /bin/sh -c "$::auto_execs(iceweasel) -remote 'openURL($url)'"}]} { # Now try a new Mozilla process: catch {exec /bin/sh -c "$::auto_execs(iceweasel) '$url'" &} } } elseif {[file executable [auto_execok mozilla]]} { # First, try -remote mode: if {[catch {exec /bin/sh -c "$::auto_execs(mozilla) -remote 'openURL($url)'"}]} { # Now try a new Mozilla process: catch {exec /bin/sh -c "$::auto_execs(mozilla) '$url'" &} } } elseif {[file executable [auto_execok www-browser]]} { # Now try a new Mozilla process: catch {exec /bin/sh -c "$::auto_execs(www-browser) '$url'" &} } elseif {[file executable [auto_execok netscape]]} { # OK, no Mozilla (poor user) so try Netscape (yuck): # First, try -remote mode to avoid starting a new netscape process: if {[catch {exec /bin/sh -c "$::auto_execs(netscape) -raise -remote 'openURL($url)'"}]} { # Now just try starting a new netscape process: catch {exec /bin/sh -c "$::auto_execs(netscape) '$url'" &} } } else { foreach executable {iexplorer opera lynx w3m links epiphan galeon konqueror mosaic amaya browsex elinks} { set executable [auto_execok $executable] if [string length $executable] { # Is there any need to give options to these browsers? how? set command [list $executable $url &] catch {exec /bin/sh -c "$executable '$url'" &} break } } } } unbusyCursor . } scid-4.3.0.cvs20120311/tcl/misc/0000755000175000017500000000000011727223077015153 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/misc/flags.tcl0000644000175000017500000006262111727223077016762 0ustar oliveroliver### ### flags.tcl: part of Scid. ### This file contains 171 flags from countries all over the world ### for usage in scid. Original work from Andy Templeton (Palview) ### http://www.enpassant.dk/chess/palview/index.htm ### and where slightly edited by Austin Lockwood for the usage at ### http://www.schemingmind.com ### Usage for scid granted May, 23 2008 :) ### ### Each flags dimension is 24x12 pixels. #====================================================================== # image create photo flag_afg -data { R0lGODlhGAAMAKL/AP//////AL4AJ6WEAKCJTSOeRgAAAAAAACwAAAAAGAAMAEADOGi6Kv6uyCkZ cwNHOu0SBBiGXOcZEFRWJyi6a3Gi6VbOtc3hIhEKMdxoBFzxAoNBQEfh1YKtXCwBADs= } image create photo flag_aho -data { R0lGODlhGAAMAJH/AP///74AJ43E7wAAACwAAAAAGAAMAEACJoR/oYrtuNgzotorAN55xjBR3DiG X4ieqBehJaaRpBbP7LLe0lQAADs= } image create photo flag_alb -data { R0lGODlhGAAMAPAAA74AJwAAACwAAAAAGAAMAEACJoSPqZvhz1YAr84ZKcLYdNZVx5eVJvU5J+q1 bKlaFynJlgm9+boWADs= } image create photo flag_alg -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACK5SPBsu9eUJQrkIjaW03bXdlihR8 HfJxp5auZPpAorCUpjxR9uZKMLBifQoAOw== } image create photo flag_and -data { R0lGODlhGAAMAKL/AP//////AP8zM/8AAMyZM5lmAAxBmgAAACwAAAAAGAAMAEADQWi6Gv5uyCkZ CySTQgKl1oJlXPdNYQM9Z5VigOCYbWqsbP3inh4GBWAw2BrYMAPZgHY6EpIe5ufoKAQjPguvd0oA ADs= } image create photo flag_ang -data { R0lGODlhGAAMAJH/AP//////AL4AJwAAACwAAAAAGAAMAEACJpSPqTftH2J4dKwUTL5c71tRUzOG 5ll16oqxyifAyDlOJYre+F4VADs= } image create photo flag_ant -data { R0lGODlhGAAMAKL/AP////f0Cb4AJzan6QAAAAAAAAAAAAAAACwAAAAAGAAMAEADNki6rNFQyCmB vZbq6Uj44OcpW/N4YMds0uC+sMvOAkZLkKo3FBSKPFZs+Lq1iDIjBZNRspq0BAA7 } image create photo flag_arg -data { R0lGODlhGAAMAPEAA////7TX9P//AP/MACwAAAAAGAAMAEACHoyPqct9AKOcNLr7KhRcWwyG4hh4 ACeYqjCkJgmDBQA7 } image create photo flag_arm -data { R0lGODlhGAAMAPEAA+KuVztao74AJwAAACwAAAAAGAAMAEACHpSPqQftD6MLtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_aru -data { R0lGODlhGAAMAPEAA7TX9Pf0Cb4AJwAAACwAAAAAGAAMAEACGYSPqcvtz4SEtNor7sq6swCG4kiW 5hl6SQEAOw== } image create photo flag_aus -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACKowuAWjo/xacEBglLD2SLYxV2xiN HXV6RxiSwQvHDZk1ocbROg30+08rAAA7 } image create photo flag_aut -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACGIyPqct9AKOcNLr7qta4+w8a20iWVIh2BQA7 } image create photo flag_aze -data { R0lGODlhGAAMAPEAA////zan6SOeRr4AJywAAAAAGAAMAEACJoyPqSftD6MbtFoArK6r+11llAgO 0ol66soq5UCSb4nNFIrnelQAADs= } image create photo flag_bah -data { R0lGODlhGAAMAJH/AP////f0CTan6QAAACwAAAAAGAAMAEACJJSPqTftC5lrodqL7YtczJ+F1dZB Q9l9qPI5othSb6auyGkvBQA7 } image create photo flag_ban -data { R0lGODlhGAAMAPAAAyOeRr4AJywAAAAAGAAMAEACG4SPqYvhz+KbIUpoF8W5++9toLE5Y1mNwKS2 BQA7 } image create photo flag_bar -data { R0lGODlhGAAMAPEAA+/UZpmZmTtaowAAACwAAAAAGAAMAEACLJRvoKvoL9hYsMYZRgDDQsZ4jzKV gOiAFHqoDZss0wuT3A3Hw76fueuruSoFADs= } image create photo flag_bdi -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACNESOqQsgD5uRQTqIsZ0267aEkpdN VUV+Rsg0D8Wyo4rAlZtqAiJcuVer/V6gYGJGXMVEjQIAOw== } image create photo flag_bel -data { R0lGODlhGAAMAJH/AP////f0Cb4AJwAAACwAAAAAGAAMAEACJ5xvoavi7xBiDEJ56LIPJx1wkQeG ojeUooCqJwmubfxiLjdrMqyLBQA7 } image create photo flag_ben -data { R0lGODlhGAAMAJEAAPf0CSOeRr4AJwAAACH5BAAAAAAALAAAAAAYAAwAAAIkjG+gyw2InFzwzFnT dTlsnn1NJ5TmiQpkypZrm77wKc9uZqMFADs= } image create photo flag_ber -data { R0lGODlhGAAMAPIAA////8yZmTlXozOZAL4AJwAAAAAAAAAAACwAAAAAGAAMAEADLkiyQsAkykmr laMuoJzgzQSM1OKdz6WuUfCxsOY1Dx3f62vWHMX1uMlgGCwaIwkAOw== } image create photo flag_bih -data { R0lGODlhGAAMAJH/AP////f0CTtaowAAACwAAAAAGAAMAEACJpQFEsu9B6NMTVqk3LuHasZZXhVy Xjl+QWmkDttlLxzPdL3dECUVADs= } image create photo flag_blr -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACIAyCqcspD6OcotlrsEZn30OFVOdZ ZNmcqKKunAhDRhwXADs= } image create photo flag_blz -data { R0lGODlhGAAMAPIAA//+/5n/mf/MAL4AJztaowBmAAD/AAAA/ywAAAAAGAAMAEADNzi63L4kygiM vWDqXUH5RbeNE2BmJGmYQnGE1fjMdG1DYxUYhYWmkxVAMIQZgCXhSYTULIG3WwIAOw== } image create photo flag_bol -data { R0lGODlhGAAMAPEAA/f0CYCAgCOeRr4AJywAAAAAGAAMAEACJpyPqSftD6MDtFoQwt2r+20NlAhS 0ol66soq5diQ72zMAIrnelQAADs= } image create photo flag_bot -data { R0lGODlhGAAMAJH/AP///2647QAAAAAAACwAAAAAGAAMAEACHIyPqct9AKOcNLp7hN68+42F4kga 34lW6lq2YQEAOw== } image create photo flag_bra -data { R0lGODlhGAAMAPEAA/////f0CSOeRjtaoywAAAAAGAAMAEACK5SPqWvhA6NjyYUoJ1V2H2thwDiA mnd66oqEZbCCwwhgICNjENCpZsoKFgAAOw== } image create photo flag_brn -data { R0lGODlhGAAMAPAAA/////8AACwAAAAAGAAMAEACH4QPocuteJxk0Mxb05V58+o5mRY+XWmCaDCu 7Im2awEAOw== } image create photo flag_bru -data { R0lGODlhGAAMAKL/AP//////hPf0CcZjAL4AJ4SEhAAAAAAAACwAAAAAGAAMAEADPyi63P6LGEPq lNMUwDX/X0VwAQQCJUNATOZKYwyMJ8oKYutO6e3Xp5VvR9nIaDRb40URwYAAFmFAxRAnvqEhAQA7 } image create photo flag_bul -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACHoSPqRftD6MTtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_can -data { R0lGODlhGAAMAPAAA/////8AACwAAAAAGAAMAEACJ4wPqZvnr2B8tAEUJnUs982BnogsnkmeDEqy Xys2qSxds7mm6pU/BQA7 } image create photo flag_chi -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJpRvoMsNAaOcNB4gcHZcJbZ1TkWW 5mldl+ggWsguiBsz6I3nOlQAADs= } image create photo flag_chn -data { R0lGODlhGAAMAPAAA/f0Cb4AJywAAAAAGAAMAEACGowfgMvtf5SCEFiKs94xeTNtIcgtY4mmKlQA ADs= } image create photo flag_cmr -data { R0lGODlhGAAMAPEAA/f0CSOeRr4AJwAAACwAAAAAGAAMAEACLYxvoqvg7xBiDEJ52tMW4ERx1hc0 ptBFXyheK5t6LwosMWnX7YPDaR+6zSixAgA7 } image create photo flag_col -data { R0lGODlhGAAMAPEAA/f0Cb4AJztaowAAACwAAAAAGAAMAEACHoSPqSftD6NbtNrLpNah+w+GHkaW 5mlsKiS27gt7BQA7 } image create photo flag_com -data { R0lGODlhGAAMAKL/AP////f0Cb4AJztaoyOeRgAAAAAAAAAAACwAAAAAGAAMAEADNBi63L4EkEmE vTjfSCP4YCh+1GM6XDdprEUNcCzPNHHezESO/MhJlF7v12m1dBKasrZs0hIAOw== } image create photo flag_crc -data { R0lGODlhGAAMAPEAA////ztao4CAAL4AJywAAAAAGAAMAEACJoyPqQftD6MbtI5ms5a8byEA2jgs 5ommTMc+myGScoXNVosDqloAADs= } image create photo flag_cro -data { R0lGODlhGAAMAPEAA////7TX9Dtao74AJywAAAAAGAAMAEACLJyPqSftDwZ4tIGLsdy5x2UIgQAe nhal51W1rlPG8jHW8Xpx+J5K+wsMCisFADs= } image create photo flag_cub -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJpSPqRftAKOc0T2KpVtchWp1XiOW QYlaX8YCjRuizKe2lCp7eVcAADs= } image create photo flag_cym -data { R0lGODlhGAAMAPIAA//////M/5n////MADtao74AJ8wAAAAzMywAAAAAGAAMAEADOVi0VMCKyUkr A7gC5cimgfFQXTlKQ2qtl+CebDx1zUjHRa7vEXP8lE9tIVyEBiJZJTAQDALKqJSVAAA7 } image create photo flag_cyp -data { R0lGODlhGAAMAJH/AP////DWiSOeRgAAACwAAAAAGAAMAEACH4SPqYsi8Bxjodo6s952+w96gYGR o3iV4KOwYRTGRgEAOw== } image create photo flag_cze -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJISPqSftAaOc0bmFWcvc2E+F0COW VYd+6PJdq9cKJgXOoWybBQA7 } image create photo flag_den -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACIIxvAMjt6uJbsiZqg9q8ex5BmSSOk/mlaoiZ TOkicFUAADs= } image create photo flag_dom -data { R0lGODlhGAAMAPEAA////ztao74AJwCAACwAAAAAGAAMAEACLoyPoMLtDxVA1Mgrhxi417RATnc1 ZCky0sdWUtq0CKyewBBwNkCvcq+QBYATWQEAOw== } image create photo flag_ecu -data { R0lGODlhGAAMAPIAA////+Hv+7TX9M6tb/f0Cf9mAMAUJztaoywAAAAAGAAMAEADNEi63L4nykkM mTg+NUjvWyg6mUQIgHCVkeG+cCy/Yy0OQ4HbjxCoItbhdFAJD7Okcsl8JQAAOw== } image create photo flag_egy -data { R0lGODlhGAAMAJH/AP////DWib4AJwAAACwAAAAAGAAMAEACI5SPqTftD6MDtFoQrgar+10FIlhJ 5uml6qqQ2OvGWXzW9h0VADs= } image create photo flag_eng -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACH4SPEJHtuJ5Mcdoql96878tYEyY6pOmlKVhm YducTQEAOw== } image create photo flag_eri -data { R0lGODlhGAAMAPEAA7TX9PPilSOeRr4AJywAAAAAGAAMAEACMpSPqTcT/VxsDdhr4ZSULtF13+do 3RamKca2gDjGYYDGBmSWaoPonK/CnGghF6tjTF4KADs= } image create photo flag_esa -data { R0lGODlhGAAMAJH/AP///2J4ogCAAAAAACwAAAAAGAAMAEACH4yPqct9AKMEZlqHn42iix1l4kiW FQh8KcpCXWvGYgEAOw== } image create photo flag_esp -data { R0lGODlhGAAMAKL/AP//////AP8AAJmZmZlmM5kzAAAAAAAAACwAAAAAGAAMAEADKCi63L4hxqHK kDjrKIrY4COO2VAQxAVmY+u+zirLA2rNoOmpOOz/jgQAOw== } image create photo flag_est -data { R0lGODlhGAAMAJH/AP///ztaowAAAAAAACwAAAAAGAAMAEACHoyPqQftD6MTtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_eth -data { R0lGODlhGAAMAPEAA5qw2SOeRr4AJ/f0CSwAAAAAGAAMAEACJ4yPqSftD+KbbdiLI8Dcrg92VzSQ okWlqgO27quc5SjX212v+s5TBQA7 } image create photo flag_eur -data { R0lGODlhGAAMAPEAA/fGAIyEKRA5cwAAACwAAAAAGAAMAAACHZSPApHtBlB8tFr15t1VO2aBGUeO jlemh4eSQZsUADs= } image create photo flag_fai -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACKoQPEiHo7xSDT9hrF94bykYhy0iW Julp4ZqoLPW9wEnXXMbcXDrJlcsqAAA7 } image create photo flag_fij -data { R0lGODlhGAAMAPIAA////7TX9P+EQv9CQv8AAL4AJztaowD/hCwAAAAAGAAMAEADPFi2VsAlyEmr vQEQUBdQjvEZFCEIA0EtYftgcBwQNC3fXdg8O178wGDkJlLsPEPJQQM44CxNwvJ5UVGfCQA7 } image create photo flag_fin -data { R0lGODlhGAAMAPAAA////ztaoywAAAAAGAAMAEACIIQfGcftptZzsdqbqJoa+9pJHBeNY2lC38q2 IrKlD5oWADs= } image create photo flag_fra -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJ5RvoKvh7xBiDEJ56LIPJw1wkQeG oieUYoCqJwmubfxiLjdrMqyLBQA7 } image create photo flag_gam -data { R0lGODlhGAAMAPEAA////ztaoyOeRr4AJywAAAAAGAAMAEACIpyPqSftD6MDtNqL69o8+A+G4ieV JoemqjK2bgbH5kzXUQEAOw== } image create photo flag_gbr -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACO4SFKRABmliARlrTnqqc594tnyY6 0Yc06sq264JNp4lUmTBS94bWuVU6JFzEIqgzOpJsMiBzKYEEKbECADs= } image create photo flag_geo -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACJ4SPEJGdjNZzVMEa5dFmXeuF4hhOmUl9Fuqo XPeQsoyt9fbmb703BQA7 } image create photo flag_ger -data { R0lGODlhGAAMAJH/AP///+/UZr4AJwAAACwAAAAAGAAMAEACHpyPqRftD6MTtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_gha -data { R0lGODlhGAAMAPEAA/f0CSOeRr4AJwAAACwAAAAAGAAMAEACJJSPqRftD6MDtFowrgar+21lYCWV poemqjJig9iOGQya9o1HBQA7 } image create photo flag_grd -data { R0lGODlhGAAMAKL/AP/////GAP9jQvf0Cb4AJyOeRgAAAAAAACwAAAAAGAAMAEADO0i6sdTMyULp uBjX6nbJoFd0YGmOSxGIxECInCTPdG3LlXlSHSwQggEMpaAIPL/gsPfRhXgziEL6mCUAADs= } image create photo flag_gre -data { R0lGODlhGAAMAPAAA////5qw2SwAAAAAGAAMAEACIIxhqcvtn9ABtNorQ4Zw84WFYhVF42l9jqdO KNrGclIAADs= } image create photo flag_gua -data { R0lGODlhGAAMAKL/AP//////AP9mM7TX9JkAAGbMMwCZAAAAACwAAAAAGAAMAEADMzi6Cv6OyTkg pLiWAIIoQEZZjzgBhQEQBmhKZPQucTg3TwHaN8oJLd7ModPJerEbjoRJAAA7 } image create photo flag_guy -data { R0lGODlhGAAMAKL/AP////f0Cb4AJyOeRgAAAAAAAAAAAAAAACwAAAAAGAAMAEADNzi63L4iSkKC vQC8IWe9VrZFVJBp29OtQgm+GVmd6UOJddq5Jl6zslfIxwHyQDSIB0Pc3FC5RwIAOw== } image create photo flag_hai -data { R0lGODlhGAAMAPEAA////ztao74AJwCAACwAAAAAGAAMAEACIIyPqSftD6NbB4ABqN5LOtCA3khG 3ImmWsORF1bG8uwVADs= } image create photo flag_hkg -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACIoyPqYvgASBbUdY658tUnohxnhGK5gmVpgOm LkpuaBvDdgEAOw== } image create photo flag_hon -data { R0lGODlhGAAMAPAAA////2J4oiwAAAAAGAAMAEACGoyPqct9AKOcNLr7qtUS+w+GBhdsHGlq4uoV ADs= } image create photo flag_hun -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACHoyPqSftD6MDtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_ina -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACGYyPqQftD6NbtNrLpN68NwyG4mh45ommTQEA Ow== } image create photo flag_ind -data { R0lGODlhGAAMAPEAA////+KuVztaoyOeRiwAAAAAGAAMAEACJoyPqTftD6MDtFpBsd2r+70JmAZS 0ol66soqZQaI71xp5Ivm+h4VADs= } image create photo flag_iri -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACKpSPqRftD6MTgNqKr86rdwCGYgCQ pDhKquq17qugqFnKY03n+L72/i8pAAA7 } image create photo flag_irl -data { R0lGODlhGAAMAJH/AP///+S0WCOeRgAAACwAAAAAGAAMAEACJ5RvoKvh7xBiDEJ56LIPJw1wkQeG oieUYoCqJwmubfxiLjdrMqyLBQA7 } image create photo flag_irq -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACKoyPqTftD6MDtNqL69qcig8IYQiS pEhJ6sq17qtU6DVbtZzdnrX2/h8pAAA7 } image create photo flag_isl -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACKpQvEAHo7xSDD9hrF94bykYhy0iW Julp4ZqoLPW9wknXXMbcXDrJlcsqAAA7 } image create photo flag_isr -data { R0lGODlhGAAMAPAAA////5qw2SwAAAAAGAAMAAACHYSPqRftD6NbtFoTbpVaZdx5TIhwZHmmmMSy qlIAADs= } image create photo flag_ita -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACJ5RvoKvh7xBiDEJ56LIPJw1wkQeG oieUYoCqJwmubfxiLjdrMqyLBQA7 } image create photo flag_jam -data { R0lGODlhGAAMAJH/AP////f0CSOeRgAAACwAAAAAGAAMAEACLYyOqRsxD5tREtorabs2L7ZxnOSI XfN91eClahih6WrGE1xjMl23b/nwuTSBAgA7 } image create photo flag_jor -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACK5yPqRftLaKcVLwHst4cvAUmjnc1 XfdUqtqELnO9S4mdKG3aXLn2VuALCgoAOw== } image create photo flag_jpn -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACG4SPqZvhz+KbIUpoF8W5++9toLE5Y1mNwKSq BQA7 } image create photo flag_kaz -data { R0lGODlhGAAMAPEAA43E7//GAP//AAAAACwAAAAAGAAMAEACMkQEqcvtERh06TSBRaQVra14lKVE GWZwpARyhrggsBsnWaXO7+1OpY0C6Eq6iS9HcxUAADs= } image create photo flag_ken -data { R0lGODlhGAAMAKL/AP////8zM74AJyOeRgAAAAAAAAAAAAAAACwAAAAAGAAMAEADPEi63L4gSikC CGLqPevNXPQASwA9hKCuK2GZbCwMdE0D9oDnNer/DVJGQCChZK0kcqkkMme823AXrVqrCQA7 } image create photo flag_kgz -data { R0lGODlhGAAMAPAAA/f0Cb4AJywAAAAAGAAMAEACH4yPqZsA5piM9Enm4l3P9g2G4qhpZOChI9q1 K5S9bwEAOw== } image create photo flag_khm -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJZSPqRftAAJsc7qLr81u+c9J0Lhh 34mmSsi2WBWVbkWJnIrnSgEAOw== } image create photo flag_kir -data { R0lGODlhGAAMALMAAGyDunCHvD9dpUNhpz5dpHSKvoiax2N7tniOwPf0CTtao////74AJwAAAAAA AAAAACH5BAAAAAAALAAAAAAYAAwAAARMkMlJq7016Z2w/+DUbUwXiiVXnhRnYkscM3Kc1AuNL0ov 94qfLwbkKQoLQI9wWAR6A8QCAZQqd9gsrkgcGoPdYC8wBRqSPYE1LX1GAAA7 } image create photo flag_kor -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACK4SPqWtjAmNjKthr6XGA49lpzxUJ IqhxjEqxi4cFqIhF8nmU5clxewjE4QoAOw== } image create photo flag_kuw -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACK5yOqXvjH6KcVL4Lst48X8OEyOd0 5gZVqvqIbvO9DDmcNm2f38pHQw+MFAAAOw== } image create photo flag_lao -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACIoyPqSftDyJ4tEIZbVu8a4FlWkeW pvKBUvqFE1u530nXSgEAOw== } image create photo flag_lat -data { R0lGODlhGAAMAPAAA////4AAJiwAAAAAGAAMAEACFYyPqcvtD2MCtNqLq9y8uwyG3khuBQA7 } image create photo flag_lba -data { R0lGODlhGAAMAPAAAyOeRgAAACwAAAAAGAAMAEACD4SPqcvtD6OctNqLs96wAAA7 } image create photo flag_lbr -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACIJQdqcvt7wSQAloJpt28+0hh2UiW ozGJ5sq27gvH8rwWADs= } image create photo flag_lib -data { R0lGODlhGAAMAKL/AP///74AJ5nMmTOZAABmAAAAAAAAAAAAACwAAAAAGAAMAEADKxi63L4gykkA qTPrOYjAG/CMZGhdw2eSbOs6ZkQMcexdYM3dl0Bvr6DQkQAAOw== } image create photo flag_lie -data { R0lGODlhGAAMAPEAA/TkZDtao74AJwAAACwAAAAAGAAMAEACIIyPqSftD6M7oK6bqsZX+g+GE8WV wIAC5com4gvHclMAADs= } image create photo flag_ltu -data { R0lGODlhGAAMAPEAA/f0CSOeRr4AJwAAACwAAAAAGAAMAEACHoSPqSftD6MLtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_lux -data { R0lGODlhGAAMAJH/AP///74AJ5qw2QAAACwAAAAAGAAMAEACHoyPqSftD6MDtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_mad -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACJIRvocsdiISctAp4nF44bd0B1jiF JBl+YKc6acuYpyXPVG1LBQA7 } image create photo flag_mar -data { R0lGODlhGAAMAPEAA5nMmSOeRr4AJwAAACwAAAAAGAAMAEACHpSPqYsQFwCbwFk5M8468g+GYvKM SPCgpuEI3grHBQA7 } image create photo flag_mas -data { R0lGODlhGAAMAPEAA/////f0CTtao74AJywAAAAAGAAMAEACJpSPNsvtD+MJIanITNX74g+GYsZZ AoCmKqpN3bnGZhLX9o3n+m4XADs= } image create photo flag_mau -data { R0lGODlhGAAMAPAAA/f0CSOeRiwAAAAAGAAMAEACHYyPqYvg/5g0YFp6k5M7+w9qnVdNpXk26QWt oVUAADs= } image create photo flag_mda -data { R0lGODlhGAAMAPIAA///APf0CZlmAP8AAL4AJztaowBmmQAAACwAAAAAGAAMAEADPFi6Gv6OyCkZ e0OMSKddjgAIAdl5XwFBZ5WGRmCYbaqu3GnjebeHpB7lpxlkAi0CMTZD1l6BDWmT/OGSCQA7 } image create photo flag_mex -data { R0lGODlhGAAMAKL/AP///86tb74AJ5mZmSOeRgCZAAAAAAAAACwAAAAAGAAMAEADOUi6Cv5OyCkZ g5BSu8AIYBBpFUdgD1lyQOGAriqYJwrItH2r+SuOpNwHBBDhTI6C0rULIm1HFlSVAAA7 } image create photo flag_mgl -data { R0lGODlhGAAMAPEAA/TkZDtao74AJwAAACwAAAAAGAAMAEACL5RvoavoAARMbLkbT7X3wCxsTSd5 1EZKXyYGqQGG4nu16crOZMSf1V3KoWgIW6cAADs= } image create photo flag_mkd -data { R0lGODlhGAAMAPEAA/f0Cf+ZM74AJwAAACwAAAAAGAAMAEACL4Qhqad72FY0sc4JrcuC7vaE4ugl jAOWH4apqWS6nREEbVWL9R3lcsmRxTixFqQAADs= } image create photo flag_mli -data { R0lGODlhGAAMAPEAA/f0CSOeRr4AJwAAACwAAAAAGAAMAEACJ4xvoKvi7xBiDEJ56LIPJw1wkQeG oheUooCqJwmubfxiLjdrMqyLBQA7 } image create photo flag_mlt -data { R0lGODlhGAAMAJH/AP///74AJ4SEhAAAACwAAAAAGAAMAEACI4SPFsu9CYGbISbqgNgWN4t4DHiI jwaaFdqZpOK+6ivFpFoAADs= } image create photo flag_mnc -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACGYyPqQftD6NbtNrLpN68NwyG4mh45ommTQEA Ow== } image create photo flag_mne -data { R0lGODlhGAAMAPEAA+26SMs0SBmtTwFxtywAAAAAGAAMAAACLoSPqRjtD2Mw0tE6gdSQd/9wF2iR zTEMx2aeQHpFcRcIwlTNcltifv/zLYZEQAEAOw== } image create photo flag_moz -data { R0lGODlhGAAMAKL/AP////f0Cb4AJyOeRgAAAAAAAAAAAAAAACwAAAAAGAAMAEADNzi63L4iSkCr vVUGIrC/0iM6EQFIEqGuLKsFcCzPszDeDGrjTxSnraCLEBAUS8KkjsakGZvQWQIAOw== } image create photo flag_mri -data { R0lGODlhGAAMAPEAA/f0CSOeRjtao74AJywAAAAAGAAMAEACI5yPqQftD6MTtNqL69pc+h+E4kiW Iocm2cq2bvXFkEnX9i0WADs= } image create photo flag_mya -data { R0lGODlhGAAMAPEAA////zOZ/ztao74AJywAAAAAGAAMAEACIZSPo8vtDxUCIEV2QBDV3A+GopR1 XpgJgSkirjDG8kwPBQA7 } image create photo flag_nca -data { R0lGODlhGAAMAJH/AP///2J4ogCA/wAAACwAAAAAGAAMAEACHIyPqct9AKOcNLr7KkR64w+GYtBB glCmqje2VwEAOw== } image create photo flag_ned -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACHoyPqSftD6MDtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_nep -data { R0lGODlhGAAMAPIAA////ztao74AJ2YAM////wAAAAAAAAAAACH5BAEAAAQALAAAAAAYAAwAQAM7 GEHc/pAEIYAFNK/YJrZVRg1bNIkkx50ipbxwybBg28qzkKo82+48CeWCsWkgtKIrmKtcjMBHbErF JQAAOw== } image create photo flag_ngr -data { R0lGODlhGAAMAPAAA////yOeRiwAAAAAGAAMAEACIIxvoKvoHxiDNMpW38UZbdA5X+ht5DGe1qWu UpuesVMAADs= } image create photo flag_nir -data { R0lGODlhGAAMAJH/AP/////OMb4AJwAAACwAAAAAGAAMAEACJoSPIJvtJ9SbKFiKRYhz+c9EIJgx WGeezcaiY2q88pfMJac2HlUAADs= } image create photo flag_nor -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACKowfIALo7xSDD9hrF94bykYhy0iW Julp4ZqoLPW9wUnXXMbcXDrJlcsqAAA7 } image create photo flag_nzl -data { R0lGODlhGAAMAPEAA////ztao74AJwAAACwAAAAAGAAMAEACJlQeAmjoD6N8wKhQZ3q3L9ho4jiG zpV8qCi07mtqWXrMG4nn+v4UADs= } image create photo flag_omn -data { R0lGODlhGAAMAPEAA/////9mM74AJyOeRiwAAAAAGAAMAEACJpQvoMuteIactEqIsw4gGAcy2kgi 1kkdgBqGX/K1YEnXNoTmWY4WADs= } image create photo flag_pak -data { R0lGODlhGAAMAPAAA////yOeRiwAAAAAGAAMAEACKIQfqct6yMwC8dE5ZX4t3O5ZEbhBZGd9Z8WN TpO6L2smGhnDbXmvSwEAOw== } image create photo flag_pan -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACK4SPFsu9AqOECYSKRHX85t0106hh GSlt5ho2Z3m0zBrLAZrSAB4l88Gj6AoAOw== } image create photo flag_par -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACI4yPqSftD6MDtNqL69o86xZ4lESW 3ImmikgZ7Au4bEnXdlQAADs= } image create photo flag_per -data { R0lGODlhGAAMAKL/AP//////AL4AJ2b//wCZAABmAAAAAAAAACwAAAAAGAAMAEADMCi6Cv6OySkc sZFqcEvhgLY53iNSYFBd5wRBrfSa8ULeYd18Q5frgM/uV5tlgEZNAgA7 } image create photo flag_phi -data { R0lGODlhGAAMAPEAA/////f0CTtao74AJywAAAAAGAAMAEACK5SPqQftA6Oc0bmFWQC5mxaEwAZQ JjSW51p5rsW5ikM2MgNaLAXvp+pbFQAAOw== } image create photo flag_png -data { R0lGODlhGAAMAJH/AP////f0Cb4AJwAAACwAAAAAGAAMAEACM5SPqTftD8cSsaUgAtbozbMpFbRg jAOMVSd9hpkl0aTV8pM6iglTQ94A6kA3nMpSPKoMBQA7 } image create photo flag_pol -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACGYSPqRftD6NbtNrLpN68NwyG4mh45ommTQEA Ow== } image create photo flag_por -data { R0lGODlhGAAMAKL/AP////TkZL4AJztaoyOeRgAAAAAAAAAAACwAAAAAGAAMAEADM0i6K/4wshVq vG8GAQYQGwZNShWKI7N134mSDSrBhDxTkSuq2+CDuovmZLHRarYMLflIAAA7 } image create photo flag_prk -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJpSPqRftAJ2c9AVQM9y8ez5FUTYt 5ommDMmSWPO2FEbL8IfjqloAADs= } image create photo flag_pur -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJoyPqSftAKOc0T2KpVtciWp1XiOW QolaX8YCjRuizKe2lCp7eVcAADs= } image create photo flag_qat -data { R0lGODlhGAAMAPAAA////4AAJiwAAAAAGAAMAEACH4QPocuteJxk0Mxb05V58+o5mRY+XWmCaDCu 7Im2awEAOw== } image create photo flag_que -data { R0lGODlhGAAMAPAAA////ztaoywAAAAAGAAMAEACJ4yPAZCdjNZzVMEa5dFmXeuF4hhOmUl9Fuqo XPeQsoyt9fbmb703BQA7 } image create photo flag_rom -data { R0lGODlhGAAMAPEAA/f0Cb4AJztaowAAACwAAAAAGAAMAEACJ5RvoKvh7xBiDEJ56LIPJw1wkQeG oieUYoCqJwmubfxiLjdrMqyLBQA7 } image create photo flag_rsa -data { R0lGODlhGAAMAKL/AP////f0Cb4AJztaoyOeRgAAAAAAAAAAACwAAAAAGAAMAEADPEhKAPIwSlhq CGu1wbsfVXFlWmOeDUYyzuSG8LjOhJptX96tjesLItut9QPGhDQSLMhDoZgknM4TBUyvCQA7 } image create photo flag_rus -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACHoSPqRftD6MTtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_sau -data { R0lGODlhGAAMAPAAA////yOeRiwAAAAAGAAMAEACHYyPqXvgDwFDMtqJs968+yUFj1g5mUmG0Mee bVYAADs= } image create photo flag_sco -data { R0lGODlhGAAMAPAAA////ztaoywAAAAAGAAMAEACKISDqZsG6xyKhzU6MdQ20Nd5nPWFYnRWZiax rVKGH7q6cXdfdArWVAEAOw== } image create photo flag_sen -data { R0lGODlhGAAMAPEAA/f0CSOeRr4AJwAAACwAAAAAGAAMAEACK4xvoKvi7xBiDEJ5Vmo24kAtnYdp INd9ZzgKaohaL9zOE1B/MD7ObK+jjQoAOw== } image create photo flag_sey -data { R0lGODlhGAAMAKL/AP////f0Cb4AJztaoyOeRgAAAAAAAAAAACwAAAAAGAAMAEADOzi6Gv5OyClb pBLozQFhAxRg5ASG4liaC7RmXUh1RG3f9omKr3CmvUrLFdwMVaUOx4JRanA11RNKxSUAADs= } image create photo flag_sin -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACIYyPqQftD6MLgK2LqtF4yQ+G4kRx3aVV5pmt LDPG8kwDBQA7 } image create photo flag_sle -data { R0lGODlhGAAMAJH/AP///5qw2WWwcAAAACwAAAAAGAAMAEACHpSPqRftD6MDtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_slo -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJISPqRftD6MTVJyKc0bWrg9o4lhJ 5slR4Idd5KvC4knX9o07BQA7 } image create photo flag_smr -data { R0lGODlhGAAMAKL/AP///+SzV74AJ5qw2SOeRgAAAAAAAAAAACwAAAAAGAAMAEADJgi63L4jyjkA AZS+RYK/Wyg22dSdZaqqY+sK7tYBAfisA4rvfF8mADs= } image create photo flag_srb -data { R0lGODlhGAAMAPEAA////++5Se4cIwBKjSwAAAAAGAAMAAACK5SPqQvSvSIKVNprhx6u7w+Gw+OI 5gek6cmSAAuqTQAEjozn8qH3/g8M6goAOw== } image create photo flag_sri -data { R0lGODlhGAAMAPEAA/f0CeSzVyOeRoAAJiwAAAAAGAAMAEACPoSPqSgdD4aUZtRIQRMvYJtRk6U5 EBgdYVpy57R8xtZ94w23Nc5n9IsKjmYmD4yUyP2MIhBpqDvZeKyYVVEAADs= } image create photo flag_sud -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACKoyPqSftA6Oc0TmAs97Zra9YIkdi D4WiAsgiYvuJV0nKDV1b6Q4J/A8pAAA7 } image create photo flag_sui -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACHYyPqavgwOKbL7JpF6W51a59YIKNxlZ2qDim 5lsAADs= } image create photo flag_sun -data { R0lGODlhGAAMAPAAA/f0Cb4AJywAAAAAGAAMAEACGoyPqcuNECB0dFIG5N082e4ZHyiSx2imKlMA ADs= } # sur is also URS (Soviet Union) image create photo flag_sur -data { R0lGODlhGAAMAPEAA/////f0CSOeRr4AJywAAAAAGAAMAEACI5SPqTftD6OcYTqAs948W1d9y0iW JvOlasCyKjWEU0fX51kAADs= } image create photo flag_urs -data { R0lGODlhGAAMAPEAA/////f0CSOeRr4AJywAAAAAGAAMAEACI5SPqTftD6OcYTqAs948W1d9y0iW JvOlasCyKjWEU0fX51kAADs= } image create photo flag_svk -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJ4SPqRftAp2cD0Zms4arex1g20iV puOlaQOwqgGGzUhvQE2e+s5PBQA7 } image create photo flag_swe -data { R0lGODlhGAAMAPAAA+zRHDtppCwAAAAAGAAMAEACIIwfoMjdCpyDtFo7l2S3+xxtYqKNEmQa3lqB 6Vm+CJoWADs= } image create photo flag_syr -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACJIyPqTftD6MDtNqL69oci++Bl0SW 3ImmSiZkQOtesJeV9o1HBQA7 } image create photo flag_tcd -data { R0lGODlhGAAMAPEAA/f0Cb4AJztaowAAACwAAAAAGAAMAEACJ5RvoKvh7xBiDEJ56LIPJw1wkQeG oieUYoCqJwmubfxiLjdrMqyLBQA7 } image create photo flag_tha -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACH4yPqQftD6MTtNqLq9w8+7+E4kgy 3Pl86spi6AuUZQEAOw== } image create photo flag_tjk -data { R0lGODlhGAAMAPEAA////+SzVyOeRr4AJywAAAAAGAAMAEACJ5yPqQftHmJ8tL4AMLZt+c9BoSOU 5omm5scm4/tuMkzNWajm+s6bBQA7 } image create photo flag_tkm -data { R0lGODlhGAAMAPIAA////7mYd4phX85EOYwzLq0EJ19rMSOeRiwAAAAAGAAMAEADNHgnNvowykOK mziSrcDzGSQwXxdChfWB5zMGbZZeINsW1WHbIWEUEV7IQIlhYBdjZJBTPhIAOw== } image create photo flag_tri -data { R0lGODlhGAAMAJH/AP///74AJwAAAAAAACwAAAAAGAAMAEACKIQuEMvtDwMwSMU1UbouVw5i1GGF l0c2Y1Kaqja5zxrLb9XadC7vQQEAOw== } image create photo flag_tun -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACHYyPqavgwGJw5kG5LM5X7w+GEjVdIYWaIEmK 7osUADs= } image create photo flag_tur -data { R0lGODlhGAAMAPAAA////74AJywAAAAAGAAMAEACGYyPqYsADJt5sVpIT768e+V8WrJxVCmmaQEA Ow== } image create photo flag_twn -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACH5SPFsvtD2MCIMWGKEW3+w86U8V5 mVZ2ySqE7gvHTQEAOw== } image create photo flag_uae -data { R0lGODlhGAAMAJH/AP///74AJyOeRgAAACwAAAAAGAAMAEACJ4wvqct6N6KcVD4Dst5c39CEzNeV 3Fel1Ce2AuuGpEnPdImqeq6nBQA7 } image create photo flag_uga -data { R0lGODlhGAAMAKL/AP////f0CcDAwL4AJwAAAAAAAAAAAAAAACwAAAAAGAAMAEADKki63L4hykmr HDhrwLXHVig+CicMAKl8bJupcCPOlMsRnQt3Me0HrqAnAQA7 } image create photo flag_ukr -data { R0lGODlhGAAMAPAAA43E7/f0CSwAAAAAGAAMAEACGYSPqRftD6NbtNrLpN68NwyG4mh45ommTQEA Ow== } image create photo flag_uru -data { R0lGODlhGAAMAJH/AP////f0CZqw2QAAACwAAAAAGAAMAEACH4SPqcutEY6YtFphIHS8twuG1LEZ Iphp3sqe7sjGcQEAOw== } image create photo flag_usa -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACJpR/ocvtDxea0U1U2025eyUA4SgC 5ommRjmG6XuSMkzX9o3n+lkAADs= } image create photo flag_uzb -data { R0lGODlhGAAMAPEAA////5qw2SOeRr4AJywAAAAAGAAMAEACKkwApss9D6OctFp4mt4H+Q+GnkCW 5omW2ZIkXINk7cuK9o3nSMr3/l8qAAA7 } image create photo flag_ven -data { R0lGODlhGAAMAKL/AP////f0Cb4AJztaoxp2NAAA/wAAAAAAACwAAAAAGAAMAEADLRi63L4iykmr HDjrAfjeAVEUxGMyX6pmVuuGAlGedBDV59pp+7r1vJRrSCxWEgA7 } image create photo flag_vie -data { R0lGODlhGAAMAPAAA/f0Cb4AJywAAAAAGAAMAEACGoyPqYuQzhiYFMZoL566+w8+oUKNB8eZ6loA ADs= } image create photo flag_wal -data { R0lGODlhGAAMAKL/AP///74AJ4CAgCOeRgAAAAAAAAAAAAAAACwAAAAAGAAMAEADRgi63L4jjjCD tYSSbOVYARgq1wVYTxhwzThCEVUKhDCvlBdxxH75Hc+D9BqmSiITqUVElVAnhmRmu9iquuylB8xx s+BwNgEAOw== } image create photo flag_yem -data { R0lGODlhGAAMAJH/AP///74AJwAAAAAAACwAAAAAGAAMAEACHoyPqSftD6MDtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_yug -data { R0lGODlhGAAMAJH/AP///74AJztaowAAACwAAAAAGAAMAEACHpSPqRftD6MDtNqL69o8+y+FIkeW pvKl6oqJ7gtHBQA7 } image create photo flag_zam -data { R0lGODlhGAAMAKL/AP///+SzV74AJ2YzACOeRgAAAAAAAAAAACwAAAAAGAAMAEADLUi63P5wiVlq uDHrPMbtWzMJVXEFoTKWZ9oNBBzL6eLVzGphqW7yIV+rR9kFEgA7 } image create photo flag_zim -data { R0lGODlhGAAMAKL/AP////f0Cb4AJyOeRgAAAAAAAAAAAAAAACwAAAAAGAAMAEADNzi63L4gRiKq vdiCIGb+2BSMZGmemxBIAOG+cEyIZ10Tdo5KFOhfnIls+AJ0Op5fiKfLER5QaAIAOw== } scid-4.3.0.cvs20120311/tcl/misc/misc.tcl0000644000175000017500000011030311727223077016610 0ustar oliveroliver### ### misc.tcl: part of Scid. ### Copyright (C) 2001 Shane Hudson. ### Copyright (C) 2007 Pascal Georges ### ### Miscellaneous routines called by other Tcl functions ################################################################################ # vwait but will timeout after a delay. Var must be fully qualified (::) ################################################################################ proc vwaitTimed { var {delay 0} {warn "warnuser"} } { proc trigger {var warn} { if {$warn == "warnuser"} { tk_messageBox -type ok -icon error -parent . -title "Protocol error" -message "vwait timeout for $var" } set $var 1 } if { $delay != 0 } { set timerId [after $delay "trigger $var $warn"] } vwait $var if [info exists timerId] { after cancel $timerId } } ################################################################################ # bindFocusColors: # Configures a text or entry widget so it turns lightYellow when it # gets the focus, and turns white again when it loses focus. # # THIS IS CURRENTLY DISABLED since it works fine with regular entry widgets # but causes problems with our combobox widgets, not sure why! # proc bindFocusColors {w {inColor lightYellow} {outColor white}} { $w configure -background $outColor #bind $w "+$w configure -background $inColor" #bind $w "+$w configure -background $outColor" } ## FROM TK 8.5.9 ## ttk::bindMouseWheel $bindtag $command... # Adds basic mousewheel support to $bindtag. # $command will be passed one additional argument # specifying the mousewheel direction (-1: up, +1: down). # proc ttk_bindMouseWheel {bindtag callback} { switch -- [tk windowingsystem] { x11 { bind $bindtag "$callback -1" bind $bindtag "$callback +1" } win32 { bind $bindtag [append callback { [expr {-(%D/120)}]}] } aqua { bind $bindtag [append callback { [expr {-(%D)}]} ] } } } # bindMouseWheel: # Given a window and a text frame within that window, binds # the mouse wheel to scroll the text frame vertically. # proc bindMouseWheel {win text} { bind $win \ "$text yview scroll \[expr -(%D / 120)\] units" if {! $::windowsOS} { bind $win [list $text yview scroll -1 units] bind $win [list $text yview scroll 1 units] } } # dialogbuttonframe: # Creates a frame that will be shown at the bottom of a # dialog window. It takes two parameters: the frame widget # name to create, and a list of button args. Each element # should contain a widget name, and button arguments. # proc dialogbuttonframe {frame buttonlist} { ttk::frame $frame set bnames {} set maxlength 0 foreach buttonargs $buttonlist { set bname $frame.[lindex $buttonargs 0] set bargs [lrange $buttonargs 1 end] eval ttk::button $bname $bargs set bnames [linsert $bnames 0 $bname] set length [string length [$bname cget -text]] if {$length > $maxlength} { set length $maxlength} } if {$maxlength < 7} { set maxlength 7 } foreach b $bnames { $b configure -width $maxlength -padx 4 pack $b -side right -padx 4 -pady 4 } } # packbuttons # Packs a row of dialog buttons to the left/right of their frame # with a standard amount of padding. # proc packbuttons {side args} { eval pack $args -side $side -padx 5 -pady 3 } # dialogbutton: # Creates a button that will be shown in a dialog box, so it # is given a minumin width. # proc dialogbutton {w args} { set retval [eval ttk::button $w $args] ;# -style TButton set length [string length [$w cget -text]] if {$length < 7} { set length 7 } $w configure -width $length return retval } proc dialogbuttonsmall {w args {style "Small.TButton"} } { set retval [eval ttk::button $w -style $style $args] set length [string length [$w cget -text]] if {$length < 7} { set length 7 } $w configure -width $length return retval } # autoscrollframe # Creates and returns a frame containing a widget which is gridded # with scrollbars that automatically hide themselves when they are # not needed. # The frame and widget may already exist; they are created if needed. # FBF 2011.03.05: # $frame and $w aspects are not changed if they already exists # scrollbars are created on time 0, otherwise they are not hidden # # Usage: # autoscrollframe [-bars none|x|y|both] frame type w args # proc autoscrollframe {args} { global _autoscroll set bars both if {[lindex $args 0] == "-bars"} { set bars [lindex $args 1] if {$bars != "x" && $bars != "y" && $bars != "none" && $bars != "both"} { return -code error "Invalid parameter: -bars $bars" } set args [lrange $args 2 end] } if {[llength $args] < 3} { return -code error "Insufficient number of parameters" } set frame [lindex $args 0] set type [lindex $args 1] set w [lindex $args 2] set args [lrange $args 3 end] set retval $frame if {! [winfo exists $frame]} { frame $frame $frame configure -relief sunken -borderwidth 2 } if {! [winfo exists $w]} { $type $w if {[llength $args] > 0} { eval $w configure $args } $w configure -relief flat -borderwidth 0 } grid $w -in $frame -row 0 -column 0 -sticky news set setgrid 0 catch {set setgrid [$w cget -setgrid]} if {$bars == "y" || $bars == "both"} { ttk::scrollbar $frame.ybar -command [list $w yview] -takefocus 0 $w configure -yscrollcommand [list _autoscroll $frame.ybar] grid $frame.ybar -row 0 -column 1 -sticky ns set _autoscroll($frame.ybar) 1 set _autoscroll(time:$frame.ybar) 0 if {! $setgrid} { # bind $frame.ybar [list _autoscrollMap $frame] } } if {$bars == "x" || $bars == "both"} { ttk::scrollbar $frame.xbar -command [list $w xview] -takefocus 0 -orient horizontal $w configure -xscrollcommand [list _autoscroll $frame.xbar] grid $frame.xbar -row 1 -column 0 -sticky we set _autoscroll($frame.xbar) 1 set _autoscroll(time:$frame.xbar) 0 if {! $setgrid} { # bind $frame.xbar [list _autoscrollMap $frame] } } grid rowconfigure $frame 0 -weight 1 grid columnconfigure $frame 0 -weight 1 grid rowconfigure $frame 1 -weight 0 grid columnconfigure $frame 1 -weight 0 return $retval } array set _autoscroll {} # _autoscroll # This is the "set" command called for auto-scrollbars. # If the bar is shown but should not be, it is hidden. # If the bar is hidden but should be shown, it is redrawn. # Note that once a bar is shown, it will not be removed again for # at least a few milliseconds; this is to overcome problematic # interactions between the x and y scrollbars where hiding one # causes the other to be shown etc. This usually happens because # the stupid Tcl/Tk text widget doesn't handle scrollbars well. # proc _autoscroll {bar args} { global _autoscroll if {[llength $args] == 2} { set min [lindex $args 0] set max [lindex $args 1] if {$min > 0.0 || $max < 1.0} { if {! $_autoscroll($bar)} { grid configure $bar set _autoscroll($bar) 1 set _autoscroll(time:$bar) [clock clicks -milli] } } else { if {[clock clicks -milli] > [expr {$_autoscroll(time:$bar) + 100}]} { grid remove $bar set _autoscroll($bar) 0 } } # update idletasks } eval $bar set $args } proc _autoscrollMap {frame} { # wm geometry [winfo toplevel $frame] [wm geometry [winfo toplevel $frame]] } # busyCursor, unbusyCursor: # Sets all cursors to watch (indicating busy) or back to their normal # setting again. array set scid_busycursor {} set scid_busycursorState 0 proc doBusyCursor {w flag} { global scid_busycursor if {! [winfo exists $w]} { return } # The comment editor window "flashes" when its cursor is changed, # no idea why but skip over it: if {$w == ".commentWin"} { return } if {[winfo class $w] == "Menu"} { return } if {$flag} { if { [ catch { set scid_busycursor($w) [$w cget -cursor] } ] } { return } catch {$w configure -cursor watch} } else { catch {$w configure -cursor $scid_busycursor($w)} err } foreach i [winfo children $w] { doBusyCursor $i $flag } } proc busyCursor {w {flag 1}} { global scid_busycursor scid_busycursorState if {$scid_busycursorState == $flag} { return } set scid_busycursorState $flag doBusyCursor $w $flag } proc unbusyCursor {w} {busyCursor $w 0} # addHorizontalRule, addVerticalRule # Add a horizontal/vertical rule frame to a window. # The optional parameters [x/y]padding and sunken allow the spacing and # appearance of the rule to be specified. # set horizRuleCounter 0 set vertRuleCounter 0 proc addHorizontalRule {w {ypadding 5} {relief sunken} {height 2} } { global horizRuleCounter ttk::separator $w.line$horizRuleCounter -orient horizontal pack $w.line$horizRuleCounter -fill x ;# -pady $ypadding # set f [ ttk::frame $w.line$horizRuleCounter -height $height -borderwidth 2 -relief $relief ] # pack $f -fill x -pady $ypadding incr horizRuleCounter } proc addVerticalRule {w {xpadding 5} {relief sunken}} { global vertRuleCounter ttk::separator $w.line$vertRuleCounter -orient vertical pack $w.line$vertRuleCounter -fill y -side left ;# -padx $xpadding # set f [ ttk::frame $w.line$vertRuleCounter -width 2 -borderwidth 2 -relief $relief ] # pack $f -fill y -padx $xpadding -side left incr vertRuleCounter } # progressWindow: # Creates a window with a label, progress bar, and (if specified), # a cancel button and cancellation command. # proc progressWindow {args} { set w .progressWin if {[winfo exists $w]} { return } toplevel $w pack [ttk::frame $w.f] -expand 1 wm withdraw $w wm resizable $w 0 0 if {[llength $args] == 2} { set title [lindex $args 0] set text [lindex $args 1] set b 0 } elseif {[llength $args] == 4} { set title [lindex $args 0] set text [lindex $args 1] set button [lindex $args 2] set command [lindex $args 3] set b 1 } else { return } wm title $w $title ttk::label $w.f.t -text $text pack $w.f.t -side top -expand 1 -fill both canvas $w.f.c -width 400 -height 20 -bg white -relief solid -border 1 $w.f.c create rectangle 0 0 0 0 -fill blue -outline blue -tags bar $w.f.c create text 395 10 -anchor e -font font_Regular -tags time -fill black -text "0:00 / 0:00" pack $w.f.c -side top -pady 10 if {$b} { pack [ttk::frame $w.f.b] -side bottom -fill x ttk::button $w.f.b.cancel -text $button -command $command pack $w.f.b.cancel -side right -padx 5 -pady 2 } # Set up geometry for middle of screen: set x [winfo screenwidth $w] set x [expr {$x - 400} ] set x [expr {$x / 2} ] set y [winfo screenheight $w] set y [expr {$y - 20} ] set y [expr {$y / 2} ] wm geometry $w +$x+$y sc_progressBar $w.f.c bar 401 21 time update idletasks wm deiconify $w raiseWin $w if {$b} { catch { grab $w.f.b.cancel } } else { grab $w } bind $w "raiseWin $w" set ::progressWin_time [clock seconds] } proc leftJustifyProgressWindow {} { set w .progressWin if {! [winfo exists $w]} { return } pack configure $w.f.t -fill x $w.f.t configure -width 1 -anchor w } proc changeProgressWindow {newtext} { set w .progressWin if {[winfo exists $w]} { $w.f.t configure -text $newtext update idletasks } } proc resetProgressWindow {} { set w .progressWin set ::progressWin_time [clock seconds] if {[winfo exists $w]} { $w.f.c coords bar 0 0 0 0 $w.f.c itemconfigure time -text "0:00 / 0:00" update idletasks } } proc updateProgressWindow {done total} { set w .progressWin if {! [winfo exists $w]} { return } set elapsed [expr {[clock seconds] - $::progressWin_time}] set width 401 if {$total > 0} { set width [expr {int(double($width) * double($done) / double($total))}] } $w.f.c coords bar 0 0 $width 21 set estimated $elapsed if {$done != 0} { set estimated [expr {int(double($elapsed) * double($total) / double($done))}] } set t [format "%d:%02d / %d:%02d" \ [expr {$elapsed / 60}] [expr {$elapsed % 60}] \ [expr {$estimated / 60}] [expr {$estimated % 60}]] $w.f.c itemconfigure time -text $t update } proc closeProgressWindow {} { set w .progressWin if {! [winfo exists $w]} { # puts stderr "Hmm, no progress window -- bug?" return } grab release $w destroy $w } ################################################################################ # clock widget ################################################################################ namespace eval gameclock { array set data {} ################################################################################ proc new { parent n { size 100 } {showfall 0} } { global ::gameclock::data set data(showfallen$n) $showfall set data(id$n) $parent.clock$n canvas $data(id$n) -height $size -width $size pack $data(id$n) -side top -anchor center for {set i 1} {$i<13} {incr i} { set a [expr {$i/6.*acos(-1)}] set x [expr { ($size/2 + (($size-15)/2)*sin($a) ) }] set y [expr { ($size/2 - (($size-15)/2)*cos($a) ) }] $data(id$n) create text $x $y -text $i -tag clock$n } set data(fg$n) "black" set data(running$n) 0 set data(digital$n) 1 ::gameclock::reset $n ::gameclock::draw $n bind $data(id$n) "::gameclock::toggleClock $n" } ################################################################################ proc draw { n } { global ::gameclock::data if {! [winfo exists $data(id$n)]} { return } $data(id$n) delete aig$n set w [$data(id$n) cget -width ] set h [$data(id$n) cget -height ] set cx [ expr $w / 2 ] set cy [ expr $h / 2 ] if {$w < $h} { set size [ expr $w - 15 ] } else { set size [ expr $h - 15 ] } set sec $data(counter$n) if { $sec > 0 && $data(showfallen$n) } { set color "red" } else { set color $::gameclock::data(fg$n) } if {$color == "white"} {set fg "black"} else {set fg "white"} foreach divisor {30 1800 21600} length "[expr $size/2 * 0.8] [expr $size/2 * 0.7] [expr $size/2 * 0.4]" \ width {1 2 3} { set angle [expr {$sec * acos(-1) / $divisor}] set x [expr {$cx + $length * sin($angle)}] set y [expr {$cy - $length * cos($angle)}] $data(id$n) create line $cx $cy $x $y -width $width -tags aig$n -fill $color } # draw a digital clock if {$data(digital$n)} { set m [format "%02d" [expr abs($sec) / 60] ] set s [format "%02d" [expr abs($sec) % 60] ] $data(id$n) create text $cx [expr $cy + $size/4 ] -text "$m:$s" -anchor center -fill $color -tag aig$n } } ################################################################################ proc every {ms body n} { incr ::gameclock::data(counter$n) eval $body if {[winfo exists $::gameclock::data(id$n)]} { after $ms [info level 0] } } ################################################################################ proc getSec { n } { return [expr 0 - $::gameclock::data(counter$n)] } ################################################################################ proc setSec { n value } { set ::gameclock::data(counter$n) $value ::gameclock::draw $n } ################################################################################ proc add { n value } { set ::gameclock::data(counter$n) [ expr $::gameclock::data(counter$n) - $value ] ::gameclock::draw $n } ################################################################################ proc reset { n } { ::gameclock::stop $n set ::gameclock::data(counter$n) 0 } ################################################################################ proc start { n } { if {$::gameclock::data(running$n)} { return } set ::gameclock::data(running$n) 1 ::gameclock::every 1000 "draw $n" $n } ################################################################################ proc stop { n } { if {! $::gameclock::data(running$n)} { return } set ::gameclock::data(running$n) 0 after cancel "::gameclock::every 1000 \{draw $n\} $n" } ################################################################################ proc toggleClock { n } { if { $::gameclock::data(running$n) } { stop $n } else { start $n } } ################################################################################ proc setColor { n color } { if {$color == "white"} { set fg "black" set bg "white" } else { set fg "white" set bg "black" } set ::gameclock::data(fg$n) $fg $::gameclock::data(id$n) configure -background $bg $::gameclock::data(id$n) itemconfigure clock$n -fill $fg $::gameclock::data(id$n) itemconfigure aig$n -fill $fg } } ################################################################################ # html generation ################################################################################ namespace eval html { set data {} set idx 0 ################################################################################ proc exportCurrentFilter {} { # Check that we have some games to export: if {![sc_base inUse]} { tk_messageBox -title "Scid: Empty database" -type ok -icon info \ -message "This is an empty database, there are no games to export." return } if {[sc_filter count] == 0} { tk_messageBox -title "Scid: Filter empty" -type ok -icon info \ -message "The filter contains no games." return } set ftype { { "HTML files" {".html" ".htm"} } { "All files" {"*"} } } set idir $::initialDir(html) set fName [tk_getSaveFile -initialdir $idir -filetypes $ftype -defaultextension ".html" -title "Create an HTML file"] if {$fName == ""} { return } if {[file extension $fName] != ".html" } { append fName ".html" } set prefix [file rootname [file tail $fName] ] set dirtarget [file dirname $fName] set sourcedir [file join $::scidExeDir html] catch {file copy -force [file join $sourcedir bitmaps] $dirtarget} catch {file copy -force [file join $sourcedir scid.js] $dirtarget} catch {file copy -force [file join $sourcedir scid.css] $dirtarget} # writeIndex "[file join $dirtarget $prefix].html" $prefix progressWindow "Scid" "Exporting games..." $::tr(Cancel) "sc_progressBar" busyCursor . set savedGameNum [sc_game number] set gn [sc_filter first] set players {} set ::html::cancelHTML 0 set total [sc_filter count] # build the list of matches set idx 1 while {$gn != 0 && ! $::html::cancelHTML} { updateProgressWindow $idx $total sc_game load $gn set pl "[sc_game tags get White] - [sc_game tags get Black]" lappend players $pl set gn [sc_filter next] incr idx } set idx 1 set gn [sc_filter first] while {$gn != 0 && ! $::html::cancelHTML} { updateProgressWindow $idx $total sc_game load $gn fillData set pl "[sc_game tags get White] - [sc_game tags get Black]" toHtml $::html::data $idx $dirtarget $prefix $players $pl [sc_game tags get "Event"] [sc_game tags get "ECO"] [sc_game info result] [sc_game tags get "Date"] set gn [sc_filter next] incr idx } closeProgressWindow unbusyCursor . exportPGN "[file join $dirtarget $prefix].pgn" "filter" sc_game load $savedGameNum } ################################################################################ proc sc_progressBar {} { set ::html::cancelHTML 1 } ################################################################################ proc exportCurrentGame {} { set ftype { { "HTML files" {".html" ".htm"} } { "All files" {"*"} } } set idir $::initialDir(html) set fName [tk_getSaveFile -initialdir $idir -filetypes $ftype -defaultextension ".html" -title "Create an HTML file"] if {[file extension $fName] != ".html" && [file extension $fName] != ".htm" } { append fName ".html" } if {$fName == ""} { return } set prefix [file rootname [file tail $fName] ] set dirtarget [file dirname $fName] set sourcedir [file join $::scidExeDir html] catch { file copy -force [file join $sourcedir bitmaps] $dirtarget } catch { file copy -force [file join $sourcedir scid.js] $dirtarget } catch { file copy -force [file join $sourcedir scid.css] $dirtarget } fillData set players [list "[sc_game tags get White] - [sc_game tags get Black]"] toHtml $::html::data -1 $dirtarget $prefix $players [lindex $players 0] \ [sc_game tags get "Event"] [sc_game tags get "ECO"] \ [sc_game info result] [sc_game tags get "Date"] exportPGN "[file join $dirtarget $prefix].pgn" "current" } ################################################################################ # Dictionary mapping from special characters to their entities. (from tcllib) variable entities { \xa0   \xa1 ¡ \xa2 ¢ \xa3 £ \xa4 ¤ \xa5 ¥ \xa6 ¦ \xa7 § \xa8 ¨ \xa9 © \xaa ª \xab « \xac ¬ \xad ­ \xae ® \xaf ¯ \xb0 ° \xb1 ± \xb2 ² \xb3 ³ \xb4 ´ \xb5 µ \xb6 ¶ \xb7 · \xb8 ¸ \xb9 ¹ \xba º \xbb » \xbc ¼ \xbd ½ \xbe ¾ \xbf ¿ \xc0 À \xc1 Á \xc2  \xc3 à \xc4 Ä \xc5 Å \xc6 Æ \xc7 Ç \xc8 È \xc9 É \xca Ê \xcb Ë \xcc Ì \xcd Í \xce Î \xcf Ï \xd0 Ð \xd1 Ñ \xd2 Ò \xd3 Ó \xd4 Ô \xd5 Õ \xd6 Ö \xd7 × \xd8 Ø \xd9 Ù \xda Ú \xdb Û \xdc Ü \xdd Ý \xde Þ \xdf ß \xe0 à \xe1 á \xe2 â \xe3 ã \xe4 ä \xe5 å \xe6 æ \xe7 ç \xe8 è \xe9 é \xea ê \xeb ë \xec ì \xed í \xee î \xef ï \xf0 ð \xf1 ñ \xf2 ò \xf3 ó \xf4 ô \xf5 õ \xf6 ö \xf7 ÷ \xf8 ø \xf9 ù \xfa ú \xfb û \xfc ü \xfd ý \xfe þ \xff ÿ \u192 ƒ \u391 Α \u392 Β \u393 Γ \u394 Δ \u395 Ε \u396 Ζ \u397 Η \u398 Θ \u399 Ι \u39A Κ \u39B Λ \u39C Μ \u39D Ν \u39E Ξ \u39F Ο \u3A0 Π \u3A1 Ρ \u3A3 Σ \u3A4 Τ \u3A5 Υ \u3A6 Φ \u3A7 Χ \u3A8 Ψ \u3A9 Ω \u3B1 α \u3B2 β \u3B3 γ \u3B4 δ \u3B5 ε \u3B6 ζ \u3B7 η \u3B8 θ \u3B9 ι \u3BA κ \u3BB λ \u3BC μ \u3BD ν \u3BE ξ \u3BF ο \u3C0 π \u3C1 ρ \u3C2 ς \u3C3 σ \u3C4 τ \u3C5 υ \u3C6 φ \u3C7 χ \u3C8 ψ \u3C9 ω \u3D1 ϑ \u3D2 ϒ \u3D6 ϖ \u2022 • \u2026 … \u2032 ′ \u2033 ″ \u203E ‾ \u2044 ⁄ \u2118 ℘ \u2111 ℑ \u211C ℜ \u2122 ™ \u2135 ℵ \u2190 ← \u2191 ↑ \u2192 → \u2193 ↓ \u2194 ↔ \u21B5 ↵ \u21D0 ⇐ \u21D1 ⇑ \u21D2 ⇒ \u21D3 ⇓ \u21D4 ⇔ \u2200 ∀ \u2202 ∂ \u2203 ∃ \u2205 ∅ \u2207 ∇ \u2208 ∈ \u2209 ∉ \u220B ∋ \u220F ∏ \u2211 ∑ \u2212 − \u2217 ∗ \u221A √ \u221D ∝ \u221E ∞ \u2220 ∠ \u2227 ∧ \u2228 ∨ \u2229 ∩ \u222A ∪ \u222B ∫ \u2234 ∴ \u223C ∼ \u2245 ≅ \u2248 ≈ \u2260 ≠ \u2261 ≡ \u2264 ≤ \u2265 ≥ \u2282 ⊂ \u2283 ⊃ \u2284 ⊄ \u2286 ⊆ \u2287 ⊇ \u2295 ⊕ \u2297 ⊗ \u22A5 ⊥ \u22C5 ⋅ \u2308 ⌈ \u2309 ⌉ \u230A ⌊ \u230B ⌋ \u2329 ⟨ \u232A ⟩ \u25CA ◊ \u2660 ♠ \u2663 ♣ \u2665 ♥ \u2666 ♦ \x22 " \x26 & \x3C < \x3E > \u152 Œ \u153 œ \u160 Š \u161 š \u178 Ÿ \u2C6 ˆ \u2DC ˜ \u2002   \u2003   \u2009   \u200C ‌ \u200D ‍ \u200E ‎ \u200F ‏ \u2013 – \u2014 — \u2018 ‘ \u2019 ’ \u201A ‚ \u201C “ \u201D ” \u201E „ \u2020 † \u2021 ‡ \u2030 ‰ \u2039 ‹ \u203A › \u20AC € } proc html_entities {s} { variable entities return [string map $entities $s] } ################################################################################ proc toHtml { dt game dirtarget prefix {players ""} {this_players ""} {event ""} {eco "ECO"} {result "*"} {date ""} } { if { $game != -1 } { set f [open "[file join $dirtarget $prefix]_${game}.html" w] } else { set f [open "[file join $dirtarget $prefix].html" w] } # header puts $f "" puts $f "" puts $f "" puts $f "" puts $f "" puts $f "" puts $f "" puts $f "Scid" puts $f "" puts $f "" puts $f "" puts $f "

    " puts $f "
    " puts $f "
    " puts $f "
    " # game header puts $f " [html_entities $this_players]" puts $f "
    [html_entities $event]
    " puts $f "
    \[$date\]
    " puts $f "
    \[$eco\]
    " puts $f "

    " # link moves set prevdepth 0 set prevvarnumber 0 for {set i 0} {$i<[llength $dt]} {incr i} { array set elt [lindex $dt $i] if {$elt(depth) == 0} { set class "V0" } elseif {$elt(depth) == 1} { set class "V1" } else { set class "V2" } if { $prevdepth == $elt(depth) && $prevvarnumber != $elt(var) } { puts $f "\]

    " puts $f "
    \[" } else { while { $prevdepth > $elt(depth) } { puts $f "\]
    " set prevdepth [expr $prevdepth - 1] } while { $prevdepth < $elt(depth) } { puts $f "
    \[" set prevdepth [expr $prevdepth + 1] } } set prevvarnumber $elt(var) # id = "mv1" not "id=1" now set nag [html_entities $elt(nag)] set comment [html_entities $elt(comment)] puts $f "$elt(move)$nag" if {$elt(diag)} { insertMiniDiag $elt(fen) $f } if {$comment != ""} { puts $f "$comment" } } while { $prevdepth > 0 } { puts $f "\]
    " set prevdepth [expr $prevdepth - 1] } puts $f "
    $result" puts $f "

    " puts $f "Created with Scid" puts $f "

    " puts $f "
    " puts $f "" puts $f "" puts $f "" close $f } ################################################################################ proc colorSq {sq} { if { [expr $sq % 2] == 1 && [expr int($sq / 8) %2 ] == 0 || [expr $sq % 2] == 0 && [expr int($sq / 8) %2 ] == 1 } { return "bs" } else { return "ws" } } ################################################################################ proc piece2gif {piece} { if {$piece == "K"} { return "wk" } if {$piece == "k"} { return "bk" } if {$piece == "Q"} { return "wq" } if {$piece == "q"} { return "bq" } if {$piece == "R"} { return "wr" } if {$piece == "r"} { return "br" } if {$piece == "B"} { return "wb" } if {$piece == "b"} { return "bb" } if {$piece == "N"} { return "wn" } if {$piece == "n"} { return "bn" } if {$piece == "P"} { return "wp" } if {$piece == "p"} { return "bp" } if {$piece == " "} { return "sq" } } ################################################################################ proc insertMiniDiag {fen f} { set square 0 set space " " puts $f "" for {set i 0} {$i < [string length $fen]} {incr i} { set l [string range $fen $i $i ] set res [scan $l "%d" c] if {$res == 1} { if { $c >= 1 && $c <= 8 } { for { set j 0} {$j < $c} {incr j} { puts $f "" incr square } } } elseif {$l == "/"} { puts $f "" } else { puts $f "" incr square } } puts $f "
    " } ################################################################################ # fill data with { idx FEN prev next move nag comment depth } proc fillData {} { sc_info preMoveCmd {} set ::html::data {} set ::html::idx -1 sc_move start parseGame sc_info preMoveCmd preMoveCommand } ################################################################################ proc parseGame { {prev -2} } { global ::html::data ::html::idx set already_written 0 set dots 0 while {1} { if { ! $already_written } { recordElt $dots $prev set dots 0 set prev -2 } else { set dots 1 } set already_written 0 # handle variants if {[sc_var count]>0} { # First write the move in the current line for which variations exist # if { ![sc_pos isAt vend]} { sc_move forward recordElt $dots $prev sc_move back set lastIdx $idx set already_written 1 } for {set v 0} {$v<[sc_var count]} {incr v} { sc_var enter $v # in order to get the comment before first move sc_move back parseGame -1 sc_var exit } #update the "next" token array set elt [lindex $data $lastIdx] set elt(next) [expr $idx + 1] lset data $lastIdx [array get elt] #update the "previous" token set prev $lastIdx } if {[sc_pos isAt vend]} { break } sc_move forward } } ################################################################################ proc recordElt { dots {prev -2} } { global ::html::data ::html::idx array set elt {} incr idx set elt(idx) $idx set elt(fen) [lindex [split [sc_pos fen]] 0] if {$prev != -2} { set elt(prev) $prev } else { set elt(prev) [expr $idx-1] } set nag [sc_pos getNags] if {$nag == "0"} { set nag "" } if {[string match "*D *" $nag] || [string match "*# *" $nag]} { set elt(diag) 1 } else { set elt(diag) 0 } set nag [regsub -all "D " $nag "" ] set nag [regsub -all "# " $nag "" ] set elt(nag) $nag set comment [sc_pos getComment] set comment [regsub -all "\[\x5B\]%draw (.)+\[\x5D\]" $comment ""] set elt(comment) $comment set elt(depth) [sc_var level] set elt(var) [sc_var number] if {![sc_pos isAt vend]} { set elt(next) [expr $idx +1 ] } else { set elt(next) -1 } set m [sc_game info previousMove] set mn [sc_pos moveNumber] set elt(move) "" if {[sc_pos side] == "black" && $m != ""} { set elt(move) "$mn.$m" } else { if {! [sc_pos isAt vstart] } { sc_move back set pnag [sc_pos getNags] if {$pnag == "0"} { set pnag "" } if {[string match "*D *" $pnag] || [string match "*# *" $pnag]} { set pdiag 1 } else { set pdiag 0 } if { [sc_pos isAt vstart] || [sc_pos getComment] != "" || $pdiag > 0 } { set dots 1 } sc_move forward } if {$dots && $m != ""} { set elt(move) "[expr $mn -1]. ... $m" } else { set elt(move) $m } } lappend ::html::data [array get elt] } ################################################################################ # proc writeIndex {fn prefix} { # set f [open $fn w] # puts $f "" # puts $f "" # puts $f "" # puts $f "" # puts $f "Scid" # puts $f "" # puts $f "" # puts $f "" # puts $f "" # puts $f "" # puts $f "" # puts $f "" # puts $f "" # puts $f "" # puts $f "" # close $f # } ################################################################################ proc exportPGN { fName selection } { if {$selection == "filter"} { progressWindow "Scid" "Exporting games..." $::tr(Cancel) "sc_progressBar" } busyCursor . sc_base export $selection "PGN" $fName -append 0 -starttext "" -endtext "" -comments 1 -variations 1 \ -space 1 -symbols 1 -indentC 0 -indentV 0 -column 0 -noMarkCodes 1 -convertNullMoves 1 unbusyCursor . if {$selection == "filter"} { closeProgressWindow } } } ################################################################################ # ################################################################################ # end of misc.tcl scid-4.3.0.cvs20120311/tcl/language.tcl0000644000175000017500000002021411727223077016506 0ustar oliveroliver### lang.tcl: Support for multiple-language menus, buttons, etc. ### Part of Scid, which is Copyright 2001-2003 Shane Hudson. array set langEncoding {} set languages {} if {[catch {encoding names}]} { set hasEncoding 0 } else { set hasEncoding 1 } ################################################################################ # Translation of pieces # Note to adopt also tkscid.cpp to allow for a new langauge as well # as add transPieces to langPieces[] in game.cpp ################################################################################ array set transPieces {} set transPieces(F) { P P K R Q D R T B F N C } set untransPieces(F) { P P R K D Q T R F B C N } set transPieces(S) { P P K R Q D R T B A N C } set untransPieces(S) { P P R K D Q T R A B C N } set transPieces(D) { P B K K Q D R T B L N S } set untransPieces(D) { B P K K D Q T R L B S N } set transPieces(I) { P P K R Q D R T B A N C } set untransPieces(I) { P P R K D Q T R A B C N } set transPieces(N) { P p K K Q D R T B L N P } set untransPieces(N) { p P K K D Q T R L B P N } set transPieces(C) { P P K K Q D R V B S N J } set untransPieces(C) { P P K K D Q V R S B J N } ## TODO Put in the right letters for greek set transPieces(G) { P B K K Q D R T B L N S } set untransPieces(G) { B P K K D Q T R L B S N } set transPieces(H) { P G K K Q V R B B F N H } set untransPieces(H) { G P K K V Q B R F B H N } set transPieces(O) { P B K K Q D R T B L N S } set untransPieces(O) { B P K K D Q T R L B S N } set transPieces(W) { P B K K Q D R T B L N S } set untransPieces(W) { B P K K D Q T R L B S N } set transPieces(K) { P P K R Q D R T B A N C } set untransPieces(K) { P P R K D Q T R A B C N } set transPieces(U) { P S K K Q D R T B L N R } set untransPieces(U) { S P K K D Q T R L B R N } ################################################################################ proc trans { msg } { if { $::language == "E" || ! $::translatePieces || $msg == "\[end\]"} { return $msg } if { [ catch { set t [string map $::transPieces($::language) $msg ]} ] } { return $msg } return $t } ################################################################################ proc untrans { msg } { if { $::language == "E" || ! $::translatePieces || $msg == "\[end\]"} { return $msg } if { [ catch { set t [string map $::untransPieces($::language) $msg ]} ] } { return $msg } return $t } ################################################################################ # ################################################################################ proc addLanguage {letter name underline {encodingSystem ""}} { global langEncoding languages .menu.options.language add radiobutton -label $name \ -underline $underline -variable language -value $letter \ -command setLanguage set ::langEncoding($letter) $encodingSystem lappend languages $letter } ################################################################################ # menuText: # Assigns the menu name and help message for a menu entry and language. ################################################################################ proc menuText {lang tag label underline {helpMsg ""}} { global hasEncoding langEncoding if {$hasEncoding && $langEncoding($lang) != "" && $::tcl_version <= 8.3} { catch {set label [encoding convertfrom $langEncoding($lang) $label]} catch {set helpMsg [encoding convertfrom $langEncoding($lang) $helpMsg]} } set ::menuLabel($lang,$tag) $label set ::menuUnder($lang,$tag) $underline if {$helpMsg != ""} { set ::helpMessage($lang,$tag) $helpMsg } } ################################################################################ # helpMsg: # Assigns the help message for a particular language for a button. # ################################################################################ proc helpMsg {lang button message} { global hasEncoding langEncoding if {$hasEncoding && $langEncoding($lang) != "" && $::tcl_version <= 8.3} { catch {set message [encoding convertfrom $langEncoding($lang) $message]} } set ::helpMessage($lang,$button) $message } array set tr {} array set translations {} ################################################################################ # translate: # Assigns a translation for future reference. ################################################################################ proc translate {lang tag label} { global menuLabel hasEncoding langEncoding regsub {\\n} $label "\n" label if {$hasEncoding && $langEncoding($lang) != "" && $::tcl_version <= 8.3} { catch {set label [encoding convertfrom $langEncoding($lang) $label]} } set ::translations($lang,$tag) $label set ::tr($tag) $label foreach extra {":" "..."} { set newtag "${tag}${extra}" set newlabel "${label}${extra}" set ::translations($lang,$newtag) $newlabel set ::tr($newtag) $newlabel } } ################################################################################ # translateECO: # Given a pair list of ECO opening name phrase translations, # assigns the translations for future reference. ################################################################################ proc translateECO {lang pairList} { global hasEncoding langEncoding foreach {from to} $pairList { if {$hasEncoding && $langEncoding($lang) != "" && $::tcl_version <= 8.3} { catch {set to [encoding convertfrom $langEncoding($lang) $to]} } sc_eco translate $lang $from $to } } ################################################################################ # tr: # Given a tag and language, returns the stored text for that tag. ################################################################################ proc tr {tag {lang ""}} { global menuLabel tr if {$lang == ""} {set lang $::language} if {$lang == "X"} {return $tag} # First, look for a menu label if {[info exists menuLabel($lang,$tag)]} { return $menuLabel($lang,$tag) } if {[info exists menuLabel(E,$tag)]} { return $menuLabel(E,$tag) } # Now look for a regular button/message translation if {[info exists tr($tag)]} { return $tr($tag) } # Finally, just give up and return the original tag return $tag } ################################################################################ # ################################################################################ proc setLanguage {{lang ""}} { global menuLabel menuUnder oldLang hasEncoding langEncoding if {$lang == ""} {set lang $::language} if { $::translatePieces } { switch $lang { C {sc_info language cz} D {sc_info language de} F {sc_info language fr} G {sc_info language gr} H {sc_info language hu} I {sc_info language it} K {sc_info language ca} N {sc_info language ne} O {sc_info language no} S {sc_info language es} U {sc_info language fi} W {sc_info language sw} default {sc_info language en} } } else { sc_info language en } if {[catch {setLanguage_$lang} err]} { puts "Error: $err" } # TODO: Check this: if {$hasEncoding && $langEncoding($lang) != ""} { # encoding system $langEncoding($lang) } # If using Tk, translate all menus: if {! [catch {winfo exists .}]} { setLanguageMenus $lang } foreach i [array names ::tr] { if {[info exists ::translations($lang,$i)]} { set ::tr($i) $::translations($lang,$i) } elseif {[info exists ::translations(E,$i)]} { set ::tr($i) $::translations(E,$i) } } set oldLang $lang } ################################################################################ # Will switch language only for Scid backoffice, no UI # Used to make callbacks use english by default ################################################################################ proc setLanguageTemp { lang } { switch $lang { C {sc_info language cz} D {sc_info language de} F {sc_info language fr} G {sc_info language gr} H {sc_info language hu} I {sc_info language it} K {sc_info language ca} N {sc_info language ne} O {sc_info language no} S {sc_info language es} U {sc_info language fi} W {sc_info language sw} default {sc_info language en} } } ### End of file: lang.tcl scid-4.3.0.cvs20120311/tcl/edit.tcl0000644000175000017500000003566411727223077015667 0ustar oliveroliverproc fenErrorDialog {{msg {}}} { if {[winfo exists .setup]} { tk_messageBox -icon info -type ok -title "Scid: Invalid FEN" -message $msg -parent .setup } else { tk_messageBox -icon info -type ok -title "Scid: Invalid FEN" -message $msg } } # copyFEN # # Copies the FEN of the current position to the text clipboard. # proc copyFEN {} { set fen [sc_pos fen] # Create a text widget to hold the fen so it can be the owner # of the current text selection: set w .tempFEN if {! [winfo exists $w]} { text $w } $w delete 1.0 end $w insert end $fen sel clipboard clear clipboard append $fen selection own $w selection get } # pasteFEN # # Bypasses the board setup window and tries to paste the current # text selection as the setup position, producing a message box # if the selection does not appear to be a valid FEN string. # proc pasteFEN {} { set fenStr "" if {[catch {set fenStr [selection get -selection CLIPBOARD]} ]} { catch {set fenStr [selection get -selection PRIMARY]} } set fenStr [string trim $fenStr] set fenExplanation {FEN is the standard text representation of a chess position. As an example, the FEN representation of the standard starting position is: "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"} if {$fenStr == ""} { set msg "The current text selection is empty. To paste the start board, select some text that contains a position in FEN notation.\n\n$fenExplanation" fenErrorDialog $msg return } if {[catch {sc_game startBoard $fenStr}]} { if {[string length $fenStr] > 80} { set fenStr [string range $fenStr 0 80] append fenStr "..." } set msg "\"$fenStr\" is not a valid chess position in FEN notation.\n\n $fenExplanation" fenErrorDialog $msg return } updateBoard -pgn } proc setSetupBoardToFen {w setupFen} { # Called from ".setup.status" FEN combo S.A # Once the FEN combo box in the Setup board widget is accessed, the original # game poisiotn can still be had, but game history is lost global setupboardSize setupBd if {[catch {sc_game startBoard $setupFen} err]} { fenErrorDialog $err } else { # ::utils::history::AddEntry setupFen $setupFen set setupBd [sc_pos board] setBoard .setup.l.bd $setupBd $setupboardSize } } ############################################################ ### Board setup window: set setupBd {} set setupFen {} # makeSetupFen: # Reconstructs the FEN string from the current settings in the # setupBoard dialog. Check to see if the position is # acceptable (a position can be unacceptable by not having exactly # one King per side, or by having more than 16 pieces per side). # proc makeSetupFen {} { global setupFen setupBd moveNum toMove castling epFile set fenStr "" set errorStr [validateSetup] if {$errorStr != ""} { set fenStr "Invalid board: " append fenStr $errorStr return $fenStr } for {set bRow 56} {$bRow >= 0} {incr bRow -8} { if {$bRow < 56} { append fenStr "/" } set emptyRun 0 for {set bCol 0} {$bCol < 8} {incr bCol} { set sq [expr {$bRow + $bCol} ] set piece [string index $setupBd $sq] if {$piece == "."} { incr emptyRun } else { if {$emptyRun > 0} { append fenStr $emptyRun set emptyRun 0 } append fenStr $piece } } if {$emptyRun > 0} { append fenStr $emptyRun } } append fenStr " " [string tolower [string index $toMove 0]] " " if {$castling == ""} { append fenStr "- " } else { append fenStr $castling " " } if {$epFile == "" || $epFile == "-"} { append fenStr "-" } else { append fenStr $epFile if {$toMove == "White"} { append fenStr "6" } else { append fenStr "3" } } # We assume a halfmove clock of zero: append fenStr " 0 " $moveNum set setupFen $fenStr return $fenStr } # validateSetup: # Called by makeSetupFen to check that the board is sensible: that is, # that there is one king per side and there are at most 16 pieces per # side. # proc validateSetup {} { global setupBd set wkCount 0; set bkCount 0; set wCount 0; set bCount 0 set wpCount 0; set bpCount 0 for {set i 0} {$i < 64} {incr i} { set p [string index $setupBd $i] if {$p == "."} { } elseif {$p == "P"} { incr wCount; incr wpCount } elseif {$p == "p"} { incr bCount; incr bpCount } elseif {$p == "N" || $p == "B" || $p == "R" || $p == "Q"} { incr wCount } elseif {$p == "n" || $p == "b" || $p == "r" || $p == "q"} { incr bCount } elseif {$p == "K"} { incr wCount; incr wkCount } elseif {$p == "k"} { incr bCount; incr bkCount } else { return "Invalid piece: $p" } } if {$wkCount != 1} { return "There must be one white king" } elseif {$bkCount != 1} { return "There must be one black king" } elseif {$wCount > 16} { return "Too many white pieces" } elseif {$bCount > 16} { return "Too many black pieces" } elseif {$wpCount > 8} { return "Too many white pawns" } elseif {$bpCount > 8} { return "Too many black pawns" } return "" } # setupBoardPiece: # Called by setupBoard to set or clear a square when it is clicked on. # Sets that square to containing the active piece (stored in pastePiece) # unless it already contains that piece, in which case the square is # cleared to be empty. # proc setupBoardPiece { square } { global setupBd pastePiece setupboardSize setupFen set oldState $setupBd set setupBd {} set piece $pastePiece if {[string index $oldState $square] == $pastePiece} { set piece "." } if {$piece == "P" || $piece == "p"} { if {$square < 8 || $square >= 56} { set setupBd $oldState unset oldState return } } append setupBd \ [string range $oldState 0 [expr {$square - 1} ]] \ $piece \ [string range $oldState [expr {$square + 1} ] 63] unset oldState setBoard .setup.l.bd $setupBd $setupboardSize set setupFen [makeSetupFen] } # switchPastePiece: # Changes the active piece selection in the board setup dialog to the # next or previous piece in order. # proc switchPastePiece { switchType } { global pastePiece array set nextPiece { K Q Q R R B B N N P P k k q q r r b b n n p p K} array set prevPiece { K p Q K R Q B R N B P N k P q k r q b r n b p n} if {$switchType == "next"} { set pastePiece $nextPiece($pastePiece) } else { set pastePiece $prevPiece($pastePiece) } } proc exitSetupBoard {} { # called when "OK" button hit global setupFen # unbind cancel binding bind .setup {} if {[catch {sc_game startBoard $setupFen} err]} { fenErrorDialog $err bind .setup cancelSetupBoard # Ideally, "$err" should be more specific than "Invalid FEN", but # procedural flow is a little complicated S.A. } else { ::utils::history::AddEntry setupFen $setupFen destroy .setup updateBoard -pgn } } proc cancelSetupBoard {} { # When FEN strings are previewed, the gameboard state is changed, but *not* # drawn in the main window. This means that while the game state can be # restored in the event of user hitting "cancel", game history has been lost # This behaviour is necessary to enable FEN previewing. global origFen bind .setup {} # restore old gamestate if unchanged if {$origFen != "[sc_pos fen]"} { catch {sc_game startBoard $origFen} updateBoard -pgn } destroy .setup } # Global variables for entry of the start position: set epFile {} ;# legal values are empty, or "a"-"h". set moveNum 1 ;# legal values are 1-999. set setupStatus {} ;# stores the FEN string. set castling KQkq ;# will be empty or some combination of KQkq letters. set toMove White ;# side to move, "White" or "Black". set pastePiece K ;# Piece being pasted, "K", "k", "Q", "q", etc. # Traces to keep entry values sensible: trace variable moveNum w {::utils::validate::Integer 999 0} trace variable epFile w {::utils::validate::Regexp {^(-|[a-h])?$}} trace variable castling w {::utils::validate::Regexp {^(-|[KQkq]*)$}} # setupBoard: # The main procedure for creating the dialog for setting the start board. # Calls switchPastePiece and makeSetupFen. # On "Setup" button press, calls sc_pos startBoard to try to set the # starting board. # todo: perhaps ensure all engines have stopped before doing this S.A. proc setupBoard {} { global boardSizes boardSize setupboardSize lite dark setupBd pastePiece toMove epFile moveNum global origFen global setupStatus castling setupFen highcolor if {[winfo exists .setup]} { return } set setupBd [sc_pos board] set origFen [sc_pos fen] toplevel .setup wm title .setup "Scid: Setup Board" ### Status entrybox contains the current FEN string. ttk::frame .setup.statusbar pack .setup.statusbar -side bottom -expand yes -fill x ### The actual board is created here. Bindings: left mouse sets/clears ### a square, middle mouse selects previous piece, right mouse selects ### next piece. I should also set shortcut keys, e.g. "Q" for Queen. # todo: drag and drop of pieces would be nice :> ttk::frame .setup.l ttk::frame .setup.r ttk::frame .setup.l.bd set sl .setup.l set sr .setup.r set sbd .setup.l.bd pack $sl -side left -expand yes -fill y pack $sr -side right -expand yes -fill y # make the setup board a couple of sizes smaller set index [lsearch -exact $boardSizes $boardSize] # incr index 0 # incr index -2 incr index -3 if {$index < 0} { set index 0 } set setupboardSize [lindex $boardSizes $index] for {set i 0} {$i < 64} {incr i} { ttk::label $sbd.$i -image e$setupboardSize set rank [expr {7 - int ($i / 8)} ] set fyle [expr {$i % 8} ] grid $sbd.$i -row $rank -column $fyle -sticky nesw if {[expr {($fyle % 2) == ($rank % 2)} ]} { $sbd.$i configure -background $lite } else { $sbd.$i configure -background $dark } bind $sbd.$i "setupBoardPiece $i" bind $sbd.$i "switchPastePiece prev" bind $sbd.$i "switchPastePiece next" } pack $sbd -padx 10 -pady 10 -expand 1 pack [ttk::frame $sl.b] -side top -padx 8 -pady 8 ;# -expand yes -fill x # rearrange above two lines for different setup pack [ttk::frame $sl.w] -side bottom -padx 8 -pady 8 ;# -expand yes -fill x setBoard $sbd $setupBd $setupboardSize ### Piece Buttons # set pastePiece P # set toMove White foreach i {p n b r q k} { foreach color {w b} value "[string toupper $i] $i" { radiobutton $sl.$color.$i -image $color$i$setupboardSize -indicatoron 0 -variable pastePiece -value $value -activebackground $highcolor # ttk::radiobutton $sl.$color.$i -image $color$i$setupboardSize -variable pastePiece -value $value pack $sl.$color.$i -side left ;# -expand yes -fill x -padx 5 } } ### Side to move frame. ttk::frame $sr.tomove ttk::label $sr.tomove.label -textvar ::tr(SideToMove:) ttk::frame $sr.tomove.buttons ttk::radiobutton $sr.tomove.buttons.w -text $::tr(White) -variable toMove -value White \ -command {set setupFen [makeSetupFen]} ttk::radiobutton $sr.tomove.buttons.b -text $::tr(Black) -variable toMove -value Black \ -command {set setupFen [makeSetupFen]} pack $sr.tomove -pady 7 pack $sr.tomove.label -side top -pady 2 pack $sr.tomove.buttons -side top pack $sr.tomove.buttons.w $sr.tomove.buttons.b -side left ### Entry boxes: Move number, Castling and En Passant file. pack [ttk::frame $sr.mid] -padx 5 -pady 5 ttk::frame $sr.mid.movenum ttk::label $sr.mid.movenum.label -textvar ::tr(MoveNumber:) ttk::entry $sr.mid.movenum.e -width 3 -background white -textvariable moveNum pack $sr.mid.movenum -pady 10 -expand yes -fill x pack $sr.mid.movenum.label $sr.mid.movenum.e -side left -anchor w -expand yes -fill x ttk::frame $sr.mid.castle ttk::label $sr.mid.castle.label -textvar ::tr(Castling:) ttk::combobox $sr.mid.castle.e -width 5 -textvariable castling -values {KQkq K Q k q - KQ kq Kk Kq Kkq Qk Qq Qkq KQk KQq} pack $sr.mid.castle -pady 10 -expand yes -fill x pack $sr.mid.castle.label $sr.mid.castle.e -side left -anchor w -expand yes -fill x ttk::frame $sr.mid.ep ttk::label $sr.mid.ep.label -textvar ::tr(EnPassantFile:) ttk::combobox $sr.mid.ep.e -width 2 -textvariable epFile -values {- a b c d e f g h} set epFile {} pack $sr.mid.ep -pady 10 -expand yes -fill x pack $sr.mid.ep.label $sr.mid.ep.e -side left -anchor w -expand yes -fill x # Set bindings so the Fen string is updated at any change. The "after idle" # is needed to ensure any keypress which causes a text edit is processed # before we regenerate the FEN text. foreach i "$sr.mid.ep.e $sr.mid.castle.e $sr.mid.movenum.e" { bind $i {after idle {set setupFen [makeSetupFen]}} bind $i { after idle {set setupFen [makeSetupFen]}} } ### Buttons: Clear Board and Initial Board. ttk::frame $sr.b ttk::button $sr.b.clear -textvar ::tr(EmptyBoard) -command { set setupBd \ "................................................................" setBoard .setup.l.bd $setupBd $setupboardSize set castling {} set setupFen [makeSetupFen] } ttk::button $sr.b.initial -textvar ::tr(InitialBoard) -command { set setupBd \ "RNBQKBNRPPPPPPPP................................pppppppprnbqkbnr" setBoard .setup.l.bd $setupBd $setupboardSize set castling KQkq set setupFen [makeSetupFen] } pack $sr.b -side top -pady 15 pack $sr.b.clear -side top -padx 5 -pady 10 -fill x pack $sr.b.initial -side bottom -padx 5 -pady 10 -fill x ### Buttons: Setup and Cancel. ttk::frame $sr.b2 ttk::button $sr.b2.ok -text "OK" -width 7 -command exitSetupBoard ttk::button $sr.b2.cancel -textvar ::tr(Cancel) -width 7 -command cancelSetupBoard pack $sr.b2 -side bottom -pady 20 -anchor s pack $sr.b2.ok -side left -padx 5 pack $sr.b2.cancel -side right -padx 5 ttk::button .setup.paste -textvar ::tr(PasteFen) -command { if {[catch {set setupFen [selection get -selection CLIPBOARD]} ]} { catch {set setupFen [selection get -selection PRIMARY]} # PRIMARY is the X selection, unsure about CLIPBOARD } } ttk::button .setup.clear -textvar ::tr(ClearFen) -command {set setupFen ""} ttk::combobox .setup.status -textvariable setupFen -height 10 bind .setup.status <> setSetupBoardToFen ::utils::history::SetCombobox setupFen .setup.status ::utils::history::SetLimit setupFen 20 update ; # necessary in case of quick-draw user interactions pack .setup.paste .setup.clear -in .setup.statusbar -side left pack .setup.status -in .setup.statusbar -side right -expand yes -fill x -anchor w #bind .setup.status { %W configure -background lightYellow } #bind .setup.status { %W configure -background white } bind .setup cancelSetupBoard bind .setup cancelSetupBoard set setupFen [makeSetupFen] } scid-4.3.0.cvs20120311/tcl/game/0000755000175000017500000000000011727223077015131 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/game/browser.tcl0000644000175000017500000001347111727223077017326 0ustar oliveroliver #################### # Game Browser window namespace eval ::gbrowser {} proc ::gbrowser::new {base gnum {ply -1}} { if {! [info exists ::gbrowser::size] } { set ::gbrowser::size 65 } options.save ::gbrowser::size set n 0 while {[winfo exists .gb$n]} { incr n } set w .gb$n toplevel $w if {$base < 1} { set base [sc_base current] } if {$gnum < 1} { set game [sc_game number] } set filename [file tail [sc_base filename $base]] wm title $w "Scid: $::tr(BrowseGame) ($filename: $gnum)" set header [sc_game summary -base $base -game $gnum header] set ::gbrowser::boards($n) [sc_game summary -base $base -game $gnum boards] set moves [sc_game summary -base $base -game $gnum moves] pack [frame $w.b] -side bottom -fill x ::board::new $w.bd $::gbrowser::size $w.bd configure -relief solid -borderwidth 1 pack $w.bd -side left -padx 4 -pady 4 #pack [frame $w.t] -side right -fill both -expand yes #text $w.t.text -foreground black -background white -wrap word \ # -width 45 -height 12 -font font_Small -yscrollcommand "$w.t.ybar set" \ # -setgrid 1 #scrollbar $w.t.ybar -command "$w.t.text yview" -takefocus 0 #pack $w.t.ybar -side right -fill y #pack $w.t.text -side left -fill both -expand yes autoscrollframe $w.t text $w.t.text \ -foreground black -background white -wrap word \ -width 45 -height 12 -font font_Small -setgrid 1 pack $w.t -side right -fill both -expand yes set t $w.t.text event generate $t $t tag configure header -foreground darkBlue $t tag configure next -foreground yellow -background darkBlue $t insert end "$header" header $t insert end "\n\n" set m 0 foreach i $moves { set moveTag m$m $t insert end [::trans $i] $moveTag $t insert end " " $t tag bind $moveTag "::gbrowser::update $n $m" $t tag bind $moveTag \ "$t tag configure $moveTag -foreground red $t configure -cursor hand2" $t tag bind $moveTag \ "$t tag configure $moveTag -foreground {} $t configure -cursor {}" incr m } bind $w {helpWindow GameList Browsing} bind $w "destroy $w" bind $w "::gbrowser::update $n start" bind $w "::gbrowser::update $n end" bind $w "::gbrowser::update $n -1" bind $w "::gbrowser::update $n +1" bind $w "::gbrowser::update $n -10" bind $w "::gbrowser::update $n +10" bind $w {set ::gbrowser::size [::board::resize2 %W.bd -1]} bind $w {set ::gbrowser::size [::board::resize2 %W.bd -1]} bind $w {set ::gbrowser::size [::board::resize2 %W.bd -1]} bind $w {set ::gbrowser::size [::board::resize2 %W.bd +1]} bind $w {set ::gbrowser::size [::board::resize2 %W.bd +1]} bind $w {set ::gbrowser::size [::board::resize2 %W.bd +1]} bind $w "::gbrowser::update $n -1" bind $w "::gbrowser::update $n +1" button $w.b.start -image tb_start -command "::gbrowser::update $n start" button $w.b.back -image tb_prev -command "::gbrowser::update $n -1" button $w.b.forward -image tb_next -command "::gbrowser::update $n +1" button $w.b.end -image tb_end -command "::gbrowser::update $n end" frame $w.b.gap -width 3 button $w.b.autoplay -image autoplay_off -command "::gbrowser::autoplay $n" frame $w.b.gap2 -width 3 button $w.b.flip -image tb_flip -command "::gbrowser::flip $n" pack $w.b.start $w.b.back $w.b.forward $w.b.end $w.b.gap \ $w.b.autoplay $w.b.gap2 $w.b.flip -side left -padx 3 -pady 1 set ::gbrowser::autoplay($n) 0 if {$gnum > 0} { button $w.b.load -textvar ::tr(LoadGame) -command "sc_base switch $base; ::game::Load $gnum" button $w.b.merge -textvar ::tr(MergeGame) -command "mergeGame $base $gnum" } button $w.b.close -textvar ::tr(Close) -command "destroy $w" pack $w.b.close -side right -padx 1 -pady 1 if {$gnum > 0} { pack $w.b.merge $w.b.load -side right -padx 1 -pady 1 } wm resizable $w 1 0 if {$ply < 0} { set ply 0 if {$gnum > 0} { set ply [sc_filter value $base $gnum] if {$ply > 0} { incr ply -1 } } } ::gbrowser::update $n $ply if { [::board::isFlipped .main.board] } { ::gbrowser::flip $n } } proc ::gbrowser::flip {n} { ::board::flip .gb$n.bd } proc ::gbrowser::update {n ply} { set w .gb$n if {! [winfo exists $w]} { return } set oldply 0 if {[info exists ::gbrowser::ply($n)]} { set oldply $::gbrowser::ply($n) } if {$ply == "forward"} { set ply [expr {$oldply + 1} ] } if {$ply == "back"} { set ply [expr {$oldply - 1} ] } if {$ply == "start"} { set ply 0 } if {$ply == "end"} { set ply 9999 } if {[string index $ply 0] == "-" || [string index $ply 0] == "+"} { set ply [expr {$oldply + $ply} ] } if {$ply < 0} { set ply 0 } set max [expr {[llength $::gbrowser::boards($n)] - 1} ] if {$ply > $max} { set ply $max } set ::gbrowser::ply($n) $ply ::board::update $w.bd [lindex $::gbrowser::boards($n) $ply] 1 set t $w.t.text $t configure -state normal set moveRange [$t tag nextrange m$ply 1.0] $t tag remove next 1.0 end set moveRange [$t tag nextrange m$ply 1.0] if {[llength $moveRange] == 2} { $t tag add next [lindex $moveRange 0] [lindex $moveRange 1] $t see [lindex $moveRange 0] } $t configure -state disabled if {$::gbrowser::autoplay($n)} { if {$ply >= $max} { ::gbrowser::autoplay $n } else { after cancel "::gbrowser::update $n +1" after $::autoplayDelay "::gbrowser::update $n +1" } } } proc ::gbrowser::autoplay {n} { if {$::gbrowser::autoplay($n)} { set ::gbrowser::autoplay($n) 0 .gb$n.b.autoplay configure -image autoplay_off return } else { set ::gbrowser::autoplay($n) 1 .gb$n.b.autoplay configure -image autoplay_on ::gbrowser::update $n +1 } } scid-4.3.0.cvs20120311/tcl/windows/0000755000175000017500000000000011727223077015712 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/windows/pfinder.tcl0000644000175000017500000001761211727223077020054 0ustar oliveroliver### file pfinder.tcl: part of Scid. #################### # Player List window namespace eval ::plist {} set plistWin 0 set ::plist::sort Name proc ::plist::defaults {} { set ::plist::name "" set ::plist::minGames 0 set ::plist::maxGames 9999 set ::plist::minElo 0 set ::plist::maxElo [sc_info limit elo] set ::plist::size 50 } ::plist::defaults trace variable ::plist::minElo w [list ::utils::validate::Integer [sc_info limit elo] 0] trace variable ::plist::maxElo w [list ::utils::validate::Integer [sc_info limit elo] 0] trace variable ::plist::minGames w [list ::utils::validate::Integer 9999 0] trace variable ::plist::maxGames w [list ::utils::validate::Integer 9999 0] proc ::plist::toggle {} { set w .plist if {[winfo exists $w]} { destroy $w } else { ::plist::Open } } proc ::plist::Open {} { global plistWin set w .plist if {[winfo exists .plist]} { return } set plistWin 1 toplevel $w wm title $w "Scid: [tr WindowsPList]" setWinLocation $w bind $w "recordWinSize $w" bind $w {helpWindow PList} bind $w "$w.b.close invoke" bind $w ::plist::refresh bind $w { set plistWin 0 } standardShortcuts $w bind $w "$w.t.text yview scroll -1 units" bind $w "$w.t.text yview scroll 1 units" bind $w "$w.t.text yview scroll -1 pages" bind $w "$w.t.text yview scroll 1 pages" bind $w "$w.t.text yview moveto 0" bind $w "$w.t.text yview moveto 0.99" #bindMouseWheel $w $w.t.text menu $w.menu $w configure -menu $w.menu $w.menu add cascade -label PListFile -menu $w.menu.file menu $w.menu.file $w.menu.file add command -label Update -command ::plist::refresh $w.menu.file add command -label Close -command "destroy $w" $w.menu add cascade -label PListSort -menu $w.menu.sort menu $w.menu.sort foreach name {Name Elo Games Oldest Newest} { $w.menu.sort add radiobutton -label $name -variable ::plist::sort \ -value $name -command ::plist::refresh } foreach i {t o1 o2 o3 b} {frame $w.$i} $w.t configure -relief sunken -borderwidth 1 text $w.t.text -width 55 -height 25 -font font_Small -wrap none \ -fg black -bg white -yscrollcommand "$w.t.ybar set" -setgrid 1 \ -cursor top_left_arrow -xscrollcommand "$w.t.xbar set" -borderwidth 0 scrollbar $w.t.ybar -command "$w.t.text yview" -takefocus 0 scrollbar $w.t.xbar -orient horiz -command "$w.t.text xview" -takefocus 0 set xwidth [font measure [$w.t.text cget -font] "0"] set tablist {} foreach {tab justify} {4 r 10 r 18 r 24 r 32 r 35 l} { set tabwidth [expr {$xwidth * $tab} ] lappend tablist $tabwidth $justify } $w.t.text configure -tabs $tablist $w.t.text tag configure ng -foreground darkBlue $w.t.text tag configure date -foreground darkRed $w.t.text tag configure elo -foreground darkGreen $w.t.text tag configure name -foreground black $w.t.text tag configure title -background lightSteelBlue; #-font font_SmallBold set font font_Small set fbold font_SmallBold set f $w.o1 label $f.nlabel -text $::tr(Player:) -font $fbold ttk::combobox $f.name -textvariable ::plist::name -width 20 ::utils::history::SetCombobox ::plist::name $f.name bindFocusColors $f.name focus $f.name label $f.size -text $::tr(TmtLimit:) -font $fbold ttk::combobox $f.esize -width 4 -justify right -textvar ::plist::size -values {50 100 200 500 1000} trace variable ::plist::size w {::utils::validate::Integer 1000 0} bindFocusColors $f.esize # foreach n {50 100 200 500 1000} { # $f.esize list insert end $n # } pack $f.esize $f.size -side right pack $f.nlabel $f.name -side left set f $w.o2 label $f.elo -text "[tr PListSortElo]:" -font $fbold entry $f.emin -textvariable ::plist::minElo label $f.eto -text "-" entry $f.emax -textvariable ::plist::maxElo label $f.games -text "[tr PListSortGames]:" -font $fbold entry $f.gmin -textvariable ::plist::minGames label $f.gto -text "-" entry $f.gmax -textvariable ::plist::maxGames foreach entry {emin emax} { $f.$entry configure -width 4 -justify right -font $font bindFocusColors $f.$entry bind $f.$entry +::plist::check } foreach entry {gmin gmax} { $f.$entry configure -width 6 -justify right -font $font bindFocusColors $f.$entry bind $f.$entry +::plist::check } pack $f.elo $f.emin $f.eto $f.emax -side left pack $f.gmax $f.gto $f.gmin $f.games -side right dialogbutton $w.b.defaults -text $::tr(Defaults) -command ::plist::defaults dialogbutton $w.b.update -text $::tr(Update) -command ::plist::refresh dialogbutton $w.b.close -text $::tr(Close) -command "destroy $w" packbuttons left $w.b.defaults packbuttons right $w.b.close $w.b.update pack $w.b -side bottom -fill x pack $w.o3 -side bottom -fill x -padx 2 -pady 2 pack $w.o2 -side bottom -fill x -padx 2 -pady 2 pack $w.o1 -side bottom -fill x -padx 2 -pady 2 pack $w.t -side top -fill both -expand yes grid $w.t.text -row 0 -column 0 -sticky news grid $w.t.ybar -row 0 -column 1 -sticky news grid $w.t.xbar -row 1 -column 0 -sticky news grid rowconfig $w.t 0 -weight 1 -minsize 0 grid columnconfig $w.t 0 -weight 1 -minsize 0 ::plist::ConfigMenus ::plist::refresh } proc ::plist::ConfigMenus {{lang ""}} { set w .plist if {! [winfo exists $w]} { return } if {$lang == ""} { set lang $::language } set m $w.menu foreach idx {0 1} tag {File Sort} { configMenuText $m $idx PList$tag $lang } foreach idx {0 2} tag {Update Close} { configMenuText $m.file $idx PListFile$tag $lang } foreach idx {0 1 2 3 4} tag {Name Elo Games Oldest Newest } { configMenuText $m.sort $idx PListSort$tag $lang } } proc ::plist::refresh {} { set w .plist if {! [winfo exists $w]} { return } busyCursor . ::utils::history::AddEntry ::plist::name $::plist::name set t $w.t.text $t configure -state normal $t delete 1.0 end $t insert end "\t" title foreach i {Games Oldest Newest Elo Name} { $t tag configure s$i -font font_SmallBold $t tag bind s$i <1> "set ::plist::sort $i; ::plist::refresh" $t tag bind s$i "$t tag config s$i -foreground red" $t tag bind s$i "$t tag config s$i -foreground {}" $t insert end "\t" title $t insert end [tr PListSort$i] [list title s$i] } $t insert end "\n" title update set err [catch {sc_name plist -name $::plist::name -size $::plist::size \ -minGames $::plist::minGames -maxGames $::plist::maxGames \ -minElo $::plist::minElo -maxElo $::plist::maxElo \ -sort [string tolower $::plist::sort]} pdata] if {$err} { $t insert end "\n$pdata\n" unbusyCursor . return } set hc yellow set count 0 foreach player $pdata { incr count set ng [lindex $player 0] set oldest [lindex $player 1] set newest [lindex $player 2] set elo [lindex $player 3] set name [lindex $player 4] $t tag bind p$count [list ::pinfo::playerInfo $name] #$t tag bind p$count [list playerInfo $name] $t tag bind p$count \ "$t tag configure p$count -background $hc" $t tag bind p$count \ "$t tag configure p$count -background {}" $t insert end "\n" $t insert end "\t$count\t" p$count $t insert end $ng [list ng p$count] $t insert end "\t" p$count $t insert end $oldest [list date p$count] $t insert end "\t" p$count $t insert end "- $newest" [list date p$count] $t insert end "\t" p$count $t insert end $elo [list elo p$count] $t insert end "\t" p$count $t insert end $name [list name p$count] } $t insert end "\n" $t configure -state disabled unbusyCursor . } proc ::plist::check {} { if {$::plist::minGames > $::plist::maxGames} { set ::plist::maxGames $::plist::minGames } if {$::plist::minElo > $::plist::maxElo} { set ::plist::maxElo $::plist::minElo } } ### End of file pfinder.tcl: part of Scid. scid-4.3.0.cvs20120311/tcl/windows/book.tcl0000644000175000017500000004123511727223077017355 0ustar oliveroliver### ### book.tcl: part of Scid. ### Copyright (C) 2007 Pascal Georges ### ###################################################################### ### Book window namespace eval book { set isOpen 0 set isReadonly 0 set bookList "" set bookPath "" set currentBook "" ; # book in form abc.bin set currentTuningBook "" set bookMoves "" set cancelBookExport 0 set exportCount 0 set exportMax 3000 set hashList "" set bookSlot 0 set bookTuningSlot 2 set oppMovesVisible 0 ################################################################################ # open a book, closing any previously opened one (called by annotation analysis) # arg name : gm2600.bin for example ################################################################################ proc scBookOpen { name slot } { if {$slot == $::book::bookSlot} { if {$::book::currentBook != ""} { sc_book close $::book::bookSlot } set ::book::currentBook $name } if {$slot == $::book::bookTuningSlot} { if {$::book::currentTuningBook != ""} { sc_book close $::book::bookTuningSlot } set ::book::currentTuningBook $name } set bn [ file join $::scidBooksDir $name ] set ::book::isReadonly [sc_book load $bn $slot] } ################################################################################ # Return a move in book for position fen. If there is no move in book, returns "" # Is used by engines, not book windows ################################################################################ proc getMove { book fen slot} { set tprob 0 ::book::scBookOpen $book $slot set bookmoves [sc_book moves $slot] if {[llength $bookmoves] == 0} { return "" } set r [expr {(int (rand() * 100))} ] for {set i 0} {$i<[llength $bookmoves]} {incr i 2} { set m [lindex $bookmoves $i] set prob [string range [lindex $bookmoves [expr $i + 1] ] 0 end-1 ] incr tprob $prob if { $tprob >= $r } { break } } sc_book close $slot return $m } ################################################################################ # Show moves leading to book positions ################################################################################ proc togglePositionsDisplay {} { global ::book::oppMovesVisible if { $::book::oppMovesVisible == 0} { set ::book::oppMovesVisible 1 pack .bookWin.f.text1 -expand yes -fill both } else { set ::book::oppMovesVisible 0 pack forget .bookWin.f.text1 } } ################################################################################ # Open a window to select book and display book moves # arg name : gm2600.bin for example ################################################################################ proc open { {name ""} } { global ::book::bookList ::book::bookPath ::book::currentBook ::book::isOpen ::book::lastBook set w .bookWin if {[winfo exists $w]} { return } set ::book::isOpen 1 ::createToplevel $w ::setTitle $w $::tr(Book) wm resizable $w 0 1 setWinLocation $w bind $w "recordWinSize $w" bind $w { helpWindow Book } ttk::frame $w.f # load book names if { $name == "" && $lastBook != "" } { set name $lastBook } set bookPath $::scidBooksDir set bookList [ lsort -dictionary [ glob -nocomplain -directory $bookPath *.bin ] ] # No book found if { [llength $bookList] == 0 } { tk_messageBox -title "Scid" -type ok -icon error -message "No books found. Check books directory" set ::book::isOpen 0 set ::book::currentBook "" destroy $w ::docking::cleanup $w return } set i 0 set idx 0 set tmp {} foreach file $bookList { set f [ file tail $file ] lappend tmp $f if {$name == $f} { set idx $i } incr i } ttk::combobox $w.f.combo -width 12 -values $tmp catch { $w.f.combo current $idx } pack $w.f.combo # text displaying book moves frame $w.f.fscroll autoscrollframe -bars y $w.f.fscroll text $w.f.text -wrap word -state disabled -width 12 ttk::button $w.f.b -text $::tr(OtherBookMoves) -command { ::book::togglePositionsDisplay } ::utils::tooltip::Set $w.f.b $::tr(OtherBookMovesTooltip) text $w.f.text1 -wrap word -state disabled -width 12 pack $w.f.fscroll -expand yes -fill both pack $w.f.b pack $w.f.text1 -expand yes -fill both pack $w.f -expand 1 -fill both bind $w.f.combo <> ::book::bookSelect bind $w "::book::closeMainBook ; ::docking::cleanup $w" bind $w { destroy .bookWin } # we make a redundant check here, another one is done a few line above if { [catch {bookSelect} ] } { tk_messageBox -title "Scid" -type ok -icon error -message "No books found. Check books directory" set ::book::isOpen 0 set ::book::currentBook "" destroy .bookWin } } ################################################################################ # ################################################################################ proc closeMainBook {} { if { $::book::currentBook == "" } { return } focus . sc_book close $::book::bookSlot set ::book::isOpen 0 set ::book::currentBook "" } ################################################################################ # updates book display when board changes ################################################################################ proc refresh {} { global ::book::bookMoves foreach t [.bookWin.f.text tag names] { if { [string match "bookMove*" $t] } { .bookWin.f.text tag delete $t } } foreach t [.bookWin.f.text1 tag names] { if { [string match "bookMove*" $t] } { .bookWin.f.text1 tag delete $t } } set bookMoves [sc_book moves $::book::bookSlot] .bookWin.f.text configure -state normal .bookWin.f.text delete 1.0 end for {set i 0} {$i<[llength $bookMoves]} {incr i 2} { set line [expr $i /2 +1] set m "" append m [::trans [lindex $bookMoves $i]] "\t" [lindex $bookMoves [expr $i + 1] ] "\n" .bookWin.f.text insert end $m .bookWin.f.text tag add bookMove$line $line.0 $line.end .bookWin.f.text tag bind bookMove$line "::book::makeBookMove [lindex $bookMoves $i]" } .bookWin.f.text configure -state disabled -height [expr [llength $bookMoves] / 2 ] set oppBookMoves [sc_book positions $::book::bookSlot] .bookWin.f.text1 configure -state normal .bookWin.f.text1 delete 1.0 end for {set i 0} {$i<[llength $oppBookMoves]} {incr i 1} { set line [expr $i +1] set m "" append m [::trans [lindex $oppBookMoves $i]] "\n" .bookWin.f.text1 insert end $m .bookWin.f.text1 tag add bookMove$line $line.0 $line.end .bookWin.f.text1 tag bind bookMove$line "::book::makeBookMove [lindex $oppBookMoves $i]" } .bookWin.f.text1 configure -state disabled -height [llength $oppBookMoves] if { $::book::oppMovesVisible == 0 } { pack forget .bookWin.f.text1 } } ################################################################################ # ################################################################################ proc makeBookMove { move } { set action "replace" if {![sc_pos isAt vend]} { set action [confirmReplaceMove] } if {$action == "replace"} { sc_move addSan $move } elseif {$action == "var"} { sc_var create sc_move addSan $move } elseif {$action == "mainline"} { sc_var create sc_move addSan $move sc_var exit sc_var promote [expr {[sc_var count] - 1}] sc_move forward 1 } updateBoard -pgn -animate ::utils::sound::AnnounceNewMove $move if {$action == "replace"} { ::tree::doTraining } } ################################################################################ # ################################################################################ proc bookSelect { { n "" } { v 0} } { set ::book::lastBook [.bookWin.f.combo get] scBookOpen [.bookWin.f.combo get] $::book::bookSlot refresh } ################################################################################ # ################################################################################ proc tuning { {name ""} } { global ::book::bookList ::book::bookPath ::book::currentBook ::book::isOpen set w .bookTuningWin if {[winfo exists $w]} { return } ::createToplevel $w ::setTitle $w $::tr(Book) # wm resizable $w 0 0 bind $w { helpWindow BookTuningWindow } setWinLocation $w ttk::frame $w.fcombo ttk::frame $w.f # load book names set bookPath $::scidBooksDir set bookList [ lsort -dictionary [ glob -nocomplain -directory $bookPath *.bin ] ] # No book found if { [llength $bookList] == 0 } { tk_messageBox -title "Scid" -type ok -icon error -message "No books found. Check books directory" set ::book::isOpen 0 set ::book::currentBook "" destroy $w ::docking::cleanup $w return } set i 0 set idx 0 set tmp {} foreach file $bookList { set f [ file tail $file ] lappend tmp $f if {$name == $f} { set idx $i } incr i } ttk::combobox $w.fcombo.combo -width 12 -values $tmp catch { $w.fcombo.combo current $idx } pack $w.fcombo.combo -expand yes -fill x ttk::frame $w.fbutton menubutton $w.fbutton.mbAdd -text $::tr(AddMove) -menu $w.fbutton.mbAdd.otherMoves menu $w.fbutton.mbAdd.otherMoves ttk::button $w.fbutton.bExport -text $::tr(Export) -command ::book::export ttk::button $w.fbutton.bSave -text $::tr(Save) -command ::book::save pack $w.fbutton.mbAdd $w.fbutton.bExport $w.fbutton.bSave -side top -fill x -expand yes pack $w.fcombo $w.f $w.fbutton -side top bind $w.fcombo.combo <> ::book::bookTuningSelect bind $w "::book::closeTuningBook ; ::docking::cleanup $w" bind $w { destroy .bookTuningWin } bind $w { helpWindow BookTuning } bookTuningSelect } ################################################################################ # ################################################################################ proc closeTuningBook {} { if { $::book::currentTuningBook == "" } { return } focus . sc_book close $::book::bookTuningSlot set ::book::currentTuningBook "" } ################################################################################ # ################################################################################ proc bookTuningSelect { { n "" } { v 0} } { set w .bookTuningWin scBookOpen [.bookTuningWin.fcombo.combo get] $::book::bookTuningSlot if { $::book::isReadonly > 0 } { $w.fbutton.bSave configure -state disabled } else { $w.fbutton.bSave configure -state normal } refreshTuning } ################################################################################ # add a move to displayed bookmoves ################################################################################ proc addBookMove { move } { global ::book::bookTuningMoves if { $::book::isReadonly > 0 } { return } set w .bookTuningWin set children [winfo children $w.f] set count [expr [llength $children] / 2] ttk::label $w.f.m$count -text [::trans $move] bind $w.f.m$count " ::book::makeBookMove $move" spinbox $w.f.sp$count -from 0 -to 100 -width 3 $w.f.sp$count set 0 grid $w.f.m$count -row $count -column 0 -sticky w grid $w.f.sp$count -row $count -column 1 -sticky w $w.fbutton.mbAdd.otherMoves delete [::trans $move] lappend ::book::bookTuningMoves $move } ################################################################################ # updates book display when board changes ################################################################################ proc refreshTuning {} { if { $::book::isReadonly > 0 } { return } #unfortunately we need this as the moves on the widgets are translated #and widgets have no clientdata in tcl/tk global ::book::bookTuningMoves set ::book::bookTuningMoves {} set moves [sc_book moves $::book::bookTuningSlot] set w .bookTuningWin bind $w "" ;# avoid the closing of the book # erase previous children set children [winfo children $w.f] foreach c $children { destroy $c } set row 0 for {set i 0} {$i<[llength $moves]} {incr i 2} { lappend ::book::bookTuningMoves [lindex $moves $i] label $w.f.m$row -text [::trans [lindex $moves $i]] bind $w.f.m$row " ::book::makeBookMove [lindex $moves $i] " spinbox $w.f.sp$row -from 0 -to 100 -width 3 set pct [lindex $moves [expr $i+1] ] set value [string replace $pct end end ""] $w.f.sp$row set $value grid $w.f.m$row -row $row -column 0 -sticky w grid $w.f.sp$row -row $row -column 1 -sticky w incr row } # load legal moves $w.fbutton.mbAdd.otherMoves delete 0 end $w.fbutton.mbAdd.otherMoves add command -label $::tr(None) set moveList [ sc_pos moves ] foreach move $moveList { if { [ lsearch $moves $move ] == -1 } { $w.fbutton.mbAdd.otherMoves add command -label [::trans $move] -command "::book::addBookMove $move" } } bind $w "::book::closeTuningBook ; ::docking::cleanup $w" } ################################################################################ # sends to book the list of moves and probabilities. ################################################################################ proc save {} { global ::book::bookTuningMoves if { $::book::isReadonly > 0 } { return } set prob {} set w .bookTuningWin set children [winfo children $w.f] set count [expr [llength $children] / 2] for {set row 0} {$row < $count} {incr row} { lappend prob [$w.f.sp$row get] } set tempfile [file join $::scidUserDir tempfile.[pid]] sc_book movesupdate $::book::bookTuningMoves $prob $::book::bookTuningSlot $tempfile file delete $tempfile if { [ winfo exists .bookWin ] } { ::book::refresh } } ################################################################################ # ################################################################################ proc export {} { ::windows::gamelist::Refresh updateTitle progressWindow "Scid" "ExportingBook..." $::tr(Cancel) "::book::sc_progressBar" set ::book::cancelBookExport 0 set ::book::exportCount 0 ::book::book2pgn set ::book::hashList "" closeProgressWindow if { $::book::exportCount >= $::book::exportMax } { tk_messageBox -title "Scid" -type ok -icon info \ -message "$::tr(Movesloaded) $::book::exportCount\n$::tr(BookPartiallyLoaded)" } else { tk_messageBox -title "Scid" -type ok -icon info -message "$::tr(Movesloaded) $::book::exportCount" } updateBoard -pgn } ################################################################################ # ################################################################################ proc book2pgn { } { global ::book::hashList if {$::book::cancelBookExport} { return } if { $::book::exportCount >= $::book::exportMax } { return } set hash [sc_pos hash] if {[lsearch -sorted -integer -exact $hashList $hash] != -1} { return } else { lappend hashList $hash set hashList [lsort -integer -unique $hashList] } updateBoard -pgn set bookMoves [sc_book moves $::book::bookTuningSlot] incr ::book::exportCount if {[expr $::book::exportCount % 50] == 0} { updateProgressWindow $::book::exportCount $::book::exportMax update } if {[llength $bookMoves] == 0} { return } for {set i 0} {$i<[llength $bookMoves]} {incr i 2} { set move [lindex $bookMoves $i] if {$i == 0} { sc_move addSan $move book2pgn sc_move back } else { sc_var create sc_move addSan $move book2pgn sc_var exit } } } ################################################################################ # cancel book export ################################################################################ proc sc_progressBar {} { set ::book::cancelBookExport 1 } } ### ### End of file: book.tcl ### scid-4.3.0.cvs20120311/tcl/windows/pgn.tcl0000644000175000017500000004542111727223077017210 0ustar oliveroliver############################################################ ### PGN window namespace eval pgn { ################################################################################ # ################################################################################ proc ChooseColor {type name} { global pgnColor set x [tk_chooseColor -initialcolor $pgnColor($type) -title "PGN $name color"] if {$x != ""} { set pgnColor($type) $x; ::pgn::ResetColors } } ################################################################################ # ################################################################################ proc ConfigMenus {{lang ""}} { if {! [winfo exists .pgnWin]} { return } if {$lang == ""} { set lang $::language } set m .pgnWin.menu foreach idx {0 1 2 3} tag {File Opt Color Help} { configMenuText $m $idx Pgn$tag $lang } foreach idx {0 1 3} tag {Copy Print Close} { configMenuText $m.file $idx PgnFile$tag $lang } foreach idx {0 1 2 3 4 5 6 7 8} tag { Color Short Symbols IndentC IndentV Space Column StripMarks BoldMainLine } { configMenuText $m.opt $idx PgnOpt$tag $lang } foreach idx {0 1 2 3 4 5 6} tag {Header Anno Comments Vars Background Current NextMove } { configMenuText $m.color $idx PgnColor$tag $lang } foreach idx {0 1} tag {Pgn Index} { configMenuText $m.helpmenu $idx PgnHelp$tag $lang } } proc PgnClipboardCopy {} { setLanguageTemp E set pgnStr [sc_game pgn -width 75 -indentComments $::pgn::indentComments \ -indentVariations $::pgn::indentVars -space $::pgn::moveNumberSpaces] setLanguageTemp $::language set wt .tempFEN if {! [winfo exists $wt]} { text $wt } $wt delete 1.0 end $wt insert end $pgnStr sel clipboard clear clipboard append $pgnStr selection own $wt selection get } ################################################################################ # ################################################################################ proc OpenClose {} { global pgnWin pgnHeight pgnWidth pgnColor if {[winfo exists .pgnWin]} { focus . destroy .pgnWin set pgnWin 0 return } set w .pgnWin ::createToplevel $w setWinLocation $w setWinSize $w bind $w "recordWinSize $w" menu $w.menu ::setMenu $w $w.menu $w.menu add cascade -label PgnFile -menu $w.menu.file -underline 0 $w.menu add cascade -label PgnOpt -menu $w.menu.opt -underline 0 $w.menu add cascade -label PgnColor -menu $w.menu.color -underline 0 $w.menu add cascade -label PgnHelp -menu $w.menu.helpmenu -underline 0 foreach i {file opt color helpmenu} { menu $w.menu.$i -tearoff 0 } $w.menu.file add command -label PgnFileCopy -accelerator "Ctrl+C" -command {::pgn::PgnClipboardCopy } bind $w {::pgn::PgnClipboardCopy} bind $w {::pgn::PgnClipboardCopy} $w.menu.file add command -label PgnFilePrint -command { set ftype { { "PGN files" {".pgn"} } { "Text files" {".txt"} } { "All files" {"*"} } } set fname [tk_getSaveFile -initialdir [pwd] -filetypes $ftype -title "Save PGN file"] if {$fname != ""} { if {[file extension $fname] != ".txt" && [file extension $fname] != ".pgn" } { append fname ".pgn" } if {[catch {set tempfile [open $fname w]}]} { tk_messageBox -title "Scid: Error saving file" -type ok -icon warning \ -message "Unable to save the file: $fname\n\n" } else { puts $tempfile \ [sc_game pgn -width 75 -symbols $::pgn::symbolicNags \ -indentVar $::pgn::indentVars -indentCom $::pgn::indentComments \ -space $::pgn::moveNumberSpaces -format plain -column $::pgn::columnFormat \ -markCodes $::pgn::stripMarks] close $tempfile } } } $w.menu.file add separator $w.menu.file add command -label PgnFileClose -accelerator Esc \ -command "focus .; destroy $w" $w.menu.opt add checkbutton -label PgnOptColor \ -variable ::pgn::showColor -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptShort \ -variable ::pgn::shortHeader -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptSymbols \ -variable ::pgn::symbolicNags -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptIndentC \ -variable ::pgn::indentComments -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptIndentV \ -variable ::pgn::indentVars -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptSpace \ -variable ::pgn::moveNumberSpaces -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptColumn \ -variable ::pgn::columnFormat -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptStripMarks \ -variable ::pgn::stripMarks -command {updateBoard -pgn} $w.menu.opt add checkbutton -label PgnOptBoldMainLine \ -variable ::pgn::boldMainLine -command {updateBoard -pgn} $w.menu.color add command -label PgnColorHeader \ -command {::pgn::ChooseColor Header "header text"} $w.menu.color add command -label PgnColorAnno \ -command {::pgn::ChooseColor Nag annotation} $w.menu.color add command -label PgnColorComments \ -command {::pgn::ChooseColor Comment comment} $w.menu.color add command -label PgnColorVars \ -command {::pgn::ChooseColor Var variation} $w.menu.color add command -label PgnColorBackground \ -command {::pgn::ChooseColor Background background} $w.menu.color add command -label PgnColorCurrent -command {::pgn::ChooseColor Current current} $w.menu.color add command -label PgnColorNextmove -command {::pgn::ChooseColor NextMove nextmove} $w.menu.helpmenu add command -label PgnHelpPgn \ -accelerator F1 -command {helpWindow PGN} $w.menu.helpmenu add command -label PgnHelpIndex -command {helpWindow Index} ::pgn::ConfigMenus text $w.text -width $::winWidth($w) -height $::winHeight($w) -wrap word \ -background $pgnColor(Background) -cursor crosshair \ -yscrollcommand "$w.scroll set" -setgrid 1 -tabs {1c right 2c 4c} if { $::pgn::boldMainLine } { $w.text configure -font font_Bold } ttk::scrollbar $w.scroll -command "$w.text yview" -takefocus 0 pack [ttk::frame $w.buttons] -side bottom -fill x pack $w.scroll -side right -fill y pack $w.text -fill both -expand yes ttk::button $w.buttons.help -textvar ::tr(Help) -command { helpWindow PGN } ttk::button $w.buttons.close -textvar ::tr(Close) -command { focus .; destroy .pgnWin } #pack $w.buttons.close $w.buttons.help -side right -padx 5 -pady 2 set pgnWin 1 bind $w { set pgnWin 0 } # Bind left button to close ctxt menu: bind $w { if {[winfo exists .pgnWin.text.ctxtMenu]} { destroy .pgnWin.text.ctxtMenu; focus .pgnWin } } # Bind middle button to popup a PGN board: bind $w "::pgn::ShowBoard .pgnWin.text 5 %x %y %X %Y" bind $w ::pgn::HideBoard # Bind right button to popup a contextual menu: bind $w "::pgn::contextMenu .pgnWin.text 5 %x %y %X %Y" # set the same arrow key, etc bindings that the main window has: bind $w { helpWindow PGN } bind $w ::move::Start bind $w {::move::Back 10} bind $w ::move::Back bind $w {::move::Forward 10} bind $w ::move::Forward bind $w ::move::End bind $w { if {[winfo exists .pgnWin.text.ctxtMenu]} { destroy .pgnWin.text.ctxtMenu focus .pgnWin } else { focus . destroy .pgnWin } } standardShortcuts $w bindMouseWheel $w $w.text # Add variation navigation bindings: bind $w [bind $::dot_w ] bind $w [bind $::dot_w ] $w.text tag add Current 0.0 0.0 ::pgn::ResetColors ::createToplevelFinalize $w } ################################################################################ # ################################################################################ proc contextMenu {win startLine x y xc yc} { update idletasks set mctxt $win.ctxtMenu if { [winfo exists $mctxt] } { destroy $mctxt } if {[sc_var level] == 0} { set state disabled } else { set state normal } menu $mctxt menu $mctxt.evals1 $mctxt.evals1 add command -label "Clear" -command {sc_pos addNag X; ::pgn::Refresh 1} $mctxt.evals1 add command -label "!" -command {sc_pos addNag ! ; ::pgn::Refresh 1} $mctxt.evals1 add command -label "?" -command {sc_pos addNag ? ; ::pgn::Refresh 1} $mctxt.evals1 add command -label "!?" -command {sc_pos addNag !? ; ::pgn::Refresh 1} $mctxt.evals1 add command -label "?!" -command {sc_pos addNag ?! ; ::pgn::Refresh 1} $mctxt.evals1 add command -label "!!" -command {sc_pos addNag !! ; ::pgn::Refresh 1} $mctxt.evals1 add command -label "??" -command {sc_pos addNag ?? ; ::pgn::Refresh 1} menu $mctxt.evals2 $mctxt.evals2 add command -label "Clear" -command {sc_pos addNag Y ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "=" -command {sc_pos addNag = ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "~" -command {sc_pos addNag ~ ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "+=" -command {sc_pos addNag += ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "=+" -command {sc_pos addNag =+ ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "+/-" -command {sc_pos addNag +/- ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "-/+" -command {sc_pos addNag -/+ ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "+-" -command {sc_pos addNag +- ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "-+" -command {sc_pos addNag -+ ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "+--" -command {sc_pos addNag +-- ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "--+" -command {sc_pos addNag --+ ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "N" -command {sc_pos addNag N ; ::pgn::Refresh 1} $mctxt.evals2 add command -label "D" -command {sc_pos addNag D ; ::pgn::Refresh 1} $mctxt add command -label [tr EditDelete] -state $state -command "::pgn::deleteVar [sc_var number]" $mctxt add command -label [tr EditFirst] -state $state -command "::pgn::firstVar [sc_var number]" $mctxt add command -label [tr EditMain] -state $state -command "::pgn::mainVar [sc_var number]" $mctxt add separator $mctxt add command -label "[tr EditStrip]:[tr EditStripBegin]" -command {::game::TruncateBegin} $mctxt add command -label "[tr EditStrip]:[tr EditStripEnd]" -command {::game::Truncate} $mctxt add separator $mctxt add command -label "[tr EditStrip]:[tr EditStripComments]" -command {::game::Strip comments} $mctxt add command -label "[tr EditStrip]:[tr EditStripVars]" -command {::game::Strip variations} $mctxt add separator $mctxt add cascade -label "! ? ..." -menu $mctxt.evals1 $mctxt add cascade -label "+- +/- ..." -menu $mctxt.evals2 $mctxt add command -label "[tr WindowsComment]" -command {makeCommentWin} $mctxt post [winfo pointerx .] [winfo pointery .] } proc deleteVar { var } { sc_var exit sc_var delete $var updateBoard -pgn } proc firstVar { var } { sc_var exit sc_var first $var updateBoard -pgn } proc mainVar { var } { sc_var exit sc_var promote $var updateBoard -pgn } ################################################################################ # removes the comments in text widget (or parsing in sc_pos pgnBoard will fail # and return a wrong position ################################################################################ proc removeCommentTag { win startline lastpos } { set ret "" if {[scan $lastpos "%d.%d" lastline lastcol] != 2} { return $ret } for {set line $startline} {$line < $lastline} {incr line} { if { [ scan [$win index $line.end ] "%d.%d" dummy colend ] != 2 } { return $ret } for {set col 0} {$col <= $colend} {incr col} { set t [$win tag names $line.$col] if {[lsearch -glob $t "c_*"] == -1} { append ret [$win get $line.$col] } } } for {set col 0} {$col <= $lastcol} {incr col} { set t [$win tag names $lastline.$col] if {[lsearch -glob $t "c_*"] == -1} { append ret [$win get $lastline.$col] } } return $ret } ################################################################################ # ::pgn::ShowBoard: # Produces a popup window showing the board position in the # game at the current mouse location in the PGN window. # ################################################################################ proc ShowBoard {win startLine x y xc yc} { global lite dark set txt [removeCommentTag $win $startLine [ $win index @$x,$y]] # set bd [sc_pos pgnBoard [::untrans [$win get $startLine.0 @$x,$y]] ] set bd [ sc_pos pgnBoard [::untrans $txt ] ] set w .pgnPopup set psize 30 if {$psize > $::boardSize} { set psize $::boardSize } if {! [winfo exists $w]} { toplevel $w -relief solid -borderwidth 2 wm withdraw $w wm overrideredirect $w 1 ::board::new $w.bd $psize pack $w.bd -side top -padx 2 -pady 2 wm withdraw $w } ::board::update $w.bd $bd # Make sure the popup window can fit on the screen: incr xc 5 incr yc 5 update idletasks set dx [winfo width $w] set dy [winfo height $w] if {($xc+$dx) > [winfo screenwidth $w]} { set xc [expr {[winfo screenwidth $w] - $dx}] } if {($yc+$dy) > [winfo screenheight $w]} { set yc [expr {[winfo screenheight $w] - $dy}] } wm geometry $w "+$xc+$yc" wm deiconify $w raiseWin $w } ################################################################################ # ::pgn::HideBoard # # Hides the window produced by ::pgn::ShowBoard. # ################################################################################ proc HideBoard {} { wm withdraw .pgnPopup } ################################################################################ # # ::pgn::ResetColors # # Reconfigures the pgn Colors, after a color is changed by the user # ################################################################################ proc ResetColors {} { global pgnColor if {![winfo exists .pgnWin]} { return } .pgnWin.text configure -background $pgnColor(Background) .pgnWin.text tag configure Current -background $pgnColor(Current) .pgnWin.text tag configure NextMove -background $pgnColor(NextMove) ::htext::init .pgnWin.text ::htext::updateRate .pgnWin.text 0 ::pgn::Refresh 1 } ################################################################################ # ::pgn::Refresh # # Updates the PGN window. If $pgnNeedsUpdate == 0, then the # window text is not regenerated; only the current and next move # tags will be updated. ################################################################################ proc Refresh { {pgnNeedsUpdate 0} } { if {![winfo exists .pgnWin]} { return } if {$pgnNeedsUpdate} { busyCursor . set format plain if {$::pgn::showColor} {set format color} set pgnStr [sc_game pgn -symbols $::pgn::symbolicNags \ -indentVar $::pgn::indentVars -indentCom $::pgn::indentComments \ -space $::pgn::moveNumberSpaces -format $format -column $::pgn::columnFormat \ -short $::pgn::shortHeader -markCodes $::pgn::stripMarks] set windowTitle [format $::tr(PgnWindowTitle) [sc_game number]] ::setTitle .pgnWin "$windowTitle" .pgnWin.text configure -state normal .pgnWin.text delete 1.0 end # Hide all information after the first **** encountered in order to hide tactics to user # This has the drawback to also hide the first moves when there is several markers **** if { $::tactics::findBestMoveRunning } { set idx [ string first "****" $pgnStr ] if { $idx != -1 } { set pgnStr "[ string range $pgnStr 0 [expr $idx + 3] ]
    \n" } } if {$::pgn::showColor} { ::htext::display .pgnWin.text $pgnStr } else { .pgnWin.text insert 1.0 $pgnStr .pgnWin.text configure -state disabled } unbusyCursor . } if {$::pgn::showColor} { #TODO: This code is slow. # Write a faster function to update PgnNextMovePos & PgnLastMovePos sc_game pgn -symbols $::pgn::symbolicNags \ -indentVar $::pgn::indentVars -indentCom $::pgn::indentComments \ -space $::pgn::moveNumberSpaces -format color -column $::pgn::columnFormat \ -short $::pgn::shortHeader -markCodes $::pgn::stripMarks ######################################### if { $::pgn::boldMainLine } { .pgnWin.text configure -font font_Bold } else { .pgnWin.text configure -font font_Regular } # Now update Current and NextMove tags: # the calls to "text see" are intended to make the most interesting part of the PGN window visible set offset [sc_pos pgnOffset] .pgnWin.text tag remove NextMove 1.0 end set noffset [sc_pos pgnOffset next] if {$noffset == $offset} {set noffset 0} set moveRange [.pgnWin.text tag nextrange "m_$noffset" 1.0] if {[llength $moveRange] == 2} { .pgnWin.text tag add NextMove [lindex $moveRange 0] [lindex $moveRange 1] scan [lindex $moveRange 0] "%d.%d" l c set c2 [expr $c + [.pgnWin.text cget -width ] ] .pgnWin.text see "[expr $l +3].1" .pgnWin.text see "[expr $l +3].1" .pgnWin.text see "$l.$c2" .pgnWin.text see "$l.$c" } .pgnWin.text tag remove Current 1.0 end set moveRange [.pgnWin.text tag nextrange "m_$offset" 1.0] if {[llength $moveRange] == 2} { .pgnWin.text tag add Current [lindex $moveRange 0] [lindex $moveRange 1] scan [lindex $moveRange 0] "%d.%d" l c set c2 [expr $c + 2 * [.pgnWin.text cget -width ] ] .pgnWin.text see "[expr $l +3].1" .pgnWin.text see "[expr $l +3].1" .pgnWin.text see "$l.$c2" .pgnWin.text see "$l.$c" } .pgnWin.text configure -state disabled } } ################################################################################ # ################################################################################ } scid-4.3.0.cvs20120311/tcl/windows/stats.tcl0000644000175000017500000002050411727223077017555 0ustar oliveroliver### ### windows/stats.tcl: Filter Statistics window for Scid ### set ::windows::stats::isOpen 0 proc ::windows::stats::Open {} { set w .statsWin if {[winfo exists $w]} { focus . destroy $w set ::windows::stats::isOpen 0 return } toplevel $w wm title $w "Scid: Filter Statistics" setWinLocation $w bind $w "recordWinSize $w" menu $w.menu $w configure -menu $w.menu $w.menu add cascade -label StatsFile -menu $w.menu.file $w.menu add cascade -label StatsOpt -menu $w.menu.opt menu $w.menu.file $w.menu.file add command -label StatsFilePrint -command { set ftype { { "Text files" {".txt"} } { "All files" {"*"} } } set fname [tk_getSaveFile -initialdir [pwd] -filetypes $ftype -title "Save text file"] if {$fname != ""} { if {[catch {set tempfile [open $fname w]}]} { tk_messageBox -title "Scid: Error saving file" -type ok -icon warning \ -message "Unable to save the file: $fname\n\n" } else { puts $tempfile [.statsWin.stats get 1.0 end-1c] close $tempfile } } } $w.menu.file add separator $w.menu.file add command -label StatsFileClose -accelerator Esc \ -command "destroy $w" menu $w.menu.opt $w.menu.opt add cascade -label $::tr(OprepStatBoth) -menu $w.menu.opt.elo menu $w.menu.opt.elo foreach i [lsort -decreasing [array names ::windows::stats::display r*]] { set elo [string range $i 1 end] $w.menu.opt.elo add checkbutton -label "$::tr(OprepStatBoth) $elo+" \ -variable ::windows::stats::display($i) -command ::windows::stats::Refresh } $w.menu.opt add separator $w.menu.opt add cascade -label $::tr(OprepStatSince) \ -menu $w.menu.opt.year menu $w.menu.opt.year foreach i [lsort [array names ::windows::stats::display y*]] { set year [string range $i 1 end] $w.menu.opt.year add checkbutton \ -label "$::tr(OprepStatSince) $year.01.01" \ -variable ::windows::stats::display($i) -command ::windows::stats::Refresh } # text $w.stats -borderwidth 0 \ -width $::winWidth($w) -height $::winHeight($w) -font font_Fixed \ -foreground black -background white -cursor top_left_arrow -wrap none \ -setgrid 1 -yscrollcommand {.statsWin.sb set } autoscrollframe $w.statsasb text $w.stats -width 80 -height 40\ -foreground black -background white -font font_Fixed\ -wrap none pack $w.statsasb -side top -fill both -expand yes set ::windows::stats::isOpen 1 bind $w "destroy $w" bind $w "destroy $w" bind $w { helpWindow Index } bind $w { set ::windows::stats::isOpen 0 } standardShortcuts $w #Klimmek: enable Resize vertical wm resizable $w 0 1 ::windows::stats::ConfigMenus ::windows::stats::Refresh } proc ::windows::stats::Refresh {} { variable display if {[winfo exists .playerInfoWin]} { ::pinfo::playerInfo } ::windows::gamelist::Refresh ::maint::Refresh updateStatusBar ::tools::graphs::filter::Refresh #Klimmek. Update Absfilter window ::tools::graphs::absfilter::Refresh if {! [winfo exists .statsWin]} { return } # Set up variables for translated phrases: set all [::utils::string::Capital $::tr(allGames)] set both $::tr(OprepStatBoth) set since $::tr(OprepStatSince) set games [::utils::string::Capital $::tr(games)] set score [::utils::string::Capital $::tr(score)] # Find length of longest left-hand column: set alen [expr {[string length $all] + 1}] set blen [expr {[string length $both] + 7}] set slen [expr {[string length $since] + 12}] set len $alen if {$len < $blen} { set len $blen } if {$len < $slen} { set len $slen } set height 4 set ratings 0 set years 0 set rlist [lsort -decreasing [array names display r*]] set ylist [lsort [array names display y*]] foreach i $rlist { if {$display($i)} { set ratings 1 } } foreach i $ylist { if {$display($i)} { set years 1 } } if {$ratings} { incr height } if {$years} { incr height } set s "" set sm "\n" set stat "" append s " [::utils::string::Pad $stat [expr $len - 4]] [::utils::string::PadRight $games 10]" append s " 1-0 =-= 0-1 [::utils::string::PadRight $score 8]\n" append s "------------------------------------------------------------------------" append s "\n [::utils::string::Pad $all $len]" [sc_filter stats all] #Klimmek: New Statistic: Count the games in intervalls "start elo - end elo" # if elo is deselected in option menu, then enlarge the intervall to next selectet elo. #Klimmek: New Statistic: Count the games in intervalls if {$ratings} { append s "\n" set j 0 set k [lindex $rlist $j] while { $k!= "" && ! $display($k) } { incr j set k [lindex $ylist $j] if { $k == "" } { break } } set nelo [string range [lindex $rlist $j] 1 end] incr height #first line searches all games greater 2600 Elo set stat "min. Elo $nelo-3500" append s "\n [::utils::string::Pad $stat $len]" [sc_filter stats elo $nelo 9999] set stat "max. Elo $nelo-3500" append sm "\n [::utils::string::Pad $stat $len]" [sc_filter stats elo $nelo -9999] set j 0 foreach i $rlist { incr j if {$display($i)} { incr height set elo [string range $i 1 end] set l $j set k [lindex $rlist $l] while { $k!= "" && ! $display($k) } { incr l set k [lindex $rlist $l] if { $k == "" } { break } } set nelo [string range [lindex $rlist $l] 1 end] if { $nelo == "" } { set nelo 0 } #count all games where player whith lowest Elo is in the specific range set stat "min. Elo $nelo-$elo" append s "\n [::utils::string::Pad $stat $len]" [sc_filter stats elo $nelo $elo] set stat "max. Elo $nelo-$elo" #count all games where player whith highest Elo is in the specific range # +10000 workaround to trigger max elo in filter function append sm "\n [::utils::string::Pad $stat $len]" [sc_filter stats elo $nelo [expr {$elo + 10000}]] } } } append s $sm #Klimmek: New Statistic: Count the games in intervalls "from year - to year" # if year is deselected in option menu, then enlarge the intervall to next selectet year. if {$years} { append s "\n" set j 0 foreach i $ylist { incr j if {$display($i)} { incr height set year [string range $i 1 end] set l $j set k [lindex $ylist $l] while { $k!= "" && ! $display($k) } { incr l set k [lindex $ylist $l] if { $k == "" } { break } } set nyear [string range $k 1 end] if { $nyear == "" } { set nyear 2099 } set stat "$year - $nyear" append s "\n [::utils::string::Pad $stat $len]" [sc_filter stats year $year $nyear] } } } #Old statistic: count the games from specific value to maximum value set stat "" append s "\n\n" append s " [::utils::string::Pad $stat [expr $len - 4]] [::utils::string::PadRight $games 10]" append s " 1-0 =-= 0-1 [::utils::string::PadRight $score 8]\n" append s "------------------------------------------------------------------------" append s "\n [::utils::string::Pad $all $len]" [sc_filter stats all] if {$ratings} { append s "\n" foreach i $rlist { if {$display($i)} { incr height set elo [string range $i 1 end] set stat "$both $elo+" append s "\n [::utils::string::Pad $stat $len]" [sc_filter stats elo $elo 0] } } } if {$years} { append s "\n" foreach i $ylist { if {$display($i)} { incr height set year [string range $i 1 end] set stat "$since $year.01.01" append s "\n [::utils::string::Pad $stat $len]" [sc_filter stats year $year 0] } } } append s "\n" set w .statsWin.stats if { $height > 50 } { set height 50 } $w configure -state normal $w delete 1.0 end $w insert end $s $w tag configure blue -foreground darkBlue $w tag configure red -foreground red $w tag add blue 1.0 2.0 $w tag add red 2.0 3.0 $w configure -height $height $w configure -state disabled } proc ::windows::stats::ConfigMenus {{lang ""}} { if {! [winfo exists .statsWin]} { return } if {$lang == ""} { set lang $::language } set m .statsWin.menu foreach idx {0 1} tag {File Opt} { configMenuText $m $idx Stats$tag $lang } foreach idx {0 2} tag {Print Close} { configMenuText $m.file $idx StatsFile$tag $lang } } scid-4.3.0.cvs20120311/tcl/windows/comment.tcl0000644000175000017500000003664611727223077020077 0ustar oliveroliver############################################################ ### Comment Editor window namespace eval ::commenteditor { namespace export open close update storeComment addNag # List of colors and types used to mark a square variable colorList {} markTypeList {} lappend colorList red orange yellow \ green blue darkBlue \ purple white black # Each list is a set of buttons in the dialog menu: lappend markTypeList [list full circle disk x + - = ? !] lappend markTypeList [list 1 2 3 4 5 6 7 8 9] # IO state of the comment editor variable State array set State [list isOpen 0 \ markColor red markType full text "" \ pending ""] proc addMark {args} {eval ::board::mark::add $args} proc delMark {args} {eval ::board::mark::remove $args} } proc ::commenteditor::addNag {nag} { if {![winfo exists .commentWin]} { return } .commentWin.nf.tf.text insert end "$nag " ::commenteditor::storeComment ::pgn::Refresh 1 } proc makeCommentWin {} { if {[winfo exists .commentWin]} { # ::commenteditor::close focus . destroy .commentWin } else { ::commenteditor::Open } } proc ::commenteditor::toggleboard { } { if {$::commenteditor::showboard == 1} { pack forget .commentWin.markFrame set ::commenteditor::showboard 0 } else { pack .commentWin.markFrame -fill both -expand 1 -padx 1 -anchor n -before .commentWin.nf -side left set ::commenteditor::showboard 1 } } # ::commenteditor::Open -- # proc ::commenteditor::Open {} { global commentWin highcolor helpMessage variable colorList variable markTypeList variable State set commentWin 1 set State(isOpen) 1 if {[winfo exists .commentWin]} { focus .commentWin.cf.text return } set w .commentWin ::createToplevel $w setWinLocation $w set mark [ttk::frame $w.markFrame] if {$::commenteditor::showboard == 1} { pack $mark -side left -fill both -expand 1 -padx 1 -anchor n } # Comment frame: ttk::frame $w.cf text $w.cf.text -width $::winWidth($w) -height $::winHeight($w) -background white -wrap word -font font_Regular \ -yscrollcommand ".commentWin.cf.scroll set" -setgrid 1 ttk::scrollbar $w.cf.scroll -command ".commentWin.cf.text yview" ttk::label $w.cf.label -font font_Bold -textvar ::tr(Comment) bindFocusColors $w.cf.text bind $w.cf.text { .commentWin.b.close invoke } bind $w.cf.text { .commentWin.b.store invoke } bind $w.cf.text { ::commenteditor::storeComment } bind $w {::commenteditor::storeComment; sc_var create; updateBoard -pgn} bind $w.cf.text {::commenteditor::storeComment; ::move::Back} bind $w.cf.text {::commenteditor::storeComment; ::move::Forward} # switch to the NAG entry bind $w.cf.text { focus .commentWin.nf.tf.text } bind $w.cf.text { ::commenteditor::toggleboard } # NAG frame: ttk::frame $w.nf -width 100 ttk::frame $w.nf.tf ttk::entry $w.nf.tf.text -width 20 -background white bindFocusColors $w.nf.tf.text bind $w.nf.tf.text { .commentWin.b.close invoke } # switch to the edit frame bind $w.nf.tf.text { focus .commentWin.cf.text } set nagbox $w.nf.tf.text set nagbuttons $w.nf.b ttk::frame $w.nf.b set i 0 set row 0 set column 0 foreach {nag description} { ! GoodMove ? PoorMove !! ExcellentMove ?? Blunder !? InterestingMove ?! DubiousMove +-- WhiteCrushing --+ BlackCrushing +- WhiteDecisiveAdvantage -+ BlackDecisiveAdvantage +/- WhiteClearAdvantage -/+ BlackClearAdvantage += WhiteSlightAdvantage =+ BlackSlightAdvantage = Equality ~ Unclear N Novelty D Diagram } { ttk::button $nagbuttons.b$i -takefocus 0 -text "$nag" -width 2 -command [namespace code [list addNag "$nag"]] # set helpMessage(E,$nagbuttons.b$i) $description ::utils::tooltip::Set $nagbuttons.b$i $description grid $nagbuttons.b$i -row [expr {$i % 2}] -column [expr {int($i / 2)}] -padx 2 -pady 2 incr i } ttk::label $w.nf.label -font font_Bold -textvar ::tr(AnnotationSymbols) pack $w.nf -side top -pady 1 -expand 0 #addHorizontalRule $w ttk::button $w.nf.tf.clear -textvar ::tr(Clear) -command { .commentWin.nf.tf.text delete 0 end ::commenteditor::storeComment ::pgn::Refresh 1 updateBoard } set helpMessage(E,$w.nf.tf.clear) {Clear all symbols for this move} pack $w.nf.label -side top -expand 0 pack $w.nf.tf -side top pack $w.nf.tf.text -side left pack $w.nf.tf.clear -side right -padx 20 -pady 5 pack $w.nf.b -side top ttk::frame $w.b pack $w.b -side bottom -ipady 4 -expand 0 -padx 1 pack $w.cf -side top -expand 1 -fill both pack $w.cf.label -side top -pady 2 pack $w.cf.scroll -side right -fill y pack $w.cf.text -side right -expand 1 -fill both # Main buttons: ttk::button $w.b.showboard -image tb_coords -command { ::commenteditor::toggleboard } dialogbutton $w.b.clear -textvar ::tr(Clear) -command [namespace code [list ClearComments .commentWin]] set helpMessage(E,$w.b.clear) {Clear this comment} dialogbutton $w.b.revert -textvar ::tr(Revert) -command ::commenteditor::Refresh set helpMessage(E,$w.b.revert) {Revert to the stored comment} dialogbutton $w.b.store -textvar ::tr(Store) -command [namespace code {storeComment; ::pgn::Refresh 1; updateBoard}] set helpMessage(E,$w.b.store) {Store this comment in the game} ttk::frame $w.b.space -width 10 dialogbutton $w.b.close -textvar ::tr(Close) -command { focus .; destroy .commentWin} set helpMessage(E,$w.b.close) {Close the comment editor window} pack $w.b.close $w.b.space $w.b.store $w.b.revert $w.b.clear $w.b.showboard -side right -padx 1 ### Insert-mark frame ttk::label $mark.header -font font_Bold -text $::tr(InsertMark:) pack $mark.header -side top -ipady 1 -fill x -padx 1 # pack [ttk::frame $mark.usage] -side bottom -pady 1 -expand true # pack [ttk::label $mark.usage.text -text [string trim $::tr(InsertMarkHelp)] -justify left] ::utils::tooltip::Set $mark.header [string trim $::tr(InsertMarkHelp)] # Subframes for insert board and two button rows: pack [ttk::frame [set colorButtons $mark.colorButtons]] -side top -pady 1 -anchor n pack [ttk::frame [set insertBoard $mark.insertBoard]] -side top -pady 1 pack [ttk::frame [set typeButtons $mark.typeButtons]] -side top -pady 1 -anchor s # Left subframe: color (radio)buttons foreach color $colorList { image create photo markColor_$color -width 18 -height 18 markColor_$color put $color -to 1 1 16 16 radiobutton $colorButtons.c$color -image markColor_$color -variable [namespace current]::State(markColor) \ -value $color -takefocus 0 -command [namespace code [list SetMarkColor $color]] -indicatoron 0 pack $colorButtons.c$color -side left -padx 0 -pady 3 } # Central subframe: a small board set board [::board::new $insertBoard.board 25] ::board::showMarks $board 1 set ::board::_mark($board) $::board::_mark(.main.board) ::board::update $board pack $board -side top for {set square 0} {$square < 64} {incr square} { ::board::bind $board $square [namespace code [list InsertMark $board $square]] ::board::bind $board $square [namespace code [list ButtonReleased $board %b %X %Y]] ::board::bind $board $square [namespace code [list InsertMark $board [expr {$square + 64}]]] } # Right subframe: type/shape (pseudo-radio)buttons set size 20 ;# button/rectangle size pack [set types [ttk::frame $typeButtons.all]] -side left -padx 10 set row 0 foreach buttons $markTypeList { set column 0 foreach shape $buttons { set color [::board::defaultColor [expr {($column + $row) % 2}]] # Create and draw a button: set button [ttk::frame $types.button_${shape} -class PseudoButton] grid $button -row $row -column $column -padx 1 -pady 1 # The "board" is a 1x1 board, containing one single square. set board1x1 [canvas $button.bd -height $size -width $size -highlightthickness 0 -borderwidth 1 -relief raised] $board1x1 create rectangle 0 0 $size $size -fill $color -outline "" -tag [list sq0 button${shape}] ::board::mark::add $types.button_${shape} $shape 0 $State(markColor) "false" pack $board1x1 bind $board1x1 [namespace code [list SetMarkType $board $shape]] incr column } ;# foreach shape incr row } ;# foreach button_line # "Press" button: SetMarkType $board $State(markType) # Add bindings at the end, especially bind $w {helpWindow Comment} bind $w {helpWindow NAGs} bind $w [namespace code {set commentWin 0; set State(isOpen) 0}] bind $w "recordWinSize $w" ### Start editing ::setTitle $w "Scid: [tr {Comment editor}]" wm iconname $w "Scid: [tr {Comment editor}]" ::commenteditor::Refresh focus $w.cf.text ::createToplevelFinalize $w } # ::commenteditor::SetMarkColor -- # # Called when a color is selected. # # Arguments: # color The selected color. # Results: # TODO # proc ::commenteditor::SetMarkColor {color} { variable markTypeList variable State set path .commentWin.markFrame.typeButtons.all set square 0 ;# square number of a 1x1-board foreach buttons $markTypeList { foreach shape $buttons { set button $path.button_${shape} if {$shape == "square"} { $button.bd itemconfigure sq$square \ -fill $color -outline $color } else { $button.bd delete mark addMark $button $shape $square $color "false" } } } set State(markColor) $color } # ::commenteditor::SetMarkType -- # # Arguments: # board The frame variable of the board. # type The selected type/shape, e.g. "circle", "1", etc. # Results: # TODO # proc ::commenteditor::SetMarkType {board type} { variable State set cur_type $State(markType) set path .commentWin.markFrame.typeButtons.all $path.button_${cur_type}.bd configure -relief raised $path.button_${type}.bd configure -relief sunken set State(markType) $type } # ::commenteditor::InsertMark -- # # Called when a square is selected on the insert board. # # Arguments: # board The frame variable of the board. # from Number (0-63) of the selected square # (+64 if right mouse button used). # to Number of destination square (0-63) if an # arrow is to be drawn (+64 if right mouse button). # Results: # TODO # proc ::commenteditor::InsertMark {board square} { variable State set textwin .commentWin.cf.text if {![string length $State(pending)]} { set State(pending) $square return } # Right mouse click results in square-no + 64: set from [expr {$State(pending) % 64}] set to [expr {$square % 64}] set key $::board::mark::Command array set tag [list remove 0 value {}] if {$square == $State(pending)} { if {$square >= 64} { return } if {[lsearch [$textwin tag names] $square] >= 0} { array set tag [list remove 1 value $square] delMark $board $square } else { set tag(value) $square addMark $board $State(markType) $square $State(markColor) set to [::board::san $square] set State(text) "\[%$key $State(markType),$to,$State(markColor)\]" } } else { if {($square & 64) != ($State(pending) & 64)} { if {$square < 64} { set State(pending) $square } return } if {[lsearch [$textwin tag names] ${from}:${to}] >= 0} { set tag(remove) 1 set tag(value) [list ${from}:${to} ${to}:${from}] delMark $board $from $to } else { set tag(value) [list ${from}:${to} ${to}:${from}] addMark $board arrow $from $to $State(markColor) set from [::board::san $from] set to [::board::san $to] set State(text) "\[%$key arrow,$from,$to,$State(markColor)\]" } } set State(pending) "" if {$tag(remove)} { set remove [lindex $tag(value) 0] if [llength [$textwin tag range $remove]] { $textwin delete $remove.first $remove.last } eval $textwin tag delete $tag(value) } else { $textwin insert insert $State(text) $tag(value) } } # ::commenteditor::ClearComments -- # # Called when the 'Clear' button is pressed. # # Arguments: # win The window variable. # Results: # Clears text area and chess board of the comment editor. # proc ::commenteditor::ClearComments {win} { ${win}.cf.text delete 0.0 end set board ${win}.markFrame.insertBoard.board ::board::setmarks $board "" ::board::update $board } # ::commenteditor::ButtonReleased -- # # Auxiliary routine: # Called when a button is released over a square. # # Arguments: # board The frame variable of the board. # button The number (%b) of the button that was released. # x_root The x-coodinate (%X) from the event. # y_root The y-coodinate (%Y) from the event. # Results: # proc ::commenteditor::ButtonReleased {board button x_root y_root} { set square [::board::getSquare $board $x_root $y_root] if {$square < 0} { set $State(pending) "" return } if {$button != 1} {set square [expr {$square + 64}]} InsertMark $board $square } # ::commenteditor::storeComment -- # # Set the comment of the current position to # the text of the commenteditor. # proc ::commenteditor::storeComment {} { if {![winfo exists .commentWin]} { return } set nag [sc_pos getNags] if {$nag == "0"} { set nag "" } if { $nag != [.commentWin.nf.tf.text get] } { sc_pos clearNags foreach i [split [.commentWin.nf.tf.text get] " "] { sc_pos addNag $i } } # The "end-1c" below is because Tk adds a newline to text contents: set newComment [.commentWin.cf.text get 1.0 end-1c] set oldComment [sc_pos getComment] if {[string compare $oldComment $newComment]} { sc_pos setComment $newComment updateStatusBar ::pgn::Refresh 1 updateBoard } } # ::commenteditor::Refresh -- # # (Re)builds textwindow and board of the comment editor. # proc ::commenteditor::Refresh {} { if {![winfo exists .commentWin]} { return } set nag [sc_pos getNags] .commentWin.nf.tf.text configure -state normal .commentWin.nf.tf.text delete 0 end if {$nag != "0"} { .commentWin.nf.tf.text insert end $nag } # if at vstart, disable NAG codes if {[sc_pos isAt vstart]} { set state "disabled" } else { set state "normal" } foreach c [winfo children .commentWin.nf.tf] { $c configure -state $state } foreach c [winfo children .commentWin.nf.b] { $c configure -state $state } # Rewrite text window, tag embedded commands, # and draw marks according to text window commands. set text .commentWin.cf.text set board .commentWin.markFrame.insertBoard.board set comment [sc_pos getComment] set offset 0 ::board::setmarks $board $comment $text delete 1.0 end foreach {mark pos} [::board::mark::getEmbeddedCmds $comment] { foreach {type square arg color} $mark {begin end} $pos {break} ;# set set square [::board::sq $square] regsub -all -- {[^[:alnum:]]} $color {_} _color switch -- $type { arrow { set arg [::board::sq $arg] set tags [list ${square}:${arg} ${arg}:${square} \ ${square}:${arg}:$_color] } default { set tags [list $square ${square}:$type:$_color] } } $text insert insert [string range $comment $offset [expr {$begin-1}]] $text insert insert [string range $comment $begin $end] $tags set offset [expr {$end + 1}] } $text insert insert [string range $comment $offset end] ::board::update $board [sc_pos board] } ### End of namespace ::commenteditor scid-4.3.0.cvs20120311/tcl/windows/tourney.tcl0000644000175000017500000003323311727223077020127 0ustar oliveroliver #################### # Tournament window namespace eval ::tourney {} foreach {n v} {start 0000.00.00 end 2047.12.31 minPlayers 2 maxPlayers 999 \ minGames 1 maxGames 9999 minElo 0 maxElo 4000 sort Date \ country "" site "" event "" player "" size 50} { set ::tourney::$n $v } trace variable ::tourney::start w ::utils::validate::Date trace variable ::tourney::end w ::utils::validate::Date foreach {n v} {minPlayers 999 maxPlayers 999 minGames 9999 maxGames 9999 \ minElo [sc_info limit elo] maxElo [sc_info limit elo]} { trace variable ::tourney::$n w [list ::utils::validate::Integer $v 0] } set tourneyWin 0 proc ::tourney::toggle {} { set w .tourney if {[winfo exists $w]} { destroy $w } else { ::tourney::Open } } proc ::tourney::Open {} { global tourneyWin set w .tourney if {[winfo exists $w]} { return } set tourneyWin 1 if {! [info exists ::tourney::_defaults]} { ::tourney::defaults } toplevel $w wm title $w "Scid: [tr WindowsTmt]" setWinLocation $w bind $w "recordWinSize $w" bind $w {helpWindow Tmt} bind $w "$w.b.close invoke" bind $w ::tourney::refresh bind $w { set tourneyWin 0 } standardShortcuts $w bind $w "$w.t.text yview scroll -1 units" bind $w "$w.t.text yview scroll 1 units" bind $w "$w.t.text yview scroll -1 pages" bind $w "$w.t.text yview scroll 1 pages" bind $w "$w.t.text yview moveto 0" bind $w "$w.t.text yview moveto 0.99" bindMouseWheel $w $w.t.text menu $w.menu $w configure -menu $w.menu $w.menu add cascade -label TmtFile -menu $w.menu.file menu $w.menu.file $w.menu.file add command -label TmtFileUpdate -command ::tourney::refresh $w.menu.file add command -label TmtFileClose -command "destroy $w" $w.menu add cascade -label TmtSort -menu $w.menu.sort menu $w.menu.sort foreach name {Date Players Games Elo Site Event Winner} { $w.menu.sort add radiobutton -label TmtSor$name \ -variable ::tourney::sort -value $name -command {::tourney::refresh -fast} } foreach i {t o1 o2 o3 b} {frame $w.$i} text $w.t.text -width 75 -height 22 -font font_Small -wrap none \ -fg black -bg white -yscrollcommand "$w.t.ybar set" -setgrid 1 \ -cursor top_left_arrow -xscrollcommand "$w.t.xbar set" scrollbar $w.t.ybar -command "$w.t.text yview" -width 12 -takefocus 0 scrollbar $w.t.xbar -orient horiz -command "$w.t.text xview" -width 12 \ -takefocus 0 set xwidth [font measure [$w.t.text cget -font] "0"] set tablist {} foreach {tab justify} {3 r 4 l 18 r 23 r 30 r 32 l 55 l} { set tabwidth [expr {$xwidth * $tab} ] lappend tablist $tabwidth $justify } $w.t.text configure -tabs $tablist $w.t.text tag configure date -foreground darkRed $w.t.text tag configure np -foreground darkBlue $w.t.text tag configure elo -foreground darkGreen $w.t.text tag configure best -foreground steelBlue $w.t.text tag configure event -foreground darkRed $w.t.text tag configure title -font font_SmallBold set font font_Small set fbold font_SmallBold set f $w.o1 label $f.from -text "[tr TmtSortDate]:" -font $fbold entry $f.efrom -textvariable ::tourney::start -width 10 -font $font bindFocusColors $f.efrom bind $f.efrom +::tourney::check label $f.to -text "-" -font $font entry $f.eto -textvariable ::tourney::end -width 10 -font $font bindFocusColors $f.eto bind $f.eto +::tourney::check pack $f.from $f.efrom $f.to $f.eto -side left label $f.cn -text " $::tr(Country):" -font $fbold ttk::combobox $f.ecn -width 4 -textvar ::tourney::country -values {{} AUT CZE DEN ENG ESP FRA GER GRE HUN ITA NED POL RUS \ SCG SUI SWE USA YUG} bindFocusColors $f.ecn bind $f.ecn +::tourney::check pack $f.cn $f.ecn -side left label $f.size -text $::tr(TmtLimit:) -font $fbold ttk::combobox $f.esize -width 4 -justify right -textvar ::tourney::size -values {10 20 50 100 200 500 1000} trace variable ::tourney::size w {::utils::validate::Integer 1000 0} bindFocusColors $f.esize pack $f.esize $f.size -side right set f $w.o2 label $f.players -text "[tr TmtSortPlayers]:" -font $fbold entry $f.pmin -textvariable ::tourney::minPlayers \ -width 3 -justify right -font $font bindFocusColors $f.pmin bind $f.pmin +::tourney::check label $f.pto -text "-" entry $f.pmax -textvariable ::tourney::maxPlayers \ -width 3 -justify right -font $font bindFocusColors $f.pmax bind $f.pmax +::tourney::check pack $f.players $f.pmin $f.pto $f.pmax -side left label $f.games -text " [tr TmtSortGames]:" -font $fbold entry $f.gmin -textvariable ::tourney::minGames \ -width 4 -justify right -font $font bindFocusColors $f.gmin bind $f.gmin +::tourney::check label $f.gto -text "-" -font $font entry $f.gmax -textvariable ::tourney::maxGames \ -width 4 -justify right -font $font bindFocusColors $f.gmax bind $f.gmax +::tourney::check pack $f.games $f.gmin $f.gto $f.gmax -side left label $f.elolab -text "$::tr(TmtMeanElo):" -font $fbold entry $f.elomin -textvariable ::tourney::minElo \ -width 5 -justify right -font $font bindFocusColors $f.elomin label $f.eto -text "-" -font $font entry $f.elomax -textvariable ::tourney::maxElo \ -width 5 -justify right -font $font bindFocusColors $f.elomax pack $f.elomax $f.eto $f.elomin $f.elolab -side right set f $w.o3 label $f.sitelab -text "$::tr(Site):" -font $fbold ttk::combobox $f.site -textvariable ::tourney::site -width 12 ::utils::history::SetCombobox ::tourney::site $f.site bindFocusColors $f.site pack $f.sitelab $f.site -side left label $f.eventlab -text " $::tr(Event):" -font $fbold ttk::combobox $f.event -textvariable ::tourney::event -width 12 ::utils::history::SetCombobox ::tourney::event $f.event bindFocusColors $f.event pack $f.eventlab $f.event -side left label $f.playerlab -text "$::tr(Player):" -font $fbold ttk::combobox $f.player -textvariable ::tourney::player -width 12 ::utils::history::SetCombobox ::tourney::player $f.player bindFocusColors $f.player pack $f.player $f.playerlab -side right focus $f.site dialogbutton $w.b.defaults -textvar ::tr(Defaults) -command ::tourney::defaults dialogbutton $w.b.help -textvar ::tr(Help) -command {helpWindow Tmt} dialogbutton $w.b.update -textvar ::tr(Update) -command ::tourney::refresh dialogbutton $w.b.close -textvar ::tr(Close) -command "destroy $w" pack $w.b -side bottom -fill x packbuttons right $w.b.close $w.b.update $w.b.help packbuttons left $w.b.defaults pack $w.o3 -side bottom -fill x -padx 2 -pady 2 pack $w.o2 -side bottom -fill x -padx 2 -pady 2 pack $w.o1 -side bottom -fill x -padx 2 -pady 2 pack $w.t -side top -fill both -expand yes grid $w.t.text -row 0 -column 0 -sticky news grid $w.t.ybar -row 0 -column 1 -sticky news grid $w.t.xbar -row 1 -column 0 -sticky news grid rowconfig $w.t 0 -weight 1 -minsize 0 grid columnconfig $w.t 0 -weight 1 -minsize 0 ::tourney::ConfigMenus ::tourney::refresh } proc ::tourney::ConfigMenus {{lang ""}} { set w .tourney if {! [winfo exists $w]} { return } if {$lang == ""} { set lang $::language } set m $w.menu foreach idx {0 1} tag {File Sort} { configMenuText $m $idx Tmt$tag $lang } foreach idx {0 2} tag {Update Close} { configMenuText $m.file $idx TmtFile$tag $lang } foreach idx {0 1 2 3 4 5 6} tag {Date Players Games Elo Site Event Winner} { configMenuText $m.sort $idx TmtSort$tag $lang } } proc ::tourney::defaults {} { set ::tourney::_defaults 1 set year [::utils::date::today year] #set ::tourney::start "$year.??.??" set ::tourney::start "1800.??.??" set ::tourney::end "$year.12.31" set ::tourney::size 50 set ::tourney::minPlayers 2 set ::tourney::maxPlayers 999 set ::tourney::minGames 1 set ::tourney::maxGames 9999 set ::tourney::minElo 0 set ::tourney::maxElo 4000 set ::tourney::country "" set ::tourney::site "" set ::tourney::event "" set ::tourney::player "" } proc ::tourney::refresh {{option ""}} { set w .tourney if {! [winfo exists $w]} { return } busyCursor $w ::utils::history::AddEntry ::tourney::site $::tourney::site ::utils::history::AddEntry ::tourney::event $::tourney::event ::utils::history::AddEntry ::tourney::player $::tourney::player set t $w.t.text $t configure -state normal $t delete 1.0 end update set fastmode 0 if {$option == "-fast"} { set fastmode 1 } if {$fastmode && $::tourney::list != ""} { set tlist $::tourney::list } else { if {[catch {sc_base tournaments \ -start $::tourney::start \ -end $::tourney::end \ -size 2500 \ -minPlayers $::tourney::minPlayers \ -maxPlayers $::tourney::maxPlayers \ -minGames $::tourney::minGames \ -maxGames $::tourney::maxGames \ -minElo $::tourney::minElo \ -maxElo $::tourney::maxElo \ -country [string toupper $::tourney::country] \ -site $::tourney::site \ -event $::tourney::event \ -player $::tourney::player \ } tlist]} { $t insert end $tlist $t configure -state disabled unbusyCursor . return } set ::tourney::list $tlist } switch $::tourney::sort { "None" {} "Date" { set tlist [lsort -decreasing -index 0 $tlist] } "Players" { set tlist [lsort -integer -decreasing -index 3 $tlist] } "Games" { set tlist [lsort -integer -decreasing -index 4 $tlist] } "Elo" { set tlist [lsort -integer -decreasing -index 5 $tlist] } "Site" { set tlist [lsort -dict -index 1 $tlist] } "Event" { set tlist [lsort -dict -index 2 $tlist] } "Winner" { set tlist [lsort -dict -index 7 $tlist] } } if {[llength $tlist] > 0} { foreach i {Date Players Games Elo Site Event Winner} { $t tag configure s$i -font font_SmallBold $t tag bind s$i <1> "set ::tourney::sort $i; ::tourney::refresh -fast" $t tag bind s$i "$t tag config s$i -foreground red" $t tag bind s$i "$t tag config s$i -foreground {}" } $t insert end "\t\t" $t insert end [tr TmtSortDate] sDate $t insert end "\t" $t insert end [tr TmtSortPlayers] sPlayers $t insert end "\t" $t insert end [tr TmtSortGames] sGames $t insert end "\t" $t insert end [tr TmtSortElo] sElo $t insert end "\t" $t insert end [tr TmtSortSite] sSite $t insert end ": " $t insert end [tr TmtSortEvent] sEvent $t insert end "\t" $t insert end [tr TmtSortWinner] sWinner $t insert end "\n" } else { $t insert end $::tr(TmtNone) } set hc yellow set count 0 foreach tmt $tlist { incr count if {$count > $::tourney::size} { break } set date [lindex $tmt 0] set site [lindex $tmt 1] set event [lindex $tmt 2] set np [lindex $tmt 3] set ng [lindex $tmt 4] set elo [lindex $tmt 5] set g [lindex $tmt 6] set white [::utils::string::Surname [lindex $tmt 7]] set welo [lindex $tmt 8] set wscore [lindex $tmt 9] set black [::utils::string::Surname [lindex $tmt 10]] set belo [lindex $tmt 11] set bscore [lindex $tmt 12] if {$welo > 0} { append white "($welo)" } if {$belo > 0} { append black "($belo)" } append white " $wscore" append black " $bscore" set one "1." set two "2." if {$wscore == $bscore} { set one "1="; set two "1=" } set best "$one $white, $two $black, ..." if {$np == 2} { set best "$one $white, $two $black" } $t tag bind g$count [list ::tourney::select $g] $t tag bind g$count [list ::tourney::select $g 1] $t tag bind g$count \ "$t tag configure g$count -background $hc" $t tag bind g$count \ "$t tag configure g$count -background {}" $t insert end "\n" $t insert end "\t$count\t" g$count $t insert end $date [list date g$count] $t insert end "\t" g$count $t insert end $np [list np g$count] $t insert end "\t" g$count $t insert end $ng [list ng g$count] $t insert end "\t" g$count $t insert end $elo [list elo g$count] $t insert end "\t" g$count $t insert end "$site: " [list site g$count] $t insert end "$event" [list event g$count] $t insert end "\t$best" [list best g$count] } $t insert end "\n" $t configure -state disabled unbusyCursor . } proc ::tourney::check {} { set start $::tourney::start set end $::tourney::end if {[string length $start] == 0} { set start "0000" } if {[string length $end] == 0} { set end [sc_info limit year]} if {[string length $start] == 4} { append start ".??.??" } if {[string length $end] == 4} { append end ".12.31" } if {[string length $start] == 7} { append start ".??" } if {[string length $end] == 7} { append end ".31" } set ::tourney::start $start set ::tourney::end $end if {$::tourney::minPlayers < 2} {set ::tourney::minPlayers 2} if {$::tourney::minPlayers > $::tourney::maxPlayers} { set ::tourney::maxPlayers $::tourney::minPlayers } set s $::tourney::country set s [string toupper [string trim $s]] if {[string length $s] > 3} { set s [string range $s 0 2] } set ::tourney::country $s if {$::tourney::country == "---"} { set ::tourney::country "" } } proc ::tourney::select {gnum {openCrosstable 0}} { if {[catch {::game::Load $gnum} result]} { tk_messageBox -type ok -icon info -title "Scid" -message $result return } flipBoardForPlayerNames $::myPlayerNames updateBoard -pgn updateTitle if {$openCrosstable} { crosstabWin } else { ::crosstab::RefreshIfOpen } } scid-4.3.0.cvs20120311/tcl/windows/eco.tcl0000644000175000017500000002147111727223077017171 0ustar oliveroliver #################### # ECO Browser window set ::windows::eco::code "" set ::windows::eco::count 0 set ::windows::eco::isOpen 0 proc ::windows::eco::OpenClose {} { if {[winfo exists .ecograph]} { destroy .ecograph } else { ::windows::eco::Refresh } } # ::windows::eco::Refresh # # Updates the ECO Browser window, opening it if necessary. # If the ECO code "code" is "x", then the value of the # variable ::windows::eco::code is used instead. # proc ::windows::eco::Refresh {{code "x"}} { set w .ecograph set graph $w.pane.graph set text $w.pane.text if {$code != "x"} { set ::windows::eco::code $code } if {! [winfo exists $w]} { set ::windows::eco::isOpen 1 ::createToplevel $w wm minsize $w 200 100 setWinLocation $w bind $w "destroy $w" bind $w {helpWindow ECO} bind $w {set ::windows::eco::isOpen 0} text $w.title -relief flat -height 1 -width 1 -wrap word -font font_Bold $w.title tag configure center -justify center $w.title configure -cursor top_left_arrow pack $w.title -side top -fill x ttk::frame $w.b pack $w.b -side bottom -fill x ttk::button $w.b.classify -textvar ::tr(ReclassifyGames) -command classifyAllGames dialogbutton $w.b.help -textvar ::tr(Help) -command {helpWindow ECO} dialogbutton $w.b.close -textvar ::tr(Close) -command "destroy $w" pack $w.b.classify -side left -padx 5 -pady 5 packbuttons right $w.b.close $w.b.help set pane [::utils::pane::Create $w.pane graph text 500 400 0.5] ::utils::pane::SetRange $w.pane 0.3 0.7 ::utils::pane::SetDrag $w.pane 0 pack $pane -side top -expand true -fill both canvas $graph.c -width 500 -height 250 pack $graph.c -side top -fill both -expand yes text $text.text -height 12 -width 75 -wrap word -font font_Regular \ -background white -selectbackground lightBlue \ -yscroll "$text.ybar set" -xscroll "$text.xbar set" $text.text tag configure bold -font font_Bold $text.text tag configure indent -lmargin2 20 $text.text configure -cursor top_left_arrow ::htext::init $text.text ttk::scrollbar $text.ybar -command "$text.text yview" ttk::scrollbar $text.xbar -orient horizontal -command "$text.text xview" grid $text.text -row 0 -column 0 -sticky nesw grid $text.ybar -row 0 -column 1 -sticky nesw #grid $text.xbar -row 1 -column 0 -sticky nesw grid rowconfig $text 0 -weight 1 -minsize 0 grid columnconfig $text 0 -weight 1 -minsize 0 foreach i {0 1 2 3 4 5 6 7 8 9 A B C D E a b c d e f g h i j k l m n o p q r s t u v w x y z} { bind $w "::windows::eco::KeyPress $i" } foreach i {Left Delete less BackSpace} { bind $w {::windows::eco::KeyPress "<"} } bind $w {.ecograph.pane.text.text yview moveto 0} bind $w {.ecograph.pane.text.text yview moveto 1.0} bind $w {.ecograph.pane.text.text yview scroll -1 units} bind $w {.ecograph.pane.text.text yview scroll 1 units} bind $w {.ecograph.pane.text.text yview scroll -1 pages} bind $w {.ecograph.pane.text.text yview scroll 1 pages} standardShortcuts $w bindMouseWheel $w $w.pane.text.text bind $graph.c <1> { ::windows::eco::Select %x } bind $graph.c <$::MB3> { ::windows::eco::KeyPress "<" } bind $graph { ::utils::graph::configure eco -height [expr {[winfo height .ecograph.pane.graph.c] - 50} ] ::utils::graph::configure eco -width [expr {[winfo width .ecograph.pane.graph.c] - 60} ] ::utils::graph::redraw eco } bind $w { ::utils::graph::configure eco -height [expr {[winfo height .ecograph.pane.graph.c] - 50} ] ::utils::graph::configure eco -width [expr {[winfo width .ecograph.pane.graph.c] - 60} ] ::utils::graph::redraw eco } ::setTitle $w "Scid: [tr WindowsECO]" ::utils::graph::create eco -width 1 -height 1 -xtop 50 -ytop 20 \ -xmin 0.5 -xtick 1 -ytick 5 -font font_Small -canvas $graph.c update ::createToplevelFinalize $w } set height [expr {[winfo height $graph.c] - 50} ] set width [expr {[winfo width $graph.c] - 60} ] set code $::windows::eco::code # Collect data: set len [string length $code] set subcodes {} if {$len == 0} { set subcodes {A B C D E} } elseif {$len == 1 || $len == 2} { set subcodes {0 1 2 3 4 5 6 7 8 9} } elseif {$len == 3} { set subcodes {a b c d e f g h i j k l m n o p q r s t u v w x y z} } set xlabels {} set count 0 set data {} set maxfreq 1 set wins {} set draws {} foreach i $subcodes { set subcode "$code$i" set stats [sc_base ecoStats $subcode] set freq [lindex $stats 0] incr count lappend data $count lappend data $freq lappend wins $count lappend wins [lindex $stats 1] lappend draws $count lappend draws [expr {[lindex $stats 1] + [lindex $stats 2] + [lindex $stats 4]} ] if {$freq > $maxfreq} {set maxfreq $freq} if {$len == 3} { set subcode $i } lappend xlabels [list $count $subcode] } set hline 5 if {$maxfreq > 20} { set hline 10 } if {$maxfreq > 50} { set hline 25 } if {$maxfreq > 100} { set hline 50 } if {$maxfreq > 200} { set hline 100 } if {$maxfreq > 500} { set hline 250 } if {$maxfreq > 1000} { set hline 500 } if {$maxfreq > 2000} { set hline 1000 } if {$maxfreq > 5000} { set hline 2500 } if {$maxfreq > 10000} { set hline 5000 } if {$maxfreq > 20000} { set hline 10000 } if {$maxfreq > 50000} { set hline 25000 } if {$maxfreq > 100000} { set hline 50000 } ::utils::graph::create eco -width $width -height $height -xtop 50 -ytop 20 \ -xmin 0.5 -xtick 1 -ytick $hline -font font_Small -canvas $graph.c ::utils::graph::data eco data -color SteelBlue4 -points 0 -lines 0 -bars 1 \ -barwidth 0.8 -outline black -coords $data ::utils::graph::data eco draws -color SteelBlue3 -points 0 -lines 0 -bars 1 \ -barwidth 0.8 -outline black -coords $draws ::utils::graph::data eco wins -color SteelBlue1 -points 0 -lines 0 -bars 1 \ -barwidth 0.8 -outline black -coords $wins ::utils::graph::data eco bounds -points 0 -lines 0 -bars 0 -coords {1 0 1 1} ::utils::graph::configure eco -ymin 0 -xmin 0.4 -xmax [expr {$count + 0.6} ] \ -xlabels $xlabels -hline [list [list gray80 1 each $hline]] ::utils::graph::redraw eco $text.text configure -state normal $text.text delete 1.0 end set stats [sc_base eco $code] if {$len == 0} { set section $::tr(ECOAllSections) } elseif {$len < 3} { set section "$::tr(ECOSection) \"$code\"" } else { set section "$::tr(ECOCode) \"$code\"" } set header "
    $::tr(ECOSummary) $section
    " append header "[lindex $stats 0] $::tr(games): +[lindex $stats 1] =[lindex $stats 2] -[lindex $stats 3] ([lindex $stats 5]%)
    \n\n" ::htext::display $text.text "$header[sc_eco summary $code 1]" $text.text configure -state disabled $w.title configure -state normal $w.title delete 1.0 end $w.title insert end "$::tr(ECOFrequency) $section" center $w.title configure -state disabled set ::windows::eco::count $count } proc ::windows::eco::Select {xc} { variable count variable code set x [::utils::graph::xunmap eco $xc] set selection 0 for {set i 1} {$i <= $count} {incr i} { if {$x >= [expr {$i - 0.4} ] && $x <= [expr {$i + 0.4} ]} { set selection $i } } if {$selection == 0} { return } incr selection -1 set len [string length $code] if {$len == 0} { set code [lindex {A B C D E} $selection] } elseif {$len == 1 || $len == 2} { append code $selection } elseif {$len == 3} { append code [lindex {a b c d e f g h i j k l m n o p q r s t u v w x y z} $selection] } else { return } ::windows::eco::Refresh } # ::windows::eco::KeyPress # # Handles keyboard events in ECO browser window # proc ::windows::eco::KeyPress {key} { set code $::windows::eco::code set len [string length $code] if {$key == "<"} { set ::windows::eco::code [string range $code 0 [expr {$len - 2} ]] ::windows::eco::Refresh return } if {$key == "top"} { set ::windows::eco::code "" ::windows::eco::Refresh return } if {$len == 0} { set key [string toupper $key] switch $key { A - B - C - D - E { # nothing } default { set key "" } } } elseif {$len == 1 || $len == 2} { switch $key { 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 { # nothing } default { set key "" } } } elseif {$len == 3} { set key [string tolower $key] switch $key { a - b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y - z { # nothing } default { set key "" } } } if {$key != ""} { set ::windows::eco::code "$code$key" ::windows::eco::Refresh } } scid-4.3.0.cvs20120311/tcl/windows/tree.tcl0000644000175000017500000024655411727223077017375 0ustar oliveroliver ############################################################ ### TREE window ### (C) 2007 Pascal Georges : multiple Tree windows support namespace eval ::tree { set trainingBase 0 array set cachesize {} set scoreHighlight_MinGames 15 set scoreHighlight_WhiteExpectedScoreBonus 3.8 ; # on average white achieves a score of 53.8 set scoreHighlight_Margin 3.0 ; # if +/- this value, something special happened } # ################################################################################ proc ::tree::doConfigMenus { baseNumber { lang "" } } { if {! [winfo exists .treeWin$baseNumber]} { return } if {$lang == ""} { set lang $::language } set m .treeWin$baseNumber.menu foreach idx {0 1 2 3 4} tag {File Mask Sort Opt Help} { configMenuText $m $idx Tree$tag $lang } foreach idx {0 1 2 3 4 5 7 8 10 12} tag {Save Fill FillWithBase FillWithGame SetCacheSize CacheInfo Best Graph Copy Close} { configMenuText $m.file $idx TreeFile$tag $lang } foreach idx {0 1 2 3 4 5 6 7 8 9} tag {New Open OpenRecent Save Close FillWithGame FillWithBase Search Info Display} { configMenuText $m.mask $idx TreeMask$tag $lang } foreach idx {0 1 2 3} tag {Alpha ECO Freq Score } { configMenuText $m.sort $idx TreeSort$tag $lang } foreach idx {0 1 3 5 6 7} tag {Lock Training Autosave Slowmode Fastmode FastAndSlowmode} { configMenuText $m.opt $idx TreeOpt$tag $lang } foreach idx {0 1} tag {Tree Index} { configMenuText $m.helpmenu $idx TreeHelp$tag $lang } } # ################################################################################ proc ::tree::ConfigMenus { { lang "" } } { for {set i 1 } {$i <= [sc_base count total]} {incr i} { ::tree::doConfigMenus $i $lang } } ################################################################################ proc ::tree::menuCopyToSelection { baseNumber } { clipboard clear clipboard append [ .treeWin$baseNumber.f.tl get 1.0 end ] } ################################################################################ proc ::tree::treeFileSave {base} { busyCursor . update if {[catch {sc_tree write $base} result]} { tk_messageBox -type ok -icon warning -title "Scid: Error writing file" -message $result } unbusyCursor . } ################################################################################ proc ::tree::make { { baseNumber -1 } {locked 0} } { global tree treeWin highcolor geometry helpMessage if {$baseNumber == -1} {set baseNumber [sc_base current]} if {[winfo exists .treeWin$baseNumber]} { ::tree::closeTree $baseNumber return } set w .treeWin$baseNumber ::createToplevel .treeWin$baseNumber setWinLocation $w setWinSize $w # Set the tree window title now: ::setTitle $w "Scid: [tr WindowsTree] $baseNumber [file tail [sc_base filename $baseNumber] ]" set ::treeWin$baseNumber 1 set tree(training$baseNumber) 0 set tree(autorefresh$baseNumber) 1 set tree(locked$baseNumber) $locked set tree(base$baseNumber) $baseNumber set tree(status$baseNumber) "" set tree(bestMax$baseNumber) 50 set tree(order$baseNumber) "frequency" trace variable tree(bestMax$baseNumber) w "::tree::doTrace bestMax" set tree(bestRes$baseNumber) "1-0 0-1 1/2 *" trace variable tree(bestRes$baseNumber) w "::tree::doTrace bestRes" set tree(allgames$baseNumber) 1 bind $w "::tree::closeTree $baseNumber" bind $w { helpWindow Tree } bind $w "::tree::hideCtxtMenu $baseNumber ; .treeWin$baseNumber.buttons.stop invoke " # Bind left button to close ctxt menu: bind $w "::tree::hideCtxtMenu $baseNumber" standardShortcuts $w menu $w.menu ::setMenu $w $w.menu $w.menu add cascade -label TreeFile -menu $w.menu.file $w.menu add cascade -label TreeMask -menu $w.menu.mask $w.menu add cascade -label TreeSort -menu $w.menu.sort $w.menu add cascade -label TreeOpt -menu $w.menu.opt $w.menu add cascade -label TreeHelp -menu $w.menu.helpmenu foreach i {file mask sort opt helpmenu} { menu $w.menu.$i -tearoff 0 } $w.menu.file add command -label TreeFileSave -command "::tree::treeFileSave $baseNumber" set helpMessage($w.menu.file,0) TreeFileSave $w.menu.file add command -label TreeFileFill -command "::tree::prime $baseNumber" set helpMessage($w.menu.file,1) TreeFileFill $w.menu.file add command -label TreeFileFillWithBase -command "::tree::primeWithBase" set helpMessage($w.menu.file,2) TreeFileFillWithBase $w.menu.file add command -label TreeFileFillWithGame -command "::tree::primeWithGame" set helpMessage($w.menu.file,3) TreeFileFillWithGame menu $w.menu.file.size foreach i { 250 500 1000 2000 5000 10000 } { $w.menu.file.size add radiobutton -label "$i" -value $i -variable ::tree::cachesize($baseNumber) -command "::tree::setCacheSize $baseNumber $i" } $w.menu.file add cascade -menu $w.menu.file.size -label TreeFileSetCacheSize set helpMessage($w.menu.file,4) TreeFileSetCacheSize $w.menu.file add command -label TreeFileCacheInfo -command "::tree::getCacheInfo $baseNumber" set helpMessage($w.menu.file,5) TreeFileCacheInfo $w.menu.file add separator $w.menu.file add command -label TreeFileBest -command "::tree::best $baseNumber 1" set helpMessage($w.menu.file,7) TreeFileBest $w.menu.file add command -label TreeFileGraph -command "::tree::graph $baseNumber 1" set helpMessage($w.menu.file,8) TreeFileGraph $w.menu.file add separator $w.menu.file add command -label TreeFileCopy -command "::tree::menuCopyToSelection $baseNumber" set helpMessage($w.menu.file,10) TreeFileCopy $w.menu.file add separator $w.menu.file add command -label TreeFileClose -command ".treeWin$baseNumber.buttons.close invoke" set helpMessage($w.menu.file,12) TreeFileClose $w.menu.mask add command -label TreeMaskNew -command "::tree::mask::new" set helpMessage($w.menu.mask,0) TreeMaskNew $w.menu.mask add command -label TreeMaskOpen -command "::tree::mask::open" set helpMessage($w.menu.mask,1) TreeMaskOpen menu $w.menu.mask.recent foreach f $::tree::mask::recentMask { $w.menu.mask.recent add command -label $f -command "::tree::mask::open $f" } $w.menu.mask add cascade -label TreeMaskOpenRecent -menu $w.menu.mask.recent set helpMessage($w.menu.mask,2) TreeMaskOpenRecent $w.menu.mask add command -label TreeMaskSave -command "::tree::mask::save" set helpMessage($w.menu.mask,3) TreeMaskSave $w.menu.mask add command -label TreeMaskClose -command "::tree::mask::close" set helpMessage($w.menu.mask,4) TreeMaskClose $w.menu.mask add command -label TreeMaskFillWithGame -command "::tree::mask::fillWithGame" set helpMessage($w.menu.mask,5) TreeMaskFillWithGame $w.menu.mask add command -label TreeMaskFillWithBase -command "::tree::mask::fillWithBase" set helpMessage($w.menu.mask,6) TreeMaskFillWithBase $w.menu.mask add command -label TreeMaskSearch -command "::tree::mask::searchMask $baseNumber" set helpMessage($w.menu.mask,7) TreeMaskSearch $w.menu.mask add command -label TreeMaskInfo -command "::tree::mask::infoMask" set helpMessage($w.menu.mask,8) TreeMaskInfo $w.menu.mask add command -label TreeMaskDisplay -command "::tree::mask::displayMask" set helpMessage($w.menu.mask,9) TreeMaskDisplay foreach label {Alpha ECO Freq Score} value {alpha eco frequency score} { $w.menu.sort add radiobutton -label TreeSort$label \ -variable tree(order$baseNumber) -value $value -command " ::tree::refresh $baseNumber " } $w.menu.opt add checkbutton -label TreeOptLock -variable tree(locked$baseNumber) -command "::tree::toggleLock $baseNumber" set helpMessage($w.menu.opt,0) TreeOptLock $w.menu.opt add checkbutton -label TreeOptTraining -variable tree(training$baseNumber) -command "::tree::toggleTraining $baseNumber" set helpMessage($w.menu.opt,1) TreeOptTraining $w.menu.opt add separator $w.menu.opt add checkbutton -label TreeOptAutosave -variable tree(autoSave$baseNumber) set helpMessage($w.menu.opt,3) TreeOptAutosave $w.menu.opt add separator $w.menu.opt add radiobutton -label TreeOptSlowmode -value 0 -variable tree(fastmode$baseNumber) -command "::tree::refresh $baseNumber" set helpMessage($w.menu.opt,5) TreeOptSlowmode $w.menu.opt add radiobutton -label TreeOptFastmode -value 1 -variable tree(fastmode$baseNumber) -command "::tree::refresh $baseNumber" set helpMessage($w.menu.opt,6) TreeOptFastmode $w.menu.opt add radiobutton -label TreeOptFastAndSlowmode -value 2 -variable tree(fastmode$baseNumber) -command "::tree::refresh $baseNumber" set helpMessage($w.menu.opt,7) TreeOptFastAndSlowmode set tree(fastmode$baseNumber) 0 $w.menu.helpmenu add command -label TreeHelpTree -accelerator F1 -command {helpWindow Tree} $w.menu.helpmenu add command -label TreeHelpIndex -command {helpWindow Index} ::tree::doConfigMenus $baseNumber autoscrollframe $w.f text $w.f.tl \ -width $::winWidth(.treeWin) -height $::winHeight(.treeWin) -wrap none -selectbackground lightgrey -selectforeground black \ -font font_Fixed -foreground black -background white -setgrid 1 -exportselection 1 #define default tags $w.f.tl tag configure greybg -background #fa1cfa1cfa1c $w.f.tl tag configure whitebg -background white $w.f.tl tag configure bluefg -foreground blue $w.f.tl tag configure greenfg -foreground SeaGreen $w.f.tl tag configure redfg -foreground red selection handle $w.f.tl "::tree::copyToSelection $baseNumber" bindMouseWheel $w $w.f.tl bind $w "recordWinSize $w" ttk::frame $w.statusframe pack $w.statusframe -side bottom -fill x grid rowconfigure $w.statusframe 0 -weight 1 grid columnconfigure $w.statusframe 0 -weight 1 ttk::label $w.status -anchor w -font font_Small \ -relief sunken -textvar tree(status$baseNumber) grid $w.status -in $w.statusframe -column 0 -row 0 -sticky nsew canvas $w.progress -height 0 -bg white -relief solid -border 1 $w.progress create rectangle 0 0 0 0 -fill blue -outline blue -tags bar pack [ttk::frame $w.buttons -relief sunken] -side bottom -fill x pack $w.f -side top -expand 1 -fill both ttk::button $w.buttons.best -image b_list -style Pad0.Small.TButton -command "::tree::best $baseNumber 1" ttk::button $w.buttons.graph -image b_bargraph -style Pad0.Small.TButton -command "::tree::graph $baseNumber 1" # add a button to start/stop tree refresh ttk::button $w.buttons.bStartStop -image engine_on -style Pad0.Small.TButton -command "::tree::toggleRefresh $baseNumber" ;# -relief flat ttk::checkbutton $w.buttons.allgames -textvar ::tr(allGames) -variable tree(allgames$baseNumber) -command "::tree::refresh $baseNumber" ttk::checkbutton $w.buttons.training -textvar ::tr(Training) -variable tree(training$baseNumber) -command "::tree::toggleTraining $baseNumber" foreach {b t} { best TreeFileBest graph TreeFileGraph allgames TreeOptLock training TreeOptTraining bStartStop TreeOptStartStop } { set helpMessage($w.buttons.$b) $t } dialogbutton $w.buttons.stop -textvar ::tr(Stop) -command { sc_progressBar } dialogbutton $w.buttons.close -textvar ::tr(Close) -command "::tree::closeTree $baseNumber" pack $w.buttons.best $w.buttons.graph $w.buttons.bStartStop $w.buttons.allgames $w.buttons.training \ -side left -padx 3 -pady 2 packbuttons right $w.buttons.close $w.buttons.stop $w.buttons.stop configure -state disabled wm minsize $w 40 5 wm protocol $w WM_DELETE_WINDOW " .treeWin$baseNumber.buttons.close invoke " ::tree::refresh $baseNumber set ::tree::cachesize($baseNumber) [lindex [sc_tree cacheinfo $baseNumber] 1] } ################################################################################ proc ::tree::hideCtxtMenu { baseNumber } { set w .treeWin$baseNumber.f.tl.ctxtMenu if {[winfo exists $w]} { destroy $w focus .treeWin$baseNumber } } ################################################################################ proc ::tree::selectCallback { baseNumber move } { if { $::tree(refresh) } { return } if {$::tree(autorefresh$baseNumber)} { tree::select $move $baseNumber } } ################################################################################ # close the corresponding base if it is flagged as locked proc ::tree::closeTree {baseNumber} { global tree ::tree::mask::close ::tree::hideCtxtMenu $baseNumber # .treeWin$baseNumber.buttons.stop invoke trace remove variable tree(bestMax$baseNumber) write "::tree::doTrace bestMax" trace remove variable tree(bestRes$baseNumber) write "::tree::doTrace bestRes" set ::geometry(treeWin$baseNumber) [wm geometry .treeWin$baseNumber] focus . if {$tree(autoSave$baseNumber)} { busyCursor . sc_tree write $tree(base$baseNumber) unbusyCursor . } if {[winfo exists .treeGraph$baseNumber]} { destroy .treeGraph$baseNumber } ::docking::cleanup .treeBest$baseNumber destroy .treeBest$baseNumber ::docking::cleanup .treeWin$baseNumber destroy .treeWin$baseNumber sc_tree clean $baseNumber if {$::tree(locked$baseNumber)} { ::file::Close $baseNumber } ::windows::gamelist::Refresh ::windows::stats::Refresh; } ################################################################################ proc ::tree::doTrace { prefix name1 name2 op} { if {[scan $name2 "$prefix%d" baseNumber] !=1 } { tk_messageBox -parent . -icon error -type ok -title "Fatal Error" \ -message "Scan failed in trace code\ndoTrace $prefix $name1 $name2 $op" return } ::tree::best $baseNumber } ################################################################################ proc ::tree::toggleTraining { baseNumber } { global tree for {set i 1 } {$i <= [sc_base count total]} {incr i} { if {! [winfo exists .treeWin$baseNumber] || $i == $baseNumber } { continue } set tree(training$i) 0 } if {$tree(training$baseNumber)} { set ::tree::trainingBase $baseNumber ::tree::doTraining } else { set ::tree::trainingBase 0 ::tree::refresh $baseNumber } } ################################################################################ proc ::tree::doTraining { { n 0 } } { global tree if {$n != 1 && [winfo exists .analysisWin1] && $::analysis(automove1)} { automove 1 return } if {$n != 2 && [winfo exists .analysisWin2] && $::analysis(automove2)} { automove 2 return } if {[::tb::isopen] && $::tbTraining} { ::tb::move return } if {! [winfo exists .treeWin$::tree::trainingBase]} { return } if { $::tree::trainingBase == 0 } { return } # Before issuing a training move, annotate player's move if { $::tree::mask::maskFile != "" } { set move_done [sc_game info previousMoveNT] if {$move_done != ""} { sc_move back set fen [ ::tree::mask::toShortFen [sc_pos fen] ] sc_move forward if { [info exists ::tree::mask::mask($fen)] } { set moves [ lindex $::tree::mask::mask($fen) 0 ] # if move out of Mask, and there exists moves in Mask, set a warning if { ! [ ::tree::mask::moveExists $move_done $fen ] } { if {[llength $moves] != 0} { set txt "" foreach elt $moves { append txt "[::trans [lindex $elt 0]][lindex $elt 1] " } sc_pos setComment "[sc_pos getComment] Mask : $txt" } } # if move was bad, set a warning set nag_played [::tree::mask::getNag $move_done $fen] set nag_order { "??" " ?" "?!" $::tree::mask::emptyNag "!?" " !" "!!"} set txt "" foreach elt $moves { set n [lindex $elt 1] if { [lsearch $nag_order $nag_played] < [lsearch $nag_order $n]} { append txt "[::trans [lindex $elt 0]][lindex $elt 1] " } } if {$txt != ""} { sc_pos addNag [string trim $nag_played] sc_pos setComment "[sc_pos getComment] Mask : $txt" } # if move was on an exclude line, set a warning (img = ::rep::_tb_exclude) if { [::tree::mask::getImage $move_done 0] == "::rep::_tb_exclude" || \ [::tree::mask::getImage $move_done 1] == "::rep::_tb_exclude"} { sc_pos setComment "[sc_pos getComment] Mask : excluded line" } } } } set move [sc_tree move $::tree::trainingBase random] addSanMove $move -animate -notraining updateBoard -pgn } ################################################################################ proc ::tree::toggleLock { baseNumber } { ::tree::refresh $baseNumber } ################################################################################ proc ::tree::select { move baseNumber } { global tree if {! [winfo exists .treeWin$baseNumber]} { return } catch { addSanMove $move -animate } } set tree(refresh) 0 ################################################################################ proc ::tree::refresh { { baseNumber "" }} { set tree(refresh) 1 if {$baseNumber == "" } { sc_tree search -cancel all for {set i [sc_base count total] } {$i > 0} {incr i -1} { if { [::tree::dorefresh $i] == "canceled" } { break } } } else { ::tree::dorefresh $baseNumber } set tree(refresh) 0 } ################################################################################ proc ::tree::dorefresh { baseNumber } { global tree treeWin glstart set w .treeWin$baseNumber if {![winfo exists $w]} { return } if { ! $tree(autorefresh$baseNumber) } { return } grid $w.progress -in $w.statusframe -column 0 -row 0 -sticky nsew sc_progressBar $w.progress bar [$w.progress cget -width] 100 foreach button {best graph training allgames close} { $w.buttons.$button configure -state disabled } $w.buttons.stop configure -state normal set base $baseNumber if { $tree(fastmode$baseNumber) == 0 } { set fastmode 0 } else { set fastmode 1 } set filtered 0 if { $tree(allgames$baseNumber) == 0 } { set filtered 1 } set moves [sc_tree search -hide $tree(training$baseNumber) -sort $tree(order$baseNumber) -base $base -fastmode $fastmode -filtered $filtered] catch {$w.f.tl itemconfigure 0 -foreground darkBlue} foreach button {best graph training allgames close} { $w.buttons.$button configure -state normal } $w.buttons.stop configure -state disabled ::tree::status "" $baseNumber set glstart 1 ::windows::stats::Refresh if {[winfo exists .treeGraph$baseNumber]} { ::tree::graph $baseNumber } ::windows::gamelist::Refresh updateTitle if { $moves == "canceled" } { return "canceled"} displayLines $baseNumber $moves if {[winfo exists .treeBest$baseNumber]} { ::tree::best $baseNumber} # ======================================== if { $tree(fastmode$baseNumber) == 2 } { ::tree::status "" $baseNumber sc_progressBar $w.progress bar [$w.progress cget -width] 100 set moves [sc_tree search -hide $tree(training$baseNumber) -sort $tree(order$baseNumber) -base $base -fastmode $fastmode -filtered $filtered] displayLines $baseNumber $moves } # ======================================== grid forget $w.progress } ################################################################################ # ################################################################################ proc ::tree::displayLines { baseNumber moves } { global ::tree::mask::maskFile ::tree::mask::setCacheFenIndex set lMoves {} set w .treeWin$baseNumber $w.f.tl configure -state normal set moves [split $moves "\n"] # for the graph display set ::tree::treeData$baseNumber $moves set len [llength $moves] $w.f.tl delete 1.0 end foreach t [$w.f.tl tag names] { if { [ string match "tagclick*" $t ] || [ string match "tagtooltip*" $t ] } { $w.f.tl tag delete $t } } # Position comment set hasPositionComment 0 if { $maskFile != "" } { set posComment [::tree::mask::getPositionComment] if {$posComment != ""} { set hasPositionComment 1 set firstLine [ lindex [split $posComment "\n"] 0 ] $w.f.tl insert end "$firstLine\n" [ list bluefg tagtooltip_poscomment ] ::utils::tooltip::SetTag $w.f.tl $posComment tagtooltip_poscomment $w.f.tl tag bind tagtooltip_poscomment "::tree::mask::addComment" } } # Display the first line if { $maskFile != "" } { $w.f.tl image create end -image ::tree::mask::emptyImage -align center $w.f.tl image create end -image ::tree::mask::emptyImage -align center $w.f.tl insert end " " $w.f.tl tag bind tagclick0 "::tree::mask::contextMenu $w.f.tl dummy %x %y %X %Y ; break" } $w.f.tl insert end "[lindex $moves 0]\n" tagclick0 for { set i 1 } { $i < [expr $len - 3 ] } { incr i } { set line [lindex $moves $i] if {$line == ""} { continue } set move [lindex $line 1] set move [::untrans $move] lappend lMoves $move set colorScore [::tree::getColorScore $line] if { $move == "\[end\]" } { set colorScore "" } set tagfg "" if { $maskFile != "" && $i > 0 && $i < [expr $len - 3] } { if { [::tree::mask::moveExists $move] } { set tagfg "bluefg" } } if { $maskFile != "" } { if { $i > 0 && $i < [expr $len - 3] && $move != "\[end\]" } { # images foreach j { 0 1 } { set img [::tree::mask::getImage $move $j] $w.f.tl image create end -image $img -align center } # color tag $w.f.tl tag configure color$i -background [::tree::mask::getColor $move] $w.f.tl insert end " " color$i # NAG tag $w.f.tl insert end [::tree::mask::getNag $move] } else { $w.f.tl image create end -image ::tree::mask::emptyImage -align center $w.f.tl image create end -image ::tree::mask::emptyImage -align center $w.f.tl insert end " " } } # Move and stats if {[expr $i % 2] && $i < [expr $len -3] } { $w.f.tl insert end "$line" [list greybg $tagfg tagtooltip$i] } else { $w.f.tl insert end "$line" [list whitebg $tagfg tagtooltip$i] } if {$colorScore != ""} { $w.f.tl tag add $colorScore end-30c end-26c } if {$move != "" && $move != "---" && $move != "\[end\]" && $i != [expr $len -2] && $i != 0} { $w.f.tl tag bind tagclick$i "[list ::tree::selectCallback $baseNumber $move ] ; break" } if { $maskFile != "" } { # Move comment set comment [::tree::mask::getComment $move] if {$comment != ""} { set firstLine [ lindex [split $comment "\n"] 0 ] $w.f.tl insert end " $firstLine" tagtooltip$i ::utils::tooltip::SetTag $w.f.tl $comment tagtooltip$i $w.f.tl tag bind tagtooltip$i "::tree::mask::addComment $move" } } if { $maskFile != "" } { # Bind right button to popup a contextual menu: $w.f.tl tag bind tagclick$i "::tree::mask::contextMenu $w.f.tl $move %x %y %X %Y ; break" } $w.f.tl tag add tagclick$i [expr $i +1 + $hasPositionComment].0 [expr $i + 1 + $hasPositionComment].end $w.f.tl insert end "\n" } ;# end for loop # Display the last lines (total) for { set i [expr $len - 3 ] } { $i < [expr $len - 1 ] } { incr i } { if { $maskFile != "" } { $w.f.tl image create end -image ::tree::mask::emptyImage -align center $w.f.tl image create end -image ::tree::mask::emptyImage -align center $w.f.tl insert end " " } $w.f.tl insert end "[lindex $moves $i]\n" } # Add moves present in Mask and not in Tree set idx $len if { $maskFile != "" } { set movesMask [::tree::mask::getAllMoves] foreach m $movesMask { if { [ scan [$w.f.tl index end] "%d.%d" currentLine dummy] != 2 } { puts "ERROR scan index end [$w.f.tl index end]" } # move nag color move_anno if {[lsearch $lMoves [lindex $m 0]] != -1 || [lindex $m 0] == "null"} { continue } $w.f.tl tag bind tagclick$idx "[list ::tree::selectCallback $baseNumber [lindex $m 0] ] ; break" # images foreach j {4 5} { if {[lindex $m $j] == ""} { $w.f.tl image create end -image ::tree::mask::emptyImage -align center } else { $w.f.tl image create end -image [lindex $m $j] -align center } } # color tag $w.f.tl tag configure color$idx -background [lindex $m 2] $w.f.tl insert end " " color$idx # NAG tag $w.f.tl insert end [::tree::mask::getNag [lindex $m 0]] # move $w.f.tl insert end "[::trans [lindex $m 0] ]" bluefg # comment set comment [lindex $m 3] set firstLine [ lindex [split $comment "\n"] 0 ] $w.f.tl insert end " $firstLine\n" tagtooltip$idx ::utils::tooltip::SetTag $w.f.tl $comment tagtooltip$idx # Bind right button to popup a contextual menu: $w.f.tl tag bind tagclick$idx "::tree::mask::contextMenu $w.f.tl [lindex $m 0] %x %y %X %Y ; break" $w.f.tl tag add tagclick$idx [ expr $currentLine -1].0 [ expr $currentLine -1].end incr idx } } $w.f.tl configure -state disabled } ################################################################################ # returns a list with (ngames freq success eloavg perf) or # {} if there was a problem during parsing # 1: e4 B00 37752: 47.1% 54.7% 2474 2513 2002 37% ################################################################################ proc ::tree::getLineValues { l } { set ret {} if {[scan [string range $l 14 24] "%d:" ngames] != 1} { return {} } else { lappend ret $ngames } if {[scan [string range $l 25 29] "%f%%" freq] != 1} { return {} } else { lappend ret $freq } if {[scan [string range $l 33 37] "%f%%" success] != 1} { return {} } else { lappend ret $success } if {[scan [string range $l 40 44] "%d" eloavg] != 1} { return {} } else { lappend ret $eloavg } if {[scan [string range $l 46 50] "%d" perf] != 1} { return {} } else { lappend ret $perf } return $ret } ################################################################################ # returns the color to use for score (red, green) or "" ################################################################################ proc ::tree::getColorScore { line } { set data [::tree::getLineValues $line] if { $data == {} } { return "" } set ngames [lindex $data 0] set freq [lindex $data 1] set success [lindex $data 2] set eloavg [lindex $data 3] set perf [lindex $data 4] if { $ngames < $::tree::scoreHighlight_MinGames } { return "" } set wavg [ expr 50 + $::tree::scoreHighlight_WhiteExpectedScoreBonus ] set bavg [ expr 50 - $::tree::scoreHighlight_WhiteExpectedScoreBonus ] if { [sc_pos side] == "white" && $success > [ expr $wavg + $::tree::scoreHighlight_Margin ] || \ [sc_pos side] == "black" && $success < [ expr $wavg - $::tree::scoreHighlight_Margin ] } { return greenfg } if { [sc_pos side] == "white" && $success < [ expr $wavg - $::tree::scoreHighlight_Margin ] || \ [sc_pos side] == "black" && $success > [ expr $wavg + $::tree::scoreHighlight_Margin ] } { return redfg } return "" } ################################################################################ proc ::tree::status { msg baseNumber } { global tree if {$msg != ""} { set tree(status$baseNumber) $msg return } set s " $::tr(Database)" # set base [sc_base current] # if {$tree(locked$baseNumber)} { set base $tree(base$baseNumber) } set base $baseNumber set status " $::tr(Database) $base: [file tail [sc_base filename $base]]" if {$tree(locked$baseNumber)} { append status " ($::tr(TreeLocked))" } if {! $tree(allgames$baseNumber)} { append status " $::tr(Filter)" append status ": [filterText $base]" } set tree(status$baseNumber) $status } ################################################################################ set tree(standardLines) { {} {1.c4} {1.c4 c5} {1.c4 c5 2.Nf3} {1.c4 e5} {1.c4 Nf6} {1.c4 Nf6 2.Nc3} {1.d4} {1.d4 d5} {1.d4 d5 2.c4} {1.d4 d5 2.c4 c6} {1.d4 d5 2.c4 c6 3.Nf3} {1.d4 d5 2.c4 c6 3.Nf3 Nf6} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 dxc4} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 e6} {1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 e6 5.e3} {1.d4 d5 2.c4 e6} {1.d4 d5 2.c4 e6 3.Nc3} {1.d4 d5 2.c4 e6 3.Nc3 Nf6} {1.d4 d5 2.c4 e6 3.Nf3} {1.d4 d5 2.c4 dxc4} {1.d4 d5 2.c4 dxc4 3.Nf3} {1.d4 d5 2.c4 dxc4 3.Nf3 Nf6} {1.d4 d5 2.Nf3} {1.d4 d5 2.Nf3 Nf6} {1.d4 d5 2.Nf3 Nf6 3.c4} {1.d4 d6} {1.d4 d6 2.c4} {1.d4 Nf6} {1.d4 Nf6 2.c4} {1.d4 Nf6 2.c4 c5} {1.d4 Nf6 2.c4 d6} {1.d4 Nf6 2.c4 e6} {1.d4 Nf6 2.c4 e6 3.Nc3} {1.d4 Nf6 2.c4 e6 3.Nc3 Bb4} {1.d4 Nf6 2.c4 e6 3.Nf3} {1.d4 Nf6 2.c4 g6} {1.d4 Nf6 2.c4 g6 3.Nc3} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O} {1.d4 Nf6 2.c4 g6 3.Nc3 Bg7 4.e4 d6 5.Nf3 O-O 6.Be2} {1.d4 Nf6 2.c4 g6 3.Nf3} {1.d4 Nf6 2.Bg5} {1.d4 Nf6 2.Bg5 Ne4} {1.d4 Nf6 2.Nf3} {1.d4 Nf6 2.Nf3 e6} {1.d4 Nf6 2.Nf3 g6} {1.e4} {1.e4 c5} {1.e4 c5 2.c3} {1.e4 c5 2.c3 d5} {1.e4 c5 2.c3 Nf6} {1.e4 c5 2.Nc3} {1.e4 c5 2.Nc3 Nc6} {1.e4 c5 2.Nf3} {1.e4 c5 2.Nf3 d6} {1.e4 c5 2.Nf3 d6 3.d4} {1.e4 c5 2.Nf3 d6 3.d4 cxd4} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6} {1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 Nc6} {1.e4 c5 2.Nf3 d6 3.Bb5+} {1.e4 c5 2.Nf3 e6} {1.e4 c5 2.Nf3 Nc6} {1.e4 c5 2.Nf3 Nc6 3.d4} {1.e4 c5 2.Nf3 Nc6 3.Bb5} {1.e4 c6} {1.e4 c6 2.d4} {1.e4 c6 2.d4 d5} {1.e4 c6 2.d4 d5 3.e5} {1.e4 c6 2.d4 d5 3.Nc3} {1.e4 c6 2.d4 d5 3.Nd2} {1.e4 d5} {1.e4 d6} {1.e4 d6 2.d4} {1.e4 d6 2.d4 Nf6} {1.e4 d6 2.d4 Nf6 3.Nc3} {1.e4 e5} {1.e4 e5 2.Nf3} {1.e4 e5 2.Nf3 Nc6} {1.e4 e5 2.Nf3 Nc6 3.d4} {1.e4 e5 2.Nf3 Nc6 3.Bb5} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6} {1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O} {1.e4 e5 2.Nf3 Nc6 3.Bc4} {1.e4 e5 2.Nf3 Nf6} {1.e4 e6} {1.e4 e6 2.d4} {1.e4 e6 2.d4 d5} {1.e4 e6 2.d4 d5 3.Nc3} {1.e4 e6 2.d4 d5 3.Nc3 Bb4} {1.e4 e6 2.d4 d5 3.Nc3 Nf6} {1.e4 e6 2.d4 d5 3.Nd2} {1.e4 e6 2.d4 d5 3.Nd2 c5} {1.e4 e6 2.d4 d5 3.Nd2 Nf6} {1.e4 Nf6} {1.e4 Nf6 2.e5} {1.e4 Nf6 2.e5 Nd5} {1.Nf3} {1.Nf3 Nf6} } # if there is a treecache file source it, otherwise use hard coded # values above set scidConfigFiles(treecache) "treecache.dat" catch {source [scidConfigFile treecache]} ################################################################################ # ::tree::prime # Primes the tree for this database, filling it with a number of # common opening positions. # proc ::tree::prime { baseNumber } { global tree if {! [winfo exists .treeWin$baseNumber]} { return } set base $baseNumber if {$tree(locked$baseNumber)} { set base $tree(base$baseNumber) } if {! [sc_base inUse]} { return } set fname [sc_base filename $base] if {[string index $fname 0] == "\[" || [file extension $fname] == ".pgn"} { tk_messageBox -parent .treeWin$baseNumber -icon info -type ok -title "Scid" \ -message "Sorry, only Scid-format database files can have a tree cache file." return } set ::interrupt 0 progressWindow "Scid: [tr TreeFileFill]" "" $::tr(Cancel) {set ::interrupt 1} resetProgressWindow leftJustifyProgressWindow busyCursor . sc_game push set i 1 set len [llength $tree(standardLines)] foreach line $tree(standardLines) { sc_game new set text [format "%3d/\%3d" $i $len] if {[llength $line] > 0} { sc_move addSan $line changeProgressWindow "$text: $line" } else { changeProgressWindow "$text: start position" } sc_tree search -base $base -fastmode 0 updateProgressWindow $i $len incr i if {$::interrupt} { closeProgressWindow set ::interrupt 0 sc_game pop unbusyCursor . ::tree::refresh $baseNumber return } } closeProgressWindow if {[catch {sc_tree write $base} result]} { #tk_messageBox -type ok -icon warning -title "Scid: Error writing file" -message $result } else { #set a "$fname.stc: [sc_tree positions] positions, " #append a "$result bytes: " #set pergame [expr double($result) / double([sc_base numGames])] #append a [format "%.2f" $pergame] #append a " bytes per game" #tk_messageBox -type ok -parent .treeWin -title "Scid" -message $a } sc_game pop unbusyCursor . ::tree::refresh $baseNumber } ################################################################################ # ::tree::best # Updates the window of best (highest-rated) tree games. # bpress: the button/menu was selected => bring window to front # proc ::tree::best { baseNumber {bpress 0}} { if {! [winfo exists .treeWin$baseNumber]} { return } set w .treeBest$baseNumber if {$bpress && [::createToplevel $w] != "already_exists"} { ::setTitle $w "Scid: $::tr(TreeBestGames) $baseNumber: [file tail [sc_base filename $baseNumber]]" bind $w "recordWinSize $w" glist.create $w "best" createToplevelFinalize $w } glist.update $w $::tree(base$baseNumber) tree } ################################################################################ # ::tree::graph # Updates the tree graph window, creating it if necessary. # bpress: the button/menu was selected => bring window to front # proc ::tree::graph { baseNumber {bpress 0}} { set w .treeGraph$baseNumber if {! [winfo exists .treeWin$baseNumber]} { return } if {! [winfo exists $w]} { toplevel $w setWinLocation $w bind $w "destroy $w" bind $w {helpWindow Tree Graph} menu $w.menu $w configure -menu $w.menu $w.menu add cascade -label GraphFile -menu $w.menu.file menu $w.menu.file $w.menu.file add command -label GraphFileColor -command "saveGraph color $w.c" $w.menu.file add command -label GraphFileGrey -command "saveGraph gray $w.c" $w.menu.file add separator $w.menu.file add command -label GraphFileClose -command "destroy $w" canvas $w.c -width 500 -height 300 pack $w.c -side top -fill both -expand yes $w.c create text 25 10 -tag text -justify center -width 1 -font font_Regular -anchor n update bind $w " \ .treeGraph$baseNumber.c itemconfigure text -width [expr {[winfo width .treeGraph$baseNumber.c] - 50}] ;\ .treeGraph$baseNumber.c coords text [expr {[winfo width .treeGraph$baseNumber.c] / 2}] 10 ;\ ::utils::graph::configure tree$baseNumber -height [expr {[winfo height .treeGraph$baseNumber.c] - 100}] ;\ ::utils::graph::configure tree$baseNumber -width [expr {[winfo width .treeGraph$baseNumber.c] - 50}] ;\ ::utils::graph::redraw tree$baseNumber " bind $w.c "::tree::graph $baseNumber" ::setTitle $w "Scid: Tree Graph $baseNumber: [file tail [sc_base filename $baseNumber]]" # wm minsize $w 300 200 standardShortcuts $w ::tree::configGraphMenus "" $baseNumber } elseif {$bpress == 1} { focus $w raise $w } $w.c itemconfigure text -width [expr {[winfo width $w.c] - 50}] $w.c coords text [expr {[winfo width $w.c] / 2}] 10 set height [expr {[winfo height $w.c] - 100}] set width [expr {[winfo width $w.c] - 50}] ::utils::graph::create tree$baseNumber -width $width -height $height -xtop 25 -ytop 60 \ -xmin 0.5 -xtick 1 -ytick 5 -font font_Small -canvas $w.c set data {} set xlabels {} set othersCount 0 set numOthers 0 set othersName "..." set count 0 set othersScore 0.0 set mean 50.0 set totalGames 0 set treeData [subst $[subst {::tree::treeData$baseNumber} ] ] # [.treeWin$baseNumber.f.tl get 0 end] set numTreeLines [llength $treeData] set totalLineIndex [expr $numTreeLines - 2] for {set i 0} {$i < [llength $treeData]} {incr i} { # Extract info from each line of the tree window: # Note we convert "," decimal char back to "." where necessary. set line [lindex $treeData $i] set mNum [string trim [string range $line 0 1]] set freq [string trim [string range $line 17 23]] set fpct [string trim [string range $line 25 29]] regsub -all {,} $fpct . fpct set move [string trim [string range $line 4 9]] set score [string trim [string range $line 33 37]] regsub -all {,} $score . score if {$score > 99.9} { set score 99.9 } # Check if this line is "TOTAL:" line: if {$i == $totalLineIndex} { set mean $score set totalGames $freq } # Add info for this move to the graph if necessary: if {[string index $line 2] == ":" && [string compare "" $move]} { if {$fpct < 1.0 || $freq < 5 || $i > 5} { incr othersCount $freq incr numOthers set othersScore [expr {$othersScore + (double($freq) * $score)}] set m $move if {$numOthers > 1} { set m "..." } } else { incr count lappend data $count lappend data $score lappend xlabels [list $count "$move ([expr round($score)]%)\n$freq: [expr round($fpct)]%"] } } } # Add extra bar for other moves if necessary: if {$numOthers > 0 && $totalGames > 0} { incr count set fpct [expr {double($othersCount) * 100.0 / double($totalGames)}] set sc [expr {round($othersScore / double($othersCount))}] set othersName "$m ($sc%)\n$othersCount: [expr round($fpct)]%" lappend data $count lappend data [expr {$othersScore / double($othersCount)}] lappend xlabels [list $count $othersName] } # Plot fake bounds data so graph at least shows range 40-65: ::utils::graph::data tree$baseNumber bounds -points 0 -lines 0 -bars 0 -coords {1 41 1 64} # Replot the graph: ::utils::graph::data tree$baseNumber data -color red -points 0 -lines 0 -bars 1 \ -barwidth 0.75 -outline black -coords $data ::utils::graph::configure tree$baseNumber -xlabels $xlabels -xmax [expr {$count + 0.5}] \ -hline [list {gray80 1 each 5} {gray50 1 each 10} {black 2 at 50} \ {black 1 at 55} [list red 2 at $mean]] \ -brect [list [list 0.5 55 [expr {$count + 0.5}] 50 LightSkyBlue1]] ::utils::graph::redraw tree$baseNumber set moves "" catch {set moves [sc_game firstMoves 0 -1]} if {[string length $moves] == 0} { set moves $::tr(StartPos) } set title "$moves ([::utils::thousands $totalGames] $::tr(games))" $w.c itemconfigure text -text $title } ################################################################################ proc ::tree::configGraphMenus { lang baseNumber } { if {! [winfo exists .treeGraph$baseNumber]} { return } if {$lang == ""} { set lang $::language } set m .treeGraph$baseNumber.menu foreach idx {0} tag {File} { configMenuText $m $idx Graph$tag $lang } foreach idx {0 1 3} tag {Color Grey Close} { configMenuText $m.file $idx GraphFile$tag $lang } } # ################################################################################ proc ::tree::toggleRefresh { baseNumber } { global tree set b .treeWin$baseNumber.buttons.bStartStop if {$tree(autorefresh$baseNumber)} { $b configure -image engine_off set tree(autorefresh$baseNumber) 0 } else { $b configure -image engine_on set tree(autorefresh$baseNumber) 1 ::tree::refresh $baseNumber } } ################################################################################ # ################################################################################ proc ::tree::setCacheSize { base size } { sc_tree cachesize $base $size } ################################################################################ # ################################################################################ proc ::tree::getCacheInfo { base } { set ci [sc_tree cacheinfo $base] tk_messageBox -title "Scid" -type ok -icon info \ -message "Cache used : [lindex $ci 0] / [lindex $ci 1]" } ################################################################################ # will go through all moves of all games of current base ################################################################################ set ::tree::cancelPrime 0 proc ::tree::primeWithBase {{ fillMask 0 }} { set ::tree::cancelPrime 0 for {set g 1} { $g <= [sc_base numGames]} { incr g} { sc_game load $g ::tree::primeWithGame $fillMask if {$::tree::cancelPrime } { return } } } ################################################################################ # ################################################################################ proc ::tree::primeWithGame { { fillMask 0 } } { set ::tree::totalMoves [countBaseMoves "singleGame" ] sc_move start if {$fillMask} { ::tree::mask::feedMask [ sc_pos fen ] } set ::tree::parsedMoves 0 set ::tree::cancelPrime 0 progressWindow "Scid: [tr TreeFileFill]" "$::tree::totalMoves moves" $::tr(Cancel) { set ::tree::cancelPrime 1 for {set i 1 } {$i <= [sc_base count total]} {incr i} { catch { .treeWin$i.buttons.stop invoke } } } resetProgressWindow leftJustifyProgressWindow ::tree::parseGame $fillMask closeProgressWindow updateBoard -pgn } ################################################################################ # parse one game and fill the list ################################################################################ proc ::tree::parseGame {{ fillMask 0 }} { if {$::tree::cancelPrime } { return } ::tree::refresh if {$::tree::cancelPrime } { return } while {![sc_pos isAt vend]} { updateProgressWindow $::tree::parsedMoves $::tree::totalMoves # Go through all variants for {set v 0} {$v<[sc_var count]} {incr v} { # enter each var (beware the first move is played) set fen [ sc_pos fen ] sc_var enter $v if {$fillMask} { ::tree::mask::feedMask $fen } if {$::tree::cancelPrime } { return } if {$::tree::cancelPrime } { return } ::tree::parseVar $fillMask if {$::tree::cancelPrime } { return } } # now treat the main line set fen [ sc_pos fen ] sc_move forward if {$fillMask} { ::tree::mask::feedMask $fen } incr ::tree::parsedMoves if {$::tree::cancelPrime } { return } if {$::tree::cancelPrime } { return } } } ################################################################################ # parse recursively variants. ################################################################################ proc ::tree::parseVar {{ fillMask 0 }} { while {![sc_pos isAt vend]} { # Go through all variants for {set v 0} {$v<[sc_var count]} {incr v} { set fen [ sc_pos fen ] sc_var enter $v if {$fillMask} { ::tree::mask::feedMask $fen } if {$::tree::cancelPrime } { return } if {$::tree::cancelPrime } { return } # we are at the start of a var, before the first move : start recursive calls parseVar $fillMask if {$::tree::cancelPrime } { return } } set fen [ sc_pos fen ] sc_move forward if {$fillMask} { ::tree::mask::feedMask $fen } incr ::tree::parsedMoves updateProgressWindow $::tree::parsedMoves $::tree::totalMoves if {$::tree::cancelPrime } { return } if {$::tree::cancelPrime } { return } } sc_var exit } ################################################################################ # count moves that will fill the cache ################################################################################ proc ::tree::countBaseMoves { {args ""} } { set ::tree::total 0 ################################################################################ proc countParseGame {} { sc_move start while {![sc_pos isAt vend]} { for {set v 0} {$v<[sc_var count]} {incr v} { sc_var enter $v countParseVar } sc_move forward incr ::tree::total } } ################################################################################ proc countParseVar {} { while {![sc_pos isAt vend]} { for {set v 0} {$v<[sc_var count]} {incr v} { sc_var enter $v countParseVar incr ::tree::total } sc_move forward incr ::tree::total } sc_var exit } if {$args == "singleGame"} { countParseGame } else { for {set g 1} { $g <= [sc_base numGames]} { incr g} { sc_game load $g countParseGame } } return $::tree::total } ################################################################################ # # Mask namespace # # All function calls with move in english # Images are 17x17 ################################################################################ namespace eval ::tree::mask { # mask(fen) contains data for a position : ( moves, comment ) # where moves is ( move nag color move_anno img1 img2 ) array set mask {} set maskSerialized {} set maskFile "" set defaultColor white set emptyNag " " set textComment "" set cacheFenIndex -1 set dirty 0 ; # if Mask data has changed # Mask Search set searchMask_usenag 0 set searchMask_usemarker0 0 set searchMask_usemarker1 0 set searchMask_usecolor 0 set searchMask_usemovecomment 0 set searchMask_useposcomment 0 set displayMask_showNag 1 set displayMask_showComment 1 array set marker2image { Include ::rep::_tb_include Exclude ::rep::_tb_exclude MainLine ::tree::mask::imageMainLine Bookmark tb_bkm \ White ::tree::mask::imageWhite Black ::tree::mask::imageBlack \ NewLine tb_new ToBeVerified tb_rfilter ToTrain tb_msearch Dubious tb_help ToRemove tb_cut } set maxRecent 10 } ################################################################################ # ################################################################################ proc ::tree::mask::open { {filename ""} } { global ::tree::mask::maskSerialized ::tree::mask::mask ::tree::mask::recentMask if {$filename == ""} { set types { {{Tree Mask Files} {.stm} } } set filename [tk_getOpenFile -initialdir $::initialDir(stm) -filetypes $types -defaultextension ".stm"] set ::initialDir(stm) [file dirname $filename] } if {$filename != ""} { ::tree::mask::askForSave array unset ::tree::mask::mask array set ::tree::mask::mask {} source $filename array set mask $maskSerialized set maskSerialized {} set ::tree::mask::maskFile $filename set ::tree::mask::dirty 0 ::tree::refresh if { [lsearch $recentMask $filename ] == -1 } { set recentMask [ linsert $recentMask 0 $filename] if {[llength $recentMask] > $::tree::mask::maxRecent } { set recentMask [ lreplace $recentMask [ expr $::tree::mask::maxRecent -1 ] end ] } # update recent masks menu entry for {set i 1} {$i <= [sc_base count total]} {incr i} { set w .treeWin$i if { [winfo exists $w] } { $w.menu.mask.recent delete 0 end foreach f $::tree::mask::recentMask { $w.menu.mask.recent add command -label $f -command "::tree::mask::open $f" } } } } } } ################################################################################ # ################################################################################ proc ::tree::mask::askForSave {} { if {$::tree::mask::dirty} { set answer [tk_messageBox -title Scid -icon warning -type yesno \ -message "[ tr DoYouWantToSaveFirst ]\n$::tree::mask::maskFile ?"] if {$answer == "yes"} { ::tree::mask::save } } } ################################################################################ # ################################################################################ proc ::tree::mask::new {} { set types { {{Tree Mask Files} {.stm} } } set filename [tk_getSaveFile -filetypes $types -defaultextension ".stm"] if {$filename != ""} { if {[file extension $filename] != ".stm" } { append filename ".stm" } ::tree::mask::askForSave set ::tree::mask::dirty 0 set ::tree::mask::maskFile $filename array unset ::tree::mask::mask array set ::tree::mask::mask {} ::tree::refresh } } ################################################################################ # ################################################################################ proc ::tree::mask::close {} { if { $::tree::mask::maskFile == "" } { return } ::tree::mask::askForSave set ::tree::mask::dirty 0 array unset ::tree::mask::mask array set ::tree::mask::mask {} set ::tree::mask::maskFile "" ::tree::refresh } ################################################################################ # ################################################################################ proc ::tree::mask::save {} { set f [ ::open $::tree::mask::maskFile w ] puts $f "set ::tree::mask::maskSerialized [list [array get ::tree::mask::mask]]" ::close $f set ::tree::mask::dirty 0 } ################################################################################ # ################################################################################ proc ::tree::mask::contextMenu {win move x y xc yc} { update idletasks set mctxt $win.ctxtMenu if { [winfo exists $mctxt] } { destroy $mctxt } if {$move == "dummy"} { set state "disabled" } else { set state "normal" } menu $mctxt $mctxt add command -label [tr AddToMask] -command "::tree::mask::addToMask $move" -state $state $mctxt add command -label [tr RemoveFromMask] -command "::tree::mask::removeFromMask $move" -state $state $mctxt add separator menu $mctxt.nag $mctxt add cascade -label [tr Nag] -menu $mctxt.nag -state $state foreach nag [ list "!!" " !" "!?" "?!" " ?" "??" " ~" [::tr "None"] ] { $mctxt.nag add command -label $nag -command "::tree::mask::setNag [list $move $nag]" -state $state } foreach j { 0 1 } { menu $mctxt.image$j $mctxt add cascade -label "[tr Marker] [expr $j +1]" -menu $mctxt.image$j -state $state foreach e { Include Exclude MainLine Bookmark White Black NewLine ToBeVerified ToTrain Dubious ToRemove } { set i $::tree::mask::marker2image($e) $mctxt.image$j add command -label [ tr $e ] -image $i -compound left -command "::tree::mask::setImage $move $i $j" } $mctxt.image$j add command -label [tr NoMarker] -command "::tree::mask::setImage $move {} $j" } menu $mctxt.color $mctxt add cascade -label [tr ColorMarker] -menu $mctxt.color -state $state foreach c { "White" "Green" "Yellow" "Blue" "Red"} { $mctxt.color add command -label [ tr "${c}Mark" ] -background $c -command "::tree::mask::setColor $move $c" } $mctxt add separator $mctxt add command -label [ tr CommentMove] -command "::tree::mask::addComment $move" -state $state $mctxt add command -label [ tr CommentPosition] -command "::tree::mask::addComment" $mctxt add separator set lMatchMoves [sc_pos matchMoves ""] if {[llength $lMatchMoves ] > 16} { # split the moves in several menus for {set idxMenu 0} { $idxMenu <= [expr int([llength $lMatchMoves ] / 16) ]} {incr idxMenu} { menu $mctxt.matchmoves$idxMenu $mctxt add cascade -label "[ tr AddThisMoveToMask ] ([expr $idxMenu + 1 ])" -menu $mctxt.matchmoves$idxMenu for {set i 0} {$i < 16} {incr i} { if {[expr $i + $idxMenu * 16 +1] > [llength $lMatchMoves ] } { break } set m [lindex $lMatchMoves [expr $i + $idxMenu * 16]] if {$m == "OK"} { set m "O-O" } if {$m == "OQ"} { set m "O-O-O" } $mctxt.matchmoves$idxMenu add command -label [::trans $m] -command "::tree::mask::addToMask $m" } } } else { menu $mctxt.matchmoves $mctxt add cascade -label [ tr AddThisMoveToMask ] -menu $mctxt.matchmoves foreach m [sc_pos matchMoves ""] { if {$m == "OK"} { set m "O-O" } if {$m == "OQ"} { set m "O-O-O" } $mctxt.matchmoves add command -label [::trans $m] -command "::tree::mask::addToMask $m" } } $mctxt post [winfo pointerx .] [winfo pointery .] } ################################################################################ # ################################################################################ proc ::tree::mask::addToMask { move {fen ""} } { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)]} { set mask($fen) { {} {} } } set ::tree::mask::dirty 1 set moves [ lindex $mask($fen) 0 ] if {[lsearch $moves $move] == -1} { lappend moves [list $move {} $::tree::mask::defaultColor {} {} {}] set newpos [lreplace $mask($fen) 0 0 $moves] set mask($fen) $newpos ::tree::refresh } } ################################################################################ # ################################################################################ proc ::tree::mask::removeFromMask { move {fen ""} } { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)]} { return } set ::tree::mask::dirty 1 set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm != -1} { set moves [lreplace $moves $idxm $idxm] lset mask($fen) 0 $moves ::tree::refresh } # if the position has no move left and no comment, unset it if { [llength [lindex $mask($fen) 0] ] == 0 && [lindex $mask($fen) 1] == "" } { array unset mask $fen } } ################################################################################ # returns 1 if the move is already in mask ################################################################################ proc ::tree::mask::moveExists { move {fen ""} } { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)] || $move == "\[end\]" } { return 0 } set moves [ lindex $mask($fen) 0 ] if {[lsearch -regexp $moves "^$move *"] == -1} { return 0 } return 1 } ################################################################################ # return the list of moves with their data ################################################################################ proc ::tree::mask::getAllMoves {} { global ::tree::mask::mask if {![info exists mask($::tree::mask::cacheFenIndex)]} { return "" } set moves [ lindex $mask($::tree::mask::cacheFenIndex) 0 ] return $moves } ################################################################################ # ################################################################################ proc ::tree::mask::getColor { move {fen ""}} { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)]} { return $::tree::mask::defaultColor } set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { return $::tree::mask::defaultColor } set col [ lindex $moves $idxm 2 ] return $col } ################################################################################ # ################################################################################ proc ::tree::mask::setColor { move color {fen ""}} { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)]} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set ::tree::mask::dirty 1 set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set newmove [lreplace [lindex $moves $idxm] 2 2 $color ] set moves [lreplace $moves $idxm $idxm $newmove ] set mask($fen) [ lreplace $mask($fen) 0 0 $moves ] ::tree::refresh } ################################################################################ # defaults to " " (2 spaces) ################################################################################ proc ::tree::mask::getNag { move { fen "" }} { global ::tree::mask::mask ::tree::mask::emptyNag if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)]} { return $emptyNag } set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { return $emptyNag } set nag [ lindex $moves $idxm 1 ] if {$nag == ""} { set nag $emptyNag } if { [string length $nag] == 1} { set nag " $nag" } return $nag } ################################################################################ # ################################################################################ proc ::tree::mask::setNag { move nag {fen ""} } { global ::tree::mask::mask if { $nag == [::tr "None"] } { set nag "" } if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)]} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set ::tree::mask::dirty 1 set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set newmove [lreplace [lindex $moves $idxm] 1 1 $nag ] set moves [lreplace $moves $idxm $idxm $newmove ] set mask($fen) [ lreplace $mask($fen) 0 0 $moves ] ::tree::refresh } ################################################################################ # ################################################################################ proc ::tree::mask::getComment { move { fen "" } } { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if {![info exists mask($fen)] || $move == "" || $move == "\[end\]" } { return "" } set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { return "" } set comment [ lindex $moves $idxm 3 ] if {$comment == ""} { set comment " " } return $comment } ################################################################################ # ################################################################################ proc ::tree::mask::setComment { move comment { fen "" } } { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } set comment [string trim $comment] if {![info exists mask($fen)]} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set ::tree::mask::dirty 1 set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set newmove [lreplace [lindex $moves $idxm] 3 3 $comment ] set moves [lreplace $moves $idxm $idxm $newmove ] set mask($fen) [ lreplace $mask($fen) 0 0 $moves ] ::tree::refresh } ################################################################################ # ################################################################################ proc ::tree::mask::getPositionComment {{fen ""}} { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } if { ! [ info exists mask($fen) ] } { return "" } set comment [ lindex $mask($fen) 1 ] set comment [ string trim $comment ] return $comment } ################################################################################ # ################################################################################ proc ::tree::mask::setPositionComment { comment {fen ""} } { global ::tree::mask::mask if {$fen == ""} { set fen $::tree::mask::cacheFenIndex } set comment [ string trim $comment ] set ::tree::mask::dirty 1 # add position automatically if {![info exists mask($fen)]} { set mask($fen) { {} {} } } set newpos [ lreplace $mask($fen) 1 1 $comment ] set mask($fen) $newpos ::tree::refresh } ################################################################################ # ################################################################################ proc ::tree::mask::setImage { move img nmr } { global ::tree::mask::mask set fen $::tree::mask::cacheFenIndex if {![info exists mask($fen)]} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set ::tree::mask::dirty 1 set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } set loc [expr 4 + $nmr] set newmove [lreplace [lindex $moves $idxm] $loc $loc $img ] set moves [lreplace $moves $idxm $idxm $newmove ] set mask($fen) [ lreplace $mask($fen) 0 0 $moves ] ::tree::refresh } ################################################################################ # nmr = 0 or 1 (two images per line) ################################################################################ proc ::tree::mask::getImage { move nmr } { global ::tree::mask::mask set fen $::tree::mask::cacheFenIndex if {![info exists mask($fen)]} { return ::tree::mask::emptyImage } set moves [ lindex $mask($fen) 0 ] set idxm [lsearch -regexp $moves "^$move *"] if { $idxm == -1} { return ::tree::mask::emptyImage } set loc [expr 4 + $nmr] set img [lindex $moves $idxm $loc] if {$img == ""} { set img ::tree::mask::emptyImage } return $img } ################################################################################ # if move is null, this is a position comment ################################################################################ proc ::tree::mask::addComment { { move "" } } { # first check the move is present in Mask if { $move != "" } { if { ![::tree::mask::moveExists $move] } { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr AddMoveToMaskFirst ] return } } set w .treeMaskAddComment toplevel .treeMaskAddComment if {$move == ""} { set oldComment [::tree::mask::getPositionComment] ::setTitle $w [::tr CommentPosition] } else { set oldComment [::tree::mask::getComment $move ] ::setTitle $w [::tr CommentMove] } set oldComment [ string trim $oldComment ] autoscrollframe $w.f text $w.f.e -width 40 -height 5 -wrap word -setgrid 1 $w.f.e insert end $oldComment ttk::button $w.ok -text OK -command "::tree::mask::updateComment $move ; destroy $w ; ::tree::refresh" pack $w.f -side top -expand 1 -fill both pack $w.ok -side bottom focus $w.f.e } ################################################################################ # ################################################################################ proc ::tree::mask::updateComment { { move "" } } { set e .treeMaskAddComment.f.e set newComment [$e get 1.0 end] set newComment [ string trim $newComment ] set ::tree::mask::dirty 1 if {$move == ""} { ::tree::mask::setPositionComment $newComment } else { ::tree::mask::setComment $move $newComment } } ################################################################################ # ################################################################################ proc ::tree::mask::fillWithGame {} { if {$::tree::mask::maskFile == ""} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr OpenAMaskFileFirst] return } ::tree::primeWithGame 1 set ::tree::mask::dirty 1 } ################################################################################ # ################################################################################ proc ::tree::mask::fillWithBase {} { if {$::tree::mask::maskFile == ""} { tk_messageBox -title "Scid" -type ok -icon warning -message [ tr OpenAMaskFileFirst] return } ::tree::primeWithBase 1 set ::tree::mask::dirty 1 } ################################################################################ # Take current position information and fill the mask (move, nag, comments, etc) ################################################################################ proc ::tree::mask::feedMask { fen } { set stdNags { "!!" "!" "!?" "?!" "??" "~"} set fen [toShortFen $fen] set move [sc_game info previousMoveNT] set comment [sc_pos getComment $fen ] if {$move == ""} { set move "null" } # add move if not in mask if { ![moveExists $move $fen]} { addToMask $move $fen } if {$move == "null"} { set comment "$comment [getPositionComment]" setPositionComment $comment $fen return } # NAG set nag [string trim [sc_pos getNags]] if {$nag == 0} { set nag "" } if {$nag != ""} { # append the NAGs to comment if not standard if {[lsearch $stdNags $nag ] == -1 } { set comment "$nag $comment" set nag "" } else { set oldNag [getNag $move] if {$oldNag != $::tree::mask::emptyNag && $oldNag != $nag} { set comment "<$oldNag>(?!?) $comment" } setNag $move $nag $fen } } # append comment set oldComment [getComment $move $fen] if { $oldComment != "" && $oldComment != $comment } { set comment "$oldComment\n$comment" } setComment $move $comment $fen } ################################################################################ # trim the fen to keep position data only ################################################################################ proc ::tree::mask::toShortFen {fen} { set ret [lreplace $fen end-1 end] return $ret } ################################################################################ # ################################################################################ proc ::tree::mask::setCacheFenIndex {} { set ::tree::mask::cacheFenIndex [ toShortFen [sc_pos fen] ] } ################################################################################ # ################################################################################ proc ::tree::mask::infoMask {} { global ::tree::mask::mask set npos [array size mask] # set nmoves 0 set nmoves [lindex [ split [array statistics mask] "\n" ] end ] # foreach pos $mask { # incr nmoves [llength [lindex $pos 1]] # } tk_messageBox -title "Mask info" -type ok -icon info -message "Mask : $::tree::mask::maskFile\n[tr Positions] : $npos\n[tr Moves] : $nmoves" } ################################################################################ # Dumps mask content in a tree view widget # The current position is the reference base ################################################################################ proc ::tree::mask::displayMask {} { global ::tree::mask::mask set w .displaymask if { [winfo exists $w] } { focus $w return } toplevel $w wm title $w [::tr DisplayMask] setWinLocation $w setWinSize $w ttk::button $w.bupdate -text [::tr "Update"] -command ::tree::mask::updateDisplayMask ttk::frame $w.f ttk::frame $w.fcb pack $w.fcb -fill x ttk::checkbutton $w.fcb.nag -text [::tr "Nag"] -variable ::tree::mask::displayMask_showNag -command ::tree::mask::updateDisplayMask ttk::checkbutton $w.fcb.comment -text [::tr "Comments"] -variable ::tree::mask::displayMask_showComment -command ::tree::mask::updateDisplayMask pack $w.fcb.nag $w.fcb.comment -side left pack $w.bupdate -fill x pack $w.f -fill both -expand 1 ttk::treeview $w.f.tree -yscrollcommand "$w.f.ybar set" -xscrollcommand "$w.f.xbar set" -show tree -selectmode browse # workaround for a bug in treeview (xscrollbar does not get view size) $w.f.tree column #0 -minwidth 1200 ttk::scrollbar $w.f.xbar -command "$w.f.tree xview" -orient horizontal ttk::scrollbar $w.f.ybar -command "$w.f.tree yview" pack $w.f.xbar -side bottom -fill x pack $w.f.ybar -side right -fill y pack $w.f.tree -side left -expand 1 -fill both updateDisplayMask bind $w { destroy .displaymask } bind $w { recordWinSize .displaymask } $w.f.tree tag bind dblClickTree {::tree::mask::maskTreeUnfold } } ################################################################################ # ################################################################################ proc ::tree::mask::updateDisplayMask {} { global ::tree::mask::mask set tree .displaymask.f.tree $tree delete [ $tree children {} ] set fen [toShortFen [sc_pos fen] ] # use clipbase to enter a dummy game set currentbase [sc_base current] sc_base switch clipbase sc_info preMoveCmd {} sc_game push copyfast if {[catch {sc_game startBoard $fen} err]} { puts "sc_game startBoard $fen => $err" } if { [info exists mask($fen) ] } { set moves [lindex $mask($fen) 0] ::tree::mask::populateDisplayMask $moves {} $fen {} [lindex $mask($fen) 1] } sc_game pop sc_info preMoveCmd preMoveCommand sc_base switch $currentbase } ################################################################################ # creates a new image whose name is name1_name2, and concatenates two images. # parameters are the markers, not the images names ################################################################################ proc ::tree::mask::createImage {marker1 marker2} { if {[lsearch [image names] "$marker1$marker2" ] != -1} { return } set img1 $::tree::mask::marker2image($marker1) set img2 $::tree::mask::marker2image($marker2) set w1 [image width $img1] set w2 [image width $img2] set h1 [image height $img1] set h2 [image height $img2] set margin 2 image create photo $marker1$marker2 -height $h1 -width [expr $w1 + $w2 + $margin] $marker1$marker2 copy $img1 -from 0 0 -to 0 0 $marker1$marker2 copy $img2 -from 0 0 -to [expr $w1 +$margin] 0 } ################################################################################ # ################################################################################ proc ::tree::mask::maskTreeUnfold {} { set t .displaymask.f.tree proc unfold {id} { set t .displaymask.f.tree foreach c [$t children $id] { $t item $c -open true unfold $c } } set id [$t selection] unfold $id } ################################################################################ # returns the first line of multi-line string (separated with \n) ################################################################################ proc ::tree::mask::trimToFirstLine {s} { set s [ lindex [ split $s "\n" ] 0 ] return $s } ################################################################################ # ################################################################################ proc ::tree::mask::populateDisplayMask { moves parent fen fenSeen posComment} { global ::tree::mask::mask set posComment [ trimToFirstLine $posComment ] if { $posComment != ""} { set posComment "\[$posComment\] " } set tree .displaymask.f.tree foreach m $moves { set move [lindex $m 0] if {$move == "null"} { continue } set img "" if {[lindex $m 4] != "" && [lindex $m 5] == ""} { set img [lindex $m 4] } if {[lindex $m 4] == "" && [lindex $m 5] != ""} { set img [lindex $m 5] } if {[lindex $m 4] != "" && [lindex $m 5] != ""} { set l [array get ::tree::mask::marker2image] set idx [ lsearch $l [lindex $m 4] ] set mark1 [lindex $l [expr $idx -1 ] ] set idx [ lsearch $l [lindex $m 5] ] set mark2 [lindex $l [expr $idx -1 ] ] createImage $mark1 $mark2 set img $mark1$mark2 } set nag "" if { $::tree::mask::displayMask_showNag } { set nag [lindex $m 1] } if {[lindex $m 3] != "" && $::tree::mask::displayMask_showComment} { set move_comment " [lindex $m 3]" set move_comment [ trimToFirstLine $move_comment ] } else { set move_comment "" } if { ! $::tree::mask::displayMask_showComment} { set posComment "" } set id [ $tree insert $parent end -text "$posComment[::trans $move][set nag]$move_comment" -image $img -tags dblClickTree ] if {[catch {sc_game startBoard $fen} err]} { puts "ERROR sc_game startBoard $fen => $err" } sc_move addSan $move set newfen [toShortFen [sc_pos fen] ] if {[lsearch $fenSeen $newfen] != -1} { return } if { [info exists mask($newfen) ] } { set newmoves [lindex $mask($newfen) 0] while { [llength $newmoves] == 1 } { lappend fenSeen $newfen sc_move addSan [ lindex $newmoves { 0 0 } ] set newfen [toShortFen [sc_pos fen] ] if {[lsearch $fenSeen $newfen] != -1} { return } lappend fenSeen $newfen if {[lindex $newmoves 0 3] != "" && $::tree::mask::displayMask_showComment } { set move_comment " [lindex $newmoves 0 3]" set move_comment [ trimToFirstLine $move_comment ] } else { set move_comment "" } if {[lindex $newmoves 1] != "" && $::tree::mask::displayMask_showComment } { set pos_comment " \[[lindex $newmoves 1]\]" set pos_comment [ trimToFirstLine $pos_comment ] } else { set pos_comment "" } set nag "" if { $::tree::mask::displayMask_showNag } { set nag [ lindex $newmoves { 0 1 } ] } $tree item $id -text "[ $tree item $id -text ] $pos_comment[::trans [ lindex $newmoves { 0 0 } ] ][ set nag ]$move_comment" if { ! [info exists mask($newfen) ] } { break } set newmoves [lindex $mask($newfen) 0] } if { [info exists mask($newfen) ] } { set newmoves [lindex $mask($newfen) 0] ::tree::mask::populateDisplayMask $newmoves $id $newfen $fenSeen [lindex $mask($newfen) 1] } } } } ################################################################################ # ################################################################################ proc ::tree::mask::searchMask { baseNumber } { set w .searchmask if { [winfo exists $w] } { focus $w return } toplevel $w wm title $w [::tr SearchMask] ttk::frame $w.f1 ttk::frame $w.f2 pack $w.f1 -side top -fill both -expand 1 pack $w.f2 -side top -fill both -expand 1 # NAG selection ttk::checkbutton $w.f1.nagl -text [tr Nag] -variable ::tree::mask::searchMask_usenag menu $w.f1.nagmenu ttk::menubutton $w.f1.nag -textvariable ::tree::mask::searchMask_nag -menu $w.f1.nagmenu -style pad0.TMenubutton set ::tree::mask::searchMask_nag [::tr "None"] foreach nag [ list "!!" " !" "!?" "?!" " ?" "??" " ~" [::tr "None"] ] { $w.f1.nagmenu add command -label $nag -command "set ::tree::mask::searchMask_nag $nag" } grid $w.f1.nagl -column 0 -row 0 grid $w.f1.nag -column 0 -row 1 # Markers 1 & 2 foreach j { 0 1 } { ttk::checkbutton $w.f1.ml$j -text "[tr Marker] [expr $j +1]" -variable ::tree::mask::searchMask_usemarker$j menu $w.f1.menum$j ttk::menubutton $w.f1.m$j -textvariable ::tree::mask::searchMask_trm$j -menu $w.f1.menum$j -style pad0.TMenubutton set ::tree::mask::searchMask_trm$j [tr "Include"] set ::tree::mask::searchMask_m$j $::tree::mask::marker2image(Include) foreach e { Include Exclude MainLine Bookmark White Black NewLine ToBeVerified ToTrain Dubious ToRemove } { set i $::tree::mask::marker2image($e) $w.f1.menum$j add command -label [ tr $e ] -image $i -compound left \ -command "set ::tree::mask::searchMask_trm$j \"[tr $e ]\" ; set ::tree::mask::searchMask_m$j $i" } grid $w.f1.ml$j -column [expr 1 + $j] -row 0 grid $w.f1.m$j -column [expr 1 + $j] -row 1 } # Color ttk::checkbutton $w.f1.colorl -text [tr ColorMarker] -variable ::tree::mask::searchMask_usecolor menu $w.f1.colormenu ttk::menubutton $w.f1.color -textvariable ::tree::mask::searchMask_trcolor -menu $w.f1.colormenu -style pad0.TMenubutton set ::tree::mask::searchMask_trcolor [::tr "White"] set ::tree::mask::searchMask_color "White" foreach c { "White" "Green" "Yellow" "Blue" "Red"} { $w.f1.colormenu add command -label [ tr "${c}Mark" ] \ -command "set ::tree::mask::searchMask_trcolor [ tr ${c}Mark ] ; set ::tree::mask::searchMask_color $c" } grid $w.f1.colorl -column 3 -row 0 grid $w.f1.color -column 3 -row 1 # Move annotation ttk::checkbutton $w.f1.movecommentl -text "Move comment" -variable ::tree::mask::searchMask_usemovecomment ttk::entry $w.f1.movecomment -textvariable ::tree::mask::searchMask_movecomment -width 12 grid $w.f1.movecommentl -column 4 -row 0 grid $w.f1.movecomment -column 4 -row 1 # Position annotation ttk::checkbutton $w.f1.poscommentl -text "Position comment" -variable ::tree::mask::searchMask_useposcomment ttk::entry $w.f1.poscomment -textvariable ::tree::mask::searchMask_poscomment -width 12 grid $w.f1.poscommentl -column 5 -row 0 grid $w.f1.poscomment -column 5 -row 1 ttk::button $w.f1.search -text [tr "Search"] -command " ::tree::mask::perfomSearch $baseNumber " grid $w.f1.search -column 6 -row 0 -rowspan 2 # display search result text $w.f2.text -yscrollcommand "$w.f2.ybar set" -height 50 ttk::scrollbar $w.f2.ybar -command "$w.f2.text yview" pack $w.f2.ybar -side left -fill y pack $w.f2.text -side left -fill both -expand yes setWinLocation $w setWinSize $w bind $w.f2.text " ::tree::mask::searchClick %x %y %W $baseNumber " bind $w { destroy .searchmask } bind $w "recordWinSize $w" } ################################################################################ # ################################################################################ proc ::tree::mask::perfomSearch { baseNumber } { global ::tree::mask::mask set t .searchmask.f2.text # contains the search result (FEN) set res {} set pos_count 0 set move_count 0 set pos_total 0 set move_total 0 $t delete 1.0 end # Display FEN + moves and comments. Clicking on a line starts filtering current base foreach fen [array names mask] { incr pos_total # Position comment set poscomment [ lindex $mask($fen) 1 ] if { $::tree::mask::searchMask_useposcomment } { if { [string match -nocase "*$::tree::mask::searchMask_poscomment*" $poscomment] } { lappend res "$fen $poscomment" incr pos_count } else { continue } } set moves [ lindex $mask($fen) 0 ] foreach m $moves { incr move_total # NAG if { $::tree::mask::searchMask_usenag } { set nag $::tree::mask::searchMask_nag if { $nag == [::tr "None"] } { set nag "" } if { [ string trim [lindex $m 1] ] != $nag } { continue } } # Markers 1 & 2 if { $::tree::mask::searchMask_usemarker0 } { if { $::tree::mask::searchMask_m0 != [lindex $m 4] } { continue } } if { $::tree::mask::searchMask_usemarker1 } { if { $::tree::mask::searchMask_m1 != [lindex $m 5] } { continue } } # Color if { $::tree::mask::searchMask_usecolor } { if { [ string compare -nocase $::tree::mask::searchMask_color [lindex $m 2] ] != 0 } { continue } } # Move annotation set movecomment [lindex $m 3] if { $::tree::mask::searchMask_usemovecomment } { if { ! [string match -nocase "*$::tree::mask::searchMask_movecomment*" $movecomment] } { continue } } lappend res "$fen [::trans [lindex $m 0]] $movecomment" incr move_count } } # output the result foreach l $res { $t insert end "$l\n" } wm title .searchmask "[::tr SearchMask] [::tr Positions] $pos_count / $pos_total - [::tr moves] $move_count / $move_total" } ################################################################################ # ################################################################################ proc ::tree::mask::searchClick {x y win baseNumber} { set idx [ $win index @$x,$y ] if { [ scan $idx "%d.%d" l c ] != 2 } { # should never happen return } set elt [$win get $l.0 $l.end] if {[llength $elt] < 4} { return } set fen [ lrange $elt 0 3 ] # load the position in a temporary game (in clipbase), update the Trees then switch to Tree's base sc_base switch clipbase sc_info preMoveCmd {} sc_game push copyfast if {[catch {sc_game startBoard $fen} err]} { puts "sc_game startBoard $fen => $err" } else { # TODO : call sc_search board maybe wiser ? ::tree::refresh # updateBoard -pgn } sc_game pop sc_info preMoveCmd preMoveCommand sc_base switch $baseNumber # ::file::SwitchToBase $baseNumber if {[sc_filter first != 0]} { ::game::Load [sc_filter first] } else { updateBoard -pgn } # updateBoard -pgn } ################################################################################ # ################################################################################ image create photo ::tree::mask::emptyImage -data { R0lGODdhEQARAIAAAP///////ywAAAAAEQARAAACD4SPqcvtD6OctNqLs96xAAA7 } image create photo ::tree::mask::imageWhite -data { R0lGODlhEQARAMIEAAAAAD8/P39/f7+/v////////////////yH5BAEKAAcALAAAAAARABEA AANBeLrcrkOI8RwYA9QGCNHbAkhgGAieEISq551b60rhmJaV0BHwFgQu3uohC6oeu6AHB0Ep U4KG5AmVAq7YbDS0SQAAOw== } image create photo ::tree::mask::imageBlack -data { R0lGODlhEQARAMIEAAAAAD8/P39/f7+/v////////////////yH5BAEKAAQALAAAAAARABEA AAM0SLrcrkOI8Ry4oDac9eKeEnCBJ3CXoJ2oqqHdyrnViJYPC+MbjDkDH4bC0PloCiMMGWok AAA7 } image create photo ::tree::mask::imageMainLine -data { R0lGODlhEQARAOfzAAAAAAIAAAMAAAYAAAUFBRIMCw4ODisLBBQUFCUSDiIXFR8fHygoKDg4 OE9BFVpQLlxQK2FWL2JWN2FXOGVZMGZaMrs3GWxfNGFhYWdjWcBGK8FGKm9rY8NMMd9CHsRU O3R0cnV0cs9SNcdXPtxQMN9PLnx4b3p6d9xWOHx7echhSslkS4CAf4GAf4KBfuNdP4OCgN9f QYODgYSDgYaFgt9jRsxtWIiIhZCKgeVpTuJrUN9yWNB4ZZOTkJSUkd94X916Y5qVipuVit96 YpuWipiXlJeXl5iXl52Xi5mYkeh5YJ2XjJmYl56Yjed7Y5uZl5+ZjZ+Zjpqal5qamZual5+a jqCajpubmaGbj6GbkJycnKGckOeBa6OdkaOdkp6enp+enKOekueDbaSek5+fnqGfnKGgnaGh oKGhodeQfaWjoKSko+qMd+KPfamppqqppquqp6urqqyrqKurq6yrqa2rqa2sqe2kPq+vrrCv rbCvrrGwrrOyr+eejbOysfCpP7Ozs7SzsbSzsrS0steudLW0srW0s7W1s7W1tLW1tba1tLe2 tbi3tPOvQrm3tri4trm4uLm5ubq5t/SyRO+0Tbu7ufe1RPK2Tfe1Rb29vO6rm8C/vMDAwMPC vsXEwcnJx8rKyM3LyPbSNs3My83Nzc/OytDOyvjYN9DQz9LRzdHR0dPSzvncONTTz9PT0tPT 09XTztbU0PnfOdfV0dfW0dbW1tjW0djW0tnX09nX1PrkOtrZ1dvZ1fvnO9za1tza2Nzb2Nzb 2fzpO9zc2t3c2N3c2t7d2fzrPd/e2uDe2t/f3eDf2+Hf2+Hf3OHg3ODg3+Hg3eLh3ePi4OTj 4OXj4OXk4eTk5Obl4ufm4+jn5Ofn5+np6evq6Ozr6e3s6u3t6+3t7e/v7vDw7vDw8PHw7vLy 8vPy8fTz8vT09Pb19Pb29vj39vj49/n5+Pn5+fr6+fv7+/z8+/7+/v////////////////// /////////////////////////////////yH5BAEKAP8ALAAAAAARABEAAAj7AP8J/JdAwIAD AxMOBPBKnaY+QFbUctdOm7UFCQGomyfmx44Rtea1w7MNUIOF8+ZxqVGjAxpOmdaMQzeHgEAA KZV48GCBTKZMZxzNAADg5jx5OnmiWtfu2S8AvS4ZfccmRw4Vo86dMwcA04Wi/3CyY8ODh40p jxAB0DWBqNFzAFgwAXBkEABKFZ6YAIvznLJP5IoFA3CKAgA7OPjOE4fokCBBAETdAQDCUxDF 3PboyUPHAVEXPXZlUYzt2jVqwAAUodJpFS4ofMFBc7bMWCo+m0LxwjULCV9VzJAZI5bLVCxe vm7BEsI3SRgvXbZgsWIlC5QlRDKAVchdYUAAOw== } #---------------------------------------------------------------------- if {$png_image_support} { image create photo ::tree::mask::imageMainLine -data { iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI WXMAAAsSAAALEgHS3X78AAAAB3RJTUUH0wkWEisFOaTQ6wAAAB10RVh0Q29tbWVudABDcmVhdGVk IHdpdGggVGhlIEdJTVDvZCVuAAABqklEQVR42oWTz0sbQRTHP6alPy49BBfM0VuuvQiN6G5zlFIP 8Q/w0EPBsxbZP6B/gaciVbQklIoNHpdslkAOkUJLdSEHQeKyjI2HQjY1ypodD3a32bWuDx7z3sx7 n5n5MgP/TD4AmQH5CCR3+6uRHsZGAaeri1Ey8X6DIAhuFqTEcRw6nQ6qqgIsADsAGRI2aJkMWiYA nufheR79fh/HcSgUClQqFYAv4UkekmKmaUZxEATouo4QAk3TsCxrDxhLBRSLxegKvV6PdruNbR9g WVZY8joVUKvVYnk+n0fXdXwxzeB7lmdze9VUgKZpsTybzXJ1NoO//5ilD8fcq0G9Xo/iUqnE1a9p /P0nLH/+zdbXQ4DnqQBVVZFSoigKl8cvuGg95d3ukLXNb2HJj8x9GiiKwvnPKc7tcd6uC9Y+mhiG EdXcAkyaJxz98WMadI5mWfnksF21EULcuaEEZKPRiD3d+ZdKFJfLZem6rjQMI5yLizgcDul2uwgh yOVyAFTrZ7iuG70HKWVs11sihkXJpmTjfwHNZhPf92Ow0TG0v3A7CVsi/Rsn/Q3ANdGG5Icao+xt AAAAAElFTkSuQmCC } } #---------------------------------------------------------------------- scid-4.3.0.cvs20120311/tcl/windows/crosstab.tcl0000644000175000017500000003250411727223077020242 0ustar oliveroliver ###################################################################### ### Crosstable window namespace eval ::crosstab {} set crosstab(sort) score set crosstab(type) auto set crosstab(ages) "+ages" set crosstab(colors) "+colors" set crosstab(ratings) "+ratings" set crosstab(countries) "+countries" set crosstab(titles) "+titles" set crosstab(groups) "-groups" set crosstab(breaks) "-breaks" set crosstab(deleted) "-deleted" set crosstab(cnumbers) "-numcolumns" set crosstab(text) hypertext proc ::crosstab::ConfigMenus {{lang ""}} { if {! [winfo exists .crosstabWin]} { return } if {$lang == ""} { set lang $::language } set m .crosstabWin.menu foreach idx {0 1 2 3 4 5} tag {File Edit Opt Sort Color Help} { configMenuText $m $idx Crosstab$tag $lang } foreach idx {0 1 2 4} tag {Text Html LaTeX Close} { configMenuText $m.file $idx CrosstabFile$tag $lang } foreach idx {0 1 2} tag {Event Site Date} { configMenuText $m.edit $idx CrosstabEdit$tag $lang } foreach idx {0 1 2 3 5 6 7 8 9 10 12 13 15} tag {All Swiss Knockout Auto Ages Nats Ratings Titles Breaks Deleted Colors ColumnNumbers Group} { configMenuText $m.opt $idx CrosstabOpt$tag $lang } foreach idx {0 1 2} tag {Name Rating Score} { configMenuText $m.sort $idx CrosstabSort$tag $lang } foreach idx {0 1} tag {Plain Hyper} { configMenuText $m.color $idx CrosstabColor$tag $lang } foreach idx {0 1} tag {Cross Index} { configMenuText $m.helpmenu $idx CrosstabHelp$tag $lang } } proc toggleCrosstabWin {} { set w .crosstabWin if {[winfo exists $w]} { destroy $w } else { crosstabWin } } proc ::crosstab::RefreshIfOpen {} { set w .crosstabWin if {[winfo exists $w]} { crosstabWin } } proc ::crosstab::Open {} { global crosstab set w .crosstabWin if {[winfo exists $w]} { ::crosstab::Refresh return } toplevel $w wm title $w "Scid: [tr ToolsCross]" wm minsize $w 50 5 setWinLocation $w menu $w.menu $w configure -menu $w.menu $w.menu add cascade -label CrosstabFile -menu $w.menu.file $w.menu add cascade -label CrosstabEdit -menu $w.menu.edit $w.menu add cascade -label CrosstabOpt -menu $w.menu.opt $w.menu add cascade -label CrosstabSort -menu $w.menu.sort $w.menu add cascade -label CrosstabText -menu $w.menu.color $w.menu add cascade -label CrosstabHelp -menu $w.menu.helpmenu foreach i {file edit opt sort color helpmenu} { menu $w.menu.$i -tearoff 0 } $w.menu.file add command -label CrosstabFileText -command { set ftype { { "Text files" {".txt"} } { "All files" {"*"} } } set fname [tk_getSaveFile -initialdir [pwd] -filetypes $ftype -title "Save Crosstable"] if {$fname != ""} { if {[catch {set tempfile [open $fname w]}]} { tk_messageBox -title "Scid: Error saving file" -type ok -icon warning -message "Unable to save the file: $fname\n\n" } else { puts -nonewline $tempfile [.crosstabWin.f.text get 1.0 end] close $tempfile } } } $w.menu.file add command -label CrosstabFileHtml -command { set ftype { { "HTML files" {".html" ".htm"} } { "All files" {"*"} } } set fname [tk_getSaveFile -initialdir $::initialDir(html) -filetypes $ftype -title "Save Crosstable as HTML"] if {$fname != ""} { if {[file extension $fname] != ".html" && [file extension $fname] != ".htm" } { append fname ".html" } if {[catch {set tempfile [open $fname w]}]} { tk_messageBox -title "Scid: Error saving file" -type ok -icon warning -message "Unable to save the file: $fname\n\n" } else { catch {sc_game crosstable html $crosstab(sort) $crosstab(type) \ $crosstab(ratings) $crosstab(countries) $crosstab(titles) \ $crosstab(colors) $crosstab(groups) $crosstab(ages) \ $crosstab(breaks) $crosstab(cnumbers) $crosstab(deleted)} \ result puts $tempfile $result close $tempfile } } } $w.menu.file add command -label CrosstabFileLaTeX -command { set ftype { { "LaTeX files" {".tex" ".ltx"} } { "All files" {"*"} } } set fname [tk_getSaveFile -initialdir $::initialDir(tex) -filetypes $ftype -title "Save Crosstable as LaTeX"] if {$fname != ""} { if {[file extension $fname] != ".tex" && [file extension $fname] != ".ltx" } { append fname ".tex" } if {[catch {set tempfile [open $fname w]}]} { tk_messageBox -title "Scid: Error saving file" \ -type ok -icon warning \ -message "Unable to save the file: $fname\n\n" } else { catch {sc_game crosstable latex $crosstab(sort) $crosstab(type) \ $crosstab(ratings) $crosstab(countries) $crosstab(titles) \ $crosstab(colors) $crosstab(groups) $crosstab(ages) \ $crosstab(breaks) $crosstab(cnumbers) $crosstab(deleted)} \ result puts $tempfile $result close $tempfile } } } $w.menu.file add separator $w.menu.file add command -label CrosstabFileClose \ -command { .crosstabWin.b.cancel invoke } -accelerator Esc $w.menu.edit add command -label CrosstabEditEvent -command { makeNameEditor setNameEditorType event set editName [sc_game info event] set editNameNew "" set editNameSelect crosstable } $w.menu.edit add command -label CrosstabEditSite -command { makeNameEditor setNameEditorType site set editName [sc_game info site] set editNameNew "" set editNameSelect crosstable } $w.menu.edit add command -label CrosstabEditDate -command { makeNameEditor setNameEditorType date set editNameNew " " set editDate [sc_game info date] set editDateNew [sc_game info date] set editNameSelect crosstable } $w.menu.opt add radiobutton -label CrosstabOptAll \ -variable crosstab(type) -value allplay -command crosstabWin $w.menu.opt add radiobutton -label CrosstabOptSwiss \ -variable crosstab(type) -value swiss -command crosstabWin $w.menu.opt add radiobutton -label CrosstabOptKnockout \ -variable crosstab(type) -value knockout -command crosstabWin $w.menu.opt add radiobutton -label CrosstabOptAuto \ -variable crosstab(type) -value auto -command crosstabWin $w.menu.opt add separator $w.menu.opt add checkbutton -label CrosstabOptAges \ -variable crosstab(ages) -onvalue "+ages" \ -offvalue "-ages" -command crosstabWin $w.menu.opt add checkbutton -label CrosstabOptNats \ -variable crosstab(countries) -onvalue "+countries" \ -offvalue "-countries" -command crosstabWin $w.menu.opt add checkbutton -label CrosstabOptRatings \ -variable crosstab(ratings) -onvalue "+ratings" -offvalue "-ratings" \ -command crosstabWin $w.menu.opt add checkbutton -label CrosstabOptTitles \ -variable crosstab(titles) -onvalue "+titles" -offvalue "-titles" \ -command crosstabWin $w.menu.opt add checkbutton -label CrosstabOptBreaks \ -variable crosstab(breaks) -onvalue "+breaks" \ -offvalue "-breaks" -command crosstabWin $w.menu.opt add checkbutton -label CrosstabOptDeleted \ -variable crosstab(deleted) -onvalue "+deleted" \ -offvalue "-deleted" -command crosstabWin $w.menu.opt add separator $w.menu.opt add checkbutton -label CrosstabOptColors \ -underline 0 -variable crosstab(colors) \ -onvalue "+colors" -offvalue "-colors" -command crosstabWin $w.menu.opt add checkbutton -label CrosstabOptColumnNumbers \ -underline 0 -variable crosstab(cnumbers) \ -onvalue "+numcolumns" -offvalue "-numcolumns" -command crosstabWin $w.menu.opt add separator $w.menu.opt add checkbutton -label CrosstabOptGroup \ -underline 0 -variable crosstab(groups) \ -onvalue "+groups" -offvalue "-groups" -command crosstabWin $w.menu.sort add radiobutton -label CrosstabSortName \ -variable crosstab(sort) -value name -command crosstabWin $w.menu.sort add radiobutton -label CrosstabSortRating \ -variable crosstab(sort) -value rating -command crosstabWin $w.menu.sort add radiobutton -label CrosstabSortScore \ -variable crosstab(sort) -value score -command crosstabWin $w.menu.color add radiobutton -label CrosstabColorPlain \ -variable crosstab(text) -value plain -command crosstabWin $w.menu.color add radiobutton -label CrosstabColorHyper \ -variable crosstab(text) -value hypertext -command crosstabWin $w.menu.helpmenu add command -label CrosstabHelpCross \ -accelerator F1 -command {helpWindow Crosstable} $w.menu.helpmenu add command -label CrosstabHelpIndex \ -command {helpWindow Index} ::crosstab::ConfigMenus frame $w.b pack $w.b -side bottom -fill x frame $w.f pack $w.f -side top -fill both -expand true text $w.f.text -width $::winWidth($w) -height $::winHeight($w) \ -wrap none -font font_Fixed \ -background white -yscroll "$w.f.ybar set" \ -xscroll "$w.f.xbar set" -setgrid 1 -cursor top_left_arrow ::htext::init $w.f.text $w.f.text tag configure bgGray -background gray95 scrollbar $w.f.ybar -command "$w.f.text yview" scrollbar $w.f.xbar -orient horizontal -command "$w.f.text xview" grid $w.f.text -row 0 -column 0 -sticky nesw grid $w.f.ybar -row 0 -column 1 -sticky nesw grid $w.f.xbar -row 1 -column 0 -sticky nesw grid rowconfig $w.f 0 -weight 1 -minsize 0 grid columnconfig $w.f 0 -weight 1 -minsize 0 button $w.b.stop -textvar ::tr(Stop) -state disabled \ -command { set ::htext::interrupt 1 } menubutton $w.b.type -text "" -menu $w.b.type.menu \ -relief raised -bd 2 -indicatoron 1 menu $w.b.type.menu $w.b.type.menu add radiobutton -label [tr CrosstabOptAll] \ -variable crosstab(type) -value allplay -command crosstabWin $w.b.type.menu add radiobutton -label [tr CrosstabOptSwiss] \ -variable crosstab(type) -value swiss -command crosstabWin $w.b.type.menu add radiobutton -label [tr CrosstabOptKnockout] \ -variable crosstab(type) -value knockout -command crosstabWin $w.b.type.menu add radiobutton -label [tr CrosstabOptAuto] \ -variable crosstab(type) -value auto -command crosstabWin button $w.b.update -textvar ::tr(Update) -command crosstabWin button $w.b.cancel -textvar ::tr(Close) -command { focus . destroy .crosstabWin } button $w.b.setfilter -textvar ::tr(SetFilter) -command { ::search::filter::reset ::search::filter::negate sc_game crosstable filter ::windows::gamelist::Refresh } button $w.b.addfilter -textvar ::tr(AddToFilter) -command { sc_game crosstable filter ::windows::gamelist::Refresh } pack $w.b.cancel $w.b.update $w.b.type \ -side right -pady 3 -padx 5 pack $w.b.setfilter $w.b.addfilter -side left -pady 3 -padx 5 bind $w "recordWinSize $w" bind $w { helpWindow Crosstable } bind $w { .crosstabWin.b.update invoke } bind $w { .crosstabWin.b.cancel invoke } bind $w { .crosstabWin.f.text yview scroll -1 units } bind $w { .crosstabWin.f.text yview scroll 1 units } bind $w { .crosstabWin.f.text yview scroll -1 pages } bind $w { .crosstabWin.f.text yview scroll 1 pages } bind $w { .crosstabWin.f.text xview scroll -1 units } bind $w { .crosstabWin.f.text xview scroll 1 units } bind $w { .crosstabWin.f.text xview moveto 0 } bind $w { .crosstabWin.f.text xview moveto 0.99 } standardShortcuts $w # MouseWheel Bindings: bind $w { .crosstabWin.f.text yview scroll [expr {- (%D / 120)}] units} if {! $::windowsOS} { bind $w { .crosstabWin.f.text yview scroll -1 units } bind $w { .crosstabWin.f.text yview scroll 1 units } } ::crosstab::Refresh } proc crosstabWin {} { ::crosstab::Open } proc ::crosstab::Refresh {} { global crosstab set w .crosstabWin if {! [winfo exists $w]} { return } switch $crosstab(type) { allplay { $w.b.type configure -text [tr CrosstabOptAll] } swiss { $w.b.type configure -text [tr CrosstabOptSwiss] } knockout { $w.b.type configure -text [tr CrosstabOptKnockout] } auto { $w.b.type configure -text [tr CrosstabOptAuto] } } $w.f.text configure -state normal $w.f.text delete 1.0 end busyCursor . $w.f.text configure -state disabled update idle $w.b.stop configure -state normal foreach button {update cancel setfilter addfilter type} { $w.b.$button configure -state disabled } pack $w.b.stop -side right -padx 5 -pady 3 catch {grab $w.b.stop} update catch {sc_game crosstable $crosstab(text) $crosstab(sort) $crosstab(type) \ $crosstab(ratings) $crosstab(countries) $crosstab(titles) \ $crosstab(colors) $crosstab(groups) $crosstab(ages) \ $crosstab(breaks) $crosstab(cnumbers) $crosstab(deleted)} result $w.f.text configure -state normal if {$crosstab(text) == "plain"} { $w.f.text insert end $result } else { ::htext::display $w.f.text $result } # Shade every second line to help readability: set lastLineNum [expr {int([$w.f.text index end])}] for {set i 2} {$i <= $lastLineNum} {incr i 2} { $w.f.text tag add bgGray $i.0 "$i.0 lineend +1c" } unbusyCursor . catch {grab release $w.b.stop} $w.b.stop configure -state disabled pack forget $w.b.stop foreach button {update cancel setfilter addfilter type} { $w.b.$button configure -state normal } $w.f.text configure -state disabled raiseWin $w } scid-4.3.0.cvs20120311/tcl/windows/switcher.tcl0000644000175000017500000007423111727223077020255 0ustar oliveroliver### ### windows/switcher.tcl: part of Scid ### Copyright (C) 2000-2004 Shane Hudson. set icons { {Unknown} { R0lGODdhIAAgAIAAAAAAAP///ywAAAAAIAAgAAACHoyPqcvtD6OctNqLs968+w+G4kiW5omm 6sq27gubBQA7 } {Temporary database} { R0lGODlhIAAgAMYaACEhISQkJC0tLTExMTU1NTk5OTo6Oj09PT4+PkJCQkND Q0REREZGRklJSUtLS0xMTE1NTU5OTlFRUVJSUlNTU1RUVFVVVVdXV1hYWFlZ WVpaWltbW1xcXF5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWhoaGlpaWpqamtr a2xsbG1tbW5ubm9vb3BwcHJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7 e3x8fH19fX5+fn9/f4GBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouL i4yMjI2NjY6OjpGRkZKSkpOTk5SUlJaWlpeXl5iYmJmZmZqamp2dnaKioqam pqmpqaqqqre3t7m5ubq6uru7u729vVpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWiH5BAEKAH8A LAAAAAAgACAAAAf+gH+Cg4SFhoeIiYqLhVtZVlhYjJOCV1VTUlmJT4JJg02K XFpUjok2Nzc1pzZHilFQSlFUiky1tVGIPSq7vLsuiENLQkdHUog5GMnKySeI KEMnNTVBiRIP19gPrYcjIUQhITyJMgnl5hOJKjU7Ly9DihAE8gQGSIkULxbg MYo0HP8cSiSK0sCBiwYNVihqkaFhBg+JiGjIwKKhQkQ4HCjYuHHEoSYaOSpg cNFQAgQoUyKAYoiESpWUYsqcSbOmTZtJfkzioUMnoxsuXOhgFBQGIx8lSvBj JMTEu0UdNnQQ5EEcrUkVJFTg4UGCjURAVIhYYTXRhwVoFzgANS5FDkZDRgzI NQBi0QEDESY5YMB3iaImAgQMKMKoBovDi4JcWFz2UBQLBSIXWAAE0QzJkV8k EgCgs2cATgw5+dw5wLabqFEHAgA7 } {Clipbase} { R0lGODdhIAAgAMIAAP///wAAqgAAAP//AOrq6gAAAAAAAAAAACwAAAAAIAAgAAADwAi63P4Q hKkCs9NKWvVd2KeFUmmCjVeOG3tWqIpxrHvR2Xp7XOT/wKBwISgaj8ik8SEYOJ/QqPTpaE6v 2IZ1oOx2tU7BEGgVj39lUGbNbvcA6QphbpwT6vTinBGX2PF3enkCe0RhIH+CgYSDhQp9AYCS ikV8hxWTjIuJllwgmYmalYaeco2nmwSdZn6ooKqkrAGhtKern5S5oqxwlxKvqYG3mLq1wrGI rsWwj76zyruMw63Br9ORy9W8TbzY0cZFCQA7 } {PGN format file} { R0lGODdhIAAgAKEAAP////8AAAAA/wAAACwAAAAAIAAgAAACZISPqcvtD6MMlKIajAXbiP9p WMaNpfhsVoWyHQCG5/mKWGqqq3nEgq2z0WqKGmtYInliqMQoE3QQk7vmEiTJaiW+rvcr227B ZLBYXE77zmO1m611v+FceZpet5PxEX2ZDxiIVwAAOw== } {My games} { R0lGODlhIAAgAOeOACAgICUlJSoqKi4uLjMzMzY2Njg4ODo6Ojw8PD09PT49 PT8+Pj8/P0BAQEJCQkREREVFRUZGRklISEpKSk1LS05OTk9PT1FRUVVSUlNT U1RUVFZWVllVVVhYWFtYWFxaWltbW1xcXF5cXF9cXF1dXWJfX2BgYGFhYWVi YmVjY2RkZGhlZWZmZmllZWhoaGtnZ2xoaGxpaWpqam9sbG9vb3Jvb3FxcXVy cnR0dHZ2dnl2dnd3d3h4eH13d3p6en55eXt7e4B6enx8fIB8fIN9fX9/f4CA gIR/f4GBgYKCgomDg4WFhYaGhoqFhYyGhoqKiouLi5CQkJWOjpaOjpGRkZKS kpeQkJSUlJWVlZuUlJ6Wlp6Xl5qampycnKKamp2dnaKbm56enqScnKCgoKef n6KioqmgoKqhoaWlpa2kpKioqLCmpqurq6ysrLGxsbKysrOzs7S0tLyysra2 tr6zs7+1tbq6usO4uLy8vMO5ub29vcW7u8e8vMDAwMi9vcfHx8nJyczMzM7O zs/Pz9LS0tTU1NbW1tra2t3d3eLi4uTk5Ojo6Orq6uzs7P////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /////////////////////yH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGD CBMqXMiwocOHECMqtEOxokU7Ev+p+cKxo8eObSLC0YMHz5iTbkrGOVlGop1G MHnI7ANzkEweSSLOYcQTh089PAP5xHElitGjSJFyEfhmkVMaUO04BQSVxpMu WLNq1YpGIBMfYA2J7QKWilhDPGSoXcuWrRGBQljIVUQXi9wldBXlkMu3r18c AnmcGJyoMJXBSAonsjG4sePHNARCCUO5suXKKkJo3syZswyBYxCJ7kCajZ/T TUh3SHHaj44OrWOfFtjlkO0MuNW0JoM7w5DWNzKcFiOlePEsAqv8WW6i+ZjT e/JcqFBhS53TNSpgp86dhEATE8L9ny1yGoyfGOHpiDk9YwL78PA7CAQBoX6h +0BOE/HjBIIIP0ecBgMEAtZnoAYCbdDAgoQ0uMNpLcixRgM/+PHBaSs0cJoW TnTYoQUCAdHGiM2BdxoKU/ghgRd0JHAiArK1NoFXgtRowI0GnFbCC368cIcV OfpRQpBD4mhABAIlEciSBDRJwGkjLMCHGX7A8KQfI1yZpZMEOCCQC0cNIOYA p3kwwBmnKUCmH2aWOaaYCQjEgAB01inAaRwI0IMfadCJ551+WEHEoIMqIdAB ASSqaACnYRAABX4EkWijjMY42z8TAKDpppx26umnBQz0gIGklmrqqfVlpOqq rEIUEAA7 } {Large database} { R0lGODdhIAAgAKEAAP8AAP///wAA/wAAACwAAAAAIAAgAAACiYSPqcvtH6KctFpks544iA9+ WRhGHQmOqGAeUblR8AnH3uzeNxunYkB7/VS8X1DIq6SELQNTspxEdcCcZTqldIjIzZaYrXzB tvE1LLaChxmz9IeWuLtQtjbHDmN5xx33eRRHZ4THIlhnyFd4+LZEY9fjuEiyJum0Q3mG0gRg 4ymn9un1QFpqeloAADs= } {Correspondence chess} { R0lGODdhIAAgANMAAAAAAAAAqgCqAACqqqoAAKoAqqpVAKqqqlVVVVVV/1X/VVX///9VVf9V ////Vf///ywAAAAAIAAgAAAEuPDJ+YC1NOs97fkfxo0UcDxgKpIcgL5p6LLZPJ24atM7leu8 1waHAo5MMM4PtKoliRniwTPdmFLJ4ZWpuVI/2U6sWgsxvk/UltrzMs5f6TpEFk/fF/RpLivf zzJUaipqbTKATBd0XFNta1uJi5E9EnFjTJd1XZCXnFwkliqZlJueU52kNQYGlpxNoKusX480 JbEeuI21qqsmvhe7Xbe/wS23p6nBAMO6xcK9yM7Pss3SGdAuydKvNBEAOw== } {Computer chess} { R0lGODlhIAAgAOezABVBgRtFhRFKiSBHiBNLihVMjCVMhzpmokNpmj9qpzhuqkFsqUxrl0FupE1s mEpspDpwrERurE5tmTtxrUNwpj1yrkRxp0VyqD90sEt3rkV5tUx4r055sVB7s1F8tFJ9tVN+tlV/ t0yCuHx6flt/slaAuX17f1yAs1eBuk+Eu12BtFiCu1CFvFaEtVyDsF6CtVmDvFGGvV2EsV+DtlqE vVKHvoF/g2CEt1uFvlOIv1mHuGaEsmGFuFSJwIOBhVqIuVuJulaKwWOHulyKvF2LvViMw1mNxF+M vmWLuGCNv2GOwGeNulyQyGKPwWOQwmmPvGSRw2qQvWWSxGaTxWyTwGeUxm2UwWiVx26VwmmWyZKQ lG+Ww2qXyo6SlZORlXWWvnCXxGyYy5SSlnaXv3GYxW2ZzHeYwHKZxpaUmHOax3mZwpeVmWeez3Sb yJKXmXqaw3Ccz5iWmnubxJmXm3edynydxX6fx56coIChyZ+doaGeoqKfo6Wip6ekqamnq7K0sbO1 srS2s7a4tby+u72/vL7BvcDCvsHDv8XHxLvK3rzL38jKx73M4MnLyMrMycvOys3Py87QzM/RztLU 0dPV0tTW09XX1MzY5tLY2tbY1c7a6NXa3Nja1s/b6tbb3dnb19rc2dvd2tne4d3f3N7g3eDi39rj 6+Hk4OPl4eTm4+Xn5Obo5efp5ujq5+nr6PL08fn7+Pr8+f7//P////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGDCBMqXDjQi5iHECNKlNhFYSNZGDNq3LgR kkJHlwAMECCAAIECBQyoXLkyAKNIHzVZeHFDCJIlUaiAGTMGzJctQLfISAQzoSNND0io4AEEp5Ut ZM6oIQMGKBYXRGM2IFEzyRMqW8CkkUP2jZozZHZkNaqJQosfQJREwSL2jRw7dtpsiQJkw1qERynM AJIEihUwZ9rQwQNmRYcNGCocUFQUsKYIN4A0kYKFjOI0OT6I7qAhQwLKMS/8OOLkcJo2TXrkqMEC xQcPHBagZquadZUsUo4YUZKkSBAcLEp4gLDbMoQUNXoQbgJlyhQpTZIEyZEiBPPKB4/+KhABo8eR JlOyhFlfxYmRHskvNA+vSUEJFkGUMKkShg2cMldAoUQQNKBQwV/hmYKABA40yMCDED7YYIMIdAKe QY7IEsuGHHboIYeyeJTQIY2UaKIjKKaoYoqPIKKQKJHEGCMkNNL4yI2OmLjIIo14kpAenPwByJCA BGLkkUgi+QcndxxkgiiDJCnllEYOwskIBsUByypcouLlKad88gknZHJCyplokjLKK2sYtIkrrHC5 ipeonFKIIHgKQgiYfPKJCiYFudEKnX2eMoohhxiC6CGkFMonK2gQFMcnMlYa4ySUZErJJJZW+kkc BM0xSiWklkoqJXpooaoWe1hiqqkio8xBkA98+GHrrbj2oWsfuPbqBx82MCTssMQWa+yxyBoUEAA7 } {Sorted Index of games} { R0lGODdhIAAgANMAAAAAAAAAqgCqAACqqqoAAKoAqqpVAKqqqlVVVVVV/1X/VVX///9VVf9V ////Vf///ywAAAAAIAAgAAAEovDJSau9OOvNu/9gKALkE5wPqa5A10pJHGtvxrImqkrAcWC1 i2zGS/kut1wglUwZf5UgbIh09qCT0ml5w1mflNcwsWmZwbyuuvQ1H52hs/z9WkvbVvoIfy0y 11F8enFtCQGDgBZyKYeDIHKGPo4fco1vW5iZmDVmkZI8Y6FjAEtWllh2ajqebxSir2OnGJq0 mpJYF7e6u7scvL+3IsLDxMUUEQA7 } {Player collection} { R0lGODlhIAAgAOfIAABO/gBQ/AJU8QBU/gNV8QBW/QBb/gFb/gBc/QBg/gBh /Qxe7wFh/gBl/gFm/gBn/QBr/gBs/RRk9gNt/hJo9wBy/gBz/gB3/gB4/gB9 /gt4/gB+/gJ+/gCC/gt9/gCD/gCJ/gCK/gGK/hKD+wCP/g6J/gGQ/hKI/CV/ /gWR/gCU/jV97wGV/jZ8/hCQ/gCZ/hyL/h2L/gGa/i6F/g+V/huP/hCV/i+G /hyQ/gCg/iSP/gGh/gud/gai/iSV/B2b/gCr/gGr/iea/hCm/gCw/ham/gGx /kiQ+A+v/hCv/hCw/jad/iml/i+i/huu/hSy/RC1/RC1/kiZ/liR/gq6/lmS /gu7/kid/iO0/hW9/Ra+/jqs/l2d9Ce3/k6k/lyf9Su3+iy4+T6u/jmx/i65 +Se8/j2x/lyj9ju1/lym9yXC/lyp+Hmh3GWl/ki1/lys+XCk/lyw+mWs+km6 /nCn/lW2/lyz+zbH/TfH/TjI/V22/DDN/l25/Wq1/kbI/E/E/kjI/F69/V/A /lvE/lzE/my8/lvF/lzF/mDD/nC7/kvQ/WHG/oG3+XK+/UvS/W/A/oG5+VfQ /WPK/oe4/lvP/FnQ/oC9/om5/lrS/XfE/lzS/X3G/n7G/nvI/nDP/pC//nDR /m3T/pDC/oPK/n7S7m/b/pXJ/nvY/JrK/pvK/pDR/o3T/pvM/p3M/oTc/p/S /oze/rbO/qfW/qnW/qLa/rbQ/rjP/q3W/rjR/qfa/rbU/rjU/rbW/rjW/rba /rjb/rDg/q3i/rLg/rbf/q3k/rjg/rjm/rjn/q6urq6urq6urq6urq6urq6u rq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6u rq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6u rq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6urq6u rq6urq6urq6urq6urq6uriH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGD CBMqXMiwocOHECMmJIUpksWLGDVJ/KcIz52PIEPmcSSxVLFilaxQUeMKFiwt VKzskXjnJCgjRMoQO3YsChEiWfwAGkq06FBKBGsW8xQESJdgxowpAQIECpgw WLNqxUrm1MA/gwgNOkSWkFlDZLEgScK2rVu2T0INdNKjxxxgwlYNqUtLmDA0 OQILHix4h6SBRV68cDOsmCoeinOdNKO4smXLMhYNHLNlS51NnB6J6ZyJEycm KlKrXq2aBaKBnWTNKmSDRpNXs2b9oEEjBYnfwIMDNyFo4ChfvxKJACHk1q9f LkBIn069OogQgQY2YtWqD44aS0zPtWpVooP58+jTd/jAZ6APGDG8oEplSUeM GBwy6N/Pv3+GDXoMdMIFF1zBSy+ieEDgggw22CAGdgw0QgUVSKHLLp9oQOGG HHbYoQVxDCTHJJe0ccMMKEwAwYostuhiixG8MRAkteBChwMN5Kjjjjz22MAD awzESCy2wMFAAkgmqeSSTCagQBoDHTFFFS0cYMCVWGap5ZYGIHDGQBQMIOaY ZJZpZpkFfDGQBAC06eabcMYJZwBcDLQCAQLkqeeefPa55wJsbCTooIQWauih BwUEADs= } {Tournament: All-play-all} { R0lGODdhIAAgAKEAAP///wAAAAAA//8AACwAAAAAIAAgAAACZoSPqcvtH6KMYM6HM7RVdq+F 4kg2gnEC6YqW7usIsmwExnDnAL7rmA1rAF0zWq+i4yl9mmFQ4QwVU0vkscojRZ+HbayY1AGx QS/XnJiGr7X1E13+ztZka5ZrxSO8ara/CqcnOJhQAAA7 } {Tournament: Swiss} { R0lGODdhIAAgAIAAAP8AAP///ywAAAAAIAAgAAACRYSPqcvtD6OctFoQss437d0hnxYeI1di Z6qO7BlU8Pw59B03OG3vcO9z6YJCBrG4ONYov1Sz9AxFO9NL1XJlabfcrldRAAA7 } {Grandmaster games} { R0lGODlhIAAgAOevACAgICUlJSoqKi4uLjEwMDMzMzY2Njg4ODo6Ojw8PD09 PT49PT8+Pj8/P0BAQEREREZEREVFRUlHR0lISEpKSk1KSk1LS0xMTE5OTlFR UVVSUlNTU1ZWVllVVVhYWFtYWFxaWltbW1xcXF1cXF5cXF9cXF5dXWJfX2Bg YGFhYWViYmVjY2RkZGZmZmllZWplZWhoaGtnZ2xoaGxpaWpqam1qam9ra3Ft bW9vb3FxcXR0dHhzc3Z2dnd3d3p2dnh4eH13d3x4eHp6en15eX55eXt7e4B6 enx8fIB8fIN9fX9/f4CAgIR/f4GBgYZ/f4KCgomCgomDg4WFhYaGhoqFhYyG ho6Hh4qKio+IiIuLi5CJiZCLi5KMjJCQkJaOjpGRkZKSkpeQkJeRkZSUlJWV lZqTk5uUlJ6Xl5qampycnKGamqKamp2dnaKbm6Sbm56enqScnKWdnaCgoKef n6KioqmgoKqhoaWlpayjo62kpKioqK+lpbCmpqurq6ysrLOpqbOqqrasrLet rbeurrGxsbKysrmvr7Ozs7S0tLyysra2tr2zs76zs7+1tbq6usK4uMO4uLy8 vMO5ucS5ub68vL29vcS6usW6usW7u8a7u8e8vMDAwMe9vci9vcfExMfHx8nJ yczMzM7OztLNzc/Pz9LS0tTU1NbW1tra2t3d3eLi4uTk5Ojo6Orq6uzs7P// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /////////////////////yH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGD CBMqXMiwocOHECMqdESxokVHEv/pYcOxo8eOfiIeqhQpkpyThEoiOklHoiNX MH/I3ASTlMwfTyIqasVTh89KPEP51DGmi9GjSJGiEViIlVMcUB05BQUVx5U0 WLNq1XpH4BQhYE+JTQP2i9hTP2ioXcuW7RKBR1rIXUWXjFwpdFfxkMu3r18d An+kGKyq8JfBTQqryjG4sePHOARmeUO5suXKLERo3syZMw2BclKJ9kC6j2hK ahJhkgRoiwnSnWJTIe1hRexO/9Kg2r2htx5UozR1wiMmTqZOg0ZsuD2n9wYk t/+B+UQdhXU5njh18oGhe43jXDD+xF4kKUP3M41i/0NBof1ZJWU6wWlPf8iN CxRit+k0oz0jOOqFEMGAphRYhCCdBDHgggzGlkQnVURAQidMqMeBAxiWomEP k3QSA4YghhibC4nw4QARnYCgXhF+tGgde5B04kICNN4WWwKxqeBFJxOswYgC 6k0hypAHFHnAH53sYGQUUZgR2wGxnRCDh5CEASVuT4SiZQFcFmBFJ250yWUJ sRUQWwkMaFJHJzKYiRsMRw0g5wASXNKJDXMS8GAnA8T2wQB2xLZAn7g1IMCh iB76gnBwOKGFIbF5IUBsHQgARCd5HKoeAgF06qmnEGARiCWP7AFFBZ3GpkEA FnRiRKoduFEAwKy01mrrrbgaMNADDPbq66+9ZiTssMRCFBAAOw== } {International Master games} { R0lGODlhIAAgAOeNACAgICUlJSoqKi4uLjMzMzQ0NDY2Njg4ODo6Ojw8PD09 PT49PT8+Pj8/P0BAQEJCQkREREVFRUZGRklISEpKSk1LS05OTk9PT1FRUVVS UlNTU1RUVFZWVllVVVhYWFtYWFxaWltbW1xcXF5cXF9cXF1dXWJfX2BgYGFh YWViYmVjY2RkZGhlZWZmZmllZWhoaGtnZ2xoaGxpaWpqam9sbG9vb3Jvb3Fx cXVycnR0dHZ2dnl2dnd3d3h4eH13d3p6en55eXt7e4B6enx8fIB8fIN9fX9/ f4CAgIR/f4GBgYKCgoWFhYaGhoqFhYyGhoqKiouLi5CQkJaOjpGRkZKSkpeQ kJSUlJWVlZ6Xl5qampycnKKamp2dnaKbm56enqScnKCgoKefn6KioqmgoKqh oaWlpa2kpKioqKmpqbCmpqurq6ysrLGxsbKysrOzs7S0tLyysra2tr2zs76z s7i4uL+1tbq6usO4uLy8vMO5ub29vce8vMDAwMi9vcfHx8nJyczMzM7Ozs/P z9LS0tTU1NbW1tra2t3d3eLi4uTk5Ojo6Orq6uzs7P////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /////////////////////yH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGD CBMqXMiwocOHECMqtEOxokU7Ev+d4cKxo8eOayK60YMHD5iTbEq+OSlGoh1G MHvI5ANTkMweSiLGWcQzh089PAH5zGElitGjSJFmEdhGkdMaUO04/QO1xhMt WLNq1VpGIJMfYAuJ1QJ2ithCPWaoXcuW7RGBQ1rITUT3itwldBPpkMu3r98c AnugGIyo8JTBSQojujG4sePHNQRC8UK5suXKK0Ro3syZ8wyBYA6J9kBajWg8 Hvr02ZFadRPSHlSoXu2hhUAthnJr2H0mNx0NqnEAVx1mtwYis4WjEEjFj/MT 0ME4R2NBtY3qfeTkwWDBApY61i3+lBB4goL5s0bMm1dNg4LqLn1kmJ/zhT0F DwJDRNhPqH+Q/fupFkMEqhXRhxMRjNAHEgJGsIFAHDgg4SAU8iChhKqx4IBq LsCRhgNA9AFChg5cIFAQa6QIXXkJtJiAaim82EcKUvQxwRZzKABjAhR4FciP BwQpZJCqmXBAkTD0AcMdVRzZh5ESCKQEIFQSYOWVVqpGAgFaMrDHGH3EwGUf Wz4g0AtHDaDmmmqq9sEAbg5AhmoLwNnHmwoI1IAAfPbppwCqdQBoH4L60IcZ fAYqwAECIRDAo5BGGoBqGUzaR6UV9CHEo5QGUIBAFAAg6qiklmrqqQYMBAGA rLbq6qsJ+2Uk66y0QhQQADs= } {Blitz (fast) games} { R0lGODlhIAAgAOfxACEhISUlJSoqKisqKS4uLjQyLDMzMzQ0NDY2Njg4ODk5OTs7O0I8Hjw8Ozw8 PD8+Oj4+Pj8/P0FBQUdCLEJCQk5FG0REREhGPUZGRkdHR0pKSk1LQktLS09PT1BQUFpSK1RUVFtV O2FXKFdXV1pYT1hYV1hYWFlZWVxcXGNdQl1dXWBgYGNhWHNjFmFhYWJiYmljRXBmM2VlZWZmZmlp aX1sGmtra3ptL3NuWW9vb3BwcIRzHnJycnR0dIB2R3x2WHZ2dnh4eHl5eXp6epJ+HIp9P3x8fH19 fX9/f5uDDoKBfIKCgpaFMIODg4aGhoeHh6CLJoqKiqmOCqeOE4yMjJCQkJGRkZKSkpOTk7CXGreZ B5WVlbqdEb+fAr6gCcOhBZ2dnb+hFL6hF56enp+fn8OkDKCgoMWlA8elAaGhoaKiosunAMioBMup AsypAsupBsypBsuqBc2qAs6qAMyrAqampsysBM6rC9CsANGsANGtANKtAM6uCKmpqaqqqtCvCtSx BKysrNOyBdSxD9GzBdW0DtW0G7Kyste6A9m4E7S0tNm5Gtm5Idq8AbW1tdq6Jre3t7i4uNq8Lbm5 udu9Lt7BCrq6utzAG7u7u9vBJtrAOLy8vL29vb6+vsDAwMHBwcPDw+PLKODIU+nPEsjIyOzTCMrK ys3NzezVLe/YDe3VNO/YFM/Pz/DZEPDYHNDQ0PLbFvLbF9PT0/PdG/PdHPTdHdbW1vLeP9fX1/Xg KPXgLNjY2OvcgvThP/biMffiNfXiPffkOPXjSfbjSPbjSdzc3PPjV97e3vjnTPXmZ/noTPnoTvfn XuLi4vrpXPrqYOTk5Pjqc/vrYfTolPvrYvvraPrscPnsfPrtdPntfvvucejo6PzucvfsmvzvdPnu kf7wfuvr6/3xhPrwnP3yi+3t7f3ymPjyxPv0sP32tv33wP351P/60f364P/84v797v/+8/////// /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGDCBMqXMiwocOHCj95mkixoidQEAUeGsOx o8eOkTJO6sSJk5mTh0o6OqkGU0ZM5WIKmfkp5quZQtJkhBSuZ4+fnXqe+tlji5WjSJMmrSNQ0ban OaJiemoqao4oYLJq3bqV6b8nQ8LiGgsmrJWxuILYWGvjxyBKkh4xWpQIUBglAo/M2Aut75a9TvpC A7J3r5hz8NyxS/fN2B8cPQQGeUG5meUrlJdYbsaD8osiot6REwfOWrJCPl7oEEiFjGuPrzvKUKGC xZ125rxx0xbtEhPaNgSmOUbchPFAxDcZX24CCi91z6hJwxYqSwnjMwSCKcYdhPc+3C3+eR8Pw9A6 Z8qWVVNVhsT4FwKxkJq/on6a+X466NfPZVq2X8Egc0scKezXgQoCraDBgrs0iMSCEC54gybo6JKL L70IMoccbrTxRQwnCIQCBiTaYqIRJKaIwQZvdDPONcwAk8swxAiTiRchYACCQCNI4KMsQAbh45AS ELGHHnnggcostNTiCh9TXOCjBwIZEciVLmSpgQNcdtnlA3CsAksso7CxQwNdciCQE6y0mcCbcMYJ 5wd2pNJKJWeIIGcGAjVxyp8GBCrooILWgEgphGgxAaEGUCAQDVVESsCklFZKqRSN0JFEAZZOCoFA EQgg6qikljoAGmu0UCqpCgi0QAAtsMYq66wMdFHBrLMeIJAFAPTq66/ABissAgOhQNuxyCar7LIZ Nevss9BG21BAADs= } {Tactics} { R0lGODlhIAAgAOeKACAgICUlJSoqKi4uLjMzMzQ0NDY2Njg4ODo6Ojw8PD09 PT8/P0A/P0BAQEJCQkREREZEREVFRUZGRkpKSkxLS05OTk9PT1VSUlNTU1RU VFZWVllVVVhYWF1aWltbW1xcXF1dXV9eXmBfX2JfX2BgYGFhYWNhYWRiYmVi YmVjY2RkZGhlZWZmZmllZWhnZ2hoaGtnZ2toaGxoaGpqam1qam9ra29sbHJt bW9vb3Jvb3Rvb3FxcXZxcXVycnR0dHdzc3Z2dnl2dnd3d3h4eH14eHp6ent7 e3x8fH9/f4CAgIGBgYKCgoWFhYaGhoqKiouLi5KMjJCQkJGRkZKSkpiSkpSU lJmTk5WVlZqampycnJ2dnaObm56enqCgoKKioqWlpayjo6ykpKioqK+mpqmp qaurq7KpqaysrLGxsbKysrOzs7S0tLuxsbyzs7a2tri4uL+1tcG2trq6ury8 vMO5ub29vcS6usa7u8e8vMDAwMi9vcfHx8nJyczMzM7Ozs/Pz9LS0tTU1NbW 1tra2t3d3eLi4uTk5Ojo6Orq6uzs7P////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /////////////////////yH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGD CBMqXMiwocOHECMqlEOxokU5Ev+J0cKxo8eOZyKqqTNnTpeTaEquOelFopxE MIfIzAPzj8whSyK6QcTTh886PPv49FElitGjSJFiEZjmkFMcUOU45QMVh5Ms WLNq1fpFYJMiYAWJzQJWilhBQ2aoXcuWbRKBR1jINUT3ilwmdA0Bkcu3r18f AoeUGFyosJTBSgoX2jG4sePHOAQ+4UK5suXKKj5o3syZ8wyBXQiJ5kC6jOg5 pFPr0ROEg4stcO6woRKCNAuBWQbpxsBbjO43vIOv7iECjp4xVtroCcO7hMAp e6KTmN4lOpkK2LGvzgFFDxjsJ1bYp6gAQiCJCejPIkHPnv1qGzWImEBfYXWM CRwEeojAP5B/I/wFGOBqMggYwQ96xEFBBBkIpEEDEAIioRAQVljhaitYSAMd dsAAoQUCGXHGiNOdl8CJKJ64GgootoBHHB2gOIFXftR4wI045njjaiPgaIYe POQogUBL9GEkAUgmqSSSOugAQZI36MCAkg4I9MJRA2Sp5ZZcdrmlAgItIMCY ZJZp5mobkIlmmQcIhEAAcMYp55yrXRBnnXIWINAEAPTp55+ABiqoAQM9YOCh iCYaQUaMNuooRAEBADs= } {Endgames} { R0lGODdhIAAgAKEAAP///wAAAP/73wAAACwAAAAAIAAgAAAChYSPqcsZDWOYsa5ns5lYXwoE AsZ54TQ+orqCFToK6RynVsulONpBO6/L9Ro/Hkd4Kx6FQ2JLBpUZPbBltfmyWjeg0ql3jAY3 wTJYuySLxec1tIs+OuJD0RpLRZsUdvbe4Yan0RclmEH49oeAKKV4wDjiyKUlCcNm6EPnMghZ iMmn6SXJUAAAOw== } {Openings for White} { R0lGODdhIAAgANMAAAAAAAAAqgCqAACqqqoAAKoAqqpVAKqqqlVVVVVV/1X/VVX///9VVf9V ////Vf///ywAAAAAIAAgAAAErvDJSau9F+jNu9cYMBxDaZ4oCoRj6rqgJZJvXQLHWs22jec6 Ca/3+gWCjyExZUQqURLf4XCkPE2UWtPaSmWL0+rkWvrCws6u9yGlpmnQiRbNhWMrYHd9bVbR x2plF2d6gHYDGIRiQoGIg0x/jIdLN5FJjZQDW4aZfoWSnSeboKGVn5eTlKOopaaLSRqtmpY/ H7YetD9Tu7y9vpawv8LCr0IbAcjJysvMSFa30BwSEQA7 } {Openings for Black} { R0lGODdhIAAgANMAAAAAAAAAqgCqAACqqqoAAKoAqqpVAKqqqlVVVVVV/1X/VVX///9VVf9V ////Vf///ywAAAAAIAAgAAAErvDJSau9F+jNu9cYMBxDaZ4oCoRj6rqgJZJvXQLHWs22jec6 Ca/3+gWCjyExZUQqVaJak/I0caSHw5HaYm6wWmcXqgFvJ1VrtJg9C8enKzvMpcU7c3cSfsPD 2mJ2fR5/dGh8H2txgHVkfiqMh4JLVpFvk5QDU5KZkIaXnYufe5iUm6ChN5akqaqjX62nSVmJ tRyrGlm6u7y9u3pJP77DvcDBGgHJysvMzUhUttExEQA7 } {Openings for either color} { R0lGODdhIAAgANMAAAAAAAAAqgCqAACqqqoAAKoAqqpVAKqqqlVVVVVV/1X/VVX///9VVf9V ////Vf///ywAAAAAIAAgAAAEuvDJSau9F+jNu9cYMBxDaZ4oCoRj6rqgJZKq+JrAsVZzrd2l nG4n6Z04wIEwQHwYcZvksvmEJpWHA5NSVUaBU24LiryFJ1UPOLtFj73q17n4/tgkKja1/hlQ jnpiNEB/OIFugzeFQYd0iYoPeVp7jy6LWJOCSRaGmYibFZ1tjoQXjJ6kkJyYo05vlqaslFdy ja6VtLJcP7mSrUJ2wRy2GlnGx8jJx61OQsrPyczNGgHV1tfY2U27wt07EQA7 } {Theory: 1.c4} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACfYRvoauIzNyBSyYaLMDZcv15 GDiKFHmaELqqkVvBXCN3UniXebq3/fuLBWlDmwN31CV5S18T+BRqokSqTSCYKB8lwWCQ3Wy1 PCzZyU15wRdmerX+ZpHvCPY+H7fRZ2h9VvUX2CclaGTI4kc4uKfYWLh4GJkI+cgo5jZZo1EA ADs= } {Theory: 1.d4} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACf4RvoauIzNyBSyYaLMDZcv15 GDiKFHmaELqqkVvBXCN3UniXebq3/fuLBWlDmwN31CV5S18T+BRqokSq8aEQCKRYJlYwGGyv E2VXyy17y2Bxtet8tMNbFlSuzZMva35cPXMHKOhHuGE2mFaoeNjX+Lf4ligZufdoiASHiVip UQAAOw== } {Theory: 1.d4 d5} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACh4RvoauIzNyBSyYaLMDZcv15 GDiKFHmaELqqkVvBXCN3UggIwlTepa67pHzDoLBFbAF3m57jswzinqPobvpwZocaKneL9Opi yZdPMBgIaGWyeM32hrNodRxsftbTa1b+YWUj98fzVThDeJTYZKjohvd4uIglGel4V4l5KQip yTiXyRnqZwlQAAA7 } {Theory: QGD: 1.d4 d5 2.c4 e6} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACmYRvoauIzNyB6wgxaZBJm3t1 FAdo24eJEGmiYelxLQjCo+zRYYvfksn7xYS+l23VQ9JUkWQTYAw6eMvjc5rTWSvOig4jfQyx PhIZSURHFRduuikYDFJsuaDRxUNTtrb+DGfXETf3JzZCKBiQWMiStbSoc/LmBlh5CHSFqZlR tnnZiWZpGMrJBHpKmjo5yvqpugUbVooa63pQAAA7 } {Theory: Slav: 1.d4 d5 2.c4 c6} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACmIRvoauIzI4QBy5XbTBzJo19 lkSJUAhoG9CVKvq23hvGcgrWOUbz6u7oBXceU0Q3YnWMF+SJU8IlfckWs+GMyCjCB2grfVLF wymqTPZOi9JJc3wUDAaugJyOhb/ZC3ceHTdXdyfwp3ZyJ5iSiAfzdWMns6JnmGF2+PMGqInJ aZn2eUQ5uVl5RdppGiZaihrqeep4+aradVAAADs= } {Theory: 1.d4 Nf6} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACioRvoauIKqJoLrFVrYwhg4tl wcZ5IFWNZCeeJiexqdtCZX29q0lXZNxznGTC4MN4GPJAyxyO0YQ+QzPmFFW0Vp1baZfqyXLF 3iwHe9QWBYPBhJgep8/wJFLTfkfBD3bbXWeh1rdzFfhxhzg0aMcoKNcI+VgWRxlpOcl3qZmJ tunZeahkuAeqKAlQAAA7 } {Theory: 1.e4} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACfYRvoauIzNyBSyYaLMDZcv15 GDiKFHmaELqqkVvBXCN3UniXebq3/fuLBWlDmwN31CV5S18T+BRqokSq8aETCCZKbEowGGw3 XS5Pa3Z6W2DxhbmOtMNbZLyizdfLb3V6JnVXJXj1F2g4iFjYB0XI0qj4eMg4SQYXWSOZaFAA ADs= } {Theory: Sicilian: 1.e4 c5} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAAChYRvoauIzNyBSyYaLMDZcv15 GDiKFHmaELqqkVvBXCN30iII8V3yeU7jpYTAoCPk+xkfveNPyXrdnsDo7thkDjXYrbYlBOcm WXJKMBgILl6zeM0Gd1todVw6j9TTa2S+QtVXdnf1NVPohmeISLiUyLgxGNnWaPPnWGmFOSm3 uOnnaRmqUQAAOw== } {Theory: Sicilian: 1.e4 c5 2.Nf3 d6 3.d4} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACo4RvoauIzNxZQiyZYMOq1i1p oENZ4yNiQOedU8p5rSoGtPzRcLiTdY/S6AIfV0bIIbZsSSRPeWlCdDLjCjjBWYbTGI757IYj UrJqHEVbS+nKy+kTDAYmg5x+FPugIHfeHDdXB3An8JdGcidoo4hXc/NFiHMFF6Rn+YOIGSVz uJbSaPhYRjFnKorlSURXSHn5BuFB6JjqatY6qsaoiFoJy6BVUQAAOw== } {Theory: Caro-Kann: 1.e4 c6} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACh4RvoauIzI4QBy5XbTBzJo19 lkSJUAhoG9CVKvq23hvGcgrWOUbz6u7oBYEPYmakQ/qUQ2bReTwlpUtq0/rERiNTLqrqvYaz Xo9pvL2wBgOX8axmlXBQeGPdtq/AFwGbTSFE1ncjmHbH97MnFseI6Lg4+CgZeVipB/NGp4XZ 1UiZWbeJ1olRAAA7 } {Theory: French: 1.e4 e6} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACiIRvoauIzNyB6wgxaZBJm3t1 FAdo24eJEGmiYelxLQjCo+zRYYvfksn7xYQ+R9A4RBYfSeYy81RFeivqlFjFXpVZ7pbk7Ia/ 0OzLJi5PBYNB6jiuoNRyrZztlta9FXwbA0fXoAPYJHhiB4TI12C1F9eYuAg5echiqBfJWJnJ iUbWeRn1+WjJUQAAOw== } {Theory: Open Games: 1.e4 e5} { R0lGODdhIAAgAKEAAP/739jGpgAAAP///ywAAAAAIAAgAAACh4RvoauIzNyBSyYaLMDZcv15 GDiKFHmaELqqkVvBXCN3UngrghDnab7b0Xwtn3DowCUDQZ5t+Us2hazXbcqr9qBFDdf63T5K gN2EHKYJBgPBJTr+md/deGvdpoPtETzbrcRXgbWBJoh0OKOFeAbXWPe4Fyk2yahHeWlZ6Jj5 lLjoWRnaCapRAAA7 } } variable ::windows::switcher::base_types {} # Initialise icons nicely set i 0 foreach {icon data} $icons { lappend ::windows::switcher::base_types $icon image create photo dbt$i -format gif -data $data incr i } set numBaseTypeIcons [llength $::windows::switcher::base_types] set temp_dbtype 0 proc selectBaseType {type} { global temp_dbtype set w .btypeWin if {![winfo exists $w]} { return } $w.t configure -state normal set temp_dbtype $type set linenum [expr $type + 1] $w.t tag remove sel 1.0 end $w.t tag remove selected 1.0 end $w.t tag add selected "${linenum}.2 linestart" "$linenum.2 lineend" $w.t see $linenum.2 $w.t configure -state disabled } proc clickBaseType {x y} { set type [.btypeWin.t index "@$x,$y linestart"] set type [expr int($type) - 1] selectBaseType $type } proc changeBaseType {baseNum} { global temp_dbtype ::windows::switcher::base_types numBaseTypeIcons if {$baseNum > [sc_base count total]} { return } set temp_dbtype [sc_base type $baseNum] if {$temp_dbtype >= $numBaseTypeIcons} { set temp_dbtype 0 } toplevel .btypeWin set w .btypeWin wm title $w "Scid: Choose database icon" text $w.t -yscrollcommand "$w.yscroll set" -font font_Regular \ -height 25 -width 40 -background white -wrap none \ -cursor top_left_arrow $w.t tag configure selected -background {#ffff80} scrollbar $w.yscroll -command "$w.t yview" -takefocus 0 pack [frame $w.b] -side bottom -pady 5 pack $w.yscroll -side right -fill y pack $w.t -side left -fill both -expand yes dialogbutton $w.b.set -text "OK" -command \ "catch {sc_base type $baseNum \$temp_dbtype}; ::windows::switcher::Refresh; ::maint::Refresh; focus .; destroy $w" dialogbutton $w.b.cancel -text $::tr(Cancel) -command "focus .; destroy $w" pack $w.b.set $w.b.cancel -side left -padx 5 set numtypes [llength $base_types] for {set i 0} {$i < $numtypes} {incr i} { if {$i > 0} { $w.t insert end "\n" } $w.t image create end -image dbt$i -pady 3 -padx 3 $w.t insert end " [lindex $base_types $i] " } bind $w.t "clickBaseType %x %y; $w.b.set invoke" bind $w.t "clickBaseType %x %y" bind $w.t "clickBaseType %x %y; break" bind $w { if {$temp_dbtype != 0} { selectBaseType [expr $temp_dbtype - 1] } break } bind $w { if {$temp_dbtype < [expr [llength $base_types] - 1]} { selectBaseType [expr $temp_dbtype + 1] } break } bind $w { selectBaseType 0 } bind $w { selectBaseType [expr [llength $base_types] - 1] } bind $w "$w.b.cancel invoke" bind $w "$w.b.set invoke" focus $w.t grab $w update selectBaseType $temp_dbtype } proc ::windows::switcher::pressMouseEvent {i} { if {! [winfo exists .baseWin]} {return} foreach win {"" .img .name .ngames} { .baseWin.c.f$i$win configure -cursor exchange } } proc ::windows::switcher::releaseMouseEvent {fromBase x y} { if {! [winfo exists .baseWin]} {return} foreach win {"" .img .name .ngames} { .baseWin.c.f$fromBase$win configure -cursor {} } set dropPoint [winfo containing $x $y] if {! [string match ".baseWin.c.f*" $dropPoint]} {return} set toBase [string range $dropPoint 12 12] if {$toBase == $fromBase} {::file::SwitchToBase $toBase} else { copyFilter $fromBase $toBase } } set baseWin 0 proc ::windows::switcher::Open {} { global baseWin if {[winfo exists .baseWin]} { focus . destroy .baseWin set baseWin 0 return } set baseWin 1 set w .baseWin ::createToplevel .baseWin setWinLocation $w ::setTitle $w "Scid: [tr WindowsSwitcher]" bind $w ::windows::switcher::Open bind $w { set baseWin 0 } bind $w { helpWindow Switcher } standardShortcuts $w canvas $w.c -width 300 -height 100 -yscrollcommand [list $w.ybar set] scrollbar $w.ybar -takefocus 0 -command [list $w.c yview] label $w.status -width 1 -anchor w -relief sunken -borderwidth 1 grid $w.c -row 0 -column 0 -sticky news grid $w.ybar -row 0 -column 1 -sticky ns grid $w.status -row 1 -column 0 -sticky we grid rowconfigure $w 0 -weight 1 grid columnconfigure $w 0 -weight 1 #set side left #if {$::windows::switcher::vertical} { set side top } set numBases [sc_base count total] for {set i 1} {$i <= $numBases} {incr i} { set f [frame $w.c.f$i -background white -borderwidth 2 -relief ridge] $w.c create window 0 0 -window $w.c.f$i -anchor nw -tag tag$i set f $w.c.f$i label $f.img -image dbt0 -relief solid -borderwidth 1 label $f.name -width 11 -anchor w -font font_Small label $f.ngames -text "0" -width 11 -anchor e -font font_Tiny grid $f.img -row 0 -column 0 -rowspan 2 -padx 2 -pady 2 grid $f.name -row 0 -column 1 -padx 2 -pady 0 -sticky we grid $f.ngames -row 1 -column 1 -padx 2 -pady 0 -sticky we foreach win {"" .img .name .ngames} { bind $f$win [list ::windows::switcher::pressMouseEvent $i] bind $f$win [list ::windows::switcher::releaseMouseEvent $i %X %Y] } menu $f.menu -tearoff 0 $f.menu add command -label [tr SearchReset] \ -command "sc_filter reset $i; ::windows::stats::Refresh" $f.menu add command -label [tr ChangeIcon] -command "changeBaseType $i" $f.menu add separator $f.menu add command -label [tr FileOpen] -command ::file::Open set closeLabel [tr FileClose] if {$i == [sc_info clipbase]} { set closeLabel [tr EditReset] } $f.menu add command -label $closeLabel \ -command [list ::file::Close $i] foreach win {"" .img .name .ngames} { bind $f$win "tk_popup $f.menu %X %Y" } $f.menu add separator $f.menu add checkbutton -label "Icons" -variable ::windows::switcher::icons \ -command ::windows::switcher::Refresh #$f.menu add separator #$f.menu add command -label $::tr(ChangeOrient) -command ::windows::switcher::Orientate } bind $w "+recordWinSize $w" bind $w "+::windows::switcher::Refresh" setWinSize $w ::windows::switcher::Refresh ::createToplevelFinalize $w } proc ::windows::switcher::Orientate {} { #variable vertical #if {$vertical} { # set vertical 0 # set side left #} else { # set vertical 1 # set side top #} #set w .baseWin #set numBases [sc_base count total] #for {set i 1} {$i <= $numBases} {incr i} { # pack forget $w.f$i #} #for {set i 1} {$i <= $numBases} {incr i} { # pack $w.f$i -side $side #} } proc ::windows::switcher::Refresh {} { global numBaseTypeIcons variable icons set w .baseWin if {! [winfo exists $w]} { return } set numBases [sc_base count total] set current [sc_base current] set clipbase [sc_info clipbase] # Get the canvas width and icon dimensions, to compute the correct # scroll region. for {set i 1} {$i <= $numBases} {incr i} { if {$icons} { grid $w.c.f$i.img -row 0 -column 0 -rowspan 2 -padx 2 -pady 2 } else { grid forget $w.c.f$i.img } } set canvasWidth [winfo width $w.c] set iconWidth [winfo width $w.c.f$clipbase] incr iconWidth 5 set iconHeight [winfo height $w.c.f$clipbase] incr iconHeight 5 # Compute the number of columns that can fit in the canvas set numColumns [expr {int($canvasWidth / $iconWidth)}] if {$numColumns < 1} { set numColumns 1 } set numDisplayed 0 set row 0 set column 0 set x 0 set y 0 set status "" for {set i 1} {$i <= $numBases} {incr i} { if {[sc_base inUse $i]} { set color white set filename [file nativename [sc_base filename $i]] set n $i # Do we want to call the clipbase base number "C"? # Only if we do it everywhere else for consistency. # if {$i == $clipbase} { set n "C" } # Set a different color for the current database. if {$i == $current} { set color lightSteelBlue set status $filename if {[sc_base isReadOnly]} { append status " ($::tr(readonly))" } } $w.c.f$i configure -background $color set dbtype [sc_base type $i] if {$dbtype >= $numBaseTypeIcons} { set dbtype 0 } if {$icons} { $w.c.f$i.img configure -image dbt$dbtype -background $color } else { $w.c.f$i.img configure -image "" } if {$i == $clipbase} { set name [sc_base filename $i] $w.c.f$i.name configure -background $color \ } else { set name "$n: [file tail [sc_base filename $i]]" } $w.c.f$i.name configure -background $color -text $name $w.c.f$i.ngames configure -background $color \ -text "[filterText $i 100000]" $w.c itemconfigure tag$i -state normal $w.c coords tag$i [expr $x + 2] [expr $y + 2] incr column if {$column == $numColumns} { set column 0 set x 0 incr y $iconHeight incr row } else { incr x $iconWidth } incr numDisplayed } else { $w.c itemconfigure tag$i -state hidden } } set numRows [expr {int( ($numDisplayed + $numColumns - 1) / $numColumns)}] if {$numRows < 1} { set numRows 1 } set top 0 set left 0 set right [expr {$numColumns * $iconWidth}] set bottom [expr {$numRows * $iconHeight}] $w.c configure -scrollregion [list $left $top $right $bottom] if {[winfo height $w.c] >= $bottom} { grid forget $w.ybar } else { grid $w.ybar -row 0 -column 1 -sticky ns } $w.status configure -text $status } scid-4.3.0.cvs20120311/tcl/windows/gamelist.tcl0000644000175000017500000016151611727223077020235 0ustar oliveroliver ######################################################################## ### Games list window set ::windows::gamelist::isOpen 0 set glstart 1 set glSelection 0 set glNumber 0 array set ::windows::gamelist::names { g Number f Filtered w White W WElo b Black B BElo e Event s Site n Round d Date y Year E EDate r Result m Length c Country o ECO O Opening F EndMaterial D Deleted U Flags V Vars C Comments A Annos S Start } set sortCriteria(real) "" set sortCriteria(translated) "" set critList { "GsortDate" "GsortYear" "GsortEvent" "GsortSite" "GsortRound" "GsortWhiteName" "GsortBlackName" "GsortECO" "GsortResult" "GsortMoveCount" "GsortAverageElo" "GsortCountry" "GsortDeleted" "GsortEventDate" "GsortWhiteElo" "GsortBlackElo" "GsortComments" "GsortVariations" "GsortNAGs" } set critShortcuts { "d" "y" "e" "s" "n" "w" "b" "o" "r" "m" "R" "c" "D" "E" "W" "B" "C" "V" "A" } array set sortingHandles { 0 -1 1 -1 2 -1 3 -1 4 -1 5 -1 6 -1 7 -1 8 -1 9 -1 } # glistExtra is the window that displays the starting moves of a # game when the middle mouse button is pressed in the game list window. toplevel .glistExtra wm overrideredirect .glistExtra 1 wm withdraw .glistExtra text .glistExtra.text -font font_Small -background lightYellow \ -width 40 -height 8 -wrap word -relief solid -borderwidth 1 pack .glistExtra.text -side top set glistMaxWidth 30 set ::windows::gamelist::findtext "" set ::windows::gamelist::goto "" trace variable ::windows::gamelist::goto w {::utils::validate::Regexp {^[0-9]*$}} proc ::windows::gamelist::FindText {} { global glstart sortingHandles variable findtext busyCursor .glistWin 1 ::utils::history::AddEntry ::windows::gamelist::findtext $findtext set dbNum [sc_base current] set temp [sc_filter textfind $glstart $findtext $sortingHandles($dbNum)] busyCursor .glistWin 0 if {$temp < 1} { set temp 1 } set glstart $temp ::windows::gamelist::Refresh } proc ::windows::gamelist::ReOpen {} { global glstart glistSize highcolor glSelection helpMessage global glistFields glNumber buttoncolor set w .glistWin bind $w {} bind $w {} # erase the window foreach c [winfo children $w] { destroy $c } # Pack buttons frame first: pack [ttk::frame $w.b] -side bottom -fill x -expand 1 -ipady 5 ;# -padx 10 scale $w.scale -from 1 -length 250 -orient horiz -variable glstart -showvalue 0 -command ::windows::gamelist::SetStart \ -bigincrement $glistSize -takefocus 0 -width 10 -troughcolor $buttoncolor pack $w.scale -side bottom -fill x frame $w.columns -takefocus 1 -highlightcolor black ;# -highlightthickness 2 pack $w.columns -side top -expand yes -fill both # Make each column in the listing: foreach i $glistFields { set code [lindex $i 0] set width [lindex $i 1] set justify [lindex $i 2] set fgcolor [lindex $i 3] set sep [lindex $i 4] frame $w.columns.c$code if {[info exists ::windows::gamelist::names($code)]} { set name $::windows::gamelist::names($code) } if {[info exists ::tr(Glist$name)]} { set name $::tr(Glist$name) } # Each heading is a label: ttk::label $w.columns.c$code.header -foreground darkBlue -width $width -font font_Small -relief flat -background gray90 \ -text $name -anchor w ::utils::tooltip::Set $w.columns.c$code.header $name set helpMessage(E,$w.columns.c$code.header) {Press the left or right mouse button here for a configuration menu} bind $w.columns.c$code.header "incrGLwidth $code; break" bind $w.columns.c$code.header "decrGLwidth $code; break" bind $w.columns.c$code.header "incrGLwidth $code; break" bind $w.columns.c$code.header "decrGLwidth $code; break" bind $w.columns.c$code.header "popupGLconfig $code %x %y %X %Y" bind $w.columns.c$code.header "popupGLconfig $code %x %y %X %Y" pack $w.columns.c$code -side left -expand yes -fill both -padx 0 pack $w.columns.c$code.header -side top -fill x -padx 2 addHorizontalRule $w.columns.c$code 1 flat # -height $glistSize text $w.columns.c$code.text -background white -width $width -height 50 -font font_Small -relief flat -foreground $fgcolor -wrap none -setgrid 1 -cursor top_left_arrow $w.columns.c$code.text tag configure align -justify $justify -foreground $fgcolor $w.columns.c$code.text tag configure highlight -background lightBlue $w.columns.c$code.text tag configure current -background lightYellow2 $w.columns.c$code.text tag configure underline -underline true bind $w.columns.c$code.text "break" bind $w.columns.c$code.text "break" bind $w.columns.c$code.text "::windows::gamelist::SetSelection $code %x %y; ::game::Load \$glNumber; break" bind $w.columns.c$code.text "::windows::gamelist::SetSelection $code %x %y; ::windows::gamelist::Highlight \$glSelection; break" bind $w.columns.c$code.text "::windows::gamelist::SetSelection $code %x %y; ::windows::gamelist::Dehighlight; break" bind $w.columns.c$code.text "popupGLmenu $code %x %y %X %Y" bind $w.columns.c$code.text "::windows::gamelist::SetSelection $code %x %y; ::windows::gamelist::ShowMoves %X %Y; break" bind $w.columns.c$code.text "wm withdraw .glistExtra; ::windows::gamelist::Dehighlight; break" pack $w.columns.c$code.text -side top -expand true -fill both if {$sep} { addVerticalRule $w.columns 1 flat } } menu $w.config -tearoff 0 $w.config add cascade -label $::tr(GlistMoveField) -menu $w.config.move menu $w.config.move -tearoff 0 $w.config add command -label $::tr(GlistEditField...) $w.config add cascade -label $::tr(GlistAddField) -menu $w.config.insert menu $w.config.insert -tearoff 0 $w.config add command -label $::tr(GlistDeleteField) menu $w.popup -tearoff 0 $w.popup add command -label $::tr(BrowseGame) -command {::gbrowser::new 0 $glNumber} $w.popup add command -label $::tr(LoadGame) -command {::game::Load $glNumber} $w.popup add command -label $::tr(MergeGame) -command mergeGame menu $w.popup.merge for {set i 1} {$i <= [sc_base count total]} {incr i} { if { $i == [sc_base current] || [sc_base isReadOnly] } { continue } if {[sc_base inUse $i]} { set fname [file tail [sc_base filename $i]] $w.popup.merge add command -label "$i $fname" -command "::game::mergeInBase [sc_base current] $i" } } $w.popup add cascade -label $::tr(GlistMergeGameInBase) -menu $w.popup.merge $w.popup add separator $w.popup add command -label $::tr(GlistRemoveThisGameFromFilter) -command removeFromFilter $w.popup add command -label $::tr(GlistRemoveGameAndAboveFromFilter) -command {removeFromFilter up} $w.popup add command -label $::tr(GlistRemoveGameAndBelowFromFilter) -command {removeFromFilter down} #when changing here the menu entry then change index numbers in proc popupGLmenu also $w.popup add separator $w.popup add command -label $::tr(GlistDeleteGame) -command {::windows::gamelist::ToggleFlag delete} $w.popup add command -label $::tr(GlistDeleteAllGames) -command {catch {sc_game flag delete filter 1}; ::windows::gamelist::Refresh} $w.popup add command -label $::tr(GlistUndeleteAllGames) -command {catch {sc_game flag delete filter 0}; ::windows::gamelist::Refresh} ttk::button $w.b.start -image tb_start -style Pad0.Small.TButton -command {set glstart 1; ::windows::gamelist::Refresh} set helpMessage(E,$w.b.start) {Go to the first page of games} ttk::button $w.b.pgup -image tb_prev -style Pad0.Small.TButton -command { set glstart [expr {$glstart - $glistSize}]; if {$glstart < 1} { set glstart 1 }; ::windows::gamelist::Refresh } set helpMessage(E,$w.b.pgup) {Previous page of games} ttk::button $w.b.pgdn -image tb_next -style Pad0.Small.TButton -command { set glstart [expr {$glstart + $glistSize}]; if {$glstart > [sc_filter count] } { set glstart [sc_filter count] } if {$glstart < 1} { set glstart 1 } ::windows::gamelist::Refresh } set helpMessage(E,$w.b.pgdn) {Next page of games} ttk::button $w.b.end -image tb_end -style Pad0.Small.TButton -command { set glstart [expr {[sc_filter count] - $glistSize + 1}] if {$glstart < 1} { set glstart 1} ::windows::gamelist::Refresh } set helpMessage(E,$w.b.end) {Go to the last page of games} ttk::button $w.b.current -textvar ::tr(Current) -style Pad0.Small.TButton -command { set dbNum [sc_base current] set glstart [sc_filter locate [sc_game number] $sortingHandles($dbNum)] if {$glstart < 1} { set glstart 1} ::windows::gamelist::Refresh } bind $w { set glstart [expr {$glstart - 1}] if {$glstart < 1} { set glstart 1 } ::windows::gamelist::Refresh } bind $w { set glstart [expr {$glstart + 1}] if {$glstart > [sc_filter count] } { set glstart [sc_filter count] } ::windows::gamelist::Refresh } bind $w "$w.b.start invoke" bind $w "$w.b.end invoke" bind $w "$w.b.pgup invoke" bind $w "$w.b.pgdn invoke" ttk::label $w.b.gotolabel -textvar ::tr(GlistGameNumber:) ttk::entry $w.b.goto -width 8 -textvariable ::windows::gamelist::goto ;# -bg white bind $w.b.goto "$w.b.start invoke; break" bind $w.b.goto "$w.b.end invoke; break" bind $w.b.goto { set dbNum [sc_base current] set glstart [sc_filter locate $::windows::gamelist::goto $sortingHandles($dbNum)] if {$glstart < 1} { set glstart 1} set ::windows::gamelist::goto "" ::windows::gamelist::Refresh } ttk::label $w.b.findlabel -textvar ::tr(GlistFindText:) ttk::combobox $w.b.find -width 15 -textvariable ::windows::gamelist::findtext ::utils::history::SetCombobox ::windows::gamelist::findtext $w.b.find bind $w.b.find ::windows::gamelist::FindText bind $w.b.find "$w.b.find icursor 0; break" bind $w.b.find "$w.b.find icursor end; break" ttk::frame $w.b.space -width 0.25c ttk::frame $w.b.space2 -width 0.25c ttk::button $w.b.sortbutton -textvar ::tr(GsortSort) -style Pad0.Small.TButton -command { makeSortWin } ttk::button $w.b.export -textvar ::tr(Save...) -style Pad0.Small.TButton -command openExportGList ttk::button $w.b.help -textvar ::tr(Help) -style Pad0.Small.TButton -command { helpWindow GameList } ttk::button $w.b.close -textvar ::tr(Close) -style Pad0.Small.TButton -command { focus .; destroy .glistWin } pack $w.b.start $w.b.pgup $w.b.pgdn $w.b.end $w.b.current -side left -padx 1 pack $w.b.space $w.b.gotolabel $w.b.goto -side left pack $w.b.space2 $w.b.findlabel $w.b.find -side left pack $w.b.close $w.b.help $w.b.export $w.b.sortbutton -side right -padx 5 set ::windows::gamelist::isOpen 1 bind $w { helpWindow GameList } bind $w { set ::windows::gamelist::isOpen 0 } bind $w "$w.b.close invoke" standardShortcuts $w ::createToplevelFinalize $w # MouseWheel bindings: if { $::macOS } { bind $w {::windows::gamelist::Scroll [expr {- (%D)}]} } else { bind $w {::windows::gamelist::Scroll [expr {- (%D / 120)}]} } if {! $::windowsOS} { bind $w {::windows::gamelist::Scroll -1} bind $w {::windows::gamelist::Scroll 1} } update idletasks bind $w { ::docking::handleConfigureEvent ::windows::gamelist::Resize } wm iconname $w "Scid: [tr WindowsGList]" ::windows::gamelist::Refresh focus $w.b.goto setWinLocation $w setWinSize $w } # Binding to reset glistSize when the window is resized: # The way this is done is very ugly, but the only way I could # find that actually works. # Set temp to window geometry (e.g. 80x20+...) and then # extract the part between the "x" and the first "+" or "-": proc ::windows::gamelist::Resize {} { global glistSize glistFields set w .glistWin bind $w {} recordWinSize .glistWin set temp [wm geometry .glistWin] set temp [string range $temp [expr {[string first "x" $temp] + 1}] end] set idx [string first "+" $temp] if {$idx != -1} { set temp [string range $temp 0 [expr {$idx - 1}]] } set idx [string first "-" $temp] if {$idx != -1} { set temp [string range $temp 0 [expr {$idx - 1}]] } # setgrid option does not work in docked mode, so the last line may be partially visible if { $::docking::USE_DOCKING } { catch { incr temp -1 } } if {$temp != $glistSize && $temp > 0} { set glistSize $temp set t $w.columns.cg.text if { $::docking::USE_DOCKING } { # foreach i $glistFields { # set code [lindex $i 0] # .glistWin.columns.c$code.text configure -height $glistSize # } } ::windows::gamelist::Refresh } update idletasks bind $w { ::docking::handleConfigureEvent ::windows::gamelist::Resize } } proc ::windows::gamelist::Open {} { global glstart glistSize highcolor glSelection helpMessage global glistFields glNumber buttoncolor if {[winfo exists .glistWin]} { focus . destroy .glistWin set ::windows::gamelist::isOpen 0 return } set w .glistWin ::createToplevel $w # Window is only directly resizable vertically: wm resizable $w false true ::windows::gamelist::ReOpen } proc ::windows::gamelist::Scroll {nlines} { global glstart set glstart [expr {$glstart + $nlines}] if {$glstart > [sc_filter count] } { set glstart [sc_filter count] } if {$glstart < 1} { set glstart 1 } ::windows::gamelist::Refresh } proc ::windows::gamelist::SetSelection {code xcoord ycoord} { global glSelection glNumber set glSelection [expr {int([.glistWin.columns.c$code.text index @$xcoord,$ycoord])}] set glNumber [.glistWin.columns.cg.text get $glSelection.0 $glSelection.end] } proc incrGLwidth {code} { global glistSize glistMaxWidth set w .glistWin.columns.c$code set width [$w.header cget -width] if {$width >= $glistMaxWidth} { return } incr width $w.header configure -width $width $w.text configure -width $width updateGLwidths $code $width } proc decrGLwidth {code} { global glistSize set w .glistWin.columns.c$code set width [$w.header cget -width] if {$width <= 1} { return } incr width -1 $w.header configure -width $width $w.text configure -width $width updateGLwidths $code $width } proc updateGLwidths {code width} { global glistFields set len [llength $glistFields] for {set i 0} {$i < $len} {incr i} { set column [lindex $glistFields $i] set tcode [lindex $column 0] if {$tcode != $code} { continue } set oldwidth [lindex $column 1] if {$oldwidth != $width} { set column [lreplace $column 1 1 $width] set glistFields [lreplace $glistFields $i $i $column] } } } proc ::windows::gamelist::Dehighlight {} { global glistFields glistSize foreach column $glistFields { set code [lindex $column 0] .glistWin.columns.c$code.text tag remove highlight 1.0 end } } proc ::windows::gamelist::Highlight {linenum} { global glistFields glistSize foreach column $glistFields { set code [lindex $column 0] .glistWin.columns.c$code.text tag remove highlight 1.0 end .glistWin.columns.c$code.text tag add highlight $linenum.0 [expr {$linenum+1}].0 } } proc popupGLconfig {code xcoord ycoord xscreen yscreen} { global glistFields glistAllFields set menu .glistWin.config # Move-field submenu: $menu.move delete 0 end $menu.move add command -label "|<<" -command "moveGLfield $code -99" $menu.move add command -label "<" -command "moveGLfield $code -1" $menu.move add command -label ">" -command "moveGLfield $code 1" $menu.move add command -label ">>|" -command "moveGLfield $code 99" # Configure-field command: $menu entryconfig 1 -command "configGLdialog $code" # Insert-field submenu: array set displayed {} foreach column $glistAllFields { set field [lindex $column 0] set displayed($field) 0 } foreach column $glistFields { set tcode [lindex $column 0] set displayed($tcode) 1 } $menu.insert delete 0 end foreach column $glistAllFields { set tcode [lindex $column 0] if {! $displayed($tcode)} { set name $::windows::gamelist::names($tcode) $menu.insert add command -label $::tr(Glist$name) \ -command "insertGLfield $code $tcode" } } # Delete-field command: if {$code == "g"} { $menu entryconfig 3 -state disabled } else { $menu entryconfig 3 -state normal -command "deleteGLfield $code" } # event generate .glistWin $menu post $xscreen [expr {$yscreen + 2}] event generate $menu } array set glconfig {} proc configGLdialog {code} { global glistFields glconfig foreach column $glistFields { if {$code == [lindex $column 0]} { set glconfig(width) [lindex $column 1] set glconfig(align) [lindex $column 2] set glconfig(color) [lindex $column 3] set glconfig(sep) [lindex $column 4] } } set w .glconfig if {[winfo exists $w]} { return } toplevel $w wm title $w "Scid" label $w.title -text "$::windows::gamelist::names($code)" -font font_Bold pack $w.title -side top pack [frame $w.g] -side top -fill x label $w.g.width -text $::tr(GlistWidth) set m [tk_optionMenu $w.g.vwidth glconfig(width) 1 2 3 4 5 6 7 8 9 10 \ 11 12 13 14 15 16 17 18 19 20] $w.g.vwidth configure -width 3 $m entryconfigure 10 -columnbreak 1 label $w.g.align -text $::tr(GlistAlign) frame $w.g.valign radiobutton $w.g.valign.left -text "<<" -indicatoron 0 \ -variable glconfig(align) -value left radiobutton $w.g.valign.right -text ">>" -indicatoron 0 \ -variable glconfig(align) -value right pack $w.g.valign.left $w.g.valign.right -side left -padx 1 label $w.g.color -text $::tr(GlistColor) frame $w.g.vcolor foreach color {black darkBlue blue darkGreen darkRed red2 gray50} { image create photo color_$color -width 14 -height 16 color_$color put $color -to 1 1 12 14 radiobutton $w.g.vcolor.$color -image color_$color -indicatoron 0 \ -variable glconfig(color) -value $color pack $w.g.vcolor.$color -side left -padx 1 } label $w.g.sep -text $::tr(GlistSep) frame $w.g.vsep radiobutton $w.g.vsep.yes -text $::tr(Yes) -indicatoron 0 \ -variable glconfig(sep) -value 1 radiobutton $w.g.vsep.no -text $::tr(No) -indicatoron 0 \ -variable glconfig(sep) -value 0 pack $w.g.vsep.yes $w.g.vsep.no -side left -padx 1 set row 0 foreach t {width align color sep} { grid $w.g.$t -row $row -column 0 -sticky w grid $w.g.v$t -row $row -column 1 -sticky e incr row } addHorizontalRule $w pack [frame $w.b] -side top -fill x button $w.b.ok -text "OK" \ -command "catch {grab release $w}; destroy $w; configGLfield $code" button $w.b.cancel -text $::tr(Cancel) \ -command "catch {grab release $w}; destroy $w" pack $w.b.cancel $w.b.ok -side right -padx 2 -pady 2 wm resizable $w 0 0 ::utils::win::Centre $w catch {grab $w} } proc configGLfield {code} { global glistFields glconfig set newcolumn [list $code $glconfig(width) $glconfig(align) \ $glconfig(color) $glconfig(sep)] set len [llength $glistFields] for {set i 0} {$i < $len} {incr i} { set column [lindex $glistFields $i] set tcode [lindex $column 0] if {$tcode == $code} { set glistFields [lreplace $glistFields $i $i $newcolumn] break } } # destroy .glistWin ::windows::gamelist::ReOpen } proc moveGLfield {code delta} { global glistFields set len [llength $glistFields] for {set i 0} {$i < $len} {incr i} { set column [lindex $glistFields $i] set tcode [lindex $column 0] if {$tcode == $code} { set glistFields [lreplace $glistFields $i $i] set insert [expr {$i + $delta}] set glistFields [linsert $glistFields $insert $column] break } } # destroy .glistWin ::windows::gamelist::ReOpen } proc insertGLfield {code newcode} { global glistFields glistAllFields set len [llength $glistFields] set newcolumn "" foreach column $glistAllFields { set tcode [lindex $column 0] if {$tcode == $newcode} { set newcolumn $column } } if {$newcolumn == ""} { return } for {set i 0} {$i < $len} {incr i} { set column [lindex $glistFields $i] set tcode [lindex $column 0] if {$tcode == $code} { incr i set glistFields [linsert $glistFields $i $newcolumn] break } } # destroy .glistWin ::windows::gamelist::ReOpen } proc deleteGLfield {code} { global glistFields set len [llength $glistFields] for {set i 0} {$i < $len} {incr i} { set column [lindex $glistFields $i] set tcode [lindex $column 0] if {$tcode != $code} { continue } set glistFields [lreplace $glistFields $i $i] } # destroy .glistWin ::windows::gamelist::ReOpen } proc popupGLmenu {code xcoord ycoord xscreen yscreen} { global glSelection glNumber ::windows::gamelist::SetSelection $code $xcoord $ycoord if {$glNumber < 1} {return} ::windows::gamelist::Highlight $glSelection #Enable/disable last 3 Popupmenupoint: Delete/Undelete (all) Games if {[sc_base isReadOnly]} { .glistWin.popup entryconfig 9 -state disabled .glistWin.popup entryconfig 10 -state disabled .glistWin.popup entryconfig 11 -state disabled } else { .glistWin.popup entryconfig 9 -state normal .glistWin.popup entryconfig 10 -state normal .glistWin.popup entryconfig 11 -state normal } # update the list of opened base for game merging set m .glistWin.popup.merge $m delete 0 end for {set i 1} {$i <= [sc_base count total]} {incr i} { if { $i == [sc_base current] } { continue } if {[sc_base inUse $i]} { set fname [file tail [sc_base filename $i]] $m add command -label "$i $fname" -command "::game::mergeInBase [sc_base current] $i" } } .glistWin.popup post $xscreen [expr {$yscreen + 2}] event generate .glistWin.popup } proc ::windows::gamelist::SetStart { start } { global glstart set glstart $start ::windows::gamelist::Refresh } proc ::windows::gamelist::ToggleFlag {flag} { global glNumber # If an invalid game number, just return: if {$glNumber < 1} { return } if {$glNumber > [sc_base numGames]} { return } catch {sc_game flag $flag $glNumber invert} ::windows::gamelist::Refresh } proc removeFromFilter {{dir none}} { global glNumber glstart sortingHandles if {$glNumber < 1} { return } if {$glNumber > [sc_base numGames]} { return } set db [ sc_base current] if {$dir == "none"} { sc_filter remove 0 $glNumber } elseif {$dir == "up"} { sc_filter remove 1 $glNumber $sortingHandles($db) set glstart 1 } else { sc_filter remove 2 $glNumber $sortingHandles($db) } ::windows::stats::Refresh ::windows::gamelist::Refresh } proc ::windows::gamelist::ShowMoves {xcoord ycoord} { global glistSelectPly glNumber glSelection # If an invalid game number, just return: if {$glNumber < 1} { return } if {$glNumber > [sc_base numGames]} { return } ::windows::gamelist::Highlight $glSelection .glistExtra.text delete 1.0 end .glistExtra.text insert end [sc_game firstMoves $glNumber $glistSelectPly] wm geometry .glistExtra +$xcoord+$ycoord wm deiconify .glistExtra raiseWin .glistExtra } proc ::windows::gamelist::Refresh {} { global glistSize glstart global glistFields sortingHandles updateStatusBar if {![winfo exists .glistWin]} { return } set totalSize [sc_filter count] set dbNum [sc_base current] set linenum [sc_sort list $dbNum $glstart $glistSize -current $sortingHandles($dbNum)] foreach column $glistFields { set code [lindex $column 0] set cformat $code append cformat "*\n" .glistWin.columns.c$code.text config -state normal .glistWin.columns.c$code.text delete 1.0 end .glistWin.columns.c$code.text insert end [sc_sort list $dbNum $glstart $glistSize $cformat $sortingHandles($dbNum)] align if {$linenum > 0} { .glistWin.columns.c$code.text tag add current $linenum.0 [expr {$linenum+1}].0 } .glistWin.columns.c$code.text config -state disabled } # Now update the window title: set str "Scid [tr WindowsGList]: " if {$totalSize > 0} { set right [expr {$totalSize + 1 - $glistSize}] if {$right < 1} { set right 1 } .glistWin.scale configure -to $right set glend [expr {$glstart + $glistSize - 1}] if {$glend > $totalSize} { set glend $totalSize} append str [::utils::thousands $glstart] " .. " \ [::utils::thousands $glend] " / " [::utils::thousands $totalSize] " " $::tr(games) } else { append str $::tr(noGames) .glistWin.scale configure -to 1 } ::setTitle .glistWin $str configureSortWin } trace variable glexport w updateExportGList proc openExportGList {} { global glexport set w .glexport if {[sc_filter count] < 1} { tk_messageBox -type ok -icon info -title "Scid" \ -message "This are no games in the current filter." return } if {[winfo exists $w]} { raiseWin $w updateExportGList return } toplevel $w wm title $w "Scid: Save Game List" label $w.lfmt -text "Format:" -font font_Bold pack $w.lfmt -side top entry $w.fmt -textvar glexport -bg white -fg black -font font_Fixed pack $w.fmt -side top -fill x text $w.tfmt -width 1 -height 5 -font font_Fixed -fg black -wrap none -relief flat pack $w.tfmt -side top -fill x $w.tfmt insert end "w: White b: Black " $w.tfmt insert end "W: White Elo B: Black Elo \n" $w.tfmt insert end "m: Moves count r: Result " $w.tfmt insert end "y: Year d: Date \n" $w.tfmt insert end "e: Event s: Site " $w.tfmt insert end "n: Round o: ECO code \n" $w.tfmt insert end "g: Game number f: Filtered number " $w.tfmt insert end "F: Final material S: Non-std start pos\n" $w.tfmt insert end "D: Deleted flag U: User flags " $w.tfmt insert end "C: Comments flag V: Variations flag \n" $w.tfmt configure -cursor top_left_arrow -state disabled addHorizontalRule $w label $w.lpreview -text $::tr(Preview:) -font font_Bold pack $w.lpreview -side top text $w.preview -width 80 -height 5 -font font_Fixed -bg gray95 -fg black \ -wrap none -setgrid 1 -xscrollcommand "$w.xbar set" scrollbar $w.xbar -orient horizontal -command "$w.preview xview" pack $w.preview -side top -fill x pack $w.xbar -side top -fill x addHorizontalRule $w pack [frame $w.b] -side bottom -fill x button $w.b.default -text "Default" -command {set glexport $glexportDefault} button $w.b.ok -text "OK" -command saveExportGList button $w.b.close -textvar ::tr(Cancel) -command "focus .; grab release $w; destroy $w" pack $w.b.close $w.b.ok -side right -padx 2 -pady 2 pack $w.b.default -side left -padx 2 -pady 2 wm resizable $w 1 0 focus $w.fmt updateExportGList grab $w } proc updateExportGList {args} { global glexport sortingHandles set w .glexport if {! [winfo exists $w]} { return } set dbNum [sc_base current] set text [sc_sort list $dbNum 1 5 "$glexport\n" $sortingHandles($dbNum)] $w.preview configure -state normal $w.preview delete 1.0 end $w.preview insert end $text $w.preview configure -state disabled } proc saveExportGList {} { global glexport sortingHandles set ftypes {{"Text files" {.txt}} {"All files" *}} set fname [tk_getSaveFile -filetypes $ftypes -parent .glexport -title "Scid: Save Game List"] if {$fname == ""} { return } set showProgress 0 if {[sc_filter count] >= 20000} { set showProgress 1 } if {$showProgress} { progressWindow "Scid" "Saving game list..." $::tr(Cancel) sc_progressBar } busyCursor . set dbNum [sc_base current] set res [catch {sc_sort list $dbNum 1 9999999 "$glexport\n" $sortingHandles($dbNum) $fname} err] unbusyCursor . if {$showProgress} { closeProgressWindow } if {$res} { tk_messageBox -type ok -icon warning -title "Scid" -message $err return } focus . grab release .glexport destroy .glexport return } proc makeSortWin {} { global sortCriteria critList set w .glSortWin if {[winfo exists $w]} { raiseWin $w return } toplevel $w wm title $w "Scid: Game List Sort" wm resizable $w 0 0 pack [ttk::frame $w.f] ttk::label $w.f.torder -textvar ::tr(SortCriteria:) -font font_Bold pack $w.f.torder -side top ttk::label $w.f.order -textvar sortCriteria(translated) -width 40 -background white -relief solid -anchor w pack $w.f.order -side top -fill x -pady 2 -padx 2 addHorizontalRule $w.f ttk::label $w.f.tadd -textvar ::tr(AddCriteria:) -font font_Bold pack $w.f.tadd -side top addHorizontalRule $w.f pack [ttk::frame $w.f.cr] -fill x set locCritList {} foreach cr $critList { lappend locCritList $::tr($cr) } ttk::combobox $w.f.cr.critcombo -width 20 -values $locCritList $w.f.cr.critcombo set [lindex $locCritList 0] pack $w.f.cr.critcombo -side left set locOrderList [::list $::tr(GsortAscending) $::tr(GsortDescending) ] ttk::combobox $w.f.cr.ordercombo -width 12 -values $locOrderList $w.f.cr.ordercombo set $::tr(GsortAscending) pack $w.f.cr.ordercombo -side left ttk::button $w.f.cr.add -textvar ::tr(GsortAdd) -command addSortCriteria pack $w.f.cr.add -side right addHorizontalRule $w.f pack [ttk::frame $w.f.b1] -fill x ttk::button $w.f.b1.clear -textvar ::tr(Clear) -command clearSortCriteria ttk::button $w.f.b1.sort -textvar ::tr(Sort) -command sortGameList pack $w.f.b1.clear -side left pack $w.f.b1.sort -side right pack [ttk::frame $w.f.b2] -side bottom -fill x ttk::button $w.f.b2.store -textvar ::tr(GsortStore) -command storeSortingCache ttk::button $w.f.b2.load -textvar ::tr(GsortLoad) -command loadSortingCache ttk::button $w.f.b2.close -textvar ::tr(Close) -command "focus .; destroy $w" pack $w.f.b2.store $w.f.b2.load -side left -padx 5 -pady 2 pack $w.f.b2.close -side right bind $w "$w.f.b.close invoke" configureSortWin } proc configureSortWin {} { global sortCriteria sortingHandles set w .glSortWin if {[winfo exists $w]} { set db [ sc_base current] if {[sc_base inUse $db]} { set handle $sortingHandles($db) if { $handle == -1 || $db == 9 } { $w.f.b2.store configure -state disabled } else { $w.f.b2.store configure -state normal } if { $db == 9 } { $w.f.b2.load configure -state disabled } else { set canLoad [ sc_sort testload $db ] if { $canLoad } { $w.f.b2.load configure -state normal } else { $w.f.b2.load configure -state disabled } } if {$sortCriteria(real) == ""} {$w.f.b1.clear configure -state disabled } else { $w.f.b1.clear configure -state normal } } } } proc clearSortCriteria {} { set ::sortCriteria(real) "" set ::sortCriteria(translated) "" configureSortWin } proc addSortCriteria {args} { global sortCriteria critShortcuts set critSelected [.glSortWin.f.cr.critcombo get] set orderSelected [.glSortWin.f.cr.ordercombo current] set shortCrit [lindex $critShortcuts [.glSortWin.f.cr.critcombo current]] set shortOrder "+" if { $orderSelected == 1 } { set shortOrder "-" } if {$sortCriteria(real) == ""} { set sortCriteria(real) "$shortCrit$shortOrder" set sortCriteria(translated) "$critSelected$shortOrder" } else { append sortCriteria(real) "$shortCrit$shortOrder" append sortCriteria(translated) ", $critSelected$shortOrder" } configureSortWin } proc sortGameList {} { global sortCriteria sortingHandles set db [ sc_base current] progressWindow "Scid" [concat "Sorting" "..."] busyCursor . set handle [ sc_sort sort $db $sortCriteria(real) $sortingHandles($db)] unbusyCursor . closeProgressWindow set sortingHandles($db) $handle ::windows::gamelist::Refresh configureSortWin } proc storeSortingCache {} { global sortingHandles set db [ sc_base current] sc_sort store $db $sortingHandles($db) getSortingCrit } proc loadSortingCache {} { global sortCriteria sortingHandles set db [ sc_base current] set sortingHandles($db) [sc_sort load $db $sortingHandles($db)] getSortingCrit ::windows::gamelist::Refresh configureSortWin } proc getSortingCrit {} { global sortCriteria sortingHandles critShortcuts critList set db [ sc_base current] set critString [ sc_sort crit $db $sortingHandles($db)] set critStringList [split $critString {} ] set sortCriteria(real) $critString set sortCriteria(translated) "" set sep "" foreach c $critStringList { set found 0 set p 0 foreach l $critShortcuts { if { $l == $c } { set idx [lindex $critList $p] append sortCriteria(translated) $sep $::tr($idx) set sep "," set found 1 } incr p } if { $found == 0 } { append sortCriteria(translated) $c } } } ########################################################################## # June 2011: A new reusable and simplified gamelist widget # # glist.create # Create a gamelist widget # w: parent window of the gamelist widget # layout: a string name that will be assigned to columns layout. # layout will be saved and restored in successive glist.create calls. proc glist.create {{w} {layout}} { # Default values if {! [info exists ::glist_ColOrder($layout)] } { set ::glist_ColOrder($layout) {{7} {1} {2} {3} {4} {5} {6} {23} {22} {8} {9} {10} {11} {12} {13} {14} {15} {16} {0}} } if {! [info exists ::glist_ColWidth($layout)] } { set ::glist_ColWidth($layout) {{50} {50} {50} {120} {40} {120} {40} {80} {200} {30} \ {200} {30} {20} {20} {20} {20} {35} {50} {30} {100} {40} {40} {50} {140}} } if {! [info exists ::glist_ColAnchor($layout)] } { set ::glist_ColAnchor($layout) {{e} {c} {c} {w} {c} {w} {c} {w} {w} {e} \ {w} {c} {c} {c} {c} {c} {c} {c} {c} {c} {c} {c} {c} {w}} } if {! [info exists ::glist_Sort($layout)] } { set ::glist_Sort($layout) { {22} {-} {7} {-} } } if {! [info exists ::glist_FindBar($layout)] } { set ::glist_FindBar($layout) 1 } ttk::treeview $w.glist -columns $::glist_Headers -show headings -selectmode browse $w.glist tag configure current -background lightBlue $w.glist tag configure fsmall -font font_Small menu $w.glist.header_menu menu $w.glist.header_menu.addcol menu $w.glist.game_menu bind $w.glist "set ::glistResized($w.glist) 1" bind $w.glist <2> "glist.popupmenu_ %W %x %y %X %Y $layout" bind $w.glist <3> "glist.popupmenu_ %W %x %y %X %Y $layout" bind $w.glist "glist.release_ %W %x %y $layout" bind $w.glist "glist.doubleclick_ %W %x %y $layout" bind $w.glist "glist.destroy_ $w.glist" set i 0 foreach col $::glist_Headers { $w.glist heading $col -text $::tr($col) $w.glist column $col -stretch 0 \ -width [lindex $::glist_ColWidth($layout) $i]\ -anchor [lindex $::glist_ColAnchor($layout) $i] incr i } $w.glist configure -displaycolumns $::glist_ColOrder($layout) autoscrollframe -bars both $w "" $w.glist set ::glistYScroll($w.glist) [$w.glist cget -yscrollcommand] $w.glist configure -yscrollcommand "glist.yscroll_ $w.glist" $w.ybar configure -command "glist.ybar_ $w.glist" bind $w.ybar "+glist.ybar_ $w.glist buttonrelease" ttk_bindMouseWheel $w.glist "glist.ybar_ $w.glist" # Find widget ttk::frame $w.find ttk::button $w.find.hide -image tb_close bind $w.find.hide "set ::glist_FindBar($layout) 0; grid forget $w.find" ttk::frame $w.find.n ttk::label $w.find.t_gnum -text $::tr(GlistGameNumber:) entry $w.find.gnum -width 8 -bg white ttk::button $w.find.b_gnum -image tb_next -command "glist.findgame_ $w" bind $w.find.gnum "$w.find.b_gnum invoke" grid $w.find.t_gnum $w.find.gnum $w.find.b_gnum -in $w.find.n -padx 2 ttk::frame $w.find.t ttk::label $w.find.t_text -text $::tr(GlistFindText:) entry $w.find.text -width 20 -bg white ttk::button $w.find.b1_text -image tb_next -command "glist.findgame_ $w 1" bind $w.find.text "$w.find.b1_text invoke" ttk::button $w.find.b2_text -image tb_prev -command "glist.findgame_ $w 0" grid $w.find.t_text $w.find.text $w.find.b2_text $w.find.b1_text -in $w.find.t -padx 2 grid $w.find.hide grid $w.find.n -row 0 -column 1 -padx 10 grid $w.find.t -row 0 -column 2 set ::glistFindBar($w.glist) $w.find glist.showfindbar_ $w.glist $layout # On exit save layout in options.dat options.save ::glist_ColOrder($layout) options.save ::glist_ColWidth($layout) options.save ::glist_ColAnchor($layout) options.save ::glist_Sort($layout) options.save ::glist_FindBar($layout) set ::glistYDrag($w.glist) 0 set ::glistLoaded($w.glist) 0.0 set ::glistTotal($w.glist) 0.0 set ::glistVisibleLn($w.glist) 0 set ::glistResized($w) 0 glist.sortInit_ $w.glist $layout } # glist.update # Retrieve values from database and update the widget # w: the parent windows of the widget that was passed to glist.create # base: the database from which retrieve values # filter: returns only values in the specified filter # - "all": all the values in the database *** NOT YET IMPLEMENTED *** # - "dbfilter": only values that matches the user defined filters # - "tree": only games from which are calculated the stats in the tree window proc glist.update {{w} {base} {filter}} { set w $w.glist if {! [winfo exists $w]} { return } set ::glistFilter($w) $filter set ::glistTotal($w) [sc_filter count $base $filter] if {$::glistVisibleLn($w) == 0 && $::glistTotal($w) > 0} { # Guess glistVisibleLn set ::glistVisibleLn($w) 50 if {$::glistVisibleLn($w) >= $::glistTotal($w)} { set ::glistVisibleLn($w) [expr $::glistTotal($w) -1] } } glist.update_ $w $base } #private: set glist_Headers {"GlistNumber" "GlistResult" "GlistLength" "GlistWhite" "GlistWElo" "GlistBlack" "GlistBElo" "GlistDate" "GlistEvent" "GlistRound" "GlistSite" "GlistAnnos" "GlistComments" "GlistVars" "GlistDeleted" "GlistFlags" "GlistECO" "GlistEndMaterial" "GlistStart" "GlistEDate" "GlistYear" "GlistAverageElo" "GlistRating" "GlistMoveField" } set glist_SortShortcuts { "N" "r" "m" "w" "W" "b" "B" "d" "e" "n" "s" "A" "C" "V" "D" "???" "o" "???" "???" "E" "y" "R" "i" "???" } proc glist.destroy_ {{w}} { if {[info exists ::glistSortCache($w)]} { sc_base sortcache $::glistBase($w) release $::glistSortCache($w) unset ::glistSortCache($w) } unset ::glistSortStr($w) if {[info exists ::glistBase($w)]} { unset ::glistBase($w) } if {[info exists ::glistFilter($w)]} { unset ::glistFilter($w) } if {[info exists ::glistFirst($w)]} { unset ::glistFirst($w) } unset ::glistVisibleLn($w) unset ::glistLoaded($w) unset ::glistTotal($w) unset ::glistYDrag($w) unset ::glistYScroll($w) unset ::glistResized($w) unset ::glistFindBar($w) } proc glist.update_ {{w} {base}} { if {! [info exists ::glistBase($w)] } { #Create a sortcache to speed up sorting sc_base sortcache $base create $::glistSortStr($w) } elseif {$::glistBase($w) != $base || $::glistSortCache($w) != $::glistSortStr($w)} { #Create a new sortcache sc_base sortcache $::glistBase($w) release $::glistSortCache($w) sc_base sortcache $base create $::glistSortStr($w) } set ::glistSortCache($w) $::glistSortStr($w) set ::glistBase($w) $base set ::glistFirst($w) 0.0 glist.loadvalues_ $w glist.ybarupdate_ $w } proc glist.loadvalues_ {w} { $w delete [$w children {}] set base $::glistBase($w) if {$base == [sc_base current]} { set current_game [sc_game number] } else { set current_game -1 } set i 0 foreach {idx line} [sc_base gameslist $base $::glistFirst($w) [expr 1 + $::glistVisibleLn($w)]\ $::glistFilter($w) $::glistSortStr($w)] { $w insert {} end -id $idx -values $line -tag fsmall foreach {n ply} [split $idx "_"] { if {$n == $current_game} { $w item $idx -tag {fsmall current} } } incr i } set ::glistLoaded($w) $i } proc glist.showfindbar_ {{w} {layout}} { if {$::glist_FindBar($layout) == 0} { grid forget $::glistFindBar($w) } else { grid $::glistFindBar($w) -row 2 -columnspan 2 -sticky news } } proc glist.findcurrentgame_ {{w} {gnum}} { set r [sc_base gamelocation $::glistBase($w) $::glistFilter($w) $::glistSortStr($w) $gnum] if {$r != ""} { set ::glistFirst($w) [expr $r -1] glist.ybar_ $w scroll } } proc glist.findgame_ {{w_parent} {dir ""}} { set w $w_parent.glist set w_entryN $w_parent.find.gnum set gnum [$w_entryN get] set w_entryT $w_parent.find.text set txt [$w_entryT get] $w_entryN configure -bg white $w_entryT configure -bg white busyCursor . update idletasks if {$dir == ""} { set r [sc_base gamelocation $::glistBase($w) $::glistFilter($w) $::glistSortStr($w) $gnum] } else { set gstart [expr int($::glistFirst($w))] if {$dir == "1"} { incr gstart } set r [sc_base gamelocation $::glistBase($w) $::glistFilter($w) $::glistSortStr($w) 0\ $txt $gstart $dir] } if {$r == ""} { if {$dir == ""} { $w_entryN configure -bg red } else { $w_entryT configure -bg red } } else { set ::glistFirst($w) [expr $r -1] #glist.ybar can change ::glistFirst($w) set f [expr $r -1] glist.ybar_ $w scroll #Select the founded game #TODO: If there are more than one result in the last page only the first will be selected set f [expr int($f - $::glistFirst($w))] set items [$w children {}] $w selection set [lindex $items $f] } unbusyCursor . } proc glist.doubleclick_ {{w} {x} {y} {layout}} { lassign [$w identify $x $y] what if {$what == "heading"} { foreach {c dir} $::glist_Sort($layout) { $w heading $c -image "" } set ::glist_Sort($layout) {} glist.sortClickHandle_ $w $x $y $layout } else { foreach {idx ply} [split [$w selection] "_"] {} if {[info exist idx]} { sc_base switch $::glistBase($w) ::game::Load $idx $ply } } } proc glist.popupmenu_ {{w} {x} {y} {abs_x} {abs_y} {layout}} { # identify region requires at least tk 8.5.9 # identify row have scrollbar problems if { 0 != [catch {set region [$w identify region $x $y] }] } { if {[$w identify row $x $y] == "" } { set region "heading" } else { set region "" } } if { $region != "heading" } { # if {[$w identify region $x $y] != "heading" } event generate $w -x $x -y $y foreach {idx ply} [split [$w selection] "_"] {} if {[info exist idx]} { $w.game_menu delete 0 end #LOAD/BROWSE/MERGE GAME $w.game_menu add command -label $::tr(LoadGame) \ -command "sc_base switch $::glistBase($w); ::game::Load $idx $ply" $w.game_menu add command -label $::tr(BrowseGame) \ -command "::gbrowser::new $::glistBase($w) $idx $ply" $w.game_menu add command -label $::tr(MergeGame) \ -command "mergeGame $::glistBase($w) $idx" #GOTO GAME $w.game_menu add separator #TODO: translate label $w.game_menu add checkbutton -variable ::glist_FindBar($layout) \ -label "Find Bar" -command "glist.showfindbar_ $w $layout" if {$::glistBase($w) == [sc_base current] && [sc_game number] != 0} { #TODO: translate label $w.game_menu add command -label "Find current game" -command "glist.findcurrentgame_ $w [sc_game number]" } else { #TODO: translate label $w.game_menu add command -label "Find current game" -state disabled } if {$::glistBase($w) == [sc_base current]} { #DELETE #TODO: Delete games even for "not current" databases #TODO: translate labels #TODO: refresh the other windows after delete/undelete $w.game_menu add separator set deleted [sc_game flag delete $idx] if {$deleted} { $w.game_menu add command -label "Undelete game" -command "sc_game flag delete $idx 0" } else { $w.game_menu add command -label "Delete game" -command "sc_game flag delete $idx 1" } } tk_popup $w.game_menu $abs_x $abs_y } } else { set col [$w identify column $x $y] set col_idx [lsearch -exact $::glist_Headers [$w column $col -id] ] $w.header_menu delete 0 end #CHANGE ALIGNMENT set cur_a [lindex $::glist_ColAnchor($layout) $col_idx] if {$cur_a != "w"} { $w.header_menu add command -label $::tr(GlistAlignL) \ -command "$w column $col -anchor w; lset ::glist_ColAnchor($layout) $col_idx w" } if {$cur_a != "e"} { $w.header_menu add command -label $::tr(GlistAlignR) \ -command "$w column $col -anchor e; lset ::glist_ColAnchor($layout) $col_idx e" } if {$cur_a != "c"} { $w.header_menu add command -label $::tr(GlistAlignC) \ -command "$w column $col -anchor c; lset ::glist_ColAnchor($layout) $col_idx c" } #ADD/REMOVE COLUMN $w.header_menu add separator $w.header_menu.addcol delete 0 end set empty disabled set i 0 foreach h $::glist_Headers { if {[lsearch -exact $::glist_ColOrder($layout) $i] == -1} { set empty normal $w.header_menu.addcol add command -label $::tr($h) -command "glist.insertcol_ $w $layout $i $col" } incr i } $w.header_menu add cascade -label $::tr(GlistAddField) -menu $w.header_menu.addcol -state $empty $w.header_menu add command -label $::tr(GlistDeleteField) -command "glist.removecol_ $w $layout $col" #BARS $w.header_menu add separator #TODO: translate label $w.header_menu add checkbutton -variable ::glist_FindBar($layout) \ -label "Find Bar" -command "glist.showfindbar_ $w $layout" tk_popup $w.header_menu $abs_x $abs_y } } # Sorting proc glist.sortInit_ {w {layout}} { set ::glistSortStr($w) "" set i 0 foreach {c dir} $::glist_Sort($layout) { set arrow_idx [expr $i *2] if {$dir == "-"} { incr arrow_idx } $w heading $c -image ::glist_Arrows($arrow_idx) append ::glistSortStr($w) [lindex $::glist_SortShortcuts $c] $dir incr i } } proc glist.sortClickHandle_ {{w} {x} {y} {layout}} { set col [$w identify column $x $y] set col_idx [lsearch -exact $::glist_Headers [$w column $col -id] ] if {"???" == [lindex $::glist_SortShortcuts $col_idx]} { # TODO: notify the user that the column cannot be used for sorting return } set exists [lsearch -exact $::glist_Sort($layout) $col_idx ] if {$exists == -1} { lappend ::glist_Sort($layout) $col_idx - } else { incr exists if {[lindex $::glist_Sort($layout) $exists ] == "+"} { lset ::glist_Sort($layout) $exists {-} } else { lset ::glist_Sort($layout) $exists {+} } } glist.sortInit_ $w $layout if {[info exist ::glistBase($w)]} { glist.update_ $w $::glistBase($w) } } # Scrollbar proc glist.ybar_ {w cmd {n 0} {units ""}} { if { $cmd == "-1" || $cmd == "+1" } { #TODO: Profile to verify if this speedup is significative # if { $cmd == "-1" } { # if {$::glistFirst($w) == 0} { return } # set items [$w children {}] # $w delete [lindex $items 0] # if {$::glistBase($w) == [sc_base current]} { # set current_game [sc_game number] # } else { # set current_game -1 # } # set ::glistFirst($w) [expr $::glistFirst($w) -1] # foreach {idx line} [sc_base gameslist $::glistBase($w) $::glistFirst($w) 1\ # $::glistFilter($w) $::glistSortStr($w)] { # $w insert {} 0 -id $idx -values $line -tag fsmall # foreach {n ply} [split $idx "_"] { # if {$n == $current_game} { $w item $idx -tag {fsmall current} } # } # } # } #MouseWheel set n [expr $cmd * $::glistVisibleLn($w) * 0.25] set units "units" set cmd scroll } if { $cmd == "scroll" || $cmd == "moveto"} { if {$cmd == "moveto"} { set ::glistFirst($w) [expr ceil($n * $::glistTotal($w))] } else { if {$units == "pages"} { set ::glistFirst($w) [expr $::glistFirst($w) + $n * ($::glistVisibleLn($w) -1)] } else { set ::glistFirst($w) [expr $::glistFirst($w) + $n] } } set d [expr $::glistTotal($w) - $::glistVisibleLn($w) +1] if {$::glistFirst($w) > $d } { set ::glistFirst($w) $d } if { $::glistFirst($w) < 0.0 } { set ::glistFirst($w) 0.0 } if { $cmd == "scroll"} { glist.loadvalues_ $w } else { set ::glistYDrag($w) 1 set t $w.balloon if {! [winfo exists $t] } { toplevel $t -bd 1 -bg black wm overrideredirect $t 1 pack [message $t.txt -aspect 10000 -bg lightyellow -font fixed] } $t.txt configure -text [format "%0.0f (%0.0f%%)" [expr 1 + $::glistFirst($w)]\ [expr ($::glistFirst($w) + $::glistVisibleLn($w))*100.0/$::glistTotal($w) ]] set wmx [expr [winfo pointerx .] - [winfo reqwidth $t.txt] - 10] set wmy [winfo pointery .] wm geometry $t \ [winfo reqwidth $t.txt]x[winfo reqheight $t.txt]+$wmx+$wmy raise $t } glist.ybarupdate_ $w } elseif { $cmd == "buttonrelease" && $::glistYDrag($w) != 0 } { set ::glistYDrag($w) 0 destroy $w.balloon glist.loadvalues_ $w glist.ybarupdate_ $w } } proc glist.ybarupdate_ {w} { if { $::glistLoaded($w) != $::glistTotal($w) } { set first [expr double($::glistFirst($w)) / $::glistTotal($w)] set last [expr double($::glistFirst($w) + $::glistLoaded($w)) / $::glistTotal($w)] eval $::glistYScroll($w) $first $last } } proc glist.yscroll_ {w first last} { if { $first != 0 } { #TODO: MouseWheel problem $w yview moveto 0 return } if { $::glistLoaded($w) != $::glistTotal($w) } { if { $first != 0 || $last != 1} { set ::glistResized($w) 0 if { $last < 1 } { set ::glistVisibleLn($w) [expr floor($last * $::glistLoaded($w) +1)] } glist.ybarupdate_ $w } elseif {$::glistResized($w)} { # Increase glistVisibleLn (recursion) set ::glistVisibleLn($w) [expr $::glistVisibleLn($w) + 1] glist.ybar_ $w scroll } } else { eval $::glistYScroll($w) $first $last } } #Drag and drop and changes in column's layout proc glist.insertcol_ {{w} {layout} {col} {after}} { set b [expr [string trimleft $after {#}]] set ::glist_ColOrder($layout) [linsert $::glist_ColOrder($layout) $b $col] $w configure -displaycolumns $::glist_ColOrder($layout) } proc glist.removecol_ {{w} {layout} {col}} { set d [expr [string trimleft $col {#}] -1] set ::glist_ColOrder($layout) [lreplace $::glist_ColOrder($layout) $d $d] $w configure -displaycolumns $::glist_ColOrder($layout) } proc glist.release_ {{w} {x} {y} {layout}} { switch $::ttk::treeview::State(pressMode) { resize { set col_id [$w column $::ttk::treeview::State(resizeColumn) -id] set i [lsearch -exact $::glist_Headers $col_id] if {$i != -1} { lset ::glist_ColWidth($layout) $i [$w column $::ttk::treeview::State(resizeColumn) -width] } } heading { lassign [$w identify $x $y] what if {$what == "heading"} { set new_col [$w identify column $x $y] set from [expr [string trimleft $::ttk::treeview::State(heading) {#}] -1] set to [expr [string trimleft $new_col {#}] -1] set val [lindex $::glist_ColOrder($layout) $from] if {$from != $to} { set ::glist_ColOrder($layout) [lreplace $::glist_ColOrder($layout) $from $from] set ::glist_ColOrder($layout) [linsert $::glist_ColOrder($layout) $to $val] $w configure -displaycolumns $::glist_ColOrder($layout) } else { glist.sortClickHandle_ $w $x $y $layout } } } } ttk::treeview::Release $w $x $y } image create bitmap ::glist_Arrows(0) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x10, 0x02, 0x38, 0x07, 0x7c, 0x00, 0xfe, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(1) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xfe, 0x02, 0x7c, 0x07, 0x38, 0x00, 0x10, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(2) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x08, 0x01, 0x9c, 0x07, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(3) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x7f, 0x01, 0xbe, 0x07, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(4) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x08, 0x04, 0x9c, 0x07, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(5) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x7f, 0x04, 0xbe, 0x03, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(6) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x80, 0x02, 0x88, 0x07, 0x1c, 0x02, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(7) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x80, 0x02, 0xff, 0x07, 0x3e, 0x02, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(8) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x07, 0x80, 0x00, 0x80, 0x03, 0x00, 0x04, 0x08, 0x04, 0x9c, 0x03, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(9) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x07, 0x80, 0x00, 0x80, 0x03, 0x00, 0x04, 0x7f, 0x04, 0xbe, 0x03, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(10) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x80, 0x00, 0x80, 0x03, 0x88, 0x04, 0x1c, 0x07, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(11) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0x80, 0x00, 0x80, 0x07, 0xff, 0x04, 0x3e, 0x03, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(12) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x07, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x08, 0x02, 0x1c, 0x01, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(13) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x80, 0x07, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x7f, 0x02, 0x3e, 0x01, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(14) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x80, 0x04, 0x00, 0x03, 0x88, 0x04, 0x9c, 0x07, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(15) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x80, 0x04, 0x00, 0x03, 0xff, 0x04, 0xbe, 0x07, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(16) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x80, 0x07, 0x00, 0x04, 0x08, 0x06, 0x9c, 0x03, 0x3e, 0x00, 0x7f, 0x00, 0x00, 0x00 }; } image create bitmap ::glist_Arrows(17) -foreground blue -data { #define arrows_width 12 #define arrows_height 10 static unsigned char arrows_bits[] = { 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x80, 0x07, 0x00, 0x04, 0x7f, 0x06, 0xbe, 0x03, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 }; } ########################################################################## scid-4.3.0.cvs20120311/tcl/end.tcl0000644000175000017500000020607311727223077015502 0ustar oliveroliver# end.tcl: part of Scid. # Copyright (C) 2000-2003 Shane Hudson. # detect the case where, under Linux, Scid is used without prior installation # the fallback directory is Scid's exec dir if {! [file isdirectory $::scidBasesDir] || ! [file isdirectory $::scidBooksDir]} { set scidShareDir $::scidExeDir set scidBasesDir [file nativename [file join $::scidShareDir "bases"]] set scidBooksDir [file nativename [file join $scidShareDir "books"]] } if {! [file isdirectory $::scidBasesDir]} { tk_messageBox -title "Scid" -type ok -icon warning -message "Bases directory not found" } if { ! [file isdirectory $::scidBooksDir]} { tk_messageBox -title "Scid" -type ok -icon warning -message "Books directory not found" } ############################################################ ### Main window title, etc: ############################################################ ### Menu/etc Functions: # findNovelty: # Searches the for first position in the current game not # found in the selected database. set noveltyOlder 0 proc findNovelty {} { global noveltyBase noveltyOlder set noveltyBase [sc_base current] set w .noveltyWin if {[winfo exists $w]} { updateNoveltyWin return } toplevel $w wm title $w "Scid: $::tr(FindNovelty)" pack [frame $w.help] -side top -fill x text $w.help.text -width 1 -height 5 -wrap word \ -relief ridge -cursor top_left_arrow -yscrollcommand "$w.help.ybar set" scrollbar $w.help.ybar -orient vertical -command "$w.help.text yview" \ -takefocus 0 -width 10 pack $w.help.ybar -side right -fill y pack $w.help.text -side left -fill x -expand yes $w.help.text insert end [string trim $::tr(NoveltyHelp)] $w.help.text configure -state disabled label $w.title -text $::tr(Database:) -font font_Bold pack $w.title -side top set numBases [sc_base count total] for {set i 1} {$i <= $numBases} {incr i} { radiobutton $w.b$i -text "" -variable noveltyBase -value $i -underline 5 pack $w.b$i -side top -anchor w -padx 10 } addHorizontalRule $w label $w.which -text $::tr(TwinsWhich:) -font font_Bold pack $w.which -side top radiobutton $w.all -text $::tr(SelectAllGames) \ -variable noveltyOlder -value 0 radiobutton $w.older -text $::tr(SelectOlderGames) \ -variable noveltyOlder -value 1 pack $w.all $w.older -side top -anchor w -padx 10 addHorizontalRule $w label $w.status -text "" -width 1 -font font_Small -relief sunken -anchor w pack $w.status -side bottom -fill x pack [frame $w.b] -side top -fill x dialogbutton $w.b.stop -textvar ::tr(Stop) -state disabled \ -command sc_progressBar dialogbutton $w.b.go -text $::tr(FindNovelty) -command { .noveltyWin.b.stop configure -state normal .noveltyWin.b.go configure -state disabled .noveltyWin.b.close configure -state disabled busyCursor . .noveltyWin.status configure -text " ... " update grab .noveltyWin.b.stop if {$noveltyOlder} { set err [catch {sc_game novelty -older -updatelabel .noveltyWin.status $noveltyBase} result] } else { set err [catch {sc_game novelty -updatelabel .noveltyWin.status $noveltyBase} result] } grab release .noveltyWin.b.stop if {! $err} { set result "$::tr(Novelty): $result" } unbusyCursor . .noveltyWin.b.stop configure -state disabled .noveltyWin.b.go configure -state normal .noveltyWin.b.close configure -state normal .noveltyWin.status configure -text $result updateBoard } dialogbutton $w.b.close -textvar ::tr(Close) -command { catch {destroy .noveltyWin} } packbuttons right $w.b.close $w.b.go $w.b.stop wm resizable $w 0 0 focus $w.b.go bind $w "$w.b1 invoke" bind $w "$w.b2 invoke" bind $w "$w.b3 invoke" bind $w "$w.b4 invoke" updateNoveltyWin } proc updateNoveltyWin {} { set w .noveltyWin if {! [winfo exists $w]} { return } set numBases [sc_base count total] $w.older configure -text "$::tr(SelectOlderGames) (< [sc_game info date])" for {set i 1} {$i <= $numBases} {incr i} { set name [file tail [sc_base filename $i]] set ng [::utils::thousands [sc_base numGames $i]] set text "Base $i: $name ($ng $::tr(games))" $w.b$i configure -state normal -text $text if {$ng == 0} { $w.b$i configure -state disabled } } } set merge(ply) 40 # mergeGame: # Produces a dialog for the user to merge a selected game into # the current game. # proc mergeGame {{base 0} {gnum 0}} { global merge glNumber if {$base == 0} { if {$glNumber < 1} { return } if {$glNumber > [sc_base numGames]} { return } set base [sc_base current] set gnum $glNumber } sc_game push copy set err [catch {sc_game merge $base $gnum} result] sc_game pop if {$err} { tk_messageBox -title "Scid" -type ok -icon info \ -message "Unable to merge the selected game:\n$result" return } set merge(base) $base set merge(gnum) $gnum set w .mergeDialog toplevel $w wm title $w "Scid: $::tr(MergeGame)" bind $w "$w.b.cancel invoke" bind $w {helpWindow GameList Browsing} label $w.title -text $::tr(Preview:) -font font_Bold pack $w.title -side top pack [frame $w.b] -side bottom -fill x frame $w.f text $w.f.text -background white -wrap word -width 60 -height 20 \ -font font_Small -yscrollcommand "$w.f.ybar set" scrollbar $w.f.ybar -takefocus 0 -command "$w.f.text yview" event generate $w.f.text pack $w.f.ybar -side right -fill y pack $w.f.text -side left -fill both -expand yes pack $w.f -fill both -expand yes set small font_Small label $w.b.label -text "Up to move:" -font $small pack $w.b.label -side left foreach i {5 10 15 20 25 30 35 40} { radiobutton $w.b.m$i -text $i -variable merge(ply) -value [expr {$i * 2}] \ -indicatoron 0 -padx 2 -pady 1 -font $small -command updateMergeGame pack $w.b.m$i -side left } radiobutton $w.b.all -text [::utils::string::Capital $::tr(all)] \ -variable merge(ply) -value 1000 -indicatoron 0 -padx 2 -pady 1 \ -font $small -command updateMergeGame pack $w.b.all -side left dialogbutton $w.b.ok -text "OK" -command { sc_game merge $merge(base) $merge(gnum) $merge(ply) catch {grab release .mergeDialog} destroy .mergeDialog updateBoard -pgn } dialogbutton $w.b.cancel -text $::tr(Cancel) \ -command "catch {grab release $w}; destroy $w" packbuttons right $w.b.cancel $w.b.ok grab $w updateMergeGame } proc updateMergeGame {args} { global merge set w .mergeDialog if {! [winfo exists $w]} { return } sc_game push copy sc_game merge $merge(base) $merge(gnum) $merge(ply) set pgn [sc_game pgn -indentV 1 -short 1 -width 60] sc_game pop $w.f.text configure -state normal $w.f.text tag configure red -foreground darkRed $w.f.text tag configure blue -foreground darkBlue $w.f.text delete 1.0 end foreach line [split $pgn "\n"] { if {[string index $line 0] == " "} { $w.f.text insert end $line blue } else { $w.f.text insert end $line } $w.f.text insert end "\n" } $w.f.text tag add red 1.0 4.0 #$w.f.text insert end $pgn $w.f.text configure -state disabled } # setExportText: # Allows the user to modify the text printed at the start and end of a # file for a particular export format # proc setExportText {exportType} { global exportStartFile exportEndFile switch -- $exportType { "PGN" { set title "Set PGN file export text" } "HTML" { set title "Set HTML file export text" } "LaTeX" { set title "Set LaTeX file export text" } default { return } } set w .setExportText$exportType if {[winfo exists $w]} { return } toplevel $w wm title $w "Scid: $title" frame $w.buttons pack $w.buttons -side bottom -fill x -anchor e set pane [::utils::pane::Create $w.pane start end 500 400] ::utils::pane::SetRange $w.pane 0.3 0.7 pack $pane -side top -expand true -fill both foreach f [list $pane.start $pane.end] type {start end} { label $f.title -font font_Bold -text "Text at $type of $exportType file:" text $f.text -wrap none -background white \ -yscroll "$f.ybar set" -xscroll "$f.xbar set" scrollbar $f.ybar -orient vertical -command "$f.text yview" scrollbar $f.xbar -orient horizontal -command "$f.text xview" bind $f.text {%W configure -background lightYellow} bind $f.text {%W configure -background white} grid $f.title -row 0 -column 0 -sticky w grid $f.text -row 1 -column 0 -sticky nesw grid $f.ybar -row 1 -column 1 -sticky nesw grid $f.xbar -row 2 -column 0 -sticky nesw grid rowconfig $f 1 -weight 1 -minsize 0 grid columnconfig $f 0 -weight 1 -minsize 0 } $pane.start.text insert end $exportStartFile($exportType) $pane.end.text insert end $exportEndFile($exportType) button $w.buttons.default -text "Reset to Default" -command " $pane.start.text delete 1.0 end $pane.start.text insert end \$default_exportStartFile($exportType) $pane.end.text delete 1.0 end $pane.end.text insert end \$default_exportEndFile($exportType) " dialogbutton $w.buttons.ok -text "OK" -command " set exportStartFile($exportType) \[$pane.start.text get 1.0 end-1c\] set exportEndFile($exportType) \[$pane.end.text get 1.0 end-1c\] focus . destroy $w " dialogbutton $w.buttons.cancel -text $::tr(Cancel) -command "focus .; destroy $w" pack $w.buttons.default -side left -padx 5 -pady 2 pack $w.buttons.cancel $w.buttons.ok -side right -padx 5 -pady 2 focus $pane.start.text } image create photo htmldiag0 -data { R0lGODdhbgBkAIAAAAAAAP///ywAAAAAbgBkAAAC/oyPqcvtD6OctNqLs968+w+G4kiW5omm 6moAgQu/ckzPdo3fes7vfv5wsYQtBFF2OCqNzCPrs4xEi0mQEyWcApxbqhfpvYa2ZCNZeQ4y k122YgqGNs7oMtu+aH9f6XT1vydm5ddCyIenlkB3KAgnePFIJzm5yECkRVmpuPbokflpaLl2 eKeHCNcRCQo6F3e52qY3Gve04QhbJkvrGYQb+jbrB8sHaJPi25mnGItLvDmRnLwnCpH1luUb WGwpLdUsIdaFHLtdHe09bM45Lkw9p4uRXfHKbseFntibnk9fT/4XDR6kb+BKsfrkrFuhc+b2 OYhh0J+1Z+8U6ltVMGIm/kaTpnnL95DgQzPpMC6RJtCCPArMOmqsNDFjq4YYq5lZGKokxZEc Vtok5pIkwl2p0NXsZZDUsmH3fmpIuWxeUKEHy828yo0dT6p5sk3sZrGrP6dWx3kMCRKYykhE xcpD1fWpxK1tOX4LK9OtVneuliKjAnEEIqkMA9UrgjctTokCY+4a29fvL6OM2ZabW3co1peH rwVb3DmM5lpSRlV2DHryrGPFEidqShrS59azz2Zw/TTyF0e168aG1ps3bRG4bz8pvqmH8h/M lztvDj0wVuG7g/sW3Bv48Orbr7Purky3eOpgkMsenxcuX/XHs3NzzzG8NsJQ38EnG2Uq+rWa /s7bVrvfRtwBxhIlLHWnEHUCklegfumtpgx5AloHjYHAMTjdahbeB46D+EG4Hoj68YaXh3Sx B9IVrADo3TUTHmjVTHA5pFuCR70G4oeSaYZiRTemyGJcw72lIWWj2TckjKLRKN5FKypZHj/B iBQZWFS6g2GIVI3Wo15HApljFTMSlKWLP4oyo45L8himkxuq2eJ+nKV0UoUvgvlfhmb2x2FI JsL505hPDmjjoDx1qeWWEyK655d6tunMNGbt5N2kaF0Wlop7DejnX9qRJGWj++TnJpMUhVPf bJhBOqehWqompmmQgbejT8Bgkup4s8aZ2pU71VGYK4xVp8qqLAJriREXw1LqpaV0xXeoqJ4C Uuyuz2g62KvL5tnqmb8uhhS128Imra03iZvtsz2xikU8CFLInXkqvVsavZwyekKZTcArZ5Pt 6vutvf3GBjC7VrRX1HMKR8fwwg4bo26+/Eq4729FCUyxHEPcO7FpFtvSscC8DJExx9vI+3G/ JfNK1ncqh4zybyuvLEEBADs= } image create photo htmldiag1 -data { R0lGODdhbgBkAIQAAAAAAAsLCxYWFiAgICsrKzY2NkBAQEtLS1VVVWBgYGtra3V1dYCAgIuL i5WVlaCgoKqqqrW1tcDAwMrKytXV1eDg4Orq6vX19f////////////////////////////// /ywAAAAAbgBkAAAF/iAmjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IJBGAYTqb0Kc0 Sp1aq9irNst9vphLkYWAEFEEkFGEIkIQLJhxGUMhsDGQ9wis7MnNaCducH90diJ5cBgVQ3xC AIVnaSMLiHqRh3h6GAgNUCsRBgd3NRIAp3ymqKcMe6gSKQdzkiIScAYKJJh3iW1zLBWoAzGO GKqnI8eorSKrsCcAk7QiDG8GAA4kjIa8mwi/xSbKN8oS5g6rpwnm5SvTcAwAA6gFtrrbvZy/ LgWnk18llKUbSPCZCSbTIBjAEIGgvAQPSEjwNscCrHAmCJzaN0Ogw48GTSQUwMaCgFMH/lAJ YJBAwEpFI76JIRChBYJVAmAU8/ixIAoABiZBIDlCAQACFfrJY2Qh3oAJMSsSmIRxBIR0w2zc 7PmRYwlFQ0lNOLXQwqoEjCaczEZn5j8VFU7i1CnoFLu7eM1tVAEmLIl5AARYMJuu1RkAv8a8 rYpBabocKV0AONDCL0MMD7juPTwpKCJmKMYSpHsiHoPTqFOnBgD6p2UEEa8JANyVzklSeIhW dfwYRzzNy1gguDOoCS+uZdARsEo0BYWPpE38Bs56BZ/iwQrcudazZr+IEZp/KjF9YI7ymlur KN6YrEa5HwUHG1bhzrYT3EcDLE2dlXVOmzTUX3AJAEAKAq1g/pSfeb4NqN4JCmwS14DCMARA JQDCZMKCvUmGAnpcPVjChYqMgdxHbMijiSIYgYjKeQ7CoJEBGhGUy0etXFPBYKBAt590MfIV h0XVmVVAjQQcABVPZGFQYE1xXIQCfAMsEIE5MPYn4ldvPCdBeNk4RUID8WFgWhwEeJLCAqew NUNV8Ui25R6yiEDAAC6J0A9UI/Bm3pl1jldCMMtFkAB3OJgo2SYp/HMYA3VEQ4KAKJpC2X0q sEkbAyGxEI6JQBkg6qikjnoKoweJsOMiFBAKJSBc6bUQCYzFQ+YpA8xaQ0oUouROJiiEp5le GFIQkQrTCWDAadGJQRuFA2hIax28/qg5ggV+gmSKYQLUxBiZNOUAaq+nShtTN4owVSNwFpDZ ylQsmGJLA4fq2oIjLlIoIh/5DIeBUf2ZCUBNrzLR1IIDaPQsYyzkGyQK/ZYRzIBOGmiCSQH/ KDC5q+y7oi8i3KrlPFYlyKZmVc7ZMMcdQ0zRCBOUKvPMuCDSHIcEudlsECSCHOUNzU2mLAMN 5IVlHzLIhOZbM2CKKQ8M7wCG0orZTNwlZAAilHiCIu3117R2IfYWZI9tdtlo0xBJILldTUjW 3FhirhFrb42bh3VbLYICB7w9Syb5MBK1DgbDPdIducCQd9snUKAmtXK3YW0Ri1smw2SzsG05 HUTfB/nH/vo088IDpzUwN1+BHk7C3SxIo3lzjGzlDwYXAP6y4usGxvoKrtutKieDh22b75xU IJpKcOBzu+grp1MAaaoXL5oM0SPwPIgGRSxGpyrgHHwJ1V+PzBfV63E8KttEcPsY3rYAYlaS lQ/H9DB4xjgGCyygyAPwAWUu1fByQVMG4pUV2M8y+dvfSXQCFq7F4QG5UwlEKCGVfzCsAg3o 3yqqxCfrNPBuFoDgi2RgmQTAQVhceYouAtg8zRTgaY1qjgkZokG6vKYVlAIOn6qGhwShAGDU EYyQbmghBr3gNXpYWArtRLwTTGxACeBdc4qjxO81w18ZMkavTqi3rlGjV8tJ/gFi3KZF/SRt ExSQWTqUVar7bO4EDyhVBOVRKsrYBI1qtOInisOjg6zCXiWwjOBa4BGVpSqLfRyRHtuANfuQ Ih2AZA5xDCmRgVDSBHzMRH1coZMI+c0MmcjhKdRFvOIED4j06CTW/nYHAcVAf2hi5QjmWIkH lBJVK3hiOjrYAljuYpbj81AsQUmK5wwkJ5JkJEwGl68oCvOXZhgh7mRJCYdACYmE4B4KqhiY GEBTBCfTIyQMB7iaeK864SHjGDwRNV0OBIY/gSYEzClNF6TOdnD4yEIeoE64xasn2kTBPdHV hHp6Shr4tJNDMKTMYTLPOT3ZHTQQSlAMrGsGn8tH/hHXeKBVxkB26QgjDDLKKErRhaTSoqU2 PkmHiAzOna8ACEpLUKMYzDQOETgNQQZwGoOs7VUoqEBOC0SQBHAKniJJKE51Gsx7YbEXFiAq cFYiArZMAyMUyFZPCsDLgzz1ElJdBQ2gOkfN/GIaKDhMr4DaKKw5hDT5EBmFoIJWL/KqV8iE RuQwINcOHZFR50wPBg4glC2xDAAB3SsGAquTfKSBdKqJrGQ5RQK/hGOymFUNUqOxicdi9pWK QEDicPBGIsCSE6PFwXUqwoALiCACbmrAJJrCJwq0tote/MFqxXBbhugsaRXsYiYz10QlALCU OwPCImmwXLqk7blniy50waebXN1qTbgeHd5elfZQsN1Afg5NyPpOJ7UiGOh1/STudqWSIu/i AL0Nrdz6WMgz815zitkVb2iD21331gCb4dXcfJlW3zAAWL77dYsZBunf/+KXpfr1GQ/rgNTy LuHBARbKgInZ3wbDYBvDvS7ojsvhMJg4xNodMX8/12EPvwDFEQ7d0kqMgMQSzrwwFnCCZxy3 LDbXxfnVsYQD+Dn2PMK8M1GvihXcYyP/2MUIHjJF40veGy8hyjKecCYyKSUYhAAAOw== } # exportOptions: # Prompts the user to select exporting options. # proc exportOptions {exportType} { global exportFlags set w .exportFlagsWin set exportFlags(ok) -1 toplevel $w wm title $w "Scid: [tr OptionsExport]" # wm transient $w . wm protocol $w WM_DELETE_WINDOW { } bind $w "$w.b.cancel invoke" bind $w "$w.b.ok invoke" bind $w {helpWindow Export} pack [frame $w.o] -side top -fill x -pady 5 -padx 5 label $w.o.append -text $::tr(AddToExistingFile) radiobutton $w.o.appendYes -text $::tr(Yes) \ -variable exportFlags(append) -value 1 radiobutton $w.o.appendNo -text $::tr(No) \ -variable exportFlags(append) -value 0 label $w.o.comments -text $::tr(ExportComments) radiobutton $w.o.commentsOn -text $::tr(Yes) \ -variable exportFlags(comments) -value 1 radiobutton $w.o.commentsOff -text $::tr(No) \ -variable exportFlags(comments) -value 0 label $w.o.stripMarks -text $::tr(ExportStripMarks) radiobutton $w.o.stripMarksOn -text $::tr(Yes) \ -variable exportFlags(stripMarks) -value 1 radiobutton $w.o.stripMarksOff -text $::tr(No) \ -variable exportFlags(stripMarks) -value 0 label $w.o.indentc -text $::tr(IndentComments) radiobutton $w.o.indentcOn -text $::tr(Yes) \ -variable exportFlags(indentc) -value 1 radiobutton $w.o.indentcOff -text $::tr(No) \ -variable exportFlags(indentc) -value 0 label $w.o.vars -text $::tr(ExportVariations) radiobutton $w.o.varsOn -text $::tr(Yes) -variable exportFlags(vars) -value 1 radiobutton $w.o.varsOff -text $::tr(No) -variable exportFlags(vars) -value 0 label $w.o.indentv -text $::tr(IndentVariations) radiobutton $w.o.indentvOn -text $::tr(Yes) \ -variable exportFlags(indentv) -value 1 radiobutton $w.o.indentvOff -text $::tr(No) \ -variable exportFlags(indentv) -value 0 label $w.o.column -text $::tr(ExportColumnStyle) radiobutton $w.o.columnOn -text $::tr(Yes) \ -variable exportFlags(column) -value 1 radiobutton $w.o.columnOff -text $::tr(No) \ -variable exportFlags(column) -value 0 label $w.o.symbols -text $::tr(ExportSymbolStyle) radiobutton $w.o.symbolsOn -text "! +=" \ -variable exportFlags(symbols) -value 1 radiobutton $w.o.symbolsOff -text {$2 $14} \ -variable exportFlags(symbols) -value 0 grid $w.o.append -row 0 -column 0 -sticky w grid $w.o.appendYes -row 0 -column 1 -sticky w grid $w.o.appendNo -row 0 -column 2 -sticky w grid $w.o.comments -row 1 -column 0 -sticky w grid $w.o.commentsOn -row 1 -column 1 -sticky w grid $w.o.commentsOff -row 1 -column 2 -sticky w grid $w.o.stripMarks -row 2 -column 0 -sticky w grid $w.o.stripMarksOn -row 2 -column 1 -sticky w grid $w.o.stripMarksOff -row 2 -column 2 -sticky w grid $w.o.indentc -row 3 -column 0 -sticky w grid $w.o.indentcOn -row 3 -column 1 -sticky w grid $w.o.indentcOff -row 3 -column 2 -sticky w grid $w.o.vars -row 4 -column 0 -sticky w grid $w.o.varsOn -row 4 -column 1 -sticky w grid $w.o.varsOff -row 4 -column 2 -sticky w grid $w.o.indentv -row 5 -column 0 -sticky w grid $w.o.indentvOn -row 5 -column 1 -sticky w grid $w.o.indentvOff -row 5 -column 2 -sticky w grid $w.o.column -row 6 -column 0 -sticky w grid $w.o.columnOn -row 6 -column 1 -sticky w grid $w.o.columnOff -row 6 -column 2 -sticky w grid $w.o.symbols -row 7 -column 0 -sticky w grid $w.o.symbolsOn -row 7 -column 1 -sticky w grid $w.o.symbolsOff -row 7 -column 2 -sticky w # Extra option for PGN format: handling of null moves if {$exportType == "PGN"} { label $w.o.space -text "" grid $w.o.space -row 8 -column 0 -sticky w label $w.o.nullMoves -text "Convert null moves to comments" radiobutton $w.o.convertNullMoves -text $::tr(Yes) \ -variable exportFlags(convertNullMoves) -value 1 radiobutton $w.o.keepNullMoves -text $::tr(No) \ -variable exportFlags(convertNullMoves) -value 0 grid $w.o.nullMoves -row 9 -column 0 -sticky w grid $w.o.convertNullMoves -row 9 -column 1 -sticky w grid $w.o.keepNullMoves -row 9 -column 2 -sticky w } # Extra option for HTML format: diagram image set if {$exportType == "HTML"} { label $w.o.space -text "" label $w.o.hdiag -text "Diagram" radiobutton $w.o.hb0 -text "bitmaps" \ -variable exportFlags(htmldiag) -value 0 radiobutton $w.o.hb1 -text "bitmaps2" \ -variable exportFlags(htmldiag) -value 1 label $w.o.hl0 -image htmldiag0 label $w.o.hl1 -image htmldiag1 grid $w.o.space -row 8 -column 0 grid $w.o.hdiag -row 9 -column 0 -sticky w grid $w.o.hb0 -row 9 -column 1 -sticky w grid $w.o.hb1 -row 9 -column 2 -sticky w grid $w.o.hl0 -row 10 -column 1 grid $w.o.hl1 -row 10 -column 2 } addHorizontalRule $w pack [frame $w.b] -side top dialogbutton $w.b.ok -text "OK" -command { set exportFlags(ok) 1 } dialogbutton $w.b.cancel -text $::tr(Cancel) -command { set exportFlags(ok) 0 } pack $w.b.ok $w.b.cancel -side left -padx 5 -pady 5 wm withdraw $w update idletasks set x [expr {[winfo screenwidth $w]/2 - [winfo reqwidth $w]/2 \ - [winfo vrootx [winfo parent $w]]}] set y [expr {[winfo screenheight $w]/2 - [winfo reqheight $w]/2 \ - [winfo vrooty [winfo parent $w]]}] wm geom $w +$x+$y wm deiconify $w grab $w tkwait variable exportFlags(ok) grab release $w destroy $w return $exportFlags(ok) } # exportGames: # exports current game or all filtered games to a new PGN, LaTeX or Html file. # proc exportGames {selection exportType} { global ::pgn::moveNumberSpaces exportStartFile exportEndFile exportFlags set exportFilter 0 if {$selection == "filter"} { set exportFilter 1 } if {$exportFilter} { # Check that we have some games to export: if {![sc_base inUse]} { tk_messageBox -title "Scid: Empty database" -type ok -icon info \ -message "This is an empty database, there are no games to export." return } if {[sc_filter count] == 0} { tk_messageBox -title "Scid: Filter empty" -type ok -icon info \ -message "The filter contains no games." return } } if {[exportOptions $exportType] == 0} { return } sc_info html $exportFlags(htmldiag) switch -- $exportType { "PGN" { set ftype { { "PGN files" {".pgn"} } { "All files" {"*"} } } set title "a PGN file" set idir $::initialDir(base) set default ".pgn" } "HTML" { set ftype { { "HTML files" {".html" ".htm"} } { "All files" {"*"} } } set title "an HTML file" set idir $::initialDir(html) set default ".html" } "LaTeX" { set ftype { { "LaTeX files" {".tex" ".ltx"} } { "All files" {"*"} } } set title "a LaTeX file" set idir $::initialDir(tex) set default ".tex" } default { return } } if {$exportFlags(append)} { set getfile tk_getOpenFile set title "Add games to $title" } else { set getfile tk_getSaveFile set title "Create $title" } set fName [$getfile -initialdir $idir -filetypes $ftype -defaultextension $default -title $title] if {$fName == ""} { return } if {$exportFilter} { progressWindow "Scid" "Exporting games..." $::tr(Cancel) "sc_progressBar" } busyCursor . sc_base export $selection $exportType $fName -append $exportFlags(append) \ -starttext $exportStartFile($exportType) \ -endtext $exportEndFile($exportType) \ -comments $exportFlags(comments) -variations $exportFlags(vars) \ -space $::pgn::moveNumberSpaces -symbols $exportFlags(symbols) \ -indentC $exportFlags(indentc) -indentV $exportFlags(indentv) \ -column $exportFlags(column) -noMarkCodes $exportFlags(stripMarks) \ -convertNullMoves $exportFlags(convertNullMoves) unbusyCursor . if {$exportFilter} { closeProgressWindow } } proc copyFilter {frombaseNum tobaseNum} { # Check status of source and target bases: set currentBaseNum [sc_base current] sc_base switch $frombaseNum set nGamesToCopy [sc_filter count] set fromInUse [sc_base inUse] set fromName [file tail [sc_base filename]] sc_base switch $tobaseNum set targetInUse [sc_base inUse] set targetName [file tail [sc_base filename]] set targetReadOnly [sc_base isReadOnly] sc_base switch $currentBaseNum set err "" if {$nGamesToCopy == 0} { set err "$::tr(CopyErrSource) $::tr(CopyErrNoGames)." } if {$targetReadOnly} { set err "$::tr(CopyErrTarget) ($targetName) $::tr(CopyErrReadOnly)." } if {! $targetInUse} {set err "$::tr(CopyErrTarget) $::tr(CopyErrNotOpen)."} if {! $fromInUse} {set err "$::tr(CopyErrSource) $::tr(CopyErrNotOpen)."} if {$frombaseNum == $tobaseNum} { set err "$::tr(CopyErrSource) == $::tr(CopyErrTarget)." } if {$err != ""} { tk_messageBox -type ok -icon info -title "Scid" \ -message "$::tr(CopyErr) \n\"$fromName\" -> \"$targetName\": \n$err" return } # If copying to the clipbase, do not bother asking for confirmation: if {$tobaseNum == [sc_info clipbase]} { progressWindow "Scid" "$::tr(CopyGames)..." $::tr(Cancel) "sc_progressBar" busyCursor . set copyErr [catch {sc_filter copy $frombaseNum $tobaseNum} result] unbusyCursor . closeProgressWindow if {$copyErr} { tk_messageBox -type ok -icon info -title "Scid" -message $result } return } set w [toplevel .fcopyWin] wm title $w "Scid: $::tr(CopyGames)" label $w.text -text [subst $::tr(CopyConfirm)] frame $w.b dialogbutton $w.b.go -text $::tr(CopyGames) -command " busyCursor . $w.b.cancel configure -command \"sc_progressBar\" $w.b.cancel configure -text $::tr(Stop) sc_progressBar $w.bar bar 301 21 time grab $w.b.cancel if {\[catch {sc_filter copy $frombaseNum $tobaseNum} result\]} { tk_messageBox -type ok -icon info \ -title \"Scid\" -message \$result } unbusyCursor . focus . destroy $w updateStatusBar " dialogbutton $w.b.cancel -text $::tr(Cancel) -command "focus .; destroy $w" canvas $w.bar -width 300 -height 20 -bg white -relief solid -border 1 $w.bar create rectangle 0 0 0 0 -fill blue -outline blue -tags bar $w.bar create text 295 10 -anchor e -font font_Regular -tags time \ -fill black -text "0:00 / 0:00" pack $w.text $w.b -side top -pady 5 pack $w.bar -side bottom pack $w.b.go $w.b.cancel -side left -padx 10 -pady 10 grab $w bind $w "$w.b.go invoke" bind $w "$w.b.cancel invoke" focus $w.b.go } ########################################################################### ### Global variables used in gameSave: set date 0; set year 0; set month 0; set day 0; set white 0; set black 0 set resultVal 0; set event 0; set site 0; set round 0 set whiteElo 0; set blackElo 0; set eco 0; set extraTags "" set whiteRType "Elo"; set blackRType "Elo" set edate 0; set eyear 0; set emonth 0; set eday 0 # Traces on game-save dialog variables to ensure sane values: trace variable resultVal w ::utils::validate::Result trace variable whiteElo w {::utils::validate::Integer [sc_info limit elo] 0} trace variable blackElo w {::utils::validate::Integer [sc_info limit elo] 0} trace variable year w {::utils::validate::Integer [sc_info limit year] 1} trace variable month w {::utils::validate::Integer 12 1} trace variable day w {::utils::validate::Integer 31 1} trace variable eyear w {::utils::validate::Integer [sc_info limit year] 1} trace variable emonth w {::utils::validate::Integer 12 1} trace variable eday w {::utils::validate::Integer 31 1} set gsaveNum 0 set i 0; set j 0 set temp 0 array set nameMatches {} set nameMatchCount 0 # updateMatchList: # Called from gameSave to update the matching name list as the user # types a player/site/event/round name. # proc updateMatchList { tw nametype maxMatches name el op } { global nameMatches nameMatchCount global $name editNameType if {![winfo exists $tw]} return if {$nametype == ""} { set nametype $editNameType } if {$nametype == "rating"} { set nametype "player" } set val [set $name] $tw configure -state normal $tw delete 0.0 end set matches {} catch {set matches [sc_name match $nametype $val $maxMatches]} set count [llength $matches] set nameMatchCount [expr {$count / 2}] for {set i 0} { $i < $count } {incr i 2} { set nameMatchCount [expr {($i / 2) + 1}] set nameMatches($nameMatchCount) [lindex $matches [expr {$i + 1}]] set str "$nameMatchCount:\t[lindex $matches $i]\t$nameMatches($nameMatchCount)\n" $tw insert end $str } $tw configure -state disabled } proc clearMatchList { tw } { global nameMatches nameMatchCount set nameMatchCount 0 $tw configure -state normal $tw delete 0.0 end $tw configure -state disabled } # Traces to update the match list as names are typed in: trace variable event w { updateMatchList .save.g.list e 9 } trace variable site w { updateMatchList .save.g.list s 9 } trace variable white w { updateMatchList .save.g.list p 9 } trace variable black w { updateMatchList .save.g.list p 9 } trace variable round w { updateMatchList .save.g.list r 9 } set editName "" set editNameNew "" set editNameType "player" set editNameSelect "all" set editNameRating "" set editNameRType "Elo" set editDate "" set editDateNew "" trace variable editNameRating w {::utils::validate::Integer [sc_info limit elo] 0} trace variable editName w { updateMatchList .nedit.g.list "" 9 } trace variable editDate w ::utils::validate::Date trace variable editDateNew w ::utils::validate::Date proc editNameNewProc { tw nametype maxMatches name el op } { global editNameNew if {! [winfo exists .nedit]} { return } if {[string compare $editNameNew ""]} { .nedit.buttons.replace configure -state normal } else { .nedit.buttons.replace configure -state disabled } catch {updateMatchList $tw $nametype $maxMatches $name $el $op} } trace variable editNameNew w { editNameNewProc .nedit.g.list "" 9 } set nameEditorWin 0 proc makeNameEditor {} { if {! [winfo exists .nedit]} { nameEditor } } proc setNameEditorType {type} { if {! [winfo exists .nedit]} { return } catch {.nedit.typeButtons.$type invoke} } proc nameEditor {} { global editName editNameType editNameNew nameEditorWin editNameSelect global editNameRating editDate editDateNew set w .nedit if {[winfo exists $w]} { destroy $w return } toplevel $w wm title $w "Scid: [tr FileMaintNameEditor]" set nameEditorWin 1 setWinLocation $w bind $w "recordWinSize $w" label $w.typeLabel -textvar ::tr(NameEditType:) -font font_Bold frame $w.typeButtons pack $w.typeLabel $w.typeButtons -side top -pady 5 foreach i { "Player" "Event" "Site" "Round"} { set j [string tolower $i] radiobutton $w.typeButtons.$j -textvar ::tr($i) -variable editNameType \ -value $j -indicatoron false -pady 5 -padx 5 -command { grid remove .nedit.g.ratingE grid remove .nedit.g.rtype grid remove .nedit.g.fromD grid remove .nedit.g.toD grid .nedit.g.toL -row 1 -column 1 -sticky e grid .nedit.g.fromE -row 0 -column 2 -sticky w grid .nedit.g.toE -row 1 -column 2 -sticky w } pack $w.typeButtons.$j -side left -padx 5 } radiobutton $w.typeButtons.rating -textvar ::tr(Rating) -variable editNameType \ -value rating -indicatoron false -pady 5 -padx 5 -command { grid remove .nedit.g.toE grid remove .nedit.g.toL grid remove .nedit.g.fromD grid remove .nedit.g.toD grid .nedit.g.fromE -row 0 -column 2 -sticky w grid .nedit.g.rtype -row 1 -column 0 -columnspan 2 -sticky e grid .nedit.g.ratingE -row 1 -column 2 -sticky w } radiobutton $w.typeButtons.date -textvar ::tr(Date) -variable editNameType \ -value date -indicatoron false -pady 5 -padx 5 -command { grid remove .nedit.g.toE grid remove .nedit.g.fromE grid remove .nedit.g.ratingE grid remove .nedit.g.rtype grid .nedit.g.fromD -row 0 -column 2 -sticky w grid .nedit.g.toL -row 1 -column 1 -sticky e grid .nedit.g.toD -row 1 -column 2 -sticky w } radiobutton $w.typeButtons.edate -textvar ::tr(EventDate) \ -variable editNameType -value edate -indicatoron false -pady 5 -padx 5 \ -command { grid remove .nedit.g.toE grid remove .nedit.g.fromE grid remove .nedit.g.ratingE grid remove .nedit.g.rtype grid .nedit.g.fromD -row 0 -column 2 -sticky w grid .nedit.g.toL -row 1 -column 1 -sticky e grid .nedit.g.toD -row 1 -column 2 -sticky w } pack $w.typeButtons.rating $w.typeButtons.date $w.typeButtons.edate \ -side left -padx 5 addHorizontalRule .nedit label $w.selectLabel -textvar ::tr(NameEditSelect) -font font_Bold frame $w.selectButtons pack $w.selectLabel $w.selectButtons -side top -pady 5 foreach i {all filter crosstable} row {0 1 2} text { SelectAllGames SelectFilterGames SelectTournamentGames } { radiobutton $w.selectButtons.$i -textvar ::tr($text) \ -variable editNameSelect -value $i grid $w.selectButtons.$i -row $row -column 0 -sticky w } addHorizontalRule $w pack [frame $w.g] -side top label $w.g.space -text " " grid $w.g.space $w.g.space -row 0 -column 0 label $w.g.fromL -textvar ::tr(NameEditReplace:) -font font_Bold -anchor e entry $w.g.fromE -width 40 -background white -relief sunken \ -textvariable editName entry $w.g.fromD -width 15 -background white -relief sunken \ -textvariable editDate grid $w.g.fromL -row 0 -column 1 -sticky e grid $w.g.fromE -row 0 -column 2 -sticky we label $w.g.toL -textvar ::tr(NameEditWith:) -font font_Bold -anchor e entry $w.g.toE -width 40 -background white -relief sunken \ -textvariable editNameNew entry $w.g.toD -width 15 -background white -relief sunken \ -textvariable editDateNew grid $w.g.toL -row 1 -column 1 -sticky e grid $w.g.toE -row 1 -column 2 -sticky we entry $w.g.ratingE -width 5 -background white -relief sunken \ -textvariable editNameRating -justify right eval tk_optionMenu $w.g.rtype editNameRType [sc_info ratings] $w.g.rtype configure -pady 2 label $w.g.title -textvar ::tr(NameEditMatches) \ -font font_Bold text $w.g.list -height 9 -width 40 -relief sunken \ -background grey90 -tabs {2c right 2.5c left} -wrap none label $w.g.padding -text "" grid $w.g.padding -row 2 -column 0 grid $w.g.title -row 3 -column 1 -columnspan 2 -sticky n grid $w.g.list -row 4 -column 1 -rowspan 9 -columnspan 2 -sticky n updateMatchList $w.g.list "" 9 editName "" w foreach i {fromE toE ratingE fromD toD} { bind $w.g.$i { %W configure -background lightYellow } bind $w.g.$i { %W configure -background white } } foreach {i j} {.nedit.g.fromE "editName" .nedit.g.toE "editNameNew" } { for {set z 1} {$z <= 9} {incr z} { bind $i [format "" $z] \ [format "eval {if {\$nameMatchCount >= %d} { \ set %s \$nameMatches(%d)}}; break" $z $j $z ] } } addHorizontalRule $w frame $w.buttons button $w.buttons.replace -textvar ::tr(NameEditReplace) -command { if {$editNameType == "rating"} { set err [catch {sc_name edit $editNameType $editNameSelect $editName $editNameRating $editNameRType} result] } elseif {$editNameType == "date" || $editNameType == "edate"} { set err [catch {sc_name edit $editNameType $editNameSelect $editDate $editDateNew} result] } else { set err [catch {sc_name edit $editNameType $editNameSelect $editName $editNameNew} result] } if {$err} { tk_messageBox -type ok -icon info -parent .nedit -title "Scid" \ -message $result } else { .nedit.status configure -text $result } sc_game tags reload updateBoard -pgn ::windows::gamelist::Refresh } dialogbutton $w.buttons.cancel -textvar ::tr(Close) -command {focus .; destroy .nedit} pack $w.buttons -side top -pady 5 pack $w.buttons.replace $w.buttons.cancel -side left -padx 10 label $w.status -text "" -width 1 -font font_Small -relief sunken -anchor w pack $w.status -side bottom -fill x wm resizable $w 0 0 bind $w { focus .; destroy .nedit } bind $w {.nedit.buttons.replace invoke} bind $w {set nameEditorWin 0} bind $w {helpWindow Maintenance Editing} focus $w $w.typeButtons.$editNameType invoke } # addGameSaveEntry: # used in gameSave for setting up the simpler labels and entry boxes. # proc addGameSaveEntry { name row textname } { ttk::label .save.g.label$name -textvar $textname ttk::entry .save.g.entry$name -width 30 -textvariable $name grid .save.g.label$name -row $row -column 0 -sticky w grid .save.g.entry$name -row $row -column 1 -columnspan 7 -sticky w } # gameSave: # The game save dialog. Used for adding and replacing games. If the # value gnum is zero, it is to add a new game; otherwise it is to # replace game number gnum. # proc gameSave { gnum } { global date year month day white black resultVal event site round global whiteElo blackElo whiteRType blackRType eco extraTags gsaveNum global edate eyear emonth eday if {![sc_base inUse]} { # We can't load a game, no database is open tk_messageBox -title "Scid: No database open" -type ok -icon info -message "No database is open; open or create one first." return } # Make a new toplevel that contains the game save dialog: set w .save toplevel $w if {$gnum == 0} { wm title $w "Scid: [tr GameAdd]" } else { wm title $w "Scid: [tr GameReplace]" } set gsaveNum $gnum catch {grab $w} set f [ttk::frame $w.g] pack $f -side top ttk::label $f.title -textvar ::tr(NameEditMatches) text $f.list -height 9 -width 40 -relief sunken -background grey90 \ -tabs {2c right 2.5c left} -wrap none # Get current values of tags: set year [sc_game tag get Year]; set eyear [sc_game tag get EYear] set month [sc_game tag get Month]; set emonth [sc_game tag get EMonth] set day [sc_game tag get Day]; set eday [sc_game tag get EDay] set white [sc_game tag get White]; set black [sc_game tag get Black] set event [sc_game tag get Event]; set site [sc_game tag get Site] set resultVal [sc_game tag get Result]; set round [sc_game tag get Round] set whiteElo [sc_game tag get WhiteElo] set blackElo [sc_game tag get BlackElo] set whiteRType [sc_game tag get WhiteRType] set blackRType [sc_game tag get BlackRType] set eco [sc_game tag get ECO]; set extraTags [sc_game tag get Extra] clearMatchList $f.list # Use question marks instead of zero values in date: if {$year == 0} { set year "????" } if {$month == 0} { set month "??" } if {$day == 0} { set day "??" } if {$eyear == 0} { set eyear "????" } if {$emonth == 0} { set emonth "??" } if {$eday == 0} { set eday "??" } addGameSaveEntry event 0 ::tr(Event:) addGameSaveEntry site 1 ::tr(Site:) ttk::frame $f.dateframe ttk::label $f.datelabel -textvar ::tr(Date:) ttk::entry $f.dateyear -width 6 -textvariable year -justify right ;# -background white -relief sunken ttk::label $f.datedot1 -text "." ttk::entry $f.datemonth -width 3 -textvariable month -justify right ttk::label $f.datedot2 -text "." ttk::entry $f.dateday -width 3 -textvariable day -justify right grid $f.datelabel -row 2 -column 0 -sticky w grid $f.dateframe -row 2 -column 1 -columnspan 5 -sticky w ttk::button $f.datechoose -image ::utils::date::calendar -style Pad0.Small.TButton -command { set newdate [::utils::date::chooser "$year-$month-$day"] if {[llength $newdate] == 3} { set year [lindex $newdate 0] set month [lindex $newdate 1] set day [lindex $newdate 2] } } ttk::button $f.today -textvar ::tr(Today) -command { set year [::utils::date::today year] set month [::utils::date::today month] set day [::utils::date::today day] } pack $f.dateyear $f.datedot1 $f.datemonth $f.datedot2 $f.dateday \ -in $f.dateframe -side left if {$::tcl_version >= 8.3} { pack $f.datechoose -in $f.dateframe -side left } pack $f.today -in $f.dateframe -side left ttk::frame $f.edateframe ttk::label $f.edatelabel -textvar ::tr(EventDate:) ttk::entry $f.edateyear -width 6 -textvariable eyear -justify right ttk::label $f.edatedot1 -text "." ttk::entry $f.edatemonth -width 3 -textvariable emonth -justify right ttk::label $f.edatedot2 -text "." ttk::entry $f.edateday -width 3 -textvariable eday -justify right grid $f.edatelabel -row 3 -column 0 -sticky w grid $f.edateframe -row 3 -column 1 -columnspan 5 -sticky w ttk::button $f.edatechoose -image ::utils::date::calendar -style Pad0.Small.TButton -command { set newdate [::utils::date::chooser "$eyear-$emonth-$eday"] if {[llength $newdate] == 3} { set eyear [lindex $newdate 0] set emonth [lindex $newdate 1] set eday [lindex $newdate 2] } } ttk::button $f.esame -text "=$::tr(Date)" -command { set eyear $year set emonth $month set eday $day } pack $f.edateyear $f.edatedot1 $f.edatemonth $f.edatedot2 $f.edateday \ -in $f.edateframe -side left if {$::tcl_version >= 8.3} { pack $f.edatechoose -in $f.edateframe -side left } pack $f.esame -in $f.edateframe -side left addGameSaveEntry round 4 ::tr(Round:) addGameSaveEntry white 5 ::tr(White:) addGameSaveEntry black 6 ::tr(Black:) ttk::label $f.reslabel -textvar ::tr(Result:) ttk::entry $f.resentry -width 2 -textvariable resultVal ttk::label $f.rescomment -text "(1, =, 0, *)" grid $f.reslabel -row 7 -column 0 -sticky w grid $f.resentry -row 7 -column 1 -sticky w grid $f.rescomment -row 7 -column 2 -columnspan 4 -sticky w ttk::label $f.welolabel -text "$::tr(White) " ttk::combobox $f.wrtype -values [sc_info ratings] -width 7 -textvariable whiteRType ttk::entry $f.weloentry -width 5 -textvariable whiteElo -justify right ttk::label $f.belolabel -text "$::tr(Black) " ttk::combobox $f.brtype -values [sc_info ratings] -width 7 -textvariable blackRType ttk::entry $f.beloentry -width 5 -textvariable blackElo -justify right grid $f.welolabel -row 8 -column 0 -sticky w grid $f.wrtype -row 8 -column 1 -sticky w grid $f.weloentry -row 8 -column 2 -sticky w grid $f.belolabel -row 9 -column 0 -sticky w grid $f.brtype -row 9 -column 1 -sticky w grid $f.beloentry -row 9 -column 2 -sticky w ttk::label $f.ecolabel -text "ECO Code:" ttk::entry $f.ecoentry -width 6 -textvariable eco grid $f.ecolabel -row 10 -column 0 -sticky w grid $f.ecoentry -row 10 -column 1 -sticky w ttk::button $f.ecob -textvar ::tr(ClassifyGame) -command {set eco [sc_eco game]} grid $f.ecob -row 10 -column 2 -sticky w grid $f.title -row 0 -column 8 -sticky n -padx 10 grid $f.list -row 1 -column 8 -rowspan 9 -sticky nw -padx 10 addHorizontalRule .save ttk::label .save.extralabel -text "Extra Tags: (example format: Annotator \"Anand, V\") " pack .save.extralabel -side top -fill x ttk::frame .save.extra text .save.extra.text -height 4 -width 40 -bg white -wrap none \ -yscrollcommand ".save.extra.scroll set" # Override tab-binding for this text widget: bind .save.extra.text "[bind all ]; break" ttk::scrollbar .save.extra.scroll -command ".save.extra.text yview" -takefocus 0 ttk::button .save.extra.last -text "Use\nlast\ngame's\ntags" -command { set extraTags [sc_game tag get -last Extra] .save.extra.text delete 1.0 end .save.extra.text insert 1.0 $extraTags } pack .save.extra -side top -fill both -expand 1 -ipady 10 pack .save.extra.text -side left -fill both -expand 1 if {$gnum == 0} { pack .save.extra.last -side right -padx 10 } pack .save.extra.scroll -side right -fill y .save.extra.text insert 1.0 $extraTags foreach i {entryevent entrysite dateyear datemonth dateday \ entryround entrywhite entryblack resentry \ weloentry beloentry ecoentry edateyear edatemonth edateday} { bind $f.$i {.save.buttons.save invoke} # bind $f.$i {%W configure -background lightYellow } # bind $f.$i {%W configure -background white } } bind .save.extra.text {%W configure -background lightYellow } bind .save.extra.text {%W configure -background white } # Bindings so Ctrl-1 to Ctrl-9 select a matching name in the player, # site, event and round entryboxes: set j 0 foreach {i j} {entryevent "event" entrysite "site" entrywhite "white" entryblack "black" entryround "round" } { for {set z 1} {$z <= 9} {incr z} { bind $f.$i [format "" $z] \ [format "eval {if {\$nameMatchCount >= %d} \ {set %s \$nameMatches(%d)}}" $z $j $z ] } } addHorizontalRule .save ttk::frame .save.buttons if {$gnum == 0} { ttk::button .save.buttons.prev -text "As last game" -command { } } dialogbutton .save.buttons.save -textvar ::tr(Save) -underline 0 -command { set extraTags [.save.extra.text get 1.0 end-1c] gsave $gsaveNum; destroy .save } dialogbutton .save.buttons.cancel -textvar ::tr(Cancel) -command {destroy .save} pack .save.buttons -side bottom -ipady 10 -fill both -expand 1 if {$gnum == 0} { #pack .save.buttons.prev -side left -padx 10 } packbuttons right .save.buttons.cancel .save.buttons.save bind .save { set extraTags [.save.extra.text get 1.0 end-1c] gsave $gsaveNum; focus . destroy .save break } bind .save { focus .; destroy .save; } ::utils::win::Centre .save focus .save.g.entryevent .save.g.entryevent selection range 0 end if {$gnum > 0} { focus .save.buttons.save } } # gsave: # Called by gameSave when the user presses the "Save" button # to save the game. Attempts to save and reports the result. # proc gsave { gnum } { global date year month day white black resultVal event site round global whiteElo blackElo whiteRType blackRType eco extraTags global edate eyear emonth eday set date [format "%s.%s.%s" $year $month $day] set edate [format "%s.%s.%s" $eyear $emonth $eday] set extraTagsList [split $extraTags "\n"] sc_game tags set -event $event -site $site -date $date -round $round \ -white $white -black $black -result $resultVal \ -whiteElo $whiteElo -whiteRatingType $whiteRType \ -blackElo $blackElo -blackRatingType $blackRType \ -eco $eco -eventdate $edate -extra $extraTagsList set res [sc_game save $gnum] if {$res != ""} { tk_messageBox -type ok -icon info -parent .save \ -title "Scid" -message $res } updateBoard -pgn ::windows::gamelist::Refresh updateTitle } # gameAdd: # Calls gameSave with a game number of zero. # proc gameAdd {} { gameSave 0 } # gameReplace: # Calls gameSave with the current game number, which should be nonzero. # proc gameReplace {} { gameSave [sc_game number] } # helpAbout: # Displays information about Scid. # proc helpAbout {} { # for {set g 1} { $g <= [sc_base numGames ] } {incr g} { # sc_game load $g # ::game::Strip comments # ::game::Strip variations # sc_game save $g # } # return ::utils::sound::PlaySound sound_move set str {} append str "Scid: Shane's chess information database\n\n" append str "Version $::scidVersion, $::scidVersionDate\n" append str "Using Tcl/Tk version: [info patchlevel]\n\n" append str "Author: Shane Hudson\n" append str "Author: Pascal Georges\n" append str "Copyright (C) 1999-2004 Shane Hudson\n" append str "Copyright (C) 2006-2009 Pascal Georges\n" append str "Scid is licenced under the\n" append str "GNU General Public License.\n" set asserts [sc_info asserts] if {$asserts > 0} { append str "\n\n[::utils::thousands $asserts] asserts tested." } tk_messageBox -title "About Scid" -message $str -type ok } ############################################################ #### Square Bindings: # Pascal Georges : allow the drawing of markers directly on the board (not through comment editor) set startArrowSquare "" proc addMarker {sq color} { set to [::board::san $sq] set oldComment [sc_pos getComment] # check if the square is already of the same color set erase [regexp "\[\x5B\]%draw full,$to,$color\[\x5D\]" $oldComment] regsub "\[\x5B\]%draw full,$to,(green|yellow|red)\[\x5D\]" $oldComment "" newComment set newComment [string trim $newComment] if {!$erase} { append newComment " \[%draw full,$to,$color\]" } sc_pos setComment $newComment ::pgn::Refresh 1 updateBoard } proc drawArrow {sq color} { global startArrowSquare if {$startArrowSquare == ""} { set startArrowSquare [::board::san $sq] } else { set oldComment [sc_pos getComment] set to [::board::san $sq] if {$startArrowSquare != $to } { set erase [regexp "\[\x5B\]%draw arrow,$startArrowSquare,$to,$color\[\x5D\]" $oldComment] regsub "\[\x5B\]%draw arrow,$startArrowSquare,$to,(green|yellow|red)\[\x5D\]" $oldComment "" newComment set newComment [string trim $newComment] if {!$erase} { append newComment " \[%draw arrow,$startArrowSquare,$to,$color\]" } sc_pos setComment $newComment ::pgn::Refresh 1 updateBoard } set startArrowSquare "" } } for {set i 0} { $i < 64 } { incr i } { ::board::bind .main.board $i "enterSquare $i" ::board::bind .main.board $i "leaveSquare $i" ::board::bind .main.board $i "set ::addVariationWithoutAsking 0 ; pressSquare $i" ::board::bind .main.board $i "set ::addVariationWithoutAsking 1 ; pressSquare $i" #::board::bind .main.board $i "set ::addVariationWithoutAsking 1 ; pressSquare $i" ::board::bind .main.board $i "drawArrow $i green" ::board::bind .main.board $i "drawArrow $i yellow" ::board::bind .main.board $i "drawArrow $i red" ::board::bind .main.board $i "addMarker $i green" ::board::bind .main.board $i "addMarker $i yellow" ::board::bind .main.board $i "addMarker $i red" ::board::bind .main.board $i "::board::dragPiece .main.board %X %Y" ::board::bind .main.board $i "releaseSquare .main.board %X %Y ; set ::addVariationWithoutAsking 0" ::board::bind .main.board $i "releaseSquare .main.board %X %Y ; set ::addVariationWithoutAsking 0" #::board::bind .main.board $i "releaseSquare .main.board %X %Y ; set ::addVariationWithoutAsking 0" #::board::bind .main.board $i "pressSquare $i" # Pascal Georges : this should be removed because I find it too dangerous for people with cats ?? # put it back with Scid 3.6.13, let's see if this leads to problems ::board::bind .main.board $i backSquare } foreach i {o q r n k O Q R B N K} { bind .main <$i> "moveEntry_Char [string toupper $i]" } foreach i {a b c d e f g h 1 2 3 4 5 6 7 8} { bind .main "moveEntry_Char $i" } bind .main backSquare bind .main backSquare bind .main moveEntry_Backspace bind .main moveEntry_Backspace bind .main moveEntry_Complete ### Other Key bindings: # Set via menus.tcl -> standardShortcuts # Arrow keys, Home and End: bind $dot_w ::move::Start bind $dot_w ::move::Back bind $dot_w { if {[sc_pos isAt vstart]} { .main.fbutton.button.exitVar invoke } else { ::move::Back 10 } } bind $dot_w {::move::Forward 10} bind $dot_w ::move::Forward bind $dot_w ::move::End bind $dot_w {if {!$tree(refresh)} {toggleRotateBoard}} # MouseWheel in main window: bind .main { if {[expr -%D] < 0} { ::move::Back } if {[expr -%D] > 0} { ::move::Forward } } bind .main { if {[expr -%D] < 0} { ::move::Back 10 } if {[expr -%D] > 0} { ::move::Forward 10} } if {! $windowsOS} { bind all {event generate [focus -displayof %W] -delta 120} bind all {event generate [focus -displayof %W] -delta -120} bind all {event generate [focus -displayof %W] -delta 120} bind all {event generate [focus -displayof %W] -delta -120} # bind $dot_w ::move::Back # bind $dot_w ::move::Forward # bind $dot_w {::move::Back 10} # bind $dot_w {::move::Forward 10} } # Apply standard shortcuts to main window # standardShortcuts $dot_w standardShortcuts .main ############################################################ ### Packing the main window: if { $::docking::USE_DOCKING} { ttk::frame .main.space grid .main.space -row 4 -column 0 -columnspan 3 -sticky nsew grid rowconfigure .main 4 -weight 1 } label .main.statusbar -textvariable statusBar -relief sunken -anchor w -width 1 -font font_Small grid .main.statusbar -row 5 -column 0 -columnspan 3 -sticky we bind .main.statusbar <1> gotoNextBase proc gotoNextBase {} { set n [sc_base current] set cb [sc_info clipbase] while {1} { incr n; if {$n > $cb} { set n 1 } sc_base switch $n if {[sc_base inUse]} { break } } updateBoard -pgn updateTitle updateMenuStates updateStatusBar ::windows::gamelist::Refresh } grid columnconfigure .main 0 -weight 1 # game info widget only gets its requested size if { $::docking::USE_DOCKING } { grid rowconfigure .main 3 -weight 0 } else { grid rowconfigure .main 3 -weight 1 } pack .main.fbutton.button -anchor center grid .main.fbutton -row 1 -column 0 -sticky we ;# -pady 2 -padx 2 grid .main.board -row 2 -column 0 -sticky we ;# -padx 5 -pady 5 # update Game Info panel visibility after loading options toggleGameInfo # grid .main.gameInfoFrame -row 3 -column 0 -sticky news -padx 2 redrawToolbar if { ! $::docking::USE_DOCKING } { wm resizable .main 0 1 } wm minsize . 0 0 wm iconname . "Scid" ################# # Open files and databases: # Check for arguments starting with "-" (or "/" on Windows): set loadAtStart(spell) 1 set loadAtStart(eco) 1 set loadAtStart(tb) 1 proc getCommandLineOptions {} { global argc argv windowsOS loadAtStart if { $::macOS && ([string first "-psn" [lindex $argv 0]] == 0)} { # Remove Process Serial Number from argument list: set argv [lrange $argv 1 end] incr argc -1 } while {$argc > 0} { set arg [lindex $argv 0] set firstChar [string index $arg 0] if {$firstChar == "-" || ($windowsOS && $firstChar == "/")} { # Seen option argument: incr argc -1 set argv [lrange $argv 1 end] # Special argument "--" means no more options: if {$arg == "--"} { return } # Check for known option names: # -f (/f), -fast (/fast): Fast start with no tablebases, etc. # -xeco, -xe: Do not load ECO file. # -xspell, -xs: Do not load spellcheck file. # -xtb, -xt: Do not check tablebase directory. set argName [string range $arg 1 end] switch $argName { "f" - "fast" { ::splash::add "Fast start: no tablebases, ECO or spelling file loaded." set loadAtStart(spell) 0 set loadAtStart(eco) 0 set loadAtStart(tb) 0 } "xt" - "xtb" { set loadAtStart(tb) 0 } "xe" - "xeco" { set loadAtStart(eco) 0 } "xs" - "xspell" { set loadAtStart(spell) 0 } "s1" { set ::boardSize 21 } "s2" { set ::boardSize 25 } "s3" { set ::boardSize 29 } "s4" { set ::boardSize 33 } "s5" { set ::boardSize 37 } "s6" { set ::boardSize 40 } "s7" { set ::boardSize 45 } "s8" { set ::boardSize 49 } "s9" { set ::boardSize 54 } "s10" { set ::boardSize 58 } "s11" { set ::boardSize 64 } "s12" { set ::boardSize 72 } default { ::splash::add "Warning: unknown option: \"$arg\"" } } } else { # Seen first non-option argument: return } } } getCommandLineOptions setLanguage $language updateTitle updateBoard updateStatusBar update idle # Try to find tablebases: if {$loadAtStart(tb)} { if {[sc_info tb]} { ::splash::add "Checking for endgame tablebase files..." set tbDirs {} foreach i {1 2 3 4} { if {$initialDir(tablebase$i) != ""} { if {$tbDirs != ""} { append tbDirs ";" } append tbDirs [file nativename $initialDir(tablebase$i)] } } set result 0 if {$tbDirs != ""} { set result [sc_info tb $tbDirs] } if {$result == 0} { ::splash::add " No tablebases were found." } else { ::splash::add " Tablebases with up to $result pieces were found." } } } # Try to open the ECO classification file: set result 0 set ecoFile_fullname [file nativename $ecoFile] if {$loadAtStart(eco)} { ::splash::add "Trying to load the ECO openings file..." if {[catch { sc_eco read $ecoFile_fullname } result]} { # Could not load, so try "scid.eco" in the current directory: if {[catch {sc_eco read "scid.eco"} result]} { # Neither attempt worked, so do not use ECO classification ::splash::add " Unable to open the ECO file: $ecoFile" } else { ::splash::add " ECO file \"./scid.eco\" loaded: $result positions." } } else { ::splash::add " ECO file \"[file tail $ecoFile_fullname]\" loaded: $result positions." } } ### # Try to load the spellcheck file: if {$loadAtStart(spell)} { if {[catch {sc_name read $spellCheckFile} result]} { #::splash::add "Unable to load the default spellcheck file: $spellCheckFile" } else { ::splash::add "Spellcheck file \"[file tail $spellCheckFile]\" loaded:" ::splash::add " [lindex $result 0] players, [lindex $result 1] events, [lindex $result 2] sites, [lindex $result 3] rounds." } } # fullname: # Given a file name, returns its absolute name. # proc fullname {fname} { if {[file pathtype $fname] == "absolute"} { return $fname } set old [pwd] if {[catch {cd [file dirname $fname]}]} { return $fname } set fname [file join [pwd] [file tail $fname]] catch {cd $old} return $fname } # Loading a database if specified on the command line: # Need to check file type: .epd, .pgn, .pgn.gz, etc while {$argc > 0} { set startbase [fullname [lindex $argv 0]] if {! [catch {sc_game startBoard $startbase}]} { set argc 0 break } if {! [catch {sc_game startBoard [join $argv " "]}]} { set argc 0 break } if {[string match "*.epd*" $startbase]} { ::splash::add "Opening EPD file: $startbase..." if {![newEpdWin openSilent $startbase]} { ::splash::add " Error opening EPD file: $startbase" } set initialDir(epd) [file dirname $startbase] } elseif {[string match "*.sso" $startbase]} { ::splash::add "Opening filter file: $startbase..." if {[catch {uplevel "#0" source $startbase} err]} { ::splash::add " Error opening $startbase: $err" } else { switch -- $::searchType { "Material" { sc_search material \ -wq [list $pMin(wq) $pMax(wq)] -bq [list $pMin(bq) $pMax(bq)] \ -wr [list $pMin(wr) $pMax(wr)] -br [list $pMin(br) $pMax(br)] \ -wb [list $pMin(wb) $pMax(wb)] -bb [list $pMin(bb) $pMax(bb)] \ -wn [list $pMin(wn) $pMax(wn)] -bn [list $pMin(bn) $pMax(bn)] \ -wm [list $pMin(wm) $pMax(wm)] -bm [list $pMin(bm) $pMax(bm)] \ -wp [list $pMin(wp) $pMax(wp)] -bp [list $pMin(bp) $pMax(bp)] \ -flip $ignoreColors -filter $::search::filter::operation \ -range [list $minMoveNum $maxMoveNum] \ -length $minHalfMoves -bishops $oppBishops \ -diff [list $minMatDiff $maxMatDiff] \ -patt "$pattBool(1) $pattPiece(1) $pattFyle(1) $pattRank(1)" \ -patt "$pattBool(2) $pattPiece(2) $pattFyle(2) $pattRank(2)" \ -patt "$pattBool(3) $pattPiece(3) $pattFyle(3) $pattRank(3)" \ -patt "$pattBool(4) $pattPiece(4) $pattFyle(4) $pattRank(4)" \ -patt "$pattBool(5) $pattPiece(5) $pattFyle(5) $pattRank(5)" \ -patt "$pattBool(6) $pattPiece(6) $pattFyle(6) $pattRank(6)" \ -patt "$pattBool(7) $pattPiece(7) $pattFyle(7) $pattRank(7)" \ -patt "$pattBool(8) $pattPiece(8) $pattFyle(8) $pattRank(8)" \ -patt "$pattBool(9) $pattPiece(9) $pattFyle(9) $pattRank(9)" \ -patt "$pattBool(10) $pattPiece(10) $pattFyle(10) $pattRank(10)" ::splash::add " Material/Pattern filter file $startbase correctly applied" } "Header" { set sPgnlist {} foreach i {1 2 3} { set temp [string trim $sPgntext($i)] if {$temp != ""} { lappend sPgnlist $temp } } set wtitles {} set btitles {} foreach i $sTitleList { if $sTitles(w:$i) { lappend wtitles $i } if $sTitles(b:$i) { lappend btitles $i } } sc_search header -white $sWhite -black $sBlack \ -event $sEvent -site $sSite -round $sRound \ -date [list $sDateMin $sDateMax] \ -results [list $sResWin $sResDraw $sResLoss $sResOther] \ -welo [list $sWhiteEloMin $sWhiteEloMax] \ -belo [list $sBlackEloMin $sBlackEloMax] \ -delo [list $sEloDiffMin $sEloDiffMax] \ -eco [list $sEcoMin $sEcoMax $sEco] \ -length [list $sGlMin $sGlMax] \ -toMove $sSideToMove \ -gameNumber [list $sGnumMin $sGnumMax] \ -flip $sIgnoreCol -filter $::search::filter::operation \ -fStdStart $sHeaderFlags(StdStart) \ -fPromotions $sHeaderFlags(Promotions) \ -fComments $sHeaderFlags(Comments) \ -fVariations $sHeaderFlags(Variations) \ -fAnnotations $sHeaderFlags(Annotations) \ -fDelete $sHeaderFlags(DeleteFlag) \ -fWhiteOp $sHeaderFlags(WhiteOpFlag) \ -fBlackOp $sHeaderFlags(BlackOpFlag) \ -fMiddlegame $sHeaderFlags(MiddlegameFlag) \ -fEndgame $sHeaderFlags(EndgameFlag) \ -fNovelty $sHeaderFlags(NoveltyFlag) \ -fPawnStruct $sHeaderFlags(PawnFlag) \ -fTactics $sHeaderFlags(TacticsFlag) \ -fKingside $sHeaderFlags(KsideFlag) \ -fQueenside $sHeaderFlags(QsideFlag) \ -fBrilliancy $sHeaderFlags(BrilliancyFlag) \ -fBlunder $sHeaderFlags(BlunderFlag) \ -fUser $sHeaderFlags(UserFlag) \ -pgn $sPgnlist -wtitles $wtitles -btitles $btitles ::splash::add " Header filter file $startbase correctly applied" } } set glstart 1 ::windows::gamelist::Refresh ::windows::stats::Refresh } } elseif {[string match "*.sor" $startbase]} { ::splash::add "Opening repertoire file: $startbase..." if {[catch {::rep::OpenWithFile $startbase} err]} { ::splash::add "Error opening $startbase: $err" } } else { busyCursor . ::splash::add "Opening database: $startbase ..." set err 0 set errMessage "" if {[string match "*.pgn" $startbase] || \ [string match "*.PGN" $startbase] || \ [string match "*.pgn.gz" $startbase]} { set err [catch {sc_base create $startbase true} errMessage] if {$err == 0} { doPgnFileImport $startbase "\nOpening [file tail $startbase] read-only...\n" sc_base type [sc_base current] 3 ::recentFiles::add $startbase } } else { set err [catch { ::file::Open $startbase} errMessage] if {! $err} { ::recentFiles::add "[file rootname $startbase].si4" } } if {$err} { ::splash::add " Error: could not open database \"$startbase\":\n $errMessage" } else { ::splash::add " Database \"$startbase\" opened: [sc_base numGames] games." set initialDir(base) [file dirname $startbase] catch {sc_game load auto} flipBoardForPlayerNames $::myPlayerNames } } unbusyCursor . incr argc -1 set argv [lrange $argv 1 end] } ::splash::add "\nStartup completed." ::splash::add "Scid has 44 online help pages; just press F1 for help!\n" ::splash::add "Also look at the online tutorial\nhttp://scid.sourceforge.net/tutorial/\n" setWinLocation $dot_w wm deiconify $dot_w wm protocol $dot_w WM_DELETE_WINDOW { ::file::Exit } # In docked mode, reopen only the windows that are not dockable if { !$::docking::USE_DOCKING } { if {$startup(switcher)} { ::windows::switcher::Open } if {$startup(pgn)} { ::pgn::OpenClose } if {$startup(gamelist)} { ::windows::gamelist::Open } if {$startup(tree)} { ::tree::make } if {$startup(stats)} { ::windows::stats::Open } if {$startup(crosstable)} { crosstabWin } if {$startup(finder)} { ::file::finder::Open } if {$startup(book)} { ::book::open } } else { if {$startup(stats)} { ::windows::stats::Open } if {$startup(crosstable)} { crosstabWin } if {$startup(finder)} { ::file::finder::Open } } updateBoard updateStatusBar updateTitle updateLocale update bind $dot_w "recordWinSize $dot_w" # Bindings to map/unmap all windows when main window is mapped: bind .main.statusbar { showHideAllWindows deiconify} bind .main.statusbar { showHideAllWindows iconify} ################################################################################ # returns a list of all toplevel windows, except some that are utilities ################################################################################ proc getTopLevel {} { set topl {} set exclude { ".splash" ".tooltip" ".glistExtra" ".menu" "." ".pgnPopup" } foreach c [winfo children .] { if { $c != [winfo toplevel $c] } { continue } # Tk report .__tk_filedialog as toplevel window even if the window has been closed if { [ lsearch $topl $c ] == -1 && [ lsearch $exclude $c ] == -1 && ![string match "\.__tk*" $c] } { lappend topl $c } } return $topl } ################################################################################ # ################################################################################ # showHideAllWindows: # Arranges for all major Scid windows to be shown/hidden # Should be called type = "iconify" or "deiconify" # proc showHideAllWindows {type} { # Don't do this if user option is off: if {! $::autoIconify} { return } # Some window managers like KDE generate Unmap events for other # situations like switching to another desktop, etc. # So if the main window is still mapped, do not iconify others: if {($type == "iconify") && ([winfo ismapped .main] == 1)} { return } # Now iconify/deiconify all the major Scid windows that exist: foreach w [getTopLevel] { # .baseWin .glistWin .pgnWin .tourney .maintWin \ # .ecograph .crosstabWin .treeWin .analysisWin1 .anslysisWin2 \ # .playerInfoWin .commentWin .repWin .statsWin .tbWin \ # .sb .sh .sm .noveltyWin .emailWin .oprepWin .plist \ # .rgraph .sgraph .importWin .helpWin .tipsWin if {[winfo exists $w]} { catch {wm $type $w} } } } proc raiseAllWindows {} { # Don't do this if auto-raise option is turned off: if {! $::autoRaise} { return } showHideAllWindows deiconify foreach w [getTopLevel] { # .baseWin .glistWin .pgnWin .tourney .maintWin \ # .ecograph .crosstabWin .treeWin .analysisWin1 .anslysisWin2 \ # .playerInfoWin .commentWin .repWin .statsWin .tbWin \ # .sb .sh .sm .noveltyWin .emailWin .oprepWin .plist \ # .rgraph .sgraph .importWin .helpWin .tipsWin if {[winfo exists $w]} { catch { raise $w } } } } # Bind double-click in main Scid window to raise all Scid windows: bind $dot_w raiseAllWindows # Hack to extract gif images out of Scid: # if {0} { proc dumpImages {dir} { package require base64 file mkdir $dir set images [image names] foreach i $images { if {[image type $i] == "photo" } { set ext [$i cget -format] if {$ext == ""} { set ext "gif" } } else { set ext "gif" } set data [string trim [$i cget -data]] if {$data == ""} { continue } if {[catch {set d [::base64::decode $data]}]} { continue } regsub -all {:} $i {_} i set fname [file join $dir $i.$ext] set f [open $fname w] fconfigure $f -translation binary -encoding binary puts -nonewline $f $d close $f } } bind $dot_w {puts "dumpImages" ; dumpImages "/tmp/images"} } if {$startup(tip)} { ::tip::show } after 500 { if {$::splash::autoclose} {wm withdraw .splash} } # Opening files by drag & drop on Scid icon on Mac if { $macOS } { # We opened for a drag & drop request, process it now: set isopenBaseready 1 if {$dndargs != 0} { set isopenBaseready 2 catch {::tk::mac::OpenDocument $dndargs} errmsg #::splash::add "Opening file(s)...\$dndargs" } } if { !$::docking::USE_DOCKING } { wm withdraw . bind .main { destroy . } } if { $::docking::USE_DOCKING } { setTitle .main [ ::tr "Board" ] # restore geometry wm minsize $dot_w 360 320 setWinLocation $dot_w setWinSize $dot_w # when main board pane is resized, auto-size it bind .main { ::docking::handleConfigureEvent ::resizeMainBoard } # restore default layout (number 1) if { $::autoLoadLayout } { set ::docking::restore_running 1 ::docking::layout_restore 1 # engines may take time to start. Wait a few seconds before allowing an engine to automatically start analyzing after 2000 { set ::docking::restore_running 0 } } standardShortcuts TNotebook ::docking::toggleAutoResizeBoard } # updateMenuStates ### End of file: end.tcl scid-4.3.0.cvs20120311/tcl/main.tcl0000644000175000017500000020737411727223077015665 0ustar oliveroliver### ### ### main.tcl: Routines for creating and updating the main window. ### ############################################################ # Keyboard move entry: # Handles letters, digits and BackSpace/Delete keys. # Note that king- and queen-side castling moves are denoted # "OK" and "OQ" respectively. # The letters n, r, q, k, o and l are promoted to uppercase # automatically. A "b" can match to a b-pawn or Bishop move, # so in some rare cases, a capital B may be needed for the # Bishop move to distinguish it from the pawn move. set moveEntry(Text) "" set moveEntry(List) {} # Bind Alt+letter key to nothing, to stop Alt+letter from # matching the move entry bindings, so Alt+letter ONLY invokes # the menus: foreach key {a b c d e f g h i j k l m n o p q r s t u v w x y z} { bind $dot_w { # nothing } } proc moveEntry_Clear {} { global moveEntry set moveEntry(Text) "" set moveEntry(List) {} } proc moveEntry_Complete {} { global moveEntry if { ! [::fics::playerCanMove] || ! [::reviewgame::playerCanMove] } { ;# not player's turn moveEntry_Clear return } set len [llength $moveEntry(List)] if {$len > 0} { if {$moveEntry(AutoExpand)} { # Play a bell sound to let the user know the move was accepted already, # but only if move announcement is off? # bell } set move [lindex $moveEntry(List) 0] if {$move == "OK"} { set move "O-O" } if {$move == "OQ"} { set move "O-O-O" } set action "replace" if {![sc_pos isAt vend]} { set action [confirmReplaceMove] } if {$action == "replace"} { sc_game undoPoint sc_move addSan $move } elseif {$action == "var"} { sc_game undoPoint sc_var create sc_move addSan $move } elseif {$action == "mainline"} { sc_game undoPoint sc_var create sc_move addSan $move sc_var exit sc_var promote [expr {[sc_var count] - 1}] sc_move forward 1 } # Now send the move done to FICS and NOVAG Citrine set promoletter "" set moveuci [sc_game info previousMoveUCI] if { [ string length $moveuci ] == 5 } { set promoletter [ string tolower [ string index $moveuci end ] ] } if { [winfo exists .fics] } { if { [::fics::playerCanMove] } { if { $promoletter != "" } { ::fics::writechan "promote $promoLetter" } ::fics::writechan [ string range $moveuci 0 3 ] } } if {$::novag::connected} { ::novag::addMove "[ string range $moveuci 0 3 ]$promoLetter" } moveEntry_Clear updateBoard -pgn -animate ::utils::sound::AnnounceNewMove $move if {$action == "replace"} { ::tree::doTraining } } } proc moveEntry_Backspace {} { global moveEntry set moveEntry(Text) [string range $moveEntry(Text) 0 \ [expr {[string length $moveEntry(Text)] - 2}]] set moveEntry(List) [sc_pos matchMoves $moveEntry(Text) $moveEntry(Coord)] updateStatusBar } proc moveEntry_Char {ch} { global moveEntry set oldMoveText $moveEntry(Text) set oldMoveList $moveEntry(List) append moveEntry(Text) $ch set moveEntry(List) [sc_pos matchMoves $moveEntry(Text) $moveEntry(Coord)] set len [llength $moveEntry(List)] if {$len == 0} { # No matching moves, so do not accept this character as input: set moveEntry(Text) $oldMoveText set moveEntry(List) $oldMoveList } elseif {$len == 1} { # Exactly one matching move, so make it if AutoExpand is on, # or if it equals the move entered. Note the comparison is # case insensitive to allow for 'b' to match both pawn and # Bishop moves. set move [string tolower [lindex $moveEntry(List) 0]] if {$moveEntry(AutoExpand) > 0 || ![string compare [string tolower $moveEntry(Text)] $move]} { moveEntry_Complete } } elseif {$len == 2} { # Check for the special case where the user has entered a b-pawn # capture that clashes with a Bishop move (e.g. bxc4 and Bxc4): set first [string tolower [lindex $moveEntry(List) 0]] set second [string tolower [lindex $moveEntry(List) 1]] if {[string equal $first $second]} { set moveEntry(List) [list $moveEntry(Text)] moveEntry_Complete } } updateStatusBar } # preMoveCommand: called before making a move to store text in the comment # editor window and EPD windows. proc preMoveCommand {} { # ::commenteditor::storeComment storeEpdTexts } sc_info preMoveCmd preMoveCommand # updateTitle: # Updates the main Scid window title. # proc updateTitle {} { set title "Scid - " set fname [sc_base filename] set fname [file tail $fname] append title "$fname ($::tr(game) " append title "[::utils::thousands [sc_game number]] / " append title "[::utils::thousands [sc_base numGames]])" ::setTitle .main $title } # updateStatusBar: # Updates the main Scid window status bar. # proc updateStatusBar {} { global statusBar moveEntry ::windows::switcher::Refresh ::maint::Refresh set statusBar " " if {$moveEntry(Text) != ""} { append statusBar "Enter move: \[" $moveEntry(Text) "\] " foreach thisMove $moveEntry(List) { append statusBar $thisMove " " } return } # Check if translations have not been set up yet: if {! [info exists ::tr(Database)]} { return } # Show "%%" if base is read-only, "XX" if game altered, "--" otherwise: if {[sc_base isReadOnly]} { append statusBar "%%" } elseif {[sc_game altered]} { append statusBar "XX" } else { append statusBar "--" } set current [sc_base current] append statusBar " $::tr(Database)" if {$current != [sc_info clipbase]} { append statusBar " $current" } append statusBar ": " set fname [sc_base filename] set fname [file tail $fname] if {$fname == ""} { set fname "" } append statusBar $fname # Show filter count: append statusBar " $::tr(Filter)" append statusBar ": [filterText]" } proc toggleRotateBoard {} { ::board::flip .main.board } proc toggleCoords {} { global boardCoords set coords [expr {1 + $boardCoords} ] if { $coords > 2 } { set coords 0 } set boardCoords $coords ::board::coords .main.board } ttk::frame .main.fbutton.button.space3 -width 15 button .main.fbutton.button.flip -image tb_flip -takefocus 0 \ -command "::board::flip .main.board" button .main.fbutton.button.coords -image tb_coords -takefocus 0 -command toggleCoords bind $dot_w toggleCoords button .main.fbutton.button.stm -image tb_stm -takefocus 0 -command toggleSTM proc toggleSTM {} { global boardSTM set boardSTM [expr {1 - $boardSTM} ] ::board::stm .main.board } image create photo autoplay_off -data { R0lGODdhFAAUAKEAANnZ2QAAAFFR+wAAACwAAAAAFAAUAAACMYSPqbvBb4JLsto7D94StowI IgOG4ugd55oC6+u98iPXSz0r+Enjcf7jtVyoofGoKAAAOw== } image create photo autoplay_on -data { R0lGODdhFAAUAKEAAP//4AAAAPoTQAAAACwAAAAAFAAUAAACMYSPqbvBb4JLsto7D94StowI IgOG4ugd55oC6+u98iPXSz0r+Enjcf7jtVyoofGoKAAAOw== } image create photo engine_on -data { R0lGODlhGAAYAOf4AFFOdGdOTQBk9AVi9ItNEVhVfAVt8FVafwRt91ZbgGhZYVdcgZNTEF1a gVtghV1ih15iiGNjg2ZmhlJrpDB01mdnhxV8+J9iFV1rm2lpimZqkGpqi2trjG1tjm5uj7Fl CnBwkXFxkrZpAXJyk2Z2oDeB6nNzlHR0lXV1lnZ2l3B4pDKI+LBwJTSJ+Xx4lHl5mjaK+nN7 p356l397mIB8mYF9mpF8ebx6KECS+4KGoYOHooaKpUmZ/IeLplSW+2KU5omMp8qFK4uOqZmN jXSUz4yPqo2Qq1Ki/tCKKJKSqFOj/9mLGFSk/5+Tk5WVq1+j+5SXs2Ck/JeXrZWYtGGl/ZiY ruGRFFqq/3Sj5JqasGSn/+WUBpycspSfuWet/o2i05+ftqCgt42l0Gqv/2uw/6OiuYyp2aSj up+mu3Sx/YGv8KamvPSgDaqmt+iiJZ6qxG+3/3ez/6unuHC4/3i0/6mpv4mx7JOw4e6mH8Op iKurwXq6/5ez13u7/328/7Guv7KvwKizzrOwwYa9/YDC/6W40Za76+6uQYe//4HD/7ezxIjA /8Kzrpi+7bm1xrq2yIrF/ru3ybO60IvG/7y4yrS70ajA37i8zI7I/7K92LO+2Y/K/7q+zr+8 zZbK/rvAz5DO/5HP/6XJ7L/D0pnO//zASZnR/sHF1aTO95rS/8LG1pvT/77K2MfI0p3V/8XJ 2cLK36LV/L7N4aPW/crL1aXX/7zQ6cjN3KbY/83N1/TLeKfa/87O2c/Q2qfe/q7b/dDR26jf /9HS3Kng/9LT3avi/8vX5f/Yb7Pl/7Tm/7Xn/7ro/Lvp/b3q/vzhkL/s/8Tt/PnjpMXu/cbv /sfw/8jx//7ti8nz/8n2/cr3/9D1/tzw/dbz/sv5/9H2/9f0/9n1/9T5/9r2/9v3/9L8/efz /9/4/dr7/uH5/tz9/+j5/93//+n6/+L//er7/+j+/f/9xu/8/en//uv///H+//L///n///7/ /P///////////////////////////////yH5BAEKAP8ALAAAAAAYABgAAAj+AP8JFJgFzCdH fwYqXKgwh5M3sri5s1eOFa1ODBnWCJOkWjVw6tTF2wbrVsaFNYRg8ugNHbpx4LTJonRyIAlM ppA9q8at2rdnzZDlwnjSA5FFoHAla7YTaLJfgUyezFCCDqZauIYpe7bs165Vd4QpOpkCAQIL POjMGePlCp1FntS8EnQSggELMLSM6bNoUZ8xT5RgaaXnZAQKJXy89YQL16o+dJR84SSnJoQf XkgNexYuXLdfnvpIAlPznwYMaoZVI9cOXbpmsQy1Kf1vgQYVw7ylu2dv3jRRVeoAol17RIou tyqhqZJERy8gNqzQbmAix4wkRlz868BhSBA30mlDR8jgwcNABSx0WcMTnrhCAh/YOINnrb17 gfBLzQd//z0b/evZdx988tHX33si6BdNHgcORAAbh9yQRYMKBQAAhScFBAA7 } image create photo engine_off -data { R0lGODlhGAAYAOfyAOYFO+YGQOgINugJPOcKQVFOdOkOPeAUOWdOTeAUPgBk9AVi9LUpUuEX P+AXRItNEeIZQM8hTVhVfOIaRdgeTAVt8FVafwRt9+IdS+UeQuQeR2hZYVdcgZNTEN4nUFtg hdUrWM8vVuEqTV5iiOEqUmNjg+MtVGZmhlJrpNY2WjB01mdnhxV8+OYwVp9iFd81WV1rm2lp iqtNcd82X2pqi2trjMlCdG1tjm5uj7FlCuQ8Y+Y9X3BwkbZpAb5NhWZ2oDeB6nNzlNxGaHR0 ldNKdoZtj3Z2l6hdnHB4pDKI+LBwJTSJ+Xl5mjaK+nN7p356l+ROb4B8mdpWc4F9mpF8ebx6 KECS+61wjIKGoYOHoqt1oIaKpUmZ/K12roeLplSW+2KU5omMp8qFK4uOqZmNjXSUz7J+nY2Q q9CKKJKSqNmLGJ+Tk5WVq8eAmV+j+8p+n8SDmpSXs2Ck/GGl/ZiYruGRFNZ/mJqasGSn/+WU Bpycsq+UxJ+ftqCgt42l0L6Uqmqv/9OLpGuw/6OiuaSjuqamvPSgDaqmt+iiJW+3/3ez/72b wXC4/3i0/6mpv4mx7NGYspOw4e6mH8OpiJWv53q6/9absLGuv7KvwKizzrOwwcSnxYa9/YDC /5a76+6uQYHD/4jA/8Kzrpi+7bm1xrq2yIrF/ru3ybO60IvG/7y4yqjA37i8zLK92Nmuw7O+ 2Y/K/7q+zr+8zZbK/rvAz5DO/5HP/6XJ7MW91r/D0ueyxPzASZnR/sHF1aTO95rS/5vT/8bG 3bjM5cfI0p3V/8LK36LV/L7N4crL1aXX/6bY/83N1/TLeM7O2c/Q2qfe/q7b/dDR26jf/9HS 3NLT3avi/8vX5f/Yb7Pl/7Tm/7Xn/7vp/eLb5/zhkL/s//njpMXu/cbv/sfw/8jx//7ti8nz /9bz/tH2/9f0/9n1/9v3/+fz/9/4/eH5/un6/+r7///9xu/8/f////////////////////// /////////////////////////////////yH5BAEKAP8ALAAAAAAYABgAAAj+AP8JFHiHDy1S lwYqXKgQCxszL3TEi7cuFzJZDBlO6ZPGDoAD7ty9Q1esWcaFU8aMgiTgALd27dKNO6bq5EAn sHwV03DAgCtz3rxhW4bxJI4ynWxJe9PyRVBs0DKZFChAgMIVQBqlUiYthQADm6BJA+Zp2Z+W B6oONHKhAgs3eBq1zCAoFaWPX3suHOG2iZxGldIKOBJhQloDVa0qLKGiCZdEnWqJEJxXgAab I8AA8iVtnIaqaR2g4mPzXwkYjaQFa1FZyqhDpf9JuPFjMmUNt+IUwlR6QE+0gQLxDIHFWRgq dU4KPhBBBpYsXg/gqEFGDKLkDA+kFbiCRo0IajdFKGFGThL22FSrPshhqBs8cudjo/23fpf7 6+j/JRb4wJD98vGdBNpA67X3Xn7bEdiDfd9Mgh5iC/X3SRV35HcSAgVYiF5AADs= } image create photo finish_on -data { R0lGODlhGAAYAOfwAJbK/np6dkJCOh4qQo62+mZmXsrKyoaGgi5Cbtra2qKinhIWSmJiWkpq nlp+utri8p6amiI2UjI+rkJajmJiXiY6VqaiokJiyjpSfuru+iImbl6GxnKe8ra2shIeMiYq eprG/mqS5iYufmqG/j5OugoODioyhkpmzkJWsvL2/jpaxsLK6jpKtkpGRlJyrl6C3mJ6/mKG znqq/jo2Ni4yqhYSCrrC5jpGsgoOMk5qzl6G3vb6/lJSTlp6xjI6lm6a6sbGwjI6mmKK4mJy ylp+2lJuzhoeGjZKdnKC0kpexjY+uuLm9m5uapKOjgYOIk5i3lJm5kpa1tLS0sbS8jI2pnqm +jJCttba8m6G1prK/hISDhIaKr6+viYmHgYGBmaK7qLO/kZawurq9oKy/i42qlpyzmqO8lp2 0maO4kJSvnqi7vr6/jY+ss7O6lpWUlJy0lZ61jY6rjpCshYWDoKCfgoWJtLW8nKa8goKDnae 9l5+1h4aGm6W6maK4lp61lJiwu7y+io6skJWvm5qaoKq8jI6qoJ+fjo+rg4OFmaG3iIeHlZy 2rq6tkpiwv7+/j5Gvnai9gYKDt7e3n5+es7Oyubq9tbW1qLS/s7S7jZCslZyzmqK3i5GcmqK /jZOdhIWEl561nai/k5m0kZWxvb2+j5KtnKe+gYOFhYWFh4uRoq6/qamoj46NnJyapKSjmqO 7l5aVjY+qmJ+2mKC2mKG3mqO4nqi9jJCdjY6sgoKEm6W8k5iylZy1kJOuk5mylJqynKa6lZu zjo+vtbS0p7K/vLy+kZWvjY+tk5exsK+vg4KCi46rgoOFmKC3mqS6l5+2jY+rjpGtmaK5jZC tl6Gyurq+lp21nKa9jI6rnai+s7OzlZy0mqO5kJCPmZmYhIWTra2tkpa2jI2qnqm/hISEiYm Ilpy0jpCtrq6ugYKEvb2/j5KulJqznKa7kZWwgICCv////////////////////////////// /////////////////////////////////yH5BAEKAP8ALAAAAAAYABgAAAj+AP8JHEiwoMGD BbUdgNWthTcFkhAaTDbjFCcX1DY0iOBlUAKJAidFcgAADBhbHCDJqOIJFReJFDyoApMFBIgQ OPm0G0etBLqDTeqMuUSMGAEhOmj1QcPNGaQYWoYVTKDsxx1CamoR2ZRhExFaifqEyDbBTUEm nvL0efHsmZ8pjnbIgvOsGa0QMvBQIogKGLdZevxY4/UmhSNSoN74qXsNg6GBUt6FmmWtyIkL F1RocuQoRZkc5kBJi8FqILhU186wwwJoiesH6jgXC+Zr2zNTewauqvCqSBIknIMLtxOmtqka AxkN+ILM3ZArmKKvKMa5mqA0YX7pUjTQEjMzxta1RZtmxUqgP5zFkGBBoteuHgIIlpuVBpqc GyyilVrjqFK0TJlAE4soRxxA0CQIjFJIHNBAI4ENjoiRyTJxiBMFFIsgIkVBnzSCSxwgknFI G9DQEAcVT4wAwy0UGGTBFo+wAWIcZNQIYiGdjICCER8ZFIAT5xzz4YwgYhNOEOQAIZEruYgg jBLHsMHGMcIc800XBoD0jzY8pLPABz6YoAEOc9ChJUEJQNAKAwVM0sGZcMYpp0ABAQA7 } image create photo finish_off -data { R0lGODlhGAAYAOeVAAMDAwYGBgkJCQoKCgsLCwwMDA4ODg8PDxERERISEhQUFBUVFRYWFhkZ GRsbGx0dHR8fHyUlJSYmJikpKSwsLC0tLTIyMjMzMzQ0NDc3Nzk5OTs7Oz4+PkBAQEFBQUJC QkNDQ0REREZGRkdHR0hISElJSUpKSktLS0xMTE5OTk9PT1BQUFFRUVJSUlNTU1VVVecQOVZW VldXV1lZWVtbW1xcXF1dXV5eXl9fX2FhYWJiYmNjY2VlZWZmZmdnZ2hoaGlpaWpqamtra21t bW5ubm9vb3BwcHFxcXNzc3R0dHV1dXd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGB gYKCgoODg4SEhIWFhYaGhoiIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJOTk5SUlJeXl5iY mJqampubm5ycnJ6enp+fn6KioqOjo6WlpaampqysrLGxsbOzs7a2trq6ur6+vr+/v8DAwMHB wcPDw8TExMbGxsjIyMrKys7OztHR0dLS0tPT09TU1NbW1tjY2Nra2tvb297e3uHh4efn5+rq 6uvr6+zs7O7u7vLy8vPz8/b29vn5+fr6+v7+/v////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////////////////yH5BAEKAP8ALAAAAAAYABgAAAj+AP8JHEiwoMGD Bf9oofFhRI82iBAavJOhQIgiVar0uBBAiCGDMGAMlCLACR4+fNigWfOmzQkGdkISDAlDx4M5 fPLcuSOmJxkzbarIBKkgTh89euRswZKFixcwY0ImEFTQEIGQcNZ8idLFUZcoWbSEXDNDRkEi J9SEnDLlSSBKkqg0CZlFzJsBfwgyMAPGCk0lSCJRigQFxpMpV86smDIwEAA2VpgYARKyRhJK IZUMUQKFy5UNA+lQOMOEyJZHikImCkkJ0pEgSaakcTAQToYwRnZoocQbM4zehXDATpNgYJ0J XXjYWHJokHOalBrRmIFjSBkIAwkZCGPDhYoTJkypwPjh+wWLFzF8NPFAUIKVGSRQpGABo8Uk SotCniAxQkgJLQRJ4cENIYhAQkh7UMLICSCEtAMRShwQSEEK8CCCCDCI0EEJgJDAgQgeBBES CDoY5EYD9GWoYQcdXBgCGF6E9JFBToRUwoU4urjDBwnQdBAMBGBwQgklkEBCCUM6EIEfAg01 UEh/tDCAAxZ8oEEFCCxghUT/OGlIGkfkwIMUdHDZpJlopnlQQAA7 } image create photo comment_avail -data { R0lGODlhEAAQAMZCAAAAAAUDAAgFABkSAxwWBk07FE47FXVTBq58Da98DryFCrmHGMiZNeGvSdmx YduzY+SzT+S0Uc+5i+q3UOu4U+q5Vuu5V+S6Zuu6V+G7bOu7Wu27WOy8W+28Xee9Z+y9Xee+bOi+ bOe/bum/bdvHmuzSne3Tne3Tnu/Xp+/XqPDYqPDZqPbjv/bkwPbnx/fnyPfoyfjqzvjqz/nt1vrt 1vz26fz26vz37P337P337f779v779/78+P78+f79+v79+/79/P/+/f////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////yH+ EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAH8ALAAAAAAQABAAAAeAgH+Cg4SFhn8TGhwaFIeDFyYu My8nHo4hLDU6Pjo1LCOGFSg3PkCmPzcqFoUfMTymQUFAPTIdrDI9QLGxtLaEGCk4P7qyOSsbhiAs Njs/OzYtIo4PJS80MCYOjn8GGREQDQwF238EJAkIAwTbABILCgoHAOQAAgEB8+R/APz6+oEAOw== } image create photo comment_unavail -data { R0lGODlhEAAQAMZBAAAAAAEAAAMCAAQDAgUDAAUFAwYFAwYFBAgFAAkIBQwLCA0LBhANBQ8ODA8P DhQSCxkXEFhQMnVTBmJaPmtfOXJnPpFmB3ZwWaV0CIF5XYB/fYWBc46CWbyFCr6GCrmHGJ2PWZ6Q XJmUh6OXbKGZeJ2ajsucNaOhm8+5i9PAlNvMrNLQyeDRnePSleTTmOPVo+XWoeverujet/Dfo+rg u+rhxfLktOnk0+/lvOjl2/XouPXpvvbqv/bqwPbtzvnx1vr14P////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////yH+ EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAH8ALAAAAAAQABAAAAdxgH+Cg4SFhoeIggoHAAUHiX8D FzI7LBMAiAAZPkA/PDMRmIYAODkaKycxIaKFADY1NxsiLyCshAAjOj00JS4UtoQFHC0wJBXAhA4Q DwALCQ2JACkmHh4WAZAGKhgYAgzRKB8dHRLItwgEBOatAOuQhIEAOw== } #---------------------------------------------------------------------- if {$png_image_support} { image create photo autoplay_off -data { iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJ TUUH1wgGEBoIdCRDswAAAfFJREFUOI3Nkj9oE3Ecxd/vcsmludwvDSbNJdczhcIFHbRdUoQMVWJ1 FdwciqDGQofQLnZsB0E61HawYokgiGgh/hlEYzvEpCkojWdHDYiXNKRYBxG8RE9zTldKYlB08cEX 3vI+PL7fL/CPsu3xQQD7AJgAvv0NQBw5EX8XDu/3Eo7RlH6lUa1Wv/4xQBAEvyz3jk9MTg5slbfO MDamMRQd+hSNRhuqqnZsRCwTiUQOhfvkzczTFVQqZaQfpI1sNvtW7OmZU5QDG263u5RIJPRWAGOZ YDDoAIByRcPaeg7H43H7/Nz8wa4u1+LrTfUyx3Gn8vn84VKpxP0SIEkSBwCsjQXv4lHbrmHn4w65 NDVlTyaTJ3O55zdWV5+N8zx/2jRNpQ0QCAQcAMCyLATqARUonE4ndF2H3CszqdRNl1bWzj18dH8Y wJE2gCiKnAWglO4ZD2rbtebYWKI+ODB468L5i+sAXlg5tnUHLGuHh3rg7fZCr9cxO3vFaJpmYWZm Ou33i0UAKiGk0QYIhUIcAFBKYXw3sLx8z3hVLGqjo2dvx2KxPIANQsjn1ivsAiRJcgBAobD2Y/H6 tS/DR4/dWVpKPQbwkhDyoTXYsUFmJfPk6sLCXZ/XVyCEvO8UtLT7SKZpjgDwAVABvCGENH8X/j/0 E6ShmjXfUKodAAAAAElFTkSuQmCC } image create photo autoplay_on -data { iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJ TUUH1wgGEBoIdCRDswAAAQ9JREFUOI3VkjFKxEAUhr/3Zsi6mS6NW6wJJKnU0lOIeArFTvEe6mFE PIOiXY4gLGEL29iNxWyGhMi6nfgzj3kD///NGxj4a8mgz4C9HTJfwGd/sH0zn8/Ts/PTj9/ST4/P B13XTQF1XScA93cPiAiCEFYYUkS4ub2mruukaRomgDzPZwAqyuvbC9ZarLFht5ajw+Po+xFQlmXS rleICs65GDYbgBoTfcMnRUBRFEm7XqGquNTFm00P2gCKohgBdDDBDMCoIXWONA3lXCijOvJNJqiq KgEwxsQJVCMf7/3INwEsl8sIWOwv8CEVwpsa+iaALMsswOXVBdvU+3rFn+i9PwEWW9NBrYi87+D7 L/oGx9IwzmkU3BMAAAAASUVORK5CYII= } image create photo engine_on -data { iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBI WXMAAAsRAAALEQF/ZF+RAAAEoUlEQVRIx7WU328UVRTHv+fOzHbZbru/6Lbd2R/9gQXbgkCXmD5A 4oM1xmACWqOEVPBB34klmBpMjBiEwD/QBwgaTdkWxV/RYOIDIY0h2FZLC9J2p7s7K1vY3XaXWLo7 M9cHZsmK26ok3uQkk3vnns8553vOBf7nRasdHD9xbDeAXgDdAILmdgzAKIDIkcMDXz0W4PiJY9sA nCYm+uoagkZAlus9rtpagCOdzefiqpq6czvGuKElARw6cnhg7F8DzKgjXl9LdEtneyCWNpTFZSwV NCoCgEXkknMdOUIe1jQxeT2+kJxrBtC7VjZU5nwbgNHWjVsX7G5/cT7NExwwVrnEmjzkz2dUafbm mBdA92qZiGXfp+vl1miN22+JpnmstDmbXHRPz2dkAGgPedQWnyPDASOa5rFmjxysl3PRlDp7GsAz lQCsVBpiom9rZ0dASfPEgygJjBFuzGflwf4eDPb3YHo+IwsCg8AYiBGUNE9s3dwZIEH0meWtDADQ 621sMqJpQ+GAwRiBlRwR/mKiwMAEBpExMIEZyl1d8TY0GWbHrVqi7lDA71FyfJoxhrnkontKScsA QEQgeiAVEeGLyzObAaCzeb3aKjszuRVjKRT0P5lSZ7rXAgTr3A5hZlEvMkaYUtLyYH/PwxYodcJg /7MAAA7gzZOX5LagOxNbuJftCjlrAVSvKbIZXdTf4LQuF/RNmmEIAmNERFQicM65wTnXDa7n/ygY n1+Zm9U0nfaEa1br0oeA2J3skidUX11zK5nLaAbGe49+3U5EAAEfDzwPAOj78DuAAxwcdpt1yuBk PNFY485kczkA6bUAo7F4Yke4LRSYXVjJ2K1S3OWyxyVJhJpMP1cCERFamuq/1zUdBV1Hsahh+4ba gBKPpgBcXauLIqmkwnZscHTYrIIoCAJExiAJ7KHIRARGBEkSIYgCBMZQXSWJ25prOm6rUQYgUglQ Psk/yqGNDW5fGwZ/UC9XWSRIFhH5e/cD2cV8OwHw1jmn3E57vFDUUCho6NtZt/NO4iYSyo3bRw4P VBy08kk+pM7fHHU4nAtv9QR2fnZlYdQgaOvd9rivwRW3SCI451gpaLBKTHytu6G7sKRWJ5QbXgD7 VhO54mPnb94U3b7lqcCkunz9t9/vx1N5fUlgAhpdoqPNawlsbLR2jE9MJGLR6SYAVdeu/Zyvqqoa /+Tcp7vWBACg9z94b7skSacE0eKTg61GcyhUv97lqAGAu9mlvBKLpxLzt5iuFZIrKytvT05eHz74 xuuh8bEJjI9PKJGhkRZzVP4GIFN0BoC9e/Sd3VardS9j7GnGmB8ADMNI6Lp+NZfLXzz50alvAWDf /lcHbTZbbz6Xv993YL/17JlzucjQiONRQMm5YOryqJXAkmmEB0+5BkB7+ZW9Y+Fwl2vm1lxhz0sv Ws6eObccGRqxPSoymQCpggmmrQNgNWEGgAKA4vD5C7sA/BQOd9m+vPiNceBg3zoA9yJDI/ZywD8t DkAHUCwDGOY+Hz5/4XkAl8LhLsuvv0xWbNNyB9y8rJtlYGaGy2YmVCZk6d/M8PkLYQCXiKguMjTy wn8I/vHXn4Y12hGK1zC4AAAAAElFTkSuQmCC } image create photo engine_off -data { iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A /wD/oL2nkwAAAAlwSFlzAAALEQAACxEBf2RfkQAAAAd0SU1FB9oCHAwWC50uu5UAAAUJSURBVEjH vVV/TFNXFP7ufe+V0lqgVFt+tBRFJaEwldYpbjMxuODmcJGBIUoQpiZzW7ZJnLrgzP6YkWlkicnm nDrBmSkWUFimc2xZ2I8gMwqoWxSR1haQKgVpEUr7+t7+4JEQtOiWbCc5eS/3vXu+853v3HOB/9hI qA9le3dnA8gDkAEgQVp2AGgCYN2xrfTbfwVQtnf3AgDlhLJxM2ISBEN8vE6jjogARLgHvB5nd7fr fq+DigLfA6Bkx7bSlqcGkLK2auNm2Z5JTTE43IL9wQgG/TwJAICMFbmocBJp1NDEtut/Ou/1dM4E kDcVGzIp86ak5Pn3pkXrA3fcYpcICCE20UQN0Xv7u7nbN1u0ADJCMaET3st18Uk2VbQ+YHeLjkeC EwJCxvIRAcHmFh2q6PiALj7JBqA8FAM6XhpC2bj5qSaD77OPZCkfvrDEcOjtFCoGCcNQMAwFy1Aw lIJSQFe2bt7s7c8/N3qgNGx+WqqBMGycVN6QDPK0sYmCzS3YVW0/6pae2CnLevGuxnBws4kRBcIy DFhmLHjc55tN2em2iOUVGzjFtUatvS9o18YkClLHhQTIMBr0ugfD4uBw8uI+f/0BgV1Rwix7ZVCD sk0ZdY030mob29OEPRuXZC64PZ0tfpfxWysFX/LiPs8oGTQm6HVSOz9irPRMmBEdyXQ8CAZcG/a1 V+7ZpNmo+pSTr9hOitn93LymwyoBBOaVPRzNeouIdV+IlRfn8LLS/e3O+8NDZmNUBADlVAAghODs rx02fUyU3Pbs1v55fxxVLxTLZCSrhKSrj3MQeZCUN4j4/Zdi802T/5R5g1t10dHB80Gy2qLClCID cNwfGPQYdUpVZ4/HGwDTukVV6DpyQuEbbasQiSmXkJRc4murFg9bVb6t6mIXKw+/KohEmBOriuwf 8HikUx4SoMnh7HJZ5qoNlKGYppQ7tbHRF5SseJf2DwXBDwNBH1jvw6CKQ68xQXchMkrpZFiK9NkR BruzyyWNkJAAVlePnS6cHWlSyBmWUoK8c+9n5i5xGLhFOSx/xcrzV6w8uzCbzU236V+ueW85JYAy jGMXzFSZerttFID1SSf553hjcow6dg7cW9dx+ekdCbKizVzgh2/4s/UqF6VUWJXZF8utzGNHjx4L 1Pw116kpP+nv625Hl/1G745tpcumFBlASfedm03a2kP8mtTb4bKC9ZSvq+DPNGhcjUWV52UcC/Gr wqxXR0/GhhWv43IrTyU2Htgy0mVexgJY+ySRIc2SPLT+rpAX5VPhQi0amhMe3nrn62aGZSgIpZ1b Tlz66frcIaH+DGTr8ynf8psSQNjly1caCwrX/vI045qcT4s6yY36cjw6g3/4zY+7ZyUlaaerI1UA 0Dcw6LXb7C7ZwV3xyq4OOQkLrztiyrQUv77e2NrShtbWNru1qmbW2Lh6FIBIjCgAunPXB9lyuTyH UrqIUqoHAEEQuoLB4CWPx1u375P95wBgbUH+YYVCkef1eH2FRQXyimPHPdaqmsjJAOPBGUmXyT4O zElOMDZteQB87pqcFovFrO641elf/doqWcWx4yPWqhrFZJGJBMA9xhnJwwHIJTABgB9AoPp07VIA zRaLWVFf951QVFwYDmDIWlUzjf0H97cIIAggMAFAkNbF6tO1LwFosFjMsmtXrz+2TScGEKXNQakM VGI4IjEhE4Qc/7e/+nStBUADIWSGtapmJf4P+xvUwP3l4H0SQwAAAABJRU5ErkJggg== } } #---------------------------------------------------------------------- button .main.fbutton.button.comment -image comment_unavail -command {makeCommentWin} button .main.fbutton.button.autoplay -image autoplay_off -command toggleAutoplay button .main.fbutton.button.trial -image tb_trial -command {setTrialMode toggle} button .main.fbutton.button.hgame_prev -image tb_hgame_prev -command {::game::LoadHistory -1} button .main.fbutton.button.hgame_next -image tb_hgame_next -command {::game::LoadHistory 1} foreach i {start back forward end exitVar addVar comment autoplay flip coords stm trial intoVar hgame_prev hgame_next} { .main.fbutton.button.$i configure -takefocus 0 -relief flat -border 1 -highlightthickness 0 -anchor n bind .main.fbutton.button.$i "+.main.fbutton.button.$i configure -relief groove" bind .main.fbutton.button.$i "+.main.fbutton.button.$i configure -relief flat; statusBarRestore %W; break" } pack .main.fbutton.button.start .main.fbutton.button.back .main.fbutton.button.forward .main.fbutton.button.end \ .main.fbutton.button.space .main.fbutton.button.intoVar .main.fbutton.button.exitVar .main.fbutton.button.addVar .main.fbutton.button.comment .main.fbutton.button.space2 \ .main.fbutton.button.autoplay .main.fbutton.button.trial .main.fbutton.button.space3 .main.fbutton.button.flip .main.fbutton.button.coords \ .main.fbutton.button.stm .main.fbutton.button.hgame_prev .main.fbutton.button.hgame_next -side left -pady 1 -padx 0 -ipadx 0 -pady 0 -ipady 0 ############################################################ ### The board: proc toggleShowMaterial {} { if { $::gameInfo(showMaterial) } { grid configure .main.board.mat } else { grid remove .main.board.mat } updateBoard } ::board::new .main.board $boardSize "showmat" #.main.board.bd configure -relief solid -border 2 ::board::showMarks .main.board 1 if {$boardCoords} { ::board::coords .main.board } if {$boardSTM} { ::board::stm .main.board } if { ! $::gameInfo(showMaterial) } { grid remove .main.board.mat } # .gameInfo is the game information widget: # autoscrollframe .main.gameInfoFrame text .main.gameInfo .main.gameInfo configure -width 20 -height 6 -fg black -bg white -wrap none -state disabled -cursor top_left_arrow -setgrid 1 ::htext::init .main.gameInfo # Right-mouse button menu for gameInfo frame: menu .main.gameInfo.menu -tearoff 0 .main.gameInfo.menu add checkbutton -label GInfoHideNext \ -variable gameInfo(hideNextMove) -offvalue 0 -onvalue 1 -command updateBoard .main.gameInfo.menu add checkbutton -label GInfoMaterial -variable gameInfo(showMaterial) -offvalue 0 -onvalue 1 \ -command { toggleShowMaterial } .main.gameInfo.menu add checkbutton -label GInfoFEN \ -variable gameInfo(showFEN) -offvalue 0 -onvalue 1 -command updateBoard .main.gameInfo.menu add checkbutton -label GInfoMarks \ -variable gameInfo(showMarks) -offvalue 0 -onvalue 1 -command updateBoard .main.gameInfo.menu add checkbutton -label GInfoWrap \ -variable gameInfo(wrap) -offvalue 0 -onvalue 1 -command updateBoard .main.gameInfo.menu add checkbutton -label GInfoFullComment \ -variable gameInfo(fullComment) -offvalue 0 -onvalue 1 -command updateBoard .main.gameInfo.menu add checkbutton -label GInfoPhotos \ -variable gameInfo(photos) -offvalue 0 -onvalue 1 \ -command {updatePlayerPhotos -force} .main.gameInfo.menu add separator .main.gameInfo.menu add radiobutton -label GInfoTBNothing \ -variable gameInfo(showTB) -value 0 -command updateBoard .main.gameInfo.menu add radiobutton -label GInfoTBResult \ -variable gameInfo(showTB) -value 1 -command updateBoard .main.gameInfo.menu add radiobutton -label GInfoTBAll \ -variable gameInfo(showTB) -value 2 -command updateBoard .main.gameInfo.menu add separator .main.gameInfo.menu add command -label GInfoDelete -command { catch {sc_game flag delete [sc_game number] invert} updateBoard ::windows::gamelist::Refresh } .main.gameInfo.menu add cascade -label GInfoMark -menu .main.gameInfo.menu.mark menu .main.gameInfo.menu.mark foreach flag $maintFlaglist { .main.gameInfo.menu.mark add command -label "" -command " catch {sc_game flag $flag \[sc_game number\] invert} updateBoard ::windows::gamelist::Refresh " } bind .main.gameInfo "tk_popup .main.gameInfo.menu %X %Y" # alternate code that may work better on MacOS ? # bind .main.gameInfo ".main.gameInfo.menu post %X %Y" bind $dot_w "tk_popup .main.gameInfo.menu %X %Y" # setBoard: # Resets the squares of the board according to the board string # "boardStr" and the piece bitmap size "psize". # proc setBoard {board boardStr psize {rotated 0}} { for {set i 0} { $i < 64 } { incr i } { if {$rotated > 0} { set piece [string index $boardStr [expr {63 - $i}]] } else { set piece [ string index $boardStr $i ] } $board.$i configure -image $::board::letterToPiece($piece)$psize } } # updateVarMenus: # Updates the menus for moving into or deleting an existing variation. # Calls sc_var list and sc_var count to get the list of variations. # proc updateVarMenus {} { set varList [sc_var list] set numVars [sc_var count] .main.fbutton.button.intoVar.menu delete 0 end .menu.edit.del delete 0 end .menu.edit.first delete 0 end .menu.edit.main delete 0 end # PG: add the move of main line if {$numVars > 0} { set move [sc_game info nextMove] if {$move == ""} { set move "($::tr(empty))" } .main.fbutton.button.intoVar.menu add command -label "0: $move" -command "sc_move forward; updateBoard" -underline 0 } for {set i 0} {$i < $numVars} {incr i} { set move [lindex $varList $i] set state normal if {$move == ""} { set move "($::tr(empty))" set state disabled } set str "[expr {$i + 1}]: $move" set commandStr "sc_var moveInto $i; updateBoard" if {$i < 9} { .main.fbutton.button.intoVar.menu add command -label $str -command $commandStr \ -underline 0 } else { .main.fbutton.button.intoVar.menu add command -label $str -command $commandStr } set commandStr "sc_var delete $i; updateBoard -pgn" .menu.edit.del add command -label $str -command $commandStr set commandStr "sc_var first $i; updateBoard -pgn" .menu.edit.first add command -label $str -command $commandStr set commandStr "sc_var promote $i; updateBoard -pgn" .menu.edit.main add command -label $str -command $commandStr \ -state $state } } ################################################################################ # added by Pascal Georges # returns a list of num moves from main line following current position ################################################################################ proc getNextMoves { {num 4} } { set tmp "" set count 0 while { [sc_game info nextMove] != "" && $count < $num} { append tmp " [sc_game info nextMove]" sc_move forward incr count } sc_move back $count return $tmp } ################################################################################ # displays a box with main line and variations for easy selection with keyboard ################################################################################ proc showVars {} { if {$::autoplayMode == 1} { return } # No need to display an empty menu if {[sc_var count] == 0} { return } if {[sc_var count] == 1 && [sc_game info nextMove] == ""} { # There is only one variation and no main line, so enter it sc_var moveInto 0 updateBoard return } sc_info preMoveCmd {} set w .variations if {[winfo exists $w]} { return } set varList [sc_var list] set numVars [sc_var count] # Present a menu of the possible variations toplevel $w ::setTitle $w $::tr(Variations) setWinLocation $w set h [expr $numVars + 1] if { $h> 19} { set h 19 } listbox $w.lbVar -selectmode browse -height $h -width 20 pack $w.lbVar -expand yes -fill both -side top #insert main line set move [sc_game info nextMove] if {$move == ""} { set move "($::tr(empty))" } else { $w.lbVar insert end "0: [getNextMoves 5]" } # insert variations for {set i 0} {$i < $numVars} {incr i} { set move [::trans [lindex $varList $i]] if {$move == ""} { set move "($::tr(empty))" } else { sc_var moveInto $i append move [getNextMoves 5] sc_var exit } set str "[expr {$i + 1}]: $move" $w.lbVar insert end $str } $w.lbVar selection set 0 # bindings bind $w "recordWinSize $w" bind .variations {catch { event generate .variations } } bind .variations {catch { event generate .variations } } bind .variations { sc_info preMoveCmd preMoveCommand set cur [.variations.lbVar curselection] destroy .variations if {$cur == 0} { sc_move forward; updateBoard -animate } else { sc_var moveInto [expr $cur - 1]; updateBoard -animate } } bind .variations { set cur [.variations.lbVar curselection] ; .variations.lbVar selection clear $cur set sel [expr $cur - 1] if {$sel < 0} { set sel 0 } .variations.lbVar selection set $sel ; .variations.lbVar see $sel} bind .variations { set cur [.variations.lbVar curselection] ; .variations.lbVar selection clear $cur set sel [expr $cur + 1] if {$sel >= [.variations.lbVar index end]} { set sel end } .variations.lbVar selection set $sel ; .variations.lbVar see $sel} bind .variations { destroy .variations } bind .variations { catch { event generate .variations } } # in order to have the window always on top : this does not really work ... bind .variations { if { "%s" != "VisibilityUnobscured" } { focus .variations raise .variations } } bind .variations { focus .variations raise .variations } # Needed or the main window loses the focus if { $::docking::USE_DOCKING } { bind .variations { focus -force .main } } sc_info preMoveCmd preMoveCommand catch { focus .variations } catch { grab $w } update } ################################################################################ # ################################################################################ # V and Z key bindings: move into/out of a variation. # bind $dot_w { showVars } bind $dot_w {.main.fbutton.button.exitVar invoke} # editMyPlayerNames # Present the dialog box for editing the list of player # names from whose perspective the board should be shown # whenever a game is loaded. # proc editMyPlayerNames {} { global myPlayerNames set w .editMyPlayerNames if {[winfo exists $w]} { return } toplevel $w ::setTitle $w "Scid: [tr OptionsBoardNames]" pack [frame $w.b] -side bottom -fill x autoscrollframe $w.desc text $w.desc.text \ -foreground black -background gray90 \ -width 50 -height 8 -wrap word -cursor top_left_arrow $w.desc.text insert end [string trim $::tr(MyPlayerNamesDescription)] $w.desc.text configure -state disabled pack $w.desc -side top -fill x autoscrollframe $w.f text $w.f.text \ -background white -width 50 -height 10 -wrap none foreach name $myPlayerNames { $w.f.text insert end "\n\"$name\"" } pack $w.f -side top -fill both -expand yes button $w.b.white -text $::tr(White) -command { .editMyPlayerNames.f.text insert end "\"[sc_game info white]\"\n" } button $w.b.black -text $::tr(Black) -command { .editMyPlayerNames.f.text insert end "\"[sc_game info black]\"\n" } button $w.b.help -text $::tr(Help) \ -command {helpWindow Options MyPlayerNames} button $w.b.ok -text OK -command editMyPlayerNamesOK button $w.b.cancel -text $::tr(Cancel) -command "grab release $w; destroy $w" pack $w.b.cancel $w.b.ok -side right -padx 5 -pady 5 pack $w.b.white $w.b.black $w.b.help -side left -padx 5 -pady 5 grab $w } proc editMyPlayerNamesOK {} { global myPlayerNames set w .editMyPlayerNames set text [string trim [$w.f.text get 1.0 end]] set myPlayerNames {} foreach name [split $text "\n"] { set name [string trim $name] if {[string match "\"*\"" $name]} { set name [string trim $name "\""] } if {$name != ""} { lappend myPlayerNames $name } } grab release $w destroy $w } # flipBoardForPlayerNames # Check if either player in the current game has a name that matches # a pattern in the specified list and if so, flip the board if # necessary to show from that players perspective. # proc flipBoardForPlayerNames {namelist {board .main.board}} { set white [sc_game info white] set black [sc_game info black] foreach pattern $namelist { if {[string match $pattern $white]} { ::board::flip $board 0 return } if {[string match $pattern $black]} { ::board::flip $board 1 return } } } # updateBoard: # Updates the main board. Also updates the navigation buttons, disabling # those that have no effect at this point in the game. # Also ensure all menu settings are up to date. # If a parameter "-pgn" is specified, the PGN text is also regenerated. # If a parameter "-animate" is specified, board changes are animated. # proc updateBoard {args} { set pgnNeedsUpdate 0 set animate 0 foreach arg $args { if {! [string compare $arg "-pgn"]} { set pgnNeedsUpdate 1 } if {! [string compare $arg "-animate"]} { set animate 1 } } if {$pgnNeedsUpdate} { ::pgn::Refresh $pgnNeedsUpdate } ::board::resize .main.board $::boardSize ::board::setmarks .main.board [sc_pos getComment] ::board::update .main.board [sc_pos board] $animate after cancel updateNavButtons after cancel ::notify::PosChanged update idletasks after idle updateNavButtons after idle ::notify::PosChanged } # updateNavButtons: # Update the status of each navigation button # proc updateNavButtons {} { if {[sc_pos isAt start]} { .main.fbutton.button.start configure -state disabled } else { .main.fbutton.button.start configure -state normal } if {[sc_pos isAt end]} { .main.fbutton.button.end configure -state disabled } else { .main.fbutton.button.end configure -state normal } if {[sc_pos isAt vstart]} { .main.fbutton.button.back configure -state disabled } else { .main.fbutton.button.back configure -state normal } if {[sc_pos isAt vend]} { .main.fbutton.button.forward configure -state disabled } else { .main.fbutton.button.forward configure -state normal } # Cannot add a variation to an empty line: if {[sc_pos isAt vstart] && [sc_pos isAt vend]} { .menu.edit entryconfig [tr EditAdd] -state disabled .main.fbutton.button.addVar configure -state disabled bind $::dot_w {} } else { .menu.edit entryconfig [tr EditAdd] -state normal .main.fbutton.button.addVar configure -state normal bind $::dot_w {sc_var create; updateBoard -pgn} } if {[sc_var count] == 0} { .main.fbutton.button.intoVar configure -state disabled .menu.edit entryconfig [tr EditDelete] -state disabled .menu.edit entryconfig [tr EditFirst] -state disabled .menu.edit entryconfig [tr EditMain] -state disabled } else { .main.fbutton.button.intoVar configure -state normal .menu.edit entryconfig [tr EditDelete] -state normal .menu.edit entryconfig [tr EditFirst] -state normal .menu.edit entryconfig [tr EditMain] -state normal } updateVarMenus if {[sc_var level] == 0} { .main.fbutton.button.exitVar configure -state disabled } else { .main.fbutton.button.exitVar configure -state normal } wm withdraw .tooltip set comment [sc_pos getComment] # remove technical comments, notify only human readable ones regsub -all {\[%.*\]} $comment {} comment if {$comment != ""} { .main.fbutton.button.comment configure -image comment_avail -relief flat ::utils::tooltip::Set .main.fbutton.button.comment $comment } else { .main.fbutton.button.comment configure -image comment_unavail -relief flat ::utils::tooltip::UnSet .main.fbutton.button.comment } .main.fbutton.button.hgame_prev configure -state [::game::Hprev_btnstate] .main.fbutton.button.hgame_next configure -state [::game::Hnext_btnstate] } # updateGameInfo: # Update the game status window .main.gameInfo # proc updateGameInfo {} { global gameInfo .main.gameInfo configure -state normal .main.gameInfo delete 0.0 end ::htext::display .main.gameInfo [sc_game info -hide $gameInfo(hideNextMove) \ -material $gameInfo(showMaterial) \ -cfull $gameInfo(fullComment) \ -fen $gameInfo(showFEN) -tb $gameInfo(showTB)] if {$gameInfo(wrap)} { .main.gameInfo configure -wrap word .main.gameInfo tag configure wrap -lmargin2 10 .main.gameInfo tag add wrap 1.0 end } else { .main.gameInfo configure -wrap none } .main.gameInfo configure -state disabled updatePlayerPhotos } # Set up player photos: image create photo photoW image create photo photoB label .main.photoW -background white -image photoW -anchor ne label .main.photoB -background white -image photoB -anchor ne # readPhotoFile executed once at startup for each SPF file. Loads SPI file if it exists. # Otherwise it generates index information and tries to write SPI file to disk (if it can be done) proc readPhotoFile {fname} { global photobegin global photosize global spffile set count 0 set writespi 0 if {! [regsub {\.spf$} $fname {.spi} spi]} { # How does it happend? return } # If SPI file was found then just source it and exit if { [file readable $spi]} { set count [array size spffile] source $spi set newcount [array size spffile] if {[expr $newcount - $count] > 0} { ::splash::add "Found [expr $newcount - $count] player photos in [file tail $fname]" ::splash::add "Loading information from index file [file tail $spi]" return } } # Check for the absence of the SPI file and check for the write permissions if { ![file exists $spi] && ![catch {open $spi w} fd_spi]} { # SPI file will be written to disk by scid set writespi 1 } if {! [file readable $fname]} { return } set fd [open $fname] while {[gets $fd line] >= 0} { # search for the string photo "Player Name" if { [regexp {^photo \"(.*)\" \{$} $line -> name] } { set count [expr $count + 1 ] set begin [tell $fd] # skip data block while {1} { set end [tell $fd] gets $fd line if {[regexp {.*\}.*} $line ]} {break} } set trimname [trimString $name] set size [expr $end - $begin ] set photobegin($trimname) $begin set photosize($trimname) $size set spffile($trimname) $fname if { $writespi } { # writing SPI file to disk puts $fd_spi "set \"photobegin($trimname)\" $begin" puts $fd_spi "set \"photosize($trimname)\" $size" puts $fd_spi "set \"spffile($trimname)\" \"\$fname\"" } } } if {$count > 0 && $writespi} { ::splash::add "Found $count player photos in [file tail $fname]" ::splash::add "Index file [file tail $spi] was generated succesfully" } if {$count > 0 && !$writespi} { ::splash::add "Found $count player photos in [file tail $fname]" ::splash::add "Could not generate index file [file tail $spi]" ::splash::add "Use spf2spi script to generate [file tail $spi] file " } if { $writespi } { close $fd_spi } close $fd } #convert $data string tolower case and strip the first two blanks. proc trimString {data} { set data [string tolower $data] set strindex [string first "\ " $data] set data [string replace $data $strindex $strindex] set strindex [string first "\ " $data] set data [string replace $data $strindex $strindex] return $data } # retrieve photo from the SPF file using index information proc getphoto {name} { global photobegin global photosize global spffile set data "" if {[info exists spffile($name)]} { set fd [open $spffile($name)] seek $fd $photobegin($name) start set data [read $fd $photosize($name) ] close $fd } return $data } proc addPhotoAlias {aliasname name} { global photobegin global photosize global spffile global droppedaliases if {[info exists spffile([trimString $name])]} { set photobegin([trimString $aliasname]) $photobegin([trimString $name]) set photosize([trimString $aliasname]) $photosize([trimString $name]) set spffile([trimString $aliasname]) $spffile([trimString $name]) } else { set droppedaliases [expr $droppedaliases + 1 ] } } # photobegin($name) - file offset of the photo for the player $name # photobegin($name) - size (in bytes) of the photo for the player $name # spffile($name) - location of the SPF file where photo for the player $name is stored array set photobegin {} array set photosize {} array set spffile {} # variable droppedaliases counts the number of the dropped aliases. # Alias is dropped if the player hasn't photo. set droppedaliases 0 # Directories where Scid searches for the photo files set photodirs [list $scidDataDir $scidUserDir $scidConfigDir [file join $scidShareDir "photos"]] # Read all Scid photo (*.spf) files in the Scid data/user/config directories: foreach dir $photodirs { foreach photofile [glob -nocomplain -directory $dir "*.spf"] { readPhotoFile $photofile } } # Read all Scid photo aliases (*.spa) foreach dir $photodirs { foreach spa [glob -nocomplain -directory $dir "*.spa"] { if {! [file readable $spa]} { return } set count [array size spffile] set droppedcount $droppedaliases source $spa set newcount [array size spffile] set newdroppedcount $droppedaliases if {[expr $newcount - $count] > 0} { ::splash::add "Found [expr $newcount - $count] player aliases in [file tail $spa]" } if {[expr $newdroppedcount - $droppedcount] > 0} { ::splash::add "Dropped [expr $newdroppedcount - $droppedcount] player aliases in [file tail $spa]" } } } set photo(oldWhite) {} set photo(oldBlack) {} # Try to change the engine name: ignore version number, try to ignore blanks proc trimEngineName { engine } { global spffile set engine [sc_name retrievename $engine] set engine [string tolower $engine] if { [string first "deep " $engine] == 0 } { # strip "deep " set engine [string range $engine 5 end] } # delete two first blank to make "The King" same as "TheKing" # or "Green Light Chess" as "Greenlightchess" set strindex [string first "\ " $engine] set engine [string replace $engine $strindex $strindex] set strindex [string first "\ " $engine] set engine [string replace $engine $strindex $strindex] set strindex [string first "," $engine] set slen [string len $engine] if { $strindex == -1 && $slen > 2 } { #seems to be a engine name: # search until longest name matches an engine name set slen [string len $engine] for { set strindex $slen} {![info exists spffile([string range $engine 0 $strindex])]\ && $strindex > 2 } {set strindex [expr {$strindex - 1}] } { } set engine [string range $engine 0 $strindex] } return $engine } # updatePlayerPhotos # Updates the player photos in the game information area # for the two players of the current game. # proc updatePlayerPhotos {{force ""}} { global photo global spffile if {$force == "-force"} { # Force update even if it seems unnecessary. This is done # when the user selects to show or hide the photos. set photo(oldWhite) {} set photo(oldBlack) {} place forget .main.photoW place forget .main.photoB } if {! $::gameInfo(photos)} { return } #get photo from player set white [sc_game info white] set black [sc_game info black] catch { set white [trimEngineName $white] } catch { set black [trimEngineName $black] } if {$black != $photo(oldBlack)} { set photo(oldBlack) $black place forget .main.photoB if {[info exists spffile($black)]} { image create photo photoB -data [getphoto $black ] .main.photoB configure -image photoB -anchor ne place .main.photoB -in .main.gameInfo -x -1 -relx 1.0 -anchor ne # force to update white, black size could be changed set photo(oldWhite) {} } } set distance [expr {[image width photoB] + 2}] if { $distance < 10 } { set distance 82 } if {$white != $photo(oldWhite)} { set photo(oldWhite) $white place forget .main.photoW if {[info exists spffile($white)]} { image create photo photoW -data [getphoto $white ] .main.photoW configure -image photoW -anchor ne place .main.photoW -in .main.gameInfo -x -$distance -relx 1.0 -anchor ne } } bind .main.photoW "togglePhotosSize" bind .main.photoB "togglePhotosSize" set ::photosMinimized 0 } ################################################################################ # Toggles photo sizes ################################################################################ set photosMinimized 0 proc togglePhotosSize {} { set distance [expr {[image width photoB] + 2}] if { $distance < 10 } { set distance 82 } if {$::photosMinimized} { set ::photosMinimized 0 if { [winfo ismapped .main.photoW] } { place .main.photoW -in .main.gameInfo -x -$distance -relx 1.0 -relheight 1 -width [image width photoW] -anchor ne } if { [winfo ismapped .main.photoB] } { place .main.photoB -in .main.gameInfo -x -1 -relx 1.0 -relheight 1 -width [image width photoB] -anchor ne } } else { set ::photosMinimized 1 if { [winfo ismapped .main.photoW] } { place .main.photoW -in .main.gameInfo -x -17 -relx 1.0 -relheight 0.15 -width 15 -anchor ne } if { [winfo ismapped .main.photoB] } { place .main.photoB -in .main.gameInfo -x -1 -relx 1.0 -relheight 0.15 -width 15 -anchor ne } } } ######################################################### ### Chess move input # Globals for mouse-based move input: set selectedSq -1 set bestSq -1 set EMPTY 0 set KING 1 set QUEEN 2 set ROOK 3 set BISHOP 4 set KNIGHT 5 set PAWN 6 ################################################################################ # ################################################################################ proc getPromoPiece {} { set w .promoWin set ::result 2 toplevel $w # wm transient $w .main ::setTitle $w "Scid" wm resizable $w 0 0 set col "w" if { [sc_pos side] == "black" } { set col "b" } ttk::button $w.bq -image ${col}q45 -command "set ::result 2 ; destroy $w" ttk::button $w.br -image ${col}r45 -command "set ::result 3 ; destroy $w" ttk::button $w.bb -image ${col}b45 -command "set ::result 4 ; destroy $w" ttk::button $w.bn -image ${col}n45 -command "set ::result 5 ; destroy $w" pack $w.bq $w.br $w.bb $w.bn -side left bind $w "set ::result 2 ; destroy $w" bind $w "set ::result 2 ; destroy $w" update catch { grab $w } tkwait window $w return $::result } # confirmReplaceMove: # Asks the user what to do when adding a move when a move already # exists. # Returns a string value: # "replace" to replace the move, truncating the game. # "var" to add the move as a new variation. # "cancel" to do nothing. # set addVariationWithoutAsking 0 proc confirmReplaceMove {} { global askToReplaceMoves trialMode # If reviewing a game, enter a var automatically if {[winfo exists $::reviewgame::window]} { return "var" } if {$::addVariationWithoutAsking} { return "var" } if {! $askToReplaceMoves} { return "replace" } if {$trialMode} { return "replace" } option add *Dialog.msg.wrapLength 4i interactive catch {tk_dialog .dialog "Scid: $::tr(ReplaceMove)?" \ $::tr(ReplaceMoveMessage) "" 0 \ $::tr(ReplaceMove) $::tr(NewMainLine) \ $::tr(AddNewVar) [tr EditTrial] \ $::tr(Cancel)} answer option add *Dialog.msg.wrapLength 3i interactive if {$answer == 0} { return "replace" } if {$answer == 1} { return "mainline" } if {$answer == 2} { return "var" } if {$answer == 3} { setTrialMode 1; return "replace" } return "cancel" } proc addNullMove {} { addMove null null } # addMove: # Adds the move indicated by sq1 and sq2 if it is legal. If the move # is a promotion, getPromoPiece will be called to get the promotion # piece from the user. # If the optional parameter is "-animate", the move will be animated. # proc addMove { sq1 sq2 {animate ""}} { if { ! [::fics::playerCanMove] || ! [::reviewgame::playerCanMove]} { return } ;# not player's turn global EMPTY set nullmove 0 if {$sq1 == "null" && $sq2 == "null"} { set nullmove 1 } if {!$nullmove && [sc_pos isLegal $sq1 $sq2] == 0} { # Illegal move, but if it is King takes king then treat it as # entering a null move: set board [sc_pos board] set k1 [string tolower [string index $board $sq1]] set k2 [string tolower [string index $board $sq2]] if {$k1 == "k" && $k2 == "k"} { set nullmove 1 } else { return } } set promo $EMPTY if {[sc_pos isPromotion $sq1 $sq2] == 1} { # sometimes, addMove is triggered twice if { [winfo exists .promoWin] } { return } set promo [getPromoPiece] } set promoLetter "" switch -- $promo { 2 { set promoLetter "q"} 3 { set promoLetter "r"} 4 { set promoLetter "b"} 5 { set promoLetter "n"} default {set promoLetter ""} } # Autmatically follow the main line if the next move is the same or enter the relevant variation if it exists if {! $::annotateMode} { set moveUCI [::board::san $sq2][::board::san $sq1]$promoLetter set move [sc_game info nextMoveUCI] if { [ string compare -nocase $moveUCI $move] == 0 } { sc_move forward updateBoard return } set varList [sc_var list UCI] set i 0 foreach { move } $varList { if { [ string compare -nocase $moveUCI $move] == 0 } { sc_var moveInto $i updateBoard return } incr i } } sc_game undoPoint set action "replace" if {![sc_pos isAt vend]} { set action [confirmReplaceMove] } if {$action == "replace"} { # nothing } elseif {$action == "mainline" || $action == "var"} { # sc_var create stores comments (premovecommand). So avoid comment repetition. # Maybe it would be better to void premovecommand for sc_var create if {[winfo exists .commentWin]} { ::commenteditor::storeComment .commentWin.cf.text delete 0.0 end } sc_var create } else { # Do not add the move at all: return } if {$nullmove} { sc_move addSan null } else { set ::sergame::lastPlayerMoveUci "" if {[winfo exists ".serGameWin"]} { set ::sergame::lastPlayerMoveUci "[::board::san $sq2][::board::san $sq1]$promoLetter" } sc_move add $sq1 $sq2 $promo set san [sc_game info previous] if {$action == "mainline"} { sc_var exit sc_var promote [expr {[sc_var count] - 1}] sc_move forward 1 } after idle [list ::utils::sound::AnnounceNewMove $san] if {[winfo exists .commentWin]} { .commentWin.cf.text delete 0.0 end } } if {[winfo exists .fics]} { if { [::fics::playerCanMove] } { if { $promo != $EMPTY } { ::fics::writechan "promote $promoLetter" } ::fics::writechan [ string range [sc_game info previousMoveUCI] 0 3 ] } } if {$::novag::connected} { ::novag::addMove "[::board::san $sq2][::board::san $sq1]$promoLetter" } moveEntry_Clear updateBoard -pgn $animate ::tree::doTraining } # addSanMove # Like addMove above, but takes the move in SAN notation instead of # a pair of squares. # proc addSanMove {san {animate ""} {noTraining ""}} { if {! $::annotateMode} { set move [sc_game info nextMoveNT] if { [ string compare -nocase $san $move] == 0 } { sc_move forward updateBoard return } set varList [sc_var list] set i 0 foreach { move } $varList { if { [ string compare -nocase $san $move] == 0 } { sc_var moveInto $i updateBoard return } incr i } } set action "replace" if {![sc_pos isAt vend]} { set action [confirmReplaceMove] } if {$action == "replace"} { # nothing } elseif {$action == "var" || $action == "mainline"} { sc_var create } else { # Do not add the move at all: return } # if {[winfo exists .commentWin]} { .commentWin.cf.text delete 0.0 end } sc_game undoPoint sc_move addSan $san if {$action == "mainline"} { sc_var exit sc_var promote [expr {[sc_var count] - 1}] } moveEntry_Clear updateBoard -pgn $animate ::utils::sound::AnnounceNewMove $san if {$noTraining != "-notraining"} { ::tree::doTraining } } # enterSquare: # Called when the mouse pointer enters a board square. # Finds the best matching square for a move (if there is a # legal move to or from this square), and colors the squares # to indicate the suggested move. # proc enterSquare { square } { global bestSq bestcolor selectedSq suggestMoves if {$selectedSq == -1} { set bestSq -1 if {$suggestMoves} { set bestSq [sc_pos bestSquare $square] if {$bestSq != -1} { ::board::colorSquare .main.board $square $bestcolor ::board::colorSquare .main.board $bestSq $bestcolor } } } } # leaveSquare: # Called when the mouse pointer leaves a board square. # Recolors squares to normal (lite/dark) color. # proc leaveSquare { square } { global selectedSq bestSq if {$selectedSq == -1} { ::board::colorSquare .main.board $bestSq ::board::colorSquare .main.board $square } } # pressSquare: # Called when the left mouse button is pressed on a square. Sets # that square to be the selected square. # proc pressSquare { square } { global selectedSq highcolor if { ![::fics::playerCanMove] || ![::reviewgame::playerCanMove] } { return } ;# not player's turn # if training with calculations of var is on, just log the event if { [winfo exists .calvarWin] } { ::calvar::pressSquare $square return } if {$selectedSq == -1} { set selectedSq $square ::board::colorSquare .main.board $square $highcolor # Drag this piece if it is the same color as the side to move: set c [string index [sc_pos side] 0] ;# will be "w" or "b" set p [string index [::board::piece .main.board $square] 0] ;# "w", "b" or "e" if {$c == $p} { ::board::setDragSquare .main.board $square } } else { ::board::setDragSquare .main.board -1 ::board::colorSquare .main.board $selectedSq ::board::colorSquare .main.board $square if {$square != $selectedSq} { addMove $square $selectedSq -animate } set selectedSq -1 enterSquare $square } } # pressSquare2: # Called when the middle mouse button is pressed on a square. This # makes the suggested best move. # proc pressSquare2 { square } { if { [winfo exists .fics] } { return } ;# don't use this function with FICS global selectedSq bestSq ::board::colorSquare .main.board $bestSq ::board::colorSquare .main.board $square addMove $square $bestSq -animate enterSquare $square } # releaseSquare: # Called when the left mouse button is released over a square. # If the square is different to that the button was pressed on, it # is a dragged move; otherwise it is just selecting this square as # part of a move. # proc releaseSquare { w x y } { if { [winfo exists .calvarWin] } { return } global selectedSq bestSq ::board::setDragSquare $w -1 set square [::board::getSquare $w $x $y] if {$square < 0} { set selectedSq -1 return } if {$square == $selectedSq} { if {$::suggestMoves} { # User pressed and released on same square, so make the # suggested move if there is one: set selectedSq -1 ::board::colorSquare $w $bestSq ::board::colorSquare $w $square addMove $square $bestSq -animate enterSquare $square } else { # Current square is the square user pressed the button on, # so we do nothing. } } else { # User has dragged to another square, so try to add this as a move: addMove $square $selectedSq ::board::colorSquare $w $selectedSq set selectedSq -1 ::board::colorSquare $w $square } } # backSquare: # Handles the retracting of a move (when the right mouse button is # clicked on a square). Recolors squares to normal color also. # If the move is the last in the game or variation, is is removed # by truncating the game after retracting the move. # proc backSquare {} { global selectedSq bestSq set lastMoveInLine 0 if {[sc_pos isAt vend]} { set lastMoveInLine 1 } sc_move back # RMB used to delete the move if it was the last in a line. Removed it as there is no undo. # if {[sc_pos isAt vstart] && [sc_var level] != 0} { # ::pgn::deleteVar [sc_var number] # } elseif {$lastMoveInLine} { # sc_game truncate # } set selectedSq -1 set bestSq -1 # update the board without -pgn option because of poor performance with long games updateBoard -animate ::utils::sound::AnnounceBack } ## ## Auto-playing of moves: ## set autoplayMode 0 set tempdelay 0 trace variable tempdelay w {::utils::validate::Regexp {^[0-9]*\.?[0-9]*$}} # ################################################################################ # Set the delay between moves in options menu ################################################################################ proc setAutoplayDelay {} { global autoplayDelay tempdelay set tempdelay [expr {$autoplayDelay / 1000.0}] set w .apdialog if { [winfo exists $w] } { focus $w ; return } toplevel $w ::setTitle $w "Scid" wm resizable $w 0 0 ttk::label $w.label -text $::tr(AnnotateTime:) pack $w.label -side top -pady 5 -padx 5 spinbox $w.spDelay -background white -width 4 -textvariable tempdelay -from 1 -to 300 -increment 1 pack $w.spDelay -side top -pady 5 set b [ttk::frame $w.buttons] pack $b -side top -fill x ttk::button $b.cancel -text $::tr(Cancel) -command { destroy .apdialog focus . } ttk::button $b.ok -text "OK" -command { if {$tempdelay < 0.1} { set tempdelay 0.1 } set autoplayDelay [expr {int($tempdelay * 1000)}] destroy .apdialog focus . } pack $b.cancel $b.ok -side right -padx 5 -pady 5 bind $w { .apdialog.buttons.cancel invoke } bind $w { .apdialog.buttons.ok invoke } focus $w.spDelay } ################################################################################ # ################################################################################ proc toggleAutoplay { } { global autoplayMode autoplayDelay if {$autoplayMode == 0} { set autoplayMode 1 # Change the autoplay icon in the main window # .main.fbutton.button.autoplay configure -image autoplay_on -relief sunken # Start with some delay # Only to spawn the autoplay on a new thread # after 500 autoplay } else { cancelAutoplay } } ################################################################################ # ################################################################################ proc autoplay {} { global autoplayDelay autoplayMode annotateMode analysis # Was autoplay stopped by the user since the last time the timer ran out? # If so, silently exit this handler # if { $autoplayMode == 0 } { return } # Add annotation if needed # if { $annotateMode } { addAnnotation } if { $::initialAnalysis } { # Stop analyis if it is running # We do not want initial super-accuracy # stopEngineAnalysis 1 set annotateMode 1 # First do the book analysis (if this is configured) # The latter condition is handled by the operation itself set ::wentOutOfBook 0 bookAnnotation 1 # Start the engine startEngineAnalysis 1 1 # Autoplay comes in two flavours: # + It can run through a game, with or witout annotation # + It can be annotating just opening sections of games # See if such streak ends here and now # } elseif { [sc_pos isAt end] || ($annotateMode && $::isBatchOpening && ([sc_pos moveNumber] > $::isBatchOpeningMoves)) } { # Stop the engine # stopEngineAnalysis 1 # Are we running a batch analysis? # if { $annotateMode && $::isBatch } { # First replace the game we just finished # set gameNo [sc_game number] if { $gameNo != 0 } { sc_game save $gameNo } # See if we must advance to the next game # if { $gameNo < $::batchEnd } { incr gameNo sc_game load $gameNo updateMenuStates updateStatusBar updateTitle updateBoard -pgn # First do book analysis # set ::wentOutOfBook 0 bookAnnotation 1 # Start with initial assessment of the position # set ::initialAnalysis 1 # Start the engine # startEngineAnalysis 1 1 } else { # End of batch, stop # cancelAutoplay return } } else { # Not in a batch, just stop # cancelAutoplay return } } elseif { $annotateMode && $::isAnnotateVar } { # A construction to prune empty variations here and now # It makes no sense to discover only after some engine # time that we entered a dead end. # set emptyVar 1 while { $emptyVar } { set emptyVar 0 # Are we at the end of a variation? # If so, pop back into the parent # if { [sc_pos isAt vend] } { sc_var exit set lastVar [::popAnalysisData] } else { set lastVar [sc_var count] } # Is there a subvariation here? # If so, enter it after pushing where we are # if { $lastVar > 0 } { incr lastVar -1 sc_var enter $lastVar ::pushAnalysisData $lastVar # Check if this line is empty # If so, we will pop back immediately in the next run # if { [sc_pos isAt vstart] && [sc_pos isAt vend] } { set emptyVar 1 } else { # We are in a new line! # Tell the annotator (he might be interested) # updateBoard -pgn set ::atStartOfLine 1 } } else { # Just move ahead following the current line # ::move::Forward } } } else { # Just move ahead following the main line # ::move::Forward } # Respawn # after $autoplayDelay autoplay } ################################################################################ # ################################################################################ proc cancelAutoplay {} { global autoplayMode annotateMode annotateModeButtonValue set autoplayMode 0 set annotateMode 0 set annotateModeButtonValue 0 after cancel autoplay .main.fbutton.button.autoplay configure -image autoplay_off -relief flat } ################################################################################ # ################################################################################ bind $dot_w { if {[winfo exists .analysisWin1] && $analysis(analyzeMode1)} { .analysisWin1.b1.move invoke } } bind $dot_w cancelAutoplay set trialMode 0 proc setTrialMode {mode} { global trialMode if {$mode == "toggle"} { set mode [expr {1 - $trialMode}] } if {$mode == $trialMode} { return } if {$mode == "update"} { set mode $trialMode } if {$mode == 1} { set trialMode 1 sc_game push copy .main.fbutton.button.trial configure -image tb_trial_on } else { set trialMode 0 sc_game pop .main.fbutton.button.trial configure -image tb_trial } updateBoard -pgn } scid-4.3.0.cvs20120311/tcl/file/0000755000175000017500000000000011727223077015137 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/file/bookmark.tcl0000644000175000017500000004005211727223077017451 0ustar oliveroliver# bookmark.tcl: # Bookmarks list and Recently-used files list in Scid. set bookmarks(data) {} set bookmarks(subMenus) 0 # Read the bookmarks file if it exists: catch {source [scidConfigFile bookmarks]} namespace eval ::bookmarks {} # ::bookmarks::PostMenu: # Posts the bookmarks toolbar menu. # proc ::bookmarks::PostMenu {} { .main.tb.bkm.menu post [winfo pointerx .] [winfo pointery .] if {[::bookmarks::CanAdd]} { .main.tb.bkm.menu activate 0 } else { .main.tb.bkm.menu activate 2 } } # ::bookmarks::Refresh: # Updates all bookmarks submenus. # proc ::bookmarks::Refresh {} { foreach menu {.menu.file.bookmarks .main.tb.bkm.menu} { ::bookmarks::RefreshMenu $menu } } proc ::bookmarks::RefreshMenu {menu} { global bookmarks helpMessage ::bookmarks::DeleteChildren $menu $menu delete 0 end # $menu configure -disabledforeground [$menu cget -foreground] set numBookmarkEntries [llength $bookmarks(data)] $menu add command -label FileBookmarksAdd -command ::bookmarks::AddCurrent set helpMessage($menu,0) FileBookmarksAdd $menu add cascade -label FileBookmarksFile -menu $menu.file menu $menu.file set helpMessage($menu,1) FileBookmarksFile if {! [::bookmarks::CanAdd]} { $menu entryconfigure 0 -state disabled $menu entryconfigure 1 -state disabled } $menu add command -label FileBookmarksEdit -command ::bookmarks::Edit set helpMessage($menu,2) FileBookmarksEdit if {$bookmarks(subMenus)} { set display List set newval 0 } else { set display Sub set newval 1 } $menu add command -label FileBookmarks$display \ -command "set bookmarks(subMenus) $newval; ::bookmarks::Refresh" set helpMessage($menu,3) FileBookmarks$display foreach tag [list Add File Edit $display] { configMenuText $menu FileBookmarks$tag FileBookmarks$tag $::language } if {$numBookmarkEntries == 0} { return } $menu add separator # Add each bookmark entry: set current $menu set inSubMenu 0 set nfolders 0 foreach entry $bookmarks(data) { if {$entry == ""} { continue } set isfolder [::bookmarks::isfolder $entry] if {$isfolder} { incr nfolders $menu.file add command -label [::bookmarks::Text $entry] \ -command "::bookmarks::AddCurrent $nfolders" } if {! $bookmarks(subMenus)} { if {$isfolder} { $current add command -label [::bookmarks::IndexText $entry] } elseif {!$isfolder} { $current add command -label [::bookmarks::IndexText $entry] \ -command [list ::bookmarks::Go $entry] } continue } # Move out of submenu where necessary: if {$isfolder && $inSubMenu} { set current [winfo parent $current] } if {$isfolder} { # Menu (folder) entry: set current [::bookmarks::NewSubMenu $current $entry] set inSubMenu 1 } else { # Bookmark entry: $current add command -label [::bookmarks::Text $entry] \ -command [list ::bookmarks::Go $entry] } } } # ::bookmarks::CanAdd: # Returns 1 if the current game can be added as a bookmark. # It must be in an open database, not a PGN file, and not game number 0. # proc ::bookmarks::CanAdd {} { if {! [sc_base inUse]} { return 0 } if {[sc_game number] == 0} { return 0 } if {[sc_base current] == [sc_info clipbase]} { return 0 } if {[file pathtype [sc_base filename]] != "absolute"} { return 0 } foreach suffix {.pgn .PGN .pgn.gz} { if {[string match "*$suffix" [sc_base filename]]} { return 0 } } return 1 } # ::bookmarks::AddCurrent: # Adds the current game to the bookmarks list. # proc ::bookmarks::AddCurrent {{folder 0}} { global bookmarks if {! [sc_base inUse]} { return } set text [::bookmarks::New game] set len [llength $bookmarks(data)] set fcount 0 for {set i 0} {$i < $len} {incr i} { if {[::bookmarks::isfolder [lindex $bookmarks(data) $i]]} { if {$fcount == $folder} { break } incr fcount } } set bookmarks(data) [linsert $bookmarks(data) $i $text] ::bookmarks::Save ::bookmarks::Refresh } # ::bookmarks::New: # Returns a bookmarks list entry for the current game or a new folder. # proc ::bookmarks::New {type} { if {$type == "folder"} { return [list "f" ""] } set text "[file tail [sc_base filename]]: [sc_game info result], " append text "[::utils::string::Surname [sc_game info white]] - " append text "[::utils::string::Surname [sc_game info black]], " append text "[::utils::string::CityName [sc_game info site]] " set round [sc_game info round] if {$round != "" && $round != "?"} { append text "($round) " } append text "[sc_game info year]" set list [list "g" $text] sc_game pgn lappend list [sc_base filename] [sc_game number] [sc_pos pgnOffset] lappend list [sc_game info white] [sc_game info black] lappend list [sc_game info year] [sc_game info site] lappend list [sc_game info round] [sc_game info result] return $list } # ::bookmarks::Go # # Jumps to a selected bookmark. # proc ::bookmarks::Go {entry} { if {[::bookmarks::isfolder $entry]} { return } set fname [lindex $entry 2] set gnum [lindex $entry 3] set ply [lindex $entry 4] set slot [sc_base slot $fname] if {$slot != 0} { sc_base switch $slot } else { busyCursor . if {[catch { ::file::Open $fname} result]} { unbusyCursor . tk_messageBox -icon warning -type ok -parent . \ -title "Scid" -message "Unable to load the database:\n$fname\n\n$result" return } unbusyCursor . set ::glist 1 ::recentFiles::add "[file rootname $fname].si4" } # Find and load the best database game matching the bookmark: set white [lindex $entry 5] set black [lindex $entry 6] set year [lindex $entry 7] set site [lindex $entry 8] set round [lindex $entry 9] set result [lindex $entry 10] set best [sc_game find $gnum $white $black $site $round $year $result] if {[catch {::game::Load $best}]} { tk_messageBox -icon warning -type ok -parent . \ -title "Scid" -message "Unable to load game number: $best" } else { sc_move pgn $ply flipBoardForPlayerNames $::myPlayerNames } ::windows::gamelist::Refresh ::tree::refresh ::windows::stats::Refresh updateMenuStates updateBoard -pgn updateTitle updateStatusBar } # ::bookmarks::DeleteChildren # # Deletes all submenus of a bookmark menu. # proc ::bookmarks::DeleteChildren {w} { foreach child [winfo children $w] { ::bookmarks::DeleteChildren $child destroy $child } } # ::bookmarks::NewSubMenu # # Creates a new bookmark submenu. # proc ::bookmarks::NewSubMenu {w entry} { set i 1 while {[winfo exists $w.m$i]} { incr i } $w add cascade -label [::bookmarks::Text $entry] -menu $w.m$i menu $w.m$i -tearoff 0 return $w.m$i } # Globals used for bookmark editing: # set bookmarks(edit) "" set bookmarks(ismenu) 0 # Button images for bookmark editing: image create photo bookmark_up -data { R0lGODdhGAAYAMIAALu7uwAAAMzM/5mZ/2ZmzP///zMzZgAAACwAAAAAGAAYAAADRgi63P4w ykmrvTirEPQKwtBpYChmpUmMVVAI5kCsbfGqMy25dpzPLAfvNij+gBCDUokjLJUUQ9OAkRpn 1Mvz6el6v+AwOAEAOw== } image create photo bookmark_down -data { R0lGODdhGAAYAMIAALu7uzMzZv///8zM/5mZ/2ZmzAAAAAAAACwAAAAAGAAYAAADSQi63P4w ykmrvRiHzbcWw0AQRfCFY0l1ATiSLGQINCiSRZ4b0UyjOB1PMgvddIXhxABEKinM1C5jkD4v 1WSGYbhuv+CweExeJAAAOw== } #---------------------------------------------------------------------- if {$png_image_support} { image create photo bookmark_up -data { iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0 U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAG0SURBVDiNjZHPaxNREMc/s7tpE5ukthET 2zTkqWujaNSiIOYmnrpnz/4bvXns+x+8eBOPPfQiiCJ6URDiRfESKoKC1CLa5ue+8ZBUjOxqv/AY 5s3wmS8zqCppr76+WfxXXVXxSJGJ7Brw0UT2VloPkAwwkTWIPLm4Wpv3fG/LRPbGkQEmsiVEnl+9 dLoYnqnSutbIiyePTWSb/wWYyOZE5Onq2eVypXLSe9vZRYIZrl8J84g8M5ENUwEmsr6IbC0vnQjr 9Wrm09efxM7xbmeXbC4nzQtmHpGXJrK1ZAci90uLxZvnGyb7+dsBI6egoArvd/YoFPNeI1xZnEDK UwAT2XuF/LE7l5vn5hCP3Ix/SAVgoTCL73ksVUq+qZ0qI/LCRHYBQOrrm3eBB4ATQTOBL63Wmvdl r8tBt8/+fo+wepx2+8Ow2+97qgD4wCvgdgA8BB7B2O5gGP9wTqeWG8dKbzBwqqwA3/8oDYLO9sbg r0sQO51k4ziMHToe3e9sb/RSz3ioUewmG5CpPEmJgN8OJmE4SgcEaYC5bEAgjoyvxM6hmtSZDNA3 r9tJvbNJn6Jp6CPqF7KJv5pbcXAUAAAAAElFTkSuQmCC } image create photo bookmark_down -data { iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0 U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHISURBVDiNpZG/bhNBEMa/XZ8tHDkI23JQ kiJchWiQgDSJBIiGgkM05AmivAEFV6bjeAieAMpcCWUQBYqlSFGgWeeCSUT+3Dk+39r3Z4fizigx d6ZgpdVKszO/b+YbRkT4n6NNBnTDCgGUC/Lrwja9qQAAbO3FI/ASB4cCJwUAeL+1PYpi9e8OACBR hD3nFMFgBD8Y4uHdRRRNyvMBmRJLnzzl6YAklSOkb5woFJmdC4jVODltIUqKO9B0w1oH8G4cKGsc SqkrM0dxgkqlrMlh6OqGNQ7vAHjCiAj687ebs7WZVw/u3alxrQRfhugHEaQM4Q8kGrPX0KpXwRnD YfdX3HGOf4BoWdjmGQcAsfV60/eDD+3d78EojCCHcSaStuH6QwxkhMOfJ0nHOT4B0aqwzbMrHhDR Rs/rb3/bF7JW1cDZHwswV5+B1+urzsGRmxUfjevYZXd1w6oyxr60bjZvLy0tVk49iQonjKSkzkG3 B6IVYZv7l01kk+vRDasJxtrzC3PzrVaz5LkXcJzuBYgeC9tsT27hL0AG0cHY10ajfuP83B2A6Kmw zc95a8wFZJD7AD4BeCls82NuEgAQUeG99ezN9Wn/RITfJHoJcxYSI+0AAAAASUVORK5CYII= } } #---------------------------------------------------------------------- # ::bookmarks::Edit # # Creates the bookmark editing window. # proc ::bookmarks::Edit {} { global bookmarks set w .bmedit if {[winfo exists $w]} { return } set bookmarks(old) $bookmarks(data) toplevel $w wm title $w "Scid: [tr FileBookmarksEdit]" # wm transient $w . bind $w {helpWindow Bookmarks} entry $w.e -width 40 -foreground black -background white \ -textvariable bookmarks(edit) -font font_Small -exportselection 0 bind $w.e {.bmedit.e configure -background lightYellow} bind $w.e {.bmedit.e configure -background white} trace variable bookmarks(edit) w ::bookmarks::EditRefresh pack $w.e -side top -fill x pack [frame $w.b2] -side bottom -fill x pack [frame $w.b1] -side bottom -fill x pack [frame $w.f] -side top -fill both -expand 1 listbox $w.f.list -width 50 -height 10 -yscrollcommand "$w.f.ybar set" \ -fg black -bg white -exportselection 0 -font font_Small -setgrid 1 scrollbar $w.f.ybar -takefocus 0 -command "$w.f.list yview" bind $w.f.list <> ::bookmarks::EditSelect pack $w.f.ybar -side right -fill y pack $w.f.list -side left -fill x -expand 1 foreach entry $bookmarks(data) { $w.f.list insert end [::bookmarks::IndexText $entry] } dialogbutton $w.b1.newFolder -text $::tr(NewSubmenu) \ -command {::bookmarks::EditNew folder} dialogbutton $w.b1.newGame -text [tr FileBookmarksAdd] \ -command {::bookmarks::EditNew game} if {! [::bookmarks::CanAdd]} { $w.b1.newGame configure -state disabled } dialogbutton $w.b1.delete -text $::tr(Delete) -command ::bookmarks::EditDelete button $w.b2.up -image bookmark_up -command {::bookmarks::EditMove up} button $w.b2.down -image bookmark_down -command {::bookmarks::EditMove down} foreach i [list $w.b2.up $w.b2.down] { $i configure -padx 0 -pady 0 -borderwidth 1 } dialogbutton $w.b2.ok -text "OK" -command ::bookmarks::EditDone dialogbutton $w.b2.cancel -text $::tr(Cancel) -command { set bookmarks(data) $bookmarks(old) catch {grab release .bmedit} destroy .bmedit } pack $w.b1.newFolder $w.b1.newGame $w.b1.delete -side left -padx 2 -pady 2 pack $w.b2.up $w.b2.down -side left -padx 2 -pady 2 pack $w.b2.cancel $w.b2.ok -side right -padx 2 -pady 2 set bookmarks(edit) "" wm withdraw $w update idletasks set x [expr {[winfo screenwidth $w]/2 - [winfo reqwidth $w]/2 \ - [winfo vrootx .]}] set y [expr {[winfo screenheight $w]/2 - [winfo reqheight $w]/2 \ - [winfo vrooty .]}] wm geom $w +$x+$y wm deiconify $w update catch {grab .bmedit} } # ::bookmarks::EditDone # # Updates the bookmarks and closes the bookmark editing window. # proc ::bookmarks::EditDone {} { catch {grab release .bmedit} destroy .bmedit ::bookmarks::Save ::bookmarks::Refresh } # ::bookmarks::EditRefresh # # Updates the bookmarks whenever the contents of the bookmark # editing entry box are changed. # proc ::bookmarks::EditRefresh {args} { global bookmarks set list .bmedit.f.list set sel [lindex [$list curselection] 0] if {$sel == ""} { return } set text $bookmarks(edit) set e [lindex $bookmarks(data) $sel] set e [::bookmarks::SetText $e $text] set text [::bookmarks::IndexText $e] set bookmarks(data) [lreplace $bookmarks(data) $sel $sel $e] $list insert $sel $text $list delete [expr {$sel + 1} ] $list selection clear 0 end $list selection set $sel } # ::bookmarks::EditSelect # # Sets the bookmark editing entry box when a bookmark is selected. # proc ::bookmarks::EditSelect {{sel ""}} { global bookmarks set list .bmedit.f.list set sel [lindex [$list curselection] 0] if {$sel == ""} { .bmedit.e delete 0 end return } if {$sel >= [llength $bookmarks(data)]} { $list selection clear 0 end set bookmarks(edit) "" return } set e [lindex $bookmarks(data) $sel] set bookmarks(ismenu) [::bookmarks::isfolder $e] set bookmarks(edit) [::bookmarks::Text $e] } # ::bookmarks::isfolder: # Returns 1 if this bookmark entry is a folder (submenu). # proc ::bookmarks::isfolder {entry} { if {[lindex $entry 0] == "f"} { return 1 } return 0 } # ::bookmarks::Text: # Returns the entry text of a bookmark. # proc ::bookmarks::Text {entry} { return [lindex $entry 1] } proc ::bookmarks::IndexText {entry} { set text "" if {[lindex $entry 0] == "f"} { append text "\[[lindex $entry 1]\]" } else { append text " [lindex $entry 1]" } return $text } proc ::bookmarks::SetText {entry text} { return [lreplace $entry 1 1 $text] } # ::bookmarks::EditMove # # Moves the selected bookmark "up" or "down" one place. # proc ::bookmarks::EditMove {{dir "up"}} { global bookmarks set w .bmedit set list $w.f.list set sel [lindex [$list curselection] 0] if {$sel == ""} { return } set e [lindex $bookmarks(data) $sel] set text [::bookmarks::IndexText $e] set newsel $sel if {$dir == "up"} { incr newsel -1 if {$newsel < 0} { return } } else { incr newsel if {$newsel >= [$list index end]} { return } } set bookmarks(data) [lreplace $bookmarks(data) $sel $sel] set bookmarks(data) [linsert $bookmarks(data) $newsel $e] $list selection clear 0 end $list delete $sel $list insert $newsel $text $list selection set $newsel } # ::bookmarks::EditDelete # # Deletes the selected bookmark. # proc ::bookmarks::EditDelete {} { global bookmarks set w .bmedit set list $w.f.list set sel [lindex [$list curselection] 0] if {$sel == ""} { return } set bookmarks(data) [lreplace $bookmarks(data) $sel $sel] $list selection clear 0 end $list delete $sel set bookmarks(edit) "" } # ::bookmarks::EditNew # # Inserts a new entry ("folder" for a submenu or "game" for the # current game) after the selected bookmark. # proc ::bookmarks::EditNew {{type "folder"}} { global bookmarks set w .bmedit set list $w.f.list set folder 0 if {[string index $type 0] == "f"} { set folder 1 set entry [::bookmarks::New folder] } else { set entry [::bookmarks::New game] } set sel [lindex [$list curselection] 0] if {$sel == ""} { lappend bookmarks(data) $entry set sel [$list index end] $list insert end [::bookmarks::IndexText $entry] $list selection clear 0 end $list selection set $sel $list see $sel ::bookmarks::EditSelect return } incr sel set bookmarks(data) [linsert $bookmarks(data) $sel $entry] $list insert $sel [::bookmarks::IndexText $entry] $list selection clear 0 end $list selection set $sel $list see $sel ::bookmarks::EditSelect } # ::bookmarks::Save # # Saves the bookmarks file, reporting any error in a message box if # reportError is true. # proc ::bookmarks::Save {{reportError 0}} { global bookmarks set f {} set filename [scidConfigFile bookmarks] if {[catch {open $filename w} f]} { if {$reportError} { tk_messageBox -title "Scid" -type ok -icon warning \ -message "Unable to write bookmarks file: $filename\n$f" } return } puts $f "# Scid [sc_info version] bookmarks file\n" foreach i {subMenus data} { puts $f "set bookmarks($i) [list [set bookmarks($i)]]" puts $f "" } close $f } # End of file: bookmark.tcl scid-4.3.0.cvs20120311/tcl/file/recent.tcl0000644000175000017500000001572011727223077017130 0ustar oliveroliver #################### # Recent files list: set recentFiles(limit) 10 ;# Maximum number of recent files to remember. set recentFiles(menu) 5 ;# Maximum number of files to show in File menu. set recentFiles(extra) 5 ;# Maximum number of files to show in extra menu. set recentFiles(data) {} ;# List of recently used files. catch {source [scidConfigFile recentfiles]} namespace eval ::recentFiles {} # ::recentFiles::save # Saves the recent-file-list file, reporting any error in a message box # if reportError is true. # proc ::recentFiles::save {{reportError 0}} { global recentFiles set f {} set filename [scidConfigFile recentfiles] if {[catch {open $filename w} f]} { if {$reportError} { tk_messageBox -title "Scid" -type ok -icon warning \ -message "Unable to write file: $filename\n$f" } return } puts $f "# Scid [sc_info version] recent files list" puts $f "" foreach i {limit menu extra data} { puts $f "set recentFiles($i) [list [set recentFiles($i)]]" puts $f "" } close $f } # ::recentFiles::add # Adds a file to the recent files list, or moves it to the front # if that file is already in the list. # proc ::recentFiles::add {fname} { global recentFiles if {$fname == "" } { return } set rlist $recentFiles(data) # Remove file ot be added from its current place in the # list, if it is there: while {1} { set idx [lsearch -exact $rlist $fname] if {$idx < 0} { break } set rlist [lreplace $rlist $idx $idx] } # Insert the current file at the start of the list: set rlist [linsert $rlist 0 $fname] # Trim the list if necessary: if {[llength $rlist] < $recentFiles(limit)} { set rlist [lrange $rlist 0 [expr {$recentFiles(limit) - 1} ]] } set recentFiles(data) $rlist # ::recentFiles::save } # ::recentFiles::load # Loads the selected recent file, or swtches to its database slot # if it is already open. # proc ::recentFiles::load {fname} { set rname $fname if {[file extension $rname] == ".si4"} { set rname [file rootname $rname] } for {set i 1} {$i <= [sc_base count total]} {incr i} { if {$rname == [sc_base filename $i]} { sc_base switch $i ::recentFiles::add $fname ::windows::gamelist::Refresh ::tree::refresh ::windows::stats::Refresh updateMenuStates updateBoard -pgn updateTitle updateStatusBar return } } ::file::Open $fname } ################################################################################# proc ::recentFiles::treeshow {menu} { global recentFiles set rlist $recentFiles(data) $menu delete 0 end set nfiles [llength $rlist] if {$nfiles > $recentFiles(limit)} { set nfiles $recentFiles(limit) } for {set i 0} {$i<$nfiles} {incr i} { set name [lindex $rlist $i] $menu add command -label "$name" -command [list ::file::openBaseAsTree $name] } } ################################################################################# # ::recentFiles::show # Adds the recent files to the end of the specified menu. # Returns the number of menu entries added. # proc ::recentFiles::show {menu} { global recentFiles set idx [$menu index end] incr idx set rlist $recentFiles(data) set nfiles [llength $rlist] set nExtraFiles [expr {$nfiles - $recentFiles(menu)} ] if {$nfiles > $recentFiles(menu)} { set nfiles $recentFiles(menu) } if {$nExtraFiles > $recentFiles(extra)} { set nExtraFiles $recentFiles(extra) } if {$nExtraFiles < 0} { set nExtraFiles 0 } # Add menu commands for the most recent files: for {set i 0} {$i < $nfiles} {incr i} { set fname [lindex $rlist $i] set mname [::recentFiles::menuname $fname] set text [file tail $fname] set num [expr {$i + 1} ] set underline -1 if {$num <= 9} { set underline 0 } if {$num == 10} { set underline 1 } $menu add command -label "$num: $mname" -underline $underline \ -command [list ::recentFiles::load $fname] set ::helpMessage($menu,$idx) " [file nativename $fname]" incr idx } # If no extra submenu of recent files is needed, return now: if {$nExtraFiles <= 0} { return $nfiles } # Now add the extra submenu of files: catch {destroy $menu.recentFiles} menu $menu.recentFiles $menu add cascade -label "..." -underline 0 -menu $menu.recentFiles set i $nfiles for {set extra 0} {$extra < $nExtraFiles} {incr extra} { set fname [lindex $rlist $i] incr i set mname [::recentFiles::menuname $fname] set text [file tail $fname] set num [expr {$extra + 1} ] set underline -1 if {$num <= 9} { set underline 0 } if {$num == 10} { set underline 1 } $menu.recentFiles add command -label "$num: $mname" -underline $underline \ -command [list ::recentFiles::load $fname] set ::helpMessage($menu.recentFiles,$extra) " $fname" } return [expr {$nfiles + 1} ] } # ::recentFiles::menuname # Given a full-path filename, returns a possibly shortened # version suitable for displaying in a menu, such as # "..../my/files/abc.pgn" instead of "/long/path/to/my/files/abc.pgn" # proc ::recentFiles::menuname {fname} { set mname $fname set mname [file nativename $mname] if {[file extension $mname] == [sc_info suffix index]} { set mname [file rootname $mname] } if {[string length $mname] < 25} { return $mname } # Generate a menu name " ..../path/filename" for the file: set dir [file dirname $fname] while {1} { set tail [file join [file tail $dir] $mname] set dir [file dirname $dir] if {[string length $tail] > 20} { break } set mname $tail } set mname [file join .... $mname] set mname [file nativename $mname] return $mname } # ::recentFiles::configure # Produces a dialog box for configuring the number of recent files # to display in the File menu and in a submenu. # proc ::recentFiles::configure {} { global recentFiles set recentFiles(temp_menu) $recentFiles(menu) set recentFiles(temp_extra) $recentFiles(extra) set w .recentFilesDlg toplevel $w wm title $w "Scid: [tr OptionsRecent]" label $w.lmenu -text $::tr(RecentFilesMenu) scale $w.menu -variable recentFiles(temp_menu) -from 0 -to 10 -length 250 \ -orient horizontal -showvalue 0 -tickinterval 1 -font font_Small frame $w.sep -height 4 label $w.lextra -text $::tr(RecentFilesExtra) scale $w.extra -variable recentFiles(temp_extra) -from 0 -to 10 -length 250 \ -orient horizontal -showvalue 0 -tickinterval 1 -font font_Small pack $w.lmenu $w.menu $w.sep $w.lextra $w.extra -side top -padx 10 addHorizontalRule $w pack [frame $w.b] -side bottom button $w.b.ok -text "OK" -command { set recentFiles(menu) $recentFiles(temp_menu) set recentFiles(extra) $recentFiles(temp_extra) catch {grab release .recentFilesDlg} destroy .recentFilesDlg ::recentFiles::save updateMenuStates } button $w.b.cancel -text $::tr(Cancel) \ -command "catch {grab release $w}; destroy $w" pack $w.b.cancel $w.b.ok -side right -padx 5 -pady 5 catch {grab $w} } scid-4.3.0.cvs20120311/tcl/file/spellchk.tcl0000644000175000017500000002241011727223077017447 0ustar oliveroliver### spellchk.tcl ### Part of Scid. ### Copyright (C) 2000-2003 Shane Hudson. set spellcheckType Player # Maximum nr of corrections to be scanned # Set to zero to find them all # Set to some positive number to limit # set spell_maxCorrections 0 set spellcheckSurnames 0 set spellcheckAmbiguous 1 # Remember what we are doing, being # - "idle" - nothing special # - "scanning" - finding corrections # - "correcting" - making corrections # set spellstate idle # readSpellCheckFile: # Presents a File Open dialog box for a Scid spellcheck file, # then tries to read the file. If the parameter "message" is true # (which is the default), a message box indicating the results # is displayed. # proc readSpellCheckFile {{message 1}} { global spellCheckFile set ftype { { "Scid Spellcheck files" {".ssp" ".ssp.gz"} } } set fullname [tk_getOpenFile -initialdir [pwd] -filetypes $ftype -title "Open Spellcheck file"] if {![string compare $fullname ""]} { return 0 } if {[catch {sc_name read $fullname} result]} { if {$message} { tk_messageBox -title "ERROR: Unable to read file" -type ok \ -icon error -message "Scid could not correctly read the spellcheck file you selected:\n\n$result" } return 0 } set spellCheckFile $fullname if {$message} { tk_messageBox -title "Spellcheck file loaded." -type ok -icon info \ -message "Spellcheck file [file tail $fullname] loaded:\n[lindex $result 0] players, [lindex $result 1] events, [lindex $result 2] sites, [lindex $result 3] rounds.\n\nTo have this file automatically loaded every time you start Scid, select the \"Save Options\" from the Options menu before exiting." } return 1 } # Set the environment when the correction scan starts # proc startScanning {} { global spellstate global spellcheckType # Remember that we are scanning # set spellstate scanning # Disable all buttons except the cancel button that we # transfer into a stop button # .spellcheckWin.buttons.ambig configure -state disabled .spellcheckWin.buttons.ok configure -state disabled .spellcheckWin.buttons.cancel configure -text "Stop" bind .spellcheckWin ".spellcheckWin.buttons.cancel invoke; break" if {$spellcheckType == "Player"} { .spellcheckWin.buttons.surnames configure -state disabled } } # Set the environment when the correction scan stops # proc stopScanning {} { global spellstate global spellcheckType # Remember that we are not scanning # set spellstate idle # Enable all buttons and set the cancel button back # .spellcheckWin.buttons.ambig configure -state enabled .spellcheckWin.buttons.ok configure -state enabled .spellcheckWin.buttons.cancel configure -text "Cancel" bind .spellcheckWin ".spellcheckWin.buttons.cancel invoke; break" if {$spellcheckType == "Player"} { .spellcheckWin.buttons.surnames configure -state enabled } } # Set the environment when correction starts # proc startCorrecting {} { global spellstate global spellcheckType # Remember that we are correcting # set spellstate correcting # Disable all buttons # .spellcheckWin.buttons.ambig configure -state disabled .spellcheckWin.buttons.ok configure -state disabled .spellcheckWin.buttons.cancel configure -state disabled if {$spellcheckType == "Player"} { .spellcheckWin.buttons.surnames configure -state disabled } } # Start the correction scan and dump the results into the # text window. After this the user may edit the correction # 'script' and actually make the corrections. # # While the scan is running, all buttons except a stop button # are disabled. # proc updateSpellCheckWin {type} { global spellcheckType spell_maxCorrections spellcheckSurnames global spellcheckAmbiguous busyCursor . .spellcheckWin.text.text delete 1.0 end .spellcheckWin.text.text insert end "Scid is finding spelling corrections.\nPlease wait..." # Enable the progress bar # sc_progressBar .spellcheckWin.progress bar 451 21 time startScanning update idletasks if {[catch {sc_name spellcheck -max $spell_maxCorrections \ -surnames $spellcheckSurnames \ -ambiguous $spellcheckAmbiguous $type} result]} { stopScanning unbusyCursor . tk_messageBox -type ok -icon info -title "Scid: Spellcheck results" \ -parent $parent -message $result return } stopScanning .spellcheckWin.text.text delete 1.0 end .spellcheckWin.text.text insert end $result unbusyCursor . } # Create the spell checking window with its event handlers # and start the initial correction scan # proc openSpellCheckWin {type {parent .}} { global spellcheckType spellcheckSurnames global spellcheckAmbiguous global spellstate set w .spellcheckWin if {[winfo exists $w]} { tk_messageBox -type ok -icon info -title "Scid: Spellcheck error" \ -parent $parent \ -message "The spellcheck window is already open; close it first." return } if {[lindex [sc_name read] 0] == 0} { # No spellcheck file loaded, so try to open one: if {![readSpellCheckFile]} { return } } set spellcheckType $type toplevel $w wm title $w "Scid: Spellcheck Results" wm minsize $w 50 10 bind $w { helpWindow Maintenance } bind $w "recordWinSize $w" # Create the button pad at the bottom of the window # set f [ttk::frame $w.buttons] pack $f -side bottom -ipady 1 -fill x # Draw a canvas ("progress") to hold the progress bar # and put it above the buttons at the bottom of the window # canvas $w.progress -width 450 -height 20 -bg white -relief solid -border 1 $w.progress create rectangle 0 0 0 0 -fill blue -outline blue -tags bar $w.progress create text 445 10 -anchor e -font font_Regular -tags time \ -fill black -text "0:00 / 0:00" pack $w.progress -side bottom # The ambiguous check mark # Hitting it starts a new correction scan ttk::checkbutton $f.ambig -variable spellcheckAmbiguous \ -text "Ambiguous" -command "updateSpellCheckWin $type" pack $f.ambig -side left -padx 2 -ipady 2 -ipadx 3 # When correcting player names, we add a surnames option # if {$type == "Player"} { # The surnames check mark # Hitting it starts a new correction scan # ttk::checkbutton $f.surnames -variable spellcheckSurnames \ -text "Surnames" -command "updateSpellCheckWin Player" pack $f.surnames -side left -padx 2 -ipady 2 -ipadx 3 } # The button to start the correction making... # ttk::button $f.ok -text "Make Corrections" -underline 0 -command { busyCursor . set spelltext "" catch {set spelltext [.spellcheckWin.text.text get 1.0 end-1c]} .spellcheckWin.text.text delete 1.0 end .spellcheckWin.text.text insert end \ "Scid is making the spelling corrections.\nPlease wait..." # Enable the progress bar # sc_progressBar .spellcheckWin.progress bar 451 21 time update idletasks set spell_result "" startCorrecting set result [catch {sc_name correct $spellcheckType $spelltext} spell_result] set messageIcon info if {$result} { set messageIcon error } tk_messageBox -type ok -parent .spellcheckWin -icon $messageIcon \ -title "Scid: Spellcheck results" -message $spell_result unbusyCursor . focus . destroy .spellcheckWin sc_game tags reload updateBoard -pgn ::windows::gamelist::Refresh } bind $w "$f.ok invoke; break" # The cancel button operates in an either/or context # While some process is running, it simply stops it # In other cases, spell checking is left # ttk::button $f.cancel -text "Cancel" -underline 0 -command { if {$spellstate == "scanning" || $spellstate == "correcting"} { sc_progressBar } else { focus . destroy .spellcheckWin } } bind $w "$f.cancel invoke; break" pack $f.cancel $f.ok -side right -padx 5 # Prepare the text pad # set f [ttk::frame $w.text] pack $w.text -expand yes -fill both ttk::scrollbar $f.ybar -command "$f.text yview" ttk::scrollbar $f.xbar -orient horizontal -command "$f.text xview" text $f.text -yscrollcommand "$f.ybar set" -xscrollcommand "$f.xbar set" \ -setgrid 1 -width $::winWidth($w) -height $::winHeight($w) \ -background white -wrap none $f.text configure -tabs \ [font measure font_Regular "xxxxxxxxxxxxxxxxxxxxxxxxx"] grid $f.text -row 0 -column 0 -sticky news grid $f.ybar -row 0 -column 1 -sticky news grid $f.xbar -row 1 -column 0 -sticky news grid rowconfig $w.text 0 -weight 1 -minsize 0 grid columnconfig $w.text 0 -weight 1 -minsize 0 focus $f.text # Start the initial search for spelling corrections # updateSpellCheckWin $type } scid-4.3.0.cvs20120311/tcl/file/epd.tcl0000644000175000017500000003774211727223077016430 0ustar oliveroliver# epd.tcl: EPD editing windows for Scid. # Copyright (C) 2000 Shane Hudson # Copyright (C) 2007 Pascal Georges set maxEpd [sc_info limit epd] set delayEpd 5 array set epdTimer {} ################################################################################ # ################################################################################ proc storeEpdText {id} { sc_epd set $id [.epd$id.text get 1.0 "end-1c"] } ################################################################################ # ################################################################################ proc storeEpdTexts {} { global maxEpd for {set i 1} {$i <= $maxEpd} {incr i} { if {[winfo exists .epd$i]} { storeEpdText $i } } } ################################################################################ # ################################################################################ proc updateEpdWin {id} { set w .epd$id $w.text delete 1.0 end $w.text insert end [sc_epd get $id] # Update the EPD window status bar: set str " -- " if {[sc_epd readonly $id]} { set str " %% " } elseif {[sc_epd altered $id]} { set str " XX " } append str "[file tail [sc_epd name $id]] [sc_epd size $id] positions" set moves [lsort -ascii [sc_epd moves $id]] set len [llength $moves] if {$len} { append str " \[[llength $moves]: [join $moves " "]\]" } else { append str { [No moves from this position]} } $w.status configure -text $str unset str } ################################################################################ # ################################################################################ proc updateEpdWins {} { global maxEpd for {set i 1} {$i <= $maxEpd} {incr i} { if {[winfo exists .epd$i]} { updateEpdWin $i } } } ################################################################################ # ################################################################################ proc closeEpdWin {id} { catch {sc_epd close $id} } ################################################################################ # ################################################################################ proc confirmCloseEpd {id} { if {! [winfo exists .epd$id]} { return } storeEpdText $id if {[sc_epd altered $id] && ! [sc_epd readonly $id]} { set result [tk_dialog .dialog "Save changes?" \ "This file has been altered; do you want to save it?" \ "" 0 "Save changes" "Close without saving" "Cancel"] if {$result == 2} { return } if {$result == 0} { sc_epd write $id } } sc_epd close $id focus . destroy .epd$id return } ################################################################################ # ################################################################################ proc saveEpdWin {id} { set w .epd$id busyCursor . 1 set temp_oldcursor [$w.text cget -cursor] $w.text configure -cursor watch update idletasks storeEpdText $id sc_epd write $id updateEpdWin $id $w.text configure -cursor $temp_oldcursor busyCursor . 0 } ################################################################################ # ################################################################################ proc epd_MoveToDeepestMatch {id} { if {! [winfo exists .epd$id]} { return } sc_move ply [sc_epd deepest $id] updateBoard return } ################################################################################ # ################################################################################ proc newEpdWin {cmd {fname ""}} { global maxEpd set showErrors 1 if {$cmd == "openSilent"} { set showErrors 0 } if {$fname == ""} { set showErrors 1 } if {[sc_epd available] < 1} { if {$showErrors} { tk_messageBox -type ok -icon info -title "Too many EPD files open" \ -message "You already have $maxEpd EPD files open; close one first." } return 0 } set new_types { {"EPD files" {".epd"} } } set open_types $new_types if {[sc_info gzip]} { set open_types { {"EPD files" {".epd" ".epd.gz"} } } } if {$fname == ""} { if {$cmd == "create"} { set fname [tk_getSaveFile -initialdir $::initialDir(epd) -filetypes $new_types -title "Create an EPD file"] if {[string compare [file extension $fname] ".epd"] != 0} { append fname ".epd" } } elseif {$cmd == "open"} { set fname [tk_getOpenFile -initialdir $::initialDir(epd) -filetypes $open_types -title "Open an EPD file"] } else { return 0 } } if {$fname == ""} { return 0 } busyCursor . 1 if {[catch {sc_epd $cmd $fname} result]} { if {$showErrors} { busyCursor . 0 tk_messageBox -type ok -icon error -title "Scid: EPD file error" \ -message $result } return 0 } busyCursor . 0 set id $result set w .epd$id toplevel $w wm title $w "Scid EPD: [file tail $fname]" wm minsize $w 40 1 bind $w "closeEpdWin $id" bind $w { helpWindow EPD } frame $w.grid text $w.text -background white -font font_Regular -width 60 -height 7 \ -wrap none -setgrid 1 -yscrollcommand "$w.ybar set" \ -xscrollcommand "$w.xbar set" scrollbar $w.ybar -takefocus 0 -command "$w.text yview" scrollbar $w.xbar -orient horizontal -takefocus 0 -command "$w.text xview" label $w.status -width 1 -anchor w -font font_Small -relief sunken listbox $w.lb -background white -font font_Regular -width 60 -height 7 -setgrid 1 -yscrollcommand "$w.ybar2 set" \ -xscrollcommand "$w.xbar2 set" -selectmode single scrollbar $w.ybar2 -takefocus 0 -command "$w.lb yview" scrollbar $w.xbar2 -orient horizontal -takefocus 0 -command "$w.lb xview" frame $w.menu -borderwidth 3 -relief raised pack $w.menu -side top -fill x menubutton $w.menu.file -text File -menu $w.menu.file.m -underline 0 menubutton $w.menu.edit -text Edit -menu $w.menu.edit.m -underline 0 menubutton $w.menu.tools -text Tools -menu $w.menu.tools.m -underline 0 menubutton $w.menu.help -text Help -menu $w.menu.help.m -underline 0 foreach i {file edit tools help} { menu $w.menu.$i.m -tearoff 0 pack $w.menu.$i -side left } set m $w.menu.file.m $m add command -label "New" -acc "Ctrl+N" -underline 0 \ -command {newEpdWin create} bind $w {newEpdWin create} $m add command -label "Open" -acc "Ctrl+O" -underline 0 \ -command {newEpdWin open} bind $w {newEpdWin open} $m add command -label "Save" -acc "Ctrl+S" -underline 0 \ -command "saveEpdWin $id" if {[sc_epd readonly $id]} { $m entryconfig "Save" -state disabled } else { bind $w "saveEpdWin $id; break" } $m add command -label "Close" -acc "Ctrl+Q" -underline 0 \ -command "confirmCloseEpd $id" bind $w "confirmCloseEpd $id" set m $w.menu.edit.m $m add command -label "Cut" -acc "Ctrl+X" -underline 2 -command "tk_textCut $w.text" bind $w "tk_textCut $w.text; break" $m add command -label "Copy" -acc "Ctrl+C" -underline 0 -command "tk_textCopy $w.text" bind $w "tk_textCopy $w.text; break" $m add command -label "Paste" -acc "Ctrl+V" -underline 0 -command "tk_textPaste $w.text" bind $w "tk_textPaste $w.text; break" $m add command -label "Select All" -acc "Ctrl+A" -underline 7 \ -command "$w.text tag add sel 1.0 end" bind $w "$w.text tag add sel 1.0 end; break" $m add separator $m add command -label "Revert" -acc "Ctrl+R" -underline 0 \ -command "updateEpdWin $id" bind $w "updateEpdWin $id; break" $m add command -label "Sort lines" -accel "Ctrl+Shift+S" \ -underline 0 -command "epd_sortLines $w.text" bind $w "epd_sortLines $w.text; break" set m $w.menu.tools.m $m add command -label "Find Deepest game position" \ -underline 5 -command "epd_MoveToDeepestMatch $id" $m add separator $m add command -label "Next position in file" \ -accelerator "Ctrl+DownArrow" -underline 0 \ -command "sc_epd next $id; updateBoard -pgn" bind $w "sc_epd next $id; updateBoard -pgn; break" $m add command -label "Previous position in file" \ -accelerator "Ctrl+UpArrow" -underline 0 \ -command "sc_epd prev $id; updateBoard -pgn" bind $w "sc_epd prev $id; updateBoard -pgn; break" $m add separator $m add command -label "Paste analysis" -accelerator "Ctrl+Shift+A" \ -underline 6 -command "epd_pasteAnalysis $w.text" bind $w "epd_pasteAnalysis $w.text; break" $m add command -label "Annotate positions" -command "epd_Analyse $w.text $id" $m add separator $m add command -label "Strip out EPD field" -underline 0 \ -command "epd_chooseStripField $id" $w.menu.help.m add command -label "EPD files help" -underline 0 \ -acc "F1" -command "helpWindow EPD" $w.menu.help.m add command -label "General index" -underline 0 \ -command "helpWindow Index" pack $w.status -side bottom -fill x pack $w.grid -fill both -expand yes grid $w.text -in $w.grid -row 0 -column 0 -sticky news grid $w.ybar -in $w.grid -row 0 -column 1 -sticky news grid $w.xbar -in $w.grid -row 1 -column 0 -sticky news grid $w.lb -in $w.grid -row 2 -column 0 -sticky news grid $w.ybar2 -in $w.grid -row 2 -column 1 -sticky news grid $w.xbar2 -in $w.grid -row 3 -column 0 -sticky news grid rowconfig $w.grid 0 -weight 1 -minsize 0 grid columnconfig $w.grid 0 -weight 1 -minsize 0 # Right-mouse button cut/copy/paste menu: menu $w.text.edit -tearoff 0 $w.text.edit add command -label "Cut" -command "tk_textCut $w.text" $w.text.edit add command -label "Copy" -command "tk_textCopy $w.text" $w.text.edit add command -label "Paste" -command "tk_textPaste $w.text" bind $w.text "tk_popup $w.text.edit %X %Y" updateEpdWin $id loadEpdLines $id bind $w.lb <> "refreshEpd $id" return 1 } ################################################################################ # ################################################################################ proc refreshEpd { id } { set w .epd$id set idx [ expr [$w.lb curselection] +1 ] sc_epd load $id $::selection($id) $idx set ::selection($id) $idx updateBoard -pgn } ################################################################################ # ################################################################################ proc loadEpdLines { id } { set w .epd$id set size [sc_epd size $id ] for { set i 1 } { $i <= $size } { incr i } { sc_epd next $id set line [sc_epd get $id] set line [string map {"\n" "; "} $line] set fen [string range [sc_pos fen] 0 end-4] $w.lb insert end "$i $fen $line" } $w.lb selection set 0 if {! [catch {sc_epd load $id $size 1} ]} { set ::selection($id) 1 updateBoard -pgn } } ################################################################################ # ################################################################################ proc epd_sortLines {textwidget} { if {! [winfo exists $textwidget]} { return } set text [$textwidget get 1.0 "end-1c"] set fieldlist [split $text "\n"] set sortedlist [lsort $fieldlist] while {[lindex $sortedlist 0] == ""} { set sortedlist [lrange $sortedlist 1 end] } set newtext [join $sortedlist "\n"] append newtext "\n" if {! [string compare $text $newtext]} { return } $textwidget delete 1.0 end $textwidget insert end "$newtext" } ################################################################################ # epd_Analyse: # Pastes current chess engine analysis into this EPD file position. ################################################################################ proc epd_Analyse { textwidget id } { global analysis if {! [winfo exists $textwidget]} { return } # choose analysis time set y .epdDelay toplevel $y wm title $y "Scid EPD" label $y.label -text $::tr(AnnotateTime:) pack $y.label -side top -pady 5 -padx 5 spinbox $y.spDelay -background white -width 8 -textvariable ::delayEpd -from 1 -to 300 -increment 1 -validate all -vcmd { regexp {^[0-9]+$} %P } pack $y.spDelay -side top -pady 5 button $y.ok -text "OK" -command "destroy $y ; epd_LaunchAnalysis $id $textwidget" pack $y.ok -side right -padx 5 -pady 5 focus $y.spDelay update ; # or grab will fail grab $y } ################################################################################ # strips all fields that will be pasted from analysis window ################################################################################ proc epd_clearEpdFields {id} { foreach field { "acd" "acn" "ce" "pv" } { set result [sc_epd strip $id $field] updateEpdWin $id } } ################################################################################ # ################################################################################ proc epd_LaunchAnalysis {id textwidget} { if {! [winfo exists .analysisWin1]} { makeAnalysisWin } epd_clearEpdFields $id set w .epd$id set size [sc_epd size $id ] set ::epdTimer($id) 0 for { set i 1 } { $i <= $size } { incr i } { $w.lb selection clear [expr $::selection($id) - 1] $w.lb selection set [expr $i -1] $w.lb see [expr $i -1] refreshEpd $id after [expr $::delayEpd * 1000 ] "set ::epdTimer($id) 1" vwait ::epdTimer($id) epd_pasteAnalysis $textwidget saveEpdWin $id if {! [winfo exists .analysisWin1]} { break } } } ################################################################################ # epd_pasteAnalysis: # Pastes current chess engine analysis into this EPD file position. ################################################################################ proc epd_pasteAnalysis {textwidget} { global analysis if {! [winfo exists $textwidget]} { return } if {! [winfo exists .analysisWin1]} { return } $textwidget insert insert "acd $analysis(depth1)\n" $textwidget insert insert "acn $analysis(nodes1)\n" $textwidget insert insert "acs $analysis(time1)\n" set ce [expr {int($analysis(score1) * 100)} ] if {[sc_pos side] == "black"} { set ce [expr {0 - $ce} ] } $textwidget insert insert "ce $ce\n" if { $analysis(uci1) } { $textwidget insert insert "pv " set moves [::uci::formatPv $analysis(moves1) $analysis(fen1)] $textwidget insert insert [addMoveNumbers [::trans $moves]] $textwidget insert insert "\n" } else { $textwidget insert insert "pv $analysis(moves1)\n" } } set epd_stripField "" ################################################################################ # ################################################################################ proc epd_chooseStripField {id} { global epd_stripField if {! [winfo exists .epd$id]} { return } set w [toplevel .epdStrip] wm title $w "Scid: Strip EPD field" wm resizable $w false false label $w.label -text "Enter the name of the EPD field you want\n\ removed from all positions in this file:" entry $w.e -width 10 -background white -textvariable epd_stripField pack $w.label $w.e -side top -pady 5 -padx 5 addHorizontalRule $w set b [frame $w.buttons] pack $b -side bottom -pady 5 button $b.ok -text "Strip EPD field" \ -command "epd_stripEpdField $id \$epd_stripField" button $b.cancel -text "Cancel" -command "focus .epd$id; destroy $w" pack $b.ok $b.cancel -side left -padx 5 bind $w "$b.ok invoke" bind $w "$b.cancel invoke" focus .epdStrip.e grab .epdStrip } ################################################################################ # ################################################################################ proc epd_stripEpdField {id field} { if {! [winfo exists .epdStrip]} { return } if {! [string compare $field ""]} { beep; return } set result [sc_epd strip $id $field] updateEpdWin $id tk_messageBox -type ok -icon info -title "Scid: EPD field stripped" \ -message "Scid found and stripped an EPD field named \"$field\" from\ $result positions." focus .epd$id destroy .epdStrip } ################################################################################ # ################################################################################ scid-4.3.0.cvs20120311/tcl/file/finder.tcl0000644000175000017500000004320611727223077017117 0ustar oliveroliver #################### # File finder window set ::file::finder::data(dir) [pwd] set ::file::finder::data(sort) name set ::file::finder::data(recurse) 0 set ::file::finder::data(stop) 0 set ::file::finder::data(Scid) 1 set ::file::finder::data(PGN) 1 set ::file::finder::data(Rep) 1 set ::file::finder::data(EPD) 1 set ::file::finder::data(Old) 1 image create photo ::file::finder::updir -data { R0lGODdhGQAUAKEAANnZ2QAAAPD/gAAngSwAAAAAGQAUAAACToSPqcvtEGJ8LIh7A00WY71B 0kiWnIemHmh06pshrjAM8CpjdX3HR7fboXifnM6WIvpaHmUTuYQ8g1Tcb0gVWpk9FUvaTX1F pfIohE4zCgA7 } #---------------------------------------------------------------------- if {$png_image_support} { image create photo ::file::finder::updir -data { iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABfklE QVR42s2TsWtTURTGfwkOQjWxi6BDF4da0EGEaoJdG3CIKQ5KrGNWwX9D0k5i1hoQQ7bSsXRwiSRi UwgBWzRJ0VQSF4s6pN5zjsN7eeXV8FBcPPBxuZfzfec7594L/1OkADuB1F+RP/U71mo3rNVu2IuX pT8Siftr7dv3r7yubzL88pHBoMeZs6d59HgZoDbB2RiFmC9gB58/kEye5/BwGKirKvF4HCfOSzIL zvv9HrfStzk1Tp4+d4H33SZgmCrP1yo8eHgXFUEDongwpbnzBuBYYDT6EVQul6usFJ9hGPn8UuTw AgFiMUyFanWd4pOnAKwWS4g47t3Peg5MMVVUFVEXFjAznPwkl8uQvbPI/PUMtfoGaor4M1CfrCao SFhAVXDOBX0CiLiA5DnwiGaK6AkBw3DuKLAJsJD2+r9x8xozMxdJJKa4PHeJK1dnf5+BOxqFKm69 qhxX8+1GDrGzv8fb7bpn18xz4l/fpNh91w3tCxGvLQqFf/6BvwBEXv0OVwBBhgAAAABJRU5ErkJg gg== } } #---------------------------------------------------------------------- proc ::file::finder::Open {} { set w .finder if {[winfo exists $w]} { return } toplevel $w wm title $w "Scid: $::tr(FileFinder)" bind $w {helpWindow Finder} setWinLocation $w bind $w "recordWinSize $w" menu $w.menu $w configure -menu $w.menu $w.menu add cascade -label FinderFile -menu $w.menu.file menu $w.menu.file $w.menu.file add checkbutton -label FinderFileSubdirs \ -variable ::file::finder::data(recurse) -onvalue 1 -offvalue 0 \ -command ::file::finder::Refresh $w.menu.file add separator $w.menu.file add command -label FinderFileClose -command "destroy $w" $w.menu add cascade -label FinderSort -menu $w.menu.sort menu $w.menu.sort foreach {name value} {Type type Size size Mod mod Filename name Path path} { $w.menu.sort add radiobutton -label FinderSort$name \ -variable ::file::finder::data(sort) -value $value \ -command {::file::finder::Refresh -fast} } $w.menu add cascade -label FinderTypes -menu $w.menu.types menu $w.menu.types foreach type {Scid Old PGN Rep EPD} { $w.menu.types add checkbutton -label FinderTypes$type \ -variable ::file::finder::data($type) -onvalue 1 -offvalue 0 \ -command ::file::finder::Refresh } $w.menu add cascade -label FinderHelp -menu $w.menu.helpmenu menu $w.menu.helpmenu $w.menu.helpmenu add command -label FinderHelpFinder \ -accelerator F1 -command {helpWindow Finder} $w.menu.helpmenu add command -label FinderHelpIndex -command {helpWindow Index} pack [frame $w.d] -side top -fill x label $w.d.label -text "$::tr(FinderDir):" -font font_Small set ::file::finder::data(menu) [tk_optionMenu $w.d.mb ::file::finder::data(dir) ""] $w.d.mb configure -font font_Small -width 1 -anchor e $::file::finder::data(menu) configure -font font_Small button $w.d.up -image ::file::finder::updir -command {::file::finder::Refresh ..} pack $w.d.label -side left -padx 5 pack $w.d.up -side right -padx 5 pack $w.d.mb -side left -fill x -expand yes frame $w.t frame $w.b text $w.t.text -width 65 -height 25 -font font_Small -wrap none \ -fg black -bg white -yscrollcommand "$w.t.ybar set" -setgrid 1 \ -cursor top_left_arrow scrollbar $w.t.ybar -command "$w.t.text yview" -width 12 $w.t.text tag configure Dir -foreground brown $w.t.text tag configure Vol -foreground gray25 $w.t.text tag configure PGN -foreground blue $w.t.text tag configure Scid -foreground red $w.t.text tag configure Old -foreground black $w.t.text tag configure Rep -foreground darkGreen $w.t.text tag configure EPD -foreground orange $w.t.text tag configure bold -font font_SmallBold $w.t.text tag configure center -justify center set xwidth [font measure [$w.t.text cget -font] "x"] set tablist {} foreach {tab justify} {15 r 30 r 32 l 50 l} { set tabwidth [expr {$xwidth * $tab} ] lappend tablist $tabwidth $justify } $w.t.text configure -tabs $tablist bindMouseWheel $w $w.t.text checkbutton $w.b.sub -text [tr FinderFileSubdirs] \ -variable ::file::finder::data(recurse) -onvalue 1 -offvalue 0 \ -command ::file::finder::Refresh dialogbutton $w.b.stop -textvar ::tr(Stop) -command {set finder(stop) 1 } dialogbutton $w.b.help -textvar ::tr(Help) -command {helpWindow Finder} dialogbutton $w.b.close -textvar ::tr(Close) -command "destroy $w" bind $w { if {[winfo exists .finder.t.text.ctxtMenu]} { destroy .finder.t.text.ctxtMenu focus .finder } else { .finder.b.stop invoke } } # Bind left button to close ctxt menu: bind $w { if {[winfo exists .finder.t.text.ctxtMenu]} { destroy .finder.t.text.ctxtMenu focus .finder } } pack $w.b -side bottom -fill x packbuttons right $w.b.close $w.b.help $w.b.stop packbuttons left $w.b.sub pack $w.t -side top -fill both -expand yes pack $w.t.ybar -side right -fill y pack $w.t.text -side left -fill both -expand yes ::file::finder::ConfigMenus ::file::finder::Refresh } proc ::file::finder::Refresh {{newdir ""}} { variable data set w .finder if {! [winfo exists $w]} { return } set t $w.t.text # When parameter is "-fast", just re-sort the existing data: set fastmode 0 if {$newdir == "-fast"} { set fastmode 1 set newdir "" } if {$newdir == ".."} { set newdir [file dirname $data(dir)] } if {$newdir != ""} { set data(dir) $newdir } busyCursor . set data(stop) 0 $w.b.close configure -state disabled $w.b.help configure -state disabled $w.b.sub configure -state disabled $w.b.stop configure -state normal catch {grab $w.b.stop} $t configure -state normal update if {$fastmode} { set flist $data(flist) } else { set flist [::file::finder::GetFiles $data(dir)] set data(flist) $flist } switch $data(sort) { "none" {} "type" { set flist [lsort -decreasing -index 1 $flist] } "size" { set flist [lsort -integer -decreasing -index 0 $flist] } "name" { set flist [lsort -dict -index 2 $flist] } "path" { set flist [lsort -dict -index 3 $flist] } "mod" { set flist [lsort -integer -decreasing -index 4 $flist] } } set hc yellow $t delete 1.0 end set dcount 0 $t insert end "$::tr(FinderDirs)\n" {center bold} set dlist {} # Insert drive letters, on Windows: if {$::windowsOS} { foreach drive [lsort -dictionary [file volume]] { $t insert end " $drive " [list Vol v$drive] $t insert end " " $t tag bind v$drive <1> [list ::file::finder::Refresh $drive] $t tag bind v$drive \ "$t tag configure [list v$drive] -background $hc" $t tag bind v$drive \ "$t tag configure [list v$drive] -background {}" } $t insert end "\n" } # Insert parent directory entry: lappend dlist .. # Generate other directory entries: set dirlist [lsort -dictionary [glob -nocomplain [file join $data(dir) *]]] foreach dir $dirlist { if {[file isdir $dir]} { lappend dlist $dir } } foreach dir $dlist { if {$dcount != 0} { set sep "\n" if {$dcount % 2 != 0} { set sep "\t\t\t" } $t insert end $sep } incr dcount if {$dir == ".."} { set d .. $t insert end " .. ($::tr(FinderUpDir)) " [list Dir d..] } else { set d [file tail $dir] $t insert end " $d " [list Dir d$d] } $t tag bind d$d <1> [list ::file::finder::Refresh $dir] $t tag bind d$d \ "$t tag configure [list d$d] -background $hc" $t tag bind d$d \ "$t tag configure [list d$d] -background {}" } # Add File section headings: $t insert end "\n\n" if {[llength $flist] != 0} { foreach i {Type Size Mod Name Path} v {type size mod name path} { $t tag configure s$i -font font_SmallBold $t tag bind s$i <1> "set ::file::finder::data(sort) $v; ::file::finder::Refresh -fast" $t tag bind s$i "$t tag config s$i -foreground red" $t tag bind s$i "$t tag config s$i -foreground {}" } $t insert end "$::tr(FinderFiles)\n" {center bold} $t insert end " " $t insert end "[tr FinderSortType]" sType $t insert end "\t" $t insert end "[tr FinderSortSize]" sSize $t insert end "\t" $t insert end "[tr FinderSortMod]" sMod $t insert end "\t" $t insert end "[tr FinderSortName]" sName $t insert end "\t" $t insert end "[tr FinderSortPath]" sPath $t insert end "\n" } # Add each file: foreach i $flist { set size [lindex $i 0] set type [lindex $i 1] set fname [lindex $i 2] set path [lindex $i 3] set mtime [lindex $i 4] set est [lindex $i 5] $t insert end "\n " $t insert end $type [list $type f$path] set esize "" if {$est} { set esize "~" } append esize [::utils::thousands $size] $t insert end "\t$esize" f$path $t insert end "\t[clock format $mtime -format {%b %d %Y}]" f$path $t insert end "\t$fname\t" f$path set dir [file dirname $path] set tail [file tail $path] if {$dir == "."} { set fullpath $data(dir)/$tail } else { set fullpath $data(dir)/$dir/$tail } $t tag bind f$path "::file::Open [list $fullpath]" # Bind right button to popup a contextual menu: $t tag bind f$path "::file::finder::contextMenu .finder.t.text [list $fullpath] %x %y %X %Y" $t tag bind f$path \ "$t tag configure [list f$path] -background $hc" $t tag bind f$path \ "$t tag configure [list f$path] -background {}" if {$dir == "."} { set fullpath "$data(dir)/$tail" } else { $t tag configure p$path -foreground darkblue $t insert end "$dir/" [list p$path f$path] } $t tag configure t$path -foreground blue $t insert end $tail [list t$path f$path] } $t configure -state disabled # Update directory menubutton: $data(menu) delete 0 end set mlist {} set d {} foreach subdir [file split $data(dir)] { set d [file join $d $subdir] lappend mlist $d } foreach m $mlist { $data(menu) add command -label $m -command "::file::finder::Refresh [list $m]" } catch {grab release $w.b.stop} $w.b.stop configure -state disabled $w.b.help configure -state normal $w.b.close configure -state normal $w.b.sub configure -state normal unbusyCursor . } ################################################################################ # ################################################################################ proc ::file::finder::contextMenu {win fullPath x y xc yc} { update idletasks set mctxt $win.ctxtMenu if { [winfo exists $mctxt] } { destroy $mctxt } menu $mctxt $mctxt add command -label [tr FinderCtxOpen ] -command "::file::Open [list $fullPath]" $mctxt add command -label [tr FinderCtxBackup ] -command "::file::finder::backup [list $fullPath]" $mctxt add command -label [tr FinderCtxCopy ] -command "::file::finder::copy [list $fullPath]" $mctxt add command -label [tr FinderCtxMove ] -command "::file::finder::move [list $fullPath]" $mctxt add separator $mctxt add command -label [tr FinderCtxDelete ] -command "::file::finder::delete $fullPath" $mctxt post [winfo pointerx .] [winfo pointery .] } ################################################################################ # will backup a base in the form name-date.ext ################################################################################ proc ::file::finder::backup { f } { set r [file rootname $f] set d [clock format [clock seconds] -format "-%Y.%m.%d-%H%M" ] set ext [string tolower [file extension $f]] if { $ext == ".si4" } { if { [catch { file copy "$r.sg4" "$r$d.sg4" ; file copy "$r.sn4" "$r$d.sn4" } err ] } { tk_messageBox -title Scid -icon error -type ok -message "File copy error $err" return } catch { file copy "$r.stc" "$r$d.stc" } } if { [catch { file copy "$r[file extension $f]" "$r$d[file extension $f]" } err ] } { tk_messageBox -title Scid -icon error -type ok -message "File copy error $err" return } ::file::finder::Refresh } ################################################################################ # ################################################################################ proc ::file::finder::copy { f } { if {[sc_base slot $f] != 0} { tk_messageBox -title Scid -icon error -type ok -message "Close base first" return } set dir [tk_chooseDirectory -initialdir [file dirname $f] ] if {$dir != ""} { if { [string tolower [file extension $f]] == ".si4" } { if { [catch { file copy "[file rootname $f].sg4" "[file rootname $f].sn4" $dir } err ] } { tk_messageBox -title Scid -icon error -type ok -message "File copy error $err" return } catch { file copy "[file rootname $f].stc" $dir } } if { [catch { file copy $f $dir } err ] } { tk_messageBox -title Scid -icon error -type ok -message "File copy error $err" return } } } ################################################################################ # ################################################################################ proc ::file::finder::move { f } { if {[sc_base slot $f] != 0} { tk_messageBox -title Scid -icon error -type ok -message "Close base first" return } set dir [tk_chooseDirectory -initialdir [file dirname $f] ] if {$dir != ""} { if { [string tolower [file extension $f]] == ".si4" } { if { [catch { file rename "[file rootname $f].sg4" "[file rootname $f].sn4" $dir } err ] } { tk_messageBox -title Scid -icon error -type ok -message "File rename error $err" return } catch { file rename "[file rootname $f].stc" $dir } } if { [catch { file rename $f $dir } err ] } { tk_messageBox -title Scid -icon error -type ok -message "File rename error $err" return } } ::file::finder::Refresh } ################################################################################ # ################################################################################ proc ::file::finder::delete { f } { if {[sc_base slot $f] != 0} { tk_messageBox -title Scid -icon error -type ok -message "Close base first" return } set answer [tk_messageBox -title Scid -icon warning -type yesno -message "Are you sure you want to permanently delete $f ?"] if {$answer == "yes"} { if { [string tolower [file extension $f]] == ".si4" } { file delete "[file rootname $f].sg4" "[file rootname $f].sn4" "[file rootname $f].stc" } file delete $f } ::file::finder::Refresh } ################################################################################ # ################################################################################ proc ::file::finder::ConfigMenus {{lang ""}} { if {! [winfo exists .finder]} { return } if {$lang == ""} { set lang $::language } set m .finder.menu foreach idx {0 1 2 3} tag {File Sort Types Help} { configMenuText $m $idx Finder$tag $lang } foreach idx {0 2} tag {Subdirs Close} { configMenuText $m.file $idx FinderFile$tag $lang } foreach idx {0 1 2 3 4} tag {Type Size Mod Name Path} { configMenuText $m.sort $idx FinderSort$tag $lang } foreach idx {0 1 2 3 4} tag {Scid Old PGN Rep EPD} { configMenuText $m.types $idx FinderTypes$tag $lang } foreach idx {0 1} tag {Finder Index} { configMenuText $m.helpmenu $idx FinderHelp$tag $lang } } proc ::file::finder::GetFiles {dir {len -1}} { variable data set dlist {} set flist {} if {$len < 0} { set len [expr {[string length $dir] + 1} ] } foreach f [glob -nocomplain [file join $dir *]] { if {[file isdir $f]} { lappend dlist $f } elseif {[file isfile $f]} { set ext [string tolower [file extension $f]] if {[catch {set mtime [file mtime $f]}]} { set mtime 0 } set showFile 0 set rootname [file rootname $f] set type PGN if {$ext == ".si4"} { set showFile 1 set type Scid } elseif {$ext == ".si3"} { set showFile 1 set type Old } elseif {$ext == ".sor"} { set showFile 1 set type Rep } elseif {$ext == ".epd"} { set type EPD set showFile 1 } elseif {$ext == ".pgn"} { set showFile 1 } elseif {$ext == ".gz"} { set rootname [file rootname $rootname] if {[regexp {\.epd\.gz} $f]} { set showFile 1; set type EPD } if {[regexp {\.pgn\.gz} $f]} { set showFile 1 } } if {$showFile && [info exists data($type)] && $data($type)} { set path [string range $f $len end] set est 0 if {[catch {set size [sc_info fsize $f]}]} { # Could not determine file size, probably a PGN or EPD file # that the user does not have permission to read. set est 1 set size 0 } if {$size < 0} { set est 1 set size [expr {0 - $size}] } if {[file dirname $path] == "."} { set path "./$path" } lappend flist [list $size $type [file tail $rootname] $path $mtime $est] } } update if {$data(stop)} { break } } if {$data(recurse)} { foreach f $dlist { foreach i [::file::finder::GetFiles $f $len] { lappend flist $i update if {$data(stop)} { break } } } } return $flist } scid-4.3.0.cvs20120311/tcl/file/maint.tcl0000644000175000017500000017214511727223077016765 0ustar oliveroliver# maint.tcl: Maintenance-related functions # Part of Scid. # Copyright (C) 2000-2004 Shane Hudson. namespace eval ::maint {} ### TODO: Move procedures and variables into the maint namespace. ### TODO: Make sub-namespaces (sort, compact, cleaner, etc) ################################################################################ # Equivalent to running scidt -N ################################################################################ proc ::maint::fixCorruptedBase {} { set ftype { { "Scid databases" {".si4"} } } set fName [tk_getOpenFile -initialdir $::initialDir(base) -filetypes $ftype -title "Open a Scid file"] if {$fName == ""} { return } set fName [file rootname $fName] if {[sc_base slot $fName] != 0} { tk_messageBox -type ok -icon info -title "Scid" -message "$fName is already opened.\nClose it first" return } progressWindow "Scid" [concat $::tr(CompactNames) "..."] busyCursor . set err [catch {sc_base fixCorrupted $fName} result] unbusyCursor . closeProgressWindow if {$err} { tk_messageBox -type ok -icon warning -title "Scid: Error compacting file" -message $result } else { tk_messageBox -type ok -icon info -title "Scid" -message "Base $fName was repaired" } } ################################################################################ # ::maint::SetGameFlags # # Updates a flag for the current game, all filtered games, or all games. # should be "current", "filter" or "all". # should be "delete", "user", "endgame", etc. # should be 0 or 1 # proc ::maint::SetGameFlags {flag type value} { if {$flag == "mark"} { set flag $::maintFlag } switch -- $type { "current" { busyCursor . catch {sc_game flag $flag [sc_game number] $value} unbusyCursor . } "filter" - "all" { busyCursor . catch {sc_game flag $flag $type $value} unbusyCursor . } default { return } } updateBoard ::windows::gamelist::Refresh ::maint::Refresh ::windows::stats::Refresh } set maintFlag W set maintFlaglist {W B M E N P T Q K ! ? U 1 2 3 4 5 6} array set maintFlags { W WhiteOpFlag B BlackOpFlag M MiddlegameFlag E EndgameFlag N NoveltyFlag P PawnFlag T TacticsFlag Q QsideFlag K KsideFlag ! BrilliancyFlag ? BlunderFlag U UserFlag 1 CustomFlag1 2 CustomFlag2 3 CustomFlag3 4 CustomFlag4 5 CustomFlag5 6 CustomFlag6 } set maintWin 0 # ::maint::OpenClose # # Creates the database maintenance window. # proc ::maint::OpenClose {} { global maintWin maintFlag maintFlags maintFlaglist set w .maintWin if {[winfo exists $w]} { destroy $w set maintWin 0 return } set maintWin 1 set font font_Small set bold font_SmallBold toplevel $w wm title $w "Scid: [tr FileMaint]" wm resizable $w 0 0 bind $w {helpWindow Maintenance} bind $w "destroy $w; break" bind $w {set maintWin 0} foreach f {title delete mark spell db buttons} { ttk::frame $w.$f } foreach f {title delete mark spell db} { pack $w.$f -side top -fill x addHorizontalRule $w } pack $w.buttons -side top -fill x ttk::label $w.title.name -textvar ::tr(DatabaseName) -font font_Bold ttk::label $w.title.games -textvar ::tr(NumOfGames) -font font_SmallBold ttk::label $w.title.icon -textvar ::tr(TypeIcon) ttk::label $w.title.delete -textvar ::tr(NumDeletedGames) -font $font ttk::label $w.title.mark -font $font ttk::label $w.title.filter -textvar ::tr(NumFilterGames) -font $font ttk::label $w.title.dates -textvar ::tr(YearRange) -font $font ttk::label $w.title.ratings -textvar ::tr(RatingRange) -font $font ttk::button $w.title.vicon -command {changeBaseType [sc_base current]} ttk::frame $w.title.desc ttk::label $w.title.desc.lab -text $::tr(Description:) -font font_SmallBold ttk::label $w.title.desc.text -width 1 -font $font -relief sunken -anchor w ttk::button $w.title.desc.edit -text "[tr Edit]..." -style Small.TButton -command ::maint::ChangeBaseDescription pack $w.title.desc.lab -side left pack $w.title.desc.edit -side right -padx 2 pack $w.title.desc.text -side left -fill x -expand yes # Custom flags ttk::frame $w.title.cust ttk::label $w.title.cust.lab -text "[::tr CustomFlags]:" -font font_SmallBold for {set i 1} { $i < 7} { incr i} { set desc [sc_game flag $i description] ttk::label $w.title.cust.text$i -width 8 -font $font -relief sunken -anchor w -text $desc } ttk::button $w.title.cust.edit -text "[tr Edit]..." -style Small.TButton -command ::maint::ChangeCustomDescription pack $w.title.cust.lab -side left pack $w.title.cust.edit -side right -padx 2 for {set i 1} { $i < 7} { incr i} { pack $w.title.cust.text$i -side left -fill x -expand yes } foreach name {name games delete mark filter dates ratings} { ttk::label $w.title.v$name -text "0" -font $font } set row 0 set col 0 foreach name {name icon games filter delete mark dates ratings} { grid $w.title.$name -row $row -column $col -sticky w incr col grid $w.title.v$name -row $row -column $col -sticky e incr col if {$col == 2} { incr col } if {$col >= 5} { set col 0; incr row } } grid [ttk::label $w.title.space -text " "] -row 0 -column 2 $w.title.vname configure -font font_Bold $w.title.vgames configure -font font_SmallBold grid $w.title.desc -row $row -column 0 -columnspan 5 -sticky we incr row grid $w.title.cust -row $row -column 0 -columnspan 5 -sticky we foreach grid {title delete mark spell db} cols {5 3 3 4 3} { for {set i 0} {$i < $cols} {incr i} { grid columnconfigure $w.$grid $i -weight 1 } } ttk::label $w.delete.title -textvar ::tr(DeleteFlag) -font $bold ttk::menubutton $w.mark.title -menu $w.mark.title.m ;# -indicatoron 1 -relief raised -font $bold menu $w.mark.title.m -font $font set i 0 foreach flag $maintFlaglist { if {$i < 12} { $w.mark.title.m add command -label "$::tr($maintFlags($flag)) ($flag)" -command "set maintFlag $flag; ::maint::Refresh" } else { set tmp [sc_game flag $flag description] if {$tmp == "" } { set tmp $maintFlags($flag) } $w.mark.title.m add command -label "$tmp ($flag)" -command "set maintFlag $flag; ::maint::Refresh" } incr i } foreach flag {delete mark} on {Delete Mark} off {Undelete Unmark} { foreach b {Current Filter All} { ttk::button $w.$flag.on$b -textvar "::tr($on$b)" -style Small.TButton -command "::maint::SetGameFlags $flag [string tolower $b] 1" ttk::button $w.$flag.off$b -textvar "::tr($off$b)" -style Small.TButton -command "::maint::SetGameFlags $flag [string tolower $b] 0" } grid $w.$flag.title -columnspan 3 -row 0 -column 0 -sticky n grid $w.$flag.onCurrent -row 1 -column 0 -sticky we grid $w.$flag.offCurrent -row 2 -column 0 -sticky we grid $w.$flag.onFilter -row 1 -column 1 -sticky we grid $w.$flag.offFilter -row 2 -column 1 -sticky we grid $w.$flag.onAll -row 1 -column 2 -sticky we grid $w.$flag.offAll -row 2 -column 2 -sticky we } ttk::label $w.spell.title -textvar ::tr(Spellchecking) -font $bold grid $w.spell.title -columnspan 4 -row 0 -column 0 -sticky n ttk::button $w.spell.player -textvar ::tr(Players...) -style Small.TButton \ -command "openSpellCheckWin Player $w" ttk::button $w.spell.event -textvar ::tr(Events...) -style Small.TButton \ -command "openSpellCheckWin Event $w" ttk::button $w.spell.site -textvar ::tr(Sites...) -style Small.TButton \ -command "openSpellCheckWin Site $w" ttk::button $w.spell.round -textvar ::tr(Rounds...) -style Small.TButton \ -command "openSpellCheckWin Round $w" grid $w.spell.player -row 1 -column 0 -sticky we grid $w.spell.event -row 1 -column 1 -sticky we grid $w.spell.site -row 1 -column 2 -sticky we grid $w.spell.round -row 1 -column 3 -sticky we bind $w "$w.spell.player invoke" bind $w "$w.spell.event invoke" bind $w "$w.spell.site invoke" bind $w "$w.spell.round invoke" ttk::label $w.db.title -textvar ::tr(DatabaseOps) -font $bold grid $w.db.title -columnspan 3 -row 0 -column 0 -sticky n ttk::button $w.db.check -style Small.TButton -textvar ::tr(CheckGames...) -command checkAllGames ttk::button $w.db.eco -style Small.TButton -textvar ::tr(ReclassifyGames...) -command classifyAllGames ttk::button $w.db.compact -style Small.TButton -textvar ::tr(CompactDatabase...) -command makeCompactWin ttk::button $w.db.sort -style Small.TButton -textvar ::tr(SortDatabase...) -command makeSortWin ttk::button $w.db.elo -style Small.TButton -textvar ::tr(AddEloRatings...) -command allocateRatings ttk::button $w.db.dups -style Small.TButton -textvar ::tr(DeleteTwins...) -command "markTwins $w" ttk::button $w.db.cleaner -style Small.TButton -textvar ::tr(Cleaner...) -command cleanerWin ttk::button $w.db.autoload -style Small.TButton -textvar ::tr(AutoloadGame...) -command ::maint::SetAutoloadGame ttk::button $w.db.strip -style Small.TButton -textvar ::tr(StripTags...) -command stripTags foreach i {eco compact sort elo dups cleaner autoload strip} { $w.db.$i configure -style Small.TButton } bind $w "$w.db.dups invoke" grid $w.db.eco -row 1 -column 0 -sticky we grid $w.db.compact -row 1 -column 1 -sticky we grid $w.db.sort -row 1 -column 2 -sticky we grid $w.db.elo -row 2 -column 0 -sticky we grid $w.db.dups -row 2 -column 1 -sticky we grid $w.db.cleaner -row 2 -column 2 -sticky we grid $w.db.autoload -row 3 -column 0 -sticky we grid $w.db.strip -row 3 -column 1 -sticky we grid $w.db.check -row 3 -column 2 -sticky we dialogbutton $w.buttons.help -textvar ::tr(Help) -command {helpWindow Maintenance} dialogbutton $w.buttons.close -textvar ::tr(Close) -command "destroy $w" packbuttons right $w.buttons.close $w.buttons.help bind $w "$w.buttons.help invoke" bind $w "destroy $w; break" standardShortcuts $w ::maint::Refresh } proc ::maint::ChangeBaseDescription {} { set w .bdesc if {[winfo exists $w]} { return } toplevel $w wm title $w "Scid: $::tr(Description): [file tail [sc_base filename]]" set font font_Small ttk::entry $w.entry -width 50 ;# -relief sunken -background white $w.entry insert end [sc_base description] pack $w.entry -side top -pady 4 ttk::frame $w.b ttk::button $w.b.ok -text OK -command { catch {sc_base description [.bdesc.entry get]} grab release .bdesc destroy .bdesc ::maint::Refresh } ttk::button $w.b.cancel -text $::tr(Cancel) -command "grab release $w; destroy $w" pack $w.b -side bottom -fill x pack $w.b.cancel $w.b.ok -side right -padx 2 -pady 2 wm resizable $w 0 0 catch {grab $w} } ################################################################################ # Change custom flags description ################################################################################ proc ::maint::ChangeCustomDescription {} { set w .bcustom if {[winfo exists $w]} { return } toplevel $w wm title $w "Scid: $::tr(CustomFlags): [file tail [sc_base filename]]" ttk::frame $w.a ttk::label $w.a.lb -text [::tr CustomFlags] grid $w.a.lb -column 0 -row 0 -columnspan 12 set col 0 for {set i 1} {$i <7} {incr i} { ttk::label $w.a.lab$i -text "$i:" ttk::entry $w.a.e$i -width 8 set desc [sc_game flag $i description] $w.a.e$i insert end $desc grid $w.a.lab$i -column $col -row 1 incr col grid $w.a.e$i -column $col -row 1 incr col } ttk::frame $w.b ttk::button $w.b.ok -text OK -command { for {set i 1} {$i <7} {incr i} { set desc [.bcustom.a.e$i get] sc_game flag $i setdescription $desc } grab release .bcustom destroy .bcustom # update the drop down menu of maint window and the menu of GameInfo window for {set idx 12} {$idx < 18} {incr idx} { set flag [ lindex $::maintFlaglist $idx] set tmp [sc_game flag $flag description] if {$tmp == "" } { set tmp $::maintFlags($flag) } .maintWin.mark.title.m entryconfigure $idx -label "$tmp ($flag)" } updateGameInfoMenu # update the custom flags labels for {set i 1} { $i < 7} { incr i} { set desc [sc_game flag $i description] .maintWin.title.cust.text$i configure -text $desc } # ::maint::Refresh } ttk::button $w.b.cancel -text $::tr(Cancel) -command "grab release $w; destroy $w" pack $w.a -side top -fill x pack $w.b -side bottom -fill x pack $w.b.cancel $w.b.ok -side right -padx 2 -pady 2 wm resizable $w 0 0 catch {grab $w} } proc ::maint::Refresh {} { global maintFlag maintFlags updateSortWin updateClassifyWin set w .maintWin if {![winfo exists $w]} { return } set ng [sc_base numGames] set deleted [sc_base stats flag:D] set marked [sc_base stats "flag:$maintFlag"] set flags [sc_base stats flags] set dates [sc_base stats date] set ratings [sc_base stats ratings] $w.title.vgames configure -text [::utils::thousands $ng] $w.title.vicon configure -image dbt[sc_base type [sc_base current]] $w.title.vname configure -text [file tail [sc_base filename]] $w.title.vdelete configure -text [::utils::percentFormat $deleted $ng] $w.title.vmark configure -text [::utils::percentFormat $marked $ng] $w.title.vfilter configure -text [::utils::percentFormat [sc_filter count] $ng] $w.title.vdates configure \ -text "[lindex $dates 0]-[lindex $dates 1] ([lindex $dates 2])" $w.title.vratings configure \ -text "[lindex $ratings 0]-[lindex $ratings 1] ([lindex $ratings 2])" if { [lsearch -exact { 1 2 3 4 5 6 } $maintFlag ] != -1 } { set tmp [sc_game flag $maintFlag description] if {$tmp == "" } { set tmp $maintFlags($maintFlag) } } else { set tmp $::tr($maintFlags($maintFlag)) } set flagname "$::tr(Flag): $tmp ($maintFlag)" $w.mark.title configure -text $flagname $w.title.mark configure -text $flagname $w.title.desc.text configure -text [sc_base description] # Disable buttons if current base is closed or read-only: set state disabled if {[sc_base inUse] && ![sc_base isReadOnly]} { set state normal } foreach spell {player event site round} { $w.spell.$spell configure -state $state } foreach button {onCurrent offCurrent onAll offAll onFilter offFilter} { $w.delete.$button configure -state $state $w.mark.$button configure -state $state } $w.db.dups configure -state $state $w.title.vicon configure -state $state $w.title.desc.edit configure -state $state $w.db.elo configure -state $state $w.db.autoload configure -state $state set state disabled if {[sc_base inUse]} { set state normal } $w.db.eco configure -state $state $w.db.sort configure -state $state $w.db.strip configure -state $state set state disabled if {[baseIsCompactable]} { set state normal } $w.db.compact configure -state $state $w.db.cleaner configure -state $state } set autoloadGame 0 trace variable autoloadGame w {::utils::validate::Integer 9999999 0} # ::maint::SetAutoloadGame # # Creates a dialog for setting the autoload game number of the # current database. # proc ::maint::SetAutoloadGame {} { global autoloadGame set w .autoload if {[winfo exists $w]} { return } toplevel $w wm title $w "Scid" set autoloadGame [sc_base autoload] pack [ttk::frame $w.f] -side top -fill x -expand 1 ttk::label $w.f.label -text $::tr(AutoloadGame:) ttk::entry $w.f.entry -textvar autoloadGame -justify right -width 10 ;# -foreground black -background white pack $w.f.label $w.f.entry -side left pack [ttk::frame $w.set] -side top -fill x ttk::button $w.set.none -text $::tr(None) -command {set autoloadGame 0} ttk::button $w.set.first -text $::tr(First) -command {set autoloadGame 1} ttk::button $w.set.current -text $::tr(Current) \ -command {set autoloadGame [sc_game number]} ttk::button $w.set.last -text $::tr(Last) -command {set autoloadGame 9999999} foreach i {none first current last} {$w.set.$i configure -style Small.TButton} pack $w.set.none $w.set.first $w.set.current $w.set.last \ -side left -padx 1 -pady 2 addHorizontalRule $w pack [ttk::frame $w.b] -side top -fill x ttk::button $w.b.ok -text OK -command \ "sc_base autoload \$autoloadGame; catch {grab release $w}; destroy $w" ttk::button $w.b.cancel -text $::tr(Cancel) -command \ "catch {grab release $w}; destroy $w" pack $w.b.cancel $w.b.ok -side right -padx 2 bind $w.f.entry "$w.b.ok invoke" bind $w.f.entry "$w.b.cancel invoke" wm resizable $w 0 0 ::utils::win::Centre $w focus $w.f.entry grab $w } # markTwins: # Finds twin games and marks them for deletion. # Takes parent window as parameter since it can be the main window, # or the maintenance window. # proc markTwins {{parent .}} { global twinSettings if {! [sc_base inUse]} { return } if {[sc_base numGames] == 0} { tk_messageBox -type ok -icon info -title [concat "Scid: " $::tr(noGames)] \ -message $::tr(TwinCheckNoDelete) return } set w .twinSettings if {! [winfo exists $w]} { toplevel $w wm resizable $w 0 0 wm title $w "Scid: $::tr(DeleteTwins)" pack [ttk::frame $w.f] set small font_Small ttk::label $w.f.note -text $::tr(TwinsNote) -justify left -wraplength 500 -font $small pack $w.f.note -side top -anchor w -ipady 0 -pady 0 addHorizontalRule $w.f ttk::label $w.f.tc -text $::tr(TwinsCriteria) -font font_Bold pack $w.f.tc -side top ttk::frame $w.f.g pack $w.f.g -side top set row 0 set col 0 foreach name {Colors Event Site Round Year Month Day Result ECO Moves} { set n [string tolower $name] ttk::checkbutton $w.f.g.b$n -text $::tr(Twins$name) \ -variable twinSettings($n) -onvalue Yes -offvalue No grid $w.f.g.b$n -row $row -column $col -sticky w incr col if {$col >= 4} { incr row; set col 0 } else { grid [ttk::label $w.f.g.space$n -text " "] -row $row -column $col incr col } } ttk::frame $w.f.players ttk::label $w.f.players.label -text $::tr(TwinsPlayers) -font $small ttk::radiobutton $w.f.players.yes -variable twinSettings(players) -value Yes \ -text $::tr(TwinsPlayersExact) -style Small.TRadiobutton ttk::radiobutton $w.f.players.no -variable twinSettings(players) -value No \ -text $::tr(TwinsPlayersPrefix) -style Small.TRadiobutton pack $w.f.players -side top pack $w.f.players.label $w.f.players.yes $w.f.players.no -side left } addHorizontalRule $w.f ttk::label $w.f.twhich -text $::tr(TwinsWhich:) -font font_Bold pack $w.f.twhich -side top pack [ttk::frame $w.f.g2] -side top -fill x ttk::radiobutton $w.f.g2.exall -text $::tr(SelectAllGames) -style Small.TRadiobutton \ -variable twinSettings(usefilter) -value No ttk::label $w.f.g2.space -text " " -font $small ttk::radiobutton $w.f.g2.exfil -text $::tr(SelectFilterGames) -style Small.TRadiobutton \ -variable twinSettings(usefilter) -value Yes grid $w.f.g2.exall -row 0 -column 0 -sticky e grid $w.f.g2.space -row 0 -column 1 grid $w.f.g2.exfil -row 0 -column 2 -sticky w grid columnconfigure $w.f.g2 0 -weight 1 grid columnconfigure $w.f.g2 2 -weight 1 addHorizontalRule $w.f ttk::label $w.f.twhen -text $::tr(TwinsWhen:) -font font_Bold pack $w.f.twhen -side top pack [ttk::frame $w.f.g3] -side top set row 0 set col 0 foreach n {skipshort undelete setfilter comments variations} \ name {SkipShort Undelete SetFilter Comments Vars} { ttk::checkbutton $w.f.g3.b$n -text $::tr(Twins$name) -variable twinSettings($n) -onvalue Yes -offvalue No grid $w.f.g3.b$n -row $row -column $col -sticky w incr col if {$col >= 2} { incr row; set col 0 } else { grid [ttk::label $w.f.g3.space$n -text " "] -row $row -column $col incr col } } incr row #$w.f.g3.lskipshort configure -text $::tr(TwinsSkipShort) #$w.f.g3.lundelete configure -text $::tr(TwinsUndelete) #$w.f.g3.lsetfilter configure -text $::tr(TwinsSetFilter) #$w.f.g3.lcomments configure -text $::tr(TwinsComments) #$w.f.g3.lvariations configure -text $::tr(TwinsVars) ttk::label $w.f.g3.ldelete -text $::tr(TwinsDeleteWhich) -font font_Bold grid $w.f.g3.ldelete -row $row -column 0 -sticky we -columnspan 3 incr row ttk::frame $w.f.g3.vdelete foreach v {Shorter Older Newer} { ttk::radiobutton $w.f.g3.vdelete.v$v -text $::tr(TwinsDelete$v) \ -variable twinSettings(delete) -value $v -style Small.TRadiobutton pack $w.f.g3.vdelete.v$v -side left -padx 5 } grid $w.f.g3.vdelete -row $row -column 0 -columnspan 3 #foreach g {g2 g3} { # grid columnconfigure $w.f.$g 0 -weight 1 #} addHorizontalRule $w.f ttk::frame $w.f.b dialogbutton $w.f.b.defaults -textvar ::tr(Defaults) -command { array set twinSettings [array get twinSettingsDefaults] } dialogbuttonsmall $w.f.b.help [ list -text $::tr(Help) -command "helpWindow Maintenance Twins; focus $w" ] dialogbuttonsmall $w.f.b.go [ list -text $::tr(TwinsDelete) -command { if {[twinCriteriaOK .twinSettings]} { grab release .twinSettings sc_progressBar .twinSettings.progress bar 301 21 time set result [doMarkDups .twinSettings] focus . destroy .twinSettings if {$result > 0} { set gn [sc_filter first] ::game::Load $gn updateTwinChecker } } } ] dialogbuttonsmall $w.f.b.cancel [ list -text $::tr(Cancel) -command "grab release $w; focus .; destroy $w" ] canvas $w.f.progress -width 300 -height 20 -bg white -relief solid -border 1 $w.f.progress create rectangle 0 0 0 0 -fill blue -outline blue -tags bar $w.f.progress create text 295 10 -anchor e -font font_Regular -tags time \ -fill black -text "0:00 / 0:00" pack $w.f.progress -side bottom -padx 2 -pady 2 pack $w.f.b -side bottom -fill x packbuttons right $w.f.b.cancel $w.f.b.go packbuttons left $w.f.b.defaults $w.f.b.help bind $w "$w.f.b.help invoke" bind $w "$w.f.b.cancel invoke" bind $w "$w.f.b.go invoke" grab $w update idletasks $w.f.note configure -wraplength [winfo width $w] return } # twinCriteriaOK: # Check that the user specified at least three of the the same site, # same round, and same year settings, since otherwise it is quite # likely that actual games with simlar moves will be marked as twins: # proc twinCriteriaOK {{parent .}} { global twinSettings set msg $::tr(TwinCriteria1) # First, check that if same moves is off, then the same colors, event, # site, round, year and month flags should all be set: if {$twinSettings(moves) == "No"} { if {$twinSettings(colors) == "No" || $twinSettings(event) == "No" || \ $twinSettings(site) == "No" || $twinSettings(year) == "No" || \ $twinSettings(month) == "No"} { append msg $::tr(TwinCriteria2) set result [tk_messageBox -type yesno -parent $parent -icon warning \ -title $::tr(TwinCriteriaConfirm) \ -message $msg] if {$result == "no"} { return 0 } else { return 1 } } } # Now check that at least two of site, round, and year are set: set count 0 if {$twinSettings(site) == "Yes"} { incr count } if {$twinSettings(round) == "Yes"} { incr count } if {$twinSettings(year) == "Yes"} { incr count } if {$count < 2} { append msg $::tr(TwinCriteria3) set result [tk_messageBox -type yesno -parent $parent -icon warning \ -title $::tr(TwinCriteriaConfirm) \ -message $msg] if {$result == "no"} { return 0 } else { return 1 } } return 1 } proc doMarkDups {{parent .}} { global twinSettings busyCursor . if {$twinSettings(undelete) == "Yes"} { catch {sc_game flag delete all 0} } if {[catch {sc_base duplicates -colors $twinSettings(colors) \ -event $twinSettings(event) -site $twinSettings(site) \ -round $twinSettings(round) -year $twinSettings(year) \ -month $twinSettings(month) -day $twinSettings(day) \ -result $twinSettings(result) -eco $twinSettings(eco) \ -moves $twinSettings(moves) -players $twinSettings(players) \ -skipshort $twinSettings(skipshort) \ -setfilter $twinSettings(setfilter) \ -usefilter $twinSettings(usefilter) \ -comments $twinSettings(comments) \ -variations $twinSettings(variations) \ -delete $twinSettings(delete)} result]} { unbusyCursor . tk_messageBox -type ok -parent $parent -icon info \ -title "Scid" -message $result set result 0 } else { unbusyCursor . set message [subst $::tr(TwinCheckFound1)] if {$result > 0} {append message $::tr(TwinCheckFound2)} append message "." tk_messageBox -type ok -parent $parent -icon info -title [concat "Scid: " $::tr(Result)] \ -message $message } ::maint::Refresh return $result } set checkOption(AllGames) all # CheckAllGames # Decodes all games and tries to find errors proc checkAllGames {} { set w .checkGames if {[winfo exists $w]} { raiseWin $w return } toplevel $w wm title $w "Scid: [tr FileMaintClass]" pack [ttk::frame $w.f] -expand 1 ttk::label $w.f.label -font font_Bold -textvar ::tr(CheckGamesWhich) ttk::frame $w.f.g ttk::radiobutton $w.f.g.all -textvar ::tr(CheckAll) -variable checkOption(AllGames) -value all ttk::radiobutton $w.f.g.filter -textvar ::tr(CheckSelectFilterGames) -variable checkOption(AllGames) -value filter set row 0 foreach f {all filter} { grid $w.f.g.$f -row $row -column 0 -sticky w incr row } ttk::frame $w.f.b ttk::button $w.f.b.go -textvar ::tr(CheckGames) -command { busyCursor . .checkGames.f.b.cancel configure -command "sc_progressBar" .checkGames.f.b.cancel configure -textvar ::tr(Stop) sc_progressBar .checkGames.f.progress bar 301 21 time grab .checkGames.f.b.cancel if {[catch {sc_base check $checkOption(AllGames)} result]} { grab release .checkGames.f.b.cancel unbusyCursor . tk_messageBox -parent .checkGames -type ok -icon info -title "Scid" -message $result } else { grab release .checkGames.f.b.cancel unbusyCursor . } .checkGames.f.b.cancel configure -command {focus .; destroy .checkGames} .checkGames.f.b.cancel configure -textvar ::tr(Close) ::windows::gamelist::Refresh } ttk::button $w.f.b.cancel -textvar ::tr(Close) -command "focus .; destroy $w" canvas $w.f.progress -width 300 -height 20 -bg white -relief solid -border 1 $w.f.progress create rectangle 0 0 0 0 -fill blue -outline blue -tags bar $w.f.progress create text 295 10 -anchor e -font font_Regular -tags time \ -fill black -text "0:00 / 0:00" pack $w.f.label $w.f.g -side top -pady 5 addHorizontalRule $w.f pack $w.f.b -side top -pady 5 -fill x pack $w.f.progress -side bottom -padx 2 -pady 2 pack $w.f.b.cancel $w.f.b.go -side right -pady 10 -padx 10 wm resizable $w 0 0 bind $w {helpWindow ECO} bind $w "$w.b.cancel invoke" updateClassifyWin } set classifyOption(AllGames) all set classifyOption(ExtendedCodes) 1 # ClassifyAllGames: # Reclassifies all games (recomputes the ECO code of each game). # User can choose to reclassify all games, or only those games that # currently have no ECO code assigned. # proc classifyAllGames {} { makeClassifyWin } proc makeClassifyWin {} { global classifyOption set w .classify if {[winfo exists $w]} { raiseWin $w return } toplevel $w wm title $w "Scid: [tr FileMaintClass]" pack [ttk::frame $w.f] -expand 1 ttk::label $w.f.label -font font_Bold -textvar ::tr(ClassifyWhich) ttk::frame $w.f.g ttk::radiobutton $w.f.g.all -textvar ::tr(ClassifyAll) -variable classifyOption(AllGames) -value all ttk::radiobutton $w.f.g.filter -textvar ::tr(SelectFilterGames) -variable classifyOption(AllGames) -value filter set year [::utils::date::today year] set month [::utils::date::today month] set day [::utils::date::today day] ttk::radiobutton $w.f.g.year -textvar ::tr(ClassifyYear) -variable classifyOption(AllGames) \ -value "date:[expr $year - 1].$month.$day" if {$month == "01"} { incr year -1 set month 12 } else { scan $month "%02u" month incr month -1 set month [format "%02u" $month] } ttk::radiobutton $w.f.g.month -textvar ::tr(ClassifyMonth) -variable classifyOption(AllGames) \ -value "date:$year.$month.$day" ttk::radiobutton $w.f.g.new -textvar ::tr(ClassifyNew) -variable classifyOption(AllGames) -value nocode set row 0 foreach f {all filter year month new} { grid $w.f.g.$f -row $row -column 0 -sticky w incr row } ttk::label $w.f.codes -font font_Bold -textvar ::tr(ClassifyCodes:) ttk::radiobutton $w.f.extended -textvar ::tr(ClassifyBasic) -variable classifyOption(ExtendedCodes) -value 0 ttk::radiobutton $w.f.basic -textvar ::tr(ClassifyExtended) -variable classifyOption(ExtendedCodes) -value 1 ttk::frame $w.f.b ttk::button $w.f.b.go -textvar ::tr(Classify) -command { busyCursor . .classify.f.b.cancel configure -command "sc_progressBar" .classify.f.b.cancel configure -textvar ::tr(Stop) sc_progressBar .classify.f.progress bar 301 21 time grab .classify.f.b.cancel if {[catch {sc_eco base $classifyOption(AllGames) $classifyOption(ExtendedCodes)} result]} { grab release .classify.f.b.cancel unbusyCursor . tk_messageBox -parent .classify -type ok -icon info -title "Scid" -message $result } else { grab release .classify.f.b.cancel unbusyCursor . } .classify.f.b.cancel configure -command {focus .; destroy .classify} .classify.f.b.cancel configure -textvar ::tr(Close) ::windows::gamelist::Refresh } ttk::button $w.f.b.cancel -textvar ::tr(Close) -command "focus .; destroy $w" canvas $w.f.progress -width 300 -height 20 -bg white -relief solid -border 1 $w.f.progress create rectangle 0 0 0 0 -fill blue -outline blue -tags bar $w.f.progress create text 295 10 -anchor e -font font_Regular -tags time \ -fill black -text "0:00 / 0:00" pack $w.f.label $w.f.g -side top -pady 5 addHorizontalRule $w.f pack $w.f.codes $w.f.extended $w.f.basic -side top -pady 5 addHorizontalRule $w.f pack $w.f.b -side top -pady 5 -fill x pack $w.f.progress -side bottom -padx 2 -pady 2 pack $w.f.b.cancel $w.f.b.go -side right -pady 10 -padx 10 wm resizable $w 0 0 bind $w {helpWindow ECO} bind $w "$w.b.cancel invoke" updateClassifyWin } proc updateClassifyWin {} { set w .classify if {! [winfo exists $w]} { return } set state disabled if {[sc_base inUse]} { set state normal } $w.f.b.go configure -state $state } # Twin checker window: # Shows PGN of current game, and its twin. set twincheck(left) 0 set twincheck(right) 0 proc updateTwinChecker {} { global twincheck set w .twinchecker if {![winfo exists $w]} { toplevel $w pack [ttk::frame $w.b] -side bottom -fill x pack [ttk::frame $w.f] -side top -fill both -expand yes ttk::frame $w.f.left pack $w.f.left -side left -fill y -expand yes ttk::frame $w.f.split -width 2 -borderwidth 2 -relief sunken pack $w.f.split -side left -fill y -padx 5 ttk::frame $w.f.right pack $w.f.right -side left -fill y -expand yes foreach i {left right} { set f $w.f.$i pack [ttk::frame $f.title] -side top -fill x ttk::label $f.title.label -font font_Bold -text [concat $::tr(game) " 0: "] ttk::checkbutton $f.title.d -text $::tr(Deleted) -variable twincheck($i) -style Small.TCheckbutton ttk::label $f.title.note -font font_Small pack $f.title.label $f.title.d $f.title.note -side left ttk::label $f.tmt -font font_Small -text "" -anchor w -width 1 -relief sunken pack $f.tmt -side bottom -fill x autoscrollframe $f.t text $f.t.text \ -height 16 -width 40 -background white \ -takefocus 0 -wrap word $f.t.text tag configure h -background lightSteelBlue pack $f.t -side top -fill both -expand yes } $w.f.left.title.note configure -text [concat "(\"1\"" $::tr(TwinCheckUndelete)] $w.f.right.title.note configure -text [concat "(\"2\"" $::tr(TwinCheckUndelete)] ttk::button $w.b.prev -text $::tr(TwinCheckprevPair) \ -command {::game::LoadNextPrev previous} ttk::button $w.b.next -text $::tr(TwinChecknextPair) -underline 0 \ -command {::game::LoadNextPrev next} ttk::button $w.b.share -text $::tr(TwinCheckTag) -underline 0 ttk::button $w.b.delete -text $::tr(DeleteTwins) -underline 0 \ -command "markTwins $w" ttk::button $w.b.help -text $::tr(Help) -command {helpWindow Maintenance Twins} ttk::button $w.b.close -text $::tr(Close) -command "focus .; destroy $w" pack $w.b.close $w.b.help $w.b.delete -side right -padx 5 -pady 2 pack $w.b.prev $w.b.next $w.b.share -side left -padx 5 -pady 2 bind $w "$w.b.help invoke" bind $w "focus .; destroy $w" bind $w {::game::LoadNextPrev previous} bind $w {::game::LoadNextPrev previous} bind $w {::game::LoadNextPrev next} bind $w {::game::LoadNextPrev next} bind $w "markTwins $w" bind $w "markTwins $w" bind $w "$w.f.left.title.d invoke" bind $w "$w.f.right.title.d invoke" bind $w "$w.b.share invoke" bind $w { if {$twincheck(left)} {.twinchecker.f.left.title.d invoke} if {$twincheck(right)} {.twinchecker.f.right.title.d invoke} } bind $w { if {$twincheck(left)} {.twinchecker.f.left.title.d invoke} if {$twincheck(right)} {.twinchecker.f.right.title.d invoke} } wm resizable $w 0 1 wm title $w $::tr(TwinChecker) } set gn [sc_game number] set dup 0 if {$gn > 0} { set dup [sc_game info duplicate] } set twincheck(left) 0 set twincheck(right) 0 $w.f.left.title.label configure -text [concat $::tr(game) " $gn: "] if {$gn > 0} { set twincheck(left) [sc_game flag delete $gn] $w.f.left.title.d configure -command "sc_game flag delete $gn invert; updateBoard" $w.f.left.title.d configure -state normal set tmt [sc_game crosstable count +deleted] $w.f.left.tmt configure -text [concat $::tr(TwinCheckTournament) $tmt] } else { $w.f.left.title.d configure -state disabled $w.f.left.tmt configure -text "" } if {$dup > 0} { set twincheck(right) [sc_game flag delete $dup] $w.f.right.title.label configure -text [concat $::tr(game) " $dup: "] $w.f.right.title.d configure -command "sc_game flag delete $dup invert; updateBoard" $w.f.right.title.d configure -state normal set tmt [sc_game crosstable count -game $dup +deleted] $w.f.right.tmt configure -text [concat $::tr(TwinCheckTournament) $tmt] } else { $w.f.right.title.label configure -text $::tr(TwinCheckNoTwin) $w.f.right.title.d configure -state disabled $w.f.right.tmt configure -text "" } $w.b.share configure -state disabled -command {} if {$gn > 0 && $dup > 0} { if {[llength [sc_game tags share check $gn $dup]] > 0} { $w.b.share configure -state normal -command "shareTwinTags $gn $dup $w" } } set t $w.f.left.t.text $t configure -state normal $t delete 1.0 end $t insert end [sc_game pgn] set t $w.f.right.t.text $t configure -state normal $t delete 1.0 end if {$dup > 0} { $t insert end [sc_game pgn -gameNumber $dup] } else { $t insert end $::tr(TwinCheckNoTwinfound) } # Now color the differences if appropriate: if {$dup > 0} { set rlen [$w.f.right.t.text index end-1c] set llen [$w.f.left.t.text index end-1c] for {set i 0} {$i < $rlen} {incr i} { set line [$w.f.right.t.text get $i.0 "$i.0 lineend"] set length [string length $line] set max 0 for {set j 0} {$j < $llen} {incr j} { set otherLine [$w.f.left.t.text get $j.0 "$j.0 lineend"] set plen [strPrefixLen $line $otherLine] if {$plen > $max} { set max $plen } } if {$max < $length} { if {![string compare [string index $line 0] "\["]} { set max 0 } $w.f.right.t.text tag add h $i.$max "$i.0 lineend" } } for {set i 0} {$i < $llen} {incr i} { set line [$w.f.left.t.text get $i.0 "$i.0 lineend"] set length [string length $line] set max 0 for {set j 0} {$j < $rlen} {incr j} { set otherLine [$w.f.right.t.text get $j.0 "$j.0 lineend"] set plen [strPrefixLen $line $otherLine] if {$plen > $max} { set max $plen } } if {$max < $length} { if {![string compare [string index $line 0] "\["]} { set max 0 } $w.f.left.t.text tag add h $i.$max "$i.0 lineend" } } } if {[sc_base inUse]} { $w.b.delete configure -state normal } else { $w.b.delete configure -state disabled } foreach side {left right} { $w.f.$side.t.text configure -state disabled } } # shareTwinTags: # Updates the tags of two twin games by sharing information, # filling in the date, round or ratings of each game based on # the other where possible. # proc shareTwinTags {g1 g2 {parent .}} { set sharelist [sc_game tags share check $g1 $g2] if {[llength $sharelist] == 0} { return } set msg $::tr(TwinChangeTag) foreach {gn tag old new} $sharelist { append msg [concat $::tr(game) " $gn: $tag: \"$old\" -> \"$new\""] append msg "\n" } set answer [tk_messageBox -parent $parent -title "Scid" \ -type okcancel -default ok -icon question -message $msg] if {$answer != "ok"} { return } sc_game tags share update $g1 $g2 sc_game tags reload updateBoard -pgn ::windows::gamelist::Refresh } # baseIsCompactable: # Returns true only if the current base is compactable. # proc baseIsCompactable {} { # Only a database that is in use, not read-only, and not the # clipbase, can be compacted: if {! [sc_base inUse]} { return 0 } if {[sc_base isReadOnly]} { return 0 } if {[sc_base current] == [sc_info clipbase]} { return 0 } return 1 } # makeCompactWin: # Opens the database compaction dialog box. # proc makeCompactWin {} { if {! [baseIsCompactable]} { return } set w .compactWin toplevel $w wm title $w "Scid: $::tr(CompactDatabase)" wm resizable $w 0 0 foreach f {top names games buttons} { ttk::frame $w.$f } pack $w.top -side top -expand 1 -fill both pack $w.names -in $w.top -side left -fill x -anchor n addVerticalRule $w.top 12 pack $w.games -in $w.top -side left -fill x -anchor n addHorizontalRule $w pack $w.buttons -side top -fill x for {set i 0} {$i < 3} {incr i} { grid columnconfigure $w.names $i -weight 1 grid columnconfigure $w.games $i -weight 1 } ttk::label $w.names.title -text $::tr(NameFile) -font font_Bold grid $w.names.title -columnspan 3 -row 0 -column 0 -sticky n ttk::label $w.names.nt -text " $::tr(Names)" grid $w.names.nt -row 1 -column 1 -sticky e ttk::label $w.names.ut -text " $::tr(Unused)" grid $w.names.ut -row 1 -column 2 -sticky e ttk::frame $w.names.h -height 1 -relief solid ;# -bg black grid $w.names.h -columnspan 3 -row 2 -column 0 -sticky we set row 3 set ndata [sc_compact stats names] set idx 0 foreach n {p e s r} name {Players Events Sites Rounds} { ttk::label $w.names.t$n -text "$::tr($name) " ttk::label $w.names.n$n -text " [::utils::thousands [lindex $ndata $idx]]" incr idx ttk::label $w.names.u$n -text " [::utils::thousands [lindex $ndata $idx]]" incr idx grid $w.names.t$n -row $row -column 0 -sticky w grid $w.names.n$n -row $row -column 1 -sticky e grid $w.names.u$n -row $row -column 2 -sticky e incr row } ttk::label $w.games.title -text $::tr(GameFile) -font font_Bold grid $w.games.title -columnspan 3 -row 0 -column 0 -sticky n ttk::label $w.games.gt -text " [::utils::string::Capital $::tr(games)]" grid $w.games.gt -row 1 -column 1 -sticky e ttk::label $w.games.st -text " $::tr(SizeKb)" grid $w.games.st -row 1 -column 2 -sticky e ttk::frame $w.games.h -height 1 -relief solid ;# -bg black grid $w.games.h -columnspan 3 -row 2 -column 0 -sticky we set row 3 set ndata [sc_compact stats games] set idx 0 foreach g {current compact} name {CurrentState AfterCompaction} { ttk::label $w.games.t$g -text "$::tr($name) " ttk::label $w.games.g$g -text " [::utils::thousands [lindex $ndata $idx]]" incr idx set kbytes [expr {int(([lindex $ndata $idx] + 512) / 1024)} ] ttk::label $w.games.s$g -text " [::utils::thousands $kbytes]" incr idx grid $w.games.t$g -row $row -column 0 -sticky w grid $w.games.g$g -row $row -column 1 -sticky e grid $w.games.s$g -row $row -column 2 -sticky e incr row } ttk::button $w.buttons.n -text $::tr(CompactNames) -command compactNames ttk::button $w.buttons.g -text $::tr(CompactGames) -command compactGames ttk::button $w.buttons.help -text $::tr(Help) -command {helpWindow Compact} ttk::button $w.buttons.cancel -text $::tr(Cancel) -command "focus .; grab release $w; destroy $w" pack $w.buttons.cancel $w.buttons.help -side right -padx 5 -pady 2 pack $w.buttons.n $w.buttons.g -side left -padx 5 -pady 2 grab $w } proc compactNames {} { set w .compactWin set stats [sc_compact stats names] if {[lindex $stats 1] == 0 && [lindex $stats 3] == 0 && \ [lindex $stats 5] == 0 && [lindex $stats 7] == 0} { tk_messageBox -type ok -icon info -parent $w -title [concat "Scid: " $::tr(CompactNames)] -message $::tr(NoUnusedNames) return } progressWindow "Scid" [concat $::tr(CompactNames) "..."] busyCursor . set err [catch {sc_compact names} result] unbusyCursor . closeProgressWindow set w .compactWin if {$err} { tk_messageBox -type ok -icon warning -parent $w -title "Scid: Error compacting file" -message $result } else { tk_messageBox -type ok -icon info -parent $w -title [concat "Scid: " $::tr(CompactNames)] -message [subst $::tr(NameFileCompacted)] } grab release $w destroy $w updateBoard ::windows::gamelist::Refresh ::maint::Refresh } proc compactGames {} { set w .compactWin set stats [sc_compact stats games] if {[lindex $stats 1] == [lindex $stats 3] && \ [lindex $stats 0] == [lindex $stats 2]} { tk_messageBox -type ok -icon info -parent $w -title [concat "Scid: " $::tr(CompactGames)] -message $::tr(NoUnusedGames) return } progressWindow "Scid" [concat $::tr(CompactGames) "..."] \ $::tr(Cancel) "sc_progressBar" busyCursor . set err [catch {sc_compact games} result] unbusyCursor . closeProgressWindow if {$err} { tk_messageBox -type ok -icon warning -parent $w \ -title "Scid: Error compacting file" -message $result } else { tk_messageBox -type ok -icon info -parent $w \ -title [concat "Scid: " $::tr(CompactGames)] \ -message [subst $::tr(GameFileCompacted)] } grab release $w destroy $w updateBoard -pgn ::windows::gamelist::Refresh updateTitle ::maint::Refresh } set sortCriteria(real) "" set sortCriteria(translated) "" proc clearSortCriteria {} { set ::sortCriteria(real) "" set ::sortCriteria(translated) "" updateSortWin } proc addSortCriteria {args} { global sortCriteria foreach x $args { if {$sortCriteria(real) == ""} { set sortCriteria(real) $x set sortCriteria(translated) $::tr($x) } else { append sortCriteria(real) ", $x" append sortCriteria(translated) ", $::tr($x)" } } updateSortWin } proc makeSortWin {} { global sortCriteria set w .sortWin if {[winfo exists $w]} { raiseWin $w return } toplevel $w wm title $w "Scid: [tr FileMaintSort]" wm resizable $w 0 0 pack [ttk::frame $w.f] ttk::label $w.f.torder -textvar ::tr(SortCriteria:) -font font_Bold pack $w.f.torder -side top ttk::label $w.f.order -textvar sortCriteria(translated) -width 40 -background white \ -relief solid -anchor w pack $w.f.order -side top -fill x -pady 2 -padx 2 addHorizontalRule $w.f ttk::label $w.f.tadd -textvar ::tr(AddCriteria:) -font font_Bold pack $w.f.tadd -side top pack [ttk::frame $w.f.add] -side top -fill x foreach b {Date Year Month Event Site Country Round Result Length White Black Rating ECO Deleted EventDate} { set n [string tolower $b] ttk::button $w.f.add.$n -textvar ::tr($b) -command "addSortCriteria $b" } grid $w.f.add.date -row 0 -column 0 -sticky we grid $w.f.add.year -row 0 -column 1 -sticky we grid $w.f.add.month -row 0 -column 2 -sticky we grid $w.f.add.event -row 1 -column 0 -sticky we grid $w.f.add.site -row 1 -column 1 -sticky we grid $w.f.add.country -row 1 -column 2 -sticky we grid $w.f.add.round -row 2 -column 0 -sticky we grid $w.f.add.result -row 2 -column 1 -sticky we grid $w.f.add.length -row 2 -column 2 -sticky we grid $w.f.add.white -row 3 -column 0 -sticky we grid $w.f.add.black -row 3 -column 1 -sticky we grid $w.f.add.rating -row 3 -column 2 -sticky we grid $w.f.add.eco -row 4 -column 0 -sticky we grid $w.f.add.deleted -row 4 -column 1 -sticky we grid $w.f.add.eventdate -row 4 -column 2 -sticky we for {set i 0} {$i < 3} {incr i} { grid columnconfigure $w.f.add $i -weight 1 } addHorizontalRule $w.f ttk::label $w.f.tcommon -textvar ::tr(CommonSorts:) -font font_Bold pack $w.f.tcommon -side top pack [ttk::frame $w.f.tc] -side top -fill x ttk::button $w.f.tc.ymsedr -text "$::tr(Year), $::tr(Month), $::tr(Site), $::tr(Event), $::tr(Date), $::tr(Round)" -command { clearSortCriteria addSortCriteria Year Month Site Event Date Round } ttk::button $w.f.tc.yedr -text "$::tr(Year), $::tr(Event), $::tr(Date), $::tr(Round)" -command { clearSortCriteria addSortCriteria Year Event Date Round } ttk::button $w.f.tc.er -text "$::tr(ECO), $::tr(Rating)" -command { clearSortCriteria addSortCriteria ECO Rating } grid $w.f.tc.ymsedr -row 0 -column 0 -sticky we grid $w.f.tc.yedr -row 1 -column 0 -sticky we grid $w.f.tc.er -row 2 -column 0 -sticky we grid columnconfigure $w.f.tc 0 -weight 1 addHorizontalRule $w.f pack [ttk::frame $w.f.b] -side bottom -fill x ttk::button $w.f.b.clear -textvar ::tr(Clear) -command clearSortCriteria ttk::button $w.f.b.help -textvar ::tr(Help) -command {helpWindow Sorting} ttk::button $w.f.b.sort -textvar ::tr(Sort) -command sortDatabase ttk::button $w.f.b.close -textvar ::tr(Close) \ -command "focus .; destroy $w" pack $w.f.b.close $w.f.b.sort -side right -padx 5 -pady 2 pack $w.f.b.clear $w.f.b.help -side left -padx 5 -pady 2 bind $w {helpWindow Sorting} bind $w "$w.f.b.close invoke" standardShortcuts $w updateSortWin } proc updateSortWin {} { global sortCriteria set w .sortWin if {! [winfo exists $w]} { return } set state disabled if {[sc_base inUse] && $sortCriteria(real) != ""} { set state normal } $w.f.b.sort configure -state $state } proc sortDatabase {} { global sortCriteria set w .sortWin if {! [sc_base inUse]} { tk_messageBox -type ok -icon info -parent $w -title "Scid: Sort results" \ -message "This is not an open database; there are no games to sort." return } progressWindow "Scid" "Sorting the database..." busyCursor . set err [catch {sc_base sort $sortCriteria(real) \ {changeProgressWindow "Storing results..."} \ } result] unbusyCursor . closeProgressWindow if {$err} { tk_messageBox -type ok -icon warning -parent $w \ -title "Scid: Sort results" -message $result } else { tk_messageBox -type ok -icon info -parent $w \ -title "Scid: Sort results" \ -message "The database was successfully sorted." } updateBoard ::windows::gamelist::Refresh ::maint::Refresh } proc makeBaseReadOnly {} { if {! [sc_base inUse]} { return } if {[sc_base isReadOnly]} { return } set result [tk_dialog .roDialog "Scid: [tr FileReadOnly]" \ $::tr(ReadOnlyDialog) "" 1 $::tr(Yes) $::tr(No)] if {$result == 0} { sc_base isReadOnly set updateMenuStates } } # allocateRatings: # Allocate player ratings to games based on the spellcheck file. # set addRatings(overwrite) 0 set addRatings(filter) 0 proc allocateRatings {} { if {[catch {sc_name ratings -test 1} result]} { tk_messageBox -type ok -icon info -parent . -title "Scid" -message $result return } set w .ardialog toplevel $w wm title $w "Scid" ttk::label $w.lab -wraplength 3i -justify center -text $::tr(AllocRatingDescription) pack $w.lab -side top -expand 1 -fill x -anchor center addHorizontalRule $w pack [ttk::frame $w.r] -side top ttk::label $w.r.lab -text $::tr(RatingOverride) ttk::radiobutton $w.r.yes -variable addRatings(overwrite) \ -value 1 -text $::tr(Yes) ttk::radiobutton $w.r.no -variable addRatings(overwrite) \ -value 0 -text $::tr(No) pack $w.r.lab $w.r.yes $w.r.no -side left addHorizontalRule $w pack [ttk::frame $w.g] -side top -expand 1 -fill x ttk::label $w.g.lab -text $::tr(AddRatings) ttk::radiobutton $w.g.all -variable addRatings(filter) \ -value 0 -text $::tr(SelectAllGames) ttk::radiobutton $w.g.filter -variable addRatings(filter) \ -value 1 -text $::tr(SelectFilterGames) pack $w.g.lab $w.g.all $w.g.filter -side top addHorizontalRule $w pack [ttk::frame $w.b] -side top -fill x ttk::button $w.b.ok -text "OK" \ -command "catch {grab release $w}; destroy $w; doAllocateRatings" ttk::button $w.b.cancel -text $::tr(Cancel) \ -command "catch {grab release $w}; destroy $w" pack $w.b.cancel $w.b.ok -side right -padx 3 -pady 3 catch {grab $w} focus $w.b.ok } proc doAllocateRatings {} { global addRatings if {[catch {sc_name ratings -test 1} result]} { tk_messageBox -type ok -icon info -parent . -title "Scid" -message $result return } progressWindow "Scid" "Adding Elo ratings..." busyCursor . if {[catch {sc_name ratings -change $addRatings(overwrite) -filter $addRatings(filter)} result]} { closeProgressWindow tk_messageBox -type ok -icon warning -parent . \ -title "Scid" -message $result } else { closeProgressWindow set r [::utils::thousands [lindex $result 0]] set g [::utils::thousands [lindex $result 1]] tk_messageBox -type ok -icon info -parent . \ -title "Scid" -message [subst $::tr(AddedRatings)] } unbusyCursor . } # stripTags: # Strip unwanted PGN tags from the current database. array set stripTagCount {} proc stripTags {} { global stripTagChoice stripTagCount set w .striptags if {[winfo exists $w]} { raise $w return } set stripTagList {} # Find extra PGN tags: set ::interrupt 0 progressWindow "Scid" "Searching for extra PGN tags..." \ $::tr(Cancel) "set ::interrupt 1; sc_progressBar" busyCursor . set err [catch {sc_base tag list} result] unbusyCursor . closeProgressWindow if {$::interrupt} { return } if {$err} { tk_messageBox -title "Scid" -icon warning -type ok -message $result return } # Make list of extra tags and their frequency: array unset stripTagCount set nTags 0 foreach {tag count} $result { set stripTagCount($tag) $count incr nTags } if {$nTags == 0} { tk_messageBox -title "Scid" -icon info -type ok \ -message "No extra tags were found." return } toplevel $w wm title $w "Scid: $::tr(StripTags)" ttk::label $w.title -text "Extra PGN tags:" -font font_Bold -anchor center pack $w.title -side top -fill x -anchor center pack [ttk::frame $w.f] -side top -fill x addHorizontalRule $w pack [ttk::frame $w.b] -side bottom -fill x set row 0 foreach tag [lsort [array names stripTagCount]] { set count $stripTagCount($tag) ttk::radiobutton $w.f.t$tag -text "$tag " -variable stripTagChoice -value $tag ttk::label $w.f.c$tag -text [::utils::thousands $count] if {$row == 0} { set stripTagChoice $tag } grid $w.f.t$tag -row $row -column 0 -sticky w grid $w.f.c$tag -row $row -column 1 -sticky e incr row } ttk::button $w.b.find -text $::tr(SetFilter) -command findStripTags ttk::button $w.b.strip -text $::tr(StripTag...) -command { set removed [doStripTags .striptags] set stripTagCount($stripTagChoice) \ [expr {$stripTagCount($stripTagChoice) - $removed} ] .striptags.f.c$stripTagChoice configure -text \ [::utils::thousands $stripTagCount($stripTagChoice)] } ttk::button $w.b.cancel -text $::tr(Cancel) \ -command "catch {grab release $w}; destroy $w" pack $w.b.cancel $w.b.strip $w.b.find -side right -padx 2 -pady 2 wm resizable $w 0 0 update catch {grab $w} } proc doStripTags {{parent .}} { global stripTagChoice set msg "Do you really want to remove all occurences of the PGN tag" append msg " \"$stripTagChoice\" from this database?" set result [tk_messageBox -title "Scid" -parent $parent \ -icon question -type yesno -message $msg] if {$result == "no"} { return 0 } progressWindow "Scid" "Removing the PGN tag $stripTagChoice..." \ $::tr(Cancel) "sc_progressBar" busyCursor . set err [catch {sc_base tag strip $stripTagChoice} result] unbusyCursor . closeProgressWindow set count 0 if {! $err} { set count $result set result "Removed $result instances of \"$stripTagChoice\"." append result "\n\n" append result "To save space and maintain database efficiency, it is a " append result "good idea to compact the game file after removing tags." } tk_messageBox -title "Scid" -parent $parent -type ok -icon info \ -message $result return $count } proc findStripTags {} { global stripTagChoice progressWindow "Scid" "Finding games with the PGN tag $stripTagChoice..." \ $::tr(Cancel) "sc_progressBar" busyCursor . set err [catch {sc_base tag find $stripTagChoice} result] unbusyCursor . closeProgressWindow ::windows::stats::Refresh } # cleanerWin: # Open a dialog so the user can choose several maintenance tasks # in one action. set cleaner(players) 1 set cleaner(events) 1 set cleaner(sites) 1 set cleaner(rounds) 1 set cleaner(eco) 1 set cleaner(elo) 1 set cleaner(twins) 1 set cleaner(cnames) 0 set cleaner(cgames) 0 set cleaner(tree) 0 proc cleanerWin {} { set w .mtoolWin if {[winfo exists $w]} { return } toplevel $w wm title $w "Scid: $::tr(Cleaner)" bind $w {helpWindow Maintenance Cleaner} pack [ttk::frame $w.f] pack [ttk::frame $w.f.help] -side top -fill x text $w.f.help.text -width 1 -height 8 -wrap word \ -relief ridge -cursor top_left_arrow -yscrollcommand "$w.f.help.ybar set" ttk::scrollbar $w.f.help.ybar -orient vertical -command "$w.f.help.text yview" \ -takefocus 0 pack $w.f.help.ybar -side right -fill y pack $w.f.help.text -side left -fill x -expand yes $w.f.help.text insert end [string trim $::tr(CleanerHelp)] $w.f.help.text configure -state disabled pack [ttk::frame $w.f.f] -side top -padx 20 foreach i {players events sites rounds} j {Players Events Sites Rounds} { ttk::label $w.f.f.$i -text "$::tr(Spellchecking): $::tr($j)" } ttk::label $w.f.f.eco -text $::tr(ReclassifyGames) ttk::label $w.f.f.elo -text $::tr(AddEloRatings) ttk::label $w.f.f.twins -text $::tr(DeleteTwins) ttk::label $w.f.f.cnames -text $::tr(CompactNames) ttk::label $w.f.f.cgames -text $::tr(CompactGames) ttk::label $w.f.f.tree -text [tr TreeFileFill] foreach i {players events sites rounds eco elo twins cnames cgames tree} { ttk::radiobutton $w.f.f.y$i -variable cleaner($i) -value 1 -text $::tr(Yes) ttk::radiobutton $w.f.f.n$i -variable cleaner($i) -value 0 -text $::tr(No) } set row 0 foreach i {players events sites rounds eco elo twins cnames cgames tree} { grid $w.f.f.$i -row $row -column 0 -sticky w grid $w.f.f.y$i -row $row -column 1 -sticky w grid $w.f.f.n$i -row $row -column 2 -sticky w incr row } addHorizontalRule $w.f pack [ttk::frame $w.f.b] -side bottom -fill x ttk::button $w.f.b.ok -text "OK" -command "catch {grab release $w}; destroy $w; doCleaner" ttk::button $w.f.b.cancel -text $::tr(Cancel) -command "catch {grab release $w}; destroy $w" pack $w.f.b.cancel $w.f.b.ok -side right -padx 2 -pady 2 wm resizable $w 0 0 # Remove the scrollbar if it is not needed: update set yview [$w.f.help.text yview] if {[lindex $yview 0] <= 0.01 && [lindex $yview 1] >= 0.99} { pack forget $w.f.help.ybar } catch {grab $w} } # Maximum nr of corrections to be scanned # Set to zero to find them all # Set to some positive number to limit # set cleaner_maxSpellCorrections 0 proc doCleaner {} { global cleaner twinSettings global cleaner_maxSpellCorrections set answer [tk_dialog .mtoolDialog "Scid" \ [string trim $::tr(CleanerConfirm)] "" \ 0 $::tr(Yes) $::tr(No)] if {$answer != 0} { return } set w .mtoolStatus if {! [winfo exists $w]} { toplevel $w wm title $w "Scid: $::tr(Cleaner)" pack [ttk::frame $w.f] pack [ttk::frame $w.f.b] -side bottom -fill x -expand yes pack [ttk::frame $w.f.t] -side top -fill both -expand yes text $w.f.t.text -width 60 -height 10 -wrap none -setgrid 1 \ -cursor top_left_arrow -yscrollcommand "$w.f.t.ybar set" ttk::scrollbar $w.f.t.ybar -orient vertical -command "$w.f.t.text yview" -takefocus 0 pack $w.f.t.ybar -side right -fill y pack $w.f.t.text -side left -fill both -expand yes ttk::button $w.f.b.close -text $::tr(Close) -command "catch {grab release $w}; destroy $w" pack $w.f.b.close -side right -padx 2 -pady 2 wm minsize $w 20 5 } busyCursor . catch {grab $w} set t $w.f.t.text $t delete 1.0 end $t insert end "$::tr(Cleaner)." $t insert end " $::tr(Database): [file tail [sc_base filename]]\n" $w.f.b.close configure -state disabled set count 1 foreach nameType {Player Event Site Round} { set names $nameType append names "s" set tag [string tolower $names] if {$cleaner($tag)} { mtoolAdd $t "$count: $::tr(Spellchecking): $::tr($names)..." incr count set result "0 $nameType names were corrected." if {! [catch {sc_name spellcheck -max $cleaner_maxSpellCorrections $nameType} corrections]} { update catch {sc_name correct $nameType $corrections} result } $t insert end " $result\n" $t see end } } if {$cleaner(eco)} { mtoolAdd $t "$count: $::tr(ReclassifyGames)..." incr count catch {sc_eco base $::classifyOption(AllGames) \ $::classifyOption(ExtendedCodes)} result $t insert end " $result\n" $t see end } if {$cleaner(elo)} { mtoolAdd $t "$count: $::tr(AddEloRatings)..." incr count if {[catch {sc_name ratings} result]} { $t insert end " $result\n" } else { set r [::utils::thousands [lindex $result 0]] set g [::utils::thousands [lindex $result 1]] $t insert end " Scid added $r Elo ratings in $g games.\n" } } if {$cleaner(twins)} { mtoolAdd $t "$count: $::tr(DeleteTwins)..." incr count if {$twinSettings(undelete) == "Yes"} { catch {sc_game flag delete all 0} update } if {[catch {sc_base duplicates -colors $twinSettings(colors) \ -event $twinSettings(event) -site $twinSettings(site) \ -round $twinSettings(round) -year $twinSettings(year) \ -month $twinSettings(month) -day $twinSettings(day) \ -result $twinSettings(result) -eco $twinSettings(eco) \ -moves $twinSettings(moves) -players $twinSettings(players) \ -setfilter $twinSettings(setfilter) \ -usefilter $twinSettings(usefilter) \ -comments $twinSettings(comments) \ -variations $twinSettings(variations) \ -delete $twinSettings(delete)} result]} { set message $result } else { set message "Scid found $result twin games" if {$result > 0} {append message " and set their delete flags"} } $t insert end " $message.\n" } if {$cleaner(cnames)} { mtoolAdd $t "$count: $::tr(CompactNames)..." incr count set stats [sc_compact stats names] if {[lindex $stats 1] == 0 && [lindex $stats 3] == 0 && \ [lindex $stats 5] == 0 && [lindex $stats 7] == 0} { $t insert end " Name file already compacted.\n" } else { set err [catch {sc_compact names} result] if {$err} { $t insert end " $result\n" } else { $t insert end " Done.\n" } } $t see end } if {$cleaner(cgames)} { mtoolAdd $t "$count: $::tr(CompactGames)..." incr count set stats [sc_compact stats games] if {[lindex $stats 1] == [lindex $stats 3] && \ [lindex $stats 0] == [lindex $stats 2]} { $t insert end " Game file already compacted.\n" } else { set err [catch {sc_compact games} result] if {$err} { $t insert end " $result\n" } else { $t insert end " Done.\n" } } $t see end } if {$cleaner(tree)} { mtoolAdd $t "$count: [tr TreeFileFill]..." incr count sc_game push set base [sc_base current] set len [llength $::tree(standardLines)] foreach line $::tree(standardLines) { sc_game new if {[llength $line] > 0} { foreach move $line {sc_move addSan $move} } sc_tree search -base $base update } catch {sc_tree write $base} result sc_game pop $t insert end " Done.\n" } mtoolAdd $t "Done." updateBoard ::windows::gamelist::Refresh ::maint::Refresh $w.f.b.close configure -state normal catch {grab release $w} unbusyCursor . } proc mtoolAdd {tw title} { set time [clock format [clock seconds] -format "%H:%M:%S"] $tw insert end "\n\[$time\]\n" if {$title != ""} { $tw insert end "$title\n" } $tw see end update } scid-4.3.0.cvs20120311/tcl/contrib/0000755000175000017500000000000011727223077015660 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/0000755000175000017500000000000011727223077017202 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/test_examples.txt0000644000175000017500000000427611727223077022631 0ustar oliveroliver# test_examples.txt -- # $Id: test_examples.txt,v 4.3 2011/02/13 18:12:01 arwagner Exp $ # # Some sample commands that can be copied/pasted into a Tcl console # for testing. Provides some reasonable examples of the features # that people might want to use. package require ezsmtp ezsmtp::config -mailhost cayenne -from dhagberg@millibits.com -verbose 9 # Return the current time, formatted ISO-8601, in GMT. proc t {} { clock format [clock seconds] -format {%Y-%m-%d %H:%M:%S} -gmt 1 } # Test simple send, taking body from a variable, setting reply address # to one different than `From:', to a list of recipients. set body "Body of test 1 at time [t]" ezsmtp::send -replyto dhagberg@glatmos.com \ -tolist [list d.j.hagberg@acm.org dhagberg@millibits.com] \ -subject "Test 1 [t]" -body $body # Test list options, batching of addresses, and return-receipt ezsmtp::send -from "D. J. Hagberg ACM " \ -tolist [list "D. J. Hagberg WRK "] \ -cclist [list "D. J. Hagberg ACM "] \ -bcclist [list "D. J. Hagberg MBT "] \ -subject "Test 2 [t]" -body "Body of test 2\nat time [t]" \ -receipt [list delivery 1 delay 0 envelopeid "CLK=[clock seconds]"] \ -batchsize 2 # Test deprecated addressing -- should throw an error with ezsmtp >= 1.0 ezsmtp::send -from "D. J. Hagberg MBT " \ -subject "Test 3 [t]" -body "Body of test 3\nat time [t]" \ -receipt 0 -batchsize 2 \ dhagberg@glatmos.com "D. J. Hagberg ACM " \ dhagberg@millibits.com # Test customized -headers output ezsmtp::send -to dhagberg -headers [list Subject "A subject line" \ Date [clock format [clock seconds]] \ From "Laurent Duperval "]\ -body {Text body} # Test handling of non-ASCII (russian) character set reading from a file. set k8r [open koi8-r-body.txt r] fconfigure $k8r -encoding koi8-r ezsmtp::send -from dhagberg@glatmos.com \ -to dhagberg@millibits.com \ -subject "test 1 [t]" \ -channel $k8r \ -charset koi8-r close $k8r scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/ezsmtp.tcl0000644000175000017500000010404011727223077021227 0ustar oliveroliver# ezsmtp.tcl -- # # "Easy" SMTP-base mail sending library. See the ezsmtp.html # file for documentation on using this package. # # Copyright (c) 1999-2000 by D. J. Hagberg and other parties # # See the file "license.txt" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. package provide ezsmtp 1.0.0 namespace eval ::ezsmtp { global env tcl_platform variable mail # Make CVS version ID accessible. set mail(cvsid) \ {$Id: ezsmtp.tcl,v 4.3 2011/02/13 18:12:01 arwagner Exp $} # Global variables that may be altered through ezsmtp::config. set mail(vars) [list verbose mailhost port from batchsize \ logproc strictaddr] set mail(verbose) 0 ;# No logging output set mail(mailhost) localhost ;# Host with smtp daemon set mail(port) 25 ;# port for smtp daemon set mail(batchsize) 0 ;# no batching of RCPT TO's. set mail(logproc) {} ;# empty means log to stdout. set mail(strictaddr) 0 ;# should we enforce RFC821 addresses? # Try to figure out a reasonable default FROM. # Tcl8.1 already has figured out the username for us. # Older versions are not so nice-- need to look in the environment if {[info exists tcl_platform(user)]} {set mail(from) $tcl_platform(user)}\ elseif {[info exists env(LOGNAME)]} {set mail(from) $env(LOGNAME)} \ elseif {[info exists env(USERNAME)]} {set mail(from) $env(USERNAME)} \ elseif {[info exists env(USER)]} {set mail(from) $env(USER)} \ else {set mail(from) {}} # Trim any leading/trailing spaces and add @ current host name set mail(from) [string trim $mail(from)] if {[string length $mail(from)] > 0} { append mail(from) @ [info hostname] } # Regular-expression for validating email addresses. set mail(hostre) {[A-Za-z]([A-Za-z0-9-]*[A-Za-z0-9])*|\#[0-9]+|} append mail(hostre) {\[[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\]} set mail(hostre) "($mail(hostre))(\\.($mail(hostre)))*" set mail(strictre) "^\[^\x01-\x20\x7F-\xFF<>@\]+@" append mail(strictre) $mail(hostre) {$} set mail(!strictre) {^[^@]+|[^@]+@[^@]+$} # Default character set/encoding settings set mail(tclcharset) ascii set mail(mimecharset) us-ascii # Package-wide header settings to be sent in the DATA section of the email. # Note each header variable is a list -- one element per line. set mail(x-mailer) "Tcl ezsmtp Mailer Package" if {[llength $mail(cvsid)] > 2} { append mail(x-mailer) " (build " [lindex $mail(cvsid) 3] ")" } set mail(x-mailer:) [list $mail(x-mailer)] set mail(mime-version:) [list "1.0"] } ############################################################################# ## ## PUBLICALLY-DOCUMENTED PROCS ## ############################################################################# # ezsmtp::config -- # # See documentation for details. # # Arguments: # args Options parsed by the procedure. # Results: # See documentation # proc ::ezsmtp::config {args} { variable mail if {[llength $args] == 0} { set resl {} foreach v $mail(vars) {lappend resl "-$v" [set mail($v)]} return $resl } # Build up a list of valid switches. set swl {} foreach sw $mail(vars) {lappend swl "-$sw"} # If we got a single arg, return its associated variable value if {[llength $args] == 1} { set v [lindex $args 0] if {[lsearch $swl $v] == -1} { error "invalid config option, must be one of: $swl" } return $mail([string trimleft $v -]) } # If we got multiple args, make sure we got an even number. set argc [llength $args] if {$argc % 2} { error "must have an even number of config -option value's." } # Try each -option/value foreach {sw v} $args { if {[lsearch $swl $sw] == -1} { error "invalid config option, must be one of $swl" } # Verify numeric & other config values. switch -regexp -- $sw { {^-(verbose|batchsize)} { set v [expr {int($v)}] if {$v < 0} { error "config value for $sw must be a number >= 0" } } {^-strictaddr$} { set v [expr {$v ? 1 : 0}] } {^-from$} { set v [private_valid_address $v -from] } default { } } set mail([string trimleft $sw -]) $v } return 1 } # ezsmtp::send -- # # See documentation for details. # # Arguments: # args Options parsed by the procedure. # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::send {args} { global errorInfo errorCode variable mail # Set defaults for the current send based on global variables foreach v [list mailhost port from batchsize tclcharset mimecharset] { set cur($v) [set mail($v)] } # Start with an empty recipient list and return-receipt disabled set cur(rcpt) {} set cur(receipt) 0 # process arguments to smtp::send. set validopts [list -subject -from -mailhost -port -channel -body \ -batchsize] set argc [llength $args] for {set i 0} {$i < $argc} {incr i} { set arg [lindex $args $i] switch -regexp -- $arg { {^-headers$} { incr i; set arg [lindex $args $i] if {[llength $arg] % 2} { error "Invalid -headers. Must be a well-formatted list\ of even length with alternating keys/values." } foreach {k v} $arg { private_add_header cur $k $v } } {^-(to|cc|bcc|tolist|cclist|bcclist|replyto|replytolist)$} { incr i set recip [lindex $args $i] private_add_recip cur [string trimleft $arg -] $recip } {^-receipt$} { incr i private_return_receipt cur [lindex $args $i] } {^-charset$} { incr i private_set_charset cur [lindex $args $i] } {^-} { if {[lsearch $validopts $arg] == -1} { error "Unknown option: $arg. Must be one of: -headers\ -to -cc -bcc -tolist -cclist -bcclist -replyto\ -replytolist $validopts" } incr i set cur([string trimleft $arg -]) [lindex $args $i] } default { break } } } # Throw an error on any remaining arguments. Older versions (< 1.0) # allowed addresses to be specified after the last arg... if {$i < [llength $args]} { error "Unknown argument(s): [lrange $args $i [expr\ {[llength $args]-1}]]. Please read the docs about\ ezsmtp::send -to/-cc/-bcc/-tolist/-cclist/-bcclist." } # Make sure we have at least one recipient. if {[llength $cur(rcpt)] < 1} { error "Missing RECIPIENTs. Must be: ...send ?options?\ ?RECIPIENT? ?RECIPIENT...?" } # Make sure we have a from address and header configured set cur(from) [string trim $cur(from)] if {![string length $cur(from)]} { error "no from address has been specified (length=0)" } if {![info exists cur(from:)]} {private_add_header cur from $cur(from)} set cur(from) [private_valid_address $cur(from) -from] # Make sure we have either -channel or -body specified. if {[info exists cur(channel)] && [info exists cur(body)]} { error "Cannot specify both -channel and -body options." } elseif {!([info exists cur(channel)] || [info exists cur(body)])} { error "Must specify either -channel or -body option." } # Open a socket to the SMTP server and send the message, catching any # errors to ensure the socket gets closed. Rethrow error after close. set s [socket $cur(mailhost) $cur(port)] if {[catch [list private_smtp_begin $s cur] msg]} { set tmp_EI $::errorInfo; set tmp_EC $::errorCode private_log 9 "errorCode=$tmp_EC errorInfo=$tmp_EI" catch [list close $s] error $msg $tmp_EI $tmp_EC } catch [list close $s] return $msg } ############################################################################# ## ## PRIVATE PROCS - SUBJECT TO RADICAL CHANGE ON THE SLIGHTEST WHIM. ## ############################################################################# # ezsmtp::private_add_header -- # # Validate and add a single header to the list of email headers to be # sent before the message. # # Arguments: # var Variable name for associative array in the calling # proc containing the specification for this send. # key An RFC822-compliant header name without the trailing # colon. Example: Reply-To # value Value to be sent for the above header name. Multi-line # headers may be specified using newline (\n) separators. # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::private_add_header {var key value} { upvar 1 $var cur variable mail # Force the header name to lower case and ensure RFC compliance. set key [string tolower $key] if {[regexp "\[\x01-\x20\x7F-\xFF:\]" $key]} { error "Invalid header name ($key). RFC 822 stipulates ASCII\ Characters excluding CTRL characters, space, and `:'" } # split value into lines, trimming leading and trailing space. set vall {} foreach ln [split $value \n] { set ln [string trim $ln] if {[string length $ln] > 65} { private_log 2 "Header $key contains line longer than 65\ chars:\n$ln" } lappend vall $ln } # set in the current send session's array by appending colon to key. private_log 6 "Header $key=[join $vall "\n\t"]" set cur([set key]:) $vall } # ezsmtp::private_set_charset -- # # Validate and set the Tcl socket encoding and default MIME charset # for this send. # # Arguments: # var Variable name for associative array in the calling # proc containing the specification for this send. # value A Tcl list with either 1 or 2 elements, per the # docs for ezsmtp::send -charset # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::private_set_charset {var value} { upvar 1 $var cur global tcl_version if {$tcl_version < 8.1} { error "Cannot specify -charset running in Tcl versions < 8.1" } if {[llength $value] == 1} { set cstcl [string tolower [lindex $value 0]] if {[string compare $cstcl ascii] == 0} { set csmime us-ascii } else { set csmime $cstcl } } elseif {[llength $value] == 2} { set cstcl [string tolower [lindex $value 0]] set csmime [string tolower [lindex $value 1]] } else { error "-charset value must be a Tcl list with either one or two\ elements" } if {[lsearch -exact [encoding names] $cstcl] == -1} { error "charset $cstcl is not a valid Tcl encoding" } set cur(mimecharset) $csmime set cur(tclcharset) $cstcl } # ezsmtp::private_add_recip -- # # Add a single or list of recipients/respondants as either `To:', # `Cc:', Bcc, or `Reply-To:' addresses. # # Arguments: # var Variable name for associative array in the calling # proc containing the specification for this send. # type One of to, cc, bcc, replyto, tolist, cclist, bcclist, # or replytolist. # value If the `type' specified is one of tolist, cclist, # bcclist, or replytolist this must be a well-formed Tcl # list of addresses. If the `type' specified is one of # to, cc, bcc, or replyto this must be a single email # address to add. # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::private_add_recip {var type value} { upvar 1 $var cur variable mail set rcpt_added 0 set is_replyto 0 set is_bcc 0 # decide whether "value" is a list or a single-element address # based on whether the type ends in "list". If it ends in "list", # strip that off the end. If no recipients, return immediately. if {[string match *list $type]} { set reciplist $value regsub {list$} $type {} type } else { set reciplist [list $value] } if {[llength $reciplist] < 1} { return $rcpt_added } # At this point $type will be "bcc", "to", "cc", or "replyto". # Determine which header variable we will be affecting and make # sure it exists, skipping bcc. "replyto" should be "reply-to" in # the headers, so we switch it here. if {[string compare $type bcc] == 0} { set is_bcc 1 } elseif {[string compare $type replyto] == 0} { set is_replyto 1 set type reply-to } if {!$is_bcc} { set headvar "cur([set type]:)" if {[info exists $headvar]} { set curlist [set $headvar] } else { set curlist {} } # If current stuff in header and we need to add more to the header, # make sure the last element ends with a comma (,). if {([llength $curlist] > 0) && ([llength $reciplist] > 0)} { set idxend [expr {[llength $curlist]-1}] set lastelem [lindex $curlist $idxend] append lastelem "," set curlist [lreplace $curlist $idxend $idxend $lastelem] } } # Loop through all the addresses passed to this proc foreach addr $reciplist { set addr [string trim $addr] if {![string length $addr]} { private_log 1 "WARNING: empty address ignored" continue } # Add the address to `To:', `Cc:', and `Reply-To:' headers verbatim. if {!$is_bcc} { lappend curlist "$addr," } # Do fussy-validation on the recipient address before adding to rcpt's set addr [private_valid_address $addr -$type] # Add all but Reply-To addresses to the recipient list if {!$is_replyto} { lappend cur(rcpt) $addr } incr rcpt_added } # Nuke any trailing comma in To:/Cc:/Reply-To: header var's, # then and set header var. if {!$is_bcc} { if {[llength $curlist] > 0} { set idxend [expr {[llength $curlist]-1}] set lastelem [string trimright [lindex $curlist $idxend] ,] set curlist [lreplace $curlist $idxend $idxend $lastelem] } set $headvar $curlist } # Return number of addresses added set rcpt_added } # ezsmtp::private_return_receipt -- # # Sets the return-receipt behavior of this send. See the docs # for ezsmtp::send -receipt to describe the arglist argument. # # Arguments: # var Variable name for associative array in the calling # proc containing the specification for this send. # arglist May be either a single boolean element or a key/value # list of return-receipt settings, per the docs. # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::private_return_receipt {var arglist} { upvar 1 $var cur # List of valid keys for -receipt list options set validopts [list delivery delay nsmail returnfull envelopeid] # Set receipt off and array values to default settings. array set cur [list receipt 0 receipt,delivery 1 receipt,delay 1 \ receipt,nsmail 0 receipt,returnfull 0 receipt,envelopeid {}] # Single-argument to -receipt should be a boolean on/off for defaults. if {[llength $arglist] == 1} { set cur(receipt) [expr {[lindex $arglist 0] ? 1 : 0}] return } # Otherwise, we have a list of arguments that must be validated & set. # First, make sure the argument list has a valid length... if {([llength $arglist] < 2) || ([llength $arglist] % 2)} { error "ERROR: keyvaluelist passed to ezsmtp::send -receipt must have\ an even number of elements and a length of at least 2 elements" } # And validate each setting, setting appropriate current-send variable. foreach {k v} $arglist { switch -exact -- $k { envelopeid { if {[string length [set v [private_xtext $v]]] > 38} { error "ERROR: encoded envelope ID ($v) is too long. Must\ be < 38 chars encoded." } set cur(receipt,$k) $v } default { if {[lsearch -exact $validopts $k] == -1} { error "ERROR: bad setting for -receipt key. Must be 1 of:\ [join $validopts { }]" } set cur(receipt,$k) [expr {$v ? 1 : 0}] } } } set cur(receipt) 1 } # ezsmtp::private_smtp_begin -- # # Start the send by trying EHLO/HELO greeting followed by one or more # SMTP conversations, optionally batching some number of recipients. # # Arguments: # s Open socket to SMTP server. # var Variable name for associative array in the calling # proc containing the specification for this send. # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::private_smtp_begin {s var} { upvar 1 $var cur global tcl_version variable mail # Set up the socket for line-buffering/translation. Only set encoding # if we're running in Tcl 8.1 or newer that supports encodings. if {$tcl_version < 8.1} { fconfigure $s -buffering line -blocking 1 -eofchar {} \ -translation {auto crlf} } else { fconfigure $s -buffering line -blocking 1 -eofchar {} \ -translation {auto crlf} -encoding $cur(tclcharset) } private_log 2 "Opened connection to SMTP server $cur(mailhost)" private_read_all $s 3 220 # Try to set up for ESMTP conversation set cur(esmtp) 0 private_send_line $s 3 "EHLO [info hostname]" set buf [private_read_all $s 3 {[0-9][0-9][0-9]}] if {[string match "250*" $buf]} { set cur(esmtp) 1 set buf [split $buf \n] foreach ln [lrange $buf 1 [expr {[llength $buf]-1}]] { if {[regexp -nocase \ "^250\[ -\](\[A-Z0-9\]\[A-Z0-9-\]*) (\[^\x01-\x20\x7F\])"\ $ln nil ehlo_keyword ehlo_param]} { set ehlo_keyword [string tolower $ehlo_keyword] set ehlo_param [string tolower $ehlo_param] set cur(esmtp,$ehlo_keyword) $ehlo_param } elseif {[regexp -nocase "^250\[ -\](\[A-Z0-9\]\[A-Z0-9-\]*)" \ $ln nil ehlo_keyword]} { set ehlo_keyword [string tolower $ehlo_keyword] set cur(esmtp,$ehlo_keyword) 1 } } } else { # Otherwise, set up for normal RFC-821 SMTP conversation. private_send_line $s 3 "HELO [info hostname]" private_read_all $s 3 250 } # If user requested return-receipt but not supported by server, bail. if {$cur(receipt) && ![info exists cur(esmtp,dsn)]} { error "ERROR: Server does not support DSN for return receipt" } # If user requested 8bit charset but not supported by server, bail. if {([string compare $cur(tclcharset) ascii] != 0) && \ ![info exists cur(esmtp,8bitmime)]} { error "Server does not support 8-bit characters" } # If we are not doing any batching, do a straightforward send set sentcnt 0 set rcptlen [llength $cur(rcpt)] if {($cur(batchsize) <= 0) || ($rcptlen <= $cur(batchsize))} { private_log 1 "Starting mail send to [join $cur(rcpt) {, }]" private_smtp_batch $s cur 0 [expr {$rcptlen-1}] incr sentcnt $rcptlen private_log 1 "Mail sent OK" return $sentcnt } # If we are batching sends and reading message body from a channel, # find out what position we are in the channel if we are sending to # more addr's than our batch size, to allow multiple send batches. if {[info exists cur(channel)] && [info exists cur(batchsize)]} { set cur(channelpos) [tell $cur(channel)] if {($cur(channelpos) == -1) && ($cur(batchsize) > 0)} { error "Channel must be seek-able when a batch size has been\ specified." } } # Loop through the batches of recipients set i 0 while {$i < $rcptlen} { set e [expr {$i+$cur(batchsize)-1}] if {$e >= $rcptlen} { set e [expr {$rcptlen-1}] } private_log 1 "Starting mail send for recipients $i to $e:\n \ [join [lrange $cur(rcpt) $i $e] "\n "]" private_smtp_batch $s cur $i $e incr sentcnt [expr {$e-$i+1}] private_log 1 "Mail sent OK" # If we need to, send server a reset and rewind the channel position. if {($e < ($rcptlen-1)) && [info exists cur(channelpos)]} { seek $cur(channelpos) } set i [expr {$e + 1}] } # Return the count of unique recipients set sentcnt } # ezsmtp::private_smtp_batch -- # # Implement the SMTP conversation necessary to send the message # to a batch of recipients. This proc works off a subset of the # cur(rcpt) array of recipient email addresses specified by the # rcptstart and rcptend arguments. # # Arguments: # s Open socket to SMTP server. # var Variable name for associative array in the calling # proc containing the specification for this send. # rcptstart index in the cur(rcpt) array to start # rcptend index in the cur(rcpt) array to end # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::private_smtp_batch {s var rcptstart rcptend} { upvar 1 $var cur variable mail # Reset the SMTP server's state to begin a new conversation private_send_line $s 3 "RSET" private_read_all $s 3 # Try to build a valid "MAIL FROM:" command, including return-receipt info set cmd "MAIL FROM:<$cur(from)>" if {$cur(receipt)} { if {$cur(receipt,returnfull)} {append cmd " RET=FULL"} \ else {append cmd " RET=HDRS"} if {[string length $cur(receipt,envelopeid)]} { append cmd " ENVID=" $cur(receipt,envelopeid) } } private_send_line $s 3 $cmd private_read_all $s 3 # Build up our `NOTIFY=' extension if necessary set notifystr {} if {$cur(receipt)} { set notifyl [list FAILURE] if {$cur(receipt,delivery)} { lappend notifyl SUCCESS } if {$cur(receipt,delay)} { lappend notifyl DELAY } append notifystr " NOTIFY=" [join $notifyl ,] } # Each recipent may be specified as "emailaddr" or "Full Name " set rcptlist [lrange $cur(rcpt) $rcptstart $rcptend] foreach r $rcptlist { if {$cur(receipt)} { set orcptstr " ORCPT=rfc822;[private_xtext $r]" private_send_line $s 3 "RCPT TO:<$r>${notifystr}${orcptstr}" } else { private_send_line $s 3 "RCPT TO:<$r>" } private_read_all $s 3 {25[01]} } private_send_line $s 3 "DATA" private_read_all $s 3 354 # Send all the mail headers followed by a blank line private_send_mail_headers $s cur private_log 4 ">>\[message body\]" # If we were given a -body in the send command, split into lines and send, # ensuring that we strip any stray CR's. if {[info exists cur(body)]} { set linenum 0 regsub -all "\r" $cur(body) {} cur(body) foreach line [split $cur(body) \n] { incr linenum # Force breaks at 998 chars to comply with RFC 821 limit. while {[string length $line] > 998} { private_log 1 "WARNING: >998 chars split at line $linenum" set first998 [string range $line 0 997] set line [string range 998 [expr \ {[string length $line]-1}]] if {[string match ".*" $first998]} { set first998 ".$first998" } private_send_line $s 5 $first998 } # Send remainder <= 998 chars. if {[string match ".*" $line]} { ;# Double up leading '.' set line ".$line" } private_send_line $s 5 $line } } # If we were given a -channel in the send command, read from the channel # one line at a time and send. Assuming channel configured to strip CRs. if {[info exists cur(channel)]} { set linenum 0 while {[gets $cur(channel) line] != -1} { incr linenum # Force breaks at 998 chars to comply with RFC 821 limit. while {[string length $line] > 998} { private_log 1 "WARNING: >998 chars split at line $linenum" set first998 [string range $line 0 997] set line [string range 998 [expr \ {[string length $line]-1}]] if {[string match ".*" $first998]} { set first998 ".$first998" } private_send_line $s 5 $first998 } # Send remainder <= 998 chars. if {[string match ".*" $line]} { ;# Double up leading '.' set line ".$line" } private_send_line $s 5 $line } } # Finally, send the message terminator and read any result. private_send_line $s 4 "." private_read_all $s 3 } # ezsmtp::private_send_mail_headers -- # # Output all the available email headers at the beginning of the # message, followed by a single empty line. # # Arguments: # s Open socket to SMTP server. # var Variable name for associative array in the calling # proc containing the specification for this send. # Results: # Throws an error if anything goes wrong. # proc ::ezsmtp::private_send_mail_headers {s var} { upvar 1 $var cur variable mail set doNotSend [list date: subject: from: bcc: content-type: \ content-transfer-encoding:] # If user didn't force a custom date, use the current time in GMT. set frm "%a, %d %b %Y %H:%M:%S +0000" if {[info exists cur(date:)]} { private_send_header $s date: $cur(date:) } else { private_send_line $s 4 "Date: [clock format [clock seconds] -gmt 1 \ -format $frm]" } # If user didn't specify a custom "From:" header, use the one specified # by -from parameter or system default. if {[info exists cur(from:)]} { private_send_header $s from: $cur(from:) } else { private_send_line $s 4 "From: $cur(from)" } # Send -subject parameter if specified, or from Subject: custom header. if {[info exists cur(subject)]} { private_send_line $s 4 "Subject: $cur(subject)" } elseif {[info exists cur(subject:)]} { private_send_header $s subject: $cur(subject:) } # Send the required MIME content-type and content-transfer-encoding. if {[info exists cur(content-type:)]} { private_send_header $s content-type: $cur(content-type:) } else { private_send_line $s 4 "Content-Type: text/plain;\ charset=$cur(mimecharset)" } if {[info exists cur(content-transfer-encoding:)]} { private_send_header $s content-transfer-encoding: \ $cur(content-transfer-encoding:) } elseif {[string compare $cur(tclcharset) ascii] == 0} { private_send_line $s 4 "Content-Transfer-Encoding: 7bit" } else { private_send_line $s 4 "Content-Transfer-Encoding: 8bit" } # Send the custom headers for this current session. foreach h [array names cur *:] { if {[lsearch $doNotSend $h] != -1} continue private_send_header $s $h $cur($h) } # Send our global headers IFF they are not excluded or custom to # the current sending session. foreach h [array names mail *:] { if {[lsearch $doNotSend $h] != -1} continue if {[info exists cur($h)]} continue private_send_header $s $h $mail($h) } # Check to see if the user requested netscape-style return-receipt on open if {$cur(receipt)} { if {$cur(receipt,nsmail) && \ ![info exists cur(disposition-notification-to:)]} { private_send_line $s 4 "Disposition-Notification-To: $cur(from)" } } private_send_line $s 4 "" } # ezsmtp::private_send_header -- # # Sends a header (possibly multi-line) to the SMTP server socket, # formatting the header in proper-text and indenting subsequent # lines with a single tab. # # Arguments: # s Open socket to SMTP server. # name Name of the header being sent w/trailing colon, # like reply-to: # valuel value of header as a list -- one line per list # element. # Results: # Header is formatted and output. Returns number of lines output. # proc ::ezsmtp::private_send_header {s name valuel} { set lines 0 set first [lindex $valuel 0] set remain [lrange $valuel 1 [expr {[llength $valuel]-1}]] private_send_line $s 4 "[private_proper_header $name] $first" incr lines foreach ln $remain { private_send_line $s 4 "\t$ln" incr lines } set lines } # ezsmtp::private_send_line -- # # Sends a line of text to the SMTP server socket, logging at the # specified level. # # Arguments: # s Open socket to SMTP server. # level Log level between 0 and 9, where 0 is always, # 1 is whenever -verbose is on, and 9 is the highest # debug level available. Suggested: 4 # line Line of text to be sent to the SMTP server, minus # any trailing newline or carriage-return characters. # Results: # Closes socket $s and un-sets buffer and status variables. # proc ::ezsmtp::private_send_line {s level line} { private_log $level "S: $line" puts $s $line flush $s } # ezsmtp::private_read_all -- # # Read all available data from the SMTP server socket, handling # multi-line responses if necessary, and checking for a response # code. # # Arguments: # s Open socket to SMTP server. # level log level for data read from the socket. # resp glob-style expression to match against the start of # data received from the SMTP server. If left un- # specified, the standard 250 (OK) is expected. # Results: # Throws an error if anything goes wrong or an unexpected response # is seen. Otherwise, returns the data read from the server, with # multi-line responses separated by newline (\n) characters. # proc ::ezsmtp::private_read_all {s level {resp 250}} { variable mail # Read response from SMTP server. Single line or last line of multi-line # response will have three digits followed by a space. Other multi-line # responses will have three digits followed by a dash (RFC 821 appendix E). # Anything else, including eof, is an error. set buf {} while {1} { if {[eof $s]} { error "ERROR: unexpected EOF waiting for output from SMTP server" } set ln [gets $s] append buf $ln \n private_log $level "R: $ln" if {[string match {[0-9][0-9][0-9] *} $ln]} { break } if {![string match {[0-9][0-9][0-9]-*} $ln]} { error "ERROR: unexpected response from SMTP server. Expected\ three digits followed by either a space or a dash (-)" } } # Validate the start of the response if {![string match "$resp*" $buf]} { error "ERROR: bad response `$buf', wanted: `$resp'" } # and return the contents of all lines read, separated by newlines. set buf } # ezsmtp::private_proper_header -- # # Proper-cases an RFC 822-style email header name. # # Arguments: # h header name like reply-to # Results: # Returns the header name capitalized as most email users # expect: the first letter of each dash-separated word is # capitalized and the remainder is lower-cased, thus the # result from above would be Reply-To # proc ::ezsmtp::private_proper_header {h} { set h [string tolower $h] set resl {} # RFC 1521 clearly specifies the exact case, verbatim, for mime-version. if {[regexp -nocase mime-version: $h]} { return "MIME-Version:" } # For other headers, we capitalize the leading letter of each dash- # separated word. foreach elem [split $h -] { set str [string toupper [string index $elem 0]] append str [string range $elem 1 [expr {[string length $elem]-1}]] lappend resl $str } join $resl - } # ezsmtp::private_xtext -- # # Encode a string as an RFC 1891-compliant xtext value. Characters # outside the range ! (33) to ~ (126) or the plus (+ (43)) or # equals (= (61)) characters are coded as the plus sign (+) followed # by two upper-case hexadecimal digits representing the character code. # # Arguments: # str string to be encoded # Results: # xtext-encoded value of str, per the above spec. # proc ::ezsmtp::private_xtext {str} { set result {} foreach c [split $str {}] { scan $c %c x if {($x < 33) || ($x > 126) || ($x == 43) || ($x == 61)} { append result + [format %02X $x] } else { append result $c } } set result } # ezsmtp::private_valid_address -- # # Validate and return the essential part of an email address, # using the contents of inside a `Full Name ' spec. # # Arguments: # addrspec address spec like `user@a.com' or # `Full Name ' # setting setting to be output in an error message, like # -from, -to, ... # Results: # stripped-down email address, if valid. If invalid, an error is # thrown. # proc ::ezsmtp::private_valid_address {addrspec setting} { variable mail set addrspec [string trim $addrspec] if {[regexp {<([^>]*)>$} $addrspec nil inneraddr]} { set addrspec [string trim $inneraddr] } if {$mail(strictaddr)} {set re $mail(strictre)} \ else {set re $mail(!strictre)} if {![regexp $re $addrspec]} { error "ERROR: $setting address specified ($addrspec) is not compliant.\ Must be in a form like `user@a.domain' or `Full Name\ '" } set addrspec } # ezsmtp::private_log -- # # Log a progress/debug message to stdout or to a user-customized # procedure. # # Arguments: # level numeric level at which to log, usu. between 0 (always) # and 9 (low-level full debug). # msg message text to log # Results: # xtext-encoded value of str, per the above spec. # proc ::ezsmtp::private_log {level msg} { variable mail if {$mail(verbose) >= $level} { if {[string length $mail(logproc)]} { uplevel #0 $mail(logproc) $msg } else { puts stdout "$msg" flush stdout } } } scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/postinst.tcl0000644000175000017500000000401711727223077021573 0ustar oliveroliver# postinst.tcl -- # $Id: postinst.tcl,v 4.3 2011/02/13 18:12:01 arwagner Exp $ # # post-installation script to prompt user whether to email the # author upon successful installation. # # Copyright (c) 1999-2000 by D. J. Hagberg # # See the file "license.txt" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. set to "dhagberg@millibits.com" set doctxt "Please see the documentation in ezsmtp.html" # Ask whether user wants to test the library... output "Installation complete." if {![prompt_yn "Test new ezsmtp library installation by emailing the\ author?"]} { output_error "No email sent.\n$doctxt" {} } # Load the newly-installed library package require ezsmtp # Prompt the user for the SMTP email server to use: set input [prompt "SMTP Email Server hostname or IP address"] set mailhost [string trim $input] if {![string length $mailhost]} { output_error "No SMTP email server specified. Email test skipped\n$doctxt" } # Prompt the user for their email address: set input [prompt "Your email address"] set from [string trim $input] if {![regexp -nocase {^[A-Z0-9][^@]*@[A-Z0-9][A-Z0-9.-]*$} $from]} { output_error "Bogus email address specified. Email test skipped.\n$doctxt" } # Initial configuration ezsmtp::config -mailhost $mailhost -from $from set platform {} foreach v [list machine platform os osVersion] { if {[info exists tcl_platform($v)]} {lappend platform $tcl_platform($v)} } set subject "New ezsmtp installation" set body "A new user installed $inst(pkgname) Version : $inst(pkgvers) Platform: [join $platform { }] Tcl Vers: [info patchlevel]" # Show the user what will be sent: output "Message to be sent -- From: $from To: $to Subject: $subject $body" if {![prompt_yn "OK to send?"]} { output_error "No email sent.\n$doctxt" {} } # and send the message if {[catch [list ezsmtp::send -from $from -to $to -subject $subject \ -body $body] err]} { output_error "test email failed. Reason:\n $err\n$doctxt" } output_error "Email sent OK.\n$doctxt" "" scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/ezsmtp.html0000644000175000017500000007057111727223077021424 0ustar oliveroliver ezsmtp - Easy SMTP client package for text email

    NAME

    ezsmtp - Easy SMTP client package for text email

    SYNOPSIS

    package require ezsmtp ?1.0?
    
    ::ezsmtp::config ?options?
    
    ::ezsmtp::send ?options?
    

    DESCRIPTION

    The ezsmtp package provides an easy interface for sending email messages from Tcl 8.0 and newer via a network conversation with a local or remote SMTP-compliant mail server. This package was written to be as portable as possible and is known to work on various *nix, Windows, and Mac systems and will probably work on more exotic systems like MVS and VMS as long as Tcl's sockets function correctly. This extension attempts to be as RFC-compliant as possible, as far as is possible in a relatively small code base. Relevant standards are listed in the REFERENCES section at the end of this document.

    This package provides only the text transport mechanism -- no provisions have been made for attachments or other fancier email features. If you require full MIME support and attachments, you should consider one of the C-code packages listed in the `SEE ALSO' section. Support for non-ascii text encodings is available when run with Tcl 8.1 or newer and connected to a modern SMTP server.

    The ::ezsmtp::send command puts a simple interface around mail sending, requiring either a -body switch to specify the body of the message directly or a -channel switch to read the contents of the message from a Tcl channel, such as an opened file or socket. One or more recipent email addresses should be specified using the -to, -cc, -bcc, or respective list-oriented options.

    The ::ezsmtp::config command provides a way to change or access the package-wide settings, such as the "From" address, SMTP server, or debugging output.

    A simple example of its usage is:

    # Ensure the package is loaded
    package require ezsmtp
    
    # (NOTE: You need to set these correctly) Set the SMTP server
    # to smtp.myprovider.com and set my `From' address using the 
    # full-name form.  You only need to do this once.
    ezsmtp::config -mailhost smtp.myprovider.com \
            -from "My Name <me@myprovider.com>"
    
    # Send a message to the author expressing your enthusiasm.
    ezsmtp::send -to dhagberg@millibits.com \
            -subject "I like ezsmtp!" \
            -body "This ezsmtp stuff rocks!\n\nMy Name"
    

    The in-line comments above provide a fairly good description of what's going on. Note that the body contains two newlines before signing the message as `My Name'. The ezsmtp::send command does not perform any line-wrapping other than breaking up really long lines (see below).

    COMMANDS

    ::ezsmtp::config ?options?

    The ::ezsmtp::config command is used to set and query package-wide configuration settings. If no options are specified, then the current configuration switches and values for all options is returned in list form. If a single argument is specified, then it should be one of the flags described below. In this case the current value of that setting is returned. Otherwise, the options should be a set of flags and values that define the configuration:

    -mailhost hostname
    Where hostname should specify the TCP/IP host name or IP address of the SMTP server to use for sending email. Defaults to localhost, which should work on most Unix machines. Windows and Macintosh users do not (typically) have an SMTP service, so they should always specify the name of their ISP's (or corporate network's) SMTP server.

    -port portval
    Where portval specifies either a TCP port number or service name (like smtp) upon which to perform the SMTP conversation with the server. Defaults to 25.

    -from emailaddr
    Where emailaddr should specify the default email address that mail will be `From', in a form like -from dhagberg@millibits.com or -from "D. J. Hagberg <dhagberg@millibits.com>". Note the quotes around the latter form, which are necessary due to the spaces. Specifying this option with ezsmtp::config eliminates the need to specify it in every ezsmtp::send.

    -batchsize number
    Where number specifies an email recipient batch size, useful for mass-mailings, as SMTP servers typically slow down significantly with large numbers of recipients in a single SMTP conversation. Setting number to 0 indicates that the mail should be sent in a single batch to all recipients (the default). Setting number to a larger value indicates the maximum number of recipients in each SMTP conversation, such as 10.

    -strictaddr 0|1
    Sets whether strict RFC 821-compliant email validation should be performed. Default: 0 which requires either a local-username style address with no `@', or a remote-style address with at least one non-@ character preceeding and following a single `@' sign. Set to 1 for strict validation, which has a complicated set of rules documented in the RFC, of which only the common usage cases are allowed.

    -logproc procname
    Sets log message behavior. If procname is the empty string {}, which is the default, log messages are output to stdout depending on the -verbose setting. If the user of this library wants to display the log messages differently, they must supply a fully- namespace-qualified procedure name that will be passed a single argument: the message string to be logged. This procedure will be evaluated at global scope.

    -verbose number
    Where number ranges from 0 to 9. If number is 0, then no debugging output will be printed. If number is 1, then the start and end of each SMTP conversation will be printed. If number is 9, then heaps of debugging info will be printed. The behavior between 2 and 8 is implementation-defined. Defaults to 0.

    ::ezsmtp::send ?options?

    This command is used to send a single message to one or more email recipients, the contents of which must come from either the -body parameter or a Tcl channel (an opened file, socket, etc.) specified by the -channel parameter. Recipients may be specified in several different ways as either `To', `Cc', or `Bcc' addressess, which will create email headers of the expected form.

    The following flags may be specified one or more times in the send command. If specified more than once, the effects will be cumulative. For example

    ezsmtp::send -to a -to b -to c ...
    

    will send the message to all three recipients: a, b, and c. Note that at least one email recipient must be specified via any combination of the -to, -cc, -bcc, -tolist, -cclist, or -bcclist options.

    -to addr
    Where addr specifies one recipient email address is in a form like username@host.domain or like "Full Name <user@host.domain>". The address is added to the `To:' header and to the list of recipients.

    -cc addr
    Where addr specifies one recipient email address is in a form like username@host.domain or like "Full Name <user@host.domain>". The address is added to the `Cc:' header and to the list of recipients.

    -bcc addr
    Where addr specifies one recipient email address is in a form like username@host.domain or like "Full Name <user@host.domain>". The address is added to the list of recipients, but will not be sent in the headers of the email. Typically used for mail lists or to protect the anonymity of the recipients.

    -replyto addr
    Where addr specifies one recipient email address is in a form like username@host.domain or like "Full Name <user@host.domain>". The address is added to the list of `Reply-To:' addresses. Normally, when the recipient hits the Reply button in their email program, the address(es) listed in this header will be used.

    -tolist addrlist
    Where addrlist is a well-formed Tcl list of recipients, typically specified using the `list' command like:

    ezsmtp::send -tolist [list "Bubba <bubba@c.com>" a@b.com e@f.net] ...
    

    Addresses in the list may be specified as described for the -to option and will be added to both the recipient list and the `To:' header.

    -cclist addrlist
    Where addrlist is a well-formed Tcl list of recipients (see -tolist above). Addresses in the list may be specified as described for the -cc option and will be added to both the recipient list and the `Cc:' header.

    -bcclist addrlist
    Where addrlist is a well-formed Tcl list of recipients (see -tolist above). Addresses in the list may be specified as described for the -bcc option and will be added to the recipient list but not sent in the headers of the email. Typically used for mailing lists or to protect the anonymity of recipients.

    -replytolist addrlist
    Where addrlist is a well-formed Tcl list of recipients (see -tolist above). Addresses in the list may be specified as described for the -replyto option and will be added to the list of `Reply-To:' addresses. Normally, when the recipient hits the Reply button in their email program, the address(es) listed in this header will be used.

    -headers keyvaluelist
    Adds to the set of additional headers to be sent before the body in the current send. keyvaluelist must be a well-formed Tcl list (see the list command) with an even number of elements that alternate between keys and values. The keys become the header names and values become their respective values. Usage is discussed much more extensively in the `HEADERS' section below.

    The following flags and values for ezsmtp::send are intended to be specified once on the send command. If specified more than once, only the last one will be used.

    -subject subjtext
    Where subjtext is a single-line subject to be sent as a `Subject:' header in the outgoing email.

    -body text
    Note that either the -body or -channel switch should be specified, never both. The text value should be one or more lines of text separated by newline (\n) characters, with all line wrapping already performed. The text will be sent verbatim, line-by-line, except if longer than 998 characters. Lines longer than 998 characters will be split, not necessarily at word boundaries, to comply with RFC 821, so it's a really good idea to do line wrapping before passing your text.

    -channel channame
    Note that either the -body or -channel switch should be specified, never both. channame must be a open Tcl channel, such as one from [file open ...], from which lines of text may be read and sent as the body of the message. If one has specified a -batchsize other than 0, the channel must support `tell' and `seek' operations to allow rewinding between batches. When the mail has been sent, the channel will be in an eof condition but not closed. Closing the channel is left up to the caller.

    NOTE: if the channel will contain non-7-bit-ascii characters, it must be fconfigure'd with the correct -encoding before being passed to ezsmtp::send. This is NOT designed for sending binary data, such as images or other non-textual octet-streams but rather for non-ASCII text. Also note that lines longer than 998 characters will be broken at exactly 998 characters to comply with RFC 821, so please ensure any data in this channel already has correct line breaks.

    -charset charsetlist
    NOTE: This option is only applicable when running under Tcl versions 8.1 and newer. If a character set/encoding other than ascii or {ascii us-ascii} is specified, the SMTP server MUST support the ESMTP 8BITMIME [RFC1652] option, else an error will be thrown.

    Specifies the character set/encoding used for the text data in this send as either a one- or two-element Tcl list. A one-element specification like iso8859-1 may be used when the Tcl encoding name from the `encoding names' command is identical to the MIME charset specification [MCHRSET]. A two-element specification like [list cp1251 windows-1251] must be used when the Tcl encoding name differs from the equivalent MIME charset specification.

    The case of the elements in charsetlist is not significant, nor preserved. They will be lower-cased for comparison, configuration, and header output purposes.

    This option affects the Content-Type and Content-Transfer-Encoding headers. If you wish to override the values in these headers, specify a -headers [list content-type VALUE1 content-transfer-encoding VALUE2] option after this option. This would be necessary if you are doing your own base64 or quoted-printable encoding of the message body.

    -receipt returnreceiptspec
    Specifies that return-receipt delivery status messages should be requested for this send. Note that not all SMTP servers support delivery status, per the RFC 1891 spec used in this implementation. If you request return-receipt delivery status notifications and your specified SMTP server does not support delivery status, an error will be thrown before any message is sent.

    The returnreceiptspec may be either a single boolean element or a key/value list containing return-receipt keywords and values. If a single boolean element, return receipt is disabled when 0 or false and enabled with default settings when 1 or true. If a key/value list, then the following keywords and values may be specified:

    delivery 0|1
    Specifies whether successful delivery status messages should be returned. 1 for yes, 0 for no. Default: 1

    delay 0|1
    Specifies whether `significantly delayed' status messages should be returned. 1 for yes, 0 for no. Default: 1

    nsmail 0|1
    Specifies whether a header should be added to the message that would cause Netscape Mail clients to return a receipt when the receiver opens the message for viewing. 1 for yes, 0 for no. Default: 0

    returnfull 0|1
    Specifies whether the body of the sent message should be returned instead of only the headers. 1 for the full body, 0 for headers only. Default: 0

    envelopeid text
    Where text specifies an identifier to be returned in any status messages, like ID000601, and will be encoded in an ASCII-only form for transmission. In its encoded form (which may triple in length), it must be no longer than 38 characters. If text is the empty string {}, then no specific envelope ID will be sent, and the SMTP server's auto-generated envelope ID will be used. Default: {}

    The following options to ezsmtp::send allow one to override the package-wide configurations for a single send. This may be useful if you want to avoid the extra ezsmtp::config step or change addresses or email servers frequently during operation.

    -from addr
    Where addr is in a form like username@host.domain or like "Full Name <username@host.domain>", allowing you to override the default (see ezsmtp::config -from) for this single send.

    -mailhost hostname
    Hostname or IP address of the SMTP server, allowing you to override the default (see ezsmtp::config -mailhost) for this single send.

    -port portval
    Where portval specifies either a TCP port number or service name to talk to the SMTP server, allowing you to override the default (see ezsmtp::config -port) for this single send.

    -batchsize number
    Where number sets the recipient batch size, overriding the system default (see ezsmtp::config -batchsize) for this single send.

    HEADERS

    The ezsmtp::send -headers keyvaluelist ... option adds to the set of additional headers to be sent before the body in the current send.

    keyvaluelist must be a well-formed Tcl list (see the Tcl list command) with an even number of elements that alternate between keys and values. The keys become the header names and values become their respective values. The case of the header names (keys) is not significant, nor maintained, in order to comply with RFC822. The values are maintained verbatim with the exception of handling long lines (in order to comply with the same RFC).

    Header values should typically be a single line of text with no leading or trailing newlines. Multi-line headers may be specified by separating each line with a newline (\n) character. Each line will have all leading/trailing whitespace discarded and continuing lines (after the first) will be prepended with a tab (\t) per the RFC822 spec. For example the following switch and value:

    -headers [list Content-type text/html x-my-header "This is my header" \
            x-my-head2 "This is a long header\nwith two lines"]
    

    would be reformatted when sent as:

    Content-Type: text/html
    X-My-Header: This is my header
    X-My-Head2: This is a long header
            with two lines
    

    Default headers that will be sent, if not specified directly are:

    Date: (see below)1
    From: (see below)2
    Subject: (see below)3
    X-Mailer: Tcl ezsmtp Mailer Package
    Content-Type: text/plain; charset=us-ascii
    Mime-Version: 1.0
    
    1. The Date: header will be in an RFC-compliant form like: `Mon, 12 Oct 1999, 23:55:12 +0000'.
    2. The From: header value will be the one specified by ezsmtp::send -from or, if not specified, the default from ezsmtp::config -from.

    3. The Subject: header will be sent with the value of the -subject switch if and only if the switch was specified.
    4. The `To:' and `Cc:' headers will be added if the user had specified recipients via the -to, -cc, -tolist, or -cclist options, respectively. Note that no `Bcc:' header will be sent, in order to preserve the anonymity of recipients, as was the intent of that header.
    5. The `Reply-To:' header will be added if the user had specified one or more reply addresses via the -replyto or -replytolist options.

    Any of the above default headers may be overridden by setting them explicitly using -headers ..., typically as the last option in an ezsmtp::send command.

    SEE ALSO

    Andreas Kupries' site
    Contains links to other email implementations for Tcl, several of which support MIME attachments and other useful features. Located at: http://www.purl.org/NET/akupries/soft/mail/.

    REFERENCES

    [RFC821]
    The base specification for the Simple Mail Transport Protocol (SMTP), upon which the other RFCs listed below are based, available at http://www.faqs.org/rfcs/rfc821.html

    [RFC822]
    The base specification for the format of text messages to be sent across the Internet. Describes how headers should be formatted, sets limits on body line length, etc. Available at http://www.faqs.org/rfcs/rfc822.html

    [RFC1341]
    The base specification for Multipurpose Internet Mail Extensions (MIME), which ezmstp does not currently implement. Available at http://www.faqs.org/rfcs/rfc1341.html.

    [RFC1521]
    The base specification for the format of MIME email address headers bodies, which ezsmtp does currently implement, at least the parts about plain text bodies. Available at http://www.faqs.org/rfcs/rfc1521.html.

    [RFC1652]
    The specification for ESMTP 8BITMIME, which your SMTP server must support in order for the ezsmtp::send -charset option to work. This is implemented by sendmail versions 8.8 and newer (I think) and many other modern SMTP servers. The full spec is available at http://www.faqs.org/rfcs/rfc1652.html.

    [RFC1891]
    The specification for delivery status notification, used for ezsmtp::send -receipt. The full spec is at http://www.faqs.org/rfcs/rfc1891.html.

    [MCHRSET]
    A list of the current IANA-approved MIME charset specifiers may be found at: ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets

    EXAMPLES

    The test_examples.txt file contains some examples of ezsmtp usage that I use to test new and old features as I change things. This may help you understand the basic idea.

    If you need help with more complex tasks, email me I would be happy to add your question and my answer as a future example in this section.

    COPYRIGHT

    Copyright © 1999-2000 by D. J. Hagberg and other parties.

    See the file "license.txt" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.

    REVISION

    $Id: ezsmtp.html,v 4.3 2011/02/13 18:12:01 arwagner Exp $ scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/license.txt0000644000175000017500000000762711727223077021401 0ustar oliveroliverThe rest of the stuff is legalese cribbed mightily from the Tcl/Tk license. Basically, if you like ezsmtp and use it regularly, buy me a cold, frosty Stout at the Tcl conference sometime. Other than that, you are under no obligation whatsoever -- do with it what you may but please don't sue me.... I'd like to know where ezsmtp is being used, so drop me an email and let me know. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = This software is copyrighted by D. J. Hagberg, Jr. and other parties. The following terms apply to all files associated with the software unless explicitly disclaimed in the individual files. The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where they apply. IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted Rights" as defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the authors grant the U.S. Government and others acting in its behalf permission to use and distribute the software in accordance with the terms specified in this license. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Original version by Keith Vetter Who has stated the following terms in an email of 8-Oct-1999: Subject: Re: Your smtp.tcl code Date: Fri, 8 Oct 1999 10:47:32 -0700 (PDT) From: Keith Vetter Reply-To: keith@softbook.com To: dhagberg@millibits.com [ . . . ] Feel free to do whatever you want with the code. I only ask that you include my name and email as the original author. For the purposes of protecting the original author: Portions Copyright 1997-1998 Keith Vetter and the University of California Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. Keith Vetter and the University of California. make no representations about the suitability of this software for any It is provided "as is" without express or implied warranty. By use of this software the user agrees to indemnify and hold harmless Keith Vetter and the University of California from any claims or liability for loss arising out of such use. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/koi8-r-body.txt0000644000175000017500000000005311727223077022005 0ustar oliveroliversome russion text follows scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/README.txt0000644000175000017500000000413611727223077020704 0ustar oliveroliverThis is the ezsmtp package -- an "easy" method for sending email using Tcl's built-in sockets. Intended to cross-platform. Based on original work by Keith Vetter (see below), currently maintained by D. J. Hagberg . Newer versions may be made available at: http://www.millibits.com/djh/tcl/ The latest version will be kept as: http://www.millibits.com/djh/tcl/ezsmtp-current.tar.gz This library is designed to work with Tcl 8.0 and newer, though I do most of my testing with 8.0 and 8.2. To install, run the install.tcl script with either tclsh or wish. On Windows, double-clicking install.tcl should run it with wish. Once installs, it may optionally test itself by emailing me. The documentation in the file: ezsmtp.html is as close to complete as I can make it. For the (non-detailed) history of changes to this package, see the file: ChangeLog This release has been in daily use by myself and several other folks for quite some time now, as part of my company's internal CVS repository notification system and the Notification Services at http://www.lightningstorm.com/ (a near-real-time severe weather notification system). I am reasonably confident in its quality for those tasks but I do acknowledge that there may be some latent bugs in areas that I have not been stressed (non-ASCII character sets for one). Email me bug reports (better yet, patches) and I will try to get to them as quickly as I can. This version is pretty close to RFC-compliance (821, 822, 1521, 1891), but I would appreciate any suggestions to improve this. CONTRIBUTORS: Keith Vetter - Wrote the original version from which all this code is derived. Laurent Duperval - Contributed several solutions and pushed me to release this to a wider audience. and lastly, D. J. Hagberg - Your humble maintainer. - - - Please see the file license.txt for licensing terms and conditions. This package follows the same licensing terms as the core Tcl/Tk distributions. scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/ChangeLog0000644000175000017500000002544111727223077020762 0ustar oliveroliver2000-02-13 (D. J. Hagberg): First real release 1.0.0 Decided "hey, what the heck, let's call this 1.0 in time for the Tcl conference...". Lots of documentation cleanups, moved docs from .txt to .html added lots of cross-references and links to RFCs as necessary. Added -replyto and -replytolist options to ezsmtp::send to simplify specification of `Reply-To:' headers. 1999-11-01 (D. J. Hagberg): Pre-Release version 0.9.0 New feature: -charset option to ezsmtp::send, which, when supported by Tcl and the SMTP server, allows non-us-ascii 7-bit characters to be transmitted correctly. There are a bunch of caveats about this, and I'm not sure about data in the headers. This is probably not completely compliant with the RFC's listed at: http://www.oac.uci.edu/indiv/ehood/MIME/ but we're getting closer... Should keep our non-US friends happier. 1999-10-28 (D. J. Hagberg): Pre-Release version 0.8.1 Fixed errorCode and errorInfo handling when an error occurs inside the private_smtp_begin procedure. errorCode and errorInfo are now logged at debug level 9 and their contents are set as part of the `error' command to re-throw the exception. 1999-10-27 (D. J. Hagberg): Pre-Release version 0.8.0 POTENTIAL INCOMPATABILITY: Removed -readwait and -initwait options from ezsmtp::config. No longer needed, as I removed non-blocking timed I/O stuff. Finally figured out how to read multi-line responses without using non-blocking I/O and the unix behavior of [read $socket]. RFC 821 appendix E clearly states how multi-line responses are supposed to work (last line has three digits followed by space, preceeding lines have a dash instead of a space). Getting rid of non-blocking I/O crap got the code back down under 1000 lines... :-) Fixed-up install.tcl to act a little more like an InstallShield wizard when run under wish. Tested on: Tcl 8.3a1 on Linux 2.2, Tcl 8.0.4+ on Solaris 2.6, Tcl 8.0.3+ on NT4SP4, Tcl 8.0p2 on MacOS 8.0. 1999-10-26 (D. J. Hagberg): Pre-Release version 0.7.3 Fixed output of user-set Date:, From:, and Subject: headers which were output as Tcl list elements instead of bare text, caused by changes for storing multi-line headers as a Tcl list. Refactored header output code to a new proc private_send_header to ensure consistency. 1999-10-25 (D. J. Hagberg): Pre-Release version 0.7.2 Reverted to non-strict address validation and, instead of -addrregexp option, a new -strictaddr 0|1 option is documented, which allows the user to turn strict RFC 821-compliant address checking on or off. No hooks for user to override regexp any more. Moved email address validation to a private procedure so all addresses (-from, -to, ...) are validated and trimmed w/ the same code. 1999-10-25 (D. J. Hagberg): Pre-Release version 0.7.0 Re-added support for addresses trailing after all options, but log as a Depreciated construct. Should make library users happier. Added support for RFC 1891-style return-receipt delivery status notifications. See the docs on the ezsmtp::send -receipt option. Added support for users to intercept the log output. See the docs for ezsmtp::config -logproc Added tight regexp to validate email addresses and parse them out of `Full Name ' constructs. Users may override the strict address validation with ezsmtp::config -addrregexp option [NOTE: removed as of version 0.7.2]. See docs for suggested non-strict regexp. License and code cleanup. Now conforms tightly to the Tcl license and coding conventions, pretty closely matching the http library that ships w/Tcl. 1999-10-21 (D. J. Hagberg): Pre-Release version 0.6.0 Eliminate specifying recipients after the end of all options (POTENTIAL INCOMPATABILITY) in favor of a newer, more flexible set of options: -to, -cc, -bcc, -tolist, -cclist, -bcclist, as documented in the ezsmtp.txt file. The -XXlist options are much more efficient with large numbers of recipients than prior implementations. Increased the default -readwait interval to 20 seconds (was 5). Should work better with overloaded email servers now. Patches from kvetter for logging and batching behaviors. 1999-10-11 (D. J. Hagberg): Pre-Release version 0.5.0 Darn near complete rewrite. Here are some of the major highlights and incompatabilities: Documentation! I've started docs in the esmtp.txt file. Namespace is now fully-qualified in all locations as ::ezsmtp. Rewrite of header handling (POTENTIAL INCOMPATABILITY). Headers are now specified in a key/value list like: ezsmtp::send -headers [list name1 value1 name2 value2] . . . similar to the built-in Tcl http::geturl -headers... behavior. Header values may have multiple lines, separated by newline characters and will be sent according to the RFC 822 spec, with a leading tab (\x09) on continuing lines. Header names are now enforced to match the RFC 822 spec. I chose not to enforce the ASCII requirement on header values for now. A warning is printed if the header lines are > 64 characters if -verbose mode is on, but no further action is taken. Header names are now case-insignificant and proper-cased before sending (POTENTIAL INCOMPATABILITY). For example, `x-flubber: 1.0' will be sent as `X-Name: 1.0'. Header values are left un-altered. Note that only the last header value for a given case-insensitive name, if specified with -headers, will be sent. E.g.: ezsmtp::send -headers [list X-flubber 1.0 x-flubber 2.0 X-YZ ABC] will send the following header output: X-Flubber: 2.0 X-Yz: ABC Note that case-wise, MIME-Version is treated specially, sent in that case, in order to comply with RFC 1521. Now attempts to ensure that the MAIL FROM: output and From: header contain an `@hostname' to comply with the spam-proofing in recent sendmail implementations. If none is found, `@[info hostname]' is tacked onto the From address. An attempt at a valid `To:' header is made if none is specified by the user in -headers. It is constructed as the list of recipient addresses for each batch (see below), each separated by an RFC-compliant comma/newline/tab sequence. Full switch names are now required in the ezsmtp::send command (POTENTIAL INCOMPATABILITY). E.g., ezsmtp::send -f vern -s "My subject" -b "My body" addr will fail. It now needs to be specified as: ezsmtp::send -from vern -subject "My subject" -body "My body" addr. This was done to simplify switch processing code and minimize future incompatabilities. Better deliniation of package configuration and single-send SMTP conversation configuration, so switches from a prior ezsmtp::send will no longer affect subsequent ezsmtp::send's. (POTENTIAL INCOMPATABILITY. Use the ezsmtp::config command for persistent configuration changes). When sending to a large number of addresses, one can break up the SMTP conversations into "batches" of recipients, as many sendmail implementations exhibit significant slowdowns with more than 10-20 recipients per email. See the ezsmtp::config `-batchsize' documenation. Long messages from Tcl channels are now handled more efficiently by reading/sending the message line-by-line from the channel. Note POTENTIAL INCOMPATABILITY that if configured with a non-zero -batchsize and a recipient list larger than the -batchsize, the channel *MUST* support a rewind operation via tell/seek. E.g., one must use a file, not a pipe, in this case. Lines longer than 1000 characters will be broken at 1000 characters, per the RFC 821 spec (POTENTIAL INCOMPATABILITY). This is done very crudely (does not look for a whitespace character for a clean break). The default Content-Type header no longer has quotes around the charset=... parameter, per the RFC 1521 spec. ezsmtp::config command to get/set package-wide configuration values such as the From address, default servername/port, and timeouts. See the docs for details. Beginnings of support for ESMTP by attempting a EHLO to start the conversation and parsing the responses to determine available ESMTP extensions (needed for future delivery status notification stuff). Now uses non-blocking socket I/O and fileevents to allow for timeouts and multi-line responses from the SMTP server (required for ESMTP). Now attempts to ensure that SMTP socket connection is closed upon return from ezsmtp::send. Prior version would have leaked socket descriptors on errors. The new version catches any errors, closes the socket, and re-throws the error message. Note that some errorInfo and errorCode info may be lost in this case. Input/output logging changes, seen when -verbose configuration is > 0. Output now prefixed with "S: ", received input prefixed with "R: ". 1999-10-10 (D. J. Hagberg) Added full attribution and indemtity stuff for Keith Vetter and UC to the license.terms file. 1999-10-08 (D. J. Hagberg) Renamed package to "ezsmtp" to avoid collisions with the MIME/SMTP package recently released by Marshall Rose (http://www.oche.de/~akupries/soft/mail/). Fix-up from lduperval for From/from handling. Bumped up version to 0.3.0 to reflect name change & bug fixes. Bumped up version again to 0.3.1 to reflect namespace change. 1999-10-07 (D. J. Hagberg) Packaged up with license terms and README file. Get username and hostname from Tcl 8.0 facilities (better cross- platform behavior). Implement changes suggested by lduperval: throw errors instead of exiting, clean up header regular expressions, ensure headers get sent, allow different From: and MAIL FROM: names, etc. - - - Notes from the original author: ##+########################################################################## # # TkMailer # # by Keith Vetter # # An smtp client similiar to unix mail in sending mail. Talks to the # smtp server on a given host and posts a mail message with given # subject to the recipients specified. # # Designed for Win95 so values such as hostname and username must # be changed by hand. # # To-do: # o could be made faster for multiple recipients if we kept the socket # connection open instead of opening and closing for each recipient # # Usage: mail ?-q? ?-v*? ?-s subject? recipient ?recipients...? < file # or mail ?-q? ?-v*? ?-s subject? -f filename recipient ?recipients...? # -v gives verbose info, -vv gives more, -vvv even more, etc. # # KPV Sep 13, 1998 - ported to Windows # KPV Mar 30, 1998 - rewrote from an old, stale version # KPV May 05, 1998 - put user strings to front of file for easy editing scid-4.3.0.cvs20120311/tcl/contrib/ezsmtp/install.tcl0000644000175000017500000001713011727223077021356 0ustar oliveroliver#!/bin/sh # $Id: install.tcl,v 4.3 2011/02/13 18:12:01 arwagner Exp $ \ exec tclsh "$0" ${1+"$@"} # install.tcl -- # # Simple installation script for single-tcl-script-only library. # # Copyright (c) 1999-2000 by D. J. Hagberg # # See the file "license.txt" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # Primary tcl script containing package set inst(pkgfile) ezsmtp.tcl # If we detect we are running under wish, post a message informing the # user of the error of their ways. if {[llength [info commands winfo]] > 0} { wm protocol . WM_DELETE_WINDOW {exit} . configure -background "#000099" frame .f -relief raised -bd 1 pack .f -anchor c -padx 10 -pady 10 -fill both -expand 1 label .f.lt -text "Installation Messages:" set inst(w.t) [text .f.t -width 80 -height 14 -state disabled \ -relief flat -bd 0] frame .f.sep1 -bd 1 -height 2 -relief raised pack .f.lt -side top -padx 3 -pady 3 -anchor w pack .f.t -side top -padx 3 -pady 0 -anchor w pack .f.sep1 -side top -padx 3 -pady 5 -fill x set inst(w.l) [label .f.l -text { }] set inst(w.ef) [frame .f.ef] set inst(w.e) [entry $inst(w.ef).e -width 40] set inst(w.yn) [frame $inst(w.ef).yn] set inst(w.yn.y) [radiobutton $inst(w.yn).y -text "Yes" -value 1 \ -variable inst(radio_yn)] set inst(w.yn.n) [radiobutton $inst(w.yn).n -text "No" -value 0 \ -variable inst(radio_yn)] pack $inst(w.yn.y) $inst(w.yn.n) -side left -padx 5 pack $inst(w.l) -side top -padx 3 -pady 0 -anchor w pack $inst(w.ef) -side top -padx 3 -pady 4 -anchor w pack $inst(w.e) frame .f.btns pack .f.btns -side top -anchor c -padx 3 -pady 5 -ipadx 3 -ipady 3 set inst(w.q) [button .f.btns.q -text " Quit " -width 12 -command exit] set inst(w.b) [button .f.btns.b -text " Next > " -width 12 -command { set inst(response) [$inst(w.e) get] }] bind $inst(w.b) [list $inst(w.b) invoke] bind $inst(w.e) [list $inst(w.b) invoke] pack $inst(w.q) $inst(w.b) -side left -padx 10 set waitvar 0 tkwait visibility $inst(w.b) set w [winfo width .]; set h [winfo height .] wm geometry . "+[expr int([winfo vrootwidth .]/2-$w/2)]+[expr\ int([winfo vrootheight .]/2-$h/2)]" wm minsize . $w $h proc output {msg} { global inst $inst(w.t) configure -state normal $inst(w.t) insert end "$msg\n" $inst(w.t) see end $inst(w.t) configure -state disabled } proc output_error {msg {prefix {ERROR: }}} { global inst set inst(waitvar) 0 $inst(w.t) configure -state normal $inst(w.t) delete 0.0 end output "$prefix\n$msg" $inst(w.l) configure -text { } $inst(w.e) configure -state disabled if {[winfo ismapped $inst(w.ef)]} {pack forget $inst(w.ef)} $inst(w.b) configure -state disabled bind $inst(w.q) {set inst(waitvar) 1} focus $inst(w.q) tkwait variable inst(waitvar) exit } proc prompt {msg {default {}} {validre {}}} { global inst foreach w [winfo children $inst(w.ef)] {pack forget $w} pack $inst(w.e) $inst(w.l) configure -text "${msg}:" $inst(w.e) delete 0 end if {[string length $default]} {$inst(w.e) insert end $default} focus $inst(w.e) tkwait variable inst(response) set inst(response) } proc prompt_yn {msg {default {Y}}} { global inst if {[string match {[Yy]} $default]} { set inst(radio_yn) 1 } else { set inst(radio_yn) 0 } foreach w [winfo children $inst(w.ef)] {pack forget $w} pack $inst(w.yn) $inst(w.l) configure -text "${msg}:" focus $inst(w.b) tkwait variable inst(response) set inst(radio_yn) } } else { # Procedures for tclsh stdin/stdout prompts and messages. proc output {msg} { puts stdout $msg flush stdout } proc output_error {msg {prefix {ERROR: }}} { puts stdout "$prefix$msg" flush stdout exit 1 } proc prompt {msg {default {}} {validre {}}} { if {[string length $default]} { puts -nonewline stdout "$msg \[$default\]: " } else { puts -nonewline stdout "${msg}: " } flush stdout set input [gets stdin] if {[string length $validre]} { if {![regexp $validre $input]} { output_error "Invalid value for $msg" } } set input } proc prompt_yn {msg {default {Y}}} { global inst set res [expr {[regexp -nocase {^$|^y} [prompt "$msg (Y/N)" \ $default {}]] ? 1 : 0}] } } # Procedure to trap and display error messages (req'd for GUI installs) proc catcherr {cmds} { if {[catch [list uplevel 1 $cmds] err]} {output_error $err} } # Attempt to read the script file if {![file exists $inst(pkgfile)]} { output_error "Please run this script while in the same directory\ as $inst(pkgfile)" } set fh [open $inst(pkgfile) r] while {[gets $fh ln] != -1} { if {![info complete $ln]} continue if {([string compare package [lindex $ln 0]] == 0) && \ ([string compare provide [lindex $ln 1]] == 0)} { set inst(pkgname) [lindex $ln 2] set inst(pkgvers) [lindex $ln 3] break } } close $fh if {!([info exists inst(pkgname)] && [info exists inst(pkgvers)]) } { output_error "Failed to find `package provide ...' line in $inst(pkgfile)" } if {!([string length $inst(pkgname)] && [string length $inst(pkgvers)])} { output_error "malformed `package provide ...' line in $inst(pkgfile) --\ Missing package name and/or version" } output "Installing Tcl-only package $inst(pkgname) $inst(pkgvers) . . ." # Look for -instdir DIRNAME on the command-line, otherwise, prompt # user for installation directory. if {[set idx [expr [lsearch -exact $argv -instdir]+1]] > 0} { set inst(instdir) [lindex $argv $idx] if {[string length $inst(instdir)] == 0} { unset inst(instdir) } } if {![info exists inst(instdir)]} { set defdir [file join [file dirname [info library]] \ "$inst(pkgname)$inst(pkgvers)"] set input [prompt "Installation directory" $defdir] if {[string length $input] == 0} { set inst(instdir) $defdir } else { set inst(instdir) $input } } # Make directory if necessary if {![file isdirectory $inst(instdir)]} { catcherr [list file mkdir $inst(instdir)] } # Check to see if target file exists set target [file join $inst(instdir) $inst(pkgfile)] if {[file exists $target]} { if {[file mtime $target] > [file mtime $inst(pkgfile)]} { set tmpname "$target.[file mtime $target]" catcherr [list file rename $target $tmpname] output "WARNING: target file $target newer than $inst(pkgfile)" output " Renamed to $tmpname." } else { catcherr [list file delete $target] } } # Copy file to target location catcherr [list file copy $inst(pkgfile) $target] output "Copied $inst(pkgfile) --> $target OK" # Create the pkgIndex file set target [file join $inst(instdir) pkgIndex.tcl] catcherr { set fh [open $target w] puts $fh "package ifneeded $inst(pkgname) $inst(pkgvers) \[list source\ \[file join \$dir $inst(pkgfile)\]\]" close $fh } output "Created package index file $target OK" # If there is a post-install script AND user didn't disable, run it. if {[lsearch -exact $argv -nopostinst] == -1} { if {[file exists postinst.tcl]} { catcherr [list source postinst.tcl] } } scid-4.3.0.cvs20120311/tcl/lang/0000755000175000017500000000000011727223077015141 5ustar oliveroliverscid-4.3.0.cvs20120311/tcl/lang/propagatelang.tcl0000755000175000017500000000664211727223077020504 0ustar oliveroliver#!/usr/bin/tclsh ### ### propagatelang.tcl ### # (C) Pascal Georges 2007 # # This is an utility script that helps adding keywords to each language file # 1. It is supposed that language files are synchronized before running this script # 2. The english file is compared to others and if tokens are in the english file and not in others # it will added at the right place. The result is output to args.new # Usage : "propagatelang.tcl francais" : will synchronize francais.tcl to english.tcl and send the output to francais.new # or "propagatelang.tcl" for all files # a "TODO translate me" is appended at each line needing it array set encodings { czech iso8859-2 deutsch iso8859-1 francais iso8859-1 hungary iso8859-2 italian iso8859-1 nederlan iso8859-1 norsk iso8859-1 polish iso8859-2 portbr iso8859-1 russian iso8859-5 serbian iso8859-2 spanish iso8859-1 swedish iso8859-1 catalan iso8859-1 suomi iso8859-1 greek utf-8 } array set codes { czech C deutsch D francais F hungary H italian I nederlan N norsk O polish P portbr B russian R serbian Y spanish S swedish W catalan K suomi U greek G } set languages {czech deutsch francais hungary italian nederlan norsk polish portbr spanish swedish serbian russian catalan suomi greek } ################################################################################ proc checkfile {code langfile enc} { # Read this language file and the english file: set f [open english.tcl r] set data [read $f] close $f set englishData [split $data "\n"] set englishNames {} set f [open $langfile.tcl r] fconfigure $f -encoding $enc set data [read $f] close $f set langData [split $data "\n"] set langNames {} foreach line $langData { set fields [split $line] set command [lindex $fields 0] set lang [lindex $fields 1] set name [lindex $fields 2] if {$lang == $code && ($command == "menuText" || $command == "translate" || $command == "helpMsg")} { lappend langNames $command:$name } else { lappend langNames $line } } set fnew [open $langfile.tcl.new w] fconfigure $fnew -encoding $enc set lastLine -1 foreach line $englishData { set fields [split $line] set command [lindex $fields 0] set lang [lindex $fields 1] set name [lindex $fields 2] if {$lang == "E" && ($command == "menuText" || $command == "translate" || $command == "helpMsg")} { set lineCount [lsearch -exact $langNames $command:$name] if { $lineCount < 0} { puts $fnew "# ====== TODO To be translated ======" puts $fnew [regsub " E " $line " $code "] } else { foreach l [lrange $langData [ expr $lastLine + 1 ] $lineCount] { puts $fnew $l } # in case of a \ at the end of the last line if {[string index $l end] == "\\"} { incr lineCount puts $fnew [lindex $langData $lineCount] } set lastLine $lineCount } } } foreach l [lrange $langData [ expr $lastLine + 1 ] end] { puts $fnew $l } close $fnew } ################################################################################ if {[llength $argv] == 0} { set argv $languages } foreach language $argv { if {[info exists codes($language)]} { checkfile $codes($language) $language $encodings($language) } else { puts "No such language file: $language" } } # end of file scid-4.3.0.cvs20120311/tcl/lang/greek.tcl0000644000175000017500000046334011727223077016754 0ustar oliveroliver # Κείμενο για ονόματα των μενού και των μηνυμάτων βοήθειας της γραμμής κατάστασης στα Ελληνικά. # Τμήμα του Scid (Shane's Chess Information Database). # # Οδηγίες προσθήκης νέας γλώσσας: # # (4) Γράψτε την μετάφραση. Κάτι προϋποθέτει την αλλαγή ο,τιδήποτε "μέσα σε εισαγωγικά" # ή σε {μύστακες} για τις εντολές menuText, helpMsg και translate. # # Μια εντολή μενού έχει την μορφή: # menuText L tag "Name..." underline {ΜήνυμαΒοήθειας...} # # Ένα μήνυμα βοήθειας στην γραμμή κατάστασης έχει την μορφή: # helpMsg L tag {ΜήνυμαΒοήθειας...} # # Η μετάφραση μιας γενικής λέξης ή μηνύματος έχει την μορφή: # translate L tag {μήνυμα...} # # όπου "L" το σύμβολο για την γλώσα, "tag" το όνομα του μενού # ή το όνομα του κουμπιού της εφαρμογής, και "underline" είναι ο # δείκτης του υπογραμμισμένου γράμματος μετρώντας από το μηδέν ως πρώτο γράμμα. Τα μενού # που εμφανίζονται στο ίδιο μενού πρέπει να έχουν διαφορετικό υπογραμμισμένο γράμμα. # Αν έχετε αμφιβιλίες, βάλτε σε όλους τους δείκτες "0" και θα τα αντιστοιχίσω με με υπογραμμισμένα # γράμματα όταν οι μεταφράσεις ενσωματωθούν στο Scid. # # Έχετε να προσθέσετε ή να διορθώσετε; Email: sgh@users.sourceforge.net # # Αυτή είναι μια πρώτη μετάφραση του παρόντος αρχείου. Οι συμβουλευτικές προτάσεις και # διορθώσεις όσων χρησιμοποιούν το Scid είναι απαραίτητες, καθώς πολλά μηνύματα βοήθειας # έχουν αποδοθεί αρκετά ελεύθερα ή, αντιθέτα, κυριολεκτικά! Είναι άμεση ανάγκη για την βελτίωση # του Scid και της μετάφρασής του στα Ελληνικά, να επικοινωνήσετε με τον μεταφραστή του παρόντος # κειμένου στη διεύθυνση tripalatos@gmail.com για κάθε σφάλμα ή παράλειψη! addLanguage G Greek 0 utf-8 proc setLanguage_G {} { # File menu: menuText G File "Αρχείο" 0 menuText G FileNew "Νέα..." 0 {Δημιουργείστε μια νέα βάση δεδομένων Scid} menuText G FileOpen "Άνοιγμα..." 0 {Ανοίξτε μια υπάρχουσα βάση δεδομένων Scid} menuText G FileClose "Κλείσμο" 0 {Κλείστε την ενεργή βάση δεδομένων Scid} menuText G FileFinder "Αναζήτηση" 0 {Ανοίγει το παράθυρο Αναζήτησης Αρχείου} menuText G FileBookmarks "Σελιδοδείκτες" 0 {Μενού σελιδοδεικτών (συντόμευση: Ctrl+B)} menuText G FileBookmarksAdd "Προσθήκη σελιδοδείκτου" 0 \ {Θέστε σελιδοδείκτη στην τρέχουσα βάση δεδομένων παρτίδων και στην θέση} menuText G FileBookmarksFile "Αρχειοθέτηση σελιδοδείκτου" 0 \ {Αρχειοθετήστε έναν σελιδοδείκτη για την τρέχουσα παρτίδα και θέση} menuText G FileBookmarksEdit "Επεξεργασία σελιδοδεικτών..." 0 \ {Επεξεργαστείτε τα μενού των σελιδοδεικτών} menuText G FileBookmarksList "Εμφάνιση των καταλόγων ως απλή λίστα" 0 \ {Εμφάνιση των καταλόγων των σελιδοδεικτών ως απλής λίστα και όχι ως υπομενού} menuText G FileBookmarksSub "Εμφάνιση των καταλόγων ως υπομενού" 0 \ {Εμφάνιση των καταλόγων των σελιδοδεικτών ως υπομενού και όχι ως απλή λίστα} menuText G FileMaint "Συντήρηση" 0 {Εργαλείο συντήρησης βάσεων δεδομένων Scid} menuText G FileMaintWin "Παράθυρο συντήρησης" 0 \ {Ανοίξτε/Κλείστε το παράθυρο συντήρησης βάσης δεδομένων Scid} menuText G FileMaintCompact "Συμπίεση βάσης δεδομένων..." 0 \ {Συμπιέστε τα αρχεία βάσης δεδομένων απομακρύνοντας διαγραμμένες παρτίδες και μη χρησιμοποιημένα ονόματα} menuText G FileMaintClass "Παρτίδες ταξινομημένες κατά ECO..." 2 \ {Επανυπολογισμός των κωδικών ECO για όλες τις παρτίδες} menuText G FileMaintSort "Ταξινόμηση βάσης δεδομένων..." 0 \ {Ταξινομήστε όλες τις παρτίδες της βάσης δεδομένων} menuText G FileMaintDelete "Διαγραφή δίδυμων παρτίδων..." 0 \ {Βρήτε τις δίδυμες παρτίδες και προσδιορίστε τα για διαγραφή} menuText G FileMaintTwin "Παράθυρο ελέγχου δίδυμων παρτίδων" 0 \ {Άνοιγμα/ενημέρωση του παραθύρου ελέγχου δίδυμων παρτίδων} menuText G FileMaintName "Ορθογραφία ονομάτων" 0 {Εργαλείο επεξεργασίας και ορθογραφίας ονομάτων} menuText G FileMaintNameEditor "Επεξεργαστής ονομάτων" 0 \ {Άνοιγμα/κλείσιμο του παραθύρου επεξεργαστή ονομάτων} menuText G FileMaintNamePlayer "Έλεγχος ορθογραφίας των ονομάτων των παικτών..." 11 \ {Ελέγξτε την ορθογραφία των ονομάτων των παικτών με την χρήση του αρχείου ελέγχου οθρογραφίας} menuText G FileMaintNameEvent "Έλεγχος ορθογραφίας των ονομάτων των διοργανώσεων..." 11 \ {Ελέγξτε την ορθογραφία των ονομάτων των διοργανώσεων με τη χρήση του αρχείου ελέγχου ορθογραφίας} menuText G FileMaintNameSite "Έλεγχος ορθογραφίας των ονομάτων των τοποθεσιών..." 11 \ {Ελέγξτε την ορθογραφία των ονομάτων των τοποθεσιών με την χρήση του αρχείου ελέγχου ορθογραφίας} menuText G FileMaintNameRound "Έλεγχος οθρογραφίας των ονομάτων των περιόδων..." 11 \ {Έλεγχος των ονομάτων των περιόδων του αγώνα με την χρήση του αρχείου ελέγχου ορθογραφίας} menuText G FileReadOnly "Μόνο για ανάγνωση (Read-only)..." 0 \ {Επεξεργαστείτε την τρέχουσα βάση δεδομένων ως μόνον για ανάγνωση, εμποδίζοντας τις αλλαγές} menuText G FileSwitch "Μετάβαση στην βάση δεδομένων" 0 \ {Μεταβείτε σε μια διαφορετική ανοιγμένη βάση δεδομένων} menuText G FileExit "Έξοδος" 1 {Έξοδος από το Scid} menuText G FileMaintFixBase "Διόρθωση βάσης" 0 {Προσπαθείστε να επισκευάσετε μια χαλασμένη βάση} # Edit menu: menuText G Edit "Επεξεργασία" 0 menuText G EditAdd "Προσθήκη βαριάντας" 0 {Προσθέστε την βαριάντα μιας κίνησης της παρτίδας} menuText G EditDelete "Διαγραφή βαριάντας" 0 {Διαγράψτε την βαριάντα για αυτή την κίνηση} menuText G EditFirst "Πρώτη βαριάντα" 5 \ {Προαγωγή μιας βαριάντας στην πρώτη θέση της λίστας} menuText G EditMain "Προαγωγή βαριάντας σε κύρια γραμμή" 21 \ {Προαγωγή μιας βαριάντας ως κύρια γραμμή} menuText G EditTrial "Έλεγχος βαριάντας" 0 \ {Έναρξη/διακοπή της λειτουργίας ελέγχου μιας ιδέας στην σκακιέρα} menuText G EditStrip "Απομάκρυνση" 2 {Απομακρύνετε τα σχόλια ή τις βαριάντες από αυτή τη παρτίδα} menuText G EditUndo "Επαναφορά" 0 {Επαναφέρετε την τελευταία αλλαγή στην παρτίδα} menuText G EditStripComments "Σχόλια" 0 \ {Απομακρύνετε όλα τα σχόλια και τον υπομνηματισμό από αυτή τη παρτίδα} menuText G EditStripVars "Βαριάντες" 0 {Απομακρύνετε όλες τις βαριάντες από αυτή τη παρτίδα} menuText G EditStripBegin "Κινήσεις από την έναρξη" 1 \ {Απομακρύνετε τις κινήσεις από την έναρξη της παρτίδας} menuText G EditStripEnd "Κινήσεις από το φινάλε" 0 \ {Απομακρύνετε τις κινήσεις φινάλε της παρτίδας} menuText G EditReset "Άδειασμα της προσωρινής βάσης (Clipbase)" 0 \ {Μηδενίστε την προσωρινή βάση δεδομένων (Clipbase) ώστε να αδειάσει πλήρως} menuText G EditCopy "Αντιγραφή της παρτίδας στην προσωρινή βάση" 0 \ {Αντιγραφή αυτής της παρτίδας στην προσωρινή βάση δεδομένων} menuText G EditPaste "Επικόλληση της τελευταίας παρτίδας της προσωρινής βάσης (Clipbase)" 0 \ {Επικολλήστε εδώ την ενεργή παρτίδα της προσωρινής βάσης} menuText G EditPastePGN "Επικόλληση του κειμένου της προσωρινής μνήμης ως παρτίδας PGN..." 18 \ {Μετατρέψτε το κείμενο της προσωρινής μνήμης ως παρτίδας με σχολιασμό PGN και επικολλήστε την εδώ} menuText G EditSetup "Στήσιμο αρχικής σκακιέρας..." 0 \ {Καθορίστε την θέση έναρξης αυτής της παρτίδας} menuText G EditCopyBoard "Αντιγραφή θέσης" 6 \ {Αντιγράψτε την τρέχουσα σκακιέρα στην προσωρινή μνήμη με σχολιασμό FEN} menuText G EditPasteBoard "Επικόλληση σκακιέρας έναρξης" 12 \ {Καθορίστε την σκακιέρα από την προσωρινή μνήμη} # Game menu: menuText G Game "Παρτίδα" 0 menuText G GameNew "Νέα παρτίδα" 0 \ {Επαναφορά σε κενή παρτίδα, αναιρώντας κάθε αλλαγή} menuText G GameFirst "Φόρτωση πρώτης παρτίδας" 5 {Φορτώστε την πρώτη φιλτραρισμένη παρτίδα} menuText G GamePrev "Φόρτωση προηγούμενης παρτίδας" 5 {Φορτώστε την προηγούμενη φιλτραρισμένη παρτίδα} menuText G GameReload "Επαναφόρτωση τρέχουσας παρτίδας" 3 \ {Επαναφορτώστε την παρτίδα αυτή, αναιρώντας κάθε αλλαγή} menuText G GameNext "Φόρτωση επόμενης παρτίδας" 7 {Φορτώστε την επόμενη φιλτραρισμένη παρτίδα} menuText G GameLast "Φόρτωση τελευταίας παρτίδας" 8 {Φορτώστε την τελευταία φιλτραρισμένη παρτίδα} menuText G GameRandom "Φόρτωση τυχαίας παρτίδας" 8 {Φορτώστε μια παρτίδα τυχαίου φιλτραρίσματος} menuText G GameNumber "Φόρτωση αριθμού παρτίδας..." 5 \ {Φορτώστε μια παρτίδα εισάγοντας τον αριθμό της} menuText G GameReplace "Αποθήκευση: Αντικατάσταση παρτίδας..." 6 \ {Αποθηκεύστε αυτή τη παρτίδα αντικαθιστώντας την παλαιότερη εκδοχή της} menuText G GameAdd "Αποθήκευση: Προσθήκη νέας παρτίδας..." 6 \ {Αποθηκεύστε αυτή τη παρτίδα ως νέα παρτίδα στην βάση δεδομένων} menuText G GameDeepest "Αναγνώριση ανοίγματος" 0 \ {Μετάβαση στην πιο προχωρημένη θέση της παρτίδας που αναφέρεται στην ECO} menuText G GameGotoMove "Μετάβαση στην κίνηση με αριθμό..." 5 \ {Μετάβαση στην κίνηση με συγκεκριμένο αριθμό στην τρέχουσα παρτίδα} menuText G GameNovelty "Αναζήτηση νεοτερισμού..." 7 \ {Βρείτε την πρώτη κίνηση αυτής της παρτίδας που δεν έχει παιχθεί ποτέ} # Search Menu: menuText G Search "Αναζήτηση" 0 menuText G SearchReset "Μηδενισμός φίλτρων" 0 {Μηδενίστε τα φίλτρα ώστε να συμπεριληφθούν όλες οι παρτίδες} menuText G SearchNegate "Αναίρεση φίλτρου" 0 {Αναιρέστε το φίλτρο ώστε να συμπεριληφθούν μόνο εξαιρεταίες παρτίδες} menuText G SearchCurrent "Τρέχουσα σκακιέρα..." 0 {Αναζητήστε την τρέχουσα θέση της σκακιέρας} menuText G SearchHeader "Κεφαλίδα..." 0 {Αναζήτηση βάσει των πληροφοριών κεφαλίδας (παίκτης, διοργάωνση, κλπ)} menuText G SearchMaterial "Υλικό/Διάταξη..." 0 {Αναζήτηση για υλικό ή διάταξη σκακιέρας} menuText G SearchUsing "Με χρήση αρχείου αναζήτησης..." 0 {Αναζήτηση με την χρήση ενός αρχείου SearchOptions} # Windows menu: menuText G Windows "Παράθυρα" 0 menuText G WindowsComment "Συντάκτης σχολίων" 0 {Ανοίξτε/κλείστε τον συντάκτη σχολίων} menuText G WindowsGList "Λίστα παρτίδων" 0 {Ανοίξτε/κλείστε το παράθυρο με την λίστα των παρτίδων} menuText G WindowsPGN "Παράθυρο PGN" 0 \ {Ανοίξτε/κλείστε το παράθυρο PGN (σχολιασμός παρτίδας)} menuText G WindowsPList "Αναζήτηση παίκτου" 2 {Ανοίξτε/κλείστε την εύρεση παίκτου} menuText G WindowsTmt "Αναζήτηση προκριματικών" 2 {Άνοιγμα/κλείσιμο της αναζήτησης τουρνουά} menuText G WindowsSwitcher "Εναλλαγή βάσης δεδομένωνDatabase switcher" 0 \ {Άνοιγμα/κλείσιμο του παραθύρου εναλλαγής βάσης δεδομένων} menuText G WindowsMaint "Παράθυρο συντήρησης" 0 \ {Άνοιγμα/κλείσιμο του παραθύρου συντήρησης} menuText G WindowsECO "Φυλλομετρητής ECO" 0 {Άνοιγμα/κλείσιμο του παραθύρου του φυλλομετρητή ECO} menuText G WindowsRepertoire "Συντάκτης ρεπερτορίου" 0 \ {Άνοιγμα κλείσιμο του συντάκτη ρεπερτορίου} menuText G WindowsStats "Παράθυρο στατιστικών" 0 \ {Άνοιγμα/κλείσιμο του παραθύρου φιλτραρίσματος στατιστικών} menuText G WindowsTree "Παράθυρο δένδρου" 0 {Άνοιγμα/κλείσιμο του παραθύρου δένδρου} menuText G WindowsTB "Παράθυρο βάσης δεδομένων φινάλε" 1 {Άνοιγμα/κλείσιμο του παραθύρου βάσης δεδομένων φινάλε} menuText G WindowsBook "Παράθυρο βιβλίου" 0 {Άνοιγμα/κλείσιμο του παραθύρου του βιβλίου} menuText G WindowsCorrChess "Παράθυρο αλληλογραφίας" 0 {Άνοιγμα/κλείσιμο του παραθύρου αλληλογραφίας} # Tools menu: menuText G Tools "Εργαλεία" 0 menuText G ToolsAnalysis "Μηχανή ανάλυσης..." 0 \ {Εκκίνηση/διακοπή της σκακιστικής μηχανής ανάλυσης} menuText G ToolsAnalysis2 "Μηχανής ανάλυσης #2..." 17 \ {Εκκίνηση/διακοπή της δεύτερης σκακιστικής μηχανής ανάλυσης} menuText G ToolsCross "Συγκριτικός πίνακας" 0 {Εμφανήστε τον συγκριτικό πίνακα προκριματικών γι' αυτή τη παρτίδα} menuText G ToolsEmail "Διαχείριση ηλ. αλληλογραφίας" 0 {Άνοιγμα/κλείσιμο του παραθύρου διαχείρισης σκακιστικής ηλ. αλληλογραφίας} menuText G ToolsFilterGraph "Γράφημα σχετικού φίλτρου" 12 {Άνοιγμα/κλείσιμο του παραθύρου των φίλτρων γραφημάτων σχετικών τιμών} menuText G ToolsAbsFilterGraph "Γράφημα απόλυτου φίλτρου" 7 {Άνοιγμα/κλείσιμο του παραθύρου των φίλτρων γραφημάτων απολύτων τιμών} menuText G ToolsOpReport "Αναφορά ανοίγματος" 0 {Δημιουργήστε μια αναφορά για το άνοιγμα της τρέχουσας θέσης} menuText G ToolsOpenBaseAsTree "Άνοιγμα βάσης ως δένδρου..." 0 {Ανοίξτε μια βάση και χρησιμοποιείστε την στο παράθυρο δένδρου} menuText G ToolsOpenRecentBaseAsTree "Άνοιγμα πρόσφατης βάσης ως δένδρου" 0 {Ανοίξτε μια πρόσφατη βάση και χρησιμοποιήστε την μέσα από το παράθυρο του δένδρου} menuText G ToolsTracker "Ανιχνευτής κομματιού" 6 {Ανοίξτε το παράθυρο του ανιχνευτή κομματιού} menuText G ToolsTraining "Προπόνηση" 0 {Προπονητικά εργαλεία (τακτικές, ανοίγματα...)} menuText G ToolsTacticalGame "Παρτίδα τακτικής" 0 {Παίξτε μια παρτίδα τακτικής} menuText G ToolsSeriousGame "Σοβαρή παρτίδα" 0 {Παίξτε μια σοβαρή παρτίδα} menuText G ToolsTrainOpenings "Ανοίγματα" 0 {Προπονηθείτε με ένα ρεπερτόριο} menuText G ToolsTrainReviewGame "Επισκόπηση παρτίδας" 0 {Μαντέψτε τις κινήσεις που έγιναν σε μια παρτίδα} menuText G ToolsTrainTactics "Τακτικές" 0 {Επιλύστε τακτικές} menuText G ToolsTrainCalvar "Υπολογισμός βαριαντών" 0 {Προπόνηση στον υπολογισμό βαριαντών} menuText G ToolsTrainFindBestMove "Εύρεση καλύτερης κίνησης" 0 {Βρείτε την καλύτερη κίνηση} menuText G ToolsTrainFics "Παιχνίδι στον FICS" 0 {Παίξτε στο freechess.org} menuText G ToolsBookTuning "Συντονισμός βιβλίου" 0 {Συντονισμός βιβλίου} menuText G ToolsConnectHardware "Σύνδεση περιφερειακού" 8 {Συνδέστε εξωτερικό περιφερειακό} menuText G ToolsConnectHardwareConfigure "Ρύθμιση..." 0 {Ρυθμίστε εξωτερικό περιφερειακό και συνδέσεις} menuText G ToolsConnectHardwareNovagCitrineConnect "Σύνδεση με Novag Citrine" 8 {Συνδέστε Novag Citrine με το Scid} menuText G ToolsConnectHardwareInputEngineConnect "Σύνδεση μηχανής εισόδου δεδομένων" 8 {Συνδέστε μηχανή εισόδου (π.χ. DGT board) με το Scid} menuText G ToolsPInfo "Πληροφορίες παίκτη" 0 \ {Άνοιγμα/ενημέρωση του παραθύρου πληροφοριών παίκτη} menuText G ToolsPlayerReport "Δελτίο παίκτη..." 3 \ {Δημιουργήστε δελτίο για έναν παίκτη} menuText G ToolsRating "Γράφημα βαθμολόγησης" 0 \ {Δημιουργήστε γράφημα του ιστορικού βαθμολόγησης των παικτών της τρέχουσας παρτίδας} menuText G ToolsScore "Γράφημα επιδόσεων" 0 {Εμφανίστε το παράθυρο γραφήματος των σκορ} menuText G ToolsExpCurrent "Εξαγωγή τρέχουσας παρτίδας" 8 \ {Γράψτε την τρέχουσα παρτίδα σε ένα αρχείο κειμένου} menuText G ToolsExpCurrentPGN "Εξαγωγή παρτίδας σε ένα αρχείο PGN..." 15 \ {Γράψτε την τρέχουσα παρτίδα σε ένα αρχείο PGN} menuText G ToolsExpCurrentHTML "Εξαγωγή παρτίδας σε αρχείο HTML..." 15 \ {Γράψτε την τρέχουσα παρτίδα σε ένα αρχείο HTML} menuText G ToolsExpCurrentHTMLJS "Εξαγωγή παρτίδας σε αρχεία HTML και JavaScript..." 15 {Γράψτε την τρέχουσα παρτίδα σε αρχεία HTML και JavaScript} menuText G ToolsExpCurrentLaTeX "Εξαγωγή παρτίδας σε αρχείο LaTeX..." 15 \ {Γράψτε την τρέχουσα παρτίδα σε ένα αρχείο LaTeX} menuText G ToolsExpFilter "Εξαγωγή όλων των φιλτραρισμένων παρτίδων" 1 \ {Γράψτε όλες τις φιλτραρισμένες παρτίδες σε ένα αρχείο κειμένου} menuText G ToolsExpFilterPGN "Εξαγωγή φίλτρου σε αρχείο PGN..." 17 \ {Γράψτε όλες τις φιλτραρισμένες παρτίδες σε ένα αρχείο PGN} menuText G ToolsExpFilterHTML "Εξαγωγή φίλτρου σε αρχείο HTML..." 17 \ {Γράψτε όλες τις φιλτραρισμένες παρτίδες σε ένα αρχείο HTML} menuText G ToolsExpFilterHTMLJS "Εξαγωγή φίλτρου σε αρχεία HTML και JavaScript..." 17 {Γράψτε όλες τις φιλτραρισμένες παρτίδες σε αρχεία HTML και JavaScript} menuText G ToolsExpFilterLaTeX "Εξαγωγή φίλτρου σε αρχείο LaTeX..." 17 \ {Γράψτε όλες τις φιλτραρισμένες παρτίδες σε ένα αρχείο LaTeX} menuText G ToolsImportOne "Εισαγωγή παρτίδας PGN..." 0 \ {Εισάγετε μια παρτίδα από ένα κείμενο PGN} menuText G ToolsImportFile "Εισαγωγή αρχείου παρτίδων PGN..." 7 {Εισάγετε παρτίδες από ένα αρχείο PGN} menuText G ToolsStartEngine1 "Εκκίνηση μηχανής 1" 13 {Εκκινήστε την μηχανή 1} menuText G ToolsStartEngine2 "Εκκίνηση μηχανής 2" 13 {Εκκινήστε την μηχανή 2} menuText G ToolsCaptureBoard "Σύλληψη τρέχουσας σκακιέρας..." 5 {Αποθηκεύστε την τρέχουσα σκακιέρα ως εικόνα.} # Play menue menuText G Play "Παιχνίδι" 0 # --- Correspondence Chess menuText G CorrespondenceChess "Σκάκι δι' αλληλογραφίας" 0 {Λειτουργίες σκακιού δι' αλληλογραφίας βάσει eMail και Xfcc} menuText G CCConfigure "Ρυθμίσεις..." 0 {Προσαρμογή εξωτερικών εργαλείων και γενικές ρυθμίσεις} menuText G CCConfigRelay "Παρακολούθηση παρτίδων..." 10 {Ρυθμίστε τις παρτίδες προς παρακολούθηση} menuText G CCOpenDB "Άνοιγμα βάσης δεδομένων..." 0 {Ανοίξτε την προκαθορισμένη βάση δεδομένων αλληλογραφίας} menuText G CCRetrieve "Ανάκτηση παρτίδων" 0 {Ανακτήστε παρτίδες μέσω εξωτερικής εφαρμογής (Xfcc-)helper} menuText G CCInbox "Επεξεργασία εισερχομένων" 8 {Επεξεργαστείτε όλα τα αρχεία στα εισερχόμενα του Scid} menuText G CCSend "Αποστολή κίνησης" 0 {Στείλτε την κίνησή σας μέσω eMail ή εξωτερικής εφαρμογής (Xfcc-)helper} menuText G CCResign "Παραίτηση" 1 {Παραιτηθείτε (όχι μέσω eMail)} menuText G CCClaimDraw "Αίτηση ισοπαλίας" 6 {Στείλτε την κίνησή σας και ζητήστε ισοπαλία (όχι μέσω eMail)} menuText G CCOfferDraw "Παραχώρηση ισοπαλίας" 1 {Στείλτε την κίνησή σας και παραχωρήστε ισοπαλία (όχι μέσω eMail)} menuText G CCAcceptDraw "Αποδοχή ισοπαλίας" 0 {Δεχθείτε μια παραχώρηση ισοπαλίας (όχι μέσω eMail)} menuText G CCNewMailGame "Νέα παρτίδα eMail..." 2 {Ξεκινήστε μια νέα παρτίδα μέσω eMail} menuText G CCMailMove "Αποστολή κίνησης..." 0 {Ταχυδρομήστε την κίνησή σας μέσω eMail προς τον αντίπαλο} menuText G CCGamePage "Σελίδα παρτίδας..." 0 {Εμφανήστε την παρτίδα μέσα από τον περιηγητή ιστού} # menu in cc window: menuText G CCEditCopy "Αντιγραφή λίστας παρτίδων στην προσωρινή μνήμη (Clipbase)" 0 {Αντιγράψτε τις παρτίδες ως λίστα CSV στην μνήμη clipbase} # B GHiJKL Q TUV XYZ # Options menu: menuText G Options "Επιλογές" 0 menuText G OptionsBoard "Σκακιέρα" 0 {Επιλογές εμφάνισης σκακιέρας} menuText G OptionsBoardSize "Μέγεθος" 0 {Αλλάξτε το μέγεθος της σκακιέρας} menuText G OptionsBoardPieces "Είδος κομματιών" 6 {Αλλάξτε το είδος των κομματιών της σκακιέρας} menuText G OptionsBoardColors "Χρώματα..." 0 {Αλλάξτε τα χρώματα της σκακιέρας} #Klimmek menuText G OptionsBoardGraphics "Τετράγωνα..." 0 {Επιλέξτε την υφή των τετραγώνων} translate G OptionsBGW {Επιλέξτε την υφή των τετραγώνων} translate G OptionsBoardGraphicsText {Επιλέξτε το αρχείο γραφικών για τα λευκά και τα μαύρα τετράγωνα:} menuText G OptionsBoardNames "Τα ονόματά μου..." 0 {Επεξεργαστείτε τα ονόματά σας στις παρτίδες} menuText G OptionsExport "Εξαγωγές" 0 {Αλλάξτε τις επιλογές εξαγωγής κειμένου} menuText G OptionsFonts "Γραμματοσειρές" 0 {Αλλάξτε τις γραμματοσειρές} menuText G OptionsFontsRegular "Συνήθης" 0 {Αλλάξτε την τακτική γραμματοσειρά} menuText G OptionsFontsMenu "Μενού" 0 {Αλλάξτε την γραμματοσειρά των μενού} menuText G OptionsFontsSmall "Μικρή" 0 {Αλλάξτε την μικρή γραμματοσειρά} menuText G OptionsFontsTiny "Πολύ μικρή" 0 {Αλλάξτε την πολύ μικρή γραμματοσειρά} menuText G OptionsFontsFixed "Σταθερή" 0 {Αλλάξτε την γραμματοσειρά σταθερού πλάτους} menuText G OptionsGInfo "Πληροφορίες παρτίδας" 0 {Επιλογές πληροφοριών παρτίδας} menuText G OptionsLanguage "Γλώσσα" 0 {Επιλέξτε την γλώσσα των μενού} menuText G OptionsMovesTranslatePieces "Μετάφραση κομματιών" 0 {Μεταφράστε το πρώτο γράμμα των κομματιών} menuText G OptionsMovesHighlightLastMove "Ανάδειξη τελευταίας κίνησης" 0 {Αναδείξτε την τελευταία κίνηση} menuText G OptionsMovesHighlightLastMoveDisplay "Εμφάνιση" 0 {Προβολή της τελευταίας κίνησης με ανάδειξη} menuText G OptionsMovesHighlightLastMoveWidth "Πλάτος" 0 {Το πάχος της γραμμής} menuText G OptionsMovesHighlightLastMoveColor "Χρώμα" 0 {Το χρώμα τηςη γραμμής} menuText G OptionsMoves "Κινήσεις" 0 {Επιλογές εισαγωγής κίνησης} menuText G OptionsMovesAsk "Ερώτηση πριν την αντικατάσταση κινήσεων" 0 \ {Να ερωτάστε πριν την αντικατάσταση κάθε κίνησης που έγινε} menuText G OptionsMovesAnimate "Χρόνος απεικόνισης κίνησης" 1 \ {Καθορίστε την διάρκεια απεικόνισης της κίνησης} menuText G OptionsMovesDelay "Χρονική καθυστέρηση αυτόματου παιχνιδιού..." 1 \ {Καθορίστε την διάρκεια της χρονικής καθυστέρησης για την λειτουργία αυτόματου παιξίματος} menuText G OptionsMovesCoord "Εισαγωγή συντεταγμένης κίνησης" 0 \ {Αποδοχή εισαγωγής κίνησης σε στυλ συντεταγμένων (π.χ. "g1f3")} menuText G OptionsMovesSuggest "Εμφάνιση προτεινόμενων κινήσεων" 0 \ {Ενεργοποίηση/απενεργοποίηση προτεινόμενης κίνησης} menuText G OptionsShowVarPopup "Εμφάνιση παραθύρου βαριαντών" 0 {Ενεργοποίηση/απενεργοποίηση την εμφάνιση του παραθύρου βαριαντών} menuText G OptionsMovesSpace "Προσθήκη διαστημάτων μετά τον αριθμό της κίνησης" 0 {Προσθήκη διαστήματος μετά τον αριθμό της κίνησης} menuText G OptionsMovesKey "Ολοκλήρωση πληκτρολογίου" 0 \ {Ενεργοποίηση/απενεργοποίηση της αυτόματης ολοκλήρωσης κινήσεων μέσω πληκτρολογίου} menuText G OptionsMovesShowVarArrows "Εμφάνιση βέλους για βαριάντα" 0 {Ενεργοποίηση/απενεργοποίηση του βέλους που δείχνει τις κινήσεις των βαριαντών} menuText G OptionsNumbers "Μορφή αριθμών" 0 {Επιλέξτε τη μορφή των αριθμών} menuText G OptionsStartup "Εκκίνηση" 3 {Επιλέξτε τα παράθυρα που θα ανοίγουν κατά την εκκίνηση του Scid} menuText G OptionsTheme "Θέμα" 0 {Αλλάξτε την όψη του προγράμματος} menuText G OptionsWindows "Παράθυρα" 0 {Επιλογές παραθύρων} menuText G OptionsWindowsIconify "Αυτόματο εικονίδιο" 5 \ {Μετατροπή όλων των παραθύρων σε εικονίδια όταν το κυρίως παράθυρο έχει γίνει εικονίδιο} menuText G OptionsWindowsRaise "Αυτόματη μεγέθυνση" 5 \ {Μεγέθυνση συγκεκριμένων παραθύρων (π.χ. των γραμμών προόδου) κάθε φορά που αποκρύπτονται} menuText G OptionsSounds "Ήχοι..." 2 {Ρυθμίστε τους ήχους αναγγελίας κίνησης} menuText G OptionsWindowsDock "Προσκόληση παραθύρων" 0 {Προσκολήστε τα παράθυρα (χρειάζεται επανεκκίνηση)} menuText G OptionsWindowsSaveLayout "Αποθήκευση διάταξης" 0 {Αποθηκεύστε την διάταξη των παραθύρων} menuText G OptionsWindowsRestoreLayout "Αποκατάσταση διάταξης" 0 {Αποκαταστήστε προηγούμενη διάταξη παραθύρων} menuText G OptionsWindowsShowGameInfo "Εμφάνιση πληροφοριών παρτίδας" 0 {Εμφανίστε τις πληροφορίες για την παρτίδα} menuText G OptionsWindowsAutoLoadLayout "Αυτόματη φόρτωση της πρώτης διάταξης" 0 {Αυτόματη φόρτωση κατά την εκκίνηση της πρώτης διάταξης} menuText G OptionsToolbar "Γραμμή εργαλειών..." 0 {Προσαρμόστε την εργαλειοθήκη του κύριου παραθύρου} menuText G OptionsECO "Φόρτωση αρχείου ECO..." 7 {Φορτώστε το αρχείο ταξινόμησης κατά ECO} menuText G OptionsSpell "Φόρτωση αρχείου ορθογραφικού ελέγχου..." 11 \ {Φορτώστε το αρχείο ορθογραφικού ελέγχου του Scid} menuText G OptionsTable "Κατάλογος βάσης φινάλε..." 10 \ {Επιλέξτε μια βάση δεδομένων φινάλες. Θα χρησιμοποιηθούν όλες οι βάσεις δεδομένων φινάλε του καταλόγου αυτού} menuText G OptionsRecent "Πρόσφατα αρχεία..." 0 {Αλλάξτε το πλήθος των πρόσφατων αρχείων που εμφανίζονται στο μενού Αρχείο} menuText G OptionsBooksDir "Κατάλογος βιβλίων..." 0 {Καθορίζει τον κατάλογο των βιβλίων ανοιγμάτων} menuText G OptionsTacticsBasesDir "Bases directory..." 0 {Sets the tactics (training) bases directory} menuText G OptionsSave "Αποθήκευση επιλογών" 0 "Αποθηκεύστε όλες τις μεταβολές ρυθμίσεων στο αρχείο $::optionsFile" menuText G OptionsAutoSave "Αυτόματη αποθήκευση επιλογών κατά την έξοδο" 0 \ {Να αποθηκεύονται αυτόματα οι επιλογές κατά την έξοδο από το Scid} # Help menu: menuText G Help "Βοήθεια" 0 menuText G HelpContents "Περιεχόμενα" 0 {Εμφανήστε την σελίδα των περιεχομένων της βοήθειας} menuText G HelpIndex "Κατάλογος" 0 {Εμφανήστε τον κατάλογο βοήθειας} menuText G HelpGuide "Γρήγορος οδηγός" 0 {Εμφανίζει την σελίδα της βοήθειας με τον γρήγορο οδηγό} menuText G HelpHints "Υποδείξεις" 0 {Εμφανήστε την σελίδα της βοήθειας με τις νύξεις} menuText G HelpContact "Πληροφορίες επικοινωνίας" 1 {Εμφανίζει την σελίδα της βοήθειας με τις πληροφορίες επικοινωνίας} menuText G HelpTip "Συμβουλή της ημέρας" 0 {Εμφάνιση χρήσιμων συμβουλών για το Scid} menuText G HelpStartup "Παράθυρο έναρξης" 0 {Εμφανίζει το παράθυρο έναρξης} menuText G HelpAbout "Για το Scid" 0 {Πληροφορίες για το Scid} # Game info box popup menu: menuText G GInfoHideNext "Απόκρυψη επόμενης κίνησης" 0 menuText G GInfoMaterial "Εμφάνισης της αξίας των κομματιών" 0 menuText G GInfoFEN "Εμφάνιση FEN" 5 menuText G GInfoMarks "Εμφάνιση έγχρωμων τετρατώνων και βελών" 5 menuText G GInfoWrap "Αναδύπλωση γραμμών" 0 menuText G GInfoFullComment "Εμφάνιση πλήρους σχολιασμού" 10 menuText G GInfoPhotos "Εμφάνιση φωτογραφιών" 5 menuText G GInfoTBNothing "Βάση φινάλε: Τίποτα" 12 menuText G GInfoTBResult "Βάση φινάλε: Μόνον αποτελέσματα" 12 menuText G GInfoTBAll "Βάση φινάλε: Αποτέλεσα και καλύτερες κινήσεις" 19 menuText G GInfoDelete "Διαγραφή/ανάκτηση αυτής της παρτίδας" 4 menuText G GInfoMark "(Μη-)Σημείωση αυτής της παρτίδας" 4 menuText G GInfoInformant "Ρύθμιση τιμών πληροφορίας" 0 # Main window buttons: helpMsg G .main.fbutton.button.start {Μετάβαση στην αρχή της παρτίδας (πλήκτρο: Home)} helpMsg G .main.fbutton.button.end {Μετάβαση στο τέλος της παρτίδας (πλήκτρο: End)} helpMsg G .main.fbutton.button.back {Μετάβαση μια κίνηση πίσω (πλήκτρο: LeftArrow)} helpMsg G .main.fbutton.button.forward {Μετάβαση μια κίνηση εμπρός (πλήκτρο: RightArrow)} helpMsg G .main.fbutton.button.intoVar {Μετάβαση σε βαριάντα (πλήκτρο: v)} helpMsg G .main.fbutton.button.exitVar {Έξοδος από την τρέχουσα βαριάντα (πλήκτρο: z)} helpMsg G .main.fbutton.button.flip {Περιστροφή σκακιέρας (πλήκτρο: .)} helpMsg G .main.fbutton.button.coords {Εμφάνιση/απόκρυψη συντεταγμένων σκακιέρας (πλήκτρο: 0)} helpMsg G .main.fbutton.button.stm {Εμφάνιση/απόκρυψη του εικονιδίου της πλευράς που είναι να παίξη} helpMsg G .main.fbutton.button.autoplay {Αυτόματο παίξιμο κινήσεων (πλήκτρο: Ctrl+Z)} # General buttons: translate G Back {Πίσω} translate G Browse {Αναζήτηση} translate G Cancel {Άκυρο} translate G Continue {Συνέχεια} translate G Clear {Καθαρισμός} translate G Close {Κλείσιμο} translate G Contents {Περιεχόμενα} translate G Defaults {Αρχικό} translate G Delete {Διαγραφή} translate G Graph {Γράφημα} translate G Help {Βοήθεια} translate G Import {Εισαγωγή} translate G Index {Κατάλογος} translate G LoadGame {Φώρτωση παρτίδας} translate G BrowseGame {Περιήγηση παρτίδας} translate G MergeGame {Συνένωση παρτίδας} translate G MergeGames {Συνένωση παρτίδων} translate G Preview {Προεπισκόπηση} translate G Revert {Επαναφορά} translate G Save {Αποθήκευση} translate G Search {Αναζήτηση} translate G Stop {Διακοπή} translate G Store {Αποθήκευση} translate G Update {Ενημέρωση} translate G ChangeOrient {Αλλαγή προσανατολισμού παραθύρου} translate G ShowIcons {Εμφάνιση εικόνων} translate G None {Κανένα} translate G First {Πρώτο} translate G Current {Τρέχων} translate G Last {Τελευταίο} # General messages: translate G game {παρτίδα} translate G games {παρτίδες} translate G move {κίνηση} translate G moves {κινήσεις} translate G all {όλες} translate G Yes {Ναι} translate G No {Όχι} translate G Both {Αμφότεροι} translate G King {Βασιλιάς} translate G Queen {Βασίλισσα} translate G Rook {Πύργος} translate G Bishop {Αξιωματικός} translate G Knight {Ίππος} translate G Pawn {Πιόνι} translate G White {Λευκά} translate G Black {Μαύρα} translate G Player {Παίκτης} translate G Rating {Βαθμολογία} translate G RatingDiff {Διαφορά βαθμολογίας (Λευκά - Μαύρα)} translate G AverageRating {Μέση βαθμολογία} translate G Event {Διοργάνωση} translate G Site {Τόπος} translate G Country {Χώρα} translate G IgnoreColors {Αγνόηση χρωμάτων} translate G Date {Ημερομηνία} translate G EventDate {Ημερομηνία διοργάνωσης} translate G Decade {Δεκαετία} translate G Year {Έτος} translate G Month {Μήνας} translate G Months {Ιανουάριος Φεβρουάριος Μάρτιος Απρίλιος Μάιος Ιούνιος Ιούλιος Αύγουστος Σεπτέμβριος Οκτώβριος Νοέμβριος Δεκέμβριος} translate G Days {Κυρ Δευ Τρ Τε Πε Πα Σα} translate G YearToToday {Τρέχον έτος} translate G Result {Αποτέλεσμα} translate G Round {Περίοδος} translate G Length {Έκταση} translate G ECOCode {Κώδικας ECO} translate G ECO {ECO} translate G Deleted {Διαγράφηκε} translate G SearchResults {Αναζήτηση αποτελεσμάτων} translate G OpeningTheDatabase {Βάση δεδομένων ανοιγμάτων} translate G Database {Βάση δεδομένων} translate G Filter {Φίλτρο} translate G noGames {καμία παρτίδα} translate G allGames {όλες οι παρτίδες} translate G empty {κενό} translate G clipbase {προσωρινή μνήμη clipbase} translate G score {βαθμός} translate G StartPos {Εναρκτήρια θέση} translate G Total {Σύνολο} translate G readonly {μόνο για ανάγνωση} # Standard error messages: translate G ErrNotOpen {Αυτή η βάση δεδομένων δεν είναι ανοικτή.} translate G ErrReadOnly {Αυτή η βάση δεδομένων είναι μόνον για ανάγνωση. Δεν μπορεί να αντικατασταθεί.} translate G ErrSearchInterrupted {Η αναζήτηση διακόπηκε. Τα αποτελέσματα δεν είναι πλήρη.} # Game information: translate G twin {δίδυμες} translate G deleted {διεγραμμένη} translate G comment {σχόλιο} translate G hidden {κρυμένη} translate G LastMove {Τελευταία κίνηση} translate G NextMove {Επόμενη} translate G GameStart {Αρχή παρτίδας} translate G LineStart {Αρχή γραμμής} translate G GameEnd {Τέλος παρτίδας} translate G LineEnd {Τέλος γραμμής} # Player information: translate G PInfoAll {Αποτελέσματα για όλες τις παρτίδες} translate G PInfoFilter {Αποτελέσματα για τις φιλτραρισμένες παρτίδες} translate G PInfoAgainst {Αποτελέσματα εναντίον} translate G PInfoMostWhite {Τα κοινότερα ανοίγματα ως Λευκά} translate G PInfoMostBlack {Τα κοινότερα ανοίγματα ως Μαύρα} translate G PInfoRating {Ιστορικό βαθμολόγησης} translate G PInfoBio {Βιογραφία} translate G PInfoEditRatings {Επεξεργασία βαθμολογήσεων} # Tablebase information: translate G Draw {Ισοπαλία} translate G stalemate {πατ} translate G withAllMoves {με όλες τις κινήσεις} translate G withAllButOneMove {με όλες τις κινήσεις εκτός μιας} translate G with {με} translate G only {μόνο} translate G lose {απώλεια} translate G loses {χάνει} translate G allOthersLose {όλες οι άλλες χάνουν} translate G matesIn {ματ σε} translate G hasCheckmated {έκανε ματ} translate G longest {μεγαλύτερη} translate G WinningMoves {Κινήσεις που κερδίζουν} translate G DrawingMoves {Κινήσεις που οδηγούν σε ισοπαλία} translate G LosingMoves {Κινήσεις που χάνουν} translate G UnknownMoves {Κινήσεις αγνώστου αποτελέσματος} # Tip of the day: translate G Tip {Συμβουλή} translate G TipAtStartup {Συμβουλές κατά την εκκίνηση} # Tree window menus: menuText G TreeFile "Αρχείο" 0 menuText G TreeFileFillWithBase "Γέμισμα της μνήμης με την βάση" 0 {Γεμίστε την προσωρινή μνήμη cache με όλα τις παρτίδες της τρέχουσας βάσης} menuText G TreeFileFillWithGame "Γέμισμα της μνήμης με παρτίδα" 0 {Γεμίστε την προσωρινή μνήμη cache με την τρέχουσα παρτίδα στην τρέχουσα βάση} menuText G TreeFileSetCacheSize "Μέγεθος προσωρινής μνήμης" 0 {Καθορίστε το μέγεθος της προσωρινής μνήμης cache} menuText G TreeFileCacheInfo "Αποθήκευση πληροφοριών στην μνημη" 0 {Μεταβιβάστε τις πληροφορίες στην μνήμη cache} menuText G TreeFileSave "Αποθήκευση του αρχείου προσωρινής μνήμης" 0 {Αποθηκεύστε το αρχείο δένδρου της προσωρινής μνήμης (.stc)} menuText G TreeFileFill "Γέμισμα του αρχείου προσωρινής μνήμης" 0 \ {Γεμίστε το αρχείο προσωρινής μνήμης με συνήθεις θέσεις ανοιγμάτων} menuText G TreeFileBest "Λίστα καλύτερων παρτίδων" 0 {Εμφάνιση του καλύτερου δένδρου λίστας παρτίδων} menuText G TreeFileGraph "Παράθυρο γραφήματος" 0 {Εμφάνιση του γραφήματος γι' αυτόν τον κλάδο δένδρου} menuText G TreeFileCopy "Αντιγραφή του κειμένου του δένδρου στην προσωρινή μνήμη Clipboard" 1 \ {Αντιγράψτε το δένδρο των στατιστικών στην προσωρινή μνήμη clipboard} menuText G TreeFileClose "Κλείσιμο του παραθύρου δένδρου" 0 {Κλείστε το παράθυρο του δένδρου} menuText G TreeMask "Μάσκα" 0 menuText G TreeMaskNew "Νέα" 0 {Νέα μάσκα} menuText G TreeMaskOpen "Άνοιγμα" 0 {Ανοίξτε μια μάσκα} menuText G TreeMaskOpenRecent "Άνοιγμα πρόσφατης" 0 {Ανοίξτε πρόσφατη μάσκα} menuText G TreeMaskSave "Αποθήκευση" 0 {Αποθηκεύστε την μάσκα} menuText G TreeMaskClose "Κλείσιμο" 0 {Κλείστε τη μάσκα} menuText G TreeMaskFillWithGame "Γέμισμα με παρτίδα" 0 {Γεμίστε την μάσκα με μια παρτίδα} menuText G TreeMaskFillWithBase "Γέμισμα με βάση" 0 {Γεμίστε τη μάσκα με όλες τις παρτίδες της βάσης} menuText G TreeMaskInfo "Info" 0 {Show statistics for current mask} menuText G TreeMaskDisplay "Εμφάνιση χάρτη μάσκας" 0 {Εμφανίστε τα δεδομένα της μάσκας σε μορφή δένδρου} menuText G TreeMaskSearch "Αναζήτηση" 0 {Αναζήτηση στην τρέχουσα μάσκα} menuText G TreeSort "Ταξινόμηση" 0 menuText G TreeSortAlpha "Αλφαβητική" 0 menuText G TreeSortECO "Κώδικας ECO" 0 menuText G TreeSortFreq "Συχνότητα" 0 menuText G TreeSortScore "Βαθμολογία" 0 menuText G TreeOpt "Επιλογές" 0 menuText G TreeOptSlowmode "Αργή λειτουργία" 0 {Αργή λειτουργία των ενημερώσεων (μεγάλη ακρίβεια)} menuText G TreeOptFastmode "Γρήγορη λειτουργία" 0 {Γρήγορη λειτουργία των ενημερώσεων (χωρίς αντιμετάθεση κίνησης)} menuText G TreeOptFastAndSlowmode "Αργή και γρήγορη λειτουργία" 0 {Γρήγορη λειτουργία και έπειτα αργή λειτουργία για ενημερώσεις} menuText G TreeOptStartStop "Αυτόματη ανανέωση" 0 {Εναλλάσει την αυτόματη ανανέωση του παραθύρου του δένδρου} menuText G TreeOptLock "Lock" 0 {Lock/unlock the tree to the current database} menuText G TreeOptTraining "Προπόνηση" 0 {Ενεργοποίηση/απενεργοποίηση της λειτουργίας εκπαίδευσης} menuText G TreeOptAutosave "Αυτόματη αποθήκευση του αρχείου προσωρινής μνήμης" 0 \ {Αποθηκεύει αυτόματα το αρχείο προσωρινής μνήμης όταν κλείσετε το παράθυρο δένδρου} menuText G TreeHelp "Βοήθεια" 0 menuText G TreeHelpTree "Δένδρο βοήθειας" 0 menuText G TreeHelpIndex "Κατάλογος βοήθειας" 0 translate G SaveCache {Αποθήκευση προσωρινής μνήμης Cache} translate G Training {Προπόνηση} translate G LockTree {Κλείδωμα} translate G TreeLocked {κλειδωμένο} translate G TreeBest {Καλύτερο} translate G TreeBestGames {Οι καλύτερες παρτίδες του δένδρου} # Note: the next message is the tree window title row. After editing it, # check the tree window to make sure it lines up with the actual columns. translate G TreeTitleRow \ { Move ECO Frequency Score AvElo Perf AvYear %Draws} translate G TreeTotal {ΣΥΝΟΛΟ} translate G DoYouWantToSaveFirst {Θέλετε να αποθηκεύσετε πρώτα;} translate G AddToMask {Προσθήκη στην μάσκα} translate G RemoveFromMask {Απομάκρυνση από την μάσκα} translate G AddThisMoveToMask {Προσθήκη αυτής της κίνησης στην μάσκα} translate G SearchMask {Αναζήτηση στην μάσκα} translate G DisplayMask {Εμφάνιση μάσκας} translate G Nag {Κώδικας Nag} translate G Marker {Μαρκαδόρος} translate G Include {Περιλαμβάνει} translate G Exclude {Εξαιρεί} translate G MainLine {Κύρια γραμμή} translate G Bookmark {Σελιδοδείκτης} translate G NewLine {Νέα γραμμή} translate G ToBeVerified {Να εξακριβωθεί} translate G ToTrain {Να εξασκηθεί} translate G Dubious {Αμφίβολη} translate G ToRemove {Προς απομάκρυνση} translate G NoMarker {Χωρίς μαρκαδόρο} translate G ColorMarker {Χρώμα} translate G WhiteMark {Λευκό} translate G GreenMark {Πράσινο} translate G YellowMark {Κίτρινο} translate G BlueMark {Γαλάζιο} translate G RedMark {Κόκκινο} translate G CommentMove {Σχολιασμός κίνησης} translate G CommentPosition {Σχολιασμός θέσης} translate G AddMoveToMaskFirst {Πρώτα να προστεθεί η κίνηση στην μάσκα} translate G OpenAMaskFileFirst {Πρώτα να ανοιχτεί ένα αρχείο μάσκας} translate G Positions {Θέσεις} translate G Moves {Κινήσεις} # Finder window: menuText G FinderFile "Αρχείο" 0 menuText G FinderFileSubdirs "Αναζήτηση στους υποκαταλόγους" 0 menuText G FinderFileClose "Κλείσιμο αναζήτησης αρχείου" 0 menuText G FinderSort "Ταξινόμηση" 0 menuText G FinderSortType "Τύπος" 0 menuText G FinderSortSize "Μέγεθος" 0 menuText G FinderSortMod "Τροποποιήθηκε" 0 menuText G FinderSortName "Όνομα" 0 menuText G FinderSortPath "Διαδρομή" 0 menuText G FinderTypes "Τύποι" 0 menuText G FinderTypesScid "Βάσεις δεδομένων Scid" 0 menuText G FinderTypesOld "Βάσεις δεδομένων Scid παλαιάς μορφής" 0 menuText G FinderTypesPGN "Αρχεία PGN" 0 menuText G FinderTypesEPD "Αρχεία EPD" 0 menuText G FinderTypesRep "Αρχεία ρεπερτορίου" 0 menuText G FinderHelp "Βοήθεια" 0 menuText G FinderHelpFinder "Βοήθεια για την αναζήτηση αρχείων" 0 menuText G FinderHelpIndex "Κατάλογος βοήθειας" 0 translate G FileFinder {Αναζήτηση αρχείου} translate G FinderDir {Κατάλογος} translate G FinderDirs {Κατάλογοι} translate G FinderFiles {Αρχεία} translate G FinderUpDir {επάνω} translate G FinderCtxOpen {Άνοιγμα} translate G FinderCtxBackup {Αντίγραφο ασφαλείας} translate G FinderCtxCopy {Αντιγραφή} translate G FinderCtxMove {Μεταφορά} translate G FinderCtxDelete {Διαγραφή} # Player finder: menuText G PListFile "Αρχείο" 0 menuText G PListFileUpdate "Ανανέωση/Ενημέρωση" 0 menuText G PListFileClose "Κλείσιμο αναζήτησης αναπαραγωγής" 0 menuText G PListSort "Ταξινόμηση" 0 menuText G PListSortName "Όνομα" 0 menuText G PListSortElo "Elo" 0 menuText G PListSortGames "Παρτίδες" 0 menuText G PListSortOldest "Παλαιότερη" 0 menuText G PListSortNewest "Νεότερη" 2 # Tournament finder: menuText G TmtFile "Αρχείο" 0 menuText G TmtFileUpdate "Ανανέωση" 0 menuText G TmtFileClose "Κλείσιμο αναζήτησης προκριματικών" 0 menuText G TmtSort "Ταξινόμηση" 0 menuText G TmtSortDate "Ημερομηνία" 0 menuText G TmtSortPlayers "Παίκτες" 0 menuText G TmtSortGames "Παρτίδες" 0 menuText G TmtSortElo "Elo" 0 menuText G TmtSortSite "Τοποθεσία" 0 menuText G TmtSortEvent "Διοργάνωση" 1 menuText G TmtSortWinner "Νικητής" 0 translate G TmtLimit "Όριο λίστας" translate G TmtMeanElo "Μέσος Elo" translate G TmtNone "Δεν βρέθηκαν προκριματικοί που να ταιριάζουν." # Graph windows: menuText G GraphFile "Αρχείο" 0 menuText G GraphFileColor "Αποθήκευση ως έγρωμο PostScript..." 8 menuText G GraphFileGrey "Αποθήκευση ως γρκίζο PostScript..." 8 menuText G GraphFileClose "Κλείσιμο παραθύρου" 6 menuText G GraphOptions "Επιλογές" 0 menuText G GraphOptionsWhite "Λευκά" 0 menuText G GraphOptionsBlack "Μαύρα" 0 menuText G GraphOptionsBoth "Και τα δύο" 1 menuText G GraphOptionsPInfo "Πληροφορίες παίκτη" 0 translate G GraphFilterTitle "Φίλτρο γραφήματος: συχνότητα ανά 1000 παρτίδες" translate G GraphAbsFilterTitle "Φίλτρο γραφήματος: συχνότητα παρτίδας" translate G ConfigureFilter "Προσαρμογή των αξόνων Χ ως προς Έτος, Βαθμολογία και Κινήσεις" translate G FilterEstimate "Εκτίμηση" translate G TitleFilterGraph "Scid: Φιλτράρισμα γραφήματος" # Analysis window: translate G AddVariation {Προσθήκη βαριάντας} translate G AddAllVariations {Προσθήκη όλων των βαριαντών} translate G AddMove {Προσθήκκη κίνησης} translate G Annotate {Υπομνηματισμός} translate G ShowAnalysisBoard {Εμφάνισης της σκακιέρας ανάλυσης} translate G ShowInfo {Εμφάνιση πληροφοριών μηχανής} translate G FinishGame {Ολοκλήρωση παρτίδας} translate G StopEngine {Διακοπή μηχανής} translate G StartEngine {Εκκίνηση μηχανής} translate G LockEngine {Κλείδωμα της μηχανής στην τρέχουσα θέση} translate G AnalysisCommand {Εντολή ανάλυσης} translate G PreviousChoices {Προηγούμενες επιλογές} translate G AnnotateTime {Καθορίστε τον χρόνο μεταξύ των κινήσεων σε δευτερόλεπτα} translate G AnnotateWhich {Προσθήκη βαριαντών} translate G AnnotateAll {Για κινήσεις και των δύο πλευρών} translate G AnnotateAllMoves {Υπομνηματισμός όλων των κινήσεων} translate G AnnotateWhite {Για τις κινήσεις μόνο των Λευκών} translate G AnnotateBlack {Για τις κινήσεις μόνο των Μαύρων} translate G AnnotateBlundersOnly {Όταν η κίνηση είναι σφάλμα} translate G AnnotateBlundersOnlyScoreChange {Η ανάλυση αναφέρει σφάλμα και το σκορ άλλαξε από/σε: } translate G BlundersThreshold {Αφετηρία} translate G ScoreAllMoves {Βαθμολόγηση όλων των κινήσεων} translate G LowPriority {Χαμηλή προτεραιότητα της CPU} translate G ClickHereToSeeMoves {Πατήστε εδώ για να δείτε τις κινήσεις} translate G ConfigureInformant {Προσαρμογή Informant} translate G Informant!? {Ενδιαφέρουσα κίνησηInteresting move} translate G Informant? {Φτωχή κίνηση} translate G Informant?? {Σφάλμα} translate G Informant?! {Αμφίβολη κίνηση} translate G Informant+= {Τα Λευκά έχουν μικρό πλεονέκτημα} translate G Informant+/- {Τα Λευκά έχουν μέτριο πλεονέκτημα} translate G Informant+- {Τα Λευκά έχουν αποφασιστικό πλεονέκτημα} translate G Informant++- {Η παρτίδα θεωρείται κερδισμένη} # Book window translate G Book {Βιβλίο} translate G OtherBookMoves {Βιβλίο αντιπάλου} translate G OtherBookMovesTooltip {Κινήσεις για τις οποίες ο αντίπαλος διαθέτει απάντηση} # Analysis Engine open dialog: translate G EngineList {Λίστα μηχανής ανάλυσης} translate G EngineName {Όνομα} translate G EngineCmd {Εντολή} translate G EngineArgs {Παράμετροι} translate G EngineDir {Κατάλογος} translate G EngineElo {Elo} translate G EngineTime {Ημερομηνία} translate G EngineNew {Νέα} translate G EngineEdit {Επεξεργασία} translate G EngineRequired {Τα παιδία με έντονη γραμματοσειρά είναι απαραίτητα, τα άλλα είναι προαιρετικά} # Stats window menus: menuText G StatsFile "Αρχείο" 0 menuText G StatsFilePrint "Εκτύπωση σε αρχείο..." 0 menuText G StatsFileClose "Κλείσιμο παραθύρου" 0 menuText G StatsOpt "Επιλογές" 0 # PGN window menus: menuText G PgnFile "Αρχείο" 0 menuText G PgnFileCopy "Αντιγραφή παρτίδας στην προσωρινή μνήμη Clipboard" 0 menuText G PgnFilePrint "Εκτύπωση σε αρχείο..." 0 menuText G PgnFileClose "Κλείσιμο παραθύρου PGN" 10 menuText G PgnOpt "Εμφάνιση" 0 menuText G PgnOptColor "Έγχρωμη εμφάνιση" 0 menuText G PgnOptShort "Μικρή (3 γραμμών) κεφαλίδα" 0 menuText G PgnOptSymbols "Συμβολικός υπομνηματισμός" 1 menuText G PgnOptIndentC "Εσοχή σχολίων" 0 menuText G PgnOptIndentV "Εσοχή βαριαντών" 7 menuText G PgnOptColumn "Είδος στήλης (μια κίνηση ανά γραμμή)" 1 menuText G PgnOptSpace "Διάστημα μετά τον αριθμό της κίνησης" 1 menuText G PgnOptStripMarks "Απομάκρυνση έγχρωμων κωδικών τετραγώνων/βελών" 1 menuText G PgnOptBoldMainLine "Χρήση έντονου κειμένου για τις κινήσεις κύριας γραμμής" 4 menuText G PgnColor "Χρώματα" 0 menuText G PgnColorHeader "Κεφαλίδα..." 0 menuText G PgnColorAnno "Υπομνηματισμοί..." 0 menuText G PgnColorComments "Σχόλια..." 0 menuText G PgnColorVars "Βαριάντες..." 0 menuText G PgnColorBackground "Υπόβαθρο..." 0 menuText G PgnColorMain "Κύρια γραμμή..." 0 menuText G PgnColorCurrent "Υπόβαθρο τρέχουσας κίνησης..." 1 menuText G PgnColorNextMove "Υπόβαθρο επόμενης κίνησης..." 0 menuText G PgnHelp "Βοήθεια" 0 menuText G PgnHelpPgn "Βοήθεια για PGN" 0 menuText G PgnHelpIndex "Κατάλογος" 0 translate G PgnWindowTitle {Σημείωση - παρτίδα %u} # Crosstable window menus: menuText G CrosstabFile "Αρχείο" 0 menuText G CrosstabFileText "Εκτύπωση κειμένου σε αρχείο..." 9 menuText G CrosstabFileHtml "Εκτύπωση σε αρχείο HTML..." 9 menuText G CrosstabFileLaTeX "Εκτύπωση σε αρχείο LaTeX..." 9 menuText G CrosstabFileClose "Κλείσιμο του παραθύρου συγκριτικού πίνακα" 0 menuText G CrosstabEdit "Επεξεργασία" 0 menuText G CrosstabEditEvent "Διοργάνωση" 0 menuText G CrosstabEditSite "Τοποθεσία" 0 menuText G CrosstabEditDate "Ημερομηνία" 0 menuText G CrosstabOpt "Εμφάνιση" 0 menuText G CrosstabOptAll "All-play-all" 0 menuText G CrosstabOptSwiss "Ελβετικού τύπου" 0 menuText G CrosstabOptKnockout "Knockout" 0 menuText G CrosstabOptAuto "Αυτόματα" 1 menuText G CrosstabOptAges "Ηλικία σε έτη" 8 menuText G CrosstabOptNats "Εθνικότητες" 0 menuText G CrosstabOptRatings "Βαθμολογίες" 0 menuText G CrosstabOptTitles "Τίτλοι" 0 menuText G CrosstabOptBreaks "Βαθμολογίες μη δεσμευτικού συστήματος" 4 menuText G CrosstabOptDeleted "Να περιλαμβάνονται διεγραμμένες παρτίδες" 8 menuText G CrosstabOptColors "Χρώματα (Πίνακες Ελβετικού τύπου μόνον)" 0 menuText G CrosstabOptColumnNumbers "Αριθμημένες στήλες (πίνακες τύπου All-play-all μόνον)" 2 menuText G CrosstabOptGroup "Ομαδοποίηση βαθμολογιών" 0 menuText G CrosstabSort "Ταξινόμηση" 0 menuText G CrosstabSortName "Όνομα" 0 menuText G CrosstabSortRating "Βαθμολόγηση" 0 menuText G CrosstabSortScore "Επίδοση" 0 menuText G CrosstabColor "Χρώμα" 0 menuText G CrosstabColorPlain "Απλό κείμενο" 0 menuText G CrosstabColorHyper "Υπερκείμενο" 0 menuText G CrosstabHelp "Βοήθεια" 0 menuText G CrosstabHelpCross "Βοήθεια συγκριτικών πινάκων" 0 menuText G CrosstabHelpIndex "Κατάλογος βοήθειας" 0 translate G SetFilter {Καθορισμός φίλτρου} translate G AddToFilter {Προσθήκη σε φίλτρο} translate G Swiss {Ελβετικού τύπου} translate G Category {Κατηγορία} # Opening report window menus: menuText G OprepFile "Αρχείο" 0 menuText G OprepFileText "Εκτύπωση σε αρχείο κειμένου..." 9 menuText G OprepFileHtml "Εκτύπωση σε αρχείο HTML..." 9 menuText G OprepFileLaTeX "Εκτύπωση σε αρχείο LaTeX..." 9 menuText G OprepFileOptions "Επιλογές..." 0 menuText G OprepFileClose "Κλείσιμο παραθύρου αναφορών" 0 menuText G OprepFavorites "Προτιμώμενα" 1 menuText G OprepFavoritesAdd "Προσθήκη αναφοράς..." 0 menuText G OprepFavoritesEdit "Επεξεργασία προτιμήσεων αναφορών..." 0 menuText G OprepFavoritesGenerate "Δημιουργία αναφορών..." 0 menuText G OprepHelp "Βοήθεια" 0 menuText G OprepHelpReport "Άνοιγμα της βοήθειας για αναφορές" 0 menuText G OprepHelpIndex "Κατάλογος βοήθειας" 0 # Repertoire editor: menuText G RepFile "Αρχείο" 0 menuText G RepFileNew "Νέο" 0 menuText G RepFileOpen "Άνοιγμα..." 0 menuText G RepFileSave "Αποθήκευση..." 0 menuText G RepFileSaveAs "Αποθήκευση ως..." 5 menuText G RepFileClose "Κλείσιμο παραθύρου" 0 menuText G RepEdit "Επεξεργασία" 0 menuText G RepEditGroup "Προσθήκη ομάδας" 4 menuText G RepEditInclude "Προσθήκη Περιέχεται Γραμμή" 4 menuText G RepEditExclude "Προσθήκη Εξαιρείται Γραμμή" 4 menuText G RepView "Εμφάνιση" 0 menuText G RepViewExpand "Ανάπτυξη όλων των ομάδων" 0 menuText G RepViewCollapse "Σύμπτηξη όλων των ομάδων" 0 menuText G RepSearch "Αναζήτηση" 0 menuText G RepSearchAll "Όλο το ρεπερτόριο..." 0 menuText G RepSearchDisplayed "Μόνον γραμμές που εμφανίζονται..." 0 menuText G RepHelp "Βοήθεια" 0 menuText G RepHelpRep "Βοήθεια ρεπερτορίου" 0 menuText G RepHelpIndex "Κατάλογος βοήθειας" 0 translate G RepSearch "Αναζήτηση ρεπερτορίου" translate G RepIncludedLines "γραμμές που περιλαμβάνονται" translate G RepExcludedLines "γραμμές που εξαιρούνται" translate G RepCloseDialog {This repertoire has unsaved changes. Do you really want to continue and discard the changes you have made? } # Header search: translate G HeaderSearch {Αναζήτηση κεφαλίδας} translate G EndSideToMove {Η πλευρά που έχει την κίνηση στο τέλος της παρτίδας} translate G GamesWithNoECO {Παρτίδες χωρίς ECO;} translate G GameLength {Μήκος παρτίδας} translate G FindGamesWith {Εύρεση παρτίδων με σημαίες} translate G StdStart {Μη πρότυπη έναρξη} translate G Promotions {Προαγωγές} translate G Comments {Σχόλια} translate G Variations {Βαριάντες} translate G Annotations {Υπομνηματισμοί} translate G DeleteFlag {Διαγραφή σημαιών} translate G WhiteOpFlag {Άνγοιγμα Λευκών} translate G BlackOpFlag {Άνοιγμα Μαύρων} translate G MiddlegameFlag {Μέσον παρτίδας} translate G EndgameFlag {Φινάλε} translate G NoveltyFlag {Νεοτερισμός} translate G PawnFlag {Πιονοδομή} translate G TacticsFlag {Τακτική} translate G QsideFlag {Παιχνίδι στην πλευρά της Βασίλισσας} translate G KsideFlag {Παιχνίδι στην πλευρά του Βασιλιά} translate G BrilliancyFlag {Ευφυές} translate G BlunderFlag {Σφάλμα} translate G UserFlag {Χρήστης} translate G PgnContains {Το PGN περιέχει κείμενο} translate G Annotator {Υπομνηματιστής} translate G Cmnts {Μόνον υπομνηματισμένες παρτίδες} # Game list window: translate G GlistNumber {Αριθμός} translate G GlistWhite {Λευκά} translate G GlistBlack {Μαύρα} translate G GlistWElo {Elo Λευκών} translate G GlistBElo {Elo Μαύρων} translate G GlistEvent {Διοργάνωση} translate G GlistSite {Τοποθεσία} translate G GlistRound {Γύρος} translate G GlistDate {Ημερομηνία} translate G GlistYear {Έτος} translate G GlistEDate {Ημερομηνία Διοργάνωσης} translate G GlistResult {Αποτέλεσμα} translate G GlistLength {Μήκος} translate G GlistCountry {Χώρα} translate G GlistECO {ECO} translate G GlistOpening {Άνοιγμα} translate G GlistEndMaterial {Υλικό φινάλε} translate G GlistDeleted {Διεγραμμένα} translate G GlistFlags {Σημαίες} translate G GlistVars {Βαριάντες} translate G GlistComments {Σχόλια} translate G GlistAnnos {Υπομηματισμοί} translate G GlistStart {Έναρξη} translate G GlistGameNumber {Αριθμός παρτίδας} # ====== TODO To be translated ====== translate G GlistAverageElo {Average Elo} # ====== TODO To be translated ====== translate G GlistRating {Rating} translate G GlistFindText {Εύρεση κειμένου} translate G GlistMoveField {Μετακίνηση} translate G GlistEditField {Προσαρμογή} translate G GlistAddField {Προσθήκη} translate G GlistDeleteField {Απομάκρυνση} translate G GlistWidth {Πλάτος} translate G GlistAlign {Ευθυγραμμιση} # ====== TODO To be translated ====== translate G GlistAlignL {Align: left} # ====== TODO To be translated ====== translate G GlistAlignR {Align: right} # ====== TODO To be translated ====== translate G GlistAlignC {Align: center} translate G GlistColor {Χρώμα} translate G GlistSep {Διαχωριστής} # ====== TODO To be translated ====== translate G GlistCurrentSep {-- Current --} # ====== TODO To be translated ====== translate G GlistNewSort {New} # ====== TODO To be translated ====== translate G GlistAddToSort {Add} # ====== TODO To be translated ====== translate G GsortSort {Sort...} # ====== TODO To be translated ====== translate G GsortDate {Date} # ====== TODO To be translated ====== translate G GsortYear {Year} # ====== TODO To be translated ====== translate G GsortEvent {Event} # ====== TODO To be translated ====== translate G GsortSite {Site} # ====== TODO To be translated ====== translate G GsortRound {Round} # ====== TODO To be translated ====== translate G GsortWhiteName {White Name} # ====== TODO To be translated ====== translate G GsortBlackName {Black Name} # ====== TODO To be translated ====== translate G GsortECO {ECO} # ====== TODO To be translated ====== translate G GsortResult {Result} # ====== TODO To be translated ====== translate G GsortMoveCount {Move Count} # ====== TODO To be translated ====== translate G GsortAverageElo {Average Elo} # ====== TODO To be translated ====== translate G GsortCountry {Country} # ====== TODO To be translated ====== translate G GsortDeleted {Deleted} # ====== TODO To be translated ====== translate G GsortEventDate {Event Date} # ====== TODO To be translated ====== translate G GsortWhiteElo {White Elo} # ====== TODO To be translated ====== translate G GsortBlackElo {Black Elo} # ====== TODO To be translated ====== translate G GsortComments {Comments} # ====== TODO To be translated ====== translate G GsortVariations {Variations} # ====== TODO To be translated ====== translate G GsortNAGs {NAGs} # ====== TODO To be translated ====== translate G GsortAscending {Ascending} # ====== TODO To be translated ====== translate G GsortDescending {Descending} # ====== TODO To be translated ====== translate G GsortAdd {Add} # ====== TODO To be translated ====== translate G GsortStore {Store} # ====== TODO To be translated ====== translate G GsortLoad {Load} # menu shown with right mouse button down on game list. translate G GlistRemoveThisGameFromFilter {Απομάκρυνση αυτής της παρτίδας από το φίλτρο} translate G GlistRemoveGameAndAboveFromFilter {Απομάκρυνση παρτίδας (και όλων των από πάνω) από το φίλτρο} translate G GlistRemoveGameAndBelowFromFilter {Απομάκρυνση παρτίδας (και όλων των από κάτω) από το φίλτρο} translate G GlistDeleteGame {Διαγραφή/ανάκτηση αυτής της παρτίδας} translate G GlistDeleteAllGames {Διαγραφή όλων των παρτίδων από το φίλτρο} translate G GlistUndeleteAllGames {Ανάκτηση όλων των παρτίδων από το φίλτρο} translate G GlistMergeGameInBase {Συνένωση παρτίδας σε άλλη βάση δεδομένων} # Maintenance window: translate G DatabaseName {Όνομα βάσης δεδομένων:} translate G TypeIcon {Εικόνα τύπου:} translate G NumOfGames {Παρτίδες:} translate G NumDeletedGames {Διεγραμμένες παρτίδες:} translate G NumFilterGames {Παρτίδες στο φίλτρο:} translate G YearRange {Εύρος έτους:} translate G RatingRange {Εύρος βαθμολόγησης:} translate G Description {Περιγραφή} translate G Flag {Σημαία} translate G CustomFlags {Προσαρμοζόμενες σημαίες} translate G DeleteCurrent {Διαγραφή τρέχουσας παρτίδας} translate G DeleteFilter {Διαγραφή φιλτραρισμένων παρτίδων} translate G DeleteAll {Διαγραφή όλων των παρτίδων} translate G UndeleteCurrent {Ανάκτηση τρέχουσας παρτίδας} translate G UndeleteFilter {Ανάκτηση φιλτραρισμένων παρτίδων} translate G UndeleteAll {Ανάκτηση όλων των παρτίδων} translate G DeleteTwins {Διαγραφή δίδυμων παρτίδων} translate G MarkCurrent {Μαρκάρισμα τρέχουσας παρτίδας} translate G MarkFilter {Μαρκάρισμα φιλτραρισμένων παρτίδων} translate G MarkAll {Μαρκάρισμα όλων των παρτίδων} translate G UnmarkCurrent {Ξεμαρκάρισμα τρέχουσας παρτίδας} translate G UnmarkFilter {Ξεμαρκάρισμα φιλτραρισμένων παρτίδων} translate G UnmarkAll {Ξεμαρκάρισμα όλων των παρτίδων} translate G Spellchecking {Έλεγχος ορθογραφίας} translate G Players {Παίκτες} translate G Events {Διοργανώσεις} translate G Sites {Τοποθεσίες} translate G Rounds {Γύροι} translate G DatabaseOps {Χειρισμοί βάσης δεδομένων} translate G ReclassifyGames {Ταξινόμηση παρτίδων κατά ECO} translate G CompactDatabase {Συμπίεση βάσης δεδομένων} translate G SortDatabase {Ταξινόμηση βάσης δεδομένων} translate G AddEloRatings {Προσθήκη βαθμολογίας κατά Elo} translate G AutoloadGame {Αυτόματη φόρτωση αριθμού παρτίδας} translate G StripTags {Απομάκρυνση ετικετών ΡGN} translate G StripTag {Απομάκρυνση ετικετών} translate G Cleaner {Καθαρισμός} translate G CleanerHelp { Ο Καθαρισμός του Scid θα εφαρμόσει στην τρέχουσα βάση δεδομένων όλες τις ενέργειες συντήρησης που επιλέξατε από την λίστα που ακολουθεί. Οι τρέχουσες ρυθμίσεις της ταξινόμησης κατά ECO και η διαγραφή δίδυμων παρτίδων θα εφαρμοσθούν εφόσον επιλέξατε αυτές τις ενέργειες. } translate G CleanerConfirm { Όταν ο Καθαρισμός ξεκινήσει, δεν μπορείτε να τον σταματήσετε! Η διαδικασία αυτή ίσως διαρκέσει αρκετό χρόνο αν η βάση δεδομένων είναι μεγάλη, αναλόγως των ενεργειών που έχετε επιλέξει και των ρυθμίσεών τους. Είστε βέβαιος/αιη ότι θέλετε να ξεκινήσουν οι ενέργειες συντήρησης που επιλέξατε; } # Twinchecker translate G TwinCheckUndelete {to flip; "u" undeletes both)} translate G TwinCheckprevPair {Προηγούμενο ζεύγος} translate G TwinChecknextPair {Επόμενο ζεύγος} translate G TwinChecker {Scid: έλεγχος δίδυμων παρτίδων} translate G TwinCheckTournament {Παρτίδες προκριματικού:} translate G TwinCheckNoTwin {Δεν υπάρχουν δίδυμα } translate G TwinCheckNoTwinfound {Δεν εντοπίστηκαν δίδυμα για την παρτίδα αυτή.\nΓια να δείτε τις δίδυμες παρτίδες χρησιμοποιώντας το παράθυρο αυτό, πρέπει πρώτα να χρησιμοποιήσετε την λειτουργία "Διαγραφή δίδυμων παρτίδων...". } translate G TwinCheckTag {Κοινή χρήση ετικετών...} translate G TwinCheckFound1 {Το Scid βρήκε $result δίδυμες παρτίδες} translate G TwinCheckFound2 { και έθεσε γι' αυτές σημαίες διαγραφής} translate G TwinCheckNoDelete {Σε αυτή τη βάση δεδομένων δεν υπάρχουν παρτίδες προς διαγραφή.} translate G TwinCriteria1 {Οι ρυθμίσεις σας για την αναζήτηση δίδυμων παρτίδων πιθανόν να προκαλούν το μαρκάρισμα μη-δίδυμων παρτίδων ως δίδυμες.} translate G TwinCriteria2 {Αν έχετε επιλέξει "Όχι" για τις "όμοιες κινήσεις", συνιστούμε να επιλέξετε "Ναι" στις ρυθμίσεις για χρώματα, διοργανώσεις, τοποθεσίες, έτος και μήνες.\nΘέλετε να συνεχίσετε και να διαγραφούν οι δίδυμες;} translate G TwinCriteria3 {Συνιστούμε να επιλέξετε "Ναι" τουλάχιστον για δύο ρυθμίσεις "ίδια τοποθεσία", "ίδιος γύρος" και "ίδιο έτος".\nΘέλετε να συνεχίσετε και να διαγραφούν οι δίδυμες;} translate G TwinCriteriaConfirm {Scid: Επιβεβαίωση ρυθμίσεων διδύμων} translate G TwinChangeTag "Αλλαγή των ακόλουθων ετικετών παρτίδας:\n\n" translate G AllocRatingDescription "Η εντολή αυτή θα χρησιμοποιήσει το τρέχον αρχείο ορθογραφικού ελέγχου για να προσθέσει βαθμολογίες Elo σε αυτή την βάση δεδομένων. Αν ο παίκτης/παίκτρια δεν έχει τρέχουσα βαθμολογία αλλά η βαθμολογία του/της την στιγμή της παρτίδας εμφανίζεται στο αρχείο ορθογραφικού ελέγχου, αυτή η βαθμολογία θα προστεθεί." translate G RatingOverride "Να αντικατασταθούν οι υπάρχουσες μη-μηδενικές βαθμολογίες;" translate G AddRatings "Προσθήκη βαθμολογίας στον/στην:" translate G AddedRatings {Τ Scid πρόσθεσε $r βαθμούς Elo σε $g παρτίδες.} #Bookmark editor translate G NewSubmenu "Νέο υπομενού" # Comment editor: translate G AnnotationSymbols {Σύμβολα υπομνηματισμούς:} translate G Comment {Σχόλιο:} translate G InsertMark {Εισαγωγή σημαδιού} translate G InsertMarkHelp { Εισαγωγή/απομάκρυνμση σημαδιού: Επιλέξτε χρώμα, είδος, τετράγωνο. Εισαγωγή/απομάκρυνση βέλους: Δεξί πάτημα δύο τετράγνω. } # Nag buttons in comment editor: translate G GoodMove {Καλή κίνηση} translate G PoorMove {Φτωχή κίνηση} translate G ExcellentMove {Εξαίρετη κίνηση} translate G Blunder {Σφάλμα} translate G InterestingMove {Ενδιαφέρουσα κίνηση} translate G DubiousMove {Αμφίβολη κίνηση} translate G WhiteDecisiveAdvantage {Τα Λευκά έχουν αποφασιστικό πλεονέκτημα} translate G BlackDecisiveAdvantage {Τα Μαύρα έχουν αποφασιστικό πλεονέκτημα} translate G WhiteClearAdvantage {Τα Λευκά έχουν σαφές προβάδισμα} translate G BlackClearAdvantage {Τα Μαύρα έχουν σαφές προβάδισμα} translate G WhiteSlightAdvantage {Τα Λευκά έχουν μικρό πλεονέκτημα} translate G BlackSlightAdvantage {Τα Μαύρα έχουν μικρό πλεονέκτημα} translate G Equality {Ισότητα} translate G Unclear {Ασαφής} translate G Diagram {Διάγραμμα} # Board search: translate G BoardSearch {Αναζήτηση σκακιέρας} translate G FilterOperation {Χειρισμός για το τρέχον φίλτρο:} translate G FilterAnd {AND (Περιορισμός φίλτρου)} translate G FilterOr {OR (Προσθήκη στο φίλτρο)} translate G FilterIgnore {IGNORE (Επαναφορά φίλτρου)} translate G SearchType {Ειδος αναζήτησης:} translate G SearchBoardExact {Ακριβής θέση (όλα τα κομμάτια στα ίδια τετράγωνα)} translate G SearchBoardPawns {Πιόνια (ίδιο υλικό, όλα τα πιόνια στα ίδια τετράγωνα)} translate G SearchBoardFiles {Γραμμή (ίδιο υλικό, όλα τα πιόνια στις ίδιες γραμμές)} translate G SearchBoardAny {Οπουδήποτε (ίδιο υλικό, πιόνια και κομμάτια οπουδήποτε)} translate G SearchInRefDatabase {Αναζήτηση στην βάση αναφοράς} translate G LookInVars {Αναζήτηση στις βαριάντες} # Material search: translate G MaterialSearch {Αναζήτηση υλικού} translate G Material {Υλικό} translate G Patterns {Διάταξη} translate G Zero {Μηδέν} translate G Any {Ό,τιδήποτε} translate G CurrentBoard {Τρέχουσα σκακιέρα} translate G CommonEndings {Κοινά φινάλε} translate G CommonPatterns {Κοινές διατάξεις} translate G MaterialDiff {Διαφορά υλικού} translate G squares {τετράγωνα} translate G SameColor {Ιδίου χρώματος} translate G OppColor {Αντίθετου χρώματος} translate G Either {Οποιοδήποτε} translate G MoveNumberRange {Εύρος αριθμού κίνησης} translate G MatchForAtLeast {Να ταιριάζουνβ τουλάχιστον} translate G HalfMoves {μισές κινήσεις} # Common endings in material search: translate G EndingPawns {Φινάλε πιονιών} translate G EndingRookVsPawns {Πύργων εναντίον πιονιών} translate G EndingRookPawnVsRook {Πύργος και 1 Πύργος εναντίον πύργου} translate G EndingRookPawnsVsRook {Πύργος και πιόνι(α) εναντίον Πύργου} translate G EndingRooks {Φινάλε Πύργου εναντίον Πύργου} translate G EndingRooksPassedA {Φινάλε Πύργου εναντίον Πύργου με προχωρημένο α-πιόνι} translate G EndingRooksDouble {Φινάλε διπλού Πύργου} translate G EndingBishops {Φινάλε Αξιωματικού εναντίον Αξιωματικού} translate G EndingBishopVsKnight {Φινάλε Αξιωματικού εναντίον Ίππου} translate G EndingKnights {Φινάλε Ίππου εναντίον Ίππου} translate G EndingQueens {Φινάλε Βασίλισσας εναντίον Βασίλισσας} translate G EndingQueenPawnVsQueen {Βασίλισσα και 1 Πιόνι εναντίον Βασίλισσας} translate G BishopPairVsKnightPair {Μέσον παρτίδας με δύο Αξιωματικούς εναντίον δυο Αξιωματικών} # Common patterns in material search: translate G PatternWhiteIQP {Λευκό ΑΠΒ} translate G PatternWhiteIQPBreakE6 {Λευκό ΑΠΒ: διείσδηση d4-d5 έναντι e6} translate G PatternWhiteIQPBreakC6 {Λευκό ΑΠΒ: διείσδησηW d4-d5 έναντι c6} translate G PatternBlackIQP {Μαύρο ΑΠΒ} translate G PatternWhiteBlackIQP {Λευκό ΑΠΒ εναντίον Μαύρου ΑΠΒ} translate G PatternCoupleC3D4 {Ζεύγος Λευκών πιονιών c3+d4} translate G PatternHangingC5D5 {Μαύρα κρεμασμένα Πιόνια στα c5 και d5} translate G PatternMaroczy {Κέντρο Maroczy (με Πιόνια στα c4 και e4)} translate G PatternRookSacC3 {Θυσία Πύργου στο c3} translate G PatternKc1Kg8 {O-O-O εναντίον O-O (Kc1 εναντίον Kg8)} translate G PatternKg1Kc8 {O-O εναντίον O-O-O (Kg1 εναντίον Kc8)} translate G PatternLightFian {Φιανκέττο λευκού τετραγώνου (Αξιωματικός-g2 εναντίον Αξιωματικού-b7)} translate G PatternDarkFian {Φιανκέττο μαύρου τετραγώνου (Αξιωματικός-b2 εναντίον Αξιωματικού-g7)} translate G PatternFourFian {Τέσσερα Φιανκέττα (Αξιωματικοί στα b2,g2,b7,g7)} # Game saving: translate G Today {Σήμερα} translate G ClassifyGame {Ταξινόμηση παρτίδας} # Setup position: translate G EmptyBoard {Κενή σκακιέρα} translate G InitialBoard {Αρχική σκακιέρα} translate G SideToMove {Πλευρά που παίζει} translate G MoveNumber {Αριθμός κίνησης} translate G Castling {Ροκέ} translate G EnPassantFile {Γραμμή en passant} translate G ClearFen {Καθαρισμός FEN} translate G PasteFen {Επικόληση FEN} translate G SaveAndContinue {Αποθήκευση και συνέχιση} translate G DiscardChangesAndContinue {Ακύρωση αλλαγών \nκαι συνέχιση} translate G GoBack {Προς τα πίσω} # Replace move dialog: translate G ReplaceMove {Αντικατάσταση κίνησης} translate G AddNewVar {Προσθήκη νέας βαριάντας} translate G NewMainLine {Νέα κύρια γραμμή} translate G ReplaceMoveMessage {Υπάρχει ήδη μια κίνηση εδώ. Μπορείτε να την αντικαταστήσετε ακυρώνοντας όλες τις κινήσεις μετά από αυτήν ή να προσθέσετε την κίνησή σας ως νέα βαριάντα. (Μπορείτε να αποφύγετε την εμφάνιση αυτού του μηνύματος στο μέλλον απενεργοποιώντας την επιλογή "Ερώτηση πριν την αντικατάσταση κίνησης" από το μενού Επιλογές:Κινήσεις.)} # Make database read-only dialog: translate G ReadOnlyDialog {Αν δηλώσετε αυτή την βάση δεδομένεν μόνον για ανάγνωση, δεν θα επιτρέπονται οι αλλαγές. Δεν θα μπορούν να αποθηκευθούν ή να αντικατασταθούν παρτίδες και δεν θα μπορούν να αντικατασταθούν οι σημαίες διαγραφής. Κάθε ταξινόμηση ή αποτελέσματα ταξινομημένα κατά ΕCO, θα είναι προσωρινά. Μπορείτε εύκολα να δηλώσετε την βάση δεδομένων και πάλι ως εγγράψιμη, κλείνοντας και ανοίγοντάς την εκ νέου. Θέλετε στ' αλήθεια να γίνει αυτή η βάση μόνον για ανάγνωση;} # Clear game dialog: translate G ClearGameDialog {Η παρτίδα αυτή έχει αντικατασταθεί. Θέλετε στ' αλήθεια να συνεχίσετε και να ακυρώσετε τις αλλαγές που κάνατε σε αυτήν; } # Exit dialog: translate G ExitDialog {Θέλετε στ' αλήθεια να βγείτε από το Scid;} translate G ExitUnsaved {Οι βάσεις δεδομένων που ακολουθούν έχουν μη αποθηκευμένες αλλαγές παρτίδων. Αν βγείτε τώρα οι αλλαγές αυτές θα χαθούν.} # Import window: translate G PasteCurrentGame {Επικόλληση τρέχουσας παρτίδας} translate G ImportHelp1 {Εισάγετε ή επικολλήστε παρτίδα σε μορφη PGN στο παραπάνω πλαίσιο.} translate G ImportHelp2 {Εδώ θα εμφανίζεται οποιοδήποτε σφάλμα κατά την εισαγωγή παρτίδας.} translate G OverwriteExistingMoves {Αντικατάσταση υπαρχόντων κινήσεων;} # ECO Browser: translate G ECOAllSections {όλες οι ενότητες ECO} translate G ECOSection {ενότητας ECO} translate G ECOSummary {Περίληψη της} translate G ECOFrequency {Συχνότητα υποκωδίκων για} # Opening Report: translate G OprepTitle {Έκθεση ανοίγματος} translate G OprepReport {Έκθεση/αναφορά} translate G OprepGenerated {Δημιουργήθηκε από τον/την} translate G OprepStatsHist {Στατιστικά και Ιστορικό} translate G OprepStats {Στατιστικά} translate G OprepStatAll {Όλες οι παρτίδες της αναφοράς} translate G OprepStatBoth {Βαθμολογήθηκαν} translate G OprepStatSince {Από} translate G OprepOldest {Παλαιότερες παρτίδες} translate G OprepNewest {Νεότερες παρτίδες} translate G OprepPopular {Τρέχουσα δημοτικότητα} translate G OprepFreqAll {Συχνότητα σε όλα τα χρόνια: } translate G OprepFreq1 {Από το έτος 1 έως σήμερα: } translate G OprepFreq5 {Από το έτος 5 έως σήμερα: } translate G OprepFreq10 {Από το έτος 10 έως σήμερα: } translate G OprepEvery {μια φορά κάθε %u παρτίδες} translate G OprepUp {%u%s έτη και άνω} translate G OprepDown {%u%s έτη και κάτω} translate G OprepSame {χωρίς αλλαγή σε όλα τα έτη} translate G OprepMostFrequent {Πιο συχνοί παίκτες} translate G OprepMostFrequentOpponents {Πιο συχνοί αντίπαλοι} translate G OprepRatingsPerf {Βαθμολογήσεις και επιδόσεις} translate G OprepAvgPerf {Μέσες βαθμολογήσεις και επιδόσεις} translate G OprepWRating {Βαθμολόγηση Λευκών} translate G OprepBRating {Βαθμολόγηση Μαύρων} translate G OprepWPerf {Επίδοση Λευκών} translate G OprepBPerf {Επίδοση Μαύρων} translate G OprepHighRating {Παρτίδες με υψηλότερη μέση βαθμολόγηση} translate G OprepTrends {Τάσεις αποτελεσμάτων} translate G OprepResults {Μήκη και συχνότητες αποτελεσμάτων} translate G OprepLength {Μήκος παρτίδας} translate G OprepFrequency {Συχνότητα} translate G OprepWWins {Τα Λευκά κερδίζουν: } translate G OprepBWins {Τα Μαύρα κερδίζουν: } translate G OprepDraws {Ισοπαλίες: } translate G OprepWholeDB {ολόκληρη η βάση δεδομένων} translate G OprepShortest {Οι συντομότερες νίκες} translate G OprepMovesThemes {Κινήσεις και Θέματα} translate G OprepMoveOrders {Σειρές κινήσεων που καταλήγουν στην θέση} translate G OprepMoveOrdersOne \ {Υπάρχει μόνο μια σειρά κινήσεων που καταλήγει στην θέση αυτή:} translate G OprepMoveOrdersAll \ {Υπάρχουν %u σειρές κινήσεων που καταλήγουν στην θέση αυτή:} translate G OprepMoveOrdersMany \ {Υπάρχουν %u σειρές κινήσεων που καταλήγουν στην θέση αυτή. Οι πρώτες %u είναι:} translate G OprepMovesFrom {Κινήσεις από την θέση} translate G OprepMostFrequentEcoCodes {Συχνότεροι κωδικοί ECO} translate G OprepThemes {Θέματα θέσης} translate G OprepThemeDescription {Συχνότητα θεμάτων κατά τις πρώτες %u κινήσεις κάθε παρτίδας} translate G OprepThemeSameCastling {Ομόπλευρα ροκέ} translate G OprepThemeOppCastling {Αντίθετα ροκέ} translate G OprepThemeNoCastling {Και οι δυο Βασιλιάδες χωρίς ροκέ} translate G OprepThemeKPawnStorm {Επίθεση πιονιών Βασιλιά} translate G OprepThemeQueenswap {Ανταλλαγή Βασιλισσών} translate G OprepThemeWIQP {Λευκό απομονωμένο πιόνι Βασίλισσας} translate G OprepThemeBIQP {Μαύρο απομονωμένο πιόνι Βασίλισσας} translate G OprepThemeWP567 {Λευκό πιόνι στην 5/6/7η σειρά} translate G OprepThemeBP234 {Μαύρο πιόνι στην 2/3/4η σειρά} translate G OprepThemeOpenCDE {Ανοικτή Open c/d/e στήλη} translate G OprepTheme1BishopPair {Μόνον η μια πλευρά διαθέτει ζεύγος Αξιωματικών} translate G OprepEndgames {Φινάλε} translate G OprepReportGames {Αναφορά παρτίδων} translate G OprepAllGames {Όλες οι παρτίδες} translate G OprepEndClass {Υλικό στο τέλος κάθε παρτίδας} translate G OprepTheoryTable {Πίνακας ανοιγμάτων} translate G OprepTableComment {Δημιουργήθηκε από τις %u με την υψηλότερη βαθμολογία.} translate G OprepExtraMoves {Επιπλέον κινήσεις στις σημειώσεις του πίνακα ανοιγμάτων} translate G OprepMaxGames {Μέγιστος αριθμός παρτίδων στον πίνακα ανοιγμάτων} translate G OprepViewHTML {Εμφάνιση HTML} translate G OprepViewLaTeX {Εμφάνιση LaTeX} # Player Report: translate G PReportTitle {Έκθεση παίκτη} translate G PReportColorWhite {με τα Λευκά κομμάτια} translate G PReportColorBlack {με τα Μαύρα κομμάτια} translate G PReportMoves {μετά από %s} translate G PReportOpenings {Ανοίγματα} translate G PReportClipbase {Διαγραφή της προσωρινής μνήμης clipbase και αντιγραφή σε αυτήν των παρτίδων που ταιριάζουν} # Piece Tracker window: translate G TrackerSelectSingle {Το αριστερό πλήκτρο του ποντικιού επιλέγει το κομμάτι αυτό.} translate G TrackerSelectPair {Το αριστερό πλήκτρο του ποντικιού επιλέγει το κομμάτι αυτό, το δεξιό πλήκτρο επιλέγει το ταίρι του.} translate G TrackerSelectPawn {Το αριστερό πλήκτρο επιλέγει το πιόνι αυτό, το δεξιό πλήκτρο επιλέγει και τα 8 πιόνια.} translate G TrackerStat {Στατιστικά} translate G TrackerGames {% παρτίδες με κίνηση στο τετράγωνο} translate G TrackerTime {% χρόνο σε κάθε τετράγωνο} translate G TrackerMoves {Κινήσεις} translate G TrackerMovesStart {Εισάγετε τον αριθμό της κίνησης από την οποία θα ξεκινήσει η ανίχνευση.} translate G TrackerMovesStop {Εισάγετε τον αριθμό της κίνησης στην οποία θα σταματήσει η ανίχνευση.} # Game selection dialogs: translate G SelectAllGames {Όλες οι παρτίδες της βάσης δεδομένων} translate G SelectFilterGames {Μόνο παρτίδες στο φίλτρο} translate G SelectTournamentGames {Μόνο παρτίδες του προκριματικού} translate G SelectOlderGames {Μόνο παλαιότερες παρτίδες} # Delete Twins window: translate G TwinsNote {Για να είναι δίδυμες, δυο παρτίδες πρέπει να έχουν τουλάχιστον τους ίδιους παίκτες και τα κριτήρια που θα ορίσετε πιο κάτω. Όταν εντοπίζεται κάποιο ζεύγος δίδυμων, η μικρότερης διάρκειας παρτίδα διαγράφεται. Συμβουλή: πρέπει να ελέγχετε την ορθογραφία της βάσης δεδομένων πριν διαγράψετε δίδυμες παρτίδες, διότι βελτιώνει τον εντοπισμό τους.} translate G TwinsCriteria {Κριτήρια: Οι δίδυμες παρτίδες πρέπει να διαθέτουν...} translate G TwinsWhich {Εξέταση ποιάς παρτίδας} translate G TwinsColors {Με παίκτη ιδίου χρώματος;} translate G TwinsEvent {Με ίδια διοργάνωση;} translate G TwinsSite {Με ίδια τοποθεσία;} translate G TwinsRound {Με ίδιο γύρο;} translate G TwinsYear {Με ίδιο έτος;} translate G TwinsMonth {Με ίδιο μήνα;} translate G TwinsDay {Με ίδια ημέρα;} translate G TwinsResult {Με ίδιο αποτέλεσμα;} translate G TwinsECO {Με ίδιο κωδικό ECO;} translate G TwinsMoves {Με ίδιες κινήσεις} translate G TwinsPlayers {Σύγκριση ονομάτων παικτών:} translate G TwinsPlayersExact {Ταιριάζουν ακριβώς} translate G TwinsPlayersPrefix {Μόνο τα 4 πρώτα γράμματα} translate G TwinsWhen {Όταν διαγράφονται δίδυμες παρτίδες} translate G TwinsSkipShort {Να αγνοούνται όλες οι παρτίδες με μήκος μικρότερο των 5 κινήσεων;} translate G TwinsUndelete {Πρώτα να διαγραφούν όλες οι παρτίδες;} translate G TwinsSetFilter {Να μπουν φίλτρα σε όλες τις διαγραμμένες δίδυμες παρτίδες;} translate G TwinsComments {Πάντοτε διατήρηση των παρτίδων με σχόλια;} translate G TwinsVars {Πάντοτε διατήρηση των παρτίδων με βαριάντες;} translate G TwinsDeleteWhich {Διαγραφή της παρτίδας:} translate G TwinsDeleteShorter {Συντομότερη παρτίδα} translate G TwinsDeleteOlder {Ο μικρότερος αριθμός παρτίδας} translate G TwinsDeleteNewer {Ο μεγαλύτερος αριθμός παρτίδας} translate G TwinsDelete {Διαγραφή παρτίδας} # Name editor window: translate G NameEditType {Τύπος του προς επεξεργασία ονόματος} translate G NameEditSelect {Παρτίδες για επεξεργασία} translate G NameEditReplace {Αντικατάσταση} translate G NameEditWith {με} translate G NameEditMatches {Ταιριάσματα: Για επιλογή, πατήστε Ctrl+1 έως Ctrl+9} translate G Cleaner {Καθαρισμός} translate G CleanerHelp { Ο Καθαρισμός του Scid θα εφαρμόσει στην τρέχουσα βάση δεδομένων όλες τις ενέργειες συντήρησης που επιλέξατε από την λίστα που ακολουθεί. Οι τρέχουσες ρυθμίσεις της ταξινόμησης κατά ECO και η διαγραφή δίδυμων παρτίδων θα εφαρμοσθούν εφόσον επιλέξατε αυτές τις ενέργειες. } translate G CleanerConfirm { Όταν ο Καθαρισμός ξεκινήσει, δεν μπορείτε να τον σταματήσετε! Η διαδικασία αυτή ίσως διαρκέσει αρκετό χρόνο αν η βάση δεδομένων είναι μεγάλη, αναλόγως των ενεργειών που έχετε επιλέξει και των ρυθμίσεών τους. Είστε βέβαιος/αιη ότι θέλετε να ξεκινήσουν οι ενέργειες συντήρησης που επιλέξατε; } # Twinchecker translate G TwinCheckUndelete {to flip; "u" undeletes both)} translate G TwinCheckprevPair {Προηγούμενο ζεύγος} translate G TwinChecknextPair {Επόμενο ζεύγος} translate G TwinChecker {Scid: έλεγχος δίδυμων παρτίδων} translate G TwinCheckTournament {Παρτίδες προκριματικού:} translate G TwinCheckNoTwin {Δεν υπάρχουν δίδυμα } translate G TwinCheckNoTwinfound {Δεν εντοπίστηκαν δίδυμα για την παρτίδα αυτή.\nΓια να δείτε τις δίδυμες παρτίδες χρησιμοποιώντας το παράθυρο αυτό, πρέπει πρώτα να χρησιμοποιήσετε την λειτουργία "Διαγραφή δίδυμων παρτίδων...". } translate G TwinCheckTag {Κοινή χρήση ετικετών...} translate G TwinCheckFound1 {Το Scid βρήκε $result δίδυμες παρτίδες} translate G TwinCheckFound2 { και έθεσε γι' αυτές σημαίες διαγραφής} translate G TwinCheckNoDelete {Σε αυτή τη βάση δεδομένων δεν υπάρχουν παρτίδες προς διαγραφή.} translate G TwinCriteria1 {Οι ρυθμίσεις σας για την αναζήτηση δίδυμων παρτίδων πιθανόν να προκαλούν το μαρκάρισμα μη-δίδυμων παρτίδων ως δίδυμες.} translate G TwinCriteria2 {Αν έχετε επιλέξει "Όχι" για τις "όμοιες κινήσεις", συνιστούμε να επιλέξετε "Ναι" στις ρυθμίσεις για χρώματα, διοργανώσεις, τοποθεσίες, έτος και μήνες.\nΘέλετε να συνεχίσετε και να διαγραφούν οι δίδυμες;} translate G TwinCriteria3 {Συνιστούμε να επιλέξετε "Ναι" τουλάχιστον για δύο ρυθμίσεις "ίδια τοποθεσία", "ίδιος γύρος" και "ίδιο έτος".\nΘέλετε να συνεχίσετε και να διαγραφούν οι δίδυμες;} translate G TwinCriteriaConfirm {Scid: Επιβεβαίωση ρυθμίσεων διδύμων} translate G TwinChangeTag "Αλλαγή των ακόλουθων ετικετών παρτίδας:\n\n" translate G AllocRatingDescription "Η εντολή αυτή θα χρησιμοποιήσει το τρέχον αρχείο ορθογραφικού ελέγχου για να προσθέσει βαθμολογίες Elo σε αυτή την βάση δεδομένων. Αν ο παίκτης/παίκτρια δεν έχει τρέχουσα βαθμολογία αλλά η βαθμολογία του/της την στιγμή της παρτίδας εμφανίζεται στο αρχείο ορθογραφικού ελέγχου, αυτή η βαθμολογία θα προστεθεί." translate G RatingOverride "Να αντικατασταθούν οι υπάρχουσες μη-μηδενικές βαθμολογίες;" translate G AddRatings "Προσθήκη βαθμολογίας στον/στην:" translate G AddedRatings {Τ Scid πρόσθεσε $r βαθμούς Elo σε $g παρτίδες.} #Bookmark editor translate G NewSubmenu "Νέο υπομενού" # Comment editor: translate G AnnotationSymbols {Σύμβολα υπομνηματισμούς:} translate G Comment {Σχόλιο:} translate G InsertMark {Εισαγωγή σημαδιού} translate G InsertMarkHelp { Εισαγωγή/απομάκρυνμση σημαδιού: Επιλέξτε χρώμα, είδος, τετράγωνο. Εισαγωγή/απομάκρυνση βέλους: Δεξί πάτημα δύο τετράγνω. } # Nag buttons in comment editor: translate G GoodMove {Καλή κίνηση} translate G PoorMove {Φτωχή κίνηση} translate G ExcellentMove {Εξαίρετη κίνηση} translate G Blunder {Σφάλμα} translate G InterestingMove {Ενδιαφέρουσα κίνηση} translate G DubiousMove {Αμφίβολη κίνηση} translate G WhiteDecisiveAdvantage {Τα Λευκά έχουν αποφασιστικό πλεονέκτημα} translate G BlackDecisiveAdvantage {Τα Μαύρα έχουν αποφασιστικό πλεονέκτημα} translate G WhiteClearAdvantage {Τα Λευκά έχουν σαφές προβάδισμα} translate G BlackClearAdvantage {Τα Μαύρα έχουν σαφές προβάδισμα} translate G WhiteSlightAdvantage {Τα Λευκά έχουν μικρό πλεονέκτημα} translate G BlackSlightAdvantage {Τα Μαύρα έχουν μικρό πλεονέκτημα} translate G Equality {Ισότητα} translate G Unclear {Ασαφής} translate G Diagram {Διάγραμμα} # Board search: translate G BoardSearch {Αναζήτηση σκακιέρας} translate G FilterOperation {Χειρισμός για το τρέχον φίλτρο:} translate G FilterAnd {AND (Περιορισμός φίλτρου)} translate G FilterOr {OR (Προσθήκη στο φίλτρο)} translate G FilterIgnore {IGNORE (Επαναφορά φίλτρου)} translate G SearchType {Ειδος αναζήτησης:} translate G SearchBoardExact {Ακριβής θέση (όλα τα κομμάτια στα ίδια τετράγωνα)} translate G SearchBoardPawns {Πιόνια (ίδιο υλικό, όλα τα πιόνια στα ίδια τετράγωνα)} translate G SearchBoardFiles {Γραμμή (ίδιο υλικό, όλα τα πιόνια στις ίδιες γραμμές)} translate G SearchBoardAny {Οπουδήποτε (ίδιο υλικό, πιόνια και κομμάτια οπουδήποτε)} translate G SearchInRefDatabase {Αναζήτηση στην βάση αναφοράς} translate G LookInVars {Αναζήτηση στις βαριάντες} # Material search: translate G MaterialSearch {Αναζήτηση υλικού} translate G Material {Υλικό} translate G Patterns {Διάταξη} translate G Zero {Μηδέν} translate G Any {Ό,τιδήποτε} translate G CurrentBoard {Τρέχουσα σκακιέρα} translate G CommonEndings {Κοινά φινάλε} translate G CommonPatterns {Κοινές διατάξεις} translate G MaterialDiff {Διαφορά υλικού} translate G squares {τετράγωνα} translate G SameColor {Ιδίου χρώματος} translate G OppColor {Αντίθετου χρώματος} translate G Either {Οποιοδήποτε} translate G MoveNumberRange {Εύρος αριθμού κίνησης} translate G MatchForAtLeast {Να ταιριάζουνβ τουλάχιστον} translate G HalfMoves {μισές κινήσεις} # Common endings in material search: translate G EndingPawns {Φινάλε πιονιών} translate G EndingRookVsPawns {Πύργων εναντίον πιονιών} translate G EndingRookPawnVsRook {Πύργος και 1 Πύργος εναντίον πύργου} translate G EndingRookPawnsVsRook {Πύργος και πιόνι(α) εναντίον Πύργου} translate G EndingRooks {Φινάλε Πύργου εναντίον Πύργου} translate G EndingRooksPassedA {Φινάλε Πύργου εναντίον Πύργου με προχωρημένο α-πιόνι} translate G EndingRooksDouble {Φινάλε διπλού Πύργου} translate G EndingBishops {Φινάλε Αξιωματικού εναντίον Αξιωματικού} translate G EndingBishopVsKnight {Φινάλε Αξιωματικού εναντίον Ίππου} translate G EndingKnights {Φινάλε Ίππου εναντίον Ίππου} translate G EndingQueens {Φινάλε Βασίλισσας εναντίον Βασίλισσας} translate G EndingQueenPawnVsQueen {Βασίλισσα και 1 Πιόνι εναντίον Βασίλισσας} translate G BishopPairVsKnightPair {Μέσον παρτίδας με δύο Αξιωματικούς εναντίον δυο Αξιωματικών} # Common patterns in material search: translate G PatternWhiteIQP {Λευκό ΑΠΒ} translate G PatternWhiteIQPBreakE6 {Λευκό ΑΠΒ: διείσδηση d4-d5 έναντι e6} translate G PatternWhiteIQPBreakC6 {Λευκό ΑΠΒ: διείσδησηW d4-d5 έναντι c6} translate G PatternBlackIQP {Μαύρο ΑΠΒ} translate G PatternWhiteBlackIQP {Λευκό ΑΠΒ εναντίον Μαύρου ΑΠΒ} translate G PatternCoupleC3D4 {Ζεύγος Λευκών πιονιών c3+d4} translate G PatternHangingC5D5 {Μαύρα κρεμασμένα Πιόνια στα c5 και d5} translate G PatternMaroczy {Κέντρο Maroczy (με Πιόνια στα c4 και e4)} translate G PatternRookSacC3 {Θυσία Πύργου στο c3} translate G PatternKc1Kg8 {O-O-O εναντίον O-O (Kc1 εναντίον Kg8)} translate G PatternKg1Kc8 {O-O εναντίον O-O-O (Kg1 εναντίον Kc8)} translate G PatternLightFian {Φιανκέττο λευκού τετραγώνου (Αξιωματικός-g2 εναντίον Αξιωματικού-b7)} translate G PatternDarkFian {Φιανκέττο μαύρου τετραγώνου (Αξιωματικός-b2 εναντίον Αξιωματικού-g7)} translate G PatternFourFian {Τέσσερα Φιανκέττα (Αξιωματικοί στα b2,g2,b7,g7)} # Game saving: translate G Today {Σήμερα} translate G ClassifyGame {Ταξινόμηση παρτίδας} # Setup position: translate G EmptyBoard {Κενή σκακιέρα} translate G InitialBoard {Αρχική σκακιέρα} translate G SideToMove {Πλευρά που παίζει} translate G MoveNumber {Αριθμός κίνησης} translate G Castling {Ροκέ} translate G EnPassantFile {Γραμμή en passant} translate G ClearFen {Καθαρισμός FEN} translate G PasteFen {Επικόληση FEN} translate G SaveAndContinue {Αποθήκευση και συνέχιση} translate G DiscardChangesAndContinue {Ακύρωση αλλαγών \nκαι συνέχιση} translate G GoBack {Προς τα πίσω} # Replace move dialog: translate G ReplaceMove {Αντικατάσταση κίνησης} translate G AddNewVar {Προσθήκη νέας βαριάντας} translate G NewMainLine {Νέα κύρια γραμμή} translate G ReplaceMoveMessage {Υπάρχει ήδη μια κίνηση εδώ. Μπορείτε να την αντικαταστήσετε ακυρώνοντας όλες τις κινήσεις μετά από αυτήν ή να προσθέσετε την κίνησή σας ως νέα βαριάντα. (Μπορείτε να αποφύγετε την εμφάνιση αυτού του μηνύματος στο μέλλον απενεργοποιώντας την επιλογή "Ερώτηση πριν την αντικατάσταση κίνησης" από το μενού Επιλογές:Κινήσεις.)} # Make database read-only dialog: translate G ReadOnlyDialog {Αν δηλώσετε αυτή την βάση δεδομένεν μόνον για ανάγνωση, δεν θα επιτρέπονται οι αλλαγές. Δεν θα μπορούν να αποθηκευθούν ή να αντικατασταθούν παρτίδες και δεν θα μπορούν να αντικατασταθούν οι σημαίες διαγραφής. Κάθε ταξινόμηση ή αποτελέσματα ταξινομημένα κατά ΕCO, θα είναι προσωρινά. Μπορείτε εύκολα να δηλώσετε την βάση δεδομένων και πάλι ως εγγράψιμη, κλείνοντας και ανοίγοντάς την εκ νέου. Θέλετε στ' αλήθεια να γίνει αυτή η βάση μόνον για ανάγνωση;} # Clear game dialog: translate G ClearGameDialog {Η παρτίδα αυτή έχει αντικατασταθεί. Θέλετε στ' αλήθεια να συνεχίσετε και να ακυρώσετε τις αλλαγές που κάνατε σε αυτήν; } # Exit dialog: translate G ExitDialog {Θέλετε στ' αλήθεια να βγείτε από το Scid;} translate G ExitUnsaved {Οι βάσεις δεδομένων που ακολουθούν έχουν μη αποθηκευμένες αλλαγές παρτίδων. Αν βγείτε τώρα οι αλλαγές αυτές θα χαθούν.} # Import window: translate G PasteCurrentGame {Επικόλληση τρέχουσας παρτίδας} translate G ImportHelp1 {Εισάγετε ή επικολλήστε παρτίδα σε μορφη PGN στο παραπάνω πλαίσιο.} translate G ImportHelp2 {Εδώ θα εμφανίζεται οποιοδήποτε σφάλμα κατά την εισαγωγή παρτίδας.} translate G OverwriteExistingMoves {Αντικατάσταση υπαρχόντων κινήσεων;} # ECO Browser: translate G ECOAllSections {όλες οι ενότητες ECO} translate G ECOSection {ενότητας ECO} translate G ECOSummary {Περίληψη της} translate G ECOFrequency {Συχνότητα υποκωδίκων για} # Opening Report: translate G OprepTitle {Έκθεση ανοίγματος} translate G OprepReport {Έκθεση/αναφορά} translate G OprepGenerated {Δημιουργήθηκε από τον/την} translate G OprepStatsHist {Στατιστικά και Ιστορικό} translate G OprepStats {Στατιστικά} translate G OprepStatAll {Όλες οι παρτίδες της αναφοράς} translate G OprepStatBoth {Βαθμολογήθηκαν} translate G OprepStatSince {Από} translate G OprepOldest {Παλαιότερες παρτίδες} translate G OprepNewest {Νεότερες παρτίδες} translate G OprepPopular {Τρέχουσα δημοτικότητα} translate G OprepFreqAll {Συχνότητα σε όλα τα χρόνια: } translate G OprepFreq1 {Από το έτος 1 έως σήμερα: } translate G OprepFreq5 {Από το έτος 5 έως σήμερα: } translate G OprepFreq10 {Από το έτος 10 έως σήμερα: } translate G OprepEvery {μια φορά κάθε %u παρτίδες} translate G OprepUp {%u%s έτη και άνω} translate G OprepDown {%u%s έτη και κάτω} translate G OprepSame {χωρίς αλλαγή σε όλα τα έτη} translate G OprepMostFrequent {Πιο συχνοί παίκτες} translate G OprepMostFrequentOpponents {Πιο συχνοί αντίπαλοι} translate G OprepRatingsPerf {Βαθμολογήσεις και επιδόσεις} translate G OprepAvgPerf {Μέσες βαθμολογήσεις και επιδόσεις} translate G OprepWRating {Βαθμολόγηση Λευκών} translate G OprepBRating {Βαθμολόγηση Μαύρων} translate G OprepWPerf {Επίδοση Λευκών} translate G OprepBPerf {Επίδοση Μαύρων} translate G OprepHighRating {Παρτίδες με υψηλότερη μέση βαθμολόγηση} translate G OprepTrends {Τάσεις αποτελεσμάτων} translate G OprepResults {Μήκη και συχνότητες αποτελεσμάτων} translate G OprepLength {Μήκος παρτίδας} translate G OprepFrequency {Συχνότητα} translate G OprepWWins {Τα Λευκά κερδίζουν: } translate G OprepBWins {Τα Μαύρα κερδίζουν: } translate G OprepDraws {Ισοπαλίες: } translate G OprepWholeDB {ολόκληρη η βάση δεδομένων} translate G OprepShortest {Οι συντομότερες νίκες} translate G OprepMovesThemes {Κινήσεις και Θέματα} translate G OprepMoveOrders {Σειρές κινήσεων που καταλήγουν στην θέση} translate G OprepMoveOrdersOne \ {Υπάρχει μόνο μια σειρά κινήσεων που καταλήγει στην θέση αυτή:} translate G OprepMoveOrdersAll \ {Υπάρχουν %u σειρές κινήσεων που καταλήγουν στην θέση αυτή:} translate G OprepMoveOrdersMany \ {Υπάρχουν %u σειρές κινήσεων που καταλήγουν στην θέση αυτή. Οι πρώτες %u είναι:} translate G OprepMovesFrom {Κινήσεις από την θέση} translate G OprepMostFrequentEcoCodes {Συχνότεροι κωδικοί ECO} translate G OprepThemes {Θέματα θέσης} translate G OprepThemeDescription {Συχνότητα θεμάτων κατά τις πρώτες %u κινήσεις κάθε παρτίδας} translate G OprepThemeSameCastling {Ομόπλευρα ροκέ} translate G OprepThemeOppCastling {Αντίθετα ροκέ} translate G OprepThemeNoCastling {Και οι δυο Βασιλιάδες χωρίς ροκέ} translate G OprepThemeKPawnStorm {Επίθεση πιονιών Βασιλιά} translate G OprepThemeQueenswap {Ανταλλαγή Βασιλισσών} translate G OprepThemeWIQP {Λευκό απομονωμένο πιόνι Βασίλισσας} translate G OprepThemeBIQP {Μαύρο απομονωμένο πιόνι Βασίλισσας} translate G OprepThemeWP567 {Λευκό πιόνι στην 5/6/7η σειρά} translate G OprepThemeBP234 {Μαύρο πιόνι στην 2/3/4η σειρά} translate G OprepThemeOpenCDE {Ανοικτή Open c/d/e στήλη} translate G OprepTheme1BishopPair {Μόνον η μια πλευρά διαθέτει ζεύγος Αξιωματικών} translate G OprepEndgames {Φινάλε} translate G OprepReportGames {Αναφορά παρτίδων} translate G OprepAllGames {Όλες οι παρτίδες} translate G OprepEndClass {Υλικό στο τέλος κάθε παρτίδας} translate G OprepTheoryTable {Πίνακας ανοιγμάτων} translate G OprepTableComment {Δημιουργήθηκε από τις %u με την υψηλότερη βαθμολογία.} translate G OprepExtraMoves {Επιπλέον κινήσεις στις σημειώσεις του πίνακα ανοιγμάτων} translate G OprepMaxGames {Μέγιστος αριθμός παρτίδων στον πίνακα ανοιγμάτων} translate G OprepViewHTML {Εμφάνιση HTML} translate G OprepViewLaTeX {Εμφάνιση LaTeX} # Player Report: translate G PReportTitle {Έκθεση παίκτη} translate G PReportColorWhite {με τα Λευκά κομμάτια} translate G PReportColorBlack {με τα Μαύρα κομμάτια} translate G PReportMoves {μετά από %s} translate G PReportOpenings {Ανοίγματα} translate G PReportClipbase {Διαγραφή της προσωρινής μνήμης clipbase και αντιγραφή σε αυτήν των παρτίδων που ταιριάζουν} # Piece Tracker window: translate G TrackerSelectSingle {Το αριστερό πλήκτρο του ποντικιού επιλέγει το κομμάτι αυτό.} translate G TrackerSelectPair {Το αριστερό πλήκτρο του ποντικιού επιλέγει το κομμάτι αυτό, το δεξιό πλήκτρο επιλέγει το ταίρι του.} translate G TrackerSelectPawn {Το αριστερό πλήκτρο επιλέγει το πιόνι αυτό, το δεξιό πλήκτρο επιλέγει και τα 8 πιόνια.} translate G TrackerStat {Στατιστικά} translate G TrackerGames {% παρτίδες με κίνηση στο τετράγωνο} translate G TrackerTime {% χρόνο σε κάθε τετράγωνο} translate G TrackerMoves {Κινήσεις} translate G TrackerMovesStart {Εισάγετε τον αριθμό της κίνησης από την οποία θα ξεκινήσει η ανίχνευση.} translate G TrackerMovesStop {Εισάγετε τον αριθμό της κίνησης στην οποία θα σταματήσει η ανίχνευση.} # Game selection dialogs: translate G SelectAllGames {Όλες οι παρτίδες της βάσης δεδομένων} translate G SelectFilterGames {Μόνο παρτίδες στο φίλτρο} translate G SelectTournamentGames {Μόνο παρτίδες του προκριματικού} translate G SelectOlderGames {Μόνο παλαιότερες παρτίδες} # Delete Twins window: translate G TwinsNote {Για να είναι δίδυμες, δυο παρτίδες πρέπει να έχουν τουλάχιστον τους ίδιους παίκτες και τα κριτήρια που θα ορίσετε πιο κάτω. Όταν εντοπίζεται κάποιο ζεύγος δίδυμων, η μικρότερης διάρκειας παρτίδα διαγράφεται. Συμβουλή: πρέπει να ελέγχετε την ορθογραφία της βάσης δεδομένων πριν διαγράψετε δίδυμες παρτίδες, διότι βελτιώνει τον εντοπισμό τους.} translate G TwinsCriteria {Κριτήρια: Οι δίδυμες παρτίδες πρέπει να διαθέτουν...} translate G TwinsWhich {Εξέταση ποιάς παρτίδας} translate G TwinsColors {Με παίκτη ιδίου χρώματος;} translate G TwinsEvent {Με ίδια διοργάνωση;} translate G TwinsSite {Με ίδια τοποθεσία;} translate G TwinsRound {Με ίδιο γύρο;} translate G TwinsYear {Με ίδιο έτος;} translate G TwinsMonth {Με ίδιο μήνα;} translate G TwinsDay {Με ίδια ημέρα;} translate G TwinsResult {Με ίδιο αποτέλεσμα;} translate G TwinsECO {Με ίδιο κωδικό ECO;} translate G TwinsMoves {Με ίδιες κινήσεις} translate G TwinsPlayers {Σύγκριση ονομάτων παικτών:} translate G TwinsPlayersExact {Ταιριάζουν ακριβώς} translate G TwinsPlayersPrefix {Μόνο τα 4 πρώτα γράμματα} translate G TwinsWhen {Όταν διαγράφονται δίδυμες παρτίδες} translate G TwinsSkipShort {Να αγνοούνται όλες οι παρτίδες με μήκος μικρότερο των 5 κινήσεων;} translate G TwinsUndelete {Πρώτα να διαγραφούν όλες οι παρτίδες;} translate G TwinsSetFilter {Να μπουν φίλτρα σε όλες τις διαγραμμένες δίδυμες παρτίδες;} translate G TwinsComments {Πάντοτε διατήρηση των παρτίδων με σχόλια;} translate G TwinsVars {Πάντοτε διατήρηση των παρτίδων με βαριάντες;} translate G TwinsDeleteWhich {Διαγραφή της παρτίδας:} translate G TwinsDeleteShorter {Συντομότερη παρτίδα} translate G TwinsDeleteOlder {Ο μικρότερος αριθμός παρτίδας} translate G TwinsDeleteNewer {Ο μεγαλύτερος αριθμός παρτίδας} translate G TwinsDelete {Διαγραφή παρτίδας} # Name editor window: translate G NameEditType {Τύπος του προς επεξεργασία ονόματος} translate G NameEditSelect {Παρτίδες για επεξεργασία} translate G NameEditReplace {Αντικατάσταση} translate G NameEditWith {με} translate G NameEditMatches {Ταιριάσματα: Για επιλογή, πατήστε Ctrl+1 έως Ctrl+9} # Check games window: translate G CheckGames {Έλεγχος παρτίδων} translate G CheckGamesWhich {Έλεγχος παρτίδων} translate G CheckAll {Όλες οι παρτίδες} translate G CheckSelectFilterGames {Μόνον οι παρτίδες του φίλτρου} # Classify window: translate G Classify {Ταξινόμηση} translate G ClassifyWhich {Ταξινόμηση κατά ECO των εξής παρτίδων} translate G ClassifyAll {Όλες οι παρτίδες (αντικατάσταση των παλαιών κωδίκων κατά ECO)} translate G ClassifyYear {Όλες οι παρτίδες που παίχτηκαν την προηγούμενη χρονιά} translate G ClassifyMonth {Όλες οι παρτίδες που παίχτηκαν τον προηγούμενο μήνα} translate G ClassifyNew {Μόνον παρτίδες χωρίς ακόμη κώδικα ECO} translate G ClassifyCodes {Κωδικοί ECO προς χρήση} translate G ClassifyBasic {Μόνον βασικοί κωδικοί ("B12", ...)} translate G ClassifyExtended {Επεκτάσεις Scid ("B12j", ...)} # Compaction: translate G NameFile {Αρχείο ονομάτων} translate G GameFile {Αρχείο παρτίδων} translate G Names {Ονόματα} translate G Unused {Μη χρησιμοποιημένα} translate G SizeKb {Μέγεθος (kb)} translate G CurrentState {Τρέχουσα κατάσταση} translate G AfterCompaction {Μετά την συμπίεση} translate G CompactNames {Συμπιεσμένο αρχείο ονομάτων} translate G CompactGames {Συμπιεσμένο αρχείο παρτίδων} translate G NoUnusedNames "Δεν υπάρχουν ονόματα που δεν χρησιμοποιούνται, γι' αυτό το αρχείο ονομάτων είναι πλήρως συμπιεσμένο." translate G NoUnusedGames "Το αρχείο παρτίδων είναι ήδη πλήρως συμπιεσμένο." translate G NameFileCompacted {Το αρχείο ονομάτων για την βάση δεδομένων "[file tail [sc_base filename]]" συμπιέστηκε.} translate G GameFileCompacted {Το αρχείο παρτίδων για την βάση δεδομένων "[file tail [sc_base filename]]" συμπιέστηκε.} # Sorting: translate G SortCriteria {Κριτήρια} translate G AddCriteria {Προσθήκη κριτηρίων} translate G CommonSorts {Κοινές ταξινομήσεις} translate G Sort {Ταξινόμηση} # Exporting: translate G AddToExistingFile {Να προστεθούν οι παρτίδες σε υπάρχον αρχείο;} translate G ExportComments {Να εξαχθούν τα σχόλια;} translate G ExportVariations {Να εξαχθούν οι βαριάντες} translate G IndentComments {Να έχουν εσοχές τα σχόλια;} translate G IndentVariations {Να έχουν εσοχές οι βαριάντες;} translate G ExportColumnStyle {Είδος στήλης (μια κίνηση ανά γραμμή);} translate G ExportSymbolStyle {Είδος συμβολικού υπομνηματισμού:} translate G ExportStripMarks {Να απομακρυνθούν τα σημάδια τετραγώνου/βέλους από τα σχόλια;} # Goto game/move dialogs: translate G LoadGameNumber {Εισάγετε τον αριθμό παρτίδας για φόρτωση:} translate G GotoMoveNumber {Μετάβαση στην κίνηση αριθμός:} # Copy games dialog: translate G CopyGames {Αντιγραφή παρτίδων} translate G CopyConfirm { Θέλετε πράγματι να αντιγράψετε τις [::utils::thousands $nGamesToCopy] φιλτραρισμένες παρτίδες της βάσης δεδομένων "$fromName" στην βάση δεδομένων "$targetName"; } translate G CopyErr {Αδύνατη η αντιγραφή των παρτίδων} translate G CopyErrSource {η αρχική βάση δεδομένων} translate G CopyErrTarget {η τελική βάση δεδομένων} translate G CopyErrNoGames {δεν διαθέτει παρτίδες στο φίλτρο της} translate G CopyErrReadOnly {είναι μόνον για ανάγνωση} translate G CopyErrNotOpen {δεν είναι ανοικτή} # Colors: translate G LightSquares {Λευκά τετράγωνα} translate G DarkSquares {Μαύρα τετράγωνα} translate G SelectedSquares {Επιλεγμένα τετράγωνα} translate G SuggestedSquares {Τετράγωνα που προτείνονται για την κίνηση} translate G WhitePieces {Λευκά κομμάτια} translate G BlackPieces {Μαύρα κομμάτια} translate G WhiteBorder {Λευκό περίγραμμα} translate G BlackBorder {Μαύρο περίγραμμα} # Novelty window: translate G FindNovelty {Εύρεση νεοτερισμού} translate G Novelty {Νεοτερισμός} translate G NoveltyInterrupt {Η αναζήτηση νεοτερισμού διακόπηκε} translate G NoveltyNone {Δεν βρέθηκε νεοτερισμός για αυτή την παρτίδα} translate G NoveltyHelp { Το Scid θα βρει την πρώτη κίνηση της τρέχουσας παρτίδας η οποία καταλήγει σε θέση που δεν υπάρχει στην επιλεχθείσα βάση δεδομένων ή στο βιβλίο ECO των ανοιγμάτων. } # Sounds configuration: translate G SoundsFolder {Κατάλογος αρχείων ήχου} translate G SoundsFolderHelp {Ο κατάλογος πρέπει να περιέχει τα αρχεία King.wav, a.wav, 1.wav, κλπ.} translate G SoundsAnnounceOptions {Επιλογές αναγγελίας κίνησης} translate G SoundsAnnounceNew {Αναγγελία των νέων κινήσεων καθώς εκτελούνται} translate G SoundsAnnounceForward {Αναγγελία όταν πρόκειται για μια κίνηση προς τα εμπρός} translate G SoundsAnnounceBack {Αναγγελία όταν πρόκειται για αναδρομή ή για κίνηση προς τα πίσω} # Upgrading databases: translate G Upgrading {Ενημέρωση} translate G ConfirmOpenNew { Αυτή η βάση δεδομένων είναι παλαιάς μορφής (Scid 3) την οποία δεν μπορεί να ανοίξει το Scid 4, αλλά έχει ήδη δημιουργηθεί μια έκδοσή της νέας μορφής (Scid 4). Θέλετε να ανοίξετε την βάση δεδομένων νέας μορφής; } translate G ConfirmUpgrade { Αυτή η βάση δεδομένων είναι παλαιάς μορφής (Scid 3). Πρέπει να δημιουργηθεί μια βάση νέας μορφής για το Scid 4. Η ανανέωση θα δημιουργήσει μια νέα έκδοση της βάσης δεδομένων και κατόπιν θα διαγράψει τα αρχικά αρχεία. Αυτό ίσως διαρκέσει λίγο χρόνο, αλλά θα χρειαστεί να το κάνετε μόνο μια φορά. Μπορείτε να ακυρώσετε την διαδικασία αν διαρκεί πάρα πολύ. Θέλετε να ενημερώσετε αυτή την βάση δεδομένων τώρα; } # Recent files options: translate G RecentFilesMenu {Πλήθος των πρόσφατων αρχείων του μενού Αρχείο} translate G RecentFilesExtra {Πλήθος των πρόσφατων αρχείων του επιπλέον υπομενού} # My Player Names options: translate G MyPlayerNamesDescription { Δημιουργήστε παρακάτω μια λίστα των ονομάτων των προτιμόμενων παικτών, ένα για κάθε γραμμή. Τα συμβολα μπαλαντέρ (π.χ. "?" για κάνε έναν μοναδικό χαρακτήρα, "*" για οποιαδήποτε ακολουθία χαρακτήρων) επιτρέπονται. Κάθε φορά που θα φορτώνεται μια παρτίδα με παίκτη που υπάρχειστην λίστα, αν είναι απαραίτητο η σκακιέρα του κυρίως παραθύρου θα περιστρέφεται ώστε η παρτίδα να προβάλεται από την μεριά αυτού του παίκτη. } #Coach translate G showblunderexists {εμφάνιση ότι το σφάλμα υπάρχει} translate G showblundervalue {εμφάνιση της αξίας του σφάλματος} translate G showscore {εμφάνιση σκορ} translate G coachgame {διδασκαλία παρτίδας} translate G configurecoachgame {Προσαρμογή τακτικής παρτίδας} translate G configuregame {Προσαρμογή παρτίδας} translate G Phalanxengine {Μηχανή Phalanx} translate G Coachengine {Μηχανή Coach} translate G difficulty {δυσκολία} translate G hard {δύσκολη} translate G easy {εύκολη} translate G Playwith {Παιχνίδι με} translate G white {λευκά} translate G black {μαύρα} translate G both {και τα δυο} translate G Play {Παιχνίδι} translate G Noblunder {Χωρίς σφάλματα} translate G blunder {σφάλμα} translate G Noinfo {-- Καμια πληροφορία --} translate G PhalanxOrTogaMissing {Δεν βρέθηκε Phalanx ή Toga} translate G moveblunderthreshold {η κίνηση είναι σφάλμα αν η απώλεια είναι μεγαλύτερη από} translate G limitanalysis {περιορισμός του χρόνου ανάλυσης της μηχανής} translate G seconds {δευτερόλεπτα} translate G Abort {Ματαίωση} translate G Resume {Επανάληψη} translate G OutOfOpening {Εκτός ανοίγματος} translate G NotFollowedLine {Δεν ακολοθήσατε την γραμμή} translate G DoYouWantContinue {Θέλετε να συνεχίσετε;} translate G CoachIsWatching {Ο προπονητής παρακολουθεί} translate G Ponder {Μόνιμη σκέψη} translate G LimitELO {Περιορισμός της δύναμης ELO} translate G DubiousMovePlayedTakeBack {Η κίνηση που παίχτηκε είναι αμφίβολη, θέλετε να την αναιρέσετε;} translate G WeakMovePlayedTakeBack {Η κίνηση που παίχτηκε είναι αδύναμη, θέλετε να την αναιρέσετε;} translate G BadMovePlayedTakeBack {Η κίνηση που παίχτηκε είναι κακή, θέλετε να την αναιρέσετε;} translate G Iresign {Παραιτούμαι} translate G yourmoveisnotgood {η κίνησή σας δεν είναι καλή} translate G EndOfVar {Τέλος βαριάντας} translate G Openingtrainer {Προπόνηση ανοιγμάτων} translate G DisplayCM {Εμφάνιση υποψήφιων κινήσεων} translate G DisplayCMValue {Εμφάνιση των αξιών των υποψήφιων κινήσεων} translate G DisplayOpeningStats {Εμφάνιση στατιστικών} translate G ShowReport {Εμφάνιση έκθεσης} translate G NumberOfGoodMovesPlayed {οι καλές κινήσεις που παίχτηκαν} translate G NumberOfDubiousMovesPlayed {οι αμφίβολες κινήσεις που παίχτηκαν} translate G NumberOfMovesPlayedNotInRepertoire {οι κινήσεις που παίχτηκαν δεν υπάρχουν στο ρεπερτόριο} translate G NumberOfTimesPositionEncountered {φορές εμφάνισης της θέσης} translate G PlayerBestMove {Να επιτρέπονται μόνον οι καλύτερες κινήσεις} translate G OpponentBestMove {Ο αντίπαλος παίζει τις καλύτερες κινήσεις} translate G OnlyFlaggedLines {Μόνον γραμμές με σημαίες} translate G resetStats {Μηδενισμός στατιστικών} translate G Repertoiretrainingconfiguration {Προσαρμογή προπόνησης ρεπερτορίου} translate G Loadingrepertoire {Φόρτωση ρεπερτορίου} translate G Movesloaded {Κινήσεις που φορτώθηκαν} translate G Repertoirenotfound {Το ρεπερτόριο δεν βρέθηκε} translate G Openfirstrepertoirewithtype {Πρώτα άνοιγμα μιας βάσης δεδομένων ρεπερτορίου με την εικόνα ή/και τον τύπο τοποθετημένη στην δεξιά πλευρά} translate G Movenotinrepertoire {Η κίνηση δεν υπάρχει στο ρεπερτόριο} translate G PositionsInRepertoire {Θέσεις στο ρεπερτόριο} translate G PositionsNotPlayed {Θέσεις που δεν παίχτηκαν} translate G PositionsPlayed {Θέσεις που παίχτηκαν} translate G Success {Επιτυχία} translate G DubiousMoves {Αμφίβολες κινήσεις} translate G OutOfRepertoire {Εκτός ρεπερτορίου} translate G ConfigureTactics {Προσαρμογή τακτικής} translate G ResetScores {Μηδενισμός σκορ} translate G LoadingBase {Φόρτωση βάσης} translate G Tactics {Τακτική} translate G ShowSolution {Εμφάνιση λύσης} translate G NextExercise {Επόμενη άσκηση} translate G PrevExercise {Προηγούμενη άσκηση} translate G StopTraining {Διακοπή προπόνησης} translate G Next {Επόμενο} translate G ResettingScore {Μηδενισμός σκορ} translate G LoadingGame {Φόρτωση παρτίδας} translate G MateFound {Βρέθηκε ματ} translate G BestSolutionNotFound {Δεν βρέθηκε βέλτιστη λύση !} translate G MateNotFound {Δεν βρέθηκε ματ} translate G ShorterMateExists {Υπάρχει συντομότερο ματ} translate G ScorePlayed {Score played} translate G Expected {αναμενόμενη} translate G ChooseTrainingBase {Επιλογή προπονητικής βάσης δεδομένων} translate G Thinking {Ανάλυση} translate G AnalyzeDone {Η ανάλυση ολοκληρώθηκε} translate G WinWonGame {Κερδισμένη παρτίδα} translate G Lines {Γραμμές} translate G ConfigureUCIengine {Προσαρμογή μηχανής UCI} translate G SpecificOpening {Συγκεκριμένο άνοιγμα} translate G StartNewGame {Έναρξη νέας παρτίδας} translate G FixedLevel {Σταθερό επίπεδο} translate G Opening {Άνοιγμα} translate G RandomLevel {Τυχαίο επίπεδο} translate G StartFromCurrentPosition {Εκκίνηση από την τρέχουσα θέση} translate G FixedDepth {Σταθερού βάθους} translate G Nodes {Κόμβοι} translate G Depth {Βάθος} translate G Time {Χρόνος} translate G SecondsPerMove {Δευτερόλεπτα ανά κίνηση} translate G Engine {Μηχανή} translate G TimeMode {Λειτουργία χρόνου} translate G TimeBonus {Χρόνος + δώρο} translate G TimeMin {min} translate G TimeSec {sec} translate G AllExercisesDone {Ολοκληρώθηκαν όλες οι ασκήσεις} translate G MoveOutOfBook {Κίνηση εκτός βιβλίου} translate G LastBookMove {Κίνηση τελευταίου βιβλίου} translate G AnnotateSeveralGames {Υπομνηματισμός πολλαπλών παρτίδων \nαπό την τρέχουσα σε :} translate G FindOpeningErrors {Εύρεση σφαλμάτων ανοιγμάτων} translate G MarkTacticalExercises {Σημάδεμα ασκήσεων τακτικής} translate G UseBook {Χρήση του βιβλίου} translate G MultiPV {Πολλαπλές βαριάντες} translate G Hash {Μνήμη κατατεμαχισμού (hash)} translate G OwnBook {Χρήση του βιβλίου της μηχανής} translate G BookFile {Βιβλίο ανοιγμάτων} translate G AnnotateVariations {Υπομνηματισμός βαριαντών} translate G ShortAnnotations {Σύντομος υπομνηματισμός} translate G addAnnotatorTag {Προσθήκη εκτικέτας του υπομνηματιστή} translate G AddScoreToShortAnnotations {Προσθήκη σκορ στους υπομνηματισμούς} translate G Export {Εξαγωγή} translate G BookPartiallyLoaded {Το βιβλίο φορτώθηκε μερικώς} translate G Calvar {Υπολογισμο βαριαντών} translate G ConfigureCalvar {Προσαρμογή} # Opening names used in tacgame.tcl translate G Reti {Reti} translate G English {Αγγλική} translate G d4Nf6Miscellaneous {1.d4 Nf6 Διάφορες άλλες} translate G Trompowsky {Trompowsky} translate G Budapest {Βουδαπέστης} translate G OldIndian {Παλαιά Ινδική} translate G BenkoGambit {Γκαμπί Benko} translate G ModernBenoni {Σύγχρονη Benoni} translate G DutchDefence {Ολλανδική άμυνα} translate G Scandinavian {Σκανδιναβική} translate G AlekhineDefence {Άμυνα Αλιέχιν} translate G Pirc {Pirc} translate G CaroKann {Caro-Kann} translate G CaroKannAdvance {Caro-Kann Advance} translate G Sicilian {Σικελική} translate G SicilianAlapin {Σικελική Αλάπιν} translate G SicilianClosed {Σικελική Κλειστή} translate G SicilianRauzer {Σικελική Rauzer} translate G SicilianDragon {Σικελικός Δράκος} translate G SicilianScheveningen {Σικελική Σεβενίγκεν} translate G SicilianNajdorf {Sicilian Νάιντορφ} translate G OpenGame {Ανοικτή παρτίδα} translate G Vienna {Βιέννη} translate G KingsGambit {Γκαμπί του Βασιλιά} translate G RussianGame {Ρωσική παρτίδα} translate G ItalianTwoKnights {Ιταλική/Δυο Ίππων} translate G Spanish {Ισπανική} translate G SpanishExchange {Ισπανική Ανταλλαγής} translate G SpanishOpen {Ισπανικό άνοιγμα} translate G SpanishClosed {Ισπανική Κλειστή} translate G FrenchDefence {Γαλλική Άμυνα} translate G FrenchAdvance {Γαλλική Advance} translate G FrenchTarrasch {Γαλλική Τάρρας} translate G FrenchWinawer {Γαλλική Γουίναγουερ} translate G FrenchExchange {Γαλλική Ανταλλαγής} translate G QueensPawn {Πιόνι Βασίλισσας} translate G Slav {Σλαβική} translate G QGA {Γκαμπί της Βασίλισσας Αποδεκτό (QGA)} translate G QGD {Γκαμπί της Βασίλισσας μη Αποδεκτό (QGD)} translate G QGDExchange {Γκαμπί της Βασίλισσας μη Αποδεκτό Ανταλλαγής} translate G SemiSlav {Ημι-Σλαβική} translate G QGDwithBg5 {Γκαμπί της Βασίλισσας μη Αποδεκτό με Bg5} translate G QGDOrthodox {Ορθόδοξο Γκαμπί της Βασίλισσας μη Αποδεκτό} translate G Grunfeld {Γρκύνφελντ} translate G GrunfeldExchange {Γκρύνφελντ Ανταλλαγής} translate G GrunfeldRussian {Γκρύνφελντ Ρωσική} translate G Catalan {Καταλανική} translate G CatalanOpen {Καταλανική Ανοικτή} translate G CatalanClosed {Καταλανική Κλειστή} translate G QueensIndian {Ινδική της Βασίλισσας} translate G NimzoIndian {Νιμτσοϊνδική} translate G NimzoIndianClassical {Κλασσική Νιμτσοϊνδική} translate G NimzoIndianRubinstein {Νιμτσοϊνδική Ρουμπινστάιν} translate G KingsIndian {Ινδική του Βασιλιά} translate G KingsIndianSamisch {Ινδική του Βασιλιά Σέμις} translate G KingsIndianMainLine {Κύρια Γραμμή Ινδικής του Βασιλιά} # FICS translate G ConfigureFics {Προσαρμογή FICS} translate G FICSGuest {Σύνδεση ως Καλεσμένος/η} translate G FICSServerPort {Θύρα Διακομηστή} translate G FICSServerAddress {Διεύθυνση IP} translate G FICSRefresh {Ανανέωση} translate G FICSTimesealPort {Θύρα Timeseal} translate G FICSSilence {Φίλτρο κονσόλας} translate G FICSOffers {Προσφορές} translate G FICSConsole {Κονσόλα} translate G FICSGames {Παρτίδες} translate G FICSUnobserve {Διακοπή παρακολούθησης παρτίδας} translate G FICSProfile {Εμφάνιση του ιστορικού και του προφίλ σας} translate G FICSRelayedGames {Αναμεταδιδόμενες παρτίδες} translate G FICSFindOpponent {Εύρεση αντιπάλου} translate G FICSTakeback {Αναίρεση} translate G FICSTakeback2 {Αναίρεση 2} translate G FICSInitTime {Αρχικός χρόνος (min)} translate G FICSIncrement {Προσαύξηση (sec)} translate G FICSRatedGame {Παρτίδα βαθμολόγησης} translate G FICSAutoColour {αυτόματο} translate G FICSManualConfirm {χειροκίνηση επιβεβαίωση} translate G FICSFilterFormula {Φίλτρο με φόρμουλα} translate G FICSIssueSeek {Αναζήτηση τεύχους} translate G FICSChallenge {Πρόκληση} translate G FICSAccept {αποδεκτή} translate G FICSDecline {μη αποδεκτή} translate G FICSColour {Χρώμα} translate G FICSSend {αποστολή} translate G FICSConnect {Σύνδεση} translate G FICSdefaultuservars {Χρήση αρχικών μεταβλητών} translate G FICSObserveconfirm {Θέλετε να παρακολουθήσετε την παρτίδα} # Game review translate G GameReview {Επισκόπηση παρτίδας} translate G GameReviewTimeExtended {Ο χρόνος επεκτάθηκε} translate G GameReviewMargin {Περιθώριο λάθους} translate G GameReviewAutoContinue {Αυτόματη συνέχιση όταν η κίνηση είναι σωστή} translate G GameReviewReCalculate {Χρήση εκτεταμένου χρόνου} translate G GameReviewAnalyzingMovePlayedDuringTheGame {Γίνεται ανάλυση της κίνησης που παίχτηκε κατά την διάρκεια της παρτίδας} translate G GameReviewAnalyzingThePosition {Γίνεται ανάλυση της θέσης} translate G GameReviewEnterYourMove {Εισάγετε την κίνησή σας} translate G GameReviewCheckingYourMove {Ελέγχεται η κίνησή σας} translate G GameReviewYourMoveWasAnalyzed {Η κίνησή σας αναλύθηκε} translate G GameReviewYouPlayedSameMove {Παίξατε την ίδια κίνηση όπως και στο ματς} translate G GameReviewScoreOfYourMove {Το σκορ της κίνησής σας} translate G GameReviewGameMoveScore {Το σκορ κίνησης της παρτίδας} translate G GameReviewEngineScore {Το σκορ της μηχανής} translate G GameReviewYouPlayedLikeTheEngine {Παίξατε το ίδιο καλά με την μηχανή} translate G GameReviewNotEngineMoveButGoodMove {Η κίνηση δεν είναι της μηχανής, αλλά είναι μια καλή κίνηση} translate G GameReviewMoveNotGood {Η κίνηση αυτή δεν είναι καλή, το σκορ είναι} translate G GameReviewMovesPlayedLike {Κινήσεις που παίχτηκαν σαν} translate G GameReviewMovesPlayedEngine {Κινήσεις που παίχτηκαν σαν της μηχανής} # Correspondence Chess Dialogs: translate G CCDlgConfigureWindowTitle {Προσαρμογή Σκακιού Δι' αλληλογραφίας} translate G CCDlgCGeneraloptions {Γενκές επιλογές} translate G CCDlgDefaultDB {Αρχική Βάση δεδομένων:} translate G CCDlgInbox {ΕισερχόμεναInbox (διαδρομή):} translate G CCDlgOutbox {Εξερχόμενα (διαδρομή):} translate G CCDlgXfcc {Παραμετροποίηση Xfcc:} translate G CCDlgExternalProtocol {Χειριστής Εξωτερικού Πρωτοκόλου (π.χ. Xfcc)} translate G CCDlgFetchTool {Εργαλείο ανάκτησης:} translate G CCDlgSendTool {Εργαλείο αποστολής:} translate G CCDlgEmailCommunication {Επικοινωνία eMail} translate G CCDlgMailPrg {Πρόγραμμα αλληλογραφίας:} translate G CCDlgBCCAddr {Διεύθυνση (B)CC:} translate G CCDlgMailerMode {Λειτουργία:} translate G CCDlgThunderbirdEg {π.χ. Thunderbird, Mozilla Mail, Icedove...} translate G CCDlgMailUrlEg {π.χ. Evolution} translate G CCDlgClawsEg {π.χ. Sylpheed Claws} translate G CCDlgmailxEg {π.χ. mailx, mutt, nail...} translate G CCDlgAttachementPar {Παράμτερος επισυναπτόμενου:} translate G CCDlgInternalXfcc {Χρήση της εσωτερικής υποστήριξης Xfcc} translate G CCDlgConfirmXfcc {Επιβεβαίωση κινήσεων} translate G CCDlgSubjectPar {Παράμετρος Θέματος:} translate G CCDlgDeleteBoxes {Κενό Εισ/Εξερχόμενα} translate G CCDlgDeleteBoxesText {Θέλετε πράγματι να αδειάσετε τους καταλόγους Εισερχομένων και Εξερχομένων;\nΚάτι τέτοιο απαιτεί έναν νέο συγχρονισμός για να εμφανιστεί η πρόσφατη κατάσταση των παρτίδων σας.} translate G CCDlgConfirmMove {Επιβεβαίωση κίνησης} translate G CCDlgConfirmMoveText {Αν επιβεβαιώσετε, θα σταλούν στον διακομηστή η ακόλουθη κίνηση και το ακόλουθο σχόλιο:} translate G CCDlgDBGameToLong {Αντιφατική Mainline} translate G CCDlgDBGameToLongError {Η mainline της βάσης δεδομένων σας είναι μεγαλύτερη από ό,τι η παρτίδα στα Εισερχόμενά σας. Αν τα Εισερχόμενα περιέχουν τρέχουσες παρτίδες, δηλαδή, αμέσως μετά από έναν συγχρονισμός, κάποιες κινήσεις προστέθηκαν στην mainline της βάσης δεδομένων με τρόπο λανθασμένο. Στην περίπτωση αυτή συντομεύστε την mainline στην κίνηση (μέγιστο) } translate G CCDlgStartEmail {Έναρξη νέας παρτίδας με eMail} translate G CCDlgYourName {Το όνομά σας:} translate G CCDlgYourMail {Η ηλ. διεύθυνσή σας:} translate G CCDlgOpponentName {Όνομα αντιπάλου:} translate G CCDlgOpponentMail {Ηλ. διεύθυνση αντιπάλου:} translate G CCDlgGameID {Ταυτότητα παρτίδας (μοναδική):} translate G CCDlgTitNoOutbox {Scid: Εξερχόμενα Σκακιού Δι' Αλληλογραφίας} translate G CCDlgTitNoInbox {Scid: Εισερχόμενα Σκακιού Δι' Αλληλογραφίας} translate G CCDlgTitNoGames {Scid: Δεν υπάρχουν παρτίδες δι' αλληλογραφίας} translate G CCErrInboxDir {Κατάλογος εισερχομένων σκακιού δι' αλληλογραφίας:} translate G CCErrOutboxDir {Κατάλογος εξερχομένων σκακιού δι' αλληλογραφίας:} translate G CCErrDirNotUsable {δεν υπάρχει ή δεν είναι προσβάσιμος!\nΠαρακαλώ ελέγξτε και διορθώστε τις ρυθμίσεις.} translate G CCErrNoGames {does not contain any games!\nPlease fetch them first.} translate G CCDlgTitNoCCDB {Scid: Δεν υπάρχει βάση δεδομένων αλληλογραφίας} translate G CCErrNoCCDB {Δεν ανοίχτηκε κάποια βάση δεδομένων τύπου 'Αλληλογραφία'. Παρακαλώ ανοίξτε μια πριν χρησιμοποιήσετε τις λειτουργίες σκακιού δι' αλληλογραφίας.} translate G CCFetchBtn {Ανάκτηση παρτίδων από τον διακομηστή και επεξεργασία Εισερχομένων} translate G CCPrevBtn {Μετάβαση σε προηγούμενη παρτίδα} translate G CCNextBtn {Μετάβαση σε επόμενη παρτίδα} translate G CCSendBtn {Αποστολή κίνησης} translate G CCEmptyBtn {Εκκένωση Εισερχομένων και Εξερχομένων} translate G CCHelpBtn {Βοήθεια για τα εικονίδια και τους δείκτες κατάστασης.\nΓια γενική Βοήθεια πατήστε F1!} translate G CCDlgServerName {ΌΝομα διακομηστή:} translate G CCDlgLoginName {Όνομα σύνδεσης:} translate G CCDlgPassword {Κωδικός:} translate G CCDlgURL {Xfcc-URL:} translate G CCDlgRatingType {Τύπως αξιολόγησης:} translate G CCDlgDuplicateGame {Μη μοναδική ταυτότητα παρτίδας} translate G CCDlgDuplicateGameError {Η παρτίδα αυτή υπάρχει περισσότερες από μια φορές στην βάση δεδομένων σας. Παρακαλώ διαγράψτε τις διπλότυπες και συμπιέστε το αρχείο παρτίδων σας (Αρχείο/Συντήρηση/Συμπίεση βάσης δεδομένων).} translate G CCDlgSortOption {Ταξινόμηση:} translate G CCDlgListOnlyOwnMove {Μόνον παρτίδες στις οποίες παίζω εγώ} translate G CCOrderClassicTxt {Τοποθεσία, Διοργάνωση, Γύρος, Αποτέλεσμα, Λευκά, Μαύρα} translate G CCOrderMyTimeTxt {Το ρολόι μου} translate G CCOrderTimePerMoveTxt {Χρόνος ανά κίνηση μέχρι τον επόμενο έλεγχο χρόνου} translate G CCOrderStartDate {Ημερομηνία έναρξης} translate G CCOrderOppTimeTxt {Ρολόι αντιπάλου} translate G CCDlgConfigRelay {Παρακολούθηση παρτίδων} translate G CCDlgConfigRelayHelp {Μετάβαση στην σελίδα παρτίδας http://www.iccf-webchess.com και εμφάνιση της παρτίδας για παρακολούθηση. Αν βλέπετε την σκακιέρα αντιγράψτε την διεύθυνση URL από τον φυλλομετρητή σας στην παρακάτω λίστα. Μόνον ένα URL ανά γραμμή!\nΠαράδειγμα: http://www.iccf-webchess.com/MakeAMove.aspx?id=266452} # Connect Hardware dialogs translate G ExtHWConfigConnection {Προσαρμογή εξωτερικών συσκευών} translate G ExtHWPort {Θύρα} translate G ExtHWEngineCmd {Εντολή μηχανής} translate G ExtHWEngineParam {Παράμετροι μηχανής} translate G ExtHWShowButton {Εμφάνιση κουμπιού} translate G ExtHWHardware {Συσκευές} translate G ExtHWNovag {Novag Citrine} translate G ExtHWInputEngine {Μηχανής εισόδου} translate G ExtHWNoBoard {No board} translate G NovagReferee {Διαιτητής} # Input Engine dialogs translate G IEConsole {Κονσόλα εισόδου μηχανής} translate G IESending {Κινήσεις που εστάλησαν για} translate G IESynchronise {Συγχρονισμός} translate G IERotate {Περιστροφή} translate G IEUnableToStart {Αδυναμία εκκίνησης της μηχανής εισόδου:} # Calculation of Variations translate G DoneWithPosition {Ολοκλήρωση της θέσης} translate G Board {Σκακιέρα} translate G showGameInfo {Εμφάνιση πληροφοριών παρτίδας} translate G autoResizeBoard {Αυτόματη αλλαγή μεγέθους σκακιέρας} translate G DockTop {Μετάβαση στην κορυφή} translate G DockBottom {Μετάβαση στο κάτω μέρος} translate G DockLeft {Μετάβαση αριστερά} translate G DockRight {Μετάβαση δεξιά} translate G Undock {Αποκόληση} # Switcher window translate G ChangeIcon {Αλλαγή εικονιδίου...} } # end of greek.tcl scid-4.3.0.cvs20120311/tcl/lang/rename.sh0000755000175000017500000000171411727223077016752 0ustar oliveroliver#!/bin/sh mv italian.tcl italian.tcl.bak mv portbr.tcl portbr.tcl.bak mv russian.tcl russian.tcl.bak mv swedish.tcl swedish.tcl.bak mv czech.tcl czech.tcl.bak mv francais.tcl francais.tcl.bak mv nederlan.tcl nederlan.tcl.bak mv serbian.tcl serbian.tcl.bak mv deutsch.tcl deutsch.tcl.bak mv hungary.tcl hungary.tcl.bak mv norsk.tcl norsk.tcl.bak mv polish.tcl polish.tcl.bak mv spanish.tcl spanish.tcl.bak mv catalan.tcl catalan.tcl.bak mv suomi.tcl suomi.tcl.bak mv greek.tcl greek.tcl.bak mv italian.tcl.new italian.tcl mv portbr.tcl.new portbr.tcl mv russian.tcl.new russian.tcl mv swedish.tcl.new swedish.tcl mv czech.tcl.new czech.tcl mv francais.tcl.new francais.tcl mv nederlan.tcl.new nederlan.tcl mv serbian.tcl.new serbian.tcl mv deutsch.tcl.new deutsch.tcl mv hungary.tcl.new hungary.tcl mv norsk.tcl.new norsk.tcl mv polish.tcl.new polish.tcl mv spanish.tcl.new spanish.tcl mv catalan.tcl.new catalan.tcl mv suomi.tcl.new suomi.tcl mv greek.tcl.new greek.tcl scid-4.3.0.cvs20120311/tcl/lang/suomi.tcl0000644000175000017500000024334011727223077017007 0ustar oliveroliver # Text for menu names and status bar help messages in English. # Part of Scid (Shane's Chess Information Database). # # Instructions for adding a new language: # # (1) Choose a letter code for the language. Currently assigned codes are: # E=English, D=Deutsch, F=Francais, S=Spanish, B=Brasil Portuguese, # P=Polish, N=Nederlands, W=Swedish, O=Norsk, C=Czech, H=Hungarian, # Y=Serbian. # # (2) Edit the code below that has the lines "addLanguage ..." and add your # new language. The final digit in each line is the index of the # letter to underline in the menu, counting from 0 as the first letter. # # (3) Copy the section of English menu and help message details below (all # the commands that start "menuText E ..." or "helpMsg E ..." or # "translate E ...") and change all the "E" letters to the letter you # assigned for the new language. # # (4) Write the translations. This involves changing anything "in quotes" # or {in braces} for the menuText, helpMsg and translate commands. # # A menu command has the format: # menuText L tag "Name..." underline {HelpMessage...} # # A status bar help message for a button has the format: # helpMsg L tag {HelpMessage...} # # A general word or message translation has the format: # translate L tag {message...} # # where "L" is the language letter, "tag" is the name of the menu entry # or the button widget name, and "underline" is the index of the letter # to underline, counting from zero as the first letter. Two menu entries # that appear in the same menu should have a different underlined letter. # If in doubt, just make them all "0" and I'll assign sensible underlined # letters when your translations are incorporated into Scid. # # Additions, corrections? Email: sgh@users.sourceforge.net addLanguage U Suomi 1 iso8859-1 proc setLanguage_U {} { # File menu: menuText U File "Tiedosto" 0 menuText U FileNew "Uusi..." 0 {Luo uusi Scid-tietokanta} menuText U FileOpen "Avaa..." 0 {Avaa olemassaoleva Scid-tietokanta} menuText U FileClose "Sulje" 0 {Sulje Scid-tietokanta} menuText U FileFinder "Etsi" 0 {Avaa tiedostonhakuikkuna} menuText U FileBookmarks "Kirjanmerkit" 0 {Kirjanmerkit-valikko (pikanppin: Ctrl+K)} menuText U FileBookmarksAdd "Lis kirjanmerkki" 7 \ {Lis kirjanmerkki nykyiseen peliin ja asemaan tietokannassa} menuText U FileBookmarksFile "Tallenna kirjanmerkki" 5 \ {Tallenna kirjanmerkki nykyisest pelist ja asemasta} menuText U FileBookmarksEdit "Muokkaa kirjanmerkkej..." 0 \ {Muokkaa kirjanmerkkivalikkoja} menuText U FileBookmarksList "Nyt kansiot yhdess listassa" 0 \ {Nyt kirjanmerkit yhdess listassa, ei alivalikoissa} menuText U FileBookmarksSub "Nyt kansiot alivalikoina" 0 \ {Nyt kirjanmerkkikansiot alivalikkoina, ei yhdess listassa} menuText U FileMaint "Yllpito" 0 {Yllpitotykalut Scid-tietokannoille} menuText U FileMaintWin "Yllpitoikkuna" 0 \ {Avaa/sulje yllpitoikkuna} menuText U FileMaintCompact "Tiivist tietokanta..." 0 \ {Tiivist tietokannan, tuhoaa poistetuksi merkityt pelit ja kyttmttmt nimet} menuText U FileMaintClass "ECO-luokittelu..." 2 \ {Tarkista kaikkien pelien ECO-koodi} menuText U FileMaintSort "Lajittele tietokanta..." 0 \ {Lajittele tietokannan pelit} menuText U FileMaintDelete "Poista kaksoiskappaleet..." 0 \ {Etsii pelien kaksoiskappaleet ja merkitsee ne poistettaviksi} menuText U FileMaintTwin "Kaksoiskappaleet" 0 \ {Avaa/pivit kaksoiskappaleet-ikkuna} menuText U FileMaintName "Nimet ja oikeinkirjoitus" 0 {Nimien muokkaus- ja oikeinkirjoitustykalut} menuText U FileMaintNameEditor "Nimet" 0 \ {Avaa/sulje nimien muokkausikkuna} menuText U FileMaintNamePlayer "Pelaajien nimet..." 0 \ {Tarkista pelaajien nimien oikeinkirjoitus} menuText U FileMaintNameEvent "Tapahtumien nimet..." 0 \ {Tarkista tapahtumien nimien oikeinkirjoitus} menuText U FileMaintNameSite "Paikannimet..." 1 \ {Tarkista paikannimien oikeinkirjoitus} menuText U FileMaintNameRound "Kierrosten nimet..." 0 \ {Tarkista kierrosten nimien oikeinkirjoitus} menuText U FileReadOnly "Vain luku..." 0 \ {Est muutokset nykyiseen tietokantaan} menuText U FileSwitch "Vaihda tietokanta" 3 \ {Vaihda toiseen avattuun tietokantaan} menuText U FileExit "Lopeta" 0 {Lopeta ja sulje Scid} menuText U FileMaintFixBase "Korjaa tietokanta" 0 {Yrit korjata vaurioitunut tietokanta} # Edit menu: menuText U Edit "Muokkaa" 0 menuText U EditAdd "Lis muunnelma" 0 {Lis muunnelma tmn siirron kohdalle} menuText U EditDelete "Poista muunnelma" 0 {Poista tmn siirron kohdalla oleva muunnelma} menuText U EditFirst "Ensimmiseksi" 0 \ {Ylenn muunnelma ensimmiseksi sivumuunnelmaksi} menuText U EditMain "Plinjaksi" 1 \ {Ylenn muuunnelma plinjaksi} menuText U EditTrial "Kokeile muunnelmaa" 0 \ {Aloita/lopeta tila, jossa voit testata muunnelmiasi laudalla} menuText U EditStrip "Poista" 2 {Poista siirtoja, kommentteja tai muunnelmia} menuText U EditUndo "Kumoa" 1 {Peruuta viimeisin muutos} menuText U EditStripComments "Kommentit" 1 \ {Poista kaikki kommentit ja arvioinnit pelist} menuText U EditStripVars "Muunnelmat" 3 {Poista kaikki muunnelmat pelist} menuText U EditStripBegin "Siirtoja alusta" 1 \ {Poista siirtoja pelin alusta} menuText U EditStripEnd "Siirtoja lopusta" 3 \ {Poista siirtoja lopusta} menuText U EditReset "Tyhjenn leikekanta" 0 \ {Poista kaikki pelit leiketietokannasta} menuText U EditCopy "Kopioi peli leikekantaan" 0 \ {Kopioi nykyinen peli leiketietokantaan} menuText U EditPaste "Liit leikekannasta" 0 \ {Liit leiketietokannan aktiivinen peli thn} menuText U EditPastePGN "Liit leikepydn teksti PGN-pelin..." 12 \ {Tulkitse leikepydll oleva teksti PGN-muotoiseksi peliksi ja liit thn} menuText U EditSetup "Uusi asema..." 0 \ {Luo uusi alkuasema pelille} menuText U EditCopyBoard "Kopioi asema" 0 \ {Kopioi nykyinen asema leikepydlle FEN-muodossa} menuText U EditPasteBoard "Liit asema" 0 \ {Liit leikepydll oleva FEN-teksti alkuasemaksi} # Game menu: menuText U Game "Peli" 0 menuText U GameNew "Uusi peli" 0 \ {Aloita uusi peli, poista kaikki vanhat siirrot} menuText U GameFirst "Lataa ensimminen" 6 {Lataa ensimminen suodatetuista peleist} menuText U GamePrev "Lataa edellinen" 7 {Lataa edellinen peli suodatetuista} menuText U GameReload "Lataa uudelleen" 1 \ {Lataa nykyinen peli uudelleen, poista tehdyt muutokset} menuText U GameNext "Lataa seuraava" 6 {Lataa seuraava peli suodatetuista} menuText U GameLast "Lataa viimeinen" 6 {Lataa viimeinen suodatetuista peleist} menuText U GameRandom "Lataa satunnainen" 2 {Lataa sattumanvaraisesti valittu peli suodatetuista} menuText U GameNumber "Lataa numero..." 8 \ {Lataa peli, jonka numeron annat avautuvassa ikkunassa} menuText U GameReplace "Tallenna: Korvaa..." 8 \ {Tallenna nykyinen peli korvaten vanha versio uusilla tiedoilla} menuText U GameAdd "Tallenna: Lis uusi..." 13 \ {Tallenna nykyinen peli tietokantaan uudeksi peliksi} menuText U GameDeepest "Tunnista avaus" 0 \ {Tunnista avauksen ECO-koodi avauskirjaa kytten} menuText U GameGotoMove "Siirry siirtoon..." 5 \ {Siirry mritetyn siirron kohdalle nykyisess peliss} menuText U GameNovelty "Etsi uutuus..." 0 \ {Etsi pelin ensimminen ennen pelaamaton siirto} # Search Menu: menuText U Search "Etsi" 0 menuText U SearchReset "Alusta suodatin" 0 {Nyt kaikki pelit, nollaa suodatin} menuText U SearchNegate "Knteinen suodatin" 0 {Suodatin nytt aiemmin poissuodatetut pelit} menuText U SearchCurrent "Nykyinen asema..." 0 {Etsi nykyist asemaa tietokannasta} menuText U SearchHeader "Otsikko..." 0 {Etsi otsikkotiedon perusteella (pelaaja, tapahtuma jne.)} menuText U SearchMaterial "Materiaali/asema..." 0 {Etsi materiaalin tai aseman tunnusmerkkien perusteella} menuText U SearchUsing "Haku tiedostolla..." 0 {Etsi kytten apuna erillist hakutiedostoa} # Windows menu: menuText U Windows "Ikkunat" 0 menuText U WindowsComment "Kommentit" 0 {Avaa/sulje kommenttimuokkain} menuText U WindowsGList "Peliluettelo" 0 {Avaa/sulje peliluettelo} menuText U WindowsPGN "PGN-listaus" 1 \ {Avaa/sulje PGN-listaus (pelinotaatio)} menuText U WindowsPList "Pelaajahaku" 1 {Avaa/sulje pelaajahaku} menuText U WindowsTmt "Turnaushaku" 1 {Avaa/sulje turnaushaku} menuText U WindowsSwitcher "Tietokannan vaihto" 0 \ {Avaa/sulje Tietokannan vaihtoikkuna} menuText U WindowsMaint "Yllpito" 0 \ {Avaa/sulje yllpitoikkuna} menuText U WindowsECO "ECO-selain" 1 {Avaa/sulje ECO-avauskirjaston selain} menuText U WindowsRepertoire "Repertuaari" 0 \ {Avaa/sulje oman avausrepertuaarisi muokkain} menuText U WindowsStats "Tilastot" 6 \ {Avaa/sulje tilastoikkuna} menuText U WindowsTree "Puunkym" 3 {Avaa/sulje puunkym} menuText U WindowsTB "Loppupelitietokanta" 15 {Avaa/sulje loppupelitietokanta} menuText U WindowsBook "Avauskirja" 8 {Avaa/sulje avauskirja} menuText U WindowsCorrChess "Kirjeshakki" 6 {Avaa/sulje kirjeshakki-ikkuna} # Tools menu: menuText U Tools "Tykalut" 1 menuText U ToolsAnalysis "Analyysimoottori #1..." 18 \ {Kynnist/pysyt analyysimoottori} menuText U ToolsAnalysis2 "Analyysimoottori #2..." 18 \ {Kynnist/pysyt toinen analyysimoottori} menuText U ToolsCross "Ristitaulukko" 0 {Nyt turnauksen ristitaulukko tlle pelille} menuText U ToolsEmail "Email" 0 {Avaa/sulje email-shakin hallintaikkuna} menuText U ToolsFilterGraph "Suhteellinen graafi" 13 {Avaa/sulje suodatingraafi suhteellisilla arvoilla} menuText U ToolsAbsFilterGraph "Absoluuttinen graafi" 17 {Avaa/sulje suodatingraafi absoluuttisilla arvoilla} menuText U ToolsOpReport "Avausraportti" 0 {Luo nykyisest asemasta avausraportti} menuText U ToolsOpenBaseAsTree "Avaa kanta puuna..." 0 {Avaa tietokanta ja ksittele sit puurakenteena} menuText U ToolsOpenRecentBaseAsTree "Avaa viimeaikainen kanta puuna" 1 {Avaa viimeaikainen tietokanta ja ksittele sit puurakenteena} menuText U ToolsTracker "Nappuloiden liikkuminen" 0 {Avaa ikkuna, jossa seuraat napppuloiden sijaintia ja liikkumista laudalla} menuText U ToolsTraining "Valmennus" 2 {Tykaluja valmennukseen (taktiikka, avaukset...) } menuText U ToolsTacticalGame "Taktinen peli" 2 {Pelaa taktisesti painottunut peli} menuText U ToolsSeriousGame "Virallinen peli" 7 {Pelaa virallinen peli} menuText U ToolsTrainOpenings "Avaukset" 5 {Harjoittele repertuaariasi} menuText U ToolsTrainReviewGame "Arvaa siirto" 11 {Arvaa pelin seuraava siirto} menuText U ToolsTrainTactics "Taktiikkaharjoitukset" 9 {Ratko taktiikoita} menuText U ToolsTrainCalvar "Muunnelmien laskeminen" 0 {Harjoittele muunnelmien laskemista} menuText U ToolsTrainFindBestMove "Etsi paras siirto" 5 {Etsi aseman paras siirto} menuText U ToolsTrainFics "FICS" 0 {Pelaa palvelimella freechess.org} menuText U ToolsBookTuning "Virit avaukset" 0 {Muokkaa avauskirjastoasi} menuText U ToolsConnectHardware "Liit syttlaite" 8 {Liit ulkoinen syttlaite (elektroninen lauta tms.)} menuText U ToolsConnectHardwareConfigure "Asetukset..." 0 {Sd ulkoisen syttlaitteen asetuksia} menuText U ToolsConnectHardwareNovagCitrineConnect "Liit Novag Citrine" 0 {Liit Novag Citrine shakkitietokone} menuText U ToolsConnectHardwareInputEngineConnect "Liit muu syttlaite" 0 {Esimerkiksi elektroninen DGT-lauta} menuText U ToolsPInfo "Pelaajatiedot" 0 \ {Avaa/pivit pelaajatiedot-ikkuna} menuText U ToolsPlayerReport "Pelaajaraportti..." 1 \ {Luo pelaajaraportti} menuText U ToolsRating "Vahvuusluvut" 0 \ {Kaavio pelaajien vahvuuslukuhistoriasta} menuText U ToolsScore "Tuloskaavio" 0 {Nyt tuloskaavio} menuText U ToolsExpCurrent "Vie tekstitiedostoon" 1 \ {Kirjoita nykyinen peli tekstitiedostoon} menuText U ToolsExpCurrentPGN "Vie PGN-tiedostoon" 6 \ {Kirjoita nykyinen peli PGN-tiedostoon} menuText U ToolsExpCurrentHTML "Vie HTML-tiedostoon" 4 \ {Kirjoita nykyinen peli HTML-tiedostoon} menuText U ToolsExpCurrentHTMLJS "Vie HTML- ja JavaScript-tiedostoihin" 6 {Kirjoita nykyinen peli HTML- ja JavaScript-tiedostoihin} menuText U ToolsExpCurrentLaTeX "Vie LaTeX-tiedostoon" 8 \ {Kirjoita nykyinen peli LaTeX-tiedostoon} menuText U ToolsExpFilter "Vie suodatetut pelit tekstitiedostoon" 0 \ {Kirjoita kaikki suodatetut pelit tekstitiedostoon} menuText U ToolsExpFilterPGN "Vie suodatetut pelit PGN-tiedostoon" 0 \ {Kirjoita kaikki suodatetut pelit PGN-tiedostoon} menuText U ToolsExpFilterHTML "Vie suodatetut pelit HTML-tiedostoon" 0 \ {Kirjoita kaikki suodatetut pelit HTML-tiedostoon} menuText U ToolsExpFilterHTMLJS "Vie suodatetut pelit HTML- ja JavaScript-tiedostoihin" 0 {Kirjoita kaikki suodatetut pelit HTML- ja JavaScript-tiedostoihin} menuText U ToolsExpFilterLaTeX "Vie suodatetut pelit LaTeX-tiedostoon" 0 \ {Kirjoita kaikki suodatetut pelit LaTeX-tiedostoon} menuText U ToolsImportOne "Tuo yksi PGN-peli" 0 \ {Tuo yksittinen peli PGN-tekstist} menuText U ToolsImportFile "Tuo PGN pelitiedosto" 0 {Tuo yksi tai useampia pelej sisltv PGN-tiedosto} menuText U ToolsStartEngine1 "Kynnist moottori 1" 19 {Kynnist moottori 1} menuText U ToolsStartEngine2 "Kynnist moottori 2" 19 {Kynnist moottori 2} menuText U ToolsCaptureBoard "Kuvakaappaus asemasta..." 1 {Tallenna asema kuvana.} # Play menue menuText U Play "Pelaa" 0 # --- Correspondence Chess menuText U CorrespondenceChess "Kirjeshakki" 0 {Toiminnot shkposti- ja Xfcc-pohjaista kirjeshakkia varten} menuText U CCConfigure "Asetukset" 0 {Mrit ohjelmat ja tee kirjeshakkiin liittyvt asetukset} menuText U CCConfigRelay "Seuraa pelej..." 12 {Seurattavien pelien asetukset} menuText U CCOpenDB "Avaa tietokanta" 1 {Avaa kirjeshakin oletustietokanta} menuText U CCRetrieve "Nouda pelit" 0 {Hae pelit ulkoisella (Xfcc-) avustajalla} menuText U CCInbox "Ksittele Saapuneet" 1 {Ksittele kaikki saapuneet tiedostot} menuText U CCSend "Lhet siirto" 2 {Lhet siirtosi shkpostina tai (Xfcc-) avustajalla} menuText U CCResign "Luovuta" 0 {Luovuta (ei shkposti)} menuText U CCClaimDraw "Vaadi tasapeli" 0 {Lhet siirto ja vaadi tasapeli (ei shkposti)} menuText U CCOfferDraw "Tarjoa tasapeli" 2 {Lhet siirto ja ehdota tasapeli (ei shkposti)} menuText U CCAcceptDraw "Hyvksy tasapeli" 1 {Hyvksy vastustajan tarjoama tasapeli (ei shkposti)} menuText U CCNewMailGame "Uusi shkpostipeli" 0 {Aloita uusi shkpostipeli} menuText U CCMailMove "Shkpostisiirto" 0 {Lhet siirto shkpostilla vastustajalle} menuText U CCGamePage "Pelisivusto" 0 {Avaa pelisivusto selaimessa} # menu in cc window: menuText U CCEditCopy "Kopioi pelilista leikekantaan" 0 {Kopioi pelit leikekantaan CSV-tiedostona (pilkuilla erotettu teksti)} # B GHiJKL Q TUV XYZ # Options menu: menuText U Options "Asetukset" 0 menuText U OptionsBoard "Shakkilauta" 0 {Shakkilaudan ulkonkn liittyvt asetukset} menuText U OptionsBoardSize "Koko" 0 {Muuta laudan kokoa} menuText U OptionsBoardPieces "Nappulat" 0 {Muuta nappuloiden ulkomuotoa} menuText U OptionsBoardColors "Vrit" 0 {Vaihda laudan vrej} #Klimmek menuText U OptionsBoardGraphics "Ruudut" 0 {Valitse ruuduissa kytettv tekstuuri} translate U OptionsBGW {Valitse ruuduissa kytettv tekstuuri} translate U OptionsBoardGraphicsText {Valitse ruuduissa kytettv grafiikkatiedosto:} menuText U OptionsBoardNames "Omat nimet" 0 {Lis ja muokkaa kyttmisi pelaajanimi} menuText U OptionsExport "Vientiasetukset" 0 {Muuta eri tekstimuotojen vientiin liittyvi asetuksia} menuText U OptionsFonts "Fontit" 0 {Muuta fontteja} menuText U OptionsFontsRegular "Oletusfontti" 0 {Vaihda oletusfontti} menuText U OptionsFontsMenu "Valikko" 0 {Vaihda valikoissa kytetty fontti} menuText U OptionsFontsSmall "Pieni" 0 {Vaihda pieni fontti} menuText U OptionsFontsTiny "Hyvin pieni" 0 {CVaihda hyvin pieni fontti} menuText U OptionsFontsFixed "Tasalevyinen" 0 {Vaihda tasalevyinen fontti} menuText U OptionsGInfo "Pelitiedot" 0 {Pelitietoihin liittyvt asetukset} menuText U OptionsLanguage "Kieli" 0 {Valitse valikoissa kytettv kieli} menuText U OptionsMovesTranslatePieces "Knnkset" 0 {Knn nappuloiden ensimmiset kirjaimet} menuText U OptionsMovesHighlightLastMove "Korosta viimeisin siirto" 0 {Korosta viimeisin siirto} menuText U OptionsMovesHighlightLastMoveDisplay "Nyt" 0 {Nyt viimeisin siirto korostettuna} menuText U OptionsMovesHighlightLastMoveWidth "Viiva" 0 {Laudalla nytettvn viivan paksuus} menuText U OptionsMovesHighlightLastMoveColor "Vri" 0 {Laudalla nytettvn viivan vri} menuText U OptionsMoves "Siirrot" 0 {Siirtojen syttmiseen liittyvt asetukset} menuText U OptionsMovesAsk "Kysy ennen korvaamista" 0 \ {Ohjelma kysyy luvan ennen kuin kirjoittaa vanhojen tietojen plle} menuText U OptionsMovesAnimate "Animaation nopeus" 1 \ {Siirtojen animoinnin nopeus} menuText U OptionsMovesDelay "Toiston siirtonopeus" 1 \ {Automaattisesti toistetun pelin siirtonopeus} menuText U OptionsMovesCoord "Siirrot koordinaatteina" 0 \ {Hyvksy nppimistlt annetut siirtokoordinaatit (esim "g1f3")} menuText U OptionsMovesSuggest "Nyt suositetut siirrot" 0 \ {Siirtosuositukset plle/plt} menuText U OptionsShowVarPopup "Nyt muunnelmaikkuna" 0 {Nyt/sulje muunnelmaikkuna} menuText U OptionsMovesSpace "Vlilynti siirtoihin" 0 {Lis vlilynti siirron numeron pern} menuText U OptionsMovesKey "Automaattinen tydennys" 0 \ {Kytek siirtojen automaattinen tydennys plle/plt} menuText U OptionsMovesShowVarArrows "Muunnelmat nuolin" 0 {Nyt/l nyt muunnelmia nuolilla laudalla} menuText U OptionsNumbers "Numerointi" 0 {Numeroformaatit, 1-3 desimaalipisteell, 4-6 -pilkulla} menuText U OptionsStartup "Kynnistys" 0 {Valitse lisikkunat, jotka avataan ohjelmaa kynnistettess} menuText U OptionsTheme "Teema" 0 {Valitse kyttliittymn teema} menuText U OptionsWindows "Ikkunat" 0 {Ikkunoiden asetukset} menuText U OptionsWindowsIconify "Pienenn automaattisesti" 0 \ {Pienenn mys muut ikkunat, kun pikkuna pienennetn} menuText U OptionsWindowsRaise "Nosta automaattisesti" 0 \ {Nosta ert ikkunat automaattisesti ylimmksi} menuText U OptionsSounds "net" 0 {Muokaa siirtoilmoitusni} menuText U OptionsWindowsDock "Telakoi ikkunat" 0 {Telakoi irti olevat ikkunat (vaatii uudelleenkynnistyksen)} menuText U OptionsWindowsSaveLayout "Tallenna layout" 0 {Tallenna nimelle ikkunoiden ja tykalupalkkien sijainti} menuText U OptionsWindowsRestoreLayout "Palauta layout" 0 {Palauta tallennettu layout} menuText U OptionsWindowsShowGameInfo "Pelin tiedot" 0 {Nyt/piilota pelin tiedot (pelaajanimet, turnaus...)} menuText U OptionsWindowsAutoLoadLayout "Ensimminen layout automaattisesti" 0 {Lataa ensimminen tallennettu layout automaattisesti} menuText U OptionsToolbar "Tykalupalkki" 0 {Muokkaa pikkunan tykalupalkkia} menuText U OptionsECO "Lataa ECO-tiedosto" 7 {Lataa ECO avausluokittelu tiedostosta} menuText U OptionsSpell "Lataa oikeinkirjoitustiedosto" 0 \ {Lataa Scidin oikeinkirjoitustiedosto} menuText U OptionsTable "Loppupelitietokannat" 0 \ {Valitse hakemisto, jossa kannat sijaitsevat. Kaikki kannat otetaan kyttn} menuText U OptionsRecent "Viimeaikaiset tiedostot" 0 {Kuinka monta tiedostoa nytetn Tiedosto-valikon viimeaikaisten listassa} menuText U OptionsBooksDir "Avauskirjat" 0 {Hakemisto, jossa avauskirjat sijaitsevat} menuText U OptionsTacticsBasesDir "Taktiikkakannat" 0 {Hakemisto, jossa taktiikka (harjoitus) tietokannat sijaitsevat} menuText U OptionsSave "Tallenna asetukset" 0 "Tallenna kaikki asetukset tiedostoon $::optionsFile" menuText U OptionsAutoSave "Automaattinen asetusten tallennus" 0 \ {Tallenna asetukset automaattisesti ohjelmasta poistuttaessa} # Help menu: menuText U Help "Ohje" 0 menuText U HelpContents "Sisllysluettelo" 0 {Nyt ohjeen sisllysluettelo} menuText U HelpIndex "Hakemisto" 0 {Nyt ohjeen aakkosellinen luettelo} menuText U HelpGuide "Pikaopas" 0 {Nyt Scidin pikaopas} menuText U HelpHints "Vinkit" 0 {Nyt sivu, jolla Scidin kytt helpottavia vihjeit} menuText U HelpContact "Yhteystietoja" 0 {Nyt yhteystiedot} menuText U HelpTip "Pivn vinkki" 1 {Nyt vihje} menuText U HelpStartup "Kynnistys-popup" 2 {Nyt ohjelman kynnistys-popup} menuText U HelpAbout "Tietoja Scidist" 9 {Tietoja ohjelmasta} # Game info box popup menu: menuText U GInfoHideNext "Piilota seuraava siirto" 0 menuText U GInfoMaterial "Nyt materiaaliarvot" 0 menuText U GInfoFEN "Nyt FEN" 6 menuText U GInfoMarks "Nyt vriruudut ja nuolet" 6 menuText U GInfoWrap "Rivit automaattisesti" 0 menuText U GInfoFullComment "Nyt koko kommentti" 6 menuText U GInfoPhotos "Nyt valokuvat" 7 menuText U GInfoTBNothing "Loppupelikannat: ei mitn" 0 menuText U GInfoTBResult "Loppupelikannat: vain tulos" 1 menuText U GInfoTBAll "Loppupelikannat: tulos ja parhaat siirrot" 4 menuText U GInfoDelete "Poista peli (kumoa)" 3 menuText U GInfoMark "Merkitse peli (kumoa)" 3 menuText U GInfoInformant "Informant-asetukset" 5 # Main window buttons: helpMsg U .main.fbutton.button.start {Pelin alkuun (pika: Home)} helpMsg U .main.fbutton.button.end {Pelin loppuun (pika: End)} helpMsg U .main.fbutton.button.back {Takaisin yksi siirto (pika: Vasen nuoli)} helpMsg U .main.fbutton.button.forward {Eteenpin yksi siirto (pika: Oikea nuoli)} helpMsg U .main.fbutton.button.intoVar {Siirry muunnelmaan (pika: v)} helpMsg U .main.fbutton.button.exitVar {Poistu muunnelmasta (pika: z)} helpMsg U .main.fbutton.button.flip {Knn lauta (pika: piste)} helpMsg U .main.fbutton.button.coords {Nyt/piilota koordinaatit (pika: 0)} helpMsg U .main.fbutton.button.stm {Nyt/piilota siirtovuoron osoitin} helpMsg U .main.fbutton.button.autoplay {Siirr automaattisesti (pika: Ctrl+Z)} # General buttons: translate U Back {Palaa} translate U Browse {Selaa} translate U Cancel {Peruuta} translate U Continue {Jatka} translate U Clear {Tyhjenn} translate U Close {Sulje} translate U Contents {Sisllys} translate U Defaults {Oletukset} translate U Delete {Poista} translate U Graph {Graafi} translate U Help {Ohje} translate U Import {Tuo} translate U Index {Hakemisto} translate U LoadGame {Lataa peli} translate U BrowseGame {Selaa peli} translate U MergeGame {Yhdist peli} translate U MergeGames {Yhdist pelit} translate U Preview {Esikatselu} translate U Revert {Palauta} translate U Save {Tallenna} translate U Search {Etsi} translate U Stop {Seis} translate U Store {Talleta} translate U Update {Pivit} translate U ChangeOrient {Muuta ikkunan muotoa} translate U ShowIcons {Nyt kuvakkeet} translate U None {Tyhj} translate U First {Ensimminen} translate U Current {Nykyinen} translate U Last {Viimeinen} # General messages: translate U game {peli} translate U games {pelit} translate U move {siirto} translate U moves {siirrot} translate U all {kaikki} translate U Yes {Kyll} translate U No {Ei} translate U Both {Molemmat} translate U King {Kuningas} translate U Queen {Kuningatar} translate U Rook {Torni} translate U Bishop {Lhetti} translate U Knight {Ratsu} translate U Pawn {Sotilas} translate U White {Valkea} translate U Black {Musta} translate U Player {Pelaaja} translate U Rating {Vahvuusluku} translate U RatingDiff {Vahvuuksien ero (Valkea - Musta)} translate U AverageRating {Keskivahvuus} translate U Event {Tapahtuma} translate U Site {Paikka} translate U Country {Maa} translate U IgnoreColors {l huomioi vrej} translate U Date {Pvm.} translate U EventDate {Tapahtuman pvm.} translate U Decade {Vuosikymmen} translate U Year {Vuosi} translate U Month {Kuukausi} translate U Months {Tammikuu Helmikuu Maaliskuu Huhtikuu Toukokuu Keskuu Heinkuu Elokuu Syyskuu Lokakuu Marraskuu Joulukuu} translate U Days {Su Ma Ti Ke To Pe La} translate U YearToToday {Vuoden alusta} translate U Result {Tulos} translate U Round {Kierros} translate U Length {Pituus} translate U ECOCode {ECO-koodi} translate U ECO {ECO} translate U Deleted {Poistettu} translate U SearchResults {Haun tulokset} translate U OpeningTheDatabase {Avaustietokanta} translate U Database {Tietokanta} translate U Filter {Suodatin} translate U noGames {ei pelej} translate U allGames {kaikki pelit} translate U empty {tyhj} translate U clipbase {leikekanta} translate U score {tulos} translate U StartPos {Alkuasema} translate U Total {Yhteens} translate U readonly {vain luku} # Standard error messages: translate U ErrNotOpen {Tm ei ole avoin tietokanta.} translate U ErrReadOnly {Tm tietokanta on vain luku -moodissa; sit ei voi muokata.} translate U ErrSearchInterrupted {Haku keskeytyi; tulokset ovat vaillinaiset.} # Game information: translate U twin {tupla} translate U deleted {poistettu} translate U comment {kommentti} translate U hidden {piilotettu} translate U LastMove {Viimeinen siirto} translate U NextMove {Seuraava} translate U GameStart {Pelin alku} translate U LineStart {Rivin alku} translate U GameEnd {Pelin loppu} translate U LineEnd {Rivin loppu} # Player information: translate U PInfoAll {Kaikki tulokset} translate U PInfoFilter {Suodatetut tulokset} translate U PInfoAgainst {Tulokset vastaan} translate U PInfoMostWhite {Yleisimmt avaukset: Valkea} translate U PInfoMostBlack {Yleisimmt avaukset: Musta} translate U PInfoRating {Vahvuuslukuhistoria} translate U PInfoBio {Biografia} translate U PInfoEditRatings {Muokkaa vahvuuslukuja} # Tablebase information: translate U Draw {Tasapeli} translate U stalemate {patti} translate U withAllMoves {kaikilla siirroilla} translate U withAllButOneMove {yht vaille kaikilla siirroilla} translate U with {kanssa} translate U only {vain} translate U lose {hvi} translate U loses {hvi} translate U allOthersLose {kaikki muut hvivt} translate U matesIn {matti} translate U hasCheckmated {on matti} translate U longest {pisin} translate U WinningMoves {Voittavat siirrot} translate U DrawingMoves {Tasapeliin vievt siirrot} translate U LosingMoves {Hvivt siirrot} translate U UnknownMoves {Epvarma tulos} # Tip of the day: translate U Tip {Vihje} translate U TipAtStartup {Kynnistysvihje} # Tree window menus: menuText U TreeFile "Tiedosto" 0 menuText U TreeFileFillWithBase "Kanta vlimuistiin" 0 {Tyt vlimuisti nykyisen tietokannan peleill} menuText U TreeFileFillWithGame "Peli vlimuistiin" 0 {Siirr nykyisen kannan aktiivinen peli vlimuistiin} menuText U TreeFileSetCacheSize "Vlimuistin koko" 0 {Aseta vlimuistin koko} menuText U TreeFileCacheInfo "Tietoja vlimuistista" 1 {Nyt tiedot vlimuistista ja sen kytst} menuText U TreeFileSave "Tallenna vlimuisti" 2 {Tallenna vlimuisti (.stc) tiedostoksi} menuText U TreeFileFill "Tyt vlimuisti" 1 \ {Tyt vlimuisti yleisill asemilla} menuText U TreeFileBest "Parhaat pelit" 2 {Nyt parhaat pelit} menuText U TreeFileGraph "Graafi-ikkuna" 0 {Nyt puun haara graafina} menuText U TreeFileCopy "Puu leikepydlle" 1 \ {Kopioi puun tilastot leikepydlle} menuText U TreeFileClose "Sulje puu" 2 {Sulje ikkuna} menuText U TreeMask "Maski" 0 menuText U TreeMaskNew "Uusi" 2 {Uusi maski} menuText U TreeMaskOpen "Avaa" 0 {Avaa maski} menuText U TreeMaskOpenRecent "Avaa viimeaikainen" 0 {Avaa viimeaikainen maski} menuText U TreeMaskSave "Tallenna" 0 {Tallenna maski} menuText U TreeMaskClose "Close" 0 {Sulje maski} menuText U TreeMaskFillWithGame "Tyt pelill" 0 {Tyt maski pelill} menuText U TreeMaskFillWithBase "Tyt kannalla" 0 {Tyt maski kannan kaikilla peleill} menuText U TreeMaskInfo "Tiedot" 0 {Nyt nykyisen maskin tilastot} menuText U TreeMaskDisplay "Nyt maski" 0 {Nyt maski puumuodossa} menuText U TreeMaskSearch "Etsi" 0 {Etsi nykyisest maskista} menuText U TreeSort "Lajittele" 0 menuText U TreeSortAlpha "Aakkosta" 0 menuText U TreeSortECO "ECO-koodi" 0 menuText U TreeSortFreq "Yleisyys" 0 menuText U TreeSortScore "Tulos" 0 menuText U TreeOpt "Asetukset" 0 menuText U TreeOptSlowmode "Hidas moodi" 0 {Pivit asemat hitaasti (suurempi tarkkuus)} menuText U TreeOptFastmode "Nopea moodi" 0 {Pivit nopeati (Ei lyd siirtovaihtoja)} menuText U TreeOptFastAndSlowmode "Hidas ja nopea" 0 {Pivit ensin nopeasti, sitten tarkasti} menuText U TreeOptStartStop "Automaattinen pivitys" 0 {Ikkunan automaattinen pivitys plle/plt} menuText U TreeOptLock "Lukitse" 0 {Lukitse/vapauta puu nykyiseen tietokantaan} menuText U TreeOptTraining "Valmennus" 0 {Puun valmennusmoodii plle/plt} menuText U TreeOptAutosave "Tallenna vlimuisti automaattisesti" 0 \ {Tallenna vlimuisti tiedostoon automaattisesti, kun puu-ikkuna suljetaan} menuText U TreeHelp "Ohje" 0 menuText U TreeHelpTree "Puun ohje" 0 menuText U TreeHelpIndex "Aakkosellinen ohje" 0 translate U SaveCache {Tallenna vlimuisti} translate U Training {Valmennus} translate U LockTree {Lukitse} translate U TreeLocked {lukittu} translate U TreeBest {Paras} translate U TreeBestGames {Parhaat pelit} # Note: the next message is the tree window title row. After editing it, # check the tree window to make sure it lines up with the actual columns. translate U TreeTitleRow \ { Siirto ECO Yleisyys Tulos AvElo Perf AvYear %Draws} translate U TreeTotal {TOTAL} translate U DoYouWantToSaveFirst {Haluatko tallentaa ensin} translate U AddToMask {Lis maskiin} translate U RemoveFromMask {Poista maskista} translate U AddThisMoveToMask {Lis siirto maskiin} translate U SearchMask {Etsi maskista} translate U DisplayMask {Nyt maski} translate U Nag {Nag-koodi} translate U Marker {Merkki} translate U Include {Sisllyt} translate U Exclude {l sisllyt} translate U MainLine {Pmuunnelma} translate U Bookmark {Kirjanmerkki} translate U NewLine {Uusi rivi} translate U ToBeVerified {Varmennetaan} translate U ToTrain {Harjoiteltavaksi} translate U Dubious {Arveluttava} translate U ToRemove {Poistettavaksi} translate U NoMarker {Ei merkki} translate U ColorMarker {Vri} translate U WhiteMark {Valkea} translate U GreenMark {Vihre} translate U YellowMark {Keltainen} translate U BlueMark {Sininen} translate U RedMark {Punainen} translate U CommentMove {Kommentoi siirto} translate U CommentPosition {Komentoi asema} translate U AddMoveToMaskFirst {Lis siirto ensin maskiin} translate U OpenAMaskFileFirst {Avaa maski-tiedosto ensin} translate U Positions {Asemat} translate U Moves {Siirrot} # Finder window: menuText U FinderFile "Tiedosto" 0 menuText U FinderFileSubdirs "Etsi alihakemistoista" 0 menuText U FinderFileClose "Sulje haku" 0 menuText U FinderSort "Lajittele" 0 menuText U FinderSortType "Tyyppi" 0 menuText U FinderSortSize "Koko" 0 menuText U FinderSortMod "Muokattu" 0 menuText U FinderSortName "Nimi" 0 menuText U FinderSortPath "Polku" 0 menuText U FinderTypes "Tyypit" 0 menuText U FinderTypesScid "Scid-tietokannat" 0 menuText U FinderTypesOld "Vanhat Scid-kannat" 0 menuText U FinderTypesPGN "PGN-tiedostot" 0 menuText U FinderTypesEPD "EPD-tiedostot" 0 menuText U FinderTypesRep "Repertuaari-tiedostot" 0 menuText U FinderHelp "Ohje" 0 menuText U FinderHelpFinder "Tiedostohaun ohje" 0 menuText U FinderHelpIndex "Aakkosellinen ohje" 0 translate U FileFinder {Tiedostohaku} translate U FinderDir {Hakemisto} translate U FinderDirs {Hakemistot} translate U FinderFiles {Tiedostot} translate U FinderUpDir {yls} translate U FinderCtxOpen {Avaa} translate U FinderCtxBackup {Varmista} translate U FinderCtxCopy {Kopioi} translate U FinderCtxMove {Siirr} translate U FinderCtxDelete {Poista} # Player finder: menuText U PListFile "Tiedosto" 0 menuText U PListFileUpdate "Pivit" 0 menuText U PListFileClose "Sulje pelaajahaku" 0 menuText U PListSort "Lajittele" 0 menuText U PListSortName "Nimi" 0 menuText U PListSortElo "Elo" 0 menuText U PListSortGames "Pelit" 3 menuText U PListSortOldest "Vanhin" 0 menuText U PListSortNewest "Uusin" 0 # Tournament finder: menuText U TmtFile "Tiedosto" 0 menuText U TmtFileUpdate "Pivit" 0 menuText U TmtFileClose "Sulje kilpailuhaku" 0 menuText U TmtSort "Lajittele" 0 menuText U TmtSortDate "Pivmr" 1 menuText U TmtSortPlayers "Pelaajar" 1 menuText U TmtSortGames "Pelit" 2 menuText U TmtSortElo "Elo" 2 menuText U TmtSortSite "Paikka" 3 menuText U TmtSortEvent "Tapahtuma" 4 menuText U TmtSortWinner "Voittaja" 0 translate U TmtLimit "Luettelon raja" translate U TmtMeanElo "Keski-Elo" translate U TmtNone "Turnauksia ei lytynyt." # Graph windows: menuText U GraphFile "Tiedosto" 0 menuText U GraphFileColor "Tallenna Color PostScript..." 9 menuText U GraphFileGrey "Tallenna Greyscale PostScript..." 9 menuText U GraphFileClose "Sulje ikkuna" 0 menuText U GraphOptions "Asetukset" 0 menuText U GraphOptionsWhite "Valkea" 0 menuText U GraphOptionsBlack "Musta" 0 menuText U GraphOptionsBoth "Molemmat" 1 menuText U GraphOptionsPInfo "Pelaaja Info pelaaja" 0 translate U GraphFilterTitle "Graafi: yleisyys per 1000 peli" translate U GraphAbsFilterTitle "graafi: pelien yleisyys" translate U ConfigureFilter "Muokkaa X-akseli; vuosi, vahvuus, siirrot" translate U FilterEstimate "Arvioi" translate U TitleFilterGraph "Scid: graafi" # Analysis window: translate U AddVariation {Lis muunnelma} translate U AddAllVariations {Lis kaikki muunnelmat} translate U AddMove {Lis siirto} translate U Annotate {Kommentoi} translate U ShowAnalysisBoard {Nyt analyysilauta} translate U ShowInfo {Nyt tiedot moottorista} translate U FinishGame {Lopeta peli} translate U StopEngine {Pysyt moottori} translate U StartEngine {Kynnist moottori} translate U LockEngine {Lukitse moottori nykyiseen asemaan} translate U AnalysisCommand {Analyysi-komento} translate U PreviousChoices {Aikaisemmat vaihtoehdot} translate U AnnotateTime {Siirtojen vlinen aika sekunteina} translate U AnnotateWhich {Lis muunnelmat} translate U AnnotateAll {molemmille osapuolille} translate U AnnotateAllMoves {Kommentoi kaikki siirrot} translate U AnnotateWhite {Vain valkealle} translate U AnnotateBlack {Vain mustalle} translate U AnnotateBlundersOnly {Kun pelisiirto on virhe (blunder)} translate U AnnotateBlundersOnlyScoreChange {Analyysi raportoi virheet, muuuttaen pisteytyksen: } translate U BlundersThreshold {Virhekynnys} translate U ScoreAllMoves {Pisteyt kaikki siirrot} translate U LowPriority {Matala CPUn kyttaste} translate U ClickHereToSeeMoves {Klikkaa nhdksesi siirrot} translate U ConfigureInformant {Tee Informant-asetukset} translate U Informant!? {Mielenkiintoinen siirto} translate U Informant? {Heikko siirto} translate U Informant?? {Virhe} translate U Informant?! {Epilyttv siirto} translate U Informant+= {Valkean pieni etu} translate U Informant+/- {Valkean etu} translate U Informant+- {Valkean ratkaiseva etu} translate U Informant++- {Voittoasema} # Book window translate U Book {Kirja} translate U OtherBookMoves {Vastustajan kirja} translate U OtherBookMovesTooltip {Siirrot, joihin vastustajalla on vastaus} # Analysis Engine open dialog: translate U EngineList {Analyysimoottorilista} translate U EngineName {Nimi} translate U EngineCmd {Komento} translate U EngineArgs {Parametrit} translate U EngineDir {Hakemisto} translate U EngineElo {Elo} translate U EngineTime {Pvm} translate U EngineNew {Uusi} translate U EngineEdit {Muokkaa} translate U EngineRequired {Lihavoidut kentt ovat pakollisia} # Stats window menus: menuText U StatsFile "Tiedosto" 0 menuText U StatsFilePrint "Tulosta tiedostoon..." 1 menuText U StatsFileClose "Sulje ikkuna" 0 menuText U StatsOpt "Asetukset" 0 # PGN window menus: menuText U PgnFile "Tiedosto" 0 menuText U PgnFileCopy "Kopioi peli leikepydlle" 0 menuText U PgnFilePrint "Tulosta tiedostoon..." 1 menuText U PgnFileClose "Sulje PGN-ikkuna" 6 menuText U PgnOpt "Nytt" 0 menuText U PgnOptColor "Vrit" 0 menuText U PgnOptShort "Lyhyet otsikkotiedot (3-rivinen)" 0 menuText U PgnOptSymbols "Merkinnt symboleina" 1 menuText U PgnOptIndentC "Sisenn kommentit" 0 menuText U PgnOptIndentV "Sisenn muunnelmat" 1 menuText U PgnOptColumn "Sarakkeina (siirto per rivi)" 1 menuText U PgnOptSpace "Vlilynti siirtonumeron jlkeen" 1 menuText U PgnOptStripMarks "Poista vri-/nuolikoodit" 1 menuText U PgnOptBoldMainLine "Lihavoi pmuunnelma" 2 menuText U PgnColor "Vrit" 2 menuText U PgnColorHeader "Otsikko..." 0 menuText U PgnColorAnno "Merkinnt..." 0 menuText U PgnColorComments "Kommentit..." 0 menuText U PgnColorVars "Muunnelmat..." 0 menuText U PgnColorBackground "Tausta..." 0 menuText U PgnColorMain "Pmuunnelma..." 0 menuText U PgnColorCurrent "Nykyisen siirron tausta..." 0 menuText U PgnColorNextMove "Seuraavan siirron tausta..." 0 menuText U PgnHelp "Ohje" 0 menuText U PgnHelpPgn "PGN-ohje" 0 menuText U PgnHelpIndex "Aakkosellinen" 0 translate U PgnWindowTitle {Siirrot - peli %u} # Crosstable window menus: menuText U CrosstabFile "Tiedosto" 0 menuText U CrosstabFileText "Tulosta tekstitiedostoon..." 9 menuText U CrosstabFileHtml "Tulosta HTML-tiedostoon..." 8 menuText U CrosstabFileLaTeX "Tulosta LaTeX-tiedostoon..." 8 menuText U CrosstabFileClose "Sulje ristitaulukko" 0 menuText U CrosstabEdit "Muokkaa" 0 menuText U CrosstabEditEvent "Tapahtuma" 0 menuText U CrosstabEditSite "Paikka" 0 menuText U CrosstabEditDate "Pvm" 0 menuText U CrosstabOpt "Nytt" 0 menuText U CrosstabOptAll "Tyskierroskilpailu" 0 menuText U CrosstabOptSwiss "Swiss" 0 menuText U CrosstabOptKnockout "Cup-kilpailu" 0 menuText U CrosstabOptAuto "Auto" 0 menuText U CrosstabOptAges "Ik" 0 menuText U CrosstabOptNats "Kansallisuudet" 0 menuText U CrosstabOptRatings "Vahvuusluvuut" 0 menuText U CrosstabOptTitles "Tittelit" 0 menuText U CrosstabOptBreaks "Tie-Break" 4 menuText U CrosstabOptDeleted "Huomioi poistetut pelit" 0 menuText U CrosstabOptColors "Vrit (vain Swiss)" 0 menuText U CrosstabOptColumnNumbers "Numeroidut sarakkeet (vain tyskierroskilpailu)" 0 menuText U CrosstabOptGroup "Ryhmtulokset" 0 menuText U CrosstabSort "Lajittele" 0 menuText U CrosstabSortName "Nimi" 0 menuText U CrosstabSortRating "Vahvuusluku" 0 menuText U CrosstabSortScore "Tulos" 0 menuText U CrosstabColor "Vri" 0 menuText U CrosstabColorPlain "Teksti" 0 menuText U CrosstabColorHyper "Hyperteksti" 0 menuText U CrosstabHelp "Ohje" 0 menuText U CrosstabHelpCross "Ristitaulukon ohje" 0 menuText U CrosstabHelpIndex "Aakkosellinen ohje" 0 translate U SetFilter {Aseta suodatin} translate U AddToFilter {Lis suodattimeen} translate U Swiss {Swiss} translate U Category {Kategoria} # Opening report window menus: menuText U OprepFile "Tiedosto" 0 menuText U OprepFileText "Tulosta tekstitiedostoon..." 1 menuText U OprepFileHtml "Tulosta HTML-tiedostoon..." 8 menuText U OprepFileLaTeX "Tulosta LaTeXtiedostoon..." 8 menuText U OprepFileOptions "Asetukset..." 0 menuText U OprepFileClose "Sulje raportti-ikkuna" 0 menuText U OprepFavorites "Suosikit" 2 menuText U OprepFavoritesAdd "Lis raportti..." 3 menuText U OprepFavoritesEdit "Muokkaa raportin suosikkeja..." 0 menuText U OprepFavoritesGenerate "Luo raportteja..." 4 menuText U OprepHelp "Ohje" 2 menuText U OprepHelpReport "Avausraportin ohje" 0 menuText U OprepHelpIndex "Aakkosellinen ohje" 0 # Repertoire editor: menuText U RepFile "Tiedosto" 0 menuText U RepFileNew "Uusi" 0 menuText U RepFileOpen "Avaa..." 0 menuText U RepFileSave "Tallenna..." 2 menuText U RepFileSaveAs "Tallenna nimell..." 4 menuText U RepFileClose "Sulje ikkuna" 0 menuText U RepEdit "Muokkaa" 0 menuText U RepEditGroup "Lis ryhm" 3 menuText U RepEditInclude "Lis mukaan otettava linja" 0 menuText U RepEditExclude "Lis poistettava linja" 0 menuText U RepView "Nyt" 0 menuText U RepViewExpand "Laajenna kaikki ryhmt" 0 menuText U RepViewCollapse "Pienenn kaikki ryhmt" 0 menuText U RepSearch "Haku" 0 menuText U RepSearchAll "Kaikkialta..." 0 menuText U RepSearchDisplayed "Vain nytetyist riveist..." 0 menuText U RepHelp "Ohje" 3 menuText U RepHelpRep "Repertuaarin ohje" 0 menuText U RepHelpIndex "aakkosellinen ohje" 0 translate U RepSearch "Repertuaarihaku" translate U RepIncludedLines "mukaan otettavat linjat" translate U RepExcludedLines "poistettavat linjat" translate U RepCloseDialog {Tss repertuaarissa on tallentamattomia muutoksia. Haluatko jatkaa ja hylt tekemsi mutokset? } # Header search: translate U HeaderSearch {Haku otsikkotiedoista} translate U EndSideToMove {Siirtovuoro pelin lopussa} translate U GamesWithNoECO {Ei ECO-koodia} translate U GameLength {Pelin pituus} translate U FindGamesWith {Merkityt pelit} translate U StdStart {Ei-standardi alku} translate U Promotions {Korotukset} translate U Comments {Kommentit} translate U Variations {Muunnelmat} translate U Annotations {Annotaatiot} translate U DeleteFlag {Poistomerkki} translate U WhiteOpFlag {Valkean avaus} translate U BlackOpFlag {Mustan avaus} translate U MiddlegameFlag {Keskipeli} translate U EndgameFlag {Loppupeli} translate U NoveltyFlag {Uutuus} translate U PawnFlag {Sotilasasema} translate U TacticsFlag {Taktiikka} translate U QsideFlag {Kuningatarsivustan peli} translate U KsideFlag {Kuningassivustan peli} translate U BrilliancyFlag {Loistosiirto} translate U BlunderFlag {Virhe (Blunder)} translate U UserFlag {Kyttj} translate U PgnContains {PGN sislt teksti} translate U Annotator {Annotoija} translate U Cmnts {Vain annotoidut pelit} # Game list window: translate U GlistNumber {Numero} translate U GlistWhite {Valkea} translate U GlistBlack {Musta} translate U GlistWElo {V-Elo} translate U GlistBElo {M-Elo} translate U GlistEvent {Tapahtuma} translate U GlistSite {Paikka} translate U GlistRound {Kierros} translate U GlistDate {Pvm} translate U GlistYear {Vuosi} translate U GlistEDate {Tapahtuman pvm} translate U GlistResult {Tulos} translate U GlistLength {Pituus} translate U GlistCountry {Maa} translate U GlistECO {ECO} translate U GlistOpening {Avaus} translate U GlistEndMaterial {Loppumateriaali} translate U GlistDeleted {Poistettu} translate U GlistFlags {Merkit} translate U GlistVars {Muunnelmat} translate U GlistComments {Kommentit} translate U GlistAnnos {Annotaatiot} translate U GlistStart {Alk} translate U GlistGameNumber {Peli nro} translate U GlistAverageElo {Keskim. Elo} translate U GlistRating {Vahvuusluku} translate U GlistFindText {Etsi teksti} translate U GlistMoveField {Siirto} translate U GlistEditField {Asetukset} translate U GlistAddField {Lis} translate U GlistDeleteField {Poista} translate U GlistWidth {Leveys} translate U GlistAlign {Tasaus} translate U GlistAlignL {Tasaa vasen} translate U GlistAlignR {Tasaa oikea} translate U GlistAlignC {Keskit} translate U GlistColor {Vri} translate U GlistSep {Erotin} translate U GlistCurrentSep {-- Nykyinen --} translate U GlistNewSort {Uusi} translate U GlistAddToSort {Lis} translate U GsortSort {Lajittele...} translate U GsortDate {Pvm.} translate U GsortYear {Vuosi} translate U GsortEvent {Tapahtuma} translate U GsortSite {Paikka} translate U GsortRound {Kierros} translate U GsortWhiteName {Valkea nimi} translate U GsortBlackName {Musta nimi} translate U GsortECO {ECO} translate U GsortResult {Tulos} translate U GsortMoveCount {Siirtolkm.} translate U GsortAverageElo {Keskim. Elo} translate U GsortCountry {Maa} translate U GsortDeleted {Poistettu} translate U GsortEventDate {Tapahtuman pvm.} translate U GsortWhiteElo {Valkea Elo} translate U GsortBlackElo {Musta Elo} translate U GsortComments {Kommentit} translate U GsortVariations {Muunnelmat} translate U GsortNAGs {NAG} translate U GsortAscending {Nouseva} translate U GsortDescending {Laskeva} translate U GsortAdd {Lis} translate U GsortStore {Varastoi} translate U GsortLoad {Lataa} # menu shown with right mouse button down on game list. translate U GlistRemoveThisGameFromFilter {Tm peli pois suodattimesta} translate U GlistRemoveGameAndAboveFromFilter {Tm ja kaikki edeltvt pois suodattimesta} translate U GlistRemoveGameAndBelowFromFilter {Tm ja kaikki seuraavat pois suodattimesta} translate U GlistDeleteGame {Poista tm peli (kumoa)} translate U GlistDeleteAllGames {Poista kaikki suodatetut pelit} translate U GlistUndeleteAllGames {Kumoa kaikkien suodatettujen pelien poisto} translate U GlistMergeGameInBase {Yhdist peli toiseen kantaan} # Maintenance window: translate U DatabaseName {Tietokannan nimi:} translate U TypeIcon {Tyyppi:} translate U NumOfGames {Pelit:} translate U NumDeletedGames {Poistetut pelit:} translate U NumFilterGames {Suodatetut pelit:} translate U YearRange {Vuodet:} translate U RatingRange {Vahvuusluvut:} translate U Description {Kuvaus} translate U Flag {Merkit} translate U CustomFlags {Omat merkit} translate U DeleteCurrent {Poista nykyinen peli} translate U DeleteFilter {Poista suodatetut pelit} translate U DeleteAll {Poista kaikki pelit} translate U UndeleteCurrent {Kumoa nykyisen poisto} translate U UndeleteFilter {Kumoa suodatettujen poisto} translate U UndeleteAll {Kumoa kaikkien poisto} translate U DeleteTwins {Poista tuplat} translate U MarkCurrent {Merkitse nykyinen peli} translate U MarkFilter {Merkitse suodatetut pelit} translate U MarkAll {Merkite kaikki pelit} translate U UnmarkCurrent {Poista merkint nykyisest} translate U UnmarkFilter {Poista merkint suodatetuista} translate U UnmarkAll {Poista merkint kaikista} translate U Spellchecking {Oikeinkirjoitus} translate U Players {Pelaajat} translate U Events {Tapahtumat} translate U Sites {Paikat} translate U Rounds {Kierrokset} translate U DatabaseOps {Tietokantaoperaatiot} translate U ReclassifyGames {ECO-luokittele pelit} translate U CompactDatabase {Tiivist kanta} translate U SortDatabase {Lajittele kanta} translate U AddEloRatings {Lis Elo-luvut} translate U AutoloadGame {Lataa automaattisesti peli nro} translate U StripTags {Poista PGN-merkinnt} translate U StripTag {Poista merkint} translate U Cleaner {Puhdistaja} translate U CleanerHelp { Scidin Puhdistaja tekee nykyiselle tietokannalle alla olevasta listasta valitsemasi yllpitotoimet. Voit valita kytettviksi mys nykyiset ECO- ja tuplien poistoasetukset. } translate U CleanerConfirm { Puhdistajaa ei voi pysytt! Suurilla tietokannoilla puhdistusajo voi kest todella kauan, riippuen valitsemistasi asetuksista. Oletko varma, ett haluat ajaa puhdistusajon? } # Twinchecker translate U TwinCheckUndelete {Vaihda valinta; "u" peruu poiston} translate U TwinCheckprevPair {Edellinen pari} translate U TwinChecknextPair {Seuraava pari} translate U TwinChecker {Scid: Tuplien poisto} translate U TwinCheckTournament {Pelit turnauksessa:} translate U TwinCheckNoTwin {Ei tupla} translate U TwinCheckNoTwinfound {Pelille ei lytynyt tuplaa.\nNhdksesi tuplat tss ikkunassa valitse "Poista tuplat..." -toiminto.} translate U TwinCheckTag {Yhteiset merkinnt...} translate U TwinCheckFound1 {Scid lysi $result tuplaa} translate U TwinCheckFound2 { ja asetti niille poistomerkinnn} translate U TwinCheckNoDelete {Ei poistettavia pelej tietokannassa.} translate U TwinCriteria1 { Asetuksillasi lytyy todennkisesti valetuplia,\neli pelej joissa on samat siirrot, mutta jotka eivt ole tuplia.} translate U TwinCriteria2 {Mikli valitset "Ei" samoille siirroille, sinun pitisi valita "Kyll" vreille, tapahtumalle, kierrokselle, vuodelle ja kuukaudelle.\nHaluatko silti jatkaa? } translate U TwinCriteria3 {Kannattaa valita "Kyll" ainakin kahdelle seuraavista "sama paikka", "sama kierros" ja "sama vuosi".\nHaluatko silti jatkaa?} translate U TwinCriteriaConfirm {Scid: Vahvista tupla-asetukset} translate U TwinChangeTag "Muuta seuraavat merkinnt:\n\n" translate U AllocRatingDescription "Tm komento kytt oikeinkirjoitustiedostoa mrittkseen Elo-luvut tietokannan peleille. Mikli pelaajalla ei ole voimassa olevaa lukua, kytetn oikeinkirjoitustiedostossa olevaa lukua peliajankohtana - mikli sellainen on olemassa." translate U RatingOverride "Kirjoita yli olemassaolevat luvut?" translate U AddRatings "Lis vahvuusluvut:" translate U AddedRatings {Scid lissi $r Elo-lukua $g peliin.} #Bookmark editor translate U NewSubmenu "Uusi alivalikko" # Comment editor: translate U AnnotationSymbols {Annotaatiosymbolit:} translate U Comment {Kommentti:} translate U InsertMark {Lis merkint} translate U InsertMarkHelp { Lis/poista merkint: Valitse vri, tyyppi, ruutu. Lis/poista nuoli: Hiiren kakkosnapilla kaksi ruutua. } # Nag buttons in comment editor: translate U GoodMove {Hyv siirto} translate U PoorMove {Huono siirto} translate U ExcellentMove {Erinomainen siirto} translate U Blunder {Virhe (Blunder)} translate U InterestingMove {Mielenkiintoinen siirto} translate U DubiousMove {Epilyttv siirto} translate U WhiteDecisiveAdvantage {Valkealla on ratkaiseva etu} translate U BlackDecisiveAdvantage {Mustalla on ratkaiseva etu} translate U WhiteClearAdvantage {Valkealla on selv etu} translate U BlackClearAdvantage {Mustalla on selv etu} translate U WhiteSlightAdvantage {Valkealla on hieman etua} translate U BlackSlightAdvantage {Mustalla on hieman etua} translate U Equality {Tasa-asema} translate U Unclear {Epselv} translate U Diagram {Kaavio} # Board search: translate U BoardSearch {Asemahaku} translate U FilterOperation {Operaatio nykyiselle suodattimelle:} translate U FilterAnd {AND (rajoita suodatinta)} translate U FilterOr {OR (Lis suodattimeen)} translate U FilterIgnore {IGNORE (Alusta suodatin)} translate U SearchType {Hakutapa:} translate U SearchBoardExact {Tsmllinen (kaikki nappulat samoissa ruuduissa)} translate U SearchBoardPawns {Sotilaat (sama materiaali, sotilaat samoissa ruuduissa)} translate U SearchBoardFiles {Rivit (sama materiaali, sotilaat samoilla riveill)} translate U SearchBoardAny {Kaikki (sama materiaali, sotilaat ja upseerit miss tahansa)} translate U SearchInRefDatabase { Etsi referenssikannasta } translate U LookInVars {Etsi mys muunnelmista} # Material search: translate U MaterialSearch {Materiaalhaku} translate U Material {Materiaali} translate U Patterns {Tunnusmerkit} translate U Zero {Nolla} translate U Any {Kaikki} translate U CurrentBoard {Nykyinen lauta} translate U CommonEndings {Yleiset loppupelit} translate U CommonPatterns {Yleiset tunnusmerkit} translate U MaterialDiff {Materiaaliero} translate U squares {ruudut} translate U SameColor {Sama vri} translate U OppColor {Vastavri} translate U Either {Molemmat} translate U MoveNumberRange {Siirtonumerot} translate U MatchForAtLeast {Yhteisen vhintn} translate U HalfMoves {puolisiirtoa} # Common endings in material search: translate U EndingPawns {Sotilasloppupelit} translate U EndingRookVsPawns {Torni vs. sotilas(-aat)} translate U EndingRookPawnVsRook {Torni ja 1 sotilas vs. torni} translate U EndingRookPawnsVsRook {Torni ja sotilaita vs. torni} translate U EndingRooks {Torni vs. torni} translate U EndingRooksPassedA {Torni vs. torni ja a-vapaasotilas} translate U EndingRooksDouble {Nelitorniloppupelit} translate U EndingBishops {Lhetti vs. lhetti} translate U EndingBishopVsKnight {Lhetti vs. ratsu} translate U EndingKnights {Ratsu vs. ratsu} translate U EndingQueens {Kuningatar vs. kuningatar} translate U EndingQueenPawnVsQueen {Kuningatar ja 1 sotilas vs. kuningatar} translate U BishopPairVsKnightPair {Kaksi lhetti vs. kaksi ratsua keskipeliss} # Common patterns in material search: translate U PatternWhiteIQP {Valkea IQP} translate U PatternWhiteIQPBreakE6 {Valkea IQP: d4-d5 murto vs. e6} translate U PatternWhiteIQPBreakC6 {Valkea IQP: d4-d5 murto vs. c6} translate U PatternBlackIQP {Musta IQP} translate U PatternWhiteBlackIQP {Valkea IQP vs. musta IQP} translate U PatternCoupleC3D4 {Valkea c3+d4 eristetty sotilaspari} translate U PatternHangingC5D5 {Musta riippuvat sotilaat c5 ja d5} translate U PatternMaroczy {Maroczy-keskusta (sotilaat c4 ja e4)} translate U PatternRookSacC3 {Tornin uhraus c3:een} translate U PatternKc1Kg8 {O-O-O vs. O-O (Kc1 vs. Kg8)} translate U PatternKg1Kc8 {O-O vs. O-O-O (Kg1 vs. Kc8)} translate U PatternLightFian {Vaalearuutuiset sivustoinnit (lhetti g2 vs. lhetti b7)} translate U PatternDarkFian {Tummaruutuiset sivustoinnit (lhetti b2 vs. lhetti g7)} translate U PatternFourFian {Nelj sivustointia (Lhetit b2,g2,b7,g7)} # Game saving: translate U Today {Tnn} translate U ClassifyGame {Luokittele peli} # Setup position: translate U EmptyBoard {Tyhj lauta} translate U InitialBoard {Alkuasema} translate U SideToMove {Siirtovuorossa} translate U MoveNumber {Siirto nro} translate U Castling {Linnoitus} translate U EnPassantFile {Ohestalynti} translate U ClearFen {Tyhjenn FEN} translate U PasteFen {Liit FEN} translate U SaveAndContinue {Tallenna ja jatka} translate U DiscardChangesAndContinue {Hylk mutokset\nja jatka} translate U GoBack {Takaisin} # Replace move dialog: translate U ReplaceMove {Korvaa siirto} translate U AddNewVar {Lis uusi muunnelma} translate U NewMainLine {Uusi pmuunnelma} translate U ReplaceMoveMessage {Siirto on jo olemassa. Voit korvata sen ja poistaa samalla kaiki seuraavat siirrot tai list siirtosi uutena muunnelmana. (Jos et halua nhd tt varoitusta jatkossa, muuta toiminto "Kysy ennen korvaamista" valikosta.)} # Make database read-only dialog: translate U ReadOnlyDialog {Jos muutat tmn kannan vain luku -moodiin, mitn muutoksia ei sallita. Pelej ei voi tallentaa tai korvata, eik poistomerkintj muuttaa. Kaikki tekemsi ECO-luokitukset ja lajittelut ovat tilapisi. Voit helposti muuttaa kannan takaisin kirjoitusmoodiin sulkemalla ja avaamalla sen uudestaan. Haluatko varmasti muuttaa kannan vain luku -moodiin?} # Clear game dialog: translate U ClearGameDialog {Tt peli on muutettu. Haluatko jatkaa ja hylt kaikki tehdyt muutokset? } # Exit dialog: translate U ExitDialog {Haluatko todella sulkea Scidin?} translate U ExitUnsaved {Seuraavissa kannoissa on tallentamattomia muutoksia. Jos lopetat, muutokset menetetn.} # Import window: translate U PasteCurrentGame {Liit nykyinen peli} translate U ImportHelp1 {Syt tai liit peli yllolevaan kehykseen PGN-muodossa.} translate U ImportHelp2 {Pelin tuonnissa ilmenneet virheet nytetn tss.} translate U OverwriteExistingMoves {Kirjoitetaanko vanhojen siirtojen plle?} # ECO Browser: translate U ECOAllSections {Kaikki ECO-osiot} translate U ECOSection {ECO-osio} translate U ECOSummary {Yhteenveto:} translate U ECOFrequency {Alikoodien yleisyys:} # Opening Report: translate U OprepTitle {Avausraportti} translate U OprepReport {Raportti} translate U OprepGenerated {Luonut:} translate U OprepStatsHist {Tilastot ja historia} translate U OprepStats {Tilastot} translate U OprepStatAll {Kaikki raportin pelit} translate U OprepStatBoth {Molemmilla vahvuusluku} translate U OprepStatSince {alkaen} translate U OprepOldest {Vanhimmat pelit} translate U OprepNewest {Uusimmat pelit} translate U OprepPopular {Nykyinen suosio} translate U OprepFreqAll {Yleisyys kaikkina vuosina: } translate U OprepFreq1 {Viimeisimpn vuotena: } translate U OprepFreq5 {Viimeisimpin 5 vuotena thn pivn: } translate U OprepFreq10 {Viimeisimpin 10 vuotena thn pivn: } translate U OprepEvery {kerran joka %u peliss} translate U OprepUp {yls %u%s kaikista vuosista} translate U OprepDown {alas %u%s kaikista vuosista} translate U OprepSame {ei muutosta kaikista vuosista} translate U OprepMostFrequent {Yleisimmt pelaajat} translate U OprepMostFrequentOpponents {Yleisimmt vastustajat} translate U OprepRatingsPerf {Vahvuusluvut ja suoritusluvut} translate U OprepAvgPerf {Keskivahvuudet ja -suoritusluvut} translate U OprepWRating {Valkean vahvuusluku} translate U OprepBRating {Mustan vahvuusluku} translate U OprepWPerf {Valkean suoritusluku} translate U OprepBPerf {Mustan suoritusluku} translate U OprepHighRating {Pelit, joilla korkein keskivahvuus} translate U OprepTrends {Tulostrendit} translate U OprepResults {Tulosten pituudet ja yleisyys} translate U OprepLength {Pelin pituus} translate U OprepFrequency {Yleisyys} translate U OprepWWins {Valkea voittaa: } translate U OprepBWins {Musta voittaa: } translate U OprepDraws {Tasapeli: } translate U OprepWholeDB {koko tietokanta} translate U OprepShortest {Lyhimmt voitot} translate U OprepMovesThemes {Siirrot ja teemat} translate U OprepMoveOrders {Siirtojrjestykset raportin asemaan} translate U OprepMoveOrdersOne \ {Vain yksi siirtojrjestys, jolla thn asemaan on pdytty:} translate U OprepMoveOrdersAll \ { %u siirtojrjestyst johti thn asemaan:} translate U OprepMoveOrdersMany \ {%u siirtojrjestyst johti thn asemaan. Yleisimmt %u ovat:} translate U OprepMovesFrom {Siirrot raportin asemasta} translate U OprepMostFrequentEcoCodes {Yleisimmt ECO-koodit} translate U OprepThemes {Asemalliset teemat} translate U OprepThemeDescription {Teemojen yleisyys ensimmisiss %u siirrossa} translate U OprepThemeSameCastling {Linnoitukset samalle puolelle} translate U OprepThemeOppCastling {Linnoitukset vastakkaisille puolille} translate U OprepThemeNoCastling {Kumpikaan ei linnoita} translate U OprepThemeKPawnStorm {Kuningassivustan sotilasvyry} translate U OprepThemeQueenswap {Kuningatarten vaihto} translate U OprepThemeWIQP {Valkean eristetty kuningatarsotilas} translate U OprepThemeBIQP {Mustan eristetty kuningatarsotilas} translate U OprepThemeWP567 {Valkean sotilas 5./6./7. rivill} translate U OprepThemeBP234 {Mustan sotilas 2./3./4. rivill} translate U OprepThemeOpenCDE {Avoin c/d/e-linja} translate U OprepTheme1BishopPair {Lhettipari vain toisella} translate U OprepEndgames {Loppupelit} translate U OprepReportGames {Raportin pelit} translate U OprepAllGames {Kaikki pelit} translate U OprepEndClass {Materiaali pelin lopussa} translate U OprepTheoryTable {Teoriataulukko} translate U OprepTableComment {Luotu %u korkeimmalle rankatusta pelist.} translate U OprepExtraMoves {Erikoisesti huomioitavat siirrot teoriataulukossa} translate U OprepMaxGames {Maksimimr pelej teoriataulukossa} translate U OprepViewHTML {Nyt HTML} translate U OprepViewLaTeX {Nyt LaTeX} # Player Report: translate U PReportTitle {Pelaajaraportti} translate U PReportColorWhite {valkeilla} translate U PReportColorBlack {mustilla} translate U PReportMoves { %s jlkeen} translate U PReportOpenings {Avaukset} translate U PReportClipbase {Tyhjenn leikekanta ja kopioi suodatetut pelit siihen} # Piece Tracker window: translate U TrackerSelectSingle {Hiiren ykksnappi valitsee tmn nappulan.} translate U TrackerSelectPair {Hiiren ykksnappi valitsee tmn nappulan; kakkosnappi valitsee mys toisen samanlaisen.} translate U TrackerSelectPawn {Hiiren ykksnappi valitsee tmn sotilaan; kakkosnappi valitsee kaikki 8 sotilasta.} translate U TrackerStat {Tilastot} translate U TrackerGames {% peleist, joissa siirto ruutuun} translate U TrackerTime {% ajasta kussakin ruudussa} translate U TrackerMoves {Siirrot} translate U TrackerMovesStart {Seuranta alkaa siirrosta:} translate U TrackerMovesStop {Seuranta loppuu siirtoon:} # Game selection dialogs: translate U SelectAllGames {Kaikki tietokannan pelit} translate U SelectFilterGames {Vain suodatetut pelit} translate U SelectTournamentGames {Vain nykyisen turnauksen pelit} translate U SelectOlderGames {Vain vanhemmat pelit} # Delete Twins window: translate U TwinsNote {Peli on tupla jonkin toisen pelin kanssa: Peleill on samat pelaajat ja lisksi alla mritetyt kriteerit tyttyvt. Kun tuplapari lytyy, lyhyempi peleist poistetaan. Vihje: Kannattaa tarkistaa kannan oikeinkirjoitus ennen tuplien poistoa, koska monien pelaajien nimist on useita kirjoitustapoja. } translate U TwinsCriteria {Kriteerit: Tuplissa tytyy olla...} translate U TwinsWhich {Mit pelej tarkastellaan} translate U TwinsColors {Samat pelaajien vrit?} translate U TwinsEvent {Sama tapahtuma (turnaus)?} translate U TwinsSite {Sama paikka?} translate U TwinsRound {Sama kierros?} translate U TwinsYear {Sama vuosi?} translate U TwinsMonth {Sama kuukausi?} translate U TwinsDay {Sama piv?} translate U TwinsResult {Sama tulos?} translate U TwinsECO {Sama ECO-koodi?} translate U TwinsMoves {Samat siirrot?} translate U TwinsPlayers {Verrataan pelaajien nimi:} translate U TwinsPlayersExact {Tsmlleen samat} translate U TwinsPlayersPrefix {Ensimmiset 4 kirjainta} translate U TwinsWhen {Tuplia poistettaessa:} translate U TwinsSkipShort {Ohita kaikki alle 5 siirron pelit?} translate U TwinsUndelete {Ensin kumoa kaikkien pelien poisto?} translate U TwinsSetFilter {Aseta suodatin nyttmn kaikki poistetut tuplat?} translate U TwinsComments {Silyt aina pelit, joissa on kommentteja?} translate U TwinsVars {Silyt aina pelit, joissa on muunnelmia?} translate U TwinsDeleteWhich {Mik peli poistetaan:} translate U TwinsDeleteShorter {Lyhyempi} translate U TwinsDeleteOlder {Pienempi numero pelilistauksessa} translate U TwinsDeleteNewer {Suurempi numero pelilistauksessa} translate U TwinsDelete {Poista pelit} # Name editor window: translate U NameEditType {Muokattavan nimen tyyppi} translate U NameEditSelect {Muokattavat pelit} translate U NameEditReplace {Korvaa} translate U NameEditWith {kanssa} translate U NameEditMatches {Osumat: Tee valinta painamalla Ctrl+1 - Ctrl+9} translate U CheckGames {Tarkista pelit} translate U CheckGamesWhich {Tarkista pelit} translate U CheckAll {Kaikki pelit} translate U CheckSelectFilterGames {Vain suodattimen pelit} # Classify window: translate U Classify {Luokittele} translate U ClassifyWhich {Mitk pelit ECO-luokitellaan} translate U ClassifyAll {Kaikki pelit (kirjoita yli vanhat ECO-koodit)} translate U ClassifyYear {Viimeisimmn vuoden aikana pelatut} translate U ClassifyMonth {Viimeisimmn kuukauden aikana pelatut} translate U ClassifyNew {Vain pelit, joilla ei ole ECO-koodia entuudestaan} translate U ClassifyCodes {Kytettvt ECO-koodit} translate U ClassifyBasic {Vain standardit ECO-koodit ("B12", ...)} translate U ClassifyExtended {Scid-laajennukset ("B12j", ...)} # Compaction: translate U NameFile {Nimitiedosto} translate U GameFile {Pelitiedosto} translate U Names {Nimet} translate U Unused {Kyttmtn} translate U SizeKb {Koko (kb)} translate U CurrentState {Nykyinen status} translate U AfterCompaction {Tiivistmisen jlkeen} translate U CompactNames {Tiivist nimitiedosto} translate U CompactGames {Tiivist pelitiedosto} translate U NoUnusedNames "Ei kyttmttmi nimi, nimitiedosto on valmiiksi tysin tiivistetty." translate U NoUnusedGames "Pelitiedosto on valmiiksi tysin tiivistetty." translate U NameFileCompacted {Nimitiedosto tietokannalle "[file tail [sc_base filename]]" on tiivistetty.} translate U GameFileCompacted {Pelitiedosto tietokannalle "[file tail [sc_base filename]]" on tiivistetty.} # Sorting: translate U SortCriteria {Kriteerit} translate U AddCriteria {Lis kriteeri} translate U CommonSorts {Yleiset lajittelut} translate U Sort {Lajittele} # Exporting: translate U AddToExistingFile {Lis pelit olemassaolevaan tiedostoon?} translate U ExportComments {Vie kommentit?} translate U ExportVariations {Vie muunnelmat?} translate U IndentComments {Sisenn kommentit?} translate U IndentVariations {Sisenn muunnelmat?} translate U ExportColumnStyle {Saraketyyli (siirto per rivi)?} translate U ExportSymbolStyle {Symboolit annotaatioissa:} translate U ExportStripMarks {Poista ruutu-/nuolimerkit kommenteista?} # Goto game/move dialogs: translate U LoadGameNumber {Ladattavan pelin numero:} translate U GotoMoveNumber {Siirry siirtoon nro:} # Copy games dialog: translate U CopyGames {Kopioi pelit} translate U CopyConfirm { Haluatko varmasti kopioida suodattimen [::utils::thousands $nGamesToCopy] pelit tietokannasta "$fromName" tietokantaan "$targetName"? } translate U CopyErr {Ei voi kopioida} translate U CopyErrSource {lhdekanta} translate U CopyErrTarget {kohdekanta} translate U CopyErrNoGames {ei sisll pelej suodattimessa} translate U CopyErrReadOnly {on vain-luku} translate U CopyErrNotOpen {ei ole auki} # Colors: translate U LightSquares {Vaaleat ruudut} translate U DarkSquares {Tummat ruudut} translate U SelectedSquares {Valitut ruudut} translate U SuggestedSquares {Siirtoehdotusten ruudut} translate U WhitePieces {Valkeat nappulat} translate U BlackPieces {Mustat nappulat} translate U WhiteBorder {Valkea reuna} translate U BlackBorder {Musta reuna} # Novelty window: translate U FindNovelty {Etsi uutuus} translate U Novelty {Uutuus} translate U NoveltyInterrupt {Uutuuksien etsint keskeytetty} translate U NoveltyNone {Ei uutuuksia} translate U NoveltyHelp { Scid lyt pelin ensimmisen siirron, joka johtaa sellaiseen asemaan, jota ei lydy valitusta tietokannasta tai ECO-avauskirjasta. } # Sounds configuration: translate U SoundsFolder {nitiedostojen hakemisto} translate U SoundsFolderHelp {Hakemistosta pit lyty tiedostot King.wav, a.wav, 1.wav, jne} translate U SoundsAnnounceOptions {Siirtoilmoitusasetukset} translate U SoundsAnnounceNew {Ilmoita uudet siirrot} translate U SoundsAnnounceForward {Ilmoita, kun siirrytn eteenpin yksi siirto} translate U SoundsAnnounceBack {Ilmoita, kun siirrytn taaksepin yksi siirto} # Upgrading databases: translate U Upgrading {Pivitys} translate U ConfirmOpenNew { Tm on vanhaa muotoa (Scid 3) oleva tietokanta, jota ei voi avata Scid 4:ss. Uusi (Scid 4) versio on jo luotu, haluatko avata sen? } translate U ConfirmUpgrade { Tm on vanhaa muotoa (Scid 3) oleva tietokanta. Uuden muotoinen kanta tytyy luoda ennen kuin voit kytt sit Scid 4:ss. Pivitys luo uuden version tietokannasta ja poistaa sen jlkeen alkuperisen. Pivitys voi kest jonkin aikaa, mutta se tytyy tehd vain kerran. Mikli pivitys kest liian pitkn, voit keskeytt sen. Haluatko pivitt tmn tietokannan nyt? } # Recent files options: translate U RecentFilesMenu {Viimeaikaisten tiedostojen lkm Tiedosto-valikossa} translate U RecentFilesExtra {Viimeaikaisten tiedostojen lkm extra-alivalikossa} # My Player Names options: translate U MyPlayerNamesDescription { Lis alle kyttmsi pelaajanimet, yksi nimi per rivi. Voit kytt villikortteja (esim. "?" korvaa yksittisen merkin, "*" korvaa kuinka monta perkkist merkki hyvns). Aina kun Scid lataa pelin, jossa on kyttmsi pelaajanimi, peli nytetn pelaajan nkkulmasta. Tarvittaessa lauta knnetn niin, ett musta pelaa alhaalta yls. } #Coach translate U showblunderexists {nyt virheet} translate U showblundervalue {nyt virheen pistearvo} translate U showscore {nyt tulos} translate U coachgame {valmennus} translate U configurecoachgame {Taktisen pelin asetukset} translate U configuregame {Peliasetukset} translate U Phalanxengine {Phalanx-moottori} translate U Coachengine {Valmennusmoottori} translate U difficulty {vaikeusaste} translate U hard {vaikea} translate U easy {helppo} translate U Playwith {Pelaa} translate U white {valeilla} translate U black {mustilla} translate U both {molemmilla} translate U Play {Pelaa} translate U Noblunder {Ei virhe} translate U blunder {virhe} translate U Noinfo {-- Ei info --} translate U PhalanxOrTogaMissing {Phalanx tai Toga ei lydy} translate U moveblunderthreshold {sirto on virhe, jos tappio on enemmn kuin} translate U limitanalysis {rajoita koneanalyysin aikaa} translate U seconds {sekuntia} translate U Abort {Keskeyt} translate U Resume {Jatka} translate U OutOfOpening {Ei avauskirjastossa} translate U NotFollowedLine {Et seurannut avauslinjaa} translate U DoYouWantContinue {Haluatko jatkaa?} translate U CoachIsWatching {Valmentaja seuraa} translate U Ponder {Jatkuva analyysi} translate U LimitELO {Rajoita ELO-vahvuus} translate U DubiousMovePlayedTakeBack {Epilyttv siirto, haluatko peruuttaa sen?} translate U WeakMovePlayedTakeBack {Heikko siirto, haluatko peruuttaa sen?} translate U BadMovePlayedTakeBack {Huono siirto, haluatko peruuttaa sen?} translate U Iresign {Luovutan} translate U yourmoveisnotgood {siirtosi ei ole hyv} translate U EndOfVar {Muunnelman loppu} translate U Openingtrainer {Avausvalmentaja} translate U DisplayCM {Nyt ehdokassiirrot} translate U DisplayCMValue {Nyt ehdokassiirtojen arvot} translate U DisplayOpeningStats {Nyt tilastot} translate U ShowReport {Nyt raportti} translate U NumberOfGoodMovesPlayed {hyvi siirtoja} translate U NumberOfDubiousMovesPlayed {epilyttvi siirtoja} translate U NumberOfMovesPlayedNotInRepertoire {siirtoja, jotka eivt ole repertuaarissa} translate U NumberOfTimesPositionEncountered {kerta asemassa} translate U PlayerBestMove {Salli vain parhaat siirrot} translate U OpponentBestMove {Vastustaja pelaa parhaita siirtoja} translate U OnlyFlaggedLines {Vain merkityt muunnelmat} translate U resetStats {Nollaa tilastot} translate U Repertoiretrainingconfiguration {Repertuaarivalmennuksen asetukset} translate U Loadingrepertoire {Lataa repertuaari} translate U Movesloaded {Siirrot ladattu} translate U Repertoirenotfound {Repertuaaria ei lydy} translate U Openfirstrepertoirewithtype {Avaa ensimminen repertuaari, jonka kuvake/tyyppi on oikealla} translate U Movenotinrepertoire {Siirtoa ei lydy repertuaarista} translate U PositionsInRepertoire {Asemat repertuaarissa} translate U PositionsNotPlayed {Asemat, joita ei pelattu} translate U PositionsPlayed {Pelatut asemat} translate U Success {Onnistuminen} translate U DubiousMoves {Epilyttvt siirrot} translate U OutOfRepertoire {Ei repertuaarissa} translate U ConfigureTactics {Taktiikka-asetukset} translate U ResetScores {Nollaa tulokset} translate U LoadingBase {Ladataan kantaa} translate U Tactics {Taktiikat} translate U ShowSolution {Nyt ratkaisu} translate U NextExercise {Seuraava harjoitus} translate U PrevExercise {Edellinen harjoitus} translate U StopTraining {Lopeta harjoittelu} translate U Next {Seuraava} translate U ResettingScore {Nollataan tulokset} translate U LoadingGame {Ladataan peli} translate U MateFound {Matti lytyi} translate U BestSolutionNotFound {Paras ratkaisu ei lytynyt!} translate U MateNotFound {Matti ei lytynyt} translate U ShorterMateExists {On lyhyempikin matti} translate U ScorePlayed {Tulos} translate U Expected {odotustulos} translate U ChooseTrainingBase {Valitse harjoituskanta} translate U Thinking {Thinking} translate U AnalyzeDone {Analyysi valmis} translate U WinWonGame {Voita voittoasema} translate U Lines {Muunnelmat} translate U ConfigureUCIengine {UCI-moottorin asetukset} translate U SpecificOpening {Tietty avaus} translate U StartNewGame {Aloita uusi peli} translate U FixedLevel {Kiinte taso} translate U Opening {Avaus} translate U RandomLevel {Satunnainen taso} translate U StartFromCurrentPosition {Aloita tmnhetkisest asemasta} translate U FixedDepth {Kiinte syvyys} translate U Nodes {Noodit} translate U Depth {Syvyys} translate U Time {Aika} translate U SecondsPerMove {sekuntia per siirto} translate U Engine {Moottori} translate U TimeMode {Aikamoodi} translate U TimeBonus {Aika + bonus} translate U TimeMin {min} translate U TimeSec {s} translate U AllExercisesDone {Kaikki harjoitukset tehty} translate U MoveOutOfBook {Siirtoa ei lydy avauskirjasta} translate U LastBookMove {Viimeinen kirjasiirto} translate U AnnotateSeveralGames {Annotoi useita pelej\nalkaen nykyisest, ptten:} translate U FindOpeningErrors {Etsi avausvirheet} translate U MarkTacticalExercises {Merkitse taktiset harjoitukset} translate U UseBook {Kyt avauskirjaa} translate U MultiPV {Monia muunnelmia} translate U Hash {Vlimuisti} translate U OwnBook {Kyt moottorin avauskirjaa} translate U BookFile {Avauskirja} translate U AnnotateVariations {Annotoi muunnelmat} translate U ShortAnnotations {Lyhyet annotaatiot} translate U addAnnotatorTag {Lis merkint annotaattorista} translate U AddScoreToShortAnnotations {Lis tulos annotaatioihin} translate U Export {Vie} translate U BookPartiallyLoaded {Kirja osittain ladattu} translate U Calvar {Muunnelmien laskenta} translate U ConfigureCalvar {Asetukset} # Opening names used in tacgame.tcl translate U Reti {Reti} translate U English {English} translate U d4Nf6Miscellaneous {1.d4 Nf6 Miscellaneous} translate U Trompowsky {Trompowsky} translate U Budapest {Budapest} translate U OldIndian {Old Indian} translate U BenkoGambit {Benko Gambit} translate U ModernBenoni {Modern Benoni} translate U DutchDefence {Dutch Defence} translate U Scandinavian {Scandinavian} translate U AlekhineDefence {Alekhine Defence} translate U Pirc {Pirc} translate U CaroKann {Caro-Kann} translate U CaroKannAdvance {Caro-Kann Advance} translate U Sicilian {Sicilian} translate U SicilianAlapin {Sicilian Alapin} translate U SicilianClosed {Sicilian Closed} translate U SicilianRauzer {Sicilian Rauzer} translate U SicilianDragon {Sicilian Dragon} translate U SicilianScheveningen {Sicilian Scheveningen} translate U SicilianNajdorf {Sicilian Najdorf} translate U OpenGame {Open Game} translate U Vienna {Vienna} translate U KingsGambit {King's Gambit} translate U RussianGame {Russian Game} translate U ItalianTwoKnights {Italian/Two Knights} translate U Spanish {Spanish} translate U SpanishExchange {Spanish Exchange} translate U SpanishOpen {Spanish Open} translate U SpanishClosed {Spanish Closed} translate U FrenchDefence {French Defence} translate U FrenchAdvance {French Advance} translate U FrenchTarrasch {French Tarrasch} translate U FrenchWinawer {French Winawer} translate U FrenchExchange {French Exchange} translate U QueensPawn {Queen's Pawn} translate U Slav {Slav} translate U QGA {QGA} translate U QGD {QGD} translate U QGDExchange {QGD Exchange} translate U SemiSlav {Semi-Slav} translate U QGDwithBg5 {QGD with Bg5} translate U QGDOrthodox {QGD Orthodox} translate U Grunfeld {Grnfeld} translate U GrunfeldExchange {Grnfeld Exchange} translate U GrunfeldRussian {Grnfeld Russian} translate U Catalan {Catalan} translate U CatalanOpen {Catalan Open} translate U CatalanClosed {Catalan Closed} translate U QueensIndian {Queen's Indian} translate U NimzoIndian {Nimzo-Indian} translate U NimzoIndianClassical {Nimzo-Indian Classical} translate U NimzoIndianRubinstein {Nimzo-Indian Rubinstein} translate U KingsIndian {King's Indian} translate U KingsIndianSamisch {King's Indian Smisch} translate U KingsIndianMainLine {King's Indian Main Line} # FICS translate U ConfigureFics {FICS-asetukset} translate U FICSGuest {Kirjaudu vierailijana (Guest)} translate U FICSServerPort {Serveriportti} translate U FICSServerAddress {IP-osoite} translate U FICSRefresh {Pivit} translate U FICSTimesealPort {Timeseal portti} translate U FICSSilence {Konsolisuodatin} translate U FICSOffers {Tarjoukset} translate U FICSConsole {Konsoli} translate U FICSGames {Pelit} translate U FICSUnobserve {Lopeta seuraaminen} translate U FICSProfile {Nyt historia ja profiili} translate U FICSRelayedGames {Seurattavat pelit (Relay)} translate U FICSFindOpponent {Etsi vastustaja} translate U FICSTakeback {Peruuta siirto} translate U FICSTakeback2 {Peruuta 2} translate U FICSInitTime {Alkuaika (min)} translate U FICSIncrement {lis per siirto (s)} translate U FICSRatedGame {Vahvuuslaskentaan} translate U FICSAutoColour {automaattisesti} translate U FICSManualConfirm {vahvista} translate U FICSFilterFormula {Suodatin kaavalla} translate U FICSIssueSeek {Tee haku} translate U FICSChallenge {Haasta} translate U FICSAccept {hyvksy} translate U FICSDecline {hylk} translate U FICSColour {Vri} translate U FICSSend {lhet} translate U FICSConnect {yhdist} translate U FICSdefaultuservars {Kyt oletusmuuttujia} translate U FICSObserveconfirm {Haluatko seurata peli} # Game review translate U GameReview {Pelin arvioiminen} translate U GameReviewTimeExtended {Lisaika} translate U GameReviewMargin {Virhemarginaali} translate U GameReviewAutoContinue {Jatka automaattisesti, kun siirto on oikein} translate U GameReviewReCalculate {Kyt lisaikaa} translate U GameReviewAnalyzingMovePlayedDuringTheGame {Analysoidaan pelattua siirtoa} translate U GameReviewAnalyzingThePosition {Analysoidaan asemaa} translate U GameReviewEnterYourMove {Syt siirtosi} translate U GameReviewCheckingYourMove {Tarkistetaan siirtoa} translate U GameReviewYourMoveWasAnalyzed {Siirtosi on analysoitu} translate U GameReviewYouPlayedSameMove {Pelasit saman siirron kuin peliss} translate U GameReviewScoreOfYourMove {Siirtosi arvo} translate U GameReviewGameMoveScore {Pelisiirron arvo} translate U GameReviewEngineScore {Moottorin arvo} translate U GameReviewYouPlayedLikeTheEngine {Pelasit yht hyvin kuin moottori} translate U GameReviewNotEngineMoveButGoodMove {Eri siirto kuin moottorilla, mutta silti hyv} translate U GameReviewMoveNotGood {Tm ei ole hyv siirto, arvio: } translate U GameReviewMovesPlayedLike {Siirrot kuin} translate U GameReviewMovesPlayedEngine {Siirrot kuin moottorilla} # Correspondence Chess Dialogs: translate U CCDlgConfigureWindowTitle {Kirjeshakkiasetukset} translate U CCDlgCGeneraloptions {Yleiset} translate U CCDlgDefaultDB {Oletustietokanta:} translate U CCDlgInbox {Inbox/Saapuneet (polku):} translate U CCDlgOutbox {Outbox/Lhtevt (polku):} translate U CCDlgXfcc {Xfcc-asetukset:} translate U CCDlgExternalProtocol {Ulkoisten protokollien ksittelij (esim. Xfcc)} translate U CCDlgFetchTool {Noutotykalu:} translate U CCDlgSendTool {Lhetystykalu:} translate U CCDlgEmailCommunication {eMail} translate U CCDlgMailPrg {eMail-ohjelma:} translate U CCDlgBCCAddr {(B)CC-osoite:} translate U CCDlgMailerMode {Moodi:} translate U CCDlgThunderbirdEg {esim. Thunderbird, Mozilla Mail, Icedove...} translate U CCDlgMailUrlEg {esim. Evolution} translate U CCDlgClawsEg {esim. Sylpheed Claws} translate U CCDlgmailxEg {esim. mailx, mutt, nail...} translate U CCDlgAttachementPar {Liiteparametrit:} translate U CCDlgInternalXfcc {Kyt sisnrakennettua tukea Xfcc:lle} translate U CCDlgConfirmXfcc {Vahvista siirrot} translate U CCDlgSubjectPar {Otsikko:} translate U CCDlgDeleteBoxes {Tyhjenn In-/Outbox} translate U CCDlgDeleteBoxesText {Haluatko varmasti tyhjent Saapuneet ja Lhetetyt?\nTyhjennykse jlkeen sinun tytyy synkronoida nhdksesi tmnhetkiset asemat.} translate U CCDlgConfirmMove {Vahvista siirto} translate U CCDlgConfirmMoveText {Jos vahvistat, seuraava siirto kommentteineen lhetetn palvelimelle:} translate U CCDlgDBGameToLong {Epyhteninen pmuunnelma} translate U CCDlgDBGameToLongError {Pmuunnelma on pidempi kuin peli Saapuneet-kansiossa (Inbox). Mikli Saapuneet on ajan tasalla, on pelin pmuunnelmaan listty vahingossa siirtoja.\nLyhenn pmuunnelma ainakin siirtoon \n} translate U CCDlgStartEmail {Aloita uusi eMail-peli} translate U CCDlgYourName {Nimi:} translate U CCDlgYourMail {eMail-osoite:} translate U CCDlgOpponentName {Vastustajan nimi:} translate U CCDlgOpponentMail {Vastustajan eMail-osoite:} translate U CCDlgGameID {Peli ID (yksilllinen):} translate U CCDlgTitNoOutbox {Scid: Kirjeshakki - Lhtevt (Outbox)} translate U CCDlgTitNoInbox {Scid: Kirjeshakki - Saapuneet (Inbox)} translate U CCDlgTitNoGames {Scid: Ei kirjeshakkipelej} translate U CCErrInboxDir {Kirjeshakki - Saapuneet-hakemisto:} translate U CCErrOutboxDir {Kirjeshakki - Lhtevt-hakemisto:} translate U CCErrDirNotUsable {ei ole olemassa tai siihen ei saada yhteytt!\nTarkista ja korjaa asetukset.} translate U CCErrNoGames {ei sill pelej!\nNouda pelit ensin.} translate U CCDlgTitNoCCDB {Scid: Ei kirjeshakkitietokantaa} translate U CCErrNoCCDB {Ei lydy avointa 'Kirjeshakki (Correspondence)' tyyppist tietokantaa. Avaa ainakin yksi kirjeshakkikanta ennen kirjeshakkitoimintojen kytt.} translate U CCFetchBtn {Nouda pelit serverilt ja prosessoi Saapuneet (Inbox)} translate U CCPrevBtn {Edelliseen peliin} translate U CCNextBtn {Seuraavaan peliin} translate U CCSendBtn {Lhet siirto} translate U CCEmptyBtn {Tyhjenn Saapuneet ja Lhetetyt} translate U CCHelpBtn {Apua kuvakkeiden ja statussanomien tulkintaan.\nYleisemp apua saa painamalla F1!} translate U CCDlgServerName {Serverin nimi:} translate U CCDlgLoginName {Kyttjtunnus:} translate U CCDlgPassword {Salasana:} translate U CCDlgURL {Xfcc-URL:} translate U CCDlgRatingType {Vahvuuslukutyyppi:} translate U CCDlgDuplicateGame {Ei-yksilllinen peli-ID} translate U CCDlgDuplicateGameError {Tm peli lytyy useammasta kuin yhdest tietokannastasi. Poista tuplat ja tiivist tietokantasi (Tiedosto/Yllpito/Tiivist kanta).} translate U CCDlgSortOption {Lajittelu:} translate U CCDlgListOnlyOwnMove {Vain ne, joissa olen siirtovuorossa} translate U CCOrderClassicTxt {Paika, Tapahtuma, Kierros, Tulos, Valkea, Musta} translate U CCOrderMyTimeTxt {Kelloni} translate U CCOrderTimePerMoveTxt {Aikaa per siirto ennen seuraavaa ajantarkastusta} translate U CCOrderStartDate {Aloituspvm.} translate U CCOrderOppTimeTxt {Vastustajan kello} translate U CCDlgConfigRelay {Seuraa pelej} translate U CCDlgConfigRelayHelp {Siirry sivulle http://www.iccf-webchess.com ja nyt seurattava peli. Jos net shakkilaudan, kopioi osoite selaimestasi URL alla olevaan listaan. Vain yksi osoite per rivi!\nEsim: http://www.iccf-webchess.com/MakeAMove.aspx?id=266452} # Connect Hardware dialogs translate U ExtHWConfigConnection {Ulkoisten laitteiden asetukset} translate U ExtHWPort {Portti} translate U ExtHWEngineCmd {Moottorin komento} translate U ExtHWEngineParam {Moottorin parametri} translate U ExtHWShowButton {Nyt painike} translate U ExtHWHardware {Hardware} translate U ExtHWNovag {Novag Citrine} translate U ExtHWInputEngine {Input Engine} translate U ExtHWNoBoard {Ei lautaa} translate U NovagReferee {Referee} # Input Engine dialogs translate U IEConsole {Input Engine Console} translate U IESending {Siirrot lhetetn} translate U IESynchronise {Synkronoi} translate U IERotate {Knn} translate U IEUnableToStart {Input Engine ei voi kynnisty:} # Calculation of Variations translate U DoneWithPosition {Asema valmis} translate U Board {Lauta} translate U showGameInfo {Nyt pelin tiedot} translate U autoResizeBoard {Sd laudan koko automaattisesti} translate U DockTop {Siirr ylimmksi} translate U DockBottom {Siirr alimmaksi} translate U DockLeft {Siirr vasemmalle} translate U DockRight {Siirr oikealle} translate U Undock {Vapauta lukitus} # Switcher window translate U ChangeIcon {Vaihda kuvake...} } # end of english.tcl scid-4.3.0.cvs20120311/tcl/lang/checklangs.tcl0000755000175000017500000000616511727223077017762 0ustar oliveroliver#!/usr/bin/tclsh ### ### checklangs.tcl ### # This script is not part of the Scid source code; it is a standalone # program which verifies that every language file has the same # translation commands in the same order as english.tcl. array set codes { czech C deutsch D francais F greek G hungary H italian I nederlan N norsk O polish P portbr B russian R serbian Y spanish S swedish W catalan K suomi U greek G } set languages {czech deutsch francais hungary italian nederlan norsk polish portbr spanish swedish serbian russian catalan suomi greek } ################################################################################ # handle multiple lines statements and keep only lines with # menuText translate helpMsg proc multiLines {tmp} { set data {} for {set i 0} {$i < [llength $tmp]} {incr i} { set line [lindex $tmp $i] if {[string first "\{" $line] != -1 && [string first "\}" $line] == -1 } { incr i while { [string first "\}" [lindex $tmp $i] ] == -1 && $i < [llength $tmp] } { append line "\n[lindex $tmp $i]" incr i } append line "\n[lindex $tmp $i]" } lappend data $line } set strippedData {} foreach line $data { if { [catch {set command [lindex $line 0]} ] } { continue } else { if { $command == "menuText" || $command == "translate" || $command == "helpMsg" } { lappend strippedData $line } } } return $strippedData } ################################################################################ proc checkfile {code langfile} { # Read this language file and the english file: set f [open english.tcl r] set data [read $f] close $f set tmp [split $data "\n"] set englishData [multiLines $tmp] set f [open $langfile.tcl r] set data [read $f] close $f set tmp [split $data "\n"] set langData [multiLines $tmp] set langNames {} foreach line $langData { if { [catch {set command [lindex $line 0]} ] } { # puts "problem->$line" continue } set lang [lindex $line 1] set name [lindex $line 2] if {$lang == $code && ($command == "menuText" || $command == "translate" || $command == "helpMsg")} { lappend langNames $command:$name } } set lastMatch -1 foreach line $englishData { if { [catch {set command [lindex $line 0]} ] } { continue } set lang [lindex $line 1] set name [lindex $line 2] if {$lang == "E" && ($command == "menuText" || $command == "translate" || $command == "helpMsg")} { set thisMatch [lsearch -exact $langNames $command:$name] if {$thisMatch < 0} { puts "$langfile - MISSING: $name" } else { if {$thisMatch != $lastMatch + 1} { puts "$langfile - OUT OF ORDER: $command $lang $name" } set lastMatch $thisMatch } } } } ################################################################################ if {[llength $argv] == 0} { set argv $languages } foreach language $argv { if {[info exists codes($language)]} { checkfile $codes($language) $language } else { puts "No such language file: $language" } } scid-4.3.0.cvs20120311/tcl/lang/serbian.tcl0000644000175000017500000030662311727223077017302 0ustar oliveroliver### serbian.tcl: # Serbian menus for Scid. # Contributed by Milos Pejovic. addLanguage Y Serbian 2 iso8859-2 proc setLanguage_Y {} { # File menu: menuText Y File "Fajl" 0 menuText Y FileNew "Novi..." 0 {Kreiraj novu Scid bazu podataka} menuText Y FileOpen "Otvori..." 0 {Otvori postojeu Scid bazu podataka} menuText Y FileClose "Zatvori" 0 {Zatvori aktivnu Scid bazu podataka} menuText Y FileFinder "Traga" 0 {Pokreni Fajl Traga} menuText Y FileBookmarks "Markeri" 0 {Meni sa markerima (preica: Ctrl+B)} menuText Y FileBookmarksAdd "Dodaj u markere" 0 \ {Dodaj u markere tekuu partiju iz baze i poziciju} menuText Y FileBookmarksFile "Arhiviraj marker" 0 \ {Arhiviraj marker za tekuu partiju i poziciju} menuText Y FileBookmarksEdit "Izmeni markere..." 0 \ {Izmeni menije markera} menuText Y FileBookmarksList "Prikai foldere kao jedinstvenu listu" 0 \ {Prikai foldere markera kao jedinstvenu listu, bez podmenija} menuText Y FileBookmarksSub "Prikai foldere kao podmenije" 0 \ {Prikai foldere markera kao podmenije, ne jedinstvenu listu} menuText Y FileMaint "Odravanje" 0 {Alati za odravanje Scid baze podataka} menuText Y FileMaintWin "Prozor odravanja" 0 \ {Otvori/zatvori prozor odravanja Scid baze podataka} menuText Y FileMaintCompact "Komprimuj bazu..." 0 \ {Uini fajlove baze kompaktnijim, uklanjajui obrisane partije i nekoriena imena} menuText Y FileMaintClass "EO-Klasifikacija partija..." 2 \ {Klasifikacija svih partija po otvaranju} menuText Y FileMaintSort "Sortiraj bazu..." 0 \ {Sortiraj sve partije u bazi podataka} menuText Y FileMaintDelete "Izbrii udvojene partije..." 0 \ {Nai udvojene partije i oznai ih za brisanje} menuText Y FileMaintTwin "Provera udvojenih partija" 0 \ {Otvori/osvei prozor za proveru udvojenih partija} menuText Y FileMaintName "Imena" 0 {Promena imena i kontrola pravopisa} menuText Y FileMaintNameEditor "Editor imena" 0 \ {Otvori/zatvori editor imena} menuText Y FileMaintNamePlayer "Provera pravopisa imena igraa..." 11 \ {Provera pravopisa imena igraa pomou spellcheck fajla} menuText Y FileMaintNameEvent "Provera pravopisa imena turnira..." 11 \ {Provera pravopisa imena turnira pomou spellcheck fajla} menuText Y FileMaintNameSite "Provera pravopisa imena mesta..." 11 \ {Provera pravopisa imena mesta pomou spellcheck fajla} menuText Y FileMaintNameRound "Provera pravopisa kola..." 11 \ {Provera pravopisa kola pomou spellcheck fajla} menuText Y FileReadOnly "Read-only..." 0 \ {Sprei izmene u tekuoj bazi} menuText Y FileSwitch "Switch to database" 0 \ {Switch to a different opened database} ;# *** menuText Y FileExit "Izai" 1 {Izlazak iz Scid-a} # ====== TODO To be translated ====== menuText Y FileMaintFixBase "Fix corrupted base" 0 {Try to fix a corrupted base} # Edit menu: menuText Y Edit "Izmene" 0 menuText Y EditAdd "Dodaj varijantu" 0 {Dodaj varijantu potezu u partiji} menuText Y EditDelete "Obrii varijantu" 0 {Obrii varijantu za ovaj potez} menuText Y EditFirst "Postavi prvu varijantu" 5 \ {Postavi varijantu kao prvu u listi} menuText Y EditMain "Postavi varijantu na glavnu liniju" 21 \ {Postavi varijantu na glavnu liniju} menuText Y EditTrial "Probaj varijantu" 0 \ {Pokreni/zaustavi mod za testiranje ideje na tabli} menuText Y EditStrip "Ukloni" 2 {Ukloni komentare ili varijante iz ove partije} # ====== TODO To be translated ====== menuText Y EditUndo "Undo" 0 {Undo last game change} menuText Y EditStripComments "Komentare" 0 \ {Ukloni sve komentare i napomene iz ove partije} menuText Y EditStripVars "Varijante" 0 {Ukloni sve varijante iz ove partije} menuText Y EditStripBegin "Moves from the beginning" 1 \ {Strip moves from the beginning of the game} ;# *** menuText Y EditStripEnd "Moves to the end" 0 \ {Strip moves to the end of the game} ;# *** menuText Y EditReset "Isprazni Clipbase" 0 \ {Resetuje clipbase da bude potpuno prazan} menuText Y EditCopy "Kopiraj ovu partiju na Clipbase" 0 \ {Kopiraj ovu partiju na clipbase partija} menuText Y EditPaste "Prenesi poslednju clipbase partiju" 0 \ {Prenesi aktivnu clipbase partiju ovde} menuText Y EditPastePGN "Paste Clipboard text as PGN game..." 10 \ {Interpret the clipboard text as a game in PGN notation and paste it here} ;# *** menuText Y EditSetup "Namesti poetnu poziciju..." 0 \ {Namesti poetnu poziciju za ovu partiju} menuText Y EditCopyBoard "Copy position" 6 \ {Copy the current board in FEN notation to the text selection (klipbord)} ;# *** menuText Y EditPasteBoard "Prenesi poetnu poziciju" 9 \ {Postavi poetnu poziciju na osnovu trenutno izabranog teksta (klipbord)} # Game menu: menuText Y Game "Partija" 0 menuText Y GameNew "Nova partija" 0 \ {Pokreni novu partiju, sa gubljenjem svih izmena} menuText Y GameFirst "Uitaj prvu partiju" 5 {Uitaj prvu filtriranu partiju} menuText Y GamePrev "Uitaj prethodnu partiju" 5 {Uitaj prethodnu filtriranu partiju} menuText Y GameReload "Osvei trenutnu partiju" 3 \ {Osvei ovu partiju, sa gubljenjem svih izmena} menuText Y GameNext "Uitaj sledeu partiju" 5 {Uitaj sledeu filtriranu partiju} menuText Y GameLast "Uitaj poslednju partiju" 8 {Uitaj poslednju filtriranu partiju} menuText Y GameRandom "Load Random Game" 8 {Load a random filtered game} ;# *** menuText Y GameNumber "Uitaj partiju broj..." 5 \ {Uitaj partiju, unosei njen broj} menuText Y GameReplace "Sauvaj: Zameni partiju..." 6 \ {Sauvaj ovu partiju preko stare partiju u bazi} menuText Y GameAdd "Sauvaj: Dodaj novu partiju..." 6 \ {Sauvaj ovu partiju kao novu u bazi} menuText Y GameDeepest "Identifikuj otvaranje" 0 \ {Idi na poslednju poziciju partije koja odgovara knjizi otvaranja} menuText Y GameGotoMove "Idi na potez broj..." 5 \ {Idi na odreeni broj potez u tekuoj partiji} menuText Y GameNovelty "Pronai novost..." 8 \ {Pronai prvi potez ove partije koji nije igran ranije} # Search Menu: menuText Y Search "Pretrai" 3 menuText Y SearchReset "Resetuj filter" 0 {Resetuj filter da bi sve partije bile ukljuene} menuText Y SearchNegate "Invertuj filter" 0 {Invertuj filter da ukljui samo iskljuene partije} menuText Y SearchCurrent "Tekua pozicija..." 0 {Pretrauj prema tekuoj poziciji na tabli} menuText Y SearchHeader "Zaglavlje..." 0 {Pretrauj prema informacijama iz zaglavlja (igra, turnir, itd)} menuText Y SearchMaterial "Materijal/Pozicije..." 0 {Pretrauj prema materijalu i poziciji} menuText Y SearchUsing "Pomou Search fajla..." 0 {Pretrauj pomou Search fajla} # Windows menu: menuText Y Windows "Prozori" 1 menuText Y WindowsComment "Editor komentara" 0 {Otvori/zatvori editor komentara} menuText Y WindowsGList "Lista partija" 0 {Otvori/zatvori listu partija} menuText Y WindowsPGN "PGN prozor" 0 \ {Otvori/zatvori PGN prozor (sa podacima o partiji)} menuText Y WindowsPList "Player Finder" 2 {Open/close the player finder} ;# *** menuText Y WindowsTmt "Turnir traga" 2 {Otvori/zatvori turnir traga} menuText Y WindowsSwitcher "Bira baza" 0 \ {Otvori/zatvori bira baza} menuText Y WindowsMaint "Prozor odravanja" 0 \ {Otvori/zatvori prozor odravanja} menuText Y WindowsECO "EO prikaziva" 0 {Otvori/zatvori EO prikaziva} menuText Y WindowsRepertoire "Editor repertoara otvaranja" 0 \ {Otvori/zatvori editor repertoara otvaranja} menuText Y WindowsStats "Statistiki prozor" 0 \ {Otvori/zatvori prozor statistika filtera} menuText Y WindowsTree "Stablo varijanata" 0 {Otvori/zatvori stablo varijanata} menuText Y WindowsTB "Tabela zavrnica" 1 \ {Otvori/zatvori tabelu zavrnica} # ====== TODO To be translated ====== menuText Y WindowsBook "Book Window" 0 {Open/close the Book window} # ====== TODO To be translated ====== menuText Y WindowsCorrChess "Correspondence Window" 0 {Open/close the Correspondence window} # Tools menu: menuText Y Tools "Alati" 0 menuText Y ToolsAnalysis "Program za analizu..." 0 \ {Pokreni/zaustavi ahovski program za analizu} menuText Y ToolsAnalysis2 "Program za analizu #2..." 17 \ {Pokreni/zaustavi drugi ahovski program za analizu} menuText Y ToolsCross "Tabela turnira" 0 {Pokai tabelu turnira za ovu partiju} menuText Y ToolsEmail "Email menader" 0 \ {Otvori/zatvori menader za korespodentske partije preko email-a} menuText Y ToolsFilterGraph "Filter graph" 7 \ {Open/close the filter graph window} ;# *** # ====== TODO To be translated ====== menuText Y ToolsAbsFilterGraph "Abs. Filter Graph" 7 {Open/close the filter graph window for absolute values} menuText Y ToolsOpReport "Izvetaj o otvaranjima" 0 \ {Napravi izvetaj o otvaranjima za trenutnu poziciju} # ====== TODO To be translated ====== menuText Y ToolsOpenBaseAsTree "Open base as tree" 0 {Open a base and use it in Tree window} # ====== TODO To be translated ====== menuText Y ToolsOpenRecentBaseAsTree "Open recent base as tree" 0 {Open a recent base and use it in Tree window} menuText Y ToolsTracker "Piece Tracker" 0 {Open the Piece Tracker window} ;# *** # ====== TODO To be translated ====== menuText Y ToolsTraining "Training" 0 {Training tools (tactics, openings,...) } # ====== TODO To be translated ====== menuText Y ToolsTacticalGame "Tactical game" 0 {Play a game with tactics} # ====== TODO To be translated ====== menuText Y ToolsSeriousGame "Serious game" 0 {Play a serious game} # ====== TODO To be translated ====== menuText Y ToolsTrainOpenings "Openings" 0 {Train with a repertoire} # ====== TODO To be translated ====== menuText Y ToolsTrainReviewGame "Review game" 0 {Guess moves played in a game} # ====== TODO To be translated ====== menuText Y ToolsTrainTactics "Tactics" 0 {Solve tactics} # ====== TODO To be translated ====== menuText Y ToolsTrainCalvar "Calculation of variations" 0 {Calculation of variations training} # ====== TODO To be translated ====== menuText Y ToolsTrainFindBestMove "Find best move" 0 {Find best move} # ====== TODO To be translated ====== menuText Y ToolsTrainFics "Play on internet" 0 {Play on freechess.org} # ====== TODO To be translated ====== menuText Y ToolsBookTuning "Book tuning" 0 {Book tuning} # ====== TODO To be translated ====== menuText Y ToolsConnectHardware "Connect Hardware" 0 {Connect external hardware} # ====== TODO To be translated ====== menuText Y ToolsConnectHardwareConfigure "Configure..." 0 {Configure external hardware and connection} # ====== TODO To be translated ====== menuText Y ToolsConnectHardwareNovagCitrineConnect "Connect Novag Citrine" 0 {Connect Novag Citrine} # ====== TODO To be translated ====== menuText Y ToolsConnectHardwareInputEngineConnect "Connect Input Engine" 0 {Connect Input Engine (e.g. DGT)} menuText Y ToolsPInfo "Informacije o igrau" 0 \ {Otvori/osvei informacije o igrau} menuText Y ToolsPlayerReport "Player Report..." 3 \ {Generate a player report} ;# *** menuText Y ToolsRating "Grafikon rejtinga" 0 \ {Iscrtava grafik istorije rejtinga igraa u tekuoj partiji} menuText Y ToolsScore "Grafikon skora" 0 {Prikai grafikon skora} menuText Y ToolsExpCurrent "Izvezi tekuu partiju" 8 \ {Snimi tekuu partiju u tekstualni fajl} menuText Y ToolsExpCurrentPGN "Izvezi partiju u PGN fajl..." 17 \ {Snimi tekuu partiju u PGN fajl} menuText Y ToolsExpCurrentHTML "Izvezi partiju u HTML fajl..." 17 \ {Snimi tekuu partiju u HTML fajl} # ====== TODO To be translated ====== menuText Y ToolsExpCurrentHTMLJS "Export Game to HTML and JavaScript File..." 15 {Write current game to a HTML and JavaScript file} menuText Y ToolsExpCurrentLaTeX "Izvezi partiju u LaTeX fajl..." 17 \ {Snimi tekuu partiju u LaTeX fajl} menuText Y ToolsExpFilter "Izvezi sve filtrirane partije" 1 \ {Snimi sve filtrirane partije u tekstualni fajl} menuText Y ToolsExpFilterPGN "Izvezi filtrirane partije u PGN fajl..." 28 \ {Snimi sve filtrirane partije u PGN fajl} menuText Y ToolsExpFilterHTML "Izvezi filtrirane partije u HTML fajl..." 28 \ {Snimi sve filtrirane partije u HTML fajl} # ====== TODO To be translated ====== menuText Y ToolsExpFilterHTMLJS "Export Filter to HTML and JavaScript File..." 17 {Write all filtered games to a HTML and JavaScript file} menuText Y ToolsExpFilterLaTeX "Izvezi filtrirane partije u LaTeX fajl..." 28 \ {Snimi sve filtrirane partije u LaTeX fajl} menuText Y ToolsImportOne "Uvezi jednu PGN partiju..." 0 \ {Uvezi jednu partiju iz PGN fajla} menuText Y ToolsImportFile "Uvezi vie PGN partija..." 6 \ {Uvezi vie partija iz PGN fajla} # ====== TODO To be translated ====== menuText Y ToolsStartEngine1 "Start engine 1" 0 {Start engine 1} # ====== TODO To be translated ====== menuText Y ToolsStartEngine2 "Start engine 2" 0 {Start engine 2} # ====== TODO To be translated ====== menuText Y ToolsCaptureBoard "Capture Current Board..." 0 {Save the current board as an image.} # ====== TODO To be translated ====== menuText Y Play "Play" 0 # ====== TODO To be translated ====== menuText Y CorrespondenceChess "Correspondence Chess" 0 {Functions for eMail and Xfcc based correspondence chess} # ====== TODO To be translated ====== menuText Y CCConfigure "Configure..." 0 {Configure external tools and general setup} # ====== TODO To be translated ====== menuText Y CCConfigRelay "Configure observations..." 10 {Configure games to be observed} # ====== TODO To be translated ====== menuText Y CCOpenDB "Open Database..." 0 {Open the default Correspondence database} # ====== TODO To be translated ====== menuText Y CCRetrieve "Retrieve Games" 0 {Retrieve games via external (Xfcc-)helper} # ====== TODO To be translated ====== menuText Y CCInbox "Process Inobx" 0 {Process all files in scids Inbox} # ====== TODO To be translated ====== menuText Y CCSend "Send Move" 0 {Send your move via eMail or external (Xfcc-)helper} # ====== TODO To be translated ====== menuText Y CCResign "Resign" 0 {Resign (not via eMail)} # ====== TODO To be translated ====== menuText Y CCClaimDraw "Claim Draw" 0 {Send move and claim a draw (not via eMail)} # ====== TODO To be translated ====== menuText Y CCOfferDraw "Offer Draw" 0 {Send move and offer a draw (not via eMail)} # ====== TODO To be translated ====== menuText Y CCAcceptDraw "Accept Draw" 0 {Accept a draw offer (not via eMail)} # ====== TODO To be translated ====== menuText Y CCNewMailGame "New eMail Game..." 0 {Start a new eMail game} # ====== TODO To be translated ====== menuText Y CCMailMove "Mail Move..." 0 {Send the move via eMail to the opponent} # ====== TODO To be translated ====== menuText Y CCGamePage "Game Page..." 0 {Call up the game via the web browser} # ====== TODO To be translated ====== menuText Y CCEditCopy "Copy Gamelist to Clipbase" 0 {Copy the games as CSV list to clipbase} # Options menu: menuText Y Options "Opcije" 0 menuText Y OptionsBoard "Chessboard" 0 {Chess board appearance options} ;# *** menuText Y OptionsBoardSize "Veliina table" 0 {Promeni veliinu table} menuText Y OptionsBoardPieces "Board Piece Style" 6 \ {Change the board piece style} ;# *** menuText Y OptionsBoardColors "Boje" 0 {Promeni boje table} # ====== TODO To be translated ====== menuText Y OptionsBoardGraphics "Squares..." 0 {Select textures for squares} # ====== TODO To be translated ====== translate Y OptionsBGW {Select texture for squares} # ====== TODO To be translated ====== translate Y OptionsBoardGraphicsText {Select graphic files for white and black squares:} menuText Y OptionsBoardNames "My Player Names..." 0 {Edit my player names} ;# *** menuText Y OptionsExport "Izvoz" 0 {Promeni opcije tekstualnog izvoza} menuText Y OptionsFonts "Fontovi" 0 {Promeni fontove} menuText Y OptionsFontsRegular "Obian" 0 {Promeni obian font} menuText Y OptionsFontsMenu "Menu" 0 {Change the menu font} ;# *** menuText Y OptionsFontsSmall "Mali" 0 {Promeni mali font} # ====== TODO To be translated ====== menuText Y OptionsFontsTiny "Tiny" 0 {Change the tiny font} menuText Y OptionsFontsFixed "Neproporcionalni" 0 {Promeni neproporcionalni font} menuText Y OptionsGInfo "Informacije o Partiji" 0 {Opcije informacija o partiji} menuText Y OptionsLanguage "Jezik" 0 {Izaberi jezik} # ====== TODO To be translated ====== menuText Y OptionsMovesTranslatePieces "Translate pieces" 0 {Translate first letter of pieces} # ====== TODO To be translated ====== menuText Y OptionsMovesHighlightLastMove "Highlight last move" 0 {Highlight last move} # ====== TODO To be translated ====== menuText Y OptionsMovesHighlightLastMoveDisplay "Show" 0 {Display last move Highlight} # ====== TODO To be translated ====== menuText Y OptionsMovesHighlightLastMoveWidth "Width" 0 {Thickness of line} # ====== TODO To be translated ====== menuText Y OptionsMovesHighlightLastMoveColor "Color" 0 {Color of line} menuText Y OptionsMoves "Potezi" 0 {Opcije unoenja poteza} menuText Y OptionsMovesAsk "Pitaj pre zamene poteza" 0 \ {Pitaj, da li se moe postojei zameniti novim potezom} menuText Y OptionsMovesAnimate "Animation time" 1 \ {Set the amount of time used to animate moves} ;# *** menuText Y OptionsMovesDelay "Odlaganje izmeu poteza..." 1 \ {Podesi vreme odlaganja pri automatskom pregledanju poteza} menuText Y OptionsMovesCoord "Unoenje koordinata poteza" 0 \ {Prihvati unoenje poteza pomou koordinata ("g1f3")} menuText Y OptionsMovesSuggest "Pokai preporuene poteze" 0 \ {Ukljui/iskljui preporuene poteze} # ====== TODO To be translated ====== menuText Y OptionsShowVarPopup "Show variations window" 0 {Turn on/off the display of a variations window} # ====== TODO To be translated ====== menuText Y OptionsMovesSpace "Add spaces after move number" 0 {Add spaces after move number} menuText Y OptionsMovesKey "Dopunjavanje poteza" 0 \ {Ukljui/iskljui dopunjavanje poteza zadatih tastaturom} # ====== TODO To be translated ====== menuText Y OptionsMovesShowVarArrows "Show Arrows for Variations" 0 {Turn on/off arrows showing moves in variations} menuText Y OptionsNumbers "Format brojeva" 0 {Izaberi format brojeva} menuText Y OptionsStartup "Startup" 3 {Select windows to open at startup} ;# *** # ====== TODO To be translated ====== menuText Y OptionsTheme "Theme" 0 {Change look of interface} menuText Y OptionsWindows "Prozori" 0 {Opcije prozora} menuText Y OptionsWindowsIconify "Auto-iconify" 5 \ {Iconify all windows when the main window is iconified} ;# *** menuText Y OptionsWindowsRaise "Auto podizanje" 0 \ {Podigni odreene prozore kad god su pokriveni} menuText Y OptionsSounds "Sounds..." 2 {Configure move announcement sounds} ;# *** # ====== TODO To be translated ====== menuText Y OptionsWindowsDock "Dock windows" 0 {Dock windows} # ====== TODO To be translated ====== menuText Y OptionsWindowsSaveLayout "Save layout" 0 {Save layout} # ====== TODO To be translated ====== menuText Y OptionsWindowsRestoreLayout "Restore layout" 0 {Restore layout} # ====== TODO To be translated ====== menuText Y OptionsWindowsShowGameInfo "Show game info" 0 {Show game info} # ====== TODO To be translated ====== menuText Y OptionsWindowsAutoLoadLayout "Auto load first layout" 0 {Auto load first layout at startup} menuText Y OptionsToolbar "Toolbar glavnog prozora" 12 \ {Prikai/sakrij toolbar glavnog prozora} menuText Y OptionsECO "Uitaj EO fajl..." 7 {Uitaj EO klasifikacioni fajl} menuText Y OptionsSpell "Uitaj fajl za kontrolu pravopisa..." 13 \ {Uitaj fajl za kontrolu pravopisa} menuText Y OptionsTable "Direktorijum baza zavrnica..." 0 \ {Izaberi fajl baze zavrnica; sve baze u direktorijumu e biti koriene} menuText Y OptionsRecent "Recent files..." 0 \ {Change the number of recent files displayed in the File menu} ;# *** # ====== TODO To be translated ====== menuText Y OptionsBooksDir "Books directory..." 0 {Sets the opening books directory} # ====== TODO To be translated ====== menuText Y OptionsTacticsBasesDir "Bases directory..." 0 {Sets the tactics (training) bases directory} menuText Y OptionsSave "Sauvaj opcije" 0 \ "Sauvaj sve opcije u fajl $::optionsFile" menuText Y OptionsAutoSave "Auto-sauvaj opcije na izlasku" 0 \ {Auto-sauvaj sve opcije pri izlasku iz Scid-a} # Help menu: menuText Y Help "Pomo" 2 menuText Y HelpContents "Contents" 0 {Show the help contents page} ;# *** menuText Y HelpIndex "Sadraj" 0 {Prikai glavnu stranu pomoi} menuText Y HelpGuide "Brzi vodi" 0 {Prikai brzi vodi} menuText Y HelpHints "Saveti" 0 {Prikai savete} menuText Y HelpContact "Kontakt" 0 {Prikai informacije o kontaktu} menuText Y HelpTip "Tip of the day" 0 {Show a useful Scid tip} ;# *** menuText Y HelpStartup "Startup prozor" 0 {Prikai startup prozor} menuText Y HelpAbout "O programu Scid" 0 {Informacije o programu Scid} # Game info box popup menu: menuText Y GInfoHideNext "Sakrij sledei potez" 0 menuText Y GInfoMaterial "Prikai vrednosti materijala" 0 menuText Y GInfoFEN "Prikai FEN" 8 menuText Y GInfoMarks "Show colored squares and arrows" 5 ;# *** menuText Y GInfoWrap "Prelomi dugake linije" 0 menuText Y GInfoFullComment "Show Full Comment" 10 ;# *** menuText Y GInfoPhotos "Show Photos" 5 ;# *** menuText Y GInfoTBNothing "Baza zavrnica: nita" 16 menuText Y GInfoTBResult "Baza zavrnica: samo rezultati" 16 menuText Y GInfoTBAll "Baza zavrnica: rezultat i najbolji potezi" 16 menuText Y GInfoDelete "Obrii/vrati ovu partiju" 0 menuText Y GInfoMark "Mark/Unmark this game" 0 ;# *** # ====== TODO To be translated ====== menuText Y GInfoInformant "Configure informant values" 0 # Main window buttons: helpMsg Y .main.fbutton.button.start {Idi na poetak partije (taster: Home)} helpMsg Y .main.fbutton.button.end {Idi na kraj partije (taster: End)} helpMsg Y .main.fbutton.button.back {Idi jedan potez nazad (taster: Levo)} helpMsg Y .main.fbutton.button.forward {Idi jedan potez napred (taster: Desno)} helpMsg Y .main.fbutton.button.intoVar {Prei na varijantu (taster preica: v)} helpMsg Y .main.fbutton.button.exitVar {Ostavi tekuu varijantu (taster preica: z)} helpMsg Y .main.fbutton.button.flip {Rotiraj tablu (taster preica: .)} helpMsg Y .main.fbutton.button.coords {Ukljui/iskljui koordinate table (taster preica: 0)} helpMsg Y .main.fbutton.button.stm {Turn the side-to-move icon on or off} ;# *** helpMsg Y .main.fbutton.button.autoplay {Automatski menjaj poteze (taster: Ctrl+Z)} # General buttons: translate Y Back {Nazad} translate Y Browse {Browse} ;# *** translate Y Cancel {Poniti} # ====== TODO To be translated ====== translate Y Continue {Continue} translate Y Clear {Oisti} translate Y Close {Zatvori} translate Y Contents {Contents} ;# *** translate Y Defaults {Podrazumevano} translate Y Delete {Obrii} translate Y Graph {Grafikon} translate Y Help {Pomo} translate Y Import {Uvoz} translate Y Index {Indeks} translate Y LoadGame {Uitaj partiju} translate Y BrowseGame {Browse game} ;# *** translate Y MergeGame {Merge game} ;# *** # ====== TODO To be translated ====== translate Y MergeGames {Merge Games} translate Y Preview {Preview} ;# *** translate Y Revert {Vrati se} translate Y Save {Sauvaj} translate Y Search {Trai} translate Y Stop {Stop} translate Y Store {Sauvaj} translate Y Update {Osvei} translate Y ChangeOrient {Promeni orijentaciju prozora} translate Y ShowIcons {Show Icons} ;# *** translate Y None {None} ;# *** translate Y First {Prvu} translate Y Current {Trenutna} translate Y Last {Poslednju} # General messages: translate Y game {partija} translate Y games {partije} translate Y move {potez} translate Y moves {potezi} translate Y all {sve} translate Y Yes {Da} translate Y No {Ne} translate Y Both {Oba} translate Y King {Kralj} translate Y Queen {Dama} translate Y Rook {Top} translate Y Bishop {Lovac} translate Y Knight {Skaka} translate Y Pawn {Peak} translate Y White {Beli} translate Y Black {Crni} translate Y Player {Igra} translate Y Rating {Rejting} translate Y RatingDiff {Razlika u rejtingu (Beli - Crni)} translate Y AverageRating {Average Rating} ;# *** translate Y Event {Turnir} translate Y Site {Mesto} translate Y Country {Zemlja} translate Y IgnoreColors {Ignorii boje} translate Y Date {Datum} translate Y EventDate {Datum turnira} translate Y Decade {Decade} ;# *** translate Y Year {Godina} translate Y Month {Mesec} translate Y Months {Januar Februar Mart April Maj Jun Jul Avgust Septembar Oktobar Novembar Decembar} translate Y Days {Ned Pon Uto Sre et Pet Sub} translate Y YearToToday {Godina do danas} translate Y Result {Rezultat} translate Y Round {Kolo} translate Y Length {Duina} translate Y ECOCode {EO kd} translate Y ECO {EO} translate Y Deleted {Izbrisano} translate Y SearchResults {Trai rezultate} translate Y OpeningTheDatabase {Otvaranje baze} translate Y Database {Baza} translate Y Filter {Filter} translate Y noGames {ni jedna partija} translate Y allGames {sve partije} translate Y empty {prazno} translate Y clipbase {clipbase} translate Y score {skor} translate Y StartPos {Poetna pozicija} translate Y Total {Ukupno} translate Y readonly {read-only} ;# *** # Standard error messages: translate Y ErrNotOpen {This is not an open database.} ;# *** translate Y ErrReadOnly {This database is read-only; it cannot be altered.} ;# *** translate Y ErrSearchInterrupted {Search was interrupted; results are incomplete.} ;# *** # Game information: translate Y twin {udvojena} translate Y deleted {izbrisana} translate Y comment {komentar} translate Y hidden {sakrivena} translate Y LastMove {Poslednji potez} translate Y NextMove {Sledei} translate Y GameStart {Poetak partije} translate Y LineStart {Poetak serije poteza} translate Y GameEnd {Kraj partije} translate Y LineEnd {Kraj serije poteza} # Player information: translate Y PInfoAll {Rezultati svih partija} translate Y PInfoFilter {Rezultati filtriranih partija} translate Y PInfoAgainst {Rezultati protiv} translate Y PInfoMostWhite {Najee igrana otvaranja sa belim figurama} translate Y PInfoMostBlack {Najee igrana otvaranja sa crnim figurama} translate Y PInfoRating {Istorija rejtinga} translate Y PInfoBio {Biography} ;# *** translate Y PInfoEditRatings {Edit Ratings} ;# *** # Tablebase information: translate Y Draw {Remi} translate Y stalemate {pat} translate Y withAllMoves {sa svim potezima} translate Y withAllButOneMove {sa svim osim jednog poteza} translate Y with {sa} translate Y only {samo} translate Y lose {gubi} translate Y loses {gubi} translate Y allOthersLose {svi ostali gube} translate Y matesIn {matira u} translate Y hasCheckmated {je matirao} translate Y longest {najdui} translate Y WinningMoves {Winning moves} ;# *** translate Y DrawingMoves {Drawing moves} ;# *** translate Y LosingMoves {Losing moves} ;# *** translate Y UnknownMoves {Unknown-result moves} ;# *** # Tip of the day: translate Y Tip {Tip} ;# *** translate Y TipAtStartup {Tip at startup} ;# *** # Tree window menus: menuText Y TreeFile "Fajl" 0 # ====== TODO To be translated ====== menuText Y TreeFileFillWithBase "Fill Cache with base" 0 {Fill the cache file with all games in current base} # ====== TODO To be translated ====== menuText Y TreeFileFillWithGame "Fill Cache with game" 0 {Fill the cache file with current game in current base} # ====== TODO To be translated ====== menuText Y TreeFileSetCacheSize "Cache size" 0 {Set the cache size} # ====== TODO To be translated ====== menuText Y TreeFileCacheInfo "Cache info" 0 {Get info on cache usage} menuText Y TreeFileSave "Sauvaj cache fajl" 0 {Sauvaj cache (.stc) fajl stabla} menuText Y TreeFileFill "Ispuni cache fajl" 0 \ {Ispuni cache fajl estim pozicijama otvaranja} menuText Y TreeFileBest "Lista najboljih partija" 0 {Prikai listu najboljih partija stabla} menuText Y TreeFileGraph "Prozor grafika" 0 {Prikai grafik za ovu granu stabla} menuText Y TreeFileCopy "Kopiraj tekst stabla u clipboard" 0 \ {Kopiraj statistike stabla u clipboard} menuText Y TreeFileClose "Zatvori stablo varijanata" 0 {Zatvori prozor stabla} # ====== TODO To be translated ====== menuText Y TreeMask "Mask" 0 # ====== TODO To be translated ====== menuText Y TreeMaskNew "New" 0 {New mask} # ====== TODO To be translated ====== menuText Y TreeMaskOpen "Open" 0 {Open mask} # ====== TODO To be translated ====== menuText Y TreeMaskOpenRecent "Open recent" 0 {Open recent mask} # ====== TODO To be translated ====== menuText Y TreeMaskSave "Save" 0 {Save mask} # ====== TODO To be translated ====== menuText Y TreeMaskClose "Close" 0 {Close mask} # ====== TODO To be translated ====== menuText Y TreeMaskFillWithGame "Fill with game" 0 {Fill mask with game} # ====== TODO To be translated ====== menuText Y TreeMaskFillWithBase "Fill with base" 0 {Fill mask with all games in base} # ====== TODO To be translated ====== menuText Y TreeMaskInfo "Info" 0 {Show statistics for current mask} # ====== TODO To be translated ====== menuText Y TreeMaskDisplay "Display mask map" 0 {Show mask data in a tree form} # ====== TODO To be translated ====== menuText Y TreeMaskSearch "Search" 0 {Search in current mask} menuText Y TreeSort "Sortiraj" 0 menuText Y TreeSortAlpha "Abecedno" 0 menuText Y TreeSortECO "EO kd" 0 menuText Y TreeSortFreq "Uestalost" 0 menuText Y TreeSortScore "Skor" 0 menuText Y TreeOpt "Opcije" 0 # ====== TODO To be translated ====== menuText Y TreeOptSlowmode "slow mode" 0 {Slow mode for updates (high accuracy)} # ====== TODO To be translated ====== menuText Y TreeOptFastmode "Fast mode" 0 {Fast mode for updates (no move transposition)} # ====== TODO To be translated ====== menuText Y TreeOptFastAndSlowmode "Fast and slow mode" 0 {Fast mode then slow mode for updates} # ====== TODO To be translated ====== menuText Y TreeOptStartStop "Auto refreshing" 0 {Toggles automatic refreshing of the tree window} menuText Y TreeOptLock "Zakljuaj" 0 {Zakljuaj/otkljuaj stablo za tekuu bazu} menuText Y TreeOptTraining "Trening" 0 {Ukljui/iskljui trening mod stabla} menuText Y TreeOptAutosave "Automatski sauvaj cache fajl" 0 \ {Automatski sauvaj cache fajl pri zatvaranju prozora stabla} menuText Y TreeHelp "Pomo" 0 menuText Y TreeHelpTree "Pomo za stablo" 0 menuText Y TreeHelpIndex "Sadraj pomoi" 0 translate Y SaveCache {Sauvaj cache} translate Y Training {Trening} translate Y LockTree {Zakljuaj} translate Y TreeLocked {zakljuano} translate Y TreeBest {Najbolje} translate Y TreeBestGames {Najbolje partije stabla} # Note: the next message is the tree window title row. After editing it, # check the tree window to make sure it lines up with the actual columns. translate Y TreeTitleRow \ { Move ECO Frequency Score AvElo Perf AvYear %Draws} ;# *** translate Y TreeTotal {UKUPNO} # ====== TODO To be translated ====== translate Y DoYouWantToSaveFirst {Do you want to save first} # ====== TODO To be translated ====== translate Y AddToMask {Add to Mask} # ====== TODO To be translated ====== translate Y RemoveFromMask {Remove from Mask} # ====== TODO To be translated ====== translate Y AddThisMoveToMask {Add this move to Mask} # ====== TODO To be translated ====== translate Y SearchMask {Search in Mask} # ====== TODO To be translated ====== translate Y DisplayMask {Display Mask} # ====== TODO To be translated ====== translate Y Nag {Nag code} # ====== TODO To be translated ====== translate Y Marker {Marker} # ====== TODO To be translated ====== translate Y Include {Include} # ====== TODO To be translated ====== translate Y Exclude {Exclude} # ====== TODO To be translated ====== translate Y MainLine {Main line} # ====== TODO To be translated ====== translate Y Bookmark {Bookmark} # ====== TODO To be translated ====== translate Y NewLine {New line} # ====== TODO To be translated ====== translate Y ToBeVerified {To be verified} # ====== TODO To be translated ====== translate Y ToTrain {To train} # ====== TODO To be translated ====== translate Y Dubious {Dubious} # ====== TODO To be translated ====== translate Y ToRemove {To remove} # ====== TODO To be translated ====== translate Y NoMarker {No marker} # ====== TODO To be translated ====== translate Y ColorMarker {Color} # ====== TODO To be translated ====== translate Y WhiteMark {White} # ====== TODO To be translated ====== translate Y GreenMark {Green} # ====== TODO To be translated ====== translate Y YellowMark {Yellow} # ====== TODO To be translated ====== translate Y BlueMark {Blue} # ====== TODO To be translated ====== translate Y RedMark {Red} # ====== TODO To be translated ====== translate Y CommentMove {Comment move} # ====== TODO To be translated ====== translate Y CommentPosition {Comment position} # ====== TODO To be translated ====== translate Y AddMoveToMaskFirst {Add move to mask first} # ====== TODO To be translated ====== translate Y OpenAMaskFileFirst {Open a mask file first} # ====== TODO To be translated ====== translate Y Positions {Positions} # ====== TODO To be translated ====== translate Y Moves {Moves} # Finder window: menuText Y FinderFile "Fajl" 0 menuText Y FinderFileSubdirs "Pogledaj u poddirektorijumima" 0 menuText Y FinderFileClose "Zatvori Fajl traga" 0 menuText Y FinderSort "Sortiraj" 0 menuText Y FinderSortType "Tip" 0 menuText Y FinderSortSize "Veliina" 0 menuText Y FinderSortMod "Modifikovano" 0 menuText Y FinderSortName "Ime" 0 menuText Y FinderSortPath "Staza" 0 menuText Y FinderTypes "Tipovi" 0 menuText Y FinderTypesScid "Scid baze" 0 menuText Y FinderTypesOld "Scid baze u starom formatu" 0 menuText Y FinderTypesPGN "PGN fajlovi" 0 menuText Y FinderTypesEPD "EPD (book) fajlovi" 0 menuText Y FinderTypesRep "Repertoar fajlovi" 0 menuText Y FinderHelp "Pomo" 0 menuText Y FinderHelpFinder "Pomo - Fajl traga" 0 menuText Y FinderHelpIndex "Sadraj pomoi" 0 translate Y FileFinder {Fajl traga} translate Y FinderDir {Direktorijum} translate Y FinderDirs {Direktorijumi} translate Y FinderFiles {Fajlovi} translate Y FinderUpDir {gore} # ====== TODO To be translated ====== translate Y FinderCtxOpen {Open} # ====== TODO To be translated ====== translate Y FinderCtxBackup {Backup} # ====== TODO To be translated ====== translate Y FinderCtxCopy {Copy} # ====== TODO To be translated ====== translate Y FinderCtxMove {Move} # ====== TODO To be translated ====== translate Y FinderCtxDelete {Delete} # Player finder: menuText Y PListFile "Fajl" 0 menuText Y PListFileUpdate "Osvei" 0 menuText Y PListFileClose "Close Player Finder" 0 ;# *** menuText Y PListSort "Sortiraj" 0 menuText Y PListSortName "Name" 0 ;# *** menuText Y PListSortElo "Elo" 0 menuText Y PListSortGames "Partije" 0 menuText Y PListSortOldest "Oldest" 0 ;# *** menuText Y PListSortNewest "Newest" 0 ;# *** # Tournament finder: menuText Y TmtFile "Fajl" 0 menuText Y TmtFileUpdate "Osvei" 0 menuText Y TmtFileClose "Zatvori Turnir traga" 0 menuText Y TmtSort "Sortiraj" 0 menuText Y TmtSortDate "Datum" 0 menuText Y TmtSortPlayers "Igrai" 0 menuText Y TmtSortGames "Partije" 0 menuText Y TmtSortElo "Elo" 0 menuText Y TmtSortSite "Mesto" 0 menuText Y TmtSortEvent "Turnir" 1 menuText Y TmtSortWinner "Pobednik" 0 translate Y TmtLimit "Ogranienje liste" translate Y TmtMeanElo "Najnii Elo" translate Y TmtNone "Nije pronaen odgovarajui turnir." # Graph windows: menuText Y GraphFile "Fajl" 0 menuText Y GraphFileColor "Sauvaj kao Postscript u boji..." 25 menuText Y GraphFileGrey "Sauvaj kao Postscript u sivim nivoima..." 25 menuText Y GraphFileClose "Zatvori prozor" 6 menuText Y GraphOptions "Opcije" 0 menuText Y GraphOptionsWhite "Beli" 0 menuText Y GraphOptionsBlack "Crni" 0 menuText Y GraphOptionsBoth "Oba" 1 menuText Y GraphOptionsPInfo "Informacije o igrau" 0 translate Y GraphFilterTitle "Filter graph: frequency per 1000 games" ;# *** # ====== TODO To be translated ====== translate Y GraphAbsFilterTitle "Filter Graph: frequency of the games" # ====== TODO To be translated ====== translate Y ConfigureFilter {Configure X-Axes for Year, Rating and Moves} # ====== TODO To be translated ====== translate Y FilterEstimate "Estimate" # ====== TODO To be translated ====== translate Y TitleFilterGraph "Scid: Filter Graph" # Analysis window: translate Y AddVariation {Dodaj varijantu} # ====== TODO To be translated ====== translate Y AddAllVariations {Add All Variations} translate Y AddMove {Dodaj potez} translate Y Annotate {Dodaj napomenu} # ====== TODO To be translated ====== translate Y ShowAnalysisBoard {Show analysis board} # ====== TODO To be translated ====== translate Y ShowInfo {Show engine info} # ====== TODO To be translated ====== translate Y FinishGame {Finish game} # ====== TODO To be translated ====== translate Y StopEngine {Stop engine} # ====== TODO To be translated ====== translate Y StartEngine {Start engine} # ====== TODO To be translated ====== translate Y LockEngine {Lock engine to current position} translate Y AnalysisCommand {Komanda analize} translate Y PreviousChoices {Prethodni izbori} translate Y AnnotateTime {Set the time between moves in seconds} ;# *** translate Y AnnotateWhich {Add variations} ;# *** translate Y AnnotateAll {For moves by both sides} ;# *** # ====== TODO To be translated ====== translate Y AnnotateAllMoves {Annotate all moves} translate Y AnnotateWhite {For White moves only} ;# *** translate Y AnnotateBlack {For Black moves only} ;# *** # ====== TODO To be translated ====== translate Y AnnotateBlundersOnly {When game move is an obvious blunder} # ====== TODO To be translated ====== translate Y AnnotateBlundersOnlyScoreChange {Analysis reports blunder, with score change from/to: } # ====== TODO To be translated ====== translate Y BlundersThreshold {Threshold} # TODO: Translate translate Y ScoreAllMoves {Score all moves} translate Y LowPriority {Low CPU priority} ;# *** # ====== TODO To be translated ====== translate Y ClickHereToSeeMoves {Click here to see moves} # ====== TODO To be translated ====== translate Y ConfigureInformant {Configure Informant} # ====== TODO To be translated ====== translate Y Informant!? {Interesting move} # ====== TODO To be translated ====== translate Y Informant? {Poor move} # ====== TODO To be translated ====== translate Y Informant?? {Blunder} # ====== TODO To be translated ====== translate Y Informant?! {Dubious move} # ====== TODO To be translated ====== translate Y Informant+= {White has a slight advantage} # ====== TODO To be translated ====== translate Y Informant+/- {White has a moderate advantage} # ====== TODO To be translated ====== translate Y Informant+- {White has a decisive advantage} # ====== TODO To be translated ====== translate Y Informant++- {The game is considered won} # ====== TODO To be translated ====== translate Y Book {Book} # ====== TODO To be translated ====== translate Y OtherBookMoves {Opponent's book} # ====== TODO To be translated ====== translate Y OtherBookMovesTooltip {Moves to which the opponent has a reply} # Analysis Engine open dialog: translate Y EngineList {Analysis Engine List} ;# *** translate Y EngineName {Name} ;# *** translate Y EngineCmd {Command} ;# *** translate Y EngineArgs {Parameters} ;# *** translate Y EngineDir {Directory} ;# *** translate Y EngineElo {Elo} translate Y EngineTime {Datum} translate Y EngineNew {New} ;# *** translate Y EngineEdit {Edit} ;# *** translate Y EngineRequired {Fields in bold are required; others are optional} ;# *** # Stats window menus: menuText Y StatsFile "Fajl" 0 menuText Y StatsFilePrint "Print to file..." 0 ;# *** menuText Y StatsFileClose "Close window" 0 ;# *** menuText Y StatsOpt "Opcije" 0 # PGN window menus: menuText Y PgnFile "Fajl" 0 menuText Y PgnFileCopy "Copy Game to Clipboard" 0 ;# *** menuText Y PgnFilePrint "tampaj u fajl..." 1 menuText Y PgnFileClose "Zatvori PGN prozor" 0 menuText Y PgnOpt "Prikaz" 0 menuText Y PgnOptColor "Prikaz u boji" 0 menuText Y PgnOptShort "Kratko (3-linije) zaglavlje" 0 menuText Y PgnOptSymbols "Simboliki komentari" 0 menuText Y PgnOptIndentC "Uvuci pasus kod komentara" 0 menuText Y PgnOptIndentV "Uvuci pasus kod varijanata" 16 menuText Y PgnOptColumn "Pasus stil (jedan potez po liniji)" 1 menuText Y PgnOptSpace "Blanko posle broja poteza" 0 menuText Y PgnOptStripMarks "Strip out colored square/arrow codes" 1 ;# *** menuText Y PgnOptBoldMainLine "Use Bold Text for Main Line Moves" 4 ;# *** menuText Y PgnColor "Boje" 0 menuText Y PgnColorHeader "Zaglavlje..." 0 menuText Y PgnColorAnno "Napomene..." 0 menuText Y PgnColorComments "Komentari..." 0 menuText Y PgnColorVars "Varijante..." 0 menuText Y PgnColorBackground "Pozadina..." 0 # ====== TODO To be translated ====== menuText Y PgnColorMain "Main line..." 0 # ====== TODO To be translated ====== menuText Y PgnColorCurrent "Current move background..." 1 # ====== TODO To be translated ====== menuText Y PgnColorNextMove "Next move background..." 0 menuText Y PgnHelp "Pomo" 1 menuText Y PgnHelpPgn "PGN pomo" 0 menuText Y PgnHelpIndex "Sadraj" 0 translate Y PgnWindowTitle {Game Notation - game %u} ;# *** # Crosstable window menus: menuText Y CrosstabFile "Fajl" 0 menuText Y CrosstabFileText "tampaj u Tekst fajl..." 10 menuText Y CrosstabFileHtml "tampaj u HTML fajl..." 10 menuText Y CrosstabFileLaTeX "tampaj u LaTeX fajl..." 10 menuText Y CrosstabFileClose "Zatvori tabelu turnira" 0 menuText Y CrosstabEdit "Izmena" 0 menuText Y CrosstabEditEvent "Turnir" 0 menuText Y CrosstabEditSite "Mesto" 0 menuText Y CrosstabEditDate "Datum" 0 menuText Y CrosstabOpt "Prikaz" 0 menuText Y CrosstabOptAll "Svako sa svakim" 0 menuText Y CrosstabOptSwiss "vajcarski sistem" 0 menuText Y CrosstabOptKnockout "Nokaut" 0 menuText Y CrosstabOptAuto "Auto" 0 ;# *** menuText Y CrosstabOptAges "Starost u godinama" 10 menuText Y CrosstabOptNats "Narodnost" 0 menuText Y CrosstabOptRatings "Rejtinzi" 0 menuText Y CrosstabOptTitles "Titule" 0 menuText Y CrosstabOptBreaks "Tie-break rezultati" 4 menuText Y CrosstabOptDeleted "Include deleted games" 8 ;# *** menuText Y CrosstabOptColors "Boje (samo za vajcarski sistem)" 0 menuText Y CrosstabOptColumnNumbers "Numbered columns (All-play-all table only)" 2 ;# *** menuText Y CrosstabOptGroup "Grupii rezultate" 0 menuText Y CrosstabSort "Sortiraj" 0 menuText Y CrosstabSortName "Ime" 0 menuText Y CrosstabSortRating "Rejting" 0 menuText Y CrosstabSortScore "Rezultat" 0 menuText Y CrosstabColor "Boja" 0 menuText Y CrosstabColorPlain "Obian tekst" 0 menuText Y CrosstabColorHyper "Hipertekst" 0 menuText Y CrosstabHelp "Pomo" 0 menuText Y CrosstabHelpCross "Pomo - Tabela turnira" 0 menuText Y CrosstabHelpIndex "Sadraj pomoi" 0 translate Y SetFilter {Postavi filter} translate Y AddToFilter {Dodaj u filter} translate Y Swiss {vajcarski sistem} translate Y Category {Category} ;# *** # Opening report window menus: menuText Y OprepFile "Fajl" 0 menuText Y OprepFileText "tampaj u Tekst fajl..." 10 menuText Y OprepFileHtml "tampaj u HTML fajl..." 10 menuText Y OprepFileLaTeX "tampaj u LaTeX fajl..." 10 menuText Y OprepFileOptions "Opcije..." 0 menuText Y OprepFileClose "Zatvori izvetaj o otvaranjima" 0 menuText Y OprepFavorites "Favorites" 1 ;# *** menuText Y OprepFavoritesAdd "Add Report..." 0 ;# *** menuText Y OprepFavoritesEdit "Edit Report Favorites..." 0 ;# *** menuText Y OprepFavoritesGenerate "Generate Reports..." 0 ;# *** menuText Y OprepHelp "Pomo" 0 menuText Y OprepHelpReport "Pomo - Izvetaj o otvaranjima" 0 menuText Y OprepHelpIndex "Sadraj pomoi" 0 # Repertoire editor: menuText Y RepFile "File" 0 menuText Y RepFileNew "Novi" 0 menuText Y RepFileOpen "Otvori..." 0 menuText Y RepFileSave "Sauvaj..." 0 menuText Y RepFileSaveAs "Sauvaj kao..." 9 menuText Y RepFileClose "Zatvori prozor" 0 menuText Y RepEdit "Izmena" 0 menuText Y RepEditGroup "Dodaj grupu" 6 menuText Y RepEditInclude "Dodaj ukljuenu liniju" 6 menuText Y RepEditExclude "Dodaj iskljuenu liniju" 6 menuText Y RepView "Prikaz" 0 menuText Y RepViewExpand "Razgranaj sve grupe" 0 menuText Y RepViewCollapse "Sami sve grupe" 0 menuText Y RepSearch "Pretrai" 3 menuText Y RepSearchAll "Ceo repertoar..." 0 menuText Y RepSearchDisplayed "Samo prikazane linije..." 0 menuText Y RepHelp "Pomo" 1 menuText Y RepHelpRep "Pomo - repertoar" 0 menuText Y RepHelpIndex "Sadraj pomoi" 0 translate Y RepSearch "Pretraga repertoara" translate Y RepIncludedLines "ukljuene linije" translate Y RepExcludedLines "iskljuene linije" translate Y RepCloseDialog {Ovaj repertoar ima nesauvane izmene. Da li zaista elite da nastavite i odbacite izmene koje ste napravili? } # Header search: translate Y HeaderSearch {Pretraga zaglavlja} translate Y EndSideToMove {Side to move at end of game} ;# *** translate Y GamesWithNoECO {Partije bez EO-a?} translate Y GameLength {Duina partije} translate Y FindGamesWith {Pronai partije sa} translate Y StdStart {standardnim poetkom} translate Y Promotions {sa promocijama} translate Y Comments {Komentari} translate Y Variations {Varijante} translate Y Annotations {Napomene} translate Y DeleteFlag {Znak za brisanje} translate Y WhiteOpFlag {Otvaranje belog} translate Y BlackOpFlag {Otvaranje crnog} translate Y MiddlegameFlag {Sredinjica} translate Y EndgameFlag {Zavrnica} translate Y NoveltyFlag {Novost} translate Y PawnFlag {Peaka struktura} translate Y TacticsFlag {Taktika} translate Y QsideFlag {Igra na daminom krilu} translate Y KsideFlag {Igra na kraljevom krilu} translate Y BrilliancyFlag {Brilijantnost} translate Y BlunderFlag {Greka} translate Y UserFlag {Korisnik} translate Y PgnContains {PGN contains text} ;# *** # ====== TODO To be translated ====== translate Y Annotator {Annotator} # ====== TODO To be translated ====== translate Y Cmnts {Annotated games only} # Game list window: translate Y GlistNumber {Broj} translate Y GlistWhite {Beli} translate Y GlistBlack {Crni} translate Y GlistWElo {B-Elo} translate Y GlistBElo {C-Elo} translate Y GlistEvent {Turnir} translate Y GlistSite {Mesto} translate Y GlistRound {Kolo} translate Y GlistDate {Datum} translate Y GlistYear {Year} translate Y GlistEDate {Datum turnira} translate Y GlistResult {Rezultat} translate Y GlistLength {Duina} translate Y GlistCountry {Zemlja} translate Y GlistECO {EO} translate Y GlistOpening {Otvaranje} translate Y GlistEndMaterial {End-Material} ;# *** translate Y GlistDeleted {Izbrisano} translate Y GlistFlags {Oznaka} translate Y GlistVars {Varijante} translate Y GlistComments {Komentari} translate Y GlistAnnos {Napomene} translate Y GlistStart {Start} ;# *** translate Y GlistGameNumber {Broj partije} # ====== TODO To be translated ====== translate Y GlistAverageElo {Average Elo} # ====== TODO To be translated ====== translate Y GlistRating {Rating} translate Y GlistFindText {Nai tekst} translate Y GlistMoveField {Move} ;# *** translate Y GlistEditField {Configure} ;# *** translate Y GlistAddField {Add} ;# *** translate Y GlistDeleteField {Remove} ;# *** translate Y GlistWidth {Width} ;# *** translate Y GlistAlign {Align} ;# *** # ====== TODO To be translated ====== translate Y GlistAlignL {Align: left} # ====== TODO To be translated ====== translate Y GlistAlignR {Align: right} # ====== TODO To be translated ====== translate Y GlistAlignC {Align: center} translate Y GlistColor {Color} ;# *** translate Y GlistSep {Separator} ;# *** # ====== TODO To be translated ====== translate Y GlistCurrentSep {-- Current --} # ====== TODO To be translated ====== translate Y GlistNewSort {New} # ====== TODO To be translated ====== translate Y GlistAddToSort {Add} # ====== TODO To be translated ====== translate Y GsortSort {Sort...} # ====== TODO To be translated ====== translate Y GsortDate {Date} # ====== TODO To be translated ====== translate Y GsortYear {Year} # ====== TODO To be translated ====== translate Y GsortEvent {Event} # ====== TODO To be translated ====== translate Y GsortSite {Site} # ====== TODO To be translated ====== translate Y GsortRound {Round} # ====== TODO To be translated ====== translate Y GsortWhiteName {White Name} # ====== TODO To be translated ====== translate Y GsortBlackName {Black Name} # ====== TODO To be translated ====== translate Y GsortECO {ECO} # ====== TODO To be translated ====== translate Y GsortResult {Result} # ====== TODO To be translated ====== translate Y GsortMoveCount {Move Count} # ====== TODO To be translated ====== translate Y GsortAverageElo {Average Elo} # ====== TODO To be translated ====== translate Y GsortCountry {Country} # ====== TODO To be translated ====== translate Y GsortDeleted {Deleted} # ====== TODO To be translated ====== translate Y GsortEventDate {Event Date} # ====== TODO To be translated ====== translate Y GsortWhiteElo {White Elo} # ====== TODO To be translated ====== translate Y GsortBlackElo {Black Elo} # ====== TODO To be translated ====== translate Y GsortComments {Comments} # ====== TODO To be translated ====== translate Y GsortVariations {Variations} # ====== TODO To be translated ====== translate Y GsortNAGs {NAGs} # ====== TODO To be translated ====== translate Y GsortAscending {Ascending} # ====== TODO To be translated ====== translate Y GsortDescending {Descending} # ====== TODO To be translated ====== translate Y GsortAdd {Add} # ====== TODO To be translated ====== translate Y GsortStore {Store} # ====== TODO To be translated ====== translate Y GsortLoad {Load} # ====== TODO To be translated ====== translate Y GlistRemoveThisGameFromFilter {Remove this game from Filter} # ====== TODO To be translated ====== translate Y GlistRemoveGameAndAboveFromFilter {Remove game (and all above it) from Filter} # ====== TODO To be translated ====== translate Y GlistRemoveGameAndBelowFromFilter {Remove game (and all below it) from Filter} # ====== TODO To be translated ====== translate Y GlistDeleteGame {(Un)Delete this game} # ====== TODO To be translated ====== translate Y GlistDeleteAllGames {Delete all games in filter} # ====== TODO To be translated ====== translate Y GlistUndeleteAllGames {Undelete all games in filter} # ====== TODO To be translated ====== translate Y GlistMergeGameInBase {Merge Game in other base} # Maintenance window: translate Y DatabaseName {Ime baze:} translate Y TypeIcon {Ikona:} translate Y NumOfGames {Partija:} translate Y NumDeletedGames {Obrisanih partija:} translate Y NumFilterGames {Partija u filteru:} translate Y YearRange {Raspon godina:} translate Y RatingRange {Raspon rejtinga:} translate Y Description {Description} ;# *** translate Y Flag {Oznaka} # ====== TODO To be translated ====== translate Y CustomFlags {Custom flags} translate Y DeleteCurrent {Obrii tekuu partiju} translate Y DeleteFilter {Obrii filtrirane partije} translate Y DeleteAll {Obrii sve partije} translate Y UndeleteCurrent {Obnovi tekuu partiju} translate Y UndeleteFilter {Obnovi filtrirane partije} translate Y UndeleteAll {Obnovi sve partije} translate Y DeleteTwins {Obrii udvojene partije} translate Y MarkCurrent {Markiraj tekuu partiju} translate Y MarkFilter {Markiraj filtrirane partije} translate Y MarkAll {Markiraj sve partije} translate Y UnmarkCurrent {Demarkiraj tekuu partiju} translate Y UnmarkFilter {Demarkiraj filtrirane partije} translate Y UnmarkAll {Demarkiraj sve partije} translate Y Spellchecking {Provera pravopisa} translate Y Players {Igrai} translate Y Events {Turniri} translate Y Sites {Mesta} translate Y Rounds {Kola} translate Y DatabaseOps {Operacije sa bazom} translate Y ReclassifyGames {Klasifikuj partije po EO} translate Y CompactDatabase {Komprimuj bazu} translate Y SortDatabase {Sortiraj bazu} translate Y AddEloRatings {Dodaj Elo rejtinge} translate Y AutoloadGame {Autoload game number} ;# *** translate Y StripTags {Strip PGN tags} ;# *** translate Y StripTag {Strip tag} ;# *** translate Y Cleaner {ista} translate Y CleanerHelp { Scid ista e da primeni sve akcije odravanja koje izaberete iz donje liste, na tekuu bazu. Trenutna podeavanja u dijalozima EO klasifikacija i brisanje udvojenih partija e se primeniti ako ste izabrali te funkcije. } translate Y CleanerConfirm { Kada je ista jednom pokrenut, ne moe se prekinuti! Ovo moe potrajati na velikoj bazi, zavisno od funkcija koje ste izabrali i njihovih trenutnih podeavanja. Da li ste sigurni da elite da ponete funkcije odravanja koje ste izabrali? } # ====== TODO To be translated ====== translate Y TwinCheckUndelete {to flip; "u" undeletes both)} # ====== TODO To be translated ====== translate Y TwinCheckprevPair {Previous pair} # ====== TODO To be translated ====== translate Y TwinChecknextPair {Next pair} # ====== TODO To be translated ====== translate Y TwinChecker {Scid: Twin game checker} # ====== TODO To be translated ====== translate Y TwinCheckTournament {Games in tournament:} # ====== TODO To be translated ====== translate Y TwinCheckNoTwin {No twin } # ====== TODO To be translated ====== translate Y TwinCheckNoTwinfound {No twin was detected for this game.\nTo show twins using this window, you must first use the "Delete twin games..." function. } # ====== TODO To be translated ====== translate Y TwinCheckTag {Share tags...} # ====== TODO To be translated ====== translate Y TwinCheckFound1 {Scid found $result twin games} # ====== TODO To be translated ====== translate Y TwinCheckFound2 { and set their delete flags} # ====== TODO To be translated ====== translate Y TwinCheckNoDelete {There are no games in this database to delete.} # ====== TODO To be translated ====== translate Y TwinCriteria1 { Your settings for finding twin games are potentially likely to\ncause non-twin games with similar moves to be marked as twins.} # ====== TODO To be translated ====== translate Y TwinCriteria2 {It is recommended that if you select "No" for "same moves", you should select "Yes" for the colors, event, site, round, year and month settings.\nDo you want to continue and delete twins anyway? } # ====== TODO To be translated ====== translate Y TwinCriteria3 {It is recommended that you specify "Yes" for at least two of the "same site", "same round" and "same year" settings.\nDo you want to continue and delete twins anyway?} # ====== TODO To be translated ====== translate Y TwinCriteriaConfirm {Scid: Confirm twin settings} # ====== TODO To be translated ====== translate Y TwinChangeTag "Change the following game tags:\n\n" # ====== TODO To be translated ====== translate Y AllocRatingDescription "This command will use the current spellcheck file to add Elo ratings to games in this database. Wherever a player has no currrent rating but his/her rating at the time of the game is listed in the spellcheck file, that rating will be added." # ====== TODO To be translated ====== translate Y RatingOverride "Overwrite existing non-zero ratings?" # ====== TODO To be translated ====== translate Y AddRatings "Add ratings to:" # ====== TODO To be translated ====== translate Y AddedRatings {Scid added $r Elo ratings in $g games.} # ====== TODO To be translated ====== translate Y NewSubmenu "New submenu" # Comment editor: translate Y AnnotationSymbols {Simboli napomena:} translate Y Comment {Komentari:} translate Y InsertMark {Insert mark} ;# *** translate Y InsertMarkHelp { Insert/remove mark: Select color, type, square. Insert/remove arrow: Right-click two squares. } ;# *** # Nag buttons in comment editor: translate Y GoodMove {Good move} ;# *** translate Y PoorMove {Poor move} ;# *** translate Y ExcellentMove {Excellent move} ;# *** translate Y Blunder {Blunder} ;# *** translate Y InterestingMove {Interesting move} ;# *** translate Y DubiousMove {Dubious move} ;# *** translate Y WhiteDecisiveAdvantage {White has a decisive advantage} ;# *** translate Y BlackDecisiveAdvantage {Black has a decisive advantage} ;# *** translate Y WhiteClearAdvantage {White has a clear advantage} ;# *** translate Y BlackClearAdvantage {Black has a clear advantage} ;# *** translate Y WhiteSlightAdvantage {White has a slight advantage} ;# *** translate Y BlackSlightAdvantage {Black has a slight advantage} ;# *** translate Y Equality {Equality} ;# *** translate Y Unclear {Unclear} ;# *** translate Y Diagram {Diagram} ;# *** # Board search: translate Y BoardSearch {Pretraga po poziciji} translate Y FilterOperation {Operacije na tekuem filteru:} translate Y FilterAnd {I (Ogranii filter)} translate Y FilterOr {ILI (Dodaj u filter)} translate Y FilterIgnore {IGNORII (Resetuj filter)} translate Y SearchType {Tip pretrage:} translate Y SearchBoardExact {Ista pozicija (sve figure na istim poljima)} translate Y SearchBoardPawns {Peaci (isti materijal, svi peaci na istim poljima)} translate Y SearchBoardFiles {Linije (isti materijal, svi peaci na istim linijama)} translate Y SearchBoardAny {Materijal (isti materijal, peaci i figure bilo gde)} # ====== TODO To be translated ====== translate Y SearchInRefDatabase { Search in base } translate Y LookInVars {Pogledaj u varijantama} # Material search: translate Y MaterialSearch {Pretraga po materijalu} translate Y Material {Materijal} translate Y Patterns {Pozicije} translate Y Zero {Nita} translate Y Any {Bilo koje} translate Y CurrentBoard {Trenutna pozicija} translate Y CommonEndings {Tipine zavrnice} translate Y CommonPatterns {Tipine pozicije} translate Y MaterialDiff {Material difference} ;# *** translate Y squares {polja} translate Y SameColor {Ista boja} translate Y OppColor {Suprotna boja} translate Y Either {Oba} translate Y MoveNumberRange {Raspon broja poteza} translate Y MatchForAtLeast {Nai za najmanje} translate Y HalfMoves {polupoteza} # Common endings in material search: translate Y EndingPawns {Pawn endings} ;# *** translate Y EndingRookVsPawns {Rook vs. Pawn(s)} ;# *** translate Y EndingRookPawnVsRook {Rook and 1 Pawn vs. Rook} ;# *** translate Y EndingRookPawnsVsRook {Rook and Pawn(s) vs. Rook} ;# *** translate Y EndingRooks {Rook vs. Rook endings} ;# *** translate Y EndingRooksPassedA {Rook vs. Rook endings with a passed a-pawn} ;# *** translate Y EndingRooksDouble {Double Rook endings} ;# *** translate Y EndingBishops {Bishop vs. Bishop endings} ;# *** translate Y EndingBishopVsKnight {Bishop vs. Knight endings} ;# *** translate Y EndingKnights {Knight vs. Knight endings} ;# *** translate Y EndingQueens {Queen vs. Queen endings} ;# *** translate Y EndingQueenPawnVsQueen {Queen and 1 Pawn vs. Queen} ;# *** translate Y BishopPairVsKnightPair {Two Bishops vs. Two Knights middlegame} ;# *** # Common patterns in material search: translate Y PatternWhiteIQP {White IQP} ;# *** translate Y PatternWhiteIQPBreakE6 {White IQP: d4-d5 break vs. e6} ;# *** translate Y PatternWhiteIQPBreakC6 {White IQP: d4-d5 break vs. c6} ;# *** translate Y PatternBlackIQP {Black IQP} ;# *** translate Y PatternWhiteBlackIQP {White IQP vs. Black IQP} ;# *** translate Y PatternCoupleC3D4 {White c3+d4 Isolated Pawn Couple} ;# *** translate Y PatternHangingC5D5 {Black Hanging Pawns on c5 and d5} ;# *** translate Y PatternMaroczy {Maroczy Center (with Pawns on c4 and e4)} ;# *** translate Y PatternRookSacC3 {Rook Sacrifice on c3} ;# *** translate Y PatternKc1Kg8 {O-O-O vs. O-O (Kc1 vs. Kg8)} ;# *** translate Y PatternKg1Kc8 {O-O vs. O-O-O (Kg1 vs. Kc8)} ;# *** translate Y PatternLightFian {Light-Square Fianchettos (Bishop-g2 vs. Bishop-b7)} ;# *** translate Y PatternDarkFian {Dark-Square Fianchettos (Bishop-b2 vs. Bishop-g7)} ;# *** translate Y PatternFourFian {Four Fianchettos (Bishops on b2,g2,b7,g7)} ;# *** # Game saving: translate Y Today {Danas} translate Y ClassifyGame {Klasifikuj partiju} # Setup position: translate Y EmptyBoard {Isprazni tablu} translate Y InitialBoard {Poetna pozicija} translate Y SideToMove {Na potezu je} translate Y MoveNumber {Broj poteza} translate Y Castling {Rokada} translate Y EnPassantFile {En Passant linija} translate Y ClearFen {Oisti FEN} translate Y PasteFen {Prenesi FEN} # ====== TODO To be translated ====== translate Y SaveAndContinue {Save and continue} # ====== TODO To be translated ====== translate Y DiscardChangesAndContinue {Discard changes\nand continue} # ====== TODO To be translated ====== translate Y GoBack {Go back} # Replace move dialog: translate Y ReplaceMove {Zameni potez} translate Y AddNewVar {Dodaj novu varijantu} # ====== TODO To be translated ====== translate Y NewMainLine {New Main Line} translate Y ReplaceMoveMessage {Ovde ve postoji potez. Moete ga zameniti, odbacujui sve poteze posle njega, ili dodajte svoj potez kao novu varijantu. (Moete izbei pojavljivanje ove poruke ubudue ako iskljuite "Pitaj pre zamene poteza" opciju u meniju Opcije:Potezi.)} # Make database read-only dialog: translate Y ReadOnlyDialog {Ako omoguite samo itanje iz ove baze, nee biti dozvoljene izmene. Nijedna partije nee biti sauvana ili zamenjena, i nijedan znak za brisanje ne moe biti izmenjen. Bilo kakvo sortiranje ili rezultati EO klasifikacije e biti privremeni. Moete lako ponovo omoguiti pisanje po bazi, ako je zatvorite i ponovo otvorite. Da li zaista elite da ova baza bude samo za itanje?} # Clear game dialog: translate Y ClearGameDialog {Ova partija je izmenjena. Da li zaista elite da nastavite i odbacite sve uinjene promene? } # Exit dialog: translate Y ExitDialog {Da li zaista elite da napustite Scid?} translate Y ExitUnsaved {The following databases have unsaved game changes. If you exit now, these changes will be lost.} ;# *** # Import window: translate Y PasteCurrentGame {Prenesi tekuu partiju} translate Y ImportHelp1 {Unesi ili prenesi partiju u PGN formatu u gornji okvir.} translate Y ImportHelp2 {Bilo koja greka u uvozu partije e biti prikazana ovde.} # ====== TODO To be translated ====== translate Y OverwriteExistingMoves {Overwrite existing moves ?} # ECO Browser: translate Y ECOAllSections {sve EO sekcije} translate Y ECOSection {EO sekcija} translate Y ECOSummary {Pregled za} translate Y ECOFrequency {Uestanost subkodova za} # Opening Report: translate Y OprepTitle {Izvetaj o otvaranjima} translate Y OprepReport {Izvetaj} translate Y OprepGenerated {Generisao} translate Y OprepStatsHist {Statistika i Istorija} translate Y OprepStats {Statistika} translate Y OprepStatAll {Sve partije iz iz izvetaja} translate Y OprepStatBoth {Oba sa rejtingom} translate Y OprepStatSince {Od} translate Y OprepOldest {Najstarije partije} translate Y OprepNewest {Najnovije partije} translate Y OprepPopular {Trenutna popularnost} translate Y OprepFreqAll {Uetanost za sve godine: } translate Y OprepFreq1 {Tokom 1 poslednje godine: } translate Y OprepFreq5 {Tokom 5 poslednjih godina: } translate Y OprepFreq10 {Tokom 10 poslednjih godina: } translate Y OprepEvery {jednom svakih %u partija} translate Y OprepUp {vie za %u%s tokom svih godina} translate Y OprepDown {manje za %u%s tokom svih godina} translate Y OprepSame {bez promena tokom svih godina} translate Y OprepMostFrequent {Najei igrai} translate Y OprepMostFrequentOpponents {Most frequent opponents} ;# *** translate Y OprepRatingsPerf {Rejtinzi i umenost} translate Y OprepAvgPerf {Proseni rejtinzi i umenost} translate Y OprepWRating {Rejting belog} translate Y OprepBRating {Rejting crnog} translate Y OprepWPerf {Umenost belog} translate Y OprepBPerf {Umenost crnog} translate Y OprepHighRating {Partije sa najveim prosenim rejtingom} translate Y OprepTrends {Rezultatski trendovi} translate Y OprepResults {Duine rezultata i uestanosti} translate Y OprepLength {Duina partije} translate Y OprepFrequency {Uestanost} translate Y OprepWWins {Pobede belog: } translate Y OprepBWins {Pobede crnog: } translate Y OprepDraws {Remiji: } translate Y OprepWholeDB {cela baza} translate Y OprepShortest {Najkraa pobeda} ;# *** # translate Y OprepShortWhite {Najkraa pobeda belog} # translate Y OprepShortBlack {Najkraa pobeda crnog} translate Y OprepMovesThemes {Potezi i teme} translate Y OprepMoveOrders {Redosledi poteza koji su dosegli poziciju iz izvetaja} translate Y OprepMoveOrdersOne \ {Samo je jedan redosled poteza koji je dostigao ovu poziciju:} translate Y OprepMoveOrdersAll \ {Bilo je %u redosleda poteza koji su dostigli ovu poziciju:} translate Y OprepMoveOrdersMany \ {Bilo je %u redosleda poteza koji su dostigli ovu poziciju. Prvih %u su:} translate Y OprepMovesFrom {Potezi iz pozicije iz izvetaja} translate Y OprepMostFrequentEcoCodes {Most frequent ECO codes} ;# *** translate Y OprepThemes {Pozicione teme} translate Y OprepThemeDescription {Frequency of themes in the first %u moves of each game} ;# *** translate Y OprepThemeSameCastling {Rokade sa iste strane} translate Y OprepThemeOppCastling {Rokade sa suprotne strane} translate Y OprepThemeNoCastling {Obe strane bez rokada} translate Y OprepThemeKPawnStorm {Prodor peaka na kraljevom krilu} translate Y OprepThemeQueenswap {Zamena dama} translate Y OprepThemeWIQP {White Isolated Queen Pawn} ;# *** translate Y OprepThemeBIQP {Black Isolated Queen Pawn} ;# *** translate Y OprepThemeWP567 {Beli peak na 5., 6. ili 7. redu} translate Y OprepThemeBP234 {Crni peak na 2., 3. ili 4. redu} translate Y OprepThemeOpenCDE {Otvorena c, d ili e linija} translate Y OprepTheme1BishopPair {Jedna strana ima par lovaca} translate Y OprepEndgames {Zavrnice} translate Y OprepReportGames {Partije iz izvetaja} translate Y OprepAllGames {Sve partije} translate Y OprepEndClass {Materijal na kraju svake partije} translate Y OprepTheoryTable {Tabela teorije} translate Y OprepTableComment {Generisano iz %u najbolje rejtiranih partija.} translate Y OprepExtraMoves {Posebno notirani potezi u tabeli teorije} translate Y OprepMaxGames {Maksimum partija u tabeli teorije} translate Y OprepViewHTML {View HTML} ;# *** translate Y OprepViewLaTeX {View LaTeX} ;# *** # Player Report: translate Y PReportTitle {Player Report} ;# *** translate Y PReportColorWhite {with the White pieces} ;# *** translate Y PReportColorBlack {with the Black pieces} ;# *** translate Y PReportMoves {after %s} ;# *** translate Y PReportOpenings {Openings} ;# *** translate Y PReportClipbase {Empty clipbase and copy matching games to it} ;# *** # Piece Tracker window: translate Y TrackerSelectSingle {Left mouse button selects this piece.} ;# *** translate Y TrackerSelectPair {Left mouse button selects this piece; right button also selects its sibling.} translate Y TrackerSelectPawn {Left mouse button selects this pawn; right button selects all 8 pawns.} translate Y TrackerStat {Statistic} translate Y TrackerGames {% games with move to square} translate Y TrackerTime {% time on each square} translate Y TrackerMoves {Moves} translate Y TrackerMovesStart {Enter the move number where tracking should begin.} translate Y TrackerMovesStop {Enter the move number where tracking should stop.} # Game selection dialogs: translate Y SelectAllGames {Sve partije u bazi} translate Y SelectFilterGames {Samo partije u filteru} translate Y SelectTournamentGames {Samo partije u tekuem turniru} translate Y SelectOlderGames {Samo starije partije} # Delete Twins window: translate Y TwinsNote {Da bi bile udvojene, dve partije moraju da najmanje imaju istu dvojicu igraa, i kriterijume koje nie moete podesiti. Kada se par udvojenih partija otkrije, kraa partija se brie. Savet: Najbolje je proveriti pravopis u bazi pre brisanja udvojenih partija, jer to unapreuje detekciju. } translate Y TwinsCriteria {Kriterijumi: Udvojene partije moraju imati...} translate Y TwinsWhich {Koje partije da proverim?} translate Y TwinsColors {Iste boje igraa?} translate Y TwinsEvent {Isti turnir?} translate Y TwinsSite {Isto mesto?} translate Y TwinsRound {Isto kolo?} translate Y TwinsYear {Ista godina?} translate Y TwinsMonth {Isti mesec?} translate Y TwinsDay {Isti dan?} translate Y TwinsResult {Isti rezultat?} translate Y TwinsECO {Isti EO kd?} translate Y TwinsMoves {Isti potezi?} translate Y TwinsPlayers {Uporeivanje imena igraa:} translate Y TwinsPlayersExact {Potpuna podudarnost} translate Y TwinsPlayersPrefix {Samo prva 4 slova} translate Y TwinsWhen {Kod brisanja udvojenih partija} translate Y TwinsSkipShort {Ignore all games under 5 moves long?} ;# *** translate Y TwinsUndelete {Obnovi prvo sve partije?} translate Y TwinsSetFilter {Postavi filter na sve obrisane udvojene partije?} translate Y TwinsComments {Uvek sauvaj partije sa komentarima?} translate Y TwinsVars {Uvek sauvaj partije sa varijantama?} translate Y TwinsDeleteWhich {Delete which game:} ;# *** translate Y TwinsDeleteShorter {Shorter game} ;# *** translate Y TwinsDeleteOlder {Smaller game number} ;# *** translate Y TwinsDeleteNewer {Larger game number} ;# *** translate Y TwinsDelete {Obrii partije} # Name editor window: translate Y NameEditType {Tip imena za izmenu} translate Y NameEditSelect {Partije za izmenu} translate Y NameEditReplace {Zameni} translate Y NameEditWith {sa} translate Y NameEditMatches {Podudara se: Pritisni Ctrl+1 do Ctrl+9 za izbor} # ====== TODO To be translated ====== translate Y CheckGames {Check games} # ====== TODO To be translated ====== translate Y CheckGamesWhich {Check games} # ====== TODO To be translated ====== translate Y CheckAll {All games} # ====== TODO To be translated ====== translate Y CheckSelectFilterGames {Only games in filter} # Classify window: translate Y Classify {Klasifikuj} translate Y ClassifyWhich {Klasifikuj partije po EO} translate Y ClassifyAll {Sve partije (prebrii stare EO kdove)} translate Y ClassifyYear {Sve partije igrane poslednje godine} translate Y ClassifyMonth {Sve partije igrane poslednjeg meseca} translate Y ClassifyNew {Samo partije koje su jo bez EO kda} translate Y ClassifyCodes {Koristi EO kdove} translate Y ClassifyBasic {Samo osnovne kdove ("B12", ...)} translate Y ClassifyExtended {Proireni Scid ("B12j", ...)} # Compaction: translate Y NameFile {Fajl imena} translate Y GameFile {Fajl partija} translate Y Names {Imena} translate Y Unused {Nekoriena} translate Y SizeKb {Veliina (kb)} translate Y CurrentState {Trenutno stanje} translate Y AfterCompaction {Posle komprimacije} translate Y CompactNames {Komprimuj fajl imena} translate Y CompactGames {Komprimuj fajl partija} # ====== TODO To be translated ====== translate Y NoUnusedNames "There are no unused names, so the name file is already fully compacted." # ====== TODO To be translated ====== translate Y NoUnusedGames "The game file is already fully compacted." # ====== TODO To be translated ====== translate Y NameFileCompacted {The name file for the database "[file tail [sc_base filename]]" was compacted.} # ====== TODO To be translated ====== translate Y GameFileCompacted {The game file for the database "[file tail [sc_base filename]]" was compacted.} # Sorting: translate Y SortCriteria {Kriterijumi} translate Y AddCriteria {Dodaj kriterijum} translate Y CommonSorts {Uobiajena sortiranja} translate Y Sort {Sortiraj} # Exporting: translate Y AddToExistingFile {Dodaj partije u postojei fajl?} translate Y ExportComments {Izvezi komentare?} translate Y ExportVariations {Izvezi varijante?} translate Y IndentComments {Uvuci pasus kod komentara?} translate Y IndentVariations {Uvuci pasus kod varijanata?} translate Y ExportColumnStyle {Pasus stil (jedan potez po liniji)?} translate Y ExportSymbolStyle {Stil simbolikih napomena:} translate Y ExportStripMarks {Strip square/arrow mark codes from comments?} ;# *** # Goto game/move dialogs: translate Y LoadGameNumber {Unesi broj partije za uitavanje:} translate Y GotoMoveNumber {Idi na potez broj:} # Copy games dialog: translate Y CopyGames {Kopiraj partije} translate Y CopyConfirm { Da li zaista elite da kopirate [::utils::thousands $nGamesToCopy] filtriranih partija iz baze "$fromName" u bazu "$targetName"? } translate Y CopyErr {Ne mogu da kopiram partije} translate Y CopyErrSource {izvorina baza} translate Y CopyErrTarget {odredina baza} translate Y CopyErrNoGames {nema partija u svom filteru} translate Y CopyErrReadOnly {je samo za itanje} translate Y CopyErrNotOpen {nije otvorena} # Colors: translate Y LightSquares {Svetla polja} translate Y DarkSquares {Tamna polja} translate Y SelectedSquares {Izabrana polja} translate Y SuggestedSquares {Polja preporuenog poteza} translate Y WhitePieces {Bele figure} translate Y BlackPieces {Crne figure} translate Y WhiteBorder {Ivica belih figura} translate Y BlackBorder {Ivica crnih figura} # Novelty window: translate Y FindNovelty {Pronai novost} translate Y Novelty {Novost} translate Y NoveltyInterrupt {Traenje novosti prekinuto} translate Y NoveltyNone {Nijedna novost nije pronaena u ovoj partiji} translate Y NoveltyHelp { Scid e nai prvi potez tekue partije, koji dostie poziciju koja nije naena u izabranoj bazi ili u EO knjizi otvaranja. } # Sounds configuration: translate Y SoundsFolder {Sound Files Folder} ;# *** translate Y SoundsFolderHelp {The folder should contain the files King.wav, a.wav, 1.wav, etc} ;# *** translate Y SoundsAnnounceOptions {Move Announcement Options} ;# *** translate Y SoundsAnnounceNew {Announce new moves as they are made} ;# *** translate Y SoundsAnnounceForward {Announce moves when moving forward one move} ;# *** translate Y SoundsAnnounceBack {Announce when retracting or moving back one move} ;# *** # Upgrading databases: translate Y Upgrading {Unapreivanje} translate Y ConfirmOpenNew { Ovo je baza u starom formatu (Scid 3), koju ne moe da otvori Scid 4, ve je kreirana verzija u novom formatu (Scid 4). Da li elite da otvorite verziju baze u novom formatu? } translate Y ConfirmUpgrade { Ovo je baza u starom formatu (Scid 3). Verzija baze u novom formatu mora biti kreirana pre korienja u Scid-u 4. Unapreivanjem e se kreirati nova verzija baze. Ovo moe potrajati, ali treba da se uradi samo jednom. Moete prekinuti ukoliko bude predugo trajalo. Da li elite da sada unapredite ovu bazu? } # Recent files options: translate Y RecentFilesMenu {Number of recent files in File menu} ;# *** translate Y RecentFilesExtra {Number of recent files in extra submenu} ;# *** # My Player Names options: translate Y MyPlayerNamesDescription { Enter a list of preferred player names below, one name per line. Wildcards (e.g. "?" for any single character, "*" for any sequence of characters) are permitted. Every time a game with a player in the list is loaded, the main window chessboard will be rotated if necessary to show the game from that players perspective. } ;# *** # ====== TODO To be translated ====== translate Y showblunderexists {show blunder exists} # ====== TODO To be translated ====== translate Y showblundervalue {show blunder value} # ====== TODO To be translated ====== translate Y showscore {show score} # ====== TODO To be translated ====== translate Y coachgame {coach game} # ====== TODO To be translated ====== translate Y configurecoachgame {configure coach game} # ====== TODO To be translated ====== translate Y configuregame {Game configuration} # ====== TODO To be translated ====== translate Y Phalanxengine {Phalanx engine} # ====== TODO To be translated ====== translate Y Coachengine {Coach engine} # ====== TODO To be translated ====== translate Y difficulty {difficulty} # ====== TODO To be translated ====== translate Y hard {hard} # ====== TODO To be translated ====== translate Y easy {easy} # ====== TODO To be translated ====== translate Y Playwith {Play with} # ====== TODO To be translated ====== translate Y white {white} # ====== TODO To be translated ====== translate Y black {black} # ====== TODO To be translated ====== translate Y both {both} # ====== TODO To be translated ====== translate Y Play {Play} # ====== TODO To be translated ====== translate Y Noblunder {No blunder} # ====== TODO To be translated ====== translate Y blunder {blunder} # ====== TODO To be translated ====== translate Y Noinfo {-- No info --} # ====== TODO To be translated ====== translate Y PhalanxOrTogaMissing {Phalanx or Toga not found} # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate Y moveblunderthreshold {move is a blunder if loss is greater than} # ====== TODO To be translated ====== translate Y limitanalysis {limit engine analysis time} # ====== TODO To be translated ====== translate Y seconds {seconds} # ====== TODO To be translated ====== translate Y Abort {Abort} # ====== TODO To be translated ====== translate Y Resume {Resume} # ====== TODO To be translated ====== translate Y OutOfOpening {Out of opening} # ====== TODO To be translated ====== translate Y NotFollowedLine {You did not follow the line} # ====== TODO To be translated ====== translate Y DoYouWantContinue {Do you want yo continue ?} # ====== TODO To be translated ====== translate Y CoachIsWatching {Coach is watching} # ====== TODO To be translated ====== translate Y Ponder {Permanent thinking} # ====== TODO To be translated ====== translate Y LimitELO {Limit ELO strength} # ====== TODO To be translated ====== translate Y DubiousMovePlayedTakeBack {Dubious move played, do you want to take back ?} # ====== TODO To be translated ====== translate Y WeakMovePlayedTakeBack {Weak move played, do you want to take back ?} # ====== TODO To be translated ====== translate Y BadMovePlayedTakeBack {Bad move played, do you want to take back ?} # ====== TODO To be translated ====== translate Y Iresign {I resign} # ====== TODO To be translated ====== translate Y yourmoveisnotgood {your move is not good} # ====== TODO To be translated ====== translate Y EndOfVar {End of variation} # ====== TODO To be translated ====== translate Y Openingtrainer {Opening trainer} # ====== TODO To be translated ====== translate Y DisplayCM {Display candidate moves} # ====== TODO To be translated ====== translate Y DisplayCMValue {Display candidate moves value} # ====== TODO To be translated ====== translate Y DisplayOpeningStats {Show statistics} # ====== TODO To be translated ====== translate Y ShowReport {Show report} # ====== TODO To be translated ====== translate Y NumberOfGoodMovesPlayed {good moves played} # ====== TODO To be translated ====== translate Y NumberOfDubiousMovesPlayed {dubious moves played} # ====== TODO To be translated ====== translate Y NumberOfMovesPlayedNotInRepertoire {moves played not in repertoire} # ====== TODO To be translated ====== translate Y NumberOfTimesPositionEncountered {times position encountered} # ====== TODO To be translated ====== translate Y PlayerBestMove {Allow only best moves} # ====== TODO To be translated ====== translate Y OpponentBestMove {Opponent plays best moves} # ====== TODO To be translated ====== translate Y OnlyFlaggedLines {Only flagged lines} # ====== TODO To be translated ====== translate Y resetStats {Reset statistics} # ====== TODO To be translated ====== translate Y Repertoiretrainingconfiguration {Repertoire training configuration} # ====== TODO To be translated ====== translate Y Loadingrepertoire {Loading repertoire} # ====== TODO To be translated ====== translate Y Movesloaded {Moves loaded} # ====== TODO To be translated ====== translate Y Repertoirenotfound {Repertoire not found} # ====== TODO To be translated ====== translate Y Openfirstrepertoirewithtype {Open first a repertoire database with icon/type set to the right side} # ====== TODO To be translated ====== translate Y Movenotinrepertoire {Move not in repertoire} # ====== TODO To be translated ====== translate Y PositionsInRepertoire {Positions in repertoire} # ====== TODO To be translated ====== translate Y PositionsNotPlayed {Positions not played} # ====== TODO To be translated ====== translate Y PositionsPlayed {Positions played} # ====== TODO To be translated ====== translate Y Success {Success} # ====== TODO To be translated ====== translate Y DubiousMoves {Dubious moves} # ====== TODO To be translated ====== translate Y OutOfRepertoire {OutOfRepertoire} # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate Y ConfigureTactics {Configure tactics} # ====== TODO To be translated ====== translate Y ResetScores {Reset scores} # ====== TODO To be translated ====== translate Y LoadingBase {Loading base} # ====== TODO To be translated ====== translate Y Tactics {Tactics} # ====== TODO To be translated ====== translate Y ShowSolution {Show solution} # ====== TODO To be translated ====== translate Y NextExercise {Next exercise} # ====== TODO To be translated ====== translate Y PrevExercise {previous exercise} # ====== TODO To be translated ====== translate Y StopTraining {Stop training} # ====== TODO To be translated ====== translate Y Next {Next} # ====== TODO To be translated ====== translate Y ResettingScore {Resetting score} # ====== TODO To be translated ====== translate Y LoadingGame {Loading game} # ====== TODO To be translated ====== translate Y MateFound {Mate found} # ====== TODO To be translated ====== translate Y BestSolutionNotFound {Best solution NOT found !} # ====== TODO To be translated ====== translate Y MateNotFound {Mate not found} # ====== TODO To be translated ====== translate Y ShorterMateExists {Shorter mate exists} # ====== TODO To be translated ====== translate Y ScorePlayed {Score played} # ====== TODO To be translated ====== translate Y Expected {expected} # ====== TODO To be translated ====== translate Y ChooseTrainingBase {Choose training base} # ====== TODO To be translated ====== translate Y Thinking {Thinking} # ====== TODO To be translated ====== translate Y AnalyzeDone {Analyze done} # ====== TODO To be translated ====== translate Y WinWonGame {Win won game} # ====== TODO To be translated ====== translate Y Lines {Lines} # ====== TODO To be translated ====== translate Y ConfigureUCIengine {Configure UCI engine} # ====== TODO To be translated ====== translate Y SpecificOpening {Specific opening} # ====== TODO To be translated ====== translate Y StartNewGame {Start new game} # ====== TODO To be translated ====== translate Y FixedLevel {Fixed level} # ====== TODO To be translated ====== translate Y Opening {Opening} # ====== TODO To be translated ====== translate Y RandomLevel {Random level} # ====== TODO To be translated ====== translate Y StartFromCurrentPosition {Start from current position} # ====== TODO To be translated ====== translate Y FixedDepth {Fixed depth} # ====== TODO To be translated ====== translate Y Nodes {Nodes} # ====== TODO To be translated ====== translate Y Depth {Depth} # ====== TODO To be translated ====== translate Y Time {Time} # ====== TODO To be translated ====== translate Y SecondsPerMove {Seconds per move} # ====== TODO To be translated ====== translate Y Engine {Engine} # ====== TODO To be translated ====== translate Y TimeMode {Time mode} # ====== TODO To be translated ====== translate Y TimeBonus {Time + bonus} # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate Y TimeMin {min} # ====== TODO To be translated ====== translate Y TimeSec {sec} # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate Y AllExercisesDone {All exercises done} # ====== TODO To be translated ====== translate Y MoveOutOfBook {Move out of book} # ====== TODO To be translated ====== translate Y LastBookMove {Last book move} # ====== TODO To be translated ====== translate Y AnnotateSeveralGames {Annotate several games\nfrom current to :} # ====== TODO To be translated ====== translate Y FindOpeningErrors {Find opening errors} # ====== TODO To be translated ====== translate Y MarkTacticalExercises {Mark tactical exercises} # ====== TODO To be translated ====== translate Y UseBook {Use book} # ====== TODO To be translated ====== translate Y MultiPV {Multiple variations} # ====== TODO To be translated ====== translate Y Hash {Hash memory} # ====== TODO To be translated ====== translate Y OwnBook {Use engine book} # ====== TODO To be translated ====== translate Y BookFile {Opening book} # ====== TODO To be translated ====== translate Y AnnotateVariations {Annotate variations} # ====== TODO To be translated ====== translate Y ShortAnnotations {Short annotations} # ====== TODO To be translated ====== translate Y addAnnotatorTag {Add annotator tag} # ====== TODO To be translated ====== translate Y AddScoreToShortAnnotations {Add score to short annotations} # ====== TODO To be translated ====== translate Y Export {Export} # ====== TODO To be translated ====== translate Y BookPartiallyLoaded {Book partially loaded} # ====== TODO To be translated ====== translate Y Calvar {Calculation of variations} # ====== TODO To be translated ====== translate Y ConfigureCalvar {Configuration} # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate Y Reti {Reti} # ====== TODO To be translated ====== translate Y English {English} # ====== TODO To be translated ====== translate Y d4Nf6Miscellaneous {1.d4 Nf6 Miscellaneous} # ====== TODO To be translated ====== translate Y Trompowsky {Trompowsky} # ====== TODO To be translated ====== translate Y Budapest {Budapest} # ====== TODO To be translated ====== translate Y OldIndian {Old Indian} # ====== TODO To be translated ====== translate Y BenkoGambit {Benko Gambit} # ====== TODO To be translated ====== translate Y ModernBenoni {Modern Benoni} # ====== TODO To be translated ====== translate Y DutchDefence {Dutch Defence} # ====== TODO To be translated ====== translate Y Scandinavian {Scandinavian} # ====== TODO To be translated ====== translate Y AlekhineDefence {Alekhine Defence} # ====== TODO To be translated ====== translate Y Pirc {Pirc} # ====== TODO To be translated ====== translate Y CaroKann {Caro-Kann} # ====== TODO To be translated ====== translate Y CaroKannAdvance {Caro-Kann Advance} # ====== TODO To be translated ====== translate Y Sicilian {Sicilian} # ====== TODO To be translated ====== translate Y SicilianAlapin {Sicilian Alapin} # ====== TODO To be translated ====== translate Y SicilianClosed {Sicilian Closed} # ====== TODO To be translated ====== translate Y SicilianRauzer {Sicilian Rauzer} # ====== TODO To be translated ====== translate Y SicilianDragon {Sicilian Dragon} # ====== TODO To be translated ====== translate Y SicilianScheveningen {Sicilian Scheveningen} # ====== TODO To be translated ====== translate Y SicilianNajdorf {Sicilian Najdorf} # ====== TODO To be translated ====== translate Y OpenGame {Open Game} # ====== TODO To be translated ====== translate Y Vienna {Vienna} # ====== TODO To be translated ====== translate Y KingsGambit {King's Gambit} # ====== TODO To be translated ====== translate Y RussianGame {Russian Game} # ====== TODO To be translated ====== translate Y ItalianTwoKnights {Italian/Two Knights} # ====== TODO To be translated ====== translate Y Spanish {Spanish} # ====== TODO To be translated ====== translate Y SpanishExchange {Spanish Exchange} # ====== TODO To be translated ====== translate Y SpanishOpen {Spanish Open} # ====== TODO To be translated ====== translate Y SpanishClosed {Spanish Closed} # ====== TODO To be translated ====== translate Y FrenchDefence {French Defence} # ====== TODO To be translated ====== translate Y FrenchAdvance {French Advance} # ====== TODO To be translated ====== translate Y FrenchTarrasch {French Tarrasch} # ====== TODO To be translated ====== translate Y FrenchWinawer {French Winawer} # ====== TODO To be translated ====== translate Y FrenchExchange {French Exchange} # ====== TODO To be translated ====== translate Y QueensPawn {Queen's Pawn} # ====== TODO To be translated ====== translate Y Slav {Slav} # ====== TODO To be translated ====== translate Y QGA {QGA} # ====== TODO To be translated ====== translate Y QGD {QGD} # ====== TODO To be translated ====== translate Y QGDExchange {QGD Exchange} # ====== TODO To be translated ====== translate Y SemiSlav {Semi-Slav} # ====== TODO To be translated ====== translate Y QGDwithBg5 {QGD with Bg5} # ====== TODO To be translated ====== translate Y QGDOrthodox {QGD Orthodox} # ====== TODO To be translated ====== translate Y Grunfeld {Grnfeld} # ====== TODO To be translated ====== translate Y GrunfeldExchange {Grnfeld Exchange} # ====== TODO To be translated ====== translate Y GrunfeldRussian {Grnfeld Russian} # ====== TODO To be translated ====== translate Y Catalan {Catalan} # ====== TODO To be translated ====== translate Y CatalanOpen {Catalan Open} # ====== TODO To be translated ====== translate Y CatalanClosed {Catalan Closed} # ====== TODO To be translated ====== translate Y QueensIndian {Queen's Indian} # ====== TODO To be translated ====== translate Y NimzoIndian {Nimzo-Indian} # ====== TODO To be translated ====== translate Y NimzoIndianClassical {Nimzo-Indian Classical} # ====== TODO To be translated ====== translate Y NimzoIndianRubinstein {Nimzo-Indian Rubinstein} # ====== TODO To be translated ====== translate Y KingsIndian {King's Indian} # ====== TODO To be translated ====== translate Y KingsIndianSamisch {King's Indian Smisch} # ====== TODO To be translated ====== translate Y KingsIndianMainLine {King's Indian Main Line} # ====== TODO To be translated ====== translate Y ConfigureFics {Configure FICS} # ====== TODO To be translated ====== translate Y FICSGuest {Login as Guest} # ====== TODO To be translated ====== translate Y FICSServerPort {Server port} # ====== TODO To be translated ====== translate Y FICSServerAddress {IP Address} # ====== TODO To be translated ====== translate Y FICSRefresh {Refresh} # ====== TODO To be translated ====== translate Y FICSTimesealPort {Timeseal port} # ====== TODO To be translated ====== translate Y FICSSilence {Silence} # ====== TODO To be translated ====== translate Y FICSOffers {Offers} # ====== TODO To be translated ====== translate Y FICSConsole {Console} # ====== TODO To be translated ====== translate Y FICSGames {Games} # ====== TODO To be translated ====== translate Y FICSUnobserve {Stop observing game} # ====== TODO To be translated ====== translate Y FICSProfile {Display your history and profile} # ====== TODO To be translated ====== translate Y FICSRelayedGames {Relayed games} # ====== TODO To be translated ====== translate Y FICSFindOpponent {Find opponent} # ====== TODO To be translated ====== translate Y FICSTakeback {Takeback} # ====== TODO To be translated ====== translate Y FICSTakeback2 {Takeback 2} # ====== TODO To be translated ====== translate Y FICSInitTime {Initial time (min)} # ====== TODO To be translated ====== translate Y FICSIncrement {Increment (sec)} # ====== TODO To be translated ====== translate Y FICSRatedGame {Rated Game} # ====== TODO To be translated ====== translate Y FICSAutoColour {automatic} # ====== TODO To be translated ====== translate Y FICSManualConfirm {confirm manually} # ====== TODO To be translated ====== translate Y FICSFilterFormula {Filter with formula} # ====== TODO To be translated ====== translate Y FICSIssueSeek {Issue seek} # ====== TODO To be translated ====== translate Y FICSChallenge {Challenge} # ====== TODO To be translated ====== translate Y FICSAccept {accept} # ====== TODO To be translated ====== translate Y FICSDecline {decline} # ====== TODO To be translated ====== translate Y FICSColour {Colour} # ====== TODO To be translated ====== translate Y FICSSend {send} # ====== TODO To be translated ====== translate Y FICSConnect {Connect} # ====== TODO To be translated ====== translate Y FICSdefaultuservars {Use default variables} # ====== TODO To be translated ====== translate Y FICSObserveconfirm {Do you want to observe game} # ====== TODO To be translated ====== translate Y GameReview {Game review} # ====== TODO To be translated ====== translate Y GameReviewTimeExtended {Time extended} # ====== TODO To be translated ====== translate Y GameReviewMargin {Error margin} # ====== TODO To be translated ====== translate Y GameReviewAutoContinue {Auto continue when move is correct} # ====== TODO To be translated ====== translate Y GameReviewReCalculate {Use extended time} # ====== TODO To be translated ====== translate Y GameReviewAnalyzingMovePlayedDuringTheGame {Analyzing move played during the game} # ====== TODO To be translated ====== translate Y GameReviewAnalyzingThePosition {Analyzing the position} # ====== TODO To be translated ====== translate Y GameReviewEnterYourMove {Enter your move} # ====== TODO To be translated ====== translate Y GameReviewCheckingYourMove {Checking your move} # ====== TODO To be translated ====== translate Y GameReviewYourMoveWasAnalyzed {Your move was analyzed} # ====== TODO To be translated ====== translate Y GameReviewYouPlayedSameMove {You played the same move as in match} # ====== TODO To be translated ====== translate Y GameReviewScoreOfYourMove {Score of your move} # ====== TODO To be translated ====== translate Y GameReviewGameMoveScore {Game move's score} # ====== TODO To be translated ====== translate Y GameReviewEngineScore {Engine's score} # ====== TODO To be translated ====== translate Y GameReviewYouPlayedLikeTheEngine {You played like the engine} # ====== TODO To be translated ====== translate Y GameReviewNotEngineMoveButGoodMove {Not the engine move, but is also a good move} # ====== TODO To be translated ====== translate Y GameReviewMoveNotGood {This move is not good, score is} # ====== TODO To be translated ====== translate Y GameReviewMovesPlayedLike {Moves played like} # ====== TODO To be translated ====== translate Y GameReviewMovesPlayedEngine {Moves played like engine} # ====== TODO To be translated ====== translate Y CCDlgConfigureWindowTitle {Configure Correspondence Chess} # ====== TODO To be translated ====== translate Y CCDlgCGeneraloptions {General Options} # ====== TODO To be translated ====== translate Y CCDlgDefaultDB {Default Database:} # ====== TODO To be translated ====== translate Y CCDlgInbox {Inbox (path):} # ====== TODO To be translated ====== translate Y CCDlgOutbox {Outbox (path):} # ====== TODO To be translated ====== translate Y CCDlgXfcc {Xfcc Configuration:} # ====== TODO To be translated ====== translate Y CCDlgExternalProtocol {External Protocol Handler (e.g. Xfcc)} # ====== TODO To be translated ====== translate Y CCDlgFetchTool {Fetch Tool:} # ====== TODO To be translated ====== translate Y CCDlgSendTool {Send Tool:} # ====== TODO To be translated ====== translate Y CCDlgEmailCommunication {eMail Communication} # ====== TODO To be translated ====== translate Y CCDlgMailPrg {Mail program:} # ====== TODO To be translated ====== translate Y CCDlgBCCAddr {(B)CC Address:} # ====== TODO To be translated ====== translate Y CCDlgMailerMode {Mode:} # ====== TODO To be translated ====== translate Y CCDlgThunderbirdEg {e.g. Thunderbird, Mozilla Mail, Icedove...} # ====== TODO To be translated ====== translate Y CCDlgMailUrlEg {e.g. Evolution} # ====== TODO To be translated ====== translate Y CCDlgClawsEg {e.g Sylpheed Claws} # ====== TODO To be translated ====== translate Y CCDlgmailxEg {e.g. mailx, mutt, nail...} # ====== TODO To be translated ====== translate Y CCDlgAttachementPar {Attachment parameter:} # ====== TODO To be translated ====== translate Y CCDlgInternalXfcc {Use internal Xfcc support} # ====== TODO To be translated ====== translate Y CCDlgConfirmXfcc {Confirm moves} # ====== TODO To be translated ====== translate Y CCDlgSubjectPar {Subject parameter:} # ====== TODO To be translated ====== translate Y CCDlgDeleteBoxes {Empty In-/Outbox} # ====== TODO To be translated ====== translate Y CCDlgDeleteBoxesText {Do you really want to empty your In- and Outbox folders for Correspondence Chess? This requires a new sync to show the last state of your games} # ====== TODO To be translated ====== translate Y CCDlgConfirmMove {Confirm move} # ====== TODO To be translated ====== translate Y CCDlgConfirmMoveText {If you confirm, the following move and comment will be sent to the server:} # ====== TODO To be translated ====== translate Y CCDlgDBGameToLong {Inconsistent Mainline} # ====== TODO To be translated ====== translate Y CCDlgDBGameToLongError {The mainline in your database is longer than the game in your Inbox. If the Inbox contains current games, i.e. right after a sync, some moves were added to the mainline in the database erroneously.\nIn this case please shorten the mainline to (at max) move\n} # ====== TODO To be translated ====== translate Y CCDlgStartEmail {Start new eMail game} # ====== TODO To be translated ====== translate Y CCDlgYourName {Your Name:} # ====== TODO To be translated ====== translate Y CCDlgYourMail {Your eMail Address:} # ====== TODO To be translated ====== translate Y CCDlgOpponentName {Opponents Name:} # ====== TODO To be translated ====== translate Y CCDlgOpponentMail {Opponents eMail Address:} # ====== TODO To be translated ====== translate Y CCDlgGameID {Game ID (unique):} # ====== TODO To be translated ====== translate Y CCDlgTitNoOutbox {Scid: Correspondence Chess Outbox} # ====== TODO To be translated ====== translate Y CCDlgTitNoInbox {Scid: Correspondence Chess Inbox} # ====== TODO To be translated ====== translate Y CCDlgTitNoGames {Scid: No Correspondence Chess Games} # ====== TODO To be translated ====== translate Y CCErrInboxDir {Correspondence Chess inbox directory:} # ====== TODO To be translated ====== translate Y CCErrOutboxDir {Correspondence Chess outbox directory:} # ====== TODO To be translated ====== translate Y CCErrDirNotUsable {does not exist or is not accessible!\nPlease check and correct the settings.} # ====== TODO To be translated ====== translate Y CCErrNoGames {does not contain any games!\nPlease fetch them first.} # ====== TODO To be translated ====== translate Y CCDlgTitNoCCDB {Scid: No Correspondence Database} # ====== TODO To be translated ====== translate Y CCErrNoCCDB {No Database of type 'Correspondence' is opened. Please open one before using correspondence chess functions.} # ====== TODO To be translated ====== translate Y CCFetchBtn {Fetch games from the server and process the Inbox} # ====== TODO To be translated ====== translate Y CCPrevBtn {Goto previous game} # ====== TODO To be translated ====== translate Y CCNextBtn {Goto next game} # ====== TODO To be translated ====== translate Y CCSendBtn {Send move} # ====== TODO To be translated ====== translate Y CCEmptyBtn {Empty In- and Outbox} # ====== TODO To be translated ====== translate Y CCHelpBtn {Help on icons and status indicators.\nFor general Help press F1!} # ====== TODO To be translated ====== translate Y CCDlgServerName {Server Name:} # ====== TODO To be translated ====== translate Y CCDlgLoginName {Login Name:} # ====== TODO To be translated ====== translate Y CCDlgPassword {Password:} # ====== TODO To be translated ====== translate Y CCDlgURL {Xfcc-URL:} # ====== TODO To be translated ====== translate Y CCDlgRatingType {Rating Type:} # ====== TODO To be translated ====== translate Y CCDlgDuplicateGame {Non-unique game ID} # ====== TODO To be translated ====== translate Y CCDlgDuplicateGameError {This game exists more than once in your database. Please delete all duplicates and compact your game file (File/Maintenance/Compact Database).} # ====== TODO To be translated ====== translate Y CCDlgSortOption {Sorting:} # ====== TODO To be translated ====== translate Y CCDlgListOnlyOwnMove {Only games I have the move} # ====== TODO To be translated ====== translate Y CCOrderClassicTxt {Site, Event, Round, Result, White, Black} # ====== TODO To be translated ====== translate Y CCOrderMyTimeTxt {My Clock} # ====== TODO To be translated ====== translate Y CCOrderTimePerMoveTxt {Time per move till next time control} # ====== TODO To be translated ====== translate Y CCOrderStartDate {Start date} # ====== TODO To be translated ====== translate Y CCOrderOppTimeTxt {Opponents Clock} # ====== TODO To be translated ====== translate Y CCDlgConfigRelay {Configure ICCF observations} # ====== TODO To be translated ====== translate Y CCDlgConfigRelayHelp {Go to the games page on http://www.iccf-webchess.com and display the game to be observed. If you see the chessboard copy the URL from your browser to the list below. One URL per line only!\nExample: http://www.iccf-webchess.com/MakeAMove.aspx?id=266452} # ====== TODO To be translated ====== translate Y ExtHWConfigConnection {Configure external hardware} # ====== TODO To be translated ====== translate Y ExtHWPort {Port} # ====== TODO To be translated ====== translate Y ExtHWEngineCmd {Engine command} # ====== TODO To be translated ====== translate Y ExtHWEngineParam {Engine parameter} # ====== TODO To be translated ====== translate Y ExtHWShowButton {Show button} # ====== TODO To be translated ====== translate Y ExtHWHardware {Hardware} # ====== TODO To be translated ====== translate Y ExtHWNovag {Novag Citrine} # ====== TODO To be translated ====== translate Y ExtHWInputEngine {Input Engine} # ====== TODO To be translated ====== translate Y ExtHWNoBoard {No board} # ====== TODO To be translated ====== translate Y NovagReferee {Referee} # ====== TODO To be translated ====== translate Y IEConsole {Input Engine Console} # ====== TODO To be translated ====== translate Y IESending {Moves sent for} # ====== TODO To be translated ====== translate Y IESynchronise {Synchronise} # ====== TODO To be translated ====== translate Y IERotate {Rotate} # ====== TODO To be translated ====== translate Y IEUnableToStart {Unable to start Input Engine:} # ====== TODO To be translated ====== translate Y DoneWithPosition {Done with position} # ====== TODO To be translated ====== translate Y Board {Board} # ====== TODO To be translated ====== translate Y showGameInfo {Show game info} # ====== TODO To be translated ====== translate Y autoResizeBoard {Automatic resize of board} # ====== TODO To be translated ====== translate Y DockTop {Move to top} # ====== TODO To be translated ====== translate Y DockBottom {Move to bottom} # ====== TODO To be translated ====== translate Y DockLeft {Move to left} # ====== TODO To be translated ====== translate Y DockRight {Move to right} # ====== TODO To be translated ====== translate Y Undock {Undock} # ====== TODO To be translated ====== translate Y ChangeIcon {Change icon...} # ====== TODO To be translated ====== } # end of serbian.tcl scid-4.3.0.cvs20120311/tcl/lang/english.tcl0000644000175000017500000023422411727223077017305 0ustar oliveroliver # Text for menu names and status bar help messages in English. # Part of Scid (Shane's Chess Information Database). # # Instructions for adding a new language: # # (1) Choose a letter code for the language. Currently assigned codes are: # E=English, D=Deutsch, F=Francais, S=Spanish, B=Brasil Portuguese, # P=Polish, N=Nederlands, W=Swedish, O=Norsk, C=Czech, H=Hungarian, # Y=Serbian. # # (2) Edit the code below that has the lines "addLanguage ..." and add your # new language. The final digit in each line is the index of the # letter to underline in the menu, counting from 0 as the first letter. # # (3) Copy the section of English menu and help message details below (all # the commands that start "menuText E ..." or "helpMsg E ..." or # "translate E ...") and change all the "E" letters to the letter you # assigned for the new language. # # (4) Write the translations. This involves changing anything "in quotes" # or {in braces} for the menuText, helpMsg and translate commands. # # A menu command has the format: # menuText L tag "Name..." underline {HelpMessage...} # # A status bar help message for a button has the format: # helpMsg L tag {HelpMessage...} # # A general word or message translation has the format: # translate L tag {message...} # # where "L" is the language letter, "tag" is the name of the menu entry # or the button widget name, and "underline" is the index of the letter # to underline, counting from zero as the first letter. Two menu entries # that appear in the same menu should have a different underlined letter. # If in doubt, just make them all "0" and I'll assign sensible underlined # letters when your translations are incorporated into Scid. # # Additions, corrections? Email: sgh@users.sourceforge.net addLanguage E English 0 proc setLanguage_E {} { # File menu: menuText E File "File" 0 menuText E FileNew "New..." 0 {Create a new Scid database} menuText E FileOpen "Open..." 0 {Open an existing Scid database} menuText E FileClose "Close" 0 {Close the active Scid database} menuText E FileFinder "Finder" 0 {Open the File Finder window} menuText E FileBookmarks "Bookmarks" 0 {Bookmarks menu (shortcut: Ctrl+B)} menuText E FileBookmarksAdd "Add Bookmark" 0 \ {Bookmark the current database game and position} menuText E FileBookmarksFile "File Bookmark" 0 \ {File a bookmark for the current game and position} menuText E FileBookmarksEdit "Edit Bookmarks..." 0 \ {Edit the bookmarks menus} menuText E FileBookmarksList "Display Folders as Single List" 0 \ {Display bookmark folders as a single list, not submenus} menuText E FileBookmarksSub "Display Folders as Submenus" 0 \ {Display bookmark folders as submenus, not a single list} menuText E FileMaint "Maintenance" 0 {Scid database maintenance tools} menuText E FileMaintWin "Maintenance Window" 0 \ {Open/close the Scid database maintenance window} menuText E FileMaintCompact "Compact Database..." 0 \ {Compact database files, removing deleted games and unused names} menuText E FileMaintClass "ECO-Classify Games..." 2 \ {Recompute the ECO code of all games} menuText E FileMaintSort "Sort Database..." 0 \ {Sort all games in the database} menuText E FileMaintDelete "Delete Twin Games..." 0 \ {Find twin games and set them to be deleted} menuText E FileMaintTwin "Twin Checker Window" 0 \ {Open/update the Twin checker window} menuText E FileMaintName "Name Spelling" 0 {Name editing and spelling tools} menuText E FileMaintNameEditor "Name Editor" 0 \ {Open/close the name editor window} menuText E FileMaintNamePlayer "Spellcheck Player Names..." 11 \ {Spellcheck player names using the spellcheck file} menuText E FileMaintNameEvent "Spellcheck Event Names..." 11 \ {Spellcheck event names using the spellcheck file} menuText E FileMaintNameSite "Spellcheck Site Names..." 11 \ {Spellcheck site names using the spellcheck file} menuText E FileMaintNameRound "Spellcheck Round Names..." 11 \ {Spellcheck round names using the spellcheck file} menuText E FileReadOnly "Read-only..." 0 \ {Treat the current database as read-only, preventing changes} menuText E FileSwitch "Switch to Database" 0 \ {Switch to a different opened database} menuText E FileExit "Exit" 1 {Exit Scid} menuText E FileMaintFixBase "Repair base" 0 {Try to repair a corrupted base} # Edit menu: menuText E Edit "Edit" 0 menuText E EditAdd "Add Variation" 0 {Add a variation at this move in the game} menuText E EditDelete "Delete Variation" 0 {Delete a variation for this move} menuText E EditFirst "Make First Variation" 5 \ {Promote a variation to be first in the list} menuText E EditMain "Promote Variation to Main Line" 21 \ {Promote a variation to be the main line} menuText E EditTrial "Try Variation" 0 \ {Start/stop trial mode, for testing an idea on the board} menuText E EditStrip "Strip" 2 {Strip comments or variations from this game} menuText E EditUndo "Undo" 0 {Undo last game change} menuText E EditStripComments "Comments" 0 \ {Strip all comments and annotations from this game} menuText E EditStripVars "Variations" 0 {Strip all variations from this game} menuText E EditStripBegin "Moves from the beginning" 1 \ {Strip moves from the beginning of the game} menuText E EditStripEnd "Moves to the end" 0 \ {Strip moves to the end of the game} menuText E EditReset "Empty Clipbase" 0 \ {Reset the clipbase to be completely empty} menuText E EditCopy "Copy This Game to Clipbase" 0 \ {Copy this game to the Clipbase database} menuText E EditPaste "Paste Last Clipbase Game" 0 \ {Paste the active Clipbase game here} menuText E EditPastePGN "Paste Clipboard text as PGN game..." 18 \ {Interpret the clipboard text as a game in PGN notation and paste it here} menuText E EditSetup "Setup Start Board..." 0 \ {Set the start position for this game} menuText E EditCopyBoard "Copy Position" 6 \ {Copy the current board in FEN notation to the text selection (clipboard)} menuText E EditPasteBoard "Paste Start Board" 12 \ {Set the start board from the current text selection (clipboard)} # Game menu: menuText E Game "Game" 0 menuText E GameNew "New Game" 0 \ {Reset to an empty game, discarding any changes} menuText E GameFirst "Load First Game" 5 {Load the first filtered game} menuText E GamePrev "Load Previous Game" 5 {Load the previous filtered game} menuText E GameReload "Re-Load Current Game" 3 \ {Reload this game, discarding any changes made} menuText E GameNext "Load Next Game" 7 {Load the next filtered game} menuText E GameLast "Load Last Game" 8 {Load the last filtered game} menuText E GameRandom "Load Random Game" 8 {Load a random filtered game} menuText E GameNumber "Load Game Number..." 5 \ {Load a game by entering its number} menuText E GameReplace "Save: Replace game..." 6 \ {Save this game, replacing the old version} menuText E GameAdd "Save: Add New Game..." 6 \ {Save this game as a new game in the database} menuText E GameDeepest "Identify Opening" 0 \ {Goto the deepest game position listed in the ECO book} menuText E GameGotoMove "Goto Move Number..." 5 \ {Go to a specified move number in the current game} menuText E GameNovelty "Find Novelty..." 7 \ {Find the first move of this game that has not played before} # Search Menu: menuText E Search "Search" 0 menuText E SearchReset "Reset Filter" 0 {Reset the filter so all games are included} menuText E SearchNegate "Negate Filter" 0 {Negate the filter to only include excluded games} menuText E SearchCurrent "Current Board..." 0 {Search for the current board position} menuText E SearchHeader "Header..." 0 {Search by Header (player, event, etc) information} menuText E SearchMaterial "Material/Pattern..." 0 {Search for material or board patterns} menuText E SearchUsing "Using Search File..." 0 {Search using a SearchOptions file} # Windows menu: menuText E Windows "Windows" 0 menuText E WindowsComment "Comment Editor" 0 {Open/close the comment editor} menuText E WindowsGList "Game List" 0 {Open/close the game list window} menuText E WindowsPGN "PGN Window" 0 \ {Open/close the PGN (game notation) window} menuText E WindowsPList "Player Finder" 2 {Open/close the player finder} menuText E WindowsTmt "Tournament Finder" 2 {Open/close the tournament finder} menuText E WindowsSwitcher "Database switcher" 0 \ {Open/close the Database Switcher window} menuText E WindowsMaint "Maintenance Window" 0 \ {Open/close the Maintenance window} menuText E WindowsECO "ECO Browser" 0 {Open/close the ECO Browser window} menuText E WindowsRepertoire "Repertoire Editor" 0 \ {Open/close the opening repertoire editor} menuText E WindowsStats "Statistics Window" 0 \ {Open/close the filter statistics window} menuText E WindowsTree "Tree Window" 0 {Open/close the Tree window} menuText E WindowsTB "Endgame Tablebase Window" 1 {Open/close the Tablebase window} menuText E WindowsBook "Book Window" 0 {Open/close the Book window} menuText E WindowsCorrChess "Correspondence Window" 0 {Open/close the Correspondence window} # Tools menu: menuText E Tools "Tools" 0 menuText E ToolsAnalysis "Analysis Engine..." 0 \ {Start/stop a chess analysis engine} menuText E ToolsAnalysis2 "Analysis Engine #2..." 17 \ {Start/stop the 2nd chess analysis engine} menuText E ToolsCross "Crosstable" 0 {Show tournament crosstable for this game} menuText E ToolsEmail "Email Manager" 0 {Open/close the email chess manager window} menuText E ToolsFilterGraph "Rel. Filter Graph" 12 {Open/close the filter graph window for relative values} menuText E ToolsAbsFilterGraph "Abs. Filter Graph" 7 {Open/close the filter graph window for absolute values} menuText E ToolsOpReport "Opening Report" 0 {Generate an opening report for the current position} menuText E ToolsOpenBaseAsTree "Open base as tree..." 0 {Open a base and use it in Tree window} menuText E ToolsOpenRecentBaseAsTree "Open recent base as tree" 0 {Open a recent base and use it in Tree window} menuText E ToolsTracker "Piece Tracker" 6 {Open the Piece Tracker window} menuText E ToolsTraining "Training" 0 {Training tools (tactics, openings,...) } menuText E ToolsTacticalGame "Tactical game" 0 {Play a game with tactics} menuText E ToolsSeriousGame "Serious game" 0 {Play a serious game} menuText E ToolsTrainOpenings "Openings" 0 {Train with a repertoire} menuText E ToolsTrainReviewGame "Review game" 0 {Guess moves played in a game} menuText E ToolsTrainTactics "Tactics" 0 {Solve tactics} menuText E ToolsTrainCalvar "Calculation of variations" 0 {Calculation of variations training} menuText E ToolsTrainFindBestMove "Find best move" 0 {Find best move} menuText E ToolsTrainFics "Play on FICS" 0 {Play on freechess.org} menuText E ToolsBookTuning "Book tuning" 0 {Book tuning} menuText E ToolsConnectHardware "Connect Hardware" 8 {Connect external hardware} menuText E ToolsConnectHardwareConfigure "Configure..." 0 {Configure external hardware and connection} menuText E ToolsConnectHardwareNovagCitrineConnect "Connect Novag Citrine" 8 {Connect Novag Citrine with Scid} menuText E ToolsConnectHardwareInputEngineConnect "Connect Input Engine" 8 {Connect Input Engine (e.g. DGT board) with Scid} menuText E ToolsPInfo "Player Information" 0 \ {Open/update the Player Information window} menuText E ToolsPlayerReport "Player Report..." 3 \ {Generate a player report} menuText E ToolsRating "Rating Graph" 0 \ {Graph the rating history of the current game players} menuText E ToolsScore "Score Graph" 0 {Show the score graph window} menuText E ToolsExpCurrent "Export Current Game" 8 \ {Write current game to a text file} menuText E ToolsExpCurrentPGN "Export Game to PGN File..." 15 \ {Write current game to a PGN file} menuText E ToolsExpCurrentHTML "Export Game to HTML File..." 15 \ {Write current game to a HTML file} menuText E ToolsExpCurrentHTMLJS "Export Game to HTML and JavaScript File..." 15 {Write current game to a HTML and JavaScript file} menuText E ToolsExpCurrentLaTeX "Export Game to LaTeX File..." 15 \ {Write current game to a LaTeX file} menuText E ToolsExpFilter "Export All Filter Games" 1 \ {Write all filtered games to a text file} menuText E ToolsExpFilterPGN "Export Filter to PGN File..." 17 \ {Write all filtered games to a PGN file} menuText E ToolsExpFilterHTML "Export Filter to HTML File..." 17 \ {Write all filtered games to a HTML file} menuText E ToolsExpFilterHTMLJS "Export Filter to HTML and JavaScript File..." 17 {Write all filtered games to a HTML and JavaScript file} menuText E ToolsExpFilterLaTeX "Export Filter to LaTeX File..." 17 \ {Write all filtered games to a LaTeX file} menuText E ToolsImportOne "Import One PGN Game..." 0 \ {Import a game from PGN text} menuText E ToolsImportFile "Import File of PGN Games..." 7 {Import games from a PGN file} menuText E ToolsStartEngine1 "Start engine 1" 13 {Start engine 1} menuText E ToolsStartEngine2 "Start engine 2" 13 {Start engine 2} menuText E ToolsCaptureBoard "Capture Current Board..." 5 {Save the current board as an image.} # Play menue menuText E Play "Play" 0 # --- Correspondence Chess menuText E CorrespondenceChess "Correspondence Chess" 0 {Functions for eMail and Xfcc based correspondence chess} menuText E CCConfigure "Configure..." 0 {Configure external tools and general setup} menuText E CCConfigRelay "Observe games..." 10 {Configure games to be observed} menuText E CCOpenDB "Open Database..." 0 {Open the default Correspondence database} menuText E CCRetrieve "Retrieve Games" 0 {Retrieve games via external (Xfcc-)helper} menuText E CCInbox "Process Inbox" 8 {Process all files in scids Inbox} menuText E CCSend "Send Move" 0 {Send your move via eMail or external (Xfcc-)helper} menuText E CCResign "Resign" 1 {Resign (not via eMail)} menuText E CCClaimDraw "Claim Draw" 6 {Send move and claim a draw (not via eMail)} menuText E CCOfferDraw "Offer Draw" 1 {Send move and offer a draw (not via eMail)} menuText E CCAcceptDraw "Accept Draw" 0 {Accept a draw offer (not via eMail)} menuText E CCNewMailGame "New eMail Game..." 2 {Start a new eMail game} menuText E CCMailMove "Mail Move..." 0 {Send the move via eMail to the opponent} menuText E CCGamePage "Game Page..." 0 {Call up the game via the web browser} # menu in cc window: menuText E CCEditCopy "Copy Gamelist to Clipbase" 0 {Copy the games as CSV list to clipbase} # B GHiJKL Q TUV XYZ # Options menu: menuText E Options "Options" 0 menuText E OptionsBoard "Chessboard" 0 {Chess board appearance options} menuText E OptionsBoardSize "Size" 0 {Change the board size} menuText E OptionsBoardPieces "Piece Style" 6 {Change the board piece style} menuText E OptionsBoardColors "Colors..." 0 {Change board colors} #Klimmek menuText E OptionsBoardGraphics "Squares..." 0 {Select textures for squares} translate E OptionsBGW {Select texture for squares} translate E OptionsBoardGraphicsText {Select graphic files for white and black squares:} menuText E OptionsBoardNames "My Player Names..." 0 {Edit my player names} menuText E OptionsExport "Exporting" 0 {Change text export options} menuText E OptionsFonts "Fonts" 0 {Change fonts} menuText E OptionsFontsRegular "Regular" 0 {Change the regular font} menuText E OptionsFontsMenu "Menu" 0 {Change the menu font} menuText E OptionsFontsSmall "Small" 0 {Change the small font} menuText E OptionsFontsTiny "Tiny" 0 {Change the tiny font} menuText E OptionsFontsFixed "Fixed" 0 {Change the fixed-width font} menuText E OptionsGInfo "Game Information" 0 {Game information options} menuText E OptionsLanguage "Language" 0 {Select menu language} menuText E OptionsMovesTranslatePieces "Translate pieces" 0 {Translate first letter of pieces} menuText E OptionsMovesHighlightLastMove "Highlight last move" 0 {Highlight last move} menuText E OptionsMovesHighlightLastMoveDisplay "Show" 0 {Display last move Highlight} menuText E OptionsMovesHighlightLastMoveWidth "Width" 0 {Thickness of line} menuText E OptionsMovesHighlightLastMoveColor "Color" 0 {Color of line} menuText E OptionsMoves "Moves" 0 {Move entry options} menuText E OptionsMovesAsk "Ask Before Replacing Moves" 0 \ {Ask before overwriting any existing moves} menuText E OptionsMovesAnimate "Animation Time" 1 \ {Set the amount of time used to animate moves} menuText E OptionsMovesDelay "Autoplay Time Delay..." 1 \ {Set the time delay for autoplay mode} menuText E OptionsMovesCoord "Coordinate Move Entry" 0 \ {Accept coordinate-style move entry (e.g. "g1f3")} menuText E OptionsMovesSuggest "Show Suggested Moves" 0 \ {Turn on/off move suggestion} menuText E OptionsShowVarPopup "Show variations window" 0 {Turn on/off the display of a variations window} menuText E OptionsMovesSpace "Add spaces after move number" 0 {Add spaces after move number} menuText E OptionsMovesKey "Keyboard Completion" 0 \ {Turn on/off keyboard move auto-completion} menuText E OptionsMovesShowVarArrows "Show Arrows for Variations" 0 {Turn on/off arrows showing moves in variations} menuText E OptionsNumbers "Number Format" 0 {Select the number format} menuText E OptionsStartup "Startup" 3 {Select windows to open at startup} menuText E OptionsTheme "Theme" 0 {Change look of interface} menuText E OptionsWindows "Windows" 0 {Window options} menuText E OptionsWindowsIconify "Auto-Iconify" 5 \ {Iconify all windows when the main window is iconified} menuText E OptionsWindowsRaise "Auto-Raise" 5 \ {Raise certain windows (e.g. progress bars) whenever they are obscured} menuText E OptionsSounds "Sounds..." 2 {Configure move announcement sounds} menuText E OptionsWindowsDock "Dock windows" 0 {Dock windows (needs restart)} menuText E OptionsWindowsSaveLayout "Save layout" 0 {Save layout} menuText E OptionsWindowsRestoreLayout "Restore layout" 0 {Restore layout} menuText E OptionsWindowsShowGameInfo "Show game info" 0 {Show game info} menuText E OptionsWindowsAutoLoadLayout "Auto load first layout" 0 {Auto load first layout at startup} menuText E OptionsToolbar "Toolbar..." 0 {Configure the main window toolbar} menuText E OptionsECO "Load ECO File..." 7 {Load the ECO classification file} menuText E OptionsSpell "Load Spellcheck File..." 11 \ {Load the Scid spellcheck file} menuText E OptionsTable "Tablebase Directory..." 10 \ {Select a tablebase file; all tablebases in its directory will be used} menuText E OptionsRecent "Recent Files..." 0 {Change the number of recent files displayed in the File menu} menuText E OptionsBooksDir "Books directory..." 0 {Sets the opening books directory} menuText E OptionsTacticsBasesDir "Bases directory..." 0 {Sets the tactics (training) bases directory} menuText E OptionsSave "Save Options" 0 "Save all settable options to the file $::optionsFile" menuText E OptionsAutoSave "Auto-Save Options on Exit" 0 \ {Auto-save all options when exiting Scid} # Help menu: menuText E Help "Help" 0 menuText E HelpContents "Contents" 0 {Show the help contents page} menuText E HelpIndex "Index" 0 {Show the help index page} menuText E HelpGuide "Quick Guide" 0 {Show the quick guide help page} menuText E HelpHints "Hints" 0 {Show the hints help page} menuText E HelpContact "Contact Info" 1 {Show the contact information help page} menuText E HelpTip "Tip of the Day" 0 {Show a useful Scid tip} menuText E HelpStartup "Startup Window" 0 {Show the startup window} menuText E HelpAbout "About Scid" 0 {Information about Scid} # Game info box popup menu: menuText E GInfoHideNext "Hide Next Move" 0 menuText E GInfoMaterial "Show Material Values" 0 menuText E GInfoFEN "Show FEN" 5 menuText E GInfoMarks "Show Colored Squares and Arrows" 5 menuText E GInfoWrap "Wrap Long Lines" 0 menuText E GInfoFullComment "Show Full Comment" 10 menuText E GInfoPhotos "Show Photos" 5 menuText E GInfoTBNothing "Tablebases: Nothing" 12 menuText E GInfoTBResult "Tablebases: Result Only" 12 menuText E GInfoTBAll "Tablebases: Result and Best Moves" 19 menuText E GInfoDelete "(Un)Delete This Game" 4 menuText E GInfoMark "(Un)Mark This Game" 4 menuText E GInfoInformant "Configure informant values" 0 # Main window buttons: helpMsg E .main.fbutton.button.start {Go to start of game (key: Home)} helpMsg E .main.fbutton.button.end {Go to end of game (key: End)} helpMsg E .main.fbutton.button.back {Go back one move (key: LeftArrow)} helpMsg E .main.fbutton.button.forward {Go forward one move (key: RightArrow)} helpMsg E .main.fbutton.button.intoVar {Move into a variation (key: v)} helpMsg E .main.fbutton.button.exitVar {Leave the current variation (key: z)} helpMsg E .main.fbutton.button.flip {Rotate board (key: .)} helpMsg E .main.fbutton.button.coords {Turn board coordinates on or off (key: 0)} helpMsg E .main.fbutton.button.stm {Turn the side-to-move icon on or off} helpMsg E .main.fbutton.button.autoplay {Autoplay moves (key: Ctrl+Z)} # General buttons: translate E Back {Back} translate E Browse {Browse} translate E Cancel {Cancel} translate E Continue {Continue} translate E Clear {Clear} translate E Close {Close} translate E Contents {Contents} translate E Defaults {Defaults} translate E Delete {Delete} translate E Graph {Graph} translate E Help {Help} translate E Import {Import} translate E Index {Index} translate E LoadGame {Load Game} translate E BrowseGame {Browse Game} translate E MergeGame {Merge Game} translate E MergeGames {Merge Games} translate E Preview {Preview} translate E Revert {Revert} translate E Save {Save} translate E Search {Search} translate E Stop {Stop} translate E Store {Store} translate E Update {Update} translate E ChangeOrient {Change window orientation} translate E ShowIcons {Show Icons} translate E None {None} translate E First {First} translate E Current {Current} translate E Last {Last} # General messages: translate E game {game} translate E games {games} translate E move {move} translate E moves {moves} translate E all {all} translate E Yes {Yes} translate E No {No} translate E Both {Both} translate E King {King} translate E Queen {Queen} translate E Rook {Rook} translate E Bishop {Bishop} translate E Knight {Knight} translate E Pawn {Pawn} translate E White {White} translate E Black {Black} translate E Player {Player} translate E Rating {Rating} translate E RatingDiff {Rating difference (White - Black)} translate E AverageRating {Average Rating} translate E Event {Event} translate E Site {Site} translate E Country {Country} translate E IgnoreColors {Ignore colors} translate E Date {Date} translate E EventDate {Event date} translate E Decade {Decade} translate E Year {Year} translate E Month {Month} translate E Months {January February March April May June July August September October November December} translate E Days {Sun Mon Tue Wed Thu Fri Sat} translate E YearToToday {Year to today} translate E Result {Result} translate E Round {Round} translate E Length {Length} translate E ECOCode {ECO code} translate E ECO {ECO} translate E Deleted {Deleted} translate E SearchResults {Search Results} translate E OpeningTheDatabase {Opening database} translate E Database {Database} translate E Filter {Filter} translate E noGames {no games} translate E allGames {all games} translate E empty {empty} translate E clipbase {clipbase} translate E score {score} translate E StartPos {Start position} translate E Total {Total} translate E readonly {read-only} # Standard error messages: translate E ErrNotOpen {This is not an open database.} translate E ErrReadOnly {This database is read-only; it cannot be altered.} translate E ErrSearchInterrupted {Search was interrupted; results are incomplete.} # Game information: translate E twin {twin} translate E deleted {deleted} translate E comment {comment} translate E hidden {hidden} translate E LastMove {Last move} translate E NextMove {Next} translate E GameStart {Start of game} translate E LineStart {Start of line} translate E GameEnd {End of game} translate E LineEnd {End of line} # Player information: translate E PInfoAll {Results for all games} translate E PInfoFilter {Results for filter games} translate E PInfoAgainst {Results against} translate E PInfoMostWhite {Most common openings as White} translate E PInfoMostBlack {Most common openings as Black} translate E PInfoRating {Rating history} translate E PInfoBio {Biography} translate E PInfoEditRatings {Edit Ratings} # Tablebase information: translate E Draw {Draw} translate E stalemate {stalemate} translate E withAllMoves {with all moves} translate E withAllButOneMove {with all but one move} translate E with {with} translate E only {only} translate E lose {lose} translate E loses {loses} translate E allOthersLose {all others lose} translate E matesIn {mates in} translate E hasCheckmated {has checkmated} translate E longest {longest} translate E WinningMoves {Winning moves} translate E DrawingMoves {Drawing moves} translate E LosingMoves {Losing moves} translate E UnknownMoves {Unknown-result moves} # Tip of the day: translate E Tip {Tip} translate E TipAtStartup {Tip at startup} # Tree window menus: menuText E TreeFile "File" 0 menuText E TreeFileFillWithBase "Fill Cache with base" 0 {Fill the cache file with all games in current base} menuText E TreeFileFillWithGame "Fill Cache with game" 0 {Fill the cache file with current game in current base} menuText E TreeFileSetCacheSize "Cache size" 0 {Set the cache size} menuText E TreeFileCacheInfo "Cache info" 0 {Get info on cache usage} menuText E TreeFileSave "Save Cache File" 0 {Save the tree cache (.stc) file} menuText E TreeFileFill "Fill Cache File" 0 \ {Fill the cache file with common opening positions} menuText E TreeFileBest "Best Games List" 0 {Show the best tree games list} menuText E TreeFileGraph "Graph Window" 0 {Show the graph for this tree branch} menuText E TreeFileCopy "Copy Tree Text to Clipboard" 1 \ {Copy the tree statisctics to the clipboard} menuText E TreeFileClose "Close Tree Window" 0 {Close the tree window} menuText E TreeMask "Mask" 0 menuText E TreeMaskNew "New" 0 {New mask} menuText E TreeMaskOpen "Open" 0 {Open mask} menuText E TreeMaskOpenRecent "Open recent" 0 {Open recent mask} menuText E TreeMaskSave "Save" 0 {Save mask} menuText E TreeMaskClose "Close" 0 {Close mask} menuText E TreeMaskFillWithGame "Fill with game" 0 {Fill mask with game} menuText E TreeMaskFillWithBase "Fill with base" 0 {Fill mask with all games in base} menuText E TreeMaskInfo "Info" 0 {Show statistics for current mask} menuText E TreeMaskDisplay "Display mask map" 0 {Show mask data in a tree form} menuText E TreeMaskSearch "Search" 0 {Search in current mask} menuText E TreeSort "Sort" 0 menuText E TreeSortAlpha "Alphabetical" 0 menuText E TreeSortECO "ECO Code" 0 menuText E TreeSortFreq "Frequency" 0 menuText E TreeSortScore "Score" 0 menuText E TreeOpt "Options" 0 menuText E TreeOptSlowmode "slow mode" 0 {Slow mode for updates (high accuracy)} menuText E TreeOptFastmode "Fast mode" 0 {Fast mode for updates (no move transposition)} menuText E TreeOptFastAndSlowmode "Fast and slow mode" 0 {Fast mode then slow mode for updates} menuText E TreeOptStartStop "Auto refreshing" 0 {Toggles automatic refreshing of the tree window} menuText E TreeOptLock "Lock" 0 {Lock/unlock the tree to the current database} menuText E TreeOptTraining "Training" 0 {Turn on/off tree training mode} menuText E TreeOptAutosave "Auto-Save Cache File" 0 \ {Auto-save the cache file when closing the tree window} menuText E TreeHelp "Help" 0 menuText E TreeHelpTree "Tree Help" 0 menuText E TreeHelpIndex "Help Index" 0 translate E SaveCache {Save Cache} translate E Training {Training} translate E LockTree {Lock} translate E TreeLocked {locked} translate E TreeBest {Best} translate E TreeBestGames {Best Tree Games} # Note: the next message is the tree window title row. After editing it, # check the tree window to make sure it lines up with the actual columns. translate E TreeTitleRow \ { Move ECO Frequency Score AvElo Perf AvYear %Draws} translate E TreeTotal {TOTAL} translate E DoYouWantToSaveFirst {Do you want to save first} translate E AddToMask {Add to Mask} translate E RemoveFromMask {Remove from Mask} translate E AddThisMoveToMask {Add this move to Mask} translate E SearchMask {Search in Mask} translate E DisplayMask {Display Mask} translate E Nag {Nag code} translate E Marker {Marker} translate E Include {Include} translate E Exclude {Exclude} translate E MainLine {Main line} translate E Bookmark {Bookmark} translate E NewLine {New line} translate E ToBeVerified {To be verified} translate E ToTrain {To train} translate E Dubious {Dubious} translate E ToRemove {To remove} translate E NoMarker {No marker} translate E ColorMarker {Color} translate E WhiteMark {White} translate E GreenMark {Green} translate E YellowMark {Yellow} translate E BlueMark {Blue} translate E RedMark {Red} translate E CommentMove {Comment move} translate E CommentPosition {Comment position} translate E AddMoveToMaskFirst {Add move to mask first} translate E OpenAMaskFileFirst {Open a mask file first} translate E Positions {Positions} translate E Moves {Moves} # Finder window: menuText E FinderFile "File" 0 menuText E FinderFileSubdirs "Look in Subdirectories" 0 menuText E FinderFileClose "Close File Finder" 0 menuText E FinderSort "Sort" 0 menuText E FinderSortType "Type" 0 menuText E FinderSortSize "Size" 0 menuText E FinderSortMod "Modified" 0 menuText E FinderSortName "Name" 0 menuText E FinderSortPath "Path" 0 menuText E FinderTypes "Types" 0 menuText E FinderTypesScid "Scid Databases" 0 menuText E FinderTypesOld "Old-Format Scid Databases" 0 menuText E FinderTypesPGN "PGN Files" 0 menuText E FinderTypesEPD "EPD Files" 0 menuText E FinderTypesRep "Repertoire Files" 0 menuText E FinderHelp "Help" 0 menuText E FinderHelpFinder "File Finder Help" 0 menuText E FinderHelpIndex "Help Index" 0 translate E FileFinder {File Finder} translate E FinderDir {Directory} translate E FinderDirs {Directories} translate E FinderFiles {Files} translate E FinderUpDir {up} translate E FinderCtxOpen {Open} translate E FinderCtxBackup {Backup} translate E FinderCtxCopy {Copy} translate E FinderCtxMove {Move} translate E FinderCtxDelete {Delete} # Player finder: menuText E PListFile "File" 0 menuText E PListFileUpdate "Update" 0 menuText E PListFileClose "Close Player Finder" 0 menuText E PListSort "Sort" 0 menuText E PListSortName "Name" 0 menuText E PListSortElo "Elo" 0 menuText E PListSortGames "Games" 0 menuText E PListSortOldest "Oldest" 0 menuText E PListSortNewest "Newest" 2 # Tournament finder: menuText E TmtFile "File" 0 menuText E TmtFileUpdate "Update" 0 menuText E TmtFileClose "Close Tournament Finder" 0 menuText E TmtSort "Sort" 0 menuText E TmtSortDate "Date" 0 menuText E TmtSortPlayers "Players" 0 menuText E TmtSortGames "Games" 0 menuText E TmtSortElo "Elo" 0 menuText E TmtSortSite "Site" 0 menuText E TmtSortEvent "Event" 1 menuText E TmtSortWinner "Winner" 0 translate E TmtLimit "List Limit" translate E TmtMeanElo "Mean Elo" translate E TmtNone "No matching tournaments were found." # Graph windows: menuText E GraphFile "File" 0 menuText E GraphFileColor "Save as Color PostScript..." 8 menuText E GraphFileGrey "Save as Greyscale PostScript..." 8 menuText E GraphFileClose "Close Window" 6 menuText E GraphOptions "Options" 0 menuText E GraphOptionsWhite "White" 0 menuText E GraphOptionsBlack "Black" 0 menuText E GraphOptionsBoth "Both" 1 menuText E GraphOptionsPInfo "Player Info player" 0 translate E GraphFilterTitle "Filter Graph: frequency per 1000 games" translate E GraphAbsFilterTitle "Filter Graph: frequency of the games" translate E ConfigureFilter "Configure X-Axes for Year, Rating and Moves" translate E FilterEstimate "Estimate" translate E TitleFilterGraph "Scid: Filter Graph" # Analysis window: translate E AddVariation {Add Variation} translate E AddAllVariations {Add All Variations} translate E AddMove {Add Move} translate E Annotate {Annotate} translate E ShowAnalysisBoard {Show analysis board} translate E ShowInfo {Show engine info} translate E FinishGame {Finish game} translate E StopEngine {Stop engine} translate E StartEngine {Start engine} translate E LockEngine {Lock engine to current position} translate E AnalysisCommand {Analysis Command} translate E PreviousChoices {Previous Choices} translate E AnnotateTime {Set the time between moves in seconds} translate E AnnotateWhich {Add variations} translate E AnnotateAll {For moves by both sides} translate E AnnotateAllMoves {Annotate all moves} translate E AnnotateWhite {For White moves only} translate E AnnotateBlack {For Black moves only} translate E AnnotateBlundersOnly {When game move is a blunder} translate E AnnotateBlundersOnlyScoreChange {Analysis reports blunder, with score change from/to: } translate E BlundersThreshold {Threshold} translate E ScoreAllMoves {Score all moves} translate E LowPriority {Low CPU Priority} translate E ClickHereToSeeMoves {Click here to see moves} translate E ConfigureInformant {Configure Informant} translate E Informant!? {Interesting move} translate E Informant? {Poor move} translate E Informant?? {Blunder} translate E Informant?! {Dubious move} translate E Informant+= {White has a slight advantage} translate E Informant+/- {White has a moderate advantage} translate E Informant+- {White has a decisive advantage} translate E Informant++- {The game is considered won} # Book window translate E Book {Book} translate E OtherBookMoves {Opponent's book} translate E OtherBookMovesTooltip {Moves to which the opponent has a reply} # Analysis Engine open dialog: translate E EngineList {Analysis Engine List} translate E EngineName {Name} translate E EngineCmd {Command} translate E EngineArgs {Parameters} translate E EngineDir {Directory} translate E EngineElo {Elo} translate E EngineTime {Date} translate E EngineNew {New} translate E EngineEdit {Edit} translate E EngineRequired {Fields in bold are required; others are optional} # Stats window menus: menuText E StatsFile "File" 0 menuText E StatsFilePrint "Print to File..." 0 menuText E StatsFileClose "Close Window" 0 menuText E StatsOpt "Options" 0 # PGN window menus: menuText E PgnFile "File" 0 menuText E PgnFileCopy "Copy Game to Clipboard" 0 menuText E PgnFilePrint "Print to File..." 0 menuText E PgnFileClose "Close PGN Window" 10 menuText E PgnOpt "Display" 0 menuText E PgnOptColor "Color Display" 0 menuText E PgnOptShort "Short (3-line) Header" 0 menuText E PgnOptSymbols "Symbolic Annotations" 1 menuText E PgnOptIndentC "Indent Comments" 0 menuText E PgnOptIndentV "Indent Variations" 7 menuText E PgnOptColumn "Column Style (one move per line)" 1 menuText E PgnOptSpace "Space after Move Numbers" 1 menuText E PgnOptStripMarks "Strip out Colored Square/Arrow Codes" 1 menuText E PgnOptBoldMainLine "Use Bold Text for Main Line Moves" 4 menuText E PgnColor "Colors" 0 menuText E PgnColorHeader "Header..." 0 menuText E PgnColorAnno "Annotations..." 0 menuText E PgnColorComments "Comments..." 0 menuText E PgnColorVars "Variations..." 0 menuText E PgnColorBackground "Background..." 0 menuText E PgnColorMain "Main line..." 0 menuText E PgnColorCurrent "Current move background..." 1 menuText E PgnColorNextMove "Next move background..." 0 menuText E PgnHelp "Help" 0 menuText E PgnHelpPgn "PGN Help" 0 menuText E PgnHelpIndex "Index" 0 translate E PgnWindowTitle {Notation - game %u} # Crosstable window menus: menuText E CrosstabFile "File" 0 menuText E CrosstabFileText "Print to Text File..." 9 menuText E CrosstabFileHtml "Print to HTML File..." 9 menuText E CrosstabFileLaTeX "Print to LaTeX File..." 9 menuText E CrosstabFileClose "Close Crosstable Window" 0 menuText E CrosstabEdit "Edit" 0 menuText E CrosstabEditEvent "Event" 0 menuText E CrosstabEditSite "Site" 0 menuText E CrosstabEditDate "Date" 0 menuText E CrosstabOpt "Display" 0 menuText E CrosstabOptAll "All-play-all" 0 menuText E CrosstabOptSwiss "Swiss" 0 menuText E CrosstabOptKnockout "Knockout" 0 menuText E CrosstabOptAuto "Auto" 1 menuText E CrosstabOptAges "Ages in Years" 8 menuText E CrosstabOptNats "Nationalities" 0 menuText E CrosstabOptRatings "Ratings" 0 menuText E CrosstabOptTitles "Titles" 0 menuText E CrosstabOptBreaks "Tie-Break Scores" 4 menuText E CrosstabOptDeleted "Include Deleted Games" 8 menuText E CrosstabOptColors "Colors (Swiss table only)" 0 menuText E CrosstabOptColumnNumbers "Numbered Columns (All-play-all table only)" 2 menuText E CrosstabOptGroup "Group Scores" 0 menuText E CrosstabSort "Sort" 0 menuText E CrosstabSortName "Name" 0 menuText E CrosstabSortRating "Rating" 0 menuText E CrosstabSortScore "Score" 0 menuText E CrosstabColor "Color" 0 menuText E CrosstabColorPlain "Plain Text" 0 menuText E CrosstabColorHyper "Hypertext" 0 menuText E CrosstabHelp "Help" 0 menuText E CrosstabHelpCross "Crosstable Help" 0 menuText E CrosstabHelpIndex "Help Index" 0 translate E SetFilter {Set Filter} translate E AddToFilter {Add to Filter} translate E Swiss {Swiss} translate E Category {Category} # Opening report window menus: menuText E OprepFile "File" 0 menuText E OprepFileText "Print to Text File..." 9 menuText E OprepFileHtml "Print to HTML File..." 9 menuText E OprepFileLaTeX "Print to LaTeX File..." 9 menuText E OprepFileOptions "Options..." 0 menuText E OprepFileClose "Close Report Window" 0 menuText E OprepFavorites "Favorites" 1 menuText E OprepFavoritesAdd "Add Report..." 0 menuText E OprepFavoritesEdit "Edit Report Favorites..." 0 menuText E OprepFavoritesGenerate "Generate Reports..." 0 menuText E OprepHelp "Help" 0 menuText E OprepHelpReport "Opening Report Help" 0 menuText E OprepHelpIndex "Help Index" 0 # Repertoire editor: menuText E RepFile "File" 0 menuText E RepFileNew "New" 0 menuText E RepFileOpen "Open..." 0 menuText E RepFileSave "Save..." 0 menuText E RepFileSaveAs "Save As..." 5 menuText E RepFileClose "Close Window" 0 menuText E RepEdit "Edit" 0 menuText E RepEditGroup "Add Group" 4 menuText E RepEditInclude "Add Include Line" 4 menuText E RepEditExclude "Add Exclude Line" 4 menuText E RepView "View" 0 menuText E RepViewExpand "Expand All Groups" 0 menuText E RepViewCollapse "Collapse All Groups" 0 menuText E RepSearch "Search" 0 menuText E RepSearchAll "All of Repertoire..." 0 menuText E RepSearchDisplayed "Displayed Lines Only..." 0 menuText E RepHelp "Help" 0 menuText E RepHelpRep "Repertoire Help" 0 menuText E RepHelpIndex "Help Index" 0 translate E RepSearch "Repertoire Search" translate E RepIncludedLines "included lines" translate E RepExcludedLines "excluded lines" translate E RepCloseDialog {This repertoire has unsaved changes. Do you really want to continue and discard the changes you have made? } # Header search: translate E HeaderSearch {Header Search} translate E EndSideToMove {Side to move at end of game} translate E GamesWithNoECO {Games with no ECO?} translate E GameLength {Game length} translate E FindGamesWith {Find games with flags} translate E StdStart {Non-standard start} translate E Promotions {Promotions} translate E Comments {Comments} translate E Variations {Variations} translate E Annotations {Annotations} translate E DeleteFlag {Delete flag} translate E WhiteOpFlag {White opening} translate E BlackOpFlag {Black opening} translate E MiddlegameFlag {Middlegame} translate E EndgameFlag {Endgame} translate E NoveltyFlag {Novelty} translate E PawnFlag {Pawn structure} translate E TacticsFlag {Tactics} translate E QsideFlag {Queenside play} translate E KsideFlag {Kingside play} translate E BrilliancyFlag {Brilliancy} translate E BlunderFlag {Blunder} translate E UserFlag {User} translate E PgnContains {PGN contains text} translate E Annotator {Annotator} translate E Cmnts {Annotated games only} # Game list window: translate E GlistNumber {Number} translate E GlistWhite {White} translate E GlistBlack {Black} translate E GlistWElo {W-Elo} translate E GlistBElo {B-Elo} translate E GlistEvent {Event} translate E GlistSite {Site} translate E GlistRound {Round} translate E GlistDate {Date} translate E GlistYear {Year} translate E GlistEDate {EventDate} translate E GlistResult {Result} translate E GlistLength {Length} translate E GlistCountry {Country} translate E GlistECO {ECO} translate E GlistOpening {Opening} translate E GlistEndMaterial {End-Material} translate E GlistDeleted {Deleted} translate E GlistFlags {Flags} translate E GlistVars {Variations} translate E GlistComments {Comments} translate E GlistAnnos {Annotations} translate E GlistStart {Start} translate E GlistGameNumber {Game number} translate E GlistAverageElo {Average Elo} translate E GlistRating {Rating} translate E GlistFindText {Find text} translate E GlistMoveField {Move} translate E GlistEditField {Configure} translate E GlistAddField {Add} translate E GlistDeleteField {Remove} translate E GlistWidth {Width} translate E GlistAlign {Align} translate E GlistAlignL {Align: left} translate E GlistAlignR {Align: right} translate E GlistAlignC {Align: center} translate E GlistColor {Color} translate E GlistSep {Separator} translate E GlistCurrentSep {-- Current --} translate E GlistNewSort {New} translate E GlistAddToSort {Add} # base sorting translate E GsortSort {Sort...} translate E GsortDate {Date} translate E GsortYear {Year} translate E GsortEvent {Event} translate E GsortSite {Site} translate E GsortRound {Round} translate E GsortWhiteName {White Name} translate E GsortBlackName {Black Name} translate E GsortECO {ECO} translate E GsortResult {Result} translate E GsortMoveCount {Move Count} translate E GsortAverageElo {Average Elo} translate E GsortCountry {Country} translate E GsortDeleted {Deleted} translate E GsortEventDate {Event Date} translate E GsortWhiteElo {White Elo} translate E GsortBlackElo {Black Elo} translate E GsortComments {Comments} translate E GsortVariations {Variations} translate E GsortNAGs {NAGs} translate E GsortAscending {Ascending} translate E GsortDescending {Descending} translate E GsortAdd {Add} translate E GsortStore {Store} translate E GsortLoad {Load} # menu shown with right mouse button down on game list. translate E GlistRemoveThisGameFromFilter {Remove this game from Filter} translate E GlistRemoveGameAndAboveFromFilter {Remove game (and all above it) from Filter} translate E GlistRemoveGameAndBelowFromFilter {Remove game (and all below it) from Filter} translate E GlistDeleteGame {(Un)Delete this game} translate E GlistDeleteAllGames {Delete all games in filter} translate E GlistUndeleteAllGames {Undelete all games in filter} translate E GlistMergeGameInBase {Merge Game in other database} # Maintenance window: translate E DatabaseName {Database Name:} translate E TypeIcon {Type Icon:} translate E NumOfGames {Games:} translate E NumDeletedGames {Deleted games:} translate E NumFilterGames {Games in filter:} translate E YearRange {Year range:} translate E RatingRange {Rating range:} translate E Description {Description} translate E Flag {Flag} translate E CustomFlags {Custom flags} translate E DeleteCurrent {Delete current game} translate E DeleteFilter {Delete filter games} translate E DeleteAll {Delete all games} translate E UndeleteCurrent {Undelete current game} translate E UndeleteFilter {Undelete filter games} translate E UndeleteAll {Undelete all games} translate E DeleteTwins {Delete twin games} translate E MarkCurrent {Mark current game} translate E MarkFilter {Mark filter games} translate E MarkAll {Mark all games} translate E UnmarkCurrent {Unmark current game} translate E UnmarkFilter {Unmark filter games} translate E UnmarkAll {Unmark all games} translate E Spellchecking {Spell-checking} translate E Players {Players} translate E Events {Events} translate E Sites {Sites} translate E Rounds {Rounds} translate E DatabaseOps {Database operations} translate E ReclassifyGames {ECO-classify games} translate E CompactDatabase {Compact database} translate E SortDatabase {Sort database} translate E AddEloRatings {Add Elo ratings} translate E AutoloadGame {Autoload game number} translate E StripTags {Strip PGN tags} translate E StripTag {Strip tag} translate E Cleaner {Cleaner} translate E CleanerHelp { The Scid Cleaner will perform all the maintenance actions you select from the list below, on the current database. Current settings in the ECO classification and twin deletion dialogs will apply if you select those functions. } translate E CleanerConfirm { Once Cleaner maintenance is started, it cannot be interrupted! This may take a long time on a large database, depending on the functions you have selected and their current settings. Are you sure you want to commence the maintenance functions you selected? } # Twinchecker translate E TwinCheckUndelete {to flip; "u" undeletes both)} translate E TwinCheckprevPair {Previous pair} translate E TwinChecknextPair {Next pair} translate E TwinChecker {Scid: Twin game checker} translate E TwinCheckTournament {Games in tournament:} translate E TwinCheckNoTwin {No twin } translate E TwinCheckNoTwinfound {No twin was detected for this game.\nTo show twins using this window, you must first use the "Delete twin games..." function. } translate E TwinCheckTag {Share tags...} translate E TwinCheckFound1 {Scid found $result twin games} translate E TwinCheckFound2 { and set their delete flags} translate E TwinCheckNoDelete {There are no games in this database to delete.} translate E TwinCriteria1 { Your settings for finding twin games are potentially likely to\ncause non-twin games with similar moves to be marked as twins.} translate E TwinCriteria2 {It is recommended that if you select "No" for "same moves", you should select "Yes" for the colors, event, site, round, year and month settings.\nDo you want to continue and delete twins anyway? } translate E TwinCriteria3 {It is recommended that you specify "Yes" for at least two of the "same site", "same round" and "same year" settings.\nDo you want to continue and delete twins anyway?} translate E TwinCriteriaConfirm {Scid: Confirm twin settings} translate E TwinChangeTag "Change the following game tags:\n\n" translate E AllocRatingDescription "This command will use the current spellcheck file to add Elo ratings to games in this database. Wherever a player has no current rating but his/her rating at the time of the game is listed in the spellcheck file, that rating will be added." translate E RatingOverride "Overwrite existing non-zero ratings?" translate E AddRatings "Add ratings to:" translate E AddedRatings {Scid added $r Elo ratings in $g games.} #Bookmark editor translate E NewSubmenu "New submenu" # Comment editor: translate E AnnotationSymbols {Annotation Symbols:} translate E Comment {Comment:} translate E InsertMark {Insert mark} translate E InsertMarkHelp { Insert/remove mark: Select color, type, square. Insert/remove arrow: Right-click two squares. } # Nag buttons in comment editor: translate E GoodMove {Good move} translate E PoorMove {Poor move} translate E ExcellentMove {Excellent move} translate E Blunder {Blunder} translate E InterestingMove {Interesting move} translate E DubiousMove {Dubious move} translate E WhiteDecisiveAdvantage {White has a decisive advantage} translate E BlackDecisiveAdvantage {Black has a decisive advantage} translate E WhiteClearAdvantage {White has a clear advantage} translate E BlackClearAdvantage {Black has a clear advantage} translate E WhiteSlightAdvantage {White has a slight advantage} translate E BlackSlightAdvantage {Black has a slight advantage} translate E Equality {Equality} translate E Unclear {Unclear} translate E Diagram {Diagram} # Board search: translate E BoardSearch {Board Search} translate E FilterOperation {Operation on current filter:} translate E FilterAnd {AND (Restrict filter)} translate E FilterOr {OR (Add to filter)} translate E FilterIgnore {IGNORE (Reset filter)} translate E SearchType {Search type:} translate E SearchBoardExact {Exact position (all pieces on same squares)} translate E SearchBoardPawns {Pawns (same material, all pawns on same squares)} translate E SearchBoardFiles {Files (same material, all pawns on same files)} translate E SearchBoardAny {Any (same material, pawns and pieces anywhere)} translate E SearchInRefDatabase { Search in reference database } translate E LookInVars {Look in variations} # Material search: translate E MaterialSearch {Material Search} translate E Material {Material} translate E Patterns {Patterns} translate E Zero {Zero} translate E Any {Any} translate E CurrentBoard {Current Board} translate E CommonEndings {Common Endings} translate E CommonPatterns {Common Patterns} translate E MaterialDiff {Material difference} translate E squares {squares} translate E SameColor {Same color} translate E OppColor {Opposite color} translate E Either {Either} translate E MoveNumberRange {Move number range} translate E MatchForAtLeast {Match for at least} translate E HalfMoves {half-moves} # Common endings in material search: translate E EndingPawns {Pawn endings} translate E EndingRookVsPawns {Rook vs. Pawn(s)} translate E EndingRookPawnVsRook {Rook and 1 Pawn vs. Rook} translate E EndingRookPawnsVsRook {Rook and Pawn(s) vs. Rook} translate E EndingRooks {Rook vs. Rook endings} translate E EndingRooksPassedA {Rook vs. Rook endings with a passed a-pawn} translate E EndingRooksDouble {Double Rook endings} translate E EndingBishops {Bishop vs. Bishop endings} translate E EndingBishopVsKnight {Bishop vs. Knight endings} translate E EndingKnights {Knight vs. Knight endings} translate E EndingQueens {Queen vs. Queen endings} translate E EndingQueenPawnVsQueen {Queen and 1 Pawn vs. Queen} translate E BishopPairVsKnightPair {Two Bishops vs. Two Knights middlegame} # Common patterns in material search: translate E PatternWhiteIQP {White IQP} translate E PatternWhiteIQPBreakE6 {White IQP: d4-d5 break vs. e6} translate E PatternWhiteIQPBreakC6 {White IQP: d4-d5 break vs. c6} translate E PatternBlackIQP {Black IQP} translate E PatternWhiteBlackIQP {White IQP vs. Black IQP} translate E PatternCoupleC3D4 {White c3+d4 Isolated Pawn Couple} translate E PatternHangingC5D5 {Black Hanging Pawns on c5 and d5} translate E PatternMaroczy {Maroczy Center (with Pawns on c4 and e4)} translate E PatternRookSacC3 {Rook Sacrifice on c3} translate E PatternKc1Kg8 {O-O-O vs. O-O (Kc1 vs. Kg8)} translate E PatternKg1Kc8 {O-O vs. O-O-O (Kg1 vs. Kc8)} translate E PatternLightFian {Light-Square Fianchettos (Bishop-g2 vs. Bishop-b7)} translate E PatternDarkFian {Dark-Square Fianchettos (Bishop-b2 vs. Bishop-g7)} translate E PatternFourFian {Four Fianchettos (Bishops on b2,g2,b7,g7)} # Game saving: translate E Today {Today} translate E ClassifyGame {Classify game} # Setup position: translate E EmptyBoard {Empty board} translate E InitialBoard {Initial board} translate E SideToMove {Side to move} translate E MoveNumber {Move number} translate E Castling {Castling} translate E EnPassantFile {En Passant file} translate E ClearFen {Clear FEN} translate E PasteFen {Paste FEN} translate E SaveAndContinue {Save and continue} translate E DiscardChangesAndContinue {Discard changes\nand continue} translate E GoBack {Go back} # Replace move dialog: translate E ReplaceMove {Replace move} translate E AddNewVar {Add new variation} translate E NewMainLine {New Main Line} translate E ReplaceMoveMessage {A move already exists here. You can replace it, discarding all moves after it, or add your move as a new variation. (You can avoid seeing this message in future by turning off the "Ask before replacing moves" option in the Options:Moves menu.)} # Make database read-only dialog: translate E ReadOnlyDialog {If you make this database read-only, no changes will be permitted. No games can be saved or replaced, and no delete flags can be altered. Any sorting or ECO-classification results will be temporary. You can easily make the database writable again, by closing and reopening it. Do you really want to make this database read-only?} # Clear game dialog: translate E ClearGameDialog {This game has been altered. Do you really want to continue and discard the changes made to it? } # Exit dialog: translate E ExitDialog {Do you really want to exit Scid?} translate E ExitUnsaved {The following databases have unsaved game changes. If you exit now, these changes will be lost.} # Import window: translate E PasteCurrentGame {Paste current game} translate E ImportHelp1 {Enter or paste a PGN-format game in the frame above.} translate E ImportHelp2 {Any errors importing the game will be displayed here.} translate E OverwriteExistingMoves {Overwrite existing moves ?} # ECO Browser: translate E ECOAllSections {all ECO sections} translate E ECOSection {ECO section} translate E ECOSummary {Summary for} translate E ECOFrequency {Frequency of subcodes for} # Opening Report: translate E OprepTitle {Opening Report} translate E OprepReport {Report} translate E OprepGenerated {Generated by} translate E OprepStatsHist {Statistics and History} translate E OprepStats {Statistics} translate E OprepStatAll {All report games} translate E OprepStatBoth {Both rated} translate E OprepStatSince {Since} translate E OprepOldest {Oldest games} translate E OprepNewest {Newest games} translate E OprepPopular {Current popularity} translate E OprepFreqAll {Frequency in all years: } translate E OprepFreq1 {In the 1 year to today: } translate E OprepFreq5 {In the 5 years to today: } translate E OprepFreq10 {In the 10 years to today: } translate E OprepEvery {once every %u games} translate E OprepUp {up %u%s from all years} translate E OprepDown {down %u%s from all years} translate E OprepSame {no change from all years} translate E OprepMostFrequent {Most frequent players} translate E OprepMostFrequentOpponents {Most frequent opponents} translate E OprepRatingsPerf {Ratings and Performance} translate E OprepAvgPerf {Average ratings and performance} translate E OprepWRating {White rating} translate E OprepBRating {Black rating} translate E OprepWPerf {White performance} translate E OprepBPerf {Black performance} translate E OprepHighRating {Games with highest average rating} translate E OprepTrends {Result Trends} translate E OprepResults {Result lengths and frequencies} translate E OprepLength {Game length} translate E OprepFrequency {Frequency} translate E OprepWWins {White wins: } translate E OprepBWins {Black wins: } translate E OprepDraws {Draws: } translate E OprepWholeDB {whole database} translate E OprepShortest {Shortest wins} translate E OprepMovesThemes {Moves and Themes} translate E OprepMoveOrders {Move orders reaching the report position} translate E OprepMoveOrdersOne \ {There was only one move order reaching this position:} translate E OprepMoveOrdersAll \ {There were %u move orders reaching this position:} translate E OprepMoveOrdersMany \ {There were %u move orders reaching this position. The top %u are:} translate E OprepMovesFrom {Moves from the report position} translate E OprepMostFrequentEcoCodes {Most frequent ECO codes} translate E OprepThemes {Positional Themes} translate E OprepThemeDescription {Frequency of themes in the first %u moves of each game} translate E OprepThemeSameCastling {Same-side castling} translate E OprepThemeOppCastling {Opposite castling} translate E OprepThemeNoCastling {Both Kings uncastled} translate E OprepThemeKPawnStorm {Kingside pawn storm} translate E OprepThemeQueenswap {Queens exchanged} translate E OprepThemeWIQP {White Isolated Queen Pawn} translate E OprepThemeBIQP {Black Isolated Queen Pawn} translate E OprepThemeWP567 {White Pawn on 5/6/7th rank} translate E OprepThemeBP234 {Black Pawn on 2/3/4th rank} translate E OprepThemeOpenCDE {Open c/d/e file} translate E OprepTheme1BishopPair {Only one side has Bishop pair} translate E OprepEndgames {Endgames} translate E OprepReportGames {Report games} translate E OprepAllGames {All games} translate E OprepEndClass {Material at the end of each game} translate E OprepTheoryTable {Theory Table} translate E OprepTableComment {Generated from the %u highest-rated games.} translate E OprepExtraMoves {Extra note moves in theory table} translate E OprepMaxGames {Maximum games in theory table} translate E OprepViewHTML {View HTML} translate E OprepViewLaTeX {View LaTeX} # Player Report: translate E PReportTitle {Player Report} translate E PReportColorWhite {with the White pieces} translate E PReportColorBlack {with the Black pieces} translate E PReportMoves {after %s} translate E PReportOpenings {Openings} translate E PReportClipbase {Empty clipbase and copy matching games to it} # Piece Tracker window: translate E TrackerSelectSingle {Left mouse button selects this piece.} translate E TrackerSelectPair {Left mouse button selects this piece; right button also selects its sibling.} translate E TrackerSelectPawn {Left mouse button selects this pawn; right button selects all 8 pawns.} translate E TrackerStat {Statistic} translate E TrackerGames {% games with move to square} translate E TrackerTime {% time on each square} translate E TrackerMoves {Moves} translate E TrackerMovesStart {Enter the move number where tracking should begin.} translate E TrackerMovesStop {Enter the move number where tracking should stop.} # Game selection dialogs: translate E SelectAllGames {All games in the database} translate E SelectFilterGames {Only games in the filter} translate E SelectTournamentGames {Only games in the current tournament} translate E SelectOlderGames {Only older games} # Delete Twins window: translate E TwinsNote {To be twins, two games must at least have the same two players, and criteria you can set below. When a pair of twins is found, the shorter game is deleted. Hint: it is best to spellcheck the database before deleting twins, since it improves twin detection. } translate E TwinsCriteria {Criteria: Twin games must have...} translate E TwinsWhich {Examine which games} translate E TwinsColors {Same player colors?} translate E TwinsEvent {Same event?} translate E TwinsSite {Same site?} translate E TwinsRound {Same round?} translate E TwinsYear {Same year?} translate E TwinsMonth {Same month?} translate E TwinsDay {Same day?} translate E TwinsResult {Same result?} translate E TwinsECO {Same ECO code?} translate E TwinsMoves {Same moves?} translate E TwinsPlayers {Comparing player names:} translate E TwinsPlayersExact {Exact match} translate E TwinsPlayersPrefix {First 4 letters only} translate E TwinsWhen {When deleting twin games} translate E TwinsSkipShort {Ignore all games under 5 moves long?} translate E TwinsUndelete {Undelete all games first?} translate E TwinsSetFilter {Set filter to all deleted twin games?} translate E TwinsComments {Always keep games with comments?} translate E TwinsVars {Always keep games with variations?} translate E TwinsDeleteWhich {Delete which game:} translate E TwinsDeleteShorter {Shorter game} translate E TwinsDeleteOlder {Smaller game number} translate E TwinsDeleteNewer {Larger game number} translate E TwinsDelete {Delete games} # Name editor window: translate E NameEditType {Type of name to edit} translate E NameEditSelect {Games to edit} translate E NameEditReplace {Replace} translate E NameEditWith {with} translate E NameEditMatches {Matches: Press Ctrl+1 to Ctrl+9 to select} # Check games window: translate E CheckGames {Check games} translate E CheckGamesWhich {Check games} translate E CheckAll {All games} translate E CheckSelectFilterGames {Only games in filter} # Classify window: translate E Classify {Classify} translate E ClassifyWhich {ECO-Classify which games} translate E ClassifyAll {All games (overwrite old ECO codes)} translate E ClassifyYear {All games played in the last year} translate E ClassifyMonth {All games played in the last month} translate E ClassifyNew {Only games with no ECO code yet} translate E ClassifyCodes {ECO Codes to use} translate E ClassifyBasic {Basic codes only ("B12", ...)} translate E ClassifyExtended {Scid extensions ("B12j", ...)} # Compaction: translate E NameFile {Name file} translate E GameFile {Game file} translate E Names {Names} translate E Unused {Unused} translate E SizeKb {Size (kb)} translate E CurrentState {Current State} translate E AfterCompaction {After compaction} translate E CompactNames {Compact name file} translate E CompactGames {Compact game file} translate E NoUnusedNames "There are no unused names, so the name file is already fully compacted." translate E NoUnusedGames "The game file is already fully compacted." translate E NameFileCompacted {The name file for the database "[file tail [sc_base filename]]" was compacted.} translate E GameFileCompacted {The game file for the database "[file tail [sc_base filename]]" was compacted.} # Sorting: translate E SortCriteria {Criteria} translate E AddCriteria {Add criteria} translate E CommonSorts {Common sorts} translate E Sort {Sort} # Exporting: translate E AddToExistingFile {Add games to an existing file?} translate E ExportComments {Export comments?} translate E ExportVariations {Export variations?} translate E IndentComments {Indent comments?} translate E IndentVariations {Indent variations?} translate E ExportColumnStyle {Column style (one move per line)?} translate E ExportSymbolStyle {Symbolic annotation style:} translate E ExportStripMarks {Strip square/arrow mark codes from comments?} # Goto game/move dialogs: translate E LoadGameNumber {Enter the game number to load:} translate E GotoMoveNumber {Goto move number:} # Copy games dialog: translate E CopyGames {Copy games} translate E CopyConfirm { Do you really want to copy the [::utils::thousands $nGamesToCopy] filtered games in the database "$fromName" to the database "$targetName"? } translate E CopyErr {Cannot copy games} translate E CopyErrSource {the source database} translate E CopyErrTarget {the target database} translate E CopyErrNoGames {has no games in its filter} translate E CopyErrReadOnly {is read-only} translate E CopyErrNotOpen {is not open} # Colors: translate E LightSquares {Light squares} translate E DarkSquares {Dark squares} translate E SelectedSquares {Selected squares} translate E SuggestedSquares {Suggested move squares} translate E WhitePieces {White pieces} translate E BlackPieces {Black pieces} translate E WhiteBorder {White border} translate E BlackBorder {Black border} # Novelty window: translate E FindNovelty {Find Novelty} translate E Novelty {Novelty} translate E NoveltyInterrupt {Novelty search interrupted} translate E NoveltyNone {No novelty was found for this game} translate E NoveltyHelp { Scid will find the first move of the current game that reaches a position not found in the selected database or in the ECO openings book. } # Sounds configuration: translate E SoundsFolder {Sound Files Folder} translate E SoundsFolderHelp {The folder should contain the files King.wav, a.wav, 1.wav, etc} translate E SoundsAnnounceOptions {Move Announcement Options} translate E SoundsAnnounceNew {Announce new moves as they are made} translate E SoundsAnnounceForward {Announce moves when moving forward one move} translate E SoundsAnnounceBack {Announce when retracting or moving back one move} # Upgrading databases: translate E Upgrading {Upgrading} translate E ConfirmOpenNew { This is an old-format (Scid 3) database that cannot be opened in Scid 4, but a new-format (Scid 4) version has already been created. Do you want to open the new-format version of the database? } translate E ConfirmUpgrade { This is an old-format (Scid 3) database. A new-format version of the database must be created before it can be used in Scid 4. Upgrading will create a new version of the database and after that remove the original files. This may take a while, but it only needs to be done one time. You can cancel if it takes too long. Do you want to upgrade this database now? } # Recent files options: translate E RecentFilesMenu {Number of recent files in File menu} translate E RecentFilesExtra {Number of recent files in extra submenu} # My Player Names options: translate E MyPlayerNamesDescription { Enter a list of preferred player names below, one name per line. Wildcards (e.g. "?" for any single character, "*" for any sequence of characters) are permitted. Every time a game with a player in the list is loaded, the main window chessboard will be rotated if necessary to show the game from that players perspective. } #Coach translate E showblunderexists {show blunder exists} translate E showblundervalue {show blunder value} translate E showscore {show score} translate E coachgame {coach game} translate E configurecoachgame {Configure tactical game} translate E configuregame {Game configuration} translate E Phalanxengine {Phalanx engine} translate E Coachengine {Coach engine} translate E difficulty {difficulty} translate E hard {hard} translate E easy {easy} translate E Playwith {Play with} translate E white {white} translate E black {black} translate E both {both} translate E Play {Play} translate E Noblunder {No blunder} translate E blunder {blunder} translate E Noinfo {-- No info --} translate E PhalanxOrTogaMissing {Phalanx or Toga not found} translate E moveblunderthreshold {move is a blunder if loss is greater than} translate E limitanalysis {limit engine analysis time} translate E seconds {seconds} translate E Abort {Abort} translate E Resume {Resume} translate E OutOfOpening {Out of opening} translate E NotFollowedLine {You did not follow the line} translate E DoYouWantContinue {Do you want yo continue ?} translate E CoachIsWatching {Coach is watching} translate E Ponder {Permanent thinking} translate E LimitELO {Limit ELO strength} translate E DubiousMovePlayedTakeBack {Dubious move played, do you want to take back ?} translate E WeakMovePlayedTakeBack {Weak move played, do you want to take back ?} translate E BadMovePlayedTakeBack {Bad move played, do you want to take back ?} translate E Iresign {I resign} translate E yourmoveisnotgood {your move is not good} translate E EndOfVar {End of variation} translate E Openingtrainer {Opening trainer} translate E DisplayCM {Display candidate moves} translate E DisplayCMValue {Display candidate moves value} translate E DisplayOpeningStats {Show statistics} translate E ShowReport {Show report} translate E NumberOfGoodMovesPlayed {good moves played} translate E NumberOfDubiousMovesPlayed {dubious moves played} translate E NumberOfMovesPlayedNotInRepertoire {moves played not in repertoire} translate E NumberOfTimesPositionEncountered {times position encountered} translate E PlayerBestMove {Allow only best moves} translate E OpponentBestMove {Opponent plays best moves} translate E OnlyFlaggedLines {Only flagged lines} translate E resetStats {Reset statistics} translate E Repertoiretrainingconfiguration {Repertoire training configuration} translate E Loadingrepertoire {Loading repertoire} translate E Movesloaded {Moves loaded} translate E Repertoirenotfound {Repertoire not found} translate E Openfirstrepertoirewithtype {Open first a repertoire database with icon/type set to the right side} translate E Movenotinrepertoire {Move not in repertoire} translate E PositionsInRepertoire {Positions in repertoire} translate E PositionsNotPlayed {Positions not played} translate E PositionsPlayed {Positions played} translate E Success {Success} translate E DubiousMoves {Dubious moves} translate E OutOfRepertoire {OutOfRepertoire} translate E ConfigureTactics {Configure tactics} translate E ResetScores {Reset scores} translate E LoadingBase {Loading base} translate E Tactics {Tactics} translate E ShowSolution {Show solution} translate E NextExercise {Next exercise} translate E PrevExercise {Previous exercise} translate E StopTraining {Stop training} translate E Next {Next} translate E ResettingScore {Resetting score} translate E LoadingGame {Loading game} translate E MateFound {Mate found} translate E BestSolutionNotFound {Best solution NOT found !} translate E MateNotFound {Mate not found} translate E ShorterMateExists {Shorter mate exists} translate E ScorePlayed {Score played} translate E Expected {expected} translate E ChooseTrainingBase {Choose training base} translate E Thinking {Thinking} translate E AnalyzeDone {Analyze done} translate E WinWonGame {Win won game} translate E Lines {Lines} translate E ConfigureUCIengine {Configure UCI engine} translate E SpecificOpening {Specific opening} translate E StartNewGame {Start new game} translate E FixedLevel {Fixed level} translate E Opening {Opening} translate E RandomLevel {Random level} translate E StartFromCurrentPosition {Start from current position} translate E FixedDepth {Fixed depth} translate E Nodes {Nodes} translate E Depth {Depth} translate E Time {Time} translate E SecondsPerMove {Seconds per move} translate E Engine {Engine} translate E TimeMode {Time mode} translate E TimeBonus {Time + bonus} translate E TimeMin {min} translate E TimeSec {sec} translate E AllExercisesDone {All exercises done} translate E MoveOutOfBook {Move out of book} translate E LastBookMove {Last book move} translate E AnnotateSeveralGames {Annotate several games\nfrom current to :} translate E FindOpeningErrors {Find opening errors} translate E MarkTacticalExercises {Mark tactical exercises} translate E UseBook {Use book} translate E MultiPV {Multiple variations} translate E Hash {Hash memory} translate E OwnBook {Use engine book} translate E BookFile {Opening book} translate E AnnotateVariations {Annotate variations} translate E ShortAnnotations {Short annotations} translate E addAnnotatorTag {Add annotator tag} translate E AddScoreToShortAnnotations {Add score to annotations} translate E Export {Export} translate E BookPartiallyLoaded {Book partially loaded} translate E Calvar {Calculation of variations} translate E ConfigureCalvar {Configuration} # Opening names used in tacgame.tcl translate E Reti {Reti} translate E English {English} translate E d4Nf6Miscellaneous {1.d4 Nf6 Miscellaneous} translate E Trompowsky {Trompowsky} translate E Budapest {Budapest} translate E OldIndian {Old Indian} translate E BenkoGambit {Benko Gambit} translate E ModernBenoni {Modern Benoni} translate E DutchDefence {Dutch Defence} translate E Scandinavian {Scandinavian} translate E AlekhineDefence {Alekhine Defence} translate E Pirc {Pirc} translate E CaroKann {Caro-Kann} translate E CaroKannAdvance {Caro-Kann Advance} translate E Sicilian {Sicilian} translate E SicilianAlapin {Sicilian Alapin} translate E SicilianClosed {Sicilian Closed} translate E SicilianRauzer {Sicilian Rauzer} translate E SicilianDragon {Sicilian Dragon} translate E SicilianScheveningen {Sicilian Scheveningen} translate E SicilianNajdorf {Sicilian Najdorf} translate E OpenGame {Open Game} translate E Vienna {Vienna} translate E KingsGambit {King's Gambit} translate E RussianGame {Russian Game} translate E ItalianTwoKnights {Italian/Two Knights} translate E Spanish {Spanish} translate E SpanishExchange {Spanish Exchange} translate E SpanishOpen {Spanish Open} translate E SpanishClosed {Spanish Closed} translate E FrenchDefence {French Defence} translate E FrenchAdvance {French Advance} translate E FrenchTarrasch {French Tarrasch} translate E FrenchWinawer {French Winawer} translate E FrenchExchange {French Exchange} translate E QueensPawn {Queen's Pawn} translate E Slav {Slav} translate E QGA {QGA} translate E QGD {QGD} translate E QGDExchange {QGD Exchange} translate E SemiSlav {Semi-Slav} translate E QGDwithBg5 {QGD with Bg5} translate E QGDOrthodox {QGD Orthodox} translate E Grunfeld {Grünfeld} translate E GrunfeldExchange {Grünfeld Exchange} translate E GrunfeldRussian {Grünfeld Russian} translate E Catalan {Catalan} translate E CatalanOpen {Catalan Open} translate E CatalanClosed {Catalan Closed} translate E QueensIndian {Queen's Indian} translate E NimzoIndian {Nimzo-Indian} translate E NimzoIndianClassical {Nimzo-Indian Classical} translate E NimzoIndianRubinstein {Nimzo-Indian Rubinstein} translate E KingsIndian {King's Indian} translate E KingsIndianSamisch {King's Indian Sämisch} translate E KingsIndianMainLine {King's Indian Main Line} # FICS translate E ConfigureFics {Configure FICS} translate E FICSGuest {Login as Guest} translate E FICSServerPort {Server port} translate E FICSServerAddress {IP Address} translate E FICSRefresh {Refresh} translate E FICSTimesealPort {Timeseal port} translate E FICSSilence {Console filter} translate E FICSOffers {Offers} translate E FICSConsole {Console} translate E FICSGames {Games} translate E FICSUnobserve {Stop observing game} translate E FICSProfile {Display your history and profile} translate E FICSRelayedGames {Relayed games} translate E FICSFindOpponent {Find opponent} translate E FICSTakeback {Takeback} translate E FICSTakeback2 {Takeback 2} translate E FICSInitTime {Initial time (min)} translate E FICSIncrement {Increment (sec)} translate E FICSRatedGame {Rated Game} translate E FICSAutoColour {automatic} translate E FICSManualConfirm {confirm manually} translate E FICSFilterFormula {Filter with formula} translate E FICSIssueSeek {Issue seek} translate E FICSChallenge {Challenge} translate E FICSAccept {accept} translate E FICSDecline {decline} translate E FICSColour {Colour} translate E FICSSend {send} translate E FICSConnect {Connect} translate E FICSdefaultuservars {Use default variables} translate E FICSObserveconfirm {Do you want to observe game} # Game review translate E GameReview {Game review} translate E GameReviewTimeExtended {Time extended} translate E GameReviewMargin {Error margin} translate E GameReviewAutoContinue {Auto continue when move is correct} translate E GameReviewReCalculate {Use extended time} translate E GameReviewAnalyzingMovePlayedDuringTheGame {Analyzing move played during the game} translate E GameReviewAnalyzingThePosition {Analyzing the position} translate E GameReviewEnterYourMove {Enter your move} translate E GameReviewCheckingYourMove {Checking your move} translate E GameReviewYourMoveWasAnalyzed {Your move was analyzed} translate E GameReviewYouPlayedSameMove {You played the same move as in match} translate E GameReviewScoreOfYourMove {Score of your move} translate E GameReviewGameMoveScore {Game move's score} translate E GameReviewEngineScore {Engine's score} translate E GameReviewYouPlayedLikeTheEngine {You played as good as engine's} translate E GameReviewNotEngineMoveButGoodMove {Not the engine move, but is also a good move} translate E GameReviewMoveNotGood {This move is not good, score is} translate E GameReviewMovesPlayedLike {Moves played like} translate E GameReviewMovesPlayedEngine {Moves played like engine} # Correspondence Chess Dialogs: translate E CCDlgConfigureWindowTitle {Configure Correspondence Chess} translate E CCDlgCGeneraloptions {General Options} translate E CCDlgDefaultDB {Default Database:} translate E CCDlgInbox {Inbox (path):} translate E CCDlgOutbox {Outbox (path):} translate E CCDlgXfcc {Xfcc Configuration:} translate E CCDlgExternalProtocol {External Protocol Handler (e.g. Xfcc)} translate E CCDlgFetchTool {Fetch Tool:} translate E CCDlgSendTool {Send Tool:} translate E CCDlgEmailCommunication {eMail Communication} translate E CCDlgMailPrg {Mail program:} translate E CCDlgBCCAddr {(B)CC Address:} translate E CCDlgMailerMode {Mode:} translate E CCDlgThunderbirdEg {e.g. Thunderbird, Mozilla Mail, Icedove...} translate E CCDlgMailUrlEg {e.g. Evolution} translate E CCDlgClawsEg {e.g Sylpheed Claws} translate E CCDlgmailxEg {e.g. mailx, mutt, nail...} translate E CCDlgAttachementPar {Attachment parameter:} translate E CCDlgInternalXfcc {Use internal Xfcc support} translate E CCDlgConfirmXfcc {Confirm moves} translate E CCDlgSubjectPar {Subject parameter:} translate E CCDlgDeleteBoxes {Empty In-/Outbox} translate E CCDlgDeleteBoxesText {Do you really want to empty your In- and Outbox folders for Correspondence Chess?\nThis requires a new sync to show the last state of your games.} translate E CCDlgConfirmMove {Confirm move} translate E CCDlgConfirmMoveText {If you confirm, the following move and comment will be sent to the server:} translate E CCDlgDBGameToLong {Inconsistent Mainline} translate E CCDlgDBGameToLongError {The mainline in your database is longer than the game in your Inbox. If the Inbox contains current games, i.e. right after a sync, some moves were added to the mainline in the database erroneously. In this case please shorten the mainline to (at max) move } translate E CCDlgStartEmail {Start new eMail game} translate E CCDlgYourName {Your Name:} translate E CCDlgYourMail {Your eMail Address:} translate E CCDlgOpponentName {Opponents Name:} translate E CCDlgOpponentMail {Opponents eMail Address:} translate E CCDlgGameID {Game ID (unique):} translate E CCDlgTitNoOutbox {Scid: Correspondence Chess Outbox} translate E CCDlgTitNoInbox {Scid: Correspondence Chess Inbox} translate E CCDlgTitNoGames {Scid: No Correspondence Chess Games} translate E CCErrInboxDir {Correspondence Chess inbox directory:} translate E CCErrOutboxDir {Correspondence Chess outbox directory:} translate E CCErrDirNotUsable {does not exist or is not accessible!\nPlease check and correct the settings.} translate E CCErrNoGames {does not contain any games!\nPlease fetch them first.} translate E CCDlgTitNoCCDB {Scid: No Correspondence Database} translate E CCErrNoCCDB {No Database of type 'Correspondence' is opened. Please open one before using correspondence chess functions.} translate E CCFetchBtn {Fetch games from the server and process the Inbox} translate E CCPrevBtn {Goto previous game} translate E CCNextBtn {Goto next game} translate E CCSendBtn {Send move} translate E CCEmptyBtn {Empty In- and Outbox} translate E CCHelpBtn {Help on icons and status indicators.\nFor general Help press F1!} translate E CCDlgServerName {Server Name:} translate E CCDlgLoginName {Login Name:} translate E CCDlgPassword {Password:} translate E CCDlgURL {Xfcc-URL:} translate E CCDlgRatingType {Rating Type:} translate E CCDlgDuplicateGame {Non-unique game ID} translate E CCDlgDuplicateGameError {This game exists more than once in your database. Please delete all duplicates and compact your game file (File/Maintenance/Compact Database).} translate E CCDlgSortOption {Sorting:} translate E CCDlgListOnlyOwnMove {Only games I have the move} translate E CCOrderClassicTxt {Site, Event, Round, Result, White, Black} translate E CCOrderMyTimeTxt {My Clock} translate E CCOrderTimePerMoveTxt {Time per move till next time control} translate E CCOrderStartDate {Start date} translate E CCOrderOppTimeTxt {Opponents Clock} translate E CCDlgConfigRelay {Observe games} translate E CCDlgConfigRelayHelp {Go to the games page on http://www.iccf-webchess.com and display the game to be observed. If you see the chessboard copy the URL from your browser to the list below. One URL per line only!\nExample: http://www.iccf-webchess.com/MakeAMove.aspx?id=266452} # Connect Hardware dialogs translate E ExtHWConfigConnection {Configure external hardware} translate E ExtHWPort {Port} translate E ExtHWEngineCmd {Engine command} translate E ExtHWEngineParam {Engine parameter} translate E ExtHWShowButton {Show button} translate E ExtHWHardware {Hardware} translate E ExtHWNovag {Novag Citrine} translate E ExtHWInputEngine {Input Engine} translate E ExtHWNoBoard {No board} translate E NovagReferee {Referee} # Input Engine dialogs translate E IEConsole {Input Engine Console} translate E IESending {Moves sent for} translate E IESynchronise {Synchronise} translate E IERotate {Rotate} translate E IEUnableToStart {Unable to start Input Engine:} # Calculation of Variations translate E DoneWithPosition {Done with position} translate E Board {Board} translate E showGameInfo {Show game info} translate E autoResizeBoard {Automatic resize of board} translate E DockTop {Move to top} translate E DockBottom {Move to bottom} translate E DockLeft {Move to left} translate E DockRight {Move to right} translate E Undock {Undock} # Switcher window translate E ChangeIcon {Change icon...} } # end of english.tcl scid-4.3.0.cvs20120311/tcl/lang/polish.tcl0000644000175000017500000032515011727223077017151 0ustar oliveroliver### Polish menus for Scid. # Contributed by Michal Rudolf and Adam Umiastowski. addLanguage P Polish 0 iso8859-2 proc setLanguage_P {} { menuText P File "Plik" 0 menuText P FileNew "Nowy..." 0 {Twrz nowa baz Scid} menuText P FileOpen "Otwrz..." 0 {Otwrz istniejc baz Scid} menuText P FileClose "Zamknij" 0 {Zamknij aktywn baz Scid} menuText P FileFinder "Poszukiwacz plikw" 0 {Otwrz okno poszukiwacza plikw} menuText P FileBookmarks "Zakadki" 2 {Menu zakadek (klawisz: Ctrl+B)} menuText P FileBookmarksAdd "Dodaj zakadk" 0 \ {Dodaj zakadk do aktualnej bazy i pozycji} menuText P FileBookmarksFile "Wstaw zakadk" 0 \ {Wstaw do wybranego katalogu zakadk do aktualnej bazy i pozycji} menuText P FileBookmarksEdit "Edycja zakadek..." 0 \ {Edytuj menu zakadek} menuText P FileBookmarksList "Wywietlaj katalogi jako list" 0 \ {Wywietlaj katalogi zakadek jako list, nie jako zagniedone menu} menuText P FileBookmarksSub "Wywietl katalogi jako menu" 0 \ {Wywietlaj katalogi zakadek jako zagniedone menu, nie jako list} menuText P FileMaint "Obsuga" 1 {Narzdzia obsugi bazy Scid} menuText P FileMaintWin "Obsuga" 0 \ {Otwrz/zamknij obsug bazy Scid} menuText P FileMaintCompact "Porzdkuj baz..." 0 \ {Porzdkuj baz, usuwajc skasowane partie i nieuywane nazwiska} menuText P FileMaintClass "Klasyfikacja debiutowa partii..." 0 \ {Przelicz klasyfikacj debiutowa wszystkich partii} menuText P FileMaintSort "Sortuj baz..." 0 \ {Sortuj wszystkie partie w bazie} menuText P FileMaintDelete "Usu podwjne partie..." 0 \ {Szukaj podwjnych partii i oznacz je do skasowania} menuText P FileMaintTwin "Wyszukiwanie podwjnych partii" 0 \ {Otwrz/uaktualnij wyszukiwanie podwjnych partii} menuText P FileMaintName "Pisownia" 0 \ {Edycja nazw/nazwisk i kontrola pisowni} menuText P FileMaintNameEditor "Edytor nazwisk" 0 \ {Otwrz/zamknij edytor nazwisk} menuText P FileMaintNamePlayer "Sprawd pisowni nazwisk..." 17 \ {Sprawd pisowni nazwisk przy pomocy pliku nazwisk} menuText P FileMaintNameEvent "Sprawd pisowni nazw zawodw..." 22 \ {Sprawd pisowni nazw zawodw przy pomocy pliku turniejw} menuText P FileMaintNameSite "Sprawd pisowni nazw miejscowoci..." 22 \ {Sprawd pisowni nazw miejscowoci przy pomocy pliku miejscowoci} menuText P FileMaintNameRound "Sprawd numery rund..." 15 \ {Sprawd numery rund przy pomocy pliku} menuText P FileReadOnly "Tylko do odczytu..." 0 \ {Zabezpiecz baz przed zapisem} menuText P FileSwitch "Przecz baz" 1 \ {Przecz na inn otwart baz} menuText P FileExit "Koniec" 0 {Zamknij Scida} # ====== TODO To be translated ====== menuText P FileMaintFixBase "Fix corrupted base" 0 {Try to fix a corrupted base} menuText P Edit "Edytuj" 0 menuText P EditAdd "Dodaj wariant" 0 {Dodaj wariant do ruchu w partii} menuText P EditDelete "Usu wariant" 0 {Usu wariant dla tego posunicia} menuText P EditFirst "Twrz pierwszy wariant" 0 \ {Przesu wariant na pierwsze miejsce na licie} menuText P EditMain "Zmie wariant na tekst partii" 0 \ {Zamie wariant i tekst partii} menuText P EditTrial "Sprawd wariant" 0 \ {Wcz/wycz tryb sprawdzania wariantw} menuText P EditStrip "Usu" 2 \ {Usu komentatarze i warianty} # ====== TODO To be translated ====== menuText P EditUndo "Undo" 0 {Undo last game change} menuText P EditStripComments "Komentarze" 0 \ {Usu wszystkie komentarze z aktualnej partii} menuText P EditStripVars "Warianty" 0 \ {Usu wszystkie warianty z aktualnej partii} menuText P EditStripBegin "Poprzednie posunicia" 0 \ {Usu wszystkie posunicia do biecej pozycji} menuText P EditStripEnd "Nastpne posunicia" 0 \ {Usu wszystkie posunicia od biecej pozycji do koca partii} menuText P EditReset "Oprnij schowek" 0 \ {Oprnij schowek bazy} menuText P EditCopy "Kopiuj parti do schowka" 0 \ {Kopiuj parti do schowka} menuText P EditPaste "Wklej aktywn parti ze schowka" 0 \ {Wklej aktywn parti ze schowka} menuText P EditPastePGN "Paste Clipboard text as PGN game..." 10 \ {Interpret the clipboard text as a game in PGN notation and paste it here} ;# *** menuText P EditSetup "Ustaw pozycj pocztkow..." 6 \ {Ustaw pozycj pocztkow partii} menuText P EditCopyBoard "Kopiuj pozycj" 7 \ {Kopiuj aktualn pozycj w notacji FEN do schowka} menuText P EditPasteBoard "Ustaw pozycj ze schowka" 3 \ {Ustaw pozycj ze schowka} menuText P Game "Partia" 1 menuText P GameNew "Opu parti" 0 \ {Opu parti, rezygnujc z wszelkich zmian} menuText P GameFirst "Pierwsza partia" 2 {Wczytaj pierwsz parti z filtra} menuText P GamePrev "Poka poprzedni parti" 0 \ {Wczytaj poprzedni wyszukan parti} menuText P GameReload "Przeaduj aktualn parti" 10 \ {Wczytaj parti ponownie, rezygnujc z wszelkich zmian} menuText P GameNext "Nastpna partia" 0 \ {Wczytaj nastpn wyszukan parti} menuText P GameLast "Ostatnia partia" 5 {Wczytaj ostatni parti z filtra} menuText P GameRandom "Losowa partia z filtra" 8 {Wczytaj losow parti z filtra} menuText P GameNumber "Wczytaj parti numer..." 17 \ {Wczytaj parti wprowadzajc jej numer} menuText P GameReplace "Zapisz: zastp parti..." 3 \ {Zapisz parti, zastp poprzedni wersj} menuText P GameAdd "Zapisz: dodaj now parti..." 8 \ {Zapisz t parti jako nowa parti w bazie} menuText P GameDeepest "Rozpoznaj debiut" 0 \ {Przejd do najduszego wariantu z ksiki debiutowej} menuText P GameGotoMove "Przejd do posunicia nr..." 13 \ {Przejd do posunicia o podanym numerze} menuText P GameNovelty "Znajd nowink..." 7 \ {Znajd pierwsze posunicie partii niegrane wczeniej} menuText P Search "Szukaj" 0 menuText P SearchReset "Resetuj filtr" 0 \ {Wstaw wszystkie partie do filtra} menuText P SearchNegate "Odwr filtr" 0 \ {Zamie partie w filtrze i poza nim} menuText P SearchCurrent "Aktualna pozycja..." 0 \ {Szukaj aktualnej pozycji} menuText P SearchHeader "Nagwek..." 0 \ {Szukaj informacji o nagwkach (nazwiska, nazwy turnieju itp.)} menuText P SearchMaterial "Materia/wzorzec..." 0 \ {Szukaj wedug materiau lub wzorca} menuText P SearchUsing "Stosuj plik poszukiwania..." 0 \ {Szukaj stosujc plik z opcjami poszukiwania} menuText P Windows "Okna" 1 menuText P WindowsComment "Edytor komentarzy" 0 \ {Otwrz/zamknij edytor komentarzy} menuText P WindowsGList "Lista partii" 0 {Otwrz/zamknij list partii} menuText P WindowsPGN "Okno PGN" 0 {Otwrz/zamknij (zapis partii) PGN } menuText P WindowsPList "Zawodnicy" 2 {Otwrz/zamknij przegldark zawodnikw} menuText P WindowsTmt "Turnieje" 0 {Otwrz/zamknij przegldark turniejw} menuText P WindowsSwitcher "Przecznik baz" 12 \ {Otwrz/zamknij przecznik baz} menuText P WindowsMaint "Zarzdzanie baz" 0 \ {Otwrz/zamknij okno zarzdzania baz} menuText P WindowsECO "Przegldarka kodw debiutowych" 0 \ {Otwrz/zamknij przegldark kodw debiutowych} menuText P WindowsRepertoire "Repertuar debiutowy" 0 \ {Otwrz/zamknij okno repertuaru debiutowego} menuText P WindowsStats "Statystyka" 0 \ {Otwrz/zamknij statystyk} menuText P WindowsTree "Drzewo wariantw" 0 {Otwrz/zamknij drzewo wariantw} menuText P WindowsTB "Tablica kocwek" 8 \ {Otwrz/zamknij okno tablicy kocwek} # ====== TODO To be translated ====== menuText P WindowsBook "Book Window" 0 {Open/close the Book window} # ====== TODO To be translated ====== menuText P WindowsCorrChess "Correspondence Window" 0 {Open/close the Correspondence window} menuText P Tools "Narzdzia" 0 menuText P ToolsAnalysis "Program analizujcy..." 8 \ {Uruchom/zatrzymaj program analizujcy} menuText P ToolsAnalysis2 "Program analizujcy 2..." 21 \ {Uruchom/zatrzymaj program analizujcy} menuText P ToolsCross "Tabela turniejowa" 0 \ {Poka tabel turniejow dla aktualnej partii} menuText P ToolsEmail "Zarzdzanie poczt e-mail" 0 \ {Otwrz/zamknij zarzdzanie adresami e-mail} menuText P ToolsFilterGraph "Wykres filtra" 7 \ {Otwrz/zamknij wykres filtra} # ====== TODO To be translated ====== menuText P ToolsAbsFilterGraph "Abs. Filter Graph" 7 {Open/close the filter graph window for absolute values} menuText P ToolsOpReport "Raport debiutowy" 0 \ {Utwrz raport debiutowy dla aktualnej pozycji} # ====== TODO To be translated ====== menuText P ToolsOpenBaseAsTree "Open base as tree" 0 {Open a base and use it in Tree window} # ====== TODO To be translated ====== menuText P ToolsOpenRecentBaseAsTree "Open recent base as tree" 0 {Open a recent base and use it in Tree window} menuText P ToolsTracker "ledzenie figur" 10 {Otwrz/zamknij okno ledzenia figur} # ====== TODO To be translated ====== menuText P ToolsTraining "Training" 0 {Training tools (tactics, openings,...) } # ====== TODO To be translated ====== menuText P ToolsTacticalGame "Tactical game" 0 {Play a game with tactics} # ====== TODO To be translated ====== menuText P ToolsSeriousGame "Serious game" 0 {Play a serious game} # ====== TODO To be translated ====== menuText P ToolsTrainOpenings "Openings" 0 {Train with a repertoire} # ====== TODO To be translated ====== menuText P ToolsTrainReviewGame "Review game" 0 {Guess moves played in a game} # ====== TODO To be translated ====== menuText P ToolsTrainTactics "Tactics" 0 {Solve tactics} # ====== TODO To be translated ====== menuText P ToolsTrainCalvar "Calculation of variations" 0 {Calculation of variations training} # ====== TODO To be translated ====== menuText P ToolsTrainFindBestMove "Find best move" 0 {Find best move} # ====== TODO To be translated ====== menuText P ToolsTrainFics "Play on internet" 0 {Play on freechess.org} # ====== TODO To be translated ====== menuText P ToolsBookTuning "Book tuning" 0 {Book tuning} # ====== TODO To be translated ====== menuText P ToolsConnectHardware "Connect Hardware" 0 {Connect external hardware} # ====== TODO To be translated ====== menuText P ToolsConnectHardwareConfigure "Configure..." 0 {Configure external hardware and connection} # ====== TODO To be translated ====== menuText P ToolsConnectHardwareNovagCitrineConnect "Connect Novag Citrine" 0 {Connect Novag Citrine} # ====== TODO To be translated ====== menuText P ToolsConnectHardwareInputEngineConnect "Connect Input Engine" 0 {Connect Input Engine (e.g. DGT)} menuText P ToolsPInfo "Informacje o zawodniku" 0 \ {Otwrz/odwie okno informacji o zawodniku} menuText P ToolsPlayerReport "Raport o graczu..." 9 \ {Utwrz raport o graczu} menuText P ToolsRating "Wykres rankingu" 0 \ {Wykres historii rankingu grajcych parti} menuText P ToolsScore "Wykres wynikw" 1 {Poka wykres wynikw} menuText P ToolsExpCurrent "Eksportuj parti" 0 \ {Zapisz parti do pliku tekstowego} menuText P ToolsExpCurrentPGN "Do pliku PGN..." 9 \ {Zapisz parti do pliku PGN} menuText P ToolsExpCurrentHTML "Do pliku HTML..." 9 \ {Zapisz parti do pliku HTML} # ====== TODO To be translated ====== menuText P ToolsExpCurrentHTMLJS "Export Game to HTML and JavaScript File..." 15 {Write current game to a HTML and JavaScript file} menuText P ToolsExpCurrentLaTeX "Do pliku LaTeX-a..." 9 \ {Zapisz parti do pliku LaTeX-a} menuText P ToolsExpFilter "Eksportuj wyszukane partie" 1 \ {Zapisz wyszukane partie do pliku tekstowego} menuText P ToolsExpFilterPGN "Do pliku PGN..." 9 \ {Zapisz wyszukane partie do pliku PGN} menuText P ToolsExpFilterHTML "Do pliku HTML..." 9 \ {Zapisz wyszukane partie do pliku HTML} # ====== TODO To be translated ====== menuText P ToolsExpFilterHTMLJS "Export Filter to HTML and JavaScript File..." 17 {Write all filtered games to a HTML and JavaScript file} menuText P ToolsExpFilterLaTeX "Do pliku LaTeX..." 9 \ {Zapisz wyszukane partie do pliku LaTeX} menuText P ToolsImportOne "Wklej parti w formacie PGN..." 0 \ {Pobierz parti z pliku PGN} menuText P ToolsImportFile "Importuj plik PGN..." 2 \ {Pobierz partie z pliku PGN} # ====== TODO To be translated ====== menuText P ToolsStartEngine1 "Start engine 1" 0 {Start engine 1} # ====== TODO To be translated ====== menuText P ToolsStartEngine2 "Start engine 2" 0 {Start engine 2} # ====== TODO To be translated ====== menuText P ToolsCaptureBoard "Capture Current Board..." 0 {Save the current board as an image.} # ====== TODO To be translated ====== menuText P Play "Play" 0 # ====== TODO To be translated ====== menuText P CorrespondenceChess "Correspondence Chess" 0 {Functions for eMail and Xfcc based correspondence chess} # ====== TODO To be translated ====== menuText P CCConfigure "Configure..." 0 {Configure external tools and general setup} # ====== TODO To be translated ====== menuText P CCConfigRelay "Configure observations..." 10 {Configure games to be observed} # ====== TODO To be translated ====== menuText P CCOpenDB "Open Database..." 0 {Open the default Correspondence database} # ====== TODO To be translated ====== menuText P CCRetrieve "Retrieve Games" 0 {Retrieve games via external (Xfcc-)helper} # ====== TODO To be translated ====== menuText P CCInbox "Process Inobx" 0 {Process all files in scids Inbox} # ====== TODO To be translated ====== menuText P CCSend "Send Move" 0 {Send your move via eMail or external (Xfcc-)helper} # ====== TODO To be translated ====== menuText P CCResign "Resign" 0 {Resign (not via eMail)} # ====== TODO To be translated ====== menuText P CCClaimDraw "Claim Draw" 0 {Send move and claim a draw (not via eMail)} # ====== TODO To be translated ====== menuText P CCOfferDraw "Offer Draw" 0 {Send move and offer a draw (not via eMail)} # ====== TODO To be translated ====== menuText P CCAcceptDraw "Accept Draw" 0 {Accept a draw offer (not via eMail)} # ====== TODO To be translated ====== menuText P CCNewMailGame "New eMail Game..." 0 {Start a new eMail game} # ====== TODO To be translated ====== menuText P CCMailMove "Mail Move..." 0 {Send the move via eMail to the opponent} # ====== TODO To be translated ====== menuText P CCGamePage "Game Page..." 0 {Call up the game via the web browser} # ====== TODO To be translated ====== menuText P CCEditCopy "Copy Gamelist to Clipbase" 0 {Copy the games as CSV list to clipbase} menuText P Options "Opcje" 0 menuText P OptionsBoard "Szachownica" 0 {Konfiguracja wygldu szachownicy} menuText P OptionsBoardSize "Wielko" 0 {Zmie wielko szachownicy} menuText P OptionsBoardPieces "Typ figur" 4 \ {Zmienia typ wyswietlanych figur} menuText P OptionsBoardColors "Kolory..." 0 {Zmie kolory szachownicy} # ====== TODO To be translated ====== menuText P OptionsBoardGraphics "Squares..." 0 {Select textures for squares} # ====== TODO To be translated ====== translate P OptionsBGW {Select texture for squares} # ====== TODO To be translated ====== translate P OptionsBoardGraphicsText {Select graphic files for white and black squares:} menuText P OptionsBoardNames "Moje nazwiska" 0 {Modyfikuj list moich graczy} menuText P OptionsExport "Eksport" 0 {Zmie opcje eksportu tekstu} menuText P OptionsFonts "Czcionka" 0 {Zmie font} menuText P OptionsFontsRegular "Podstawowa" 0 {Zmie podstawow czcionk} menuText P OptionsFontsMenu "Menu" 0 {Zmie czcionk menu} menuText P OptionsFontsSmall "Maa" 0 {Zmie ma czcionk} # ====== TODO To be translated ====== menuText P OptionsFontsTiny "Tiny" 0 {Change the tiny font} menuText P OptionsFontsFixed "Staa" 0 {Zmie czcionk staej szerokoci} menuText P OptionsGInfo "Informacje o partii" 0 {Sposb wywietlania informacji o partii} menuText P OptionsLanguage "Jzyk" 0 {Wybierz jzyk} # ====== TODO To be translated ====== menuText P OptionsMovesTranslatePieces "Translate pieces" 0 {Translate first letter of pieces} # ====== TODO To be translated ====== menuText P OptionsMovesHighlightLastMove "Highlight last move" 0 {Highlight last move} # ====== TODO To be translated ====== menuText P OptionsMovesHighlightLastMoveDisplay "Show" 0 {Display last move Highlight} # ====== TODO To be translated ====== menuText P OptionsMovesHighlightLastMoveWidth "Width" 0 {Thickness of line} # ====== TODO To be translated ====== menuText P OptionsMovesHighlightLastMoveColor "Color" 0 {Color of line} menuText P OptionsMoves "Posunicia" 0 {Wprowadzanie posuni} menuText P OptionsMovesAsk "Zapytaj przed zastpieniem posuni" 0 \ {Zapytaj przed zastpieniem aktualnych posuni} menuText P OptionsMovesAnimate "Szybko animacji" 1 \ {Ustaw czas przeznaczony na animacj jednego posunicia} menuText P OptionsMovesDelay "Automatyczne przegldanie..." 0 \ {Ustaw opnienie przy automatycznym przegldaniu partii} menuText P OptionsMovesCoord "Posunicia w formacie \"g1f3\"" 0 \ {Akceptuj posunicia wprowadzone w formacie "g1f3"} menuText P OptionsMovesSuggest "Poka proponowane posunicia" 1 \ {Wcz/wycz proponowanie posuni} # ====== TODO To be translated ====== menuText P OptionsShowVarPopup "Show variations window" 0 {Turn on/off the display of a variations window} # ====== TODO To be translated ====== menuText P OptionsMovesSpace "Add spaces after move number" 0 {Add spaces after move number} menuText P OptionsMovesKey "Automatyczne dopenianie posuni" 1 \ {Wcz/wycz automatyczne dopenianie posuni wprowadzanych z klawiatury} # ====== TODO To be translated ====== menuText P OptionsMovesShowVarArrows "Show Arrows for Variations" 0 {Turn on/off arrows showing moves in variations} menuText P OptionsNumbers "Format zapisu liczb" 0 {Wybierz format zapisu liczb} menuText P OptionsStartup "Start" 0 {Wybierz okna, ktre maj by widoczne po uruchomieniu programu} # ====== TODO To be translated ====== menuText P OptionsTheme "Theme" 0 {Change look of interface} menuText P OptionsWindows "Okna" 0 {Opcje okien} menuText P OptionsWindowsIconify "Minimalizuj wszystkie okna" 0 \ {Schowaj wszystkie okna przy minimalizacji gwnego okna} menuText P OptionsWindowsRaise "Automatyczne uaktywnianie" 0 \ {Automatycznie uaktywniaj niektre okna (np. pasek postpu), gdy s zasonite} menuText P OptionsSounds "Sounds..." 2 {Configure move announcement sounds} ;# *** # ====== TODO To be translated ====== menuText P OptionsWindowsDock "Dock windows" 0 {Dock windows} # ====== TODO To be translated ====== menuText P OptionsWindowsSaveLayout "Save layout" 0 {Save layout} # ====== TODO To be translated ====== menuText P OptionsWindowsRestoreLayout "Restore layout" 0 {Restore layout} # ====== TODO To be translated ====== menuText P OptionsWindowsShowGameInfo "Show game info" 0 {Show game info} # ====== TODO To be translated ====== menuText P OptionsWindowsAutoLoadLayout "Auto load first layout" 0 {Auto load first layout at startup} menuText P OptionsToolbar "Pasek narzdziowy" 6 \ {Schowaj/poka pasek narzdziowy} menuText P OptionsECO "Wczytaj ksik debiutow..." 16 \ {Wczytaj plik z klasyfikacja debiutw} menuText P OptionsSpell "Wczytaj plik sprawdzania pisowni..." 13 \ {Wczytaj plik do sprawdzania pisowni nazwisk i nazw} menuText P OptionsTable "Katalog z baz kocwek..." 10 \ {Wybierz baz kocwek; uyte zostan wszystkie bazy z tego katalogu} menuText P OptionsRecent "Ostatnie pliki..." 0 \ {Zmie liczb ostatnio otwartych plikw, wywietlanych w menu Plik} # ====== TODO To be translated ====== menuText P OptionsBooksDir "Books directory..." 0 {Sets the opening books directory} # ====== TODO To be translated ====== menuText P OptionsTacticsBasesDir "Bases directory..." 0 {Sets the tactics (training) bases directory} menuText P OptionsSave "Zapamitaj opcje" 0 \ "Zapamitaj wszystkie ustawienia w pliku $::optionsFile" menuText P OptionsAutoSave "Automatycznie zapisuj opcje" 0 \ {Automatycznie zapisz opcje przy zamykaniu programu} menuText P Help "Pomoc" 2 menuText P HelpContents "Contents" 0 {Poka spis treci pomocy} menuText P HelpIndex "Spis treci" 0 {Poka indeks pomocy} menuText P HelpGuide "Krtki przewodnik" 0 {Poka krtki przewodnik} menuText P HelpHints "Podpowiedzi" 0 {Poka podpowiedzi} menuText P HelpContact "Informacja o autorze" 0 \ {Poka informacj o autorze i stronie Scid-a} menuText P HelpTip "Porada dnia" 0 {Poka porad Scida} menuText P HelpStartup "Okno powitalne" 2 {Pokazuj okno startowe} menuText P HelpAbout "O programie" 0 {Informacje o programie Scid} # Game info box popup menu: menuText P GInfoHideNext "Ukryj nastpne posunicie" 0 menuText P GInfoMaterial "Poka materia" 0 menuText P GInfoFEN "Poka pozycj w formacie FEN" 16 menuText P GInfoMarks "Pokazuj kolorowe pola i strzaki" 5 menuText P GInfoWrap "Zawijaj dugie linie" 0 menuText P GInfoFullComment "Poka cay komentarz" 6 menuText P GInfoPhotos "Poka zdjcia" 5 menuText P GInfoTBNothing "Tablica kocwek: nic" 0 menuText P GInfoTBResult "Tablica kocwek: tylko wynik" 18 menuText P GInfoTBAll "Tablica kocwek: wszystko" 18 menuText P GInfoDelete "Usu/przywr t parti" 0 menuText P GInfoMark "Wcz/wycz zaznaczenie tej partii" 0 # ====== TODO To be translated ====== menuText P GInfoInformant "Configure informant values" 0 # Main window buttons: helpMsg P .main.fbutton.button.start {Id do pocztku partii (klawisz: Home)} helpMsg P .main.fbutton.button.end {Id na koniec partii (klawisz: End)} helpMsg P .main.fbutton.button.back {Cofnij o jedno posunicie (klawisz: strzaka w lewo)} helpMsg P .main.fbutton.button.forward {Jedno posunicie do przodu (klawisz: strzaka w prawo)} helpMsg P .main.fbutton.button.intoVar {Wejd w wariant (klawisz skrtu: v)} helpMsg P .main.fbutton.button.exitVar {Opu wariant (klawisz skrtu: z)} helpMsg P .main.fbutton.button.flip {Obr szachownic (klawisz skrtu: .)} helpMsg P .main.fbutton.button.coords {Przecz wywietlanie opisu szachownicy (klawisz skrtu: 0)} helpMsg P .main.fbutton.button.stm {Przecz wywietlanie ikony koloru strony na posuniciu} helpMsg P .main.fbutton.button.autoplay \ {Automatyczne przestawianie bierek (klawisz skrtu: Ctrl+Z)} # General buttons: translate P Back {Z powrotem} translate P Browse {Przegldaj} translate P Cancel {Anuluj} # ====== TODO To be translated ====== translate P Continue {Continue} translate P Clear {Wyczy} translate P Close {Zamknij} translate P Contents {Spis treci} translate P Defaults {Domylne} translate P Delete {Usu} translate P Graph {Wykres} translate P Help {Pomoc} translate P Import {Pobierz} translate P Index {Indeks} translate P LoadGame {Wczytaj parti} translate P BrowseGame {Przegldaj parti} translate P MergeGame {Docz parti} # ====== TODO To be translated ====== translate P MergeGames {Merge Games} translate P Preview {Podgld} translate P Revert {Odwr} translate P Save {Zapisz} translate P Search {Szukaj} translate P Stop {Stop} translate P Store {Zapamitaj} translate P Update {Uaktualnij} translate P ChangeOrient {Zmie pooenie okna} translate P ShowIcons {Show Icons} ;# *** translate P None {Brak} translate P First {Pierwsza} translate P Current {Aktualn} translate P Last {Ostatni} # General messages: translate P game {partia} translate P games {partie} translate P move {posunicie} translate P moves {pos.} translate P all {wszystkie} translate P Yes {Tak} translate P No {Nie} translate P Both {Oba} translate P King {Krl} translate P Queen {Hetman} translate P Rook {Wiea} translate P Bishop {Goniec} translate P Knight {Skoczek} translate P Pawn {Pion} translate P White {Biae} translate P Black {Czarne} translate P Player {Gracz} translate P Rating {Ranking} translate P RatingDiff {Rnica rankingw} translate P AverageRating {redni ranking} translate P Event {Turniej} translate P Site {Miejsce} translate P Country {Kraj} translate P IgnoreColors {Ignoruj kolory} translate P Date {Data} translate P EventDate {Turniej data} translate P Decade {Dekada} translate P Year {Rok} translate P Month {Miesic} translate P Months {Stycze Luty Marzec Kwiecie Maj Czerwiec Lipiec Sierpie Wrzesie Padziernik Listopad Grudzie} translate P Days {N Pn Wt r Cz Pt So} translate P YearToToday {Ostatni rok} translate P Result {Wynik} translate P Round {Runda} translate P Length {Dugo} translate P ECOCode {Kod ECO} translate P ECO {ECO} translate P Deleted {Usunita} translate P SearchResults {Wyniki wyszukiwania} translate P OpeningTheDatabase "Otwieranie bazy" translate P Database {Bazy} translate P Filter {Filtr} translate P noGames {brak partii} translate P allGames {wszystkie partie} translate P empty {brak} translate P clipbase {schowek} translate P score {punkty} translate P StartPos {Pozycja pocztkowa} translate P Total {Razem} translate P readonly {tylko do odczytu} # Standard error messages: translate P ErrNotOpen {To nie jest otwarta baza.} translate P ErrReadOnly {Ta baza jest tylko do odczytu; nie mona jej zmieni.} translate P ErrSearchInterrupted {Wyszukiwanie zostao przerwane. Wyniki bd niepene.} # Game information: translate P twin {powtrzona} translate P deleted {usunita} translate P comment {komentarz} translate P hidden {ukryte} translate P LastMove {Poprzednie} translate P NextMove {nastpne} translate P GameStart {Pocztek partii} translate P LineStart {Pocztek wariantu} translate P GameEnd {Koniec partii} translate P LineEnd {Koniec wariantu} # Player information: translate P PInfoAll {Wyniki - wszystkie partie} translate P PInfoFilter {Wyniki - partie z filtra} translate P PInfoAgainst {Wyniki - } translate P PInfoMostWhite {Najczstsze debiuty biaymi} translate P PInfoMostBlack {Najczstsze debiuty czarnymi} translate P PInfoRating {Historia rankingu} translate P PInfoBio {Biografia} translate P PInfoEditRatings {Modyfikuj rankingi} # Tablebase information: translate P Draw {remis} translate P stalemate {pat} translate P withAllMoves {po dowolnym posuniciu} translate P withAllButOneMove {po dowolnym posuniciu oprcz} translate P with {po} translate P only {tylko} translate P lose {przegrywaj} translate P loses {przegrywa} translate P allOthersLose {inne posunicia przegrywaj} translate P matesIn {matuj w} translate P hasCheckmated {matuj} translate P longest {najlepsze} translate P WinningMoves {Wygrywajce posunicia} translate P DrawingMoves {Remisujce posunicia} translate P LosingMoves {Przegrywajce posunicia} translate P UnknownMoves {Posunicia o nieznanej ocenie} # Tip of the day: translate P Tip {Porada} translate P TipAtStartup {Poka porad przy starcie} # Tree window menus: menuText P TreeFile "Plik" 0 # ====== TODO To be translated ====== menuText P TreeFileFillWithBase "Fill Cache with base" 0 {Fill the cache file with all games in current base} # ====== TODO To be translated ====== menuText P TreeFileFillWithGame "Fill Cache with game" 0 {Fill the cache file with current game in current base} # ====== TODO To be translated ====== menuText P TreeFileSetCacheSize "Cache size" 0 {Set the cache size} # ====== TODO To be translated ====== menuText P TreeFileCacheInfo "Cache info" 0 {Get info on cache usage} menuText P TreeFileSave "Zapisz bufor" 7 {Zapisz plik bufora (.stc)} menuText P TreeFileFill "Twrz standardowy plik cache" 0 {Wstaw typowe pozycje debiutowe do bufora} menuText P TreeFileBest "Najlepsze partie" 0 {Poka list najlepszych partii} menuText P TreeFileGraph "Poka wykres" 0 {Poka wykres dla tej gazi drzewa} menuText P TreeFileCopy "Kopiuj drzewo do schowka" 0 \ {Skopiuj drzewo ze statystykami do schowka} menuText P TreeFileClose "Zamknij" 0 {Zamknij okno drzewa} # ====== TODO To be translated ====== menuText P TreeMask "Mask" 0 # ====== TODO To be translated ====== menuText P TreeMaskNew "New" 0 {New mask} # ====== TODO To be translated ====== menuText P TreeMaskOpen "Open" 0 {Open mask} # ====== TODO To be translated ====== menuText P TreeMaskOpenRecent "Open recent" 0 {Open recent mask} # ====== TODO To be translated ====== menuText P TreeMaskSave "Save" 0 {Save mask} # ====== TODO To be translated ====== menuText P TreeMaskClose "Close" 0 {Close mask} # ====== TODO To be translated ====== menuText P TreeMaskFillWithGame "Fill with game" 0 {Fill mask with game} # ====== TODO To be translated ====== menuText P TreeMaskFillWithBase "Fill with base" 0 {Fill mask with all games in base} # ====== TODO To be translated ====== menuText P TreeMaskInfo "Info" 0 {Show statistics for current mask} # ====== TODO To be translated ====== menuText P TreeMaskDisplay "Display mask map" 0 {Show mask data in a tree form} # ====== TODO To be translated ====== menuText P TreeMaskSearch "Search" 0 {Search in current mask} menuText P TreeSort "Sortowanie" 0 menuText P TreeSortAlpha "Alfabetycznie" 0 menuText P TreeSortECO "Kod ECO" 0 menuText P TreeSortFreq "Czsto" 0 menuText P TreeSortScore "Punkty" 0 menuText P TreeOpt "Opcje" 0 # ====== TODO To be translated ====== menuText P TreeOptSlowmode "slow mode" 0 {Slow mode for updates (high accuracy)} # ====== TODO To be translated ====== menuText P TreeOptFastmode "Fast mode" 0 {Fast mode for updates (no move transposition)} # ====== TODO To be translated ====== menuText P TreeOptFastAndSlowmode "Fast and slow mode" 0 {Fast mode then slow mode for updates} # ====== TODO To be translated ====== menuText P TreeOptStartStop "Auto refreshing" 0 {Toggles automatic refreshing of the tree window} menuText P TreeOptLock "Blokada" 0 {Zablokuj/odblokuj drzewo na aktualnej bazie} menuText P TreeOptTraining "Trening" 0 {Wcz/wycz tryb treningowy} menuText P TreeOptAutosave "Automatyczny zapis bufora" 0 \ {Automatycznie zapisz plik bufora przy wyjciu} menuText P TreeHelp "Pomoc" 2 menuText P TreeHelpTree "Drzewo" 0 menuText P TreeHelpIndex "Spis treci" 0 translate P SaveCache {Zapisz bufor} translate P Training {Trening} translate P LockTree {Blokada} translate P TreeLocked {zablokowane} translate P TreeBest {Najlepsze} translate P TreeBestGames {Najlepsze partie} # Note: the next message is the tree window title row. After editing it, # check the tree window to make sure it lines up with the actual columns. translate P TreeTitleRow \ { Pos. ECO Czsto Wynik Rav Rperf Rok %Remis} # { Move ECO Frequency Score AvElo Perf AvYear %Draws} translate P TreeTotal {RAZEM} # ====== TODO To be translated ====== translate P DoYouWantToSaveFirst {Do you want to save first} # ====== TODO To be translated ====== translate P AddToMask {Add to Mask} # ====== TODO To be translated ====== translate P RemoveFromMask {Remove from Mask} # ====== TODO To be translated ====== translate P AddThisMoveToMask {Add this move to Mask} # ====== TODO To be translated ====== translate P SearchMask {Search in Mask} # ====== TODO To be translated ====== translate P DisplayMask {Display Mask} # ====== TODO To be translated ====== translate P Nag {Nag code} # ====== TODO To be translated ====== translate P Marker {Marker} # ====== TODO To be translated ====== translate P Include {Include} # ====== TODO To be translated ====== translate P Exclude {Exclude} # ====== TODO To be translated ====== translate P MainLine {Main line} # ====== TODO To be translated ====== translate P Bookmark {Bookmark} # ====== TODO To be translated ====== translate P NewLine {New line} # ====== TODO To be translated ====== translate P ToBeVerified {To be verified} # ====== TODO To be translated ====== translate P ToTrain {To train} # ====== TODO To be translated ====== translate P Dubious {Dubious} # ====== TODO To be translated ====== translate P ToRemove {To remove} # ====== TODO To be translated ====== translate P NoMarker {No marker} # ====== TODO To be translated ====== translate P ColorMarker {Color} # ====== TODO To be translated ====== translate P WhiteMark {White} # ====== TODO To be translated ====== translate P GreenMark {Green} # ====== TODO To be translated ====== translate P YellowMark {Yellow} # ====== TODO To be translated ====== translate P BlueMark {Blue} # ====== TODO To be translated ====== translate P RedMark {Red} # ====== TODO To be translated ====== translate P CommentMove {Comment move} # ====== TODO To be translated ====== translate P CommentPosition {Comment position} # ====== TODO To be translated ====== translate P AddMoveToMaskFirst {Add move to mask first} # ====== TODO To be translated ====== translate P OpenAMaskFileFirst {Open a mask file first} # ====== TODO To be translated ====== translate P Positions {Positions} # ====== TODO To be translated ====== translate P Moves {Moves} # Finder window: menuText P FinderFile "Plik" 0 menuText P FinderFileSubdirs "Przeszukuj podkatalogi" 0 menuText P FinderFileClose "Zamknij wyszukiwacza plikw" 0 menuText P FinderSort "Sortowanie" 0 menuText P FinderSortType "Typ" 0 menuText P FinderSortSize "Rozmiar" 0 menuText P FinderSortMod "Zmieniony" 0 menuText P FinderSortName "Nazwa" 0 menuText P FinderSortPath "cieka" 0 menuText P FinderTypes "Typy" 0 menuText P FinderTypesScid "Bazy Scid-a" 0 menuText P FinderTypesOld "Bazy Scid-a (stary format)" 1 menuText P FinderTypesPGN "Pliki PGN" 0 menuText P FinderTypesEPD "Ksiki debiutowe EPD" 0 menuText P FinderTypesRep "Pliki repertuaru debiutowego" 0 menuText P FinderHelp "Pomoc" 2 menuText P FinderHelpFinder "Pomoc poszukiwacza plikw" 1 menuText P FinderHelpIndex "Spis treci" 0 translate P FileFinder {Poszukiwacz plikw} translate P FinderDir {Katalog} translate P FinderDirs {Katalogi} translate P FinderFiles {Pliki} translate P FinderUpDir {wyej} # ====== TODO To be translated ====== translate P FinderCtxOpen {Open} # ====== TODO To be translated ====== translate P FinderCtxBackup {Backup} # ====== TODO To be translated ====== translate P FinderCtxCopy {Copy} # ====== TODO To be translated ====== translate P FinderCtxMove {Move} # ====== TODO To be translated ====== translate P FinderCtxDelete {Delete} # Player finder: menuText P PListFile "Plik" 0 menuText P PListFileUpdate "Uaktualnij" 0 menuText P PListFileClose "Zamknij przegldark zawodnikw" 0 menuText P PListSort "Sortowanie" 0 menuText P PListSortName "Nazwisko" 0 menuText P PListSortElo "Elo" 0 menuText P PListSortGames "Partie" 0 menuText P PListSortOldest "Najstarsza" 0 menuText P PListSortNewest "Najnowsza" 0 # Tournament finder: menuText P TmtFile "Plik" 0 menuText P TmtFileUpdate "Uaktualnij" 0 menuText P TmtFileClose "Zamknij turnieje" 0 menuText P TmtSort "Sortowanie" 0 menuText P TmtSortDate "Data" 0 menuText P TmtSortPlayers "Zawodnicy" 0 menuText P TmtSortGames "Partie" 0 menuText P TmtSortElo "Elo" 0 menuText P TmtSortSite "Miejsce" 0 menuText P TmtSortEvent "Turniej" 0 menuText P TmtSortWinner "Zwycizca" 0 translate P TmtLimit "Wielko listy" translate P TmtMeanElo "Min. rednie ELO" translate P TmtNone "Nie znaleziono turniejw." # Graph windows: menuText P GraphFile "Plik" 0 menuText P GraphFileColor "Zapisz jako kolorowy PostScript" 12 menuText P GraphFileGrey "Zapisz jako zwyky PostScript..." 0 menuText P GraphFileClose "Zamknij okno" 6 menuText P GraphOptions "Opcje" 0 menuText P GraphOptionsWhite "Biae" 0 menuText P GraphOptionsBlack "Czarne" 0 menuText P GraphOptionsBoth "Oba kolory" 1 menuText P GraphOptionsPInfo "Gracz z Informacji o graczu" 0 translate P GraphFilterTitle "Filtr: czsto na 1000 partii" # ====== TODO To be translated ====== translate P GraphAbsFilterTitle "Filter Graph: frequency of the games" # ====== TODO To be translated ====== translate P ConfigureFilter {Configure X-Axes for Year, Rating and Moves} # ====== TODO To be translated ====== translate P FilterEstimate "Estimate" # ====== TODO To be translated ====== translate P TitleFilterGraph "Scid: Filter Graph" # Analysis window: translate P AddVariation {Dodaj wariant} # ====== TODO To be translated ====== translate P AddAllVariations {Add All Variations} translate P AddMove {Dodaj posunicie} translate P Annotate {Komentuj} # ====== TODO To be translated ====== translate P ShowAnalysisBoard {Show analysis board} # ====== TODO To be translated ====== translate P ShowInfo {Show engine info} # ====== TODO To be translated ====== translate P FinishGame {Finish game} # ====== TODO To be translated ====== translate P StopEngine {Stop engine} # ====== TODO To be translated ====== translate P StartEngine {Start engine} # ====== TODO To be translated ====== translate P LockEngine {Lock engine to current position} translate P AnalysisCommand {Program do analizy} translate P PreviousChoices {Poprzednie programy} translate P AnnotateTime {Czas midzy ruchami (w sekundach)} translate P AnnotateWhich {Dodaj warianty} translate P AnnotateAll {Dla obu stron} # ====== TODO To be translated ====== translate P AnnotateAllMoves {Annotate all moves} translate P AnnotateWhite {Dla biaych} translate P AnnotateBlack {Dla czarnych} # ====== TODO To be translated ====== translate P AnnotateBlundersOnly {When game move is an obvious blunder} # ====== TODO To be translated ====== translate P AnnotateBlundersOnlyScoreChange {Analysis reports blunder, with score change from/to: } # ====== TODO To be translated ====== translate P BlundersThreshold {Threshold} # TODO: Translate translate P ScoreAllMoves {Score all moves} translate P LowPriority {Niski priorytet CPU} # ====== TODO To be translated ====== translate P ClickHereToSeeMoves {Click here to see moves} # ====== TODO To be translated ====== translate P ConfigureInformant {Configure Informant} # ====== TODO To be translated ====== translate P Informant!? {Interesting move} # ====== TODO To be translated ====== translate P Informant? {Poor move} # ====== TODO To be translated ====== translate P Informant?? {Blunder} # ====== TODO To be translated ====== translate P Informant?! {Dubious move} # ====== TODO To be translated ====== translate P Informant+= {White has a slight advantage} # ====== TODO To be translated ====== translate P Informant+/- {White has a moderate advantage} # ====== TODO To be translated ====== translate P Informant+- {White has a decisive advantage} # ====== TODO To be translated ====== translate P Informant++- {The game is considered won} # ====== TODO To be translated ====== translate P Book {Book} # ====== TODO To be translated ====== translate P OtherBookMoves {Opponent's book} # ====== TODO To be translated ====== translate P OtherBookMovesTooltip {Moves to which the opponent has a reply} # Analysis Engine open dialog: translate P EngineList {Programy szachowe} translate P EngineName {Nazwa} translate P EngineCmd {Polecenie} translate P EngineArgs {Parametry} translate P EngineDir {Katalog} translate P EngineElo {Elo} translate P EngineTime {Data} translate P EngineNew {Dodaj} translate P EngineEdit {Edytuj} translate P EngineRequired {Pola wytuszczone s konieczne; reszta opcjonalna} # Stats window menus: menuText P StatsFile "Plik" 0 menuText P StatsFilePrint "Zapisz do pliku..." 7 menuText P StatsFileClose "Zamknij" 0 menuText P StatsOpt "Opcje" 0 # PGN window menus: menuText P PgnFile "Plik" 0 menuText P PgnFileCopy "Kopiuj parti do schowka" 0 menuText P PgnFilePrint "Zapisz do pliku..." 7 menuText P PgnFileClose "Zamknij" 0 menuText P PgnOpt "Wygld" 0 menuText P PgnOptColor "Wywietlanie w kolorach" 0 menuText P PgnOptShort "Krtki (3-wierszowy) nagwek" 0 menuText P PgnOptSymbols "Symbole Informatora" 0 menuText P PgnOptIndentC "Wcinaj komentarze" 7 menuText P PgnOptIndentV "Wcinaj warianty" 7 menuText P PgnOptColumn "Kolumny (jedno posunicie w wierszu)" 0 menuText P PgnOptSpace "Spacja po numerze ruchu" 0 menuText P PgnOptStripMarks "Usu kody kolorowych pl i strzaek" 0 menuText P PgnOptBoldMainLine "Use Bold Text for Main Line Moves" 4 ;# *** menuText P PgnColor "Kolory" 0 menuText P PgnColorHeader "Nagwek..." 0 menuText P PgnColorAnno "Uwagi..." 3 menuText P PgnColorComments "Komentarze..." 0 menuText P PgnColorVars "Warianty..." 0 menuText P PgnColorBackground "To..." 0 # ====== TODO To be translated ====== menuText P PgnColorMain "Main line..." 0 # ====== TODO To be translated ====== menuText P PgnColorCurrent "Current move background..." 1 # ====== TODO To be translated ====== menuText P PgnColorNextMove "Next move background..." 0 menuText P PgnHelp "Pomoc" 2 menuText P PgnHelpPgn "PGN" 0 menuText P PgnHelpIndex "Spis treci" 0 translate P PgnWindowTitle {Game Notation - game %u} ;# *** # Crosstable window menus: menuText P CrosstabFile "Plik" 0 menuText P CrosstabFileText "Zapisz w pliku tekstowym..." 15 menuText P CrosstabFileHtml "Zapisz w pliku HTML..." 15 menuText P CrosstabFileLaTeX "Zapisz w pliku LaTeX-a..." 15 menuText P CrosstabFileClose "Zamknij" 0 menuText P CrosstabEdit "Edytuj" 0 menuText P CrosstabEditEvent "Turniej" 0 menuText P CrosstabEditSite "Miejsce" 0 menuText P CrosstabEditDate "Data" 0 menuText P CrosstabOpt "Wywietlanie" 0 menuText P CrosstabOptAll "Turniej koowy" 0 menuText P CrosstabOptSwiss "Szwajcar" 0 menuText P CrosstabOptKnockout "Knockout" 0 menuText P CrosstabOptAuto "Automatycznie" 0 menuText P CrosstabOptAges "Wiek" 0 menuText P CrosstabOptNats "Narodowo" 0 menuText P CrosstabOptRatings "Ranking" 0 menuText P CrosstabOptTitles "Tytu" 0 menuText P CrosstabOptBreaks "Punkty pomocnicze" 1 menuText P CrosstabOptDeleted "Uwzgldniaj usunite partie" 0 menuText P CrosstabOptColors "Kolory (tylko szwajcar)" 0 menuText P CrosstabOptColumnNumbers "Numerowane kolumny (tylko turniej koowy)" 0 menuText P CrosstabOptGroup "Grupuj po liczbie punktw" 0 menuText P CrosstabSort "Sortowanie" 0 menuText P CrosstabSortName "Nazwisko" 0 menuText P CrosstabSortRating "Ranking" 0 menuText P CrosstabSortScore "Punkty" 0 menuText P CrosstabColor "Kolor" 0 menuText P CrosstabColorPlain "Zwyky tekst" 0 menuText P CrosstabColorHyper "Hipertekst" 0 menuText P CrosstabHelp "Pomoc" 2 menuText P CrosstabHelpCross "Tabela turniejowa" 0 menuText P CrosstabHelpIndex "Spis treci" 0 translate P SetFilter {Ustaw filtr} translate P AddToFilter {Dodaj do filtra} translate P Swiss {Szwajcar} translate P Category {Kategoria} # Opening report window menus: menuText P OprepFile "Plik" 0 menuText P OprepFileText "Zapisz w pliku tekstowym..." 15 menuText P OprepFileHtml "Zapisz w pliku HTML..." 15 menuText P OprepFileLaTeX "Zapisz w pliku LaTeX-a..." 15 menuText P OprepFileOptions "Opcje" 2 menuText P OprepFileClose "Zamknij okno raportu" 0 menuText P OprepFavorites "Ulubione" 1 menuText P OprepFavoritesAdd "Dodaj raport..." 0 menuText P OprepFavoritesEdit "Modyfikuj ulubione..." 0 menuText P OprepFavoritesGenerate "Twrz raporty..." 0 menuText P OprepHelp "Pomoc" 2 menuText P OprepHelpReport "Pomoc raportu debiutowego" 0 menuText P OprepHelpIndex "Spis treci" 0 # Repertoire editor: menuText P RepFile "Plik" 0 menuText P RepFileNew "Nowy" 0 menuText P RepFileOpen "Otwrz..." 0 menuText P RepFileSave "Zapisz" 0 menuText P RepFileSaveAs "Zapisz jako..." 7 menuText P RepFileClose "Zamknij" 3 menuText P RepEdit "Edytuj" 0 menuText P RepEditGroup "Dodaj grup" 6 menuText P RepEditInclude "Wcz wariant" 0 menuText P RepEditExclude "Wycz wariant" 1 menuText P RepView "Widok" 0 menuText P RepViewExpand "Rozwi wszystkie grupy" 0 menuText P RepViewCollapse "Zwi wszystkie grupy" 0 menuText P RepSearch "Szukaj" 0 menuText P RepSearchAll "Wszystkie warianty..." 0 menuText P RepSearchDisplayed "Tylko widoczne warianty..." 0 menuText P RepHelp "Pomoc" 2 menuText P RepHelpRep "Repertuar debiutowy" 0 menuText P RepHelpIndex "Spis treci" 0 translate P RepSearch "Poszukiwanie wariantw" translate P RepIncludedLines "wczone warianty" translate P RepExcludedLines "wyczone warianty" translate P RepCloseDialog {Ten repertuar ma niezapisane zmiany. Na pewno zamkn repertuar, rezygnujc z wszelkich zmian? } # Header search: translate P HeaderSearch {Wyszukiwanie wg nagwka} translate P EndSideToMove {Side to move at end of game} ;# *** translate P GamesWithNoECO {Partie bez ECO?} translate P GameLength {Dugo} translate P FindGamesWith {Znajd partie} translate P StdStart {caa partia} translate P Promotions {z promocj} translate P Comments {Komentarze} translate P Variations {Warianty} translate P Annotations {Uwagi} translate P DeleteFlag {Usuwanie} translate P WhiteOpFlag {Debiut - biae} translate P BlackOpFlag {Debiut - czarne} translate P MiddlegameFlag {Gra rodkowa} translate P EndgameFlag {Kocwka} translate P NoveltyFlag {Nowinka} translate P PawnFlag {Struktura pionowa} translate P TacticsFlag {Taktyka} translate P QsideFlag {Gra na skrzydle hetmaskim} translate P KsideFlag {Gra na skrzydle krlewskim} translate P BrilliancyFlag {Nagroda za pikno} translate P BlunderFlag {Podstawka} translate P UserFlag {Inne} translate P PgnContains {PGN zawiera tekst} # ====== TODO To be translated ====== translate P Annotator {Annotator} # ====== TODO To be translated ====== translate P Cmnts {Annotated games only} # Game list window: translate P GlistNumber {Numer} translate P GlistWhite {Biae} translate P GlistBlack {Czarne} translate P GlistWElo {B-Elo} translate P GlistBElo {C-Elo} translate P GlistEvent {Turniej} translate P GlistSite {Miejsce} translate P GlistRound {Runda} translate P GlistDate {Data} translate P GlistYear {Rok} translate P GlistEDate {Turniej-Data} translate P GlistResult {Wynik} translate P GlistLength {Dugo} translate P GlistCountry {Kraj} translate P GlistECO {ECO} translate P GlistOpening {Debiut} translate P GlistEndMaterial {Materia} translate P GlistDeleted {Usunita} translate P GlistFlags {Oznaczenie} translate P GlistVars {Warianty} translate P GlistComments {Komentarze} translate P GlistAnnos {Uwagi} translate P GlistStart {Pozycja pocztkowa} translate P GlistGameNumber {Numer partii} # ====== TODO To be translated ====== translate P GlistAverageElo {Average Elo} # ====== TODO To be translated ====== translate P GlistRating {Rating} translate P GlistFindText {Znajd tekst} translate P GlistMoveField {Przesu} translate P GlistEditField {Konfiguruj} translate P GlistAddField {Dodaj} translate P GlistDeleteField {Usu} translate P GlistWidth {Szeroko} translate P GlistAlign {Wyrwnanie} # ====== TODO To be translated ====== translate P GlistAlignL {Align: left} # ====== TODO To be translated ====== translate P GlistAlignR {Align: right} # ====== TODO To be translated ====== translate P GlistAlignC {Align: center} translate P GlistColor {Kolor} translate P GlistSep {Separator} # ====== TODO To be translated ====== translate P GlistCurrentSep {-- Current --} # ====== TODO To be translated ====== translate P GlistNewSort {New} # ====== TODO To be translated ====== translate P GlistAddToSort {Add} # ====== TODO To be translated ====== translate P GsortSort {Sort...} # ====== TODO To be translated ====== translate P GsortDate {Date} # ====== TODO To be translated ====== translate P GsortYear {Year} # ====== TODO To be translated ====== translate P GsortEvent {Event} # ====== TODO To be translated ====== translate P GsortSite {Site} # ====== TODO To be translated ====== translate P GsortRound {Round} # ====== TODO To be translated ====== translate P GsortWhiteName {White Name} # ====== TODO To be translated ====== translate P GsortBlackName {Black Name} # ====== TODO To be translated ====== translate P GsortECO {ECO} # ====== TODO To be translated ====== translate P GsortResult {Result} # ====== TODO To be translated ====== translate P GsortMoveCount {Move Count} # ====== TODO To be translated ====== translate P GsortAverageElo {Average Elo} # ====== TODO To be translated ====== translate P GsortCountry {Country} # ====== TODO To be translated ====== translate P GsortDeleted {Deleted} # ====== TODO To be translated ====== translate P GsortEventDate {Event Date} # ====== TODO To be translated ====== translate P GsortWhiteElo {White Elo} # ====== TODO To be translated ====== translate P GsortBlackElo {Black Elo} # ====== TODO To be translated ====== translate P GsortComments {Comments} # ====== TODO To be translated ====== translate P GsortVariations {Variations} # ====== TODO To be translated ====== translate P GsortNAGs {NAGs} # ====== TODO To be translated ====== translate P GsortAscending {Ascending} # ====== TODO To be translated ====== translate P GsortDescending {Descending} # ====== TODO To be translated ====== translate P GsortAdd {Add} # ====== TODO To be translated ====== translate P GsortStore {Store} # ====== TODO To be translated ====== translate P GsortLoad {Load} # ====== TODO To be translated ====== translate P GlistRemoveThisGameFromFilter {Remove this game from Filter} # ====== TODO To be translated ====== translate P GlistRemoveGameAndAboveFromFilter {Remove game (and all above it) from Filter} # ====== TODO To be translated ====== translate P GlistRemoveGameAndBelowFromFilter {Remove game (and all below it) from Filter} # ====== TODO To be translated ====== translate P GlistDeleteGame {(Un)Delete this game} # ====== TODO To be translated ====== translate P GlistDeleteAllGames {Delete all games in filter} # ====== TODO To be translated ====== translate P GlistUndeleteAllGames {Undelete all games in filter} # ====== TODO To be translated ====== translate P GlistMergeGameInBase {Merge Game in other base} # Maintenance window: translate P DatabaseName {Nazwa bazy:} translate P TypeIcon {Ikona:} translate P NumOfGames {Liczba partii:} translate P NumDeletedGames {Liczba usunitych partii:} translate P NumFilterGames {Liczba partii w filtrze:} translate P YearRange {Data:} translate P RatingRange {Ranking:} translate P Description {Opis} translate P Flag {Oznaczenie:} # ====== TODO To be translated ====== translate P CustomFlags {Custom flags} translate P DeleteCurrent {Usu aktualn parti} translate P DeleteFilter {Usu partie z filtra} translate P DeleteAll {Usu wszystkie partie} translate P UndeleteCurrent {Odzyskaj aktualn parti} translate P UndeleteFilter {Odzyskaj partie z filtra} translate P UndeleteAll {Odzyskaj wszystkie partie} translate P DeleteTwins {Usu powtrzone partie} translate P MarkCurrent {Zaznacz aktualn parti} translate P MarkFilter {Zaznacz partie z filtra} translate P MarkAll {Zaznacz wszystkie partie z filtra} translate P UnmarkCurrent {Usu zaznaczenie aktualnej partii} translate P UnmarkFilter {Usu zaznaczenie partii z filtra} translate P UnmarkAll {Usu zaznaczenie wszystkich partii} translate P Spellchecking {Pisownia} translate P Players {Zawodnicy} translate P Events {Turnieje} translate P Sites {Miejsca} translate P Rounds {Rundy} translate P DatabaseOps {Operacje bazodanowe} translate P ReclassifyGames {Klasyfikacja debiutowa} translate P CompactDatabase {Uporzdkuj baz} translate P SortDatabase {Sortuj baz} translate P AddEloRatings {Dodaj rankingi ELO} translate P AutoloadGame {Domylna partia} translate P StripTags {Usu znaczniki PGN} translate P StripTag {Usu znacznik} translate P Cleaner {Zestaw zada} translate P CleanerHelp { Zestaw zada pozwala wykona od razu kilka operacji porzdkowania bazy. Operacje wybrane z listy zostan wykonane na aktualnej bazie. Do klasyfikacji debiutowej i usuwania powtrzonych partii uyte zostan aktualne ustawienia. } translate P CleanerConfirm { Kiedy wykonanie zestawu zada zostanie rozpoczte, nie bdzie mona ju go przerwa. Na duej bazie moe to zaj duo czasu (zaley to rwnie od wybranego zestawu zada i ich ustawie). Na pewno wykona wybrane zadania? } # ====== TODO To be translated ====== translate P TwinCheckUndelete {to flip; "u" undeletes both)} # ====== TODO To be translated ====== translate P TwinCheckprevPair {Previous pair} # ====== TODO To be translated ====== translate P TwinChecknextPair {Next pair} # ====== TODO To be translated ====== translate P TwinChecker {Scid: Twin game checker} # ====== TODO To be translated ====== translate P TwinCheckTournament {Games in tournament:} # ====== TODO To be translated ====== translate P TwinCheckNoTwin {No twin } # ====== TODO To be translated ====== translate P TwinCheckNoTwinfound {No twin was detected for this game.\nTo show twins using this window, you must first use the "Delete twin games..." function. } # ====== TODO To be translated ====== translate P TwinCheckTag {Share tags...} # ====== TODO To be translated ====== translate P TwinCheckFound1 {Scid found $result twin games} # ====== TODO To be translated ====== translate P TwinCheckFound2 { and set their delete flags} # ====== TODO To be translated ====== translate P TwinCheckNoDelete {There are no games in this database to delete.} # ====== TODO To be translated ====== translate P TwinCriteria1 { Your settings for finding twin games are potentially likely to\ncause non-twin games with similar moves to be marked as twins.} # ====== TODO To be translated ====== translate P TwinCriteria2 {It is recommended that if you select "No" for "same moves", you should select "Yes" for the colors, event, site, round, year and month settings.\nDo you want to continue and delete twins anyway? } # ====== TODO To be translated ====== translate P TwinCriteria3 {It is recommended that you specify "Yes" for at least two of the "same site", "same round" and "same year" settings.\nDo you want to continue and delete twins anyway?} # ====== TODO To be translated ====== translate P TwinCriteriaConfirm {Scid: Confirm twin settings} # ====== TODO To be translated ====== translate P TwinChangeTag "Change the following game tags:\n\n" # ====== TODO To be translated ====== translate P AllocRatingDescription "This command will use the current spellcheck file to add Elo ratings to games in this database. Wherever a player has no currrent rating but his/her rating at the time of the game is listed in the spellcheck file, that rating will be added." # ====== TODO To be translated ====== translate P RatingOverride "Overwrite existing non-zero ratings?" # ====== TODO To be translated ====== translate P AddRatings "Add ratings to:" # ====== TODO To be translated ====== translate P AddedRatings {Scid added $r Elo ratings in $g games.} # ====== TODO To be translated ====== translate P NewSubmenu "New submenu" # Comment editor: translate P AnnotationSymbols {Symbole:} translate P Comment {Komentarz:} translate P InsertMark {Wstaw znak} translate P InsertMarkHelp { Insert/remove mark: Select color, type, square. Insert/remove arrow: Right-click two squares. } ;# *** # Nag buttons in comment editor: translate P GoodMove {Good move} ;# *** translate P PoorMove {Poor move} ;# *** translate P ExcellentMove {Excellent move} ;# *** translate P Blunder {Podstawka} translate P InterestingMove {Interesting move} ;# *** translate P DubiousMove {Dubious move} ;# *** translate P WhiteDecisiveAdvantage {White has a decisive advantage} ;# *** translate P BlackDecisiveAdvantage {Black has a decisive advantage} ;# *** translate P WhiteClearAdvantage {White has a clear advantage} ;# *** translate P BlackClearAdvantage {Black has a clear advantage} ;# *** translate P WhiteSlightAdvantage {White has a slight advantage} ;# *** translate P BlackSlightAdvantage {Black has a slight advantage} ;# *** translate P Equality {Equality} ;# *** translate P Unclear {Unclear} ;# *** translate P Diagram {Diagram} ;# *** # Board search: translate P BoardSearch {Wyszukiwanie wg pozycji} translate P FilterOperation {Operacje na aktualnym filtrze:} translate P FilterAnd {I (ogranicz filtr)} translate P FilterOr {LUB (dodaj do filtra)} translate P FilterIgnore {NOWY (ignoruj poprzedni filtr)} translate P SearchType {Typ wyszukiwania:} translate P SearchBoardExact {Identyczna pozycja (bierki na tych samych polach)} translate P SearchBoardPawns {Pionki (ten sam materia, pionki na tych samych polach)} translate P SearchBoardFiles {Kolumny (ten sam materia, pionki na tych samych kolumnach)} translate P SearchBoardAny {Materia (ten sam materia, pozycja dowolna)} # ====== TODO To be translated ====== translate P SearchInRefDatabase { Search in base } translate P LookInVars {Przeszukuj warianty} # Material search: translate P MaterialSearch {Wyszukiwanie wg materiau} translate P Material {Materia} translate P Patterns {Wzorce} translate P Zero {Brak} translate P Any {Dowolny} translate P CurrentBoard {Aktualna pozycja} translate P CommonEndings {Typowe kocwki} translate P CommonPatterns {Typowe wzorce} translate P MaterialDiff {Przewaga materialna} translate P squares {pola} translate P SameColor {jednopolowe} translate P OppColor {rnopolowe} translate P Either {dowolne} translate P MoveNumberRange {Zakres posuni} translate P MatchForAtLeast {Pasuje min.} translate P HalfMoves {pruchy} # Common endings in material search: translate P EndingPawns {Pawn endings} ;# *** translate P EndingRookVsPawns {Rook vs. Pawn(s)} ;# *** translate P EndingRookPawnVsRook {Rook and 1 Pawn vs. Rook} ;# *** translate P EndingRookPawnsVsRook {Rook and Pawn(s) vs. Rook} ;# *** translate P EndingRooks {Rook vs. Rook endings} ;# *** translate P EndingRooksPassedA {Rook vs. Rook endings with a passed a-pawn} ;# *** translate P EndingRooksDouble {Double Rook endings} ;# *** translate P EndingBishops {Bishop vs. Bishop endings} ;# *** translate P EndingBishopVsKnight {Bishop vs. Knight endings} ;# *** translate P EndingKnights {Knight vs. Knight endings} ;# *** translate P EndingQueens {Queen vs. Queen endings} ;# *** translate P EndingQueenPawnVsQueen {Queen and 1 Pawn vs. Queen} ;# *** translate P BishopPairVsKnightPair {Two Bishops vs. Two Knights middlegame} ;# *** # Common patterns in material search: translate P PatternWhiteIQP {White IQP} ;# *** translate P PatternWhiteIQPBreakE6 {White IQP: d4-d5 break vs. e6} ;# *** translate P PatternWhiteIQPBreakC6 {White IQP: d4-d5 break vs. c6} ;# *** translate P PatternBlackIQP {Black IQP} ;# *** translate P PatternWhiteBlackIQP {White IQP vs. Black IQP} ;# *** translate P PatternCoupleC3D4 {White c3+d4 Isolated Pawn Couple} ;# *** translate P PatternHangingC5D5 {Black Hanging Pawns on c5 and d5} ;# *** translate P PatternMaroczy {Maroczy Center (with Pawns on c4 and e4)} ;# *** translate P PatternRookSacC3 {Rook Sacrifice on c3} ;# *** translate P PatternKc1Kg8 {O-O-O vs. O-O (Kc1 vs. Kg8)} ;# *** translate P PatternKg1Kc8 {O-O vs. O-O-O (Kg1 vs. Kc8)} ;# *** translate P PatternLightFian {Light-Square Fianchettos (Bishop-g2 vs. Bishop-b7)} ;# *** translate P PatternDarkFian {Dark-Square Fianchettos (Bishop-b2 vs. Bishop-g7)} ;# *** translate P PatternFourFian {Four Fianchettos (Bishops on b2,g2,b7,g7)} ;# *** # Game saving: translate P Today {Dzisiaj} translate P ClassifyGame {Klasyfikacja debiutowa} # Setup position: translate P EmptyBoard {Pusta szachownica} translate P InitialBoard {Pozycja pocztkowa} translate P SideToMove {Na posuniciu} translate P MoveNumber {Posunicie nr} translate P Castling {Roszada} translate P EnPassantFile {Bicie w przelocie} translate P ClearFen {Kopiuj FEN} translate P PasteFen {Wklej pozycj FEN} # ====== TODO To be translated ====== translate P SaveAndContinue {Save and continue} # ====== TODO To be translated ====== translate P DiscardChangesAndContinue {Discard changes\nand continue} # ====== TODO To be translated ====== translate P GoBack {Go back} # Replace move dialog: translate P ReplaceMove {Zmie posunicie} translate P AddNewVar {Dodaj wariant} # ====== TODO To be translated ====== translate P NewMainLine {New Main Line} translate P ReplaceMoveMessage {Posunicie ju istnieje. Moesz je zastpi, usuwajc dalszy cig partii lub doda nowy wariant. (Mona wyczy to ostrzeenie, wyczajc opcj "Zapytaj przed zastpieniem posuni" w menu Opcje:Posunicia)} # Make database read-only dialog: translate P ReadOnlyDialog {Jeli zabezpieczysz t baz przed zapisem, zmiany bd zablokowane adna partia nie bdzie zapisana ani zmodyfikowana, adne flagi nie bd zmienione. Sortowanie i klasyfikacja debiutowa bd tylko tymczasowe. eby usun zabezpieczenie przez zapisem, wystarczy zamkn baz i otworzy j ponownie. Na pewno zabezpieczy baz przed zapisem?} # Clear game dialog: translate P ClearGameDialog {Partia zostaa zmieniona. Na pewno kontynuowa, rezygnujc z wszelkich zmian? } # Exit dialog: translate P ExitDialog {Na pewno zakoczy prac z programem?} translate P ExitUnsaved {Nastpujce bazy zawieraj niezapisane zmiany. Jeli zamkniesz program teraz, zmiany zostan utracone.} # Import window: translate P PasteCurrentGame {Wklej aktualn parti} translate P ImportHelp1 {Wprowad lub wklej parti w formacie PGN w ponisz ramk.} translate P ImportHelp2 {Tu bd wywietlane bdy przy importowaniu partii.} # ====== TODO To be translated ====== translate P OverwriteExistingMoves {Overwrite existing moves ?} # ECO Browser: translate P ECOAllSections {Wszystkie kody ECO} translate P ECOSection {Cz ECO} translate P ECOSummary {Podsumowanie dla} translate P ECOFrequency {Czstoci kodw dla} # Opening Report: translate P OprepTitle {Raport debiutowy} translate P OprepReport {Raport} translate P OprepGenerated {Utworzony przez} translate P OprepStatsHist {Statystyka i historia} translate P OprepStats {Statystyka} translate P OprepStatAll {Wszystkie partie} translate P OprepStatBoth {Obaj zawodnicy z Elo} translate P OprepStatSince {Od} translate P OprepOldest {Najdawniejsze partie} translate P OprepNewest {Ostatnie partie} translate P OprepPopular {Popularno} translate P OprepFreqAll {Czsto w caej bazie: } translate P OprepFreq1 {W ostatnim roku: } translate P OprepFreq5 {W ostatnich piciu latach: } translate P OprepFreq10 {W ostatnich dziesiciu latach: } translate P OprepEvery {co %u partii} translate P OprepUp {wicej o %u%s ni w caej bazie} translate P OprepDown {mniej o %u%s ni w caej bazie} translate P OprepSame {jak w caej bazie} translate P OprepMostFrequent {Gracze najczciej stosujcy wariant} translate P OprepMostFrequentOpponents {Przeciwnicy} translate P OprepRatingsPerf {Rankingi i wyniki} translate P OprepAvgPerf {rednie rankingi i wyniki} translate P OprepWRating {Ranking biaych} translate P OprepBRating {Ranking czarnych} translate P OprepWPerf {Wynik biaych} translate P OprepBPerf {Wynik czarnych} translate P OprepHighRating {Partie graczy o najwyszym rednim rankingu} translate P OprepTrends {Wyniki} translate P OprepResults {Dugo partii i czstoci} translate P OprepLength {Dugo partii} translate P OprepFrequency {Czsto} translate P OprepWWins {Zwycistwa biaych: } translate P OprepBWins {Zwycistwa czarnych: } translate P OprepDraws {Remisy: } translate P OprepWholeDB {caa baza} translate P OprepShortest {Najkrtsze zwycistwa} translate P OprepMovesThemes {Posunicia i motywy} translate P OprepMoveOrders {Posunicia prowadzce do badanej pozycji} translate P OprepMoveOrdersOne \ {Badana pozycja powstawaa jedynie po posuniciach:} translate P OprepMoveOrdersAll \ {Badana pozycja powstawaa na %u sposobw:} translate P OprepMoveOrdersMany \ {Badana pozycja powstawaa na %u sposobw. Najczstsze %u to:} translate P OprepMovesFrom {Posunicia w badanej pozycji} translate P OprepMostFrequentEcoCodes {Najczstsze kody ECO} translate P OprepThemes {Motywy pozycyjne} translate P OprepThemeDescription {Czsto motyww w pierwszych %u posuniciach partii} translate P OprepThemeSameCastling {Jednostronne roszady} translate P OprepThemeOppCastling {Rnostronne roszady} translate P OprepThemeNoCastling {Obie strony bez roszady} translate P OprepThemeKPawnStorm {Atak pionowy na skrzydle krlewskim} translate P OprepThemeQueenswap {Wymiana hetmanw} translate P OprepThemeWIQP {Izolowany pion biaych} translate P OprepThemeBIQP {Izolowany pion czarnych} translate P OprepThemeWP567 {Biay pion na 5/6/7 linii} translate P OprepThemeBP234 {Czarny pion na 2/3/4 linii} translate P OprepThemeOpenCDE {Otwarta kolumna c/d/e} translate P OprepTheme1BishopPair {Jedna ze stron ma par gocw} translate P OprepEndgames {Kocwki} translate P OprepReportGames {Partie raportu} translate P OprepAllGames {Wszystkie partie} translate P OprepEndClass {Materia w pozycji kocowej} translate P OprepTheoryTable {Teoria} translate P OprepTableComment {Utworzono z %u partii o najwyszym rednim rankingu.} translate P OprepExtraMoves {Dodatkowe posunicia w przypisach} translate P OprepMaxGames {Maksymalna liczba partii w teorii} translate P OprepViewHTML {rdo HTML} translate P OprepViewLaTeX {rdo LaTeX} # Player Report: translate P PReportTitle {Raport o graczu} translate P PReportColorWhite {with the White pieces} ;# *** translate P PReportColorBlack {with the Black pieces} ;# *** translate P PReportMoves {po %s} translate P PReportOpenings {Debiuty} translate P PReportClipbase {Wyczy schowek i skopiuj do niego wybrane partie} # Piece Tracker window: translate P TrackerSelectSingle {Lewy przycisk wybiera t figur.} translate P TrackerSelectPair {Lewy przycisk wybiera t figur; prawy obie takie figury.} translate P TrackerSelectPawn {Lewy przycisk wybiera tego piona; prawy wszystkie 8 pionw.} translate P TrackerStat {Statystyka} translate P TrackerGames {% partie z posuniciem na tym pole} translate P TrackerTime {% czasu na tym polu} translate P TrackerMoves {Posunicia} translate P TrackerMovesStart {Podaj numer posunicia, od ktrego zacz ledzenie.} translate P TrackerMovesStop {Podaj numer posunicia, na ktrym skoczy ledzenie.} # Game selection dialogs: translate P SelectAllGames {Wszystkie partie w bazie} translate P SelectFilterGames {Partie w filtrze} translate P SelectTournamentGames {Tylko partie z aktualnego turnieju} translate P SelectOlderGames {Tylko wczeniejsze partie} # Delete Twins window: translate P TwinsNote {Partie zostan uznane za identyczne, jeli zostay rozegrane przez tych samych graczy i speniaj ustawione poniej kryteria. Krtsza z partii zostanie usunita. Uwaga: dobrze przez wyszukaniem powtrzonych partii sprawdzi pisowni nazwisk.} translate P TwinsCriteria {Kryteria: co musi by jednakowe w obu partiach?} translate P TwinsWhich {Przeszukiwane partie} translate P TwinsColors {Kolory} translate P TwinsEvent {Turniej:} translate P TwinsSite {Miejsce:} translate P TwinsRound {Runda:} translate P TwinsYear {Rok:} translate P TwinsMonth {Miesic:} translate P TwinsDay {Dzie:} translate P TwinsResult {Wynik:} translate P TwinsECO {Kod ECO:} translate P TwinsMoves {Posunicia:} translate P TwinsPlayers {Porwnywanie nazwisk:} translate P TwinsPlayersExact {Dokadne} translate P TwinsPlayersPrefix {Tylko pierwsze 4 litery} translate P TwinsWhen {Usuwanie znalezionych powtrzonych partii} translate P TwinsSkipShort {Pomija partie krtsze ni 5 posuni?} translate P TwinsUndelete {Odzyska wszystkie partie przed poszukiwaniem?} translate P TwinsSetFilter {Wstawi wszystkie usunite partie do filtra?} translate P TwinsComments {Zawsze zachowywa partie komentowane?} translate P TwinsVars {Zawsze zachowywa partie z wariantami?} translate P TwinsDeleteWhich {Ktr parti usun:} translate P TwinsDeleteShorter {Krtsz} translate P TwinsDeleteOlder {O niszym numerze} translate P TwinsDeleteNewer {O wyszym numerze} translate P TwinsDelete {Usu partie} # Name editor window: translate P NameEditType {Nazwa do wyboru} translate P NameEditSelect {Partie do edycji} translate P NameEditReplace {Zastp} translate P NameEditWith {przez} translate P NameEditMatches {Pasujce: Ctrl+1 do Ctrl+9 wybiera} # ====== TODO To be translated ====== translate P CheckGames {Check games} # ====== TODO To be translated ====== translate P CheckGamesWhich {Check games} # ====== TODO To be translated ====== translate P CheckAll {All games} # ====== TODO To be translated ====== translate P CheckSelectFilterGames {Only games in filter} # Classify window: translate P Classify {Przyporzdkowanie ECO} translate P ClassifyWhich {Partie do przyporzdkowania ECO} translate P ClassifyAll {Wszystkie partie (zmiana starych kodw ECO)} translate P ClassifyYear {Wszystkie partie z ostatniego roku} translate P ClassifyMonth {Wszystkie partie z ostatniego miesica} translate P ClassifyNew {Tylko partie bez kodu ECO} translate P ClassifyCodes {Kody ECO} translate P ClassifyBasic {Tylko podstawowe ("B12", ...)} translate P ClassifyExtended {Rozszerzone kody Scida ("B12j", ...)} # Compaction: translate P NameFile {Plik nazw} translate P GameFile {Plik z partiami} translate P Names {Nazwy} translate P Unused {Nieuywane} translate P SizeKb {Rozmiar (kb)} translate P CurrentState {Status} translate P AfterCompaction {Po uporzdkowaniu} translate P CompactNames {Uporzdkuj nazwy} translate P CompactGames {Uporzdkuj partie} # ====== TODO To be translated ====== translate P NoUnusedNames "There are no unused names, so the name file is already fully compacted." # ====== TODO To be translated ====== translate P NoUnusedGames "The game file is already fully compacted." # ====== TODO To be translated ====== translate P NameFileCompacted {The name file for the database "[file tail [sc_base filename]]" was compacted.} # ====== TODO To be translated ====== translate P GameFileCompacted {The game file for the database "[file tail [sc_base filename]]" was compacted.} # Sorting: translate P SortCriteria {Kryteria sortowania} translate P AddCriteria {Dodaj kryteria} translate P CommonSorts {Standardowe kryteria} translate P Sort {Sortuj} # Exporting: translate P AddToExistingFile {Doda partie do pliku?} translate P ExportComments {Eksportowa komentarze?} translate P ExportVariations {Eksportowa warianty?} translate P IndentComments {Wcinaj komentarze?} translate P IndentVariations {Wcinaj warianty?} translate P ExportColumnStyle {Kolumny (jedno posunicie w wierszu)?} translate P ExportSymbolStyle {Styl znakw komentarza:} translate P ExportStripMarks {Usuwa z komentarzy kody kolorowania pl/strzaek?} # Goto game/move dialogs: translate P LoadGameNumber {Podaj numer partii do wczytania:} translate P GotoMoveNumber {Id do posunicia nr:} # Copy games dialog: translate P CopyGames {Kopiuj partie} translate P CopyConfirm { Czy na pewno skopiowa [::utils::thousands $nGamesToCopy] partii z filtra w bazie "$fromName" do bazy "$targetName"? } translate P CopyErr {Nie mona skopiowa partii} translate P CopyErrSource {baza rdowa} translate P CopyErrTarget {baza docelowa} translate P CopyErrNoGames {nie ma partii w filtrze} translate P CopyErrReadOnly {jest tylko do odczytu} translate P CopyErrNotOpen {nie jest otwarta} # Colors: translate P LightSquares {Jasne pola} translate P DarkSquares {Ciemne pola} translate P SelectedSquares {Wybrane pola} translate P SuggestedSquares {Wybrane posunicie} translate P WhitePieces {Biae figury} translate P BlackPieces {Czarne figury} translate P WhiteBorder {Kontur biaych figur} translate P BlackBorder {Kontur czarnych figur} # Novelty window: translate P FindNovelty {Znajd nowink} translate P Novelty {Nowinka} translate P NoveltyInterrupt {Poszukiwanie nowinki przerwano} translate P NoveltyNone {Nie znaleziono nowinki w partii} translate P NoveltyHelp { Scid znajdzie pierwsze posunicie w partii, po ktrym powstanie pozycja niewystpujca ani w bazie, ani w ksice debiutowej. } # Sounds configuration: translate P SoundsFolder {Sound Files Folder} ;# *** translate P SoundsFolderHelp {The folder should contain the files King.wav, a.wav, 1.wav, etc} ;# *** translate P SoundsAnnounceOptions {Move Announcement Options} ;# *** translate P SoundsAnnounceNew {Announce new moves as they are made} ;# *** translate P SoundsAnnounceForward {Announce moves when moving forward one move} ;# *** translate P SoundsAnnounceBack {Announce when retracting or moving back one move} ;# *** # Upgrading databases: translate P Upgrading {Konwersja} translate P ConfirmOpenNew { Ta baza jest zapisana w starym formacie (Scid 3) i nie moe zosta otwarta w nowszej wersji Scid-a. Baza zostaa ju automatycznie przekonwertowana do nowego formatu. Czy otworzy now wersj bazy? } translate P ConfirmUpgrade { Ta baza jest zapisana w starym formacie (Scid 3) i nie moe zosta otwarta w nowszej wersji Scid-a. eby mc otworzy baz, trzeba przekonwertowa j do nowego formatu. Konwersja utworzy now wersj bazy - stara wersja nie zostanie zmieniona ani usunita. Moe to zaj troch czasu, ale jest to operacja jednorazowa. Moesz j przerwa, jeli potrwa za dugo. Przekonwertowa baz? } # Recent files options: translate P RecentFilesMenu {Liczba ostatnich plikw w menu Plik} translate P RecentFilesExtra {Liczba ostatnich plikw w dodatkowym podmenu} # My Player Names options: translate P MyPlayerNamesDescription { Podaj list preferowanych nazwisk graczy, po jednym w wierszu. W nazwiskach mona stosowa znaki specjalne (np. "?" - dowolny znak, "*" - dowolna sekwencja znakw). Wszystkie partie grane przez jednego z graczy z listy bd wywietlane z jego perspektywy. } # ====== TODO To be translated ====== translate P showblunderexists {show blunder exists} # ====== TODO To be translated ====== translate P showblundervalue {show blunder value} # ====== TODO To be translated ====== translate P showscore {show score} # ====== TODO To be translated ====== translate P coachgame {coach game} # ====== TODO To be translated ====== translate P configurecoachgame {configure coach game} # ====== TODO To be translated ====== translate P configuregame {Game configuration} # ====== TODO To be translated ====== translate P Phalanxengine {Phalanx engine} # ====== TODO To be translated ====== translate P Coachengine {Coach engine} # ====== TODO To be translated ====== translate P difficulty {difficulty} # ====== TODO To be translated ====== translate P hard {hard} # ====== TODO To be translated ====== translate P easy {easy} # ====== TODO To be translated ====== translate P Playwith {Play with} # ====== TODO To be translated ====== translate P white {white} # ====== TODO To be translated ====== translate P black {black} # ====== TODO To be translated ====== translate P both {both} # ====== TODO To be translated ====== translate P Play {Play} # ====== TODO To be translated ====== translate P Noblunder {No blunder} # ====== TODO To be translated ====== translate P blunder {blunder} # ====== TODO To be translated ====== translate P Noinfo {-- No info --} # ====== TODO To be translated ====== translate P PhalanxOrTogaMissing {Phalanx or Toga not found} # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate P moveblunderthreshold {move is a blunder if loss is greater than} # ====== TODO To be translated ====== translate P limitanalysis {limit engine analysis time} # ====== TODO To be translated ====== translate P seconds {seconds} # ====== TODO To be translated ====== translate P Abort {Abort} # ====== TODO To be translated ====== translate P Resume {Resume} # ====== TODO To be translated ====== translate P OutOfOpening {Out of opening} # ====== TODO To be translated ====== translate P NotFollowedLine {You did not follow the line} # ====== TODO To be translated ====== translate P DoYouWantContinue {Do you want yo continue ?} # ====== TODO To be translated ====== translate P CoachIsWatching {Coach is watching} # ====== TODO To be translated ====== translate P Ponder {Permanent thinking} # ====== TODO To be translated ====== translate P LimitELO {Limit ELO strength} # ====== TODO To be translated ====== translate P DubiousMovePlayedTakeBack {Dubious move played, do you want to take back ?} # ====== TODO To be translated ====== translate P WeakMovePlayedTakeBack {Weak move played, do you want to take back ?} # ====== TODO To be translated ====== translate P BadMovePlayedTakeBack {Bad move played, do you want to take back ?} # ====== TODO To be translated ====== translate P Iresign {I resign} # ====== TODO To be translated ====== translate P yourmoveisnotgood {your move is not good} # ====== TODO To be translated ====== translate P EndOfVar {End of variation} # ====== TODO To be translated ====== translate P Openingtrainer {Opening trainer} # ====== TODO To be translated ====== translate P DisplayCM {Display candidate moves} # ====== TODO To be translated ====== translate P DisplayCMValue {Display candidate moves value} # ====== TODO To be translated ====== translate P DisplayOpeningStats {Show statistics} # ====== TODO To be translated ====== translate P ShowReport {Show report} # ====== TODO To be translated ====== translate P NumberOfGoodMovesPlayed {good moves played} # ====== TODO To be translated ====== translate P NumberOfDubiousMovesPlayed {dubious moves played} # ====== TODO To be translated ====== translate P NumberOfMovesPlayedNotInRepertoire {moves played not in repertoire} # ====== TODO To be translated ====== translate P NumberOfTimesPositionEncountered {times position encountered} # ====== TODO To be translated ====== translate P PlayerBestMove {Allow only best moves} # ====== TODO To be translated ====== translate P OpponentBestMove {Opponent plays best moves} # ====== TODO To be translated ====== translate P OnlyFlaggedLines {Only flagged lines} # ====== TODO To be translated ====== translate P resetStats {Reset statistics} # ====== TODO To be translated ====== translate P Repertoiretrainingconfiguration {Repertoire training configuration} # ====== TODO To be translated ====== translate P Loadingrepertoire {Loading repertoire} # ====== TODO To be translated ====== translate P Movesloaded {Moves loaded} # ====== TODO To be translated ====== translate P Repertoirenotfound {Repertoire not found} # ====== TODO To be translated ====== translate P Openfirstrepertoirewithtype {Open first a repertoire database with icon/type set to the right side} # ====== TODO To be translated ====== translate P Movenotinrepertoire {Move not in repertoire} # ====== TODO To be translated ====== translate P PositionsInRepertoire {Positions in repertoire} # ====== TODO To be translated ====== translate P PositionsNotPlayed {Positions not played} # ====== TODO To be translated ====== translate P PositionsPlayed {Positions played} # ====== TODO To be translated ====== translate P Success {Success} # ====== TODO To be translated ====== translate P DubiousMoves {Dubious moves} # ====== TODO To be translated ====== translate P OutOfRepertoire {OutOfRepertoire} # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate P ConfigureTactics {Configure tactics} # ====== TODO To be translated ====== translate P ResetScores {Reset scores} # ====== TODO To be translated ====== translate P LoadingBase {Loading base} # ====== TODO To be translated ====== translate P Tactics {Tactics} # ====== TODO To be translated ====== translate P ShowSolution {Show solution} # ====== TODO To be translated ====== translate P NextExercise {Next exercise} # ====== TODO To be translated ====== translate P PrevExercise {previous exercise} # ====== TODO To be translated ====== translate P StopTraining {Stop training} # ====== TODO To be translated ====== translate P Next {Next} # ====== TODO To be translated ====== translate P ResettingScore {Resetting score} # ====== TODO To be translated ====== translate P LoadingGame {Loading game} # ====== TODO To be translated ====== translate P MateFound {Mate found} # ====== TODO To be translated ====== translate P BestSolutionNotFound {Best solution NOT found !} # ====== TODO To be translated ====== translate P MateNotFound {Mate not found} # ====== TODO To be translated ====== translate P ShorterMateExists {Shorter mate exists} # ====== TODO To be translated ====== translate P ScorePlayed {Score played} # ====== TODO To be translated ====== translate P Expected {expected} # ====== TODO To be translated ====== translate P ChooseTrainingBase {Choose training base} # ====== TODO To be translated ====== translate P Thinking {Thinking} # ====== TODO To be translated ====== translate P AnalyzeDone {Analyze done} # ====== TODO To be translated ====== translate P WinWonGame {Win won game} # ====== TODO To be translated ====== translate P Lines {Lines} # ====== TODO To be translated ====== translate P ConfigureUCIengine {Configure UCI engine} # ====== TODO To be translated ====== translate P SpecificOpening {Specific opening} # ====== TODO To be translated ====== translate P StartNewGame {Start new game} # ====== TODO To be translated ====== translate P FixedLevel {Fixed level} # ====== TODO To be translated ====== translate P Opening {Opening} # ====== TODO To be translated ====== translate P RandomLevel {Random level} # ====== TODO To be translated ====== translate P StartFromCurrentPosition {Start from current position} # ====== TODO To be translated ====== translate P FixedDepth {Fixed depth} # ====== TODO To be translated ====== translate P Nodes {Nodes} # ====== TODO To be translated ====== translate P Depth {Depth} # ====== TODO To be translated ====== translate P Time {Time} # ====== TODO To be translated ====== translate P SecondsPerMove {Seconds per move} # ====== TODO To be translated ====== translate P Engine {Engine} # ====== TODO To be translated ====== translate P TimeMode {Time mode} # ====== TODO To be translated ====== translate P TimeBonus {Time + bonus} # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate P TimeMin {min} # ====== TODO To be translated ====== translate P TimeSec {sec} # ====== TODO To be translated ====== # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate P AllExercisesDone {All exercises done} # ====== TODO To be translated ====== translate P MoveOutOfBook {Move out of book} # ====== TODO To be translated ====== translate P LastBookMove {Last book move} # ====== TODO To be translated ====== translate P AnnotateSeveralGames {Annotate several games\nfrom current to :} # ====== TODO To be translated ====== translate P FindOpeningErrors {Find opening errors} # ====== TODO To be translated ====== translate P MarkTacticalExercises {Mark tactical exercises} # ====== TODO To be translated ====== translate P UseBook {Use book} # ====== TODO To be translated ====== translate P MultiPV {Multiple variations} # ====== TODO To be translated ====== translate P Hash {Hash memory} # ====== TODO To be translated ====== translate P OwnBook {Use engine book} # ====== TODO To be translated ====== translate P BookFile {Opening book} # ====== TODO To be translated ====== translate P AnnotateVariations {Annotate variations} # ====== TODO To be translated ====== translate P ShortAnnotations {Short annotations} # ====== TODO To be translated ====== translate P addAnnotatorTag {Add annotator tag} # ====== TODO To be translated ====== translate P AddScoreToShortAnnotations {Add score to short annotations} # ====== TODO To be translated ====== translate P Export {Export} # ====== TODO To be translated ====== translate P BookPartiallyLoaded {Book partially loaded} # ====== TODO To be translated ====== translate P Calvar {Calculation of variations} # ====== TODO To be translated ====== translate P ConfigureCalvar {Configuration} # ====== TODO To be translated ====== # ====== TODO To be translated ====== translate P Reti {Reti} # ====== TODO To be translated ====== translate P English {English} # ====== TODO To be translated ====== translate P d4Nf6Miscellaneous {1.d4 Nf6 Miscellaneous} # ====== TODO To be translated ====== translate P Trompowsky {Trompowsky} # ====== TODO To be translated ====== translate P Budapest {Budapest} # ====== TODO To be translated ====== translate P OldIndian {Old Indian} # ====== TODO To be translated ====== translate P BenkoGambit {Benko Gambit} # ====== TODO To be translated ====== translate P ModernBenoni {Modern Benoni} # ====== TODO To be translated ====== translate P DutchDefence {Dutch Defence} # ====== TODO To be translated ====== translate P Scandinavian {Scandinavian} # ====== TODO To be translated ====== translate P AlekhineDefence {Alekhine Defence} # ====== TODO To be translated ====== translate P Pirc {Pirc} # ====== TODO To be translated ====== translate P CaroKann {Caro-Kann} # ====== TODO To be translated ====== translate P CaroKannAdvance {Caro-Kann Advance} # ====== TODO To be translated ====== translate P Sicilian {Sicilian} # ====== TODO To be translated ====== translate P SicilianAlapin {Sicilian Alapin} # ====== TODO To be translated ====== translate P SicilianClosed {Sicilian Closed} # ====== TODO To be translated ====== translate P SicilianRauzer {Sicilian Rauzer} # ====== TODO To be translated ====== translate P SicilianDragon {Sicilian Dragon} # ====== TODO To be translated ====== translate P SicilianScheveningen {Sicilian Scheveningen} # ====== TODO To be translated ====== translate P SicilianNajdorf {Sicilian Najdorf} # ====== TODO To be translated ====== translate P OpenGame {Open Game} # ====== TODO To be translated ====== translate P Vienna {Vienna} # ====== TODO To be translated ====== translate P KingsGambit {King's Gambit} # ====== TODO To be translated ====== translate P RussianGame {Russian Game} # ====== TODO To be translated ====== translate P ItalianTwoKnights {Italian/Two Knights} # ====== TODO To be translated ====== translate P Spanish {Spanish} # ====== TODO To be translated ====== translate P SpanishExchange {Spanish Exchange} # ====== TODO To be translated ====== translate P SpanishOpen {Spanish Open} # ====== TODO To be translated ====== translate P SpanishClosed {Spanish Closed} # ====== TODO To be translated ====== translate P FrenchDefence {French Defence} # ====== TODO To be translated ====== translate P FrenchAdvance {French Advance} # ====== TODO To be translated ====== translate P FrenchTarrasch {French Tarrasch} # ====== TODO To be translated ====== translate P FrenchWinawer {French Winawer} # ====== TODO To be translated ====== translate P FrenchExchange {French Exchange} # ====== TODO To be translated ====== translate P QueensPawn {Queen's Pawn} # ====== TODO To be translated ====== translate P Slav {Slav} # ====== TODO To be translated ====== translate P QGA {QGA} # ====== TODO To be translated ====== translate P QGD {QGD} # ====== TODO To be translated ====== translate P QGDExchange {QGD Exchange} # ====== TODO To be translated ====== translate P SemiSlav {Semi-Slav} # ====== TODO To be translated ====== translate P QGDwithBg5 {QGD with Bg5} # ====== TODO To be translated ====== translate P QGDOrthodox {QGD Orthodox} # ====== TODO To be translated ====== translate P Grunfeld {Grnfeld} # ====== TODO To be translated ====== translate P GrunfeldExchange {Grnfeld Exchange} # ====== TODO To be translated ====== translate P GrunfeldRussian {Grnfeld Russian} # ====== TODO To be translated ====== translate P Catalan {Catalan} # ====== TODO To be translated ====== translate P CatalanOpen {Catalan Open} # ====== TODO To be translated ====== translate P CatalanClosed {Catalan Closed} # ====== TODO To be translated ====== translate P QueensIndian {Queen's Indian} # ====== TODO To be translated ====== translate P NimzoIndian {Nimzo-Indian} # ====== TODO To be translated ====== translate P NimzoIndianClassical {Nimzo-Indian Classical} # ====== TODO To be translated ====== translate P NimzoIndianRubinstein {Nimzo-Indian Rubinstein} # ====== TODO To be translated ====== translate P KingsIndian {King's Indian} # ====== TODO To be translated ====== translate P KingsIndianSamisch {King's Indian Smisch} # ====== TODO To be translated ====== translate P KingsIndianMainLine {King's Indian Main Line} # ====== TODO To be translated ====== translate P ConfigureFics {Configure FICS} # ====== TODO To be translated ====== translate P FICSGuest {Login as Guest} # ====== TODO To be translated ====== translate P FICSServerPort {Server port} # ====== TODO To be translated ====== translate P FICSServerAddress {IP Address} # ====== TODO To be translated ====== translate P FICSRefresh {Refresh} # ====== TODO To be translated ====== translate P FICSTimesealPort {Timeseal port} # ====== TODO To be translated ====== translate P FICSSilence {Silence} # ====== TODO To be translated ====== translate P FICSOffers {Offers} # ====== TODO To be translated ====== translate P FICSConsole {Console} # ====== TODO To be translated ====== translate P FICSGames {Games} # ====== TODO To be translated ====== translate P FICSUnobserve {Stop observing game} # ====== TODO To be translated ====== translate P FICSProfile {Display your history and profile} # ====== TODO To be translated ====== translate P FICSRelayedGames {Relayed games} # ====== TODO To be translated ====== translate P FICSFindOpponent {Find opponent} # ====== TODO To be translated ====== translate P FICSTakeback {Takeback} # ====== TODO To be translated ====== translate P FICSTakeback2 {Takeback 2} # ====== TODO To be translated ====== translate P FICSInitTime {Initial time (min)} # ====== TODO To be translated ====== translate P FICSIncrement {Increment (sec)} # ====== TODO To be translated ====== translate P FICSRatedGame {Rated Game} # ====== TODO To be translated ====== translate P FICSAutoColour {automatic} # ====== TODO To be translated ====== translate P FICSManualConfirm {confirm manually} # ====== TODO To be translated ====== translate P FICSFilterFormula {Filter with formula} # ====== TODO To be translated ====== translate P FICSIssueSeek {Issue seek} # ====== TODO To be translated ====== translate P FICSChallenge {Challenge} # ====== TODO To be translated ====== translate P FICSAccept {accept} # ====== TODO To be translated ====== translate P FICSDecline {decline} # ====== TODO To be translated ====== translate P FICSColour {Colour} # ====== TODO To be translated ====== translate P FICSSend {send} # ====== TODO To be translated ====== translate P FICSConnect {Connect} # ====== TODO To be translated ====== translate P FICSdefaultuservars {Use default variables} # ====== TODO To be translated ====== translate P FICSObserveconfirm {Do you want to observe game} # ====== TODO To be translated ====== translate P GameReview {Game review} # ====== TODO To be translated ====== translate P GameReviewTimeExtended {Time extended} # ====== TODO To be translated ====== translate P GameReviewMargin {Error margin} # ====== TODO To be translated ====== translate P GameReviewAutoContinue {Auto continue when move is correct} # ====== TODO To be translated ====== translate P GameReviewReCalculate {Use extended time} # ====== TODO To be translated ====== translate P GameReviewAnalyzingMovePlayedDuringTheGame {Analyzing move played during the game} # ====== TODO To be translated ====== translate P GameReviewAnalyzingThePosition {Analyzing the position} # ====== TODO To be translated ====== translate P GameReviewEnterYourMove {Enter your move} # ====== TODO To be translated ====== translate P GameReviewCheckingYourMove {Checking your move} # ====== TODO To be translated ====== translate P GameReviewYourMoveWasAnalyzed {Your move was analyzed} # ====== TODO To be translated ====== translate P GameReviewYouPlayedSameMove {You played the same move as in match} # ====== TODO To be translated ====== translate P GameReviewScoreOfYourMove {Score of your move} # ====== TODO To be translated ====== translate P GameReviewGameMoveScore {Game move's score} # ====== TODO To be translated ====== translate P GameReviewEngineScore {Engine's score} # ====== TODO To be translated ====== translate P GameReviewYouPlayedLikeTheEngine {You played like the engine} # ====== TODO To be translated ====== translate P GameReviewNotEngineMoveButGoodMove {Not the engine move, but is also a good move} # ====== TODO To be translated ====== translate P GameReviewMoveNotGood {This move is not good, score is} # ====== TODO To be translated ====== translate P GameReviewMovesPlayedLike {Moves played like} # ====== TODO To be translated ====== translate P GameReviewMovesPlayedEngine {Moves played like engine} # ====== TODO To be translated ====== translate P CCDlgConfigureWindowTitle {Configure Correspondence Chess} # ====== TODO To be translated ====== translate P CCDlgCGeneraloptions {General Options} # ====== TODO To be translated ====== translate P CCDlgDefaultDB {Default Database:} # ====== TODO To be translated ====== translate P CCDlgInbox {Inbox (path):} # ====== TODO To be translated ====== translate P CCDlgOutbox {Outbox (path):} # ====== TODO To be translated ====== translate P CCDlgXfcc {Xfcc Configuration:} # ====== TODO To be translated ====== translate P CCDlgExternalProtocol {External Protocol Handler (e.g. Xfcc)} # ====== TODO To be translated ====== translate P CCDlgFetchTool {Fetch Tool:} # ====== TODO To be translated ====== translate P CCDlgSendTool {Send Tool:} # ====== TODO To be translated ====== translate P CCDlgEmailCommunication {eMail Communication} # ====== TODO To be translated ====== translate P CCDlgMailPrg {Mail program:} # ====== TODO To be translated ====== translate P CCDlgBCCAddr {(B)CC Address:} # ====== TODO To be translated ====== translate P CCDlgMailerMode {Mode:} # ====== TODO To be translated ====== translate P CCDlgThunderbirdEg {e.g. Thunderbird, Mozilla Mail, Icedove...} # ====== TODO To be translated ====== translate P CCDlgMailUrlEg {e.g. Evolution} # ====== TODO To be translated ====== translate P CCDlgClawsEg {e.g Sylpheed Claws} # ====== TODO To be translated ====== translate P CCDlgmailxEg {e.g. mailx, mutt, nail...} # ====== TODO To be translated ====== translate P CCDlgAttachementPar {Attachment parameter:} # ====== TODO To be translated ====== translate P CCDlgInternalXfcc {Use internal Xfcc support} # ====== TODO To be translated ====== translate P CCDlgConfirmXfcc {Confirm moves} # ====== TODO To be translated ====== translate P CCDlgSubjectPar {Subject parameter:} # ====== TODO To be translated ====== translate P CCDlgDeleteBoxes {Empty In-/Outbox} # ====== TODO To be translated ====== translate P CCDlgDeleteBoxesText {Do you really want to empty your In- and Outbox folders for Correspondence Chess? This requires a new sync to show the last state of your games} # ====== TODO To be translated ====== translate P CCDlgConfirmMove {Confirm move} # ====== TODO To be translated ====== translate P CCDlgConfirmMoveText {If you confirm, the following move and comment will be sent to the server:} # ====== TODO To be translated ====== translate P CCDlgDBGameToLong {Inconsistent Mainline} # ====== TODO To be translated ====== translate P CCDlgDBGameToLongError {The mainline in your database is longer than the game in your Inbox. If the Inbox contains current games, i.e. right after a sync, some moves were added to the mainline in the database erroneously.\nIn this case please shorten the mainline to (at max) move\n} # ====== TODO To be translated ====== translate P CCDlgStartEmail {Start new eMail game} # ====== TODO To be translated ====== translate P CCDlgYourName {Your Name:} # ====== TODO To be translated ====== translate P CCDlgYourMail {Your eMail Address:} # ====== TODO To be translated ====== translate P CCDlgOpponentName {Opponents Name:} # ====== TODO To be translated ====== translate P CCDlgOpponentMail {Opponents eMail Address:} # ====== TODO To be translated ====== translate P CCDlgGameID {Game ID (unique):} # ====== TODO To be translated ====== translate P CCDlgTitNoOutbox {Scid: Correspondence Chess Outbox} # ====== TODO To be translated ====== translate P CCDlgTitNoInbox {Scid: Correspondence Chess Inbox} # ====== TODO To be translated ====== translate P CCDlgTitNoGames {Scid: No Correspondence Chess Games} # ====== TODO To be translated ====== translate P CCErrInboxDir {Correspondence Chess inbox directory:} # ====== TODO To be translated ====== translate P CCErrOutboxDir {Correspondence Chess outbox directory:} # ====== TODO To be translated ====== translate P CCErrDirNotUsable {does not exist or is not accessible!\nPlease check and correct the settings.} # ====== TODO To be translated ====== translate P CCErrNoGames {does not contain any games!\nPlease fetch them first.} # ====== TODO To be translated ====== translate P CCDlgTitNoCCDB {Scid: No Correspondence Database} # ====== TODO To be translated ====== translate P CCErrNoCCDB {No Database of type 'Correspondence' is opened. Please open one before using correspondence chess functions.} # ====== TODO To be translated ====== translate P CCFetchBtn {Fetch games from the server and process the Inbox} # ====== TODO To be translated ====== translate P CCPrevBtn {Goto previous game} # ====== TODO To be translated ====== translate P CCNextBtn {Goto next game} # ====== TODO To be translated ====== translate P CCSendBtn {Send move} # ====== TODO To be translated ====== translate P CCEmptyBtn {Empty In- and Outbox} # ====== TODO To be translated ====== translate P CCHelpBtn {Help on icons and status indicators.\nFor general Help press F1!} # ====== TODO To be translated ====== translate P CCDlgServerName {Server Name:} # ====== TODO To be translated ====== translate P CCDlgLoginName {Login Name:} # ====== TODO To be translated ====== translate P CCDlgPassword {Password:} # ====== TODO To be translated ====== translate P CCDlgURL {Xfcc-URL:} # ====== TODO To be translated ====== translate P CCDlgRatingType {Rating Type:} # ====== TODO To be translated ====== translate P CCDlgDuplicateGame {Non-unique game ID} # ====== TODO To be translated ====== translate P CCDlgDuplicateGameError {This game exists more than once in your database. Please delete all duplicates and compact your game file (File/Maintenance/Compact Database).} # ====== TODO To be translated ====== translate P CCDlgSortOption {Sorting:} # ====== TODO To be translated ====== translate P CCDlgListOnlyOwnMove {Only games I have the move} # ====== TODO To be translated ====== translate P CCOrderClassicTxt {Site, Event, Round, Result, White, Black} # ====== TODO To be translated ====== translate P CCOrderMyTimeTxt {My Clock} # ====== TODO To be translated ====== translate P CCOrderTimePerMoveTxt {Time per move till next time control} # ====== TODO To be translated ====== translate P CCOrderStartDate {Start date} # ====== TODO To be translated ====== translate P CCOrderOppTimeTxt {Opponents Clock} # ====== TODO To be translated ====== translate P CCDlgConfigRelay {Configure ICCF observations} # ====== TODO To be translated ====== translate P CCDlgConfigRelayHelp {Go to the games page on http://www.iccf-webchess.com and display the game to be observed. If you see the chessboard copy the URL from your browser to the list below. One URL per line only!\nExample: http://www.iccf-webchess.com/MakeAMove.aspx?id=266452} # ====== TODO To be translated ====== translate P ExtHWConfigConnection {Configure external hardware} # ====== TODO To be translated ====== translate P ExtHWPort {Port} # ====== TODO To be translated ====== translate P ExtHWEngineCmd {Engine command} # ====== TODO To be translated ====== translate P ExtHWEngineParam {Engine parameter} # ====== TODO To be translated ====== translate P ExtHWShowButton {Show button} # ====== TODO To be translated ====== translate P ExtHWHardware {Hardware} # ====== TODO To be translated ====== translate P ExtHWNovag {Novag Citrine} # ====== TODO To be translated ====== translate P ExtHWInputEngine {Input Engine} # ====== TODO To be translated ====== translate P ExtHWNoBoard {No board} # ====== TODO To be translated ====== translate P NovagReferee {Referee} # ====== TODO To be translated ====== translate P IEConsole {Input Engine Console} # ====== TODO To be translated ====== translate P IESending {Moves sent for} # ====== TODO To be translated ====== translate P IESynchronise {Synchronise} # ====== TODO To be translated ====== translate P IERotate {Rotate} # ====== TODO To be translated ====== translate P IEUnableToStart {Unable to start Input Engine:} # ====== TODO To be translated ====== translate P DoneWithPosition {Done with position} # ====== TODO To be translated ====== translate P Board {Board} # ====== TODO To be translated ====== translate P showGameInfo {Show game info} # ====== TODO To be translated ====== translate P autoResizeBoard {Automatic resize of board} # ====== TODO To be translated ====== translate P DockTop {Move to top} # ====== TODO To be translated ====== translate P DockBottom {Move to bottom} # ====== TODO To be translated ====== translate P DockLeft {Move to left} # ====== TODO To be translated ====== translate P DockRight {Move to right} # ====== TODO To be translated ====== translate P Undock {Undock} # ====== TODO To be translated ====== translate P ChangeIcon {Change icon...} # ====== TODO To be translated ====== } ### Tips of the day in Polish: set tips(P) { { Scid ma ponad 30 stron pomocy i w wikszoci okien Scida nacinicie klawisza F1 spowoduje wywietlenie odpowiedniej strony. } { Niektre okna Scida (np. informacje pod szachownic, przecznik baz) maj menu przywoywane prawym przyciskiem myszy. Sprbuj nacisn prawy przycisk myszy w kadym oknie, by sprawdzi, czy menu jest dostpne i jakie funkcje zawiera. } { Scid pozwala wprowadza posunicia na kilka rnych sposobw. Moesz uy myszy (z wywietlaniem moliwych posuni lub bez) albo klawiatury (z opcjonalnym automatycznym dopenianiem). Wicej informacji mona znale na stronie pomocy Wprowadzenie posuni. } { Jeli masz kilka baz, ktre otwierasz czsto, dodaj zakadk dla kadej z nich. Umoliwi to atwe otwieranie baz z menu. } { Moesz obejrze wszystkie posunicia w aktualnej partii (z wariantami i komentarzami lub bez) w Oknie PGN. W oknie PGN moesz przej do dowolnego posunicia, klikajc na nim lewym przyciskiem myszy oraz uy rodkowego lub prawego przycisku myszy do obejrzenia aktualnej pozycji. } { Moesz kopiowa partie z bazy do bazy przecigajc je lewym przyciskiem myszy w oknie Przecznika baz. } { Scid moe otwiera pliki PGN, nawet jeli s one skompresowane Gzip-em (z rozszerzeniem .gz). Pliki PGN mog by jedynie czytane, wic jeli chcesz co zmieni, utwrz now baz Scida i skopiuj do niej partie z pliku PGN. } { Jeli masz du baz i czsto uywasz okna Drzewa wariantw, warto wybra polecenie Twrz standardowy plik cache/b> z menu Plik okna Drzewo wariantw. Statystyki dla najpopularniejszych pozycji debiutowych zostan zapamitane w pliku, co przyspieszy dziaanie drzewa. } { Drzewo wariantw moe pokaza wszystkie posunicia z aktualnej pozycji, ale jeli chcesz zobaczy wszystkie kolejnoci posuni prowadzce do aktualnej pozycji, moesz uy Raportu debiutowego. } { W licie partii kliknij lewym lub prawym przyciskiem myszy na nagwku wybranej kolumny, by zmieni jej szeroko. } { W oknie Informacja o graczu (kliknij na nazwisku gracza w polu pod szachownic, by je otworzy) moesz atwo ustawi filtr zawierajcy wszystkie partie danego gracza zakoczeone wybranym wynikiem, klikajc na dowolnej wartoci wywietlanej na czerowono. } { Podczas pracy nad debiutem warto uy funkcji wyszukiwania pozycji z opcj Pionki lub Kolumny. Pozowli to znale inne warianty debiutowe z t sam struktur pionow. } { W polu informacji o partii (pod szachownic) mona uy prawego przycisku myszy, by wywietli menu konfiguracji pola. Mona np. ukry nastpne posunicie, co jest przydatne przy rozwizywaniu zada. } { Jeli czsto uywasz funkcji obsugi na duej bazie, moesz uy okna Zestaw zada do wykonania kilka funkcji naraz. } { Jeli masz du baz, w ktrej wikszo partii ma ustawiony znacznik EventDate, moesz posortowa j wg tego znacznika (zamiast Daty). Dziki temu wszystkie partie z jednego turnieju znajd si koo siebie. } { Przed uyciem funkcji usuwania podwjnych partii dobrze jest sprawdzi pisowni nazwisk w bazie, co usprawni wyszukiwanie powtrze. } { Flagi s przydatne do oznaczania partii, ktre zawieraj wane motywy taktyczne, strkutury pionowe, nowinki itd. Potem moesz znale takie partie wyszukiwaniem wg nagwka. } { Jeli przegldasz parti i chcesz sprawdzi jaki wariant nie zmieniajc partii, moesz wczy tryb testowania wariantu (klawisz Ctrl+spacja lub ikona na pasku narzdziowym). Po wyczeniu trybu testowania powrcisz do pozycji z partii. } { eby znale najwaniejsze partie (z najsilniejszymi przeciwnikami), w ktrych powstaa aktualna pozycja, otwrz Drzewo wariantw i wybierz list najlepszych partii. Moesz nawet wybra tylko partie zakoczone konkretnym wynikiem. } { Dobr metod na nauk debiutu przy uyciu duej bazy jest wczenie trybu treningu w Drzewie wariantw i gra z programem. Pozwala to sprawdzi, ktre posunicia s grane najczciej. } { Jeli masz otwarte dwie bazy i chcesz obejrze Drzewo wariantw dla pierwszej bazy, przegldajc parti z drugiej, kliknij przycisk Blokada na drzewie, by zablokowa je na pierwszej bazie, a nastpnie przecz si do drugiej bazy. } { Okno Turnieje jest przydatne nie tylko do znajdowania turniejw, ale pozwala take sprawdzi, w jakich turniejach gra ostatnio dany zawodnik i jakie turnieje s rozgrywane w wybranym kraju. } { Moesz uy jednego z wielu typowych wzorcw w oknie Wyszukiwania wg materiau do znalezienia partii do studiowania debiutw lub gry rodkowej. } { W oknie Wyszukiwanie wg materiau, moesz ograniczy liczb znajdowanych partii przez warunek, by podany stosunek materiau utrzymywa si przynajmniej przez kilka pruchw. } { Jeli masz wan baz, ktrej nie chcesz przez przypadek zmieni, wcz Tylko do odczytu... w menu Plik po jej otwarciu (albo zmie prawa dostpu do pliku). } { Jeli uywasz XBoard-a lub WinBoard-a (albo programu szachowego, ktry pozwala na skopiowania pozycji w notacji FEN do schowka) i chcesz skopiowa aktualn pozycj do Scid-a, wybierz Copy position w menu File programu XBoard/Winboard, a potem Wklej aktywn parti ze schowka z menu Edycja Scid-a. } { W oknie Wyszukiwanie wg nagwka, szukane nazwy graczy/turnieju/miejsca/rundy s znajdowane niezalenie od wielkoci liter i rwnie wewntrz nazw. Zamiast tego moesz uy poszukiwania z symbolami wieloznacznymi (gdzie "?" oznacza dowolny znak, za "*" - 0 lub wicej znakw), wpisujc szukany tekst w cudzysowie. Wielko liter zostanie uwzgldniona. Na przykad "*BEL" znajdzie wszystkie turnieje grane w Belgii (ale nie w Belgradzie). } { Jeli chcesz poprawi posunicie nie zmieniajc nastpnych, otwrz okno Pobierz parti, wcinij Wklej aktualn parti, zmie bdne posunicie i wcinij Pobierz. } { Jeli plik klasyfikacji debiutowej ECO jest wczytany, moesz przej do ostatniej sklasyfikowanej pozycji w partii za pomoc polecenia Rozpoznaj debiut w menu Partia (klawisz Ctrl+Shift+D). } { Jeli chcesz sprawdzi wielko lub dat modyfikacji pliku przed jego otwarciem, uyj okna Poszukiwacza plikw. } { Plikrepertuaru debiutowego pozwala na ledzenie partii w ulubionych wariantach. Kiedy dodasz grane przez siebie debiuty do pliku repertuaru debiutowego, bdziesz mg atwo znajdowa je w nowych partiach. } { Raport debiutowy pozwala dowiedzie si wicej o konkretnej pozycji. Moesz zobaczy wyniki, nazwiska najczciej grajcych j zawodnikw, typowe motywy pozycyjne itd. } { Moesz doda wikszo typowych symboli (!, !?, += itd.) do aktualnego posunicia lub pozycji za pomoc skrtw klawiszowych, bez potrzeby otwierania okna Edytora komentarzy -- np. wcinicie "!" i Enter spowoduje dodanie symbolu "!". Na stronie Wprowadzanie posuni mona znale wicej informacji. } { Moesz atwo przeglda debiuty w bazie w oknie Drzewo wariantw. W oknie Statystyka (klawisz Ctrl+I) mona znale informacje o ostatnich wynikach w wariancie oraz o partiach granych przez silnych graczy. } { Moesz zmieni wielko szachownicy, naciskajc lewo lub prawo przy wcinitych klawiszach Ctrl i Shift. } { Po wyszukiwaniu moesz atwo przeglda wszystkie znalezione partie, naciskajc klawisz gra lub d przy wcinitym Ctrl by obejrze poprzedni/nastpn parti w filtrze. } } # end of polish.tcl scid-4.3.0.cvs20120311/tcl/lang/removetoken.tcl0000755000175000017500000000254311727223077020212 0ustar oliveroliver#!/usr/bin/tclsh ### ### removetoken.tcl ### # (C) Pascal Georges 2007 # # Will remove a line containing the token in argument array set encodings { czech iso8859-2 deutsch iso8859-1 francais iso8859-1 hungary iso8859-2 italian iso8859-1 nederlan iso8859-1 norsk iso8859-1 polish iso8859-2 portbr iso8859-1 russian iso8859-5 serbian iso8859-2 spanish iso8859-1 swedish iso8859-1 catalan iso8859-1 suomi iso8859-1 greek utf-8 } set languages {czech deutsch francais hungary italian nederlan norsk polish portbr spanish swedish serbian russian catalan suomi greek } ################################################################################ proc remove {langfile enc token} { # Read the language file set f [open $langfile.tcl r] fconfigure $f -encoding $enc set data [read $f] close $f set langData [split $data "\n"] set fnew [open $langfile.tcl.new w] fconfigure $fnew -encoding $enc foreach line $langData { set fields [split $line] set command [lindex $fields 0] set lang [lindex $fields 1] set name [lindex $fields 2] if {$name != $token} { puts $fnew $line } } close $fnew } ################################################################################ set token $argv foreach language $languages { remove $language $encodings($language) $token } # end of file scid-4.3.0.cvs20120311/tcl/lang/deutsch.tcl0000644000175000017500000113346211727223077017316 0ustar oliveroliver### deutsch.tcl: # German language support for Scid. # Contributors: Bernhard Bialas, Jrgen Clos et al. # Untranslated messages are marked with a "***" comment. # # Hinweis (aus tcl/lang/english.tcl): # # (4) [...] # # A menu command has the format: # menuText L tag "Name..." underline {HelpMessage...} # # [...] # # where "L" is the language letter, "tag" is the name of the menu entry # or the button widget name, and "underline" is the index of the letter # to underline, counting from zero as the first letter. Two menu entries # that appear in the same menu should have a different underlined letter. addLanguage D Deutsch 0 iso8859-1 proc setLanguage_D {} { # File menu: menuText D File "Datei" 0 menuText D FileNew "Neu..." 0 {Neue Scid-Datenbank anlegen} menuText D FileOpen "ffnen..." 0 {Existierende Scid-Datenbank ffnen} menuText D FileClose "Schlieen" 0 {Aktive Scid-Datenbank schlieen} menuText D FileFinder "Finder" 0 {Dateifinderfenster ffnen} menuText D FileBookmarks "Lesezeichen" 0 {Lesezeichenmen (Tasten: Strg+B)} menuText D FileBookmarksAdd "Lesezeichen zur Liste hinzufgen" 0 \ {Lesezeichen fr die aktuelle Partie und Datenbank} menuText D FileBookmarksFile "Lesezeichen hinzufgen in Verzeichnis" 26 \ {Lesezeichen fr die aktuelle Stellung und Partie zum Verzeichnis hinzufgen} menuText D FileBookmarksEdit "Lesezeichen editieren..." 12 \ {Lesezeichen bearbeiten} menuText D FileBookmarksList "Listenansicht" 1 \ {Lesezeichen als Liste zeigen, ohne Unterverzeichnisse} menuText D FileBookmarksSub "Verzeichnisansicht" 3 \ {Lesezeichen in Verzeichnissen zeigen, nicht als Gesamtliste} menuText D FileMaint "Wartung" 0 {Das Scid-Datenbankwartungsfenster} menuText D FileMaintWin "Wartungfenster" 0 \ {Datenbank-Wartungsfenster ffnen/schlieen} menuText D FileMaintCompact "Datenbank komprimieren..." 10 \ {Datenbank komprimieren, gelschte Spiele und unbenutzte Namen entfernen} menuText D FileMaintClass "Partien ECO-klassifizieren..." 8 \ {Neuklassifizierung aller Partien nach dem ECO-Code} menuText D FileMaintSort "Sortieren..." 0 \ {Alle Partien in der aktuellen Datenbank sortieren} menuText D FileMaintDelete "Dubletten lschen..." 0 \ {Dubletten finden und Lschkennzeichen setzen} menuText D FileMaintTwin "Dubletten prfen" 10 \ {Dublettenfenster ffnen/erneuern} menuText D FileMaintName "Namen" 0 \ {Namenseditor und Rechtschreibprfung} menuText D FileMaintNameEditor "Namenseditor" 0 \ {Namenseditorfenster ffnen/schlieen} menuText D FileMaintNamePlayer "Schreibkorrektur Spieler..." 17 \ {Schreibkorrektur der Spielernamen mit Hilfe der .ssp-Datei} menuText D FileMaintNameEvent "Schreibkorrektur Ereignis..." 17 \ {Schreibkorrektur der Ereignisse mit Hilfe der .ssp-Datei} menuText D FileMaintNameSite "Schreibkorrektur Ort..." 17 \ {Schreibkorrektur der Orte mit Hilfe der .ssp-Datei} menuText D FileMaintNameRound "Schreibkorrektur Runde..." 17 \ {Schreibkorrektur der Runden mit Hilfe der .ssp-Datei} menuText D FileReadOnly "Schreibschutz..." 3 \ {Datenbank als schreibgeschtzt behandeln, nderungen verhindern} menuText D FileSwitch "Datenbank wechseln" 0 \ {Zu einer anderen geffneten Datenbank umschalten} menuText D FileExit "Ende" 0 {Scid beenden} menuText D FileMaintFixBase "Inkonsistenzen beseitigen" 0 {Versuche eine inkonsistente Datenbank zu reparieren} # Edit menu: menuText D Edit "Bearbeiten" 0 menuText D EditAdd "Variante hinzufgen" 0 \ {Fge zu diesem Zug eine Variante hinzu} menuText D EditDelete "Variante lschen" 9 \ {Lsche eine Variante zu diesen Zug} menuText D EditFirst "Als erste Variante setzen" 4 \ {Variante an erste Stelle in der Liste setzten} menuText D EditMain "Variante als Partiefortsetzung" 13 \ {Variante zur Partiefolge machen (und umgekehrt)} menuText D EditTrial "Variante testen" 9 \ {Testmodus starten/stoppen, um eine Idee am Brett auszuprobieren} menuText D EditStrip "Entfernen" 1 \ {Kommentare oder Varianten aus der Partie entfernen} menuText D EditUndo "Rckgngig" 0 {Macht die letzte nderung rckgngig} menuText D EditStripComments "Kommentare" 0 \ {Alle Kommentare und Kommentarzeichen aus dieser Partie entfernen} menuText D EditStripVars "Varianten" 0 \ {Alle Varianten aus der Partie entfernen} menuText D EditStripBegin "Zge ab Anfang" 8 \ {Entferne Zge ab Partieanfang} menuText D EditStripEnd "Zge bis Ende" 9 \ {Entferne Zge bis Partieende} menuText D EditReset "Ablage leeren" 0 \ {Inhalt der Ablage-Datenbank lschen} menuText D EditCopy "Partie in Ablage kopieren" 17 \ {Diese Partie in die Ablage-Datenbank kopieren} menuText D EditPaste "Partie aus Ablage einfgen" 19 \ {Aktive Partie aus der Ablage hier einfgen} menuText D EditPastePGN "PGN-Partie aus Ablage einfgen..." 1 \ {Interpretiere den Inhalt der Zwischenablage als PGN-Notation und fge ihn hier ein} menuText D EditSetup "Stellungseingabe..." 0 \ {Neue Stellung eingeben (FEN oder manuell)} menuText D EditCopyBoard "Stellung kopieren" 10 \ {Aktuelle Brettposition in die Zwischenablage kopieren (im FEN-Format)} menuText D EditPasteBoard "Stellung einfgen" 12 \ {Stellung aus der Zwischenablage (im FEN-Format) einfgen} # Game menu: menuText D Game "Partie" 0 menuText D GameNew "Neue Partie" 5 \ {Neue Partie beginnen, dabei alle nderungen verwerfen} menuText D GameFirst "Erste Partie laden" 0 {Erste Partie im Filter laden} menuText D GamePrev "Vorherige Partie laden" 0 \ {Vorherige Partie im Filter laden} menuText D GameReload "Partie wiederladen" 7 \ {Diese Partie erneut laden, dabei alle nderungen verwerfen} menuText D GameNext "Nchste Partie laden" 0 {Nchste Partie im Filter laden} menuText D GameLast "Letzte Partie laden" 0 {Letzte Partie im Filter laden} menuText D GameRandom "Zufllige Partie laden" 1 \ {Zufllig ausgewhlte Partie im Filter laden} menuText D GameNumber "Lade Partie Nummer..." 14 \ {Partie durch Angabe der Nummer laden} menuText D GameReplace "Partie ersetzen..." 8 \ {Diese Partie sichern, dabei alte Version berschreiben} menuText D GameAdd "Partie speichern..." 7 \ {Diese Partie als neue Partie in der Datenbank sichern} menuText D GameDeepest "Erffnung identifizieren" 10 \ {Zur Position der lngstmglichen Zugfolge nach ECO-Klassifikation gehen} menuText D GameGotoMove "Zugnummer..." 0 \ {Zur angegebenen Zugnummer in der aktuellen Partie gehen} menuText D GameNovelty "Finde Neuerung..." 0 \ {Ersten Zug dieser Partie finden, der vorher noch nie gespielt wurde} # Search menu: menuText D Search "Suchen" 0 menuText D SearchReset "Filter zurcksetzen" 0 \ {Alle Partien in den Filter einschlieen} menuText D SearchNegate "Filter invertieren" 7 \ {Alle ausgeschlossenen Partien in den Filter nehmen} menuText D SearchCurrent "Brett..." 0 \ {Aktuelle Brettposition suchen} menuText D SearchHeader "Partiedaten..." 0 \ {Partiedaten (Spieler, Turnier etc.) suchen} menuText D SearchMaterial "Material/Muster..." 0 \ {Nach Material- oder Stellungsmustern suchen} menuText D SearchUsing "Mit Suchoptionsdatei..." 4 \ {Mit Suchoptionsdatei suchen} # Windows menu: menuText D Windows "Fenster" 0 menuText D WindowsComment "Kommentareditor" 0 {Kommentareditor ffnen/schlieen} menuText D WindowsGList "Partieliste" 6 {Partieliste ffnen/schlieen} menuText D WindowsPGN "PGN-Fenster" 0 {PGN-Fenster (Partienotation) ffnen/schlieen} menuText D WindowsPList "Spielersuche" 0 {Spielerfinder ffnen/schlieen} menuText D WindowsTmt "Turniersuche" 0 {Turnierfinder ffnen/schlieen} menuText D WindowsSwitcher "Datenbank-Umschalter" 0 \ {Datenbank-Umschalter ffnen/schlieen} menuText D WindowsMaint "Wartungsfenster" 0 {(Datenbank-)Wartungsfenster ffnen/schlieen} menuText D WindowsECO "ECO-Auswertung" 0 {ECO-Auswertung ffnen/schlieen} menuText D WindowsRepertoire "Repertoire-Editor" 0 {Erffnungsrepertoire-Editor ffnen/schlieen} menuText D WindowsStats "Statistik" 4 {Filterstatistik ffnen/schlieen} menuText D WindowsTree "Zugbaum" 0 {Zugbaum ffnen/schlieen} menuText D WindowsTB "Endspieltabellen..." 1 {Endspieltabellen ffnen/schlieen} menuText D WindowsBook "Buchfenster" 0 {Buchfenster ffnen/schlieen} menuText D WindowsCorrChess "Fernschachfenster" 0 {ffnet/schliet das Fernschachfenster} # Tools menu: menuText D Tools "Werkzeuge" 0 menuText D ToolsAnalysis "Analyse-Engine..." 0 \ {Schachanalyse-Programm starten/beenden} menuText D ToolsAnalysis2 "Analyse-Engine #2..." 16 \ {Schachanalyse-Programm Nr.2 starten/beenden} menuText D ToolsCross "Kreuztabelle" 0 {Kreuztabelle fr diese Partie anzeigen} menuText D ToolsEmail "E-Mail-Manager" 7 \ {E-Mail-Manager ffnen/schlieen} menuText D ToolsFilterGraph "Rel. Filtergrafik" 0 \ {Filtergrafik mit relativen Werten ffnen/schlieen} menuText D ToolsAbsFilterGraph "Abs. Filtergrafik" 11 \ {Filtergrafik mit absoluten Werten ffnen/schlieen} menuText D ToolsOpReport "Erffnungsbericht" 0 \ {Ausfhrliche Erffnungsbersicht fr die aktuelle Position erstellen} menuText D ToolsOpenBaseAsTree "ffne DB als Baum" 0 {ffne DB und verwende sie im Zugbaum-Fenster} menuText D ToolsOpenRecentBaseAsTree "Letzte DB als Baum" 0 {ffne zuletzt verwendete DB im Zugbaum-Fenster} menuText D ToolsTracker "Figurenverteilung" 7 \ {Figurenverteilungsfenster ffnen} menuText D ToolsTraining "Training" 0 {Trainingswerkzeuge (Taktik, Erffnungen,...) } menuText D ToolsTacticalGame "Trainingspartie" 0 {Trainingspartie spielen} menuText D ToolsSeriousGame "Ernste Partie" 0 {Ernste Partie spielen} menuText D ToolsTrainOpenings "Erffnungen" 0 {Erffnungsrepertoire trainieren} menuText D ToolsTrainReviewGame "Partie nachspielen" 0 {Finden von Zgen wie in vorgegebener Partie} menuText D ToolsTrainTactics "Taktik" 0 {Taktische Stellungen lsen} menuText D ToolsTrainCalvar "Varianten berechnen" 0 {Training zum Berechnen von Varianten} menuText D ToolsTrainFindBestMove "Besten Zug finden" 0 {Find best move} menuText D ToolsTrainFics "Internetpartie (FICS)" 0 {Internetpartie auf freechess.org} menuText D ToolsBookTuning "Buch abstimmen" 0 {Buch abstimmen} menuText D ToolsConnectHardware "Hardware verbinden" 0 {Externe Hardware mit Scid verbinden} menuText D ToolsConnectHardwareConfigure "Konfigurieren..." 0 {Hardware und Verbindung konfigurieren} menuText D ToolsConnectHardwareNovagCitrineConnect "Novag Citrine verbinden" 0 {Novag Citrine mit Scid verbinden} menuText D ToolsConnectHardwareInputEngineConnect "Input Engine verbinden" 0 {Input Engine (z.B. DGT Brett) mit Scid verbinden} menuText D ToolsPInfo "Spielerinformation" 0 \ {Spielerinformation ffnen/schlieen} menuText D ToolsPlayerReport "Spielerbericht..." 7 \ {Erzeuge einen Spielerbericht} menuText D ToolsRating "ELO-Zahl-Verlauf" 4 \ {Wertungsverlauf beider Spieler grafisch darstellen} menuText D ToolsScore "Partiebewertungsgraph" 0 {Partie-Bewertungsgraph zeigen} menuText D ToolsExpCurrent "Partie exportieren" 8 \ {Aktuelle Partie in eine Textdatei schreiben} menuText D ToolsExpCurrentPGN "Partie in PGN-Datei exportieren..." 10 \ {Aktuelle Partie in eine PGN-Datei schreiben} menuText D ToolsExpCurrentHTML "Partie in HTML-Datei exportieren..." 10 \ {Aktuelle Partie in eine HTML-Datei schreiben} menuText D ToolsExpCurrentHTMLJS "Partie in HTML/JavaScript-Datei exportieren..." 15 {Aktuelle Partie wird in eine HTML und JavaScript Datei exportiert.} menuText D ToolsExpCurrentLaTeX "Partie in LaTeX-Datei exportieren..." 10 \ {Aktuelle Partie in eine LaTeX-Datei schreiben} menuText D ToolsExpFilter "Alles im Filter exportieren" 16 \ {Alle Partien im Filter in eine Textdatei schreiben} menuText D ToolsExpFilterPGN "Filter in PGN-Datei exportieren..." 10 \ {Alle Partien im Filter in eine PGN-Datei schreiben} menuText D ToolsExpFilterHTML "Filter in HTML-Datei exportieren..." 10 \ {Alle Partien im Filter in eine HTML-Datei schreiben} menuText D ToolsExpFilterHTMLJS "Filter in HTML/JavaScript exportieren..." 17 {Alle Partien im Filter werden in eine HTML und JavaScript Datei exportiert.} menuText D ToolsExpFilterLaTeX "Filter in LaTeX-Datei exportieren..." 10 \ {Alle Partien im Filter in eine LaTeX-Datei schreiben} menuText D ToolsImportOne "Eine PGN-Partie importieren..." 16 \ {Eine Partie im PGN-Format eingeben oder einfgen} menuText D ToolsImportFile "PGN-Partien importieren..." 0 \ {Partien aus einer PGN-Datei lesen} menuText D ToolsStartEngine1 "Starte Engine1" 0 {Starte Analyse von Analyse-Engine1} menuText D ToolsStartEngine2 "Starte Engine2" 0 {Starte Analyse von Analyse-Engine2} menuText D ToolsCaptureBoard "Brettfoto..." 0 {Aktuelles Brett als Bild speichern.} #-----AW------ ### BC GHIJKL O Q TUV XY menuText D Play "Spielen" 0 {Partien spielen} menuText D CorrespondenceChess "Fernschach" 0 {Funktionen fr eMail und Xfcc basiertes Fernschach} menuText D CCConfigure "Einstellungen..." 0 {Generelle Einstellungen und externe Werkzeuge} menuText D CCConfigRelay "Beobachtete Partien..." 10 {Configure games to be observed} menuText D CCOpenDB "Datenbank ffnen..." 0 {ffnet die Standarddatenbank fr Fernschachpartien} menuText D CCRetrieve "Partien synchronisieren" 0 {Synchronisiert Partien mit dem Posteingang und mittels (Xfcc-)Hilfsprogramm} menuText D CCInbox "Posteingang synchronisieren" 12 {Synchronisiert alle Partien im Posteingang} menuText D CCSend "Zug senden" 0 {Verschickt den letzten Zug via eMail oder exterem (Xfcc-)Hilfsprogramm} menuText D CCResign "Aufgeben" 0 {Partie aufgeben (funktioniert nicht via eMail)} menuText D CCClaimDraw "Remis erklren" 1 {Zug senden und Partie Remis erklren (funktioniert nicht via eMail)} menuText D CCOfferDraw "Remis anbieten" 0 {Zug senden und Remis anbieten (funktioniert nicht via eMail)} menuText D CCAcceptDraw "Remis annehmen" 10 {Remis annehmen (funktioniert nicht via eMail)} menuText D CCNewMailGame "Neue eMail Partie..." 0 {Beginnt eine neue Partie via eMail} menuText D CCMailMove "Zug per eMail senden..." 9 {Verschickt den letzten Zug per eMail} menuText D CCGamePage "Partieseite (WWW)..." 13 {Ruft die Webseite der Partie auf} menuText D CCEditCopy "Partieliste in Ablage" 0 {Kopiert die Parieliste als CSV in die Zwischenablage} #-----AW------ # Options menu: menuText D Options "Optionen" 0 menuText D OptionsBoard "Schachbrett" 6 {Schachbrettoptionen} menuText D OptionsBoardSize "Brettgre" 0 {Brettgre ndern} menuText D OptionsBoardPieces "Figurensatz" 2 {Figurensatz wechseln} menuText D OptionsBoardColors "Farben..." 0 {Brettfarben ndern} #Klimmek menuText D OptionsBoardGraphics "Brettfelder..." 3 {Grafik fr Brettfelder auswhlen} translate D OptionsBGW {Grafikdatei fr Felder auswhlen} translate D OptionsBoardGraphicsText {Grafikdateien fr helle und dunkle Felder auswhlen:} menuText D OptionsBoardNames "Meine Spielernamen..." 0 {Editiere meine Spielernamen} menuText D OptionsExport "Export" 1 {Textausgabeoptionen ndern} menuText D OptionsFonts "Schriftarten" 3 {Schriftart wechseln} menuText D OptionsFontsRegular "Normal" 0 {Standardzeichensatz} menuText D OptionsFontsMenu "Men" 0 {Schriftart fr Mens} menuText D OptionsFontsSmall "Klein" 0 {Kleine Zeichen} menuText D OptionsFontsTiny "Winzig" 0 {Kleinster Font} menuText D OptionsFontsFixed "Fest" 0 {Schriftart mit fester Breite (nicht-proportional)} menuText D OptionsGInfo "Partieinformation" 0 {Optionen fr Informationsbereich} menuText D OptionsLanguage "Sprache" 0 {Sprache whlen} menuText D OptionsMovesTranslatePieces "Figurennamen bersetzen" 0 {bersetze den ersten Buchstaben der Figurenbezeichnung} menuText D OptionsMovesHighlightLastMove "Letzen Zug hervorheben" 0 {Rahmt Start- und Zielfeld des letzten Zuges farbig ein} menuText D OptionsMovesHighlightLastMoveDisplay "Anzeigen" 0 {Hervorhebung des letzen Zuges anzeigen} menuText D OptionsMovesHighlightLastMoveWidth "Dicke" 0 {Dicke der Linie} menuText D OptionsMovesHighlightLastMoveColor "Farbe" 0 {Farbe der Linie} menuText D OptionsMoves "Zge" 0 {Zugeingabeoptionen} menuText D OptionsMovesAsk "Fragen vor Ersetzen" 0 \ {Vor berschreiben existierender Zge nachfragen} menuText D OptionsMovesAnimate "Animation" 0 \ {Zeit fr Zuganimation einstellen} menuText D OptionsMovesDelay "Autom. Vorspielen..." 7 \ {Zeit fr automatisches Vorspielen einstellen} menuText D OptionsMovesCoord "Tastatureingabe" 0 \ {Zugeingabe ber Koordinaten ("g1f3") akzeptieren} menuText D OptionsMovesSuggest "Zugvorschlag zeigen" 0 \ {Zugvorschlag ein-/ausschalten} menuText D OptionsShowVarPopup "Variantenfenster zeigen" 0 { Anzeige des Variantenauswahlfensters ein/ausschalten} menuText D OptionsMovesSpace "Leerzeichen nach Zugnummer einfgen" 0 {Leerzeichen nach Zugnummer einfgen} menuText D OptionsMovesKey "Autom. Zugergnzung" 10 \ {Automatische Zugergnzung ein-/ausschalten} menuText D OptionsMovesShowVarArrows "Pfeile fr Varianten anzeigen" 0 {Zeige Pfeile in Varianten an: ja/nein} menuText D OptionsNumbers "Zahlenformat" 5 {Zahlenformat whlen} menuText D OptionsStartup "Autostart" 1 {Fenster zum ffnen bei Start auswhlen} menuText D OptionsTheme "Design" 0 {Verndert das Aussehen der Oberflche} menuText D OptionsWindows "Fenster" 6 {Fenster-Optionen} menuText D OptionsWindowsIconify "Autom. minimieren" 7 \ {Alle Fenster mit dem Hauptfenster minimieren} menuText D OptionsWindowsRaise "Autom. Verwaltung" 7 \ {Bestimmte Fenster (z.B. Zustandsleiste) bei Bedarf ffnen} menuText D OptionsSounds "Tne..." 0 {Tne fr Zugankndigung einstellen} ;# *** Hmm, :-| menuText D OptionsWindowsDock "Fenster docken" 0 {Fenster docken} menuText D OptionsWindowsSaveLayout "Save layout" 0 {Save layout} menuText D OptionsWindowsRestoreLayout "Restore layout" 0 {Restore layout} menuText D OptionsWindowsShowGameInfo "Partieinformationen" 0 {Partieinformation anzeigen} menuText D OptionsWindowsAutoLoadLayout "Automatisch laden: 1. Layout" 0 {Ldt das erste definierte Layout automatisch beim Programmstart} menuText D OptionsToolbar "Werkzeugleiste" 0 {Werkzeug- bzw. Symbolleiste Ein/Aus} menuText D OptionsECO "ECO-Datei laden..." 0 {ECO-Klassifikationsdatei laden} menuText D OptionsSpell "Schreibkorrekturdatei laden..." 7 \ {Datei fr Scid-Rechtschreibprfung laden} menuText D OptionsTable "Endspieltabellenverzeichnis..." 16 \ {Eine Endspieltabellendatei whlen (und damit alle Tabellen in diesem Verzeichnis)} menuText D OptionsRecent "Aktuelle Dateien..." 9 \ {Anzahl der aktuellen Dateien im Dateimen ndern} menuText D OptionsBooksDir "Buchverzeichnis..." 0 {Erffnungsbuchverzeichnis einstellen} menuText D OptionsTacticsBasesDir "Bases Verzeichnis..." 0 {Verzeichnis fr taktische Trainingsdatenbanken einstellen} menuText D OptionsSave "Optionen speichern" 0 \ "Alle einstellbaren Optionen in der Datei $::optionsFile sichern" menuText D OptionsAutoSave "Autom. speichern bei Beenden" 0 \ {Alle Optionen beim Beenden von Scid automatisch speichern} # Help menu: menuText D Help "Hilfe" 0 menuText D HelpContents "Inhalt" 0 {Gehe zum Inhaltsverzeichnis} menuText D HelpIndex "Index" 4 {Gehe zum Hilfeindex} menuText D HelpGuide "Kurzanleitung" 4 {Ein Scid-Schnelldurchgang} menuText D HelpHints "Hinweise" 0 {Die Scid-Kurztips} menuText D HelpContact "Kontaktinformation" 0 {Hilfe zur Kontaktinformation} menuText D HelpTip "Tagestip" 0 {Zeigt einen ntzlichen Tip an} menuText D HelpStartup "Startfenster" 0 {Startfenster zeigen} menuText D HelpAbout "ber Scid" 0 {Informationen zu Scid} # Game info box popup menu: menuText D GInfoHideNext "Nchsten Zug verstecken" 13 menuText D GInfoMaterial "Materialwerte zeigen" 0 menuText D GInfoFEN "FEN zeigen" 0 menuText D GInfoMarks "Gefrbte Felder und Pfeile zeigen" 0 menuText D GInfoWrap "Umbruch bei langen Zeilen" 0 menuText D GInfoFullComment "Vollstndigen Kommentar zeigen" 14 menuText D GInfoPhotos "Fotos zeigen" 1 menuText D GInfoTBNothing "Endspieltabellen: nichts" 18 menuText D GInfoTBResult "Endspieltabellen: nur Ergebnis" 22 menuText D GInfoTBAll "Endspieltabellen: Ergebnis und bester Zug" 31 menuText D GInfoDelete "(Ent)Lsche diese Partie" 5 menuText D GInfoMark "(Un)Markiere diese Partie" 4 menuText D GInfoInformant "Informatorwerte konfigurieren" 0 # Main window buttons: helpMsg D .main.fbutton.button.start {Gehe zum Partieanfang (Taste: Pos 1)} helpMsg D .main.fbutton.button.end {Gehe zum Partieende (Taste: Ende)} helpMsg D .main.fbutton.button.back {Gehe einen Zug zurck (Taste: LinksPfeil)} helpMsg D .main.fbutton.button.forward {Gehe einen Zug vor (Taste: RechtsPfeil)} helpMsg D .main.fbutton.button.intoVar {Gehe in Variante (Taste: v)} helpMsg D .main.fbutton.button.exitVar {Verlasse Variante (Taste: z)} helpMsg D .main.fbutton.button.flip {Brett drehen (Taste: .)} helpMsg D .main.fbutton.button.coords {Brettkoordinaten AN oder AUS (Taste: 0)} helpMsg D .main.fbutton.button.stm {Anzeige "Wer ist am Zug" an oder aus} helpMsg D .main.fbutton.button.autoplay {Automatisches Vorspielen (Taste: Strg+Z)} # General buttons: translate D Back {Zurck} translate D Browse {Blttern} translate D Cancel {Abbrechen} translate D Continue {Weiter} translate D Clear {Leeren} translate D Close {Schlieen} translate D Contents {Inhalt} translate D Defaults {Standard} translate D Delete {Lsche} translate D Graph {Grafik} translate D Help {Hilfe} translate D Import {Importieren} translate D Index {Index} translate D LoadGame {Partie laden} translate D BrowseGame {Partie betrachten} translate D MergeGame {Partie zusammenfgen} translate D MergeGames {Partien kombinieren} translate D Preview {Vorschau} ;# Voransicht!? (KDE) translate D Revert {Umkehren} translate D Save {Speichern} translate D Search {Suchen} translate D Stop {Halt} translate D Store {Speichern} translate D Update {Aktualisieren} translate D ChangeOrient {Fensterausrichtung ndern} translate D ShowIcons {Symbole anzeigen} translate D None {Keine} translate D First {Erste} translate D Current {Aktuelle} translate D Last {Letzte} # General messages: translate D game {Partie} translate D games {Partien} translate D move {Zug} translate D moves {Zge} translate D all {Alle} translate D Yes {Ja} translate D No {Nein} translate D Both {Beide} translate D King {Knig} translate D Queen {Dame} translate D Rook {Turm} translate D Bishop {Lufer} translate D Knight {Springer} translate D Pawn {Bauer} translate D White {Wei} translate D Black {Schwarz} translate D Player {Spieler} translate D Rating {Elo} translate D RatingDiff {Elo-Differenz (Wei - Schwarz)} translate D AverageRating {Elo-Durchschnitt} translate D Event {Turnier} translate D Site {Ort} translate D Country {Land} translate D IgnoreColors {Farben ignorieren} translate D Date {Datum} translate D EventDate {Turnierdatum} translate D Decade {Dekade} translate D Year {Jahr} translate D Month {Monat} translate D Months {Januar Februar Mrz April Mai Juni Juli August September Oktober November Dezember} translate D Days {Son Mon Die Mit Don Fre Sam} translate D YearToToday {Ein Jahr zurck} translate D Result {Ergebnis} translate D Round {Runde} translate D Length {Lnge} translate D ECOCode {ECO-Code} translate D ECO {ECO} translate D Deleted {Gelscht} translate D SearchResults {Suchergebnisse} translate D OpeningTheDatabase {Datenbank ffnen} translate D Database {Datenbank} translate D Filter {Filter} translate D noGames {keine Partien} translate D allGames {alle Partien} translate D empty {leer} translate D clipbase {Ablage} translate D score {Punkte} translate D StartPos {Stellung} translate D Total {Summe} translate D readonly {schreibgeschtzt} # Standard error messages: translate D ErrNotOpen {Dies ist keine geffnete Datenbank.} translate D ErrReadOnly \ {Diese Datenbank ist schreibgeschtzt; sie kann nicht gendert werden.} translate D ErrSearchInterrupted \ {Suche wurde unterbrochen; Ergebnisse sind unvollstndig.} # Game information: translate D twin {Dublette} translate D deleted {gelscht} translate D comment {Kommentar} translate D hidden {versteckt} translate D LastMove {letzter Zug} translate D NextMove {nchster Zug} translate D GameStart {Partieanfang} translate D LineStart {Beginn der Zugfolge} translate D GameEnd {Partieende} translate D LineEnd {Ende der Zugfolge} # Player information: translate D PInfoAll {Ergebnisse fr alle Spiele} translate D PInfoFilter {Ergebnisse fr Filter-Spiele} translate D PInfoAgainst {Ergebnisse gegen} translate D PInfoMostWhite {Hufigste Erffnungen als Weier} translate D PInfoMostBlack {Hufigste Erffnungen als Schwarzer} translate D PInfoRating {ELO-Historie} translate D PInfoBio {Biographie} translate D PInfoEditRatings {Editiere Ratings} # Tablebase information: translate D Draw {Remis} translate D stalemate {Patt} translate D withAllMoves {mit allen Zgen} translate D withAllButOneMove {mit allen auer einem Zug} translate D with {mit} translate D only {nur} translate D lose {verlieren} translate D loses {verliert} translate D allOthersLose {alle anderen verlieren} translate D matesIn {setzt Matt in} translate D hasCheckmated {hat Matt gesetzt} translate D longest {lngste} translate D WinningMoves {Gewinnzge} translate D DrawingMoves {Remiszge} translate D LosingMoves {Verlustzge} translate D UnknownMoves {Zge mit unbekanntem Resultat} # Tip of the day: translate D Tip {Tip} translate D TipAtStartup {Tip beim Starten} # Tree window menus: menuText D TreeFile "Datei" 0 menuText D TreeFileFillWithBase "Cache mit Datenbank fllen" 0 {Die Cache-Datei wird mit allen Partien der aktuellen Datenbank befllt.} menuText D TreeFileFillWithGame "Cache mit Partie fllen" 0 {Die Cache-Datei wird mit der aktuellen Partien befllt.} menuText D TreeFileSetCacheSize "Cache Gre" 0 {Cachegre auswhlen.} menuText D TreeFileCacheInfo "Cache info" 0 {Info ber Cachenutzung anzeigen.} menuText D TreeFileSave "Cache-Datei sichern" 12 \ {Speichere die Zugbaum-Cache-Datei (.stc)} menuText D TreeFileFill "Cache-Datei fllen" 12 \ {Flle die Cache-Datei mit hufigen Erffnungspositionen} menuText D TreeFileBest "Beste Partien" 0 \ {Zeige die Liste bester Partien im Baum} menuText D TreeFileGraph "Grafikfenster" 0 \ {Zeige die Grafik fr diesen Ast} menuText D TreeFileCopy "Kopiere Baumfenster in Zwischenablage" 0 \ {Kopiere die Zugbaum-Statistik in die Zwischenablage} menuText D TreeFileClose "Baumfenster schlieen" 12 {Schliee Zugbaum} menuText D TreeMask "Maskieren" 0 menuText D TreeMaskNew "Neu" 0 {Neue Maske anlegen} menuText D TreeMaskOpen "ffnen" 0 {Maske ffnen} menuText D TreeMaskOpenRecent "Aktuelle Masken" 0 {Zuletzt geffnete Masken erneut laden} menuText D TreeMaskSave "Speichern" 0 {Maske speichern} menuText D TreeMaskClose "Schlieen" 0 {Maske schlieen} menuText D TreeMaskFillWithGame "Mit aktueller Partie fllen" 0 {Maske mit der aktuellen Partie fllen} menuText D TreeMaskFillWithBase "Mit Datenbank fllen" 0 {Maske mit Datenbankpartien fllen} menuText D TreeMaskInfo "Info" 0 {Statistik fr die aktuelle Maske anzeigen} menuText D TreeMaskDisplay "Maske als Baum" 0 {Zeigt den Inhalt der aktuellen Maske als Zugbaum} menuText D TreeMaskSearch "Suchen" 0 {Suchen innerhalb der aktuellen Maske} menuText D TreeSort "Sortieren" 0 menuText D TreeSortAlpha "Alphabetisch" 0 menuText D TreeSortECO "ECO-Code" 0 menuText D TreeSortFreq "Hufigkeit" 0 menuText D TreeSortScore "Punkte" 0 menuText D TreeOpt "Optionen" 0 menuText D TreeOptSlowmode "Grndliche Suche" 0 {Update mit hoher Genauigkeit, langsamer} menuText D TreeOptFastmode "Schneller Modus" 0 {Schnelles Update (ignoriert Zugumstellungen)} menuText D TreeOptFastAndSlowmode "Grndlicher und Schneller Modus" 0 {Zunchst schneller Updatemodus, dann nacharbeit im grndlichen Modus} menuText D TreeOptStartStop "Automatisch aktualisieren" 0 {Schaltet das automatische aktualisieren ein/aus} menuText D TreeOptLock "Anbinden" 0 \ {Zugbaum an aktive Datenbank anbinden(/lsen)} menuText D TreeOptTraining "Training" 0 {Trainingsmodus ein-/ausschalten} menuText D TreeOptAutosave "Autom. Cache-Datei sichern" 4 \ {Beim Schlieen des Zugbaums automatisch Cache-Datei sichern} menuText D TreeHelp "Hilfe" 0 menuText D TreeHelpTree "Zugbaumhilfe" 0 menuText D TreeHelpIndex "Index" 0 translate D SaveCache {Cache sichern} translate D Training {Training} translate D LockTree {Anbinden} translate D TreeLocked {angebunden} translate D TreeBest {Beste} translate D TreeBestGames {Beste Zugbaumpartien} # Note: the next message is the tree window title row. After editing it, # check the tree window to make sure it lines up with the actual columns. translate D TreeTitleRow \ { Zug ECO Hufigkeit Pkte Elo Erflg Jahr %Remis} translate D TreeTotal {SUMME} translate D DoYouWantToSaveFirst {Soll zuerst gespeichert werden} translate D AddToMask {Zur Maske hinzufgen} translate D RemoveFromMask {Entferne von Maske} translate D AddThisMoveToMask {Diesen Zug zur Maske hinzufgen} translate D SearchMask {Suche in einer Maske} translate D DisplayMask {Maske als Zugbaum} translate D Nag {NAG Code} translate D Marker {Marker} translate D Include {Einbezogene Variante} translate D Exclude {Ausgeschlossene Variante} translate D MainLine {Hauptvariante} translate D Bookmark {Lesezeichen} translate D NewLine {Neue Variante} translate D ToBeVerified {berprfen} translate D ToTrain {Trainieren} translate D Dubious {Zweifelhaft} translate D ToRemove {Entfernen} translate D NoMarker {Keine Markierung} translate D ColorMarker {Farbe} translate D WhiteMark {Wei} translate D GreenMark {Grn} translate D YellowMark {Gelb} translate D BlueMark {Blau} translate D RedMark {Rot} translate D CommentMove {Zug kommentieren} translate D CommentPosition {Position kommentieren} translate D AddMoveToMaskFirst {Zug zuerst zur Maske hinzufngen} translate D OpenAMaskFileFirst {Zunchst Maske ffnen} translate D Positions {Positionen} translate D Moves {Zge} # Finder window: menuText D FinderFile "Datei" 0 menuText D FinderFileSubdirs "Unterverzeichnisse beachten" 0 menuText D FinderFileClose "Dateifinder schlieen" 0 menuText D FinderSort "Sortieren" 0 menuText D FinderSortType "Typ" 0 menuText D FinderSortSize "Gre" 0 menuText D FinderSortMod "Modifiziert" 0 menuText D FinderSortName "Namen" 0 menuText D FinderSortPath "Pfad" 0 menuText D FinderTypes "Typen" 0 menuText D FinderTypesScid "Scid-Datenbanken" 0 menuText D FinderTypesOld "Datenbanken im alten Format" 0 menuText D FinderTypesPGN "PGN-Dateien" 0 menuText D FinderTypesEPD "EPD-Dateien" 0 menuText D FinderTypesRep "Repertoiredateien" 0 menuText D FinderHelp "Hilfe" 0 menuText D FinderHelpFinder "Dateifinderhilfe" 0 menuText D FinderHelpIndex "Index" 0 translate D FileFinder {Dateifinder} translate D FinderDir {Verzeichnis} translate D FinderDirs {Verzeichnisse} translate D FinderFiles {Dateien} translate D FinderUpDir {hoch} translate D FinderCtxOpen {ffnen} translate D FinderCtxBackup {Sicherungskopie} translate D FinderCtxCopy {Kopieren} translate D FinderCtxMove {Verschieben} translate D FinderCtxDelete {Lschen} # Player finder: menuText D PListFile "Datei" 0 menuText D PListFileUpdate "Aktualisieren" 0 menuText D PListFileClose "Spielerfinder schlieen" 7 menuText D PListSort "Sortieren" 0 menuText D PListSortName "Name" 0 menuText D PListSortElo "Elo" 0 menuText D PListSortGames "Partien" 0 menuText D PListSortOldest "lteste" 0 menuText D PListSortNewest "Neueste" 0 # Tournament finder: menuText D TmtFile "Datei" 0 menuText D TmtFileUpdate "Aktualisieren" 0 menuText D TmtFileClose "Turnierfinder schlieen" 0 menuText D TmtSort "Sortieren" 0 menuText D TmtSortDate "Datum" 0 menuText D TmtSortPlayers "Spieler" 0 menuText D TmtSortGames "Partien" 0 menuText D TmtSortElo "Elo" 0 menuText D TmtSortSite "Ort" 0 menuText D TmtSortEvent "Turnier" 1 menuText D TmtSortWinner "Gewinner" 0 translate D TmtLimit "Listengrenze" translate D TmtMeanElo "Unterster Elo-Durchschnitt" translate D TmtNone "Keine zutreffenden Turniere gefunden." # Graph windows: menuText D GraphFile "Datei" 0 menuText D GraphFileColor "Als Farb-Postscript speichern..." 4 menuText D GraphFileGrey "Als Graustufen-Postscript speichern..." 4 menuText D GraphFileClose "Fenster schlieen" 0 menuText D GraphOptions "Optionen" 0 menuText D GraphOptionsWhite "Wei" 0 menuText D GraphOptionsBlack "Schwarz" 0 menuText D GraphOptionsBoth "Beide" 0 menuText D GraphOptionsPInfo "Spielerinfo Spieler" 1 translate D GraphFilterTitle "Filtergrafik: Hufigkeit pro 1000 Partien" translate D GraphAbsFilterTitle "Filtergrafik: Hufigkeit der Partien" translate D ConfigureFilter "X-Achse fr Jahr, Elo und Zge konfigurieren" translate D FilterEstimate "Schtzen" translate D TitleFilterGraph "Scid: Filtergrafik" # Analysis window: translate D AddVariation {Variante hinzufgen} translate D AddAllVariations {Alle Varianten hinzufgen} translate D AddMove {Zug hinzufgen} translate D Annotate {Autom. kommentieren} translate D ShowAnalysisBoard {Analysebrett anzeigen} translate D ShowInfo {Engine-Information anzeigen} translate D FinishGame {Partie beenden} translate D StopEngine {Engine anhalten} translate D StartEngine {Engine starten} translate D LockEngine {Anbinden an aktuelle Position} translate D AnalysisCommand {Analysebefehl} translate D PreviousChoices {Vorherige Wahl} translate D AnnotateTime {Zeit zwischen den Zgen (in Sek.) einstellen} translate D AnnotateWhich {Varianten hinzufgen} translate D AnnotateAll {Fr Zge beider Seiten} translate D AnnotateAllMoves {Alle Zge kommentieren} translate D AnnotateWhite {Nur fr Zge von Wei} translate D AnnotateBlack {Nur fr Zge von Schwarz} translate D AnnotateBlundersOnly {Wenn der Partiezug ein offensichtlicher Fehler ist} translate D AnnotateBlundersOnlyScoreChange {Analyse berichtet Fehler, Bewertungsnderung von/nach: } translate D BlundersThreshold {Grenze} translate D ScoreAllMoves {Alle Zge validieren} translate D LowPriority {Niedrige CPU-Prioritt} translate D ClickHereToSeeMoves {Hier klicken um Zge anzuzeigen} translate D ConfigureInformant {Informator konfigurieren} translate D Informant!? {Interessanter Zug} translate D Informant? {Schwacher Zug} translate D Informant?? {Fehler} translate D Informant?! {Zweifelhafter Zug} translate D Informant+= {Wei hat leichten Vorteil} translate D Informant+/- {Wei hat migen Vorteil} translate D Informant+- {Wei hat groen Vorteil} translate D Informant++- {Partie wird gewonnen} translate D Book {Buch} translate D OtherBookMoves {Erffnungsbuch des Gegners} translate D OtherBookMovesTooltip {Zge, fr die der Gegner eine Antwort kennt} # Analysis Engine open dialog: translate D EngineList {Analyse-Engines} translate D EngineName {Name} translate D EngineCmd {Befehl} translate D EngineArgs {Parameter} translate D EngineDir {Verzeichnis} translate D EngineElo {Elo} translate D EngineTime {Datum} translate D EngineNew {Neu} translate D EngineEdit {Bearbeiten} translate D EngineRequired {Fettgedruckte Parameter obligatorisch, andere optional} # Stats window menus: menuText D StatsFile "Datei" 0 menuText D StatsFilePrint "Drucken in Datei..." 0 menuText D StatsFileClose "Fenster schlieen" 0 menuText D StatsOpt "Optionen" 0 # PGN window menus: menuText D PgnFile "Datei" 0 menuText D PgnFileCopy "Kopiere Spiel in Zwischenablage" 0 menuText D PgnFilePrint "Drucken in Datei..." 0 menuText D PgnFileClose "PGN-Fenster schlieen" 0 menuText D PgnOpt "Ausgabe" 0 menuText D PgnOptColor "Farbige Darstellung" 0 menuText D PgnOptShort "Kurzer (3-Zeilen) Vorspann (Header)" 8 menuText D PgnOptSymbols "Symbolische Darstellung" 0 menuText D PgnOptIndentC "Kommentare einrcken" 0 menuText D PgnOptIndentV "Varianten einrcken" 0 menuText D PgnOptColumn "Tabellarisch (ein Zug pro Zeile)" 0 menuText D PgnOptSpace "Leerzeichen nach Zugnummer" 0 menuText D PgnOptStripMarks "Farbfelder-/Pfeile-Zeichen entfernen" 27 menuText D PgnOptBoldMainLine "Partiezge in Fettdruck" 0 menuText D PgnColor "Farben" 0 menuText D PgnColorHeader "Vorspann..." 0 menuText D PgnColorAnno "Anmerkungen..." 0 menuText D PgnColorComments "Kommentare..." 0 menuText D PgnColorVars "Varianten..." 0 menuText D PgnColorBackground "Hintergrund..." 0 menuText D PgnColorMain "Partieverlauf..." 0 menuText D PgnColorCurrent "Hintergrund aktueller Zug..." 1 menuText D PgnColorNextMove "Hintergrund nchter Zug..." 0 menuText D PgnHelp "Hilfe" 0 menuText D PgnHelpPgn "PGN-Hilfe" 0 menuText D PgnHelpIndex "Index" 0 translate D PgnWindowTitle {Partienotation - Partie %u} # Crosstable window menus: menuText D CrosstabFile "Datei" 0 menuText D CrosstabFileText "Ausgabe in Textdatei..." 11 menuText D CrosstabFileHtml "Ausgabe in HTML-Datei..." 11 menuText D CrosstabFileLaTeX "Ausgabe in LaTeX-Datei..." 11 menuText D CrosstabFileClose "Kreuztabelle schlieen" 0 menuText D CrosstabEdit "Bearbeiten" 0 menuText D CrosstabEditEvent "Ereignis" 0 menuText D CrosstabEditSite "Ort" 0 menuText D CrosstabEditDate "Datum" 0 menuText D CrosstabOpt "Ausgabe" 0 menuText D CrosstabOptAll "Jeder gegen jeden" 0 menuText D CrosstabOptSwiss "Schweizer System" 0 menuText D CrosstabOptKnockout "K.o.-System" 0 menuText D CrosstabOptAuto "Automatisch" 1 menuText D CrosstabOptAges "Alter in Jahren" 0 menuText D CrosstabOptNats "Nationalitt" 0 menuText D CrosstabOptRatings "Elo" 0 menuText D CrosstabOptTitles "Titel" 0 menuText D CrosstabOptBreaks "Stichkampfpunkte" 10 menuText D CrosstabOptDeleted "Inklusive gelschte Partien" 10 menuText D CrosstabOptColors "Farben (nur Schweizer System)" 0 menuText D CrosstabOptColumnNumbers "Numerierte Spalten (Nur jeder-gegen-jeden-Tabelle)" 2 menuText D CrosstabOptGroup "Punktgruppen" 5 menuText D CrosstabSort "Sortieren" 0 menuText D CrosstabSortName "Name" 0 menuText D CrosstabSortRating "Elo" 0 menuText D CrosstabSortScore "Punkte" 0 menuText D CrosstabColor "Farben" 0 menuText D CrosstabColorPlain "Text" 0 menuText D CrosstabColorHyper "Hypertext" 0 menuText D CrosstabHelp "Hilfe" 0 menuText D CrosstabHelpCross "Kreuztabelle-Hilfe" 0 menuText D CrosstabHelpIndex "Index" 0 translate D SetFilter {Filter setzen} translate D AddToFilter {Zum Filter hinzufgen} translate D Swiss {Schweizer} translate D Category {Kategorie} # Opening report window menus: menuText D OprepFile "Datei" 0 menuText D OprepFileText "Ausgabe in Textdatei..." 11 menuText D OprepFileHtml "Ausgabe in HTML-Datei..." 11 menuText D OprepFileLaTeX "Ausgabe in LaTeX-Datei..." 11 menuText D OprepFileOptions "Optionen..." 0 menuText D OprepFileClose "Berichtsfenster schlieen" 0 menuText D OprepFavorites "Favoriten" 0 menuText D OprepFavoritesAdd "Bericht hinzufgen..." 8 menuText D OprepFavoritesEdit "Favoritenbericht editieren..." 0 menuText D OprepFavoritesGenerate "Berichte erzeugen..." 9 menuText D OprepHelp "Hilfe" 0 menuText D OprepHelpReport "Erffnungsbericht-Hilfe" 0 menuText D OprepHelpIndex "Index" 0 # Repertoire editor: menuText D RepFile "Datei" 0 menuText D RepFileNew "Neu" 0 menuText D RepFileOpen "ffnen..." 0 menuText D RepFileSave "Speichern..." 0 menuText D RepFileSaveAs "Speichern unter..." 10 menuText D RepFileClose "Schlieen" 1 menuText D RepEdit "Bearbeiten" 0 menuText D RepEditGroup "Gruppe hinzufgen" 0 menuText D RepEditInclude "Variante einschlieen" 9 menuText D RepEditExclude "Variante ausschlieen" 9 menuText D RepView "Ansicht" 0 menuText D RepViewExpand "Alle Gruppen aufklappen" 13 menuText D RepViewCollapse "Alle Gruppen zuklappen" 13 menuText D RepSearch "Suchen" 0 menuText D RepSearchAll "Im gesamten Repertoire..." 0 menuText D RepSearchDisplayed "Nur in der aktuellen Variante..." 0 menuText D RepHelp "Hilfe" 0 menuText D RepHelpRep "Repertoire Hilfe" 0 menuText D RepHelpIndex "Index" 0 translate D RepSearch "Repertoire Suche" translate D RepIncludedLines "Eingeschlossene Varianten" translate D RepExcludedLines "Ausgeschlossene Varianten" translate D RepCloseDialog {Dieses Repertoire hat ungesicherte nderungen. Wollen Sie wirklich fortfahren und die nderungen verwerfen? } # Header search: translate D HeaderSearch {Partiedatensuche} translate D EndSideToMove {Wer ist beim Partieende am Zug?} translate D GamesWithNoECO {Partien ohne ECO?} translate D GameLength {Partielnge} translate D FindGamesWith {Finde Partien mit den Markierungen (Flags)} translate D StdStart {Standardausgangsposition} translate D Promotions {Umwandlung} translate D Comments {Kommentare} translate D Variations {Varianten} translate D Annotations {Anmerkungen} translate D DeleteFlag {Lschkennzeichen} translate D WhiteOpFlag {Erffnung Wei} translate D BlackOpFlag {Erffnung Schwarz} translate D MiddlegameFlag {Mittelspiel} translate D EndgameFlag {Endspiel} translate D NoveltyFlag {Neuerung} translate D PawnFlag {Bauernstruktur} translate D TacticsFlag {Taktik} translate D QsideFlag {Damenflgel} translate D KsideFlag {Knigsflgel} translate D BrilliancyFlag {Glnzend} translate D BlunderFlag {Grober Fehler} translate D UserFlag {Benutzer} translate D PgnContains {PGN enthlt Text} translate D Annotator {Kommentator} translate D Cmnts {Kommentare} # Game list window: translate D GlistNumber {Nummer} translate D GlistWhite {Wei} translate D GlistBlack {Schwarz} translate D GlistWElo {W-Elo} translate D GlistBElo {S-Elo} translate D GlistEvent {Turnier} translate D GlistSite {Ort} translate D GlistRound {Runde} translate D GlistDate {Datum} translate D GlistYear {Jahr} translate D GlistEDate {Turnierdatum} translate D GlistResult {Ergebnis} translate D GlistLength {Lnge} translate D GlistCountry {Land} translate D GlistECO {ECO} translate D GlistOpening {Erffnung} translate D GlistEndMaterial {Endmaterial} translate D GlistDeleted {Gelscht} translate D GlistFlags {Markierungen} translate D GlistVars {Varianten} translate D GlistComments {Kommentare} translate D GlistAnnos {Anmerkungen} translate D GlistStart {Stellung} translate D GlistGameNumber {Partie Nummer:} translate D GlistAverageElo {ELO Durchschnitt} translate D GlistRating {Wertungszahl} translate D GlistFindText {Text finden} translate D GlistMoveField {Verschieben} translate D GlistEditField {Konfigurieren} translate D GlistAddField {Hinzufgen} translate D GlistDeleteField {Lschen} translate D GlistWidth {Breite} translate D GlistAlign {Ausrichtung} translate D GlistAlignL {Ausrichtung: links} translate D GlistAlignR {Ausrichtung: rechts} translate D GlistAlignC {Ausrichtung: zentriert} translate D GlistColor {Farbe} translate D GlistSep {Trennlinie} translate D GlistCurrentSep {-- Aktuell --} translate D GlistNewSort {Neu} translate D GlistAddToSort {Hinzufgen} # base sorting translate D GsortSort {Sortieren...} translate D GsortDate {Datum} translate D GsortYear {Jahr} translate D GsortEvent {Event} translate D GsortSite {Ort} translate D GsortRound {Runde} translate D GsortWhiteName {Name Wei} translate D GsortBlackName {Name Schwarz} translate D GsortECO {ECO} translate D GsortResult {Ergebnis} translate D GsortMoveCount {Zahl der Zge} translate D GsortAverageElo {Eloschnitt} translate D GsortCountry {Land} translate D GsortDeleted {Gelscht} translate D GsortEventDate {Event Datum} translate D GsortWhiteElo {ELO Wei} translate D GsortBlackElo {ELO Schwarz} translate D GsortComments {Kommentare} translate D GsortVariations {Varianten} translate D GsortNAGs {NAGs} translate D GsortAscending {Aufsteigend} translate D GsortDescending {Fallend} translate D GsortAdd {Hinzufgen} translate D GsortStore {Speichern} translate D GsortLoad {Laden} # menu shown with right mouse button down on game list. translate D GlistRemoveThisGameFromFilter {Partie aus Filter entfernen} translate D GlistRemoveGameAndAboveFromFilter {Partie (und alle oberhalb) aus Filter entfernen} translate D GlistRemoveGameAndBelowFromFilter {Partie (und alle darunter) aus Filter entfernen} translate D GlistDeleteGame {(Ent)Loesche Partie} translate D GlistDeleteAllGames {Lsche alle Partien im Filter} translate D GlistUndeleteAllGames {Entlsche alle Partien im Filter} translate D GlistMergeGameInBase {Mit Partie in anderer Datebank zusammenfhren} # Maintenance window: translate D DatabaseName {Datenbankname:} translate D TypeIcon {Symbol:} translate D NumOfGames {Partien:} translate D NumDeletedGames {Gelschte Partien:} translate D NumFilterGames {Partien im Filter:} translate D YearRange {Jahr-Spanne:} translate D RatingRange {Elo-Spanne:} translate D Description {Beschreibung} translate D Flag {Markierung} translate D CustomFlags {Benutzerdefinierte Markierungen} translate D DeleteCurrent {Lsche aktuelle Partie} translate D DeleteFilter {Lsche Partien im Filter} translate D DeleteAll {Lsche alle Partien} translate D UndeleteCurrent {Aktuelle Partie wiederherstellen} translate D UndeleteFilter {Partien im Filter wiederherstellen} translate D UndeleteAll {Alle Partien wiederherstellen} translate D DeleteTwins {Lsche Dubletten} translate D MarkCurrent {Markiere aktuelle Partie} translate D MarkFilter {Markiere Partien im Filter} translate D MarkAll {Markiere alle Partien} translate D UnmarkCurrent {Entmarkiere aktuelle Partie} translate D UnmarkFilter {Entmarkiere Partien im Filter} translate D UnmarkAll {Entmarkiere alle Partien} translate D Spellchecking {Schreibkorrektur} translate D Players {Spieler} translate D Events {Ereignis} translate D Sites {Ort} translate D Rounds {Runde} translate D DatabaseOps {Datenbankoperationen} translate D ReclassifyGames {Partien ECO-klassifizieren} translate D CompactDatabase {Datenbank komprimieren} translate D SortDatabase {Datenbank sortieren} translate D AddEloRatings {ELO-Zahlen hinzufgen} translate D AutoloadGame {Automatisch Partie Nr. laden} translate D StripTags {PGN-Markierungen entfernen} translate D StripTag {Markierung entfernen} translate D Cleaner {Bereiniger} translate D CleanerHelp { Der Scid-Bereiniger wird fr die aktuelle Datenbank alle Wartungsarbeiten ausfhren, welche aus der unten stehenden Liste ausgewhlt werden. Aktuelle Einstellungen in den Mens "ECO-Klassifikation" und "Dubletten lschen" werden angewendet, falls diese Funktionen ausgewhlt sind.} translate D CleanerConfirm { Ist der Bereiniger einmal gestartet, kann er nicht mehr unterbrochen werden! Dies kann lange dauern, speziell bei groen Datenbanken, abhngig von den ausgewhlten Funktionen und deren Einstellungen. Sind Sie sicher, da Sie die ausgewhlten Wartungsarbeiten starten mchten? } # Twinchecker translate D TwinCheckUndelete { umdrehen; "u" beide entlschen)} translate D TwinCheckprevPair {Vorheriges Paar} translate D TwinChecknextPair {Nchstes Paar} translate D TwinChecker {Scid: Dublettenprfer} translate D TwinCheckTournament {Partien im Turnier:} translate D TwinCheckNoTwin {Keine Dublette} translate D TwinCheckNoTwinfound {Kein Dublette fr diese Partie gefunden. Um Dubletten anzuzeigen, bitte zuerst die Funktion "Lsche Dubletten" benutzen.} translate D TwinCheckTag {Nutze Tag...} translate D TwinCheckFound1 {Scid hat $result Dubletten gefunden} translate D TwinCheckFound2 { und das Gelscht-Flag gesetzt} translate D TwinCheckNoDelete {In dieser Datenbank sind keine Partien zu lschen.} translate D TwinCriteria1 {Ihre Auswahlkriterien der Dublettensuche haben eine hohe Wahrscheinlichkeit auch Partien mit hnlichen Zgen als Dubletten zu erkennen. } translate D TwinCriteria2 {Es wird empfohlen, dass bei der Auswahl "Nein" fr "gleiche Zge" die Auswahl "Ja" fr Farbe, Ereignis, Ort, Runde, Jahr und Monat ausgewhlt wird. Wollen Sie fortsetzen und mit dieser Auswahl die Dubletten lschen? } translate D TwinCriteria3 {Es wird empfohlen, dass bei der Auswahl "Ja" fr mindestens 2 der Parameter "gleicher Ort", "gleiche Runde" und "gleiches Jahr" gesetzt werden. Wollen Sie fortsetzen und mit dieser Auswahl die Dubletten lschen?} translate D TwinCriteriaConfirm {Scid: Besttigen der Dublettensuchparameter} translate D TwinChangeTag "ndern der folgenden Partie-Tags:\n\n" translate D AllocRatingDescription "Mit dieser Funktion werden die ELO-Werte aus der Schreibkorrekturdatei den Partien hinzugefgt. Der Wert wird hinzugefgt, wenn ein/e Spieler/in keinen aktuellen Wert in der Partie besitzt, aber in der Korrekturdatei ein Wert fr den Zeitraum der Partie vorhanden ist." translate D RatingOverride "Existierende ELO-Werte berschreiben?" translate D AddRatings "Elo-Werte hinzufgen:" translate D AddedRatings {Scid hat $r Elo-Werte in $g Partien hinzugefgt.} #Bookmark editor translate D NewSubmenu "Neues Untermen" # Comment editor: translate D AnnotationSymbols {Kommentarzeichen:} translate D Comment {Kommentar:} translate D InsertMark {Markierung einfgen} translate D InsertMarkHelp { Markierung einfgen/lschen: Farbe, Typ, Feld whlen. Pfeil einfgen/lschen: Rechtsklick auf zwei Felder. } # Nag buttons in comment editor: translate D GoodMove {Guter Zug} translate D PoorMove {Schwacher Zug} translate D ExcellentMove {Ausgezeichneter Zug} translate D Blunder {Grober Fehler} translate D InterestingMove {Interessanter Zug} translate D DubiousMove {Zweifelhafter Zug} translate D WhiteDecisiveAdvantage {Wei hat Vorteil} translate D BlackDecisiveAdvantage {Schwarz hat Vorteil} translate D WhiteClearAdvantage {Wei hat klaren Vorteil} translate D BlackClearAdvantage {Schwarz hat klaren Vorteil} translate D WhiteSlightAdvantage {Wei hat leichten Vorteil} translate D BlackSlightAdvantage {Schwarz hat leichten Vorteil} translate D Equality {Gleiche Chancen} translate D Unclear {Unklar} translate D Diagram {Diagramm} # Board search: translate D BoardSearch {Brettsuchen} translate D FilterOperation {Durchfhrung am aktuellen Filter:} translate D FilterAnd {UND (Beschrnke Filter)} translate D FilterOr {ODER (Zum Filter hinzufgen)} translate D FilterIgnore {IGNORIERE (Filter zurcksetzen)} translate D SearchType {Suche nach Typ:} translate D SearchBoardExact {Exakte Position (alle Steine auf gleichen Feldern)} translate D SearchBoardPawns {Bauern (gleiche Figuren, alle Bauern auf gleichen Feldern)} translate D SearchBoardFiles {Linien (gleiches Material, alle Bauern auf gleichen Linien)} translate D SearchBoardAny {Material (gleiches Material, Bauern und Figuren beliebig)} translate D SearchInRefDatabase { In folgender Datenbank suchen } translate D LookInVars {Schaue in Varianten} # Material search: translate D MaterialSearch {Materialsuchen} translate D Material {Material} translate D Patterns {Muster} translate D Zero {Null} translate D Any {Irgendeine} translate D CurrentBoard {Aktuelle Stellung} translate D CommonEndings {Endspiele} translate D CommonPatterns {Gleiche Muster} translate D MaterialDiff {Materialdifferenz} translate D squares {Felder} translate D SameColor {Gleichfarbige} translate D OppColor {Ungleichfarbige} translate D Either {Beides} translate D MoveNumberRange {Zugnummernbereich} translate D MatchForAtLeast {Zutreffend fr mindestens} translate D HalfMoves {Halbzge} # Common endings in material search: translate D EndingPawns {Bauernendspiele} translate D EndingRookVsPawns {Turm gegen Bauer(n)} translate D EndingRookPawnVsRook {Turm und 1 Bauer gegen Turm} translate D EndingRookPawnsVsRook {Turm und Bauer(n) gegen Turm} translate D EndingRooks {Turm gegen Turm} translate D EndingRooksPassedA {Turm gegen Turm mit Freibauer} translate D EndingRooksDouble {Doppelturm-Endspiele} translate D EndingBishops {Lufer gegen Lufer} translate D EndingBishopVsKnight {Lufer gegen Springer} translate D EndingKnights {Springer gegen Springer} translate D EndingQueens {Dame gegen Dame} ;# *** Damenendspiele !? translate D EndingQueenPawnVsQueen {Dame und 1 Bauer gegen Dame} translate D BishopPairVsKnightPair {Zwei Lufer gegen zwei Springer im Mittelspiel} # Common patterns in material search: translate D PatternWhiteIQP {Weier isolierter Damenbauer} translate D PatternWhiteIQPBreakE6 {Weier Isolani: Durchbruch d4-d5 gegen e6} translate D PatternWhiteIQPBreakC6 {Weier Isolani: Durchbruch d4-d5 gegen c6} translate D PatternBlackIQP {Schwarzer isolierter Damenbauer} translate D PatternWhiteBlackIQP {Weier gegen schwarzer Damenbauerisolani} translate D PatternCoupleC3D4 {Isoliertes Bauernpaar c3+d4} translate D PatternHangingC5D5 {Hngende Bauern c5 und d5 von Schwarz} translate D PatternMaroczy {Maroczy-Zentrum (mit Bauern auf c4 und e4)} translate D PatternRookSacC3 {Turmopfer auf c3} translate D PatternKc1Kg8 {0-0-0 gegen 0-0 (Kc1 gegen Kg8)} translate D PatternKg1Kc8 {0-0 gegen 0-0-0 (Kg1 gegen Kc8)} translate D PatternLightFian {Weifeldrige Fianchettos (Lufer g2 gegen Lufer b7)} translate D PatternDarkFian {Schwarzfeldrige Fianchettos (Lufer b2 gegen Lufer g7)} translate D PatternFourFian {Beiderseitiges Doppelfianchetto (Lufer auf b2,g2,b7,g7)} # Game saving: translate D Today {Heute} translate D ClassifyGame {Partie klassifizieren} # Setup position: translate D EmptyBoard {Brett leeren} translate D InitialBoard {Initialisiere Brett} translate D SideToMove {Zugrecht} translate D MoveNumber {Zugnummer} translate D Castling {Rochade} translate D EnPassantFile {EnPassant-Linie} translate D ClearFen {FEN lschen} translate D PasteFen {FEN einfgen} translate D SaveAndContinue {Speichern und Weiter} translate D DiscardChangesAndContinue {Verwerfen und weiter} translate D GoBack {Zurck} # Replace move dialog: translate D ReplaceMove {Zug ersetzen} translate D AddNewVar {Neue Variante} translate D NewMainLine {Neue Hauptvariante} translate D ReplaceMoveMessage {Hier existiert bereits ein Zug. Sie knnen diesen Zug ersetzen - unter Verlust aller nachfolgender Zge - oder mit dem Zug eine neue Variante hinzufgen. (Sie knnen diese Anzeige vermeiden, indem Sie die Option "Fragen vor Ersetzen" im Men Optionen:Zge deaktivieren)} # Make database read-only dialog: translate D ReadOnlyDialog {Wenn Sie diese Datenbank mit Schreibschutz versehen, sind keine nderungen mglich. Es knnen keine Partien gespeichert oder ersetzt und keine Lschkennzeichen gendert werden. Alle Sortierungen oder ECO-Klassifikationsergebnisse sind nur temporr. Sie knnen den Schreibschutz einfach entfernen, indem Sie die Datenbank schlieen und wieder ffnen. Wollen Sie diese Datenbank wirklich schreibschtzen?} # Clear game dialog: translate D ClearGameDialog {Diese Partie wurde gendert. Wollen Sie wirklich fortsetzen und die nderungen verwerfen? } # Exit dialog: translate D ExitDialog {Mchten Sie Scid beenden?} translate D ExitUnsaved {Die folgenden Datenbanken haben ungesicherte Partienderungen. Wenn Sie jetzt beenden, gehen diese nderungen verloren.} # Import window: translate D PasteCurrentGame {Aktuelle Partie einfgen} translate D ImportHelp1 {Eingeben oder Einfgen einer Partie im PGN-Format in den oberen Rahmen.} translate D ImportHelp2 {Hier werden Fehler beim Importieren angezeigt.} translate D OverwriteExistingMoves {Bestehende Zge berschreiben?} # ECO Browser: translate D ECOAllSections {alle ECO-Gruppen} translate D ECOSection {ECO-Gruppe} translate D ECOSummary {Zusammenfassung fr} translate D ECOFrequency {Hufigkeit der Untercodes fr} # Opening Report: translate D OprepTitle {Erffnungsbericht} translate D OprepReport {Bericht} translate D OprepGenerated {Erzeugt durch} translate D OprepStatsHist {Statistiken und Geschichte} translate D OprepStats {Statistiken} translate D OprepStatAll {Alle Berichtspartien} translate D OprepStatBoth {Beide Spieler} translate D OprepStatSince {Nach} translate D OprepOldest {lteste Partien} translate D OprepNewest {Neueste Partien} translate D OprepPopular {Popularitt} translate D OprepFreqAll {Hufigkeit in allen Jahren: } translate D OprepFreq1 {im letzten Jahr: } translate D OprepFreq5 {der letzten 5 Jahre: } translate D OprepFreq10 {der letzten 10 Jahre: } translate D OprepEvery {Eine pro %u Partien} translate D OprepUp {mehr als %u%s von allen Jahren} translate D OprepDown {weniger als %u%s von allen Jahren} translate D OprepSame {keine nderung in allen Jahren} translate D OprepMostFrequent {Hufigste Spieler} translate D OprepMostFrequentOpponents {Hufigste Gegner} translate D OprepRatingsPerf {ELO und Performance} translate D OprepAvgPerf {Durchschnitts-ELO und Performance} translate D OprepWRating {ELO Wei} translate D OprepBRating {ELO Schwarz} translate D OprepWPerf {Performance Wei} translate D OprepBPerf {Performance Schwarz} translate D OprepHighRating {Spiele mit dem hchsten ELO-Durchschnitt} translate D OprepTrends {Ergebnistrend} translate D OprepResults {Ergebnis nach Lngen und Hufigkeiten} translate D OprepLength {Partielnge} translate D OprepFrequency {Hufigkeit} translate D OprepWWins {Weisiege: } translate D OprepBWins {Schwarzsiege: } translate D OprepDraws {Remis: } translate D OprepWholeDB {ganze Datenbank} translate D OprepShortest {Krzester Sieg} translate D OprepMovesThemes {Zge und Themen} translate D OprepMoveOrders {Zugfolgen zum Erreichen der Berichtsposition} translate D OprepMoveOrdersOne \ {Es gab nur eine Zugfolge zur erreichten Position:} translate D OprepMoveOrdersAll \ {Es gab %u Zugfolgen zur erreichten Position:} translate D OprepMoveOrdersMany \ {Es gab %u Zugfolgen zur erreichten Position. Die ersten %u sind:} translate D OprepMovesFrom {Zge ab der Berichtsposition} translate D OprepMostFrequentEcoCodes {Hufigste ECO-Codes} translate D OprepThemes {Themen} translate D OprepThemeDescription {Hufigkeit der Themen in den ersten %u Zgen jeder Partie} translate D OprepThemeSameCastling {Gleichseitige Rochaden} translate D OprepThemeOppCastling {Verschiedenseitige Rochaden} translate D OprepThemeNoCastling {Beide Seiten unrochiert} translate D OprepThemeKPawnStorm {Bauernsturm auf Knig} translate D OprepThemeQueenswap {Damen getauscht} translate D OprepThemeWIQP {Weier isolierter Damenbauer} translate D OprepThemeBIQP {Schwarzer isolierter Damenbauer} translate D OprepThemeWP567 {Weier Bauer auf Reihe 5/6/7} translate D OprepThemeBP234 {Schwarzer Bauer auf Reihe 2/3/4} translate D OprepThemeOpenCDE {Offene c/d/e-Linie} translate D OprepTheme1BishopPair {Eine Seite hat Luferpaar} translate D OprepEndgames {Endspiele} translate D OprepReportGames {Berichtspartien} translate D OprepAllGames {Alle Partien} translate D OprepEndClass {Materialklassifikation von Endspielstellungen} translate D OprepTheoryTable {Theorietabelle} translate D OprepTableComment {Erzeugt aus %u Partien mit hchster ELO-Zahl.} translate D OprepExtraMoves {Zustzliche Zge in Anmerkungen zur Theorietabelle} translate D OprepMaxGames {Maximum an Partien in Theorietabelle} translate D OprepViewHTML {Zeige HTML} translate D OprepViewLaTeX {Zeige LaTeX} # Player Report: translate D PReportTitle {Spielerbericht} translate D PReportColorWhite {mit den weien Steinen} translate D PReportColorBlack {mit den schwarzen Steinen} translate D PReportMoves {nach %s} translate D PReportOpenings {Erffnungen} translate D PReportClipbase {Leere Zwischenablage und kopiere gefundene Spiele} # Piece Tracker window: translate D TrackerSelectSingle {Linke Maustaste whlt diese Figur.} translate D TrackerSelectPair \ {Linke Maustaste whlt diese Figur; rechte Maustaste whlt das Figurenpaar.} translate D TrackerSelectPawn \ {Linke Maustaste whlt diesen Bauern; rechte Maustaste whlt alle 8 Bauern.} translate D TrackerStat {Statistik} translate D TrackerGames {% der Partien mit Zug auf das Feld} translate D TrackerTime {% der Zeit auf jedem Feld} translate D TrackerMoves {Zge} translate D TrackerMovesStart \ {Zugnummer, ab der die Verteilungsberechnung beginnen soll.} translate D TrackerMovesStop \ {Zugnummer, wo die Verteilungsberechnung enden soll.} # Game selection dialogs: translate D SelectAllGames {Alle Spiele in der Datenbank} translate D SelectFilterGames {Nur Spiele im Filter} translate D SelectTournamentGames {Nur Spiele des aktuellen Turniers} translate D SelectOlderGames {Nur ltere Spiele} # Delete Twins window: translate D TwinsNote {Damit zwei Spiele Dubletten sind, mssen diese mindestens die beiden selben Spieler haben und die folgenden Kriterien, die Sie auswhlen knnen, erfllen. Wenn zwei Dubletten gefunden werden, so wird die krzere der beiden Spiele gelscht. Tip: am besten fhrt man erst eine Schreibkorrektur durch, da dadurch das Finden von Dubletten verbessert wird.} translate D TwinsCriteria {Kriterium: Dubletten mssen haben ...} translate D TwinsWhich {berprfe, welche Spiele} translate D TwinsColors {die gleichen Spielerfarben?} translate D TwinsEvent {das gleich Ereignis?} translate D TwinsSite {den gleichen Ort?} translate D TwinsRound {die gleiche Runde?} translate D TwinsYear {das gleiche Jahr?} translate D TwinsMonth {den gleichen Monat?} translate D TwinsDay {den gleichen Tag?} translate D TwinsResult {das gleiche Ergebnis?} translate D TwinsECO {den gleichen ECO-Code?} translate D TwinsMoves {die gleichen Zge?} translate D TwinsPlayers {Vergleich Spielernamen} translate D TwinsPlayersExact {Exakte Treffer} translate D TwinsPlayersPrefix {Nur erste 4 Buchstaben} translate D TwinsWhen {Beim Lschen der Dubletten} translate D TwinsSkipShort {Partien unter 5 Zgen ignorieren?} translate D TwinsUndelete {Zuerst alle Partien entlschen?} translate D TwinsSetFilter {Filter auf Dubletten setzen?} translate D TwinsComments {Spiele mit Kommentar immer behalten?} translate D TwinsVars {Spiele mit Varianten immer behalten?} translate D TwinsDeleteWhich {Welche Partie lschen:} translate D TwinsDeleteShorter {Krzere Partie} translate D TwinsDeleteOlder {Kleinere Partienummer} translate D TwinsDeleteNewer {Grere Partienummer} translate D TwinsDelete {Lsche Spiele} # Name editor window: translate D NameEditType {Namen ndern von} translate D NameEditSelect {Welche Spiele sollen gendert werden?} translate D NameEditReplace {Ersetze} translate D NameEditWith {durch} translate D NameEditMatches {Entsprechungen: Drcke Strg+1 bis Strg+9 zum Auswhlen} translate D CheckGames {Konsistenzprfung} translate D CheckGamesWhich {Konsistenzprfung} translate D CheckAll {Alle Partien} translate D CheckSelectFilterGames {Partien im Filter} # Classify window: translate D Classify {Klassifiziere} translate D ClassifyWhich {ECO-klassifizieren} translate D ClassifyAll {Alle Spiele (berschreibe alte ECO-Codes)} translate D ClassifyYear {Alle Spiele aus dem letzten Jahr} translate D ClassifyMonth {Alle Spiele aus dem letzten Monat} translate D ClassifyNew {Nur Spiele ohne ECO-Code} translate D ClassifyCodes {Verwende} translate D ClassifyBasic {Normale ECO-Codes ("B12", ...)} translate D ClassifyExtended {ECO-Codes mit Scid-Erweiterung ("B12j", ...)} # Compaction: translate D NameFile {Namendatenbank} translate D GameFile {Partiendatenbank} translate D Names {Namen} translate D Unused {Unbenutzt} translate D SizeKb {Gre (kB)} translate D CurrentState {Momentaner Stand} translate D AfterCompaction {nach Kompression} translate D CompactNames {Komprimiere Namen} translate D CompactGames {Komprimiere Partien} translate D NoUnusedNames "Es gibt keine unbenutzen Namen, die Namensdatei ist vollstndig komprimiert." translate D NoUnusedGames "Die Partiedatei ist vollstndig komprimiert." translate D NameFileCompacted {Die Namesdatei der Datenbank "[file tail [sc_base filename]]" wurde komprimiert.} translate D GameFileCompacted {Die Partiedatei der Datenbank "[file tail [sc_base filename]]" wurde komprimiert.} # Sorting: translate D SortCriteria {Kriterium} translate D AddCriteria {Fge Sortierkriterium hinzu} translate D CommonSorts {bliche Sortierkriterien} translate D Sort {Sortiere} # Exporting: translate D AddToExistingFile {Anhngen an eine bestehende Datei?} translate D ExportComments {Kommentare exportieren?} translate D ExportVariations {Varianten exportieren?} translate D IndentComments {Kommentare einrcken?} translate D IndentVariations {Varianten einrcken?} translate D ExportColumnStyle {Tabellarisch (ein Zug pro Zeile)?} translate D ExportSymbolStyle {Symbolische Notation:} translate D ExportStripMarks \ {Felder-/Pfeilemarkierzeichen aus den Kommentaren entfernen?} # Goto game/move dialogs: translate D LoadGameNumber {Geben Sie die zu ladende Spielnr. ein:} translate D GotoMoveNumber {Gehe zu Zugnr.:} # Copy games dialog: translate D CopyGames {Kopiere Spiele} translate D CopyConfirm { Mchten sie wirklich die [::utils::thousands $nGamesToCopy] Spiele aus dem Filter in der Datenbank "$fromName" in die Datenbank "$targetName" kopieren? } translate D CopyErr {Kann Spiele nicht kopieren} translate D CopyErrSource {Die Quelldatenbank} translate D CopyErrTarget {Die Zieldatenbank} translate D CopyErrNoGames {hat keine Spiele im Filter} translate D CopyErrReadOnly {ist schreibgeschtzt} translate D CopyErrNotOpen {ist nicht geffnet} # Colors: translate D LightSquares {Helle Felder} translate D DarkSquares {Dunkle Felder} translate D SelectedSquares {Ausgewhlte Felder} translate D SuggestedSquares {Zugvorschlagsfelder} translate D WhitePieces {Weie Steine} translate D BlackPieces {Schwarze Steine} translate D WhiteBorder {Weie Umrandung} translate D BlackBorder {Schwarze Umrandung} # Novelty window: translate D FindNovelty {Finde Neuerung} translate D Novelty {Neuerung} translate D NoveltyInterrupt {Neuerungensuche abgebrochen} translate D NoveltyNone {In dieser Partie wurde keine Neuerung gefunden} translate D NoveltyHelp { Scid wird den ersten Zug aus der aktuellen Partie finden, welcher zu einer Position fhrt, die nicht in der gewhlten Datenbank oder in dem ECO-Erffnungsbuch enthalten ist. } # Sounds configuration: translate D SoundsFolder {Sounddateien-Verzeichnis} translate D SoundsFolderHelp {Das Verzeichnis sollte enthalten: King.wav, a.wav, 1.wav etc.} translate D SoundsAnnounceOptions {Optionen fr Zugankndigung} # *** Ist das so gemeint? Ich kann's nicht ausprobieren (keine Soundkarte...). translate D SoundsAnnounceNew {Kndige neue Zge an, wenn sie ausgefhrt werden} translate D SoundsAnnounceForward {Knde Zug an beim Vorwrtspielen} translate D SoundsAnnounceBack {Kndige Zug an beim Zurckgehen} # Upgrading databases: translate D Upgrading {Upgrading} translate D ConfirmOpenNew { Dies ist eine Datenbank im alten (Scid 3.x) Format, die nicht in Scid 4.x geffnet werden kann. Aber eine Version im neuen Format wurde schon erstellt. Wollen Sie die Version der Datenbank im neuen Format ffnen? } translate D ConfirmUpgrade { Dies ist eine Datenbank im alten (Scid 3.x) Format. Vor der Verwendung in Scid 4 mu eine Version im neuen Format der Datenbank erstellt werden. Beim Erstellen der neuen Version der Datenbank bleiben die Dateien der alten Version erhalten. Dieser Vorgang kann eine Zeitlang dauern, mu aber nur einmal durchgefhrt werden. Sie knnen jederzeit abbrechen, wenn es Ihnen zu lange dauert. Soll das Erstellen der Datenbank im neuen Format jetzt durchgefhrt werden? } # Recent files options: translate D RecentFilesMenu {Anzahl der aktuellen Dateien im Dateimen} translate D RecentFilesExtra {Anzahl der aktuellen Dateien im zustzlichen Untermen} # My Player Names options: translate D MyPlayerNamesDescription { Geben Sie unten eine Liste der bevorzugten Spielernamen ein, ein Name pro Zeile. Platzhalterzeichen (z.B. "?" fr ein beliebiges einzelnes Zeichen, "*" fr jede beliebige Folge von Zeichen) sind erlaubt. Jedesmal, wenn ein Spiel mit einem aufgelisteten Spielernamen geladen wird, wird das Schachbrett im Hauptfenster erforderlichenfalls gedreht, um das Spiel aus der Sicht des betreffenden Spielers zu zeigen. } translate D showblunderexists {Enginefehler anzeigen} translate D showblundervalue {Fehlerwert anzeigen} translate D showscore {Wert anzeigen} translate D coachgame {Coach Partie} translate D configurecoachgame {Trainingspartie konfigurieren} translate D configuregame {Spiel konfigurieren} translate D Phalanxengine {Phalanx engine} translate D Coachengine {Coach Engine} translate D difficulty {Schwierigkeit} translate D hard {schwer} translate D easy {leicht} translate D Playwith {Spiel mit} translate D white {Wei} translate D black {Schwarz} translate D both {beide} translate D Play {Spielen} translate D Noblunder {Kein Fehler} translate D blunder {Fehler} translate D Noinfo {-- Keine Info --} translate D PhalanxOrTogaMissing {Phalanx oder Toga nicht gefunden!} translate D moveblunderthreshold {fehlerhafter Zug, wenn Verlust grer als} translate D limitanalysis {Analysezeit der Engine begrenzen} translate D seconds {Sekunden} translate D Abort {Abbrechen} translate D Resume {Fortfahren} translate D OutOfOpening {Ende der Erffnung} translate D NotFollowedLine {You did not follow the line} translate D DoYouWantContinue {Mchten sie fortfahren?} translate D CoachIsWatching {Coach schaut zu} translate D Ponder {Berechnen im Hintergrund} translate D LimitELO {Strke begrenzen (ELO)} translate D DubiousMovePlayedTakeBack {Zweifelhafter Zug gespielt, wollen Sie ihn zurcknehmen?} translate D WeakMovePlayedTakeBack {Schacher Zug gespielt, wollen Sie ihn zurcknehmen?} translate D BadMovePlayedTakeBack {Schlechter Zug gespielt, wollen Sie ihn zurcknehmen?} translate D Iresign {Ich gebe auf} translate D yourmoveisnotgood {Ihr Zug ist nicht gut} translate D EndOfVar {Variantenende} translate D Openingtrainer {Erffnungstrainer} translate D DisplayCM {Kandidatenzge anzeigen} translate D DisplayCMValue {Wert der Kandidatenzge anzeigen} translate D DisplayOpeningStats {Statistik anzeigen} translate D ShowReport {Bericht anzeigen} translate D NumberOfGoodMovesPlayed {gute Zge gespielt} translate D NumberOfDubiousMovesPlayed {zweischneidige Zge gespielt} translate D NumberOfMovesPlayedNotInRepertoire {Zge auerhalb des Repertoirs gespielt} translate D NumberOfTimesPositionEncountered {Wiederholungen der Position} translate D PlayerBestMove {Nur beste Zge erlauben} translate D OpponentBestMove {Gegner spielt besten Zug} translate D OnlyFlaggedLines {Nur markierte Linien} translate D resetStats {Statistik zurcksetzen} translate D Repertoiretrainingconfiguration {Konfiguration Trainingsrepertoire} translate D Loadingrepertoire {Lade Repertoire} translate D Movesloaded {Zge geladen} translate D Repertoirenotfound {Repertoire nicht gefunden} translate D Openfirstrepertoirewithtype {Zuerst eine Erffnungsdatenbank mit entsprechendem Type/Icon ffnen.} translate D Movenotinrepertoire {Zug nicht im Repertoire} translate D PositionsInRepertoire {Positionen im Repertoire} translate D PositionsNotPlayed {nicht gespielte Positionen} translate D PositionsPlayed {gespielte Positionen} translate D Success {Erfolgreich} translate D DubiousMoves {Zweifelhafte Zge} translate D OutOfRepertoire {Nicht im Repertoire} translate D ConfigureTactics {Taktik konfigurieren} translate D ResetScores {Punkte zurcksetzten} translate D LoadingBase {Lade Datenbank} translate D Tactics {Taktik} translate D ShowSolution {Lsung zeigen} translate D NextExercise {Nchste Aufgabe} translate D PrevExercise {Vorherige Aufgabe} translate D StopTraining {Training beenden} translate D Next {Nchste} translate D ResettingScore {Punkte zurcksetzen} translate D LoadingGame {Lade Partie} translate D MateFound {Matt gefunden} translate D BestSolutionNotFound {Beste Lsung NICHT gefunden!} translate D MateNotFound {Matt nicht gefunden} translate D ShorterMateExists {Krzeres Matt existiert} translate D ScorePlayed {Bewertung gepielt} translate D Expected {erwarted} translate D ChooseTrainingBase {Trainingsdatenbank auswhlen} translate D Thinking {Denke...} translate D AnalyzeDone {Analyse beendet} translate D WinWonGame {Gewinne gewonnene Partie} translate D Lines {Variantenzahl} translate D ConfigureUCIengine {UCI Engine konfigurieren} translate D SpecificOpening {Ausgewhlte Erffnung} translate D StartNewGame {Neue Partie} translate D FixedLevel {Festgelegte Strke} translate D Opening {Erffnung} translate D RandomLevel {Zufallsniveau} translate D StartFromCurrentPosition {Von aktueller Position starten} translate D FixedDepth {Feste Tiefe} translate D Nodes {Knoten} translate D Depth {Tiefe} translate D Time {Zeit} translate D SecondsPerMove {Sekunden pro Zug} translate D Engine {Engine} translate D TimeMode {Zeitmodus} translate D TimeBonus {Zeit + Bonus} translate D TimeMin {min} translate D TimeSec {s} translate D AllExercisesDone {Alle bungen gemacht} translate D MoveOutOfBook {Zug nicht mehr im Buch} translate D LastBookMove {Letzter Buchzug} translate D AnnotateSeveralGames {Kommentiere mehrere Partien\nvon aktueller bis:} translate D FindOpeningErrors {Erffnungsfehler finden} translate D MarkTacticalExercises {Taktische bungen markieren} translate D UseBook {Buch benutzen} translate D MultiPV {Multivariantenmodus} translate D Hash {Hash Speicher} translate D OwnBook {Engine Buch verwenden} translate D BookFile {Erffnungsbuch} translate D AnnotateVariations {Varianten kommentieren} translate D ShortAnnotations {Kurze Kommentare} translate D addAnnotatorTag {Kommentar Tag hinzufgen} translate D AddScoreToShortAnnotations {Bewertung hinzufgen} translate D Export {Export} translate D BookPartiallyLoaded {Buch teilweise geladen} translate D Calvar {Training: Variantenberechnung} translate D ConfigureCalvar {Konfiguration} translate D Reti {Reti} translate D English {Englische Erffnung} translate D d4Nf6Miscellaneous {1.d4 Nf6 Verschiedene} translate D Trompowsky {Trompowsky} translate D Budapest {Budapest} translate D OldIndian {Altindische Verteidigung} translate D BenkoGambit {Benko Gambit} translate D ModernBenoni {Moderne/Benoni-Verteidigung} translate D DutchDefence {Hollndische Verteidigung} translate D Scandinavian {Skandinavische Verteidigung} translate D AlekhineDefence {Aljechin Verteidigung} translate D Pirc {Pirc-Verteidigung} translate D CaroKann {Caro-Kann} translate D CaroKannAdvance {Caro-Kann Vorstovariante} translate D Sicilian {Sizilianisch} translate D SicilianAlapin {Sizilianisch, Alapin Variante} translate D SicilianClosed {Geschlossene Sizilianische Verteidigung} translate D SicilianRauzer {Sizilianisch, Rauzer Angriff} translate D SicilianDragon {Sizilianisch, Drachenvariante} translate D SicilianScheveningen {Sizilianisch, Scheveningen} translate D SicilianNajdorf {Sizilianisch, Najdorf} translate D OpenGame {Offene Spiele} translate D Vienna {Wiener Verteidigung} translate D KingsGambit {Knigsgambit} translate D RussianGame {Russische Verteidigung} translate D ItalianTwoKnights {Italienische Erffnung} translate D Spanish {Spanisch Partie} translate D SpanishExchange {Spanisch, Abtauschvariante} translate D SpanishOpen {Spanisch, offene Systeme} translate D SpanishClosed {Spanisch, geschlossene Systeme} translate D FrenchDefence {Franzsische Verteidigung} translate D FrenchAdvance {Franzsisch, Vorstovariante} translate D FrenchTarrasch {Franzsisch, Tarrasch} translate D FrenchWinawer {Franzsisch, Winawer} translate D FrenchExchange {Franzsisch, Abtauschvariante} translate D QueensPawn {Damenbauernspiel} translate D Slav {Slavisch} translate D QGA {Angenommenes Damengambit} translate D QGD {Abgelehntes Damengambit} translate D QGDExchange {Abgelehntes Damengambit, Abtauschvariante} translate D SemiSlav {Semi-Slawisch} translate D QGDwithBg5 {Abgelehntes Damengambit mit Lg5} translate D QGDOrthodox {Abgelehntes Damengambit, Orthodoxe Variante} translate D Grunfeld {Grnfeld-Verteidigung} translate D GrunfeldExchange {Grnfeld, Abtauschvariante} translate D GrunfeldRussian {Grnfeld-Verteidigung, Russische Variante} translate D Catalan {Katalanische Verteidigung} translate D CatalanOpen {Katalanisch, offen} translate D CatalanClosed {Katalanisch, geschlossen} translate D QueensIndian {Dameninsche Verteidigung} translate D NimzoIndian {Nimzoindische Verteidigung} translate D NimzoIndianClassical {Nimzoindisch, Klassische Variante} translate D NimzoIndianRubinstein {Nimzoinsisch, Rubinstein} translate D KingsIndian {Knigsindische Verteidigung} translate D KingsIndianSamisch {Knigsinsisch, Smisch} translate D KingsIndianMainLine {Knigsinsisch, Hauptvariante} translate D ConfigureFics {FICS Konfigurieren} translate D FICSGuest {Gastlogin} translate D FICSServerPort {Serverport} translate D FICSServerAddress {IP Adresse} translate D FICSRefresh {Aktualisieren} translate D FICSTimesealPort {Timeseal Port} translate D FICSSilence {Konsolenfilter} translate D FICSOffers {Herausforderungen} translate D FICSConsole {Konsole} translate D FICSGames {laufende Partien} translate D FICSUnobserve {Beobachtung abbrechen} translate D FICSProfile {Eigenes Profil ausgeben} translate D FICSRelayedGames {bertragene Partien} translate D FICSFindOpponent {Gegner suchen} translate D FICSTakeback {Zurcknehmen} translate D FICSTakeback2 {2 zurcknehmen} translate D FICSInitTime {Zeit (min)} translate D FICSIncrement {Inkrement (s)} translate D FICSRatedGame {Wertungspartie} translate D FICSAutoColour {automatisch} translate D FICSManualConfirm {manuell besttigen} translate D FICSFilterFormula {Filterformel anwenden} translate D FICSIssueSeek {Partie anbieten} translate D FICSChallenge {Herausfordern} translate D FICSAccept {Annehmen} translate D FICSDecline {Ablehnen} translate D FICSColour {Seite whlen:} translate D FICSSend {senden} translate D FICSConnect {Verbinden} translate D FICSdefaultuservars {Standardvariablen verwenden} translate D FICSObserveconfirm {Besttige Beobachtung der Partie} translate D GameReview {Partieanalyse} translate D GameReviewTimeExtended {Lange Bedenkzeit} translate D GameReviewMargin {Fehlergrenze} translate D GameReviewAutoContinue {Bei korrektem Zug Automatisch weiter} translate D GameReviewReCalculate {Verwende lange Bedenkzeit} translate D GameReviewAnalyzingMovePlayedDuringTheGame {Analysiere den Partiezug} translate D GameReviewAnalyzingThePosition {Analysiere Stellung} translate D GameReviewEnterYourMove {Zug eingeben} translate D GameReviewCheckingYourMove {berprfe Antwort} translate D GameReviewYourMoveWasAnalyzed {Antwort wurde analysiert} translate D GameReviewYouPlayedSameMove {Identischer Zug zur Partie} translate D GameReviewScoreOfYourMove {Wertung des Antwortzuges} translate D GameReviewGameMoveScore {Wertung des Partiezuges} translate D GameReviewEngineScore {Bewertung der Engine} translate D GameReviewYouPlayedLikeTheEngine {Antworzug wie Engine} translate D GameReviewNotEngineMoveButGoodMove {Nicht der Computerzug, aber ebenfalls ein guter Zug!} translate D GameReviewMoveNotGood {Dieser Zug ist nicht gut. Bewertung:} translate D GameReviewMovesPlayedLike {Zge gespielt wie Partie} translate D GameReviewMovesPlayedEngine {Zge wie Computer gespielt} # Correspondence Chess Dialogs: translate D CCDlgConfigureWindowTitle {Einstellungen fr Fernschach} translate D CCDlgCGeneraloptions {Allgemeine Einstellungen} translate D CCDlgDefaultDB {Standarddatenbank:} translate D CCDlgInbox {Posteingang (Pfad):} translate D CCDlgOutbox {Postausgang (Pfad):} translate D CCDlgXfcc {Xfcc Einstellungen:} translate D CCDlgExternalProtocol {Externe Protokolle (Xfcc)} translate D CCDlgFetchTool {Hilfsprogramm zum Abholen:} translate D CCDlgSendTool {Hilfsprogramm zum Senden:} translate D CCDlgEmailCommunication {eMail Kommunikation} translate D CCDlgMailPrg {eMail Programm:} translate D CCDlgBCCAddr {Adresse fr Ausgangskopie:} translate D CCDlgMailerMode {Modus:} translate D CCDlgThunderbirdEg {z. B. Thunderbird, Mozilla Mail, Icedove...} translate D CCDlgMailUrlEg {z. B. Evolution} translate D CCDlgClawsEg {z. B. Sylpheed Claws} translate D CCDlgmailxEg {z. B. mailx, mutt, nail...} translate D CCDlgAttachementPar {Parameter fr Anhang:} translate D CCDlgInternalXfcc {Interne Xfcc-Untersttzung verwenden} translate D CCDlgConfirmXfcc {Zge besttigen} translate D CCDlgSubjectPar {Parameter fr Betreff:} translate D CCDlgDeleteBoxes {Leeren des Postein- und Ausgangs} translate D CCDlgDeleteBoxesText {Wollen Sie wirklich Ihren Postein- und Ausgang leeren?\nDies erfordert ein erneutes Synchronisieren zum den aktuellen Zustand Ihrer Partien anzuzeigen.} translate D CCDlgConfirmMove {Zug besttigen} translate D CCDlgConfirmMoveText {Durch besttigen wird folgender Zug und Kommentar an den Server bertragen:} translate D CCDlgDBGameToLong {Inkonsistente Hauptvariante} translate D CCDlgDBGameToLongError {Die Hauptvariante dieser Partie in der Datenbank enthlt mehr Zge als in der Partie tatschlich gespielt. Sofern die Partie im Posteingang vollstndig und aktuell ist (z. B. direkt nach einer Synchronisation) mu die Hauptvariante in der Datenbank ensprechend gekrzt werden. Der letzte Zug in der Partie ist Nr. \n} translate D CCDlgStartEmail {Neue eMail Partie} translate D CCDlgYourName {Ihr Name:} translate D CCDlgYourMail {Ihre eMail Adresse:} translate D CCDlgOpponentName {Name des Gegners:} translate D CCDlgOpponentMail {eMail Adresse des Gegners:} translate D CCDlgGameID {Partiekennung (eineindeutig):} translate D CCDlgTitNoOutbox {Scid: Fernschach Postausgang} translate D CCDlgTitNoInbox {Scid: Fernschach Posteingang} translate D CCDlgTitNoGames {Scid: Keine Fernschachpartien} translate D CCErrInboxDir {Der Posteingang fr Fernschachpartien unter:} translate D CCErrOutboxDir {Der Postausgang fr Fernschachpartien unter:} translate D CCErrDirNotUsable {existiert nicht oder ist nicht benutzbar!\nBitte berprfen und die Einstellungen korrigieren.} translate D CCErrNoGames {enthlt keine Partien!\nBitte sychronisieren Sie zunchst.} translate D CCDlgTitNoCCDB {Scid: Keine Fernschach-Datenbank} translate D CCErrNoCCDB {Es wurde keine Datenbank vom Typ 'Fernschach' geffnet. Bitte ffen Sie eine solche bevor Sie Funktionen des Fernschachmoduls benutzen.} translate D CCFetchBtn {Partien vom Server abholen\nund Inbox bearbeiten} translate D CCPrevBtn {Vorhergehende Partie} translate D CCNextBtn {Nchste Partie} translate D CCSendBtn {Zug versenden} translate D CCEmptyBtn {Postein- und ausgang leeren} translate D CCHelpBtn {Hilfe zu den Icons und Statusindikatoren\nFr allgemeine Hilfe bitte F1!} translate D CCDlgServerName {Server Name:} translate D CCDlgLoginName {Login Name:} translate D CCDlgPassword {Pawort:} translate D CCDlgURL {Xfcc-URL:} translate D CCDlgRatingType {Wertungszahl:} translate D CCDlgDuplicateGame {Nichteindeutige Partie} translate D CCDlgDuplicateGameError {Diese Partie existiert mehr als einmal in der Datenbank. Bitte lschen Sie alle Doubletten und komprimieren Sie die Datenbank (Datei/Wartung/Datenbank komprimieren).} translate D CCDlgSortOption {Sortierung:} translate D CCDlgListOnlyOwnMove {Partien mit anhngigen Zgen} translate D CCOrderClassicTxt {Ort, Turnier, Runde, Ergebnis, Wei, Schwarz} translate D CCOrderMyTimeTxt {Eigene Bedenkzeit} translate D CCOrderTimePerMoveTxt {Zeit pro Zug bis zur nchsten Zeitkontrolle} translate D CCOrderStartDate {Startdatum} translate D CCOrderOppTimeTxt {Gegnerische Bedenkzeit} translate D CCDlgConfigRelay {Partien auf iccf-webchess beobachten} translate D CCDlgConfigRelayHelp {Besuchen Sie http://www.iccf-webchess.com und lassen Sie die Partie anzeigen, die Sie beobachten wollen. Wenn das Brett sichtbar ist bitte die Adresse aus dem Browser in untenstehende Liste kopieren. Nur eine URL pro Zeile!\nBeispiel: http://www.iccf-webchess.com/MakeAMove.aspx?id=266452} translate D ExtHWConfigConnection {Hardware Konfigurieren} translate D ExtHWPort {Schnittstelle} translate D ExtHWEngineCmd {Engine Kommando} translate D ExtHWEngineParam {Engine Parameter} translate D ExtHWShowButton {Knopf in Werzeugleiste anzeigen} translate D ExtHWHardware {Hardware} translate D ExtHWNovag {Novag Citrine} translate D ExtHWInputEngine {Input Engine} translate D ExtHWNoBoard {Kein Brett verbunden} translate D NovagReferee {Nur Zge aufzeichnen} translate D IEConsole {Input Engine Konsole} translate D IESending {Sende Zge fr} translate D IESynchronise {Synchronisieren} translate D IERotate {Brett drehen} translate D IEUnableToStart {Input Engine konnte nicht gestartet werden:} translate D DoneWithPosition {Positionsbearbeitung beendet} translate D Board {Brett} translate D showGameInfo {Partieinformation anzeigen} translate D autoResizeBoard {Brettgre automatisch berechnen} translate D DockTop {Nach oben} translate D DockBottom {Nach unten} translate D DockLeft {Nach links} translate D DockRight {Nach rechts} translate D Undock {Fenster befreien} translate D ChangeIcon {Symbol ndern...} } ########## # # ECO Opening name translations: translateECO D { Accelerated {, Beschleunigt} {: Accelerated} Beschleunigt Accepted {, Angenommen} {: Accepted} Angenommen Advance Vorsto {as Black} {mit Schwarz} Attack Angriff Bishop Lufer Bishop's Lufer Classical Klassisch Closed Geschlossen {Closed System} {Geschlossenes System} Counterattack Gegenangriff Countergambit Gegengambit Declined {, Abgelehnt} Defence Verteidigung deferred verzgert Deferred {, verzgert} Early Frhe Exchange Abtausch Game Partie Improved verbessert King's Knigs Knight Springer Line Variante {Main Line} Hauptvariante Open Offen Opening Erffnung Queen's Damen Queenswap Damentausch Symmetrical Symmetrisch Variation Variante Wing Flgel with mit without ohne Alekhine Aljechin Averbakh Awerbach Botvinnik Botwinnik Chigorin Tschigorin Polugaevsky Polugajewski Rauzer Rauser Sveshnikov Sweschnikow Austrian sterreichisch Berlin Berliner Bremen Bremer Catalan Katalanisch Czech Tschechisch Dutch Hollndisch English Englisch French Franzsisch Hungarian Ungarisch Indian Indisch Italian Italienisch Latvian Lettisch Meran Meraner Moscow Moskau Polish Polnisch Prague Prager Russian Russisch Scandinavian Skandinavisch Scheveningen Scheveninger Scotch Schottisch Sicilian Sizilianisch Slav Slawisch Spanish Spanisch Swedish Schwedisch Swiss Schweizer Vienna Wiener Yugoslav Jugoslawisch {Accelerated Fianchetto} {Beschleunigtes Fianchetto} {Accelerated Pterodactyl} {Beschleunigter Pterodactylus} {Alekhine Defence} Aljechin-Verteidigung {Alekhine Variation} Aljechin-Variante {Alekhine: Smisch Attack} {Aljechin: Wiener System (Smisch-Angriff)} {Anderssen Opening} Anderssen-Erffnung {Anti-King's Indian} Anti-Knigsindisch {Austrian Attack} {sterreichischer Angriff} {Benko Gambit} Wolga-Gambit {Benko Opening} Benk-Erffnung {Berlin Defence} {Berliner Verteidigung} Chameleon Chamleon Chelyabinsk Tscheljabinsk {Classical Defence} {Klassische Verteidigung} {Spanish: Classical Defence} {Spanisch: Klassische (Cordel-) Verteidigung} {Classical Exchange} {Klassischer Abtausch} {Classical Variation} {Klassische Variante} {Closed Berlin} {Geschlossener Berliner} {Open Berlin} {Offener Berliner} {Bird's,} {Bird,} {Bird's Defence} Bird-Verteidigung {Bird's Deferred} {Verzgerte Bird} {Bishop's Opening} Luferspiel {Botvinnik System} Botwinnik-System {Central Variation} Zentralvariante {Centre Attack} Zentrumsangriff {Centre Game} Mittelgambit {Danish Gambit} {Nordisches Gambit} Dragon Drachen {Dutch Variation} {Hollndische Variante} {Early Exchange} {Frher Abtausch} {Early Queenswap} {Frher Damentausch} {English Attack} {Englischer Angriff} {English: King's} {Englisch: Knigsbauer} {English Variation} {Englische Variante} {Englund Gambit} Englund-Gambit {Exchange Variation} Abtauschvariante {Fianchetto Variation} Fianchettovariante {Flohr Variation} Flohr-Variante {Four Knights} Vierspringer {Four Knights Game} Vierspringerspiel {Four Pawns} Vierbauern {Four Pawns Attack} Vierbauernangriff {French Variation} {Franzsische Variante} {From Gambit} {Froms Gambit} {Goring Gambit} {Gring-Gambit} {Grob Gambit} {Grobs Gambit} {Hungarian Defence} {Ungarische Verteidigung} {Indian Variation} {Indische Variante} {Italian Game} {Italienische Partie} KGD {Abgel. Knigsgambit} {Classical KGD} {Klassisches abgelehntes Knigsgambit} {Keres Variation} Keres-Variante KGA {Angen. Knigsgambit} {KGA: Bishop's Gambit} Knigslufergambit {KGA: King's Knight Gambit} Knigsspringergambit {King's Gambit} Knigsgambit {King's Gambit Accepted} {Angen. Knigsgambit} {King's Gambit Accepted (KGA)} {Angen. Knigsgambit} {King's Indian} Knigsindisch KIA {Knigsindischer Angriff} {King's Knight Gambit} Knigsspringergambit {King's Pawn} Knigsbauer {Lasker Variation} {Lasker-Variante} {Latvian Gambit} {Lettisches Gambit} {Maroczy Bind} {Maroczy-Aufbau} {Marshall Variation} Marshall-Variante {Modern Attack} {Moderner Angriff} {Modern Steinitz} {Moderne Steinitz} {Modern Variation} {Moderne Variante} {Moscow Variation} {Moskauer Variante} Nimzo-Indian Nimzoindisch {Old Benoni} {Klassisches Benoni} {Old Indian} Altindisch {Old Indian Attack} {Altindisch i.A.} {Old Steinitz} Steinitz-Verteidigung {Open Game} {Offene Partie} {Poisoned Pawn} {Vergifteter Bauer} {Polish Variation} {Polnische Variante} {Polugaevsky Variation} {Polugajewski-Variante} {Queen's Gambit} Damengambit {Queen's Gambit Accepted} {Angen. Damengambit} QGA {Angen. Damengambit} {Queen's Gambit Accepted (QGA)} {Angenommenes Damengambit} {Reversed QGA} {Angen. Damengambit i.A.} QGD {Abgel. Damengambit} {Queen's Gambit Declined (QGD)} {Abgelehntes Damengambit} {Reversed QGD} {Abgel. Damengambit i.A.} {Queen's Indian} Damenindisch {Queen's Pawn} Damenbauer {Queen's Pawn Game} Damenbauerspiel {Reversed Slav} {Slawisch i.A.} {Rubinstein Variation} Rubinstein-Variante {Russian Game} {Russische Partie} {Russian Game (Petroff Defence)} {Russische Partie} {Russian-Three Knights Game} {Russisches Dreispringerspiel} {Scandinavian (Centre Counter)} Skandinavisch Schliemann Jnisch {Schliemann (Jnisch)} {Jnisch-Gambit (Schliemann)} {Scotch Opening} {Schottische Erffnung} {Sicilian Defence} {Sizilianische Verteidigung} {Sicilian Variation} {Sizilianische Variante} {Slav Defence} {Slawische Verteidigung} Smith-Morra Morra {Smith-Morra Accepted} {Angenommenes Morra-Gambit} {Smith-Morra Gambit} Morra-Gambit {Spanish (Ruy Lopez)} {Spanische Partie} {Start position} Ausgangsstellung {Steinitz Deferred} Rubinstein-Aufbau {Swedish Variation} {Schwedische Variante} {Swiss Variation} {Schweizer Variante} {Tarrasch's Gambit} {Tarrasch-Gambit} {Three Knights} Dreispringer {3 Knights} Dreispringer {Three Knights Game} Dreispringerspiel {Three Pawns Attack} Dreibauernangriff {Two Knights} Zweispringer {Two Knights Defence} Zweispringer-Verteidigung {Two Knights Variation} Zweispringer-Variante {Two Pawns} Zweibauern {Two Pawns Attack} Zweibauernangriff {Wing Gambit} Flgel-Gambit {Yugoslav Attack} {Jugoslawischer Angriff} } ############################################################ # # German help pages: ########## # Contents # set helpTitle(D,Contents) "Inhaltsverzeichnis" set helpText(D,Contents) {

    Inhaltsverzeichnis Scid-Hilfe

    Start und allgemeine Hilfe

    Andere Scid-Fenster

    Weitere Hilfsprogramme und Informationen

    (Aktualisiert: Scid 3.6.23, Mrz 2008)

    } ############### ### Topic Index set helpTitle(D,Index) "Hilfe-Index" set helpText(D,Index) {

    Scid: Hilfe-Index

    A

    B

    D

    E

    F

    G

    H

    I

    K

    L

    M

    N

    O

    P

    R

    S

    T

    V

    W

    X

    Z

    (Aktualisiert: Scid 3.6.23, Mrz 2008)

    } ############### ### Quick guide set helpTitle(D,Guide) "Kurzanleitung zur Benutzung von Scid" set helpText(D,Guide) {

    Kurzanleitung zur Benutzung von Scid

    Scid ist eine Schachdatenbank, mit welcher man Partiesammlungen nach einer Vielzahl von Kriterien durchsuchen kann, Partien editieren und mit Hilfe von Xboard/Winboard-kompatiblen Schachprogrammen analysieren kann.

    Scid benutzt ein eigenes, spezielles Drei-Dateien-Datenbankformat, welches sehr schnell und kompakt ist, aber es kann auch das PGN- (Portable Game Notation) Format lesen und schreiben. Scids PGN-Fenster zeigt die Notation der aktuellen Partie im PGN-Format.

    Man kann in Scid Partien zur Datenbank hinzufgen, mit Hilfe der Tastatur oder der Maus. Mehr Details unter der Hilfeseite fr Zugeingabe.

    Man kann mit Scid auch PGN - Partiesammlungen bearbeiten: durch Import der PGN-Datei in Scids - Import Fenster oder direkt durch ffnen von PGN-Dateien in Scid. Jedoch: PGN - Dateien knnen nicht in Scid bearbeitet werden (sie werden schreibgeschtzt geffnet), und auerdem benutzen sie mehr Speicher und werden langsamer geladen. Fr groe PGN - Partiesammlungen wird empfohlen, sie mit Hilfe des Scid-Programms pgnscid in eine Scid-Datenbank umzuwandeln (dabei bleibt die PGN-Datei erhalten).

    Das Hauptfenster von Scid (mit dem grafischen Schachbrett) zeigt Details der aktuellen Partie und Datenbank. Man kann zu gleicher Zeit bis zu vier Datenbanken geffnet haben (fnf inklusive der Ablage-Datenbank), und jede hat eine eigene aktuelle Partie. (Die Partie mit der Nr. 0 dient zu Eingabe einer neuen Partie und ist nicht Bestandteil der Datenbank). Man kann zwischen den offenen Datenbanken im Datei-Men umschalten.

    Fr zustzliche Information lesen Sie bitte die anderen Hilfe-Seiten, die im Index aufgefhrt sind.

    Kontaktinformationen ber den Autor von Scid findet man in der entsprechenden Hilfeseite.

    (Aktualisiert: Scid 3.1, Dezember 2001)

    } ############### ### Hints page: set helpTitle(D,Hints) "Scid Hinweise" set helpText(D,Hints) {

    Scid Hinweise

    Diese Seite enthlt einige ntzliche Hinweise in Form von Fragen und Antworten, um Ihnen zu helfen, Scids Fhigkeiten besser zu nutzen. Wenn Sie das erste Mal mit Scid arbeiten, lesen Sie bitte zuerst die Kurzanleitung zur Benutzung von Scid. Die meisten Informationen auf dieser Seite finden Sie detailliert auf den anderen Hilfeseiten, die im Hilfe-Index aufgefhrt sind. Falls Sie einen ntzlichen Hinweis haben, der dieser Seite hinzugefgt werden sollte, senden Sie ihn bitte (in Englisch) an den Autor von Scid.

    Kann Scid eine Datenbank automatisch beim Start laden?

    Ja, Sie knnen Datenbanken, PGN-Dateien oder EPD-Dateien in der Kommandozeile angeben. Beispiel:

    • scid datenbank partien.pgn.gz
    ldt die Scid-Datenbank datenbank und gleichzeitig die mit gzip komprimierte PGN-Datei partien.pgn.gz.

    Gibt es eine leichtere Mglichkeit, die Brettgre zu ndern, als ber das Optionen-Men?

    Ja, Sie knnen mit den Tastenkombinationen Control+Shift+LeftArrow und Control+Shift+RightArrow das Brett verkleinern bzw. vergrern.

    Wenn ich trainiere, indem ich eine Partie nachspiele, mchte ich nicht, da Scid den nchsten Zug im Informationsbereich anzeigt. Kann ich ihn verstecken?

    Sie knnen den nchsten Zug verstecken, indem Sie die rechte Maustaste im Informationsbereich drcken und im darauf erscheinenden Men Verstecke nchsten Zug auswhlen.

    Wie kann ich den ECO-Erffnungsschlssel der aktuellen Position ermitteln?

    Der ECO-Schlssel wird in der letzten Zeile des Informationsbereichs angezeigt, unterhalb des Schachbretts im Hauptfenster, wenn Sie die ECO-Datei (scid.eco) geladen haben.
    Auf der ECO-Code Hilfeseite wird erklrt, wie man die ECO-Datei ldt und die Optionen so einstellt, da sie jedesmal beim Programmstart geladen wird.

    Beim Eingeben einer Partie bin ich gerade beim 30. Zug, als ich bemerke, da der 10. Zug falsch eingegeben wurde. Wie kann ich ihn korrigieren und dabei alle nachfolgenden Zge erhalten?

    Sie knnen das im Import-Fenster tun; siehe die Hilfeseite Zugeingabe fr weitere Informationen.

    Wie kopiere ich Partien von einer Datenbank in die andere?

    Im Datenbank-Umschalterfenster: kopieren Sie alle Dateien im Datenbank-Filter, indem Sie sie mit der Maus von einer Datenbank in die andere ziehen.

    Jedesmal, wenn ich einen bereits vorhandenen Zug eingebe, erhalte ich ein "Zug ersetzen?"-Dialogfenster. Wie kann ich das verhindern?

    Schalten Sie es aus mit der Option Fragen vor Ersetzen im Men

    Optionen: Zge. Oder gewhnen Sie sich an, Zge mit der rechten Maustaste zurckzunehmen, die jeweils den letzen Zug der Partie entfernt, wenn Sie sich am Partiende befinden.

    Wie ndere ich die Spaltenbreite im Partielistenfenster?

    Klicken Sie die jeweilige Spaltenberschrift mit der linken oder rechten Maustaste an und whlen Sie Konfigurieren.

    Wie kann ich das Zugbaumfenster statt fr die ganze Datenbank nur fr eine Auswahl von Partien nutzen?

    Nutzen Sie die Ablage-Datenbank. Whlen Sie den Datenbank-Filter so, da er die von Ihnen gewnschten Partien enthlt, dann kopieren Sie diese ber den Datenbank-Umschalter in die Ablage-Datenbank. Danach brauchen Sie nur noch das Zugbaumfenster in der Ablage-Datenbank zu ffnen.

    Der Zugbaum ist bei groen Datenbanken zu langsam. Wie kann ich ihn beschleunigen?

    Sichern Sie die Cache-Datei hufig, um die Zugbaum-Resultate zum spteren Gebrauch zu bewahren. Zu den Details siehe den Abschnitt Caching auf der Zugbaum-Hilfeseite.

    Wie kann ich direkt die PGN-Notation der Datei bearbeiten?

    Im PGN-Fenster knnen sie die aktuelle Partie nicht bearbeiten, aber Sie knnen immer noch die PGN-Notation editieren, indem Sie das Fenster Partie importieren verwenden. ffnen Sie es (mit Control+Shift+I) und whlen Sie Aktuelle Partie einfgen, dann bearbeiten Sie die Partie und klicken danach Importieren an.

    In meiner Datenbank sind einige Spielernamen unterschiedlich geschrieben. Wie kann ich sie korrigieren?

    Mit den Kommandos im Men

    Datei: Wartung knnen Sie einzelne Namen editieren oder auch Schreibweisen aller Namen berprfen. Siehe die Seite Wartung.

    Ich habe zwei Datenbanken geffnet: eine mit meinen eigenen Partien und eine groe Datenbank mit Gromeisterpartien. Wie kann ich eine meiner Partien mit denen in der groen Datenbank vergleichen?

    ffnen Sie das Zugbaumfenster in der groen Datenbank und und wechseln Sie mit Hilfe des Datenbankwechslers in die zu vergleichende Datenbank.

    (Aktualisiert: Scid 3.6.28, August 2008)

    } ############### ### Main window set helpTitle(D,MainWindow) "Scid Hauptfenster" set helpText(D,MainWindow) {

    Scid Hauptfenster

    Das Hauptfenster in Scid zeigt die aktuelle Stellung der jeweiligen Partie und Information ber diese Partie und die Datenbank. Separate Hilfeseiten beschreiben die Mens und die Zugeingabe.

    Symbolleiste: Navigieren durch die Partie

    Die direkt ber dem Schachbrett angebracht Symbole haben die folgende Bedeutung (von links nach rechts):

    Automatisches Vorspielen

    Im diesem Modus spielt Scid automatisch die Zge in der aktuellen Partie vor, bis zum Spielende. Die Zeit zwischen den Zgen kann im Men

    Optionen: Zge eingestellt werden und wird mit "Optionen speichern" gesichert.

    Die Tastenkombination Strg+Z startet oder stoppt das autom. Vorspielen, zustzlich kann das autom. Vorpielen auch durch Drcken der Esc-Taste beendet werden.

    Wenn der Modus "Automatisches Vorspielen" beim geffneten Analysefenster (Engine 1) gestartet wird, so wird die von der Engine berechnte jeweilige Fortsetzung als Variante jedem Zug hinzugefgt Autom. Kommentieren. Siehe auch die Hilfeseite zum Analysefenster.

    Der Informationsbereich

    Der Bereich unter dem Schachbrett, mit Informationen ber die Partie, wird Informationsbereich genannt. Die ersten 3 Zeilen zeigen Information zu den Spielern, Ergebnis, ECO-Code, Datum, Ort und Ereignis. Die vierte Zeile zeigt die Informationen zur aktuellen Stellung sowie den nchsten Zug.

    Die fnfte Zeile zeigt den ECO-Code der aktuelle Stellung, falls enthalten in der gerade benutzen ECO-Datei.

    Der Informationsbereich hat ein Men, welches man mit der rechten Maustaste aktivieren kann. Hierber kann man bestimmte Informationen zum Spiel zeigen oder verstecken sowie Markierungen fr die aktuelle Partie setzten und lschen. Man kann das Men auch ber die [F9] Funktionstaste erreichen.

    Endspieltabellen

    Der Informationsbereich zeigt auch Ergebnisse aus den Endspieltabellen zur aktuellen Stellung, wenn diese darin enthalten ist. Mehr dazu in den Hilfeseiten zu Endspieltabellen.

    Die Statusanzeige

    Die Statusanzeige zeigt Information ber die aktuelle Datenbank. Das erste Feld zeigt den Partiestatus an: XX bedeutet, die Partie wurde gendert, aber noch nicht gespeichert, whrend -- bedeutet, es gibt keine nderungen, und %% zeigt an, da die Datenbank schreibgeschtzt geffnet wurde.

    Wenn man eine Datenbank immer schreibgeschtzt ffen will, kann man auch die Rechte fr die entsprechenden Scid-Dateien setzen, oder zumindestens die der Indexdatei; z.B. (unter Linux) durch den Befehl: chmod a-w datenbank1.si3. Danach ffnet Scid die entsprechende Datenbank immer schreibgeschtzt.

    Die Statusanzeige zeigt auch, wieviel Spiele im aktuellen Filter sind.

    (Aktualisiert: Scid 3.1, Dezember 2001)

    } ###################### ### Menus help screen: set helpTitle(D,Menus) "Mens" set helpText(D,Menus) {

    Die Scid-Mens

    Datei

    • Neu: Legt eine neue, leere Scid-Datenbank an.
    • ffnen: ffnet eine existierende Scid-Datenbank.
    • Schlieen: Schliet die aktive Scid-Datenbank.
    • Finder: ffnet das Dateifinder-Fenster.
    • Lesezeichen: Das Lesezeichen-Men mit einigen Lesezeichen-Funktionen.
    • Wartung: Datenbank-Wartungs-Funktionen.
      • Wartungsfenster: ffnet/schliet das Datenbank-Wartungsfenster.
      • Partien ECO-klassifizieren: Bestimmt den ECO-Code fr alle Partien der Datenbank neu.
      • Dubletten lschen: Findet Dubletten in der Datenbank.
      • Namen: Ersetzt alle Vorkommen eines Spieler-, Ereignis-, Ort- oder Rundeneintrags.
    • Schreibschutz: Markiert die aktive Datenbank als schreibgeschtzt.
    • Datenbank 1/2/3/4/5: Mit diesen Kommandos knnen Sie zwischen den vier verfgbaren Datenbanken und der Ablage-Datenbank wechseln.
    • Ende: Beendet Scid.

    Bearbeiten

    • Variante hinzufgen: Fgt eine neue, leere Variante zum nchsten Zug hinzu bzw. zum vorherigen, falls es noch keinen nchsten Zug gibt.
    • Variante lschen: ffnet ein Varianten-Untermen fr den aktuellen Zug, um eine Variante zu lschen.
    • Als erste Variante setzen: Macht eine Variante zur ersten Variante des aktuellen Zuges.
    • Variante als Hauptvariante setzen: Tauscht eine Variante mit der Partiefolge aus.
    • Variante testen: Schaltet in den Testmodus, um eine Variante auszuprobieren, ohne die aktuelle Partie zu verndern.
    • Entfernen: Entfernt alle Kommentare oder Varianten aus der aktuellen Partie.

    • Ablage leeren: Leert die Ablage-Datenbank.
    • Partie in Ablage kopieren: Kopiert die aktuelle Partie in die Ablage-Datenbank.
    • Partie aus Ablage einfgen: Fgt die aktive Partie der Ablage als aktive Partie in die aktuelle Datenbank ein.

    • Stellungseingabe: Legt die Ausgangsstellung fr die aktuelle Partie fest.
    • Stellung einfgen: Fgt den markierten Text (Zwischenablage) als Ausgangsstellung ein.

    Partie

    • Neue Partie: Verwirft alle nicht gesicherten nderungen und beginnt eine neue Partie ab der Grundstellung.
    • Lade Erste/Vorherige/Nchste/Letzte Partie: Diese Menpunkte laden die erste, vorherige, nchste bzw. letzte Partie im Filter.
    • Partie wiederladen: Ldt die aktuelle Partie erneut, wobei alle bisherigen nderungen verworfen werden.
    • Lade Partie Nummer: Ldt die Partie mit der angegebenen Nummer in die aktuelle Datenbank.

    • Partie ersetzen: Sichert die aktuelle Partie, wobei sie die Originalversion in der Datenbank ersetzt.
    • Partie speichern: Sichert die aktuelle Partie als neue Partie, die ans Ende der Datenbank angehngt wird.

    • Erffnung identifizieren: Findet die letztmgliche Position der aktuellen Partie in der ECO-Datei.
    • Zugnummer: Geht zu der angegebenen Zugnummer in der aktuellen Partie.
    • Finde Neuerung: Findet den ersten Zug der aktuellen Partie, der vorher noch nie gespielt wurde.

    Suchen

    • Filter zurcksetzen: Setzt den Filter zurck, so da er alle Partien enthlt.
    • Filter negieren: Invertiert den Filter, so da er alle vorher ausgeschlossenen Partien enthlt.

    • Brett: Sucht die aktuelle Brettposition.
    • Partiedaten: Sucht nach Partiedaten wie z.B. Spielernamen.
    • Material/Muster: Sucht nach Material oder Stellungsmustern.

    • Mit Suchoptionsdatei: Sucht mit Hilfe von Einstellungen aus einer Suchoptionsdatei.

    Fenster

    • Kommentareditor: ffnet/schliet das Kommentareditor-Fenster.
    • Partieliste: ffnet/schliet das Partielistenfenster.
    • PGN-Fenster: ffnet/schliet das PGN-Fenster.
    • Turnierfinder: ffnet/schliet den Turnierfinder.

    • Datenbank-Umschalter: ffnet/schliet den Datenbank-Umschalter, mit dem man auf einfache Weise zu einer anderen Datenbank wechseln oder Partien zwischen Datenbanken kopieren kann.
    • Wartungsfenster: ffnet/schliet das Datenbank-Wartungs-Fenster.

    • ECO-Auswertung: ffnet/schliet das Fenster ECO-Auswertung.
    • Repertoire-Editor: ffnet/schliet den Repertoire-Editor.
    • Statistik: ffnet/schliet das Filter-Statistikfenster, welches eine Gewinn/Verlust-Zusammenstellung aller Partien im Filter liefert.
    • Zugbaum: ffnet/schliet das Zugbaumfenster.
    • Endspieltabellen: ffnet/schliet das Fenster, das die Endspieltabellen-Informationen ausgibt.

    Werkzeuge

    • Analyse-Engine: Startet/beendet die "Schachanalyse-Engine", die die Auswertung der aktuellen Position im Analysefenster darstellt.
    • Analyse-Engine #2: Startet/beendet eine zweite "Schachanlyse-Engine".
    • Kreuztabelle: Erstellt eine Turnier-Kreuztabelle fr die aktuelle Partie.
    • E-Mail-Manager: ffnet/schliet den E-Mail-Manager fr Fernschachpartien.

    • Rel. Filtergrafik: ffnet das Fenster fr die Relative Filtergrafik
    • Abs. Filtergrafik: ffnet das Fenster fr die Absolute Filtergrafik
    • Erffnungsbericht: Erstellt einen Erffnungsbericht zur aktuellen Position.
    • Figurenverteilung: ffnet das Fenster Figurenverteilung.
    • Spieler-Information: Gibt Spieler-Informationen fr einen Spieler der aktuellen Partie aus.
    • ELO-Zahl-Verlauf: gibt den ELO-Zahl-Verlauf aus.
    • Partie-Bewertungsgraph: Gibt den Partie-Bewertungsgraph aus.

    • Partie exportieren: Schreibt die aktuelle Partie in eine Textdatei im PGN-, HTML- oder LaTeX-Format. Siehe die Export-Hilfeseite.
    • Alle Partien im Filter exportieren: Schreibt alle Partien im Such-Filter in eine Textdatei im PGN-, HTML- oder LaTeX-Format. Siehe die Export-Hilfeseite.

    • Eine PGN-Partie importieren: ffnet das Importfenster, um den Inhalt einer Partie im PGN-Format direkt einzutippen oder einzufgen.
    • Datei mit PGN-Partien importieren: Importiert eine ganze Datei mit Partien im PGN-Format in die aktuelle Datenbank.

    • Starte Engine1: Starte direkt die letzte ausgewhlte Engine1 im Analysemodus
    • Starte Engine2: Starte direkt die letzte ausgewhlte Engine2 im Analysemodus

    Optionen

    Dieses Men stellt einige Eintrge bereit, um die meisten konfigurierbaren Optionen von Scid einzustellen. Der Menpunkt

    Autom. speichern bei Beenden sichert die aktuellen Optionen in der Datei "~/.scid/scidrc" (bzw. scid.opt im Verzeichnis des ausfhrbaren Scid-Programms fr Windows-User); diese Datei wird bei jedem Programmstart von Scid geladen.

    Hilfe

    Dieses Men enthlt die Hilfe-Funktionen sowie Zugriff auf das "Tip-des-Tages"-Fenster oder das Startfenster, welches Informationen ber die Dateien liefert, die Scid beim Programmstart geladen hat.

    (Aktualisiert: Scid 3.6.21, Dezember 2007)

    } ######################## ### Entering moves help: set helpTitle(D,Moves) "Zge eingeben" set helpText(D,Moves) {

    Schachzge eingeben

    In Scid knnen Sie die Partiezge mit der Maus oder ber die Tastatur eingeben. Wenn Sie den Mauszeiger auf ein Feld bewegen, wird dieses und ein weiteres Feld seine Farbe ndern, falls es einen legalen Zug auf dieses bzw. von diesem Feld gibt. Das ist der Zugvorschlag. Sie knnen diesen Zug einfach durch Klicken der linken Maustaste ausfhren. Falls Sie der Zugvorschlag strt, knnen Sie ihn im Optionsmen abschalten.

    Um einen anderen als den vorgeschlagenen Zug auszufhren, knnen Sie die linke Maustaste verwenden: Drcken Sie einfach die Taste ber einem Feld und lassen Sie sie ber einem anderen Feld los.

    Wenn Sie es vorziehen, Zge mit zwei Mausklicks auszufhren statt mit gedrckter Maustaste, knnen Sie die mittlere Taste verwenden: Klicken Sie erst das eine Feld an, danach das andere.

    Einen Zug zurcknehmen

    Um einen Zug zurckzunehmen, drcken Sie die rechte Maustaste. Damit gehen Sie einen Zug zurck; gleichzeitig lschen Sie diesen Zug, falls es der letzte Zug der Partie oder einer Variante war.

    Alte Zge ersetzen

    Wenn Sie einen Zug an einer Stelle in der Partie eingeben, wo bereits ein Zug existiert, wird Scid Sie in einem Dialogfenster fragen, ob Sie wirklich den alten Zug ersetzen wollen (der alte Zug und alle nachfolgenden sind dann verloren) oder statt dessen den neuen Zug als Variante eingeben wollen. Manche Leute mgen dieses Dialogfenster als strend empfinden und wollen alte Zge immer ersetzen. Sie knnen es daher im Men

    Optionen: Zge mit der Option "Vor Ersetzen nachfragen" abschalten.

    Der Testmodus

    Wenn Sie eine Partie nachspielen und eine Position erreichen, wo Sie eine alternative Variante am Brett ausprobieren wollen, ohne die Partie zu verndern, whlen Sie Variante testen im Men

    Bearbeiten, um den Testmodus einzuschalten. In diesem Modus knnen Sie Zge eingeben und die Partie zeitweilig verndern; sobald Sie den Testmodus verlassen, kehren Sie zur Ausgangsposition zurck.

    Fehler korrigieren

    Wenn Sie eine Partie eingeben und pltzlich einige Zge vorher einen falschen Zug bemerken, knnen Sie diesen korrigieren, ohne die nachfolgenden Zge zu verlieren. Der einzige Weg besteht darin, die PGN-Darstellung der Datei zu bearbeiten: ffnen Sie das Import-Fenster, whlen Sie "Aktuelle Partie einfgen", korrigieren Sie den falschen Zug, und whlen Sie dann "Importieren".

    Zugeingabe ber die Tastatur

    Um Zge ber die Tastatur einzugeben, drcken Sie einfach die jeweiligen Buchstaben- und Zahlentasten. Die Zge sollten in SAN-Notation ohne die Symbole fr Schlagen (x) oder Umwandeln (=) eingegeben werden. Gro- und Kleinschreibung wird ignoriert, Sie knnen also beispielsweise [n][f][3] anstelle von Nf3 eingeben -- beachten Sie aber die Anmerkung weiter unten zu den Konflikten bei Bauernzgen.

    Um sicherzustellen, da kein Zug in einem anderen enthalten ist, lautet die Eingabe fr die kurze und lange Rochade [0][K] resp. [0][Q] anstelle der blichen Notation 0-0 bzw. 0-0-0.

    Wenn Sie einen Zug eingeben, zeigt die Statusleiste die Liste der mglichen Zge an. Sie knnen jederzeit die [Leertaste] drcken, um den ersten mglichen Zug der Liste als Eingabe auszuwhlen. Um ein Zeichen zu lschen, drcken Sie [Rck] oder [Entf].

    Beachten Sie, da ein Kleinbuchstabe zuerst als Bauer interpretiert wird; mit [b] kann also ein Bauer oder Lufer ("Bishop") gemeint sein, im Zweifelsfall mssen Sie daher ein groes [B] fr den Lufer verwenden.

    Automatische Zugergnzung

    Im Options-Men knnen Sie die Automatische Zugergnzung ein- oder ausschalten. Mit Zugergnzung wird ein Zug ausgefhrt, sobald er durch Ihre Eingabe von jedem anderen mglichen Zug unterschieden werden kann. Beispielsweise mten Sie mit automatischer Zugergnzung in der Ausgangsstellung nur [n][f] statt Nf3 eintippen.

    Nullzge eingeben

    Null- (leere) Zge knnen in Varianten ntzlich sein, wenn Sie den Zug einer Seite auslassen wollen. Sie knnen einen Nullzug mit der Maus eingeben, indem Sie einen Knig mit dem anderen schlagen, oder mit der Tastatur, indem Sie "--" eingeben (d.h. die Minustaste zweimal drcken).

    Standard-Kommentarzeichen eingeben

    Sie knnen die blichen Kommentarzeichen im Hauptfenster auch ber die Tastatur ohne den Kommentar-Editor hinzufgen. Die folgende Liste zeigt Ihnen, welche Zeichen Sie mit welchen Tasten eingeben knnen:

    • ! : [!][Eingabe]
    • ? : [?][Eingabe]
    • !? : [!][?][Eingabe]
    • ?! : [?][!][Eingabe]
    • !! : [!][!][Eingabe]
    • ?? : [?][?][Eingabe]
    • +- : [+][-]
    • +/-: [+][/]
    • += : [+][=]
    • = : [=][Eingabe]
    • -+ : [-][+]
    • -/+: [-][/]
    • =+ : [=][+]

    (Aktualisiert: Scid 3.4, Juli 2002)

    } ######################### ### Searches help screen: set helpTitle(D,Searches) "Suchen" set helpText(D,Searches) {

    Suchen in Scid

    Scid kann auf viele verschiedene Weisen in einer Datenbank suchen. Die drei wichtigsten Arten zu suchen sind:

    • 1) nach der aktuellen Brettposition,
    • 2) nach angegebenem Material und Stellungsmustern,
    • 3) nach Partiedaten-Informationen wie Spieler, Ergebnis, Datum.

    Auerdem gibt es noch einen automatischen Suchmodus, den sog. Zugbaum, der an anderer Stelle erklrt wird.

    Der Such-Filter

    Suchen basiert bei Scid auf dem Konzept eines Filters. Der Filter reprsentiert eine Teilmenge der aktuellen Datenbank; eine Partie ist immer entweder im Filter enthalten oder vom Filter ausgeschlossen.

    Bei jeder Art der Suche knnen Sie whlen, den vorhandenen Filter weiter einzugrenzen, zu diesem hinzuzufgen oder ihn zu ignorieren und die gesamte Datenbank zu durchsuchen. Diese Auswahl erlaubt es, komplexe Suchvorgnge nacheinander aufzubauen.

    Sie knnen auch mit dem Datenbank-Umschalter alle Partien im Filter einer Datenbank in eine andere Datenbank kopieren.

    Bei der Suche nach einer exakten Postion, der Zugbaum- oder Material/Muster-Suche wird die Zugnummer der ersten passenden Position jeder passenden Partie gespeichert; wenn Sie also jede dieser Partien laden, wird automatisch die passende Stellung angezeigt.

    Beachten Sie, da beim Suchen nur mit den Partiezgen verglichen wird, nicht mit den Zgen der Varianten.

    Suchen: Brett...

    Hier finden Sie Partien, die die gerade dargestellte Position enthalten, ohne Bercksichtigung der Rochade- und en-passant-Rechte.

    Vier Suchtypen stehen zur Verfgung. Alle vier verlangen von einer passenden Stellung exakt gleiches Material und die gleiche Seite am Zug. Die Typen sind:

    • [1] exakt (die beiden Stellungen mssen auf jedem Feld bereinstimmen),
    • [2] Bauern (die Bauernstruktur mu bereinstimmen, aber andere Figuren knnen irgenwo stehen),
    • [3] Linien (die Anzahl weier und schwarzer Bauern auf jeder Linie mu bereinstimmen, aber andere Figuren knnen irgendwo stehen), and
    • [4] Material (Bauern und Figuren knnen irgendwo stehen).

    Die Bauernsuche ist hilfreich, um Erffnungen nach Bauernstrukuren zu studieren, und Linien- und Materialsuche helfen beim Auffinden hnlicher Endspielstellungen.

    Um nach einer beliebigen Stellung zu suchen, knnen Sie zuerst die Position aufbauen (im Men

    Bearbeiten: Stellungseingabe) und dann die Suche starten.

    Sie knnen Varianten (statt nur die jeweiligen Partiezge) durchsuchen, indem Sie den Schalter Schaue in Varianten whlen; das kann aber die Suche stark verlangsamen, falls die Datenbank sehr gro ist und viele Partien mit Varianten enthlt.

    Suchen: Material/Muster

    Diese Suche ist ntzlich, um End- oder Mittelspielthemen zu finden. Sie knnen eine minimale und maximale Anzahl von Figuren jeden Typs angeben, und Sie knnen Stellungsmuster wie Lufer auf f7 oder f-Bauer finden.

    Eine Reihe von hufigen Materialkonstellationen und Stellungsmustern sind schon bereitgestellt, wie etwa "Endspiel Turm gegen Bauern" oder "isolierter Damenbauer".

    Hinweise:
    Die Geschwindigkeit der Suche nach Stellungsmustern kann stark variieren. Sie knnen aber durch eine geschickte Wahl der Bedingungen die bentigte Zeit reduzieren. Wenn Sie beispielsweise fr ein Endspiel die Mindestzahl von Zgen auf 20 setzen, werden alle Partien, die vor dem 20. Zug enden, bersprungen.

    Suchen: Partiedaten

    Mit dieser Suche knnen Sie Partiedaten finden, die im Vorspann ("Header") gespeichert sind (wie z.B. Datum, Ergebnis, Namen und Wertungszahlen), es mssen daher keine Partiezge dekodiert werden.

    Um bei der Suche nach Partiedaten eine passende Partie zu finden, mssen alle von Ihnen angegebenen Felder bereinstimmen.

    Die Namensfelder (Wei, Schwarz, Turnier, Ort und Runde) passen auf jeden Text im Namen, ohne Bercksichtigung von Gro- und Kleinschreibung oder Leerzeichen.

    Sie knnen fr das Wei-, Schwarz-, Turnier-, Ort- und Rundenfeld mit Unterscheidung von Gro- und Kleinschreibung und mit "Wildcards" suchen (mit ? fr ein und * fr null oder mehr Zeichen), indem Sie den Suchtext in Anfhrungszeichen setzen. Eine Suche mit der Ortsangabe USA wird beispielsweise amerikanische Stdte finden, aber auch Lausanne SUI, was vermutlich nicht von Ihnen beabsichtigt war! Eine Suche mit dem Ort "*USA" (denken Sie an die Anfhrungszeichen) liefert dagegen nur Stdte in den USA.

    Wenn Sie einen bestimmten Spieler (oder zwei bestimmte Kontrahenten) als Wei oder Schwarz suchen und die jeweilige Farbe keine Rolle spielt, whlen Sie die Option Farben ignorieren.

    Schlielich kann die Suche nach Partiedaten auch verwendet werden, um irgendeinen Text (mit Bercksichtigung von Gro- und Kleinschreibung, ohne "Wildcards") in der PGN-Darstellung dieser Partie zu finden. Sie knnen bis zu drei Textteile eingeben, und sie mssen alle in einer passenden Partie vorkommen. Diese Methode ist sehr hilfreich, um in den Kommentaren oder zustzlichen Daten einer Partie zu suchen (wie Zeitberschreitung oder Kommentator), oder nach einer Zugfolge wie Bxh7+ und Kxh7 fr ein angenommenes Luferopfer auf h7. Allerdings kann diese Art zu suchen sehr langsam sein, da alle Partien, auf die andere Kriterien zutreffen, dekodiert und auf diese Texte durchsucht werden mssen. Es ist daher eine gute Idee, diese Suchen so weit wie mglich einzugrenzen. Hier sind einige Beispiele: Um Partien mit einer Unterverwandlung in einen Turm zu finden, suchen Sie nach =R und setzen gleichzeitig die Markierung Umwandlung auf Ja. Wenn Sie nach Text in Kommentaren suchen, setzen Sie die Markierung Kommentare auf Ja. Falls Sie nach den Zgen Bxh7+ und Kxh7 suchen, mchten Sie z.B. die Suche mglicherweise auf Partien mit dem Ergebnis 1-0 und mit mindestens 40 Halbzgen beschrnken, oder Sie suchen zuerst nach Material oder Stellungsmustern, um Partien mit einem weien Luferzug nach h7 zu finden.

    Sucheinstellungen sichern

    Die Suchfenster Material/Mustern und Partiedaten besitzen einen Schalter zum Speichern. Das ermglicht Ihnen, die aktuellen Sucheinstellungen zur spteren Verwendung in einer Suchoptions-Datei zu speichern (Endung .sso). Um mit Hilfe einer vorher gespeicherten Suchoptionsdatei (.sso) zu suchen, whlen Sie

    ffnen im Men Suchen.

    Suchdauer und bergangene Dateien

    Die meisten Suchen liefern eine Nachricht, die die bentigte Zeit und die Anzahl der bergangenen Partien angibt. Eine bergangene Partie ist eine, die aufgrund der im Index gespeicherten Informationen von der Suche ausgeschlossen werden kann, ohne da ihre Zge dekodiert werden mssen. Siehe die Hilfeseite ber Dateiformate fr weitergehende Informationen.

    (Aktualisiert: Scid 3.0, November 2001)

    } ############ ### Clipbase set helpTitle(D,Clipbase) "Die Ablage-Datenbank" set helpText(D,Clipbase) {

    Die Ablage-Datenbank

    Zustzlich zu den geffneten Datenbanken stellt Scid eine Ablage-Datenbank (als Datenbank 5) zur Verfgung, welche sich wie eine normale Datenbank verhlt, mit der Ausnahme, da sie nur im RAM-Speicher existiert und keine Dateien zur Speicherung auf der Festplatte besitzt.

    Die Ablage-Datenbank (kurz: Ablage) ist ntzlich als eine temporre Datenbank, zum Zusammenfhren von Suchergebnissen aus Suche in mehreren Datenbanken oder zur Behandlung der Suchergebnisse als eine eigenstndige Datenbank.

    Angenommen, zum Beispiel, man will sich auf einen Gegner vorbereiten, und hat eine Datenbank auf alle Partien des Gegners mit Wei durchsucht, so da diese Partien im Filter sind. Man kann nun diese Partien in die Ablage kopieren (durch Ziehen mit der rechten Maustaste von der Originaldatenbank zur Ablage, im Fenster Datenbank-Umschalter), danach im Datei-Men die Ablage als aktive Datenbank auswhlen, und dann kann man sich im Zugbaumfenster das Erffnungsrepertoire des Gegners ansehen.

    Sind 2 Datenbanken geffnet, und hat man im Filter Partien, die man von der einen Datenbank in die andere kopieren mchte, kann man dies direkt (ohne Umweg ber die Ablage) tun. Dazu benutzt man wiederum das Fenster Datenbank-Umschalter.

    Die Ablage kann nicht geschlossen werden: mit dem Befehl

    Ablage leeren aus dem Men Bearbeiten wird der Inhalt der Ablage gelscht.

    Die Ablage-Datenbank ist begrenzt auf 10.000 Partien zur gleichen Zeit, da sie nur im Speicher existiert.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ################################# ### Variations and comments help: set helpTitle(D,Annotating) "Partien kommentieren" set helpText(D,Annotating) {

    Partien kommentieren

    Mit Scid knnen Sie den Partien Anmerkungen hinzufgen. Es gibt drei Arten von Anmerkungen, die Sie nach einem Zug eingeben knnen: Symbole, ein Kommentar und Varianten.

    Symbole und Kommentare

    Symbole verwendet man, um eine Stellungsbeurteilung anzuzeigen (etwa "+-" or "=") oder um auf gute ("!") und schlechte ("?") Zge hinzuweisen, whrend ein Kommentar ein beliebiger Text sein kann. Zur Eingabe von Symbolen und Kommentaren benutzen Sie den Kommentar-Editor. Es gibt auch eine Hilfeseite, in der die Standard-Symbolwerte aufgelistet sind.

    Beachten Sie, da jeder Zug mehr als ein Anmerkungssymbol haben kann, aber nur einen Kommentar. Ein Kommentar vor dem ersten Partiezug wird als Text vor dem Beginn der Partie ausgegeben.

    Varianten

    Eine Variante eines Zuges ist eine alternative Zugfolge an einem bestimmten Punkt der Partie. Varianten knnen Kommentare enthalten und sogar rekursiv Untervarianten. Mit den Schaltern oberhalb des Schachbretts mit einem "V"-Symbol sowie den Kommandos im Men

    Bearbeiten kann man Varianten erstellen, editieren und sich darin bewegen.

    Tastatureingaben

    Wenn es zu einem Zug Varianten gibt, werden sie im Informationsbereich angezeigt. Die erste wird mit v1 bezeichnet, die zweite mit v2 etc. Um in eine Variante zu gehen, knnen Sie sie anklicken oder "v" gefolgt von der Variantennummer eingeben. (Falls es nur eine Variante gibt, gengt die Eingabe von v.) Mit der Taste "z" verlassen Sie die Variante wieder.

    Nullzge

    Gelegentlich kann es in einer Variante ntzlich sein, den Zug einer Seite auszulassen. Beispiel: Sie wollen den Zug 14.Ld3 als Variante hinzufgen und mchten darauf hinweisen, da er 15.Lxh7+ Kxh7 16.Sg5+ mit Angriff droht. Das knnen Sie erreichen, indem Sie im obigen Beispiel einen Nullzug zwischen 14.Ld3 und 15.Bxh7+ ausfhren. Ein Nullzug wird als "--" dargestellt und kann eingefgt werden, indem Sie mit der Maus den illegalen Zug "Knig schlgt Knig" ausfhren oder mit der Tastatur "--" (zwei Minuszeichen) eingeben.

    Beachten Sie, da Nullzge nicht zum PGN-Standard gehren, wenn Sie also Partien mit Nullzgen in eine PGN-Datei exportieren, wird Scid (neben einigen anderen Exportoptionen) eine Option anbieten, Nullzge zu erhalten oder sie in Kommentare umzuwandeln, damit Kompatibilitt zu anderen Programmen gewahrt bleibt. Siehe auch die Export-Hilfeseite.

    (Aktualisiert: Scid 3.4, Juli 2002)

    } #################### ### Analysis window: set helpTitle(D,Analysis) "Analysefenster" set helpText(D,Analysis) {

    Das Analysefenster

    Scids Analysefenster zeigt die Analyse der aktuellen Brettstellung durch ein Schachprogramm (eine sog. Engine). Immer, wenn sich die Brettstellung ndert, bermittelt Scid die neue Position an die Engine, und die zeigt ihre Einschtzung dieser Stellung.

    Die Bewertung im Analysefenster erfolgt immer aus der Perspektive von Wei, eine negative Bewertung heit also, da Schwarz besser steht. Der untere Fensterbereich (mit dem Rollbalken) zeigt den Verlauf der Auswertungen der aktuellen Stellung durch die Engine, Sie knnen also sehen, wie sich die Einschtzung verndert hat.

    Um den von der Engine ausgewhlten besten Zug als neuen Zug der aktuellen Partie zu nehmen, klicken Sie einfach auf den Schalter Zug hinzufgen.

    Tip: ber die Tasten F2 und F3 knnen direkt die letzten beiden Analyse-Engines gestartet werden, ohne dies nochmal auswhlen zu mssen.

    Die Liste der Analyse-Engines

    Scid behlt eine Liste der von Ihnen benutzen Engines mit einer geschtzten Elo-Zahl (wenn Sie eine Schtzung machen) und dem Datum der letzten Benutzung. Sie knnen diese Liste nach Namen, Elo-Zahl oder Datum sortieren. Whlen Sie Neu oder Bearbeiten, um eine neue Engine zur Liste hinzuzufgen oder Details eines bestehenden Eintrags zu bearbeiten.

    Engine-Kommandos und Verzeichnisse

    Fr jede Engine mssen Sie die aufzurufende Programmdatei angeben und das Verzeichnis, in dem Scid sie starten soll.

    Die hufigste Ursache von Problemen beim Start einer Engine ist die Wahl des Verzeichnisses, in dem die Engine laufen soll. Einige Engines bentigen eine Initialisierung oder eine Erffnungsbuchdatei in ihrem Startverzeichnis, um ordnungsgem zu laufen. Andere Engines (so wie Crafty) schreiben Logdateien in dem Verzeichnis, in dem sie gestartet wurden, Sie mssen sie also in einem Verzeichnis aufrufen, fr das Sie Schreibrecht haben. Wenn fr das Verzeichnis einer Engine "." angegeben ist, wird Scid sie einfach im aktuellen Verzeichnis starten.

    Wenn also eine Engine, die in Scid laufen sollte, nicht startet, versuchen Sie es mit anderen Verzeichniseinstellungen. Um zu vermeiden, da Engines Logdateien in vielen verschiedenen Verzeichnissen erstellen, empfehle ich, Engines im Verzeichnis der Scid-Benutzerdateien zu starten (da, wo sich die Datei scid.exe bei Windows befindet bzw. ~/.scid/ bei Unix); in der Dialogbox fr die Engine-Einstellungen gibt es einen Schalter scid.exe dir fr Windows bzw. ~/.scid fr Unix, mit dem Sie die Engine in diesem Verzeichnis starten lassen knnen.

    Training

    Mit dem Schalter Training knnen Sie gegen die Analyse-Engine spielen. Die Bedenkzeit fr jeden Zug ist fest vorgegeben und die Analyse-Ergebnisse werden nicht angezeigt, wenn der Trainingsmodus eingeschaltet ist.

    Partie kommentieren

    Der Schalter Variante hinzufgen im Analysefenster fgt die laufende Bewertung und beste Variante als neue Variante der Partie hinzu.

    Man kann das fr mehrere Zge mit dem Schalter Kommentieren automatisieren. Sie werden zur Eingabe einiger Kommentar-Optionen aufgefordert, dann wird in den Autoplay-Modus geschaltet. Wenn der Autoplay-Modus aktiviert und das Analysefenster geffnet ist, wird die beste Variante mit Stellungsbewertung zu jeder Position hinzugefgt, da sich der Autoplay-Modus durch die Partie bewegt. Nur Stellungen von der aktuellen Stellung bis zum Partieende (oder bis zum Abbruch des Autoplay-Modus) werden kommentiert, so da Sie Kommentare zu Erffungszgen unterdrcken knnen, indem Sie vor Aktivierung des Autoplay-Modus zu einer Mittelspielstellung gehen.

    Die automatische Kommentierung kann jederzeit durch Ausschalten des Autoplayer-Modus abgebrochen werden, z.B. durch Drcken der Esc-Taste im Hauptfenster.

    Zur Vereinfachung steht der Kommentar-Schalter nur in dem Fenster zur Verfgung, das als erste Analyse-Engine geffnet wurde. Wenn Sie eine Engine als Analyse-Engine Nr.2 ffnen, knnen Sie sie nicht zur Partiekommentierung nutzen.

    Das Analysebrett

    Anklicken des Schachbrett-Icons in einem Analysefenster zeigt oder versteckt das Analysebrett, welches die Position nach der aktuell besten Variante der Engine zeigt. Das funktioniert fr die meisten Scid-kompatiblen Engines, aber nicht unbedingt fr alle; es hngt ganz davon ab, welche Zugnotation eine Engine verwendet.

    Engine-Prioritt

    Falls eine Engine zu viel CPU-Zeit verbraucht und die Benutzung von Scid oder anderen Applikationen beeintrchtigt, kann das Einschalten der Checkbox Niedrige CPU-Prioritt helfen; es weist der Engine eine geringe Prioritt frs Proze-Scheduling zu.

    Schnittstellen-Details

    Fr die Benutzung des Analysefensters bentigen Sie ein Schachprogramm, welches das UCI oder WinBoard/Xboard-Protokoll untersttzt.

    Bei Winboard-Engines sendet Scid beim Programmstart die Befehle xboard, post und protover 2 zur Engine, und nutzt die Befehle setboard und analyze zur effizienteren Kommunikation, wenn die Engine in ihrer Antwort anzeigt, da sie diese untersttzt. Wenn die Engine den Befehl setboard nicht untersttzt, wird sie fr Partien, die nicht mit der Standard-Ausgangsstellung beginnen, keine Analysen liefern knnen.

    Programmen, die den Befehl analyze nicht untersttzen, sendet Scid nach jeder nderung der Stellung folgende Kommandos: new und force, dann die Partiezge zur aktuellen Position, danach go.

    Bob Hyatt's exzellentes frei verfgbares Schachprogramm Crafty benutze und empfehle ich zur Analyse mit Scid. Aber auch andere WinBoard- oder XBoard-kompatible Programme sind erfolgreich getestet worden. Ein paar Websites zum Herunterladen einiger Engines sind nachfolgend aufgefhrt.

    Crafty: ftp://ftp.cis.uab.edu/pub/hyatt/

    wbec-ridderkerk.nl (mit vielen Links auf aktuelle Schach-Engines): http://wbec-ridderkerk.nl/html/lastupdates.htm

    Gnuchess: http://www.gnu.org/software/chess/chess.html

    The Crazy Bishop: http://remi.coulom.free.fr/

    (Aktualisiert: Scid 3.6.21, Dezember 2007)

    } ############################### ### Comment editor window help: set helpTitle(D,Comment) "Kommentareditor" set helpText(D,Comment) {

    Der Kommentareditor

    Mit dem Kommentareditor knnen Sie den Zgen der aktuellen Partie Kommentare und symbolische Kommentarzeichen hinzufgen.

    Kommentarzeichen

    Scid verwendet den PGN-Standard fr Kommentarzeichen und akzeptiert NAG-Werte fr Anmerkungen (NAG = numeric annotation glyph, "numerisches Anmerkungszeichen"). Einige der meistgebruchlichen Symbole (wie "!" oder "+-") werden als solche ausgegeben und haben zur schnelleren Eingabe einen Schalter im Kommentareditor. Fr andere Symbole knnen Sie den jeweiligen numerischen NAG-Wert, eine Zahl von 1 bis 255, eingeben. Zum Beispiel bedeutet der NAG-Wert 36 "Wei besitzt die Initiative" und wird im PGN-Text der Partie als "$36" ausgegeben.

    Zu den NAG-Werten, die durch den PGN-Standard definiert werden, siehe auch die Hilfeseite NAG-Werte.

    Hinweis: Sie knnen die blichen Bewertungssymbole fr Schachzge (!, ?, !!, ??, !? und ?!) direkt im Haupfenster eingeben, ohne den Kommentareditor zu verwenden, indem Sie das jeweilige Symbol gefolgt von der [Eingabe]-Taste eintippen. Das ist besonders ntzlich beim Schachzge eingeben ber die Tastatur.

    Kommentare

    Sie knnen Kommentare im bereitgestellten Textbereich editieren und dabei die Leeren-, Umkehren- und Speichern-Schalter verwenden. Sie brauchen den Schalter "Speichern" nicht anzuklicken, um einen Kommentar zu aktualisieren; dies geschieht automatisch, wann immer Sie zu einer anderen Partiestellung gehen.

    Felder einfrben

    Sie knnen jedes Feld mit einer beliebigen Farbe einfrben, indem Sie ein besonderes, an irgendeiner Stelle im Kommentar eingebettetes Kommando verwenden. Das Format dieses Kommandos ist:

    • [%mark feld farbe] ,

    wobei feld ein Feldname wie d4 ist und farbe irgendeine bekannte Farbbezeichnung (wie etwa red, blue4, darkGreen, lightSteelBlue, etc.) oder ein RGB-Code (ein # gefolgt von 6 Hexadezimalziffern, wie z.B. #a0b0c8). Die Standardfarbe, falls die Farbangabe weggelassen wird, ist Rot.

    Ein Kommentar kann eine beliebige Anzahl von Farbkommandos enthalten, aber jedes mu ein eigenes [%mark ...]-Tag-Feld haben. Beispielsweise wird der Kommentartext

    "Jetzt ist d6 [%mark d6] geschwcht und kann vom Springer auf b5 [%mark b5 #000070] angegriffen werden."

    das Feld d6 rot und das Feld b5 in der dunkelblauen Farbe #000070 einfrben.

    Pfeile einzeichnen

    Sie knnen mit einem speziellen Kommentar-Kommando, hnlich dem oben beschriebenen zum Frben von Feldern, einen Pfeil von einem Feld zum anderen zeichnen. Das Format ist:

    • [%arrow vonFeld nachFeld farbe]

    wobei vonFeld und nachFeld Feldbezeichnungen wie d4 sind und farbe ein bekannter Farbname (wie z.B. red, blue4, etc.) oder RGB-Code (wie #a0b0c0) ist. Ohne Farbangabe wird standardmig Rot genommen.

    Beispiel: Der Kommentartext

    "Springer auf c3 und Lufer auf c4 kontrollieren das schwache Feld d5. [%arrow c3 d5 red] [%arrow c4 d5 blue]"

    zeichnet einen roten Pfeil von c3 nach d5 und einen blauen von c4 nach d5.

    (Aktualisiert: Scid 3.2, Februar 2002)

    } ########################### ### Crosstable window help: set helpTitle(D,Crosstable) "Kreuztabelle" set helpText(D,Crosstable) {

    Das Kreuztabellenfenster

    Das Kreuztabellenfenster zeigt die Turnierkreuztabelle zur aktuellen Partie. Jedesmal, wenn sie das Fenster aktualisieren (indem Sie den "Aktualisieren"-Schalter anklicken, im Kreuztabellenfenster die [Eingabe]-Taste drcken oder im Haupt- oder Partielisten-Fenster die Tastenkombination [Strg]-[Umschalt]-X bettigen), sucht Scid alle Partien vom selben Turnier wie die aktuelle Partie.

    Jede Partie, die bis zu drei Monate vor oder nach der aktuellen Partie gespielt wurde und exakt dieselben Turnier- und Ortsangaben enthlt, wird als Partie dieses Turniers betrachtet.

    Ein Einfachklick mit der linken Maustaste auf irgendein Ergebnis in der Kreuztabelle ldt die entsprechende Partie. Sie knnen alle Partien des Turniers mit dem Schalter Zum Filter addieren des Kreuztabellenfensters zum Filter hinzufgen.

    Mens des Kreuztabellenfensters

    Im

    Datei-Men knnen Sie die aktuelle Tabelle im Text-, LaTeX- oder HTML-Format in eine Datei ausgeben.

    Das

    Ausgabe-Men erlaubt Ihnen, das Tabellenformat auszuwhlen: Jeder gegen jeden, Schweizer System, K.o.-System oder Automatisch.

    Das Format "Jeder gegen jeden" (fr Rundenturniere) ist auf 30 Spieler limitiert, aber "Schweizer System" (fr Turniere mit vielen Spielern) kann bis zu 200 Spieler und 20 Runden ausgeben. Die Standardeinstellung ist Automatisch, was fr jedes Turnier das beste Format auswhlt.

    Beachten Sie, da Scid den Runden-Eintrag jeder Partie verwendet, um eine Kreuztabelle nach Schweizer System zu erstellen, Sie werden daher keine Partien in der Schweizer-System-Tabelle sehen, wenn sie keine numerischen Runden-Angaben haben: 1, 2, 3, etc.

    Im Ausgabe-Men knnen Sie auch das Format der Datenausgabe nach Ihren Wnschen einstellen, um Wertungszahlen, Lnder oder Titel ein- oder auzublenden. Sie knnen auch whlen, ob beim Schweizer System die Farbzuteilung angezeigt werden soll.

    Die Option Punktgruppen wirkt sich nur dann auf das Aussehen der Tabelle aus, wenn die Spieler nach Punkten sortiert werden: sie bewirkt das Einfgen einer Leerzeile zwischen Spielergruppen mit gleicher Punktzahl.

    Das Men

    Sortieren erlaubt es Ihnen, die Spieler nach Namen, Elo-Zahlen oder Punkten zu sortieren; Standardeinstellung ist nach Punkten.

    Das

    Farben-Men ermglicht es Ihnen, Farbausgabe (Hypertext) ein- oder auszuschalten. Da es sehr zeitaufwendig ist, groe Kreuztabellen in HTML zu formatieren und auszugeben, wird Ihnen die Option Text bei groen Turnieren eine Menge Zeit einsparen. Allerdings knnen Sie im Text-Modus keine Spieler oder Partien anklicken.

    Dubletten in Kreuztabellen

    Um sinnvolle Resultate mit der Kreuztabelle zu erzielen, sollten Sie Dubletten zum Lschen markieren, und Ihre Partien sollten eine einheitliche Schreibweise fr Spieler-, Orts- und Turniernamen haben. Zu Hilfen beim Lschen der Dubletten und Editieren (oder berprfen der Schreibweisen) von Spieler-, Turnier-, Ortsnamen siehe die Seite Datenbank-Wartung.

    (Aktualisiert: Scid 3.1, Dezember 2001)

    } ########################### ### Database switcher help: set helpTitle(D,Switcher) "Datenbank-Umschalter" set helpText(D,Switcher) {

    Der Datenbank-Umschalter

    Der Datenbank-Umschalter bietet eine Darstellung, die es besonders einfach macht, zwischen Datenbanken zu wechseln oder Dateien zu kopieren. Der Name, Filter-Status und Icon jeder Datenbank werden angezeigt, und die aktive Datenbank ist durch einen gelben Hintergrund hervorgehoben.

    Sie knnen den Datenbank-Umschalter aus dem

    Fenster-Men starten oder durch die Tastenkombination Strg+D.

    Um alle ausgewhlten (gefilterten) Dateien einer Datenbank in eine andere zu kopieren, ziehen Sie sie mit gedrckter linker Maustaste in das Zielfeld. Sie sehen dann eine Nachfrage (falls die Zieldatenbank nicht die Ablage ist), ob die Dateien kopiert werden sollen, oder eine Fehlermeldung, falls die Dateien nicht kopiert werden knnen (z.B. wenn die gewhlte Datenbank nicht geffnet ist).

    Drcken Sie die rechten Maustaste ber einer Datenbank, erscheint ein Kontextmen zu dieser Datenbank, mit dem Sie das Datenbank-Icon ndern oder den Filter zurcksetzen knnen. In diesem Men knnen Sie auch die Fensterausrichtung ndern (um die Datenbankfelder vertikal oder horizontal anzuordnen), was fr kleinere Bildschirme recht ntzlich ist.

    (Aktualisiert: Scid 3.1, Dezember 2001)

    } ###################### ### Email window help: set helpTitle(D,Email) "Email-Fenster" set helpText(D,Email) {

    Das Email-Fenster

    Scids Email-Manager ermglicht es Ihnen, Ihre Email-Fernschachkorrespondenz zu verwalten. Wenn Sie kein Email-Schach spielen, ist dies fr Sie nicht von Interesse. Aber wenn Sie Fernschach per Email spielen, knnen Sie Ihre Email-Nachrichten direkt von Scid aus versenden!

    Um den Email-Manager zu benutzen:

    • 1) Erstellen Sie die Partie(en) fr Ihren Gegner in der Datenbank.
    • 2) Whlen Sie Hinzufgen im Email-Manager und geben Sie die Daten Ihrer Gegner ein: Name, Email-Adresse und die Zahl der Partien in der Datenbank.
    • 3) Whlen Sie Email versenden im Email-Fenster, wenn Sie Partiezge ausgefhrt haben und eine Nachricht versenden wollen.

    Wenn Sie eine E-Mail verschicken, erstellt Scid die Nachricht mit den Partien im PGN-Format ohne jegliche Kommentare, Anmerkungen oder Varianten, denn Sie wollen Ihrem Gegner in der Regel nicht Ihre Analysen zeigen. Bevor Sie die Nachricht verschicken, knnen Sie sie noch editieren, um bedingte Zge oder sonstigen Text hinzuzufgen.

    Fr jeden Gegner knnen Sie eine beliebige Anzahl von Partien haben; meistens sind es eine oder zwei. Beachten Sie, da Scid nicht berprft, ob sich die Zahl der Partien gendert hat. Passen Sie also auf, da Sie nicht Partien lschen oder die Datenbank sortieren, nachdem Sie die Daten Ihrer Gegner eingegeben haben, denn das wrde die Partien umstellen und die Partienummern fr Ihre Gegner wren nicht mehr korrekt.

    Einschrnkungen

    Scid besitzt noch nicht die Fhigkeit, Ihren E-Mail-Ordner zu berprfen, Sie mssen daher die Zge Ihrer Kontrahenten manuell eingeben.

    Konfiguration

    Eine Kopie jeder von Scid gesendeten E-Mail wird in der Datei ~/.scid/scidmail.log gespeichert. Wenn Sie sie in einer anderen Datei speichern mchten, mssen Sie die Datei tcl/start.tcl bearbeiten und Scid neu erstellen ("make scid").

    Scid kann E-Mails ber einen SMTP-Server oder mit sendmail versenden. Mit dem Schalter Einstellungen im E-Mail-Manager knnen Sie auswhlen, welche Mglichkeit Sie verwenden wollen.

    Scid speichert die Daten Ihrer Gegner fr eine Datenbank in einer Datei mit demselben Namen wie die Datenbank und der Endung ".sem".

    (Aktualisiert: Scid 3.0, November 2001)

    } ############################ ### File Finder window help: set helpTitle(D,Finder) "Dateifinder" set helpText(D,Finder) {

    Das Dateifinderfenster

    Der Dateifinder hilft Ihnen, Dateien jedes von Scid benutzten Typs zu finden: Datenbanken, PGN-Dateien, EPD-Dateien und Repertoire-Dateien.

    Der Finder zeigt Ihnen ntzliche Informationen zu jeder Datei, wie etwa ihre Gre (siehe unten) und Datum der letzten Modifikation. Sie knnen jede angezeigte Datei durch einen linken Mausklick ffnen.

    In Unterverzeichnissen nachsehen

    Wenn Sie alle Dateien in allen Unterverzeichnissen des aktuellen Verzeichnisses finden wollen, schalten Sie Unterverzeichnisse beachten ein. Dann durchsucht Scid rekursiv jedes Unterverzeichnis nach Dateien, die Scid ffnen kann. Wenn viele Unterverzeichnisse vorhanden sind, kann dies eine Weile dauern, Sie sollten das also nicht fr ein Verzeichnis nahe dem Hauptverzeichnis des Dateisystems tun. Sie knnen die Dateisuche mit dem Stop-Schalter unterbrechen.

    Dateigren

    Die Bedeutung der vom Finder angegebenen Dateigre hngt vom Typ der Datei ab. Fr Scid-Datenbanken und -PGN-Dateien ist es die Anzahl der Partien. Fr EPD-Dateien ist es die Anzahl der Positionen. Fr Repertoiredateien ist es die Anzahl der (gewhlten oder ausgeschlossenen) Varianten.

    Fr alle Dateitypen mit Ausnahme von Scid-Datenbanken ist die Dateigre eine Schtzung durch Auswertung lediglich der ersten 64 Kilobytes der Datei, die Gre ist daher fr Dateien grer als 64 Kilobytes mglicherweise nicht korrekt. Geschtzte Gren werden mit einer Tilde (~) angezeigt zum Zeichen dafr, da sie nicht exakt sind.

    (Aktualisiert: Scid 2.7, September 2001)

    } ######################### ### GameList window help: set helpTitle(D,GameList) "Partieliste" set helpText(D,GameList) {

    Das Partielistenfenster

    Das Partielistenfenster gibt eine einzeilige Zusammenfassung jeder Partie im aktuellen Filter aus.

    Navigation in der Partieliste

    Sie knnen in der Partieliste mit dem Schieberegler oder den vier Schaltern unterhalb der Liste blttern. Sie knnen auch die Tasten [Pos1], [End], [Bild auf], [Bild ab] sowie die Cursortasten verwenden, um mit der Tastatur zu scrollen.

    Sie knnen die nchste Partie in der Liste, die einen bestimmten Text im Wei-, Schwarz-, Turnier- oder Ortsfeld enthlt, mit dem Text finden-Eingabefeld finden.

    Aktionen mit Partien in der Liste

    Um eine Datei aus der Liste zu laden, klicken Sie sie doppelt mit der linken Maustaste an. Ein Klick mit der mittleren Maustaste zeigt die Anfangszge der Partie; das ist ntzlich, wenn man vor dem Laden einer Partie die Erffnung nachsehen will.

    Die rechte Maustaste produziert ein Men fr die ausgewhlte Partie, in dem Sie die Partie lschen (oder "entlschen") oder aus dem Filter ausschlieen knnen. Beachten Sie, da das Lschen einer Datei lediglich ihre Lschmarkierung setzt; sie verbleibt solange in der Datenbank, bis Sie diese komprimieren.

    Die Partieliste konfigurieren

    Um die Partieliste zu konfigurieren, klicken Sie mit der linken oder rechten Maustaste auf eine Spaltenberschrift. Sie knnen die Breite verndern, Spalten hinzufgen oder entfernen und die Farbe jeder Spalte verndern.

    Wenn Sie nur die Spaltenbreite ndern wollen, dafr gibt es eine Tastenkombination: klicken Sie bei gedrckter [Strg]- (oder [Umschalt])-Taste mit der linken Maustaste auf die Spaltenberschrift, wird die Spalte kleiner, mit der rechten Maustaste, wird sie breiter.

    Gre der Partieliste ndern

    Die Gre der Partieliste wird jedesmal in der Optionsdatei gespeichert, wenn Sie Ihre Einstellungen sichern. Wenn Sie also wollen, da die Dateiliste standardmig 10 Partien anzeigt, verndern Sie einfach die Gre des Partielistenfensters und whlen dann Optionen speichern im

    Optionen-Men.

    Partien betrachten und mischen

    Das Kontextmen der Partieliste (und einiger andere Fenster, wie etwa des Erffnungsbericht-Fensters und der Liste der beste(n) Partien des Zugbaum-Fensters) erlauben die Auswahl, eine Partie zu laden, zu betrachten oder zu mischen.

    Wenn Partie betrachten ausgewhlt wird, werden die Zge der ausgewhlten Partie (ohne Kommentare oder Varianten) in einem separaten Fenster ausgegeben. Das ist eine ntzliche Methode, um eine andere Partie im voraus anzuschauen, ohne die aktuell geladene Partie zu berhren.

    Die Funktion Partie mischen ermglicht es, die ausgewhlte Partie als Variante der aktuellen Partie einzufgen. Scid findet den letztmglichen Zeitpunkt, wo die gewhlte Partie von der aktuellen abweicht (unter Bercksichtigung von Zugumstellungen), und fgt an dieser Position eine Variante ein. Sie knnen die Zahl der angezeigten Zge der gewhlten Partie ndern, je nachdem, ob Sie die ganze Partie oder nur die Erffnungsphase hinzufgen wollen.

    (Aktualisiert: Scid 3.2, Februar 2002)

    } ####################### ### Import window help: set helpTitle(D,Import) "Importfenster" set helpText(D,Import) {

    Das Importfenster

    Scids Importfenster ermglicht es Ihnen, auf einfache Weise eine Partie im PGN-Format aus einer anderen Anwendung oder einem anderen Fenster in Scid einzufgen.

    In den groen Fensterbereich tippen oder fgen Sie den Partietext im PGN-Format ein, und im grauen Bereich darunter erscheinen Fehlermeldungen oder Warnungen.

    Die aktuelle Partie im Importfenster bearbeiten

    Das Importfenster bietet auch eine weitere, bequeme Mglichkeit fr nderungen an der aktuellen Partie: Sie knnen die aktuelle Partie in das Importfenster einfgen (mit dem Schalter Aktuelle Partie einfgen), den Text editieren und danach auf Import klicken.

    PGN-Tags im Importfenster

    Scid erwartet PGN-Eintrge ("header tags") wie

    • [Result "*"]
    vor den Zgen, aber Sie knnen auch ein Partiefragment wie
    • 1.e4 e5 2.Bc4 Bc5 3.Qh5?! Nf6?? 4.Qxf7# 1-0
    ohne PGN-Tags einfgen, und Scid wird es importieren.

    PGN-Dateien in Scid verwenden

    Wenn Sie eine PGN-Datei in Scid verwenden wollen, ohne sie vorher mit pgnscid zu konvertieren, gibt es zwei Mglichkeiten.

    Zum einen knnen Sie die Partien der Datei mit der Men-Option

    Werkzeuge: Datei mit PGN-Partien importieren ... importieren.

    Die Alternative wre, die PGN-Datei direkt in Scid zu ffnen. Allerdings werden PGN-Dateien nur zum Lesen geffnet und bentigen mehr Speicher als eine vergleichbare Scid-Datenbank, diese Mglichkeit ist also nur fr relativ kleine PGN-Dateien zu empfehlen.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ######################## ### Reports help: set helpTitle(D,Reports) "Berichte" set helpText(D,Reports) {

    Berichte

    Bei Scid ist ein Bericht ein Dokument, das Informationen ber eine bestimmte Position und/oder einen bestimmten Spieler enthlt. Scid kann zwei Berichtstypen erstellen: Erffnungsberichte und Spielerberichte.

    Erffnungsberichte

    Scid kann einen Erffnungsbericht erstellen, der interessante Informationen ber die aktuelle Erffnungsposition ausgibt. Um den Erffnungsbericht zu erstellen, vergewissern Sie sich als erstes, da die dargestellte Position auch die ist, fr die Sie den Bericht haben wollen, dann whlen Sie Erffnungsbericht im Men

    Werkzeuge.

    Das Erffnungsberichts-Fenster gibt die Ergebnisse des von Scid erstellten Berichts aus. Das Datei-Men enthlt Optionen, um den Bericht in einer Datei zu speichern, im Text-, HTML- oder LaTeX-Format.

    Die ersten Abschnitte des Berichts prsentieren Informationen zu den Partien, die die Berichtsposition erreicht haben, und zu den Zgen, die in dieser Stellung gespielt wurden. Sie knnen erkennen, ob die Erffnung populrer wird, ob sie zu vielen Kurzremisen fhrt und mit welchen Zugfolgen (Zugumstellungen) sie erreicht wird.

    Der Abschnitt ber positionelle Themen informiert ber die Hufigkeit bestimmter typischer Themen der Berichtspartien. Zu diesem Zweck werden die ersten 20 Zge (also die ersten 40 Positionen ab Ausgangsstellung) jeder Partie untersucht. Um als eine Partie eingestuft zu werden, die ein bestimmtes Thema enthlt, mu dieses Thema mindestens viermal innerhalb der ersten 20 Zge der Partie vorkommen. Damit wird vermieden, da durch kurzzeitiges Auftreten eines Themas (wie etwa ein isolierter Damenbauer, der sofort geschlagen wird) die Ergebnisse verflscht werden.

    Der letzte und lngste Teil des Berichts ist die Theorie-Tabelle. Wenn Sie den Bericht in einer Datei sichern, knnen Sie whlen, ob Sie nur die Theorie-Tabelle, einen kompakten Bericht ohne die Theorie-Tabelle oder den gesamten Bericht sichern wollen.

    Fast alle Abschnitte des Berichts knnen mit den Erffnungsberichts-Optionen eingestellt oder ein- und ausgeschaltet werden, Sie knnen also den Bericht so anpassen, da er nur die fr Sie interesanten Informationen enthlt.

    Bei den meisten Informationen im Berichtsfenster, die farbig dargestellt sind, fhrt ein linker Mausklick zu einer Aktion. Zum Beispiel knnen Sie eine angefhrte Partie durch Anklicken laden oder den Filter durch Klicken auf ein Positionsthema so einstellen, da er nur die Berichtspartien mit diesem Thema enthlt.

    Favoriten

    Mit dem

    Favoriten-Men des Berichtsfensters haben Sie die Mglichkeit, eine Liste bevorzugter Erffnungsbericht-Positionen zu verwalten und sehr einfach Berichte fr genau diese Positionen zu erstellen. Wenn Sie "Bericht hinzufgen..." im Favoriten-Men whlen, wird die aktuelle Stellung als besondere Berichtsposition aufgenommen. Sie werden aufgefordert, einen Namen anzugeben, der dann als Dateiname verwendet wird, wenn Favoritenberichte erstellt werden.

    Whlen Sie "Berichte erzeugen..." im Favoriten-Men, um einen Bericht fr jede Ihrer bevorzugten Positionen aus der aktuellen Datenbank zu erstellen. In einem Dialogfenster knnen Sie dann Typ und Format der Berichte angeben sowie ein Verzeichnis, wo die Berichtsdateien gespeichert werden sollen. Die passende Dateiendung fr das gewhlte Ausgabeformat wird dann automatisch ergnzt (z.B. ".html" fr das HTML-Format).

    Spielerberichte

    Ein Spielerbericht hnelt sehr stark einem Erffnungsbericht, enthlt aber Informationen ber Partien eines einzelnen Spielers mit Wei oder mit Schwarz. Sie knnen einen Spielerbericht ber das Werkzeuge-Men oder aus dem Spielerinformations-Fenster heraus erzeugen.

    Ein Spielerbericht kann entweder fr alle Partien eines bestimmten Spielers mit einer bestimmten Farbe erstellt werden oder nur fr die Partien, die die aktuelle Stellung des Hauptfenster-Bretts erreicht haben.

    Beschrnkungen

    Fr die meisten Berichtsdaten gibt es eine Beschrnkung auf 2000 Partien, wenn die Berichtsposition also mehr als 2000 Partien enthlt, knnen einige Resultate etwas ungenau sein.

    Auerdem gibt es ein Limit von 500 Partien fr die Theorie-Tabelle. Wenn die Berichtsposition in mehr als 500 Partien vorkommt, werden zur Erstellung der Theorie-Tabelle nur die 500 Partien mit den hchsten durchschnittlichen Elo-Zahlen herangezogen. Die Anzahl der Partien zum Aufbau der Theorie-Tabelle ist einstellbar.

    (Aktualisiert: Scid 3.5, Februar 2003)

    } #################### ### PGN window help: set helpTitle(D,PGN) "PGN-Fenster" set helpText(D,PGN) {

    Das PGN-Fenster

    Scids PGN-Fenster gibt den Inhalt der aktuellen Partie in der Standard-PGN-Darstellung aus. Im Partietext erscheinen Kommentare in {geschweiften} und Varianten in (runden) Klammern.

    PGN-Format

    PGN (Portable Game Notation) ist ein verbreiteter Standard zum Transfer von Schachpartien zwischen Computerprogrammen. Eine PGN-Partie besteht aus zwei Abschnitten. Der erste Teil ist der Vorspann ("Header"), der Eintragungen ("tags") wie z.B. [White "Kasparov, Gary"] und [Result "1/2-1/2"] enthlt.

    Der zweite Abschnitt enthlt die eigentlichen Partiezge in algebraischer Standardnotation (SAN) zusammen mit eventuellen Varianten, Kommentarsymbolen und Kommentaren.

    Aktionen im PGN-Fenster

    Sie knnen mit dem PGN-Fenster innerhalb der Partie navigieren: Mit einem Linksklick auf einen Zug gehen Sie zu diesem Zug, mit einem Linksklick auf einen Kommentar knnen Sie diesen editieren. Die Cursortasten (sowie die Tasten v und z fr Variante beginnen bzw. verlassen) funktionieren zum Navigieren in der Partie genau wie im Hauptfenster.

    Einstellungen fr PGN-Ausgabe

    Das Men des PGN-Fensters enthlt Optionen, die die Ausgabe des Fensters betreffen. Scid kann die Partie farbig oder als reinen Text darstellen -- siehe das

    Ausgabe-Men im PGN-Fenster. Die farbige Darstellung ist leichter zu lesen und erlaubt Ihnen, Zge und Kommentare mit der Maus auszuwhlen, aber sie ist viel langsamer zu aktualisieren. Fr sehr lange Partien sollten Sie vielleicht die einfache Textausgabe whlen.

    Auch das Format der Kommentare und Varianten knnen Sie verndern, indem Sie sie zwecks besserer bersichtlichkeit eingerckt oder in separaten Zeilen ausgeben lassen.

    Die PGN-Ausgabe-Optionen und die Gre des PGN-Fensters werden, wann immer Sie Optionen speichern im

    Optionen-Men whlen, in der Konfigurationsdatei gesichert.

    (Aktualisiert: Scid 3.1, Dezember 2001)

    } ####################### ### Piece Tracker help: set helpTitle(D,PTracker) "Figurenverteilung" set helpText(D,PTracker) {

    Das Figurenverteilungsfenster

    Die Figurenverteilung bzw. das Figurenverteilungsfenster ist ein Werkzeug, um die Bewegungen bestimmter Figuren in allen Partien des aktuellen Filters nachzuvollziehen und ein Bewegungsmuster (eine "Fuspur") zu erstellen, das aufzeigt, wie oft jedes Feld von dieser Figur besetzt wurde.

    Um die Figurenverteilung zu benutzen, vergewissern Sie sich zuerst, da der Filter die Partien enthlt, die Sie interessieren, z.B. Partien mit einer bestimmten Erffnungsposition oder alle Wei-Partien eines bestimmten Spielers. Dann whlen Sie die Figur, deren Bewegung Sie nachvollziehen wollen, und whlen die unten im Text erluterten Optionen. Danach klicken Sie auf den Schalter Aktualisieren.

    Die Information ber die Figurenbewegungen wird auf zwei Arten dargestellt: eine grafische "Fuspur" und eine Liste mit einer Textzeile pro Feld.

    Auswahl der Figur

    Die Schachfiguren sind unterhalb der "Karte" fr die "Fuspur" gem der Ausgangsstellung angeordnet. Eine einzelne Figur (wie etwa der weie Springer b1 oder der schwarze Bauer d7) kann mit der linken Maustaste ausgewhlt werden, alle Figuren von gleichem Typ und gleicher Farbe (wie z.B. alle weien Bauern oder beide schwarzen Trme) mit der rechten Maustaste.

    Weitere Einstellungen

    Der Zugnummer-Bereich kontrolliert, wann die Figurenverfolgung anfangen und enden soll. Die Standardeinstellung 1-20 (d.h. die Verfolgung endet nach dem 20. Zug von Schwarz) ist gut geeignet zur Untersuchung von Erffnungsthemen, aber (z.B.) ein Bereich von 15-35 wre besser, wenn man Entwicklungen im Mittelspiel betrachten will.

    Es knnen zwei Arten von Statistiken erstellt werden:

    • % der Partien mit Zug auf das Feld: zeigt, welcher Anteil an Filterpartien einen Zug der zu beobachtenden Figur auf jedes Feld enthlt. Das ist die Standardeinstellung und normalerweise die beste Wahl.
    • % der Zeit auf jedem Feld: zeigt den Anteil der Verweildauer der zu beobachtenden Figur auf jedem Feld.

    Hinweise

    Es gibt (mindestens) drei gute Verwendungsmglichkeiten fr die Figurenverteilung: Erffnungsvorbereitung, Mittelspielthemen und Spielervorbereitung.

    Fr die Erffnungsvorbereitung verwenden Sie die Figurenverteilung zusammen mit dem Zugbaum. Indem Sie die Bewegungen von Figuren nachvollziehen, knnen Sie Entwicklungen in der aktuellen Erffnung erkennen, beispielsweise bliche Bauernvorste, Springervorposten und die hufigsten Luferplazierungen. Dabei ist es hilfreich, den Zugbereich nach dem aktuellen Partiezug beginnen zu lassen, so da die Zge, die zur aktuellen Stellung fhrten, nicht in die Statistik einflieen.

    Fr Mittelspielthemen kann die Figurenverteilung ntzlich sein, wenn der Filter einen bestimmten Elo-Bereich enthlt (mit der Partiedaten-Suche) oder vielleicht ein Muster wie "Isolierter Damenbauer von Wei" (mit der Material/Muster-Suche). Stellen Sie den Zugbereich auf einen sinnvollen Wert ein (z.B. 20-40) und verfolgen Sie Figuren, um beispielsweise Bauernvorste im spten Mittelspiel oder frhen Endspiel zu erkennen

    Zur Spielervorbereitung verwenden Sie die Partiedaten-Suche oder die Spieler-Information, um alle Partien einer Farbe eines bestimmten Spielers zu finden. Die Figurenverteilung kann dann genutzt werden um z.B. festzustellen, wie gern der Spieler Lufer fianchettiert, lang rochiert oder einen Bauernkeil bis d5 oder e5 treibt.

    (Aktualisiert: Scid 3.3, April 2002)

    } ##################### ### Player List help: set helpTitle(D,PList) "Spielersuche" set helpText(D,PList) {

    Der Spielerfinder

    Der Spielerfinder gibt eine Namensliste von Spielern aus der aktuellen Datenbank aus. Die Auswahl eines Spielers ffnet das Spieler-Informations-Fenster mit detaillierteren Informationen ber diesen Spieler.

    Es werden 5 Spalten ausgegeben, die jeweils den Namen, die hchste Elo-Zahl, Anzahl der gespielten Partien sowie das Jahr der ltesten und neueste Partie anzeigen. Ein Klick auf eine Spalten-berschrift sortiert die Liste nach dieser Spalte.

    Die Kontrollschalter unterhalb der Liste ermglichen Ihnen, den Inhalt der Liste zu filtern. Sie knnen die maximale Listengre ndern, einen Spielernamen-Anfang eingeben (Gro-/Kleinschreibung wird ignoriert, z.B. sucht "ada" nach "Adams") sowie den Elozahlen-Bereich oder die Anzahl der gespielten Partien eingrenzen.

    (Aktualisiert: Scid 3.4, August 2002)

    } ##################### ### Player Info help: set helpTitle(D,PInfo) "Spielerinformation" set helpText(D,PInfo) {

    Die Spieler-Information

    Das Fenster Spieler-Information wird jedesmal aufgebaut oder aktualisiert, wenn Sie im Informationsbereich (unterhalb des Schachbretts) oder im Kreuztabellen-Fenster mit der linken Maustaste auf einen Spielernamen klicken.

    Es gibt (hoffentlich) ntzliche Informationen ber die Spieler aus, einschlielich ihrer Erfolgsrate mit Wei und Schwarz, ihrer bevorzugten Erffnungen (nach ECO-Code) und ihrer Elo-Entwicklung.

    Jede Prozentangabe ist das Ergebnis, das man aus Sicht des Spielers erwartet (Erfolgsrate) -- d.h. ein hherer Wert ist fr die Spieler immer besser, ob als Wei oder Schwarz.

    Sie knnen die ELO-Entwicklung des Spielers grafisch dargestellt sehen, wenn Sie die Taste ELO-Zahl-Verlauf anklicken.

    Jede rot dargestellte Zahl knnen Sie mit der linken Maustaste anklicken, um den Filter so einzustellen, da er die entsprechenden Partien enthlt.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ########################### ### Repertoire editor help: set helpTitle(D,Repertoire) "Repertoire-Editor" set helpText(D,Repertoire) {

    Der Repertoire-Editor

    Mit dem Repertoire-Editor knnen Sie Repertoire-Dateien erstellen, lesen oder bearbeiten. Eine Repertoiredatei ist eine Liste der Erffnungspositionen, die Sie erreichen wollen oder zu vermeiden suchen; Sie knnen sie zur Organisation Ihrer Erffnungsprferenzen und zur Datenbanksuche in Scid verwenden.

    Repertoire-Gruppen und -Varianten

    Ein Repertoire enthlt zwei Elementtypen: Gruppen und Varianten. Gruppen sind nicht tatschlich Teil Ihres Repertoires; sie werden nur zur Strukturierung verwendet, so wie Verzeichnisse Dateien auf einem Datentrger strukturieren.

    In einem Repertoire gibt es in zwei Arten von Varianten: eingeschlossene Varianten reprsentieren Erffnungspositionen, an denen Sie interessiert sind und die Sie erreichen wollen, und ausgeschlossene Varianten, die Sie nicht spielen wollen und zu vermeiden suchen. Wenn Sie z.B. Angenommenes Damengambit (1.d4 d5 2.c4 dxc4) mit Schwarz spielen und nach 3.e4 alle Zge auer 3...Sf6 spielen, htten Sie 1.d4 d5 2.c4 dxc4 3.e4 als eingeschlossene Variante und 1.d4 d5 2.c4 dxc4 3.e4 Sf6 als ausgeschlossene Variante.

    Kommentare und Anmerkungen

    Jede Gruppe oder Variante kann Kommentare enthalten. Es gibt zwei Typen: kurze (einzeilige) Kommentare erscheinen (in Rot) in der Repertoire-Hierarchie neben den Zgen der Gruppe oder Variante, whrend ein langer (mehrzeiliger) Kommentar nur angezeigt wird, wenn die Gruppe oder Variante ausgewhlt wird.

    Das Fenster des Repertoire-Editors

    Die linke Seite des Fensters zeigt die Repertoire-Hierarchie. Sie knnen die Gruppendarstellung mit einem Klick auf den Ordner auf- bzw. zuklappen, und mit einem Klick auf die Zge der Gruppen oder Varianten whlen Sie diese aus und sehen ihre Kommentare. Eingeschlossene Varianten werden mit einem blauen Haken angezeigt, ausgeschlossene Varianten haben ein rotes Kreuz.

    Wenn eine Variante oder Gruppe einen Kurzkommentar hat, wird er hinter den Zgen angezeigt. Wenn sie einen langen Kommentar hat, wird dies mit ** nach den Zgen angezeigt. Bei den Gruppen steht nach den Zgen eine Zahl in Klammern, die die Anzahl der (ein- und ausgeschlossenen) Varianten anzeigt, die sie jeweils enthalten.

    Nach einem Rechtsklick auf eine Gruppe oder Variante erscheint ein Men mit den verfgbaren Funktionen wie Lschen oder Statusnderung.

    Die rechte Seite des Fensters besteht aus drei Bereichen. Der erste enthlt die Zge der gerade ausgewhlten Variante oder Gruppe. Sie knnen ihn mit der linken Maustaste anklicken, womit Sie die Zge in das Import-Fenster einfgen, was recht ntzlich ist, um die aktuelle Partie mit einer Variante des Repertoires beginnen zu lassen. Der zweite Bereich enthlt den Kurzkommentar der Variante oder Gruppe, der dritte Bereich ihren langen Kommentar.

    Gruppen und Varianten dem Repertoire hinzufgen

    Um eine Variante oder Gruppe hinzuzufgen, fhren Sie einfach ihre Zge auf dem Schachbrett im Hauptfenster aus, whlen dann das Men

    Bearbeiten im Repertoire-Editor und fgen sie als Gruppe, eingeschlossene Variante oder ausgeschlossene Variante hinzu.

    Um eine Gruppe oder Variante zu lschen, klicken Sie sie mit der rechten Maustaste an und whlen im erschienenen Men das entsprechende Kommando.

    Datenbanksuche mit Repertoire-Dateien

    Das Men

    Suchen des Repertoire-Editors ermglicht es Ihnen, mit dem Repertoire in der aktuellen Datenbank zu suchen. Jede Partie wird mit den Positionen im Repertoire verglichen und nur dann erkannt, wenn die weitestverzweigte Repertoire-Position fr eine eingeschlossene Variante gefunden wurde.

    Sie knnen whlen, ob Sie nach dem gesamten Repertoire oder nur nach den ausgegebenen Varianten suchen wollen. Die Suche nach den ausgegebenen Varianten ist nur dann sinnvoll, wenn Sie nur nach einigen Varianten des Repertoires suchen. Beispiel: Ein Repertoire habe zwei Hauptgruppen auf der obersten Ebene, eine fr 1.e4 und eine fr 1.d4. Wenn Sie nur an den e4-Varianten interessiert sind, klappen Sie einfach die Gruppe 1.d4 zu und suchen dann nur nach den ausgegebenen Varianten.

    Weitere Hinweise

    Eine Repertoire-Datei eignet sich sehr gut zum Finden neuer Partien in Ihrem Erffnungssystem. Beispiel: Jedesmal, wenn Sie eine PGN-Datei erhalten und sie Ihrer Haupt-Datenbank hinzufgen (wie etwa die ausgezeichneten wchentlichen PGN-Dateien von The Week In Chess), ffnen Sie einfach die PGN-Datei in Scid und fhren eine Repertoire-Suche durch. Dann knnen Sie die gefilterten Partien betrachten und haben alle Partien, die in Ihrem Repertoire enthalten sind.

    Sie sollten vielleicht zwei Repertoire-Dateien anlegen: eine fr Schwarz und eine fr Wei, so da Sie mit jeder Datei getrennt suchen knnen.

    Eine Repertoire-Datei kann von der Kommanozeile aus geffnet werden, zum Beispiel:
    scid datenbank weiss.sor

    Sie knnen eine Repertoire-Datei (.sor) mit jedem Editor bearbeiten, aber passen Sie auf, da Sie nicht ihr Format verndern, sonst kann sie von Scid nicht geladen oder gesucht werden.

    (Aktualisiert: Scid 2.6, August 2001)

    } ################################## ### Tournament Finder window help: set helpTitle(D,Tmt) "Turnierfinder" set helpText(D,Tmt) {

    Der Turnierfinder

    Der Turnierfinder ermglicht es Ihnen, Turniere in der aktuellen Datenbank zu finden. Er untersucht alle Datenbankpartien und vergleicht Daten mit den gefundenen Turnieren. Es wird angenommen, da zwei Partien zum selben Turnier gehren, wenn sie denselben Turnier- und Ortseintrag haben und innerhalb von drei Monaten gespielt wurden.

    Sie knnen die Liste der Turniere durch die Anzahl der Spieler und Partien, das Datum, die durchschnittliche Elo-Zahl und das Land einschrnken, wenn Sie die Felder unterhalb der Turnierliste ausfllen und dann auf Aktualisieren klicken.

    Die ausgegebene Liste kann nach Datum, Spielerzahl, Partienzahl, durchschnittliche Elo-Zahl, Ort, Turnier oder Nachname des Gewinners sortiert werden. Whlen Sie die Kategorie im

    Sortieren-Men oder klicken Sie auf die Spaltenberschrift, um das Sortierkriterium zu ndern.

    Um die erste Partie eines der aufgefhrten Turniere zu laden, klicken Sie einfach mit der linken Maustaste, wenn die entsprechende Zeile hervorgehoben ist. Damit wird auch das Kreuztabellen-Fenster aktualisiert, falls es geffnet ist. Wenn Sie statt dessen die rechte Maustaste drcken, wird die Partie geladen und das Kreuztabellenfenster geffnet, auch wenn es vorher geschlossen war.

    Es ist eine gute Idee, zur Beschleunigung des Suchprozesses den Datenbereich angemessen einzuschrnken (z.B. hchstens einige Jahre) oder ein einzelnes Land auszuwhlen (mit dem 3stelligen Standard-Lndercode). Damit wird die Zahl der Partien, die Scid bei der Konstruktion von Turnieren aus den Partien bercksichtigen mu, auerordentlich verringert.

    (Aktualisiert: Scid 3.3, April 2002)

    } #################### ### Tree window help: set helpTitle(D,Tree) "Zugbaum" set helpText(D,Tree) {

    Das Zugbaumfenster

    Das Zugbaum-Fenster liefert Informationen ber alle Zge, die in der aktuellen Position in den Datenbankpartien gespielt wurden. Im Zugbaum-Modus wird das Fenster automatisch aktualisiert, sowie sich die Stellung im Hauptfenster ndert. Fr groe Datenbanken ist das evtl. etwas langsam.

    Jedesmal, wenn das Zugbaumfenster aktualisiert wird, wird der Filter zurckgesetzt, und nur die Partien, die die die aktuelle Position enthalten, sind erfat.

    Ein Klick mit der linken Maustaste auf einen Zug im Zugbaumfenster fgt diesen Zug der Partie hinzu.

    Inhalt des Zugbaumfensters

    Das Zugbaumfenster zeigt den ECO-Code (falls vorhanden), die Hufigkeit (als Anzahl der Partien und in Prozent) und die Punkte jedes Zuges an. Die Punkte werden immer aus der Sicht von Wei berechnet, 100% bedeutet also, alle Weispieler gewinnen, und 0% heit nur Schwarzsiege.

    Die Zge im Zugbaumfenster knnen nach Zgen (alphabetisch), ECO-Code, Hufigkeit oder Punkten sortiert werden. Sie knnen die Sortiermethode im Men

    Sortieren ndern.

    Das Fenster "Beste Partien"

    Das Zugbaumfenster besitzt ein Dateimen-Kommando und einen Schalter, um das Fenster Beste Partien zu ffnen, welches eine Liste der am hchsten bewerteten Partien des aktuell gezeigten Astes ausgibt. Die Partien sind nach durchschnittlicher Elo-Zahl sortiert, und Sie knnen die Liste auf Partien mit einem bestimmten Ergebnis beschrnken.

    Zugbaumgrafik

    Das Zugbaumfenster enthlt einen mit Grafik bezeichneten Schalter, der eine grafische Darstellung der relativen Erfolgsrate jedes Zuges in der aktuellen Stellung liefert. Alle Zge, die in mindestens 1% der Partien und mindestens 5mal gespielt wurden, werden dargestellt. Die prozentualen Ergebnisse werden immer aus der Perspektive von Wei gesehen, auch wenn Schwarz am Zug ist.

    In der Zugbaumgrafik ist eine rote Linie eingezeichnet, die den Durchschnitt aller Partien in der aktuellen Position anzeigt, und der Bereich zwischen 50 und 55% (wo der Erwartungswert der meisten Standarderffnungen liegt) ist blau gefrbt. In Meisterpartien erreicht Wei blicherweise etwa 55%.

    Das Zugbaumfenster anbinden

    Jedes Zugbaumfenster ist mit einer geladenen Datenbank verbunden, so dass, sollten mehre Datenbanken geffnet sein, auch mehrere Zugbaumfenster parallel existieren knnen, je eines fr jede Datenbank. Mit dem Schalter Anbinden im Zugbaumfenster kann man nun erreichen, dass eine Datenbank automatisch geschlossen wird, sobald das zugehrige Zugbaumfenster geschlossen wird. Weiterhin werden dann auch alle anderen, mit dem Zugbaumfenster verbundenen Fenster "Beste Partien" oder eine Zugbaumgrafik automatisch mit geschlossen.

    Training

    Wenn der Trainings-Schalter im Zugbaumfenster aktiviert ist, wird Scid jedesmal, wenn Sie einen Zug in der Partie ausfhren, einen zufllig ausgewhlten Zug erwidern. Der Zug, den Scid auswhlt, hngt von der Datenbankstatistik ab, d.h. ein Zug, der in 80% der Datenbankpartien gespielt wurde, wird von Scid mit 80%iger Wahrscheinlichkeit ausgewhlt. Diese Funktion einschalten und dann das Zugbaumfenster verstecken (oder minimieren) und Erffnungen gegen eine groe Datenbank spielen ist eine ausgezeichnete Methode, Ihre Kenntnisse Ihres Erffnungsrepertoires zu testen.

    Den Zugbaum in geffneten EPD-Dateien verwenden

    Fr jede geffnete EPD-Datei enthlt das Zugbaumfenster eine weitere Spalte, die fr jede Position, die mit den angegebenen Zgen erreicht wird, eine kurze (fnf Zeichen) Zusammenfassung des Dateiinhalts anzeigt.

    Die Zusammenfassung knnte eine Bewertung, ein Erffnungscode oder ein Zugvorschlag sein; sie wird der Inhalt des ersten gefundenen EPD-Feldes aus der folgenden Liste sein: ce, eco, nic, pv, pm, bm, id, oder einfach des ersten EPD-Feldes, falls keines der obigen vorhanden ist.

    Fr eine Beschreibung der EPD-Felder siehe die Hilfeseite EPD-Dateien. Wenn die Zusammenfassung das ce-Feld ist, wird sie zur besseren Lesbarkeit als Bewertung in Bauern aus der Sicht von Wei angezeigt (anstatt als Bewertung in Hundertstel Bauern aus der Sicht der am Zug befindlichen Seite, wie sie in der EPD-Datei gespeichert ist).

    Masken zur Konfiguration der Darstellung

    Benutzerdefinierte Maskendateien (.stm) knnen angelegt werden, um die Anzeige der Statistik im Zugabaumfenster zu erweitern. Hiermit knnen einerseits farbige Markierungen, NAG-Codes oder Kommentare fr eine bestimmte Stellung hinzugefgt werden, um beispielsweise kritische Positionen zu markieren.

    Um Markierungen anzulegen bewegt man sich zunchst in einer bestehenden Partie zur entsprechenden Position und klickt dann mit der Maus die entsprechene Variante mit der rechten Taste an. Sodann knnen aus dem sich ffnenden Kontextmenue entsprechende Markierungen ausgewhlt oder Kommentare eingegeben werden. Nach dem Hinzufgen entsprechender Annotationen mu die Maske mit dem Punkt Speichern gesichert werden.

    Masken knnen auch aus bestehenden Partien, welche Kommentare und Varianten enthalten gefllt werden. Hierzu dient der Punkt Mit aktueller Partie fllen bzw. Mit Datenbank Fllen

    Schnellere Ergebnisse durch Zwischenspeichern

    Scid nutzt fr die am hufigsten vorkommenden Positionen einen Cachespeicher fr die Ergebnisse der Zugbaumsuche. Wenn Sie sich im Zugbaum-Modus in einer Partie vorwrts und rckwrts bewegen, werden Sie bemerken, da das Zugbaumfenster praktisch sofort aktualisiert wird, wenn die gesuchte Stellung im Cachespeicher ist.

    Das Zugbaumfenster hat ein Dateimen-Kommando Cache-Datei sichern. Wenn Sie das auswhlen, wird der aktuelle Inhalt des Zugbaum-Zwischenspeichers in eine Datei geschrieben (mit der Endung .stc), um sptere Anwendungen des Zugbaum-Modus mit dieser Datenbank zu beschleunigen.

    Die Option Cache-Datei fllen im Dateimen des Zugbaumfensters fllt die Cache-Datei mit Daten fr viele Erffnungspositionen. Es werden etwa 100 der hufigsten Erffnungsstellungen gesucht, dann wird die Cache-Datei geschrieben.

    Das neue aufbauen des Zugbaumfensters kann erheblich beschleunigt werden, wenn eine Datenbank nach ECO-Codes sortiert abgespeichert wird. (Zum sortieren von Datenbanken siehe das Wartungsfenster.) Dieses Sortieren kann allerdings viele Stunden in Anspruch nehmen. Danach kann durch einschalten der Option Schneller Modus die Suche um bis zu einen Faktor 20 beschleunigt werden, wobei allerdings kleinere Ungenauigkeiten in Kauf genommen werden mssen. Um eine schnelle Voranzeige der Statistik zu erreichen aber trotzdem ein genaues ergenbis zu erziehlen dient die Option Schneller und Grndlicher Modus

    Beachten Sie, da eine Zugbaum-Cache-Datei (.stc) vllig redundant ist; Sie knnen sie ohne Auswirkungen auf die Datenbank lschen, und tatschlich wird sie jedesmal von Scid gelscht, wenn sie nach irgendeiner Aktion veraltet sein knnte -- zum Beispiel nach Hinzufgen oder Ersetzen einer Partie, oder nach Sortieren der Datenbank.

    (Aktualisiert: Scid 3.6.26, Oktober 2008)

    } ################ ### Graphs help: set helpTitle(D,Graphs) "Grafikfenster" set helpText(D,Graphs) {

    Grafikfenster

    Scid hat einige Fenster, die Informationen grafisch darstellen. Diese werden im nachfolgenden erklrt.

    Relative und absolute Filtergrafik

    Das Fenster relative Filtergrafik zeigt Entwicklungen nach Datum oder Elo-Zahl fr die aktuellen Filterpartien im Vergleich zur gesamten Datenbank. Das ist beispielsweise im Zugbaum-Fenster eine ntzliche Hilfe um zu zeigen, wie sich die Popularitt der aktuellen Erffnungsposition in den letzten Jahren oder Jahrzehnten gendert hat oder ob sie bei hochrangigen Spielern, etwa bei Gromeistern, besonders beliebt ist. Jeder Punkt in der Grafik reprsentiert fr ein bestimmtes Datum oder einen bestimmten Elo-Bereich die Anzahl der Partien im Filter pro 1000 Partien der gesamten Datenbank.

    Neben der relative Filtergrafik gibt es eine absolute Filtergrafik, die die Partien im Filter nach der absoluten Anzahl der Partien darstellt. Es kann nach Jahr, Elo-Zahl und Zugzahl der Partie ausgewertet werden.
    Mit dem kleinen Grafik-Knopf kann ein Dialog geffnet werden. Hier kann fr jede der drei Auswertungen der Bereich (von, bis) und die Intervallgre der X-Achse eingestellt werden. Wird "Schtzen" ausgewhlt, so wird der ELO-Wert geschtzt (s.u.), ansonst wird ein fehlender ELO-Wert eines Spielers mit 0 bewertet. "Schtzen aus" entspricht dabei der min. Elo-Auswertung im Statistik-Fenster. Die Decaden sind fest eingestellt, bitte hier die Jahres-Option benutzen. Mit dem "Aktualisieren"-Knopf kann man sofort eine neue Auswertung erstellen, ohne den Dialog verlassen zu mssen.
    Bitte beachten: Bei kleinen Intervallen und groem Bereich, kann die Auswertung etwas lnger dauern und die bersichtlichkeit geht verloren.

    Wenn die Filtergrafik nach Elo-Zahl ausgegeben wird, verwendet Scid fr jede Partie die durchschnittliche (mittlere) Wertung. Geschtzte Elo-Zahlen (wie z.B. aus der Schreibkorrekturdatei) werden nicht verwendet. Falls in einer Partie nur einer der beiden Spieler eine Elo-Zahl hat, wird angenommen, da der Gegner die gleiche Elo-Zahl besitzt bis zu einer Hchstgrenze von 2200. Wenn also beispielsweise ein Spieler eine Elo-Zahl von 2500 hat und sein Gegner keine Elo-Zahl, ist die mittlere Wertungszahl (2500+2200)/2 = 2350.

    ELO-Zahl-Verlauf

    Das Fenster ELO-Zahl-Verlauf zeigt die Entwicklung der Elo-Zahl(en) eines Spieler oder beider Spieler der aktuellen Partie. Sie knnen den Graphen fr einen einzelnen Spieler mit dem Schalter ELO-Zahl-Verlauf im Fenster Spielerinformation erzeugen oder fr beide Spieler der aktuellen Partie, indem Sie ELO-Zahl-Verlauf im

    Werkzeuge-Men auswhlen.

    Partie-Bewertungsgraph

    Das Fenster Partie-Bewertungsgraph zeigt die numerische Bewertung (Stand) der aktuellen Partie, wie sie in den Kommentaren gespeichert ist, als Graphen. Sie knnen mit der linken Maustaste irgendwo auf den Graphen klicken, um zu der korrespondierenden Partiestellung zu gelangen.

    Zwei Typen von Bewertungs-Kommentaren werden erkannt: die von Scids Analyse-Fenster erstellten (welche das Format

    • 1.e4 {"+0.25 ...."}
    haben und immer aus der Sicht von Wei bewerten) und die vom Crafty-Kommando "Kommentieren" erstellten (die das Format
    • 1.e4 ({9:+0.25} ....)
    haben und ebenfalls aus der Perspektive von Wei bewerten).

    Zugbaumgrafik

    Das Fenster Zugbaumgrafik ist aus dem Zugbaumfenster zu erreichen. Es zeigt die Erfolgsrate der hufigsten Zge in der aktuellen Position. Weitere Informationen finden Sie auf der Zugbaum-Hilfeseite.

    (Aktualisiert: Scid 3.6.21, Nov 2007)

    } #################### ### Tablebases help: set helpTitle(D,TB) "Endspieltabellen" set helpText(D,TB) {

    Endspieltabellen

    Eine Endspieltabelle ist eine Datei, die die vollstndige Ergebnisinformation ber alle Positionen einer bestimmten Materialkonstellation enthlt, wie z.B. Knig und Turm gegen Knig und Bauer. Es gibt Endspieltabellen fr alle Materialkonstellation mit bis zu 5 Steinen (inkl. Knige), und einige einfache 6-Steine-Tabellen sind ebenfalls verfgbar.

    Scid kann Endspieltabellen im Nalimov-Format verwenden, die von vielen modernen Schachprogrammen genutzt werden. Sie haben oftmals die Dateiendung .nbw.emd oder .nbb.emd.

    Endspieltabellen in Scid verwenden

    Um die Endspieltabellendateien in Scid zu verwenden, bestimmen Sie einfach ihre Verzeichnisse mit Endspieltabellen-Verzeichnis... im

    Optionen-Men. Sie knnen bis zu 4 Verzeichnisse angeben, wo Ihre Endspieltabellendateien gespeichert sind. Mit dem Schalter ... rechts nebem dem Datei-Eingabefeld knnen Sie eine Datei suchen, deren Verzeichnis verwendet werden soll.

    Wenn eine in der Endspieltabelle gefundene Stellung erreicht wurde, zeigt der Informationsbereich (unterhalb des Schachbretts) Endspieltabellen-Informationen an. Sie knnen den Umfang der angezeigten Information konfigurieren, indem Sie mit der rechten Maustaste diesen Bereich anklicken oder im

    Optionen-Men den Menpunkt Partieinformation whlen. Die Option "Ergebnis und bester Zug" liefert die ntzlichste Information, ist aber oftmals sehr viel langsamer als die Option "nur Ergebnis".

    Das Endspieltabellenfenster

    Sie knnen sogar noch mehr Endspieltabellen-Informationen zur aktuellen Position erhalten, indem Sie das Endspieltabellenfenster ffnen (

    Fenster-Men, Tastenkombination Strg+Umschalt+[=]). Dieses Fenster zeigt das Ergebnis jedes zulssigen Zuges in der aktuellen Stellung bei perfektem Spiel.

    Das Fenster enthlt zwei Bereiche. Der bersichtsbereich (links) zeigt die Endspieltabellen, die Scid auf Ihrem Rechner gefunden hat, mit einer Inhaltsangabe jeder Tabelle. Der Ergebnisbereich (rechts) zeigt die optimalen Ergebnisse aller Zge in der aktuellen, im Haupfenster dargestellten Position.

    Der bersichtsbereich

    Im oberen Teil des bersichtsbereichs knnen Sie eine bestimmte Endspieltabelle auswhlen. Die verfgbaren Tabellen werden blau angezeigt, die brigen grau, aber Sie knnen jede Tabelle auswhlen. Der untere Teil des bersichtsbereichs zeigt eine Inhaltsangabe der Informationen der ausgewhlten Endspieltabelle. (Noch haben nicht alle Endspieltabellen einen entsprechenden Datensatz in Scid.)

    Diese Inhaltsangabe enthlt die Hufigkeit (wie viele Partien von einer Million haben eine Stellung mit diesem Material erreicht, errechnet anhand einer Datenbank mit ber 600.000 Meisterpartien), das spteste Matt einer Seite sowie Anzahl wechselseitiger ("umgekehrter") Zugzwangpositionen. Eine wechselseitige Zugzwangposition liegt dann vor, wenn Wei am Zug zum Remis fhrt und Schwarz am Zug verliert, wenn Wei am Zug verliert und Schwarz am Zug Remis ergibt oder wenn derjenige am Zug verliert.

    Bei einigen Tabellen mit wechselseitigem Zugzwang enthlt die bersicht eine Liste aller Zugzwangpositionen oder eine Auswahl davon. Eine vollstndige Liste fr jede Endspieltabelle ist nicht machbar, da einige Tabellen tausende von Zugzwangstellungen enthalten.

    Mit dem Schalter Random knnen Sie eine zufllige Position aus der ausgewhlten Endspieltabelle aufbauen.

    Der Ergebnisbereich

    Der Ergebnisbereich wird immer dann aktualisiert, wenn sich die Brettstellung im Hauptfenster ndert. Die erste Zeile zeigt an, wie viele Zge gewinnen (+), zum Remis fhren (=), verlieren (-) oder ein nicht bekanntes Ergebnis (?) haben. Der brige Teil liefert Ihnen eine detailliertere Ergebnisliste, mit der Reihenfolge krzeste bis lngste Matts, danach Remis, dann lngste bis krzeste Verluste. Lnge jeweils bis zum Matt.

    Das Ergebnisbrett

    In einer Endspieltabellenstellung ist es oft ntzlich zu wissen, wie die Ergebnisse ausshen, wenn alle Steine in ihrer gegenwrtigen blieben, aber ein bestimmter Stein woanders stnde. Zum Beispiel wenn Sie feststellen mchten, wie nah ein Knig einem Freibauern sein mu, um eine bestimmte Stellung zu gewinnen oder Remis zu machen. In Endspielbchern wird diese Information oft die Gewinnzone bzw. Remiszone eines Steins in einer bestimmten Stellung genannt.

    Mit Hilfe von Scid knnen Sie diese Information erhalten, wenn Sie den Schalter mit dem Schachbrett anklicken, um das Ergebnisbrett im Endspieltabellenfenster zu zeigen. Wenn Sie mit der linken Maustaste irgendeinen Stein auf dem Brett anklicken, erscheint auf jedem freien Feld ein Symbol mit dem Resultat der Endspieltabelle, wenn der Stein auf diesem Feld stnde (mit derselben Seite am Zug wie in der aktuellen Position des Hauptfensters).

    Ein Feld kann fnf mgliche Symbole haben: ein weies "#" bedeutet, Wei gewinnt; ein schwarzes "#" bedeutet, Schwarz gewinnt; ein blaues "=" bedeutet, die Stellung ist remis; ein rotes "X" bedeutet, die Position ist illegal (weil die Knige nebeneinander stehen oder die Seite am Zug Schach bietet); und ein rotes "?" heit, das Result ist unbekannt, weil die ntige Endspieltabellendatei nicht zur Verfgung steht.

    Endspieltabellen-Quellen

    Zur Hilfe beim Auffinden von Endspieltabellendateien im Internet siehe die entsprechenden Links.

    (Aktualisiert: Scid 3.4, September 2002)

    } ################### ### Bookmarks help: set helpTitle(D,Bookmarks) "Lesezeichen" set helpText(D,Bookmarks) {

    Lesezeichen

    Scid erlaubt Ihnen, wichtige Partien fr einen leichten spteren Zugriff mit Lesezeichen zu markieren. Das Lesezeichen-Men ist aus dem

    Datei-Men, der Werkzeugleiste oder mit der Tastenkombination Strg+B zu erreichen.

    Wenn Sie eine markierte Partie aus dem Lesezeichen-Men whlen, ffnet Scid falls ntig die Datenbank, findet die Partie und geht zu der Partiestellung, die mit dem Lesezeichen versehen wurde.

    Nur Partien in Datenbanken im Scid-Format (keine PGN-Datei, nicht die Ablage-Datenbank) knnen mit einem Lesezeichen markiert werden.

    Wenn die Datenbank einer markierten Partie sortiert oder komprimiert wurde, sind die Lesezeichendaten mglicherweise veraltet. Falls das passiert, durchsucht Scid die Datenbank nach der passendsten Partie (vergleicht Spielernamen, Ort etc.), wenn das Lesezeichen ausgewhlt wird, die markierte Datei sollte also immer noch geladen werden. Wenn sich allerdings Daten der markierten Partie ndern, ist es mglich, da eine andere Partie besser auf die Lesezeichendaten pat und statt dessen geladen wird. Es ist also eine gute Idee, eine Partie erneut zu markieren, wenn Sie ihre Spieler-, Orts-, Ergebnis-, Runden- oder Jahresdaten bearbeiten.

    Lesezeichen bearbeiten

    Mit dem Lesezeichen-Editor knnen Sie den fr jede markierte Partie ausgegebenen Mentext ndern und Verzeichnisse erstellen, um die Lesezeichen zu kategorisieren.

    Hinweise

    Sie knnen Lesezeichen zum schnellen Zugriff auf Datenbanken verwenden, die Sie oft benutzen, indem Sie eine Partie jeder Datenbank markieren. Eine weitere gute Verwendungsmglichkeit fr Lesezeichen ist es, wichtige Partien hinzuzufgen, die Sie beim Studieren einer bestimmten Schacherffnung finden.

    Das Lesezeichen-Men enthlt einen Eintrag zur Kontrolle der Verzeichnisdarstellung: sie knnen als Untermens angezeigt werden (ntzlich bei sehr vielen Lesezeichen) oder als einzelne Liste.

    (Aktualisiert: Scid 3.0, November 2001)

    } ############################## ### Command-line options help: set helpTitle(D,Cmdline) "Kommandozeilen-Optionen" set helpText(D,Cmdline) {

    Kommandozeilen-Optionen

    Wenn Sie Scid von der Shell oder Konsole starten, knnen Sie Kommandozeilen-Optionen spezifizieren. Datenbanken im Scid-Format (mit oder ohne Dateiendung wie z.B. ".si3") und PGN-Dateien, die geffnet werden sollen, knnen angegeben werden. Beispiel:

    • scid datenbank partien.pgn
    startet Scid und und ffnet die Scid-Datenbank "datenbank" und die PGN-Datei "partien.pgn".

    Auerdem gibt es optionale Argumente, die kontrollieren, welche Dateien Scid suchen und beim Start verwenden soll. Sie knnen die Benutzung von Endspieltabellen mit der Option -xtb (oder -xt) ausschalten, das Laden der Datei zur ECO-Erffnungsklassifikation mit -xeco oder -xe verhindern und mit -xspell oder -xs vermeiden, da die Datei zur Schreibkorrektur geladen wird. Die Option -fast oder -f bewirkt das in einem, d.h. scid -f ist quivalent zu scid -xeco -xspell -xtb.

    (Aktualisiert: Scid 3.1, November 2001)

    } #################### ### Compaction help: set helpTitle(D,Compact) "Datenbank komprimieren" set helpText(D,Compact) {

    Datenbank komprimieren

    Datenbank-Komprimierung ist ein besonderer Teil der Wartung, der die Datenbank so klein und effizient wie mglich hlt. Eine Datenbank komprimieren heit, jeden ungenutzten Bereich in ihren Dateien zu lschen. Es gibt zwei Arten: Namens- und Partiendatenbank-Komprimierung.

    Namendatenbank-Komprimierung

    Nach einer gewissen Zeit werden Sie evtl. feststellen, da die Datenbank eine Reihe von Spieler-, Turnier- oder Rundennamen enthlt, die in keiner Partie mehr verwendet werden. Das wird regelmig nach Namenskorrekturen der Fall sein. Die unbenutzten Namen verschwenden Speicherplatz in der Namendatei und knnen die Suche nach Namen verlangsamen. Namendatenbank-Komprimierung lscht alle Namen, die nicht in irgendeiner Partie verwendet werden.

    Partiendatenbank-Komprimierung

    Immer, wenn eine Partie ersetzt oder gelscht wird, verbleibt ungenutzter Platz in der Partiendatei (die grte der drei Dateien einer Scid-Datenbank). Partiendatenbank-Komprimierung lscht jeden ungenutzten Speicher, keine gelschte Datei bleibt in der Datenbank. Beachten Sie, da diese Operation unumkehrbar ist: nach der Komprimierung sind die gelschten Dateien fr immer verschwunden!

    Partiendatenbank-Komprimierung ist auch empfehlenswert nach dem Sortieren einer Datenbank, um die Reihenfolge innerhalb der Partiendatei mit der sortierten Indexdatei synchron zu halten.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } #################################### ### Database maintenance tools help: set helpTitle(D,Maintenance) "Datenbank-Wartung" set helpText(D,Maintenance) {

    Datenbank-Wartung

    Scid stellt einige Funktionen zur Datenbank-Wartung zur Verfgung, die aus dem Datei-Men zu erreichen sind. Die Datenbank-Komprimierung und -Sortierung werden in separaten Hilfeseiten erklrt.

    Das Wartungsfenster

    Die meisten Datenbank-Wartungsarbeiten in Scid knnen aus dem Wartungsfenster erledigt werden, welches man mit dem Men

    Datei: Wartungsfenster oder Fenster oder der Tastenkombination Strg+M ffnen kann.

    Sie knnen in diesem Fenster Partie-Markierungen bearbeiten, Schreibkorrekturen durchfhren, eine Datenbank komprimieren oder sortieren. Alle Operationen, die fr die aktuelle Datenbank nicht zur Verfgung stehen (z.B., weil sie schreibgeschtzt oder eine PGN-Datei ist), werden durch graue Schrift angezeigt.

    Dubletten lschen

    Das Men

    Datei: Wartung hat ein Kommando Dubletten lschen..., um Kopien von Partien (Dubletten) in der Datenbank zu entdecken. Dieses Kommando findet alle Paare von doppelten Partien und markiert die krzere Partie als gelscht, whrend die lngere Partie erhalten bleibt. Zwei Partien werden als gleich angesehen, wenn ihre Spieler (und alle anderen optionalen Partieeintrge) exakt bereinstimmen.

    Wenn Sie die Option "gleiche Zge" angeben, mssen zwei Partien die gleichen Partiezge bis zur Lnge der krzeren Partie haben (oder bis zum 60. Zug, je nachdem, was zuerst eintritt), um Dubletten zu sein.

    Wenn Sie Dubletten gelscht haben, ist es eine gute Idee zu berprfen, ob jede gelschte Partie tatschlich Kopie einer anderen Partie ist. Das knnen Sie ganz einfach machen, wenn Sie die Option "Filter auf Dubletten setzen" im Dialogfenster "Dubletten lschen" gewhlt haben. Der Filter wird dann alle gelschten Partien enthalten. Sie knnen sie mit dem Dublettenprfer (erreichbar aus dem Wartungsmen oder mit der Tastenkombination Strg+Umsch+T) betrachten (blttern mit den Tasten p und n), um zu verifizieren, da jede Partie deshalb gelscht wurde, weil sie tatschlich die Dublette einer anderen Partie ist.

    Spieler, Turniere, Orte und Runden editieren

    Sie haben vielleicht falsch geschriebene Namen in Iher Datenbank und wollen sie korrigieren. Sie knnen das in Scid mit dem Namenseditor (Tastenkombination: Strg+Umsch+N), den Sie aus dem Untermen

    Datei: Wartung erreichen.

    Jeder eindeutige Name ist nur einmal in der Namendatei gespeichert, mit einer Namensnderung werden daher tatschlich alle Vorkommen gendert.

    Schreibkorrektur

    Zu Scid gehrt eine Schreibkorrektur-Datei namens spelling.ssp, um Namen von Spielern, Turnieren, Orten und Runden zu korrigieren. Scid versucht die Datei beim Programmstart zu laden; wenn Scid sie nicht laden kann, knnen Sie sie aus dem

    Optionen-Men laden.

    Wenn die Korrekturdatei erst einmal geladen ist, knnen Sie sie mit den Schreibkorrektur-Befehlen im Men

    Datei: Wartung oder aus dem Wartungsfenster auf eine Datenbank anwenden.

    Wenn Sie fr eine Datenbank eine Schreibkorrektur durchfhren, erzeugt Scid eine Liste mit Korrekturen, die Sie editieren knnen, bevor die Korrekturen tatschlich ausgefhrt werden. Sie knnen also jede nicht gewollte Korrektur lschen.

    Schreibkorrekturen sind insbesondere ntzlich, um eine Datenbank zu standardisieren, damit alle Vorkommen eines bestimmten Spielers gleich geschrieben werden. Beispielsweise wrden mit der Standarddatei die Namen"Kramnik,V.", "Vladimir Kramnik" und "V. Kramnik" alle zu "Kramnik, Vladimir" berichtigt.

    Die Schreibkorrekturdatei hat einen weiteren Nutzen: wenn sie geladen ist, werden ihre Spielerdaten genutzt, um die Fenster Spielerinformation und Kreuztabelle zu erweitern: Sie sehen dann die FIDE-Titel (gm = Internationaler Gromeister, im = Internationaler Meister etc.) und Lnderinformationen zu jedem Spieler, der in der Datei enthalten ist. ber 6500 starke Spieler der Vergangenheit und Gegenwart sind in der zu Scid gehrenden Datei spelling.ssp enthalten.

    Elo-Zahlen zu den Partien hinzufgen

    Der Schalter "Elo-Zahlen hinzufgen..." im Wartungsfenster veranlat Scid, die aktuelle Datenbank nach Spielern, zu durchsuchen, die keine Elo-Zahl haben, fr die die Schreibkorrekturdatei aber eine Elo-Zahl des jeweiligen Spielers zum Zeitpunkt der Partie enthlt. Scid ergnzt alle diese Elo-Zahlen automatisch. Das ist sehr ntzlich fr eine Datenbank mit Meisterpartien, die nur wenige Elo-Angaben enthlt.

    Die mit Scid gelieferte Datei "spelling.ssp" enthlt die fr diese Funktion bentigten Elo-Zahlen nicht, aber eine grere Version von ihr namens "ratings.ssp" steht auf der Scid-Website zur Verfgung.

    Der Bereiniger

    Der Bereiniger von Scid (vom Wartungsfenster zu erreichen) ist ein Werkzeug, um eine Reihe von Wartungsarbeiten fr eine Datenbank in einem durchzufhren. Sie knnen whlen, welche Aufgaben Sie erledigen wollen, und Scid fhrt sie fr die Datenbank aus, ohne weitere Eingaben des Benutzers zu bentigen. Das ist besonders bei der Wartung sehr groer Datenbanken hilfreich.

    Partien automatisch laden

    Der Automatische Lader ldt jedesmal, wenn Sie die Datenbank ffnen, eine Partie automatisch. Um die Partie, die geladen wird, zu ndern, whlen Sie den Schalter "Automatisch Partie Nr. laden..." Wenn Sie jedesmal die letzte Partie der Datenbank geffnet haben wollen (unabhngig von der Anzahl der Partien in der Datenbank), whlen Sie einfach eine besonders groe Zahl wie 9999999.

    (Aktualisiert: Scid 3.1, Dezember 2001)

    } ############## ### ECO guide: set helpTitle(D,ECO) "ECO-Fhrer" set helpText(D,ECO) {

    ECO-Erffnungsklassifikation

    Scid kann Schachpartien gem der ECO- (Enzyklopdie der Schacherffnungen) -Erffnungsklassifikation einordnen. Ein Standard-ECO-Code besteht aus einem Buchstaben (A..E) gefolgt von zwei Ziffern, so da es 500 verschiedene Standard-ECO-Codes gibt.

    Scids Erweiterung des ECO-Systems

    Das ECO-System ist sehr limitiert und fr moderne Partien nicht ausreichend: einige der 500 Codes sieht man praktisch berhaupt nicht mehr, whrend einige andere sehr hufig vorkommen. Um diese Situation zu verbessern, erlaubt Scid eine optionale Erweiterung der ECO-Basiscodes: jeder Code kann um einen Buchstaben (a..z) erweitert werden, wobei eine weitere Ergnzung (noch eine Ziffer, 1..4) mglich ist, aber noch nicht in Scids Standard-ECO-Datei benutzt wird. Ein erweiterter Scid-ECO-Code sieht also etwa aus wie "A41e" oder "E99b2". Viele der in modernen Meisterpartien vorkommenden blichen ECO-Codes haben eine in Scids ECO-Datei definierte Erweiterung.

    Die ECO-Auswertung

    Das Fenster ECO-Auswertung zeigt Ihnen die Positionen, die zur Klassifizierung jedes ECO-Codes verwendet werden, sowie die Hufigkeit und Erfolgsrate der ECO-Codes in der der aktuellen Datenbank.

    Der obere Teil zeigt die Hufigkeit jedes ECO-Codes in der aktuellen Datenbank. Die Balken in der Grafik haben drei Bereiche: der unterste (hellste Farbe) steht fr die Anzahl der Weisiege, der mittlere fr die Zahl der Remis und der oberste (dunkelste) fr die Anzahl der Schwarzsiege. Damit knnen Sie auf einen Blick die Charakteristik einer Erffnung erkennen: z.B., ob Wei sehr erfolgreich ist oder ob Remis hufig vorkommen.

    Um zu einem tieferen ECO-Niveau zu gehen, klicken Sie mit der linken Maustaste auf einen Balken in der Grafik (oder tippen Sie den korrespondierenden Buchstaben (bzw. Ziffer) ein). Um auf ein hheres Niveau zurckzugehen, klicken Sie mit der rechten Maustaste irgendwo auf die Grafik oder drcken Sie die linke Cursortaste (oder [Entf] oder [Rck]).

    Der untere Teil zeigt die Positionen, die ein bestimmter ECO-Code enthlt, und zwar entsprechend der von Ihnen geladenen ECO-Datei.

    Die ECO-Datei laden

    Die zu Scid gehrende ECO-Datei heit scid.eco, und Scid versucht sie beim Programmstart zu laden. Falls Scid sie nicht findet, mssen Sie folgendes tun, um die ECO-Klassifikation zu ermglichen:

    • (a) Mit dem Menpunkt Optionen: ECO-Datei laden whlen Sie die Datei scid.eco.
    • (b) Speichern Sie die Optionen (im Optionen-Men).
    Nachdem Sie das getan haben, wird die ECO-Datei jedesmal geladen, wenn Sie Scid starten.

    Das ECO-Code-System

    Die Basisstruktur des ECO-Systems ist folgende:

    A 1.d4 Sf6 2...; 1.d4 ...; 1.c4; 1.Verschiedenes

    • A0 1.Verschiedenes (A02-A03 1.f4: Bird-Erffnung, A04-A09 1.Sf3: Reti, Knigsindischer Angriff)
    • A1 1.c4 ...: Englisch
    • A2 1.c4 e5: Englisch, Knigsbauer
    • A3 1.c4 c5: Englisch, Symmetrisch
    • A4 1.d4 ...: Damenbauer
    • A5 1.d4 Sf6 2.c4 ..: Indische Verteidigung
    • A6 1.d4 Sf6 2.c4 c5 3.d5 e6: Modernes Benoni
    • A7 A6 + 4.Sc3 exd5 5.cxd5 d6 6.e4 g6 7.Sf3
    • A8 1.d4 f5: Hollndische Verteidigung
    • A9 1.d4 f5 2.c4 e6: Hollndische Verteidigung

    B 1.e4 c5; 1.e4 c6; 1.e4 d6; 1.e4 Verschidenes

    • B0 1.e4 ... (B02-B05 1.e4 Sf6: Aljechin-Verteidigung; B07-B09 1.e4 d6: Pirc)
    • B1 1.e4 c6: Caro-Kann
    • B2 1.e4 c5: Sizilianische Verteidigung
    • B3 1.e4 c5 2.Sf3 Nc6: Sizilianisch
    • B4 1.e4 c5 2.Sf3 e6: Sizilianisch
    • B5 1.e4 c5 2.Sf3 d6: Sizilianisch
    • B6 B5 + 3.d4 cxd4 4.Sxd4 Sf6 5.Sc3 Sc6
    • B7 B5 + 4.Sxd4 Sf6 5.Sc3 g6: Sizilianisch, Drachen
    • B8 B5 + 4.Sxd4 Sf6 5.Sc3 e6: Sizilianisch, Scheveninger
    • B9 B5 + 4.Sxd4 Sf6 5.Sc3 a6: Sizilianisch, Najdorf

    C 1.e4 e5; 1.e4 e6

    • C0 1.e4 e6: Franzsische Verteidigung
    • C1 1.e4 e6 2.d4 d5 3.Sc3: Franzsisch, Winawer/Klassisch
    • C2 1.e4 e5: Offene Partie
    • C3 1.e4 e5 2.f4: Knigsgambit
    • C4 1.e4 e5 2.Sf3: Offene Partie
    • C5 1.e4 e5 2.Sf3 Sc6 3.Lc4: Italienisch; Zweispringerspiel
    • C6 1.e4 e5 2.Sf3 Sc6 3.Lb5: Spanische Partie
    • C7 1.e4 e5 2.Sf3 Sc6 3.Lb5 a6 4.La4: Spanisch
    • C8 C7 + 4...Sf6 5.0-0: Spanisch, Geschlossen und Offen (C80-C83 5.0-0 Sxe4: Spanisch, Offenes System; C84-C89 5.0-0 Le7: Spanisch, Geschlossenes System)
    • C9 C8 + 5...Le7 6.Te1 b5 7.Lb3 d6: Spanisch, Geschlossen

    D 1.d4 d5; 1.d4 Sf6 2.c4 g6 with 3...d5

    • D0 1.d4 d5: Damenbauernspiele
    • D1 1.d4 d5 2.c4 c6: Slawisch
    • D2 1.d4 d5 2.c4 dxc4: Angenommenes Damengambit
    • D3 1.d4 d5 2.c4 e6: Abgelehntes Damengambit
    • D4 D3 + 3.Sc3 Sf6 4.Sf3 c5/c6: Semi-Tarrasch; Semi-Slawisch
    • D5 D3 + 3.Sc3 Sf6 4.Lg5: Klassisches Damengambit
    • D6 D5 + 4...Le7 5.e3 0-0 6.Sf3 Sbd7: Orthodoxes Damengambit
    • D7 1.d4 Sf6 2.c4 g6 with 3...d5: Grnfeld-Indisch
    • D8 1.d4 Sf6 2.c4 g6 3.Sc3 d5: Grnfeld-Indisch
    • D9 1.d4 Sf6 2.c4 g6 3.Sc3 d5 4.Sf3: Grnfeld-Indisch

    E 1.d4 Sf6 2.c4 e6; 1.d4 Sf6 2.c4 g6

    • E0 1.d4 Sf6 2.c4 e6: Katalanisch etc.
    • E1 1.d4 Sf6 2.c4 e6 3.Sf3 (b6): Damenindisch etc.
    • E2 1.d4 Sf6 2.c4 e6 3.Sc3 (Lb4): Nimzo-Indisch etc.
    • E3 E2 + 4.Lg5 or 4.Dc2: Nimzo-Indisch
    • E4 E2 + 4.e3: Nimzo-Indisch, Rubinstein
    • E5 E4 + 4...0-0 5.Sf3: Nimzo-Indisch, Hauptvariante
    • E6 1.d4 Sf6 2.c4 g6: Knigsindisch
    • E7 1.d4 Sf6 2.c4 g6 3.Sc3 Lg7 4.e4: Knigsindisch
    • E8 E7 + 4...d6 5.f3: Knigsindisch, Smisch
    • E9 E7 + 4...d6 5.Sf3: Knigsindisch, Hauptvarianten

    (Aktualisiert: Scid 2.5, Juni 2001)

    } #################### ### Calvar window help: set helpTitle(D,CalVar) "Varianten berechnen" set helpText(D,CalVar) {

    Das Varianten-berechnen-Fenster

    Dieses Training ist auch als Stoyko-bung bekannt. Das Ziel dieser bung ist die Analyse einer komplexen Stellung und daraus so viele wie mgliche plausible Varianten zu ermitteln. Jeder Variante wird mit einer Bewertung versehen.

    Konfiguration

    Drei Parameter werden eingestellt:
    • Die zur Analyse der verschiedenen Varianten eingesetze UCI-Engine
    • Zeit, in Sekunden, die zur Analyse der Stellung von der Engine verwendet wird.
    • Zeit, in Sekunden, die zur Analyse der vom Anwender eingegebenen Variante durch die Engine verwendet wird.

    Eingabe der Varianten

    Die Zugeingabe erfolgt durch Mausklicks auf die Felder des Brettes, allerdings wird auf dem Brett nichts angezeigt. Die angeklickten Felder erscheinen im Varianten-berechnen-Fenster. Jeder Variante wird am Ende mit einer Bewertung abgeschlossen: Es wird einer der Knpfe mit den NAG-Codes gedrckt.

    Auswertung der Bewertung

    Wurde eine Variante mit einer NAG-Code-Bewertung abgeschlossen, berechnet die Engine ihre Bewertung der Variante und hngt ihre Variante und Bewertung direkt an die Benutzer-Variante an.

    Fertig mit der Stellung

    Ist der Anwender der Meinung alle besten Varianten gefunden zu haben, drckt er Fertig mit Stellung. Es werden dann noch alle Varianten (mit dem Kommentar Fehlende Varianten) mit einer hheren Bewertung als die beste Variante des Anwenders hinzugefgt.

    (Aktualisiert: Scid 3.6.21, Dezember 2007)

    } #################### ### EPD files help: set helpTitle(D,EPD) "EPD-Dateien" set helpText(D,EPD) {

    EPD-Dateien

    Eine EPD-Datei (extended position description = erweiterte Stellungsbeschreibung) ist eine Sammlung von Positionen, wobei jeder Position ein Text zugeordnet ist. Wie PGN ist EPD ein verbreiteter Standard fr Schachinformationen.

    Eine EPD-Datei hat eine Reihe definierter "Opcodes"(-Felder), die in der Datei durch Semikolons (;) getrennt gespeichert sind, in einem EPD-Fenster von Scid aber in separaten Zeilen dargestellt werden, um das Bearbeiten zu erleichtern. Ein Semikolon innerhalb eines EPD-Feldes wird von Scid als "\s" gespeichert, um es von den Feldende-Markierungen zu unterscheiden. Jede Position und ihre zugehriger Opcode wird in der EPD-Datei in einer einzelnen Zeile gespeichert.

    Standard-EPD-Opcodes sind u.a.:

    • acd Analyse-Zhler: Suchtiefe.
    • acn Analyse-Zhler: Anzahl der durchsuchten Knoten.
    • acs Analyse-Zhler: Suchzeit in Sekunden.
    • bm Beste Zge: aus irgendeinem Grund als beste eingestufte Zge.
    • ce Stellungsbeurteilung: Beurteilung in Hundertstel Bauern [ce = "centipawn evaluation"] aus Sicht der am Zug befindlichen Seite -- beachten Sie, da sich dies vom Analysefenster unterscheidet, welches die Einschtzung in Bauerneinheiten aus der Sicht von Wei zeigt.
    • cX Kommentar (wobei X eine Ziffer ist, 0-9).
    • eco Erffnungscode des ECO-Systems.
    • id Eindeutige Identifizierung dieser Stellung.
    • nic Erffnungscode des New-In-Chess-Systems.
    • pm Vorhergesagter Zug: der erste Zug der PV.
    • pv Vorhergesagte Variante: die beste Variante.

    EPD-Dateien haben einen vielfachen Nutzen: Scid verwendet EPD-Dateien, um Partien nach dem System der Enzyklopdie der Schacherffnungen (ECO) zu klassifizieren, und Sie knnen eine EPD-Datei fr Ihr Erffnungsrepertoire erstellen, mit Kommentaren zu Stellungen, die Sie regelmig auf dem Brett haben.

    Mit den Optionen

    Neu und ffnen im Datei-Men knnen Sie eine neue EPD-Datei erstellen bzw. eine bestehende ffnen. Maximal vier EPD-Dateien knnen gleichzeitig geffnet sein.

    EPD-Fenster

    Fr jede geffnete EPD-Datei sehen Sie ein Fenster, welches den Text zur aktuellen Stellung zeigt. Sie mssen nicht den Schalter "Speichern" bettigen, um nderungen des Textes zu sichern; der Text wird jedesmal gespeichert, wenn Sie zu einer anderen Partiestellung gehen.

    In EPD-Dateien navigieren

    Um sich durch die Stellungen in einer EPD-Datei zu bewegen, verwenden Sie die Kommandos

    Nchste Position und Vorherige Position im Werkzeuge-Men des EPD-Fensters oder die Tastenkombinationen Strg+Ab and Strg+Auf. Diese Befehle gehen zur nchsten/vorherigen Position in der Datei, wobei sie die aktuelle Partie lschen und die Ausgangsposition herstellen.

    EPD-Felder entfernen

    EPD-Dateien, die Sie im Internet finden, enthalten mglicherweise Felder, die Sie nicht interessieren und die eine Menge Speicherplatz in der Datei verschwenden. Beispielsweise knnte eine EPD-Datei mit Computerauswertungen die Felder ce, acd, acn, pm, pv und id enthalten, Sie brauchen aber vielleicht nur das ce- und pv-Feld.

    Sie knnen einen EPD-Opcode mit dem Menpunkt

    EPD-Feld entfernen im Werkzeuge-Men des EPD-Fensters aus allen Stellungen in der EPD-Datei entfernen.

    Die Statusanzeige des EPD-Fensters

    Die Statuszeile jedes EPD-Fensters zeigt:

    • - den Dateistatus (-- heit unverndert, XX heit verndert und %% heit schreibgeschtzt);
    • - den Dateinamen;
    • - die Anzahl der Positionen in der Datei;
    • - zulssige Zge in der aktuellen Stellung, die eine andere Stellung in der EPD-Datei erreichen .

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ################### ### Exporting help: set helpTitle(D,Export) "Partien exportieren" set helpText(D,Export) {

    Partien exportieren

    Sie knnen die Kommandos im

    Werkzeuge-Men benutzen, um die aktuelle Partie oder alle Partien im aktuellen Filter in eine Textdatei zu exportieren.

    Drei Textdatei-Formate stehen zur Verfgung: PGN (portable game notation), HTML (fr Webseiten) und LaTeX (ein populres Textsatzsystem).

    Beim Exportieren knnen Sie whlen, eine neue Datei zu erstellen oder die Partien einer existierenden Partiendatei hinzuzufgen.

    Diagramme

    Wenn Sie im HTML- oder LaTeX-Format exportieren, fgt Scid automatisch berall dort ein Diagramm ein, wo ein Diagramm-NAG ("D") oder ein mit dem Zeichen "#" beginnender Kommentar in der Partie vorkommt.

    Nullzge beim PGN-Export

    Scid erlaubt es, in einer Partie Null- (leere) Zge zu speichern, da diese beim Kommentieren mit Varianten hilfreich sein knnen. Allerdings gibt es im PGN-Standard keine Nullzge. Wenn Sie also Scid-Partien mit Nullzgen in eine PGN-Datei exportieren, werden andere Programme zum PGN-Lesen nicht in der Lage sein, die Nullzge zu lesen.

    Um dieses Problem zu lsen, stellt Scid eine weitere Option bereit, Nullzge in Kommentare umwandeln, wenn Partien in PGN-Format exportiert werden. Wenn Sie eine PGN-Datei erstellen wollen, die von anderer Software verwendet werden kann, schalten Sie diese Option ein, und Varianten, die Nullzge enthalten, werden in Kommentare umgewandelt. Wenn Sie jedoch eine PGN-Dateie erstellen wollen, die spter wieder unter Beibehaltung der Nullzge von Scid importiert werden kann, lassen Sie diese Option aus.

    HTML-Export

    Scid kann Partien in eine HTML-Datei exportieren. Um Diagramme einzufgen, mssen die Diagrammbilder (im Verzeichnis "bitmaps/" mitgeliefert) in einem Unterverzeichnis "bitmaps/" unterhalb des Verzeichnisses sein, wo sich die HTML-Datei befindet.

    LaTeX-Export

    Scid kann Partien in eine LaTeX-Datei exportieren. Partien werden in zwei Spalten pro Seite gedruckt und Zge in figuriner algebraischer Notation.

    Fr weitere Informationen siehe die Hilfeseite Scid und LaTeX.

    (Aktualisiert: Scid 3.4, Juli 2002)

    } #################### ### Flags help: set helpTitle(D,Flags) "Partie-Markierungen" set helpText(D,Flags) {

    Partie-Markierungen

    Eine Markierung ("flag") ist ein Kennzeichen irgendeiner Schach-Charakteristik, die fr jede Partie der Datenbank ein- oder ausgeschaltet werden kann. Es gibt 13 vom Benutzer einstellbare Markierungen, die Sie direkt fr jede Partie setzen knnen. Von diesen hat nur die Lsch-Markierung eine besondere Bedeutung: Partien, bei denen die Lsch-Markierung eingeschaltet ist, sind zur Lschung vorgemerkt und werden entfernt, wenn die Datenbank komprimiert wird.

    Die anderen 12 vom Benutzer einstellbaren Markierungen und ihre Symbole sind:

    • Erffnung Wei (W)
    • Erffnung Schwarz (B)
    • Mittelspiel (M)
    • Endspiel (E)
    • Neuerung (N)
    • Bauernstruktur (P)
    • Taktik (T)
    • Spiel auf dem Damenflgel (Q)
    • Spiel auf dem Kngsflgel (K)
    • Brilliant (!)
    • Patzer (?)
    • Benutzer-definiert (U)

    Eine Markierung kann fr die aktuelle Partie, fr alle Partien im Filter oder fr alle Partien der Datenbank im Wartungs-Fenster gesetzt werden.

    Sie knnen die Suche nach Partiedaten benutzen, um alle Datenbankpartien zu finden, die eine bestimmte Markierung ein- oder ausgeschaltet haben, oder die Markierungen als Teil einer komplexeren Suche verwenden.

    Da alle vom Benutzer einstellbaren Markierungen keine Bedeutung fr Scid haben (mit Ausnahme der Lsch-Markierung), knnen Sie sie fr Ihre eigenen Bedrfnisse verwenden. Zum Beispiel knnten Sie die Markierung "Spiel auf dem Kngsflgel" (K) fr Bauernstrme auf den Knig verwenden, fr Figurenangriffe auf den Knig oder auch fr Endspiele mit allen Bauern auf dem Knigsflgel.

    (Aktualisiert: Scid 3.0, November 2001)

    } ############### ### LaTeX help: set helpTitle(D,LaTeX) "Scid und LaTeX" set helpText(D,LaTeX) {

    Scid und LaTeX

    Scid kann Partien und Erffnungsberichte im LaTeX-Format in Dateien sichern. LaTeX ist eine Erweiterung von TeX, einem populren Textsatzsystem.

    Um die von Scid erzeugten LaTeX-Dateien darzustellen, mssen Sie (natrlich) LaTeX haben und das Schachzeichensatz-Paket "chess12" installiert haben. Dieses Paket ist normalerweise nicht Teil der LaTeX-Standardinstallation, d.h selbst wenn Sie LaTeX haben, haben Sie vielleicht nicht den Schachzeichensatz.

    Informationen zum Herunterladen und Installieren des LaTeX-Schachzeichensatzes finden Sie auf der Seite Using LaTeX with Scid der Scid-Website.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ########################### ### Options and Fonts help: set helpTitle(D,Options) "Options" set helpText(D,Options) {

    Optionen und Prferenzen

    Viele Optionen und Prferenzen in Scid (z.B. die Brettgre, Farben, Schachbrettmuster, Zeichenstze und Standardwerte) kann man im

    Optionen-Men verndern. Alle diese (und mehr, wie etwa das letzte Verzeichnis, aus dem Sie eine Datenbank gelesen haben, und die Gre einiger Fenster) werden in einer Optionendatei gesichert, wenn Sie im Optionen-Men Optionen speichern whlen. Jedesmal, wenn Sie Scid starten, wird die Optionendatei geladen.

    Wenn Sie mit Windows arbeiten, ist die Optionendatei options.dat im Unterverzeichnis "config" der Scids Programmdatei abgelegt. Fr Benutzer von Unix-Betriebssystemen (wie Solaris oder Linux) ist die Datei ~/.scid/scidrc.

    Ihre Spielernamen festlegen

    Es kann sein, da Sie fr einen (oder mehrere) Spieler das Brett im Haupfenster aus der Sicht dieses Spielers aufgestellt haben mchten, wenn eine seiner Partien geladen wird. Sie knnen eine Liste solcher Namen mit Meine Spielernamen... im Men

    Optionen/Schachbrett anlegen. In dem Dialogfenster geben Sie dann einen Spielernamen pro Zeile ein. Jokerzeichen ("?" fr genau ein beliebiges Zeichen, "*" fr eine Zeichenkette von null oder mehr Zeichen) sind erlaubt.

    Zeichenstze einstellen

    Scid hat drei Basis-Zeichenstze, die in den meisten Fenstern verwendet werden, und Sie knnen alle drei individuell anpassen. Sie heien normal, klein und fest.

    Der feste Zeichensatz sollte ein Zeichensatz mit fester Breite (nicht-proportional) sein. Er wird fr den Zugbaum und die Kreuztabelle verwendet.

    (Aktualisiert: Scid 3.6.21, November 2007)

    } #################### ### Pgnscid help: set helpTitle(D,Pgnscid) "Pgnscid" set helpText(D,Pgnscid) {

    Pgnscid

    Pgnscid ist ein separates Program, das Sie zur Konvertierung von PGN-Dateien ("portable game notation") nach Scid-Datenbanken bentigen.

    Um eine Datei namens partien.pgn umzuwandeln, tippen Sie einfach

    • pgnscid partien.pgn
    ein, und die Scid-Datenbank (bestehend aus den Dateien partien.si3, partien.sg3 und partien.sn3) wird erstellt. Fehlermeldungen oder Warnungen werden in die Datei partien.err geschrieben.

    Wenn Sie wollen, da die Datenbank in einem anderen Verzeichnis oder mit einem anderen Namen erstellt wird, knnen Sie den Datenbanknamen in der Kommandozeile mit angeben, zum Beispiel erstellt

    • pgnscid partien.pgn datenbank
    eine Datenbank bestehend aus den Dateien datenbank.si3, datenbank.sg3 und datenbank.sn3.

    Beachten Sie, da pgnscid (und auch scid) mit gzip komprimierte PGN-Dateien (z.B. datenbank.pgn.gz) direkt lesen kann, wenn Sie also eine groe PGN-Datei mit gzip komprimiert haben, um Speicherplatz zu sparen, mssen Sie sie nicht zuerst dekomprimieren.

    Optionen

    Pgnscid akzeptiert zwei optionale Argumente vor dem Dateinamen: -f und -x.

    Die Option -f erzwingt das berschreiben einer existierenden Datenbank; standardmig wandelt pgnscid nicht in eine bereits bestehende Datenbank um.

    Die Option -x veranlat pgnscid, Text zwischen den Partien zu ignorieren. Gem Voreinstellung wird Text zwischen Partien als Kommentar vor der folgenden Partie gespeichert. Diese Option betrifft nur Text zwischen Partien; Standardkommentare innerhalb der Partien werden weiterhin konvertiert und gespeichert.

    Spielernamen formatieren

    Um die Anzahl verschiedener Namensschreibweisen desselben Spielers zu reduzieren, werden von pgnscid einige Grundformatierungen durchgefhrt. Zum Beispiel wird die Anzahl der Leerzeichen nach einem Komma auf eins gesetzt, Leerzeichen am Anfang oder Ende eines Namens werden ebenso wie ein Punkt am Namensende entfernt. Hollndische Namenszustze wie "van den" und "Van Der" werden ebenfalls normalisiert, so da sie ein groes "V" und kleines "d" haben.

    Sie knnen Spieler-, Turnier-, Orts- und Rundenbezeichnungen in Scid bearbeiten (und sogar automatische Schreibkorrekturen durchfhren); zu den Details siehe die Hilfeseite Wartung.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ################# ### Sorting help: set helpTitle(D,Sorting) "Datenbank sortieren" set helpText(D,Sorting) {

    Eine Datenbank sortieren

    Die Sortier-Funktionen sortieren alle Partien einer Datenbank. Sie knnen mehrere Sortierkriterien auswhlen. Wenn zwei Partien nach einem Kriterium gleichrangig sind, werden sie nach dem zweiten Kriterium sortiert, und so weiter.

    Sortierkriterien

    Die verfgbaren Sortierkriterien sind:

    • Datum (lteste Partien zuerst)
    • Jahr (wie Datum, aber nur das Jahr wird verwendet)
    • Turnier (Ereignis)
    • Ort
    • Land (die letzten 3 Buchstaben des Ortes)
    • Runde
    • Wei
    • Elo-Zahl (Durchschnitt von Wei und Schwarz, hhere zuerst)
    • Schwarz
    • Ergebnis (Wei gewinnt, danach Remis, danach Schwarz gewinnt)
    • Lnge (Anzahl ganzer Zge in der Partie)
    • ECO (Code der Enzyklopdie der Schacherffnungen)

    Sortierergebnis

    Wenn Sie eine nicht schreibgeschtzte Scid-Datenbank sortieren, wird das Sortierergebnis gesichert, so da die Reihenfolge der Datenbankpartien dauerhaft gendert ist. Falls Sie nur eine temporre Sortierung wollen, schtzen Sie die Datenbank zuerst gegen berschreiben mit dem Menpunkt

    Datei: Schreibschutz.

    Wenn Sie eine Datenbank sortieren, die schreibgeschtzt ist oder aus einer PGN-Datei besteht, kann das Sortierergebnis nicht gesichert werden, so da die sortierte Partiereihenfolge verloren geht, wenn die Datei geschlossen wird.

    Beachten Sie, da das Sortieren einer Datenbank den Suchfilter zurcksetzt auf alle Partien.

    Wichtiger Hinweis zum Datenbank sortieren:

    Wenn eine Datenbank sortiert wurde, ist die Indexdatei gendert, die Partiendatei aber unverndert. Das heit, das Sortieren einer Datenbank hinterlt die Partiedatenstze der Datei in einer zuflligen Reihenfolge relativ zur Indexdatei. Das kann die Zugbaum-, Positions- und Material/Muster-Suche merklich verlangsamen, Sie sollten daher nach dem Datenbank sortieren die Partiendatei durch Komprimieren neuorganisieren, um gute Suchleistungen zu erhalten.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } #################### ### NAG values help: set helpTitle(D,NAGs) "NAG-Werte" set helpText(D,NAGs) {

    Standard-NAG-Werte

    Standard-NAG-Werte (Numeric Annotation Glyph = "numerisches Anmerkungszeichen"), im PGN-Standard definiert, sind:

    • 1 Guter Zug (!)
    • 2 Schwacher Zug (?)
    • 3 Ausgezeichneter Zug (!!)
    • 4 Patzer / Grober Fehler (??)
    • 5 Interessanter Zug (!?)
    • 6 Zweifelhafter Zug (?!)
    • 7 Erzwungener Zug
    • 8 Der einzige Zug; keine vernnftige Alternative
    • 9 Schlechtester Zug
    • 10 Ausgeglichene Position (=)
    • 11 Gleiche Chancen, ruhige Stellung (=)
    • 12 Gleiche Chancen, aktive Stellung (=)
    • 13 Unklare Stellung (~)
    • 14 Wei hat leichten Vorteil, steht etwas besser (+=)
    • 15 Schwarz hat leichten Vorteil, steht etwas besser (=+)
    • 16 Wei hat Vorteil, steht besser (+/-)
    • 17 Schwarz hat Vorteil, steht besser (-/+)
    • 18 Wei hat entscheidenden Vorteil (+-)
    • 19 Schwarz hat entscheidenden Vorteil (-+)
    • 20 Wei hat berwltigenden Vorteil (+-)
    • 21 Schwarz hat berwltigenden Vorteil (-+)
    • 22 Wei ist in Zugzwang
    • 23 Schwarz ist in Zugzwang
    • 24 Wei hat leichten Raumvorteil
    • 25 Schwarz hat leichten Raumvorteil
    • 26 Wei hat Raumvorteil
    • 27 Schwarz hat Raumvorteil
    • 28 Wei hat entscheidenden Raumvorteil
    • 29 Schwarz hat entscheidenden Raumvorteil
    • 30 Wei hat leichten Zeit-(Entwicklungs)vorsprung
    • 31 Schwarz hat leichten Zeit-(Entwicklungs)vorsprung
    • 32 Wei hat Zeit-(Entwicklungs)vorsprung
    • 33 Schwarz hat Zeit-(Entwicklungs)vorsprung
    • 34 Wei hat entscheidenden Zeit-(Entwicklungs)vorsprung
    • 35 Schwarz hat entscheidenden Zeit-(Entwicklungs)vorsprung
    • 36 Wei hat die Initiative
    • 37 Schwarz hat die Initiative
    • 38 Wei hat andauernde Initiative
    • 39 Schwarz hat andauernde Initiative
    • 40 Wei hat Angriff
    • 41 Schwarz hat Angriff
    • 42 Wei hat keine ausreichende Kompensation fr das Material
    • 43 Schwarz hat keine ausreichende Kompensation fr das Material
    • 44 Wei hat ausreichende Kompensation fr das Material
    • 45 Schwarz hat ausreichende Kompensation fr das Material
    • 46 Wei hat mehr als ausreichende Kompensation fr das Material
    • 47 Schwarz hat mehr als ausreichende Kompensation fr das Material
    • 48 Wei hat leichtes bergewicht im Zentrum
    • 49 Schwarz hat leichtes bergewicht im Zentrum
    • 50 Wei hat bergewicht im Zentrum
    • 51 Schwarz hat bergewicht im Zentrum
    • 52 Wei hat entscheidendes bergewicht im Zentrum
    • 53 Schwarz hat entscheidendes bergewicht im Zentrum
    • 54 Wei hat leichtes bergewicht am Knigsflgel
    • 55 Schwarz hat leichtes bergewicht am Knigsflgel
    • 56 Wei hat bergewicht am Knigsflgel
    • 57 Schwarz hat bergewicht am Knigsflgel
    • 58 Wei hat entscheidendes bergewicht am Knigsflgel
    • 59 Schwarz hat entscheidendes bergewicht am Knigsflgel
    • 60 Wei hat leichtes bergewicht am Damenflgel
    • 61 Schwarz hat leichtes bergewicht am Damenflgel
    • 62 Wei hat bergewicht am Damenflgel
    • 63 Schwarz hat bergewicht am Damenflgel
    • 64 Wei hat entscheidendes bergewicht am Damenflgel
    • 65 Schwarz hat entscheidendes bergewicht am Damenflgel
    • 66 Wei hat eine schwache Grundreihe
    • 67 Schwarz hat eine schwache Grundreihe
    • 68 Wei hat eine gut gesicherte Grundreihe
    • 69 Schwarz hat eine gut gesicherte Grundreihe
    • 70 Wei hat einen schlecht gesicherten Knig
    • 71 Schwarz hat einen schlecht gesicherten Knig
    • 72 Wei hat einen gut gesicherten Knig
    • 73 Schwarz hat einen gut gesicherten Knig
    • 74 Der weie Knig steht schlecht
    • 75 Der schwarze Knig steht schlecht
    • 76 Der weie Knig steht gut
    • 77 Der schwarze Knig steht gut
    • 78 Wei hat eine sehr schwache Bauernstruktur
    • 79 Schwarz hat eine sehr schwache Bauernstruktur
    • 80 Wei hat eine schwache Bauernstruktur
    • 81 Schwarz hat eine schwache Bauernstruktur
    • 82 Wei hat eine starke Bauernstruktur
    • 83 Schwarz hat eine starke Bauernstruktur
    • 84 Wei hat eine sehr starke Bauernstruktur
    • 85 Schwarz hat eine sehr starke Bauernstruktur
    • 86 Der weie Springer steht schlecht
    • 87 Der schwarze Springer steht schlecht
    • 88 Der weie Springer steht gut
    • 89 Der schwarze Springer steht gut
    • 90 Der weie Lufer steht schlecht
    • 91 Der schwarze Lufer steht schlecht
    • 92 Der weie Lufer steht gut
    • 93 Der schwarze Lufer steht gut
    • 94 Der weie Turm steht schlecht
    • 95 Der schwarze Turm steht schlecht
    • 96 Der weie Turm steht gut
    • 97 Der schwarze Turm steht gut
    • 98 Die weie Dame steht schlecht
    • 99 Die schwarze Dame steht schlecht
    • 100 Die weie Dame steht gut
    • 101 Die schwarze Dame steht gut
    • 102 Die weien Figuren sind schlecht koordiniert
    • 103 Die schwarzen Figuren sind schlecht koordiniert
    • 104 Die weien Figuren sind gut koordiniert
    • 105 Die schwarzen Figuren sind gut koordiniert
    • 106 Wei hat die Erffnung sehr schwach behandelt
    • 107 Schwarz hat die Erffnung sehr schwach behandelt
    • 108 Wei hat die Erffnung schwach behandelt
    • 109 Schwarz hat die Erffnung schwach behandelt
    • 110 Wei hat die Erffnung gut behandelt
    • 111 Schwarz hat die Erffnung gut behandelt
    • 112 Wei hat die Erffnung sehr gut behandelt
    • 113 Schwarz hat die Erffnung sehr gut behandelt
    • 114 Wei hat das Mittelspiel sehr schwach behandelt
    • 115 Schwarz hat das Mittelspiel sehr schwach behandelt
    • 116 Wei hat das Mittelspiel schwach behandelt
    • 117 Schwarz hat das Mittelspiel schwach behandelt
    • 118 Wei hat das Mittelspiel gut behandelt
    • 119 Schwarz hat das Mittelspiel gut behandelt
    • 120 Wei hat das Mittelspiel sehr gut behandelt
    • 121 Schwarz hat das Mittelspiel sehr gut behandelt
    • 122 Wei hat das Endspiel sehr schwach behandelt
    • 123 Schwarz hat das Endspiel sehr schwach behandelt
    • 124 Wei hat das Endspiel schwach behandelt
    • 125 Schwarz hat das Endspiel schwach behandelt
    • 126 Wei hat das Endspiel gut behandelt
    • 127 Schwarz hat das Endspiel gut behandelt
    • 128 Wei hat das Endspiel sehr gut behandelt
    • 129 Schwarz hat das Endspiel sehr gut behandelt
    • 130 Wei hat etwas Gegenspiel
    • 131 Schwarz hat etwas Gegenspiel
    • 132 Wei hat Gegenspiel
    • 133 Schwarz hat Gegenspiel
    • 134 Wei hat entscheidendes Gegenspiel
    • 135 Schwarz hat entscheidendes Gegenspiel
    • 136 Wei ist in leichter Zeitnot
    • 137 Schwarz ist in leichter Zeitnot
    • 138 Wei ist in erheblicher Zeitnot
    • 139 Schwarz ist in erheblicher Zeitnot

    Weitere vorgeschlagene NAG-Werte fr Schachinformator-Symbole sind u.a.:

    • 140 Mit der Idee ...
    • 141 Gerichtet gegen ...
    • 142 Besser ist
    • 143 Schlechter ist
    • 144 Gleichwertig ist
    • 145 Anmerkung des Herausgebers ("RR")
    • 146 Neuerung ("N")
    • 147 Schwacher Punkt
    • 148 Endspiel
    • 149 Linie
    • 150 Diagonale
    • 151 Wei hat das Luferpaar
    • 152 Schwarz hat das Luferpaar
    • 153 Verschiedenfarbige Lufer
    • 154 Gleichfarbige Lufer

    Andere Vorschlge sind:

    • 190 Etc.
    • 191 Doppelbauern
    • 192 Isolierte Bauern
    • 193 Verbundene Bauern
    • 194 Hngende Bauern
    • 195 Rckstndiger Bauer

    Von Scid definierte Symbole zum internen Gebrauch:

    • 201 Diagramm ("D", manchmal auch "#")

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ###################### ### File formats help: set helpTitle(D,Formats) "Datei-Formate" set helpText(D,Formats) {

    Scids Datei-Formate

    Scid-Datenbanken bestehen aus drei essentiellen Dateien: eine Indexdatei, eine Namendatei und eine Partiendatei. Alle haben eine zweibuchstabige Dateiendung, beginnend mit "s": ".si" fr Indexdateien, ".sn" fr Namendateien und ".sg" fr Partiendateien.

    Die Indexdatei (.si)

    Diese Datei enthlt eine Beschreibung der Datenbank und fr jede Partie einen kleinen Eintrag fester Lnge. Die aktuelle Gre ist 41 Bytes pro Partie. Von diesen sind 28 Bytes wesentliche Informationen wie Ergebnis, Datum, Indizes fr Spieler-, Turnier-, Ortsnamen (die tatschlichen Namen befinden sich in der Namendatei) etc.

    Die verbleibenden 13 Bytes enthalten redundante, aber ntzliche Informationen zur Partie, die zur Beschleunigung der Positions-, Material- und Mustersuche genutzt werden. Siehe den Abschnitt Schnelles Suchen weiter unten fr weitere Informationen.

    Die Namendatei (.sn)

    Diese Datei enthlt alle Spieler-, Turnier-, Orts- und Rundennamen, die in der Datenbank verwendet werden. Jeder Name ist nur einmal gespeichert, auch wenn er in vielen Partien vorkommt. Die Namendatei ist blicherweise die kleinste der drei essentiellen Datenbankdateien.

    Die Partiendatei (.sg)

    Diese Datei enthlt die aktuellen Zge, Varianten und Kommentare jeder Partie. Die Zugkodierung ist sehr kompakt: die meisten Zge bentigen nur ein Byte.

    Wenn eine Partie ersetzt wird, wird ihre neue Version am Ende der Datei gespeichert, so da sich ber die Zeit nicht genutzter Speicherplatz ansammelt. Sie knnen durch Komprimieren die minimale Gre einer Datenbank wiederherstellen.

    Andere Scid-Dateien

    Eine EPD-Datei (Dateiendung: ".epd") enthlt eine Reihe von Schachpositionen, jede mit einem Textkommentar. Das EDP-Dateiformat ist beim PGN-Standard beschrieben.

    Eine E-Mail-Datei (Dateiendung: ".sem") einer Datenbank speichert Daten der Gegner, denen Sie E-Mails senden.

    Eine Suchoptionsdatei (Dateiendung: ".sso") enthlt Einstellungen fr eine Partiedaten- oder Material/Muster-Suche.

    Schnelles Suchen in Scid

    Wie oben erwhnt, enthlt die Indexdatei einige redundante, aber ntzliche Informationen ber jede Partie, um Positions- oder Materialsuchen zu beschleunigen.

    Beispielsweise ist das Material der Schlustellung gespeichert. Wenn Sie nach Turm- und Bauernendspielen suchen, werden alle Partien, die mit einer Dame, einem Lufer oder einem Springer auf dem Brett enden, schnell bergangen.

    Eine andere ntzliche Teilinformation ist in der Reihenfolge gespeichert, in der Bauern ihre Ausgangsstellung verlassen haben (durch Ziehen oder Geschlagenwerden). Dies wird zur Beschleunigung von Zugbaum- oder exakten Suchen verwendet, insbesondere nach Erffnungspositionen. Beispielsweise wird bei der Suche nach der Ausgangsstellung der Franzsischen Verteidigung (1.e4 e6) jede Partie, die mit 1.e4 c5 oder 1.d4 etc. beginnt, ausgelassen, Partien, die mit 1.e4 e5 anfangen, mssen aber immer noch durchsucht werden.

    (Aktualisiert: Scid 2.5, Juni 2001)

    } ################ ### Contact info set helpTitle(D,Author) "Kontakt-Information" set helpText(D,Author) {

    Kontakt-Information

    Die Scid Internet - Seite ist erreichbar unter:
    http://scid.sourceforge.net/

    Sie bietet Downloads der neuesten Versionen von Scid und einigen anderen zustzlichen und ntzlichen Dateien.

    Bitte senden Sie Ihre Kommentare, Fragen, Vorschlge oder Fehlerberichte an den Autor von Scid, Shane Hudson, an folgende E-Mail-Adresse:
    sgh@users.sourceforge.net

    Links

    Falls Sie Freude an Scid haben, knnten Sie die folgenden Internetseiten interessieren:

    • http://www.tim_mann.org/chess.html -- Homepage von Tim Mann's xboard & winboard Programm: eine grafische Oberflche fr Schachprogramme und Schnittstelle fr Internet Schach Server. Sie hat auch gute Informationen ber Crafty, GNUchess und andere Schachprogramme.
    • ftp://ftp.cis.uab.edu/pub/hyatt/ -- das starke Schachprogram Crafty. Das TB - Unterverzeichnis beinhaltet fast alle Nalimov-Endspieltabellen, welche von einigen Schachprogrammen und auch von Scid benutzt werden.
    • http://www.chesscenter.com/twic/ -- TWIC (the week in chess), ein hervorragendes Wochenmagazin fr internationale Schachpartien, verfgbar im PGN-Format.
    • http://scid.sourceforge.net/standard.txt -- der PGN-Standard, geschaffen von Steven J. Edwards im Jahre 1994. Die Textdatei erklrt das PGN- und EPD-Format im Detail.

    (Aktualisiert: Scid 2.6, August 2001)

    } # Book window help set helpTitle(D,Book) "Buch-Fenster" set helpText(D,Book) {

    Buch-Fenster

    Das Buch-Fenster zeigt eine Liste aller im Buch-Verzeichnis von Scid verfgbaren Buch-Datenbanken an. Das Format der Bcher entspricht dem Format, welches von Polygot und den Engines Fruit und Toga verwendet wird.

    Das Buch-Fenster zeigt (aus dem ausgewhlten Buch) fr die aktuelle Position alle mglichen Zge, die im Buch enthalten sind und deren relativen Gewichtungen in Prozent an. Bei jedem Zug wird das Buch-Fenster aktualisiert. Beim Anklicken eines Zuges im Buch-Fenster wird dieser Zug in die aktuelle Stellung bernommen.

    Zwischen den Bchern kann schnell gewechselt werden, in dem man in der oberen Liste ein anderes Buch auswhlt.

    (Aktualisiert: Scid 3.6.21, Dezember 2007)

    } # Tactical game window help set helpTitle(D,TacticalGame) "Trainingspartie-Fenster" set helpText(D,TacticalGame) {

    Trainingspartie-Fenster

    Hier kann eine Trainingspartie gegene eine Engine gespielt werden, die einen Gegner mit einer bestimmten ELO-Zahl simuliert. Der Gegner wird von Phalanx gespielt, als Coach wird Crafty eingesetzt. Diese Engines werden automatisch ber ihre Namen ausgewhlt und sollten korrekt konfiguriert sein. Standardmig werden diese Engines bei der Installation von Scid eingerichtet.

    Folgende Parameter sind einzustellen:

    • Schwierigkeit : ELO-Zahl des Gegners
    • Auswahl der Erffnung : Der Gegner wird die ausgewhlte Erffnung spielen (ntzlich fr das Training von Erffnungen).
    • Analysezeit der Engine: Die Zge des Spielers werden duch eine Coach-Engine berprft. Die Zeit zur berprfung des Zuges um zu Bewerten, ob der Zug gut oder schlecht war, kann eingestellt werden.

    Zum Starten der Partie "Spielen" drcken.

    (Aktualisiert: Scid 3.6.21, Dezember 2007)

    } # Opening Trainer window help set helpTitle(D,OpeningTrainer) "Erffnungstrainer" set helpText(D,OpeningTrainer) {

    Erffnungstrainer

    Eine Scid Datenbank kann als Repertoire genutzt werden, wenn sie mit dem entsprechenden Typ/Icon markiert wurde. Die Datenbank muss einer der folgenen Typen sein:

  • Openings for White
  • Openings for Black
  • Openings for either Color

  • Der Typ muss mit der Auswahl "Konfiguration Trainingsrepertoire" (Wei, Schwarz, Beide) bereinstimmen. Jede Partie reprsentiert eine Erffnungsvariante.

    Erffnungstrainer Statistik

    Vier Zahlen zeigen die Statistik fr die aktuelle Stellung:

    • Grn : Anzahl bereits korrekt gespielten Zge.
    • Gelb : Anzahl zweifelhafter gespielter Zge im Repertoire
    • Rot : Anzahl der Zge, die nicht im Repertoire enthalten sind.
    • Wei : Hufigkeit der Stellung

    Der Bericht

    Der Bericht zeigt fr das ganze Repertoire Statistiken und gibt Informationen ber das Wissen des Anwenders:

    • Positionen im Repertoire: Anzahl der Positione im Repertoire (alle Varianten in der Datenbank)
    • nicht gespielte Positionen : Anzahl der Stellungen, die bisher nie gespielt wurden
    • gespielte Positionen : gespielte Stellungen und die Summe wie hufig sie ausgespielt wurden. Anmerkung: Diese Zahl reprsentiert das Vorkommen der Stellung in allen Erffnungsvarianten: Diese Zahl kann fr Stellungen nahe der Startaufstellung schnell sehr gro werden.
    • Erfolgreich : Anzahl der guten Zge durch den Spieler
    • Zweifelhafte Zge : Anzahl der schwachen/schlechten Zge durch den Spieler
    • Nicht im Repertoire : Anzahl der Zge des Spieler, die nicht im Repertoire enthalten sind.

    (Aktualisiert: Scid 3.6.21, Dezember 2007)

    } ############################################################ # # German tip of the day set tips(D) { { Scid hat mehr als 30 Hilfeseiten und in den meisten Scid-Fenstern liefert die F1-Taste die Hilfeseite zu diesem Fenster. } { Einige Scid-Fenster (z.B. Informationsbereich und Datenbank-Umschalter) haben ein Kontextmenu. Drcken Sie einfach die rechte Maustaste in jedem Fenster, um zu sehen, ob es ein Men hat und welche Funktionen zur Verfgung stehen. } { Scid bietet Ihnen mehr als eine Mglichkeit, Schachzge einzugeben, und lt Ihnen die Wahl, welche Ihnen am meisten zusagt. Sie knnen die Maus verwenden (mit oder ohne Zugvorschlag) oder die Tastatur (mit oder ohne Zugergnzung). Fr Details lesen Sie die Hilfeseite Zge eingeben. } { Wenn Sie einige Datenbanken hufig ffnen, fgen Sie zu jeder ein Lesezeichen hinzu, dann knnen Sie sie schneller mit dem Lesezeichen-Men ffnen. } { Sie knnen alle Zge einer Partie (mit allen Varianten und Kommentaren) mit dem PGN-Fenster betrachten. Im PGN-Fenster knnen Sie zu jedem beliebigen Zug gehen, indem Sie ihn mit der linken Maustaste anklicken oder mit der mittleren Maustaste eine Voransicht dieser Stellung erhalten. } { Sie knnen Partien mit der linken Maustaste per "Drag & Drop" im Datenbank-Umschalter von einer Datenbank in eine andere kopieren. } { Scid kann PGN-Dateien selbst dann ffnen, wenn sie mit Gzip komprimiert wurden (Dateiname mit Erweiterung .gz). PGN-Dateien werden schreibgeschtzt geffnet. Wenn Sie also eine PGN-Datei editieren wollen, erstellen Sie eine neue Scid-Datenbank und kopieren die PGN-Datei mit dem Datenbank-Umschalter dorthin. } { Wenn Sie eine groe Datenbank haben, die Sie oftmals mit dem Zugbaumfenster nutzen, lohnt es sich, Cache-Datei fllen im Dateimen des Zugbaumfensters zu whlen. Damit merken Sie sich Zugbaum-Statistiken fr viele hufige Erffnungspositionen und beschleunigen den Zugriff auf den Zugbaum fr die Datenbank. } { Das Zugbaum-Fenster kann Ihnen alle Zge zeigen, die in der aktuellen Position gespielt wurden, aber wenn Sie auch alle Zugfolgen sehen wollen, mit denen diese Stellung erreicht wurde, finden Sie diese, wenn Sie einen Erffnungsbericht erstellen. } { Klicken Sie mit der linken oder rechten Maustaste auf die berschrift einer Spalte im Partieliste-Fenster , um ihre Breite anzupassen. } { Mit dem Fenster Spielerinformation (um es zu ffnen, klicken Sie einfach auf einen Spielernamen im Informationsbereich unter dem Hauptfenster-Schachbrett) knnen Sie auf einfache Weise den Filter so einstellen, da er alle Partien eines bestimmten Spielers mit einem bestimmten Ergebnis enthlt, indem Sie auf irgendeinen in Rot dargestellten Wert klicken. } { Beim Erffnungsstudium kann es sehr hilfreich sein, fr eine wichtige Position eine Brettsuche mit der Bauern- oder Linien-Option durchzufhren, was andere Erffnungen entdecken knnte, die zur selben Bauernstruktur fhren. } { Im Informationsbereich (unterhalb des Schachbretts) knnen Sie mit der rechten Maustaste ein Men zur Gestaltung der Ausgabe aktivieren. Zum Beispiel knnen Sie Scid veranlassen, den nchsten Zug zu verstecken, was ntzlich ist, wenn man zum Trainieren eine Partie nachspielt und die Zge zu erraten versucht. } { Wenn Sie fr eine groe Datenbank oftmals eine umfangreiche Datenbank-Wartung durchfhren, knnen Sie mehrere Wartungsarbeiten gleichzeitig mit dem Bereiniger ausfhren. } { Wenn Sie eine groe Datenbank haben, wo die meisten Partien einen Turniereintrag besitzen und Sie wollen die Partien nach Datum sortiert haben, erwgen Sie ein Sortieren nach Turnierdatum und Turnier anstatt nach Datum und Turnier, da Ihnen das hilft, Partien desselben Turniers mit unterschiedlichen Daten zusammen zu halten (natrlich unter der Voraussetzung, da sie alle dasselbe Turnierdatum haben). } { Es ist eine gute Idee, vor einem Dubletten lschen eine Schreibkorrektur Ihrer Datenbank durchzufhren, da es dies Scid ermglicht, mehr Dubletten zu finden und zum Lschen vorzumerken. } { Markierungen sind ntzlich, um Datenbankpartien mit Charakteristiken zu versehen, nach denen Sie zu einem spteren Zeitpunkt vielleicht suchen wollen, wie etwa Bauernstruktur, Taktik etc. Sie knnen mit der Partiedaten-Suche nach Markierungen suchen. } { Wenn Sie eine Partie nachspielen und einige Zge ausprobieren wollen, ohne die Partie zu verndern, schalten Sie einfach den Testmodus ein (mit der Tastenkombination Strg+Leerzeichen oder mit dem Symbol aus der Werkzeugleiste), und wenn Sie fertig sind, schalten Sie ihn wieder aus, um zur ursprnglichen Partie zurckzukommen. } { Um die prominentesten Partien (Spieler mit hohen Elo-Zahlen) zu finden, die eine bestimmte Position erreicht haben, ffnen Sie das Zugbaum-Fenster und dort die Liste der besten Partien. Sie knnen sogar die Liste der besten Partien auf Partien mit einem bestimmten Ergebnis begrenzen. } { Eine ausgezeichnete Methode, eine Erffnung mit Hilfe einer groen Datenbank zu studieren, ist, den Trainingsmodus im Zugbaum-Fenster zu aktivieren und dann gegen die Datenbank zu spielen, um zu sehen, welche Zge hufig vorkommen. } { Wenn Sie zwei Datenbanken geffnet haben und die Zugbaum-Statistik der ersten Datenbank sehen wollen, whrend Sie eine Partie der zweiten Datenbank untersuchen, drcken Sie einfach den Schalter Anbinden im Zugbaumfenster, um die Partie an die erste Datenbank zu binden, und wechseln dann zur zweiten Datenbank. } { Der Turnierfinder ist nicht nur zum Auffinden eines bestimmten Turniers ntzlich, sondern auch um zu sehen, an welchen Turnieren ein bestimmter Spieler vor kurzem teilgenommen hat, oder um die Spitzenturniere in einem bestimmten Land zu betrachten. } { Es gibt eine Reihe hufiger Stellungsmuster, die im Fenster Material/Muster-Suche definiert sind und die Ihnen beim Erffnungs- oder Mittelspielstudium ntzlich sein knnen. } { Wenn Sie im Fenster Material/Muster-Suche nach einer bestimmten Materialkonstellation suchen, ist es oftmals hilfreich, die Suche auf Partien zu beschrnken, die mindestens fr einige Halbzge auf das Suchmuster passen, um Partien auszusondern, wo die gesuchte Konstellation nur kurz vorkam. } { Wenn Sie eine wichtige Datenbank haben, die Sie nicht versehentlich verndern wollen, whlen Sie Schreibschutz... im Datei-Men, nachdem Sie sie geffnet haben, oder ndern Sie ihre Dateizugriffsrechte auf "nur Lesen". } { Wenn Sie XBoard oder WinBoard benutzen (oder ein anderes Schachprogramm, das Schachpositionen in FEN-Standardnotation in die Zwischenablage kopieren kann) und wollen dessen aktuelle Schachposition nach Scid kopieren, ist der schnellste und einfachste Weg, Position sichern im Dateimen von XBoard/Winboard zu whlen, danach Stellung einfgen in Scids Men "Bearbeiten". } { Die Partiedaten-Suche ignoriert bei Spieler/Turnier/Ort/Runden-Namen Gro- und Kleinschreibung. Sie knnen sie aber bercksichtigen und gleichzeitig Platzhalterzeichen verwenden (mit "?" = irgendein einzelnes Zeichen und "*" = null oder mehr Zeichen), wenn Sie den Suchtext in Anfhrungszeichen ("...") eingeben. Beispielsweise geben Sie "*BEL" (mit den Anfhrungszeichen) im Ortsfeld ein, um alle in Belgien, nicht aber in Belgrad gespielten Partien zu finden. } { Wenn Sie einen Partiezug korrigieren wollen, ohne die danach gespielten Zge zu verlieren, ffnen Sie das Import-Fenster, klicken auf Aktuelle Partie einfgen, editieren den falschen Zug und whlen dann Importieren. } { Wenn Sie eine ECO-Klassifikationsdatei geladen haben, knnen Sie zur am weitest klassifizierten Position der aktuellen Partie mit Erffnung identifizieren im Partie-Men gehen (Tastenkombination: Strg+Umsch+D). } { Wenn Sie vor dem ffnen einer Datei ihre Gre oder das Datum ihrer letzten Modifikation berprfen wollen, ffnen Sie sie mit dem Dateifinder. } { Eine Repertoire-Datei ist eine ausgezeichnete Methode, Ihre favorisierten Erffnungsvarianten im Auge zu behalten und die Partien zu finden, wo diese Varianten gespielt wurden. Wenn Sie erst einmal Ihre Erffnungen in einer Repertoire-Datei gespeichert haben, knnen Sie jedesmal, wenn Sie eine neue Datei mit Partien haben, eine Repertoire-Suche durchfhren und die Partien mit Ihren favorisierten Erffnungen betrachten. } { Mit einem Erffnungsbericht kann man sehr gut mehr ber eine bestimmte Position lernen. Sie knnen die Erfolgsrate sehen, ob sie zu vielen Kurzremis fhrt und die typischen positionellen Themen. } { Sie knnen die gebruchlichsten Kommentarsymbole (!, !?, += etc.) dem aktuellen Zug oder der aktuellen Stellung mit Tastenkombinationen hinzufgen, ohne den Kommentareditor benutzen zu mssen -- um beispielsweise ein "!" hinzuzufgen, tippen Sie "!" und danach die Eingabetaste. Zu den Details siehe die Hilfeseite Zge eingeben. } { Wenn Sie Erffnungen in einer Datenbank mit dem Zugbaum betrachten, knnen Sie eine ntzlichen bersicht erhalten, welche Erfolge mit der aktuellen Erffnung in der letzten Zeit und zwischen Spitzenspielern erzielt wurden, indem Sie das Statistikfenster ffnen (Tastenkombination: Strg-I). } { Sie knnen die Gre des Hauptfensters ndern, indem Sie die Strg-Taste gedrckt halten und dann die Cursortaste Links oder Rechts drcken. } { Nach einer Suche knnen Sie leicht durch alle passenden Partien blttern, indem Sie die Strg-Taste gedrckt halten und dann die Cursortaste Auf oder Ab drcken, um die vorherige bzw. nchste Partie im Filter zu laden. } { ber die Tasten F2 und F3 knnen direkt die letzten beiden Analyse-Engines gestartet werden, ohne dies nochmal auswhlen zu mssen. } } ############################################################ # # German Correspondence Chess, thanks to Jochen Jansen for translation set helpTitle(D,Correspondence) "Fernschach" set helpText(D,Correspondence) {

    Fernschach

    Derzeit bietet Scid zwei Wege an, um Fernschach zu spielen.

    • Email Schach verschickt die aktuelle Partie per Email an Ihren Gegner, sobald Sie Ihren Zug gemacht haben. Zu diesem Zweck wird eine Email in dem von Ihnen bevorzugten Email-Programm generiert. Diese Email enthlt eine PGN-Datei mit der aktuellen Partie als Anhang. Von Ihnen evtl. eingefgte Kommentare oder Varianten werden selbstverstndlich vorher entfernt.
    • Fernschach-Server werden unter Verwendung des sog. Xfcc-Protokolls untersttzt. Sofern Sie bei einem solchen Server einen Account besitzen, holt ein externes Tool dort Ihre Partien ab und synchronisiert Scid entsprechend. Sobald Sie dann ihren Zug gemacht haben, wird auf dem gleichen Wege wieder Ihr Zug vermittels Xfcc an Ihren Gegner gesendet. Das Holen und Senden wurde hier bewut ber ein externes Tool realisiert, da so spter einfachere Anpassung mglich sind, falls noch andere Protokolle erscheinen.

    Sobald eine der Fernschachfunktionen aus dem Menue aufgerufen werden ffnet sich das Fernschachfenster. Dieses Fenster kann auch aus dem Fenster-Menue aus geffnet werden. Das Fernschachfenster enthlt die ntigen Knpfe zur Navigation durch laufende Partien, um Partien via Xfcc abzuholen und eMail-Partien zu synchronisieren. Auerdem bietet es eine einfache Konsole zur Anzeige der gesendeten und Empfangenen Nachrichten sowie eine Liste aller laufenden Partien aus Scids Posteingang.

    Bevor Sie irgendwelche Fernschachfunktionen nutzen knnen, mssen Sie zuerst eine Datenbank vom Typ "Fernschach" anlegen! Erstellen Sie also ggf. eine neue Datenbank ("Datei-> Neu..." oder Strg-C) und setzen Sie dann im Wartungsfenster den Typ der Datenbank auf "Correspondence Chess" (Briefkastensymbol). Das Setzen dieses Datenbanktyps ist unabdingbar, da Scid am Typ erkennt, mit welcher DB es die empfangenen Zge abgleichen soll. Wenn wie im beschriebenen Fall die Datenbank nach Erstellung ja noch leer ist, behandelt Scid die empfangenen Partien automatisch als neue Partien und fgt diese an die Datenbank an.

    Falls Sie zu diesem Zeitpunkt noch keine Datenbank vom Typ "Correspondence Chess" geffnet haben, wird Scid Sie daran erinnern. Beachten Sie aber, nie mehr als eine Datenbank diesen Typs zu ffnen, da Scid sonst nicht wei, welche der Datenbanken es verwenden soll.

    Grundfunktionen

    Wenn Sie alles korrekt eingerichtet haben, knnen Sie die Fernschachfunktionen ganz einfach ber die folgenden Buttons erreichen

    Bitte beachten Sie auch die Liste der Icons und Statusindikatoren.

    Konfiguration

    Fernschach mit Scid funktioniert ber eine normale Scid-Datenbank, die Ihre Fernschachpartien enthlt, und einigen externen Tools, die fr Scid den "nichtschachlichen-Teil" abwickeln. Diese Tools und einige Parameters mssen einmalig eingerichtet werden, die Einstellungen werden fr die sptere Nutzung gespeichert.

    Sie erreichen den Konfigurationsdialog aus dem Men ber

    Spielen FernschachEinrichten. Einzelheiten finden Sie unter Fernschach einrichten. Das Verlassen dieses Dialogs mittels des [Ok] Buttons speichert automatisch die von Ihnen getroffenen Einstellungen ab.

    Partien empfangen

    Je nach dem, ob Sie per Email oder ber einen Fernschachserver spielen, ist der Empfangsprozess geringfgig verschieden. Wichtig ist, dass am Ende Ihre Partie(n) als Datei(en) im PGN-Format in Scids Posteingang Verzeichnis liegen, ganz gleich, auf welchem Weg Sie dies (evtl. durch externe Programme) erreicht haben.

    Sobald die Partien in der Posteingang liegen, whlen Sie im Men

    Posteingang bearbeiten und Scid arbeitet sich durch die Posteingang, wobei es die neuen Zge automatisch an bereits bestehende Partien in Ihrer Datenbank anhngt. Neue Partien, die noch nicht in der Datenbank erfasst sind, werden automatisch der Datenbank hinzugefgt.

    Fernschach per Email beschreibt detailliert Fernschach via Email, whrend in Fernschach via Schachserver Fernschach ber entsprechende Fernschach-Server beschrieben wird.

    Partien durchgehen

    Nach dem Abholen werden Partien in Scids "clipboard" Datenbank geladen und neue Partien und Zge werden der zuvor geffneten Fernschachdatenbank hinzu gefgt. Der einfachste Weg, diese Partien durch zu gehen, ist die Benutzung der beiden Buttons a list of all positions found is displayed in FEN notation followed by the move in question and the commentary if any.

    Display mask will display the current Mask in a line style. Stating at the current position all subsequent moves are sorted into some unfoldable tree to give an overview of the current lines of play similar to what is found in many repertoir books. Note that not all information are displayed (e.g. comments are shorted to fit the display). Additionally, as Masks work on positions rather than move sequences they may contain loops (ie. transpositions) which can not be unfolded in a line wise display perfectly. That is, this display may be cut at a certain point.

    Conversion to Masks

    Setting up a mask can be a tendious taks especially for complex opening repertoirs. However, if such a repertoir is available as a Scid database or a number of PGN games, or lines stored in usual chess games, Scid can use that information to set up suitable Masks automatically.

    First of all one has to load the information into a Scid database. In case the information is already available as a Scid database this is as easy as opening it. In case a PGN file is use it should be either imported into a Scid database or one can use the Clipbase to import it temporarily. In that case one should make sure that the Clipbase is empty before importing. (

    Edit / Empty Clipbase).

    The next step is to open the tree for the just opened Scid database. Then a new Mask should be created or an existing one opened. Note that this function may be used to consolidate serveral bases into a single Mask.

    Now, the Mask can be filled automatically with the game content of the database. In this process, comments within the games will be converted to move comments (appending to those existing eventually) in the Mask. NAG symbols will be added as well. To initiate this process one can chose either

    Masks / Fill with game to fill the Mask with the contents of a single game, or Fill with Database to loop over all games in the database.

    Note: especially filling a Mask with an entire base can be quite time consuming.

    Note: The mask is filled with all moves till the end of the game including all variations within a game. Therefore, it is sensible to use only bases for this procedure that end the games as soon as the middle game is reached.

    (Updated: Scid 4.3, November 2010)

    } #################### ### Compaction help: set helpTitle(Compact) "Database compaction" set helpText(Compact) {

    Database compaction

    Database compaction is a specific type of maintenance that keeps a database as small and efficient as possible. Compacting a database means removing any unused space in its files. There are two types: name file and game file compaction.

    Name file compaction

    Over time, you may find a database starts to contain a number of player, event, site or round names that are no longer used in any game. This will often happen after you spellcheck names. The unused names waste space in the name file, and can slow down name searches. Name file compaction removes all names that are not used in any games.

    Game file compaction

    Whenever a game is replaced or deleted, wasted space is left in the game file (the largest of the three files in a Scid database). Game file compaction removes all wasted space, leaving no deleted games in the database. Note that this operation is irreversible: after compaction, the deleted games are gone forever!

    Game file compaction is also recommended after sorting a database, to keep the order of the game file consistent with the sorted index file.

    (Updated: Scid 3.6.2, December 2006)

    } #################### ### Database maintenance tools help: set helpTitle(Maintenance) "Database maintenance" set helpText(Maintenance) {

    Database maintenance

    Scid provides a number of tools for maintaining databases, available from the Scid File menu. The database compaction and sorting functions are explained in separate help pages.

    Maintenance window

    Most Scid database maintenance can be done from the Maintenance window, which can be opened from the

    File: Maintenance or Windows menus or the shortcut key Ctrl+M.

    You can use this window to maintain game flags, spellcheck names, compact or sort a database. Note that any operations that are not available for the current database (for example, because it may be read-only or a PGN file) will be grayed out.

    Deleting twin games

    The

    File: Maintenance menu has a command Delete twin games... for detecting extra copies (twins) of games in the database. This command finds all pairs of games that are twins and, for each pair, flags the shorter game deleted leaving the longer game undeleted. Two games are considered to be twins if their players (and any other tags that you can optionally specify) match exactly.

    If you specify the "same moves" option, each pair of games must have the same actual moves up to the length of the shorter game (or up to move 60, whichever comes first) to be twins.

    When you have deleted twins, it is a good idea to check that each game deleted really is a copy of another game. You can do this easily if you selected the "Set filter to all deleted games" option in the delete twins dialog box. The filter will now contain all deleted games. You can browse through them (using the p and n keys) with the twins checker window (available from the maintenance menu, or the shortcut key Ctrl+Shift+T) to verify that each game is deleted because it actually is a twin of another game.

    Editing player, event, site and round names

    You may find mis-spelt names in your databases and want to correct them. You can do this in Scid with the Name editor window (shortcut key: Control+Shift+N), available from the

    File: Maintenance submenu.

    Each unique name is only stored once in the name file, so changing a name actually changes all occurrences of it.

    Spellchecking names

    Scid comes with a spellcheck file named spelling.ssp, for correction of player, event, site and round names. Scid will try to load the spellcheck file whenever it starts up; if it does not load, you can load it from the

    Options menu.

    Once the spellcheck file is loaded, you can use it on a a Scid database using the spellcheck commands in the

    File: Maintenance menu, or from the maintenance window.

    When you spellcheck a database, Scid produces a list of corrections that you can edit before actually making any corrections, so you can remove any corrections you do not want to make.

    Spellchecking is especially useful for standardizing a database so all instances of a particular player are spelt the same way. For example, with the standard spellcheck file, the names "Kramnik,V.", "Vladimir Kramnik", and "V. Kramnik" would all be corrected to "Kramnik, Vladimir".

    The spellcheck file has one additional use: when it is loaded, its player data is used to enhance the player information window and the crosstable window: you will see FIDE master title (gm = International Grandmaster, im = International Master, etc) and country information for any player that is listed in the spellcheck file. Over 6500 strong players of the past and present are listed in the spelling.ssp file that comes with Scid.

    Adding Elo ratings to games

    The "Add Elo ratings..." button in the Maintenance window causes Scid to search the current database for games where a player does not have a rating, but the spellcheck file has an Elo rating listed for that player at the date of the game. Scid will add all such ratings automatically. This is very useful for a database of master-level games which has few ratings.

    The spellcheck file "spelling.ssp" that comes with Scid does not contain the Elo rating information needed for this function, but a larger version of it called "ratings.ssp" is available from the Scid website.

    The Cleaner

    The Scid Cleaner (available from the Maintenance window) is a tool for doing a number of maintenance tasks on a database in one action. You can choose which tasks you want to do, and Scid will perform them on the current database without requiring user interaction. This is especially useful for maintenance of large databases.

    Setting the database autoload game

    The autoload game of a database is the game automatically loaded whenever that database is opened. To change the autoload game of a database, use the "Autoload game number..." button. If you always want the last game of a database to be opened (regardless of the actual number of games in the database), just set it to a very high number such as 9999999.

    Repair a base

    In the rare cases that a Scid database is corrupted one might try to repair it using File / Maintanance / Repair base. For this to work, the base in question must not be opened (which is not possible in most cases anyway). Scid will then try its best to get the database back in a consistent and usable state.

    (Updated: Scid 3.6.26, October 2008)

    } #################### ### Sorting help: set helpTitle(Sorting) "Sorting a database" set helpText(Sorting) {

    Sorting a database

    The sorting function sorts all games in a database. You can select a number of sort criteria. When two games are equal according to the the first criteria, they are sorted using the second criteria, and so on.

    Sort criteria

    The available sorting criteria are:

    • Date (oldest games first)
    • Year (same as date, but using the year only)
    • Event name
    • Site name
    • Country (last 3 letters of Site name)
    • Round name
    • White name
    • Rating (average of White and Black ratings, highest first)
    • Black name
    • Result (White wins, then draws, then Black wins)
    • Length (number of full moves in the game)
    • ECO (the Encyclopedia of Chess Openings code)

    Sort results

    When you sort a Scid database that is not read-only, the sort results are saved so the order of games in the database is permanently changed. If you want to the sort results to be temporary, make the database read-only first using the File: Read-only menu command.

    When you sort a database that is read-only or is actually a PGN file, the sort results cannot be saved so the sorted order of games will be lost when the file is closed.

    Note that sorting a database resets the search filter to contain all games.

    Important note about sorting databases:

    When a database is sorted, the index file is altered but the game file is not changed. This means sorting a database will leave the game file records in a scrambled order relative to the index file. This can really slow down tree, position and material/pattern searches, so you should reorder the game file by compacting it after sorting the database to maintain good search performance.

    Note that only a database sorted by ECO codes can use the fast tree search modes. This however, also requires to compact the database after the sort procedure!

    (Updated: Scid 3.6.26, October 2008)

    } #################### ### Flags help: set helpTitle(Flags) "Game Flags" set helpText(Flags) {

    Game Flags

    A flag is an indicator of some chess characteristic that can be turned on or off for each game in the database. There are 13 user-settable flags that you can directly set for each game. Of these, only the Delete flag has any special significance: games with the Delete flag turned on are marked for deletion and will removed when the database is compacted.

    The other 12 user-settable flags and their symbols are:

    • White opening (W)
    • Black opening (B)
    • Middlegame (M)
    • Endgame (E)
    • Novelty (N)
    • Pawn structure (P)
    • Tactics (T)
    • Queenside play (Q)
    • Kingside play (K)
    • Brilliancy (!)
    • Blunder (?)
    • User-defined (U)

    Since Scid 4.0 additional 6 custom flags are available for individual use. These flags are specific for each base and their textual descriptoin can be set via the maintenance window. In the games list, game info area and so on they display as the numbers (1) .. (6). For header searches they behave exactly like the predefined flags above.

    A flag can be set for the current game, all filter games, or all database games using the maintenance window.

    You can use a header search to find all games in a database that have a particular flag turned on or off, or use flags as part of more complex searches.

    Since all the user-settable flags (except the Delete flag) have no significance to Scid, you can use them for any purpose that suits your needs. For example, you could use the Kingside (K) flag for kingside pawn storms, or kingside heavy piece attacks, or even for endgames with all pawns on the kingside. Depending on usage, however a custom flag might be more suitable.

    Note, that sensible handling of flags can speed up searches significantly!

    The following functions of Scid set or require flags:

    (Updated: Scid 4.3, January 2011)

    } #################### ### Analysis window help: set helpTitle(Analysis) "Analysis window" set helpText(Analysis) {

    The Analysis window

    The Scid analysis window shows the analysis by a chess program (known as an engine) of the current board position. Whenever the board changes, Scid sends the new position to the engine and it shows its assessment of that position. Currently, up to two engines can be run simultaneously. To start the first analysis engine, the short cut F2 can be used, for the second engine F3. To quickly close the engine window just hit ESC.

    The principle informations of the current analysis are shown on top of the window. The first number signifies the evaluation value in pawn units. The score shown in the analysis window is always from the perspective of White, so a negative score indicates Black is better. Depth: shows the search depth already reached by the engines calculations in half moves. The number after Nodes: gives the number of positions analysed for the current result while the number of positions per second (kn/s) is shown in brackets. Time: finally shows the amount of time spent for the current analysis.

    Additional information can be accessed using the