• R/O
  • HTTP
  • SSH
  • HTTPS

BurageSnap: Commit


Commit MetaInfo

Revisión81f0a9a9151b563cddbfcac58a3c93d01c1f7839 (tree)
Tiempo2015-09-21 14:52:12
AutorKazuhiro <fujieda@user...>
CommiterKazuhiro

Log Message

Version 1.0

Cambiar Resumen

Diferencia incremental

--- /dev/null
+++ b/BurageSnap.sln
@@ -0,0 +1,22 @@
1+
2+Microsoft Visual Studio Solution File, Format Version 12.00
3+# Visual Studio 14
4+VisualStudioVersion = 14.0.23107.0
5+MinimumVisualStudioVersion = 10.0.40219.1
6+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BurageSnap", "BurageSnap\BurageSnap.csproj", "{78D1E361-7242-4EDB-A69E-D477C396A68D}"
7+EndProject
8+Global
9+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+ Debug|Any CPU = Debug|Any CPU
11+ Release|Any CPU = Release|Any CPU
12+ EndGlobalSection
13+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+ {78D1E361-7242-4EDB-A69E-D477C396A68D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+ {78D1E361-7242-4EDB-A69E-D477C396A68D}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+ {78D1E361-7242-4EDB-A69E-D477C396A68D}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+ {78D1E361-7242-4EDB-A69E-D477C396A68D}.Release|Any CPU.Build.0 = Release|Any CPU
18+ EndGlobalSection
19+ GlobalSection(SolutionProperties) = preSolution
20+ HideSolutionNode = FALSE
21+ EndGlobalSection
22+EndGlobal
--- /dev/null
+++ b/BurageSnap.sln.DotSettings
@@ -0,0 +1,10 @@
1+<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2+ <s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=Custom/@EntryIndexedValue">&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Profile name="Custom"&gt;&lt;RemoveCodeRedundancies&gt;True&lt;/RemoveCodeRedundancies&gt;&lt;CSUseAutoProperty&gt;True&lt;/CSUseAutoProperty&gt;&lt;CSMakeFieldReadonly&gt;True&lt;/CSMakeFieldReadonly&gt;&lt;CSMakeAutoPropertyGetOnly&gt;True&lt;/CSMakeAutoPropertyGetOnly&gt;&lt;CSArrangeQualifiers&gt;True&lt;/CSArrangeQualifiers&gt;&lt;CSEnforceVarKeywordUsageSettings&gt;True&lt;/CSEnforceVarKeywordUsageSettings&gt;&lt;CSUpdateFileHeader&gt;True&lt;/CSUpdateFileHeader&gt;&lt;CSOptimizeUsings&gt;&lt;OptimizeUsings&gt;True&lt;/OptimizeUsings&gt;&lt;EmbraceInRegion&gt;False&lt;/EmbraceInRegion&gt;&lt;RegionName&gt;&lt;/RegionName&gt;&lt;/CSOptimizeUsings&gt;&lt;CSShortenReferences&gt;True&lt;/CSShortenReferences&gt;&lt;CSReformatCode&gt;True&lt;/CSReformatCode&gt;&lt;CSFixBuiltinTypeReferences&gt;True&lt;/CSFixBuiltinTypeReferences&gt;&lt;/Profile&gt;</s:String>
3+ <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AFTER_TYPECAST_PARENTHESES/@EntryValue">False</s:Boolean>
4+ <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AROUND_MULTIPLICATIVE_OP/@EntryValue">True</s:Boolean>
5+ <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_SIZEOF_PARENTHESES/@EntryValue">False</s:Boolean>
6+ <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_TYPEOF_PARENTHESES/@EntryValue">False</s:Boolean>
7+ <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DC/@EntryIndexedValue">DC</s:String>
8+ <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean>
9+ <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
10+ <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/App.config
@@ -0,0 +1,6 @@
1+<?xml version="1.0" encoding="utf-8" ?>
2+<configuration>
3+ <startup>
4+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
5+ </startup>
6+</configuration>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/BurageSnap.csproj
@@ -0,0 +1,125 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4+ <PropertyGroup>
5+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7+ <ProjectGuid>{78D1E361-7242-4EDB-A69E-D477C396A68D}</ProjectGuid>
8+ <OutputType>WinExe</OutputType>
9+ <AppDesignerFolder>Properties</AppDesignerFolder>
10+ <RootNamespace>BurageSnap</RootNamespace>
11+ <AssemblyName>BurageSnap</AssemblyName>
12+ <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
13+ <FileAlignment>512</FileAlignment>
14+ <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
15+ </PropertyGroup>
16+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
17+ <PlatformTarget>AnyCPU</PlatformTarget>
18+ <DebugSymbols>true</DebugSymbols>
19+ <DebugType>full</DebugType>
20+ <Optimize>false</Optimize>
21+ <OutputPath>bin\Debug\</OutputPath>
22+ <DefineConstants>DEBUG;TRACE</DefineConstants>
23+ <ErrorReport>prompt</ErrorReport>
24+ <WarningLevel>4</WarningLevel>
25+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
26+ </PropertyGroup>
27+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
28+ <PlatformTarget>AnyCPU</PlatformTarget>
29+ <DebugType>pdbonly</DebugType>
30+ <Optimize>true</Optimize>
31+ <OutputPath>bin\Release\</OutputPath>
32+ <DefineConstants>TRACE</DefineConstants>
33+ <ErrorReport>prompt</ErrorReport>
34+ <WarningLevel>4</WarningLevel>
35+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
36+ </PropertyGroup>
37+ <PropertyGroup>
38+ <ApplicationIcon>app.ico</ApplicationIcon>
39+ </PropertyGroup>
40+ <ItemGroup>
41+ <Reference Include="System" />
42+ <Reference Include="System.Core" />
43+ <Reference Include="System.Xml.Linq" />
44+ <Reference Include="System.Data.DataSetExtensions" />
45+ <Reference Include="Microsoft.CSharp" />
46+ <Reference Include="System.Data" />
47+ <Reference Include="System.Deployment" />
48+ <Reference Include="System.Drawing" />
49+ <Reference Include="System.Net.Http" />
50+ <Reference Include="System.Windows.Forms" />
51+ <Reference Include="System.Xml" />
52+ </ItemGroup>
53+ <ItemGroup>
54+ <Compile Include="Config.cs" />
55+ <Compile Include="OptionDialog.cs">
56+ <SubType>Form</SubType>
57+ </Compile>
58+ <Compile Include="OptionDialog.Designer.cs">
59+ <DependentUpon>OptionDialog.cs</DependentUpon>
60+ </Compile>
61+ <Compile Include="FormMain.cs">
62+ <SubType>Form</SubType>
63+ </Compile>
64+ <Compile Include="FormMain.Designer.cs">
65+ <DependentUpon>FormMain.cs</DependentUpon>
66+ </Compile>
67+ <Compile Include="Program.cs" />
68+ <Compile Include="Properties\AssemblyInfo.cs" />
69+ <EmbeddedResource Include="FormMain.ja.resx">
70+ <DependentUpon>FormMain.cs</DependentUpon>
71+ </EmbeddedResource>
72+ <EmbeddedResource Include="FormMain.resx">
73+ <DependentUpon>FormMain.cs</DependentUpon>
74+ </EmbeddedResource>
75+ <EmbeddedResource Include="OptionDialog.ja.resx">
76+ <DependentUpon>OptionDialog.cs</DependentUpon>
77+ </EmbeddedResource>
78+ <EmbeddedResource Include="OptionDialog.resx">
79+ <DependentUpon>OptionDialog.cs</DependentUpon>
80+ </EmbeddedResource>
81+ <EmbeddedResource Include="Properties\Resources.resx">
82+ <Generator>ResXFileCodeGenerator</Generator>
83+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
84+ <SubType>Designer</SubType>
85+ </EmbeddedResource>
86+ <Compile Include="Properties\Resources.Designer.cs">
87+ <AutoGen>True</AutoGen>
88+ <DependentUpon>Resources.resx</DependentUpon>
89+ <DesignTime>True</DesignTime>
90+ </Compile>
91+ <EmbeddedResource Include="Properties\Resources.ja.resx" />
92+ <None Include="Properties\Settings.settings">
93+ <Generator>SettingsSingleFileGenerator</Generator>
94+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
95+ </None>
96+ <Compile Include="Properties\Settings.Designer.cs">
97+ <AutoGen>True</AutoGen>
98+ <DependentUpon>Settings.settings</DependentUpon>
99+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
100+ </Compile>
101+ </ItemGroup>
102+ <ItemGroup>
103+ <None Include="App.config" />
104+ </ItemGroup>
105+ <ItemGroup>
106+ <None Include="folder_open.ico" />
107+ </ItemGroup>
108+ <ItemGroup>
109+ <None Include="cogs.ico" />
110+ </ItemGroup>
111+ <ItemGroup>
112+ <None Include="folder_open_16.ico" />
113+ </ItemGroup>
114+ <ItemGroup>
115+ <Content Include="app.ico" />
116+ </ItemGroup>
117+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
118+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
119+ Other similar extension points exist, see Microsoft.Common.targets.
120+ <Target Name="BeforeBuild">
121+ </Target>
122+ <Target Name="AfterBuild">
123+ </Target>
124+ -->
125+</Project>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/Config.cs
@@ -0,0 +1,82 @@
1+// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
2+//
3+// This program is part of BurageSnap.
4+//
5+// BurageSnap is free software: you can redistribute it and/or modify
6+// it under the terms of the GNU General Public License as published by
7+// the Free Software Foundation, either version 3 of the License, or
8+// (at your option) any later version.
9+//
10+// This program is distributed in the hope that it will be useful,
11+// but WITHOUT ANY WARRANTY; without even the implied warranty of
12+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+// GNU General Public License for more details.
14+//
15+// You should have received a copy of the GNU General Public License
16+// along with this program; if not, see <http://www.gnu.org/licenses/>.
17+
18+using System.Drawing;
19+using System.IO;
20+using System.Windows.Forms;
21+using System.Xml.Serialization;
22+
23+namespace BurageSnap
24+{
25+ public class Config
26+ {
27+ private static readonly string BaseDir = Path.GetDirectoryName(Application.ExecutablePath);
28+ public Point Location { get; set; }
29+ public bool TopMost { get; set; }
30+ public int Interval { get; set; } = 1000;
31+ public string[] TitleHistory { get; set; } = {"艦隊これくしょん -艦これ- - オンラインゲーム - DMM.com"};
32+ public string Folder { get; set; }
33+
34+ public Config()
35+ {
36+ Folder = BaseDir;
37+ }
38+
39+ public static Config Load()
40+ {
41+ try
42+ {
43+ using (var file = File.OpenText("config.xml"))
44+ {
45+ var config = (Config)new XmlSerializer(typeof(Config)).Deserialize(file);
46+ config.Folder = PrependBaseDir(config.Folder);
47+ return config;
48+ }
49+ }
50+ catch (IOException)
51+ {
52+ }
53+ return new Config();
54+ }
55+
56+ public void Save()
57+ {
58+ Folder = StripBaseDir(Folder);
59+ using (var file = File.CreateText("config.xml"))
60+ new XmlSerializer(typeof(Config)).Serialize(file, this);
61+ }
62+
63+ private static string StripBaseDir(string path)
64+ {
65+ if (BaseDir == null)
66+ return path;
67+ if (!path.StartsWith(BaseDir))
68+ return path;
69+ path = path.Substring(BaseDir.Length);
70+ return path.StartsWith(Path.DirectorySeparatorChar.ToString()) ? path.Substring(1) : path;
71+ }
72+
73+ private static string PrependBaseDir(string path)
74+ {
75+ if (BaseDir == null)
76+ return path;
77+ if (Path.IsPathRooted(path))
78+ return path;
79+ return Path.Combine(BaseDir, path);
80+ }
81+ }
82+}
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/FormMain.Designer.cs
@@ -0,0 +1,126 @@
1+// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
2+//
3+// This program is part of BurageSnap.
4+//
5+// BurageSnap is free software: you can redistribute it and/or modify
6+// it under the terms of the GNU General Public License as published by
7+// the Free Software Foundation, either version 3 of the License, or
8+// (at your option) any later version.
9+//
10+// This program is distributed in the hope that it will be useful,
11+// but WITHOUT ANY WARRANTY; without even the implied warranty of
12+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+// GNU General Public License for more details.
14+//
15+// You should have received a copy of the GNU General Public License
16+// along with this program; if not, see <http://www.gnu.org/licenses/>.
17+
18+using System.ComponentModel;
19+using System.Windows.Forms;
20+
21+namespace BurageSnap
22+{
23+ partial class FormMain
24+ {
25+ /// <summary>
26+ /// 必要なデザイナー変数です。
27+ /// </summary>
28+ private IContainer components = null;
29+
30+ /// <summary>
31+ /// 使用中のリソースをすべてクリーンアップします。
32+ /// </summary>
33+ /// <param name="disposing">マネージ リソースを破棄する場合は true を指定し、その他の場合は false を指定します。</param>
34+ protected override void Dispose(bool disposing)
35+ {
36+ if (disposing && (components != null))
37+ {
38+ components.Dispose();
39+ }
40+ base.Dispose(disposing);
41+ }
42+
43+ #region Windows フォーム デザイナーで生成されたコード
44+
45+ /// <summary>
46+ /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
47+ /// コード エディターで変更しないでください。
48+ /// </summary>
49+ private void InitializeComponent()
50+ {
51+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
52+ this.buttonCapture = new System.Windows.Forms.Button();
53+ this.buttonOption = new System.Windows.Forms.Button();
54+ this.buttonBrowse = new System.Windows.Forms.Button();
55+ this.labelTimeStamp = new System.Windows.Forms.Label();
56+ this.checkBoxContinuous = new System.Windows.Forms.CheckBox();
57+ this.label1 = new System.Windows.Forms.Label();
58+ this.SuspendLayout();
59+ //
60+ // buttonCapture
61+ //
62+ resources.ApplyResources(this.buttonCapture, "buttonCapture");
63+ this.buttonCapture.Name = "buttonCapture";
64+ this.buttonCapture.UseVisualStyleBackColor = true;
65+ this.buttonCapture.Click += new System.EventHandler(this.buttonCapture_Click);
66+ //
67+ // buttonOption
68+ //
69+ resources.ApplyResources(this.buttonOption, "buttonOption");
70+ this.buttonOption.Name = "buttonOption";
71+ this.buttonOption.UseVisualStyleBackColor = true;
72+ this.buttonOption.Click += new System.EventHandler(this.buttonOption_Click);
73+ //
74+ // buttonBrowse
75+ //
76+ resources.ApplyResources(this.buttonBrowse, "buttonBrowse");
77+ this.buttonBrowse.Name = "buttonBrowse";
78+ this.buttonBrowse.UseVisualStyleBackColor = true;
79+ this.buttonBrowse.Click += new System.EventHandler(this.buttonBrowse_Click);
80+ //
81+ // labelTimeStamp
82+ //
83+ resources.ApplyResources(this.labelTimeStamp, "labelTimeStamp");
84+ this.labelTimeStamp.Name = "labelTimeStamp";
85+ //
86+ // checkBoxContinuous
87+ //
88+ resources.ApplyResources(this.checkBoxContinuous, "checkBoxContinuous");
89+ this.checkBoxContinuous.Name = "checkBoxContinuous";
90+ this.checkBoxContinuous.UseVisualStyleBackColor = true;
91+ this.checkBoxContinuous.CheckedChanged += new System.EventHandler(this.checkBoxContinuous_CheckedChanged);
92+ //
93+ // label1
94+ //
95+ resources.ApplyResources(this.label1, "label1");
96+ this.label1.Name = "label1";
97+ //
98+ // FormMain
99+ //
100+ resources.ApplyResources(this, "$this");
101+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
102+ this.Controls.Add(this.label1);
103+ this.Controls.Add(this.checkBoxContinuous);
104+ this.Controls.Add(this.labelTimeStamp);
105+ this.Controls.Add(this.buttonBrowse);
106+ this.Controls.Add(this.buttonOption);
107+ this.Controls.Add(this.buttonCapture);
108+ this.Name = "FormMain";
109+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing);
110+ this.Load += new System.EventHandler(this.FormMain_Load);
111+ this.ResumeLayout(false);
112+ this.PerformLayout();
113+
114+ }
115+
116+ #endregion
117+
118+ private Button buttonCapture;
119+ private Button buttonOption;
120+ private Button buttonBrowse;
121+ private Label labelTimeStamp;
122+ private CheckBox checkBoxContinuous;
123+ private Label label1;
124+ }
125+}
126+
--- /dev/null
+++ b/BurageSnap/FormMain.cs
@@ -0,0 +1,341 @@
1+// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
2+//
3+// This program is part of BurageSnap.
4+//
5+// BurageSnap is free software: you can redistribute it and/or modify
6+// it under the terms of the GNU General Public License as published by
7+// the Free Software Foundation, either version 3 of the License, or
8+// (at your option) any later version.
9+//
10+// This program is distributed in the hope that it will be useful,
11+// but WITHOUT ANY WARRANTY; without even the implied warranty of
12+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+// GNU General Public License for more details.
14+//
15+// You should have received a copy of the GNU General Public License
16+// along with this program; if not, see <http://www.gnu.org/licenses/>.
17+
18+using System;
19+using System.Diagnostics;
20+using System.Drawing;
21+using System.Drawing.Imaging;
22+using System.IO;
23+using System.Linq;
24+using System.Runtime.InteropServices;
25+using System.Text;
26+using System.Threading;
27+using System.Windows.Forms;
28+using BurageSnap.Properties;
29+
30+namespace BurageSnap
31+{
32+ public partial class FormMain : Form
33+ {
34+ private IntPtr _hWnd;
35+ private Rectangle _rectangle;
36+ private Thread _captureThread;
37+ private readonly Config _config;
38+ private readonly OptionDialog _optionDialog;
39+ private const int WidthMin = 600, HeightMin = 400;
40+ private const string DateFormat = "yyyy-MM-dd";
41+
42+ public FormMain()
43+ {
44+ InitializeComponent();
45+ _config = Config.Load();
46+ _optionDialog = new OptionDialog(_config);
47+ }
48+
49+ private void FormMain_Load(object sender, EventArgs e)
50+ {
51+ if (_config.Location.IsEmpty)
52+ return;
53+ var newb = Bounds;
54+ newb.Location = _config.Location;
55+ if (IsVisibleOnAnyScreen(newb))
56+ Location = _config.Location;
57+ }
58+
59+ private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
60+ {
61+ _config.Location = Location;
62+ _config.Save();
63+ }
64+
65+ public static bool IsVisibleOnAnyScreen(Rectangle rect)
66+ {
67+ return Screen.AllScreens.Any(screen => screen.WorkingArea.IntersectsWith(rect));
68+ }
69+
70+ private void buttonOption_Click(object sender, EventArgs e)
71+ {
72+ if (_optionDialog.ShowDialog(this) == DialogResult.OK)
73+ TopMost = _config.TopMost;
74+ }
75+
76+ private void buttonCapture_Click(object sender, EventArgs e)
77+ {
78+ RedetectWindow();
79+ if (!checkBoxContinuous.Checked)
80+ {
81+ SingleShot();
82+ return;
83+ }
84+ if (_captureThread == null)
85+ {
86+ buttonCapture.Text = Resources.FormMain_buttonCapture_Click_Stop;
87+ _captureThread = new Thread(ContinuousShot);
88+ _captureThread.Start();
89+ }
90+ else
91+ {
92+ _captureThread.Interrupt();
93+ _captureThread.Join();
94+ _captureThread = null;
95+ buttonCapture.Text = Resources.FormMain_buttonCapture_Click_Start;
96+ }
97+ }
98+
99+ private void checkBoxContinuous_CheckedChanged(object sender, EventArgs e)
100+ {
101+ buttonCapture.Text = checkBoxContinuous.Checked
102+ ? Resources.FormMain_buttonCapture_Click_Start
103+ : Resources.FormMain_checkBoxContinuous_CheckedChanged_Capture;
104+ }
105+
106+ private void buttonBrowse_Click(object sender, EventArgs e)
107+ {
108+ var now = DateTime.Now;
109+ var dir = now.ToString(DateFormat);
110+ try
111+ {
112+ Directory.CreateDirectory(dir);
113+ }
114+ catch
115+ {
116+ return;
117+ }
118+ Process.Start(dir);
119+ }
120+
121+ private void RedetectWindow()
122+ {
123+ _hWnd = IntPtr.Zero;
124+ _rectangle = new Rectangle();
125+ }
126+
127+ private void ContinuousShot()
128+ {
129+ while (true)
130+ {
131+ SingleShot();
132+ try
133+ {
134+ Thread.Sleep(_config.Interval);
135+ }
136+ catch (ThreadInterruptedException)
137+ {
138+ return;
139+ }
140+ }
141+ }
142+
143+ private void SingleShot()
144+ {
145+ if (_hWnd == IntPtr.Zero)
146+ _hWnd = FindWindow(_config.TitleHistory[0]);
147+ if (_hWnd == IntPtr.Zero)
148+ return;
149+ using (var bmp = CaptureWindow(_hWnd))
150+ {
151+ var now = DateTime.Now;
152+ if (_rectangle.IsEmpty)
153+ _rectangle = DetectGameScreen(bmp);
154+ if (_rectangle.IsEmpty)
155+ return;
156+ var dir = now.ToString(DateFormat);
157+ try
158+ {
159+ Directory.CreateDirectory(dir);
160+ }
161+ catch
162+ {
163+ return;
164+ }
165+ var path = Path.Combine(dir, now.ToString("yyyy-MM-dd HH-mm-ss.fff") + ".jpg");
166+ using (var crop = bmp.Clone(_rectangle, bmp.PixelFormat))
167+ using (var fs = File.OpenWrite(path))
168+ crop.Save(fs, ImageFormat.Jpeg);
169+ BeginInvoke(new Action(() => { labelTimeStamp.Text = now.ToString("HH:mm:ss.fff"); }));
170+ }
171+ }
172+
173+ private IntPtr FindWindow(string title)
174+ {
175+ var found = IntPtr.Zero;
176+ EnumWindows((hWnd, lParam) =>
177+ {
178+ var rect = new Rect();
179+ if (GetWindowRect(hWnd, ref rect) == 0 || rect.Right - rect.Left < WidthMin ||
180+ rect.Bottom - rect.Top < HeightMin)
181+ return true;
182+ if (!GetWindowText(hWnd).Contains(title))
183+ return true;
184+ found = hWnd;
185+ return false;
186+ }, IntPtr.Zero);
187+ return found;
188+ }
189+
190+ public static string GetWindowText(IntPtr hWnd)
191+ {
192+ var size = GetWindowTextLength(hWnd);
193+ if (size == 0)
194+ return "";
195+ var sb = new StringBuilder(size + 1);
196+ GetWindowText(hWnd, sb, sb.Capacity);
197+ return sb.ToString();
198+ }
199+
200+ [DllImport("user32.dll", CharSet = CharSet.Unicode)]
201+ private static extern int GetWindowText(IntPtr hWnd, StringBuilder strText, int maxCount);
202+
203+ [DllImport("user32.dll", CharSet = CharSet.Unicode)]
204+ private static extern int GetWindowTextLength(IntPtr hWnd);
205+
206+ public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
207+
208+ [DllImport("user32.dll", CharSet = CharSet.Unicode)]
209+ private static extern bool EnumWindows(EnumWindowsProc enumProc, IntPtr lParam);
210+
211+ public static Bitmap CaptureWindow(IntPtr hWnd)
212+ {
213+ var winDC = GetWindowDC(hWnd);
214+ var rect = new Rect();
215+ GetWindowRect(hWnd, ref rect);
216+ var bmp = new Bitmap(rect.Right - rect.Left, rect.Bottom - rect.Top, PixelFormat.Format32bppArgb);
217+ var g = Graphics.FromImage(bmp);
218+ var hDC = g.GetHdc();
219+ BitBlt(hDC, 0, 0, bmp.Width, bmp.Height, winDC, 0, 0, SRCCOPY);
220+ g.ReleaseHdc(hDC);
221+ g.Dispose();
222+ ReleaseDC(hWnd, winDC);
223+ return bmp;
224+ }
225+
226+ [DllImport("user32.dll")]
227+ private static extern IntPtr GetWindowDC(IntPtr hWnd);
228+
229+ [DllImport("user32.dll")]
230+ private static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC);
231+
232+ // ReSharper disable once InconsistentNaming
233+ private const int SRCCOPY = 0xcc0020;
234+
235+ [DllImport("gdi32.dll")]
236+ private static extern int BitBlt(IntPtr hDestDC, int x, int y, int nWidth, int nHeight,
237+ IntPtr hSrcDC, int xSrc, int ySrc, int dwRop);
238+
239+ [DllImport("user32.dll")]
240+ private static extern int GetWindowRect(IntPtr hWnd, ref Rect lpRec);
241+
242+ [StructLayout(LayoutKind.Sequential)]
243+ public struct Rect
244+ {
245+ public int Left;
246+ public int Top;
247+ public int Right;
248+ public int Bottom;
249+ }
250+
251+ private Rectangle DetectGameScreen(Bitmap bmp)
252+ {
253+ var height = bmp.Height;
254+ var width = bmp.Width;
255+ var map = new byte[height, width];
256+ var data = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadOnly,
257+ PixelFormat.Format32bppArgb);
258+ unsafe
259+ {
260+ var ptr = (byte*)data.Scan0;
261+ for (var y = 0; y < data.Height; y++)
262+ {
263+ for (var x = 0; x < data.Width; x++)
264+ {
265+ var p = ptr + y * data.Stride + x * 4;
266+ map[y, x] = (byte)(p[0] == 255 && p[1] == 255 && p[2] == 255 ? 1 : 0);
267+ }
268+ }
269+ }
270+ bmp.UnlockBits(data);
271+ const int corner = 40;
272+ for (var y = 0; y < height; y++)
273+ {
274+ var n = 0;
275+ for (var x = 0; x < width; x++)
276+ {
277+ if ((map[y, x] & 1) == 1)
278+ {
279+ if (++n >= corner)
280+ map[y, x - corner + 1] |= 2;
281+ }
282+ else
283+ {
284+ n = 0;
285+ }
286+ }
287+ }
288+ for (var x = 0; x < width; x++)
289+ {
290+ var n = 0;
291+ for (var y = 0; y < height; y++)
292+ {
293+ if ((map[y, x] & 1) == 1)
294+ {
295+ if (++n >= corner)
296+ map[y - corner + 1, x] |= 4;
297+ }
298+ else
299+ {
300+ n = 0;
301+ }
302+ }
303+ }
304+ var rect = new Rectangle();
305+ var found = false;
306+ for (var y = 0; y < height - corner; y++)
307+ {
308+ for (var x = 0; x < height - corner; x++)
309+ {
310+ if (!(map[y, x] == 7 && map[y + 1, x + 1] == 0))
311+ continue;
312+ rect.X = x + 1;
313+ rect.Y = y + 1;
314+ for (var x1 = rect.X; x1 < width; x1++)
315+ {
316+ if ((map[rect.Y, x1] & 4) == 0)
317+ continue;
318+ rect.Width = x1 - rect.X;
319+ break;
320+ }
321+ if (rect.Width < WidthMin)
322+ continue;
323+ for (var y1 = rect.Y; y1 < height; y1++)
324+ {
325+ if ((map[y1, rect.X] & 2) == 0)
326+ continue;
327+ rect.Height = y1 - rect.Y;
328+ break;
329+ }
330+ if (rect.Height < HeightMin)
331+ continue;
332+ found = true;
333+ break;
334+ }
335+ if (found)
336+ break;
337+ }
338+ return found ? rect : Rectangle.Empty;
339+ }
340+ }
341+}
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/FormMain.ja.resx
@@ -0,0 +1,130 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<root>
3+ <!--
4+ Microsoft ResX Schema
5+
6+ Version 2.0
7+
8+ The primary goals of this format is to allow a simple XML format
9+ that is mostly human readable. The generation and parsing of the
10+ various data types are done through the TypeConverter classes
11+ associated with the data types.
12+
13+ Example:
14+
15+ ... ado.net/XML headers & schema ...
16+ <resheader name="resmimetype">text/microsoft-resx</resheader>
17+ <resheader name="version">2.0</resheader>
18+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+ <value>[base64 mime encoded serialized .NET Framework object]</value>
24+ </data>
25+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+ <comment>This is a comment</comment>
28+ </data>
29+
30+ There are any number of "resheader" rows that contain simple
31+ name/value pairs.
32+
33+ Each data row contains a name, and value. The row also contains a
34+ type or mimetype. Type corresponds to a .NET class that support
35+ text/value conversion through the TypeConverter architecture.
36+ Classes that don't support this are serialized and stored with the
37+ mimetype set.
38+
39+ The mimetype is used for serialized objects, and tells the
40+ ResXResourceReader how to depersist the object. This is currently not
41+ extensible. For a given mimetype the value must be set accordingly:
42+
43+ Note - application/x-microsoft.net.object.binary.base64 is the format
44+ that the ResXResourceWriter will generate, however the reader can
45+ read any of the formats listed below.
46+
47+ mimetype: application/x-microsoft.net.object.binary.base64
48+ value : The object must be serialized with
49+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+ : and then encoded with base64 encoding.
51+
52+ mimetype: application/x-microsoft.net.object.soap.base64
53+ value : The object must be serialized with
54+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+ : and then encoded with base64 encoding.
56+
57+ mimetype: application/x-microsoft.net.object.bytearray.base64
58+ value : The object must be serialized into a byte array
59+ : using a System.ComponentModel.TypeConverter
60+ : and then encoded with base64 encoding.
61+ -->
62+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+ <xsd:element name="root" msdata:IsDataSet="true">
65+ <xsd:complexType>
66+ <xsd:choice maxOccurs="unbounded">
67+ <xsd:element name="metadata">
68+ <xsd:complexType>
69+ <xsd:sequence>
70+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
71+ </xsd:sequence>
72+ <xsd:attribute name="name" use="required" type="xsd:string" />
73+ <xsd:attribute name="type" type="xsd:string" />
74+ <xsd:attribute name="mimetype" type="xsd:string" />
75+ <xsd:attribute ref="xml:space" />
76+ </xsd:complexType>
77+ </xsd:element>
78+ <xsd:element name="assembly">
79+ <xsd:complexType>
80+ <xsd:attribute name="alias" type="xsd:string" />
81+ <xsd:attribute name="name" type="xsd:string" />
82+ </xsd:complexType>
83+ </xsd:element>
84+ <xsd:element name="data">
85+ <xsd:complexType>
86+ <xsd:sequence>
87+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+ </xsd:sequence>
90+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+ <xsd:attribute ref="xml:space" />
94+ </xsd:complexType>
95+ </xsd:element>
96+ <xsd:element name="resheader">
97+ <xsd:complexType>
98+ <xsd:sequence>
99+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+ </xsd:sequence>
101+ <xsd:attribute name="name" type="xsd:string" use="required" />
102+ </xsd:complexType>
103+ </xsd:element>
104+ </xsd:choice>
105+ </xsd:complexType>
106+ </xsd:element>
107+ </xsd:schema>
108+ <resheader name="resmimetype">
109+ <value>text/microsoft-resx</value>
110+ </resheader>
111+ <resheader name="version">
112+ <value>2.0</value>
113+ </resheader>
114+ <resheader name="reader">
115+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+ </resheader>
117+ <resheader name="writer">
118+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+ </resheader>
120+ <data name="buttonCapture.Text" xml:space="preserve">
121+ <value>撮影</value>
122+ </data>
123+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
124+ <data name="checkBoxContinuous.Text" xml:space="preserve">
125+ <value>連射</value>
126+ </data>
127+ <data name="label1.Text" xml:space="preserve">
128+ <value>撮影時刻:</value>
129+ </data>
130+</root>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/FormMain.resx
@@ -0,0 +1,606 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<root>
3+ <!--
4+ Microsoft ResX Schema
5+
6+ Version 2.0
7+
8+ The primary goals of this format is to allow a simple XML format
9+ that is mostly human readable. The generation and parsing of the
10+ various data types are done through the TypeConverter classes
11+ associated with the data types.
12+
13+ Example:
14+
15+ ... ado.net/XML headers & schema ...
16+ <resheader name="resmimetype">text/microsoft-resx</resheader>
17+ <resheader name="version">2.0</resheader>
18+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+ <value>[base64 mime encoded serialized .NET Framework object]</value>
24+ </data>
25+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+ <comment>This is a comment</comment>
28+ </data>
29+
30+ There are any number of "resheader" rows that contain simple
31+ name/value pairs.
32+
33+ Each data row contains a name, and value. The row also contains a
34+ type or mimetype. Type corresponds to a .NET class that support
35+ text/value conversion through the TypeConverter architecture.
36+ Classes that don't support this are serialized and stored with the
37+ mimetype set.
38+
39+ The mimetype is used for serialized objects, and tells the
40+ ResXResourceReader how to depersist the object. This is currently not
41+ extensible. For a given mimetype the value must be set accordingly:
42+
43+ Note - application/x-microsoft.net.object.binary.base64 is the format
44+ that the ResXResourceWriter will generate, however the reader can
45+ read any of the formats listed below.
46+
47+ mimetype: application/x-microsoft.net.object.binary.base64
48+ value : The object must be serialized with
49+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+ : and then encoded with base64 encoding.
51+
52+ mimetype: application/x-microsoft.net.object.soap.base64
53+ value : The object must be serialized with
54+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+ : and then encoded with base64 encoding.
56+
57+ mimetype: application/x-microsoft.net.object.bytearray.base64
58+ value : The object must be serialized into a byte array
59+ : using a System.ComponentModel.TypeConverter
60+ : and then encoded with base64 encoding.
61+ -->
62+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+ <xsd:element name="root" msdata:IsDataSet="true">
65+ <xsd:complexType>
66+ <xsd:choice maxOccurs="unbounded">
67+ <xsd:element name="metadata">
68+ <xsd:complexType>
69+ <xsd:sequence>
70+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
71+ </xsd:sequence>
72+ <xsd:attribute name="name" use="required" type="xsd:string" />
73+ <xsd:attribute name="type" type="xsd:string" />
74+ <xsd:attribute name="mimetype" type="xsd:string" />
75+ <xsd:attribute ref="xml:space" />
76+ </xsd:complexType>
77+ </xsd:element>
78+ <xsd:element name="assembly">
79+ <xsd:complexType>
80+ <xsd:attribute name="alias" type="xsd:string" />
81+ <xsd:attribute name="name" type="xsd:string" />
82+ </xsd:complexType>
83+ </xsd:element>
84+ <xsd:element name="data">
85+ <xsd:complexType>
86+ <xsd:sequence>
87+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+ </xsd:sequence>
90+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+ <xsd:attribute ref="xml:space" />
94+ </xsd:complexType>
95+ </xsd:element>
96+ <xsd:element name="resheader">
97+ <xsd:complexType>
98+ <xsd:sequence>
99+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+ </xsd:sequence>
101+ <xsd:attribute name="name" type="xsd:string" use="required" />
102+ </xsd:complexType>
103+ </xsd:element>
104+ </xsd:choice>
105+ </xsd:complexType>
106+ </xsd:element>
107+ </xsd:schema>
108+ <resheader name="resmimetype">
109+ <value>text/microsoft-resx</value>
110+ </resheader>
111+ <resheader name="version">
112+ <value>2.0</value>
113+ </resheader>
114+ <resheader name="reader">
115+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+ </resheader>
117+ <resheader name="writer">
118+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+ </resheader>
120+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121+ <data name="buttonCapture.Location" type="System.Drawing.Point, System.Drawing">
122+ <value>6, 6</value>
123+ </data>
124+ <data name="buttonCapture.Size" type="System.Drawing.Size, System.Drawing">
125+ <value>74, 50</value>
126+ </data>
127+ <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
128+ <data name="buttonCapture.TabIndex" type="System.Int32, mscorlib">
129+ <value>0</value>
130+ </data>
131+ <data name="buttonCapture.Text" xml:space="preserve">
132+ <value>Capture</value>
133+ </data>
134+ <data name="&gt;&gt;buttonCapture.Name" xml:space="preserve">
135+ <value>buttonCapture</value>
136+ </data>
137+ <data name="&gt;&gt;buttonCapture.Type" xml:space="preserve">
138+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
139+ </data>
140+ <data name="&gt;&gt;buttonCapture.Parent" xml:space="preserve">
141+ <value>$this</value>
142+ </data>
143+ <data name="&gt;&gt;buttonCapture.ZOrder" xml:space="preserve">
144+ <value>5</value>
145+ </data>
146+ <data name="buttonOption.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
147+ <value>
148+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
149+ YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAT7SURBVEhLrZUNUNN1GMfJfKuuuvN6A68yz+qyUy8VvcQr
150+ X863O08i7dJeqMjMfEsrj8xQkMMJp/hCIIwMQePQQBm4IRPYmIO9MTbGcBsMhoNtCAzmGAhj49uz8b9O
151+ Y15mfW7P/X57Xv//5/fyD/onGtvswSpd48c5uXlzGNV/p72jc82yZUun+OZV9S1HSxRmFFXWug8kJIb4
152+ dHpr33Z+vXO2b/6vUd0wHi66JsHx1F8VFzlFO0X1rT1S4yAarB7wKqWFakNLQrsHkJh63cEhLz3NhD04
153+ mXlXz5bWWCAzOFCld6C6sR8HYuOcZJqguQWorEAXgPgTKT7dg2FyjTxXrrLY/iip3HhFKN8k1NohMTih
154+ agcaHSSd3TD3u2H1AgYXYKECPHHVzXJpDctqtR9NOZU+k0kVkEnFIk2zWOdAqawVNaZBKG96obcDzT1A
155+ UXk1uMIqL08kQ127HS1uj79AL0mH1wuqiSplXRPlmTiabiyPXeTXNkuMA2igFmioBcY+QNvejYgN6/Of
156+ eSHYv5jL133w/PpPor4vU+lcFvcwuimxjYReCF/u3N1KLvct4CePK6ppGgBk1GCBrg1hixelM6Z7yBfV
157+ LjqWxxusH7gDcodAobwTunDxPMYckHHFIsmu0qbe2+I7tIgjwOHTWRbSTxo1j2XeyojDJV0DMFGBSqsN
158+ 7PMFW0g9edT6NwR6W6PM6YGKnGNiD0Hi7MeHX3yVxJgDErUvcS3PRrsrgYXqoSH0U2y+VKZjzPeSwb1u
159+ rO7pRRM5yTSaYLnThcitO+MZc0Auqc17rna6IFbIghsozkwSdyY78LaNjj/y5OzQRZvTyq67O8ixkYT1
160+ y28axhwQQb2JLaPd5GuRsKcHc5csTya1/5TfF/YVvlRJAbU+6XJiXmiYr69jyL7e8Kquw2bnOYGSYSBd
161+ pBhcu2TBs4w5II+UKNQ3fNtOT6ImqSeRmtpxkp19KPfC5b+CCxX6t1osrVZumxdZ5Px7kxf5tK2jE9P5
162+ OZcr1AeT0jIY13tZsDL8W2l3L0oNRsiHBiGhAiKSukGgos4wcKn6RhdPqXdKzQ7kUnW2HMiUu5CptIHF
163+ ESOlQAiJ1oIf4lNMrJSs988XVequSA3vMun9THx9ftg3NK6Iyy3RlLmBXGrwOZIM6tmP8clI5HUhrYpa
164+ IhhGvsSOVGEz8vjVUBpMMNtd/vuJDj7UrZ2eYdrqcq2xMzmHO3U0/V1c0A1pC6lf2fSkKWIgqQy4xJeE
165+ sQrakMTpQDKnGRnXbEiv0EJtdY7cpqQGWx+i9sSKE9OzDPTXT3jkDiGlGz+a9S7Ct8VlsopbER4VbZ45
166+ e9bpzw/mOE5UAJtZHMwNnV+wKuKjC6u2pnq+3p+mvXnbNeykp53x2hvfMeFBCSdOieykO3SSvY9RjSU4
167+ 5MXVNPhfL2JTZMy2YwIsXLXJd6H5GT95UhSn8DKflggaRz8+3b7vZ8YUtD3maGwDfS/o530vPOIzRn1/
168+ 3lm29KmXX5keSdMFoxpK8hNrfi5XDN+T0m2OCpPFFM/mGBLOFJvkXbBIaUEa6KKK3BXDZUL+PbuPnKUe
169+ P3qQ6/so3XJDYO4fEZoHILUMYcv+49rHp765e0rItBmM+8MxbebbT6QWq1Co82DHkWywzpUjr6YDoas3
170+ Bj4PD8G4dVF7eSsi9/ZNCJk1Z/riDdFrNsdixpyFAW+B/4txzEgEBf0JM4FqPfWy8mUAAAAASUVORK5C
171+ YII=
172+</value>
173+ </data>
174+ <data name="buttonOption.Location" type="System.Drawing.Point, System.Drawing">
175+ <value>122, 6</value>
176+ </data>
177+ <data name="buttonOption.Size" type="System.Drawing.Size, System.Drawing">
178+ <value>30, 30</value>
179+ </data>
180+ <data name="buttonOption.TabIndex" type="System.Int32, mscorlib">
181+ <value>1</value>
182+ </data>
183+ <data name="&gt;&gt;buttonOption.Name" xml:space="preserve">
184+ <value>buttonOption</value>
185+ </data>
186+ <data name="&gt;&gt;buttonOption.Type" xml:space="preserve">
187+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
188+ </data>
189+ <data name="&gt;&gt;buttonOption.Parent" xml:space="preserve">
190+ <value>$this</value>
191+ </data>
192+ <data name="&gt;&gt;buttonOption.ZOrder" xml:space="preserve">
193+ <value>4</value>
194+ </data>
195+ <data name="buttonBrowse.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
196+ <value>
197+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
198+ YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAgSSURBVFhHvZZ5UJT3Gcft3ek5baedzDSd/FNnMs60mUyS
199+ aZtJk0xbayaJUTRRkaIRFK9G44HxAAVFQEWsyqEoAgqiIIvch4ugHGsRWO5jYQ8Wlj1Ydhf2Znf59vsC
200+ NsmEGsJ08sx8Z9/3/c0+z+f3PL/ned9FT8ypvb/EoS29YxtJPmbVRP2JemZ26esxh7Yk32spg1NbBZv+
201+ HlymAtgN6ZN2fXK7beRcrnU4KoYKoV6ifjn7t/+fOUbEgL0CXksJnDoxNL1ZsOp5baqEy1wBl6UCTjPv
202+ jbdh16fCNnLePjEU3TQxFJVGRVIfUi9RP511+dVsBqASU/prmHJWw6mvgbwpiTqB8eFLsOtuMHge3BYx
203+ vLYm+Bxd8Dp74XFIMTlRS9AiOAxpsGrOghBJs27nb3bNvf8CwFmKKbcU7rEGKJsvQ1odBm3vBTj01+Ec
204+ vQWXADJWgElmxDNRB6+jEz6XkhqkFJhQR2HW7fzNPlz5GYBCwP0Q8OngtXZAJU1BKyEULXGwDKXCZciG
205+ azQXboK4jPn8LSBQMdxmMQEGMD64AADbUMXnAaYh6oGpSQhrkpK96K6PnIbQy5J5BpgNgjj1t+A25PCa
206+ QKZ78Np7MK46uRCAsi8COIsBeAhQhuqcrZCKD0PWGA11ezy0fYmwqFLhGOHZ0FK6m8xGMQE6+XwBAFZ1
207+ 6f8A8EJYK7++CZLiPeiui4BCegYjXRcwKkuCWXEZds01OLTpBCjBpFUKi3IBABODJXMAFLEE4xDWStMC
208+ 8VC0A633j2CAWdB0nIO+7wJMA4ms+SU4NKlwjxYToJlQCwFQcbdzAXh5qrlWlLoe93NC0Fx5ADLJcajb
209+ TkPXfQ7G/vOwKBJhH05hhxSyJRthkkd/dYBxJQPOBeDphrBWeHUdqrKD8bhsH3rqjkEtjWEZ4mDsi4dZ
210+ fh42dRI7o4it+ZBZWQCARVEwN8BkO3dYgMKUNai6GYTGkt3oqQ3jfIhiGWJh6D0NU/9Z2AbPsyM4H0xi
211+ jMkWAGCW538RwFHAgcSacq0g5QOIszbiUdFH6HpwEMrHkdC0nYS+OwZjfbGwquJg12byIJYyKzELABgQ
212+ fR7AkY8pWx6mHA8grN29tBqVWRsgKdqOzppQKP4djiFpBHSdJ2DsOY4JRQy7IY3zIA/G3gUAmPrzZgB0
213+ qZiyixg8F1MTt+GzlTLFeQRYhcrMADQUbkNH9T7IHx2CuiUc2vZwGLrCMS4/DuvgRTh02RjtWQDAmCwX
214+ sFXAp72CKWsOfBM34bPcgG9cxJrmIj95BSqu+6MhfzPaq3ajXxIKVdNhaFoPQt95COP9YcxCFOyckKPd
215+ pwSA7854nqcZ+3IYuBS+kUsMmgWfOQPesavwmrJZ0xyIkpajIn0t6vOD0SbeCVn9Higb92O4ZT907Xth
216+ 6TsAi+wg2zGVJYlHXdG+n9PtN2a8z8NG+24x5YXwaRLhNacxeAo8o5cwaUiCsCZKfAfl6e+j/s5GtFZs
217+ R1/tLp6Dj6Fu2gWt9COYe3bD3PsxLPIIds1Fno+TV66cDRAgvkV9OchobzZTLoJ3+AI8xsvwGBIwqTsH
218+ 53A8BvlKzkt4G2Xpq1GbFwhpxWb0PtgBecNOqBt3QNO8FaaubTB1b4ep558w9+3hLDiHAUlkGF3/gBLK
219+ 8XQQQ08W050Dz2A8PPoLmNSehVtzii2WhjrRLogS3kJ5mh/q89YTIAg9NSEE2ArVoy3QPN4EY3sQxjqC
220+ GPwAfB4zAeLRW3vsPF3/jPox9XQQfXcmvMYseFRnGDyOwWPgGjrBPs/EzdNvEGAZKjNWokHkD2n5RnRX
221+ B2GgNgiqhg9haN0AY1sAjK0BzMAeTHkd7Jw4tFaFCV9Gv6Z+RQnl+Ak1N4iu6zrTno5JZQzcw9FwqSPh
222+ Uh2F8Dzr9J9ZgqW4d30FJHfXobXsH+iq2oD+hxswKGFg6TqMSj+AgRrr3kkAO0yy0xzbB1Po+rfUc9Rn
223+ QYSMfJ/6NjVjus4M1vwKJuUn4BqMgFMVBqfiEAdNBm7G/XUWYDke5a8lgD8B1kNWsx6qurUwtKyGoXkl
224+ tQLGzi3TAGOyWNQXhF6j699Rz1NPQITPfeHD9XvUN6kZ07aniq2Kf8EtPwan8jCDfwKHPBTajnRm4A0C
225+ LIP4xmo8uhvALghEpzgAvdVroax7fzqwoXk59S4BgmcAOA0f5O3PoOtXqBcpAUSAELIg7P7T4IKNtKe9
226+ pu1IhV1+FE75ATgG9k2Lz5F15i+4k/A3VM6WQFo+U4K+mkAo69cx9X7QM7i+6R2+pDYhU6LmLIhG1e29
227+ mXT9GvVHSoAQMvBDau5uGGlLDTV0JswG3zstPkP6yRXuOwnrOYqDISncAmllEDrE/uipXgdFHWvfsmIG
228+ oIUAjf6IvV1NgCiUZe4SMvAmJQAIZRDq/2nd5zJN29WLJs7yJwC8R/CyZ6MjQv6QkB67Jqc8Y2ejJP+A
229+ o7UynG/FTxhwN9O+iVlgGaTvQcdyaJtDMNIci6WvL1lJl0IJFlO/oITT//ShpGm98gyFib4jMwC8Dl72
230+ m+ityxfv3bbq9/4hq15eutnvlVdFySF+XVWREcqGmPKhxlM2Xesp6NuPcCaEIi9lW8zfX1+ylO6WUM9S
231+ P6KEtpufDUtTAkfa+JnVvx+qx8nO4LeeCw957/mtIX4vvrvZ72VhN8IhemLCjr5Tkxv6ZmPxkX1nj655
232+ lfdPWk7o+y/f9VxGiJjRzjN4XHIiO/jtxRsJ8AIfC86+PhtquRzIH+HQCD07/xTO2xYt+g++n2HeZ8zW
233+ RQAAAABJRU5ErkJggg==
234+</value>
235+ </data>
236+ <data name="buttonBrowse.Location" type="System.Drawing.Point, System.Drawing">
237+ <value>86, 6</value>
238+ </data>
239+ <data name="buttonBrowse.Size" type="System.Drawing.Size, System.Drawing">
240+ <value>30, 30</value>
241+ </data>
242+ <data name="buttonBrowse.TabIndex" type="System.Int32, mscorlib">
243+ <value>17</value>
244+ </data>
245+ <data name="&gt;&gt;buttonBrowse.Name" xml:space="preserve">
246+ <value>buttonBrowse</value>
247+ </data>
248+ <data name="&gt;&gt;buttonBrowse.Type" xml:space="preserve">
249+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
250+ </data>
251+ <data name="&gt;&gt;buttonBrowse.Parent" xml:space="preserve">
252+ <value>$this</value>
253+ </data>
254+ <data name="&gt;&gt;buttonBrowse.ZOrder" xml:space="preserve">
255+ <value>3</value>
256+ </data>
257+ <data name="labelTimeStamp.Location" type="System.Drawing.Point, System.Drawing">
258+ <value>87, 65</value>
259+ </data>
260+ <data name="labelTimeStamp.Size" type="System.Drawing.Size, System.Drawing">
261+ <value>65, 12</value>
262+ </data>
263+ <data name="labelTimeStamp.TabIndex" type="System.Int32, mscorlib">
264+ <value>18</value>
265+ </data>
266+ <data name="labelTimeStamp.Text" xml:space="preserve">
267+ <value>00:00:00.000</value>
268+ </data>
269+ <data name="&gt;&gt;labelTimeStamp.Name" xml:space="preserve">
270+ <value>labelTimeStamp</value>
271+ </data>
272+ <data name="&gt;&gt;labelTimeStamp.Type" xml:space="preserve">
273+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
274+ </data>
275+ <data name="&gt;&gt;labelTimeStamp.Parent" xml:space="preserve">
276+ <value>$this</value>
277+ </data>
278+ <data name="&gt;&gt;labelTimeStamp.ZOrder" xml:space="preserve">
279+ <value>2</value>
280+ </data>
281+ <data name="checkBoxContinuous.AutoSize" type="System.Boolean, mscorlib">
282+ <value>True</value>
283+ </data>
284+ <data name="checkBoxContinuous.Location" type="System.Drawing.Point, System.Drawing">
285+ <value>7, 61</value>
286+ </data>
287+ <data name="checkBoxContinuous.Size" type="System.Drawing.Size, System.Drawing">
288+ <value>81, 16</value>
289+ </data>
290+ <data name="checkBoxContinuous.TabIndex" type="System.Int32, mscorlib">
291+ <value>19</value>
292+ </data>
293+ <data name="checkBoxContinuous.Text" xml:space="preserve">
294+ <value>Continuous</value>
295+ </data>
296+ <data name="&gt;&gt;checkBoxContinuous.Name" xml:space="preserve">
297+ <value>checkBoxContinuous</value>
298+ </data>
299+ <data name="&gt;&gt;checkBoxContinuous.Type" xml:space="preserve">
300+ <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
301+ </data>
302+ <data name="&gt;&gt;checkBoxContinuous.Parent" xml:space="preserve">
303+ <value>$this</value>
304+ </data>
305+ <data name="&gt;&gt;checkBoxContinuous.ZOrder" xml:space="preserve">
306+ <value>1</value>
307+ </data>
308+ <data name="label1.AutoSize" type="System.Boolean, mscorlib">
309+ <value>True</value>
310+ </data>
311+ <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
312+ <value>87, 51</value>
313+ </data>
314+ <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
315+ <value>57, 12</value>
316+ </data>
317+ <data name="label1.TabIndex" type="System.Int32, mscorlib">
318+ <value>20</value>
319+ </data>
320+ <data name="label1.Text" xml:space="preserve">
321+ <value>Last snap:</value>
322+ </data>
323+ <data name="&gt;&gt;label1.Name" xml:space="preserve">
324+ <value>label1</value>
325+ </data>
326+ <data name="&gt;&gt;label1.Type" xml:space="preserve">
327+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
328+ </data>
329+ <data name="&gt;&gt;label1.Parent" xml:space="preserve">
330+ <value>$this</value>
331+ </data>
332+ <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
333+ <value>0</value>
334+ </data>
335+ <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
336+ <value>True</value>
337+ </metadata>
338+ <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
339+ <value>6, 12</value>
340+ </data>
341+ <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
342+ <value>158, 82</value>
343+ </data>
344+ <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
345+ <value>
346+ AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA
347+ AAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
348+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOZf/GzyW/yI8lv8iPJb/IjyW
349+ /yI8lv8iPJb/IjyW/yI8lv8iPJb/IjyW/yI8lv8iPJb/Ij6V/x0AAAAATJ3+r16p/uZbp/7nUaH+50ed
350+ /ec9l/3nO5b95zuW/ec7lv3nO5b95zuW/ec7lv3nO5b95zuW/ec7lv3mPJb8uFem/uKn0P7/j8P+/3i2
351+ /v9gqv3/SJ39/zuW/f88lv3/h7/+/9Ln///l8f//yeL+/3K0/v87lv3/O5b9/zuW/eRapv7jr9T+/5fH
352+ /v9/u/7/aK79/1Ch/f88lv3/wN3+//j7//+p0f7/jMH+/7fY/v/9/v//ncr+/zuW/f87lv3kW6f+47bY
353+ /v+fy/7/h7/+/2+y/v9Ypf3/jcL+//f7//9eqf3/O5b9/zuW/f87lv3/erj+//3+//9orv3/O5b95F2p
354+ /uO+3P7/ps/+/4/D/v93tv7/X6n9/9rr//+kzv7/O5b9/zuW/f87lv3/O5b9/zuW/f/I4f7/tNf+/zuW
355+ /eReqf7jxuD+/67U/v+Wx/7/f7r+/2eu/f/u9v//hr7+/zuW/f87lv3/O5b9/zuW/f87lv3/qtH+/8ji
356+ /v87lv3kYar+483k/v+22P7/nsv+/4a+/v9vsv7/2ev//67T/v87lv3/O5b9/zuW/f87lv3/O5b9/9Hm
357+ //+v1P7/O5b95GKr/uPV6P//vdz+/6bP/v+Owv7/drb+/5XG/v/8/f//b7L+/zuW/f87lv3/O5b9/5DD
358+ /v/6/f//Xqn9/zuW/eRkrP7j3O3//8Xg/v+hzP7/e7j+/4rB/v9prv3/s9b+//3+//++3P7/pM7+/83k
359+ /v/7/f//isD+/zuW/f87lv3kY6z+4uTx///M5P7/qdH+/4S9/v+Txf7/brL9/1al/f90tf7/vtz+/8/l
360+ //+01/7/X6n9/zuW/f87lv3/OpX95FSk/Zdiq/7jUqL+7U2f/e9Knv3vRZz970Oa/e9Dmv3kPpj94zqV
361+ /eM6lf3jOpX94zqV/eM6lf3jPJf94zuX/aAAAAAAAAAAADyX/qs7lv3/O5b9/zuW/f87lv3TAAAAAAAA
362+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6mf8jO5b+zzuW/sc7lvzEOpb8SwAA
363+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
364+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAgAEAAAAAAAAAAAAAAAAAAAAA
365+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwf8AAMH/AAD//wAAKAAAACAAAABAAAAAAQAgAAAA
366+ AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
367+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
368+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
369+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
370+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
371+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
372+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOJX/KTyW
373+ +0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW
374+ +0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEOZP/LQAAAAMAAAAAPZL/FT2X
375+ /MU7lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
376+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/PJX90jqU
377+ /x88l/2lRJr9+4i//f+Ow/7/hL3+/3q4/v9ws/7/Zq39/1un/f9Rov3/Rpz9/z2X/f87lv3/O5b9/zuW
378+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
379+ /P87lv37O5b+vT2Y/e97uP3/q9L+/5/M/v+Txf7/h7/+/3y5/v9wsv7/ZKz9/1im/f9Mn/3/QJn9/zuW
380+ /f87lv3/O5b9/zuW/f87lv3/VKP9/5LF/v+93P7/0eb//8ni/v+y1v7/fLn+/0Oa/f87lv3/O5b9/zuW
381+ /f87lv3/O5b9/zuW/f87l/38O5b9/Ya+/f+v1P7/o87+/5fH/v+Lwf7/f7v+/3S0/v9orv3/XKj9/1Ch
382+ /f9Em/3/O5b9/zuW/f87lv3/SZ39/7HV/v/8/f//////////////////////////////////7PX//4a+
383+ /v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv39iL/9/7PW/v+n0P7/m8n+/4/D/v+Dvf7/d7b+/2yw
384+ /f9gqv3/VKP9/0id/f88l/3/O5b9/1im/f/j8P//////////////////8vj//9vs///f7v//+/3/////
385+ /////////////7bY/v8+mP3/O5b9/zuW/f87lv3/O5b9/zuW/f2Kwf3/ttj+/6vS/v+fy/7/k8X+/4e/
386+ /v97uP7/b7L+/2Ss/f9Ypf3/TJ/9/0CZ/f9Knv3/5PH/////////////0+j//26x/v89l/3/O5b9/zuW
387+ /f9Hnf3/j8P+//D3/////////////6vS/v87lv3/O5b9/zuW/f87lv3/O5b9/YzC/f+62v7/rtT+/6PN
388+ /v+Xx/7/i8H+/3+6/v9ztP7/Z679/1yn/f9Qof3/RJv9/7fY/v///////////7HV/v8+mP3/O5b9/zuW
389+ /f87lv3/O5b9/zuW/f87lv3/VKP9/+Pw/////////////2+y/v87lv3/O5b9/zuW/f87lv39j8T9/77c
390+ /v+y1v7/ptD+/5vJ/v+Pw/7/g73+/3e2/v9rsP3/X6r9/1Sj/f9krP3//f7////////P5f//PZf9/zuW
391+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/W6f9//r8////////1ej//zuW/f87lv3/O5b9/zuW
392+ /f2Rxf3/wt7+/7bY/v+q0v7/nsv+/5PF/v+Hv/7/e7j+/2+y/v9jrP3/V6X9/6PO/v///////////2et
393+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/rtP+////////////VKP9/zuW
394+ /f87lv3/O5b9/ZTG/v/G4P7/utr+/67U/v+izf7/lsf+/4vB/v9/uv7/c7T+/2eu/f9bp/3/zeT+////
395+ ///r9P//PJb9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9usf7/////////
396+ //+CvP7/O5b9/zuW/f87lv39lcf+/8ri/v++3P7/stb+/6bP/v+ayf7/jsP+/4O8/v93tv7/a7D9/1+p
397+ /f/f7v///////9Dl//87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/1Gi
398+ /f///////////5XG/v87lv3/O5b9/zuW/f2YyP7/zeT+/8Le/v+22P7/qtH+/57L/v+Sxf7/hr7+/3u4
399+ /v9vsv7/Y6v9/93t////////0+j//zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
400+ /f87lv3/VaT9////////////kcT+/zuW/f87lv3/O5b9/ZrJ/v/R5v//xeD+/7ra/v+u0/7/os3+/5bH
401+ /v+KwP7/frr+/3O0/v9nrf3/y+P+///////z+f//P5j9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
402+ /f87lv3/O5b9/zuW/f95t/7///////////96uP7/O5b9/zuW/f87lv39nMv+/9Xp///J4v7/vdz+/7LV
403+ /v+mz/7/msn+/47C/v+CvP7/drb+/2uv/f+izf7///////////98uf7/O5b9/zuW/f87lv3/O5b9/zuW
404+ /f87lv3/O5b9/zuW/f87lv3/O5b9/8Le/v///////P3//0md/f87lv3/O5b9/zuW/f2fzP7/2ev//83k
405+ /v/B3v7/tdj+/6rR/v+ey/7/ksX+/4a+/v96uP7/brL+/3Cy/f/3+////////+Xx//9Inf3/O5b9/zuW
406+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f92tv7////////////A3f7/O5b9/zuW/f87lv3/O5b9/aHN
407+ /v/d7f//0eb//8Xg/v+52v7/rdP+/6LN/v+Wx/7/isD+/366/v9ytP7/Zq39/63T/v///////////9To
408+ //9Nn/3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/c7T+//X6////////+v3//1qm/f87lv3/O5b9/zuW
409+ /f87lv39o87+/+Hv///V6P//yeL+/73c/v+x1f7/lsf+/2Kr/v9gqv7/Xaj+/1qn/v9VpP3/XKj9/9Dm
410+ /v////////////L4//+cyv7/X6n9/0Ob/f9Mn/3/cbP+/7zb/v/+//////////////+Gvv7/O5b9/zuW
411+ /f87lv3/O5b9/zuW/f2lz/7/5PH//9jq///N5P7/wd7+/7XX/v+Lwf3/f7r+/+Xx///l8f//5fH//3i2
412+ /v9Ypvz/Xan9/8bg/v/////////////////////////////////////////////////8/f//jsL+/zuW
413+ /f87lv3/O5b9/zuW/f87lv3/O5b9/ajQ/v/o8///3Oz//9Dm///F4P7/udn+/47C/f90tf7/y+P+/8vj
414+ /v/L4/7/brH+/1uo/P9ap/3/T6H9/4jA/v/m8f/////////////////////////////+////xuH+/16p
415+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f8/mf3lkMP+/+z1///g7v//1Oj//8ji/v+92/7/os3+/2uw
416+ /v9nrv7/ZKz+/2Cq/v9ap/7/Zaz9/16p/f9Sov3/Rpz9/zyW/f9krP3/j8P+/6DM/v+cyv7/g73+/0+h
417+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/PJb9+DuV/YI+l/39ksT+/6vT/v+kzv7/nMr9/5TG
418+ /f+Nwf3/hb39/325/f91tf3/bbH9/2Ws/f9dqP3/VaT9/02f/f9Fm/3/PZf9/zuW/f87lv3/O5b9/zuW
419+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/fw6lf2aAAAABTuV/Yc+mP3vO5b9/zuW
420+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
421+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3zOpb9ljOZ/woAAAAAAAAAAAAA
422+ AABAj/8QPZX8ZTuV/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3+PJf+yTyW/xE8lv8RPJb/ETyW
423+ /xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/EQAAAAAAAAAAAAAAAAAA
424+ AAAAAAAAAAAAAAAAAAAAAAAFPJb96juW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/fo8lfxNAAAAAAAA
425+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
426+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lv16O5f9+TqX/vk7lf34O5b99juW/PY7lfz4O5b94QAA
427+ AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
428+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaU/xM7l/2OOpb9iDuW/YE8lv13O5X9dDyW
429+ /WY7lv84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
430+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
431+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
432+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
433+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
434+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////AAAADAAAAAAAA
435+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
436+ AAAAAAAAAAAAAAAAAAAAAAAAgAAAAOAAAAf4A///+Af///gH/////////////ygAAAAwAAAAYAAAAAEA
437+ IAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
438+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
439+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
440+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
441+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
442+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
443+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
444+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
445+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
446+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
447+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
448+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
449+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
450+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
451+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
452+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
453+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM6lf8wPJX8XjyW/WY8lv1mPJb9ZjyW
454+ /WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW
455+ /WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW
456+ /WY8lv1mPJb9ZjyW/WY8lv1mPJf8YjyU/zcAAAAHAAAAAAAAAAAAAAAAOpf/LDuW/cw7lv3/O5b9/zuW
457+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
458+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
459+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3dPZb/PwAAAAA6l/8WO5b96juW
460+ /f9Bmv3/WKX+/1mm/v9Xpf7/VKT+/1Ki/v9Pof7/TJ/+/0qe/f9Hnf3/RJv9/0Ka/f8/mP3/PZf9/zuW
461+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
462+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9+DuU
463+ /ys7lf2YO5b9/1Oj/f+izf7/os3+/5rJ/v+Sxf7/isD+/4K8/v96uP7/c7T+/2uw/f9jq/3/W6f9/1Oj
464+ /f9Ln/3/Q5r9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
465+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
466+ /f87lv3/O5b9/zuW/rs8lv3WO5b9/5PG/f+s0/7/pM7+/5zK/v+Vxv7/jcL+/4W+/v99uf7/dbX+/22x
467+ /v9lrf3/Xaj9/1ak/f9OoP3/Rpz9/z6Y/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
468+ /f9Nn/3/hr7+/6DM/v+11/7/u9v+/6rS/v+Wx/7/aK79/z2X/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
469+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/fU7lv35O5b9/6jR/v+v1P7/p9D+/5/M/v+Xx/7/j8P+/4e/
470+ /v9/u/7/eLb+/3Cy/v9orv3/YKr9/1im/f9Qof3/SJ39/0CZ/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
471+ /f87lv3/eLf+/9Ln///9/v///////////////////////////////////////+32//+mz/7/Sp79/zuW
472+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/6vS/v+x1f7/qdH+/6LN
473+ /v+ayf7/ksX+/4rA/v+CvP7/erj+/3K0/v9qr/3/Yqv9/1un/f9To/3/S579/0Oa/f87lv3/O5b9/zuW
474+ /f87lv3/O5b9/1mm/f/Q5v//////////////////////////////////////////////////////////
475+ ////////8/j//5DD/v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/67T
476+ /v+01/7/rNP+/6TO/v+cyv7/lMb+/4zC/v+Fvf7/fbn+/3W1/v9tsf7/Za39/12o/f9VpP3/TaD9/0Wc
477+ /f8+l/3/O5b9/zuW/f87lv3/cbP+//P4////////////////////////////////////////////////
478+ //////////////////////////////////+82/7/Q5r9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
479+ /f87lv36O5b9/6/U/v+22P7/r9T+/6fQ/v+fy/7/l8f+/4/D/v+Hv/7/f7v+/3e2/v9vsv7/aK79/2Cq
480+ /f9Ypf3/UKH9/0id/f9Amf3/O5b9/zuW/f91tf7//f7////////////////////////y+P//ttj+/4G7
481+ /v9pr/3/Y6v9/3W1/v+ayf7/2er/////////////////////////////yuP+/z6Y/f87lv3/O5b9/zuW
482+ /f87lv3/O5b9/zuW/f87lv36O5b9/7LW/v+52v7/sdX+/6nR/v+hzf7/mcn+/5LE/v+KwP7/grz+/3q4
483+ /v9ys/7/aq/9/2Kr/f9ap/3/UqP9/0ue/f9Dmv3/O5b9/1un/f/0+f//////////////////+/3//6HN
484+ /v9GnP3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/3Cy/v/d7f///////////////////////6rR
485+ /v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7TX/v+82/7/tNf+/6zS/v+kzv7/nMr+/5TG
486+ /v+Mwv7/hL3+/3y5/v91tf7/bbH+/2Ws/f9dqP3/VaT9/02g/f9Fm/3/Ppf9/9jq////////////////
487+ ///x+P//bLD9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9Dm/3/wN3+////
488+ //////////////////9usv7/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7bY/v++3P7/ttj+/67U
489+ /v+m0P7/n8v+/5fH/v+Pw/7/h7/+/3+6/v93tv7/b7L+/2eu/f9fqv3/WKX9/1Ch/f9Inf3/g73+////
490+ //////////////v9//9ssP3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
491+ /f87lv3/Ppj9/8vj/v/////////////////a6///PZf9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7nZ
492+ /v/B3v7/udn+/7HV/v+p0f7/oc3+/5nI/v+RxP7/icD+/4K8/v96uP7/crP+/2qv/f9iq/3/Wqf9/1Ki
493+ /f9Knv3/3u7//////////////////5rJ/v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
494+ /f87lv3/O5b9/zuW/f87lv3/O5b9/0uf/f/z+f//////////////////dLT+/zuW/f87lv3/O5b9/zuW
495+ /f87lv36O5b9/7va/v/D3/7/u9v+/7PX/v+s0v7/pM7+/5zK/v+Uxv7/jMH+/4S9/v98uf7/dLX+/2yw
496+ /v9lrP3/Xaj9/1Wk/f9nrv3/////////////////7PX//0Oa/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
497+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f+ayf7/////////////////stb+/zuW
498+ /f87lv3/O5b9/zuW/f87lv36O5b9/77c/v/G4P7/vtz+/7bY/v+u1P7/ps/+/57L/v+Wx/7/j8P+/4e/
499+ /v9/uv7/d7b+/2+y/v9nrv3/X6n9/1el/f+ey/7/////////////////qtH+/zuW/f87lv3/O5b9/zuW
500+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9Qof3//v//////
501+ ////////7fb//zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7/d///I4v7/wN3+/7nZ/v+x1f7/qdH+/6HN
502+ /v+ZyP7/kcT+/4nA/v+BvP7/ebf+/3Kz/v9qr/3/Yqv9/1qn/f+62v7/////////////////crP+/zuW
503+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
504+ /f87lv3/3Oz//////////////////0id/f87lv3/O5b9/zuW/f87lv36O5b9/8Le///L4/7/w9/+/7vb
505+ /v+z1v7/q9L+/6PO/v+cyv7/lMX+/4zB/v+Evf7/fLn+/3S1/v9ssP7/ZKz9/1yo/f/M5P7/////////
506+ ////////Wqb9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
507+ /f87lv3/O5b9/zuW/f87lv3/w9/+/////////////////1un/f87lv3/O5b9/zuW/f87lv36O5b9/8Tf
508+ ///N5P7/xuD+/77c/v+22P7/rtT+/6bP/v+ey/7/lsf+/47D/v+Gvv7/f7r+/3e2/v9vsv7/Z679/1+p
509+ /f/V6f//////////////////UKH9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
510+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/uNn+/////////////////2at/f87lv3/O5b9/zuW
511+ /f87lv36O5b9/8bg///Q5v//yOL+/8Dd/v+42f7/sNX+/6nR/v+hzP7/mcj+/5HE/v+JwP7/gbz+/3m3
512+ /v9xs/7/aa/9/2Kr/f/J4v7/////////////////YKr9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
513+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/yuP+/////////////////1Sk
514+ /f87lv3/O5b9/zuW/f87lv36O5b9/8jh///T5///y+P+/8Pf/v+72v7/s9b+/6vS/v+jzv7/m8r+/5PF
515+ /v+Mwf7/hL3+/3y5/v90tP7/bLD9/2Ss/f+52f7/////////////////hL3+/zuW/f87lv3/O5b9/zuW
516+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f88lv3/6/T/////
517+ /////////v///0GZ/f87lv3/O5b9/zuW/f87lv36O5b9/8vj///V6f//zeT+/8Xg/v+93P7/ttj+/67T
518+ /v+mz/7/nsv+/5bH/v+Ow/7/hr7+/366/v92tv7/b7L+/2et/f+Xx/7/////////////////wd3+/zuW
519+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
520+ /f9lrP3/////////////////2uv//zuW/f87lv3/O5b9/zuW/f87lv36O5b9/87k///Y6v//0Ob//8jh
521+ /v/A3f7/uNn+/7DV/v+o0f7/oMz+/5nI/v+RxP7/icD+/4G7/v95t/7/cbP+/2mv/f9qsP3/+/3/////
522+ ////////+/3//1el/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
523+ /f87lv3/O5b9/zuW/f+93P7/////////////////ncv+/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/8/m
524+ ///a6///0uf//8rj/v/D3/7/u9r+/7PW/v+r0v7/o87+/5vJ/v+Txf7/i8H+/4O9/v98uf7/dLT+/2yw
525+ /f9krP3/zOT+/////////////////8Xg/v88lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
526+ /f87lv3/O5b9/zuW/f87lv3/O5b9/22x/v/+///////////////9/v//Wqb9/zuW/f87lv3/O5b9/zuW
527+ /f87lv36O5b9/9Ln///d7f//1ej//83k/v/F4P7/vdz+/7XY/v+t0/7/ps/+/57L/v+Wx/7/jsL+/4a+
528+ /v9+uv7/drb+/26x/v9mrf3/e7j9//3+//////////////////+gzP7/O5b9/zuW/f87lv3/O5b9/zuW
529+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/VaT9/+/2//////////////////+01/7/O5b9/zuW
530+ /f87lv3/O5b9/zuW/f87lv36O5b9/9Tn///f7v//1+r//9Dm///I4f7/wN3+/7jZ/v+w1f7/qND+/6DM
531+ /v+YyP7/kMT+/4nA/v+Bu/7/ebf+/3Gz/v9pr/3/Yar9/7zb/v//////////////////////rdP+/z+Y
532+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9orv3/7fb///////////////////P5
533+ //9Rov3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/9bp///i7///2uv//9Ln///K4/7/wt7+/7ra
534+ /v+z1v7/q9L+/5bH/v9prv7/ZKz+/2Cq/v9cqP7/WKb+/1Wk/v9Rov3/VaX9/2Kr/f/b7P//////////
535+ /////////////+Lv//9+uv7/QJn9/zuW/f87lv3/O5b9/zuW/f87lv3/Wab9/7TX/v/9/v//////////
536+ /////////f7//3S0/v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/9jq///k8f//3O3//9Xo
537+ ///N5P7/xeD+/73c/v+11/7/rdP+/3q4/f9Cmf3/bLD+/2yw/v9rsP7/a7D+/2uw/v9Ypv3/RZv9/16p
538+ /f9nrv3/5fH/////////////////////////////9fr//8Xg/v+v1P7/qND+/7na/v/f7v//////////
539+ ///////////////////9/v//jcL+/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/9vr
540+ ///n8v//3+7//9fq///P5f//x+H+/7/d/v+42f7/sNX+/3u4/f9Uo/3/////////////////////////
541+ //+y1v7/Rpv9/2Gq/f9Zpv3/W6f9/8ni/v//////////////////////////////////////////////
542+ //////////////////////////////b6//94t/7/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
543+ /f87lv36O5b9/93t///p8///4u///9rr///S5///yuP+/8Le/v+62v7/stb+/3y6/f9Uo/3/////////
544+ //////////////////+y1v7/Rpv9/2Os/f9bp/3/VKP9/0+h/f+Sxf7/7fb/////////////////////
545+ ///////////////////////////////////+////vdz+/1ak/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
546+ /f87lv3/O5b9/zuW/f87lv3xO5b9/9rr///s9f//5PH//9zs///U6P//zOT+/8Xg/v+92/7/tdf+/3+7
547+ /f8+mP3/UqL9/1Ki/f9Sov3/UaL9/1Gi/f9Inv3/RZv9/2at/f9eqf3/VqX9/06g/f9GnP3/R539/43C
548+ /v/L4/7/+/3/////////////////////////////5vL//6rR/v9iq/3/O5b9/zuW/f87lv3/O5b9/zuW
549+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lvzDO5b9/6rR/v/v9v//5/L//9/u///X6v//z+X//8fh
550+ /v+/3f7/t9n+/6bP/v98uf3/eLb9/3O0/f9usf3/aq/9/2Ws/f9gqv3/Yqz9/2iu/f9hqv3/Wab9/1Gi
551+ /f9Jnf3/QZn9/zuW/f87lv3/RJv9/1un/f9usv7/d7b+/2Wt/f9Qof3/O5b9/zuW/f87lv3/O5b9/zuW
552+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/ec6lv1tO5b9/0Wc/f+u1P7/3u3//+Hv
553+ ///Z6///0uf//8ri/v/C3v7/utr+/7LW/v+q0v7/os3+/5rJ/v+Sxf7/i8H+/4O8/v97uP7/c7T+/2uw
554+ /f9jrP3/W6f9/1Oj/f9Ln/3/RJv9/zyW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
555+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zqX/ZAAAAACPJb+uDuW
556+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
557+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
558+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b900aL
559+ /wsAAAAAAAAAAzqV/XY7lv3VO5b9/DuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
560+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
561+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/juW
562+ /dw8l/2JAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDyW/xE7mP80O5b9/TuW/f87lv3/O5b9/zuW
563+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/r08lv8RPJb/ETyW/xE8lv8RPJb/ETyW
564+ /xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW
565+ /xE8lv8RRov/CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPJb+tDuW
566+ /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zyV+0gAAAAAAAAAAAAA
567+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
568+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
569+ AAAAAAAAPJb7RDuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b92AAA
570+ AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
571+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
572+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAATyX/dI7lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
573+ /f87lv3/PJb9ZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
574+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
575+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyX/GI7lv3/O5b9/zuW/f87lv3/O5b9/zuW
576+ /f87lv3/O5b9/zuW/f86lf3sAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
577+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
578+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg7lfxXPJb8VTuW
579+ /Ek8lvtEPJX/PDyW/zM9lv8uPJb/IjiX/yBAlf8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
580+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
581+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
582+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
583+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
584+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
585+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
586+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
587+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
588+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
589+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
590+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
591+ AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA4AAAAAAHAACAAAAAAAEAAAAA
592+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
593+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
594+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
595+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
596+ AAAAAAAAwAAAAAADAAD4AAAAAA8AAP4AB////wAA/gAP////AAD/AA////8AAP8AH////wAA/4Af////
597+ AAD///////8AAP///////wAA////////AAA=
598+</value>
599+ </data>
600+ <data name="&gt;&gt;$this.Name" xml:space="preserve">
601+ <value>FormMain</value>
602+ </data>
603+ <data name="&gt;&gt;$this.Type" xml:space="preserve">
604+ <value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
605+ </data>
606+</root>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/OptionDialog.Designer.cs
@@ -0,0 +1,169 @@
1+// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
2+//
3+// This program is part of BurageSnap.
4+//
5+// BurageSnap is free software: you can redistribute it and/or modify
6+// it under the terms of the GNU General Public License as published by
7+// the Free Software Foundation, either version 3 of the License, or
8+// (at your option) any later version.
9+//
10+// This program is distributed in the hope that it will be useful,
11+// but WITHOUT ANY WARRANTY; without even the implied warranty of
12+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+// GNU General Public License for more details.
14+//
15+// You should have received a copy of the GNU General Public License
16+// along with this program; if not, see <http://www.gnu.org/licenses/>.
17+
18+namespace BurageSnap
19+{
20+ partial class OptionDialog
21+ {
22+ /// <summary>
23+ /// Required designer variable.
24+ /// </summary>
25+ private System.ComponentModel.IContainer components = null;
26+
27+ /// <summary>
28+ /// Clean up any resources being used.
29+ /// </summary>
30+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
31+ protected override void Dispose(bool disposing)
32+ {
33+ if (disposing && (components != null))
34+ {
35+ components.Dispose();
36+ }
37+ base.Dispose(disposing);
38+ }
39+
40+ #region Windows Form Designer generated code
41+
42+ /// <summary>
43+ /// Required method for Designer support - do not modify
44+ /// the contents of this method with the code editor.
45+ /// </summary>
46+ private void InitializeComponent()
47+ {
48+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionDialog));
49+ this.label3 = new System.Windows.Forms.Label();
50+ this.textBoxFolder = new System.Windows.Forms.TextBox();
51+ this.label4 = new System.Windows.Forms.Label();
52+ this.label2 = new System.Windows.Forms.Label();
53+ this.textBoxInterval = new System.Windows.Forms.TextBox();
54+ this.label1 = new System.Windows.Forms.Label();
55+ this.buttonBrowse = new System.Windows.Forms.Button();
56+ this.buttonOk = new System.Windows.Forms.Button();
57+ this.buttonCancel = new System.Windows.Forms.Button();
58+ this.checkBoxTopMost = new System.Windows.Forms.CheckBox();
59+ this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
60+ this.comboBoxWindowTitle = new System.Windows.Forms.ComboBox();
61+ this.SuspendLayout();
62+ //
63+ // label3
64+ //
65+ resources.ApplyResources(this.label3, "label3");
66+ this.label3.Name = "label3";
67+ //
68+ // textBoxFolder
69+ //
70+ resources.ApplyResources(this.textBoxFolder, "textBoxFolder");
71+ this.textBoxFolder.Name = "textBoxFolder";
72+ //
73+ // label4
74+ //
75+ resources.ApplyResources(this.label4, "label4");
76+ this.label4.Name = "label4";
77+ //
78+ // label2
79+ //
80+ resources.ApplyResources(this.label2, "label2");
81+ this.label2.Name = "label2";
82+ //
83+ // textBoxInterval
84+ //
85+ resources.ApplyResources(this.textBoxInterval, "textBoxInterval");
86+ this.textBoxInterval.Name = "textBoxInterval";
87+ //
88+ // label1
89+ //
90+ resources.ApplyResources(this.label1, "label1");
91+ this.label1.Name = "label1";
92+ //
93+ // buttonBrowse
94+ //
95+ resources.ApplyResources(this.buttonBrowse, "buttonBrowse");
96+ this.buttonBrowse.Name = "buttonBrowse";
97+ this.buttonBrowse.UseVisualStyleBackColor = true;
98+ this.buttonBrowse.Click += new System.EventHandler(this.buttonBrowse_Click);
99+ //
100+ // buttonOk
101+ //
102+ resources.ApplyResources(this.buttonOk, "buttonOk");
103+ this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
104+ this.buttonOk.Name = "buttonOk";
105+ this.buttonOk.UseVisualStyleBackColor = true;
106+ this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
107+ //
108+ // buttonCancel
109+ //
110+ resources.ApplyResources(this.buttonCancel, "buttonCancel");
111+ this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
112+ this.buttonCancel.Name = "buttonCancel";
113+ this.buttonCancel.UseVisualStyleBackColor = true;
114+ //
115+ // checkBoxTopMost
116+ //
117+ resources.ApplyResources(this.checkBoxTopMost, "checkBoxTopMost");
118+ this.checkBoxTopMost.Name = "checkBoxTopMost";
119+ this.checkBoxTopMost.UseVisualStyleBackColor = true;
120+ //
121+ // comboBoxWindowTitle
122+ //
123+ this.comboBoxWindowTitle.FormattingEnabled = true;
124+ resources.ApplyResources(this.comboBoxWindowTitle, "comboBoxWindowTitle");
125+ this.comboBoxWindowTitle.Name = "comboBoxWindowTitle";
126+ //
127+ // OptionDialog
128+ //
129+ this.AcceptButton = this.buttonOk;
130+ resources.ApplyResources(this, "$this");
131+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
132+ this.CancelButton = this.buttonCancel;
133+ this.Controls.Add(this.comboBoxWindowTitle);
134+ this.Controls.Add(this.checkBoxTopMost);
135+ this.Controls.Add(this.buttonCancel);
136+ this.Controls.Add(this.buttonOk);
137+ this.Controls.Add(this.buttonBrowse);
138+ this.Controls.Add(this.label3);
139+ this.Controls.Add(this.textBoxFolder);
140+ this.Controls.Add(this.label4);
141+ this.Controls.Add(this.label2);
142+ this.Controls.Add(this.textBoxInterval);
143+ this.Controls.Add(this.label1);
144+ this.MaximizeBox = false;
145+ this.MinimizeBox = false;
146+ this.Name = "OptionDialog";
147+ this.ShowIcon = false;
148+ this.Load += new System.EventHandler(this.OptionDialog_Load);
149+ this.ResumeLayout(false);
150+ this.PerformLayout();
151+
152+ }
153+
154+ #endregion
155+
156+ private System.Windows.Forms.Button buttonBrowse;
157+ private System.Windows.Forms.Label label3;
158+ private System.Windows.Forms.TextBox textBoxFolder;
159+ private System.Windows.Forms.Label label4;
160+ private System.Windows.Forms.Label label2;
161+ private System.Windows.Forms.TextBox textBoxInterval;
162+ private System.Windows.Forms.Label label1;
163+ private System.Windows.Forms.Button buttonOk;
164+ private System.Windows.Forms.Button buttonCancel;
165+ private System.Windows.Forms.CheckBox checkBoxTopMost;
166+ private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog;
167+ private System.Windows.Forms.ComboBox comboBoxWindowTitle;
168+ }
169+}
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/OptionDialog.cs
@@ -0,0 +1,71 @@
1+// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
2+//
3+// This program is part of BurageSnap.
4+//
5+// BurageSnap is free software: you can redistribute it and/or modify
6+// it under the terms of the GNU General Public License as published by
7+// the Free Software Foundation, either version 3 of the License, or
8+// (at your option) any later version.
9+//
10+// This program is distributed in the hope that it will be useful,
11+// but WITHOUT ANY WARRANTY; without even the implied warranty of
12+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+// GNU General Public License for more details.
14+//
15+// You should have received a copy of the GNU General Public License
16+// along with this program; if not, see <http://www.gnu.org/licenses/>.
17+
18+using System;
19+using System.Linq;
20+using System.Windows.Forms;
21+
22+namespace BurageSnap
23+{
24+ public partial class OptionDialog : Form
25+ {
26+ private readonly Config _config;
27+
28+ public OptionDialog(Config config)
29+ {
30+ InitializeComponent();
31+ _config = config;
32+ }
33+
34+ private void buttonOk_Click(object sender, EventArgs e)
35+ {
36+ _config.TopMost = checkBoxTopMost.Checked;
37+ _config.Interval = int.Parse(textBoxInterval.Text);
38+ var title = comboBoxWindowTitle.Text;
39+ if (title != "")
40+ {
41+ comboBoxWindowTitle.Items.Remove(title);
42+ comboBoxWindowTitle.Items.Insert(0, title);
43+ for (var i = comboBoxWindowTitle.Items.Count; i > 10; i--)
44+ comboBoxWindowTitle.Items.RemoveAt(10);
45+ }
46+ _config.TitleHistory = (from object item in comboBoxWindowTitle.Items select item.ToString()).ToArray();
47+ _config.Folder = textBoxFolder.Text;
48+ }
49+
50+ private void OptionDialog_Load(object sender, EventArgs e)
51+ {
52+ checkBoxTopMost.Checked = _config.TopMost;
53+ textBoxInterval.Text = _config.Interval.ToString();
54+ comboBoxWindowTitle.Items.Clear();
55+ // ReSharper disable once CoVariantArrayConversion
56+ comboBoxWindowTitle.Items.AddRange(_config.TitleHistory);
57+ comboBoxWindowTitle.Text = _config.TitleHistory[0];
58+ textBoxFolder.Text = _config.Folder;
59+ textBoxFolder.Select(textBoxFolder.TextLength, 0);
60+ }
61+
62+ private void buttonBrowse_Click(object sender, EventArgs e)
63+ {
64+ folderBrowserDialog.SelectedPath = textBoxFolder.Text;
65+ if (folderBrowserDialog.ShowDialog(this) != DialogResult.OK)
66+ return;
67+ textBoxFolder.Text = folderBrowserDialog.SelectedPath;
68+ textBoxFolder.Select(textBoxFolder.TextLength, 0);
69+ }
70+ }
71+}
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/OptionDialog.ja.resx
@@ -0,0 +1,139 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<root>
3+ <!--
4+ Microsoft ResX Schema
5+
6+ Version 2.0
7+
8+ The primary goals of this format is to allow a simple XML format
9+ that is mostly human readable. The generation and parsing of the
10+ various data types are done through the TypeConverter classes
11+ associated with the data types.
12+
13+ Example:
14+
15+ ... ado.net/XML headers & schema ...
16+ <resheader name="resmimetype">text/microsoft-resx</resheader>
17+ <resheader name="version">2.0</resheader>
18+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+ <value>[base64 mime encoded serialized .NET Framework object]</value>
24+ </data>
25+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+ <comment>This is a comment</comment>
28+ </data>
29+
30+ There are any number of "resheader" rows that contain simple
31+ name/value pairs.
32+
33+ Each data row contains a name, and value. The row also contains a
34+ type or mimetype. Type corresponds to a .NET class that support
35+ text/value conversion through the TypeConverter architecture.
36+ Classes that don't support this are serialized and stored with the
37+ mimetype set.
38+
39+ The mimetype is used for serialized objects, and tells the
40+ ResXResourceReader how to depersist the object. This is currently not
41+ extensible. For a given mimetype the value must be set accordingly:
42+
43+ Note - application/x-microsoft.net.object.binary.base64 is the format
44+ that the ResXResourceWriter will generate, however the reader can
45+ read any of the formats listed below.
46+
47+ mimetype: application/x-microsoft.net.object.binary.base64
48+ value : The object must be serialized with
49+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+ : and then encoded with base64 encoding.
51+
52+ mimetype: application/x-microsoft.net.object.soap.base64
53+ value : The object must be serialized with
54+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+ : and then encoded with base64 encoding.
56+
57+ mimetype: application/x-microsoft.net.object.bytearray.base64
58+ value : The object must be serialized into a byte array
59+ : using a System.ComponentModel.TypeConverter
60+ : and then encoded with base64 encoding.
61+ -->
62+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+ <xsd:element name="root" msdata:IsDataSet="true">
65+ <xsd:complexType>
66+ <xsd:choice maxOccurs="unbounded">
67+ <xsd:element name="metadata">
68+ <xsd:complexType>
69+ <xsd:sequence>
70+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
71+ </xsd:sequence>
72+ <xsd:attribute name="name" use="required" type="xsd:string" />
73+ <xsd:attribute name="type" type="xsd:string" />
74+ <xsd:attribute name="mimetype" type="xsd:string" />
75+ <xsd:attribute ref="xml:space" />
76+ </xsd:complexType>
77+ </xsd:element>
78+ <xsd:element name="assembly">
79+ <xsd:complexType>
80+ <xsd:attribute name="alias" type="xsd:string" />
81+ <xsd:attribute name="name" type="xsd:string" />
82+ </xsd:complexType>
83+ </xsd:element>
84+ <xsd:element name="data">
85+ <xsd:complexType>
86+ <xsd:sequence>
87+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+ </xsd:sequence>
90+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+ <xsd:attribute ref="xml:space" />
94+ </xsd:complexType>
95+ </xsd:element>
96+ <xsd:element name="resheader">
97+ <xsd:complexType>
98+ <xsd:sequence>
99+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+ </xsd:sequence>
101+ <xsd:attribute name="name" type="xsd:string" use="required" />
102+ </xsd:complexType>
103+ </xsd:element>
104+ </xsd:choice>
105+ </xsd:complexType>
106+ </xsd:element>
107+ </xsd:schema>
108+ <resheader name="resmimetype">
109+ <value>text/microsoft-resx</value>
110+ </resheader>
111+ <resheader name="version">
112+ <value>2.0</value>
113+ </resheader>
114+ <resheader name="reader">
115+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+ </resheader>
117+ <resheader name="writer">
118+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+ </resheader>
120+ <data name="label3.Text" xml:space="preserve">
121+ <value>タイトル:</value>
122+ </data>
123+ <data name="label4.Text" xml:space="preserve">
124+ <value>出力先:</value>
125+ </data>
126+ <data name="label1.Text" xml:space="preserve">
127+ <value>間隔:</value>
128+ </data>
129+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
130+ <data name="buttonCancel.Text" xml:space="preserve">
131+ <value>キャンセル</value>
132+ </data>
133+ <data name="checkBoxTopMost.Text" xml:space="preserve">
134+ <value>最前面</value>
135+ </data>
136+ <data name="$this.Text" xml:space="preserve">
137+ <value>BurageSnap 1.0 - オプション</value>
138+ </data>
139+</root>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/OptionDialog.resx
@@ -0,0 +1,448 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<root>
3+ <!--
4+ Microsoft ResX Schema
5+
6+ Version 2.0
7+
8+ The primary goals of this format is to allow a simple XML format
9+ that is mostly human readable. The generation and parsing of the
10+ various data types are done through the TypeConverter classes
11+ associated with the data types.
12+
13+ Example:
14+
15+ ... ado.net/XML headers & schema ...
16+ <resheader name="resmimetype">text/microsoft-resx</resheader>
17+ <resheader name="version">2.0</resheader>
18+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+ <value>[base64 mime encoded serialized .NET Framework object]</value>
24+ </data>
25+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+ <comment>This is a comment</comment>
28+ </data>
29+
30+ There are any number of "resheader" rows that contain simple
31+ name/value pairs.
32+
33+ Each data row contains a name, and value. The row also contains a
34+ type or mimetype. Type corresponds to a .NET class that support
35+ text/value conversion through the TypeConverter architecture.
36+ Classes that don't support this are serialized and stored with the
37+ mimetype set.
38+
39+ The mimetype is used for serialized objects, and tells the
40+ ResXResourceReader how to depersist the object. This is currently not
41+ extensible. For a given mimetype the value must be set accordingly:
42+
43+ Note - application/x-microsoft.net.object.binary.base64 is the format
44+ that the ResXResourceWriter will generate, however the reader can
45+ read any of the formats listed below.
46+
47+ mimetype: application/x-microsoft.net.object.binary.base64
48+ value : The object must be serialized with
49+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+ : and then encoded with base64 encoding.
51+
52+ mimetype: application/x-microsoft.net.object.soap.base64
53+ value : The object must be serialized with
54+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+ : and then encoded with base64 encoding.
56+
57+ mimetype: application/x-microsoft.net.object.bytearray.base64
58+ value : The object must be serialized into a byte array
59+ : using a System.ComponentModel.TypeConverter
60+ : and then encoded with base64 encoding.
61+ -->
62+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+ <xsd:element name="root" msdata:IsDataSet="true">
65+ <xsd:complexType>
66+ <xsd:choice maxOccurs="unbounded">
67+ <xsd:element name="metadata">
68+ <xsd:complexType>
69+ <xsd:sequence>
70+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
71+ </xsd:sequence>
72+ <xsd:attribute name="name" use="required" type="xsd:string" />
73+ <xsd:attribute name="type" type="xsd:string" />
74+ <xsd:attribute name="mimetype" type="xsd:string" />
75+ <xsd:attribute ref="xml:space" />
76+ </xsd:complexType>
77+ </xsd:element>
78+ <xsd:element name="assembly">
79+ <xsd:complexType>
80+ <xsd:attribute name="alias" type="xsd:string" />
81+ <xsd:attribute name="name" type="xsd:string" />
82+ </xsd:complexType>
83+ </xsd:element>
84+ <xsd:element name="data">
85+ <xsd:complexType>
86+ <xsd:sequence>
87+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+ </xsd:sequence>
90+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+ <xsd:attribute ref="xml:space" />
94+ </xsd:complexType>
95+ </xsd:element>
96+ <xsd:element name="resheader">
97+ <xsd:complexType>
98+ <xsd:sequence>
99+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+ </xsd:sequence>
101+ <xsd:attribute name="name" type="xsd:string" use="required" />
102+ </xsd:complexType>
103+ </xsd:element>
104+ </xsd:choice>
105+ </xsd:complexType>
106+ </xsd:element>
107+ </xsd:schema>
108+ <resheader name="resmimetype">
109+ <value>text/microsoft-resx</value>
110+ </resheader>
111+ <resheader name="version">
112+ <value>2.0</value>
113+ </resheader>
114+ <resheader name="reader">
115+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+ </resheader>
117+ <resheader name="writer">
118+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+ </resheader>
120+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121+ <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
122+ <value>12, 34</value>
123+ </data>
124+ <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
125+ <value>45, 12</value>
126+ </data>
127+ <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
128+ <data name="label3.TabIndex" type="System.Int32, mscorlib">
129+ <value>14</value>
130+ </data>
131+ <data name="label3.Text" xml:space="preserve">
132+ <value>Title:</value>
133+ </data>
134+ <data name="label3.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
135+ <value>TopRight</value>
136+ </data>
137+ <data name="&gt;&gt;label3.Name" xml:space="preserve">
138+ <value>label3</value>
139+ </data>
140+ <data name="&gt;&gt;label3.Type" xml:space="preserve">
141+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
142+ </data>
143+ <data name="&gt;&gt;label3.Parent" xml:space="preserve">
144+ <value>$this</value>
145+ </data>
146+ <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
147+ <value>5</value>
148+ </data>
149+ <data name="textBoxFolder.Location" type="System.Drawing.Point, System.Drawing">
150+ <value>58, 57</value>
151+ </data>
152+ <data name="textBoxFolder.Size" type="System.Drawing.Size, System.Drawing">
153+ <value>138, 19</value>
154+ </data>
155+ <data name="textBoxFolder.TabIndex" type="System.Int32, mscorlib">
156+ <value>13</value>
157+ </data>
158+ <data name="&gt;&gt;textBoxFolder.Name" xml:space="preserve">
159+ <value>textBoxFolder</value>
160+ </data>
161+ <data name="&gt;&gt;textBoxFolder.Type" xml:space="preserve">
162+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
163+ </data>
164+ <data name="&gt;&gt;textBoxFolder.Parent" xml:space="preserve">
165+ <value>$this</value>
166+ </data>
167+ <data name="&gt;&gt;textBoxFolder.ZOrder" xml:space="preserve">
168+ <value>6</value>
169+ </data>
170+ <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
171+ <value>12, 60</value>
172+ </data>
173+ <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
174+ <value>45, 15</value>
175+ </data>
176+ <data name="label4.TabIndex" type="System.Int32, mscorlib">
177+ <value>12</value>
178+ </data>
179+ <data name="label4.Text" xml:space="preserve">
180+ <value>Folder:</value>
181+ </data>
182+ <data name="label4.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
183+ <value>TopRight</value>
184+ </data>
185+ <data name="&gt;&gt;label4.Name" xml:space="preserve">
186+ <value>label4</value>
187+ </data>
188+ <data name="&gt;&gt;label4.Type" xml:space="preserve">
189+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
190+ </data>
191+ <data name="&gt;&gt;label4.Parent" xml:space="preserve">
192+ <value>$this</value>
193+ </data>
194+ <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
195+ <value>7</value>
196+ </data>
197+ <data name="label2.AutoSize" type="System.Boolean, mscorlib">
198+ <value>True</value>
199+ </data>
200+ <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
201+ <value>95, 9</value>
202+ </data>
203+ <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
204+ <value>20, 12</value>
205+ </data>
206+ <data name="label2.TabIndex" type="System.Int32, mscorlib">
207+ <value>11</value>
208+ </data>
209+ <data name="label2.Text" xml:space="preserve">
210+ <value>ms</value>
211+ </data>
212+ <data name="&gt;&gt;label2.Name" xml:space="preserve">
213+ <value>label2</value>
214+ </data>
215+ <data name="&gt;&gt;label2.Type" xml:space="preserve">
216+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
217+ </data>
218+ <data name="&gt;&gt;label2.Parent" xml:space="preserve">
219+ <value>$this</value>
220+ </data>
221+ <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
222+ <value>8</value>
223+ </data>
224+ <data name="textBoxInterval.Location" type="System.Drawing.Point, System.Drawing">
225+ <value>58, 6</value>
226+ </data>
227+ <data name="textBoxInterval.Size" type="System.Drawing.Size, System.Drawing">
228+ <value>35, 19</value>
229+ </data>
230+ <data name="textBoxInterval.TabIndex" type="System.Int32, mscorlib">
231+ <value>10</value>
232+ </data>
233+ <data name="textBoxInterval.Text" xml:space="preserve">
234+ <value>1000</value>
235+ </data>
236+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
237+ <data name="textBoxInterval.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
238+ <value>Right</value>
239+ </data>
240+ <data name="&gt;&gt;textBoxInterval.Name" xml:space="preserve">
241+ <value>textBoxInterval</value>
242+ </data>
243+ <data name="&gt;&gt;textBoxInterval.Type" xml:space="preserve">
244+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
245+ </data>
246+ <data name="&gt;&gt;textBoxInterval.Parent" xml:space="preserve">
247+ <value>$this</value>
248+ </data>
249+ <data name="&gt;&gt;textBoxInterval.ZOrder" xml:space="preserve">
250+ <value>9</value>
251+ </data>
252+ <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
253+ <value>12, 9</value>
254+ </data>
255+ <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
256+ <value>45, 12</value>
257+ </data>
258+ <data name="label1.TabIndex" type="System.Int32, mscorlib">
259+ <value>9</value>
260+ </data>
261+ <data name="label1.Text" xml:space="preserve">
262+ <value>Interval:</value>
263+ </data>
264+ <data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
265+ <value>TopRight</value>
266+ </data>
267+ <data name="&gt;&gt;label1.Name" xml:space="preserve">
268+ <value>label1</value>
269+ </data>
270+ <data name="&gt;&gt;label1.Type" xml:space="preserve">
271+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
272+ </data>
273+ <data name="&gt;&gt;label1.Parent" xml:space="preserve">
274+ <value>$this</value>
275+ </data>
276+ <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
277+ <value>10</value>
278+ </data>
279+ <data name="buttonBrowse.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
280+ <value>
281+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
282+ YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAJaSURBVDhPbdLrT1JxHMdxtv6MHvVn1NOyZm2suUZbeKGs
283+ 1FXKLDLdXFqtpM3ZelBrbj1pui4uwRlqkYAgyVVQELkdQLkIOyF3B2Kfjj9OR0/63b6Pznm9z1WwP6X4
284+ iKqYGK4WosPIheXIUkPIBuXY9j9H2vsUtGcAKXc/tlb7qISzR0bQoTnBYOyWlNjbTaKQeoffoRcI2HpR
285+ KaqxV1ngtlxQIbYso1h3MCSwM00WqJINWzrgNj5GKf0V1bKGOfYDlcIMorZusOxgDgdqESC4dBNO7SPE
286+ VgYJLOeU2NmewIZVekwg/n+gCp+hBY75B9hc7iewSI8hn3yPiLnzaCAfe8nhclGBP3sFeLTXYFd3ImJ9
287+ SGAu9haZjVcIme4cDeQ2hzi8k/2MamULrp8i2ObaETZJCUxTctC+J8wjdCFobH/D0tpkws84XKA/oJQ1
288+ YuV7Ayyq66CMHQSmPH3MZ7yPuOMeAou3+HeRpgY5nEmMgo68hmNGCNOUGIGFVg5GbbdB0zT8+lZ+gPb3
289+ 8/CWXw779EUsTV6BT9NI4KZZgsgvMQn4Fm7wA8n1Xh6OugZgnboA44QQXrWIwPCiCCF9Awl4dRJ+IOGS
290+ 8XDY3gOzog6GT/VYZ97FPqR0QrJNc0Gsa5v5gahTysNBUxfMk+dg+FgHz2wN/tv6sVV4NE38QMR+l4d9
291+ hjYS0I+fPRII6i5jbb7Rz9LahExtaq++BWvaJqxpmpmVkIBu/BJcsyLmp2omV2Ugs2I/s90sPRj3/NWT
292+ zKdrtSjPKxmc/zZ6ZunLyOl2h0J4ij3lmBEI/gJyIHBmuwLNjQAAAABJRU5ErkJggg==
293+</value>
294+ </data>
295+ <data name="buttonBrowse.Location" type="System.Drawing.Point, System.Drawing">
296+ <value>199, 55</value>
297+ </data>
298+ <data name="buttonBrowse.Size" type="System.Drawing.Size, System.Drawing">
299+ <value>27, 23</value>
300+ </data>
301+ <data name="buttonBrowse.TabIndex" type="System.Int32, mscorlib">
302+ <value>16</value>
303+ </data>
304+ <data name="&gt;&gt;buttonBrowse.Name" xml:space="preserve">
305+ <value>buttonBrowse</value>
306+ </data>
307+ <data name="&gt;&gt;buttonBrowse.Type" xml:space="preserve">
308+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
309+ </data>
310+ <data name="&gt;&gt;buttonBrowse.Parent" xml:space="preserve">
311+ <value>$this</value>
312+ </data>
313+ <data name="&gt;&gt;buttonBrowse.ZOrder" xml:space="preserve">
314+ <value>4</value>
315+ </data>
316+ <data name="buttonOk.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
317+ <value>Bottom, Left</value>
318+ </data>
319+ <data name="buttonOk.Location" type="System.Drawing.Point, System.Drawing">
320+ <value>70, 90</value>
321+ </data>
322+ <data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
323+ <value>75, 23</value>
324+ </data>
325+ <data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
326+ <value>17</value>
327+ </data>
328+ <data name="buttonOk.Text" xml:space="preserve">
329+ <value>OK</value>
330+ </data>
331+ <data name="&gt;&gt;buttonOk.Name" xml:space="preserve">
332+ <value>buttonOk</value>
333+ </data>
334+ <data name="&gt;&gt;buttonOk.Type" xml:space="preserve">
335+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
336+ </data>
337+ <data name="&gt;&gt;buttonOk.Parent" xml:space="preserve">
338+ <value>$this</value>
339+ </data>
340+ <data name="&gt;&gt;buttonOk.ZOrder" xml:space="preserve">
341+ <value>3</value>
342+ </data>
343+ <data name="buttonCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
344+ <value>Bottom, Left</value>
345+ </data>
346+ <data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
347+ <value>151, 90</value>
348+ </data>
349+ <data name="buttonCancel.Size" type="System.Drawing.Size, System.Drawing">
350+ <value>75, 23</value>
351+ </data>
352+ <data name="buttonCancel.TabIndex" type="System.Int32, mscorlib">
353+ <value>18</value>
354+ </data>
355+ <data name="buttonCancel.Text" xml:space="preserve">
356+ <value>Cancel</value>
357+ </data>
358+ <data name="&gt;&gt;buttonCancel.Name" xml:space="preserve">
359+ <value>buttonCancel</value>
360+ </data>
361+ <data name="&gt;&gt;buttonCancel.Type" xml:space="preserve">
362+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
363+ </data>
364+ <data name="&gt;&gt;buttonCancel.Parent" xml:space="preserve">
365+ <value>$this</value>
366+ </data>
367+ <data name="&gt;&gt;buttonCancel.ZOrder" xml:space="preserve">
368+ <value>2</value>
369+ </data>
370+ <data name="checkBoxTopMost.AutoSize" type="System.Boolean, mscorlib">
371+ <value>True</value>
372+ </data>
373+ <data name="checkBoxTopMost.Location" type="System.Drawing.Point, System.Drawing">
374+ <value>128, 8</value>
375+ </data>
376+ <data name="checkBoxTopMost.Size" type="System.Drawing.Size, System.Drawing">
377+ <value>68, 16</value>
378+ </data>
379+ <data name="checkBoxTopMost.TabIndex" type="System.Int32, mscorlib">
380+ <value>20</value>
381+ </data>
382+ <data name="checkBoxTopMost.Text" xml:space="preserve">
383+ <value>Topmost</value>
384+ </data>
385+ <data name="&gt;&gt;checkBoxTopMost.Name" xml:space="preserve">
386+ <value>checkBoxTopMost</value>
387+ </data>
388+ <data name="&gt;&gt;checkBoxTopMost.Type" xml:space="preserve">
389+ <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
390+ </data>
391+ <data name="&gt;&gt;checkBoxTopMost.Parent" xml:space="preserve">
392+ <value>$this</value>
393+ </data>
394+ <data name="&gt;&gt;checkBoxTopMost.ZOrder" xml:space="preserve">
395+ <value>1</value>
396+ </data>
397+ <metadata name="folderBrowserDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
398+ <value>17, 17</value>
399+ </metadata>
400+ <data name="comboBoxWindowTitle.Location" type="System.Drawing.Point, System.Drawing">
401+ <value>58, 30</value>
402+ </data>
403+ <data name="comboBoxWindowTitle.Size" type="System.Drawing.Size, System.Drawing">
404+ <value>168, 20</value>
405+ </data>
406+ <data name="comboBoxWindowTitle.TabIndex" type="System.Int32, mscorlib">
407+ <value>21</value>
408+ </data>
409+ <data name="&gt;&gt;comboBoxWindowTitle.Name" xml:space="preserve">
410+ <value>comboBoxWindowTitle</value>
411+ </data>
412+ <data name="&gt;&gt;comboBoxWindowTitle.Type" xml:space="preserve">
413+ <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
414+ </data>
415+ <data name="&gt;&gt;comboBoxWindowTitle.Parent" xml:space="preserve">
416+ <value>$this</value>
417+ </data>
418+ <data name="&gt;&gt;comboBoxWindowTitle.ZOrder" xml:space="preserve">
419+ <value>0</value>
420+ </data>
421+ <metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
422+ <value>ja</value>
423+ </metadata>
424+ <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
425+ <value>True</value>
426+ </metadata>
427+ <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
428+ <value>6, 12</value>
429+ </data>
430+ <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
431+ <value>238, 125</value>
432+ </data>
433+ <data name="$this.Text" xml:space="preserve">
434+ <value>BurageSnap 1.0 - Options</value>
435+ </data>
436+ <data name="&gt;&gt;folderBrowserDialog.Name" xml:space="preserve">
437+ <value>folderBrowserDialog</value>
438+ </data>
439+ <data name="&gt;&gt;folderBrowserDialog.Type" xml:space="preserve">
440+ <value>System.Windows.Forms.FolderBrowserDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
441+ </data>
442+ <data name="&gt;&gt;$this.Name" xml:space="preserve">
443+ <value>OptionDialog</value>
444+ </data>
445+ <data name="&gt;&gt;$this.Type" xml:space="preserve">
446+ <value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
447+ </data>
448+</root>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/Program.cs
@@ -0,0 +1,66 @@
1+// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
2+//
3+// This program is part of BurageSnap.
4+//
5+// BurageSnap is free software: you can redistribute it and/or modify
6+// it under the terms of the GNU General Public License as published by
7+// the Free Software Foundation, either version 3 of the License, or
8+// (at your option) any later version.
9+//
10+// This program is distributed in the hope that it will be useful,
11+// but WITHOUT ANY WARRANTY; without even the implied warranty of
12+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+// GNU General Public License for more details.
14+//
15+// You should have received a copy of the GNU General Public License
16+// along with this program; if not, see <http://www.gnu.org/licenses/>.
17+
18+using System;
19+using System.Diagnostics;
20+using System.Linq;
21+using System.Runtime.InteropServices;
22+using System.Windows.Forms;
23+
24+namespace BurageSnap
25+{
26+ internal static class Program
27+ {
28+ /// <summary>
29+ /// アプリケーションのメイン エントリ ポイントです。
30+ /// </summary>
31+ [STAThread]
32+ private static void Main()
33+ {
34+ if (ProcessAlreadyExists())
35+ return;
36+ Application.EnableVisualStyles();
37+ Application.SetCompatibleTextRenderingDefault(false);
38+ Application.Run(new FormMain());
39+ }
40+
41+ public static bool ProcessAlreadyExists()
42+ {
43+ var cur = Process.GetCurrentProcess();
44+ var all = Process.GetProcessesByName(cur.ProcessName);
45+ var proc = all.FirstOrDefault(p => p.Id != cur.Id && p.MainModule.FileName == cur.MainModule.FileName);
46+ if (proc == null)
47+ return false;
48+ var hWnd = proc.MainWindowHandle;
49+
50+ if (IsIconic(hWnd))
51+ ShowWindowAsync(hWnd, 9); // SW_RESTORE
52+ else
53+ SetForegroundWindow(hWnd);
54+ return true;
55+ }
56+
57+ [DllImport("user32.dll")]
58+ private static extern bool SetForegroundWindow(IntPtr hWnd);
59+
60+ [DllImport("user32.dll")]
61+ private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
62+
63+ [DllImport("user32.dll")]
64+ private static extern bool IsIconic(IntPtr hWnd);
65+ }
66+}
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
1+using System.Reflection;
2+using System.Runtime.InteropServices;
3+
4+// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
5+// アセンブリに関連付けられている情報を変更するには、
6+// これらの属性値を変更してください。
7+[assembly: AssemblyTitle("BurageSnap")]
8+[assembly: AssemblyDescription("")]
9+[assembly: AssemblyConfiguration("")]
10+[assembly: AssemblyCompany("Microsoft")]
11+[assembly: AssemblyProduct("BurageSnap")]
12+[assembly: AssemblyCopyright("Copyright © 2015 Kazuhiro Fujieda")]
13+[assembly: AssemblyTrademark("")]
14+[assembly: AssemblyCulture("")]
15+
16+// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから
17+// 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、
18+// その型の ComVisible 属性を true に設定してください。
19+[assembly: ComVisible(false)]
20+
21+// このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります
22+[assembly: Guid("78d1e361-7242-4edb-a69e-d477c396a68d")]
23+
24+// アセンブリのバージョン情報は次の 4 つの値で構成されています:
25+//
26+// メジャー バージョン
27+// マイナー バージョン
28+// ビルド番号
29+// Revision
30+//
31+// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
32+// 既定値にすることができます:
33+// [assembly: AssemblyVersion("1.0.*")]
34+[assembly: AssemblyVersion("1.0.0.0")]
35+[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null
+++ b/BurageSnap/Properties/Resources.Designer.cs
@@ -0,0 +1,120 @@
1+//------------------------------------------------------------------------------
2+// <auto-generated>
3+// このコードはツールによって生成されました。
4+// ランタイム バージョン:4.0.30319.42000
5+//
6+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7+// コードが再生成されるときに損失したりします。
8+// </auto-generated>
9+//------------------------------------------------------------------------------
10+
11+namespace BurageSnap.Properties {
12+ using System;
13+
14+
15+ /// <summary>
16+ /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。
17+ /// </summary>
18+ // このクラスは StronglyTypedResourceBuilder クラスが ResGen
19+ // または Visual Studio のようなツールを使用して自動生成されました。
20+ // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
21+ // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。
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+ /// <summary>
36+ /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。
37+ /// </summary>
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("BurageSnap.Properties.Resources", typeof(Resources).Assembly);
43+ resourceMan = temp;
44+ }
45+ return resourceMan;
46+ }
47+ }
48+
49+ /// <summary>
50+ /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、
51+ /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
52+ /// </summary>
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+ /// <summary>
64+ /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
65+ /// </summary>
66+ internal static System.Drawing.Bitmap cogs {
67+ get {
68+ object obj = ResourceManager.GetObject("cogs", resourceCulture);
69+ return ((System.Drawing.Bitmap)(obj));
70+ }
71+ }
72+
73+ /// <summary>
74+ /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
75+ /// </summary>
76+ internal static System.Drawing.Bitmap folder_open {
77+ get {
78+ object obj = ResourceManager.GetObject("folder_open", resourceCulture);
79+ return ((System.Drawing.Bitmap)(obj));
80+ }
81+ }
82+
83+ /// <summary>
84+ /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
85+ /// </summary>
86+ internal static System.Drawing.Bitmap folder_open_16 {
87+ get {
88+ object obj = ResourceManager.GetObject("folder_open_16", resourceCulture);
89+ return ((System.Drawing.Bitmap)(obj));
90+ }
91+ }
92+
93+ /// <summary>
94+ /// Start に類似しているローカライズされた文字列を検索します。
95+ /// </summary>
96+ internal static string FormMain_buttonCapture_Click_Start {
97+ get {
98+ return ResourceManager.GetString("FormMain_buttonCapture_Click_Start", resourceCulture);
99+ }
100+ }
101+
102+ /// <summary>
103+ /// Stop に類似しているローカライズされた文字列を検索します。
104+ /// </summary>
105+ internal static string FormMain_buttonCapture_Click_Stop {
106+ get {
107+ return ResourceManager.GetString("FormMain_buttonCapture_Click_Stop", resourceCulture);
108+ }
109+ }
110+
111+ /// <summary>
112+ /// Capture に類似しているローカライズされた文字列を検索します。
113+ /// </summary>
114+ internal static string FormMain_checkBoxContinuous_CheckedChanged_Capture {
115+ get {
116+ return ResourceManager.GetString("FormMain_checkBoxContinuous_CheckedChanged_Capture", resourceCulture);
117+ }
118+ }
119+ }
120+}
--- /dev/null
+++ b/BurageSnap/Properties/Resources.ja.resx
@@ -0,0 +1,129 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<root>
3+ <!--
4+ Microsoft ResX Schema
5+
6+ Version 2.0
7+
8+ The primary goals of this format is to allow a simple XML format
9+ that is mostly human readable. The generation and parsing of the
10+ various data types are done through the TypeConverter classes
11+ associated with the data types.
12+
13+ Example:
14+
15+ ... ado.net/XML headers & schema ...
16+ <resheader name="resmimetype">text/microsoft-resx</resheader>
17+ <resheader name="version">2.0</resheader>
18+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+ <value>[base64 mime encoded serialized .NET Framework object]</value>
24+ </data>
25+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+ <comment>This is a comment</comment>
28+ </data>
29+
30+ There are any number of "resheader" rows that contain simple
31+ name/value pairs.
32+
33+ Each data row contains a name, and value. The row also contains a
34+ type or mimetype. Type corresponds to a .NET class that support
35+ text/value conversion through the TypeConverter architecture.
36+ Classes that don't support this are serialized and stored with the
37+ mimetype set.
38+
39+ The mimetype is used for serialized objects, and tells the
40+ ResXResourceReader how to depersist the object. This is currently not
41+ extensible. For a given mimetype the value must be set accordingly:
42+
43+ Note - application/x-microsoft.net.object.binary.base64 is the format
44+ that the ResXResourceWriter will generate, however the reader can
45+ read any of the formats listed below.
46+
47+ mimetype: application/x-microsoft.net.object.binary.base64
48+ value : The object must be serialized with
49+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+ : and then encoded with base64 encoding.
51+
52+ mimetype: application/x-microsoft.net.object.soap.base64
53+ value : The object must be serialized with
54+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+ : and then encoded with base64 encoding.
56+
57+ mimetype: application/x-microsoft.net.object.bytearray.base64
58+ value : The object must be serialized into a byte array
59+ : using a System.ComponentModel.TypeConverter
60+ : and then encoded with base64 encoding.
61+ -->
62+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+ <xsd:element name="root" msdata:IsDataSet="true">
65+ <xsd:complexType>
66+ <xsd:choice maxOccurs="unbounded">
67+ <xsd:element name="metadata">
68+ <xsd:complexType>
69+ <xsd:sequence>
70+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
71+ </xsd:sequence>
72+ <xsd:attribute name="name" use="required" type="xsd:string" />
73+ <xsd:attribute name="type" type="xsd:string" />
74+ <xsd:attribute name="mimetype" type="xsd:string" />
75+ <xsd:attribute ref="xml:space" />
76+ </xsd:complexType>
77+ </xsd:element>
78+ <xsd:element name="assembly">
79+ <xsd:complexType>
80+ <xsd:attribute name="alias" type="xsd:string" />
81+ <xsd:attribute name="name" type="xsd:string" />
82+ </xsd:complexType>
83+ </xsd:element>
84+ <xsd:element name="data">
85+ <xsd:complexType>
86+ <xsd:sequence>
87+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+ </xsd:sequence>
90+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+ <xsd:attribute ref="xml:space" />
94+ </xsd:complexType>
95+ </xsd:element>
96+ <xsd:element name="resheader">
97+ <xsd:complexType>
98+ <xsd:sequence>
99+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+ </xsd:sequence>
101+ <xsd:attribute name="name" type="xsd:string" use="required" />
102+ </xsd:complexType>
103+ </xsd:element>
104+ </xsd:choice>
105+ </xsd:complexType>
106+ </xsd:element>
107+ </xsd:schema>
108+ <resheader name="resmimetype">
109+ <value>text/microsoft-resx</value>
110+ </resheader>
111+ <resheader name="version">
112+ <value>2.0</value>
113+ </resheader>
114+ <resheader name="reader">
115+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+ </resheader>
117+ <resheader name="writer">
118+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+ </resheader>
120+ <data name="FormMain_buttonCapture_Click_Start" xml:space="preserve">
121+ <value>開始</value>
122+ </data>
123+ <data name="FormMain_buttonCapture_Click_Stop" xml:space="preserve">
124+ <value>停止</value>
125+ </data>
126+ <data name="FormMain_checkBoxContinuous_CheckedChanged_Capture" xml:space="preserve">
127+ <value>キャプチャ</value>
128+ </data>
129+</root>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/Properties/Resources.resx
@@ -0,0 +1,139 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<root>
3+ <!--
4+ Microsoft ResX Schema
5+
6+ Version 2.0
7+
8+ The primary goals of this format is to allow a simple XML format
9+ that is mostly human readable. The generation and parsing of the
10+ various data types are done through the TypeConverter classes
11+ associated with the data types.
12+
13+ Example:
14+
15+ ... ado.net/XML headers & schema ...
16+ <resheader name="resmimetype">text/microsoft-resx</resheader>
17+ <resheader name="version">2.0</resheader>
18+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+ <value>[base64 mime encoded serialized .NET Framework object]</value>
24+ </data>
25+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+ <comment>This is a comment</comment>
28+ </data>
29+
30+ There are any number of "resheader" rows that contain simple
31+ name/value pairs.
32+
33+ Each data row contains a name, and value. The row also contains a
34+ type or mimetype. Type corresponds to a .NET class that support
35+ text/value conversion through the TypeConverter architecture.
36+ Classes that don't support this are serialized and stored with the
37+ mimetype set.
38+
39+ The mimetype is used for serialized objects, and tells the
40+ ResXResourceReader how to depersist the object. This is currently not
41+ extensible. For a given mimetype the value must be set accordingly:
42+
43+ Note - application/x-microsoft.net.object.binary.base64 is the format
44+ that the ResXResourceWriter will generate, however the reader can
45+ read any of the formats listed below.
46+
47+ mimetype: application/x-microsoft.net.object.binary.base64
48+ value : The object must be serialized with
49+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+ : and then encoded with base64 encoding.
51+
52+ mimetype: application/x-microsoft.net.object.soap.base64
53+ value : The object must be serialized with
54+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+ : and then encoded with base64 encoding.
56+
57+ mimetype: application/x-microsoft.net.object.bytearray.base64
58+ value : The object must be serialized into a byte array
59+ : using a System.ComponentModel.TypeConverter
60+ : and then encoded with base64 encoding.
61+ -->
62+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+ <xsd:element name="root" msdata:IsDataSet="true">
65+ <xsd:complexType>
66+ <xsd:choice maxOccurs="unbounded">
67+ <xsd:element name="metadata">
68+ <xsd:complexType>
69+ <xsd:sequence>
70+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
71+ </xsd:sequence>
72+ <xsd:attribute name="name" use="required" type="xsd:string" />
73+ <xsd:attribute name="type" type="xsd:string" />
74+ <xsd:attribute name="mimetype" type="xsd:string" />
75+ <xsd:attribute ref="xml:space" />
76+ </xsd:complexType>
77+ </xsd:element>
78+ <xsd:element name="assembly">
79+ <xsd:complexType>
80+ <xsd:attribute name="alias" type="xsd:string" />
81+ <xsd:attribute name="name" type="xsd:string" />
82+ </xsd:complexType>
83+ </xsd:element>
84+ <xsd:element name="data">
85+ <xsd:complexType>
86+ <xsd:sequence>
87+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+ </xsd:sequence>
90+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+ <xsd:attribute ref="xml:space" />
94+ </xsd:complexType>
95+ </xsd:element>
96+ <xsd:element name="resheader">
97+ <xsd:complexType>
98+ <xsd:sequence>
99+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+ </xsd:sequence>
101+ <xsd:attribute name="name" type="xsd:string" use="required" />
102+ </xsd:complexType>
103+ </xsd:element>
104+ </xsd:choice>
105+ </xsd:complexType>
106+ </xsd:element>
107+ </xsd:schema>
108+ <resheader name="resmimetype">
109+ <value>text/microsoft-resx</value>
110+ </resheader>
111+ <resheader name="version">
112+ <value>2.0</value>
113+ </resheader>
114+ <resheader name="reader">
115+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+ </resheader>
117+ <resheader name="writer">
118+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+ </resheader>
120+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121+ <data name="folder_open" type="System.Resources.ResXFileRef, System.Windows.Forms">
122+ <value>..\folder_open.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123+ </data>
124+ <data name="folder_open_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
125+ <value>..\folder_open_16.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126+ </data>
127+ <data name="cogs" type="System.Resources.ResXFileRef, System.Windows.Forms">
128+ <value>..\cogs.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
129+ </data>
130+ <data name="FormMain_buttonCapture_Click_Stop" xml:space="preserve">
131+ <value>Stop</value>
132+ </data>
133+ <data name="FormMain_buttonCapture_Click_Start" xml:space="preserve">
134+ <value>Start</value>
135+ </data>
136+ <data name="FormMain_checkBoxContinuous_CheckedChanged_Capture" xml:space="preserve">
137+ <value>Capture</value>
138+ </data>
139+</root>
\ No newline at end of file
--- /dev/null
+++ b/BurageSnap/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
1+//------------------------------------------------------------------------------
2+// <auto-generated>
3+// このコードはツールによって生成されました。
4+// ランタイム バージョン:4.0.30319.42000
5+//
6+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7+// コードが再生成されるときに損失したりします。
8+// </auto-generated>
9+//------------------------------------------------------------------------------
10+
11+namespace BurageSnap.Properties {
12+
13+
14+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.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+}
--- /dev/null
+++ b/BurageSnap/Properties/Settings.settings
@@ -0,0 +1,7 @@
1+<?xml version='1.0' encoding='utf-8'?>
2+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
3+ <Profiles>
4+ <Profile Name="(Default)" />
5+ </Profiles>
6+ <Settings />
7+</SettingsFile>
Binary files /dev/null and b/BurageSnap/app.ico differ
Binary files /dev/null and b/BurageSnap/cogs.ico differ
Binary files /dev/null and b/BurageSnap/folder_open.ico differ
Binary files /dev/null and b/BurageSnap/folder_open_16.ico differ
--- /dev/null
+++ b/GPL.txt
@@ -0,0 +1,674 @@
1+ GNU GENERAL PUBLIC LICENSE
2+ Version 3, 29 June 2007
3+
4+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5+ Everyone is permitted to copy and distribute verbatim copies
6+ of this license document, but changing it is not allowed.
7+
8+ Preamble
9+
10+ The GNU General Public License is a free, copyleft license for
11+software and other kinds of works.
12+
13+ The licenses for most software and other practical works are designed
14+to take away your freedom to share and change the works. By contrast,
15+the GNU General Public License is intended to guarantee your freedom to
16+share and change all versions of a program--to make sure it remains free
17+software for all its users. We, the Free Software Foundation, use the
18+GNU General Public License for most of our software; it applies also to
19+any other work released this way by its authors. You can apply it to
20+your programs, too.
21+
22+ When we speak of free software, we are referring to freedom, not
23+price. Our General Public Licenses are designed to make sure that you
24+have the freedom to distribute copies of free software (and charge for
25+them if you wish), that you receive source code or can get it if you
26+want it, that you can change the software or use pieces of it in new
27+free programs, and that you know you can do these things.
28+
29+ To protect your rights, we need to prevent others from denying you
30+these rights or asking you to surrender the rights. Therefore, you have
31+certain responsibilities if you distribute copies of the software, or if
32+you modify it: responsibilities to respect the freedom of others.
33+
34+ For example, if you distribute copies of such a program, whether
35+gratis or for a fee, you must pass on to the recipients the same
36+freedoms that you received. You must make sure that they, too, receive
37+or can get the source code. And you must show them these terms so they
38+know their rights.
39+
40+ Developers that use the GNU GPL protect your rights with two steps:
41+(1) assert copyright on the software, and (2) offer you this License
42+giving you legal permission to copy, distribute and/or modify it.
43+
44+ For the developers' and authors' protection, the GPL clearly explains
45+that there is no warranty for this free software. For both users' and
46+authors' sake, the GPL requires that modified versions be marked as
47+changed, so that their problems will not be attributed erroneously to
48+authors of previous versions.
49+
50+ Some devices are designed to deny users access to install or run
51+modified versions of the software inside them, although the manufacturer
52+can do so. This is fundamentally incompatible with the aim of
53+protecting users' freedom to change the software. The systematic
54+pattern of such abuse occurs in the area of products for individuals to
55+use, which is precisely where it is most unacceptable. Therefore, we
56+have designed this version of the GPL to prohibit the practice for those
57+products. If such problems arise substantially in other domains, we
58+stand ready to extend this provision to those domains in future versions
59+of the GPL, as needed to protect the freedom of users.
60+
61+ Finally, every program is threatened constantly by software patents.
62+States should not allow patents to restrict development and use of
63+software on general-purpose computers, but in those that do, we wish to
64+avoid the special danger that patents applied to a free program could
65+make it effectively proprietary. To prevent this, the GPL assures that
66+patents cannot be used to render the program non-free.
67+
68+ The precise terms and conditions for copying, distribution and
69+modification follow.
70+
71+ TERMS AND CONDITIONS
72+
73+ 0. Definitions.
74+
75+ "This License" refers to version 3 of the GNU General Public License.
76+
77+ "Copyright" also means copyright-like laws that apply to other kinds of
78+works, such as semiconductor masks.
79+
80+ "The Program" refers to any copyrightable work licensed under this
81+License. Each licensee is addressed as "you". "Licensees" and
82+"recipients" may be individuals or organizations.
83+
84+ To "modify" a work means to copy from or adapt all or part of the work
85+in a fashion requiring copyright permission, other than the making of an
86+exact copy. The resulting work is called a "modified version" of the
87+earlier work or a work "based on" the earlier work.
88+
89+ A "covered work" means either the unmodified Program or a work based
90+on the Program.
91+
92+ To "propagate" a work means to do anything with it that, without
93+permission, would make you directly or secondarily liable for
94+infringement under applicable copyright law, except executing it on a
95+computer or modifying a private copy. Propagation includes copying,
96+distribution (with or without modification), making available to the
97+public, and in some countries other activities as well.
98+
99+ To "convey" a work means any kind of propagation that enables other
100+parties to make or receive copies. Mere interaction with a user through
101+a computer network, with no transfer of a copy, is not conveying.
102+
103+ An interactive user interface displays "Appropriate Legal Notices"
104+to the extent that it includes a convenient and prominently visible
105+feature that (1) displays an appropriate copyright notice, and (2)
106+tells the user that there is no warranty for the work (except to the
107+extent that warranties are provided), that licensees may convey the
108+work under this License, and how to view a copy of this License. If
109+the interface presents a list of user commands or options, such as a
110+menu, a prominent item in the list meets this criterion.
111+
112+ 1. Source Code.
113+
114+ The "source code" for a work means the preferred form of the work
115+for making modifications to it. "Object code" means any non-source
116+form of a work.
117+
118+ A "Standard Interface" means an interface that either is an official
119+standard defined by a recognized standards body, or, in the case of
120+interfaces specified for a particular programming language, one that
121+is widely used among developers working in that language.
122+
123+ The "System Libraries" of an executable work include anything, other
124+than the work as a whole, that (a) is included in the normal form of
125+packaging a Major Component, but which is not part of that Major
126+Component, and (b) serves only to enable use of the work with that
127+Major Component, or to implement a Standard Interface for which an
128+implementation is available to the public in source code form. A
129+"Major Component", in this context, means a major essential component
130+(kernel, window system, and so on) of the specific operating system
131+(if any) on which the executable work runs, or a compiler used to
132+produce the work, or an object code interpreter used to run it.
133+
134+ The "Corresponding Source" for a work in object code form means all
135+the source code needed to generate, install, and (for an executable
136+work) run the object code and to modify the work, including scripts to
137+control those activities. However, it does not include the work's
138+System Libraries, or general-purpose tools or generally available free
139+programs which are used unmodified in performing those activities but
140+which are not part of the work. For example, Corresponding Source
141+includes interface definition files associated with source files for
142+the work, and the source code for shared libraries and dynamically
143+linked subprograms that the work is specifically designed to require,
144+such as by intimate data communication or control flow between those
145+subprograms and other parts of the work.
146+
147+ The Corresponding Source need not include anything that users
148+can regenerate automatically from other parts of the Corresponding
149+Source.
150+
151+ The Corresponding Source for a work in source code form is that
152+same work.
153+
154+ 2. Basic Permissions.
155+
156+ All rights granted under this License are granted for the term of
157+copyright on the Program, and are irrevocable provided the stated
158+conditions are met. This License explicitly affirms your unlimited
159+permission to run the unmodified Program. The output from running a
160+covered work is covered by this License only if the output, given its
161+content, constitutes a covered work. This License acknowledges your
162+rights of fair use or other equivalent, as provided by copyright law.
163+
164+ You may make, run and propagate covered works that you do not
165+convey, without conditions so long as your license otherwise remains
166+in force. You may convey covered works to others for the sole purpose
167+of having them make modifications exclusively for you, or provide you
168+with facilities for running those works, provided that you comply with
169+the terms of this License in conveying all material for which you do
170+not control copyright. Those thus making or running the covered works
171+for you must do so exclusively on your behalf, under your direction
172+and control, on terms that prohibit them from making any copies of
173+your copyrighted material outside their relationship with you.
174+
175+ Conveying under any other circumstances is permitted solely under
176+the conditions stated below. Sublicensing is not allowed; section 10
177+makes it unnecessary.
178+
179+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180+
181+ No covered work shall be deemed part of an effective technological
182+measure under any applicable law fulfilling obligations under article
183+11 of the WIPO copyright treaty adopted on 20 December 1996, or
184+similar laws prohibiting or restricting circumvention of such
185+measures.
186+
187+ When you convey a covered work, you waive any legal power to forbid
188+circumvention of technological measures to the extent such circumvention
189+is effected by exercising rights under this License with respect to
190+the covered work, and you disclaim any intention to limit operation or
191+modification of the work as a means of enforcing, against the work's
192+users, your or third parties' legal rights to forbid circumvention of
193+technological measures.
194+
195+ 4. Conveying Verbatim Copies.
196+
197+ You may convey verbatim copies of the Program's source code as you
198+receive it, in any medium, provided that you conspicuously and
199+appropriately publish on each copy an appropriate copyright notice;
200+keep intact all notices stating that this License and any
201+non-permissive terms added in accord with section 7 apply to the code;
202+keep intact all notices of the absence of any warranty; and give all
203+recipients a copy of this License along with the Program.
204+
205+ You may charge any price or no price for each copy that you convey,
206+and you may offer support or warranty protection for a fee.
207+
208+ 5. Conveying Modified Source Versions.
209+
210+ You may convey a work based on the Program, or the modifications to
211+produce it from the Program, in the form of source code under the
212+terms of section 4, provided that you also meet all of these conditions:
213+
214+ a) The work must carry prominent notices stating that you modified
215+ it, and giving a relevant date.
216+
217+ b) The work must carry prominent notices stating that it is
218+ released under this License and any conditions added under section
219+ 7. This requirement modifies the requirement in section 4 to
220+ "keep intact all notices".
221+
222+ c) You must license the entire work, as a whole, under this
223+ License to anyone who comes into possession of a copy. This
224+ License will therefore apply, along with any applicable section 7
225+ additional terms, to the whole of the work, and all its parts,
226+ regardless of how they are packaged. This License gives no
227+ permission to license the work in any other way, but it does not
228+ invalidate such permission if you have separately received it.
229+
230+ d) If the work has interactive user interfaces, each must display
231+ Appropriate Legal Notices; however, if the Program has interactive
232+ interfaces that do not display Appropriate Legal Notices, your
233+ work need not make them do so.
234+
235+ A compilation of a covered work with other separate and independent
236+works, which are not by their nature extensions of the covered work,
237+and which are not combined with it such as to form a larger program,
238+in or on a volume of a storage or distribution medium, is called an
239+"aggregate" if the compilation and its resulting copyright are not
240+used to limit the access or legal rights of the compilation's users
241+beyond what the individual works permit. Inclusion of a covered work
242+in an aggregate does not cause this License to apply to the other
243+parts of the aggregate.
244+
245+ 6. Conveying Non-Source Forms.
246+
247+ You may convey a covered work in object code form under the terms
248+of sections 4 and 5, provided that you also convey the
249+machine-readable Corresponding Source under the terms of this License,
250+in one of these ways:
251+
252+ a) Convey the object code in, or embodied in, a physical product
253+ (including a physical distribution medium), accompanied by the
254+ Corresponding Source fixed on a durable physical medium
255+ customarily used for software interchange.
256+
257+ b) Convey the object code in, or embodied in, a physical product
258+ (including a physical distribution medium), accompanied by a
259+ written offer, valid for at least three years and valid for as
260+ long as you offer spare parts or customer support for that product
261+ model, to give anyone who possesses the object code either (1) a
262+ copy of the Corresponding Source for all the software in the
263+ product that is covered by this License, on a durable physical
264+ medium customarily used for software interchange, for a price no
265+ more than your reasonable cost of physically performing this
266+ conveying of source, or (2) access to copy the
267+ Corresponding Source from a network server at no charge.
268+
269+ c) Convey individual copies of the object code with a copy of the
270+ written offer to provide the Corresponding Source. This
271+ alternative is allowed only occasionally and noncommercially, and
272+ only if you received the object code with such an offer, in accord
273+ with subsection 6b.
274+
275+ d) Convey the object code by offering access from a designated
276+ place (gratis or for a charge), and offer equivalent access to the
277+ Corresponding Source in the same way through the same place at no
278+ further charge. You need not require recipients to copy the
279+ Corresponding Source along with the object code. If the place to
280+ copy the object code is a network server, the Corresponding Source
281+ may be on a different server (operated by you or a third party)
282+ that supports equivalent copying facilities, provided you maintain
283+ clear directions next to the object code saying where to find the
284+ Corresponding Source. Regardless of what server hosts the
285+ Corresponding Source, you remain obligated to ensure that it is
286+ available for as long as needed to satisfy these requirements.
287+
288+ e) Convey the object code using peer-to-peer transmission, provided
289+ you inform other peers where the object code and Corresponding
290+ Source of the work are being offered to the general public at no
291+ charge under subsection 6d.
292+
293+ A separable portion of the object code, whose source code is excluded
294+from the Corresponding Source as a System Library, need not be
295+included in conveying the object code work.
296+
297+ A "User Product" is either (1) a "consumer product", which means any
298+tangible personal property which is normally used for personal, family,
299+or household purposes, or (2) anything designed or sold for incorporation
300+into a dwelling. In determining whether a product is a consumer product,
301+doubtful cases shall be resolved in favor of coverage. For a particular
302+product received by a particular user, "normally used" refers to a
303+typical or common use of that class of product, regardless of the status
304+of the particular user or of the way in which the particular user
305+actually uses, or expects or is expected to use, the product. A product
306+is a consumer product regardless of whether the product has substantial
307+commercial, industrial or non-consumer uses, unless such uses represent
308+the only significant mode of use of the product.
309+
310+ "Installation Information" for a User Product means any methods,
311+procedures, authorization keys, or other information required to install
312+and execute modified versions of a covered work in that User Product from
313+a modified version of its Corresponding Source. The information must
314+suffice to ensure that the continued functioning of the modified object
315+code is in no case prevented or interfered with solely because
316+modification has been made.
317+
318+ If you convey an object code work under this section in, or with, or
319+specifically for use in, a User Product, and the conveying occurs as
320+part of a transaction in which the right of possession and use of the
321+User Product is transferred to the recipient in perpetuity or for a
322+fixed term (regardless of how the transaction is characterized), the
323+Corresponding Source conveyed under this section must be accompanied
324+by the Installation Information. But this requirement does not apply
325+if neither you nor any third party retains the ability to install
326+modified object code on the User Product (for example, the work has
327+been installed in ROM).
328+
329+ The requirement to provide Installation Information does not include a
330+requirement to continue to provide support service, warranty, or updates
331+for a work that has been modified or installed by the recipient, or for
332+the User Product in which it has been modified or installed. Access to a
333+network may be denied when the modification itself materially and
334+adversely affects the operation of the network or violates the rules and
335+protocols for communication across the network.
336+
337+ Corresponding Source conveyed, and Installation Information provided,
338+in accord with this section must be in a format that is publicly
339+documented (and with an implementation available to the public in
340+source code form), and must require no special password or key for
341+unpacking, reading or copying.
342+
343+ 7. Additional Terms.
344+
345+ "Additional permissions" are terms that supplement the terms of this
346+License by making exceptions from one or more of its conditions.
347+Additional permissions that are applicable to the entire Program shall
348+be treated as though they were included in this License, to the extent
349+that they are valid under applicable law. If additional permissions
350+apply only to part of the Program, that part may be used separately
351+under those permissions, but the entire Program remains governed by
352+this License without regard to the additional permissions.
353+
354+ When you convey a copy of a covered work, you may at your option
355+remove any additional permissions from that copy, or from any part of
356+it. (Additional permissions may be written to require their own
357+removal in certain cases when you modify the work.) You may place
358+additional permissions on material, added by you to a covered work,
359+for which you have or can give appropriate copyright permission.
360+
361+ Notwithstanding any other provision of this License, for material you
362+add to a covered work, you may (if authorized by the copyright holders of
363+that material) supplement the terms of this License with terms:
364+
365+ a) Disclaiming warranty or limiting liability differently from the
366+ terms of sections 15 and 16 of this License; or
367+
368+ b) Requiring preservation of specified reasonable legal notices or
369+ author attributions in that material or in the Appropriate Legal
370+ Notices displayed by works containing it; or
371+
372+ c) Prohibiting misrepresentation of the origin of that material, or
373+ requiring that modified versions of such material be marked in
374+ reasonable ways as different from the original version; or
375+
376+ d) Limiting the use for publicity purposes of names of licensors or
377+ authors of the material; or
378+
379+ e) Declining to grant rights under trademark law for use of some
380+ trade names, trademarks, or service marks; or
381+
382+ f) Requiring indemnification of licensors and authors of that
383+ material by anyone who conveys the material (or modified versions of
384+ it) with contractual assumptions of liability to the recipient, for
385+ any liability that these contractual assumptions directly impose on
386+ those licensors and authors.
387+
388+ All other non-permissive additional terms are considered "further
389+restrictions" within the meaning of section 10. If the Program as you
390+received it, or any part of it, contains a notice stating that it is
391+governed by this License along with a term that is a further
392+restriction, you may remove that term. If a license document contains
393+a further restriction but permits relicensing or conveying under this
394+License, you may add to a covered work material governed by the terms
395+of that license document, provided that the further restriction does
396+not survive such relicensing or conveying.
397+
398+ If you add terms to a covered work in accord with this section, you
399+must place, in the relevant source files, a statement of the
400+additional terms that apply to those files, or a notice indicating
401+where to find the applicable terms.
402+
403+ Additional terms, permissive or non-permissive, may be stated in the
404+form of a separately written license, or stated as exceptions;
405+the above requirements apply either way.
406+
407+ 8. Termination.
408+
409+ You may not propagate or modify a covered work except as expressly
410+provided under this License. Any attempt otherwise to propagate or
411+modify it is void, and will automatically terminate your rights under
412+this License (including any patent licenses granted under the third
413+paragraph of section 11).
414+
415+ However, if you cease all violation of this License, then your
416+license from a particular copyright holder is reinstated (a)
417+provisionally, unless and until the copyright holder explicitly and
418+finally terminates your license, and (b) permanently, if the copyright
419+holder fails to notify you of the violation by some reasonable means
420+prior to 60 days after the cessation.
421+
422+ Moreover, your license from a particular copyright holder is
423+reinstated permanently if the copyright holder notifies you of the
424+violation by some reasonable means, this is the first time you have
425+received notice of violation of this License (for any work) from that
426+copyright holder, and you cure the violation prior to 30 days after
427+your receipt of the notice.
428+
429+ Termination of your rights under this section does not terminate the
430+licenses of parties who have received copies or rights from you under
431+this License. If your rights have been terminated and not permanently
432+reinstated, you do not qualify to receive new licenses for the same
433+material under section 10.
434+
435+ 9. Acceptance Not Required for Having Copies.
436+
437+ You are not required to accept this License in order to receive or
438+run a copy of the Program. Ancillary propagation of a covered work
439+occurring solely as a consequence of using peer-to-peer transmission
440+to receive a copy likewise does not require acceptance. However,
441+nothing other than this License grants you permission to propagate or
442+modify any covered work. These actions infringe copyright if you do
443+not accept this License. Therefore, by modifying or propagating a
444+covered work, you indicate your acceptance of this License to do so.
445+
446+ 10. Automatic Licensing of Downstream Recipients.
447+
448+ Each time you convey a covered work, the recipient automatically
449+receives a license from the original licensors, to run, modify and
450+propagate that work, subject to this License. You are not responsible
451+for enforcing compliance by third parties with this License.
452+
453+ An "entity transaction" is a transaction transferring control of an
454+organization, or substantially all assets of one, or subdividing an
455+organization, or merging organizations. If propagation of a covered
456+work results from an entity transaction, each party to that
457+transaction who receives a copy of the work also receives whatever
458+licenses to the work the party's predecessor in interest had or could
459+give under the previous paragraph, plus a right to possession of the
460+Corresponding Source of the work from the predecessor in interest, if
461+the predecessor has it or can get it with reasonable efforts.
462+
463+ You may not impose any further restrictions on the exercise of the
464+rights granted or affirmed under this License. For example, you may
465+not impose a license fee, royalty, or other charge for exercise of
466+rights granted under this License, and you may not initiate litigation
467+(including a cross-claim or counterclaim in a lawsuit) alleging that
468+any patent claim is infringed by making, using, selling, offering for
469+sale, or importing the Program or any portion of it.
470+
471+ 11. Patents.
472+
473+ A "contributor" is a copyright holder who authorizes use under this
474+License of the Program or a work on which the Program is based. The
475+work thus licensed is called the contributor's "contributor version".
476+
477+ A contributor's "essential patent claims" are all patent claims
478+owned or controlled by the contributor, whether already acquired or
479+hereafter acquired, that would be infringed by some manner, permitted
480+by this License, of making, using, or selling its contributor version,
481+but do not include claims that would be infringed only as a
482+consequence of further modification of the contributor version. For
483+purposes of this definition, "control" includes the right to grant
484+patent sublicenses in a manner consistent with the requirements of
485+this License.
486+
487+ Each contributor grants you a non-exclusive, worldwide, royalty-free
488+patent license under the contributor's essential patent claims, to
489+make, use, sell, offer for sale, import and otherwise run, modify and
490+propagate the contents of its contributor version.
491+
492+ In the following three paragraphs, a "patent license" is any express
493+agreement or commitment, however denominated, not to enforce a patent
494+(such as an express permission to practice a patent or covenant not to
495+sue for patent infringement). To "grant" such a patent license to a
496+party means to make such an agreement or commitment not to enforce a
497+patent against the party.
498+
499+ If you convey a covered work, knowingly relying on a patent license,
500+and the Corresponding Source of the work is not available for anyone
501+to copy, free of charge and under the terms of this License, through a
502+publicly available network server or other readily accessible means,
503+then you must either (1) cause the Corresponding Source to be so
504+available, or (2) arrange to deprive yourself of the benefit of the
505+patent license for this particular work, or (3) arrange, in a manner
506+consistent with the requirements of this License, to extend the patent
507+license to downstream recipients. "Knowingly relying" means you have
508+actual knowledge that, but for the patent license, your conveying the
509+covered work in a country, or your recipient's use of the covered work
510+in a country, would infringe one or more identifiable patents in that
511+country that you have reason to believe are valid.
512+
513+ If, pursuant to or in connection with a single transaction or
514+arrangement, you convey, or propagate by procuring conveyance of, a
515+covered work, and grant a patent license to some of the parties
516+receiving the covered work authorizing them to use, propagate, modify
517+or convey a specific copy of the covered work, then the patent license
518+you grant is automatically extended to all recipients of the covered
519+work and works based on it.
520+
521+ A patent license is "discriminatory" if it does not include within
522+the scope of its coverage, prohibits the exercise of, or is
523+conditioned on the non-exercise of one or more of the rights that are
524+specifically granted under this License. You may not convey a covered
525+work if you are a party to an arrangement with a third party that is
526+in the business of distributing software, under which you make payment
527+to the third party based on the extent of your activity of conveying
528+the work, and under which the third party grants, to any of the
529+parties who would receive the covered work from you, a discriminatory
530+patent license (a) in connection with copies of the covered work
531+conveyed by you (or copies made from those copies), or (b) primarily
532+for and in connection with specific products or compilations that
533+contain the covered work, unless you entered into that arrangement,
534+or that patent license was granted, prior to 28 March 2007.
535+
536+ Nothing in this License shall be construed as excluding or limiting
537+any implied license or other defenses to infringement that may
538+otherwise be available to you under applicable patent law.
539+
540+ 12. No Surrender of Others' Freedom.
541+
542+ If conditions are imposed on you (whether by court order, agreement or
543+otherwise) that contradict the conditions of this License, they do not
544+excuse you from the conditions of this License. If you cannot convey a
545+covered work so as to satisfy simultaneously your obligations under this
546+License and any other pertinent obligations, then as a consequence you may
547+not convey it at all. For example, if you agree to terms that obligate you
548+to collect a royalty for further conveying from those to whom you convey
549+the Program, the only way you could satisfy both those terms and this
550+License would be to refrain entirely from conveying the Program.
551+
552+ 13. Use with the GNU Affero General Public License.
553+
554+ Notwithstanding any other provision of this License, you have
555+permission to link or combine any covered work with a work licensed
556+under version 3 of the GNU Affero General Public License into a single
557+combined work, and to convey the resulting work. The terms of this
558+License will continue to apply to the part which is the covered work,
559+but the special requirements of the GNU Affero General Public License,
560+section 13, concerning interaction through a network will apply to the
561+combination as such.
562+
563+ 14. Revised Versions of this License.
564+
565+ The Free Software Foundation may publish revised and/or new versions of
566+the GNU General Public License from time to time. Such new versions will
567+be similar in spirit to the present version, but may differ in detail to
568+address new problems or concerns.
569+
570+ Each version is given a distinguishing version number. If the
571+Program specifies that a certain numbered version of the GNU General
572+Public License "or any later version" applies to it, you have the
573+option of following the terms and conditions either of that numbered
574+version or of any later version published by the Free Software
575+Foundation. If the Program does not specify a version number of the
576+GNU General Public License, you may choose any version ever published
577+by the Free Software Foundation.
578+
579+ If the Program specifies that a proxy can decide which future
580+versions of the GNU General Public License can be used, that proxy's
581+public statement of acceptance of a version permanently authorizes you
582+to choose that version for the Program.
583+
584+ Later license versions may give you additional or different
585+permissions. However, no additional obligations are imposed on any
586+author or copyright holder as a result of your choosing to follow a
587+later version.
588+
589+ 15. Disclaimer of Warranty.
590+
591+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599+
600+ 16. Limitation of Liability.
601+
602+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610+SUCH DAMAGES.
611+
612+ 17. Interpretation of Sections 15 and 16.
613+
614+ If the disclaimer of warranty and limitation of liability provided
615+above cannot be given local legal effect according to their terms,
616+reviewing courts shall apply local law that most closely approximates
617+an absolute waiver of all civil liability in connection with the
618+Program, unless a warranty or assumption of liability accompanies a
619+copy of the Program in return for a fee.
620+
621+ END OF TERMS AND CONDITIONS
622+
623+ How to Apply These Terms to Your New Programs
624+
625+ If you develop a new program, and you want it to be of the greatest
626+possible use to the public, the best way to achieve this is to make it
627+free software which everyone can redistribute and change under these terms.
628+
629+ To do so, attach the following notices to the program. It is safest
630+to attach them to the start of each source file to most effectively
631+state the exclusion of warranty; and each file should have at least
632+the "copyright" line and a pointer to where the full notice is found.
633+
634+ <one line to give the program's name and a brief idea of what it does.>
635+ Copyright (C) <year> <name of author>
636+
637+ This program is free software: you can redistribute it and/or modify
638+ it under the terms of the GNU General Public License as published by
639+ the Free Software Foundation, either version 3 of the License, or
640+ (at your option) any later version.
641+
642+ This program is distributed in the hope that it will be useful,
643+ but WITHOUT ANY WARRANTY; without even the implied warranty of
644+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645+ GNU General Public License for more details.
646+
647+ You should have received a copy of the GNU General Public License
648+ along with this program. If not, see <http://www.gnu.org/licenses/>.
649+
650+Also add information on how to contact you by electronic and paper mail.
651+
652+ If the program does terminal interaction, make it output a short
653+notice like this when it starts in an interactive mode:
654+
655+ <program> Copyright (C) <year> <name of author>
656+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657+ This is free software, and you are welcome to redistribute it
658+ under certain conditions; type `show c' for details.
659+
660+The hypothetical commands `show w' and `show c' should show the appropriate
661+parts of the General Public License. Of course, your program's commands
662+might be different; for a GUI interface, you would use an "about box".
663+
664+ You should also get your employer (if you work as a programmer) or school,
665+if any, to sign a "copyright disclaimer" for the program, if necessary.
666+For more information on this, and how to apply and follow the GNU GPL, see
667+<http://www.gnu.org/licenses/>.
668+
669+ The GNU General Public License does not permit incorporating your program
670+into proprietary programs. If your program is a subroutine library, you
671+may consider it more useful to permit linking proprietary applications with
672+the library. If this is what you want to do, use the GNU Lesser General
673+Public License instead of this License. But first, please read
674+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
--- /dev/null
+++ b/README.ja.md
@@ -0,0 +1,5 @@
1+BurageSnapはブラウザーゲームのスクリーンショットを取るソフトです。指定されたタイトルのウィンドウを探し、その中のゲーム画面を切り取ってJPEGファイルに保存します。BurageCaptureは白で囲まれた大きな長方形をゲーム画面として認識します。角が丸かったり曖昧だったりしても大丈夫です。
2+
3+BurageSnapはWindows Vista以降の.NET Framework 4.5以降がインストールされている環境で動作します。Windows Vistaか7の場合は[.NET Framework 4.5.2](http://www.microsoft.com/ja-JP/download/details.aspx?id=42642)をインストールしてください。
4+
5+BurageSnapはGNU General Public License version 3でライセンスします。ソースコードは[Gitリポジトリ](https://osdn.jp/projects/buragesnap/scm/git/BurageSnap/)にあります。
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
1+BurageSnap allows you to take a screenshot of browser games a.k.a ブラゲ [burʌgɛ] in Japan with just one click. It finds a window with the specified title, recognizes a game screen, and save it as a JPEG file. BurageSnap recognizes a large rectangle even with rounded or vague corners surrounded by white pixels as a game screen.
2+
3+BurageSnap can work on Vista or later versions of Windows with .NET Framework 4.5.2 or later. If your Windows version is Vista or 7, you need to install [.NET Framework 4.5.2](http://www.microsoft.com/ja-JP/download/details.aspx?id=42642).
4+
5+BurageSnap is licensed under the term of GNU General Public License version 3 or later. You can access the source code via [our Git repository](https://osdn.jp/projects/buragesnap/scm/git/BurageSnap/).
Show on old repository browser