├── .gitattributes
├── .gitignore
├── .travis.yml
├── Bin
└── sb.exe
├── LICENSE.txt
├── README.md
└── Source
├── Main
├── Core
│ ├── Cancelable.cs
│ ├── Configuration.cs
│ ├── ErrorForm.Designer.cs
│ ├── ErrorForm.cs
│ ├── ErrorForm.resx
│ ├── ExplorerContextMenuAdder.cs
│ ├── MessageBoxException.cs
│ └── Program.cs
├── Main.csproj
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Tasks
│ ├── Backup
│ │ ├── BackupForm.Designer.cs
│ │ ├── BackupForm.cs
│ │ ├── BackupForm.resx
│ │ └── Backuper.cs
│ ├── Configure
│ │ ├── ConfigureForm.Designer.cs
│ │ ├── ConfigureForm.cs
│ │ ├── ConfigureForm.resx
│ │ └── Configurer.cs
│ ├── EntryGate.cs
│ ├── Install
│ │ ├── InstallForm.Designer.cs
│ │ ├── InstallForm.cs
│ │ ├── InstallForm.resx
│ │ └── Installer.cs
│ ├── Restore
│ │ ├── RestoreForm.Designer.cs
│ │ ├── RestoreForm.cs
│ │ ├── RestoreForm.resx
│ │ └── Restorer.cs
│ └── Uninstall
│ │ ├── UninstallForm.Designer.cs
│ │ ├── UninstallForm.cs
│ │ ├── UninstallForm.resx
│ │ └── Uninstaller.cs
├── bin
│ └── Release
│ │ └── Main.vshost.exe.manifest
└── bookmarks.ico
└── SimpleBackup.sln
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## Simple Backup - project specific.
3 | #################
4 |
5 | .svn/
6 | Deploy/
7 |
8 | Source/TestConsole/Bin/
9 | Source/TestConsole2/Bin/
10 | Source/UnitTests/Bin/
11 | Source/Main/bin/
12 |
13 | sb.vshost.exe
14 | sb.vshost.exe.manifest
15 |
16 |
17 | #################
18 | ## Eclipse
19 | #################
20 |
21 | *.pydevproject
22 | .project
23 | .metadata
24 | tmp/
25 | *.tmp
26 | *.bak
27 | *.swp
28 | *~.nib
29 | local.properties
30 | .classpath
31 | .settings/
32 | .loadpath
33 |
34 | # External tool builders
35 | .externalToolBuilders/
36 |
37 | # Locally stored "Eclipse launch configurations"
38 | *.launch
39 |
40 | # CDT-specific
41 | .cproject
42 |
43 | # PDT-specific
44 | .buildpath
45 |
46 |
47 | #################
48 | ## Visual Studio
49 | #################
50 |
51 | ## Ignore Visual Studio temporary files, build results, and
52 | ## files generated by popular Visual Studio add-ons.
53 |
54 | # User-specific files
55 | *.suo
56 | *.user
57 | *.sln.docstates
58 |
59 | # Build results
60 |
61 | [Dd]ebug/
62 | x64/
63 | [Bb]uild/
64 | [Oo]bj/
65 |
66 | # MSTest test Results
67 | [Tt]est[Rr]esult*/
68 | [Bb]uild[Ll]og.*
69 |
70 | *_i.c
71 | *_p.c
72 | *.ilk
73 | *.meta
74 | *.obj
75 | *.pch
76 | *.pgc
77 | *.pgd
78 | *.rsp
79 | *.sbr
80 | *.tlb
81 | *.tli
82 | *.tlh
83 | *.tmp
84 | *.tmp_proj
85 | *.log
86 | *.vspscc
87 | *.vssscc
88 | .builds
89 | *.pidb
90 | *.log
91 | *.scc
92 |
93 | # Visual C++ cache files
94 | ipch/
95 | *.aps
96 | *.ncb
97 | *.opensdf
98 | *.sdf
99 | *.cachefile
100 |
101 | # Visual Studio profiler
102 | *.psess
103 | *.vsp
104 | *.vspx
105 |
106 | # Guidance Automation Toolkit
107 | *.gpState
108 |
109 | # ReSharper is a .NET coding add-in
110 | _ReSharper*/
111 | *.[Rr]e[Ss]harper
112 |
113 | # TeamCity is a build add-in
114 | _TeamCity*
115 |
116 | # DotCover is a Code Coverage Tool
117 | *.dotCover
118 |
119 | # NCrunch
120 | *.ncrunch*
121 | .*crunch*.local.xml
122 |
123 | # Installshield output folder
124 | [Ee]xpress/
125 |
126 | # DocProject is a documentation generator add-in
127 | DocProject/buildhelp/
128 | DocProject/Help/*.HxT
129 | DocProject/Help/*.HxC
130 | DocProject/Help/*.hhc
131 | DocProject/Help/*.hhk
132 | DocProject/Help/*.hhp
133 | DocProject/Help/Html2
134 | DocProject/Help/html
135 |
136 | # Click-Once directory
137 | publish/
138 |
139 | # Publish Web Output
140 | *.Publish.xml
141 | *.pubxml
142 |
143 | # NuGet Packages Directory
144 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line
145 | #packages/
146 |
147 | # Windows Azure Build Output
148 | csx
149 | *.build.csdef
150 |
151 | # Windows Store app package directory
152 | AppPackages/
153 |
154 | # Others
155 | sql/
156 | *.Cache
157 | ClientBin/
158 | [Ss]tyle[Cc]op.*
159 | ~$*
160 | *~
161 | *.dbmdl
162 | *.[Pp]ublish.xml
163 | *.pfx
164 | *.publishsettings
165 |
166 | # RIA/Silverlight projects
167 | Generated_Code/
168 |
169 | # Backup & report files from converting an old project file to a newer
170 | # Visual Studio version. Backup files are not needed, because we have git ;-)
171 | _UpgradeReport_Files/
172 | UpgradeLog*.XML
173 | UpgradeLog*.htm
174 |
175 | # SQL Server files
176 | App_Data/*.mdf
177 | App_Data/*.ldf
178 |
179 | #############
180 | ## Windows detritus
181 | #############
182 |
183 | # Windows image file caches
184 | Thumbs.db
185 | ehthumbs.db
186 |
187 | # Folder config file
188 | Desktop.ini
189 |
190 | # Recycle Bin used on file shares
191 | $RECYCLE.BIN/
192 |
193 | # Mac crap
194 | .DS_Store
195 |
196 |
197 | #############
198 | ## Python
199 | #############
200 |
201 | *.py[co]
202 |
203 | # Packages
204 | *.egg
205 | *.egg-info
206 | dist/
207 | build/
208 | eggs/
209 | parts/
210 | var/
211 | sdist/
212 | develop-eggs/
213 | .installed.cfg
214 |
215 | # Installer logs
216 | pip-log.txt
217 |
218 | # Unit test / coverage reports
219 | .coverage
220 | .tox
221 |
222 | #Translations
223 | *.mo
224 |
225 | #Mr Developer
226 | .mr.developer.cfg
227 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: csharp
2 | solution: Source/SimpleBackup.sln
--------------------------------------------------------------------------------
/Bin/sb.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UweKeim/SimpleBackup/48e9acc08066c8505e6edc1da4e1429e5c379893/Bin/sb.exe
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Uwe Keim http://uwe.co
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Simple Backup
2 |
3 | A Windows Explorer Context Menu extension to backup and restore folders to temporary storage.
4 |
5 | 
6 |
7 | ## Introduction
8 |
9 | For testing purposes of our [CMS](http://www.zeta-producer.com) I often do the following steps:
10 |
11 | 1. Copy a whole folder from somewhere onto my local PC.
12 | 1. Do some (modifying) operations on this folder (during my tests).
13 | 1. Delete the folder (after the tests).
14 | 1. Start from item 1.
15 |
16 | To simplify steps 3. and 4., I developed this Simple Backup extensions.
17 |
18 | ## Using the application
19 |
20 | The application consists of one single executable file. Download the file and double-click it to install.
21 |
22 | You're done!
23 |
24 | There are now two new context menu entries "Backup" and "Restore" when you right-click a _folder_ in Windows Explorer:
25 |
26 | - The "Backup" option creates a backup.
27 | - The "Restore" copies back a previously created backup.
28 |
29 | To uninstall, go to Windows Control Panel and select "Simple Backup".
30 |
31 | ## History
32 |
33 | * *2015-05-30* - First release to GitHub.
34 |
--------------------------------------------------------------------------------
/Source/Main/Core/Cancelable.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Core
2 | {
3 | using System;
4 | using System.ComponentModel;
5 |
6 | public enum CancelMode
7 | {
8 | Continue,
9 | Cancel
10 | }
11 |
12 | public delegate CancelMode Cancelable(object userState);
13 |
14 | public static class CancelHelper
15 | {
16 | private const string Magic = @"3472389472389";
17 |
18 | public static void CheckThrowCancel(Cancelable cancelable, object userState = null)
19 | {
20 | if (cancelable != null && cancelable(userState) == CancelMode.Cancel)
21 | {
22 | throw new OperationCanceledException(Magic);
23 | }
24 | }
25 |
26 | public static void CheckThrowCancel(BackgroundWorker bw)
27 | {
28 | if (bw != null && bw.IsBusy && bw.CancellationPending)
29 | {
30 | throw new OperationCanceledException(Magic);
31 | }
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/Source/Main/Core/Configuration.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Core
2 | {
3 | internal sealed class Configuration
4 | {
5 | }
6 | }
--------------------------------------------------------------------------------
/Source/Main/Core/ErrorForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Core
2 | {
3 | partial class ErrorForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ErrorForm));
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.errorLogTextBox = new System.Windows.Forms.TextBox();
34 | this.quitLink = new System.Windows.Forms.LinkLabel();
35 | this.buttonContinue = new System.Windows.Forms.Button();
36 | this.panel1.SuspendLayout();
37 | this.SuspendLayout();
38 | //
39 | // panel1
40 | //
41 | this.panel1.Controls.Add(this.errorLogTextBox);
42 | this.panel1.Controls.Add(this.quitLink);
43 | this.panel1.Controls.Add(this.buttonContinue);
44 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
45 | this.panel1.Location = new System.Drawing.Point(0, 0);
46 | this.panel1.Name = "panel1";
47 | this.panel1.Padding = new System.Windows.Forms.Padding(9);
48 | this.panel1.Size = new System.Drawing.Size(351, 238);
49 | this.panel1.TabIndex = 0;
50 | //
51 | // errorLogTextBox
52 | //
53 | this.errorLogTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
54 | | System.Windows.Forms.AnchorStyles.Left)
55 | | System.Windows.Forms.AnchorStyles.Right)));
56 | this.errorLogTextBox.BackColor = System.Drawing.SystemColors.Window;
57 | this.errorLogTextBox.Location = new System.Drawing.Point(12, 12);
58 | this.errorLogTextBox.Multiline = true;
59 | this.errorLogTextBox.Name = "errorLogTextBox";
60 | this.errorLogTextBox.ReadOnly = true;
61 | this.errorLogTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
62 | this.errorLogTextBox.Size = new System.Drawing.Size(327, 173);
63 | this.errorLogTextBox.TabIndex = 1;
64 | //
65 | // quitLink
66 | //
67 | this.quitLink.ActiveLinkColor = System.Drawing.Color.Maroon;
68 | this.quitLink.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
69 | this.quitLink.LinkColor = System.Drawing.Color.Maroon;
70 | this.quitLink.Location = new System.Drawing.Point(160, 198);
71 | this.quitLink.Name = "quitLink";
72 | this.quitLink.Size = new System.Drawing.Size(88, 28);
73 | this.quitLink.TabIndex = 2;
74 | this.quitLink.TabStop = true;
75 | this.quitLink.Text = "Exit";
76 | this.quitLink.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
77 | this.quitLink.VisitedLinkColor = System.Drawing.Color.Maroon;
78 | this.quitLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.quitLink_LinkClicked);
79 | //
80 | // buttonContinue
81 | //
82 | this.buttonContinue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
83 | this.buttonContinue.DialogResult = System.Windows.Forms.DialogResult.OK;
84 | this.buttonContinue.Location = new System.Drawing.Point(254, 198);
85 | this.buttonContinue.Name = "buttonContinue";
86 | this.buttonContinue.Size = new System.Drawing.Size(85, 28);
87 | this.buttonContinue.TabIndex = 0;
88 | this.buttonContinue.Text = "Continue";
89 | this.buttonContinue.UseVisualStyleBackColor = true;
90 | //
91 | // ErrorForm
92 | //
93 | this.AcceptButton = this.buttonContinue;
94 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
95 | this.ClientSize = new System.Drawing.Size(351, 238);
96 | this.Controls.Add(this.panel1);
97 | this.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
98 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
99 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
100 | this.MaximizeBox = false;
101 | this.MinimizeBox = false;
102 | this.Name = "ErrorForm";
103 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
104 | this.Text = "Error";
105 | this.Load += new System.EventHandler(this.ErrorForm_Load);
106 | this.panel1.ResumeLayout(false);
107 | this.panel1.PerformLayout();
108 | this.ResumeLayout(false);
109 |
110 | }
111 |
112 | #endregion
113 |
114 | private System.Windows.Forms.Panel panel1;
115 | private System.Windows.Forms.TextBox errorLogTextBox;
116 | private System.Windows.Forms.LinkLabel quitLink;
117 | private System.Windows.Forms.Button buttonContinue;
118 | }
119 | }
--------------------------------------------------------------------------------
/Source/Main/Core/ErrorForm.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Core
2 | {
3 | using System;
4 | using System.Windows.Forms;
5 |
6 | public partial class ErrorForm : Form
7 | {
8 | private Exception _exception;
9 |
10 | public static DialogResult DoShow(Exception x)
11 | {
12 | IsErrorFormShowing = true;
13 | try
14 | {
15 | using (var form = new ErrorForm())
16 | {
17 | form._exception = x;
18 | return form.ShowDialog(ActiveForm);
19 | }
20 | }
21 | finally
22 | {
23 | IsErrorFormShowing = false;
24 | }
25 | }
26 |
27 | public ErrorForm()
28 | {
29 | InitializeComponent();
30 | }
31 |
32 | public static bool IsErrorFormShowing { get; private set; }
33 |
34 | private void ErrorForm_Load(object sender, EventArgs e)
35 | {
36 | errorLogTextBox.Text = _exception.Message;
37 | }
38 |
39 | private void quitLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
40 | {
41 | Application.Exit();
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Source/Main/Core/ErrorForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | 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
249 | IgAAAAAAAAAAAAAAAAAAIrIiOTo6OjACIgAAAAAAAAAAAAAAAAADkyIrIiOjIjoCIgAAAAAAAAAAAAAA
250 | AAACsjkyIrIjk6ACIgAAAAAAAAAAAAAAAACyI6MrIyI6MjACIgAAAAAAAAIAAAIAAAAjKjIiOTOjIgAi
251 | IgAAAAAAACIgACIgAAOjoyKyIikysgAiIgAAAAAAACIgACIgAAIyI5MiKyMiIAIiIgAAAAAAACIgACIg
252 | ACOSOjo7IiIrIAIiIgAAAAAAACIgACIgALIrIjIiMrIyACIiIgAAAAAAACIgACIgAiIyOjk6OTKTACIi
253 | IgAAAAAAACIgACIgCyOTo6MjIiIwAiIiIgAAAAAAACIgACIgAjo6MiOisisgAiIiIgAAAAAAACIgACIg
254 | KyIjIrIjIjIAIiIiIgAAAAAAACIgAiIgIjoykyMisisAIiIiIgAAAAAAACIgAiIAkyI6MikyMiACIiIi
255 | IgAAAAAAACIgAiICI5OjKyI5OTACIiIiIgAAAAAAACIgIiALIrIjoysiIwAiIiIiIgAAAAAAACIgIiAD
256 | oyI5MiIrIgIiIiIiIgAAAAAAAiICIiAiI6OjIrIyMAIiIiIiIgAAAAAAAiIiIgCyOjIjoyo6ICIiIiIi
257 | IgAAAAAAAiIiIgIjkwKyI6MiACIiIiIiIgAAAAAAAiIiIAsiAAACOTIrAiIiIiIiIgAAAAAAAiIiICMi
258 | AiICIjkwAiIAAAIiIgAAAAAAAiIiACKwAiILI6MgAiIAIAIiIgAAAAAAAiIiAiMgIiICOjIAIiICIgIi
259 | IgAAAAAAAiIgCyIAIiADk6MAIiICIgIiIgAAAAAAAiIgAisCIiAiIyAAIiICIgIiIgAAAAAAAiIgAAAC
260 | IgArIiAgIiICIgIiIgAAAAAAAiIgAAAiIgIjKwAgIiICIgIiIgAAAAAAACIiICIiIAsiIgIgAiICIgIi
261 | IgAAAAAAAAIiIiIiAAI7IAIgAiACIgIiIAAAAAAAAAAiIiIgAAAAACIgAAACIgAAAAAAAAAAAAAAIiAA
262 | AAAAAiIiAAAiIAAAAAAAAAAAAAAAAAAAAAAAAiIiIAIiIAAAAAAAAAAAAAAAAAAAAAAAACIiIiIiAAAA
263 | AAAAAAAAAAAAAAAAAAAAAAAiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiAAAAAAAAAAAAAAAAAAAAAA
264 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
265 | AAAAAP///////wAA////////AAD////f//8AAP///wcAfwAA////AcA/AAD///4AcD8AAP///gAcPwAA
266 | ///8AAQ/AAD///wABj8AAP//+AACPwAA///4AAY/AAD///AABj8AAP778AAMPwAA/HHgAAw/AAD8ceAA
267 | GD8AAPxxwAAYPwAA/HHAADA/AAD8cYAAMD8AAPxxgABgPwAA/HGAAGA/AAD8cQAAwD8AAPxhAADAPwAA
268 | /GMAAYA/AAD8YgABgD8AAPxGAAMAPwAA/EYAAgA/AAD4hAAGAD8AAPgMAAQAPwAA+AggDAA/AAD4GPgI
269 | AD8AAPgQiBj4PwAA+DGIGNg/AAD4IQgwiD8AAPhjGDCIPwAA+GIQcIg/AAD4fjBQiD8AAPh8INCIPwAA
270 | /BBgmIg/AAD+AOGZiH8AAP8B/x+P/wAA/8f+Dx//AAD///4GH/8AAP///wA//wAA////wH//AAD////x
271 | //8AAP///////wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAA
272 | AAAAAAAAAAAAAAAA////AICAgADAwMAAAACAAAAA/wAAgIAAAP//AACAAAAA/wAAgIAAAP//AACAAAAA
273 | /wAAAIAAgAD/AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIjACIiIAAA
274 | AAAAAAAAAAIisjIAIiIAAAAAAAAAAAACsiIikwIiAAAAAAAAAAAAoyIysjIwIgAAAAAAAAAAADIrKjIi
275 | kCIAAAAAAAAAAAo5MiMisjAiAAAAACAAAgADIjkyoyICIgAAAAAiACIAIisiOTKyAiIAAAAAIgAiALMj
276 | o6MiICIiAAAAACIAIgIpOjoyKyAiIgAAAAAiACIDoyIyOjICIiIAAAAAIgAiAiOjk6OTAiIiAAAAACIC
277 | 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
347 | mZmZAIuLiwCUpXMAqqqAAJ2xdgCionQAkpKSAIWFhQCYqHcAiIiIAI6OjgCWqXQAlqV4AJildQCCgoIA
348 | mad0AJandgCVqXYAlaV1AJendACYpncAf39/AIGBgQCDg4MAhISEAIaGhgCHh4cAiYmJAJeneACWqHUA
349 | l6h2AJindQCXpnUAlqZ3AJiodgCXqHcAl6d1AJindgCWp3UAl6d2AJimdQCXp3cAlqd3AJimdgCWpnUA
350 | l6Z2AJemdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
351 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
352 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
353 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
354 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
355 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
356 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
357 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
358 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
359 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
360 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
361 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
362 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
363 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
364 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
365 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
366 | AAAAAAAAAAAdMjIyKQAAAAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIy
367 | MjIpAAAAIQQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcyMjIyMjIyMjIAAAAEBAQE
368 | BAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMjIyMjIyMjIyMgAAAAQEBAQAAAAAAAAAAAAA
369 | AAAAAAAAAAAAAAAAAAAAAAAANzIyMjIyMjIyMjIyMjIyAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
370 | AAAAAAAAMjIyMjIyMjIyMjIyMjIyAAAEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3MjIyMjIy
371 | MjIyMjIyMjIyMQAEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIyMjIyMjIyMjIyMjIyAAAE
372 | BAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcyMjIyMjIyMjIyMjIyMjIbAAAEBAQAAAAAAAAAAAAA
373 | AAAAIAAAAAAABAAAAAAAADIyMjIyMjIyMjIyMjIyMjIAAAQEBAQAAAAAAAAAAAAAAAAEBAQAAAAgIAQA
374 | AAAANzIyMjIyMjIyMjIyMjIyMhsAAAQEBAQAAAAAAAAAAAAAAAAEBAQAAAAgBAQAAAAAGzIyMjIyMjIy
375 | MjIyMjIyMgAABAQEBAQAAAAAAAAAAAAAAAAEBAQAAAAgBAQAAAA3MjIyMjIyMjIyMjIyMjIyOAAABAQE
376 | BAQAAAAAAAAAAAAAAAAEBAQAAAAgBAQAAAAbMjIyMjIyMjIyMjIyMjIyAAAEBAQEBAQAAAAAAAAAAAAA
377 | AAAEBAQAAAAgIAQAADIyMjIyMjIyMjIyMjIyMjI4AAAEBAQEBAQAAAAAAAAAAAAAAAAEBAQAAAAgBAQA
378 | ADIyMjIyMjIyMjIyMjIyMjIAAAQEBAQEBAQAAAAAAAAAAAAAAAAEBCAAAAAEBCAAADIyMjIyMjIyMjIy
379 | MjIyMjgAAAQEBAQEBAQAAAAAAAAAAAAAAAAEBAQAAAAEBAQAGzIyMjIyMjIyMjIyMjIyMgAABAQEBAQE
380 | BAQAAAAAAAAAAAAAAAAEBAQAACAgBCEAMjIyMjIyMjIyMjIyMjIyLwAABAQEBAQEBAQAAAAAAAAAAAAA
381 | AAAEBAQAAAQEBAAAMjIyMjIyMjIyMjIyMjIyAAAEBAQEBAQEBAQAAAAAAAAAAAAAAAAEBAQAAAQEBAA3
382 | MjIyMjIyMjIyMjIyMjIvAAAEBAQEBAQEBAQAAAAAAAAAAAAAAAAEBAQABAQEAAAyMjIyMjIyMjIyMjIy
383 | MjIAAAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAEBCAABAQEAAAyMjIyMjIyMjIyMjIyMi8ABAQEBAQEBAQE
384 | BAQAAAAAAAAAAAAAACAgBAAEBAQEADIyMjIyMjIyMjIyMjIyMgAABAQEBAQEBAQEBAQAAAAAAAAAAAAA
385 | ACAEBAQEBAQAADIyMjIyMjIyMjIyMjIyMgAEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAQEBAQEBCAAHTIy
386 | MisAMjIyMjIyMjIyAAAEBAQEBAQEBAQEBAQAAAAAAAAAAAAAACAEIAQEBAAAMjIyAAAAAAA0MjIyMjIy
387 | ACEEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAQEBAQEBAA3LzIpACAgBAAeODIyMjIAAAQEBAAAAAAAIAQE
388 | BAQAAAAAAAAAAAAAAAQEBAQgAAAyMjIAAAQEBAAuMjIyMjIAAAQEIAAABAAAICAEBAQAAAAAAAAAAAAA
389 | AAQEBAQgADcyMjIAIAQEBAArMjIyMgAAIAQEBAAgICAAIAQEBAQAAAAAAAAAAAAAAAQEBAQAADIyMgAA
390 | BAQEAAAyMjIyOQAAIAQEBAAgBAQAIAQEBAQAAAAAAAAAAAAAAAQEBCAAADIyLQAgIAQEAC8yMjIyAAAA
391 | IAQEBAAgBAQAIAQEBAQAAAAAAAAAAAAAACAgBAQAAAAAAAAEBAQAADIyMjI5AAQABAQEBAAgBAQAIAQE
392 | BAQAAAAAAAAAAAAAACAEBAQAAAAAACAEBCAANy8yMjIAACAABAQEBAAgBAQAIAQEBAQAAAAAAAAAAAAA
393 | AAAgBAQgBAAEBAQEBAAAMjIyMjAABAQAAAQEIQAEBAQAICAEBAQAAAAAAAAAAAAAAAAAIAQEBAQEBAQE
394 | AAAANDIyMgAAIAQAAAQEAAAEBCAAIAQEBAAAAAAAAAAAAAAAAAAAAAQgBAQEBAQAAAAAAAAAAAAEBAQA
395 | AAAAAAAEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAAAAAAAAAAAAAAQEBAQEAAAAAAQEBAAAAAAA
396 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEBAQEBAAABAQEIAAAAAAAAAAAAAAAAAAAAAAA
397 | AAAAAAAAAAAAAAAAAAAAAAAAAAAgIAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
398 | AAAAAAAAAAAAACAEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
399 | BAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
400 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
401 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA
402 | ////3///AAD///8HAH8AAP///wHAPwAA///+AHA/AAD///4AHD8AAP///AAEPwAA///8AAY/AAD///gA
403 | Aj8AAP//+AAGPwAA///wAAY/AAD++/AADD8AAPxx4AAMPwAA/HHgABg/AAD8ccAAGD8AAPxxwAAwPwAA
404 | /HGAADA/AAD8cYAAYD8AAPxxgABgPwAA/HEAAMA/AAD8YQAAwD8AAPxjAAGAPwAA/GIAAYA/AAD8RgAD
405 | AD8AAPxGAAIAPwAA+IQABgA/AAD4DAAEAD8AAPgIIAwAPwAA+Bj4CAA/AAD4EIgY+D8AAPgxiBjYPwAA
406 | +CEIMIg/AAD4YxgwiD8AAPhiEHCIPwAA+H4wUIg/AAD4fCDQiD8AAPwQYJiIPwAA/gDhmYh/AAD/Af8f
407 | j/8AAP/H/g8f/wAA///+Bh//AAD///8AP/8AAP///8B//wAA////8f//AAD///////8AAP///////wAA
408 | ////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQD///8A
409 | gICAAKqqqgCcqnEAkpKSAIaUeQCJiYkAlKF5AJmZmQCOjoAAkqp5AJqoeQCEhIQAjo6OAJendACXonQA
410 | lqV4AJehewCCgoIAhoaGAIuLiwCYqnMAlah4AJmqdwCZqHUAmaZzAJimdgCUpncAl6h2AJeneACZpnkA
411 | lah2AH9/fwCBgYEAg4ODAIeHhwCZp3QAmKh3AJandQCXpnUAlqd3AJeodACYqHYAl6d1AJaodgCYpnUA
412 | l6d2AJandgCXp3cAl6Z2AJamdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
413 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
414 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
415 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
416 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
417 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
418 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
419 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
420 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
421 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
422 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
423 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
424 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
425 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
426 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
427 | AAAAAAAAAAAAAAAAKDMwMAAAAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAADEzMDAwMDAAAAMDAwMAAAAA
428 | AAAAAAAAAAAAAAAAAAAAKTEzMDAwMDA0AAMDAwAAAAAAAAAAAAAAAAAAAAAAADEzMDAwMDAwMDAwAAMD
429 | AAAAAAAAAAAAAAAAAAAAAAAAKTEzMDAwMDAwMDAAAwMAAAAAAAAAAAAAAAAAAAAAACgxMzAwMDAwMDAw
430 | MQADAwAAAAAAAAAAAwAAAAADAAAAKTEzMDAwMDAwMDAAIgMDAAAAAAAAAAAiAwAAIgMAACgxMzAwMDAw
431 | MDAwMQADAwMAAAAAAAAAACIDAAAiAwAAMzAwMDAwMDAwMDAAAwMDAwAAAAAAAAAAIgMAACIDACkwMDAw
432 | MDAwMDAwMwADAwMDAAAAAAAAAAADAwAAIgMAMDAwMDAwMDAwMDAAAwMDAwMAAAAAAAAAACIiAAADAwAw
433 | MDAwMDAwMDAwMwADAwMDAwAAAAAAAAAAAwMAIiIiADAwMDAwMDAwMDAAAwMDAwMDAAAAAAAAAAADIgAD
434 | AwAxMDAwMDAwMDAwMAADAwMDAwMAAAAAAAAAAAMDAAMiADAwMDAwMDAwMDAAAwMDAwMDAwAAAAAAAAAA
435 | AwMiAwAoMDAwMDAwMDAwMAADAwMDAwMDAAAAAAAAACIDIgMDADAwMDAwMDAwMDAAAwMDAwMDAwMAAAAA
436 | AAAAIgMiAwAAMDAAAAAwMDAwMAADAwMDAwMDAwAAAAAAAAAiAwMDADAwAAMDAC0wMDAAAwMDAAADAwMD
437 | AAAAAAAAACIDAyIAMDAAAyIAMDAwLQADAwADAwADAwMAAAAAAAAAIgMDADAwAAMDIgAwMDAAAAMDACID
438 | ACIDAwAAAAAAAAAiAwMAACgAAwMAHjAwLQAAIgMAIgMAIgMDAAAAAAAAAAAiAwAAAAMDAwAwMDAAIgAi
439 | AwAiAwAiAwMAAAAAAAAAACIDAwMDAwMAMTAwHAADAAMDAAMDAAMDAAAAAAAAAAAAAAADAwMiAAAAAAAA
440 | IgMAAAAAIiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMAAAMDAAAAAAAAAAAAAAAAAAAAAAAAAAAA
441 | AAAAACIiAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMAAAAAAAAAAAAAAAAAAAAAAAAA
442 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////
443 | ////////DB///gMP//4Aj//8AE///ABP//gAT/e4AI/zMACP8zABD/MgAQ/zIAIP8yACD/IgBA/yQAQP
444 | 8kAID/CACA/ggBAP4ZwQD+EkIw/hJCSP4kRkj+NIZI/ziKSP8BCkn/w/PP///xn///8B////x///////
445 | /////ygAAAAYAAAAMAAAAAEACAAAAAAAoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAP///wD//wAA
446 | gICAAJiodgCZmZkAiZJ7AJGeewCHh4cAiIh7AISIgACbpnoAg4ODAIaPfQCSonkAl6R1AJWmdwCVqXYA
447 | lqd1AJKfeQCYpnYAf39/AIGBgQCCgoIAhoaGAJendwCRoXoAl6h1AJaodgCYpXUAlqZ2AJeodgCWqHUA
448 | mKd2AJendQCXp3YAlqd2AJandwCXpnYAlqZ3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
449 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
450 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
451 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
452 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
453 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
454 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
455 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
456 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
457 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
458 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
459 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
460 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
461 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
462 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
463 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECUAAAAEAAQAAAAAAAAAAAAAAAAAAAAAJyQkJAAABAQEAAAA
464 | AAAAAAAAAAAAAAAgJCQkJCQmAAQEAAAAAAAAAAAAAAAAAAAnJCQkJCQkJAQEAAAAAAAAAAAAAAAAACAk
465 | JCQkJCQkEwQEAAAAAAAABAAAFgAAABMkJCQkJCQkABYEAAAAAAAABAAAFgAAJCQkJCQkJCQaBAQEAAAA
466 | AAAABAAAFgQAJCQkJCQkJCQAFgQEAAAAAAAABAAABBYlJCQkJCQkJB8EBAQEAAAAAAAABBcABAAkJCQk
467 | JCQkJAAWBAQEAAAAAAAABAAWFgAkJCQkJCQkHwQEBAQEAAAAAAAABAAEBBwkJCQkJCQkABYEBAQEAAAA
468 | AAAABAQEACUkJCQkJCQgFgQEBAQEAAAAAAAWFhYWACQgACQkJCQAFgQEBAQEAAAAAAAWBBYABSUABAAk
469 | JCAABAAAFgQEAAAAAAAWBAQAJAAEBBUkJAAEBAAEAAQEAAAAAAAWBAQAJAAWACQkAAAEAAQEAAQEAAAA
470 | AAAABAQAAAQEACQlAAQEBAAWAAQEAAAAAAAAAAQEBAQAACMABAQAAAQEAAQAAAAAAAAAAAAAAAAAAAAA
471 | BAQAAAQEAAAAAAAAAAAAAAAAAAAAAAAABBYEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
472 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP/zrwD/8McA/+AnAP/gBwD/wAcA7cAnAO2ABwDsgEcA
473 | 7AAHAOUAhwDpAAcA6AEHAOIABwDCQgcAxKLHAMUEpwDFTScA5kinAPDTLwD/8z8A//B/AP///wD///8A
474 | KAAAABAAAAAgAAAAAQAIAAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEA////ANSZPACAgIAA
475 | l6d2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
476 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
477 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
478 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
479 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
480 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
481 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
482 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
483 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
484 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
485 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
486 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
487 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
488 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
489 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
490 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
491 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
492 | AAAAAAAAAAUFBQAABAQAAAAAAAAAAAAFBQUFAAQEAAAAAAAAAAAFBQUFBQUABAAAAAQAAAQABQUFBQUF
493 | AAQAAAAEAAAEAAUFBQUFAAQEAAAABAAEAAAFBQUFBQAEBAAAAAQABAAFBQUFBQAEBAQAAAAEAAQABQUF
494 | BQUABAQEAAAABAQABQUFBQUABAQEBAAAAAQEBQUABQUFAAQABAQAAAAEAAAABAAFAAQAAAAEAAAABAQA
495 | BAAFBQAABAQABAAAAAAEBAAAAAAEAAAEAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAQEBAAAAAAA
496 | //8AAP4zAAD+EwAA/AsAALQLAAC0EwAArBMAAKgjAACoIwAAkEMAAIRTAAC6uwAAlMsAAM9vAAD/bwAA
497 | /x8AAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAKIpJREFUeNrtXXlgVNXV/503k8kC
498 | hE0Frda1LrRaxa2LbRVr1dqqbT8jUIu1KotL1AAJS5K5LwECBLcohADukmBsK22/WrVVaGu1rdYVU0Q/
499 | ilpZBSGQfead74+MrQt5b2bumzcvM+f3XzL33Xfffef87u+ee9+5gEAgEAgEAoFAIBAIBAKBQCAQCAQC
500 | gUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCASC9IOkCwSpgFLq80T0ZQDHW5Z1
501 | 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
669 | DQPf3PYrcXwhAEGG4Jbm2/JzI/lfZaLRFvgoYgwFwQChFcAmBl7t6eh89o6rbtktvSUQCAQCgUAgEAgE
670 | AoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQpwv8D2oske893xDsAAAAASUVORK5CYIIo
671 | AAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
672 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
673 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
674 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
675 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
676 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
677 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
678 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
679 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgL+ABJindlSWp3V8lqd3S4CAgAIA
680 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
681 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
682 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmWYFl6Z3u5endv+X
683 | p3b/l6d2/5eodtKYp3ZUgICAAoiIiA+AgIB+gICA7oCAgP+AgID/gICA/4CAgP+AgID/gICA8ICAgJKS
684 | kpIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
685 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY
686 | p3Zol6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6h20pindlSAgIACgICAEIGBgX+AgIDvgICA/4CAgP+A
687 | gID/gICA/4CAgP+AgICSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
688 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
689 | AAAAAAAAAKqqgAaXp3bhl6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3bRl6Z1U///AAGA
690 | gIAQgICAgYCAgPeAgID/gICA/4CAgP+AgIDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
691 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
692 | AAAAAAAAAAAAAAAAAAAAAAAAAJindmiXp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
693 | p3b/l6d2/5endtGXpnVT//8AAYKCgjuAgID3gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
694 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
695 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkrZtB5enduGXp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
696 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2qf//AAGAgICAgICA/4CAgP+AgID/AAAAAAAAAAAA
697 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
698 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl6h3aZendv+Xp3b/l6d2/5endv+X
699 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5and0uDg4MjgICA/4CAgP+A
700 | gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
701 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACStm0Hl6d24pendv+X
702 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5andXqA
703 | gIAEgICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
704 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACX
705 | qHdpl6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
706 | p3b/l6d2/5endFGEhIQfgICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
707 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
708 | AAAAAAAAAJK2bQeXp3bil6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
709 | p3b/l6d2/5endv+Xp3b/lqd22aqqVQOBgYF3gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
710 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8BgYGBb39/f46AgIAUAAAAAAAAAAAAAAAAgICAEoCAgIyB
711 | gYFx////AQAAAAAAAAAAAAAAAJeod2mXp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
712 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/lqZ3XIuLiwuAgIDpgICA/4CAgP+AgID/AAAAAAAAAAAA
713 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgYFDgICA/4CAgP+AgICUAAAAAAAAAAAA
714 | AAAAf39/joCAgP+AgID/f39/SgAAAAAAAAAAkrZtB5enduKXp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
715 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Wp3bZqqpVA4GBgXWAgID/gICA/4CAgP+A
716 | gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIBMgICA/4CAgP+A
717 | gIC0AAAAAAAAAAAAAAAAgICAlICAgP+AgID/f39/bgAAAAAAAAAAmKZ2apendv+Xp3b/l6d2/5endv+X
718 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+WpndcgICADICAgOqA
719 | gID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC
720 | goI7gICA/4CAgP+AgIDFAAAAAAAAAAAAAAAAgICAiYCAgP+AgID/gYGBdwAAAACStm0Hl6d24pendv+X
721 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5emdtiq
722 | qlUDf39/doCAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
723 | AAAAAAAAAAAAAACCgoIrgICA/4CAgP+AgIDVAAAAAAAAAAAAAAAAgICAkYCAgP+AgID/gYGBcQAAAACY
724 | pnZql6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
725 | p3b/l6d2/5amd1yAgIAMgICA6oCAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
726 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIAegICA/4CAgP+AgIDhAAAAAAAAAAAAAAAAf39/rICAgP+A
727 | gID/gYGBW5K2bQeXp3bjl6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
728 | p3b/l6d2/5endv+Xp3b/l6Z22KqqVQN/f392gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAA
729 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGhoYTgICA/4CAgP+AgIDrAAAAAAAAAAAA
730 | AAAAgICA14CAgP+AgID/goKCN5apdESXp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
731 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6h2W4CAgAyAgIDqgICA/4CAgP+AgID/gICA/4CAgP+A
732 | gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJiYkNgICA/4CAgP9/
733 | f3/yAAAAAAAAAACAgIAUgICA/YCAgP9/f3/6gICACpiod3KXp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
734 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+XpnbYqqpVA4GBgXeAgID/gICA/4CAgP+A
735 | gID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
736 | gIAKgICA/4CAgP+AgID0AAAAAAAAAACBgYFZgICA/4CAgP+AgIDGAAAAAJeod6yXp3b/l6d2/5endv+X
737 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+XqHZbgICADICAgOqA
738 | gID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
739 | AAAAAAAAAAAAAACJiYkNgICA/4CAgP+AgIDxAAAAAAAAAAB/f3+sgICA/4CAgP+BgYF9gL+ABJendu2X
740 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5enddeq
741 | qlUDgYGBd4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
742 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhYUXgICA/4CAgP+AgIDpAAAAAICAgBKAgID3gICA/4CAgP+D
743 | g4Mplal2QZendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
744 | p3b/l6d2/5eodluAgIAMgICA64CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAA
745 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDg4MpgICA/4CAgP+AgIDZAAAAAICAgHCA
746 | gID/gICA/4CAgMsAAAAAl6d2mpendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
747 | p3b/l6d2/5endv+Xp3b/l6d116qqVQOBgYF3gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+A
748 | gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIBEgICA/4CAgP+A
749 | gIDAqqqqA4CAgNuAgID/gICA/4GBgWWionQLl6d28Jendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
750 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/lqd3WoCAgAyAgIDrgICA/4CAgP+AgID/gICA/4CAgP+A
751 | gID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB
752 | gYFpgICA/4CAgP9/f3+egYGBU4CAgP+AgID/gICA7YuLiwuWpnVkl6d2/5endv+Xp3b/l6d2/5endv+X
753 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3XXqqpVA4CAgHiAgID/gICA/4CAgP+A
754 | gID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
755 | AAAAAAAAAAAAAAB/f3+YgICA/4CAgP+BgYFzgICAy4CAgP+AgID/gICAhf//AAGXp3bTl6d2/5endv+X
756 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Wp3daiYmJDYCAgOuA
757 | gID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
758 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIDNgICA/4CAgP+AgICJgICA/4CAgP+AgID1f39/FpildUqX
759 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endtaq
760 | qlUDgICAeICAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAA
761 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgAqAgID7gICA/4CAgPyAgIDUgICA/4CAgP9/
762 | f3+QAAAAAJandsOXp3b/l6d2/5endvOXpnWHlqh1VZendn2Xp3bsl6d2/5endv+Xp3b/l6d2/5endv+X
763 | p3b/l6d2/5imdVmJiYkNgICA64CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+A
764 | gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9/fzaAgID/gICA/39/f/6A
765 | gID/gICA/4CAgPeEhIQbl6d4QJendv+Xp3b/l6d2+pmndDeAgIACg4ODJ4CAgASYpXUll6d38Zendv+X
766 | p3b/l6d2/5endv+Xp3b/l6d21qqqVQOBgYF5gICA/4CAgP+AgID/gICAz4CAgKOAgIDPgICA/4CAgP+A
767 | gID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGBgVmA
768 | gID/gICA/4CAgP+AgID/gICA/4CAgJIAAAAAl6d1v5endv+Xp3b/l6h2mwAAAAB/f3+ogICA/4CAgMAA
769 | AAAAmKd1lJendv+Xp3b/l6d2/5endv+Xp3b/mKZ1WYmJiQ2AgIDrgICA/4CAgP9/f39sAAAAAAAAAAAA
770 | AAAAf39/bICAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
771 | AAAAAAAAAIGBgW2AgID/gICA/4CAgP+AgID/f39/+oSEhB2WpnU/l6d2/5endv+Xp3b6l6d4IH9/fziA
772 | gID/gICA/4CAgPuSkpIHl6h3eJendv+Xp3b/l6d2/5endv+Xp3bWqqpVA4GBgW+AgID/gICA/39/f7wA
773 | AAAAgYGBb4CAgNiBgYFvAAAAAH9/f7yAgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
774 | AAAAAAAAAAAAAAAAAAAAAAAAAIGBgW+AgID/gICA/4CAgP+AgID/f39/qAAAAACXp3a2l6d2/5endv+X
775 | p3aaAAAAAICAgLeAgID/gICA/4CAgKMAAAAAmKd2tJendv+Xp3b/l6d2/5endv+YpnVZAAAAAICAgIOA
776 | gID/gICA/4CAgIMAAAAAf39/+ICAgP9/f3/4AAAAAICAgIOAgID/gICA/4CAgP+AgID/AAAAAAAAAAAA
777 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGBgV2AgID/gICA/4CAgP+AgID/gICATJeneCCX
778 | p3b9l6d2/5endvmXp3ggf39/OICAgP+AgID/gICA/H9/fyaVpXUwl6d2/pendv+Xp3b/l6d2/5emd9Wq
779 | qlUDAAAAAICAgIGAgID/gICA/4CAgIAAAAAAgICA/4CAgP+AgID/AAAAAICAgICAgID/gICA/4CAgP+A
780 | gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCgjOAgID/gICA/4CAgP9/
781 | f3/+gICADpSlcx+Xp3bcl6d2/5iodo8AAAAAf39/uICAgP+AgID/gICAogAAAACYqHavl6d2/5endv+X
782 | p3b/l6d2/5eod1iJiYkNAAAAAICAgICAgID/gICA/4CAgIAAAAAAgICA/4CAgP+AgID/AAAAAICAgICA
783 | gID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgN/
784 | f3/ogICA/4CAgP+AgID7qqqqAwAAAACStm0Hl6d2XZ+fgAiAgIBMgICA/4CAgP+AgID8f39/JpeneDGX
785 | p3b+l6d2/5endv+Xp3b/l6Z31YCAgAKAgIB6AAAAAIGBgX+AgID/gICA/4CAgIAAAAAAgICA/4CAgP+A
786 | gID/AAAAAICAgICAgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
787 | AAAAAAAAAAAAAACAgICAgICA/4CAgP+AgID/gYGBZQAAAAAAAAAAAAAAAH9/fzSAgIDtgICA/4CAgP9/
788 | f3+cAAAAAJendbCXp3b/l6d2/5endv+Xp3b/l6h3WImJiQ1/f3/sgICABICAgHyAgID/gICA/4CAgIAA
789 | AAAAgICA/4CAgP+AgID/AAAAAICAgICAgID/gICA/4CAgP+AgIDwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
790 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLi4sLgICA2YCAgP+AgID/f39//oCAgKmBgYFngICAlICAgPeA
791 | gID/gICA/4CAgOKGhoYTlqd1PZendv6Xp3b/l6d2/5endv+Yp3bUgICAAoCAgHqAgID/h4eHEX9/f26A
792 | gID/gICA/4GBgXuAgIAEgICA/4CAgP+AgID8AAAAAH9/f4KAgID/gICA/4CAgP+AgICSAAAAAAAAAAAA
793 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf39/JICAgOGAgID/gICA/4CAgP+A
794 | gID/gICA/4CAgP+AgID/gICA64KCgi8AAAAAl6Z3Vpend+SXp3b/l6d2/5endumWpXgzh4eHEX9/f+yA
795 | gID/gICALIGBgUGAgIDwgICA/39/f1SAgIAigICA/4CAgP9/f3/mAAAAAICAgJWAgID/gICA8ICAgJKS
796 | kpIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaGhhWA
797 | gICqf39//oCAgP+AgID/gICA/4CAgP+AgIDFf39/JAAAAAAAAAAAAAAAAJK2bQeYpnVImKZ3TZ2xdg2O
798 | jo4JgICAtoCAgP+AgID/f39/XgAAAAAAAAAAAAAAAAAAAACBgYFpgICA/4CAgP+AgIC2AAAAAAAAAAAA
799 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
800 | AAAAAAAAAAAAAAAAAAAAgICAMICAgICAgICdgICAiICAgEL///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAA
801 | AAAAAAAAAICAgAiAgIDTgICA/4CAgP+AgID/gICAvv///wEAAAAAAAAAAIeHhxGAgIDggICA/4CAgP9/
802 | f39oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
803 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
804 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIB4gICA/4CAgP+AgID/gICA/4CAgLR/f39ogYGBcYCAgNmA
805 | gID/gICA/39/f+iAgIAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
806 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
807 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Bf39/joCAgP+AgID/gICA/4CAgP+A
808 | gID/gICA/4CAgP+AgID/gICA/YCAgE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
809 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
810 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9/f1iA
811 | gIDhgICA/4CAgP+AgID/gICA/4CAgP+AgIDxf39/WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
812 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
813 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
814 | AAAAAAAAAAAAAACZmZkFgYGBR4CAgIGAgICbf39/mICAgGqAgIAUAAAAAAAAAAAAAAAAAAAAAAAAAAAA
815 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
816 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
817 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
818 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
819 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
820 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
821 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
822 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
823 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
824 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
825 | AAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///9///wAA////BwB/AAD///8BwD8AAP///gBw
826 | PwAA///+ABw/AAD///wABD8AAP///AAGPwAA///4AAI/AAD///gABj8AAP//8AAGPwAA/vvwAAw/AAD8
827 | ceAADD8AAPxx4AAYPwAA/HHAABg/AAD8ccAAMD8AAPxxgAAwPwAA/HGAAGA/AAD8cYAAYD8AAPxxAADA
828 | PwAA/GEAAMA/AAD8YwABgD8AAPxiAAGAPwAA/EYAAwA/AAD8RgACAD8AAPiEAAYAPwAA+AwABAA/AAD4
829 | CCAMAD8AAPgY+AgAPwAA+BCIGPg/AAD4MYgY2D8AAPghCDCIPwAA+GMYMIg/AAD4YhBwiD8AAPh+MFCI
830 | PwAA+Hwg0Ig/AAD8EGCYiD8AAP4A4ZmIfwAA/wH/H4//AAD/x/4PH/8AAP///gYf/wAA////AD//AAD/
831 | ///Af/8AAP////H//wAA////////AAD///////8AAP///////wAAKAAAACAAAABAAAAAAQAgAAAAAACA
832 | EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
833 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
834 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
835 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmqdw+YqHdPlqV4IgAAAAAAAAAAAAAAAAAAAAAA
836 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
837 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcqnESl6d24Zendv+Xp3b8l6d2opqoeSaC
838 | goI/gICAv4CAgP+AgID/gICA/4CAgOmAgIBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
839 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJend4WXp3b/l6d2/5endv+X
840 | p3b/l6d2/JendqKaqHkmgoKCP4CAgMOAgID/gICA/4CAgOkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
841 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUoXkTl6Z28pendv+X
842 | p3b/l6d2/5endv+Xp3b/l6d2/5endvyWpnehl6F7G4CAgKqAgID/gICA/wAAAAAAAAAAAAAAAAAAAAAA
843 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJend4WX
844 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3bGg4ODJYCAgP+AgID/AAAAAAAAAAAA
845 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU
846 | oXkTl6Z28pendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endveZmZkFgICA/4CAgP8A
847 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
848 | AAAAAAAAAJandoaXp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/lqd2qIKCgj+A
849 | gID/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLi4sLgICAqX9/f14AAAAAAAAAAIGBgVuA
850 | gICqiYmJDQAAAACUoXkTl6Z28pendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv2U
851 | pncrf39/uICAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9/fzSAgID/gICAygAAAAAA
852 | AAAAgICAuoCAgP+BgYFFAAAAAJandoaXp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
853 | p3b/lqd2qIKCgjmAgID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf39/JICAgP+A
854 | gIDbAAAAAAAAAACAgICxgICA/4GBgU+ZpnMUl6Z28pendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
855 | p3b/l6d2/5endv2YqnMqgICAuYCAgP+AgID/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/
856 | f38WgICA/4CAgOkAAAAAAAAAAICAgMOAgID/gYGBQZemdYeXp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
857 | p3b/l6d2/5endv+Xp3b/l6Z2p4CAgDqAgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
858 | AAAAAAAAAICAgAyAgID/gICA8wAAAAD///8BgICA7YCAgP+EhIQdl6d235endv+Xp3b/l6d2/5endv+X
859 | p3b/l6d2/5endv+Xp3b/l6d2/5endv2YqnMqgICAuYCAgP+AgID/gICA/4CAgP8AAAAAAAAAAAAAAAAA
860 | AAAAAAAAAAAAAAAAAAAAkpKSB4CAgP9/f3/4AAAAAIKCgi+AgID/gICA5JKqeRWXp3b+l6d2/5endv+X
861 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6Z2p4CAgDqAgID/gICA/4CAgP+AgID/gICA/wAAAAAA
862 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIAKgICA/4CAgPUAAAAAf39/goCAgP9/f3+amKZ1WZendv+X
863 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv2YqnMqgICAuoCAgP+AgID/gICA/4CAgP+A
864 | gID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgBiAgID/f39/6KqqqgOAgIDhgICA/4CAgEKW
865 | p3atl6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2poCAgDqAgID/gICA/4CAgP+A
866 | gID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCM4CAgP+AgIDQgICAUoCAgP9/
867 | f3/al6J0FpendviXp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv2VqHYpgICAuoCAgP+A
868 | gID/gICA/4CAgP+AgID/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgYFdgICA/4CAgKl/
869 | f3/IgICA/39/f2yWp3V6l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2poKCgjuA
870 | gID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgJKA
871 | gID/f39/vICAgP+AgIDpjo6AEpendueXp3b/l6d2+5endueXp3b/l6d2/5endv+Xp3b/l6d2/5endvyV
872 | qHYpgICAuoCAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
873 | AAAAgICAxoCAgP9/f3/4gICA/39/f3aWp3drl6d2/5endtuXp3gghoaGE5imdkWXp3b5l6d2/5endv+X
874 | p3b/l6d2poKCgjuAgID/gICA/4CAgNWAgIDVgICA/4CAgP+AgID/gICA/wAAAAAAAAAAAAAAAAAAAAAA
875 | AAAAAAAAAAAAAACAgIDpgICA/4CAgP+AgIDrhpR5E5enduOXp3b/mKh2UoCAgImAgID9gICAPpendbCX
876 | p3b/l6d2/5endvyVqHYpgICAu4CAgP+AgIB8hISEHYSEhB2AgIB8gICA/4CAgP+AgID/AAAAAAAAAAAA
877 | AAAAAAAAAAAAAAAAAAAAAAAAAICAgPSAgID/gICA/39/f4KWqHZml6d2/5endtB/f38agICA9n9/f/6A
878 | gIAsl6d2wJendv+Xp3b/l6d1paqqqgOAgID/gICA/46OjgmAgIDrgICA646OjgmAgID/gICA/4CAgP8A
879 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA4oCAgP+AgID/g4ODJ5endsWXp3b/l6d0UYCAgI+A
880 | gID/f39/rJWoeDWXp3b/l6d2/5endvyZpnko////AYCAgP+AgID/AAAAAICAgP+AgID/AAAAAICAgP+A
881 | gID/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgICpgICA/4CAgP2AgIACl6h0LJandXyA
882 | gIAigICA9oCAgP1/f38ul6h2tZendv+Xp3b/l6d1pYCAgDwAAAAAgICA/4CAgP8AAAAAgICA/4CAgP8A
883 | AAAAgICA/4CAgP+AgID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgD5/f3/+gICA/4GBgXWq
884 | qqoDf39/JoCAgNSAgID/gICAopmndDeXp3b/l6d2/5endvyZpnkof39/vICAgAR/f3/6gICA/wAAAACA
885 | gID/gICA/wAAAACAgID/gICA/4CAgOkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICA
886 | gID/gICA/4CAgPSAgID9gICA/4CAgNKAgIAQlqd2hpendv6Xp3b/mKZ2ioCAgD6AgID/gICAGICAgNiA
887 | gIDqh4eHEYCAgP+AgIDzi4uLC4CAgP+AgIDpgICAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
888 | AAAAAAAAAIGBgVWAgIDYgICA/4CAgPV/f3+agICAEAAAAAAAAAAAmah1I5mmeSiAgIAsf39/3oCAgP+B
889 | gYFNAAAAAAAAAAB/f39agICA/39/f8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
890 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIAQmZmZBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGBgW+A
891 | gID/gICA/4CAgNOAgIBOgYGBW4CAgOmAgID/gICAYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
892 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
893 | AAAAAAAAAH9/f4KAgID9gICA/4CAgP+AgID/gICA/4CAgLOAgIACAAAAAAAAAAAAAAAAAAAAAAAAAAAA
894 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
895 | AAAAAAAAAAAAAAAAAAAAAAAAAICAgDCAgICPgICAuYCAgLSBgYFrgICABAAAAAAAAAAAAAAAAAAAAAAA
896 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
897 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
898 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
899 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
900 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////DB///gMP//4Aj//8AE//
901 | /ABP//gAT/e4AI/zMACP8zABD/MgAQ/zIAIP8yACD/IgBA/yQAQP8kAID/CACA/ggBAP4ZwQD+EkIw/h
902 | JCSP4kRkj+NIZI/ziKSP8BCkn/w/PP///xn///8B////x////////////ygAAAAYAAAAMAAAAAEAIAAA
903 | AAAAYAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
904 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
905 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAGXpnaEl6d2sZildUqA
906 | gIAEgYGBW4CAgICAgICAgICAfH9/fyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
907 | AAAAAAAAAAAAAAAAAAAAAAAAAJindlSXp3b/l6d2/5endv+Xp3bJlaZ3TYCAgGCAgIDdgICA/4CAgOAA
908 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAApeodtKX
909 | p3b/l6d2/5endv+Xp3b/l6d2/5and8iRnns6gICA3YCAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
910 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmKd2VJendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+X
911 | p3axgICAiYCAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
912 | gIACl6h20pendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Wp3WLgICApYCAgP8AAAAAAAAAAAAAAAAA
913 | AAAAAAAAAIeHhxGAgIC/gICAKgAAAAB/f3+KgYGBbwAAAACWqHVVl6d2/5endv+Xp3b/l6d2/5endv+X
914 | p3b/l6d2/5endvWJkns4f39/+oCAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAICAgCKAgID/f39/XgAAAACA
915 | gIDHgICAuYCAgAKXp3bTl6d2/5endv+Xp3b/l6d2/5endv+Xp3b/l6d2/5end46AgICbgICA/4CAgP8A
916 | AAAAAAAAAAAAAAAAAAAAAAAAAICAgBKAgID/gYGBbQAAAACAgIDPgICAspaodVWXp3b/l6d2/5endv+X
917 | p3b/l6d2/5endv+Xp3b/l6d29YmSezh/f3/6gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAICAgAiA
918 | gID/gYGBd5mZmQWAgID1f39/jpandq2Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b/lqZ2jYCAgJuA
919 | gID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAICAgAaAgID/gYGBeYGBgUGAgID/gICAUpenduaX
920 | p3b/l6d2/5endv+Xp3b/l6d2/5endv+Xp3b1iZJ7OH9/f/qAgID/gICA/4CAgP8AAAAAAAAAAAAAAAAA
921 | AAAAAAAAAICAgBCAgID/gICAcH9/f55/f3/ykaF6QZendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endv+W
922 | pnaNgICAm4CAgP+AgID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAIKCgiuAgID/gYGBbYCAgPaA
923 | gICXl6h1mJendv+Xp3b/l6d2/5endv+Xp3b/l6d2/5endvWJkns4f39/+oCAgP+AgID/gICA/4CAgP8A
924 | AAAAAAAAAAAAAAAAAAAAAAAAAIGBgVmAgID/gICAsoCAgP2Gj305lqd29Jendv+Xp3b/l6d2/5endv+X
925 | p3b/l6d2/5eodox/f3+cgICA/4CAgP+AgID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAH9/f45/
926 | f3/+gICA9H9/f6iWpneBl6d2/peodmySonk/l6d2wJendv+Xp3b/l6d29YmSezh/f3/6gICA84CAgNyA
927 | gID/gICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAICAgLGAgID/f39//oiIezyYqHbvlqd2rYCAgHiA
928 | gIDumKZ2RZendv+Xp3b/l6h2jH9/f5qAgIDugoKCN4CAgFJ/f3+KgICA/4CAgP8AAAAAAAAAAAAAAAAA
929 | AAAAAAAAAICAgLOAgID/gICAvZaodnWXp3b+kp95PYCAgO2AgICxmKZ2eZendv+Xp3b1m6Z6F4CAgMCA
930 | gIDAgICAfoCAgP2BgYFBgICA/4CAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAICAgIeAgID/gICAg5WpdkGX
931 | p3Z9gICAgX9/f/6EiIA+l6d265endv+XqHaMgICAIoCAgL+AgIC/gICAgICAgP+AgIBAgICA/4CAgP8A
932 | AAAAAAAAAAAAAAAAAAAAAAAAAIODgyOAgID1gICA2ICAgESAgIBwgICA+4CAgKSXqHZ7l6d2/5andvSJ
933 | kns4gICAgICAgLqAgIC+gICAgH9/f/6AgIBAgICA/4CAgOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB
934 | gYFHgICA6oCAgP+AgID/gICAtYCAgAyWpnZQl6d1pZekdUyAgICtgICAooCAgEyBgYFVgICAooCAgOeD
935 | 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
962 | bwAA/28AAP8fAAA=
963 |
964 |
965 |
--------------------------------------------------------------------------------
/Source/Main/Core/ExplorerContextMenuAdder.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Core
2 | {
3 | using System;
4 | using System.Reflection;
5 | using Microsoft.Win32;
6 | using Tasks.Install;
7 |
8 | internal static class ExplorerContextMenuAdder
9 | {
10 | public static void Register()
11 | {
12 | var key1 = Registry.CurrentUser.CreateSubKey(@"Software\Classes\Directory\shell\Simple Backup - Backup");
13 | key1.SetValue(null, "Backup - [Simple Backup]");
14 |
15 | var key2 = key1.CreateSubKey(@"command");
16 | key2.SetValue(null, $@"""{Installer.InstallationExeFilePath}"" -b ""%1""");
17 |
18 | key1.Close();
19 | key2.Close();
20 |
21 | // --
22 |
23 | key1 = Registry.CurrentUser.CreateSubKey(@"Software\Classes\Directory\shell\Simple Backup - Restore");
24 | key1.SetValue(null, "Restore - [Simple Backup]");
25 |
26 | key2 = key1.CreateSubKey(@"command");
27 | key2.SetValue(null, $@"""{Installer.InstallationExeFilePath}"" -r ""%1""");
28 |
29 | key1.Close();
30 | key2.Close();
31 |
32 | // --
33 |
34 | // http://stackoverflow.com/a/11821952/107625
35 | using (var key = Registry.CurrentUser.CreateSubKey(
36 | @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Simple Backup"))
37 | {
38 | var asm = Assembly.GetExecutingAssembly();
39 | var v = asm.GetName().Version;
40 |
41 | key.SetValue(@"DisplayName", "Simple Backup");
42 | key.SetValue(@"ApplicationVersion", v.ToString());
43 | key.SetValue(@"Publisher", "Zeta Software GmbH");
44 | key.SetValue(@"DisplayIcon", Installer.InstallationExeFilePath);
45 | key.SetValue(@"DisplayVersion", v.ToString(2));
46 | key.SetValue(@"URLInfoAbout", "https://github.com/UweKeim/SimpleBackup");
47 | key.SetValue(@"Contact", "info@zeta-producer.com");
48 | key.SetValue(@"InstallDate", DateTime.Now.ToString(@"yyyyMMdd"));
49 | key.SetValue(@"UninstallString", $@"""{Installer.InstallationExeFilePath}"" -u");
50 | }
51 | }
52 |
53 | public static void Unregister()
54 | {
55 | try
56 | {
57 | Registry.CurrentUser.DeleteSubKeyTree(@"Software\Classes\Directory\shell\Simple Backup - Backup");
58 | }
59 | catch (Exception)
60 | {
61 | }
62 |
63 | try
64 | {
65 | Registry.CurrentUser.DeleteSubKeyTree(@"Software\Classes\Directory\shell\Simple Backup - Restore");
66 | }
67 | catch (Exception)
68 | {
69 | }
70 |
71 | try
72 | {
73 | Registry.CurrentUser.DeleteSubKeyTree(
74 | @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Simple Backup");
75 | }
76 | catch (Exception)
77 | {
78 | }
79 | }
80 | }
81 | }
--------------------------------------------------------------------------------
/Source/Main/Core/MessageBoxException.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Core
2 | {
3 | using System;
4 | using System.Runtime.Serialization;
5 |
6 | [Serializable]
7 | public class MessageBoxException : Exception
8 | {
9 | public MessageBoxException()
10 | {
11 | }
12 |
13 | public MessageBoxException(string message) : base(message)
14 | {
15 | }
16 |
17 | public MessageBoxException(string message, Exception inner) : base(message, inner)
18 | {
19 | }
20 |
21 | protected MessageBoxException(
22 | SerializationInfo info,
23 | StreamingContext context) : base(info, context)
24 | {
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/Source/Main/Core/Program.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Core
2 | {
3 | using System;
4 | using System.Diagnostics;
5 | using System.Threading;
6 | using System.Windows.Forms;
7 | using Tasks;
8 |
9 | internal static class Program
10 | {
11 | [STAThread]
12 | private static void Main()
13 | {
14 | Application.EnableVisualStyles();
15 | Application.SetCompatibleTextRenderingDefault(false);
16 |
17 | Application.ThreadException += applicationThreadException;
18 | Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
19 | AppDomain.CurrentDomain.UnhandledException += currentDomainUnhandledException;
20 |
21 | try
22 | {
23 | Application.Run(EntryGate.DecideForm());
24 | }
25 | catch (Exception x)
26 | {
27 | HandleException(x);
28 | }
29 | }
30 |
31 | private static void applicationThreadException(object sender, ThreadExceptionEventArgs e)
32 | {
33 | HandleException(e.Exception);
34 | }
35 |
36 | private static void currentDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
37 | {
38 | HandleException(e.ExceptionObject as Exception);
39 | }
40 |
41 | private static bool _insideHandleException;
42 |
43 | public static void HandleException(
44 | Exception exception)
45 | {
46 | Trace.TraceError(
47 | @"Exception occurred. {0}",
48 | exception.Message);
49 |
50 | if (!_insideHandleException)
51 | {
52 | _insideHandleException = true;
53 | try
54 | {
55 | var messageBoxException = exception as MessageBoxException;
56 | if (messageBoxException != null)
57 | {
58 | var mbx = messageBoxException;
59 | MessageBox.Show(null, mbx.Message, "Simple Backup", MessageBoxButtons.OK, MessageBoxIcon.Warning);
60 | return;
61 | }
62 |
63 | var cancel = exception as OperationCanceledException;
64 | if (cancel != null) return;
65 |
66 | // --
67 |
68 | if (ErrorForm.IsErrorFormShowing)
69 | {
70 | Trace.TraceInformation(
71 | $@"Error form already showing, not showing again. {exception.Message}");
72 | }
73 | else
74 | {
75 | var result = ErrorForm.DoShow(exception);
76 |
77 | if (result == DialogResult.Abort)
78 | {
79 | Process.GetCurrentProcess().Kill();
80 | Application.Exit();
81 | }
82 | }
83 | }
84 | finally
85 | {
86 | _insideHandleException = false;
87 | }
88 | }
89 | else
90 | {
91 | Trace.TraceError($@"Already inside 'HandleException()', not entering again. {exception.Message}");
92 | }
93 | }
94 | }
95 | }
--------------------------------------------------------------------------------
/Source/Main/Main.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {1C72AA9A-A5A8-4D8F-BC6F-57E0328C3420}
8 | WinExe
9 | Properties
10 | SimpleBackup.Main
11 | sb
12 | v2.0
13 | 512
14 |
15 |
16 |
17 | AnyCPU
18 | pdbonly
19 | true
20 | ..\..\Bin\
21 | TRACE
22 | prompt
23 | 4
24 |
25 |
26 | bookmarks.ico
27 |
28 |
29 | OnBuildSuccess
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | Form
44 |
45 |
46 | BackupForm.cs
47 |
48 |
49 | Form
50 |
51 |
52 | ConfigureForm.cs
53 |
54 |
55 |
56 |
57 | Form
58 |
59 |
60 | ErrorForm.cs
61 |
62 |
63 |
64 | Form
65 |
66 |
67 | InstallForm.cs
68 |
69 |
70 |
71 |
72 | Form
73 |
74 |
75 | RestoreForm.cs
76 |
77 |
78 |
79 |
80 | Form
81 |
82 |
83 | UninstallForm.cs
84 |
85 |
86 | BackupForm.cs
87 |
88 |
89 | ConfigureForm.cs
90 |
91 |
92 | ErrorForm.cs
93 |
94 |
95 | InstallForm.cs
96 |
97 |
98 | ResXFileCodeGenerator
99 | Resources.Designer.cs
100 | Designer
101 |
102 |
103 | True
104 | Resources.resx
105 | True
106 |
107 |
108 | RestoreForm.cs
109 |
110 |
111 | UninstallForm.cs
112 |
113 |
114 | SettingsSingleFileGenerator
115 | Settings.Designer.cs
116 |
117 |
118 | True
119 | Settings.settings
120 | True
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 | if exist "$(SolutionDir)..\Deploy\Build\sign-bin.cmd" (
129 | "$(SolutionDir)..\Deploy\Build\sign-bin.cmd"
130 | )
131 |
132 |
139 |
--------------------------------------------------------------------------------
/Source/Main/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("Simple Backup")]
8 | [assembly: AssemblyDescription("Windows Explorer Context Menu extension to backup and restore folders to temporary storage")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("https://github.com/UweKeim/SimpleBackup")]
11 | [assembly: AssemblyProduct("Simple Backup")]
12 | [assembly: AssemblyCopyright("Copyright © 2015 Zeta Software GmbH")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("93d579a3-970c-4c05-a8ae-ac22c9725f4d")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | // You can specify all the values or you can default the Build and Revision Numbers
32 | // by using the '*' as shown below:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.1.0.0")]
35 | [assembly: AssemblyFileVersion("1.1.0.0")]
36 |
--------------------------------------------------------------------------------
/Source/Main/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.34209
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SimpleBackup.Main.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SimpleBackup.Main.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Source/Main/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/Source/Main/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.34209
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SimpleBackup.Main.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Source/Main/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Source/Main/Tasks/Backup/BackupForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Backup
2 | {
3 | partial class BackupForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BackupForm));
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.progressBar = new System.Windows.Forms.ProgressBar();
34 | this.buttonCancel = new System.Windows.Forms.Button();
35 | this.processingBackgroundWorker = new System.ComponentModel.BackgroundWorker();
36 | this.panel1.SuspendLayout();
37 | this.SuspendLayout();
38 | //
39 | // panel1
40 | //
41 | this.panel1.Controls.Add(this.progressBar);
42 | this.panel1.Controls.Add(this.buttonCancel);
43 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
44 | this.panel1.Location = new System.Drawing.Point(0, 0);
45 | this.panel1.Name = "panel1";
46 | this.panel1.Padding = new System.Windows.Forms.Padding(9);
47 | this.panel1.Size = new System.Drawing.Size(304, 86);
48 | this.panel1.TabIndex = 0;
49 | //
50 | // progressBar
51 | //
52 | this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
53 | | System.Windows.Forms.AnchorStyles.Right)));
54 | this.progressBar.Location = new System.Drawing.Point(12, 12);
55 | this.progressBar.Name = "progressBar";
56 | this.progressBar.Size = new System.Drawing.Size(280, 23);
57 | this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
58 | this.progressBar.TabIndex = 1;
59 | //
60 | // buttonCancel
61 | //
62 | this.buttonCancel.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
63 | this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
64 | this.buttonCancel.Location = new System.Drawing.Point(109, 46);
65 | this.buttonCancel.Name = "buttonCancel";
66 | this.buttonCancel.Size = new System.Drawing.Size(85, 28);
67 | this.buttonCancel.TabIndex = 0;
68 | this.buttonCancel.Text = "Cancel";
69 | this.buttonCancel.UseVisualStyleBackColor = true;
70 | this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
71 | //
72 | // processingBackgroundWorker
73 | //
74 | this.processingBackgroundWorker.WorkerReportsProgress = true;
75 | this.processingBackgroundWorker.WorkerSupportsCancellation = true;
76 | this.processingBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.processingBackgroundWorker_DoWork);
77 | this.processingBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.processingBackgroundWorker_RunWorkerCompleted);
78 | //
79 | // BackupForm
80 | //
81 | this.AcceptButton = this.buttonCancel;
82 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
83 | this.CancelButton = this.buttonCancel;
84 | this.ClientSize = new System.Drawing.Size(304, 86);
85 | this.Controls.Add(this.panel1);
86 | this.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
87 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
88 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
89 | this.MaximizeBox = false;
90 | this.MinimizeBox = false;
91 | this.Name = "BackupForm";
92 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
93 | this.Text = "Backup folder";
94 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BackupForm_FormClosing);
95 | this.Load += new System.EventHandler(this.BackupForm_Load);
96 | this.Shown += new System.EventHandler(this.BackupForm_Shown);
97 | this.panel1.ResumeLayout(false);
98 | this.ResumeLayout(false);
99 |
100 | }
101 |
102 | #endregion
103 |
104 | private System.Windows.Forms.Panel panel1;
105 | private System.Windows.Forms.Button buttonCancel;
106 | private System.Windows.Forms.ProgressBar progressBar;
107 | private System.ComponentModel.BackgroundWorker processingBackgroundWorker;
108 | }
109 | }
110 |
111 |
--------------------------------------------------------------------------------
/Source/Main/Tasks/Backup/BackupForm.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Backup
2 | {
3 | using System;
4 | using System.ComponentModel;
5 | using System.Windows.Forms;
6 | using Core;
7 |
8 | public partial class BackupForm : Form
9 | {
10 | private string _sourceFolderPath;
11 |
12 | public BackupForm()
13 | {
14 | InitializeComponent();
15 | }
16 |
17 | public void Initialize(string sourceFolderPath)
18 | {
19 | _sourceFolderPath = sourceFolderPath;
20 | }
21 |
22 | private void BackupForm_Load(object sender, EventArgs e)
23 | {
24 | CenterToScreen();
25 | }
26 |
27 | private void BackupForm_Shown(object sender, EventArgs e)
28 | {
29 | processingBackgroundWorker.RunWorkerAsync();
30 | }
31 |
32 | private void processingBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
33 | {
34 | Backuper.Backup(
35 | _sourceFolderPath,
36 | userState => processingBackgroundWorker.CancellationPending ? CancelMode.Cancel : CancelMode.Continue);
37 | }
38 |
39 | private void processingBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
40 | {
41 | Hide();
42 | if (e.Error != null) Program.HandleException(e.Error);
43 |
44 | Application.Exit();
45 | }
46 |
47 | private void buttonCancel_Click(object sender, EventArgs e)
48 | {
49 | buttonCancel.Enabled = false;
50 | processingBackgroundWorker.CancelAsync();
51 | }
52 |
53 | private void BackupForm_FormClosing(object sender, FormClosingEventArgs e)
54 | {
55 | if (processingBackgroundWorker.CancellationPending)
56 | {
57 | e.Cancel = true;
58 | }
59 | else if (processingBackgroundWorker.IsBusy)
60 | {
61 | processingBackgroundWorker.CancelAsync();
62 | e.Cancel = true;
63 | }
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Source/Main/Tasks/Backup/Backuper.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Backup
2 | {
3 | using System;
4 | using System.IO;
5 | using Core;
6 | using Install;
7 |
8 | internal static class Backuper
9 | {
10 | public static string BackupStorageBaseFolderPath => Path.Combine(Installer.InstallationFolderPath, @"Backups");
11 |
12 | public static void Backup(string sourceFolderPath, Cancelable cancelable)
13 | {
14 | if (sourceFolderPath.StartsWith(BackupStorageBaseFolderPath, StringComparison.InvariantCultureIgnoreCase))
15 | {
16 | throw new Exception("Path must be outside of Simple Backup folder.");
17 | }
18 |
19 | var src = new DirectoryInfo(sourceFolderPath);
20 | var dst = new DirectoryInfo(Path.Combine(BackupStorageBaseFolderPath, MakeUnique(src)));
21 |
22 | if (dst.Exists) dst.Delete(true);
23 | dst.Create();
24 |
25 | CopyFilesRecursively(src, dst, cancelable);
26 | }
27 |
28 | public static string MakeUnique(FileSystemInfo src)
29 | {
30 | return $@"{src.Name} ({src.FullName.GetHashCode():X})";
31 | }
32 |
33 | public static void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target, Cancelable cancelable)
34 | {
35 | foreach (var dir in source.GetDirectories())
36 | {
37 | CancelHelper.CheckThrowCancel(cancelable);
38 | CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name), cancelable);
39 | }
40 |
41 | foreach (var file in source.GetFiles())
42 | {
43 | CancelHelper.CheckThrowCancel(cancelable);
44 | file.CopyTo(Path.Combine(target.FullName, file.Name));
45 | }
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Configure/ConfigureForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Configure
2 | {
3 | partial class ConfigureForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigureForm));
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.buttonCancel = new System.Windows.Forms.Button();
34 | this.buttonOK = new System.Windows.Forms.Button();
35 | this.panel1.SuspendLayout();
36 | this.SuspendLayout();
37 | //
38 | // panel1
39 | //
40 | this.panel1.Controls.Add(this.buttonOK);
41 | this.panel1.Controls.Add(this.buttonCancel);
42 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
43 | this.panel1.Location = new System.Drawing.Point(0, 0);
44 | this.panel1.Name = "panel1";
45 | this.panel1.Padding = new System.Windows.Forms.Padding(9);
46 | this.panel1.Size = new System.Drawing.Size(395, 237);
47 | this.panel1.TabIndex = 0;
48 | //
49 | // buttonCancel
50 | //
51 | this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
52 | this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
53 | this.buttonCancel.Location = new System.Drawing.Point(298, 197);
54 | this.buttonCancel.Name = "buttonCancel";
55 | this.buttonCancel.Size = new System.Drawing.Size(85, 28);
56 | this.buttonCancel.TabIndex = 1;
57 | this.buttonCancel.Text = "Cancel";
58 | this.buttonCancel.UseVisualStyleBackColor = true;
59 | //
60 | // buttonOK
61 | //
62 | this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
63 | this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
64 | this.buttonOK.Location = new System.Drawing.Point(207, 197);
65 | this.buttonOK.Name = "buttonOK";
66 | this.buttonOK.Size = new System.Drawing.Size(85, 28);
67 | this.buttonOK.TabIndex = 0;
68 | this.buttonOK.Text = "OK";
69 | this.buttonOK.UseVisualStyleBackColor = true;
70 | //
71 | // ConfigureForm
72 | //
73 | this.AcceptButton = this.buttonOK;
74 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
75 | this.CancelButton = this.buttonCancel;
76 | this.ClientSize = new System.Drawing.Size(395, 237);
77 | this.Controls.Add(this.panel1);
78 | this.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
79 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
80 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
81 | this.Margin = new System.Windows.Forms.Padding(4);
82 | this.MaximizeBox = false;
83 | this.MinimizeBox = false;
84 | this.Name = "ConfigureForm";
85 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
86 | this.Text = "Configure Simple Backup";
87 | this.panel1.ResumeLayout(false);
88 | this.ResumeLayout(false);
89 |
90 | }
91 |
92 | #endregion
93 |
94 | private System.Windows.Forms.Panel panel1;
95 | private System.Windows.Forms.Button buttonOK;
96 | private System.Windows.Forms.Button buttonCancel;
97 | }
98 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Configure/ConfigureForm.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Configure
2 | {
3 | using System.Windows.Forms;
4 |
5 | public partial class ConfigureForm : Form
6 | {
7 | public ConfigureForm()
8 | {
9 | InitializeComponent();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Source/Main/Tasks/Configure/Configurer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Configure
2 | {
3 | internal class Configurer
4 | {
5 | }
6 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/EntryGate.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks
2 | {
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Windows.Forms;
6 | using Backup;
7 | using Install;
8 | using Restore;
9 | using Uninstall;
10 |
11 | ///
12 | /// Entscheidet wohin gesprungen werden soll.
13 | ///
14 | internal static class EntryGate
15 | {
16 | public static Form DecideForm()
17 | {
18 | var args = new List(Environment.GetCommandLineArgs());
19 |
20 | // TODO.
21 |
22 | if (args.Contains(@"-i") || args.Count <= 1 && !Installer.IsInstalled)
23 | {
24 | return new InstallForm();
25 | }
26 | else if (args.Contains(@"-u") || args.Count <= 1 && Installer.IsInstalled)
27 | {
28 | return new UninstallForm();
29 | }
30 | else if (args.Contains(@"-b") && args.Count == 3)
31 | {
32 | var r = new BackupForm();
33 | r.Initialize(args[2]);
34 | return r;
35 | }
36 | else if (args.Contains(@"-r") && args.Count == 3)
37 | {
38 | var r = new RestoreForm();
39 | r.Initialize(args[2]);
40 | return r;
41 | }
42 | else
43 | {
44 | throw new Exception("Unknown/invalid command line arguments.");
45 | }
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Install/InstallForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Install
2 | {
3 | partial class InstallForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallForm));
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.progressBar = new System.Windows.Forms.ProgressBar();
34 | this.processingBackgroundWorker = new System.ComponentModel.BackgroundWorker();
35 | this.panel1.SuspendLayout();
36 | this.SuspendLayout();
37 | //
38 | // panel1
39 | //
40 | this.panel1.Controls.Add(this.progressBar);
41 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
42 | this.panel1.Location = new System.Drawing.Point(0, 0);
43 | this.panel1.Name = "panel1";
44 | this.panel1.Padding = new System.Windows.Forms.Padding(9);
45 | this.panel1.Size = new System.Drawing.Size(304, 48);
46 | this.panel1.TabIndex = 2;
47 | //
48 | // progressBar
49 | //
50 | this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
51 | | System.Windows.Forms.AnchorStyles.Right)));
52 | this.progressBar.Location = new System.Drawing.Point(12, 12);
53 | this.progressBar.Name = "progressBar";
54 | this.progressBar.Size = new System.Drawing.Size(280, 23);
55 | this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
56 | this.progressBar.TabIndex = 1;
57 | //
58 | // processingBackgroundWorker
59 | //
60 | this.processingBackgroundWorker.WorkerReportsProgress = true;
61 | this.processingBackgroundWorker.WorkerSupportsCancellation = true;
62 | this.processingBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.processingBackgroundWorker_DoWork);
63 | this.processingBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.processingBackgroundWorker_RunWorkerCompleted);
64 | //
65 | // InstallForm
66 | //
67 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
68 | this.ClientSize = new System.Drawing.Size(304, 48);
69 | this.Controls.Add(this.panel1);
70 | this.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
71 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
72 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
73 | this.MaximizeBox = false;
74 | this.MinimizeBox = false;
75 | this.Name = "InstallForm";
76 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
77 | this.Text = "Install Simple Backup";
78 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.InstallForm_FormClosing);
79 | this.Load += new System.EventHandler(this.InstallForm_Load);
80 | this.Shown += new System.EventHandler(this.InstallForm_Shown);
81 | this.panel1.ResumeLayout(false);
82 | this.ResumeLayout(false);
83 |
84 | }
85 |
86 | #endregion
87 |
88 | private System.Windows.Forms.Panel panel1;
89 | private System.Windows.Forms.ProgressBar progressBar;
90 | private System.ComponentModel.BackgroundWorker processingBackgroundWorker;
91 | }
92 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Install/InstallForm.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Install
2 | {
3 | using System;
4 | using System.ComponentModel;
5 | using System.Windows.Forms;
6 | using Core;
7 |
8 | public partial class InstallForm : Form
9 | {
10 | public InstallForm()
11 | {
12 | InitializeComponent();
13 | }
14 |
15 | private void InstallForm_Load(object sender, EventArgs e)
16 | {
17 | CenterToScreen();
18 | }
19 |
20 | private void InstallForm_Shown(object sender, EventArgs e)
21 | {
22 | processingBackgroundWorker.RunWorkerAsync();
23 | }
24 |
25 | private void processingBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
26 | {
27 | Installer.Install(
28 | userState => processingBackgroundWorker.CancellationPending ? CancelMode.Cancel : CancelMode.Continue);
29 | }
30 |
31 | private void processingBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
32 | {
33 | Hide();
34 | Program.HandleException(e.Error ??
35 | new MessageBoxException(
36 | "Successfully installed.\r\n\r\nRight-click a folder in Windows Explorer and select 'Backup' or 'Restore'."));
37 |
38 | Application.Exit();
39 | }
40 |
41 | private void InstallForm_FormClosing(object sender, FormClosingEventArgs e)
42 | {
43 | if (processingBackgroundWorker.IsBusy)
44 | {
45 | processingBackgroundWorker.CancelAsync();
46 | e.Cancel = true;
47 | }
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Install/Installer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Install
2 | {
3 | using System;
4 | using System.IO;
5 | using System.Reflection;
6 | using Core;
7 |
8 | internal static class Installer
9 | {
10 | public static string InstallationFolderPath =>
11 | Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"Simple Backup");
12 |
13 | public static string InstallationExeFilePath => Path.Combine(InstallationFolderPath, ExeName);
14 |
15 | private static string ExeName => Path.GetFileName(Assembly.GetEntryAssembly().Location);
16 |
17 | public static bool IsInstalled => File.Exists(InstallationExeFilePath);
18 |
19 | public static void Install(
20 | Cancelable cancelable)
21 | {
22 | if (IsInstalled) return;
23 |
24 | Directory.CreateDirectory(InstallationFolderPath);
25 |
26 | File.Copy(
27 | Assembly.GetEntryAssembly().Location,
28 | InstallationExeFilePath,
29 | true);
30 |
31 | ExplorerContextMenuAdder.Register();
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Restore/RestoreForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Restore
2 | {
3 | partial class RestoreForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RestoreForm));
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.progressBar = new System.Windows.Forms.ProgressBar();
34 | this.buttonCancel = new System.Windows.Forms.Button();
35 | this.processingBackgroundWorker = new System.ComponentModel.BackgroundWorker();
36 | this.panel1.SuspendLayout();
37 | this.SuspendLayout();
38 | //
39 | // panel1
40 | //
41 | this.panel1.Controls.Add(this.progressBar);
42 | this.panel1.Controls.Add(this.buttonCancel);
43 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
44 | this.panel1.Location = new System.Drawing.Point(0, 0);
45 | this.panel1.Name = "panel1";
46 | this.panel1.Padding = new System.Windows.Forms.Padding(9);
47 | this.panel1.Size = new System.Drawing.Size(304, 86);
48 | this.panel1.TabIndex = 1;
49 | //
50 | // progressBar
51 | //
52 | this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
53 | | System.Windows.Forms.AnchorStyles.Right)));
54 | this.progressBar.Location = new System.Drawing.Point(12, 12);
55 | this.progressBar.Name = "progressBar";
56 | this.progressBar.Size = new System.Drawing.Size(280, 23);
57 | this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
58 | this.progressBar.TabIndex = 1;
59 | //
60 | // buttonCancel
61 | //
62 | this.buttonCancel.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
63 | this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
64 | this.buttonCancel.Location = new System.Drawing.Point(109, 46);
65 | this.buttonCancel.Name = "buttonCancel";
66 | this.buttonCancel.Size = new System.Drawing.Size(85, 28);
67 | this.buttonCancel.TabIndex = 0;
68 | this.buttonCancel.Text = "Cancel";
69 | this.buttonCancel.UseVisualStyleBackColor = true;
70 | this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
71 | //
72 | // processingBackgroundWorker
73 | //
74 | this.processingBackgroundWorker.WorkerReportsProgress = true;
75 | this.processingBackgroundWorker.WorkerSupportsCancellation = true;
76 | this.processingBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.processingBackgroundWorker_DoWork);
77 | this.processingBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.processingBackgroundWorker_RunWorkerCompleted);
78 | //
79 | // RestoreForm
80 | //
81 | this.AcceptButton = this.buttonCancel;
82 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
83 | this.CancelButton = this.buttonCancel;
84 | this.ClientSize = new System.Drawing.Size(304, 86);
85 | this.Controls.Add(this.panel1);
86 | this.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
87 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
88 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
89 | this.MaximizeBox = false;
90 | this.MinimizeBox = false;
91 | this.Name = "RestoreForm";
92 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
93 | this.Text = "Restore folder";
94 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.RestoreForm_FormClosing);
95 | this.Load += new System.EventHandler(this.RestoreForm_Load);
96 | this.Shown += new System.EventHandler(this.RestoreForm_Shown);
97 | this.panel1.ResumeLayout(false);
98 | this.ResumeLayout(false);
99 |
100 | }
101 |
102 | #endregion
103 |
104 | private System.Windows.Forms.Panel panel1;
105 | private System.Windows.Forms.ProgressBar progressBar;
106 | private System.Windows.Forms.Button buttonCancel;
107 | private System.ComponentModel.BackgroundWorker processingBackgroundWorker;
108 | }
109 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Restore/RestoreForm.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Restore
2 | {
3 | using System;
4 | using System.ComponentModel;
5 | using System.Windows.Forms;
6 | using Core;
7 |
8 | public partial class RestoreForm : Form
9 | {
10 | private string _destinationFolderPath;
11 |
12 | public RestoreForm()
13 | {
14 | InitializeComponent();
15 | }
16 |
17 | public void Initialize(string destinationFolderPath)
18 | {
19 | _destinationFolderPath = destinationFolderPath;
20 | }
21 |
22 | private void RestoreForm_Load(object sender, EventArgs e)
23 | {
24 | CenterToScreen();
25 | }
26 |
27 | private void RestoreForm_Shown(object sender, EventArgs e)
28 | {
29 | processingBackgroundWorker.RunWorkerAsync();
30 | }
31 |
32 | private void processingBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
33 | {
34 | Restorer.Restore(
35 | _destinationFolderPath,
36 | userState => processingBackgroundWorker.CancellationPending ? CancelMode.Cancel : CancelMode.Continue);
37 | }
38 |
39 | private void processingBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
40 | {
41 | Hide();
42 | if (e.Error != null) Program.HandleException(e.Error);
43 |
44 | Application.Exit();
45 | }
46 |
47 | private void buttonCancel_Click(object sender, EventArgs e)
48 | {
49 | buttonCancel.Enabled = false;
50 | processingBackgroundWorker.CancelAsync();
51 | }
52 |
53 | private void RestoreForm_FormClosing(object sender, FormClosingEventArgs e)
54 | {
55 | if (processingBackgroundWorker.CancellationPending)
56 | {
57 | e.Cancel = true;
58 | }
59 | else if ( processingBackgroundWorker.IsBusy)
60 | {
61 | processingBackgroundWorker.CancelAsync();
62 | e.Cancel = true;
63 | }
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Source/Main/Tasks/Restore/Restorer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Restore
2 | {
3 | using System;
4 | using System.IO;
5 | using Backup;
6 | using Core;
7 |
8 | internal static class Restorer
9 | {
10 | public static void Restore(string destinationFolderPath, Cancelable cancelable)
11 | {
12 | if (destinationFolderPath.StartsWith(Backuper.BackupStorageBaseFolderPath, StringComparison.InvariantCultureIgnoreCase))
13 | {
14 | throw new Exception("Path must be outside of Simple Backup folder.");
15 | }
16 |
17 | var dst = new DirectoryInfo(destinationFolderPath);
18 | var src = new DirectoryInfo(Path.Combine(Backuper.BackupStorageBaseFolderPath, Backuper.MakeUnique(dst)));
19 |
20 | if (!src.Exists) throw new MessageBoxException("No backup available for this folder.");
21 | deleteDirectoryContents(dst, cancelable);
22 |
23 | Backuper.CopyFilesRecursively(src, dst, cancelable);
24 | }
25 |
26 | private static void deleteDirectoryContents(DirectoryInfo dir, Cancelable cancelable)
27 | {
28 | if (!dir.Exists) return;
29 |
30 | foreach (var directory in dir.GetDirectories())
31 | {
32 | CancelHelper.CheckThrowCancel(cancelable);
33 | directory.Delete(true);
34 | }
35 |
36 | foreach (var file in dir.GetFiles())
37 | {
38 | CancelHelper.CheckThrowCancel(cancelable);
39 | file.Delete();
40 | }
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Uninstall/UninstallForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Uninstall
2 | {
3 | partial class UninstallForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UninstallForm));
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.progressBar = new System.Windows.Forms.ProgressBar();
34 | this.processingBackgroundWorker = new System.ComponentModel.BackgroundWorker();
35 | this.panel1.SuspendLayout();
36 | this.SuspendLayout();
37 | //
38 | // panel1
39 | //
40 | this.panel1.Controls.Add(this.progressBar);
41 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
42 | this.panel1.Location = new System.Drawing.Point(0, 0);
43 | this.panel1.Name = "panel1";
44 | this.panel1.Padding = new System.Windows.Forms.Padding(9);
45 | this.panel1.Size = new System.Drawing.Size(304, 48);
46 | this.panel1.TabIndex = 1;
47 | //
48 | // progressBar
49 | //
50 | this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
51 | | System.Windows.Forms.AnchorStyles.Right)));
52 | this.progressBar.Location = new System.Drawing.Point(12, 12);
53 | this.progressBar.Name = "progressBar";
54 | this.progressBar.Size = new System.Drawing.Size(280, 23);
55 | this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
56 | this.progressBar.TabIndex = 1;
57 | //
58 | // processingBackgroundWorker
59 | //
60 | this.processingBackgroundWorker.WorkerReportsProgress = true;
61 | this.processingBackgroundWorker.WorkerSupportsCancellation = true;
62 | this.processingBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.processingBackgroundWorker_DoWork);
63 | this.processingBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.processingBackgroundWorker_RunWorkerCompleted);
64 | //
65 | // UninstallForm
66 | //
67 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
68 | this.ClientSize = new System.Drawing.Size(304, 48);
69 | this.Controls.Add(this.panel1);
70 | this.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
71 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
72 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
73 | this.MaximizeBox = false;
74 | this.MinimizeBox = false;
75 | this.Name = "UninstallForm";
76 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
77 | this.Text = "Uninstall Simple Backup";
78 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.UninstallForm_FormClosing);
79 | this.Load += new System.EventHandler(this.UninstallForm_Load);
80 | this.Shown += new System.EventHandler(this.UninstallForm_Shown);
81 | this.panel1.ResumeLayout(false);
82 | this.ResumeLayout(false);
83 |
84 | }
85 |
86 | #endregion
87 |
88 | private System.Windows.Forms.Panel panel1;
89 | private System.Windows.Forms.ProgressBar progressBar;
90 | private System.ComponentModel.BackgroundWorker processingBackgroundWorker;
91 | }
92 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Uninstall/UninstallForm.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Uninstall
2 | {
3 | using System;
4 | using System.ComponentModel;
5 | using System.Windows.Forms;
6 | using Core;
7 |
8 | public partial class UninstallForm : Form
9 | {
10 | public UninstallForm()
11 | {
12 | InitializeComponent();
13 | }
14 |
15 | private void UninstallForm_Load(object sender, EventArgs e)
16 | {
17 | CenterToScreen();
18 | }
19 |
20 | private void UninstallForm_Shown(object sender, EventArgs e)
21 | {
22 | processingBackgroundWorker.RunWorkerAsync();
23 | }
24 |
25 | private void processingBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
26 | {
27 | Uninstaller.Uninstall(
28 | userState => processingBackgroundWorker.CancellationPending ? CancelMode.Cancel : CancelMode.Continue);
29 | }
30 |
31 | private void processingBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
32 | {
33 | Hide();
34 | if (e.Error != null) Program.HandleException(e.Error);
35 |
36 | Application.Exit();
37 | }
38 |
39 | private void UninstallForm_FormClosing(object sender, FormClosingEventArgs e)
40 | {
41 | if (processingBackgroundWorker.IsBusy)
42 | {
43 | processingBackgroundWorker.CancelAsync();
44 | e.Cancel = true;
45 | }
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/Source/Main/Tasks/Uninstall/Uninstaller.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleBackup.Main.Tasks.Uninstall
2 | {
3 | using System;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Runtime.InteropServices;
7 | using Core;
8 | using Install;
9 |
10 | internal static class Uninstaller
11 | {
12 | public static void Uninstall(Cancelable cancelable)
13 | {
14 | ExplorerContextMenuAdder.Unregister();
15 |
16 | // --
17 |
18 | var baseFolderPath = Installer.InstallationFolderPath;
19 | if (!Directory.Exists(baseFolderPath)) return;
20 |
21 | foreach (var directory in Directory.GetDirectories(baseFolderPath))
22 | {
23 | CancelHelper.CheckThrowCancel(cancelable);
24 | Directory.Delete(directory, true);
25 | }
26 |
27 | foreach (var file in Directory.GetFiles(baseFolderPath))
28 | {
29 | if (!string.Equals(Installer.InstallationExeFilePath, file, StringComparison.InvariantCultureIgnoreCase))
30 | {
31 | CancelHelper.CheckThrowCancel(cancelable);
32 | File.Delete(file);
33 | }
34 | }
35 |
36 | // --
37 |
38 | try
39 | {
40 | File.Delete(Installer.InstallationExeFilePath);
41 | }
42 | catch (Exception)
43 | {
44 | postPoneDeleteFile(Installer.InstallationExeFilePath);
45 | }
46 |
47 | try
48 | {
49 | Directory.Delete(Installer.InstallationFolderPath);
50 | }
51 | catch (Exception)
52 | {
53 | postPoneDeleteFile(Installer.InstallationFolderPath);
54 | }
55 | }
56 |
57 | private static void postPoneDeleteFile(string filePath)
58 | {
59 | /*
60 | // http://stackoverflow.com/questions/2245201/how-can-i-make-my-net-application-erase-itself
61 | // http://stackoverflow.com/questions/1305428/self-deletable-application-in-c-sharp-in-one-executable
62 |
63 | var info = new ProcessStartInfo
64 | {
65 | Arguments = string.Format(@"/C choice /C Y /N /D Y /T 3 & Del ""{0}""", filePath),
66 | WindowStyle = ProcessWindowStyle.Hidden,
67 | CreateNoWindow = true,
68 | FileName = @"cmd.exe"
69 | };
70 |
71 | Process.Start(info);
72 | */
73 |
74 | // http://stackoverflow.com/a/6077952/107625
75 | if (!NativeMethods.MoveFileEx(filePath, null, MoveFileFlags.DelayUntilReboot))
76 | {
77 | Trace.TraceWarning(@"Unable to schedule '{0}' for deletion.", filePath);
78 | }
79 | }
80 |
81 | [Flags]
82 | private enum MoveFileFlags
83 | {
84 | None = 0,
85 | ReplaceExisting = 1,
86 | CopyAllowed = 2,
87 | DelayUntilReboot = 4,
88 | WriteThrough = 8,
89 | CreateHardlink = 16,
90 | FailIfNotTrackable = 32,
91 | }
92 |
93 | private static class NativeMethods
94 | {
95 | [DllImport(@"kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
96 | public static extern bool MoveFileEx(
97 | string lpExistingFileName,
98 | string lpNewFileName,
99 | MoveFileFlags dwFlags);
100 | }
101 | }
102 | }
--------------------------------------------------------------------------------
/Source/Main/bin/Release/Main.vshost.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Source/Main/bookmarks.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UweKeim/SimpleBackup/48e9acc08066c8505e6edc1da4e1429e5c379893/Source/Main/bookmarks.ico
--------------------------------------------------------------------------------
/Source/SimpleBackup.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.22823.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Main", "Main\Main.csproj", "{1C72AA9A-A5A8-4D8F-BC6F-57E0328C3420}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Release|Any CPU = Release|Any CPU
11 | EndGlobalSection
12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
13 | {1C72AA9A-A5A8-4D8F-BC6F-57E0328C3420}.Release|Any CPU.ActiveCfg = Release|Any CPU
14 | {1C72AA9A-A5A8-4D8F-BC6F-57E0328C3420}.Release|Any CPU.Build.0 = Release|Any CPU
15 | EndGlobalSection
16 | GlobalSection(SolutionProperties) = preSolution
17 | HideSolutionNode = FALSE
18 | EndGlobalSection
19 | EndGlobal
20 |
--------------------------------------------------------------------------------