From f62f7507914e57acb5d2bcb328587b1f1e29f40b Mon Sep 17 00:00:00 2001 From: jackrv Date: Fri, 13 Nov 2015 02:40:50 +0200 Subject: [PATCH] new code, new functions, new bugs ^_^ --- ExtDriversFromLogs.sln | 6 + ExtDriversFromLogs/App.config | 69 ++++ ExtDriversFromLogs/ExtDriversFromLogs.csproj | 83 ++-- .../ExtDriversFromLogs_TemporaryKey.pfx | Bin 1684 -> 0 bytes ExtDriversFromLogs/Form1.Designer.cs | 283 ------------- ExtDriversFromLogs/Form1.cs | 258 ------------ ExtDriversFromLogs/Form1.resx | 386 ------------------ ExtDriversFromLogs/Program.cs | 5 +- ExtDriversFromLogs/Properties/AssemblyInfo.cs | 8 +- .../Properties/Resources.Designer.cs | 71 ---- ExtDriversFromLogs/Properties/Resources.resx | 117 ------ .../Properties/Settings.Designer.cs | 153 ++++++- .../Properties/Settings.settings | 70 +++- ExtDriversFromLogs/Properties/app.manifest | 2 +- ...e9f58cce00cf42f13f209f70a3a566e40_full.ico | Bin 15086 -> 0 bytes ExtDriversFromLogs/mainForm.cs | 302 ++++++++++++++ ExtDriversFromLogs/options.Designer.cs | 258 ++++++++++++ 17 files changed, 902 insertions(+), 1169 deletions(-) delete mode 100644 ExtDriversFromLogs/ExtDriversFromLogs_TemporaryKey.pfx delete mode 100644 ExtDriversFromLogs/Form1.Designer.cs delete mode 100644 ExtDriversFromLogs/Form1.cs delete mode 100644 ExtDriversFromLogs/Form1.resx delete mode 100644 ExtDriversFromLogs/Properties/Resources.Designer.cs delete mode 100644 ExtDriversFromLogs/Properties/Resources.resx delete mode 100644 ExtDriversFromLogs/e1212f3e9f58cce00cf42f13f209f70a3a566e40_full.ico create mode 100644 ExtDriversFromLogs/mainForm.cs create mode 100644 ExtDriversFromLogs/options.Designer.cs diff --git a/ExtDriversFromLogs.sln b/ExtDriversFromLogs.sln index dc75d6f..ef8773f 100644 --- a/ExtDriversFromLogs.sln +++ b/ExtDriversFromLogs.sln @@ -8,13 +8,19 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Debug|x64.ActiveCfg = Debug|x64 + {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Debug|x64.Build.0 = Debug|x64 {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Release|Any CPU.ActiveCfg = Release|Any CPU {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Release|Any CPU.Build.0 = Release|Any CPU + {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Release|x64.ActiveCfg = Release|x64 + {B17ACAAD-7B60-4C16-82F6-A78544DC8743}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ExtDriversFromLogs/App.config b/ExtDriversFromLogs/App.config index 8e15646..a18896d 100644 --- a/ExtDriversFromLogs/App.config +++ b/ExtDriversFromLogs/App.config @@ -1,6 +1,75 @@  + + +
+ + + + + + + + + Truck + Tag + Game Nickname + Game ID + Open log + Form today + From yesterday + Open file + Search + Options + Exit + Open profile + Copy nickname + Copy ID + + + Main + Advanced + Language + Search options + Search by ID + Search by Tag + Case sensitive characters + Save + Regular expression line + Do not modify unless you know what it is! + Restore parameters + + + Log file {0} don't exist! + Attention, this string can break the program! + + + + + + \[(?<tHours>[\d{2}]+):(?<tMinutes>[\d{2}]+):(?<tSeconds>[\d{2}]+)\]\s+Spawning\s+GameTruck\s+\((?<name>.+)\((?<gameID>\d+)\)\s+-\s+ETS2MPId:(?<ets2mpID>\d+)(?<adInfo>.*)\)\s+Additional\s+data:\s+(?<adData>.+)[\s\S]\[00\]\s+.+\s+.\/def\/vehicle\/truck\/(?<truck>.+)\/data.sii. + + + 400, 200 + + + 700, 300 + + + False + + + + + + True + + + True + + + \ No newline at end of file diff --git a/ExtDriversFromLogs/ExtDriversFromLogs.csproj b/ExtDriversFromLogs/ExtDriversFromLogs.csproj index 5e61f9f..985480b 100644 --- a/ExtDriversFromLogs/ExtDriversFromLogs.csproj +++ b/ExtDriversFromLogs/ExtDriversFromLogs.csproj @@ -32,7 +32,7 @@ AnyCPU true full - false + true bin\Debug\ DEBUG;TRACE prompt @@ -49,25 +49,52 @@ 4 - e1212f3e9f58cce00cf42f13f209f70a3a566e40_full.ico + logo.ico - 951B640078667373A7877C8FC98F10C8977ED4E6 + 89CA76DF5AF0CD176191BC87ACC33883B54B178A - ExtDriversFromLogs_TemporaryKey.pfx + + - true + false LocalIntranet + - Properties\app.manifest + false + + + + true + bin\x64\Debug\ + DEBUG;TRACE + true + full + x64 + prompt + MinimumRecommendedRules.ruleset + true + + bin\x64\Release\ + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + + + - true + true @@ -82,27 +109,20 @@ - + + Form + + + mainForm.cs + + Form - - Form1.cs + + options.cs - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - SettingsSingleFileGenerator @@ -117,9 +137,6 @@ - - - False @@ -137,6 +154,20 @@ false + + + + + + + + + mainForm.cs + + + options.cs + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 272, 17 - - - 427, 17 - - - - - AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA - AAAgAAAAAQAgAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAPw+/8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wPw/P8A8v7/APL+/wHy/f8D8Pr/BPD6/wTw - +/8D8Pv/BPD6/wLx/P8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8/7/APn//wD5 - //8A+v//APn//wD6//8A9v//APH+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wHy/f8A9P//Eevu/1jK - p/9Yy6f/WMuo/1bLqf9dyKH/MtzO/wDz//8C8fz/APL+/wDy/v8A8v7/APL+/wDy/v8D8fv/APf//zHd - zv//eAD//3gA//93AP/7eQT//24A/4iydP8A////BfH6/wDy/v8A8v7/APL+/wDy/v8A8v7/A/H7/wD2 - //8s39T//3oA/4q0d/8W6uz/KeDX/xrn5v9nw5j/upxC/yPj3P8A9f//AvH8/wHy/f8B8v3/AfL9/wLx - /P8A9///LN/U//91AP+Ns3X/Euzw/yXh1/8M7vL/fLmE//9sAP8z3M//APf//wPx/P8B8f7/APL+/wDy - /v8E8fz/APb//y3f1P/shhH/4Iwf/9iQJv/fjR//yZc1/5C0b//xgwv/MN/S/wD2//8F8Pz/A/H+/wLy - /v8C8v7/0pMt/9uPI/+zoUv/C/D3/46xbv/ejSD/zpUy/92NIf9yvov/CvH6/6+iTf/bjiP/0pMt/9SS - K//Ukiv/05Ir//19Av//dwD/05Aq/wD7//+Ur2v/8IUO/9mRJf/uhxD/fbiA/wD9///Pki3//3kA//1+ - Av//fAD//3wA//98AP/7ggX//3wA/8+VL/8G8vz/CPH5/wjx+v8T6+3/H+bh/zHczf8G8vz/0I4t//9y - AP/7fwT//YIC//2BAv/9gQL//4AA//9/AP/3gwf/1ZEo/9OTKv/ejB//a8KT/ybh2/8e5+H/APz//0TT - uv9Pz7L/w5o8//97AP/9gQL//4AA//+AAP//gAD//38A//98AP/9fQL//3YA/5yrZP9Szq7/Ycad/2TE - mv9Yyqb/S9G2/8WaOv//ewD//YEC//+AAP//gAD//4AA//+AAP/9gQL//YEC//yBAv/+ewH//3YA//94 - AP//eAD//3cA//92AP//fQD//4EA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//YEC//yC - BP/8ggP//IIE//yCA//8ggT//oEB//+AAP//gAD//4AA//x/Av//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//t/Av8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAA - AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAvo9P8C8/7/AfL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wLz//8L6fT/AfP+/wLy/f8B8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/AfL+/wHz/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wHy/f8C8Pv/AvH7/wLx+/8C8Pv/AvD7/wLw+/8C8Pv/AvD7/wLw - +/8C8Pv/AvD8/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APP//wD5//8A+f//APn//wD5//8A+f//APn//wD5 - //8A+f//APn//wD5//8A+v//AvL//wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/AvH8/wD3//8+2cb/rKFM/6qkWP+qpVT/qqVU/6ql - VP+qpFX/qqRV/6qkVf+ppVX/rKRS/6GlXP8f5ub/APT//wPx/P8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8D8Pv/APn//1fNqP//cQD//noD//96 - AP//eQD//3oA//95AP//eQD//3kA//56Af//eQD/83wG/yXi1P8B8v//B/D3/wDy/f8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wPx+/8A+f//VM+v//97 - AP/2gwj/+oAF//19AP/+ewD//3sA//97AP//ewD//nwB//97AP/xfwf/Hunf/wD8//8C+v3/AfT//wLx - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/A/D7/wD5 - //9Uz67//3oA//9/AP/kiBX/X8ul/1HOsf9Tzqz/VM6u/1TOrv9Uzq7/U86u/1fNrf9qw5X/ccOP/3C+ - jv8p4tX/APb//wLx/f8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8D8Pv/APn//1TPrv//eQD//38A/9yMIf8T8PX/APj//wH2/v8A9v//APf//wH2/v8A9///C/T4/9iJ - IP//dQD//3AA/2DJof8A+P//A/D7/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wPw+/8A+f//VM+u//95AP//fgD/3osg/xPw8f8A9f//AvX+/wD2//8A9f//AfX+/wD2 - //8N7/T/2o4m//+AAv//ewD/XMun/wD4//8D8fr/APL+/wDy/v8B8v7/AfL+/wHy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/A/D7/wD5//9Uz67//3oA//9/AP/gihr/RtXE/zbc0P823Mr/M93L/zPd - y/813Mv/Nd3L/xzp5P/Xjyb//38A//95AP9cy6b/APj//wTw+v8A8v7/AfL+/wPx/v8C8P3/AvH+/wDy - /v8A8v7/APL+/wDy/v8B8fz/AfH8/wHx/P8E8Pn/APj//1XNq///dwD//YAC//58AP/+fAD//nsA//97 - AP//egD//nsA//18Av//dgD/X82h/9CSLv//ewD//3cA/17JpP8A9///BPD4/wHx/P8B8fz/A/D8/wPw - /P8D8Pz/AfH8/wHx/P8B8fz/AfH8/wD2//8A9v//APb//wP1/P8A/f//TdS2/+uBC//pihX/44gc/9uR - JP/djiX/3pAk/96QI//fjyT/3Y4o/9+LHv9N2bn/uptA//GEDP/ugQv/UNKu/wD+//8D9fz/APb//wD2 - //8A9v//APb//wD2//8A9v//APb//wD2//8A9///tJ9K/7SfSv+0n0r/sqBM/72aQf+Atn//Fu7v/xXr - 8f892sP/ibNx/4m2ef+JtXr/ibV5/4q0e/+It3f/irR3/3W8hv8j5dz/GOrs/xfu8f9+uIL/uJtA/7Og - S/+0n0r/tJ9K/7SfSv+0n0r/tJ9K/7SfSv+1n0r/s59J/7KhSf//egD//3oA//96AP/8fAP//3IA/66h - Tf8A+f//APr//1LNqv//cwD//HwD//97AP//ewD//3wA//56Af//eQD/9HsG/yjk3P8A9f//APr//6Wl - U///cQD//HwD//96AP//egD//3oA//96AP//egD//3oA//96AP//eQD//3kA//yCA//8ggP//IID//mD - Bv//ewD/qKVT/wL1//8A9v//Wcqq//92AP/9fAT//3wA//98AP//fQD//nsB//98AP/ygAj/JeLc/wDz - //8A+P//oqdb//96AP/4gwf//IED//yCA//8ggP//IID//yCA//8ggP//IID//yBA//8gQT//4AA//+A - AP//gAD//IID//95AP+rpFH/APf//wD2//9F1Lz/0ZQv/8GbO//Emjn/xJo5/8WaOf/Emjj/xpo5/8aW - Nv8l49z/APP//wD3//+jp1r//3kA//uBBP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP/8ggP//3kA/6ykUP8A9///BO/6/wjw/P8F9f//A/T//wH1//8C9f//APb//wL0 - /f8A+v//MN/S/yLh2/8A8///APr//6KoW///egD/+YIH//qCA//9gQL//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//yCA///eQD/qqZV/wD9//8C9f3/APj//wD3//8A9v//APT//wHz - /v8J7/f/Ce/2/wD1//8228j/IeLX/wTz//8A+f//qKNW//90AP/8ewP//3oA//58Af/+gAH//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//oAB//9+AP/nihX/t55F/7mbQv+7nEH/u5xB/7qd - Qf+9mkD/pKRR/3y3gP97tn3/e7aA/4Oxd/8e5eP/AfP//wP1//94t4H/yJM0/7icQP+4m0P/0JIr//9/ - AP//gAH//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//9+AP//eQD//3oA//96 - AP//egD//XwD//9yAP/AmTv/EPL6/xDt9P8R7vT/DfD2/wLy+/8E8Pz/AvD8/wP0/f8D9P//B/P7/wD8 - //9azKv//3oA//2BA///gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//oAB//yB - A//8gQP//IED//yBA//5gwX//3kA/7OfSf8A+///APX+/wH2//8A9v//AvX//wL1//8C9v//AvX//wH1 - //8G8/z/APv//1jPqf//eAD//YID//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//6AAf/+fwD/6YYU/7maQ/+8mT3/vJk9/7yZPf+7mT3/u5k+/7uZ - Pv+7mT3/vJk9/7uaO/+3mkX/0pEr//9+AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//2AAf/+fwD//3oA//96AP//egD//3oA//96 - AP//egD//3oA//96AP//egD//3kA//97AP//fAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAf/9gQP//YEC//2B - Av/9gQL//YEC//2BAv/9gQL//YEC//2BAv/9gQL//YED//2BAv//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP/9fwH//YAB//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP/+gAH//oAB//+AAP//gAD//oAB//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//6AAP/9gAL/8nsH//+BAP/9fwH//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4EA//F8Bv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEA - IAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAT2+f/BfH//wDz+/8B8v7/AfH//wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8f3/B/X//xDd5f8F9P7/AfH//wT0/P8C8f7/APH//wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/BvD9/wT0/v8A8v3/APL+/wHy - /f8B8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDx - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/AfP//wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wHy/f8C8fz/AvH9/wLx/f8C8f3/AvH9/wLx - /f8C8f3/AvH9/wLx/f8C8f3/AvH9/wLx/f8C8f3/AvH9/wLx/f8C8fz/AfL9/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDz//8A9P//APT//wD0 - //8A9P//APT//wD0//8A9P//APT//wD0//8A9P//APT//wD0//8A9P//APT//wD0//8A9P//APT//wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APP//xTr - 9P8o6OH/G+nn/yDo5/8d6eb/Herl/x3q5f8d6uX/Herl/x3p5v8d6eb/Henm/x3p5v8d6uX/Herl/x3q - 5v8e6+H/E+3r/wju//8B8/3/AfH+/wDy/f8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8B8Pv/APn//3fAjv/mgAb/4IYa/+uEFf/mhhX/54UU/+eFFf/nhRT/54UV/+eFFv/nhRb/54UW/+eF - Fv/nhRX/54UV/+SHF//xfQn/jqd2/wD6//8I8Pr/A/D+/wPy/f8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8C8Pv/APr//3W/hP/6dwD//38E//6AAP/9gAD//34A//9/AP//fgD//34A//9+ - AP//fgD//34A//9+AP//fgD//34A//yAA///dgD/kqxc/wD7//8F7v3/BvH8/wD0/P8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8C8Pv/APr//3q+iv//dQD/+4EG//iABP/5gAT//IEE//uB - Bv/7ggX/+4IF//uBBv/7gQb/+4EG//uBBv/7ggX/+4IF//iDCf//eQD/lKtj/wD2//8H7vn/CPD7/wLx - +/8B8v3/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8C8Pv/APr//3i/h///eAD/+4ME//qA - Av//fgL//HwA//57AP//dwD//3YA//94AP//eAD//3gA//94AP//eAD//3gA//x7A///cAD/lKpc/wD9 - //8C8fz/APb//wD1//8B8v//A+/+/wPx/v8B8f//APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8C8Pv/APr//3m+ - if//dwD//YEE//uBA//+egD/rqRR/3HDj/92uoz/cr+H/3i9if93von/d76J/3e+if93vYr/d72J/3a9 - iv95u4T/Zsil/zvh0f8/4Mj/Pt/P/z3hxv8c6+D/APT+/wPz+v8B8P//APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8C8Pv/APr//3m+if//dgD//IEF//uCBP//ewD/bsaW/wD///8F9vv/APr//wD5//8A+f//APn//wD5 - //8A+f//APn//wP3/P8A////W8um/+J5AP/qhQf/6IAQ/+d0BP98toL/AP7//wLv+/8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8C8Pv/APr//3m+if//dgD//IEF//uCBP//eAD/e7uU/wD3//8H7vf/A+76/wLv - /P8D7vz/A+78/wPu/P8D7vz/A+78/wbt+P8A9f//ZsWa//96AP/9fgf//IEG//96AP+BuXr/APr//wXr - /P8C8f7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8C8Pv/APr//3m+if//dgD//IEF//qCBP//dgD/e8CO/wD5 - //8L7Pj/CfH3/wHy+P8C8vn/AvL5/wLy+f8C8vn/AvL5/wbv9/8A+///Zsae//93AP/5ggb/9oEH//92 - AP+At37/A/r//wTv+f8B8/z/APL+/wDy/v8A8v7/APL+/wDy/v8B8v7/AfL+/wDy/v8A8v7/APL+/wDy - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8C8Pv/APr//3m+if//dgD//IEF//uC - BP//eAD/b8eT/wD9//8D9vz/BPX//wD3//8A9///APf//wD2//8A9f//APb//wP2/P8A+///Zsac//94 - AP/6gwT//IEF//93AP+Ct33/APv//wfu/P8A8/3/APL+/wDy/v8A8v7/AfL+/wLx/v8C8f7/A/L//wHx - /v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8C8Pv/APr//3m+ - if//dgD//IEF//uCA///eAD/ma9q/0jSyf9Rz7n/TNS2/0nUtv9I1Lb/SdS3/0fVtv9C1bb/T9W1/07S - rf8V7ev/ZMif//93AP/7ggT//IEF//93AP+Bt33/APv//wfu/P8A8/3/APL+/wDy/v8A8v7/AfL+/wLx - /v8B8P3/AvH+/wLy//8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8A8v7/APL+/wHy - /v8C8Pv/APr//3m+if//dwD/+4IG//qBAv/8fwX/9n4B//d+AP/0fgD/9XsB//h8AP/4fAD/+HwA//Z+ - AP/3fAD/+H4E//9wAP9iy5b/XNCo//92AP/6gwX/+4EG//94AP+BuH7/APv//wju/P8B8/3/APL+/wDy - /v8A8v7/AfL+/wPx/v8C8f7/A/H+/wLx/v8A8v7/APL+/wDy/v8A8v7/APL+/wDy/v8B8Pz/AfD8/wHw - /P8B8Pz/AfD8/wHw/P8D7/j/APj//3m9hf//dQD//oAD//5/AP//ewH//30A//+AAP//fAD//38A//9+ - AP//fQD//30A//9+AP//ewL//H8E//92AP9yx5n/XMyp//90AP/9gQP//oAD//91AP+DtXv/APj//wbt - +f8B8vv/AfD8/wHw/P8B8Pz/AvD8/wPv/P8D7/z/A+/8/wLw/P8B8Pz/AfD8/wHw/P8B8Pz/AfD8/wHw - /P8A+P//APj//wD4//8A+P//APj//wD4//8B9vz/AP///3LElf/hfwr/5Ika/+SKFP/hhhn/3Ykg/9iN - H//diyL/3Isi/92NH//djB//3Y0f/9+LIP/ZjCH/3oom/9+DE/9W0qv/V9av/+l9CP/jiBj/5IkY/+p9 - C/9vwYf/AP///wH2/P8B+P//APj//wD4//8A+P//APj//wD4//8A+P//APj//wD4//8A+P//APj//wD4 - //8A+P//APn//wD5//+TrWv/k61r/5Ota/+TrWv/k61r/5Ota/+Srm3/lqll/1XHrP8Z8ev/Iubq/x3q - 6f8m6Ob/S9e0/1nVqv9e0rH/XNG0/13Rs/9d0bP/XNKy/17Ptf9f0LP/WdWs/1vTr/9R1Lr/L+LP/xrr - 7P8e7Ob/HOfr/xzy7P9czKv/kaZq/5GyZ/+SrWv/k61r/5Ota/+TrWv/k61r/5Ota/+TrWv/k61r/5Ot - a/+TrWv/k61r/5Ota/+Trmv/j65p/5Cwa///eAD//3gA//94AP//eAD//3gA//94AP/9egP//28A/46x - dP8A////BO/7/wD1//8W8ej/yoUl/+x7B//mgAr/5oEH/+h/CP/ofwj/6H8I/+l/Cf/kgQj/5YIF/+p8 - E//ydwD/japh/wD6//8G9Pn/Be38/wD9//+FuHr//3AA//57A///dgD//3gA//94AP//eAD//3gA//94 - AP//eAD//3gA//94AP//eAD//3gA//94AP//eAD//3kA//95AP/7ggT/+4IE//uCBP/7ggT/+4IE//uC - BP/5hAf//3oA/4S4df8F+P//Bu/3/wDz//8U6+v/4YgX//9/AP/8fwX//38A//+AAP//gAD//4AA//+C - AP//fQX//n0E//iDBP//dwD/nqlh/wL4//8G8ff/C+35/wP6//93v33//HcA//qCCv/5hAP/+4IE//uC - BP/7ggT/+4IE//uCBP/7ggT/+4IE//uCBP/7ggT/+4IE//uCBP/7ggT//YAF//2ABf//gAD//4AA//+A - AP//gAD//4AA//+AAP/9ggP//3gA/4S2d/8A+f//Be75/wDz//8b6O//3Ysb//yAAf/0fw3/+oIF//qB - Bv/5gQb/+oEG//mCBf/5gQf/+YEH//CGB///egD/kapk/wD2//8F8Pr/AvD6/wD7//9/uoL//3QA//iD - BP/9gAH//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//38B//9/ - Af//gAD//4AA//+AAP//gAD//4AA//+AAP/9ggP//3gA/4e2dv8A+///Bu/5/wDz//8c7Of/44IV//95 - AP/9eQH//3kA//96AP//egD//3oA//96AP//egD//3oA//x7A///cQD/l6hg/wD4//8D8fr/Be/7/wD6 - //99uoP//3cA//eDA///fwL//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP/9ggP//3gA/4a2dv8A+///Be/5/wDz - //8Q7+v/o6Rm/7WlSf+ppVL/q6RR/66kUP+upFD/rqRQ/66kUP+upFD/rqRQ/6qmVP++nUL/grF4/wH4 - //8B8P3/Bez8/wD7//99uoP//3YA//eDA///fwH//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP/9ggP//3gA/4a2 - d/8A+///BO/6/wDy/v8L7v7/CPX//wL6//8D9///Avn//wD5//8A+f//APn//wD5//8A+f//Afn//wD6 - //8Z9PH/VcWj/wP0/v8G8P7/A+/7/wD8//99uYP//3YA//eDA///fwL//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP/9ggP//3gA/4q1df8A+v//Bez5/wXx+v8E8fr/AvH4/wLw+f8F7vr/BO/5/wPv+f8L7fn/A/H2/wXt - +v8F7fv/Be76/wDv/v8a6O3/UMKm/wX1/P8E7/7/BvD5/wD9//+Au4H//3gA//eDBP//fQX/+oEB//mA - Av/6gAH//38A//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP/9ggP//3cA/4K4gP8A////A/X8/wD8//8A+v//APr//wD6//8A+///APn//wL2 - //8A+P//Afn//wL4//8A+///Afv+/wD8//8a9vH/Tsyc/wH0/f8L8P3/C+/3/wD4//+BuYX//3kA//eF - A//9gQD//38C//+BAP/9gQL/+X8D//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP/+gQH//30A/86ULP+brmL/m6dg/5upXv+dqV7/nKle/5yp - Xv+cqV7/m6pe/56nYv+Wrln/iqdk/4qpXv+Lp2L/jKZk/4ioZv+bn1f/c7GA/wT1//8E8/r/BfD4/wD7 - //92uYP/7nEA//B+CP/kgQP/43sM/+p/Bv/nfgj//IAC//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//99AP//eAD//3cA//93 - AP//eAD//3gA//94AP//eAD//noA//92AP/yegH/f8WU/1DVw/9T1Lb/UtS5/1HUuf9U07T/MuHX/wD1 - /v8E8fz/C+/9/wTw//8e5uH/QtvD/0Xayv9J2sb/QtzH/0fdyP9W1Lr/5IgT//9+AP/+gAH//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//qB - A//7gQT/+IIE//eCBf/7ggP/+4ID//uCA//8ggP/9oME//19CP/ogw3/NOfR/wD3//8C9/3/APf//wD3 - //8A+P//APX//wPy9/8I7/r/BPH7/wLy+P8B8/7/Afb//wD0//8A9P//APj+/wL1//8a6u//3osY//99 - AP/9gQH//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD/+4EB//98Av/mgQv/NuXO/wD6 - //8C9P3/APT//wD1//8A9P//APX//wD1//8A9v//APb//wD2//8A9f//APT//wD1//8A9f//AfX+/wD3 - //8X8ev/5IcY//9+AP/9gQH//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//oEA//9/ - AP/nfQ//csum/zvd1P9B3MX/QN3H/0Ddx/9A3cf/QN3H/0Ddx/9A3cf/QN3H/0Ddx/9A3cf/QN3H/z/d - x/9B3sP/TdrG/0Haz/9W2bL/5YUW//9+AP/+gAH//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//X8B//eCAf//gAD/538H/+Z+CP/tfAT/7HwE/+x8BP/sfAT/7HwE/+x8BP/sfAT/7HwE/+x8 - BP/sfAT/7HwE/+x8BP/ofwP/438F/+Z7DP/tfQf//IAC//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//34B//x/Af/6gAP//YAC//+AAf//gAH//4AB//+AAf//gAH//4AB//+A - Af//gAH//4AB//+AAf//gAH//4AB//+AAP//fQL/+oAC//6BAP//ggH//34C//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AB//6AAf/+gQD//oAA//6A - AP/+gAD//oAA//6AAP/+gAD//oAA//6AAP/+gAD//oAA//6AAP/+gQD//oAA//6AAP/+gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP/+gAH//oAB//6AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4EA//+BAP/9gAL//X8C//6AAf//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAH//X8D//5/Av//gAD//4AA//+AAP/+gAH//oAA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP/+gAD//IEB//2AAv/6fwT//oAA//+AAP/9fwL//oAB//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//YAB//yAA//ndgr/+oAF//+A - AP/9gAH//oAB//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+A - AP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//oEC/+N2 - C/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/ExtDriversFromLogs/Program.cs b/ExtDriversFromLogs/Program.cs index b9a7d6f..79773a9 100644 --- a/ExtDriversFromLogs/Program.cs +++ b/ExtDriversFromLogs/Program.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; using System.Windows.Forms; namespace ExtDriversFromLogs @@ -16,7 +13,7 @@ static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); + Application.Run(new mainForm()); } } } \ No newline at end of file diff --git a/ExtDriversFromLogs/Properties/AssemblyInfo.cs b/ExtDriversFromLogs/Properties/AssemblyInfo.cs index f710e12..02da7eb 100644 --- a/ExtDriversFromLogs/Properties/AssemblyInfo.cs +++ b/ExtDriversFromLogs/Properties/AssemblyInfo.cs @@ -9,7 +9,7 @@ [assembly: AssemblyTitle("ExtDriversFromLogs")] [assembly: AssemblyDescription("Small programm for extract drivers-list from log file")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Euro Trans ^_^")] +[assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ExtDriversFromLogs")] [assembly: AssemblyCopyright("Copyright © jackrv 2015")] [assembly: AssemblyTrademark("")] @@ -33,6 +33,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.1.2.0")] -[assembly: AssemblyFileVersion("0.1.2.0")] -[assembly: NeutralResourcesLanguageAttribute("en")] +[assembly: AssemblyVersion("0.1.4.0")] +[assembly: AssemblyFileVersion("0.1.4.0")] +[assembly: NeutralResourcesLanguageAttribute("")] diff --git a/ExtDriversFromLogs/Properties/Resources.Designer.cs b/ExtDriversFromLogs/Properties/Resources.Designer.cs deleted file mode 100644 index 3aad39d..0000000 --- a/ExtDriversFromLogs/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ExtDriversFromLogs.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ExtDriversFromLogs.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/ExtDriversFromLogs/Properties/Resources.resx b/ExtDriversFromLogs/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/ExtDriversFromLogs/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ExtDriversFromLogs/Properties/Settings.Designer.cs b/ExtDriversFromLogs/Properties/Settings.Designer.cs index 93d72bf..6755d68 100644 --- a/ExtDriversFromLogs/Properties/Settings.Designer.cs +++ b/ExtDriversFromLogs/Properties/Settings.Designer.cs @@ -8,23 +8,150 @@ // //------------------------------------------------------------------------------ -namespace ExtDriversFromLogs.Properties -{ - - +namespace ExtDriversFromLogs.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@" + + + Truck + Tag + Game Nickname + Game ID + Open log + Form today + From yesterday + Open file + Search + Options + Exit + Open profile + Copy nickname + Copy ID + + + Main + Advanced + Language + Search options + Search by ID + Search by Tag + Case sensitive characters + Save + Regular expression line + Do not modify unless you know what it is! + Restore parameters + + + Log file {0} don't exist! + Attention, this string can break the program! + +")] + public global::System.Xml.XmlDocument Language { + get { + return ((global::System.Xml.XmlDocument)(this["Language"])); + } + set { + this["Language"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"\[(?[\d{2}]+):(?[\d{2}]+):(?[\d{2}]+)\]\s+Spawning\s+GameTruck\s+\((?.+)\((?\d+)\)\s+-\s+ETS2MPId:(?\d+)(?.*)\)\s+Additional\s+data:\s+(?.+)[\s\S]\[00\]\s+.+\s+.\/def\/vehicle\/truck\/(?.+)\/data.sii.")] + public string regPattern { + get { + return ((string)(this["regPattern"])); + } + set { + this["regPattern"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("400, 200")] + public global::System.Drawing.Point windowPositon { + get { + return ((global::System.Drawing.Point)(this["windowPositon"])); + } + set { + this["windowPositon"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("700, 300")] + public global::System.Drawing.Size windowSize { + get { + return ((global::System.Drawing.Size)(this["windowSize"])); + } + set { + this["windowSize"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool chckCCase { + get { + return ((bool)(this["chckCCase"])); + } + set { + this["chckCCase"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string txtSearchLine { + get { + return ((string)(this["txtSearchLine"])); + } + set { + this["txtSearchLine"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool chckSearchByID { + get { + return ((bool)(this["chckSearchByID"])); + } + set { + this["chckSearchByID"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool chckSearchByTag { + get { + return ((bool)(this["chckSearchByTag"])); + } + set { + this["chckSearchByTag"] = value; + } + } } } diff --git a/ExtDriversFromLogs/Properties/Settings.settings b/ExtDriversFromLogs/Properties/Settings.settings index 3964565..2e0d11d 100644 --- a/ExtDriversFromLogs/Properties/Settings.settings +++ b/ExtDriversFromLogs/Properties/Settings.settings @@ -1,7 +1,65 @@  - - - - - - + + + + + <?xml version="1.0" encoding="utf-16"?> +<Language name="English"> + <mainForm> + <colTruck>Truck</colTruck> + <colTag>Tag</colTag> + <colNickname>Game Nickname</colNickname> + <colGameID>Game ID</colGameID> + <groupOpen>Open log</groupOpen> + <btnOpen>Form today</btnOpen> + <btnOpenYesterday>From yesterday</btnOpenYesterday> + <btnOpenAnother>Open file</btnOpenAnother> + <groupSearch>Search</groupSearch> + <btnOptions>Options</btnOptions> + <btnExit>Exit</btnExit> + <menuOpenProfile>Open profile</menuOpenProfile> + <menuCopyName>Copy nickname</menuCopyName> + <menuCopyID>Copy ID</menuCopyID> + </mainForm> + <optionsForm> + <tabMain>Main</tabMain> + <tabAdv>Advanced</tabAdv> + <groupLanguage>Language</groupLanguage> + <groupOptionSearch>Search options</groupOptionSearch> + <chckById>Search by ID</chckById> + <chckByTag>Search by Tag</chckByTag> + <chckCCase>Case sensitive characters</chckCCase> + <btnSave>Save</btnSave> + <groupRegLine>Regular expression line</groupRegLine> + <lblRegAttention>Do not modify unless you know what it is!</lblRegAttention> + <btnRestore>Restore parameters</btnRestore> + </optionsForm> + <messages> + <msgNoFile>Log file {0} don't exist!</msgNoFile> + <msgEnterToRegLine>Attention, this string can break the program!</msgEnterToRegLine> + </messages> +</Language> + + + \[(?<tHours>[\d{2}]+):(?<tMinutes>[\d{2}]+):(?<tSeconds>[\d{2}]+)\]\s+Spawning\s+GameTruck\s+\((?<name>.+)\((?<gameID>\d+)\)\s+-\s+ETS2MPId:(?<ets2mpID>\d+)(?<adInfo>.*)\)\s+Additional\s+data:\s+(?<adData>.+)[\s\S]\[00\]\s+.+\s+.\/def\/vehicle\/truck\/(?<truck>.+)\/data.sii. + + + 400, 200 + + + 700, 300 + + + False + + + + + + True + + + True + + + \ No newline at end of file diff --git a/ExtDriversFromLogs/Properties/app.manifest b/ExtDriversFromLogs/Properties/app.manifest index 7e8ad37..7776278 100644 --- a/ExtDriversFromLogs/Properties/app.manifest +++ b/ExtDriversFromLogs/Properties/app.manifest @@ -19,8 +19,8 @@ - + diff --git a/ExtDriversFromLogs/e1212f3e9f58cce00cf42f13f209f70a3a566e40_full.ico b/ExtDriversFromLogs/e1212f3e9f58cce00cf42f13f209f70a3a566e40_full.ico deleted file mode 100644 index f1fc57a24acd22cd2cf0fcb1540e12c1f16f06da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 drivers = new Dictionary(); + string personal_dir = Environment.GetFolderPath(Environment.SpecialFolder.Personal); + + private struct Driver + { + private string truckName; + public string time; + public string name; + public int gameID; + public int ets2mpID; + public string tag; + public string adData; + public string adInfo; + public string truck { + get + { + return truckName; + } + set + { + switch (value) + { + case "daf.xf_euro6": + truckName = "DAF XF Euro 6"; + break; + case "daf.xf": + truckName = "DAF XF 105"; + break; + case "iveco.stralis": + truckName = "Iveco Stralis"; + break; + case "iveco.hiway": + truckName = "Iveco Hi-Way"; + break; + case "man.tgx": + truckName = "MAN TGX"; + break; + case "mercedes.actros": + truckName = "Mersedes Actros"; + break; + case "mercedes.actros2014": + truckName = "Mersedes New Actros"; + break; + case "renault.magnum": + truckName = "Renault Magnum"; + break; + case "renault.premium": + truckName = "Renault Premium"; + break; + case "scania.r": + truckName = "Scania R"; + break; + case "scania.streamline": + truckName = "Scania StreamLine"; + break; + case "volvo.fh16": + truckName = "Volvo FH16 (2009)"; + break; + case "volvo.fh16_2012": + truckName = "Volvo FH16 (2012)"; + break; + } + } + } + } + + public mainForm() + { + InitializeComponent(); + localize(); + } + + private void setText(string control, XmlNode node) + { + if (node != null) + control = node.InnerText; + } + + private void localize() + { + currentLanguage = Properties.Settings.Default.Language.SelectSingleNode("/Language/@name").Value; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colTruck") != null) + this.columnHeader6.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colTruck").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colTag") != null) + this.columnHeader5.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colTag").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colNickname") != null) + this.columnHeader2.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colNickname").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colGameID") != null) + this.columnHeader4.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/colGameID").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOpenYesterday") != null) + this.btnOpenYesterday.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOpenYesterday").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOpenAnother") != null) + this.btnOpenAnother.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOpenAnother").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnExit") != null) + this.btnExit.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnExit").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOptions") != null) + this.btnOptions.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOptions").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/groupSearch") != null) + this.grpSearch.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/groupSearch").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/groupOpen") != null) + this.grpOpen.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/groupOpen").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOpen") != null) + this.btnOpen.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/btnOpen").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/menuOpenProfile") != null) + this.drvMenu_OpenProfile.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/menuOpenProfile").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/menuCopyName") != null) + this.drvMenu_CopyName.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/menuCopyName").InnerText; + if (Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/menuCopyID") != null) + this.drvMenu_CopyID.Text = Properties.Settings.Default.Language.SelectSingleNode("/Language/mainForm/menuCopyID").InnerText; + } + + private void openFile(string path) + { + drivers.Clear(); + try + { + if (File.Exists(path)) + { + string file = File.ReadAllText(path, Encoding.Unicode); + Regex rgx = new Regex(Properties.Settings.Default.regPattern); + foreach (Match match in rgx.Matches(file)) + { + int ets2mpID = int.Parse(match.Groups["ets2mpID"].Value); + if (!drivers.ContainsKey(ets2mpID)) + { + string tag = ""; + if (match.Groups["adInfo"].Value != "") + { + string[] otherInfo = Regex.Split(match.Groups["adInfo"].Value, @"\s-\s")[1].Split(':'); + if (otherInfo[0] == "Tag") + tag = otherInfo[1]; + } + + Driver driver = new Driver(); + + driver.time = String.Format("{0}:{1}:{2}", match.Groups["tHours"].Value, match.Groups["tMinutes"].Value, match.Groups["tSeconds"].Value); + driver.name = match.Groups["name"].Value; + driver.gameID = int.Parse(match.Groups["gameID"].Value); + driver.ets2mpID = ets2mpID; + driver.tag = tag; + driver.adData = match.Groups["adData"].Value; + driver.truck = match.Groups["truck"].Value; + driver.adInfo = match.Groups["adInfo"].Value; + + drivers.Add(ets2mpID, driver); + } + } + rgx = new Regex(@".*\\log_spawning_(?\d{2}?)_(?\d{2}?)_(?\d{4}?).log"); + this.Text = String.Format("ExtDfL - [{0}-{1}-{2}]", rgx.Matches(path)[0].Groups["day"].Value, rgx.Matches(path)[0].Groups["month"].Value, rgx.Matches(path)[0].Groups["year"].Value); + + load_list(); + + } + else + { + string errorMsg = Properties.Settings.Default.Language.SelectSingleNode("/Language/messages/msgNoFile") != null ? Properties.Settings.Default.Language.SelectSingleNode("/Language/messages/msgNoFile").InnerText : "Log file {0} don't exist!"; + MessageBox.Show(string.Format(errorMsg, path)); + } + + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + + } + + private void load_list() + { + lstDrivers.Items.Clear(); + string searchLine = Properties.Settings.Default.chckCCase ? txtSearch.Text : txtSearch.Text.ToLowerInvariant(); + foreach (KeyValuePair k in drivers) + { + string valName = Properties.Settings.Default.chckCCase ? k.Value.name : k.Value.name.ToLowerInvariant(); + string valTag = Properties.Settings.Default.chckCCase ? k.Value.tag : k.Value.tag.ToLowerInvariant(); + string valID = k.Value.gameID.ToString(); + + if ((valName.Contains(searchLine)) || ((valTag.Contains(searchLine)) && (Properties.Settings.Default.chckSearchByTag)) || (valID.Contains(searchLine) && (Properties.Settings.Default.chckSearchByID))) + { + lstDrivers.Items.Add(new ListViewItem(new[] { + (lstDrivers.Items.Count + 1).ToString(), + k.Value.truck, + k.Value.tag, + k.Value.name, + k.Value.gameID.ToString(), + k.Value.ets2mpID.ToString() + })); + } + } + + lblStat.Text = lstDrivers.Items.Count + " / " + drivers.Count; + } + + private void mainForm_Load(object sender, EventArgs e) + { + txtSearch.Text = Properties.Settings.Default.txtSearchLine; + this.Size = Properties.Settings.Default.windowSize; + this.Location = Properties.Settings.Default.windowPositon; + } + + private void mainForm_FormClosing(object sender, FormClosingEventArgs e) + { + Properties.Settings.Default.txtSearchLine = txtSearch.Text; + Properties.Settings.Default.windowPositon = this.Location; + Properties.Settings.Default.windowSize = this.Size; + Properties.Settings.Default.Save(); + } + + private void mainForm_Resize(object sender, EventArgs e) + { + lstDrivers.Columns[3].Width = this.Width - 565; + } + + private void lstDrivers_DoubleClick(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("http://ets2mp.com/index.php?page=profile&id=" + lstDrivers.FocusedItem.SubItems[5].Text); + } + + private void lstDrivers_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Right) + { + cntxtDriversMenu.Show(this, e.X, e.Y); + } + } + + private void drvMenu_CopyName_Click(object sender, EventArgs e) + { + Clipboard.SetText(lstDrivers.FocusedItem.SubItems[3].Text); + } + + private void drvMenu_CopyID_Click(object sender, EventArgs e) + { + Clipboard.SetText(lstDrivers.FocusedItem.SubItems[5].Text); + } + + private void txtSearch_TextChanged(object sender, EventArgs e) + { + load_list(); + } + + private void btnOpen_Click(object sender, EventArgs e) + { + string date = DateTime.Now.Date.ToString("dd_MM_yyyy"); + string path = String.Format("{0}\\ETS2MP\\logs\\log_spawning_{1}.log", personal_dir, date); + openFile(path); + } + + private void btnOther_Click(object sender, EventArgs e) + { + cntxtOpenMenu.Show(btnOtherOpen, new Point(0, btnOtherOpen.Height)); + } + + private void btnOpenYesterday_Click(object sender, EventArgs e) + { + string date = DateTime.Now.AddDays(-1).ToString("dd_MM_yyyy"); + string path = String.Format("{0}\\ETS2MP\\logs\\log_spawning_{1}.log", personal_dir, date); + openFile(path); + } + + private void btnOpenAnother_Click(object sender, EventArgs e) + { + openFileDialog.InitialDirectory = String.Format("{0}\\ETS2MP\\logs", personal_dir); + openFileDialog.Filter = "Log files|log_spawning_*.log"; + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + openFile(openFileDialog.FileName); + } + } + + private void btnOptions_Click(object sender, EventArgs e) + { + settings = new options(); + if (settings.ShowDialog() == DialogResult.OK) + { + txtSearch.Text = Properties.Settings.Default.txtSearchLine; + if (currentLanguage != Properties.Settings.Default.Language.SelectSingleNode("/Language/@name").Value) + localize(); + } + } + + private void btnExit_Click(object sender, EventArgs e) + { + Application.Exit(); + } + } +} diff --git a/ExtDriversFromLogs/options.Designer.cs b/ExtDriversFromLogs/options.Designer.cs new file mode 100644 index 0000000..f0f4015 --- /dev/null +++ b/ExtDriversFromLogs/options.Designer.cs @@ -0,0 +1,258 @@ +namespace ExtDriversFromLogs +{ + partial class options + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(options)); + this.btnSave = new System.Windows.Forms.Button(); + this.tabControl = new System.Windows.Forms.TabControl(); + this.tabMain = new System.Windows.Forms.TabPage(); + this.grpOptions = new System.Windows.Forms.GroupBox(); + this.chckCCase = new System.Windows.Forms.CheckBox(); + this.chckByTag = new System.Windows.Forms.CheckBox(); + this.chckByID = new System.Windows.Forms.CheckBox(); + this.grpLang = new System.Windows.Forms.GroupBox(); + this.cmbLang = new System.Windows.Forms.ComboBox(); + this.tabAdv = new System.Windows.Forms.TabPage(); + this.btnRestore = new System.Windows.Forms.Button(); + this.grpRegLine = new System.Windows.Forms.GroupBox(); + this.label1 = new System.Windows.Forms.Label(); + this.lblAttention = new System.Windows.Forms.Label(); + this.txtRegLine = new System.Windows.Forms.TextBox(); + this.tabControl.SuspendLayout(); + this.tabMain.SuspendLayout(); + this.grpOptions.SuspendLayout(); + this.grpLang.SuspendLayout(); + this.tabAdv.SuspendLayout(); + this.grpRegLine.SuspendLayout(); + this.SuspendLayout(); + // + // btnSave + // + this.btnSave.Location = new System.Drawing.Point(5, 208); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(290, 23); + this.btnSave.TabIndex = 1; + this.btnSave.Text = "Save"; + this.btnSave.UseVisualStyleBackColor = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // tabControl + // + this.tabControl.Controls.Add(this.tabMain); + this.tabControl.Controls.Add(this.tabAdv); + this.tabControl.Location = new System.Drawing.Point(5, 8); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(290, 194); + this.tabControl.TabIndex = 2; + // + // tabMain + // + this.tabMain.Controls.Add(this.grpOptions); + this.tabMain.Controls.Add(this.grpLang); + this.tabMain.Location = new System.Drawing.Point(4, 22); + this.tabMain.Name = "tabMain"; + this.tabMain.Padding = new System.Windows.Forms.Padding(3); + this.tabMain.Size = new System.Drawing.Size(282, 168); + this.tabMain.TabIndex = 0; + this.tabMain.Text = "Main"; + this.tabMain.UseVisualStyleBackColor = true; + // + // grpOptions + // + this.grpOptions.Controls.Add(this.chckCCase); + this.grpOptions.Controls.Add(this.chckByTag); + this.grpOptions.Controls.Add(this.chckByID); + this.grpOptions.Location = new System.Drawing.Point(6, 59); + this.grpOptions.Name = "grpOptions"; + this.grpOptions.Size = new System.Drawing.Size(270, 71); + this.grpOptions.TabIndex = 1; + this.grpOptions.TabStop = false; + this.grpOptions.Text = "Search options"; + // + // chckCCase + // + this.chckCCase.AutoSize = true; + this.chckCCase.Location = new System.Drawing.Point(6, 42); + this.chckCCase.Name = "chckCCase"; + this.chckCCase.Size = new System.Drawing.Size(147, 17); + this.chckCCase.TabIndex = 2; + this.chckCCase.Text = "Case sensitive characters"; + this.chckCCase.UseVisualStyleBackColor = true; + this.chckCCase.CheckedChanged += new System.EventHandler(this.chckCCase_CheckedChanged); + // + // chckByTag + // + this.chckByTag.AutoSize = true; + this.chckByTag.Location = new System.Drawing.Point(144, 19); + this.chckByTag.Name = "chckByTag"; + this.chckByTag.Size = new System.Drawing.Size(96, 17); + this.chckByTag.TabIndex = 1; + this.chckByTag.Text = "Search by Tag"; + this.chckByTag.UseVisualStyleBackColor = true; + this.chckByTag.CheckedChanged += new System.EventHandler(this.chckByTag_CheckedChanged); + // + // chckByID + // + this.chckByID.AutoSize = true; + this.chckByID.Location = new System.Drawing.Point(6, 19); + this.chckByID.Name = "chckByID"; + this.chckByID.Size = new System.Drawing.Size(88, 17); + this.chckByID.TabIndex = 0; + this.chckByID.Text = "Search by ID"; + this.chckByID.UseVisualStyleBackColor = true; + this.chckByID.CheckedChanged += new System.EventHandler(this.chckByID_CheckedChanged); + // + // grpLang + // + this.grpLang.Controls.Add(this.cmbLang); + this.grpLang.Location = new System.Drawing.Point(6, 6); + this.grpLang.Name = "grpLang"; + this.grpLang.Size = new System.Drawing.Size(270, 47); + this.grpLang.TabIndex = 0; + this.grpLang.TabStop = false; + this.grpLang.Text = "Language"; + // + // cmbLang + // + this.cmbLang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbLang.FormattingEnabled = true; + this.cmbLang.Location = new System.Drawing.Point(6, 19); + this.cmbLang.Name = "cmbLang"; + this.cmbLang.Size = new System.Drawing.Size(258, 21); + this.cmbLang.TabIndex = 0; + this.cmbLang.SelectedIndexChanged += new System.EventHandler(this.cmbLang_SelectedIndexChanged); + // + // tabAdv + // + this.tabAdv.Controls.Add(this.btnRestore); + this.tabAdv.Controls.Add(this.grpRegLine); + this.tabAdv.Location = new System.Drawing.Point(4, 22); + this.tabAdv.Name = "tabAdv"; + this.tabAdv.Padding = new System.Windows.Forms.Padding(3); + this.tabAdv.Size = new System.Drawing.Size(282, 168); + this.tabAdv.TabIndex = 1; + this.tabAdv.Text = "Advanced"; + this.tabAdv.UseVisualStyleBackColor = true; + // + // btnRestore + // + this.btnRestore.Location = new System.Drawing.Point(160, 139); + this.btnRestore.Name = "btnRestore"; + this.btnRestore.Size = new System.Drawing.Size(116, 23); + this.btnRestore.TabIndex = 1; + this.btnRestore.Text = "Restore parameters"; + this.btnRestore.UseVisualStyleBackColor = true; + this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click); + // + // grpRegLine + // + this.grpRegLine.Controls.Add(this.label1); + this.grpRegLine.Controls.Add(this.lblAttention); + this.grpRegLine.Controls.Add(this.txtRegLine); + this.grpRegLine.Location = new System.Drawing.Point(8, 6); + this.grpRegLine.Name = "grpRegLine"; + this.grpRegLine.Size = new System.Drawing.Size(268, 61); + this.grpRegLine.TabIndex = 0; + this.grpRegLine.TabStop = false; + this.grpRegLine.Text = "Regular expression line"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.ForeColor = System.Drawing.Color.Red; + this.label1.Location = new System.Drawing.Point(14, 41); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(12, 13); + this.label1.TabIndex = 2; + this.label1.Text = "*"; + // + // lblAttention + // + this.lblAttention.AutoSize = true; + this.lblAttention.ForeColor = System.Drawing.Color.Red; + this.lblAttention.Location = new System.Drawing.Point(24, 42); + this.lblAttention.Name = "lblAttention"; + this.lblAttention.Size = new System.Drawing.Size(201, 13); + this.lblAttention.TabIndex = 1; + this.lblAttention.Text = "Do not modify unless you know what it is!"; + // + // txtRegLine + // + this.txtRegLine.Location = new System.Drawing.Point(6, 19); + this.txtRegLine.Name = "txtRegLine"; + this.txtRegLine.Size = new System.Drawing.Size(256, 20); + this.txtRegLine.TabIndex = 0; + this.txtRegLine.Enter += new System.EventHandler(this.txtRegLine_Enter); + // + // options + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(299, 234); + this.Controls.Add(this.tabControl); + this.Controls.Add(this.btnSave); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "options"; + this.Text = "options"; + this.Load += new System.EventHandler(this.options_Load); + this.tabControl.ResumeLayout(false); + this.tabMain.ResumeLayout(false); + this.grpOptions.ResumeLayout(false); + this.grpOptions.PerformLayout(); + this.grpLang.ResumeLayout(false); + this.tabAdv.ResumeLayout(false); + this.grpRegLine.ResumeLayout(false); + this.grpRegLine.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage tabMain; + private System.Windows.Forms.TabPage tabAdv; + private System.Windows.Forms.GroupBox grpRegLine; + private System.Windows.Forms.TextBox txtRegLine; + private System.Windows.Forms.GroupBox grpLang; + private System.Windows.Forms.ComboBox cmbLang; + private System.Windows.Forms.GroupBox grpOptions; + private System.Windows.Forms.CheckBox chckByTag; + private System.Windows.Forms.CheckBox chckByID; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label lblAttention; + private System.Windows.Forms.CheckBox chckCCase; + private System.Windows.Forms.Button btnRestore; + + } +} \ No newline at end of file